(57)【要約】【課題】符号化効率を劣化させることなく符号化のための演算量を削減することができる動きベクトル検出処理装置を提供する。【解決手段】縮小画像生成器で縮小画像を生成し、縮小動きベクトル検出器で縮小画像から動きベクトルを検出する。次に、周辺誤差値計算器で、縮小画像の動きベクトルの先端の周辺の画素点を中心とするブロックと処理対象ブロックとの誤差値を求める。探索範囲設定器で、誤差値の最も小さかった画素点について設定された、縮小画像の動きベクトルの先端からその画素点の方向にずれた探索範囲を設定し、この探索範囲内で元の解像度でマッチングを行い、最終的な動きベクトルを生成する。【選択図】図１
2010074496.tif 000002
【特許請求の範囲】
【請求項１】
動画像符号化処理における動き補償フレーム間予測に必要な動きベクトルの検出を行う動きベクトル検出処理装置であって、
粗い精度で動きベクトルを検出する第１動きベクトル検出手段と、
前記第１動きベクトル検出手段が検出する第１動きベクトルの周囲の点での誤差値を計算する周辺誤差値計算手段と、
前記第１動きベクトルと前記周辺誤差値計算手段が計算する周囲の点での誤差値から、各周囲の点に特有の動き検出の探索範囲を決定する探索範囲決定手段と、
前記探索範囲決定手段が決定した探索範囲で、前記第１精度よりも高い精度の第２の精度で動きベクトル検出を行う第２動きベクトル検出手段と、
を備えることを特徴とする動きベクトル検出処理装置。
【請求項２】
前記探索範囲決定手段が決定する探索範囲の中心点が、前記第１動きベクトルが指し示す点からずれていることを特徴とする請求項１に記載の動きベクトル検出処理装置。
【請求項３】
前記探索範囲は、前記第１動きベクトルが指し示す点に対して前記周囲の点がずれている方向に、その中心点がずれていることを特徴とする請求項２に記載の動きベクトル検出処理装置。
【請求項４】
動画像符号化処理における動き補償フレーム間予測に必要な動きベクトルの検出を行う動きベクトル検出処理方法であって、
粗い精度で動きベクトルを検出し、
前記第１動きベクトル検出ステップが検出する第１動きベクトルの周囲の点での誤差値を計算し、
前記第１動きベクトルと前記計算ステップで計算する周囲の点での誤差値から、各周囲の点に特有の動き検出の探索範囲を決定し、
前記探索範囲決定ステップで決定した探索範囲で、前記第１精度よりも高い精度の第２精度で動きベクトル検出を行う、
ことを特徴とする動きベクトル検出処理方法。
【請求項５】
動画像符号化処理における動き補償フレーム間予測に必要な動きベクトルの検出を行う動きベクトル検出処理方法をコンピュータに実現させるプログラムであって、コンピュータに、
粗い精度で動きベクトルを検出し、
前記第１動きベクトル検出ステップが検出する第１動きベクトルの周囲の点での誤差値を計算し、
前記第１動きベクトルと前記計算ステップで計算する周囲の点での誤差値から、各周囲の点に特有の動き検出の探索範囲を決定し、
前記探索範囲決定ステップで決定した探索範囲で、前記第１精度よりも高い精度の第２精度で動きベクトル検出を行う、
処理を行わせることを特徴とするプログラム。
【発明の詳細な説明】
【背景技術】
【０００１】
近年、動画像情報をデジタル信号として取り扱うことが一般化している。動画像情報の符号化フォーマットとして、国際標準規格であるＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）やＨ．２６ｘなどが用いられている。日本国内においては、動画像情報は、地上波デジタル放送、ＢＳデジタル放送、ＤＶＤ（Ｄｉｇｉｔａｌ
Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）ではＭＰＥＧ−２で、携帯電話でのテレビ電話ではＭＰＥＧ−４で、ワンセグ放送ではＨ．２６４／ＡＶＣで圧縮符号化されている。Ｂｌｕ−ｒａｙディスク、ＨＤ  ＤＶＤなどの次世代ＤＶＤでは、動画像の圧縮符号化方式としてＭＰＥＧ−２、Ｈ．２６４／ＡＶＣ，ＶＣ−１が採用されている。さらに、中国において標準化された動画像圧縮符号化方式としてＡＶＳがある。
【０００２】
これらの動画像圧縮符号方式は、動き補償フレーム間予測を採用している。動画像信号は、信号の時間的冗長性が高いことが知られている。動き補償フレーム間予測は、この冗長さを除去する技術である。動き補償フレーム間予測の技術では、符号対象の画像フレームを複数のブロックに分割し、ブロック単位に処理を行う。すなわち、各ブロックに対して、時間的に前に符号処理された画像フレーム（以下、参照画像フレーム と呼ぶ）の中のその対象ブロックの近傍に位置する動き検出範囲から、上記対象ブロックと同じ大きさの複数のブロック（以下、参照画像ブロックと呼ぶ）を切り出し、これらの参照画像ブロックのうちで、上記対象ブロックに最も近似した参照画像ブロックを探し出す。
【０００３】
次に、最も近似した参照ブロックの位置座標に関する情報と，その対象ブロックと探し出された参照画像ブロックとの差分情報を符号化し、それによりその対象ブロックに対する符号列を生成する。動き検出とは、この最も類似した参照画像ブロックを探索する処理であり、動きベクトルは、各対象ブロックと、そのブロックから見た探し出された参照画像ブロックの相対位置座標である。このような動き検出は、Ｈ．２６４，ＭＰＥＧ−２，ＭＰＥＧ−４，ＶＣ−１，ＡＶＳなど，通常画像信号の符号化処理で行われる。
【０００４】
以下、このような動きベクトルを探索するための従来の動きベクトル探索方法を説明する。
図１０は、符号化処理対象画像の構成を説明する図である。
【０００５】
符号化対象画像１０は、横１６画素，縦１６画素から構成されるマクロブロック１１を複数有する．例えば，縦１０８８画素，横１９２０画素からなるＨＤＴＶ（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  ＴＶ）解像度の動画像の場合，マクロブロックは縦６８個（＝１０８８／１６），横１２０個（＝１９２０／１６）が並んでいる。
【０００６】
図１１は、従来の動きベクトル検出方法が動きベクトルを検出するための参照画像２０の構成を説明するための図である。
参照画像２０は、符号化処理対象画像よりも時間的に前に符号化処理された画像であり、符号化対象画像１０と同一の形状、同数の画素を有している。
【０００７】
参照画像２０には、符号化ブロック１２よりも大きい長方形状をした参照領域２１が、符号化ブロック１２を含むような位置に設定されている。参照領域２１の中には、符号化ブロック１１と同一の大きさ，形状をした参照ブロック２２が設定されている。
【０００８】
図１０に示す符号化ブロック１２が動きベクトルを検出するためのブロックとして選択されると、参照ブロック２２を参照領域２１の中において１画素ずつ移動させながら、符号化ブロック１１の中に配置された画素の画素値と参照ブロック２２の中に配置された画素の画素値との間で，式（１）で表される差分絶対値和Ｓを計算する．
Ｓ＝Σ｜Ｃ（ｉ，ｊ）−Ｒ（ｘ＋ｉ，ｙ＋ｊ）｜・・・式（１）
ただし，Σはｉ＝０，１，２，・・・，ｎ，ｊ＝０，１，２，・・・，ｍで和を取ることを表し、（ｎ＋１）は符号化ブロックの横方向の画素数、（ｍ＋１）は符号化ブロックの縦方向の画素数、Ｃ（ｉ，ｊ）は処理対象の符号化ブロックのｊ行ｉ列の位置の画素値，ｘは参照位置の横方向の変位量，ｙは参照位置の縦方向の変位量，Ｒ（ｘ＋ｉ，ｙ＋ｊ）は変位（ｘ，ｙ）の点の参照ブロックのｊ行ｉ列の画素値を表す。そして、絶対差分値和Ｓが最小となる参照ブロック２２の位置（ｘ，ｙ）を動きベクトル２３として検出する。符号化ブロックとしてマクロブロックを採用する場合、ｎ＝１５，ｍ＝１５である。動画像符号化においては，符号化処理対象画像に含まれるすべてのマクロブロックについて同様の処理を行い、動きベクトルを検出する。
【０００９】
このように、参照領域２１におけるすべての点で差分絶対値和を計算し，動きベクトルを総当たり的に調べる方法を全探索法という。このような全探索法は、参照領域２１におけるすべての画素を総当り的に調べるため、演算量が莫大になる。
【００１０】
そこで、演算量を削減する探索方法として階層的探索法が知られている。図１２は、従来の階層的探索法を用いた動きベクトル検出装置における縮小符号化画像３０を説明するための模式図であり、図１３は、従来の階層的探索法を用いた動きベクトル検出装置における縮小参照画像４０を説明するための模式図であり，図１４は従来の階層的探索法を用いた動きベクトル検出装置における動きベクトルを検出する方法を説明するための模式図である。
【００１１】
階層的探索法では，まず、符号化画像１０を水平方向にＮ分の１に縮小し，垂直方向にＭ分の１に縮小した縮小符号化画像３０を生成する。縮小符号化画像３０は符号化画像１０と同数のマクロブロックを有する。ただし，１つのマクロブロック３１に含まれる画素数は、水平方向が１／Ｎ倍に，垂直方向が１／Ｍ倍となる。同様に、参照画像２０を水平方向にＮ分の１に縮小し、垂直方向にＭ分の１に縮小した縮小参照画像４０を生成する。縮小参照画像４０において参照領域２１は水平方向に１／Ｎ倍に、垂直方向に１／Ｍ倍となった縮小参照領域４１となる。１次探索では、この縮小符号化ブロックと縮小探索範囲４１において縮小動きベクトル４３の検出が行われる。
【００１２】
２次探索では、符号化ブロック１２と参照画像２０の間で動きベクトル検出が行われる。探索範囲は、図１４の５１で示した水平方向Ｎ画素，垂直方向Ｍ画素であり，探索範囲の中心点は縮小動きベクトル４３を水平方向にＮ倍，垂直方向にＭ倍したベクトル５２の位置となる。２次探索において最小の誤差値を与える参照ブロックの位置が当該符号化ブロック１２の動きベクトル５３として求まる。
【００１３】
一つの符号化ブロックについて動きベクトルを検出するために必要な演算量は、例えば、探索範囲を水平±７、垂直±７の１５×１５画素によって構成される領域とした場合、前述した全探索法においては、１５×１５＝２２５回の１６×１６画素のマッチング、つまり、５７６００回の画素マッチングが必要となる。一方、水平１／４、垂直１／４の階層的探索法においては、１次探索における（１５／４）×（１５／４）＝約２５回の４×４画素のマッチングと，２次探索における４×４＝１６回の１６×１６画素のマッチング，つまり４４９６回の画素マッチングによって動きベクトル５３を検出することができる．したがって，従って、演算量は、前述した全探索法における演算量の約１／１２となる。
【００１４】
このように、階層的探索法によれば、前述した全検索法よりも演算量を大幅に削減することができる。
特許文献１には、符号化効率を劣化させることなく符号化のための演算量を削減することが出来る動きベクトル検出装置が記載されている。
【００１５】
特許文献２には、動きベクトルの誤検出の可能性を回避することのできる階層型動きベクトル検出方法が記載されている。
特許文献３には、ＩＣの小型化、低消費電力化、低コスト化が実現可能な動きベクトル検出装置が開示されている。
【特許文献１】特開２００４−１９３９０６号公報
【特許文献２】特開平７−１５４８０１号公報
【特許文献３】特開２０００−１０２０１５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
近年、動画像の高解像度化が進んでいる。特に携帯型の動画像撮影機器、例えば、携帯電話などの動画像撮影機能においても，高解像度の動画像を符号化処理したいという要望が高まってきている。内蔵バッテリで駆動される携帯機器で動画像符号化を行う場合、バッテリ容量の制限から消費電力を極力削減したいという要望があり、動画像符号化処理を低消費電力で実現する必要がある。動画像符号化処理の低消費電力化のためには、演算量の削減が有効である。しかしながら、低消費電力を実現するために演算量を削減した結果、動きベクトルの検出精度が低下し，符号化効率が劣化することが許されない。
【００１７】
本発明は係る問題を解決するためになされたものであり、その課題は、符号化効率を劣化させることなく符号化のための演算量を削減することができる動きベクトル検出処理装置を提供することである。
【課題を解決するための手段】
【００１８】
本発明の動きベクトル検出処理装置は、動画像符号化処理における動き補償フレーム間予測に必要な動きベクトルの検出を行う動きベクトル検出処理装置であって、粗い精度で動きベクトルを検出する第１精度動きベクトル検出手段と、前記第１精度動きベクトル検出手段が検出する第１精度動きベクトルの周囲の点での誤差値を計算する周辺誤差値計算手段と、前記第１精度動きベクトルと前記周辺誤差値計算手段が計算する周囲の点での誤差値から、各周囲の点に特有の第２精度動き検出の探索範囲を決定する探索範囲決定手段と、前記探索範囲決定手段が決定した探索範囲で高い精度で動きベクトル検出を行う第２精度動きベクトル検出手段とを備える。
【発明の効果】
【００１９】
本発明によれば、符号化効率を劣化させることなく符号化のための演算量を削減することができる動きベクトル検出処理装置を提供することができる。
【発明を実施するための最良の形態】
【００２０】
本発明の実施形態に従った動きベクトル検出装置は、符号化画像を縮小した縮小符号化画像と参照画像を縮小した縮小参照画像とに基づいて検出した縮小動きベクトルに基づいて、前記符号化画像に含まれる符号化ブロックの動きベクトルを検出する動きベクトル検出装置であって、前記縮小参照画像に含まれる画素データに基づいて前記縮小符号化画像に含まれる縮小符号化ブロックの前記縮小動きベクトルを検出する縮小動きベクトル検出器と、前記縮小動きベクトルの周囲の点での誤差値を計算する周辺誤差値計算器と、前記周辺誤差値計算器が類似度値を計算した点の中でもっとも類似度が高い点が前記縮小動き
ベクトルで示される点からみてどの方向であるかを検出する勾配検出器と、前記縮小動きベクトル検出器によって検出された前記縮小動きベクトルと、前記勾配検出器によって検出された方向から前記参照画像において前記動きベクトルを検出するための探索範囲を設定する探索範囲設定器と、前記探索範囲設定器によって設定された前記探索範囲において前記動きベクトルを検出する動きベクトル検出器とを具備する。
【００２１】
本実施形態に係る動きベクトル検出装置においては、縮小動きベクトル検出器によって検出された縮小動きベクトルと、勾配検出器によって検出された方向に基づいて、参照画像において動きベクトルを検出するための探索範囲が設定され、設定された探索範囲において動きベクトルが検出される。このため、勾配検出器によって検出された方向に応じた探索範囲で動きベクトル検出を行うため、動きベクトルが存在しない範囲を探索範囲から除外することができ、狭い探索範囲にて動きベクトル検出を行うことができる。その結果、符号化効率を低下させることなく動きベクトルを検出するための演算量を削減することができる。
【００２２】
図１は、本発明の実施形態に従った動きベクトル検出処理装置のブロック構成図である。
縮小画像生成器６００は符号化画像６１０を入力として受け取り、縮小符号化画像６１１を出力する。また、縮小画像生成器６００は参照画像６１２を入力として受け取り、縮小参照画像６１３を出力する。縮小動きベクトル検出器６０１は、縮小符号化画像６１１と縮小参照画像６１３を入力として受け取り、処理対象マクロブロックについての縮小動きベクトル６１４を出力する。周辺誤差値計算器６０２は、縮小符号化画像６１１と縮小参照画像６１３と縮小動きベクトル６１４を入力として受け取り、参照画像６１２における縮小動きベクトルの周囲の点の位置６１５と、該周囲の点を中心とする各マクロブロックの誤差値６１６を出力する。探索範囲設定器６０３は、縮小動きベクトル６１４と縮小動きベクトルの周囲の点の位置６１５と周囲の点を中心とする各マクロブロックの誤差値６１６を入力として受け取り、探索範囲６１７を出力する。動きベクトル検出器６０４は符号化画像６１０と参照画像６１２と縮小動きベクトル６１４と探索範囲６１７を入力として受け取り、動きベクトル６１８を出力する。
【００２３】
ここで、探索範囲６１７は、参照画像６１２の中の縮小動きベクトルに対応する位置の周囲の点の内、処理対象マクロブロックと最も似通った点が存在する方向に偏った中心位置を有する比較的小さい領域とする。
【００２４】
図２は、1マクロブロックの動きベクトルを検出する処理のフローチャートである。
ステップ１では、縮小画像生成器で縮小符号化画像を生成する。縮小符号化画像は符号化画像の画素を指定数おきにサンプリングすることで生成する。例えば，縦１／Ｎ，横１／Ｍに縮小した縮小符号化画像を生成する場合、縦方向はN画素おきに、横方向はM画素おきの画素点をサンプリング点とし、サンプリング点の画素のみからなる画像から画像を作成する。符号化画像の水平方向Ｘ、垂直方向Ｙの位置の画素値をＰ（Ｘ，Ｙ）、縮小符号化画像の水平方向ｘ、垂直方向ｙの位置の画素値をＱ（ｘ，ｙ）で表すとすると、Ｑ（ｘ，ｙ）は式（２）で与えられる。
Ｑ（ｘ，ｙ）＝Ｐ（Ｍ×ｘ＋ｍ，Ｎ×ｙ＋ｎ）                     ・・・式（２）
ただし、ｍは０以上、Ｍ未満の任意の整数を表し、ｎは０以上、Ｎ未満の任意の整数を表す。
【００２５】
ステップ２における縮小参照画像も同様の方法で生成される。すなわち，参照画像の水平方向Ｘ、垂直方向Ｙの位置の画素値をＰ’（Ｘ，Ｙ）、縮小参照画像の水平方向ｘ、垂直方向ｙの位置の画素値をＱ’（ｘ，ｙ）で表すとすると、Ｑ’（ｘ，ｙ）は式（３）で
与えられる。
Ｑ’（ｘ，ｙ）＝Ｐ’（Ｍ×ｘ＋ｍ，Ｎ×ｙ＋ｎ）                 ・・・式（３）
ただし、ｍは０以上、Ｍ未満の任意の整数を表し、ｎは０以上、Ｎ未満の任意の整数を表す。
【００２６】
図３は、縦１／２、横１／４に縮小した縮小符号化画像を生成する場合を示している。黒色の四角で示した点がサンプリング点である。
ステップ３では、ステップ１で生成した縮小符号化画像と縮小参照画像を用いて、マクロブロックごとに縮小動きベクトルを検出する。縮小探索範囲内のそれぞれの点において、式（１）を用いて誤差値Ｓを計算し、最小の誤差値Ｓを与える点（ｘ，ｙ）を処理対象のマクロブロックからの縮小動きベクトル９１の先端とする。縮小符号化画像と縮小参照画像の縮小率が、縦１／２、横１／４の場合、マクロブロックの縦方向の画素数は８（＝１６／２）、横方向の画素数は４（＝１６／４）であるので、式（１）のΣはｉ＝０，１，２，３，ｊ＝０，１，２，・・・，７について和をとることになる。
【００２７】
ステップ４では、ステップ３で得られた縮小動きベクトル９１の周囲の８画素点（点Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇ，Ｈ）が縮小動きベクトルの先端となる位置における参照画像と処理対象の符号化画像内のマクロブロックとの間での誤差値ＳＡＤ＿Ａ，ＳＡＤ＿Ｂ，ＳＡＤ＿Ｃ，ＳＡＤ＿Ｄ，ＳＡＤ＿Ｅ，ＳＡＤ＿Ｆ，ＳＡＤ＿Ｇ，ＳＡＤ＿Ｈを式（１）を用いて計算し，上記８画素点の座標と誤差値を探索範囲決定器に送信する。図４に縮小動きベクトルと周囲８点の位置関係を示す。縮小動きベクトル９１の水平方向成分をＭＶＳ＿Ｘ，垂直方向成分をＭＶＳ＿Ｙと表すとすると、周囲８点の座標は点Ａ（ＭＶＳ＿Ｘ−１，ＭＶＳ＿Ｙ），点Ｂ（ＭＶＳ＿Ｘ＋１，ＭＶＳ＿Ｙ），点Ｃ（ＭＶＳ＿Ｘ，ＭＶＳ＿Ｙ−１），点Ｄ（ＭＶＳ＿Ｘ，ＭＶＳ＿Ｙ＋１），点Ｅ（ＭＶＳ＿Ｘ−１，ＭＶＳ＿Ｙ−１），点Ｆ（ＭＶＳ＿Ｘ＋１，ＭＶＳ＿Ｙ−１），点Ｇ（ＭＶＳ＿Ｘ−１，ＭＶＳ＿Ｙ＋１），点Ｈ（ＭＶＳ＿Ｘ＋１，ＭＶＳ＿Ｙ＋１）で表される。誤差値ＳＡＤ＿Ａは点Ａを中心とするマクロブロックにおける誤差値である。同様にＳＡＤ＿Ｂ，ＳＡＤ＿Ｃ，ＳＡＤ＿Ｄ，ＳＡＤ＿Ｅ，ＳＡＤ＿Ｆ，ＳＡＤ＿Ｇ，ＳＡＤ＿Ｈはそれぞれ点Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇ，Ｈにおける誤差値である。
【００２８】
ステップ５では、ステップ３で縮小動きベクトル検出器から送信された縮小動きベクトルと、ステップ４で周辺誤差値計算器から送信された８画素点の座標と８画素点を縮小動きベクトルの先端とする位置での誤差値から探索範囲を決定し、動きベクトル検出器に送信する。
【００２９】
図５に、図２のステップ５の処理のフローチャートを示す。ステップ１１では縮小動きベクトル（ＭＶＳ＿Ｘ，ＭＶＳ＿Ｙ）に縦方向縮小率Ｎ，横方向縮小率Ｍをかけて拡大動きベクトル（ＭＶＳ＿Ｘ’，ＭＶＳ＿Ｙ’）を求める。ここで、ＭＶＳ＿Ｘ’＝ＭＶＳ＿Ｘ×Ｍ，ＭＶＳ＿Ｙ’＝ＭＶＳ＿Ｙ×Ｎである．ステップ１２では、ＳＡＤ＿Ａ，ＳＡＤ＿Ｂ，ＳＡＤ＿Ｃ，ＳＡＤ＿Ｄ，ＳＡＤ＿Ｅ，ＳＡＤ＿Ｆ，ＳＡＤ＿Ｇ，ＳＡＤ＿Ｈの中でどれが最小値であるか判定する。ステップ１３では、ステップ１２で求めた最小の誤差値を持つ画素点の位置から探索範囲を決定する。ＳＡＤ＿Ａが最小である場合、探索範囲は図６（Ａ）のように決定する。図６（Ａ）において，斜線を引いた四角で示す点は拡大動きベクトル（ＭＶＳ＿Ｘ’，ＭＶＳ＿Ｙ’）が指す点を表し、太線で囲まれた範囲１１０が探索範囲を表す。図６（Ａ）は，横方向はＭＶＳ＿Ｘ’−４からＭＶＳ＿Ｘ’までが、縦方向はＭＶＳ＿Ｙ’−２からＭＶＳ＿Ｙ’＋２までが探索範囲であることを示している。同様に，ＳＡＤ＿Ｂ，ＳＡＤ＿Ｃ，ＳＡＤ＿Ｄ，ＳＡＤ＿Ｅ，ＳＡＤ＿Ｆ，ＳＡＤ＿Ｇ，ＳＡＤ＿Ｈが最小である場合，それぞれ探索範囲を図６（Ｂ），（Ｃ），（Ｄ），（Ｅ），（Ｆ），（Ｇ），（Ｈ）のように決定する。決定した探索範囲は動きベクトル検出器に送信される。探索範囲は、最小の誤差値がＳＡＤ＿Ａの場合なら、図６（Ａ）に設定し、ＳＡＤ＿Ｂなら、図６（Ｂ）に設定し、というように、最小の誤差値を与える画素点の位置によって予め探索範囲を決めておき、最小誤差値を与える画素点が決定したら、設定された探索範囲を設定するようにすれば良い。例えば、最小の誤差値がＳＡＤ−Ａの場合は、左側の近傍値を探索するので、図６（Ａ）が探索範囲となる。
【００３０】
ステップ６では、ステップ５にて探索範囲設定器から送信された探索範囲と、縮小動きベクトル検出器から送信された縮小動きベクトルを受信し、指定された探索範囲のそれぞれの画素点において，式（１）を用いて誤差値Ｓを計算し，最小の誤差値Ｓを与える点（ｘ，ｙ）を動きベクトルとする。マクロブロックの縦方向の画素数は１６、横方向の画素数は１６であるので、式（１）のΣはｉ＝０，１，２，・・・，１５，ｊ＝０，１，２，・・・，１５について和をとることになる。
【００３１】
以上の探索範囲の決定方法は、縮小動きベクトルの先端の周囲の画素の誤差値を計算し、誤差値の少ない方向に偏った探索範囲を決定するものとなっている。従来では、縮小動きベクトルの先端の周囲の探索領域内のすべての動きベクトルの候補について、元の解像度の画像における参照画像と符号化画像間での誤差値を計算し、最終的な動きベクトルを得ていたが、これでは、縮小動きベクトルの先端の領域すべてについて探索するので、探索に必要な演算量が多くなる。これに対し、上記実施形態では、縮小動きベクトルの先端において、より誤差値の小さい方向を検出し、その方向に偏った、より小さい領域を探索範囲としている。すなわち、縮小動きベクトルの先端において、より符号化画像の処理対象のブロックに似通ったマクロブロックが存在する方向の比較的小さな領域においてのみ元の解像度の画像においてマッチングを行うことになる。したがって、動きベクトルの検出精度が保たれるとともに、探索に必要な演算量を少なくすることが出来る。この比較的小さな領域の大きさは、本実施形態を実施する当業者により、決定されるべきものである。領域が大きければ、動きベクトルの検出精度は上がるが、演算量が多くなり、小さければ、動きベクトルの検出精度は低くなるが、演算量が多くなるというトレードオフの関係にあるので、実際に製造するデバイスの種類によって、領域の大きさを設定する。例えば、ビデオカメラのような大きなバッテリを搭載できるような場合には、演算量が多くなっても良いので、領域の大きさを大きくし、携帯電話に搭載されるカメラの場合には、バッテリの消費量を抑えたいので、領域の大きさを小さめに設定する。
【００３２】
あるいは、他の実施形態として、以下のようなものが考えられる。
ステップ１にて、縮小画像生成器が縮小符号化画像を生成する方法と，ステップ２にて縮小画像生成器が縮小参照画像を生成する方法は、サンプリングによる方法に限定されない。サンプリングによる方法以外の方法としては，ローパスフィルタを用いて生成する方法が考えられる。縮小符号化画像，または，縮小参照画像の水平方向ｘ、垂直方向ｙの位置の画素値をＱ（ｘ，ｙ）で表すとすると、Ｑ（ｘ，ｙ）は式（４）で与えられる。
Ｑ（ｘ，ｙ）＝Σ（Ｒｉ×（ΣＣｊ×Ｐ（Ｎ×ｘ＋ｉ，Ｍ×ｙ＋ｊ）））・・・式（４）
式（４）において、外側のΣはｉについて、内側のΣはｊについて和を取ることを表し、Ｎは水平方向の縮小率、Ｍは垂直方向の縮小率を表す。例えば、水平方向１／４、垂直方向１／４の縮小画像を、水平方向フィルタタップ数７、垂直方向フィルタタップ数７で縮小画像を生成する場合、Ｎ＝４，Ｍ＝４であり、外側のΣはｉ＝−３，−２，−１，０，１，２，３で和を取り、内側のΣはｊ＝−３，−２，−１，０，１，２，３で和を取る。Ｒｉ，Ｃｊはフィルタ係数を表す。
【００３３】
ステップ３における縮小動きベクトル検出の方法とステップ６における動きベクトル検出の方法は、全探索法に限定されない。例えば，縮小探索範囲や探索範囲が図７の１２０の太線で囲まれる範囲で指定されたときに、範囲内のすべての点で誤差値を評価するかわ
りに、斜線が引かれた四角で示されるチェッカーパターン状の点１２１でのみ誤差値を評価し、その中で最小の誤差値を与える点から縮小動きベクトルや動きベクトルを決定する方法が考えられる。または、縮小探索範囲や探索範囲が図８の１４０の太線で囲まれる範囲で指定されたときに，範囲内のすべての点で誤差値を評価するかわりに、斜線が引かれた四角で示される格子状の点１４１でのみ誤差値を評価し、その中で最小の誤差値を与える点から縮小動きベクトルや動きベクトルを決定する方法が考えられる。
【００３４】
縮小動きベクトル検出や動きベクトル検出で用いる誤差値は式（１）で表される差分絶対値和に限定されるものではない。例えば、符号化対象ブロックに含まれるすべての画素値について差分絶対値和を計算する代わりに、チェッカーパターン状の点でのみ差分絶対値和を計算してもよい。この場合、誤差値Ｓは式（１）を用いて計算されるが、ｉ＝０，１，２，３，４，・・・，１５，ｉが偶数の時、ｊ＝０，２，４，６，・・・，１４，ｉが奇数の時、ｊ＝１，３，５，７，・・・，１５となる。もしくは、差分絶対値和にかえて、差分二乗和を用いることも考えられる。この場合、誤差値は式（５）で計算される。Ｓ＝Σ（（Ｃ（ｉ，ｊ）−Ｒ（ｘ＋ｉ，ｙ＋ｊ））×（Ｃ（ｉ，ｊ）−Ｒ（ｘ＋ｉ，ｙ＋ｊ）））・・・式（５）
もしくは、動きベクトルの成分の大きさを考慮した式（６）のような誤差値を用いることも考えられる。
Ｓ＝Σ｜Ｃ（ｉ，ｊ）−Ｒ（ｘ＋ｉ，ｙ＋ｊ）｜＋λ×（Ｌｏｇ２（ｘ）＋Ｌｏｇ２（ｙ））・・・式（６）
ステップ３における縮小動きベクトル検出やステップ６における動きベクトル検出の単位はマクロブロックに限定されない、複数マクロブロックを結合したブロック単位や、１マクロブロックに含まれる画素数より少数の画素で構成されるブロック単位で行うことが考えられる。
【００３５】
ステップ４における縮小動きベクトルの周囲の画素点の取り方は，図４に示す８点に限定されない。例えば、図４の点Ａ，Ｂ，Ｃ，Ｄの４点のみとしてもよいし，図９に示すように，縮小参照画像において縮小動きベクトルから２画素ずつずれた点ａ，ｂ，ｃ，ｄ，ｅ，ｆ，ｇ，ｈの８点とする方法などが考えられる。
【００３６】
ステップ５における探索範囲の決定方法は，上記した方法に限定されない。例えば、最小の誤差値を与える点から探索範囲を決定する代わりに、最大の誤差値を与える点から探索範囲を決定する方法などが考えられる。この場合、ＳＡＤ＿Ａ，ＳＡＤ＿Ｂ，ＳＡＤ＿Ｃ，ＳＡＤ＿Ｅ，ＳＡＤ＿Ｆ，ＳＡＤ＿Ｇ，ＳＡＤ＿Ｈの中での最大値がＳＡＤ＿Ａの場合、探索範囲を図６（Ｂ）と決定する．同様に，最大値がＳＡＤ＿Ｂ，ＳＡＤ＿Ｃ，ＳＡＤ＿Ｄ，ＳＡＤ＿Ｅ，ＳＡＤ＿Ｆ，ＳＡＤ＿Ｇ，ＳＡＤ＿Ｈの場合，それぞれ探索範囲を図６（Ａ），（Ｄ），（Ｃ），（Ｈ），（Ｇ），（Ｆ），（Ｅ）と決定する．もしくは，図５のステップ１３において，ＳＡＤ＿Ａ，ＳＡＤ＿Ｂ，ＳＡＤ＿Ｃ，ＳＡＤ＿Ｄ，ＳＡＤ＿Ｅ，ＳＡＤ＿Ｆ，ＳＡＤ＿Ｇ，ＳＡＤ＿Ｈの中の最小値が閾値ＳＡＤ＿ＴＨよりも大きい場合は、探索範囲を図６（Ｉ）と決定し、閾値ＳＡＤ＿ＴＨよりも小さい場合は図６（Ａ），（Ｂ），（Ｃ），（Ｄ），（Ｅ），（Ｆ），（Ｇ），（Ｈ）の中から決定する方法などが考えられる。
【００３７】
本実施形態は，ＣＰＵ上で実行されるソフトウェアプログラムの形態で提供されてもよいし、専用回路で構成されたハードウェアの形態で提供されてもよい。
【００３８】
以上の実施形態のほかに、以下の付記を開示する。
（付記１）
動画像符号化処理における動き補償フレーム間予測に必要な動きベクトルの検出を行う動きベクトル検出処理装置であって、
第1精度で動きベクトルを検出する第1動きベクトル検出手段と、
前記第1動きベクトル検出手段が検出する第1動きベクトルの周囲の点での誤差値を計算する周辺誤差値計算手段と、
前記第1動きベクトルと前記周辺誤差値計算手段が計算する周囲の点での誤差値から、各周囲の点に特有の動き検出の探索範囲を決定する探索範囲決定手段と、
前記探索範囲決定手段が決定した探索範囲で、前記第1精度よりも高い精度の第2精度で動きベクトル検出を行う第2動きベクトル検出手段と、
を備えることを特徴とする動きベクトル検出処理装置。
（付記２）
前記第１動きベクトル検出手段は、符号化対象の画像を縮小した縮小符号化画像と参照画像を縮小した縮小参照画像の間で第１動きベクトル検出を行うことを特徴とする付記１に記載の動きベクトル検出処理装置。
（付記３）
前記第１動きベクトル検出手段は，サンプリングした探索位置において誤差値計算を行い、第１動きベクトル検出を行うことを特徴とする付記１に記載の動きベクトル検出処理装置。
（付記４）
前記探索範囲決定手段が決定する探索範囲の中心点が、前記第１動きベクトルが指し示す点からずれていることを特徴とする付記１に記載の動きベクトル検出処理装置。
（付記５）
前記探索範囲は、前記第１動きベクトルが指し示す点に対して前記周囲の点がずれている方向に、その中心点がずれていることを特徴とする付記４に記載の動きベクトル検出処理装置。
（付記６）
動画像符号化処理における動き補償フレーム間予測に必要な動きベクトルの検出を行う動きベクトル検出処理方法であって、
第１精度で動きベクトルを検出し、
前記第１動きベクトル検出ステップが検出する第１動きベクトルの周囲の点での誤差値を計算し、
前記第１動きベクトルと前記計算ステップで計算する周囲の点での誤差値から、各周囲の点に特有の動き検出の探索範囲を決定し、
前記探索範囲決定ステップで決定した探索範囲で、前記第１精度よりも高い精度の第２精度で動きベクトル検出を行う、
ことを特徴とする動きベクトル検出処理方法。
（付記７）
動画像符号化処理における動き補償フレーム間予測に必要な動きベクトルの検出を行う動きベクトル検出処理方法をコンピュータに実現させるプログラムであって、コンピュータに、
第１精度で動きベクトルを検出し、
前記第１動きベクトル検出ステップが検出する第１動きベクトルの周囲の点での誤差値を計算し、
前記第１動きベクトルと前記計算ステップで計算する周囲の点での誤差値から、各周囲の点に特有の動き検出の探索範囲を決定し、
前記探索範囲決定ステップで決定した探索範囲で、前記第１精度よりも高い精度の第２精度で動きベクトル検出を行う、
処理を行わせることを特徴とするプログラム。
（付記８）
動画像符号化処理における動き補償フレーム間予測に必要な動きベクトルの検出を粗い精度での動きベクトル検出と、前記粗い精度で検出した動きベクトルの周囲について細かい精度で動きベクトル検出を行う階層的動きベクトル検出装置であって、
粗い精度で動きベクトルを検出する粗粒度動きベクトル検出器と、
前記粗粒度動きベクトル検出器が検出する粗粒度動きベクトルの周囲の点での誤差値を計算する周辺誤差値計算器と、
前記粗粒度動きベクトルと前記周辺誤差値計算器が計算する周囲の点での誤差値から細粒度動き検出の探索範囲を決定する探索範囲決定器と、
前記探索範囲決定器が決定した探索範囲で細かい精度で動きベクトル検出を行う動きベクトル検出器を備えることを特徴とする動きベクトル検出装置。
【図面の簡単な説明】
【００３９】
【図１】本発明の実施形態に従った動きベクトル検出処理装置のブロック構成図である。
【図２】1マクロブロックの動きベクトルを検出する処理のフローチャートである。
【図３】縦１／２、横１／４に縮小した縮小符号化画像を生成する場合を示す図である。
【図４】縮小動きベクトルと周囲８点の位置関係を示す図である。
【図５】図２のステップ６の処理のフローチャートである。
【図６】探索範囲の設定例を示す図である。
【図７】チェッカーパターン状の点でのみ誤差値を評価し、その中で最小の誤差値を与える点から縮小動きベクトルや動きベクトルを決定する方法を説明する図である。
【図８】斜線が引かれた四角で示される格子状の点でのみ誤差値を評価し、その中で最小の誤差値を与える点から縮小動きベクトルや動きベクトルを決定する方法を説明する図である。
【図９】縮小動きベクトルの周囲の画素点の取り方の別の例を示す図である。
【図１０】符号化処理対象画像の構成を説明する図である。
【図１１】従来の動きベクトル検出方法が動きベクトルを検出するための参照画像の構成を説明するための図である。
【図１２】従来の階層的探索法を用いた動きベクトル検出装置における縮小符号化画像３０を説明するための模式図である。
【図１３】従来の階層的探索法を用いた動きベクトル検出装置における縮小参照画像４０を説明するための模式図である。
【図１４】従来の階層的探索法を用いた動きベクトル検出装置における動きベクトルを検出する方法を説明するための模式図である。
【符号の説明】
【００４０】
６００      縮小画像生成器
６０１      縮小動きベクトル検出器
６０２      周辺誤差値計算器
６０３      探索範囲設定器
６０４      動きベクトル検出器
【図１】
2010074496.tif 000003
【図２】
2010074496.tif 000004
【図３】
2010074496.tif 000005
【図４】
2010074496.tif 000006
【図５】
2010074496.tif 000007
【図６】
2010074496.tif 000008
【図７】
2010074496.tif 000009
【図８】
2010074496.tif 000010
【図９】
2010074496.tif 000011
【図１０】
2010074496.tif 000012
【図１１】
2010074496.tif 000013
【図１２】
2010074496.tif 000014
【図１３】
2010074496.tif 000015
【図１４】
2010074496.tif 000016