(57)【要約】【課題】本発明の一実施例では、実装面積の小さい画像処理回路を提供することを目的とする。【解決手段】上記課題を解決するため、行列状に並んだ画素の画素値から補間画素値を求める画像処理回路は、列内の該画素値から補間演算処理により第一補間画素値を求める第一演算回路と、該第一演算回路で処理を行う列に隣接した列内の該画素値から補間演算処理により第二補間画素値を求める第二演算回路と、該第二演算回路で処理を行う列に隣接した列内の該画素値から補間演算処理により第三補間画素値を求める第三演算回路と、該第一演算部と該第二演算部で処理した画素列間の第四補間画素値を該第一補間画素値と該第二補間画素値から補間演算処理により求める第四演算回路と、該第二演算部と該第三演算部で処理した画素列間の第五補間画素値を該第二補間画素値と該第三補間画素値から補間演算処理により求める第五演算回路とを有する。【選択図】図４
2011049619.tif 000002
【特許請求の範囲】
【請求項１】
行列状に並んだ画素の画素値から補間画素値を求める画像処理回路において、
列内の該画素値から補間演算処理により第一補間画素値を求める第一演算回路と、
該第一演算回路で処理を行う列に隣接した列内の該画素値から補間演算処理により第二補間画素値を求める第二演算回路と、
該第二演算回路で処理を行う列に隣接した列内の該画素値から補間演算処理により第三補間画素値を求める第三演算回路と、
該第一演算部と該第二演算部で処理した画素列間の第四補間画素値を該第一補間画素値と該第二補間画素値から補間演算処理により求める第四演算回路と、
該第二演算部と該第三演算部で処理した画素列間の第五補間画素値を該第二補間画素値と該第三補間画素値から補間演算処理により求める第五演算回路と
を有することを特徴とする画像処理回路。
【請求項２】
該第一演算回路、該第二演算回路、または該第三演算回路は、
該画素値と該補間画素値との関係に基づく補間係数を該画素値と乗算する複数の乗算部と、
該複数の乗算部での乗算結果を加算する加算部と
を有することを特徴とする、請求項１に記載の画像処理回路。
【請求項３】
該乗算部は、
画素値を２進数で表し、指定回数ビットシフトを行うシフト演算部と、
該補間係数に応じて該シフト演算部のシフト回数をそれぞれ設定する制御部と、
該シフト演算部から出力されるシフト後の参照画素の画素値を該補間係数に応じて加減算する加減算部と
を有することを特徴とする、請求項２に記載の画像処理回路。
【請求項４】
行列状に並んだ画素値から補間画素値を求める画像処理回路と、
該画像処理回路の出力画素と元の入力画素との差分値を計算する差分器と、
該差分値を離散コサイン変換する離散コサイン変換部と、
該離散コサイン変換された該差分値を可変長符号化する可変長符号化部とを有し、該画像処理回路は、
列内の該画素値から補間演算処理により第一補間画素値を求める第一演算回路と、
該第一演算回路で処理を行う列に隣接した列内の該画素値から補間演算処理により第二補間画素値を求める第二演算回路と、
該第二演算回路で処理を行う列に隣接した列内の該画素値から補間演算処理により第三補間画素値を求める第三演算回路と、
該第一演算部と該第二演算部で処理した画素列間の第四補間画素値を該第一補間画素値と該第二補間画素値から補間演算処理により求める第四演算回路と、
該第二演算部と該第三演算部で処理した画素列間の第五補間画素値を該第二補間画素値と該第三補間画素値から補間演算処理により求める第五演算回路と
を有することを特徴とする画像符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画データの動き補償を行う画像処理回路および画像符号化装置に関する。
【背景技術】
【０００２】
動画データのフレーム間およびフレーム内の差分値に基づいてデータを圧縮し符号化する画像符号化技術が様々な分野で利用されている。フレームとは動画データを構成する一枚の静止画である。１つのフレームは複数のマクロブロックに分割される。全ての処理はマクロブロック単位で実行される。
【０００３】
画像の圧縮符号化によって動画データのデータサイズを小さくすることにより、限られた記憶容量を有する記憶媒体に対し、より長時間で高画質の動画データを記憶させることが出来る。動画圧縮の機能を有する画像符号化装置はハンディカメラなどの携帯機器にも実装されている。フレーム間およびフレーム内の差分値に基づいてデータサイズを圧縮し符号化する画像符号化技術としてＨ．２６４やＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）などがある（角野眞也ほか、Ｈ．２６４／ＡＶＣ教科書、株式会社インプレス、２００６）。
【０００４】
Ｈ．２６４は高精度の圧縮符号化を実現するため、フレーム間の差分値に基づく圧縮処理であるフレーム間予測処理を行う。フレーム間予測処理において、フレーム間の個々のマクロブロックにおける輝度の比較により、マクロブロックの移動量である動きベクトルを検出する。動きベクトルの検出の際にフレーム間予測処理における精度を向上させるため、整数精度の輝度参照画像から補間処理によって仮想的に求めた分数精度の輝度参照画像を用い、符号化対象画像の動き検出が行われる。
【０００５】
動き検出で検出した動きベクトルを基に、参照画像フレームから補間処理によって輝度と色差の補間画素を生成する。参照画像フレーム中の複数の輝度また色差の参照画素から輝度と色差の補間画素を生成することを動き補償処理という。補間画素の補間関数は輝度と色差とで異なる。本発明は色差補間画素の生成に関する発明であるため、以下輝度の補間画素の説明は省略する。
【０００６】
色差の補間画素は検出した動きベクトルの座標に近接する４つの参照画素から生成される。１つの補間画素は１つのＰＵ（Ｐｒｏｃｃｅｓｉｎｇ  Ｕｎｉｔ）と呼ばれる画素演算部が演算処理を行う。１つのマクロブロックにおいて計算すべき補間画素は複数存在する。
【０００７】
補間画素の演算処理速度を上げるため、画像符号化装置は複数の画素演算部により複数の補間画素を並列して同時に演算する。画像の圧縮精度を向上させながら高速な圧縮符号化処理を実現するには、画素演算部の並列数をより多くする必要がある。並列数を多くするほど補間画素の演算処理速度は速くなるが、画素演算部の実装面積は大きくなる。
【０００８】
以下の特許文献１には画像符号化装置における予測画素と参照画素との差分を求める回路において、共通部分を共有化する技術が開示されている。特許文献２には画像複合化装置においてメモリ部分を共有化する技術が開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特許第２８４８０５７号公報
【特許文献２】特開平０８−１３０７４２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明の一実施例では、実装面積の小さい画像処理回路を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、行列状に並んだ画素の画素値から補間画素値を求める画像処理回路は、列内の該画素値から補間演算処理により第一補間画素値を求める第一演算回路と、該第一演算回路で処理を行う列に隣接した列内の該画素値から補間演算処理により第二補間画素値を求める第二演算回路と、該第二演算回路で処理を行う列に隣接した列内の該画素値から補間演算処理により第三補間画素値を求める第三演算回路と、該第一演算部と該第二演算部で処理した画素列間の第四補間画素値を該第一補間画素値と該第二補間画素値から補間演算処理により求める第四演算回路と、該第二演算部と該第三演算部で処理した画素列間の第五補間画素値を該第二補間画素値と該第三補間画素値から補間演算処理により求める第五演算回路とを有する。
【発明の効果】
【００１２】
実施形態によれば、実装面積の小さい画像処理回路を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】画像符号化装置のブロック図である。
【図２】参照画素と補間画素とのイメージ図である。
【図３】複数の参照画素と複数の補間画素とのイメージ図である。
【図４】画像処理回路の詳細ブロック図である。
【図５】画素演算部における乗算部のブロック図である。
【図６】従来技術による実装面積と本発明による実装面積との比較グラフである。
【発明を実施するための形態】
【００１４】
以下、本実施の形態について説明する。なお、各実施形態における構成の組み合わせも本発明の実施形態に含まれる。
【００１５】
図１は本実施の形態に係る画像符号化装置１の構成の一例を示すブロック図である。画像符号化装置１は入力された動画データを圧縮し符号化する。画像符号化装置１は差分器５、ＤＣＴ変換部３、量子化部１０、逆量子化部１７、逆ＤＣＴ変換部７、加算器１８、フレーム内予測部１１、フレーム間予測部１２、可変長符号化部１３を有する。ここでＤＣＴとは離散コサイン変換（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）であり、離散信号を周波数領域の信号に変換する処理である。
【００１６】
フレーム内予測部１１は予測対象ブロックの予測計算に用いる符号化済みの隣接ブロックの画素１６から予測画像を生成し、生成した予測画像と元の入力画像２との差分値が最も小さい予測モードを求めるフレーム内予測処理を行う。フレーム内予測部１１は差分値が最も小さい予測モードを選択することにより、最も正確な画像予測が可能な予測モードを決定する。フレーム内予測部１１は決定したモードの予測画素とコストを算出し判定部６へ出力する。ここでコストとは、元の入力画像２と生成した予測画像との差分値である。
【００１７】
フレーム間予測部１２は予測対象ブロックに対し、前方、後方、あるいはその両方のフレームから予測画像を生成し、生成した予測画像と元の入力画像２との差分を求めるフレーム間予測処理を行う。フレーム間予測部１２は入力画像２および参照画像８２を入力とし、予測画像ブロックの生成を行う。
【００１８】
フレーム間予測部１２は動き検出回路２０、画像処理回路２１を有する。動き検出回路２０は入力画像２および参照画像８２の輝度データから動きベクトル２２およびコストを算出する。画像処理回路２１は算出した動きベクトル２２および参照画像８２から、補間演算された輝度と色差データを有する予測画素を算出しコストと共に判定部６へ出力する動き補償回路として動作する。
【００１９】
判定部６はフレーム間予測部１２およびフレーム内予測部１１が出力するコストのうち、コストの小さい方をマクロブロックのモードとして判定する。なお、画像を予測画像８として出力する。
【００２０】
差分器５は入力画像２とその予測結果である予測画像８との差分を計算し、その差分値を予測誤差８０として出力する。ここで予測画像８はフレーム間予測処理またはフレーム内予測処理において隣接フレームのマクロブロックあるいは同一フレームの隣接マクロブロックに基づいて生成された画像である。画像符号化装置１は各予測処理により生成された予測画像８と予測処理前の入力画像２との差分を符号化し出力する。差分が小さくなるほど画像の圧縮率は高くなる。
【００２１】
ＤＣＴ変換部３は予測誤差８０を離散コサイン変換により周波数領域に変換する。量子化部１０は変換したＤＣＴ係数値に対し、量子化ステップで除算した結果を整数値に丸める処理をする。
【００２２】
可変長符号化部１３は整数値に丸め込まれたＤＣＴ係数値のうち、出現頻度の高い情報を短い符号で表現し、出現頻度の低い情報を長い符号で表現することにより、全体として出力ビット数を減らす処理を行い、符号化データ１９を出力する。
【００２３】
逆量子化部１７は量子化部１０により量子化された予測誤差を逆量子化する。逆量子化した予測誤差は逆ＤＣＴ変換部７により逆変換され、ＤＣＴ係数値に変換される前の予測誤差８１となる。
【００２４】
加算器１８はフレーム内予測部１１又はフレーム間予測部１２により生成された予測画像８と予測誤差８１とを加算し画像１６を出力する。画像１６はフィルタ部９に入力される。フィルタ部９はデブロッキング・フィルタとも呼ばれ、画像１６のブロックひずみを減少させる。フィルタ部９はブロックひずみ処理後の画像を復元画像１５として出力する。復元画像１５はフレーム間予測部１２によるフレーム間予測処理の参照画像として用いられる。
【００２５】
入力画像２が入力されると、フレーム間予測部１２によりフレーム間予測処理が実行され、フレーム内予測部１１によりフレーム内予測処理が実行される。判定部６はフレーム間予測処理結果およびフレーム内予測処理結果のうち最も入力画像２との差分値が小さい予測画像８を出力する。
【００２６】
差分器５は生成された予測画像８と入力画像２との差分を計算し予測誤差８０をＤＣＴ変換部３に出力する。予測誤差８０はＤＣＴ変換部３により変換され量子化部１０で量子化される。量子化された予測画像８は可変長符号化部１３により符号化され、符号化データ１９として出力される。
【００２７】
量子化部１０は量子化した予測誤差を可変長符号化部１３に出力すると共に、逆量子化部１７へ出力する。逆量子化部１７により逆量子化された予測誤差は逆ＤＣＴ変換部７により周波数領域から時間領域に変換される。加算器１８は時間領域に変換された予測誤差と判定部６から出力された予測画像８とを加算し、予測処理前の画像１６を復号生成する。
【００２８】
以上の動作により画像符号化装置１は、フレーム間予測処理とフレーム内予測処理により動画を圧縮することが出来る。
【００２９】
図２は参照画素Ａ、Ｂ、Ｃ、Ｄと補間画素３０とのイメージ図である。本実施例において補間画素３０は色差データである。補間画素３０は近接する参照画素Ａ、Ｂ、Ｃ、Ｄを１／８画素精度で線形補間して重み付けし生成する。Ｈ．２６４規格において参照画素Ａ、Ｂ、Ｃ、Ｄは整数画素信号である。１／８画素精度とは、参照画素Ａ、Ｂ間および参照画素Ａ、Ｃ間を８分割した距離を最小単位として補間画素３０の画素値を補間演算できることを示す。
【００３０】
図２において補間画素３０の補間係数は参照画素Ａを基準として定義されている。補間画素３０は参照画素Ａに対し、参照画素Ｂの方向へｄｘ、参照画素Ｃの方向へｄｙの距離に位置する。ｄｘは行方向に配置された参照画素Ａ、Ｂまたは参照画素Ｃ、Ｄと補間画素３０との関係から決まる補間係数である。ｄｙは列方向に配置された参照画素Ａ、Ｃまたは参照画素Ｂ、Ｄと補間画素３０との関係から決まる補間係数である。補間係数ｄｘ、ｄｙはそれぞれ０から８の整数である。図２の条件において、補間画素３０の色差データは、補間画素３０＝｛（８−ｄｘ）×（８−ｄｙ）×Ａ＋ｄｘ×（８−ｄｙ）×Ｂ＋（８−ｄｘ）×ｄｙ×Ｃ＋ｄｘ×ｄｙ×Ｄ＋３２｝＞＞６として重み付けにより補間演算される。ここで‘＞＞’は右方向にビットシフトする演算を示し、‘＞＞６’は６ビット右シフト演算することを示す。
【００３１】
なお、本実施例は参照画素Ａを基準としているが、参照画素Ｂ、Ｃ、Ｄを基準としても同様の計算により補間画素３０の画素値を求めることが出来る。
【００３２】
図３は参照画像８２における複数の参照画素と複数の補間画素とのイメージ図である。図３は１つのマクロブロックである参照画像８２の一部である。参照画像８２を構成する参照画素Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊ、Ｍ、Ｎは行列状に並んでいる。参照画像８２の列８３は参照画素Ａ、Ｃ、Ｉを有する。列８４は参照画素Ｂ、Ｄ、Ｊを有する。列８５は参照画素Ｅ、Ｇ、Ｍを有する。列８６は参照画素Ｆ、Ｈ、Ｎを有する。
【００３３】
参照画像８２において、補間画素３１は補間画素３０に隣接する補間対象画素である。補間画素３１の画素値は補間画素３０の画素値と同様に、左上の参照画素Ｂを基準として計算される。補間画素の画素値を演算する画素演算部が複数ある場合、画像符号化装置１は補間画素３０、３１を同時に計算することが出来る。
【００３４】
補間画素３０、３１を同時計算する場合、参照画素Ａを基準とする補間画素３０の補間係数と、参照画素Ｂを基準とする補間画素３１の補間係数は同じである。よってそれぞれの補間画素の画素値の計算式は、補間画素３０＝｛（８−ｄｘ）×（８−ｄｙ）×Ａ＋ｄｘ×（８−ｄｙ）×Ｂ＋（８−ｄｘ）×ｄｙ×Ｃ＋ｄｘ×ｄｙ×Ｄ＋３２｝＞＞６、補間画素３１＝｛（８−ｄｘ）×（８−ｄｙ）×Ｂ＋ｄｘ×（８−ｄｙ）×Ｅ＋（８−ｄｘ）×ｄｙ×Ｄ＋ｄｘ×ｄｙ×Ｇ＋３２｝＞＞６となる。
【００３５】
図３において、補間画素３０の画素値は列８３の参照画素Ａ、Ｃの画素値と列８４の参照画素Ｂ、Ｄの画素値を参照して演算される。補間画素３１の画素値は列８４の参照画素Ｂ、Ｄの画素値と列８５の参照画素Ｅ、Ｇの画素値を参照して演算される。よって２つの補間画素３０、３１の画素値は列８４の参照画素Ｂ、Ｄの画素値を共通に参照して演算される。共通に参照される参照画素Ｂ、Ｄに着目して上記補間画素の画素値の計算式を変形すると、補間画素３０＝［（８−ｄｘ）×｛（８−ｄｙ）×Ａ＋ｄｙ×Ｃ｝＋ｄｘ×｛（８−ｄｙ）×Ｂ＋ｄｙ×Ｄ｝＋３２］＞＞６、補間画素３１＝［（８−ｄｘ）×｛（８−ｄｙ）×Ｂ＋ｄｙ×Ｄ｝＋ｄｘ×｛（８−ｄｙ）×Ｅ＋ｄｙ×Ｇ｝＋３２］＞＞６となる。
【００３６】
変形後の補間画素３０、３１の画素値の計算式において、２つの式は｛（８−ｄｙ）×Ｂ＋ｄｙ×Ｄ｝を共通項として有する。よって参照画素Ｂ、Ｄに係る共通項を演算する演算回路を２つの補間画素３０、３１に係る画素演算部において共有することにより、２つの補間画素３０、３１の画素値を別々の画素演算部で計算するときに比べて画素演算部の実装面積を小さくすることが出来る。
【００３７】
図４は画像処理回路２１の詳細ブロック図である。本実施例において画像処理回路２１は係数生成部４０、画素演算部４１、４２を有する。
【００３８】
係数生成部４０は基準となる参照画素に対する補間画素の補間係数ｄｘ、ｄｙに基づいてそれぞれの参照画素Ａ、Ｂ、Ｃ、Ｄの画素値に積算する係数を生成する。減算部３８は補間係数ｄｘおよび整数‘８’を入力とし、その差分である‘８−ｄｘ’を出力する。また、減算部３９は補間係数ｄｙおよび整数‘８’を入力とし、その差分である‘８-ｄｙ’を出力する。
【００３９】
画素演算部４１は参照画素Ａ、Ｂ、Ｃ、Ｄの画素値に基づいて補間画素３０の画素値を演算し出力する。
画素演算部４２は参照画素Ｂ、Ｄ、Ｅ、Ｇの画素値に基づいて補間画素３１の画素値を演算し出力する。画素演算部４１、４２はそれぞれ演算回路８７、８８、４３を有する。画素演算部４１、４２は演算回路４３を共有する。演算回路４３は補間画素３０、３１の補間画素演算において共有される参照画素Ｂ、Ｄを入力とする。以下に画素演算部４１および演算回路４３の詳細構成について説明する。
【００４０】
画素演算部４１において、演算回路８７は図３における列８３の参照画素Ａ、Ｃの画素値より列方向の補間係数ｄｙ、‘８−ｄｙ’に基づく重み付けを行い、参照画素Ａ、Ｃの画素値から画素値‘（８−ｄｙ）×Ａ＋ｄｙ×Ｃ’を補間演算し出力する。画素演算部４１における演算回路８７は乗算部４４、４５、加算部４６を有する。乗算部４４は参照画素Ａの画素値および‘８−ｄｙ’を入力とし、（８−ｄｙ）×Ａを出力する。乗算部４５は参照画素Ｃの画素値およびｄｙを入力とし、ｄｙ×Ｃを出力する。加算部４６は乗算部４４、４５から出力される（８−ｄｙ）×Ａ、ｄｙ×Ｃを入力とし、‘（８−ｄｙ）×Ａ＋ｄｙ×Ｃ’を出力する。
【００４１】
演算回路４３は、図３の列８４において補間画素３０、３１の画素値の演算に共通に用いる参照画素Ｂ、Ｄより列方向の補間係数ｄｙ、‘８−ｄｙ’に基づく重み付けを行い、参照画素Ｂ、Ｄの画素値から画素値‘（８−ｄｙ）×Ｂ＋ｄｙ×Ｄ’を補間演算し出力する。演算回路４３は乗算部５１、５２、加算部５３を有する。乗算部５１は参照画素Ｂの画素値と補間係数‘８−ｄｙ’とを乗算し、（８−ｄｙ）×Ｂを出力する。乗算部５２は参照画素Ｄの画素値と補間係数ｄｙとを乗算し、ｄｙ×Ｄを出力する。加算部５３は２つの乗算部５１、５２の出力（８−ｄｙ）×Ｂとｄｙ×Ｄを加算し、画素値‘（８−ｄｙ）×Ｂ＋ｄｙ×Ｄ’を出力する。演算回路４３の出力する画素値は画素演算部４１、４２の演算回路８８にそれぞれ入力される。
【００４２】
演算回路８８は演算回路８７で求めた画素値と演算回路４３で求めた画素値より行方向の補間係数ｄｘ、‘８−ｄｘ’に基づく重み付けを行い、補間演算により補間画素３０の画素値を求める。演算回路８８は乗算部４７、４８、加算部４９を有する。乗算部４７は‘８−ｄｘ’と演算回路８７の出力である‘（８−ｄｙ）×Ａ＋ｄｙ×Ｃ’とを乗算し、（８−ｄｘ）｛（８−ｄｙ）×Ａ＋ｄｙ×Ｃ｝を出力する。乗算部４８はｄｘと演算回路４３の出力である‘（８−ｄｙ）×Ｂ＋ｄｙ×Ｄ’とを乗算し、ｄｘ×｛（８−ｄｙ）×Ｂ＋ｄｙ×Ｄ｝を出力する。
【００４３】
加算部４９は乗算部４７の出力（８−ｄｘ）｛（８−ｄｙ）×Ａ＋ｄｙ×Ｃ｝と乗算部４８の出力ｄｘ×｛（８−ｄｙ）×Ｂ＋ｄｙ×Ｄ｝と‘３２’を加算し‘（８−ｄｘ）｛（８−ｄｙ）×Ａ＋ｄｙ×Ｃ｝＋ｄｘ×｛（８−ｄｙ）×Ｂ＋ｄｙ×Ｄ｝＋３２’を出力する。シフト演算部５０は加算部４９の出力を６ビット右シフトし、補間画素３０の色差データである［（８−ｄｘ）｛（８−ｄｙ）×Ａ＋ｄｙ×Ｃ｝＋ｄｘ×｛（８−ｄｙ）×Ｂ＋ｄｙ×Ｄ｝＋３２］＞＞６を出力する。
【００４４】
画素演算部４２は参照画素Ｂ、Ｄ、Ｅ、Ｇの画素値を入力とし、補間画素３１の画素値である色差データを出力する。画素演算部４１に対し画素演算部４２の参照画素は異なるが、補間画素の画素値の演算処理内容は画素演算部４１と同じである。よって画素演算部４２について画素演算部４１と同一構成には同一番号を付し、その説明を省略する。
【００４５】
以上の通り、画素演算部４１と画素演算部４２は隣接する補間画素の演算において共通に使用する参照画素に係る共通項の演算回路を演算回路４３として共有する。画素演算部における演算回路の一部を共有化することにより、画素演算部をそれぞれ別個独立に実装する場合に比べて画素演算部全体の実装面積を小さくすることが出来る。
【００４６】
さらに３以上の画素演算部を並列に実装した場合、演算回路８７には隣接する画素演算部と共有する列の参照画素が入力される。よって演算回路４３と同様に隣接する画素演算部同士で演算回路８７を共有することが出来る。
【００４７】
図５は演算回路４３における乗算部５１の詳細ブロック図である。図５のＡは乗算部５１のブロック図を示し、図５のＢは乗算部５１の制御部６０における制御テーブル７１を示す。
【００４８】
乗算部５１はシフト演算部６１、６２、６３、６５、制御部６０、マルチプレクサ６４、６６、加減算部６７を有する。
【００４９】
乗算部５１に入力された参照画素Ｂは、マルチプレクサ６４、６６、シフト演算部６１、６２、６３、６５に入力される。本実施例において参照画素は８ビットの２進数である。
【００５０】
シフト演算部６１、６２、６３、６５は入力された参照画素Ｂの画素値をあらかじめ指定された回数ビットシフトさせる。シフト演算部６１、６５は入力された参照画素Ｂを１ビット左シフトさせて出力する。シフト演算部６２は入力された参照画素Ｂを２ビット左シフトさせて出力する。シフト演算部６３は入力された参照画素Ｂを３ビット左シフトさせて出力する。
【００５１】
制御部６０は補間係数‘８−ｄｙ’に応じてシフト演算部のシフト回数を設定する。本実施例において、制御部６０は補間係数‘８−ｄｙ’に応じて複数のシフト演算部６１、６２、６３、６５から出力されたシフト演算後の画素値から１つの画素値を選択する。制御部６０は図５のＢに示す制御テーブル７１を記憶する。制御部６０は入力信号‘８−ｄｙ’の値に応じてマルチプレクサ６４、６６、加減算部６７に対し制御信号６８、６９、７０を出力する。
【００５２】
マルチプレクサ６４は入力端子０から４に入力された信号のうち、制御信号６８の値に応じて１つの入力信号を選択し出力する。制御信号６８は５つの入力端子のうちいずれかを指定可能な、例えば３ビットの信号である。マルチプレクサ６６は入力端子０から２に入力された信号のうち、制御信号６９の値に応じて１つの入力信号を選択し出力する。制御信号６９は３つの入力端子のうちいずれかを指定可能な、例えば２ビットの信号である。
【００５３】
加減算部６７は補間係数‘８−ｄｙ’に応じてマルチプレクサ６４、６６から出力された値を加算または減算し、その結果である‘（８−ｄｙ）×Ｂ’を出力する。制御部６０は補間係数‘８−ｄｙ’に応じて制御信号７０の値を設定する。加減算部６７は制御信号７０の値に応じてマルチプレクサ６４、６６から出力された値を加算または減算する。
【００５４】
図５のＢは制御部６０に記憶された制御テーブル７１である。制御テーブル７１において、列７２は乗算部５１に入力される‘８−ｄｙ’の値である。
【００５５】
列７３は‘８−ｄｙ’の値に応じて制御部６０から出力される制御信号６８の値である。マルチプレクサ６４は制御信号６８の値に対応した入力端子から入力される信号を選択し出力する。
【００５６】
列７４は‘８−ｄｙ’の値に応じて制御部６０から出力される制御信号６９の値である。マルチプレクサ６６は制御信号６９の値に対応した入力端子から入力される信号を選択し出力する。
【００５７】
列７５は‘８−ｄｙ’の値に応じて制御部６０から出力される制御信号７０の値である。加減算部６７は制御信号が‘０’の場合はマルチプレクサ６４の出力値にマルチプレクサ６６の出力値を加算し、制御信号が‘１’の場合はマルチプレクサ６４の出力値からマルチプレクサ６６の出力値を減算する。
【００５８】
列７６は‘８−ｄｙ’の値に応じて加減算部６７から出力される値である。加減算部６７から出力される値は乗算部５１に入力される‘８−ｄｙ’と参照画素Ｂとの乗算値に対応する。
【００５９】
例えば‘８-ｄｙ’が‘０’の場合、制御部６０は制御信号６８として‘０’を出力し、制御信号６９として‘０’を出力し、制御信号７０として‘０’を出力する。これによりマルチプレクサ６４は入力端子０の入力値‘０’を出力し、マルチプレクサ６６は入力端子０の入力値‘０’を出力し、加減算部６７はマルチプレクサ６４、６６からの出力値を加算した結果である‘０’を出力する。
【００６０】
‘８-ｄｙ’が‘１’の場合、制御部６０は制御信号６８として‘１’を出力し、制御信号６９として‘０’を出力し、制御信号７０として‘０’を出力する。これによりマルチプレクサ６４は入力端子１の入力値‘Ｂ’を出力し、マルチプレクサ６６は入力端子０の入力値‘０’を出力し、加減算部６７はマルチプレクサ６４、６６からの出力値を加算した結果である‘Ｂ’を出力する。
【００６１】
‘８-ｄｙ’が‘２’の場合、制御部６０は制御信号６８として‘２’を出力し、制御信号６９として‘０’を出力し、制御信号７０として‘０’を出力する。これによりマルチプレクサ６４は入力端子２の入力値‘Ｂ＜＜１’を出力し、マルチプレクサ６６は入力端子０の入力値‘０’を出力し、加減算部６７はマルチプレクサ６４、６６からの出力値を加算した結果である‘Ｂ＜＜１’を出力する。
【００６２】
‘８-ｄｙ’が‘３’の場合、制御部６０は制御信号６８として‘２’を出力し、制御信号６９として‘１’を出力し、制御信号７０として‘０’を出力する。これによりマルチプレクサ６４は入力端子２の入力値‘Ｂ＜＜１’を出力し、マルチプレクサ６６は入力端子１の入力値‘Ｂ’を出力し、加減算部６７はマルチプレクサ６４、６６からの出力値を加算した結果である‘（Ｂ＜＜１）＋Ｂ’を出力する。
【００６３】
‘８-ｄｙ’が‘４’の場合、制御部６０は制御信号６８として‘３’を出力し、制御信号６９として‘０’を出力し、制御信号７０として‘０’を出力する。これによりマルチプレクサ６４は入力端子３の入力値‘Ｂ＜＜２’を出力し、マルチプレクサ６６は入力端子０の入力値‘０’を出力し、加減算部６７はマルチプレクサ６４、６６からの出力値を加算した結果である‘Ｂ＜＜２’を出力する。
【００６４】
‘８-ｄｙ’が‘５’の場合、制御部６０は制御信号６８として‘３’を出力し、制御信号６９として‘１’を出力し、制御信号７０として‘０’を出力する。これによりマルチプレクサ６４は入力端子３の入力値‘Ｂ＜＜２’を出力し、マルチプレクサ６６は入力端子１の入力値‘Ｂ’を出力し、加減算部６７はマルチプレクサ６４、６６からの出力値を加算した結果である‘（Ｂ＜＜２）＋Ｂ’を出力する。
【００６５】
‘８-ｄｙ’が‘６’の場合、制御部６０は制御信号６８として‘３’を出力し、制御信号６９として‘２’を出力し、制御信号７０として‘０’を出力する。これによりマルチプレクサ６４は入力端子３の入力値‘Ｂ＜＜２’を出力し、マルチプレクサ６６は入力端子２の入力値‘Ｂ＜＜１’を出力し、加減算部６７はマルチプレクサ６４、６６からの出力値を加算した結果である‘（Ｂ＜＜２）＋（Ｂ＜＜１）’を出力する。
【００６６】
‘８-ｄｙ’が‘７’の場合、制御部６０は制御信号６８として‘４’を出力し、制御信号６９として‘１’を出力し、制御信号７０として‘１’を出力する。これによりマルチプレクサ６４は入力端子４の入力値‘Ｂ＜＜３’を出力し、マルチプレクサ６６は入力端子１の入力値‘Ｂ’を出力し、加減算部６７はマルチプレクサ６４の出力からマルチプレクサ６６の出力値を減算した結果である‘（Ｂ＜＜３）−Ｂ’を出力する。
【００６７】
以上の通り乗算部５１はシフト演算部と加減算部との組み合わせにより実装することができる。演算回路４３における他方の乗算部５２についても乗算部５１と同様の構成にすることが出来る。
【００６８】
以上の通り演算回路４３を構成する乗算部５１、５２をディジタル乗算器で実装するのではなく、シフト演算部と加減算部で実現することにより、演算回路４３の実装面積を小さくすることが出来る。また、画素演算部４１、４２における乗算部４４、４５においても同様にシフト演算部と加減算部で実現することにより、画素演算部４１、４２の実装面積を小さくすることが出来る。
【００６９】
なお、本実施例において補間画素が横方向に隣接している場合について記載したが、補間画素が縦方向に隣接している場合であっても同様に回路の実装面積を小さくすることが出来る。また本実施例では２つの補間画素を同時に演算する場合について記載したが、画素演算部が３つ以上であっても、それぞれの補間画素を演算するのに共有する参照画素について回路を共有し、画素演算部の実装面積をより小さくすることができる。
【００７０】
図６は画素演算部の並列数を多くしたときの、従来技術による実装面積と本発明による実装面積との比較グラフである。図６において、グラフ９１は従来技術における画素演算部の並列数と回路面積との関係を示したものであり、グラフ９２は本実施例における画素演算部の並列数と回路面積との関係を示したものである。ゲート１つ当りの回路面積はすべて同じとする。
【００７１】
図６より、画素演算部の並列数を増やすほど回路の共有面積が増え、画素演算部全体の実装面積削減効果が大きくなる。より具体的には、画素演算部が２並列の場合には回路面積を１７％減らすことが出来、４並列の場合には２４％減らすことが出来、８並列の場合には２８％減らすことが出来る。
【符号の説明】
【００７２】
１  画像符号化装置
２  入力画像
１１  フレーム内予測部
１２  フレーム間予測部
２０  動き検出回路
２１  画像処理回路
２２  動きベクトル
３０、３１  補間画素
４０  係数生成部
４１、４２  画素演算部
４３、８７、８８  演算回路
６４、６６  マルチプレクサ
【図１】
2011049619.tif 000003
【図２】
2011049619.tif 000004
【図３】
2011049619.tif 000005
【図４】
2011049619.tif 000006
【図５】
2011049619.tif 000007
【図６】
2011049619.tif 000008