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