(57)【特許請求の範囲】
【請求項１】
処理対象ブロックを分割した第１ブロック毎の画素値の平均値と、参照画像内の前記第１ブロックと同じサイズの第２ブロック毎の画素値の平均値とを計算する第１計算部と、
前記第１計算部により計算された平均値を記憶する記憶部と、
前記処理対象ブロック内の動きベクトルの検出対象ブロックにおける画素値の平均値を前記第１ブロックの平均値に基づいて計算し、前記検出対象ブロックに対応する前記参照画像内の参照対象ブロックにおける画素値の平均値を前記第２ブロックの平均値に基づいて計算する第２計算部と、
前記検出対象ブロックの各画素値から前記第１ブロックの平均値を減算した各画素値と、前記参照対象ブロックの各画素値から前記第２ブロックの平均値を減算した各画素値との差分、及び前記検出対象ブロックの平均値と前記参照対象ブロックの平均値との差分に基づき、動きベクトルの評価値を計算する第３計算部と、
前記評価値に基づき動きベクトルを選択する選択部と、
を備える動きベクトル検出装置。
【請求項２】
前記第３計算部は、
前記第１ブロックの平均値を減算した各画素値と前記第２ブロックの平均値を減算した各画素値との差分絶対値和又は差分二乗和に、前記検出対象ブロックの平均値と前記参照対象ブロックの平均値との差分に定数を乗算した値を加算した値を前記評価値とする請求項１記載の動きベクトル検出装置。
【請求項３】
前記記憶部に記憶された平均値を用いて小数精度の動きベクトルに対応する参照画像の平均値を計算する第４計算部をさらに備え、
前記第３計算部は、
前記第４計算部により計算された平均値を用いて小数精度の動きベクトルの評価値を計算する請求項１又は２記載の動きベクトル検出装置。
【請求項４】
処理対象ブロックを分割した第１ブロック毎の画素値の平均値と、参照画像内の前記第１ブロックと同じサイズの第２ブロック毎の画素値の平均値とを計算し、
計算された前記平均値を記憶部に記憶し、
前記処理対象ブロック内の動きベクトルの検出対象ブロックにおける画素値の平均値を前記第１ブロックの平均値に基づいて計算し、前記検出対象ブロックに対応する前記参照画像内の参照対象ブロックにおける画素値の平均値を前記第２ブロックの平均値に基づいて計算し、
前記検出対象ブロックの各画素値から前記第１ブロックの平均値を減算した各画素値と、前記参照対象ブロックの各画素値から前記第２ブロックの平均値を減算した各画素値との差分、及び前記検出対象ブロックの平均値と前記参照対象ブロックの平均値との差分に基づき、動きベクトルの評価値を計算し、
前記評価値に基づき動きベクトルを選択する動きベクトル検出方法。
【請求項５】
処理対象ブロックを分割した第１ブロック毎の画素値の平均値と、参照画像内の前記第１ブロックと同じサイズの第２ブロック毎の画素値の平均値とを計算し、
計算された前記平均値を記憶部に記憶し、
前記処理対象ブロック内の動きベクトルの検出対象ブロックにおける画素値の平均値を前記第１ブロックの平均値に基づいて計算し、前記検出対象ブロックに対応する前記参照画像内の参照対象ブロックにおける画素値の平均値を前記第２ブロックの平均値に基づいて計算し、
前記検出対象ブロックの各画素値から前記第１ブロックの平均値を減算した各画素値と、前記参照対象ブロックの各画素値から前記第２ブロックの平均値を減算した各画素値との差分、及び前記検出対象ブロックの平均値と前記参照対象ブロックの平均値との差分に基づき、動きベクトルの評価値を計算し、
前記評価値に基づき動きベクトルを選択する、
処理をコンピュータに実行させるための動きベクトル検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動きベクトルを検出する動きベクトル検出装置、動きベクトル検出方法及び動きベクトル検出プログラムに関する。
【背景技術】
【０００２】
近年、動画像データは、データ量が大きいため、送信装置から受信装置へ伝送される際、あるいは記憶装置に格納される際、圧縮符号化処理が施されることが一般的である。代表的な動画像の圧縮符号化方式として、ＩＳＯ／ＩＥＣ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｔａｎｄａｒｄｉｚａｔｉｏｎ  Ｏｒｇａｎｉｚａｔｉｏｎ／Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｅｌｅｃｔｒｏｔｅｃｈｎｉｃａｌ  Ｃｏｍｍｉｓｓｉｏｎ）で策定されたＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）−２／ＭＰＥＧ−４が広く利用されている。また、ＩＴＵ（国際電気通信連合）とＩＳＯ／ＩＥＣのＭＰＥＧによって策定された、Ｈ．２６４／ＡＶＣ（Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）が知られている。
【０００３】
これらの圧縮符号化方式は、動き補償フレーム間予測と直交変換とを組み合わせたハイブリッド符号化方式である。符号化対象のフレームは、水平１６画素×垂直１６画素のマクロブロックを処理単位として符号化される。
【０００４】
動き補償フレーム間予測では、マクロブロックを横ｍ画素、縦ｎ画素（ｍ＝４，８，１６，ｎ＝４，８，１６）のブロックに分割し、各ブロック（符号化ブロック）と最も類似する画像を参照フレームの中から検出する。
【０００５】
符号化ブロックを再現するための情報として、ブロックのサイズ（マクロブロックタイプ）、参照ブロックの位置（動きベクトル）、符号化ブロックと参照ブロックの差分画像（差分ブロック）が符号化される。
【０００６】
これにより、符号化ブロックそのものを直接符号化する場合よりも情報量を大幅に削減することができる。差分ブロックは、直交変換による周波数成分への変換、量子化処理によるビット精度の丸め処理がなされ、各動画像符号化規格で定められた手順に従ってエントロピー符号化し、ビット列（出力データであるビットストリーム）に変換される。
【０００７】
また、これらの圧縮符号化方式は、動きベクトルの画素精度として小数精度となることを認めている。小数精度の動きベクトルに対応する参照画像は、参照フレームの画像に対してフィルタリングによる補間処理で生成した画像となる。
【０００８】
動きベクトル検出では、膨大な動きベクトルの候補の中から、ビットストリームのサイズがより小さくなる動きベクトルを選択する。一方、選択可能な動きベクトル候補の１つ１つに対して差分画像の計算、直交変換、エントロピー符号化を行ってビットストリームを計算して動きベクトルを選択することは演算量の観点から非現実的である。
【０００９】
ビットストリームサイズの大小を表す指標として差分絶対値和（ＳＡＤ）が広く用いられている。ＳＡＤは、差分画像の画素値の絶対値を全て足し集めた値である。ＳＡＤが小さいほど符号化対象ブロックと参照画像のブロックとの間で各画素値の値が似ていることになる。例えば、符号化対象ブロックと参照画像のブロックが完全に一致する場合、ＳＡＤは０となる。
【００１０】
しかしながら、フラッシュの点灯やフェードイン、フェードアウトなどにより、処理対象フレームと参照フレームとの間でフレーム全体の平均輝度値が著しく異なる場合、どの位置の参照画像に対してもＳＡＤは大きい値となってしまう。よって、ＳＡＤとビットストリームサイズの相関は低くなり、誤判定が生ずる。
【００１１】
そこで、動きベクトル検出対象のブロックと評価対象の参照画像のブロックとのそれぞれの直流成分（画素の平均値）を減じた画像間でＳＡＤを計算することにより、平均輝度値が異なる状況下でも誤判定の機会を減らす技術がある。
【００１２】
また、動きベクトル選択の評価値として直流成分と交流成分の加重平均、または直流成分とアクティビティの加重平均を用いて、すべての候補ベクトルに対して直流成分、交流成分、アクティビティを計算する技術がある。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開平１１−２４３５５１号公報
【特許文献２】特開平１０−６６０９３号公報
【特許文献３】特開平７−８７４９９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
しかしながら、従来技術では、差分画像を周波数変換して得られる交流成分（ＡＣ係数）が量子化処理、エントロピー符号化処理されて生成されるビットストリームのサイズのみを評価して動きベクトルを選択していることに相当する。この選択方法だと、差分画像を直交変換した後の直流成分（ＤＣ係数）がエントロピー符号化されたときのビットストリームサイズについては考慮されていない。
【００１５】
直流成分は、もっとも小さな量子化スケールで量子化される係数であり、エントロピー符号化後のビットストリームサイズがその他の係数よりも大きくなるため、直流成分の評価は重要であると考えられる。
【００１６】
そこで、開示の技術は、上記課題に鑑みてなされたものであり、エントロピー符号化後の符号量がより小さくなるような動きベクトルを検出することができる動きベクトル検出装置、動きベクトル検出方法及び動きベクトル検出プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
開示の一態様における動きベクトル検出装置は、処理対象ブロックを分割した第１ブロック毎の画素値の平均値と、参照画像内の前記第１ブロックと同じサイズの第２ブロック毎の画素値の平均値とを計算する第１計算部と、前記第１計算部により計算された平均値を記憶する記憶部と、前記処理対象ブロック内の動きベクトルの検出対象ブロックにおける画素値の平均値を前記第１ブロックの平均値に基づいて計算し、前記検出対象ブロックに対応する前記参照画像内の参照対象ブロックにおける画素値の平均値を前記第２ブロックの平均値に基づいて計算する第２計算部と、前記検出対象ブロックの各画素値から前記第１ブロックの平均値を減算した各画素値と、前記参照対象ブロックの各画素値から前記第２ブロックの平均値を減算した各画素値との差分、及び前記検出対象ブロックの平均値と前記参照対象ブロックの平均値との差分に基づき、動きベクトルの評価値を計算する第３計算部と、前記評価値に基づき動きベクトルを選択する選択部と、を備える。
【発明の効果】
【００１８】
開示の技術によれば、エントロピー符号化後の符号量がより小さくなるような動きベクトルを検出することができる。
【図面の簡単な説明】
【００１９】
【図１】実施例における動画像符号化装置の概略構成の一例を示すブロック図。
【図２】符号化の処理対象ブロックの一例を示す図。
【図３】マクロブロックとサブブロックとの関係を示す図。
【図４】動きベクトル検出部の構成の一例を示すブロック図。
【図５】参照画像における平均値計算の対象となるブロックの一例を示す図。
【図６】動きベクトルが指し示す予測画像の一例を示す図。
【図７】サブブロックに関するデータの一例を示す図。
【図８】小数精度の動きベクトルの候補の一例を示す図。
【図９】Ｈ．２６４の小数精度の画素値を算出する式を示す図。
【図１０】実施例における動き検出処理の一例を示すフローチャート。
【図１１】整数精度の動きベクトル検出処理の一例を示すフローチャート。
【図１２】小数精度の動きベクトル検出処理の一例を示すフローチャート。
【図１３】画像処理装置の構成の一例を示す図。
【発明を実施するための形態】
【００２０】
以下、添付図面を参照しながら実施例について詳細に説明する。
【００２１】
［実施例］
＜構成＞
図１は、実施例における動画像符号化装置１０の概略構成の一例を示すブロック図である。実施例における動画像符号化装置１０は、フレームメモリ１００と、動きベクトル検出部１０１と、符号化部１０２と、局所復号部１０３とを有する。
【００２２】
動画像符号化装置１０は、例えば、プロセッサやＤＳＰおよびメモリなどで構成されるコンピュータを、インストールしたプログラムで動作させることにより実現される。または、ハードワイヤードロジックにより構成された専用の回路やマッピング情報により回路構成が変更されるＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などにより実現される。また、動きベクトル検出部１０１は、動きベクトル検出装置として実装されてもよい。
【００２３】
フレームメモリ１００は、外部から順次供給される符号化の処理対象画像（処理対象の画像信号）を受け取り、記憶する。また、フレームメモリ１００は、局所復号部１０３から局所復号（ローカルデコード）された画像を記憶する。
【００２４】
フレームメモリ１００は、複数の画像を記憶する容量を有し、符号化処理が完了した画像、動き検出処理で参照画像として使用されなくなった画像を破棄する。これにより、順次新しい符号化の処理対象画像と局所復号された画像とが記憶されることになる。この局所復号された画像は、参照画像となりうる。
【００２５】
動きベクトル検出部１０１は、フレームメモリ１００から符号化の処理対象画像と参照画像のデータにアクセスし、動きベクトルを決定し、決定した動きベクトルを符号化部１０２へ出力する。動きベクトル検出部１０１は、所定サイズのブロック毎に画素値の平均を求め、記憶しておく。所定サイズは、例えば、最小処理単位とし、Ｈ．２６４では４×４である。動きベクトル検出部１０１は、このブロックの平均値を用いて動きベクトルを検出する。動きベクトル検出部１０１の詳細については、図４を用いて後述する。
【００２６】
ここで、符号化の処理対象ブロックについて説明する。図２は、符号化の処理対象ブロックの一例を示す図である。図２に示す例では、動きベクトル検出部１０１は、符号化の処理対象画像２００内の１６×１６画素のマクロブロックに対するサブブロック単位で処理を行う。ここでは、マクロブロックを処理対象ブロックとする。
【００２７】
図２では、符号化の処理対象画像２００と、画像を分割したマクロブロック２０１との関係を示す。処理対象画像２００は、水平１６画素×垂直１６画素のマクロブロック２０１でタイル状に区分けされる。
【００２８】
図２に示す例では、動きベクトル検出部１０１は、マクロブロック２０１を４×４のブロックに分割し、このブロック毎に画素値の平均値を算出する。このブロックの画素値の平均値をＡｃ（ｘ，ｙ）（ｘ＝０〜３，ｙ＝０〜３）で表す。例えば、ブロック２２０の平均値は、Ａｃ（３，３）で表される。
【００２９】
図３は、マクロブロックとサブブロックとの関係を示す図である。図３に示すように、マクロブロック２０１は、さらに１６×８（ブロック３０１、３１１）、８×１６（ブロック３０２、３１２）、８×８（ブロック３０３、３１３、３１４、３１５）のサブブロックに分割されうる。
【００３０】
また、８×８のサブブロックは、さらに、８×４（ブロック３０４、３１４）、４×８（ブロック３０５、３１５）、４×４（ブロック３０６、３１６、３２６、３３６）のサブブロックに分割されうる。
【００３１】
動きベクトル検出部１０１は、符号化対象画像２００内のマクロブロック毎に、全てのサブブロックに対してそれぞれ動きベクトルを１つ決定し、符号化部１０２へ出力する。
【００３２】
図１に戻り、符号化部１０２は、動きベクトル検出部１０１から動きベクトルを受け取り、フレームメモリ１００に記憶された処理対象画像と参照画像とにアクセスし、ブロック単位で直交変換処理、量子化処理、エントロピー符号化処理を行い、ビットストリームを生成して出力する。符号化部１０２は、参照画像となりうる画像の量子化後の符号化データを局所復号部１０３に出力する。
【００３３】
局所復号部１０３は、取得した符号化データに逆量子化処理、逆直交変換処理、動き補償処理、復号画像生成処理、デブロッキングフィルタ処理などを行って局所復号画像を生成し、フレームメモリ１０２に出力する。符号化部１０２や局所復号部１０３の処理については広く知られているので、ここでは詳細な説明を省略する。
【００３４】
次に、動きベクトル検出部１０１の構成について説明する。図４は、動きベクトル検出部１０１の構成の一例を示すブロック図である。図４に示す動きベクトル検出部１０１は、平均値計算部４００、平均値記憶部４０１、ブロック平均値計算部４０２、平均値差計算部４０４、評価値計算部４０５、動きベクトル選択部４０６を有する。また、動きベクトル検出部１０１は、小数精度の動きベクトルを検出するため、小数精度平均値計算部４０３、小数精度参照画像生成部４０７を有する。
【００３５】
（整数精度）
まずは、整数精度での動きベクトルの検出について説明する。平均値計算部４００は、処理対象ブロック（マクロブロック）の画素値の平均値を計算する。平均値計算部４００は、例えば、フレームメモリ１００から処理対象ブロックを読出し、この処理対象ブロックを水平４画素×垂直４画素のブロックに分割し、４×４画素のブロック毎に画素値の平均値を計算する。
【００３６】
処理対象ブロックの画素値をＣ（ｘ，ｙ）で表すとすると、１つの４×４画素のブロックの平均値Ａｃ（ｘ，ｙ）は、式（１）により計算される。
【００３７】
【数１】
0005637010.tif 000002
【００３８】
ただし、Ｃ（ｘ，ｙ）は、処理対象ブロックの左上の画素の座標を（０，０）としたときの（水平座標（ｘ座標），垂直座標（ｙ座標））の位置の画素値を表す。Ａｃ（ｉ，ｊ）は、ｘ座標が４ｉ〜４ｉ＋３、ｙ座標が４ｊ〜４ｊ＋３の位置の１６画素からなるブロックの画素の平均値を表す。
【００３９】
図２に示す例を用いると、Ａｃ（３，３）は、ブロック２２０で示される位置の４×４画素の平均値である。平均値計算部４００は、計算した１６個の平均値Ａｃ（ｘ，ｙ）を平均値記憶部４０１に書き込む。
【００４０】
また、平均値計算部４００は、フレームメモリ１００から参照画像内の探索範囲となる画像領域を読出し、この探索範囲の任意の位置を左上画素とする水平４画素×垂直４画素のブロック毎に平均値Ａｒ（ｍ，ｎ）を計算する。平均値計算部４００は、計算した平均値Ａｒ（ｍ，ｎ）を平均値記憶部４０１に書き込む。
【００４１】
参照画像の探索範囲の画素値をＲ（ｘ，ｙ）で表すと、１つの４×４画素のブロックの平均値Ａｒ（ｍ，ｎ）は、式（２）により計算される。
【００４２】
【数２】
0005637010.tif 000003
【００４３】
図５は、参照画像における平均値計算の対象となるブロックの一例を示す図である。図５に示す画像５００は参照画像を示し、ブロック５０１は処理対象ブロックと同じ位置にあるブロックを示し、画像領域５０２は動きベクトルの探索範囲を示す。
【００４４】
図５に示す例では、画像領域５０２は、ブロック５０１を基準に水平方向−１６〜＋１６、垂直方向−１６〜＋１６までの領域を探索範囲とする。しかし、この探索範囲は、この範囲に限られず、設計者が任意に設定することができる。
【００４５】
例えば、１６×１６画素のマクロブロックで動き検出を行う場合、このマクロブロックと、画像領域５０２内の１６×１６画素のブロックとの差分絶対値和が計算される。ここで、ブロック５０１の左上の画素を基準にすると、水平−１６〜＋３１、垂直−１６〜＋３１の画素がフレームメモリ１００から読み出される。
【００４６】
図５に示す例を、式（２）に適用すると、ｍ，ｎは次の範囲になる。
ｍ＝−１６，−１５，・・・，２７，２８
ｎ＝−１６，−１５，・・・，２７，２８
この範囲内で、平均値Ａｒ（ｍ，ｎ）が計算される。
【００４７】
平均値記憶部４０１は、平均値計算部４００により計算された処理対象ブロックを分割した各ブロックの平均値と、参照画像の画像領域内の各ブロックの平均値とを記憶する。
【００４８】
ブロック平均値計算部４０２は、動きベクトルの検出対象のサブブロック（以下、検出対象ブロックともいう）を１つずつ選択する。サブブロックの種類は、図３に示す種類がある。サブブロックを選択する順序には制限はなく、例えば、より大きなサイズのサブブロックから選択し、同一サイズの場合は、上側、左側からサブブロックを選択するとする。
【００４９】
ブロック平均値計算部４０２は、平均値記憶部４０１から各ブロックの平均値Ａｃ（ｉ，ｊ）（ｉ＝０，１，２，３，ｊ＝０，１，２，３）を読み出し、検出対象ブロックの平均値Ａ’ｃを計算する。検出対象ブロックは、平均値Ａｃを求めたブロックの定数倍である。
【００５０】
例えば、選択された検出対象ブロックが１６×１６のブロック２０１の場合、平均値Ａ’ｃは、式（３）により計算される。
【００５１】
【数３】
0005637010.tif 000004
【００５２】
ここで、Ａｃ（ｉ，ｊ）（ｉ＝０，１，２，３、ｊ＝０，１，２，３）は、それぞれ４×４画素ブロックの平均値であるから、式（３）で計算される平均値Ａ’ｃは、１６×１６画素のブロック２０１の画素値の平均値となる。
【００５３】
４×４ブロック単位の平均値は、すでに計算されて平均値記憶部４０１に格納されている。よって、式（３）は、加算１５回と除算１回とで計算することができる。従来のように、２５６画素の検出対象ブロックの画素値からそのまま平均値を計算する場合、加算２５５回と除算１回との演算量がかかる。この従来手法と比較して、式（３）では少ない演算量で平均値を計算することができる。
【００５４】
例えば、Ｈ．２６４で規定されているブロックは４×４画素が最小で、その他のブロックは、４×４画素を複数個並べた形状になっているので、前述したように４×４画素毎に平均値が計算される。ブロック平均値計算部４０２は、その他のサイズのブロックの平均値について、４×４画素毎の平均値から計算することにより、演算量を大幅に削減することができる。
【００５５】
ブロック平均値計算部４０２は、探索範囲の水平方向±１６，垂直方向±１６の範囲内から１つ動きベクトル候補ｃａｎｄｉｄａｔｅ＿ｖｅｃを選択する。動きベクトル候補の選択方法は、フルサーチ法、スパイラルサーチ法、スリーステップサーチ法、追跡法など公知となっている様々なアルゴリズムから自由に選択して用いることができる。
【００５６】
ブロック平均値計算部４０２は、選択された動きベクトル候補ｃａｎｄｉｄａｔｅ＿ｖｅｃが指し示す予測画像の平均値を計算する。図６は、動きベクトルが指し示す予測画像の一例を示す図である。
【００５７】
図６に示すように、例えば、動きベクトル候補ｃａｎｄｉｄａｔｅ＿ｖｅｃが、図６に示す動きベクトル６０２（水平成分，垂直成分）＝（１４，１０）である場合、この動きベクトル候補６０２に対応する予測画像は、ブロック６００（以下、参照対象ブロックともいう）となる。なお、ブロック６０１の評価値は、Ａｒ（５，３）で表される。
【００５８】
ブロック平均値計算部４０２は、平均値記憶部４０１から平均値Ａｒ（ｉ，ｊ）（ｉ＝−１６，−１５，・・・，２７，２８，ｊ＝−１６，−１５，・・・，２７，２８）を読み出し、参照対象ブロック６００の画素値の平均値Ａ’ｒを式（４）により計算する。
【００５９】
【数４】
0005637010.tif 000005
【００６０】
式（４）は、フレームメモリ１００から参照対象ブロック６００の各画素値を読み出して、式（５）により計算する場合と比較して、加算回数が２５５回から１５回に削減されている。
【００６１】
【数５】
0005637010.tif 000006
【００６２】
ブロック平均値計算部４０２は、計算した検出対象ブロックの平均値Ａ’ｃと、各参照対象ブロックの平均値Ａ’ｒとを平均値差計算部４０４及び評価値計算部４０５に出力する。
【００６３】
平均値差計算部４０４は、検出対象ブロックの平均値Ａ’ｃと、各参照対象ブロックの平均値差Ａ’ｒとの差分（平均値差）を計算する。平均値差計算部４０４は、計算した平均値差を評価値計算部４０５に出力する。また、平均値差計算部４０４は、平均値差に定数（α）を乗算してもよい。
【００６４】
評価値計算部４０５は、検出対象ブロックと各参照対象ブロックとをフレームメモリ１００から読出す。評価値計算部４０５は、検出対象ブロックの各画素値から検出対象ブロックの平均値を減算し、参照対象ブロックの各画素値から参照対象ブロックの平均値を減算する。
【００６５】
評価値計算部４０５は、平均値が減算された検出対象ブロックの各画素値と、平均値が減算された参照対象ブロックの各画素値との差分絶対値和を計算する。評価値計算部４０５は、計算した差分絶対値和に平均値差を考慮して評価値ＳＡＤ’を計算する。なお、差分絶対値和は、差分二乗和でもよい。
【００６６】
評価値ＳＡＤ’は、式（６）により計算される。
【００６７】
【数６】
0005637010.tif 000007
【００６８】
式（６）における（ｐ，ｑ）は選択されている検出対象ブロックのマクロブロック中での（ｘ座標、ｙ座標）を表す。例えば、１６×１６ブロックであれば、（ｐ，ｑ）＝（０，０）、左上８×８ブロックの右下の４×４ブロックの場合、（ｐ，ｑ）＝（４，４）となる。
【００６９】
式（６）における（ｒ，ｓ）は、選択されている検出対象ブロックの（水平画素数−１，垂直画素数−１）を表す。１６×１６ブロックであれば、（ｒ，ｓ）＝（１５，１５），４×４ブロックであれば（ｒ，ｓ）＝（３，３）となる。各ブロックとｐ，ｑの関係を図７に示す。
【００７０】
図７は、サブブロックに関するデータの一例を示す図である。サブブロックの平均値Ａ’ｃは、図７に示すようにして求められる。図７に示すように、サブブロックの平均値Ａ’ｃは、４×４のブロックの平均値Ａｃを用いて算出できる。
【００７１】
なお、式（６）で計算されるＣ（ｐ＋ｘ，ｑ＋ｙ）−Ａ’ｃは、検出対象ブロックの各画素値の平均値成分が除外された値である。また、式（６）で計算されるＲ（Ｘ＋ｐ＋ｘ，Ｙ＋ｑ＋ｙ）−Ａ’ｒは、参照画像の参照対象ブロックの各画素値の平均値成分が除外された値である。
【００７２】
したがって、式（６）のΣΣ｜（Ｃ（ｐ＋ｘ，ｑ＋ｙ）−Ａ’ｃ）−（Ｒ（Ｘ＋ｐ＋ｘ，Ｙ＋ｑ＋ｙ）−Ａ’ｒ）｜は、平均値成分を除外した差分絶対値和となる。式（６）のα｜Ａ’ｃ−Ａ’ｒ｜は、検出対象ブロックと参照画像の参照対象ブロックとの平均値の差に基づく値である。αは、検出対象ブロックの画素数などから決定する定数である。
【００７３】
例えば、１６×１６画素の検出対象ブロックが選択されている場合、α＝２５６とする。ΣΣ｜（Ｃ（ｐ＋ｘ，ｑ＋ｙ）−Ａ’ｃ）−（Ｒ（Ｘ＋ｐ＋ｘ，Ｙ＋ｑ＋ｙ）−Ａ’ｒ）｜は、１６×１６＝２５６画素分の和である。よって、例えばα＝２５６とすることで、平均値の差分の評価が、ΣΣ｜（Ｃ（ｐ＋ｘ，ｑ＋ｙ）−Ａ’ｃ）−（Ｒ（Ｘ＋ｐ＋ｘ，Ｙ＋ｑ＋ｙ）−Ａ’ｒ）｜と同じ重みになる。
【００７４】
同様に、動きベクトル検出対象のブロックが４×４ブロックの場合、αは例えば１６とする。実施例での評価値算出によれば、動きベクトル評価時の差分絶対値和に、α｜Ａ’ｃ−Ａ’ｒ｜を考慮することができる。
【００７５】
これにより、例えば、複数のベクトル候補でΣΣ｜（Ｃ（ｐ＋ｘ，ｑ＋ｙ）−Ａ’ｃ）−（Ｒ（Ｘ＋ｐ＋ｘ，Ｙ＋ｑ＋ｙ）−Ａ’ｒ）｜が同じになった場合に、より平均値成分が近い動きベクトル候補を選択することができる。
【００７６】
評価値計算部４０５は、探索範囲内の全ての参照対象ブロックに対して評価値を計算する。評価値計算部４０５は、式（６）により計算した評価値を、動きベクトル選択部４０６に出力する。
【００７７】
動きベクトル選択部４０６は、評価値計算部４０５から取得した評価値に基づいて動きベクトルを選択する。例えば、動きベクトル選択部４０６は、評価値が最小となる動きベクトルを選択する。検出対象ブロックに対して整数精度の動きベクトルが１つ検出できれば、動きベクトル検出部１０１は、整数精度の動きベクトルの検出処理を終了する。
【００７８】
（小数精度）
次に、小数精度の動きベクトル検出について説明する。小数精度平均値計算部４０３は、動きベクトル検出対象の小数精度動きベクトルの候補ｃａｎｄｉｄａｔｅ＿ｖｅｃを選択する。小数精度平均値計算部４０３は、動きベクトル選択部４０６で選択された整数精度の動きベクトルを中心とした周囲の小数精度の動きベクトルを候補とする。
【００７９】
小数精度の動きベクトル候補の選択方法や選択順は、様々な公知のアルゴリズムがあるが、そのうちのいずれかを用いればよい。
【００８０】
図８は、小数精度の動きベクトルの候補の一例を示す図である。動きベクトル選択部４０６で検出した整数精度の動きベクトル（ＭＶｘ，ＭＶｙ）を中心として、図８の黒丸で示した２４個の小数精度の動きベクトルが候補となる。選択順番は、例えば、ラスタスキャン順に左上の候補から右下の候補とする。
【００８１】
ブロック平均値計算部４０２と小数精度参平均値計算部４０３とにより、選択されている小数精度動きベクトルに対応する予測画像（参照対象ブロック）の平均値Ａ’’ｒを計算する。Ａ’’ｒの計算は、平均値記憶部４０１に記憶されている平均値Ａｒと、図９に示す式（イ）〜（ナ）とを用いて計算される。
【００８２】
図９は、Ｈ．２６４の小数精度の画素値を算出する式を示す図である。図９に示すＣｌｉｐ１ｙ（）は、飽和処理を表し、値が最大画素値を超える場合は最大画素値に丸める処理を表す。一般的な１画素８ビットの動画像符号化装置であれば、最大画素値は（２の８乗−１）＝２５５である。また、＞＞は、算術右シフト演算を表す。
【００８３】
ここで、小数精度動きベクトルに対応する予測画像の平均値Ａ’’ｒの計算方法について説明する。まず、ブロック平均値計算部４０２は、平均値記憶部４０１から平均値Ａｃを読み出し、検出対象ブロックの複数の整数位置での平均値を計算する。
【００８４】
小数精度平均値計算部４０３は、ブロック平均値計算部４０２が計算した平均値を用いて小数位置での平均値を計算する。例えば、小数精度動きベクトル候補が（１３．５，１０．５）の場合（例えば、図９の点ｊの位置に対応）、小数精度平均値計算部４０３は、図９に示す式（ヘ）、（ト）を用いて平均値を計算する。
【００８５】
ただし、式（ヘ）のｂ１は、式（イ）を用いて計算する。式（イ）のＥ，Ｆ，Ｇ，Ｈ，Ｉ，Ｊは、例えば動きベクトル検出対象のサブブロックが１６×１６の場合、式（７）〜（１２）を用いて計算され、１６×８上側ブロックの場合、式（１３）〜（１８）を用いて計算される。
【００８６】
【数７】
0005637010.tif 000008
【００８７】
【数８】
0005637010.tif 000009
【００８８】
【数９】
0005637010.tif 000010
【００８９】
【数１０】
0005637010.tif 000011
【００９０】
【数１１】
0005637010.tif 000012
【００９１】
【数１２】
0005637010.tif 000013
【００９２】
【数１３】
0005637010.tif 000014
【００９３】
【数１４】
0005637010.tif 000015
【００９４】
【数１５】
0005637010.tif 000016
【００９５】
【数１６】
0005637010.tif 000017
【００９６】
【数１７】
0005637010.tif 000018
【００９７】
【数１８】
0005637010.tif 000019
【００９８】
同様にして、図９に示す式（ヘ）のａａ，ｂｂ，ｓ１，ｇｇ，ｈｈは、ｂ１計算に用いた式、すなわち式（７）〜（１２）や式（８）〜（１３）をそれぞれ垂直方向−２，−１，１，２，３ずらした点に対して適用して計算される。例えば、ａａの計算では、式（７）および式（１３）は、垂直方向に−２だけずらした式（１９）及び式（２０）となる。
【００９９】
【数１９】
0005637010.tif 000020
【０１００】
【数２０】
0005637010.tif 000021
【０１０１】
小数精度平均値計算部４０３は、小数精度において算出した平均値を平均値差計算部４０４及び評価値計算部４０５に出力する。
【０１０２】
小数精度参照画像生成部４０７は、フレームメモリ１００から参照画像を読み出し、図９に示す式（イ）〜（ナ）を用いて小数精度の動きベクトルに対応する予測画像（参照対象ブロック）を生成する。小数精度参照画像生成部４０７は、生成した参照対象ブロックを評価値計算部４０５に出力する。
【０１０３】
評価値計算部４０５は、式（２１）を用いて評価値ＳＡＤ’’を計算する。
【０１０４】
【数２１】
0005637010.tif 000022
【０１０５】
ただし、Ｒ’（ｘ，ｙ）は、選択された小数精度の動きベクトル候補に対応する予測画像の水平座標ｘ，垂直座標ｙの点の画素値を表す。
【０１０６】
係数αの決定方法は、整数精度の場合と同様に行う。整数精度での効果と同様に、式（２１）を用いることで、平均値成分が除外された差分絶対値和がより小さく、かつ、平均値成分が近い動きベクトル候補を選択することができる。評価値計算部４０５は、小数精度の全ての動きベクトル候補に対して、評価値ＳＡＤ’’を計算する。計算された評価値ＳＡＤ’’は、動きベクトル選択部４０６に出力される。
【０１０７】
動きベクトル選択部４０６は、評価値計算部４０５で計算された小数精度での評価値ＳＡＤ’’と、整数精度での評価値ＳＡＤ’とを比較し、一番小さい評価値に対応する動きベクトルを選択する。動きベクトル選択部４０６は、選択した動きベクトルを符号化部１０２に出力する。これにより、動きベクトル検出部１０１は、小数精度の動きベクトルの検出処理を終了する。
【０１０８】
次に、前述したＡ’’ｒの計算方法で、各４×４画素のブロックの平均値を用いて、小数精度の動きベクトルに対応する参照画像の平均値が計算できることを証明する。
【０１０９】
動きベクトルの検出対象ブロックが、８×１６左側ブロックで、Ａ’’ｒを計算したい小数精度の動きベクトルが（１２．５，１０）の場合、前述したＡ’’ｒの計算方法によれば、Ａ’’ｒの計算式は式（２２）のように変形できる。
【０１１０】
【数２２】
0005637010.tif 000023
【０１１１】
Ｈ．２６４では、小数精度の動きベクトルに対応する参照画像の生成を図９の式（イ）〜（ナ）を用いて行うことを定めている。例えば、動きベクトルが（１２．５，１０）の８×４左側ブロックの参照画像の平均値は、式（２３）となる。
【０１１２】
【数２３】
0005637010.tif 000024
【０１１３】
Ｃｌｉｐ１Ｙ、＋１６を無視すれば、式（２２）、（２３）は同じ値となる。実際には、Ｃｌｉｐ１Ｙ、＋１６の影響で完全に同じ値にはならない場合があるが、小数精度動きベクトル検出への影響は無視できる程度である。
【０１１４】
なお、小数精度動きベクトルに対応する予測画像の平均値Ａ’’ｒの計算を、各ブロックの平均値を用いる方法にかえて、予測画像Ｒ’（ｘ，ｙ）を生成してＲ’（ｘ，ｙ）の平均値を計算する一般的な手法によって求めることもできる。
【０１１５】
この場合、一般的な手法の計算式は、式（２３）になり、実施例の計算式である式（２２）の場合の加減算１２回、乗算４回、シフト演算７回、Ｃｌｉｐ１ｙ演算１回と比較して演算回数が非常に多くなる。よって、本実施例のように、各ブロックの平均値を用いて平均値Ａ’’ｒを演算する方が、従来の手法と比べて演算回数を大きく削減できることが分かる。
【０１１６】
これにより、上記構成を有することで、エントロピー符号化後の符号量がより小さくなるような動きベクトルを検出することができる。また、上記構成を有することで、整数精度及び小数精度での動きベクトルを検出するための演算量を削減することもできる。
【０１１７】
＜動作＞
次に、実施例における動きベクトル検出部１０１の動作について説明する。図１０は、実施例における動き検出処理の一例を示すフローチャートである。図１０に示すステップＳ１０１で、平均値計算部４００は、フレームメモリ１００から処理対象のマクロブロックを読出し、このマクロブロックを所定のブロック（例えば４×４）に分割して、ブロック毎に画素値の平均値Ａｃを計算する。
【０１１８】
ステップＳ１０２で、平均値計算部４００は、フレームメモリ１００から参照画像の探索範囲の画像領域を読出し、この画像領域の所定ブロック毎に平均値Ａｒを計算する。
【０１１９】
ステップＳ１０３で、ブロック平均値計算部４０２は、動きベクトルの検出対象のサブブロック（検出対象ブロック）を１つ選択する。
【０１２０】
ステップＳ１０４で、ブロック平均値計算部４０２、平均値差計算部４０４、評価値計算部４０５、動きベクトル選択部４０６は、選択された検出対象ブロックに対して、整数精度の動きベクトル検出処理を行う。この整数精度の動きベクトル検出処理は、図１１を用いて後述する。
【０１２１】
ステップＳ１０５で、ブロック平均値計算部４０２、小数精度平均値計算部４０３、平均値差計算部４０４、小数精度参照画像生成部４０７などは、ステップＳ１０４で検出した整数精度の動きベクトルを用いて、小数精度の動きベクトル検出処理を行う。これにより、検出対象ブロックに対する小数精度の動きベクトルが１つ決定される。この小数精度の動きベクトル検出処理は、図１２を用いて後述する。
【０１２２】
ステップＳ１０６で、動きベクトル検出部１０１は、全てのサブブロックに対してステップＳ１０４、Ｓ１０５を実行したかを判定する。未実行のサブブロックがあれば、ステップＳ１０３に戻り、ステップＳ１０４、Ｓ１０５の処理を実行し、未実行のサブブロックがなければ、動きベクトルの検出処理を終了する。
【０１２３】
動きベクトル検出部１０１は、全てのサブブロックに対してステップＳ１０４、Ｓ１０５を実行し、評価値に基づいて一つの動きベクトルを検出する。
【０１２４】
（整数精度の動きベクトル検出処理）
次に、整数精度の動きベクトルの検出処理について説明する。図１１は、整数精度の動きベクトル検出処理の一例を示すフローチャートである。図１１に示すステップＳ２０１で、動きベクトル検出部１０１は、変数ＭｉｎＳＡＤ’をＭＡＸ値で初期化する。ＭＡＸ値は、ステップＳ２０５で計算されるあらゆるＳＡＤ’よりも大きな値であればよい。
【０１２５】
ステップＳ２０２で、ブロック平均値計算部４０２は、平均値記憶部４０１から各ブロックの平均値Ａｃを読出し、平均値Ａｃを用いて検出対象のサブブロックの平均値Ａ’ｃを計算する。
【０１２６】
ステップＳ２０３で、ブロック平均値計算部４０２は、動きベクトルの探索範囲である水平方向±１６、垂直方向±１６の範囲内から１つの動きベクトル候補ｃａｎｄｉｄａｔｅ＿ｖｅｃを選択する。
【０１２７】
ステップＳ２０４で、ブロック平均値計算部４０２は、選択された動きベクトル候補が指し示す予測画像の参照対象ブロックの平均値Ａ’ｒを計算する。平均値を計算する際は、平均値記憶部４０１に記憶された平均値Ａｒが用いられる。前述したように、この平均値Ａｒを用いることで、演算量が削減される。
【０１２８】
ステップＳ２０５で、平均値差計算部４０４、評価値計算部４０５は、Ａ’ｃやＡ’ｒを用いて、式（６）により評価値ＳＡＤ’を計算する。
【０１２９】
ステップＳ２０６で、動きベクトル選択部４０６は、ＳＡＤ’＜ＭｉｎＳＡＤ’を満たすかを判定する。この条件を満たせばステップＳ２０７に進み、この条件を満たさなければステップＳ２０８に進む。
【０１３０】
ステップＳ２０７で、動きベクトル選択部４０６は、ＭｉｎＳＡＤ’の値をＳＡＤ’に上書きし、変数ｔｍｐ＿ｖｅｃをｃａｎｄｉｄａｔｅ＿ｖｅｃで上書きする。
【０１３１】
ステップＳ２０８で、動きベクトル検出部１０１は、全ての動きベクトル候補について、ステップＳ２０３〜Ｓ２０７を実行したかどうかを判定する。未実行の動きベクトル候補があれば、ステップＳ２０３へ戻り、未実行の動きベクトル候補がなければ、整数精度動きベクトル検出処理を終了する。この段階で、変数ｔｅｐ＿ｖｅｃの動きベクトルが整数精度で選択された動きベクトルを表す。
【０１３２】
（小数精度の動きベクトル検出処理）
次に、小数精度の動きベクトル検出処理について説明する。図１２は、小数精度の動きベクトル検出処理の一例を示すフローチャートである。図１２に示すステップＳ３０１で、ブロック平均値計算部４０２は、動きベクトル検出対象の小数精度における動きベクトル候補ｃａｎｄｉｄａｔｅ＿ｖｅｃを選択する。
【０１３３】
例えば、ステップＳ１０４で検出した整数精度の動きベクトルを中心とした周囲の小数精度の動きベクトルが候補となる。
【０１３４】
ステップＳ３０２で、ブロック平均値計算部４０２と小数精度平均値計算部４０３は、選択されている小数精度動きベクトルに対応する予測画像（参照対象ブロック）の平均値Ａ’’ｒを計算する。
【０１３５】
ステップＳ３０３で、評価値ＳＡＤ’’が計算される。まず、小数精度参照画像生成部４０７は、フレームメモリ１００から参照画像を読出し、図９の式（イ）〜（ナ）を用いて小数精度の動きベクトルに対応する予測画像を生成する。また、平均値差計算部４０４は、検出対象ブロックの平均値Ａ’ｃと小数精度の予測画像の平均値Ａ’’ｒとの差を計算する。評価値計算部４０５は、式（２１）を用いて評価値ＳＡＤ’’を計算する。
【０１３６】
ステップＳ３０４で、動きベクトル選択部４０６は、ＳＡＤ’’＜ＭｉｎＳＡＤ’を満たすかを判定する。この条件を満たせばステップＳ３０５に進み、この条件を満たさなければステップＳ３０６に進む。
【０１３７】
ステップＳ３０５で、動きベクトル選択部４０６は、ＭｉｎＳＡＤ’の値をＳＡＤ’’に上書きし、変数ｔｍｐ＿ｖｅｃをｃａｎｄｉｄａｔｅ＿ｖｅｃで上書きする。
【０１３８】
ステップＳ３０６で、動きベクトル検出部１０１は、全ての動きベクトル候補について、ステップＳ２０３〜Ｓ２０７を実行したかどうかを判定する。未実行の動きベクトル候補があれば、ステップＳ２０３へ戻り、未実行の動きベクトル候補がなければ、小数精度動きベクトル検出処理を終了する。この段階で、変数ｔｅｐ＿ｖｅｃの動きベクトルが、整数精度及び小数精度において選択された動きベクトルを表す。
【０１３９】
以上、実施例によれば、エントロピー符号化後の符号量がより小さくなるような動きベクトルを検出することができる。また、実施例によれば、整数精度及び小数精度での動きベクトルを検出するための演算量を削減することもできる。
【０１４０】
例えば、検出対象ブロックに対して、サブブロックごとに平均値を算出し、これを一時メモリに保存しておく。マクロブロックの動きベクトル検出において評価すべき様々なサイズのブロックを、一時メモリに保存した平均値から求める。これにより、様々なサイズのブロックの平均値計算に必要な演算量を削減することができる。
【０１４１】
また、参照画像の探索範囲の任意の位置を左上とする画像ブロックについての平均値を算出し、これを一時メモリに保存しておく。マクロブロックの動きベクトル検出において評価すべき様々なサイズ、様々な動きベクトルに対応する参照対象ブロックの平均値を、一時メモリに保存した平均値から求める。これにより、様々なサイズのブロック及び様々な動きベクトルに対応する予測画像の平均値計算に必要な演算量を削減することができる。
【０１４２】
また、実施例によれば、動きベクトルの選択指標として用いる評価値に、検出対象ブロックの平均値と参照対象ブロックの平均値の差を定数倍した値を考慮する。これにより、差分画像を符号化したビットストリームの内、直流成分のビットストリームサイズも考慮してマクロブロックタイプと動きベクトルとを選択することができる。
【０１４３】
また、実施例によれば、一時メモリに保存した平均値を用いてフィルタリング処理することで、小数精度の動きベクトルに対応する予測画像の平均値を算出できる。これにより、小数精度の動きベクトルの選択に必要な演算量を削減することができる。
【０１４４】
図１３は、画像処理装置７００の構成の一例を示す図である。動画像符号化装置１０は、画像処理装置７００の一例である。図１３に示すように、画像処理装置７００は、制御部７０１、主記憶部７０２、補助記憶部７０３、ドライブ装置７０４、ネットワークＩ／Ｆ部７０６、入力部７０７、表示部７０８を含む。これら各構成は、バスを介して相互にデータ送受信可能に接続されている。
【０１４５】
制御部７０１は、コンピュータの中で、各装置の制御やデータの演算、加工を行うＣＰＵである。また、制御部７０１は、主記憶部７０２や補助記憶部７０３に記憶されたプログラムを実行する演算装置であり、入力部７０７や記憶装置からデータを受け取り、演算、加工した上で、表示部７０８や記憶装置などに出力する。
【０１４６】
主記憶部７０２は、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などであり、制御部７０１が実行する基本ソフトウェアであるＯＳやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
【０１４７】
補助記憶部７０３は、ＨＤＤ（Hard Disk Drive）などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。
【０１４８】
ドライブ装置７０４は、記録媒体７０５、例えばフレキシブルディスクからプログラムを読み出し、記憶装置にインストールする。
【０１４９】
また、記録媒体７０５に、所定のプログラムを格納し、この記録媒体７０５に格納されたプログラムはドライブ装置７０４を介して画像処理装置７００にインストールされる。インストールされた所定のプログラムは、画像処理装置７００により実行可能となる。
【０１５０】
ネットワークＩ／Ｆ部７０６は、有線及び／又は無線回線などのデータ伝送路により構築されたＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）などのネットワークを介して接続された通信機能を有する周辺機器と画像処理装置７００とのインターフェースである。
【０１５１】
入力部７０７は、カーソルキー、数字入力及び各種機能キー等を備えたキーボード、表示部７０８の表示画面上でキーの選択等を行うためのマウスやスライスパット等を有する。また、入力部７０７は、ユーザが制御部７０１に操作指示を与えたり、データを入力したりするためのユーザインターフェースである。
【０１５２】
表示部７０８は、ＣＲＴ（Cathode Ray Tube）やＬＣＤ（Liquid Crystal
Display）等により構成され、制御部７０１から入力される表示データに応じた表示が行われる。
【０１５３】
例えば、フレームメモリ１００は、主記憶部７０２や補助記憶部７０３などにより実現されうる。例えば、動きベクトル検出部１０１、符号化部１０２、局所復号部１０３は、制御部７０１やワークメモリとしての主記憶部７０３などにより実現されうる。
【０１５４】
このように、前述した実施例で説明した動画像符号化処理は、コンピュータに実行させるためのプログラムとして実現されてもよい。このプログラムをサーバ等からインストールしてコンピュータに実行させることで、前述した動画像符号化処理を実現することができる。例えば、前述した動きベクトル検出処理は、プログラムとして実現されてもよい。
【０１５５】
また、このプログラムを記録媒体７０５に記録し、このプログラムが記録された記録媒体７０５をコンピュータや携帯端末に読み取らせて、前述した動画像符号化処理を実現させることも可能である。なお、記録媒体７０５は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。また、前述した実施例で説明した各処理部は、１つ又は複数の処理部を１つ又は複数の集積回路に実装されてもよい。
【０１５６】
なお、上記実施例では、Ｈ．２６４以外にも、ＭＰＥＧ−２、４、ＶＣ−１、ＶＰ８などの符号化技術や、ブロック分割を行う次世代の符号化技術においても適用可能である。
【０１５７】
以上、実施例について詳述したが、この実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、上記実施例や変形例以外にも種々の変形及び変更が可能である。
【０１５８】
なお、以上の実施例に関し、さらに以下の付記を開示する。
（付記１）
処理対象ブロックを分割した第１ブロック毎の画素値の平均値と、参照画像内の前記第１ブロックと同じサイズの第２ブロック毎の画素値の平均値とを計算する第１計算部と、
前記第１計算部により計算された平均値を記憶する記憶部と、
前記処理対象ブロック内の動きベクトルの検出対象ブロックにおける画素値の平均値を前記第１ブロックの平均値に基づいて計算し、前記検出対象ブロックに対応する前記参照画像内の参照対象ブロックにおける画素値の平均値を前記第２ブロックの平均値に基づいて計算する第２計算部と、
前記検出対象ブロックの各画素値から前記第１ブロックの平均値を減算した各画素値と、前記参照対象ブロックの各画素値から前記第２ブロックの平均値を減算した各画素値との差分、及び前記検出対象ブロックの平均値と前記参照対象ブロックの平均値との差分に基づき、動きベクトルの評価値を計算する第３計算部と、
前記評価値に基づき動きベクトルを選択する選択部と、
を備える動きベクトル検出装置。
（付記２）
前記第３計算部は、
前記第１ブロックの平均値を減算した各画素値と前記第２ブロックの平均値を減算した各画素値との差分絶対値和又は差分二乗和に、前記検出対象ブロックの平均値と前記参照対象ブロックの平均値との差分に定数を乗算した値を加算した値を前記評価値とする付記１記載の動きベクトル検出装置。
（付記３）
前記定数は、前記検出対象ブロックの画素数に応じて決定される付記２記載の動きベクトル検出装置。
（付記４）
前記記憶部に記憶された平均値を用いて小数精度の動きベクトルに対応する参照画像の平均値を計算する第４計算部をさらに備え、
前記第３計算部は、
前記第４計算部により計算された平均値を用いて小数精度の動きベクトルの評価値を計算する付記１乃至３いずれか一項に記載の動きベクトル検出装置。
（付記５）
前記検出対象ブロックは、前記第１ブロックの定数倍である付記１乃至４いずれか一項に記載の動きベクトル検出装置。
（付記６）
前記第１計算部は、
前記第１ブロックを、水平４画素×垂直４画素とする付記１乃至５いずれか一項に記載の動きベクトル検出装置。
（付記７）
処理対象ブロックを分割した第１ブロック毎の画素値の平均値と、参照画像内の前記第１ブロックと同じサイズの第２ブロック毎の画素値の平均値とを計算し、
計算された前記平均値を記憶部に記憶し、
前記処理対象ブロック内の動きベクトルの検出対象ブロックにおける画素値の平均値を前記第１ブロックの平均値に基づいて計算し、前記検出対象ブロックに対応する前記参照画像内の参照対象ブロックにおける画素値の平均値を前記第２ブロックの平均値に基づいて計算し、
前記検出対象ブロックの各画素値から前記第１ブロックの平均値を減算した各画素値と、前記参照対象ブロックの各画素値から前記第２ブロックの平均値を減算した各画素値との差分、及び前記検出対象ブロックの平均値と前記参照対象ブロックの平均値との差分に基づき、動きベクトルの評価値を計算し、
前記評価値に基づき動きベクトルを選択する動きベクトル検出方法。
（付記８）
処理対象ブロックを分割した第１ブロック毎の画素値の平均値と、参照画像内の前記第１ブロックと同じサイズの第２ブロック毎の画素値の平均値とを計算し、
計算された前記平均値を記憶部に記憶し、
前記処理対象ブロック内の動きベクトルの検出対象ブロックにおける画素値の平均値を前記第１ブロックの平均値に基づいて計算し、前記検出対象ブロックに対応する前記参照画像内の参照対象ブロックにおける画素値の平均値を前記第２ブロックの平均値に基づいて計算し、
前記検出対象ブロックの各画素値から前記第１ブロックの平均値を減算した各画素値と、前記参照対象ブロックの各画素値から前記第２ブロックの平均値を減算した各画素値との差分、及び前記検出対象ブロックの平均値と前記参照対象ブロックの平均値との差分に基づき、動きベクトルの評価値を計算し、
前記評価値に基づき動きベクトルを選択する、
処理をコンピュータに実行させるための動きベクトル検出プログラム。
【符号の説明】
【０１５９】
１００  フレームメモリ
１０１  動きベクトル検出部
１０２  符号化部
１０３  局所復号部
４００  平均値計算部
４０１  平均値記憶部
４０２  ブロック平均値計算部
４０３  小数精度平均値計算部
４０４  平均値差計算部
４０５  評価値計算部
４０６  動きベクトル選択部
４０７  小数精度参照画像生成部
【図１】
0005637010.tif 000025
【図２】
0005637010.tif 000026
【図３】
0005637010.tif 000027
【図４】
0005637010.tif 000028
【図５】
0005637010.tif 000029
【図６】
0005637010.tif 000030
【図７】
0005637010.tif 000031
【図８】
0005637010.tif 000032
【図９】
0005637010.tif 000033
【図１０】
0005637010.tif 000034
【図１１】
0005637010.tif 000035
【図１２】
0005637010.tif 000036
【図１３】
0005637010.tif 000037