(57)【要約】【課題】  動きベクトル検出処理の演算量の増加を抑制しつつ、動きベクトルの検出精度を向上させる。【解決手段】  符号化対象の画像と参照画像とを比較して動きベクトルを検出する動きベクトル検出装置は、処理対象のマクロブロックおよび処理対象のマクロブロックの周辺のマクロブロックを含む基準範囲のマクロブロックのうち、符号化処理が終了していないマクロブロックである未処理マクロブロックの処理情報に、参照画像の未処理マクロブロックに対応する位置のマクロブロックの符号化処理に関する情報を使用し、基準範囲の処理情報を生成する生成部と、基準範囲の処理情報に基づいて、処理対象のマクロブロックの動きベクトルの探索範囲を決定する決定部とを有している。【選択図】  図１
2015053586.tif 000002
【特許請求の範囲】
【請求項１】
符号化対象の画像と参照画像とを比較して動きベクトルを検出する動きベクトル検出装置において、
処理対象のマクロブロックおよび前記処理対象のマクロブロックの周辺のマクロブロックを含む基準範囲の前記マクロブロックのうち、符号化処理が終了していないマクロブロックである未処理マクロブロックの処理情報に、前記参照画像の前記未処理マクロブロックに対応する位置のマクロブロックの前記符号化処理に関する情報を使用し、前記基準範囲の前記処理情報を生成する生成部と、
前記基準範囲の前記処理情報に基づいて、前記処理対象のマクロブロックの前記動きベクトルの探索範囲を決定する決定部と
を備えていることを特徴とする動きベクトル検出装置。
【請求項２】
請求項１記載の動きベクトル検出装置において、
前記決定部は、前記基準範囲を縦方向および横方向にそれぞれ２分割して４つの領域に分け、前記探索範囲の横方向の重みおよび縦方向の重みを前記領域毎に前記処理情報に基づいて算出し、算出した前記重みに基づいて、前記処理対象のマクロブロックの前記動きベクトルの前記探索範囲を決定する
ことを特徴とする動きベクトル検出装置。
【請求項３】
請求項１記載の動きベクトル検出装置において、
前記決定部は、前記基準範囲を縦方向および横方向にそれぞれ２分割して４つの領域に分け、前記探索範囲の横方向の重みおよび縦方向の重みを前記領域毎に前記処理情報に基づいて算出し、前記各領域の横方向の重みの組み合わせおよび前記各領域の縦方向の重みの組み合わせのいずれかが所定の条件を満たしている場合、算出した前記重みに基づいて、前記処理対象のマクロブロックの前記動きベクトルの前記探索範囲を決定し、前記組み合わせのいずれもが前記所定の条件を満たしていない場合、前記横方向の重みの前記基準範囲内の累積値および前記縦方向の重みの前記基準範囲内の累積値に基づいて、前記処理対象のマクロブロックの前記動きベクトルの前記探索範囲を決定する
ことを特徴とする動きベクトル検出装置。
【請求項４】
請求項１記載の動きベクトル検出装置において、
前記処理情報は、前記基準範囲のマクロブロックの符号化処理に関する情報であり、インター予測とイントラ予測とのどちらで符号化されたかを示す情報、イントラ予測時の予測モードの情報、インター予測時の動きベクトルの情報、及び、分割サイズの情報の少なくとも１つを含むことを特徴とする動きベクトル検出装置。
【請求項５】
符号化対象の画像と参照画像とを比較して動きベクトルを検出する動きベクトル検出方法において、
処理対象のマクロブロックおよび前記処理対象のマクロブロックの周辺のマクロブロックを含む基準範囲の前記マクロブロックのうち、符号化処理が終了していないマクロブロックである未処理マクロブロックの処理情報に、前記参照画像の前記未処理マクロブロックに対応する位置のマクロブロックの前記符号化処理に関する情報を使用し、前記基準範囲の前記処理情報を生成し、
前記基準範囲の前記処理情報に基づいて、前記処理対象のマクロブロックの前記動きベクトルの探索範囲を決定すること
を特徴とする動きベクトル検出方法。
【請求項６】
符号化対象の画像と参照画像とを比較して動きベクトルを検出する動きベクトル検出装置を備え、
前記動きベクトル検出装置は、
処理対象のマクロブロックおよび前記処理対象のマクロブロックの周辺のマクロブロックを含む基準範囲の前記マクロブロックのうち、符号化処理が終了していないマクロブロックである未処理マクロブロックの処理情報に、前記参照画像の前記未処理マクロブロックに対応する位置のマクロブロックの前記符号化処理に関する情報を使用し、前記基準範囲の前記処理情報を生成する生成部と、
前記基準範囲の前記処理情報に基づいて、前記処理対象のマクロブロックの前記動きベクトルの探索範囲を決定する決定部と
を備えていることを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動きベクトル検出装置、動きベクトル検出方法および画像処理装置に関する。
【背景技術】
【０００２】
ＭＰＥＧ（Moving Picture Experts Group）やＨ．２６４等の画像符号化方式では、動画像のデータを、フレーム間およびフレーム内の差分値に基づいて圧縮し、符号化する。この種の画像符号化方式では、フレームの符号化は、例えば、１６×１６画素のマクロブロック毎に実施される。なお、フレームは、例えば、動画像を構成する１枚の静止画像である。
【０００３】
フレーム間（符号化対象のフレームと参照フレームとの間）の差分値に基づく符号化では、圧縮効率を高めるために、動き補償と呼ばれる技術が用いられる。動き補償では、例えば、符号化対象のマクロブロック（以下、符号化ブロックとも称する）に最も類似するブロック（以下、参照ブロックとも称する）を、参照フレームの中から検出する。そして、符号化ブロックと参照ブロックとの差分画像と、符号化ブロックに対する参照ブロックの位置（以下、動きベクトルとも称する）とが符号化される。
【０００４】
例えば、動きベクトル検出処理では、符号化ブロック周辺の一定の範囲を探索して動きベクトルを検出する。動きベクトルの検出精度を上げるために、動きベクトルの探索範囲を拡大した場合、動きベクトル検出処理の演算量が増加する。このため、参照フレーム等の動きベクトルに基づいて動きベクトルの探索範囲を決定する動きベクトル検出装置が提案されている（例えば、特許文献１、２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平５−３２８３３３号公報
【特許文献２】特開２００５−２６９１６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
参照フレーム等の動きベクトルに基づいて動きベクトルの探索範囲を決定する方法では、参照フレームがフレーム内予測（イントラ予測）で符号化されている場合、動きベクトルの探索範囲を適切に設定できないおそれがある。このため、参照フレーム等の動きベクトルに基づいて動きベクトルの探索範囲を決定する方法では、参照フレームがフレーム内予測で符号化されている場合、動きベクトル検出処理の演算量の増加を抑制しつつ、動きベクトルの検出精度を向上させることは困難である。
【０００７】
１つの側面では、本件開示の動きベクトル検出装置、動きベクトル検出方法および画像処理装置は、動きベクトル検出処理の演算量の増加を抑制しつつ、動きベクトルの検出精度を向上させることを目的とする。
【課題を解決するための手段】
【０００８】
一観点によれば、符号化対象の画像と参照画像とを比較して動きベクトルを検出する動きベクトル検出装置は、処理対象のマクロブロックおよび処理対象のマクロブロックの周辺のマクロブロックを含む基準範囲のマクロブロックのうち、符号化処理が終了していないマクロブロックである未処理マクロブロックの処理情報に、参照画像の未処理マクロブロックに対応する位置のマクロブロックの符号化処理に関する情報を使用し、基準範囲の処理情報を生成する生成部と、基準範囲の処理情報に基づいて、処理対象のマクロブロックの動きベクトルの探索範囲を決定する決定部とを有している。
【０００９】
別の観点によれば、符号化対象の画像と参照画像とを比較して動きベクトルを検出する動きベクトル検出方法は、処理対象のマクロブロックおよび処理対象のマクロブロックの周辺のマクロブロックを含む基準範囲のマクロブロックのうち、符号化処理が終了していないマクロブロックである未処理マクロブロックの処理情報に、参照画像の未処理マクロブロックに対応する位置のマクロブロックの符号化処理に関する情報を使用し、基準範囲の処理情報を生成し、基準範囲の処理情報に基づいて、処理対象のマクロブロックの動きベクトルの探索範囲を決定する。
【００１０】
別の観点によれば、画像処理装置は、符号化対象の画像と参照画像とを比較して動きベクトルを検出する動きベクトル検出装置を有し、動きベクトル検出装置は、処理対象のマクロブロックおよび処理対象のマクロブロックの周辺のマクロブロックを含む基準範囲のマクロブロックのうち、符号化処理が終了していないマクロブロックである未処理マクロブロックの処理情報に、参照画像の未処理マクロブロックに対応する位置のマクロブロックの符号化処理に関する情報を使用し、基準範囲の処理情報を生成する生成部と、基準範囲の処理情報に基づいて、処理対象のマクロブロックの動きベクトルの探索範囲を決定する決定部とを有している。
【発明の効果】
【００１１】
本件開示の動きベクトル検出装置、動きベクトル検出方法および画像処理装置は、動きベクトル検出処理の演算量の増加を抑制しつつ、動きベクトルの検出精度を向上できる。
【図面の簡単な説明】
【００１２】
【図１】動きベクトル検出装置および動きベクトル検出方法の一実施形態を示す図である。
【図２】符号化の際のフレームの参照関係の一例を示す図である。
【図３】インター予測時のマクロブロックの分割パターンの一例を示す図である。
【図４】イントラ予測時の予測モードの一例を示す図である。
【図５】基準範囲の処理情報の生成の一例を示す図である。
【図６】重み算出の一例を示す図である。
【図７】図１に示した動きベクトル検出装置の動作の一例を示す図である。
【図８】図７に示した４分割領域の統計処理の一例を示す図である。
【図９】基準範囲の４分割領域の統計処理に基づいて設定される探索範囲の一例を示す図である。
【図１０】図１に示した決定部により設定される探索範囲の一例を示す図である。
【図１１】図１０に示したケース２−２の探索範囲での動きベクトルの探索の一例を示す図である。
【図１２】図１に示した動きベクトル検出装置が搭載される画像処理装置の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、実施形態を図面を用いて説明する。
【００１４】
図１は、動きベクトル検出装置および動きベクトル検出方法の一実施形態を示している。この実施形態の動きベクトル検出装置１０は、動き補償と呼ばれる技術が用いられる動画像符号化装置（ＭＰＥＧやＨ．２６４等に準拠した動画像符号化装置）に搭載される。動きベクトル検出装置１０を有する動画像符号化装置は、画像処理装置の一態様である。
【００１５】
動きベクトル検出装置１０は、例えば、符号化対象の画像ＩＩＭＧ（以下、入力画像ＩＩＭＧとも称する）と参照フレームの画像ＲＩＭＧ（以下、参照画像ＲＩＭＧとも称する）とを受け、動きベクトルの情報を含む動きベクトル情報ＭＶＩＮＦを出力する。動きベクトルは、画像の動き量を推定する情報であり、例えば、Ｍ×Ｎ画素のブロック毎に検出される。
【００１６】
例えば、動きベクトル検出装置１０は、符号化対象の画像ＩＩＭＧと参照画像ＲＩＭＧとを比較して動きベクトルを検出する。このように、参照画像ＲＩＭＧは、例えば、処理対象のマクロブロックの動きベクトルを検出する際に参照される。マクロブロックは、例えば、１６×１６画素のブロックである。
【００１７】
例えば、動きベクトル検出装置１０は、生成部２０および決定部３０を有している。生成部２０は、入力画像ＩＩＭＧおよび参照画像ＲＩＭＧを受け、基準範囲の処理情報ＥＩＮＦを生成する。基準範囲は、処理対象のマクロブロックおよび処理対象のマクロブロックの周辺のマクロブロックを含む範囲である。基準範囲の処理情報ＥＩＮＦは、例えば、基準範囲のマクロブロックの符号化処理に関する情報である。符号化処理に関する情報は、例えば、インター予測（フレーム間予測）とイントラ予測（フレーム内予測）とのどちらで符号化されたかを示す情報、イントラ予測時の予測モード、インター予測時の動きベクトル、分割サイズ等である。
【００１８】
例えば、生成部２０は、基準範囲のマクロブロックのうち、符号化処理が終了したマクロブロックである処理済みマクロブロックの処理情報ＥＩＮＦに、処理済みマクロブロックの符号化処理に関する情報を使用する。また、例えば、生成部２０は、基準範囲のマクロブロックのうち、未処理マクロブロックの処理情報ＥＩＮＦに、参照画像ＲＩＭＧの未処理マクロブロックに対応する位置のマクロブロックの符号化処理に関する情報を使用する。これにより、基準範囲の処理情報ＥＩＮＦが生成される。なお、未処理マクロブロックは、入力画像ＩＩＭＧ内の符号化処理が終了していないマクロブロックである。
【００１９】
決定部３０は、基準範囲の処理情報ＥＩＮＦを生成部２０から受け、処理対象のマクロブロックの動きベクトルの探索範囲を基準範囲の処理情報ＥＩＮＦに基づいて決定する。これにより、処理対象のマクロブロックの動きベクトルを検出する際の探索範囲が設定される。例えば、動きベクトル検出装置１０は、決定部３０により設定された探索範囲を探索して動きベクトルを検出する。そして、動きベクトル検出装置１０は、動きベクトルの情報や参照フレームを示す情報等を含む動きベクトル情報ＭＶＩＮＦを出力する。
【００２０】
なお、動きベクトル検出装置１０の構成は、この例に限定されない。例えば、生成部２０は、基準範囲のうちの処理済みマクロブロックの処理情報ＥＩＮＦに、参照画像ＲＩＭＧの処理済みマクロブロックに対応する位置のマクロブロックの符号化処理に関する情報を使用してもよい。
【００２１】
図２は、符号化の際のフレームＦＲＭの参照関係の一例を示している。図２の破線の矢印は、各ピクチャの相関関係の一例を示している。また、図２の実線の矢印は、動きベクトルを示している。図２のブロックＲＩ（ＲＩ１ａ、ＲＩ１ｂ、ＲＩ２ａ、ＲＩ２ｂ、ＲＩ３）は、符号化の際に参照されるブロックを示している。
【００２２】
Ｉピクチャは、例えば、フレーム内予測のみを使用するピクチャである。Ｐピクチャは、例えば、前方のピクチャを参照画像として符号化されたピクチャである。例えば、フレームＦＲＭ４のＰピクチャは、フレームＦＲＭ１のＩピクチャを参照画像として符号化されている。また、例えば、フレームＦＲＭ７のＰピクチャは、フレームＦＲＭ４のＰピクチャを参照画像として符号化されている。
【００２３】
例えば、フレームＦＲＭ４のマクロブロックＭＢ３は、フレームＦＲＭ１のブロックＲＩ３を参照して符号化される。すなわち、マクロブロックＭＢ３では、前方向の動きベクトルが用いられる。例えば、マクロブロックＭＢ３の動きベクトルは、マクロブロックＭＢ３に対するブロックＲＩ３の位置を示している。
【００２４】
Ｂピクチャは、例えば、前方および後方のピクチャを参照画像として符号化されたピクチャである。例えば、フレームＦＲＭ２、ＦＲＭ３のＢピクチャは、フレームＦＲＭ１のＩピクチャおよびフレームＦＲＭ４のＰピクチャを参照画像として符号化されている。また、例えば、フレームＦＲＭ５、ＦＲＭ６のＢピクチャは、フレームＦＲＭ４のＰピクチャおよびフレームＦＲＭ７のＰピクチャを参照画像として符号化されている。
【００２５】
例えば、フレームＦＲＭ２のマクロブロックＭＢ１は、フレームＦＲＭ１のブロックＲＩ１ａおよびフレームＦＲＭ４のブロックＲＩ１ｂを参照して符号化される。すなわち、マクロブロックＭＢ１では、前方向および後方向の動きベクトルが用いられる。例えば、マクロブロックＭＢ１の前方向の動きベクトルは、マクロブロックＭＢ１に対するブロックＲＩ１ａの位置を示し、マクロブロックＭＢ１の後方向の動きベクトルは、マクロブロックＭＢ１に対するブロックＲＩ１ｂの位置を示している。
【００２６】
また、例えば、フレームＦＲＭ３のマクロブロックＭＢ２は、フレームＦＲＭ１のブロックＲＩ２ａおよびフレームＦＲＭ４のブロックＲＩ２ｂを参照して符号化される。したがって、例えば、マクロブロックＭＢ２の前方向の動きベクトルは、マクロブロックＭＢ２に対するブロックＲＩ２ａの位置を示し、マクロブロックＭＢ２の後方向の動きベクトルは、マクロブロックＭＢ２に対するブロックＲＩ２ｂの位置を示している。
【００２７】
図３は、インター予測時のマクロブロックＭＢの分割パターンの一例を示している。インター予測を実行する際、予測精度を向上させるために、マクロブロックＭＢが分割されるときがある。例えば、パターンＭＰ１０では、マクロブロックＭＢは、分割されない。パターンＭＰ２０では、マクロブロックＭＢは、１６×８画素のブロックに２分割される。パターンＭＰ３０では、マクロブロックＭＢは、８×１６画素のブロックに２分割される。パターンＭＰ４０では、マクロブロックＭＢは、８×８画素のブロックに４分割される。以下、マクロブロックＭＢを４分割したときの８×８画素のブロックを、サブマクロブロックＳＭＢとも称する。
【００２８】
さらに、パターンＭＰ４０では、８×８画素のサブマクロブロックＳＭＢが分割されるときがある。例えば、パターンＳＰ１０では、サブマクロブロックＳＭＢは、分割されない。パターンＳＰ２０では、サブマクロブロックＳＭＢは、８×４画素のブロックに２分割される。また、パターンＳＰ３０では、サブマクロブロックＳＭＢは、４×８画素のブロックに２分割される。パターンＳＰ４０では、サブマクロブロックＳＭＢは、４×４画素のブロックに４分割される。
【００２９】
なお、動きベクトルは、マクロブロックＭＢやサブマクロブロックＳＭＢを分割したブロック毎に生成される。すなわち、各ブロックは、動きベクトルを有している。例えば、各ブロックの動きベクトルは、符号化対象のブロックの位置と符号化の際に参照されるブロックの位置との差（動き量）を示している。
【００３０】
図４は、イントラ予測時の予測モードの一例を示している。なお、図４は、４×４画素のサイズにおけるイントラ予測時の予測モードの一例を示している。なお、イントラ予測に用いられるサイズには、１６×１６画素、８×８画素、４×４画素のサイズが存在する。図４の網掛けの四角形は、参照される画素を示している。また、図４の白い四角形は、予測対象の画素を示している。図４の矢印は、矢印の始点の画素の値を、矢印が通過する画素および矢印の終点の画素の予測値に使用することを意味している。
【００３１】
４×４画素のサイズでは、モード０（ｖｅｒｔｉｃａｌ）、モード１（ｈｏｒｉｚｏｎｔａｌ）、モード２（ＤＣ）、モード３（ｄｉａｇｏｎａｌ  ｄｏｗｎ−ｌｅｆｔ）、モード４（ｄｉａｇｏｎａｌ  ｄｏｗｎ−ｒｉｇｈｔ）、モード５（ｖｅｒｔｉｃａｌ−ｒｉｇｈｔ）、モード６（ｈｏｒｉｚｏｎａｌ−ｒｉｇｈｔ）、モード７（ｖｅｒｔｉｃａｌ−ｌｅｆｔ）、モード８（ｈｏｒｉｚｏｎａｌ−ｕｐ）の９通りのモードが用意されている。
【００３２】
例えば、モード０では、予測対象の４×４画素のブロックの上側に隣接する画素を参照する垂直方向の予測が実行される。モード１では、予測対象の４×４画素のブロックの左側に隣接する画素を参照する水平方向の予測が実行される。モード２では、予測対象の４×４画素のブロックの左側に隣接する画素と予測対象の４×４画素のブロックの上側に隣接する画素との平均値を用いた予測が実行される。
【００３３】
なお、イントラ予測の処理単位は、例えば、１６×１６画素である。このため、例えば、１６×１６画素のマクロブロック内のブロックサイズ毎に、９通りの予測モード（モード０からモード８）の中から予測精度の最も高い予測モードが選択される。
【００３４】
図５は、基準範囲ＢＲＡＮの処理情報ＥＩＮＦの生成の一例を示している。なお、図５の基準範囲ＢＲＡＮｉ、ＢＲＡＮｒ、ＢＲＡＮｅは、互いに対応する範囲を示している。以下、基準範囲ＢＲＡＮｉ、ＢＲＡＮｒ、ＢＲＡＮｅを基準範囲ＢＲＡＮとも称する。また、図５では、基準範囲ＢＲＡＮの処理情報ＥＩＮＦに基づいて実行される４分割領域の統計処理の概要および全領域の統計処理の概要を括弧内に示している。図５の符号Ｗｈ（Ｗｈ１、Ｗｈ２、Ｗｈ３、Ｗｈ４）は、探索範囲の横方向の重みＷｈ（例えば、探索範囲を設定する際の横方向の重みＷｈ）を示している。横方向の重みＷｈでは、例えば、図の右側に向かう方向がプラスである。以下、横方向の重みＷｈを横方向重みＷｈとも称する。
【００３５】
また、図５の符号Ｗｖ（Ｗｖ１、Ｗｖ２、Ｗｖ３、Ｗｖ４）は、探索範囲の縦方向の重みＷｖ（例えば、探索範囲を設定する際の縦方向の重みＷｖ）を示している。縦方向の重みＷｖでは、例えば、図の下側に向かう方向がプラスである。以下、縦方向の重みＷｖを縦方向重みＷｖとも称する。符号Ａｈは、重みＷｈの基準範囲ＢＲＡＮ内の累積値を示し、符号Ａｖは、重みＷｖの基準範囲ＢＲＡＮ内の累積値を示している。すなわち、累積値Ａｈ、Ａｖは、基準範囲ＢＲＡＮの単位で算出される横方向の重みおよび縦方向の重みをそれぞれ示している。以下、累積値Ａｈ、Ａｖを重みＡｈ、Ａｖとも称する。
【００３６】
基準範囲ＢＲＡＮｉは、入力画像ＩＩＭＧの処理対象のマクロブロックＭＢｃおよび処理対象のマクロブロックＭＢｃの周辺のマクロブロックＭＢを含む範囲（Ｓｈ×Ｓｖのサイズ）である。基準範囲ＢＲＡＮｒは、入力画像ＩＩＭＧの基準範囲ＢＲＡＮｉに対応する参照画像ＲＩＭＧの基準範囲ＢＲＡＮである。
【００３７】
すなわち、基準範囲ＢＲＡＮｒは、参照画像ＲＩＭＧ内で、入力画像ＩＩＭＧの基準範囲ＢＲＡＮｉの各マクロブロックＭＢに対応する位置のマクロブロックを含む範囲である。例えば、マクロブロックＭＢｃｒは、入力画像ＩＩＭＧの処理対象のマクロブロックＭＢｃに対応する位置のマクロブロックＭＢである。基準範囲ＢＲＡＮｅは、入力画像ＩＩＭＧの基準範囲ＢＲＡＮｉに対応する範囲である。例えば、マクロブロックＭＢｃｅは、入力画像ＩＩＭＧの処理対象のマクロブロックＭＢｃに対応している。
【００３８】
基準範囲ＢＲＡＮの処理情報ＥＩＮＦは、例えば、入力画像ＩＩＭＧの基準範囲ＢＲＡＮｉのマクロブロックＭＢを符号化した際の情報と、参照画像ＲＩＭＧの基準範囲ＢＲＡＮｒのマクロブロックＭＢを符号化した際の情報とを用いて生成される。例えば、入力画像ＩＩＭＧのマクロブロックＭＢｃの左上、上、右上、左にそれぞれ隣接するマクロブロックＭＢの符号化処理に関する情報は、基準範囲ＢＲＡＮｅの対応する位置の処理情報ＥＩＮＦに使用される。
【００３９】
また、例えば、参照画像ＲＩＭＧのマクロブロックＭＢｃｒの符号化処理に関する情報は、基準範囲ＢＲＡＮｅの対応する位置（マクロブロックＭＢｃｅ）の処理情報ＥＩＮＦに使用される。さらに、参照画像ＲＩＭＧのマクロブロックＭＢｃｒの右、左下、下、右下にそれぞれ隣接するマクロブロックＭＢの符号化処理に関する情報は、基準範囲ＢＲＡＮｅの対応する位置の処理情報ＥＩＮＦに使用される。
【００４０】
このように、基準範囲ＢＲＡＮの処理情報ＥＩＮＦには、参照画像ＲＩＭＧがイントラ予測で符号化されている場合にも、イントラ予測の符号化処理に関する情報が使用される。このため、参照画像ＲＩＭＧがイントラ予測で符号化されている場合にも、決定部３０は、基準範囲ＢＲＡＮの処理情報ＥＩＮＦに基づいて、処理対象のマクロブロックＭＢｃの動きベクトルの探索範囲を決定できる。
【００４１】
例えば、基準範囲ＢＲＡＮｅの処理情報ＥＩＮＦは、探索範囲の横方向の重みＷｈおよび縦方向の重みＷｖを算出するために使用される。例えば、４分割領域の統計処理では、決定部３０は、基準範囲ＢＲＡＮを縦方向および横方向にそれぞれ２分割して４つの領域に分ける。そして、決定部３０は、探索範囲の横方向の重みＷｈ（Ｗｈ１、Ｗｈ２、Ｗｈ３、Ｗｈ４）および縦方向の重みＷｖ（Ｗｖ１、Ｗｖ２、Ｗｖ３、Ｗｖ４）を、処理情報ＥＩＮＦに基づいて、基準範囲ＢＲＡＮを分割した４つの領域でそれぞれ算出する。これにより、基準範囲ＢＲＡＮの各領域の重みＷｈ、Ｗｖを示す情報ＥＩＮＦａが生成される。例えば、決定部３０は、情報ＥＩＮＦａ（各領域の重みＷｈ、Ｗｖ）に基づいて、処理対象のマクロブロックＭＢｃの動きベクトルの探索範囲を決定する。
【００４２】
また、例えば、全領域の統計処理では、決定部３０は、横方向の重みＷｈの基準範囲ＢＲＡＮ内の累積値Ａｈおよび縦方向の重みＷｖの基準範囲ＢＲＡＮ内の累積値Ａｖを算出する。すなわち、決定部３０は、探索範囲の横方向の重みＡｈおよび縦方向の重みＡｖを基準範囲ＢＲＡＮの単位で算出する。これにより、基準範囲ＢＲＡＮの全領域の重みＡｈ、Ａｖを示す情報ＥＩＮＦｂが生成される。例えば、決定部３０は、各領域の横方向の重みＷｈの組み合わせおよび各領域の縦方向の重みＷｖの組み合わせのいずれも所定の条件を満たしていない場合、情報ＥＩＮＦｂ（全領域の重みＡｈ、Ａｖ）に基づいて、処理対象のマクロブロックＭＢｃの動きベクトルの探索範囲を決定する。
【００４３】
なお、基準範囲ＢＲＡＮの大きさは、この例に限定されない。例えば、基準範囲ＢＲＡＮは、３×３マクロブロックＭＢより大きくてもよい。
【００４４】
図６は、重み算出の一例を示している。図６のイントラ予測の網掛けの四角形、白い四角形および矢印の意味は、図４と同じである。インター予測で符号化されたブロックでは、横方向重みＷｈは、ブロックの動きベクトルＭＶの横方向成分ＭＶｈと同じ値に設定される。また、縦方向重みＷｖは、ブロックの動きベクトルＭＶの縦方向成分ＭＶｖと同じ値に設定される。
【００４５】
イントラ予測で符号化されたブロックでは、横方向重みＷｈおよび縦方向重みＷｖは、予測モードに応じて設定される。なお、図６のイントラ予測時の重みＷｈ、Ｗｖは、ブロックサイズが４×４画素の場合を示している。
【００４６】
例えば、モード０では、横方向重みＷｈは０に設定され、縦方向重みＷｖは４に設定される。モード１では、横方向重みＷｈは４に設定され、縦方向重みＷｖは０に設定される。モード２では、横方向重みＷｈは０に設定され、縦方向重みＷｖは０に設定される。モード３では、横方向重みＷｈは−１に設定され、縦方向重みＷｖは１に設定される。モード４では、横方向重みＷｈは１に設定され、縦方向重みＷｖは１に設定される。
【００４７】
モード５では、横方向重みＷｈは１に設定され、縦方向重みＷｖは２に設定される。モード６では、横方向重みＷｈは２に設定され、縦方向重みＷｖは１に設定される。モード７では、横方向重みＷｈは−１に設定され、縦方向重みＷｖは２に設定される。モード８では、横方向重みＷｈは２に設定され、縦方向重みＷｖは−１に設定される。
【００４８】
なお、４×４画素以外のブロックでは、重みＷｈ、Ｗｖは、例えば、４×４画素のブロックに対する面積比を図６に示した重みＷｈ、Ｗｖに乗算して算出される。
【００４９】
例えば、決定部３０は、各ブロックの処理情報ＥＩＮＦに基づいて、インター予測とイントラ予測とのどちらで符号化されたブロックか判定する。そして、決定部３０は、インター予測で符号化されたブロックに対しては、ブロックの動きベクトルＭＶを処理情報ＥＩＮＦから取得し、重みＷｈ、Ｗｖを動きベクトルＭＶに基づいて算出する。さらに、決定部３０は、ブロックサイズを処理情報ＥＩＮＦから取得し、動きベクトルＭＶに基づいて算出した重みＷｈ、Ｗｖをブロックサイズに基づいて補正する。
【００５０】
また、例えば、決定部３０は、イントラ予測で符号化されたブロックに対しては、ブロックの予測モードを処理情報ＥＩＮＦから取得し、重みＷｈ、Ｗｖを予測モードに基づいて算出する。さらに、決定部３０は、ブロックサイズを処理情報ＥＩＮＦから取得し、予測モードに基づいて算出した重みＷｈ、Ｗｖをブロックサイズに基づいて補正する。
【００５１】
図７は、図１に示した動きベクトル検出装置１０の動作の一例を示している。すなわち、図７は、動きベクトル検出方法の一例を示している。また、図７のステップＳ２００の一例を図８に示し、ステップＳ３０２、Ｓ３１２、Ｓ３２２、Ｓ３３２の一例を図９に示している。図７の動作は、ハードウエアのみで実現されてもよく、ハードウエアをソフトウエアにより制御することにより実現されてもよい。なお、図７では、基準範囲ＢＲＡＮのサイズをＳｈ×Ｓｖ（単位は任意）として、Ｐピクチャの動きベクトルＭＶの探索範囲の決定に関する処理を中心に説明する。Ｉピクチャでは、図７の動作（動きベクトルＭＶの探索範囲の決定に関する処理）は、省かれる。また、Ｂピクチャでは、前方向の動きベクトルＭＶの探索範囲の決定に関する処理と、後方向の動きベクトルＭＶの探索範囲の決定に関する処理とに対して、図７の動作が独立して実行される。
【００５２】
ステップＳ１００では、生成部２０は、基準範囲ＢＲＡＮのマクロブロックＭＢの符号化処理に関する処理情報ＥＩＮＦを生成する。
【００５３】
ステップＳ２００では、決定部３０は、４分割領域の統計処理を実行し、重みＷｈ１−Ｗｈ４、Ｗｖ１−Ｗｖ４を算出する。例えば、決定部３０は、基準範囲ＢＲＡＮを縦方向および横方向にそれぞれ２分割して４つの領域に分ける。そして、決定部３０は、基準範囲ＢＲＡＮを４分割した各領域の重みＷｈ（Ｗｈ１−Ｗｈ４）、Ｗｖ（Ｗｖ１−Ｗｖ４）を、ステップＳ１００で生成した処理情報ＥＩＮＦに基づいて算出する。
【００５４】
なお、横方向重みＷｈ１および縦方向重みＷｖ１は、図５に示したように、基準範囲ＢＲＡＮ内の左上の領域の横方向の重みおよび縦方向の重みである。横方向重みＷｈ２および縦方向重みＷｖ２は、基準範囲ＢＲＡＮ内の右上の領域の横方向の重みおよび縦方向の重みである。横方向重みＷｈ３および縦方向重みＷｖ３は、基準範囲ＢＲＡＮ内の左下の領域の横方向の重みおよび縦方向の重みである。横方向重みＷｈ４および縦方向重みＷｖ４は、基準範囲ＢＲＡＮ内の右下の領域の横方向の重みおよび縦方向の重みである。以下、基準範囲ＢＲＡＮ内の左上、右上、左下、右下のそれぞれの領域を、左上領域、右上領域、左下領域、右下領域とも称する。
【００５５】
ステップＳ３００では、決定部３０は、左上領域の横方向重みＷｈ１および右上領域の横方向重みＷｈ２が正で、かつ、左下領域の横方向重みＷｈ３および右下領域の横方向重みＷｈ４が負であるか否かを判定する。左上領域の横方向重みＷｈ１および右上領域の横方向重みＷｈ２が正で、かつ、左下領域の横方向重みＷｈ３および右下領域の横方向重みＷｈ４が負であるとき（ステップＳ３００のＹｅｓ）、決定部３０の動作は、ステップＳ３０２に移る。
【００５６】
一方、左上領域の横方向重みＷｈ１および右上領域の横方向重みＷｈ２が正で、かつ、左下領域の横方向重みＷｈ３および右下領域の横方向重みＷｈ４が負である条件を満たさないとき（ステップＳ３００のＮｏ）、決定部３０の動作は、ステップＳ３１０に移る。
【００５７】
ステップＳ３０２では、決定部３０は、図９のケース１−１に示すように、処理対象のマクロブロックＭＢｃの動きベクトルＭＶの探索範囲ＲＡＮＧ１１を設定する。これにより、探索範囲ＲＡＮＧの決定に関する動作は、終了する。
【００５８】
ステップＳ３１０では、決定部３０は、左上領域の横方向重みＷｈ１および右上領域の横方向重みＷｈ２が負で、かつ、左下領域の横方向重みＷｈ３および右下領域の横方向重みＷｈ４が正であるか否かを判定する。左上領域の横方向重みＷｈ１および右上領域の横方向重みＷｈ２が負で、かつ、左下領域の横方向重みＷｈ３および右下領域の横方向重みＷｈ４が正であるとき（ステップＳ３１０のＹｅｓ）、決定部３０の動作は、ステップＳ３１２に移る。
【００５９】
一方、左上領域の横方向重みＷｈ１および右上領域の横方向重みＷｈ２が負で、かつ、左下領域の横方向重みＷｈ３および右下領域の横方向重みＷｈ４が正である条件を満たさないとき（ステップＳ３１０のＮｏ）、決定部３０の動作は、ステップＳ３２０に移る。
【００６０】
ステップＳ３１２では、決定部３０は、図９のケース１−２に示すように、処理対象のマクロブロックＭＢｃの動きベクトルＭＶの探索範囲ＲＡＮＧ１２を設定する。これにより、探索範囲ＲＡＮＧの決定に関する動作は、終了する。
【００６１】
ステップＳ３２０では、決定部３０は、左上領域の縦方向重みＷｖ１および左下領域の縦方向重みＷｖ３が正で、かつ、右上領域の縦方向重みＷｖ２および右下領域の縦方向重みＷｖ４が負であるか否かを判定する。左上領域の縦方向重みＷｖ１および左下領域の縦方向重みＷｖ３が正で、かつ、右上領域の縦方向重みＷｖ２および右下領域の縦方向重みＷｖ４が負であるとき（ステップＳ３２０のＹｅｓ）、決定部３０の動作は、ステップＳ３２２に移る。
【００６２】
一方、左上領域の縦方向重みＷｖ１および左下領域の縦方向重みＷｖ３が正で、かつ、右上領域の縦方向重みＷｖ２および右下領域の縦方向重みＷｖ４が負である条件を満たさないとき（ステップＳ３２０のＮｏ）、決定部３０の動作は、ステップＳ３３０に移る。
【００６３】
ステップＳ３２２では、決定部３０は、図９のケース１−３に示すように、処理対象のマクロブロックＭＢｃの動きベクトルＭＶの探索範囲ＲＡＮＧ１３を設定する。これにより、探索範囲ＲＡＮＧの決定に関する動作は、終了する。
【００６４】
ステップＳ３３０では、決定部３０は、左上領域の縦方向重みＷｖ１および左下領域の縦方向重みＷｖ３が負で、かつ、右上領域の縦方向重みＷｖ２および右下領域の縦方向重みＷｖ４が正であるか否かを判定する。左上領域の縦方向重みＷｖ１および左下領域の縦方向重みＷｖ３が負で、かつ、右上領域の縦方向重みＷｖ２および右下領域の縦方向重みＷｖ４が正であるとき（ステップＳ３３０のＹｅｓ）、決定部３０の動作は、ステップＳ３３２に移る。
【００６５】
一方、左上領域の縦方向重みＷｖ１および左下領域の縦方向重みＷｖ３が負で、かつ、右上領域の縦方向重みＷｖ２および右下領域の縦方向重みＷｖ４が正である条件を満たさないとき（ステップＳ３３０のＮｏ）、決定部３０の動作は、ステップＳ４００に移る。
【００６６】
ステップＳ３３２では、決定部３０は、図９のケース１−４に示すように、処理対象のマクロブロックＭＢｃの動きベクトルＭＶの探索範囲ＲＡＮＧ１４を設定する。これにより、探索範囲ＲＡＮＧの決定に関する動作は、終了する。
【００６７】
このように、ステップＳ３００、Ｓ３１０の判定は、各領域の横方向重みＷｈ（Ｗｈ１−Ｗｈ４）の組み合わせに関する判定である。また、ステップＳ３２０、Ｓ３３０の判定は、各領域の縦方向重みＷｖ（Ｗｖ１−Ｗｖ４）の組み合わせに関する判定である。すなわち、ステップＳ３００、Ｓ３１０、Ｓ３２０、Ｓ３３０の処理は、各領域の横方向重みＷｈ（Ｗｈ１−Ｗｈ４）の組み合わせおよび各領域の縦方向重みＷｖ（Ｗｖ１−Ｗｖ４）の組み合わせのいずれかが所定の条件を満たしているか否かを判定する処理の一例である。
【００６８】
そして、ステップＳ３０２、Ｓ３１２、Ｓ３２２、Ｓ３３２の処理は、各領域の横方向重みＷｈの組み合わせおよび各領域の縦方向重みＷｖの組み合わせのいずれかが所定の条件を満たしている場合に、組み合わせに応じて実行される処理の一例である。ステップＳ３０２、Ｓ３１２、Ｓ３２２、Ｓ３３２では、動きベクトルＭＶの探索範囲ＲＡＮＧは、例えば、基準範囲ＢＲＡＮの面積と同じ面積になるように、設定される。なお、ステップＳ３０２、Ｓ３１２、Ｓ３２２、Ｓ３３２で設定される探索範囲ＲＡＮＧの面積と基準範囲ＢＲＡＮの面積との差の絶対値は、所定値以下でもよい。
【００６９】
ステップＳ４００では、決定部３０は、基準範囲ＢＲＡＮの全領域の重みＡｈ、Ａｖを算出する。例えば、基準範囲ＢＲＡＮの全領域の横方向重みＡｈは、各領域の横方向重みＷｈ１、Ｗｈ２、Ｗｈ３、Ｗｈ４の累積値である。また。例えば、基準範囲ＢＲＡＮの全領域の縦方向重みＡｖは、各領域の縦方向重みＷｖ１、Ｗｖ２、Ｗｖ３、Ｗｖ４の累積値である。すなわち、ステップＳ４００の処理は、図５に示した全領域の統計処理に対応している。
【００７０】
ステップＳ４１０では、決定部３０は、横方向重みＡｈを縦方向重みＡｖで除算した結果の絶対値（｜Ａｈ／Ａｖ｜）が４より大きいか否かを判定する。横方向重みＡｈを縦方向重みＡｖで除算した結果の絶対値が４より大きいとき（ステップＳ４１０のＹｅｓ）、決定部３０の動作は、ステップＳ４１２に移る。一方、横方向重みＡｈを縦方向重みＡｖで除算した結果の絶対値が４以下のとき（ステップＳ４１０のＮｏ）、決定部３０の動作は、ステップＳ４２０に移る。
【００７１】
ステップＳ４１２では、決定部３０は、処理対象のマクロブロックＭＢｃの動きベクトルＭＶの探索範囲ＲＡＮＧの横方向の長さＨおよび縦方向の長さＶを設定する。例えば、決定部３０は、動きベクトルＭＶの探索範囲ＲＡＮＧの横方向の長さＨを、基準範囲ＢＲＡＮの横方向の長さＳｈの２倍に設定し、動きベクトルＭＶの探索範囲ＲＡＮＧの縦方向の長さＶを、基準範囲ＢＲＡＮの縦方向の長さＳｖの０．５倍に設定する。このように、決定部３０は、横方向重みＡｈが強すぎる場合に、探索範囲ＲＡＮＧの横方向の長さＨを、基準範囲ＢＲＡＮの横方向の長さＳｈの２倍にクリップする。探索範囲ＲＡＮＧの横方向の長さＨおよび縦方向の長さＶが設定されたため、探索範囲ＲＡＮＧの決定に関する動作は、終了する。
【００７２】
ステップＳ４２０では、決定部３０は、縦方向重みＡｖを横方向重みＡｈで除算した結果の絶対値（｜Ａｖ／Ａｈ｜）が４より大きいか否かを判定する。縦方向重みＡｖを横方向重みＡｈで除算した結果の絶対値が４より大きいとき（ステップＳ４２０のＹｅｓ）、決定部３０の動作は、ステップＳ４２２に移る。一方、縦方向重みＡｖを横方向重みＡｈで除算した結果の絶対値が４以下のとき（ステップＳ４２０のＮｏ）、決定部３０の動作は、ステップＳ４３０に移る。
【００７３】
ステップＳ４２２では、決定部３０は、処理対象のマクロブロックＭＢｃの動きベクトルＭＶの探索範囲ＲＡＮＧの横方向の長さＨおよび縦方向の長さＶを設定する。例えば、決定部３０は、動きベクトルＭＶの探索範囲ＲＡＮＧの横方向の長さＨを、基準範囲ＢＲＡＮの横方向の長さＳｈの０．５倍に設定し、動きベクトルＭＶの探索範囲ＲＡＮＧの縦方向の長さＶを、基準範囲ＢＲＡＮの縦方向の長さＳｖの２倍に設定する。このように、決定部３０は、縦方向重みＡｖが強すぎる場合に、探索範囲ＲＡＮＧの縦方向の長さＶを、基準範囲ＢＲＡＮの縦方向の長さＳｖの２倍にクリップする。探索範囲ＲＡＮＧの横方向の長さＨおよび縦方向の長さＶが設定されたため、探索範囲ＲＡＮＧの決定に関する動作は、終了する。
【００７４】
ステップＳ４３０では、決定部３０は、処理対象のマクロブロックＭＢｃの動きベクトルＭＶの探索範囲ＲＡＮＧの横方向の長さＨおよび縦方向の長さＶを設定する。例えば、決定部３０は、動きベクトルＭＶの探索範囲ＲＡＮＧの横方向の長さＨを、下記の式（１）で表される大きさに設定し、動きベクトルＭＶの探索範囲ＲＡＮＧの縦方向の長さＶを、下記の式（２）で表される大きさに設定する。
【００７５】
Ｈ＝Ｓｈ×√｜Ａｈ／Ａｖ｜          ‥‥（１）
Ｖ＝Ｓｖ×√｜Ａｖ／Ａｈ｜          ‥‥（２）
このように、決定部３０は、各領域の横方向重みＷｈ（Ｗｈ１−Ｗｈ４）の組み合わせおよび各領域の縦方向重みＷｖ（Ｗｖ１−Ｗｖ４）の組み合わせのいずれも所定の条件を満たしていない場合、基準範囲ＢＲＡＮの全領域の重みＡｈ、Ａｖに基づいて、動きベクトルＭＶの探索範囲ＲＡＮＧを決定する。ステップＳ４１２、Ｓ４２２、Ｓ４３０では、動きベクトルＭＶの探索範囲ＲＡＮＧは、例えば、基準範囲ＢＲＡＮの面積と同じ面積になるように、設定される。なお、ステップＳ４１２、Ｓ４２２、Ｓ４３０で設定される探索範囲ＲＡＮＧの面積と基準範囲ＢＲＡＮの面積との差の絶対値は、所定値以下でもよい。
【００７６】
なお、動きベクトル検出装置１０の動作は、この例に限定されない。例えば、ステップＳ４１０、Ｓ４２０の判定に用いられる閾値は、４以外でもよい。あるいは、ステップＳ４００−Ｓ４３０は、省かれてもよい。この場合、左上領域の縦方向重みＷｖ１および左下領域の縦方向重みＷｖ３が負で、かつ、右上領域の縦方向重みＷｖ２および右下領域の縦方向重みＷｖ４が正である条件を満たさないとき（ステップＳ３３０のＮｏ）、基準範囲ＢＲＡＮが探索範囲ＲＡＮＧに設定される。
【００７７】
また、例えば、縦方向重みＷｖの組み合わせに関するステップＳ３２０、Ｓ３３０の判定は、横方向重みＷｈの組み合わせに関するステップＳ３００、Ｓ３１０の判定より先に実行されてもよい。この場合、左上領域の縦方向重みＷｖ１および左下領域の縦方向重みＷｖ３が負で、かつ、右上領域の縦方向重みＷｖ２および右下領域の縦方向重みＷｖ４が正である条件を満たさないとき（ステップＳ３３０のＮｏ）、決定部３０の動作は、ステップＳ３００に移る。そして、左上領域の横方向重みＷｈ１および右上領域の横方向重みＷｈ２が負で、かつ、左下領域の横方向重みＷｈ３および右下領域の横方向重みＷｈ４が正である条件を満たさないとき（ステップＳ３１０のＮｏ）、決定部３０の動作は、ステップＳ４００に移る。
【００７８】
あるいは、横方向重みＷｈの組み合わせに関する判定条件と縦方向重みＷｖの組み合わせに関する判定条件との両方を満たすか否かを判定する処理を、ステップＳ３００等の前に追加してもよい。例えば、横方向重みＷｈの組み合わせに関する判定条件と縦方向重みＷｖの組み合わせに関する判定条件との両方を満たす場合、組み合わせに応じて実行される処理（ステップＳ３０２、Ｓ３１２、Ｓ３２２、Ｓ３３２のいずれかの処理）は、所定のルールに従って選択されてもよい。
【００７９】
所定のルールの一例は、重みＷｈ１、Ｗｈ２の和をＡｈ１２とし、重みＷｈ３、Ｗｈ４の和をＡｈ３４とし、重みＷｖ１、Ｗｖ３の和をＡｖ１３とし、重みＷｖ２、Ｗｖ４の和をＡｖ２４とした場合、式（３）で与えられる。
【００８０】
｜Ａｈ１２−Ａｈ３４｜＞｜Ａｖ１３−Ａｖ２４｜          ‥‥（３）
例えば、決定部３０は、式（３）を満たすとき、横方向重みＷｈの組み合わせに応じた処理（ステップＳ３０２、Ｓ３１２のいずれかの処理）を実行する。また、例えば、決定部３０は、式（３）を満たさないとき、縦方向重みＷｖの組み合わせに応じた処理（ステップＳ３２２、Ｓ３３２のいずれかの処理）を実行する。なお、横方向重みＷｈの組み合わせに関する判定条件と縦方向重みＷｖの組み合わせに関する判定条件との両方を満たす場合に用いられる所定のルールは、式（３）の条件以外でもよい。
【００８１】
図８は、図７に示した４分割領域の統計処理（図７のステップＳ２００）の一例を示している。すなわち、図８は、図５に示した４分割領域の統計処理の一例を示している。例えば、決定部３０は、図７のステップＳ１００で生成された基準範囲ＢＲＡＮの処理情報ＥＩＮＦを参照して、図８の動作を実行する。なお、図８の重みＷｈｉ、Ｗｖｉは、重み算出対象の領域（ステップＳ２０２で選択される領域）の重みを示している。例えば、各領域の重みＷｈｉ（Ｗｈ１−Ｗｈ４）、Ｗｖｉ（Ｗｖ１−Ｗｖ４）の初期値は、０である。
【００８２】
ステップＳ２０２では、決定部３０は、重み算出対象の領域を選択する。例えば、決定部３０は、左上領域、右上領域、左下領域、右下領域の中から、重みＷｈｉ、Ｗｖｉが算出されていない領域を選択する。
【００８３】
ステップＳ２０４では、決定部３０は、重み算出対象の分割ブロックを選択する。例えば、決定部３０は、ステップＳ２０２で選択した領域の中から、重みＷｈ、Ｗｖが算出されていない分割ブロックを選択する。分割ブロックは、符号化の際に分割されたブロックである。例えば、インター予測では、図３に示したように、７通りのサイズが存在する。また、例えば、イントラ予測では、１６×１６画素、８×８画素、４×４画素の３通りのサイズが存在する。
【００８４】
ステップＳ２０６では、決定部３０は、重み算出対象の分割ブロック（ステップＳ２０４で選択した分割ブロック）がイントラ予測で符号化されたブロックか否かを判定する。重み算出対象の分割ブロックがイントラ予測で符号化されたブロックであるとき（ステップＳ２０６のＹｅｓ）、決定部３０の動作は、ステップＳ２０８に移る。一方、重み算出対象の分割ブロックがインター予測で符号化されたブロックであるとき（ステップＳ２０６のＮｏ）、決定部３０の動作は、ステップＳ２１０に移る。
【００８５】
ステップＳ２０８では、決定部３０は、図６に示したように、イントラ予測時の予測モードに応じた重みＷｈ、Ｗｖを算出する。そして、決定部３０は、イントラ予測時の予測モードに応じた重みＷｈ、Ｗｖを算出した後、ステップＳ２１２の処理を実行する。
【００８６】
ステップＳ２１０では、決定部３０は、重み算出対象の分割ブロック（ステップＳ２０４で選択した分割ブロック）の動きベクトルＭＶに応じた重みＷｈ、Ｗｖを算出する。例えば、決定部３０は、横方向重みＷｈを動きベクトルＭＶの横方向成分ＭＶｈと同じ値に設定し、縦方向重みＷｖを動きベクトルＭＶの縦方向成分ＭＶｖと同じ値に設定する。
【００８７】
ステップＳ２１２では、決定部３０は、重み算出対象の分割ブロックのサイズが１６×１６画素か否かを判定する。なお、例えば、ステップＳ２０４で選択した分割ブロックが複数の領域にまたがっている場合、決定部３０は、ステップＳ２０４で選択した分割ブロックとステップＳ２０２で選択した領域とが重なる部分のサイズが１６×１６画素か否かを判定する。
【００８８】
重み算出対象の分割ブロックのサイズが１６×１６画素であるとき（ステップＳ２１２のＹｅｓ）、決定部３０の動作は、ステップＳ２１４に移る。一方、重み算出対象の分割ブロックのサイズが１６×１６画素でないとき（ステップＳ２１２のＮｏ）、決定部３０の動作は、ステップＳ２１６に移る。
【００８９】
ステップＳ２１４では、決定部３０は、ステップＳ２０８あるいはステップＳ２１０で算出した重みＷｈ、Ｗｖを１６倍にする。
【００９０】
ステップＳ２１６では、決定部３０は、重み算出対象の分割ブロックのサイズが１６×８画素および８×１６画素のいずれかであるか否かを判定する。なお、例えば、ステップＳ２０４で選択した分割ブロックが複数の領域にまたがっている場合、決定部３０は、ステップＳ２０４で選択した分割ブロックとステップＳ２０２で選択した領域とが重なる部分のサイズを判定する。例えば、決定部３０は、ステップＳ２０４で選択した分割ブロックとステップＳ２０２で選択した領域とが重なる部分のサイズが１６×８画素および８×１６画素のいずれかであるか否かを判定する。
【００９１】
重み算出対象の分割ブロックのサイズが１６×８画素および８×１６画素のいずれかであるとき（ステップＳ２１６のＹｅｓ）、決定部３０の動作は、ステップＳ２１８に移る。一方、重み算出対象の分割ブロックのサイズが１６×８画素および８×１６画素のいずれでもないとき（ステップＳ２１６のＮｏ）、決定部３０の動作は、ステップＳ２２０に移る。
【００９２】
ステップＳ２１８では、決定部３０は、ステップＳ２０８あるいはステップＳ２１０で算出した重みＷｈ、Ｗｖを８倍にする。
【００９３】
ステップＳ２２０では、決定部３０は、重み算出対象の分割ブロックのサイズが８×８画素か否かを判定する。重み算出対象の分割ブロックのサイズが８×８画素であるとき（ステップＳ２２０のＹｅｓ）、決定部３０の動作は、ステップＳ２２２に移る。一方、重み算出対象の分割ブロックのサイズが８×８画素でないとき（ステップＳ２２０のＮｏ）、決定部３０の動作は、ステップＳ２２４に移る。
【００９４】
ステップＳ２２２では、決定部３０は、ステップＳ２０８あるいはステップＳ２１０で算出した重みＷｈ、Ｗｖを４倍にする。
【００９５】
ステップＳ２２４では、決定部３０は、重み算出対象の分割ブロックのサイズが８×４画素および４×８画素のいずれかであるか否かを判定する。重み算出対象の分割ブロックのサイズが８×４画素および４×８画素のいずれかであるとき（ステップＳ２２４のＹｅｓ）、決定部３０の動作は、ステップＳ２２６に移る。一方、重み算出対象の分割ブロックのサイズが８×４画素および４×８画素のいずれでもないとき（ステップＳ２２４のＮｏ）、決定部３０の動作は、ステップＳ２２８に移る。すなわち、重み算出対象の分割ブロックのサイズが４×４画素であるとき、決定部３０の動作は、ステップＳ２２８に移る。
【００９６】
ステップＳ２２６では、決定部３０は、ステップＳ２０８あるいはステップＳ２１０で算出した重みＷｈ、Ｗｖを２倍にする。
【００９７】
ステップＳ２２８では、決定部３０は、ステップＳ２０８あるいはステップＳ２１０で算出した重みＷｈ、Ｗｖを１倍にする。すなわち、決定部３０は、ステップＳ２０８あるいはステップＳ２１０で算出した重みＷｈ、Ｗｖを補正しない。このように、ステップＳ２１２−Ｓ２２６の一連の処理では、決定部３０は、ステップＳ２０８あるいはステップＳ２１０で算出した重みＷｈ、Ｗｖを、分割ブロックのサイズに基づいて補正する。
【００９８】
すなわち、ステップＳ２１４、Ｓ２１８、Ｓ２２２、Ｓ２２６、Ｓ２２８では、決定部３０は、分割ブロックのサイズに応じた重みＷｈ、Ｗｖを算出する。決定部３０は、ステップＳ２１４、Ｓ２１８、Ｓ２２２、Ｓ２２６、Ｓ２２８のいずれかの処理を実行した後、ステップＳ２３０において、重みＷｈｉ、Ｗｖｉを更新する。
【００９９】
ステップＳ２３０では、決定部３０は、ステップＳ２０２で選択した領域の重みＷｈｉ、Ｗｖｉを更新する。例えば、決定部３０は、ステップＳ２１４、Ｓ２１８、Ｓ２２２、Ｓ２２６、Ｓ２２８のいずれかにより算出された横方向重みＷｈを横方向重みＷｈｉに加算して、横方向重みＷｈｉを更新する。また、例えば、決定部３０は、ステップＳ２１４、Ｓ２１８、Ｓ２２２、Ｓ２２６、Ｓ２２８のいずれかにより算出された縦方向重みＷｖを縦方向重みＷｖｉに加算して、縦方向重みＷｖｉを更新する。
【０１００】
ステップＳ２３２では、決定部３０は、ステップＳ２０２で選択した領域内の全ての分割ブロックに対して、重みＷｈ、Ｗｖを算出したか否かを判定する。重みＷｈ、Ｗｖが算出されていない分割ブロックがステップＳ２０２で選択した領域に存在するとき（ステップＳ２３２のＮｏ）、決定部３０の動作は、ステップＳ２０４に移る。すなわち、ステップＳ２０２で選択した領域内の全ての分割ブロックで重みＷｈ、Ｗｖが算出されるまで、ステップＳ２０４−Ｓ２３０の処理が繰り返される。
【０１０１】
一方、ステップＳ２０２で選択した領域内の全ての分割ブロックで重みＷｈ、Ｗｖが算出されているとき（ステップＳ２３２のＹｅｓ）、決定部３０の動作は、ステップＳ２３４に移る。例えば、ステップＳ２０２で選択した領域内の全ての分割ブロックで重みＷｈ、Ｗｖが算出されているとき、決定部３０は、ステップＳ２３０で更新した最新の重みＷｈｉ、Ｗｖｉを、ステップＳ２０２で選択した領域の重みＷｈｉ、Ｗｖｉとして算出する。そして、決定部３０は、ステップＳ２０２で選択した領域の重みＷｈｉ、Ｗｖｉを算出した後、ステップＳ２３４の処理を実行する。
【０１０２】
ステップＳ２３４では、決定部３０は、左上領域、右上領域、左下領域、右下領域の全ての領域の重みＷｈｉ、Ｗｖｉを算出したか否かを判定する。重みＷｈｉ、Ｗｖｉが算出されていない領域が存在するとき（ステップＳ２３４のＮｏ）、決定部３０の動作は、ステップＳ２０２に移る。すなわち、左上領域、右上領域、左下領域、右下領域の全ての領域の重みＷｈｉ、Ｗｖｉが算出されるまで、ステップＳ２０２−Ｓ２３２の処理が繰り返される。
【０１０３】
一方、左上領域、右上領域、左下領域、右下領域の全ての領域の重みＷｈｉ、Ｗｖｉが算出されているとき（ステップＳ２３４のＹｅｓ）、決定部３０による４分割領域の統計処理（図７のステップＳ２００）は、終了する。すなわち、左上領域、右上領域、左下領域、右下領域の全ての領域の重みＷｈｉ、Ｗｖｉが算出された後、図７に示したステップＳ３００が実行される。
【０１０４】
なお、４分割領域の統計処理は、この例に限定されない。例えば、ステップＳ２２８は、省かれてもよい。
【０１０５】
図９は、基準範囲ＢＲＡＮの４分割領域の統計処理に基づいて設定される探索範囲ＲＡＮＧの一例を示している。なお、図９は、図７のステップＳ３０２、Ｓ３１２、Ｓ３２２、Ｓ３３２で実行されるケース１−１、ケース１−２、ケース１−３、ケース１−４の処理の一例を示している。ケース１−２、ケース１−３、ケース１−４の説明では、ケース１−１で説明した内容と同様の内容の説明を省略する。
【０１０６】
ケース１−１は、左上領域の横方向重みＷｈ１および右上領域の横方向重みＷｈ２が正で、かつ、左下領域の横方向重みＷｈ３および右下領域の横方向重みＷｈ４が負であるとき、実行される。例えば、ケース１−１では、決定部３０は、基準範囲ＢＲＡＮを左右に拡大し（図９の網掛けの領域ＡＤ１ａ、ＡＤ１ｂ）、基準範囲ＢＲＡＮの左上隅の領域ＤＥ１ａおよび右下隅の領域ＤＥ１ｂを探索範囲ＲＡＮＧから除外して、探索範囲ＲＡＮＧ１１を設定する。
【０１０７】
例えば、基準範囲ＢＲＡＮの左側の辺と辺ＨＹとの角度α、領域ＡＤ１ａの辺Ｓ１ａの長さは、探索範囲ＲＡＮＧ１１から除外される領域ＤＥ１ａの面積と、探索範囲ＲＡＮＧ１１に追加される領域ＡＤ１ａの面積とが等しくなるように、設定される。また、左上隅のマクロブロックＭＢの左下の頂点Ｐ１ａは、辺ＨＹの回転軸に対応している。
【０１０８】
決定部３０は、例えば、横方向重みＷｈ１、Ｗｈ３の差分の絶対値を縦方向重みＷｖ１、Ｗｖ３の差分の絶対値で除算した結果の大きさに基づいて、角度αを算出する。例えば、決定部３０は、横方向重みＷｈ１、Ｗｈ３の差分の絶対値を縦方向重みＷｖ１、Ｗｖ３の差分の絶対値で除算した結果が０に近づくほど、角度αを小さくする。すなわち、決定部３０は、横方向重みＷｈ１、Ｗｈ３の差分の絶対値を縦方向重みＷｖ１、Ｗｖ３の差分の絶対値で除算した結果が大きくなるほど、角度αを大きくする。
【０１０９】
なお、角度αの最大値は、例えば、４５度に設定されている。例えば、横方向重みＷｈ１、Ｗｈ３の差分の絶対値を縦方向重みＷｖ１、Ｗｖ３の差分の絶対値で除算した結果が２以上の場合、決定部３０は、角度αを４５度に設定する。そして、決定部３０は、領域ＤＥ１ａの面積と領域ＡＤ１ａの面積とが等しくなるように、辺Ｓ１ａの長さを算出する。
【０１１０】
角度βも、角度αと同様に算出される。例えば、決定部３０は、横方向重みＷｈ２、Ｗｈ４の差分の絶対値を縦方向重みＷｖ２、Ｗｖ４の差分の絶対値で除算した結果の大きさに基づいて、角度βを算出する。そして、決定部３０は、領域ＤＥ１ｂの面積と領域ＡＤ１ｂの面積とが等しくなるように、領域ＡＤ１ｂの辺Ｓ１ｂの長さを算出する。
【０１１１】
ケース１−２は、左上領域の横方向重みＷｈ１および右上領域の横方向重みＷｈ２が負で、かつ、左下領域の横方向重みＷｈ３および右下領域の横方向重みＷｈ４が正であるとき、実行される。例えば、ケース１−２では、決定部３０は、基準範囲ＢＲＡＮを左右に拡大し（図９の網掛けの領域ＡＤ２ａ、ＡＤ２ｂ）、基準範囲ＢＲＡＮの右上隅の領域ＤＥ２ｂおよび左下隅の領域ＤＥ２ａを探索範囲ＲＡＮＧから除外して、探索範囲ＲＡＮＧ１２を設定する。
【０１１２】
例えば、角度α、領域ＡＤ２ａの辺Ｓ２ａの長さは、領域ＤＥ２ａの面積と領域ＡＤ２ａの面積とが等しくなるように、設定される。例えば、決定部３０は、横方向重みＷｈ１、Ｗｈ３の差分の絶対値を縦方向重みＷｖ１、Ｗｖ３の差分の絶対値で除算した結果の大きさに基づいて、角度αを算出する。そして、決定部３０は、領域ＤＥ２ａの面積と領域ＡＤ２ａの面積とが等しくなるように、辺Ｓ２ａの長さを算出する。
【０１１３】
また、例えば、決定部３０は、横方向重みＷｈ２、Ｗｈ４の差分の絶対値を縦方向重みＷｖ２、Ｗｖ４の差分の絶対値で除算した結果の大きさに基づいて、角度βを算出する。そして、決定部３０は、領域ＤＥ２ｂの面積と領域ＡＤ２ｂの面積とが等しくなるように、領域ＡＤ２ｂの辺Ｓ２ｂの長さを算出する。
【０１１４】
ケース１−３は、左上領域の縦方向重みＷｖ１および左下領域の縦方向重みＷｖ３が正で、かつ、右上領域の縦方向重みＷｖ２および右下領域の縦方向重みＷｖ４が負であるとき、実行される。例えば、ケース１−３では、決定部３０は、基準範囲ＢＲＡＮを上下に拡大し（図９の網掛けの領域ＡＤ３ａ、ＡＤ３ｂ）、基準範囲ＢＲＡＮの左上隅の領域ＤＥ３ａおよび右下隅の領域ＤＥ３ｂを探索範囲ＲＡＮＧから除外して、探索範囲ＲＡＮＧ１３を設定する。
【０１１５】
例えば、角度α、領域ＡＤ３ａの辺Ｓ３ａの長さは、領域ＤＥ３ａの面積と領域ＡＤ３ａの面積とが等しくなるように、設定される。例えば、決定部３０は、縦方向重みＷｖ１、Ｗｖ２の差分の絶対値を横方向重みＷｈ１、Ｗｈ２の差分の絶対値で除算した結果の大きさに基づいて、角度αを算出する。そして、決定部３０は、領域ＤＥ３ａの面積と領域ＡＤ３ａの面積とが等しくなるように、辺Ｓ３ａの長さを算出する。なお、ケース１−３では、決定部３０は、例えば、縦方向重みＷｖ１、Ｗｖ２の差分の絶対値を横方向重みＷｈ１、Ｗｈ２の差分の絶対値で除算した結果が０に近づくほど、角度αを小さくする。
【０１１６】
角度βも、角度αと同様に算出される。例えば、決定部３０は、縦方向重みＷｖ３、Ｗｖ４の差分の絶対値を横方向重みＷｈ３、Ｗｈ４の差分の絶対値で除算した結果の大きさに基づいて、角度βを算出する。そして、決定部３０は、領域ＤＥ３ｂの面積と領域ＡＤ３ｂの面積とが等しくなるように、領域ＡＤ３ｂの辺Ｓ３ｂの長さを算出する。
【０１１７】
ケース１−４は、左上領域の縦方向重みＷｖ１および左下領域の縦方向重みＷｖ３が負で、かつ、右上領域の縦方向重みＷｖ２および右下領域の縦方向重みＷｖ４が正であるとき、実行される。例えば、ケース１−４では、決定部３０は、基準範囲ＢＲＡＮを上下に拡大し（図９の網掛けの領域ＡＤ４ａ、ＡＤ４ｂ）、基準範囲ＢＲＡＮの右上隅の領域ＤＥ４ａおよび左下隅の領域ＤＥ４ｂを探索範囲ＲＡＮＧから除外して、探索範囲ＲＡＮＧ１４を設定する。
【０１１８】
例えば、角度α、領域ＡＤ４ａの辺Ｓ４ａの長さは、領域ＤＥ４ａの面積と領域ＡＤ４ａの面積とが等しくなるように、設定される。例えば、決定部３０は、縦方向重みＷｖ１、Ｗｖ２の差分の絶対値を横方向重みＷｈ１、Ｗｈ２の差分の絶対値で除算した結果の大きさに基づいて、角度αを算出する。そして、決定部３０は、領域ＤＥ４ａの面積と領域ＡＤ４ａの面積とが等しくなるように、辺Ｓ４ａの長さを算出する。
【０１１９】
また、例えば、決定部３０は、縦方向重みＷｖ３、Ｗｖ４の差分の絶対値を横方向重みＷｈ３、Ｗｈ４の差分の絶対値で除算した結果の大きさに基づいて、角度βを算出する。そして、決定部３０は、領域ＤＥ４ｂの面積と領域ＡＤ４ｂの面積とが等しくなるように、領域ＡＤ４ｂの辺Ｓ４ｂの長さを算出する。
【０１２０】
なお、４分割領域の統計処理に基づく探索範囲ＲＡＮＧの設定方法は、この例に限定されない。例えば、辺ＨＹ等の回転軸に対応している点Ｐ１ａ、Ｐ１ｂ、Ｐ２ａ、Ｐ２ｂ、Ｐ３ａ、Ｐ３ｂ、Ｐ４ａ、Ｐ４ｂは、基準範囲ＢＲＡＮの各辺の中心に位置してもよい。
【０１２１】
また、例えば、ケース１−１、ケース１−２では、決定部３０は、横方向重みＷｈ１、Ｗｈ３の差分の絶対値を予め設定された基準値で除算した結果の大きさに基づいて、角度αを算出してもよい。同様に、決定部３０は、横方向重みＷｈ２、Ｗｈ４の差分の絶対値を予め設定された基準値で除算した結果の大きさに基づいて、角度βを算出してもよい。
【０１２２】
また、例えば、ケース１−３、ケース１−４では、決定部３０は、縦方向重みＷｖ１、Ｗｖ２の差分の絶対値を予め設定された基準値で除算した結果の大きさに基づいて、角度αを算出してもよい。同様に、決定部３０は、縦方向重みＷｖ３、Ｗｖ４の差分の絶対値を予め設定された基準値で除算した結果の大きさに基づいて、角度βを算出してもよい。
【０１２３】
図１０は、図１に示した決定部３０により設定される探索範囲ＲＡＮＧの一例を示している。図１０の網掛け部分は、基準範囲ＢＲＡＮから拡大された領域を示している。ケース１−１からケース１−４は、図９に示した角度αおよび角度βが４５度のときの探索範囲ＲＡＮＧ１１、ＲＡＮＧ１２、ＲＡＮＧ１３、ＲＡＮＧ１４を示している。ケース１−１からケース１−４では、基準範囲ＢＲＡＮから拡大された領域（網掛け部分）の基準範囲ＢＲＡＮに対する割合ＰＥＲは、約１１．１％である。
【０１２４】
ケース２−１は、横方向重みＡｈと縦方向重みＡｖとの比が２：０．５のときの探索範囲ＲＡＮＧ２１を示している。探索範囲ＲＡＮＧ２１のサイズは、例えば、図７のステップＳ４１２で設定される。基準範囲ＢＲＡＮから拡大された領域（網掛け部分）の基準範囲ＢＲＡＮに対する割合ＰＥＲは、約５０％である。
【０１２５】
ケース２−２は、横方向重みＡｈと縦方向重みＡｖとの比が１．５：０．６７のときの探索範囲ＲＡＮＧ２２を示している。探索範囲ＲＡＮＧ２２のサイズは、例えば、図７のステップＳ４３０で設定される。基準範囲ＢＲＡＮから拡大された領域（網掛け部分）の基準範囲ＢＲＡＮに対する割合ＰＥＲは、約１６．７％である。
【０１２６】
ケース２−３は、横方向重みＡｈと縦方向重みＡｖとの比が１：１のときの探索範囲ＲＡＮＧ２３を示している。この場合、基準範囲ＢＲＡＮが探索範囲ＲＡＮＧ２３として設定される。例えば、探索範囲ＲＡＮＧ２３のサイズは、図７のステップＳ４３０で設定される。基準範囲ＢＲＡＮから拡大された領域（網掛け部分）の基準範囲ＢＲＡＮに対する割合ＰＥＲは、０％である。
【０１２７】
ケース２−４は、横方向重みＡｈと縦方向重みＡｖとの比が０．６７：１．５のときの探索範囲ＲＡＮＧ２４を示している。探索範囲ＲＡＮＧ２４のサイズは、例えば、図７のステップＳ４３０で設定される。基準範囲ＢＲＡＮから拡大された領域（網掛け部分）の基準範囲ＢＲＡＮに対する割合ＰＥＲは、約１６．７％である。
【０１２８】
ケース２−５は、横方向重みＡｈと縦方向重みＡｖとの比が０．５：２のときの探索範囲ＲＡＮＧ２５を示している。探索範囲ＲＡＮＧ２５のサイズは、例えば、図７のステップＳ４２２で設定される。基準範囲ＢＲＡＮから拡大された領域（網掛け部分）の基準範囲ＢＲＡＮに対する割合ＰＥＲは、約５０％である。
【０１２９】
このように、この実施形態では、参照画像ＲＩＭＧがインター予測で符号化されたか否かに拘わらず、入力画像ＩＩＭＧや参照画像ＲＩＭＧが符号化されたときのパラメータ（予測モード、動きベクトルＭＶ等）に応じた探索範囲ＲＡＮＧを設定できる。例えば、所望の精度の動きベクトルＭＶが探索範囲ＲＡＮＧに存在する場合、各ケースにおいて、割合ＰＥＲの分だけ、所望の精度の動きベクトルＭＶが検出される確率が向上する。すなわち、この実施形態では、動きベクトルＭＶの検出精度を向上できる。
【０１３０】
また、基準範囲ＢＲＡＮから拡大された領域（網掛け部分）とほぼ同じ面積の領域が探索範囲ＲＡＮＧから除外されるため、探索範囲ＲＡＮＧの面積は、基準範囲ＢＲＡＮの面積とほぼ同じである。このため、この実施形態では、動きベクトル検出処理の演算量の増加を抑制しつつ、動きベクトルＭＶの検出精度を向上できる。
【０１３１】
さらに、この実施形態では、動きベクトルＭＶの検出精度を向上できるため、入力画像ＩＩＭＧを符号化する際の予測精度を向上できる。すなわち、この実施形態では、動画圧縮率を向上できる。動画圧縮率の向上により、例えば、一定のビットレートで動画が転送される場合に、画質の劣化を抑制できる。
【０１３２】
図１１は、図１０に示したケース２−２の探索範囲ＲＡＮＧ２２での動きベクトルＭＶの探索の一例を示している。図１１の網掛け部分は、処理対象のマクロブロックＭＢｃと比較されるブロックＲＢＫを示している。
【０１３３】
例えば、動きベクトル検出装置１０は、探索範囲ＲＡＮＧ２２の左上隅から右下隅までブロックＲＢＫを１画素ずつずらしながら、処理対象のマクロブロックＭＢｃ内の各画素とブロックＲＢＫ内の各画素との差分の和を比較する（図１１の（ａ）−（ｆ））。そして、差分の和が最も小さいときのブロックＲＢＫのマクロブロックＭＢｃに対する位置を動きベクトルＭＶとして検出する。
【０１３４】
図１２は、図１に示した動きベクトル検出装置１０が搭載される画像処理装置ＩＳＹＳの一例を示している。画像処理装置ＩＳＹＳは、例えば、ＭＰＥＧやＨ．２６４等に準拠した動画像符号化装置である。画像処理装置ＩＳＹＳは、動きベクトル検出装置１０を有する画像処理装置の一態様である。
【０１３５】
画像処理装置ＩＳＹＳは、動きベクトル検出装置１０、インター予測部４０、イントラ予測部５０、選択部６０、差分算出部７０、直交変換部８０、量子化部９０、エントロピー符号化部１００、逆量子化部１１０、逆直交変換部１２０、加算部１３０、フレームバッファ１４０、フィルタ部１５０、バッファ管理部１６０およびフレームバッファ１７０を有している。
【０１３６】
動きベクトル検出装置１０は、例えば、入力画像ＩＩＭＧ（符号化対象のフレームの画像）を受ける。また、動きベクトル検出装置１０は、参照画像ＲＩＭＧ（参照フレームの画像）をフレームバッファ１７０から受ける。そして、動きベクトル検出装置１０は、動きベクトルＭＶを含む動きベクトル情報ＭＶＩＮＦを、インター予測部４０に出力する。
【０１３７】
インター予測部４０は、例えば、入力画像ＩＩＭＧ、参照画像ＲＩＭＧおよび動きベクトル情報ＭＶＩＮＦを受ける。そして、インター予測部４０は、例えば、動きベクトル検出装置１０により検出された動きベクトルＭＶに基づいて動き補償処理を実行し、フレーム間予測画像を生成する。
【０１３８】
イントラ予測部５０は、例えば、入力画像ＩＩＭＧを受ける。また、イントラ予測部５０は、ローカルデコード画像（現フレームの画像）をフレームバッファ１４０から受ける。そして、イントラ予測部５０は、例えば、フレーム内予測を実行し、イントラ予測画像を生成する。
【０１３９】
選択部６０は、例えば、フレーム間予測画像およびイントラ予測画像の圧縮率等の情報に基づいて、インター予測部４０の出力（フレーム間予測画像）およびイントラ予測部５０の出力（イントラ予測画像）のいずれかを選択する。差分算出部７０は、入力画像ＩＩＭＧと選択部６０により選択された予測画像との差分を算出する。
【０１４０】
直交変換部８０は、差分算出部７０から受けたデータ（差分画像）を直交変換する。これにより、離散信号が周波数領域の信号に変換される。量子化部９０は、直交変換部８０から受けたデータを量子化する。量子化部９０により量子化されたデータは、逆量子化部１１０およびエントロピー符号化部１００に出力される。エントロピー符号化部１００は、量子化部９０から受けたデータをエントロピー符号化する。これにより、出力ストリームＳＴＲＭ（符号化された画像）が生成される。
【０１４１】
逆量子化部１１０は、量子化部９０から受けたデータを逆量子化する。逆直交変換部１２０は、逆量子化部１１０から受けたデータを逆直交変換する。加算部１３０は、逆直交変換部１２０から受けたデータと選択部６０により選択された予測画像とを加算して、ローカルデコード画像をフレームバッファ１４０に出力する。フレームバッファ１４０は、例えば、ローカルデコード画像を、イントラ予測部５０およびフィルタ部１５０に出力する。
【０１４２】
フィルタ部１５０は、例えば、フレームバッファ１４０から受けたローカルデコード画像に対して、マクロブロック等のブロック境界を平滑化するためのデブロッキングフィルタ処理を実行する。フィルタ部１５０によりフィルタ処理されたローカルデコード画像は、例えば、次のフレームを符号化する際に参照される。すなわち、フィルタ部１５０から出力されたローカルデコード画像は、次のフレームを符号化する際に参照フレームとして用いられる。例えば、フィルタ部１５０は、フィルタ処理したローカルデコード画像を、バッファ管理部１６０に出力する。
【０１４３】
バッファ管理部１６０は、フィルタ部１５０から受けたローカルデコード画像を、フレームバッファ１７０に出力する。また、バッファ管理部１６０は、動きベクトル検出装置１０やインター予測部４０に参照フレームが転送されるように、フレームバッファ１７０を管理する。
【０１４４】
なお、画像処理装置ＩＳＹＳの構成は、この例に限定されない。例えば、インター予測部４０は、動きベクトル検出装置１０を含んで構成されてもよい。あるいは、画像処理装置ＩＳＹＳは、出力ストリームＳＴＲＭを復号する復号装置を有してもよい。
【０１４５】
以上、図１から図１２に示した実施形態の動きベクトル検出装置、動きベクトル検出方法および画像処理装置は、基準範囲ＢＲＡＮの処理情報ＥＩＮＦに基づいて、処理対象のマクロブロックＭＢｃの動きベクトルＭＶの探索範囲ＲＡＮＧを決定する。例えば、基準範囲ＢＲＡＮの処理情報ＥＩＮＦでは、符号化処理が終了していないマクロブロック（未処理マクロブロック）の処理情報に、参照画像ＲＩＭＧの未処理マクロブロックに対応する位置のマクロブロックＭＢの符号化処理に関する情報が使用される。
【０１４６】
すなわち、基準範囲ＢＲＡＮの処理情報ＥＩＮＦには、参照画像ＲＩＭＧがイントラ予測で符号化されている場合にも、イントラ予測の符号化処理に関する情報が使用される。このため、この実施形態では、参照画像ＲＩＭＧがイントラ予測で符号化されている場合にも、基準範囲ＢＲＡＮの処理情報ＥＩＮＦに基づいて、処理対象のマクロブロックＭＢｃの動きベクトルＭＶの探索範囲ＲＡＮＧを決定できる。
【０１４７】
このように、この実施形態では、探索範囲ＲＡＮＧが入力画像ＩＩＭＧや参照画像ＲＩＭＧが符号化されたときのパラメータ（予測モード、動きベクトルＭＶ等）に応じた範囲に設定されるため、所望の精度の動きベクトルＭＶが検出される確率が向上する。すなわち、この実施形態では、動きベクトルＭＶの検出精度を向上できる。
【０１４８】
また、基準範囲ＢＲＡＮから拡大された領域とほぼ同じ面積の領域が探索範囲ＲＡＮＧから除外されるため、探索範囲ＲＡＮＧの面積は、基準範囲ＢＲＡＮの面積とほぼ同じである。このため、この実施形態では、動きベクトル検出処理の演算量の増加を抑制しつつ、動きベクトルＭＶの検出精度を向上できる。
【０１４９】
さらに、この実施形態では、基準範囲ＢＲＡＮを縦方向および横方向にそれぞれ２分割して４つの領域に分け、探索範囲ＲＡＮＧの横方向の重みＷｈおよび縦方向の重みＷｖを領域毎に処理情報に基づいて算出する。そして、各領域の重みＷｈ、Ｗｖに基づいて、探索範囲ＲＡＮＧが設定される。このため、この実施形態では、基準範囲ＢＲＡＮの処理情報ＥＩＮＦを探索範囲ＲＡＮＧの決定に適切に反映させることができる。
【０１５０】
なお、各領域の重みＷｈ、Ｗｖの組み合わせが所定の条件を満たしていない場合には、横方向の重みＷｈの基準範囲ＢＲＡＮ内の累積値および縦方向の重みＷｖの基準範囲ＢＲＡＮ内の累積値に基づいて、探索範囲ＲＡＮＧが設定される。このため、この実施形態では、各領域の重みＷｈ、Ｗｖの組み合わせが所定の条件を満たしていない場合にも、探索範囲ＲＡＮＧを適切に設定できる。
【０１５１】
以上の実施形態において説明した発明を整理して、付記として開示する。
（付記１）
符号化対象の画像と参照画像とを比較して動きベクトルを検出する動きベクトル検出装置において、
処理対象のマクロブロックおよび前記処理対象のマクロブロックの周辺のマクロブロックを含む基準範囲の前記マクロブロックのうち、符号化処理が終了していないマクロブロックである未処理マクロブロックの処理情報に、前記参照画像の前記未処理マクロブロックに対応する位置のマクロブロックの前記符号化処理に関する情報を使用し、前記基準範囲の前記処理情報を生成する生成部と、
前記基準範囲の前記処理情報に基づいて、前記処理対象のマクロブロックの前記動きベクトルの探索範囲を決定する決定部と
を備えていることを特徴とする動きベクトル検出装置。
（付記２）
付記１記載の動きベクトル検出装置において、
前記決定部は、前記基準範囲を縦方向および横方向にそれぞれ２分割して４つの領域に分け、前記探索範囲の横方向の重みおよび縦方向の重みを前記領域毎に前記処理情報に基づいて算出し、算出した前記重みに基づいて、前記処理対象のマクロブロックの前記動きベクトルの前記探索範囲を決定する
ことを特徴とする動きベクトル検出装置。
（付記３）
付記１記載の動きベクトル検出装置において、
前記決定部は、前記基準範囲を縦方向および横方向にそれぞれ２分割して４つの領域に分け、前記探索範囲の横方向の重みおよび縦方向の重みを前記領域毎に前記処理情報に基づいて算出し、前記各領域の横方向の重みの組み合わせおよび前記各領域の縦方向の重みの組み合わせのいずれかが所定の条件を満たしている場合、算出した前記重みに基づいて、前記処理対象のマクロブロックの前記動きベクトルの前記探索範囲を決定し、前記組み合わせのいずれもが前記所定の条件を満たしていない場合、前記横方向の重みの前記基準範囲内の累積値および前記縦方向の重みの前記基準範囲内の累積値に基づいて、前記処理対象のマクロブロックの前記動きベクトルの前記探索範囲を決定する
ことを特徴とする動きベクトル検出装置。
（付記４）
付記１記載の動きベクトル検出装置において、
前記生成部は、前記基準範囲の前記マクロブロックのうち、前記符号化処理が終了したマクロブロックである処理済みマクロブロックの前記処理情報に、前記処理済みマクロブロックの前記符号化処理に関する情報を使用し、前記基準範囲の前記処理情報を生成する
ことを特徴とする動きベクトル検出装置。
（付記５）
付記１記載の動きベクトル検出装置において、
前記処理情報は、前記基準範囲のマクロブロックの符号化処理に関する情報であり、インター予測とイントラ予測とのどちらで符号化されたかを示す情報、イントラ予測時の予測モードの情報、インター予測時の動きベクトルの情報、及び、分割サイズの情報の少なくとも１つを含むことを特徴とする動きベクトル検出装置。
（付記６）
符号化対象の画像と参照画像とを比較して動きベクトルを検出する動きベクトル検出方法において、
処理対象のマクロブロックおよび前記処理対象のマクロブロックの周辺のマクロブロックを含む基準範囲の前記マクロブロックのうち、符号化処理が終了していないマクロブロックである未処理マクロブロックの処理情報に、前記参照画像の前記未処理マクロブロックに対応する位置のマクロブロックの前記符号化処理に関する情報を使用し、前記基準範囲の前記処理情報を生成し、
前記基準範囲の前記処理情報に基づいて、前記処理対象のマクロブロックの前記動きベクトルの探索範囲を決定すること
を特徴とする動きベクトル検出方法。
（付記７）
付記６記載の動きベクトル検出方法において、
前記基準範囲を縦方向および横方向にそれぞれ２分割して４つの領域に分け、前記探索範囲の横方向の重みおよび縦方向の重みを前記領域毎に前記処理情報に基づいて算出し、算出した前記重みに基づいて、前記処理対象のマクロブロックの前記動きベクトルの前記探索範囲を決定すること
を特徴とする動きベクトル検出方法。
（付記８）
付記６記載の動きベクトル検出方法において、
前記基準範囲を縦方向および横方向にそれぞれ２分割して４つの領域に分け、前記探索範囲の横方向の重みおよび縦方向の重みを前記領域毎に前記処理情報に基づいて算出し、前記各領域の横方向の重みの組み合わせおよび前記各領域の縦方向の重みの組み合わせのいずれかが所定の条件を満たしている場合、算出した前記重みに基づいて、前記処理対象のマクロブロックの前記動きベクトルの前記探索範囲を決定し、前記組み合わせのいずれもが前記所定の条件を満たしていない場合、前記横方向の重みの前記基準範囲内の累積値および前記縦方向の重みの前記基準範囲内の累積値に基づいて、前記処理対象のマクロブロックの前記動きベクトルの前記探索範囲を決定すること
を特徴とする動きベクトル検出方法。
（付記９）
付記６記載の動きベクトル検出方法において、
前記基準範囲の前記マクロブロックのうち、前記符号化処理が終了したマクロブロックである処理済みマクロブロックの前記処理情報に、前記処理済みマクロブロックの前記符号化処理に関する情報を使用し、前記基準範囲の前記処理情報を生成すること
を特徴とする動きベクトル検出方法。
（付記１０）
付記６記載の動きベクトル検出方法において、
前記処理情報は、前記基準範囲のマクロブロックの符号化処理に関する情報であり、インター予測とイントラ予測とのどちらで符号化されたかを示す情報、イントラ予測時の予測モードの情報、インター予測時の動きベクトルの情報、及び、分割サイズの情報の少なくとも１つを含むことを特徴とする動きベクトル検出方法。
（付記１１）
符号化対象の画像と参照画像とを比較して動きベクトルを検出する動きベクトル検出装置を備え、
前記動きベクトル検出装置は、
処理対象のマクロブロックおよび前記処理対象のマクロブロックの周辺のマクロブロックを含む基準範囲の前記マクロブロックのうち、符号化処理が終了していないマクロブロックである未処理マクロブロックの処理情報に、前記参照画像の前記未処理マクロブロックに対応する位置のマクロブロックの前記符号化処理に関する情報を使用し、前記基準範囲の前記処理情報を生成する生成部と、
前記基準範囲の前記処理情報に基づいて、前記処理対象のマクロブロックの前記動きベクトルの探索範囲を決定する決定部と
を備えていることを特徴とする画像処理装置。
（付記１２）
付記１１記載の画像処理装置において、
前記決定部は、前記基準範囲を縦方向および横方向にそれぞれ２分割して４つの領域に分け、前記探索範囲の横方向の重みおよび縦方向の重みを前記領域毎に前記処理情報に基づいて算出し、算出した前記重みに基づいて、前記処理対象のマクロブロックの前記動きベクトルの前記探索範囲を決定する
ことを特徴とする画像処理装置。
（付記１３）
付記１１記載の画像処理装置において、
前記決定部は、前記基準範囲を縦方向および横方向にそれぞれ２分割して４つの領域に分け、前記探索範囲の横方向の重みおよび縦方向の重みを前記領域毎に前記処理情報に基づいて算出し、前記各領域の横方向の重みの組み合わせおよび前記各領域の縦方向の重みの組み合わせのいずれかが所定の条件を満たしている場合、算出した前記重みに基づいて、前記処理対象のマクロブロックの前記動きベクトルの前記探索範囲を決定し、前記組み合わせのいずれもが前記所定の条件を満たしていない場合、前記横方向の重みの前記基準範囲内の累積値および前記縦方向の重みの前記基準範囲内の累積値に基づいて、前記処理対象のマクロブロックの前記動きベクトルの前記探索範囲を決定する
ことを特徴とする画像処理装置。
（付記１４）
付記１１記載の画像処理装置において、
前記生成部は、前記基準範囲の前記マクロブロックのうち、前記符号化処理が終了したマクロブロックである処理済みマクロブロックの前記処理情報に、前記処理済みマクロブロックの前記符号化処理に関する情報を使用し、前記基準範囲の前記処理情報を生成する
ことを特徴とする画像処理装置。
（付記１５）
付記１１記載の画像処理装置において、
前記処理情報は、前記基準範囲のマクロブロックの符号化処理に関する情報であり、インター予測とイントラ予測とのどちらで符号化されたかを示す情報、イントラ予測時の予測モードの情報、インター予測時の動きベクトルの情報、及び、分割サイズの情報の少なくとも１つを含むことを特徴とする画像処理装置。
【０１５２】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１５３】
１０‥動きベクトル検出装置；２０‥生成部；３０‥決定部；４０‥インター予測部；５０‥イントラ予測部；６０‥選択部；７０‥差分算出部；８０‥直交変換部；９０‥量子化部；１００‥エントロピー符号化部；１１０‥逆量子化部；１２０‥逆直交変換部；１３０‥加算部；１４０、１６０‥フレームバッファ；１５０‥フィルタ部；１６０‥バッファ管理部；ＩＳＹＳ‥画像処理装置
【図１】
2015053586.tif 000003
【図２】
2015053586.tif 000004
【図３】
2015053586.tif 000005
【図４】
2015053586.tif 000006
【図５】
2015053586.tif 000007
【図６】
2015053586.tif 000008
【図７】
2015053586.tif 000009
【図８】
2015053586.tif 000010
【図９】
2015053586.tif 000011
【図１０】
2015053586.tif 000012
【図１１】
2015053586.tif 000013
【図１２】
2015053586.tif 000014