(57)【要約】【課題】動きベクトル検出装置が動き探索を行う際に、擾乱の影響を受けにくくし、かつ、動き探索の演算量を削減する。【解決手段】一次探索器６がマクロブロック単位で一次探索を行い、近傍探索器８は、一次探索の結果得られる一次動きベクトル周辺およびゼロベクトル周辺等の近傍探索を、マクロブロックサイズ未満のブロック単位で行う。ブロック統合器１１は、ブロック毎の動きベクトルに応じて互いに隣接するブロックを結合することにより、マクロブロックに適用するブロックサイズを決定し、各ブロックの動きベクトルを決定する。【選択図】図１
2011130265.tif 000002
【特許請求の範囲】
【請求項１】
入力動画像のマクロブロックを分割した第１のブロック毎に、参照画像上で前記第１のブロックに対応する領域の位置を示す動きベクトルを検出する動きベクトル検出装置であって、
前記マクロブロックに対する一次の動き探索を行って、一次動きベクトルを検出する一次探索器と、
二次の動き探索を行う範囲の中心座標を示す探索中心座標を出力する探索中心指示器と、
前記一次動きベクトルが示す座標と前記探索中心座標との座標毎に、かつ前記マクロブロックを分割した第２のブロック毎に、二次の動き探索を行って動きベクトルを検出する近傍探索器と、
前記近傍探索器が検出した動きベクトルの中から、前記第２のブロック毎に動きベクトルを選択する動きベクトル選択器と、
前記動きベクトル選択器が選択した動きベクトルに基づいて、前記第２のブロック、または、互いに隣接する前記第２のブロックを結合したブロックを、前記第１のブロックとし、前記第２のブロックの動きベクトルに基づいて前記第１のブロックの動きベクトルを決定するブロック統合器と、
を具備することを特徴とする動きベクトル検出装置。
【請求項２】
前記探索中心座標は、前記マクロブロックの位置を示すゼロベクトル、または、前記第２のブロックに隣接するブロックの動きベクトルから算出される動きベクトル予測値を含むことを特徴とする請求項１に記載の動きベクトル検出装置。
【請求項３】
前記探索中心座標は、前記マクロブロックの左に隣接する左隣接ブロックの動きベクトル、または、前記マクロブロックの左に隣接する左隣接マクロブロックの前記一次動きベクトル、または、前記マクロブロックの上に隣接する上隣接ブロックの動きベクトル、または、前記マクロブロックの上に隣接する上隣接マクロブロックの前記一次動きベクトルを含むことを特徴とする請求項１または請求項２に記載の動きベクトル検出装置。
【請求項４】
前記探索中心座標は、前記マクロブロックの右に隣接する右隣接マクロブロックの前記一次動きベクトル、または、前記マクロブロックの下に隣接する下隣接マクロブロックの前記一次動きベクトルを含むことを特徴とする請求項１から３のいずれかの項に記載の動きベクトル検出装置。
【請求項５】
前記マクロブロックの画素値に基づいて、画素値のばらつきを示す指標を算出し、前記マクロブロックの画素値のばらつきが小さいか否かを判定する画像特徴量演算器をさらに具備し、
前記二次探索器は、前記画像特徴量演算器が、前記マクロブロックの画素値のばらつきが小さいと判定した場合は、前記マクロブロックを前記第２のブロックとすることを特徴とする請求項１から４のいずれかの項に記載の動きベクトル検出装置。
【請求項６】
入力動画像のマクロブロックを分割した第１のブロック毎に、参照画像上で前記第１のブロックに対応する領域の位置を示す動きベクトルを検出する動きベクトル検出装置の動きベクトル検出方法であって、
前記マクロブロックに対する一次の動き探索を行って、一次動きベクトルを検出する一次探索ステップと、
二次の動き探索を行う範囲の中心座標を示す探索中心座標を出力する探索中心指示ステップと、
前記一次動きベクトルが示す座標と前記探索中心座標との座標毎に、かつ前記マクロブロックを分割した第２のブロック毎に、二次の動き探索を行って動きベクトルを検出する近傍探索ステップと、
前記近傍探索ステップにて検出した動きベクトルの中から、前記第２のブロック毎に動きベクトルを選択する動きベクトル選択ステップと、
前記動きベクトル選択ステップにて選択した動きベクトルに基づいて、前記第２のブロック、または、互いに隣接する前記第２のブロックを結合したブロックを、前記第１のブロックとし、前記第２のブロックの動きベクトルに基づいて前記第１のブロックの動きベクトルを決定するブロック統合ステップと、
を具備することを特徴とする動きベクトル検出方法。
【請求項７】
コンピュータに、入力動画像のマクロブロックを分割した第１のブロック毎に、参照画像上で前記第１のブロックに対応する領域の位置を示す動きベクトルを検出させるためのプログラムであって、
前記マクロブロックに対する一次の動き探索を行って、一次動きベクトルを検出する一次探索ステップと、
二次の動き探索を行う範囲の中心座標を示す探索中心座標を出力する探索中心指示ステップと、
前記一次動きベクトルが示す座標と前記探索中心座標との座標毎に、かつ前記マクロブロックを分割した第２のブロック毎に、二次の動き探索を行って動きベクトルを検出する近傍探索ステップと、
前記近傍探索ステップにて検出した動きベクトルの中から、前記第２のブロック毎に動きベクトルを選択する動きベクトル選択ステップと、
前記動きベクトル選択ステップにて選択した動きベクトルに基づいて、前記第２のブロック、または、互いに隣接する前記第２のブロックを結合したブロックを、前記第１のブロックとし、前記第２のブロックの動きベクトルに基づいて前記第１のブロックの動きベクトルを決定するブロック統合ステップと、
を前記コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動きベクトル検出装置、動きベクトル検出方法およびプログラムに関する。
【背景技術】
【０００２】
動画像を圧縮符号化する動画像符号化方式として、ＭＰＥＧ（Moving Picture Experts Group）符号化方式や、Ｈ．２６４／ＡＶＣ符号化方式などが知られている。ＭＰＥＧ符号化方式として、ディジタル放送やＤＶＤなどの高画質用途にはＭＰＥＧ−２符号化方式が用いられ、携帯テレビ電話などの低ビットレート用途にはＭＰＥＧ−４符号化方式が広く用いられている。また、Ｈ．２６４／ＡＶＣ符号化方式は、ＩＴＵ−Ｔ（The International Telecommunication Union Telecommunication Standardization Sector）とＭＰＥＧとが共同で標準化を行った符号化方式であり、高画質と高圧縮率とを両立する新たな方式として注目を集めている。
【０００３】
これらの動画像符号化方式では、一般に、動き予測（インター予測）を行って符号量の削減を図っている。動き予測は、ある一枚の画像（フレーム（Frame））を分割した一部分であるマクロブロック（Macroblock；ＭＢ））を符号化する際に、時間的に過去ないし未来に位置する画像（参照画像）の中から、符号化対象のマクロブロック、あるいは、このマクロブロックをさらに分割したブロックと画像が類似する領域を探索し、探索によって検出した領域の画像と符号化対象の画像との差分を取って符号化を行う技術であり、時間的に連続して存在する被写体を示す符号量を大きく削減することができる。この、符号化対象のマクロブロックまたはブロックと画像が類似する領域を探索する作業を、「動き探索」と呼ぶ。
ＭＰＥＧ方式や、Ｈ．２６４／ＡＶＣ方式では、符号化対象の画像は、Ｉピクチャ（Intra-coded Picture）とＰピクチャ（Predicated Picture）とＢピクチャ（Bi-directed Picture）との３種類に分類される。Ｉピクチャは、動き予測を行わない画像であり、ＰピクチャやＢピクチャで参照される。Ｐピクチャは、時間的に過去に位置するＩピクチャまたはＰピクチャを用いて、１方向の動き予測を行う画像である。Ｂピクチャは、時間的に過去に位置するＩピクチャまたはＰピクチャ、および、未来に位置するＩピクチャまたはＰピクチャを用いて、双方向の動き予測を行う画像である。
【０００４】
図１２は、ＭＰＥＧ−２やＨ．２６４／ＡＶＣの動き予測において参照する画像の例を示す図である。
ＭＰＥＧ−２の動き予測では、ＰピクチャやＢピクチャで参照する画像は、直前や直後に位置する画像に一意に定まる。Ｐピクチャの動き予測で参照する画像は、直前のＩピクチャまたはＰピクチャである。図１２（ａ）の例では、時間順に５枚の画像Ｐ１２１５〜Ｐ１２１１が示されており、Ｐ１２１５とＰ１２１３とＰ１２１１とがＰピクチャであり、Ｐ１２１４とＰ１２１２とがＢピクチャである。このうち、ＰピクチャＰ１２１１の動き予測を行う際に、直前のＰピクチャＰ１２１３を参照している。また、Ｂピクチャの動き予測で参照する画像は、直前のＩピクチャまたはＰピクチャ、および、直後のＩピクチャまたはＰピクチャである。図１２（ａ）の例では、ＢピクチャＰ１２１２の動き予測を行う際に、直前のＰピクチャＰ１２１３と直後のＰピクチャＰ１２１１とを参照している。
【０００５】
これに対し、Ｈ．２６４／ＡＶＣ符号化方式では、符号化効率を高めるため、動き予測に使用する参照画像を、多数の候補の中から選択することができる。
図１２（ｂ）の例では、時間順に５枚の画像Ｐ１２２５〜Ｐ１２２１が示されており、Ｐ１２２５とＰ１２２３とＰ１２２１とがＰピクチャであり、Ｐ１２２４とＰ１２２２とがＢピクチャである。このうち、ＰピクチャＰ２５の動き予測を行う際に、時間的に前方向のＩピクチャおよびＰピクチャ（かつ参照画像メモリから削除されていないもの）から、参照画像としてＰピクチャＰ１２２５およびＰ１２２３を選択している。また、図１２（ｂ）の例では、ＢピクチャＰ２４の動き予測を行う際に、時間的に前方向のＰピクチャＰ１２２５およびＰ１２２３と、時間的に後方向のＰピクチャＰ１２２１とを選択している。
【０００６】
図１３は、Ｈ．２６４／ＡＶＣ符号化方式で、動き予測を行う単位となるブロックのサイズを示す図である。
ＭＰＥＧ−２符号化方式では、動き予測を行う単位は、横１６×縦１６画素のマクロブロック単位（、あるいは、符号化モードによっては横１６×縦８画素ブロック単位）に限定されている。これに対して、Ｈ．２６４／ＡＶＣ符号化方式では、同図に示す横１６×縦１６画素ブロックＢ１３１１、横１６×縦８画素ブロックＢ１３２１およびＢ１３２２、横８×縦１６画素ブロックＢ１３３１およびＢ１３３２、横８×縦８画素ブロックＢ１３４１〜Ｂ１３４４、さらには横８×縦８画素の各ブロックをさらに分割した横８×縦４画素のサブブロックＢ１３５１およびＢ１３５２、横４×縦８画素のサブブロックＢ１３６１およびＢ１３６２、横４×縦４画素のサブブロックＢ１３７１〜Ｂ１３７４の中から、いずれかの分割方法を選択する。そして、ブロック毎あるいはサブブロック毎に、符号化対象の画像のブロックまたはサブブロックに類似する参照画像上の領域を探索する動き探索を行って、この領域を示す動きベクトル（Motion Vector；ＭＶ）を算出し、ブロック毎あるいはサブブロック毎に動き予測を行うことができる。ここでいう「動きベクトル」は、動き探索で探索した参照画像上の領域を示すベクトルであり、符号化対象のブロックあるいはサブブロックの座標から探索した領域の座標への相対座標で示される。
【０００７】
また、ＭＰＥＧ−２符号化方式では、動き探索の際に参照画像上の領域を０．５画素（ハーフペル、Half-Pel）精度で探索するのに対し、Ｈ．２６４／ＡＶＣ符号化方式では、０．２５画素（クォータペル、Quarter-Pel）精度で探索できる。これにより、Ｈ．２６４／ＡＶＣ符号化方式では、より精度の高い動き予測を行うことができる。
【０００８】
Ｈ.２６４／ＡＶＣ符号化方式のように、参照画像および符号化対象ブロックサイズを多くの候補から選択できる場合、符号化効率を向上させるために、理想的にはすべての参照画像とブロックサイズとを候補として動き探索を行い、最適な参照画像およびブロックサイズを決定することが望ましい。しかし、全ての参照画像とブロックサイズとについて動き探索を行うと、演算量が膨大になってしまう。そこで、一般的な符号化器では、２段階で動き探索を行うことにより、演算量を削減する。例えば特許文献１の方法では、まず、限定されたブロックサイズで、複数の参照画像に対する広範囲な動き探索を行う一次探索により、参照画像とブロックサイズとの候補を絞り込む。そして、一次探索の結果に基づいて、その他のブロックサイズも含めた詳細な動き探索である二次探索を行い、最終的な参照画像やブロックサイズを選択し、ブロック毎の動きベクトルを検出する。
【０００９】
図１４は、特許文献１の方法にて行う一次探索の例を示す図である。
同図に示すように、動きベクトル探索装置は、限定されたブロックサイズ、例えば横８×縦８画素ブロックＢ１５１１〜Ｂ１５１４のみについて一次探索を行う。同図では、３枚の参照画像Ｐ１４１１〜Ｐ１４１３が示されており、動きベクトル探索装置は、これらの参照画像について、横８×縦８画素ブロックによる整数画素精度の動き探索を行う。そして、動きベクトル探索装置は、ブロック毎に、参照画素の候補を参照画像Ｐ１４１１〜Ｐ１４１３の何れかに決定し、また、ブロック毎に、整数画素精度の動きベクトルを検出する。
【００１０】
図１５は、特許文献１の方法にて行う二次探索の例を示す図である。
同図に示すように、動きベクトル探索装置は、一次探索の結果を元に、さまざまなブロックサイズでの動き探索を行う。
まず、動きベクトル探索装置は、横１６×縦１６画素ブロックＢ１５２１について、１次探索の左上のブロックＢ１５１１で決定した参照画像（参照画像（１））について、このブロックの動きベクトル（ＭＶ（１））が示す座標を中心として、０．２５画素精度の動き探索を±０．７５画素の範囲で行う。
１次探索の他のブロックＢ１５１２〜Ｂ１５１４についても同様に、決定した参照画像について、当該ブロックの動きベクトルが示す座標を中心として、０．２５画素精度の動き探索を±０．７５画素の範囲で行う。
【００１１】
横１６×縦８画素ブロックの場合、このブロックは横１６×縦１６画素のマクロブロックを上下に２分割し、上側のブロックＢ１５３１は、横８×縦８画素ブロックＢ１５１１とＢ１５１２とを包含する関係にある。動きベクトル探索装置は、上側のブロックＢ１５３１について、このブロックが包含する一次探索のブロックＢ１５１１で決定した参照画像（参照画像（１））について、このブロックの動きベクトル（ＭＶ（１））が示す座標を中心として、０．２５画素精度の動き探索を±０．７５画素の範囲で行う。また、このブロックＢ１５３１が包含する、一次探索のもう１つのブロックＢ１５１２についても、決定した参照画像（参照画像（２））について、このブロックの動きベクトル（ＭＶ（２））が示す座標を中心として、０．２５画素精度の動き探索を±０．７５画素の範囲で行う。
下側のブロックＢ１５３２についても、このブロックが包含する一次探索のブロックＢ１５１３とＢ１５１４とについて一次探索で決定した参照画像および動きベクトルに基づいて動き探索を行う。
【００１２】
横８×縦１６画素ブロックの場合も同様に、左側のブロックＢ１５４１が包含する一次探索のブロックＢ１５１１とＢ１５１３とについて一次探索で決定した参照画像および動きベクトルに基づいて動き探索を行う。右側のブロックＢ１５４２についても、包含する一次探索のブロックＢ１５１２とＢ１５１４とについて一次探索で決定した参照画像および動きベクトルに基づいて動き探索を行う。
また、横８×縦８画素ブロックＢ１５５１〜Ｂ１５５４についても、一次探索で行った整数画素精度の動き探索の結果に基づいて、さらに、０．２５画素精度の動き探索を±０．７５画素の範囲で行う。
各ブロックサイズについて動き探索を行った後、動きベクトル探索装置は、各動き探索で得られた評価値に基づいて、評価値が最小となるブロックサイズおよび動きベクトルの組み合わせに決定する。
【００１３】
このように、例えば一次探索は、横８×縦８画素ブロックのみに対して行い、その他のブロックサイズの探索は二次探索で行うことで、一次探索の演算量を削減できる。しかし、一次探索において、参照画像上から、符号化対象の部分と、より類似性の高い部分を検出するためには、参照画像上の広い範囲を動き探索する必要があり、一次探索に用いるブロックサイズを限定してもなお、演算量が非常に大きくなる。そこで、一般的な符号化器では、符号化対象の画像および参照画像を、縦横２分の１あるいは４分の１など、２ｎ分の１（ｎは、０≦ｎ≦４の整数）に縮小して一次探索を行う。例えば、符号化対象の画像および参照画像を、縦横共に２分の１に縮小することにより、比較する画素数を４分の１に減らすことができ、より少ない演算量で広い範囲を動き探索することができる。例えば、２ｎ分の１の縮小画像を用いて一次探索を行い、非縮小画像を用いて二次探索を行う場合、二次探索では、通常、少なくとも一次探索結果の周辺２ｎ−１画素の探索を行う。
【００１４】
例えば、縦横共に２分の１の縮小画像で一次探索を行う場合、横８×縦８画素ブロック単位で探索を行うと、縮小画像上では横４×縦４画素ブロック（１６画素）の領域で符号化対象の画像と参照画像とのマッチングをとることになる。あるいは、縦横共に４分の１の縮小画像で一次探索を行う場合、横８×縦８画素ブロック単位で探索を行うと、縮小画像上では横２×縦２画素ブロック（４画素）の領域でマッチングをとることになる。動き探索においては一般的に、符号化対象画像と参照画像との差分を示す値（一般的には、ブロック内の各画素の差分の絶対値和が用いられる）に、動きベクトルや符号化モードを記述するために必要なビット量を示す値を加えた評価値を算出し、この評価値が最小となる動きベクトルを選択する。その際、上記のような画素数の少ないブロックで動き探索を行うと、画像内のノイズ等の影響が大きく、正確な動きベクトルの追跡が困難となる。また、ノイズ等の擾乱によって、小さなブロックが選択され易くなり、ブロック毎に異なる方向の動きベクトルが選択され易くなる。これにより、動きベクトルの符号化コストが増大し、全体の符号量が増大してしまう。
【００１５】
さらには、隣接するマクロブロックの動き探索を行う際にも、動きベクトル予測値（予測動きベクトル、Predicted Motion Vector；ＰＭＶ）が画面全体の動きを反映せず、この動きベクトル予測値の周辺を動き探索しても適切な動き探索が行えない。また、Ｈ．２６４／ＡＶＣ符号化方式等では、動きベクトル予測値と動きベクトルとの差分をとって符号量の削減を図るが、擾乱の影響で動きベクトル予測値が不適切な値となっているため、差分をとっても符号量が削減できず、さらに符号化効率が低下してしまう。とりわけ、比較的平坦な画像のマクロブロックは、ノイズ等の擾乱の影響を受け易く、上記のように小さなブロックが選択され易くなり、ブロック毎に異なる方向の動きベクトルが選択され易くなる。これにより、符号化効率が低下し、さらには符号化・復号の際に復号画像に画像誤差が含まれ易くなり、主観品質の低下が発生する。
【００１６】
なお、ここでいう「動きベクトル予測値」は、符号化対象のマクロブロックの上または右上または左上または左に隣接する、既に動きベクトルを検出済みの各ブロックの動きベクトルから、Ｈ．２６４／ＡＶＣ等の符号化標準で定められた手順に基づいて算出されるベクトルである。例えば、図１３で説明した１６×８画素のブロックＢ１３２１およびＢ１３２２の場合、上側のブロックＢ１３２１では、このブロックＢ１３２１の上に隣接するブロックの動きベクトルから動きベクトル予測値を算出する。また、下側のブロックＢ１３２２では、このブロックＢ１３２２の左に隣接するブロックの動きベクトルから動きベクトル予測値を算出する。
動きベクトル予測値は、すでに符号化が終了している隣接ブロックの画像の動き量の平均的な値を示すベクトルであり、符号化対象のブロックの画像が、周辺のブロックの画像と同様の動きを示している場合は、この符号化対象のブロックの動きベクトルが動きベクトル予測値とほぼ同じ値となることが期待される。例えば、Ｈ．２６４／ＡＶＣの符号化標準に従って動きベクトルを符号化する場合、動きベクトルと動きベクトル予測値との差分をとって符号化を行う。このため、動きベクトルの値が動きベクトル予測値に近いほど、動きベクトルを表現するための符号量が少なくて済む。
【００１７】
そこで、一次探索はマクロブロック単位で行うことが考えられる。マクロブロックをブロックに分割しないことにより、評価値を算出する元になる画素数が多くなるため、ノイズ等の擾乱の影響を受けにくくなる。
マクロブロック単位の一次探索は、例えば、特許文献２の段落００２８〜００３２に示される、テレスコピック探索法と呼ばれる動き探索方法を用いて行うことができる。テレスコピック探索法は、比較的小さな範囲の探索の繰り返しによって、参照画像上での物体の大きな動きに追従するできる方法であり、マクロブロック単位の動き探索にもブロック単位の動き探索にも用いることができる。
【先行技術文献】
【特許文献】
【００１８】
【特許文献１】特開２００８−２３６０９６号公報
【特許文献２】特開２０００−２４２５５４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１９】
しかしながら、一次探索をマクロブロック単位で行うと、マクロブロック全体に対して１つのみの動きベクトルが得られる。この動きベクトルの周辺を二次探索する際に、二次探索の探索範囲を狭くすると、例えば、マクロブロックに動体の画像と静止する背景画像とが含まれる場合など、マクロブロックの部分によって画像の動きが異なる場合に、適切な動きベクトルを検出できないおそれがある。一方、二次探索の探索範囲を広くすると適切な動きベクトルを検出できる可能性は高くなるものの、演算量が増大してしまう。また、ブロックサイズの選択についても、二次探索で様々なブロックサイズについて動き探索を行うと演算量が増大してしまう。
【００２０】
本発明は、このような事情を考慮してなされたものであり、その目的は、擾乱の影響を受けにくく、かつ、動き探索の演算量を削減できる動きベクトル検出装置、動きベクトル検出方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００２１】
［１］この発明は上述した課題を解決するためになされたもので、本発明の一態様による動きベクトル検出装置は、入力動画像のマクロブロックを分割した第１のブロック毎に、参照画像上で前記第１のブロックに対応する領域の位置を示す動きベクトルを検出する動きベクトル検出装置であって、前記マクロブロックに対する一次の動き探索を行って、一次動きベクトルを検出する一次探索器と、二次の動き探索を行う範囲の中心座標を示す探索中心座標を出力する探索中心指示器と、前記一次動きベクトルが示す座標と前記探索中心座標との座標毎に、かつ前記マクロブロックを分割した第２のブロック毎に、二次の動き探索を行って動きベクトルを検出する近傍探索器と、前記近傍探索器が検出した動きベクトルの中から、前記第２のブロック毎に動きベクトルを選択する動きベクトル選択器と、前記動きベクトル選択器が選択した動きベクトルに基づいて、前記第２のブロック、または、互いに隣接する前記第２のブロックを結合したブロックを、前記第１のブロックとし、前記第２のブロックの動きベクトルに基づいて前記第１のブロックの動きベクトルを決定するブロック統合器と、を具備することを特徴とする。
ここでいう「一次動きベクトル」とは、近傍探索（二次探索）に先立って行う動き探索である一次探索によって得られる動きベクトルであり、二次探索の中心を示す。
【００２２】
［２］また、本発明の一形態による動きベクトル検出装置は、上述の動きベクトル検出装置であって、前記探索中心座標は、前記マクロブロックの位置を示すゼロベクトル、または、前記第２のブロックに隣接するブロックの動きベクトルから算出される動きベクトル予測値を含むことを特徴とする。
【００２３】
［３］また、本発明の一形態による動きベクトル検出装置は、上述の動きベクトル検出装置であって、前記探索中心座標は、前記マクロブロックの左に隣接する左隣接ブロックの動きベクトル、または、前記マクロブロックの左に隣接する左隣接マクロブロックの前記一次動きベクトル、または、前記マクロブロックの上に隣接する上隣接ブロックの動きベクトル、または、前記マクロブロックの上に隣接する上隣接マクロブロックの前記一次動きベクトルを含むことを特徴とする。
【００２４】
［４］また、本発明の一形態による動きベクトル検出装置は、上述の動きベクトル検出装置であって、前記探索中心座標は、前記マクロブロックの右に隣接する右隣接マクロブロックの前記一次動きベクトル、または、前記マクロブロックの下に隣接する下隣接マクロブロックの前記一次動きベクトルを含むことを特徴とする。
【００２５】
［５］また、本発明の一形態による動きベクトル検出装置は、上述の動きベクトル検出装置であって、前記マクロブロックの画素値に基づいて、画素値のばらつきを示す指標を算出し、前記マクロブロックの画素値のばらつきが小さいか否かを判定する画像特徴量演算器をさらに具備し、前記二次探索器は、前記画像特徴量演算器が、前記マクロブロックの画素値のばらつきが小さいと判定した場合は、前記マクロブロックを前記第２のブロックとすることを特徴とする。
【００２６】
［６］また、本発明の一形態による動きベクトル検出方法は、入力動画像のマクロブロックを分割した第１のブロック毎に、参照画像上で前記第１のブロックに対応する領域の位置を示す動きベクトルを検出する動きベクトル検出装置の動きベクトル検出方法であって、前記マクロブロックに対する一次の動き探索を行って、一次動きベクトルを検出する一次探索ステップと、二次の動き探索を行う範囲の中心座標を示す探索中心座標を出力する探索中心指示ステップと、前記一次動きベクトルが示す座標と前記探索中心座標との座標毎に、かつ前記マクロブロックを分割した第２のブロック毎に、二次の動き探索を行って動きベクトルを検出する近傍探索ステップと、前記近傍探索ステップにて検出した動きベクトルの中から、前記第２のブロック毎に動きベクトルを選択する動きベクトル選択ステップと、前記動きベクトル選択ステップにて選択した動きベクトルに基づいて、前記第２のブロック、または、互いに隣接する前記第２のブロックを結合したブロックを、前記第１のブロックとし、前記第２のブロックの動きベクトルに基づいて前記第１のブロックの動きベクトルを決定するブロック統合ステップと、を具備することを特徴とする。
【００２７】
［７］また、本発明の一形態によるプログラムは、コンピュータに、入力動画像のマクロブロックを分割した第１のブロック毎に、参照画像上で前記第１のブロックに対応する領域の位置を示す動きベクトルを検出させるためのプログラムであって、前記マクロブロックに対する一次の動き探索を行って、一次動きベクトルを検出する一次探索ステップと、二次の動き探索を行う範囲の中心座標を示す探索中心座標を出力する探索中心指示ステップと、前記一次動きベクトルが示す座標と前記探索中心座標との座標毎に、かつ前記マクロブロックを分割した第２のブロック毎に、二次の動き探索を行って動きベクトルを検出する近傍探索ステップと、前記近傍探索ステップにて検出した動きベクトルの中から、前記第２のブロック毎に動きベクトルを選択する動きベクトル選択ステップと、前記動きベクトル選択ステップにて選択した動きベクトルに基づいて、前記第２のブロック、または、互いに隣接する前記第２のブロックを結合したブロックを、前記第１のブロックとし、前記第２のブロックの動きベクトルに基づいて前記第１のブロックの動きベクトルを決定するブロック統合ステップと、を前記コンピュータに実行させるためのプログラムである。
【発明の効果】
【００２８】
この発明によれば、擾乱の影響を受けにくく、かつ、動き探索の演算量を削減できる。
【図面の簡単な説明】
【００２９】
【図１】本発明の一実施形態における動きベクトル検出装置の概略構成を示す構成図である。
【図２】同実施形態において、一次探索器６が一次探索を行う例を示す図である。
【図３】同実施形態において、一次探索器６がテレスコピック探索法を用いて一次探索を行う例を示す図である。
【図４】同実施形態において、一次探索の結果得られる動きベクトルの例を示す図である。
【図５】同実施形態において、近傍探索器８が行う二次探索の探索範囲の例を示す図である。
【図６】同実施形態において、近傍探索器８が、横８×縦８画素ブロック毎に最適な動きベクトルを求める例を示す図である。
【図７】同実施形態における探索中心座標として、動きベクトルおよびゼロベクトルを示す図である。
【図８】同実施形態における探索中心座標として、左隣接ブロックの動きベクトルまたは左隣接マクロブロックの一次動きベクトル、および、上隣接ブロックの動きベクトルまたは上隣接マクロブロック一次動きベクトルを示す図である。
【図９】同実施形態における探索中心座標として、下隣接マクロブロックの一次動きベクトル、および、右隣接マクロブロックの一次動きベクトルを示す図である。
【図１０】同実施形態において、近傍探索器８が、動きベクトル選択器１０に出力する動きベクトルおよび動きベクトル評価値の例、および、動きベクトル選択器１０が、動きベクトルおよび動きベクトル評価値を選択する例を示す図である。
【図１１】同実施形態において、動きベクトル検出装置１００が、符号化対象のマクロブロックＣ１２１に対する動きベクトルを検出する処理手順を示すフローチャートである。
【図１２】ＭＰＥＧ−２やＨ．２６４／ＡＶＣの動き予測において参照する画像の例を示す図である。
【図１３】Ｈ．２６４／ＡＶＣ符号化方式で、動き予測を行う単位となるブロックのサイズを示す図である。
【図１４】特許文献１の方法にて行う一次探索の例を示す図である。
【図１５】特許文献１の方法にて行う二次探索の例を示す図である。
【発明を実施するための形態】
【００３０】
以下、図面を参照して、本発明の一実施形態について説明する。
図１は、本発明の一実施形態における動きベクトル検出装置の概略構成を示す構成図である。
同図において、動きベクトル検出装置１００は、画像メモリ１と、探索範囲切り出し器２と、画像縮小器３および１２と、縮小画像キャッシュメモリ４と、画像キャッシュメモリ５と、一次探索器６と、探索中心指示器７と、近傍探索器８と画像特徴量演算器９と、動きベクトル選択器１０と、ブロック統合器１１とを具備する。
画像縮小器１２は、入力動画像がマクロブロック単位に分割された、符号化対象のマクロブロック画像Ｃ１２１の入力を受け、この符号化対象のマクロブロック画像Ｃ１２１を縦横共に２分の１の画素数に縮小し、縮小画像Ｃ１２２を一次探索器６に出力する。
【００３１】
画像メモリ１は、ローカル復号画像Ｃ１１の入力を受け、このローカル復号画像Ｃ１１を蓄積する。画像メモリ１が記憶するローカル復号画像は、動き探索のために使用する参照画像を切り出す元の画像となる。なお、ここでいう「ローカル復号画像」とは、本動きベクトル検出装置１００を含む動画像符号化装置が入力画像を符号化し、さらに復号した画像である。ローカル復号画像は、動画像復号装置も生成する画像であり、このローカル復号画像を用いて動き探索を行うことにより、符号化および復号による画像誤差を抑制することができる。なお、画像メモリ１が、ローカル復号画像に代えて入力画像を蓄積するようにしてもよい。入力画像を用いて動き探索を行うと、ローカル復号画像の生成や転送を待つことなく動き探索を行うことができるため、動画像符号化装置の構成の自由度が増す。
符号化および復号による画像誤差は生じるものの、動画像符号化装置側で復号画像を生成する必要が無く、動画像符号化装置の構成を簡略化できる。
【００３２】
探索範囲切り出し器２は、画像メモリ１が蓄積する画像Ｃ１２を読み出し、一次探索器６と近傍探索器８とが動き探索の対象とする範囲として符号化対象のマクロブロックを中心に設定される範囲の画像を切り出して、画像縮小器３と画像キャッシュメモリ５とに出力する。例えば、符号化対象のマクロブロックが画像Ｃ１２の左上に位置する場合、一次探索器６と近傍探索器８とが動き探索の対象とする範囲は、この符号化対象のマクロブロックを中心として画像Ｃ１２の左上に設定され、探索範囲切り出し器２は、この範囲の画像を切り出して、画像縮小器３と画像キャッシュメモリ５とに出力する。
画像縮小器３は、探索範囲切り出し器２から出力される画像Ｃ２１を、縦横共に２分の１の画素数に縮小して縮小画像Ｃ３１を生成し、縮小画像キャッシュメモリ４に出力する。縮小画像キャッシュメモリ４は、一次探索器６が行う一次探索用の参照画像として、画像縮小器３が出力する縮小画像Ｃ３１を記憶する。一方、画像キャッシュメモリ５は、近傍探索器８が行う二次探索用の参照画像として、探索範囲切り出し器２から出力される画像Ｃ２１を記憶する。
一次探索器６は、縮小画像キャッシュメモリ４から縮小画像Ｃ４１を読み出し、読み出した縮小画像Ｃ４１上で、画像縮小器１２から出力される縮小画像Ｃ１２２に類似する領域をマクロブロック単位で探索する一次探索を行って動きベクトルＣ６１を生成し、生成した動きベクトルＣ６１を近傍探索器８に出力する。以下では、一次探索器６が生成する動きベクトルを「一次動きベクトル」ともいう。一次動きベクトルは、二次探索の探索範囲の中心座標の１つを示す、２画素単位の精度をもった動きベクトルである。
【００３３】
探索中心指示器７は、近傍探索器８が行う二次探索の探索範囲の中心座標（探索中心座標）Ｃ７１を出力する。探索中心指示器７が出力する探索中心座標の具体的内容については後述する。
画像特徴量演算器９は、符号化対象のマクロブロックＣ１２１の画素値に基づいて、当該マクロブロックＣ１２１の画像が平坦か否か、すなわち、マクロブロックＣ１２１の画素値のばらつきが小さいか否かを判定し、判定結果を示す信号Ｃ９１を近傍探索器８と動きベクトル選択器１０とに出力する。
近傍探索器８は、画像キャッシュメモリ５から画像Ｃ５１を読み出し、読み出した画像Ｃ５１上で、符号化対象のマクロブロック画像Ｃ１２１に類似する領域を探索する二次探索を行う。具体的には、近傍探索器８は、一次探索器６から出力される一次動きベクトルＣ６１および探索中心指示器７から出力される探索中心座標Ｃ７１の各々を中心として、例えば整数画素精度の動き探索を±１画素の範囲で行うなど、予め定められた範囲内の探索を行い、一次動きベクトルＣ６１および探索中心座標Ｃ７１の各々についての動きベクトルおよび動きベクトル評価値Ｃ８１を、動きベクトル選択器１０に出力する。
【００３４】
ここでいう、「動きベクトル評価値」とは、符号化対象のブロック内の各画素と参照画像上で対応する画素との差分の絶対値和に、動きベクトルや符号化モードを記述するために必要なビット量（符号化コスト）に相当する値を加えた値である。動きベクトル評価値は、当該動きベクトルを用いて動き予測を行った場合の符号量や画像誤差を示す指標であり、動きベクトル評価値が小さい動きベクトルほど、符号化対象のマクロブロックに対して動き予測を行なう際に用いるのに適している。
後述するように、探索中心指示器７は、複数の探索中心座標Ｃ７１を出力し、近傍探索器８は、これら複数の探索中心座標Ｃ７１の各々について動きベクトルを出力する。二次探索を行う際、近傍探索器８は、符号化対象のマクロブロックの画素値のばらつきが小さいとの判定結果を示す信号Ｃ９１が画像特徴量演算器９から出力された場合は、横１６×縦１６画素ブロック（すなわち、マクロブロック）に対する動きベクトルを生成し、ばらつきが小さくないとの判定結果を示す信号Ｃ９１が出力された場合は、横８×縦８画素ブロック毎に動きベクトルを生成する。
【００３５】
動きベクトル選択器１０は、近傍探索器８から出力される複数の動きベクトルＣ８１の中から、動きベクトル評価値が最小となる動きベクトルをブロック毎に選択し、選択したブロック毎の動きベクトルＣ１０１をブロック統合器１１に出力する。
ブロック統合器１１は、動きベクトル選択器１０から出力されるブロック毎の動きベクトルＣ１０１に基づいて、処理対処のマクロブロックに適用するブロックサイズを決定し、ブロック毎の動きベクトルＣ２０１を、動きベクトル検出装置１００の外部（例えば、この動きベクトル検出装置１００を含む動画像符号化装置の予測画像生成手段）に出力する。
【００３６】
図２は、一次探索器６が一次探索を行う例を示す図である。一次探索器６は、直接探索法を用いて一次探索を行う。
同図の縮小画像Ｃ１２２は、画像縮小器１２が出力する、符号化対象のマクロブロックの縮小画像である。また、非参照画像Ｐ２２およびＰ２３と参照画像Ｐ２４とは、縮小画像キャッシュメモリ４から読み出す縮小画像Ｃ４１である。また、縮小画像Ｃ１２２（を含む符号化対象の画像）と参照画像Ｐ２４とは、非参照画像Ｐ２２およびＰ２３を挟み、時間方向に３画像ぶん離れている。
同図に示すように、直接探索法では、一次探索器６は、参照画像Ｐ２４に直接、符号化対象マクロブロックの座標に応じた探索範囲を設定し、設定した探索範囲内で符号化対象マクロブロックと参照画像とのマッチングをとって、一次動きベクトル５１を決定する。
具体的には、一次探索器６は、縮小された参照画像Ｃ４１上に設定された探索範囲内で、符号化対象マクロブロックの縮小画像Ｃ１２２と、参照画像上の同サイズの領域との、画素の差分絶対値の和を算出し、この画素の差分絶対値の和に基づいて動きベクトル評価値を算出し、探索範囲内で動きベクトル評価値が最小となる領域を示す動きベクトルを、一次動きベクトルＣ６１とする。
【００３７】
なお、一次探索器６が一次探索を行う方法は、直接探索法に限らない。
図３は、一次探索器６がテレスコピック探索法を用いて一次探索を行う例を示す図である。同図の縮小画像Ｃ１２２と非参照画像Ｐ２２およびＰ２３と参照画像Ｐ２４とは、それぞれ図２で説明したのと同様である。
まず、一次探索器６は、縮小画像Ｃ１２２（を含む符号化対象の画像）に時間方向に隣接する非参照画像Ｐ３２に、符号化対象ブロックＣ１２２の座標に応じた探索範囲（非参照画像Ｐ３２における符号化対象ブロックＣ１２２の座標を中心とする探索範囲）を設定し、動き探索を行う。次に、一次探索器６は、非参照画像Ｐ３２に時間方向に隣接する非参照画像Ｐ３３に、非参照画像Ｐ３２での探索結果Ｒ３２が示す座標に応じた探索範囲を設定し、動き探索を行う。さらに、一次探索器６は、非参照画像Ｐ３３に時間方向に隣接する参照画像Ｐ３４に、非参照画像Ｐ３３での探索結果Ｒ３３が示す座標に応じた探索範囲を設定し、動き探索を行う。そして、一次探索器６は、この動き探索によって得られる探索結果Ｒ３４を、最終的な動き探索結果（一次動きベクトルＣ６１）とする。
直接探索法では、画像中の物体の高速な動きに追従するためには、探索範囲が十分広くなければならず、それにより演算量が大きくなる。これに対し、テレスコピック探索法では、時間的に最も近い画像から参照画像に至るまで、順に探索を行い、探索結果の動きベクトルを次の画像の探索中心点として設定することを繰り返す。一回の探索範囲を比較的狭く設定しても、最終的に、参照画像上で広い範囲の物体の動きを追うことができる。
【００３８】
図４は、一次探索の結果得られる動きベクトルの例を示す図である。
一次探索の結果、図４に示すように、一次探索器６は、横１６×縦１６画素のマクロブロック単位での動きベクトルを、一次探索結果Ｃ６１として検出し、出力する。
【００３９】
図５は、近傍探索器８が行う二次探索の探索範囲の例を示す図である。同図において、近傍探索器８は、非縮小画像Ｃ５１上で、一次動きベクトルＣ６１が示す座標を中心に、整数画素精度の動き探索を、±１画素の範囲で行う。この場合、近傍探索器８は、同図に示すように全部で９点の動きベクトルについて動き探索を行い、動きベクトル評価値が最も小さい動きベクトルを選択することにより、整数画素精度の動きベクトルを検出する。
近傍探索器８においても、一次探索器６の場合と同様に、横１６×縦１６画素のマクロブロックの範囲で符号化対象のマクロブロックと参照画像との画素の差分絶対値を算出するが、一次探索器６の場合とは異なり、差分絶対値の和を横８×縦８画素ブロック毎に算出して、横８×縦８画素ブロック毎に最適な動きベクトルを検出する。あるいは、近傍探索器８が、横８×縦８画素ブロック毎に独立に動き探索を行い、横８×縦８画素ブロック毎に最適な動きベクトルを検出するようにしてもよい。
【００４０】
図６は、近傍探索器８が、横８×縦８画素ブロック毎に最適な動きベクトルを検出する例を示す図である。
図５で説明したように、近傍探索器８は、一次動きベクトルＣ６１が示す座標等の探索中心の近傍９点について、横１６×縦１６＝２５６画素の差分絶対値を算出する。そして、近傍探索器８は、横８×縦８画素ブロック毎、すなわち横８×縦８＝６４画素毎に差分絶対値和を集計し、動きベクトル評価値を算出する。近傍探索器８は、横８×縦８ブロック毎に、算出した動きベクトル評価値が最小となる動きベクトルを検出する。
ここで、図５で説明したように、近傍探索器８が横８×縦８画素ブロック毎に、動きベクトル評価値が最小の動きベクトルを算出しても、一次動きベクトルＣ６１に対して、高々±１画素のみ離れた動きベクトルの中から動きベクトルＣ８１を検出するに過ぎない。動き探索の対象を増やすことで、符号化対象のブロックに画像がより類似する領域を検出して符号化効率を高められることが期待できる。そこで近傍探索器８は、一次動きベクトルＣ６１に加えて、探索中心指示器７から出力される探索中心座標Ｃ７１を中心とした近傍についても動き探索を行い、横８×縦８画素ブロック単位で、動きベクトル評価値が最小の動きベクトルを得る。
【００４１】
探索中心指示器７は、近傍探索器８が処理可能な近傍探索演算量に応じた個数の探索中心座標Ｃ７１を出力する。具体的には、
（ａ）動きベクトル予測値、および、ゼロベクトル
（ｂ）左隣接ブロックの動きベクトルまたは左隣接マクロブロックの一次動きベクトル、および、上隣接ブロックの動きベクトルまたは上隣接マクロブロックの一次動きベクトル
（ｃ）下隣接マクロブロックの一次動きベクトル、または、右隣接マクロブロックの一次動きベクトル
について、近傍探索器８の演算能力に応じて、（ａ）と（ｂ）と（ｃ）と、または、（ａ）と（ｂ）と、または、（ａ）のみ、あるいはこれ以外の組み合わせを探索中心座標Ｃ７１とする。ここでいう「左隣接ブロック」とは、動き探索を行うブロックの左に隣接するブロックである。「左隣接マクロブロック」、「上隣接ブロック」、「上隣接マクロブロック」等も同様に、動き探索を行うブロックのそれぞれの方向に隣接するブロックないしマクロブロックである。なお、探索中心指示器７が出力する探索中心座標Ｃ７１は、上記の（ａ）、（ｂ）、（ｃ）やこれらの組み合わせに限らない。例えば、動きベクトル予測値のみを探索中心座標Ｃ７１とするようにしてもよい。以下、本実施形態では、探索中心指示器７が、探索中心座標Ｃ７１として（ａ）と（ｂ）と（ｃ）とを出力する場合について説明する。
【００４２】
図７は、上記（ａ）の探索中心座標である、動きベクトル予測値およびゼロベクトルを示す図である。
前述したように、動きベクトル予測値は、すでに動きベクトルを検出済みの隣接ブロックの画像の動き量の平均的な値を示すベクトルである。したがって、符号化対象のマクロブロックの画像が隣接ブロックと同様の動きをしている場合は、動きベクトル予測値の近傍を動き探索することにより、動きベクトル評価値が小さい動きベクトルを検出できる、すなわち、符号化対象のブロックと類似度の高い画像の領域を検出できる可能性が高い。符号化対象のマクロブロックの画像が隣接ブロックと同様の動きをしている場合としては、符号化対象のマクロブロックの画像と隣接ブロックの画像とが、同一の動体の画像である場合や、共にほぼ静止する、あるいは、一様に移動（パン）する背景の画像である場合が考えられる。
また、ここでいう「ゼロベクトル」は、原点を示すベクトルである。ゼロベクトルは、参照画像上での符号化対象のブロックの位置を、符号化対象のブロックの位置からの相対座標で示している。したがって、符号化対象のマクロブロックの画像が静止する物体や背景等の画像である場合は、動きベクトル予測値の近傍を動き探索することにより、動きベクトル評価値が小さい動きベクトルを検出できる可能性が高い。
【００４３】
図８は、上記（ｂ）の探索中心座標である、左隣接ブロックの動きベクトルまたは左隣接マクロブロックの一次動きベクトル、および、上隣接ブロックの動きベクトルまたは上隣接マクロブロック一次動きベクトルを示す図である。
符号化対象のマクロブロックＢ８１の画像が左隣接ブロックＢ８２の画像と連続する場合など、左隣接ブロックＢ８２の画像と同様の動きをする場合は、左隣接ブロックＢ８２の動きベクトルの近傍を動き探索することにより、動きベクトル評価値が小さい動きベクトルを検出できる可能性が高い。左隣接マクロブロックの一次動きベクトルは、例えば、複数のマクロブロックの動き探索を並行して行う場合など、何らかの理由で左隣接ブロックＢ８２の動きベクトルが得られない場合に、左隣接ブロックＢ８２の動きベクトルに代用することが考えられる。
なお、左隣接ブロックＢ８２の動きベクトル、または左隣接マクロブロックの一次動きベクトルを用いて、４つの横８×縦８画素ブロックＢ８１１〜Ｂ８１４すべてについて動き探索を行ってもよいが、本実施例では、動き探索の演算量削減のために、左隣接マクロブロックに隣接する横８×縦８画素ブロックＢ８１１とＢ８１３とのみについて動き探索を行う。
【００４４】
同様に、符号化対象のマクロブロックＢ８１の画像が上隣接ブロックＢ８３の画像と連続する場合など、上隣接ブロックＢ８３の画像と同様の動きをする場合は、上隣接ブロックＢ８３の動きベクトルまたは上隣接マクロブロックの一次動きベクトルの近傍を動き探索することにより、動きベクトル評価値が小さい動きベクトルを検出できる可能性が高い。なお、上隣接ブロックＢ８３の動きベクトルまたは上隣接マクロブロックの一次動きベクトルを用いて、４つの横８×縦８画素ブロックＢ８１１〜Ｂ８１４すべてについて動き探索を行ってもよいが、本実施例では、動き探索の演算量削減のために、上隣接マクロブロックに隣接する横８×縦８画素ブロックＢ８１１とＢ８１２とのみについて動き探索を行う。
【００４５】
図９は、上記（ｃ）の探索中心座標である、下隣接マクロブロックの一次動きベクトル、および、右隣接マクロブロックの一次動きベクトルを示す図である。
これらの一次動きベクトルを探索中心座標として用いるためには、二次探索を行う際に、下隣接マクロブロックの一次動きベクトルや、右隣接マクロブロックの一次動きベクトルがすでに生成されている必要がある。したがって、図９下に示すように、一次探索器６による一次探索が、近傍探索器８よりも１マクロブロック行（画像（フレーム）の左端から右端まで横方向に連続した並んだマクロブロックの集まり）分以上先行して行われている必要がある。
【００４６】
符号化対象のマクロブロックＢ９１の画像が下隣接マクロブロックＢ９３の画像と連続する場合など、下隣接マクロブロックＢ９３の画像と同様の動きをする場合は、下隣接マクロブロックＢ９３の一次動きベクトルの近傍を動き探索することにより、動きベクトル評価値が小さい動きベクトルを検出できる可能性が高い。なお、下隣接マクロブロックＢ９３の一次動きベクトルを用いて、４つの横８×縦８画素ブロックＢ９１１〜Ｂ９１４すべてについて動き探索を行ってもよいが、本実施例では、動き探索の演算量削減のために、下隣接マクロブロックＢ９３に隣接する横８×縦８画素ブロックＢ９１３とＢ９１４とのみについて動き探索を行う。
【００４７】
同様に、符号化対象のマクロブロックＢ９１の画像が右隣接マクロブロックＢ９２の画像と連続する場合など、右隣接マクロブロックＢ９２の画像と同様の動きをする場合は、右隣接マクロブロックＢ９２の一次動きベクトルの近傍を動き探索することにより、動きベクトル評価値が小さい動きベクトルを検出できる可能性が高い。なお、右隣接マクロブロックＢ８３の一次動きベクトルを用いて、４つの横８×縦８画素ブロックＢ９１１〜Ｂ９１４すべてについて動き探索を行ってもよいが、本実施例では、動き探索の演算量削減のために、右隣接マクロブロックＢ９２に隣接する横８×縦８画素ブロックＢ９１１とＢ９１２とのみについて動き探索を行う。
【００４８】
図１０は、近傍探索器８が、動きベクトル選択器１０に出力する動きベクトルおよび動きベクトル評価値の例、および、動きベクトル選択器１０が、動きベクトルおよび動きベクトル評価値を選択する例を示す図である。
近傍探索器８は、二次探索対象の４つの横８×縦８画素ブロックＢ１０１〜Ｂ１０４それぞれについて、一次動きベクトルＣ６１および複数の探索中心座標Ｃ７１の各々を中心として、図５で説明した動き探索対象の９点について動き探索を行い、９点のうち動きベクトル評価値が最小の動きベクトルおよび当該動きベクトル評価値を、動きベクトル選択器１０に出力する。動きベクトル選択器１０は、ブロックＢ１０１〜Ｂ１０４の各々について、近傍探索器８から出力される動きベクトルのうち、動きベクトル評価値が最も小さい動きベクトルを選択する。例えば図１０の例では、動きベクトル選択器１０は、ブロックＢ１０１については、動きベクトル評価値が４８で最小である動きベクトルＭＶ３１を選択する。同様に、ブロックＢ１０２については動きベクトルＭＶ１２を選択し、ブロックＢ１０３については動きベクトルＭＶ１３を選択し、ブロックＢ１０４については動きベクトルＭＶ３４を選択する。動きベクトル選択器１０は、選択したブロック毎の動きベクトルＣ１０１をブロック統合器１１に出力する。
【００４９】
ブロック統合器１１は、互いに隣接するブロックについて、動きベクトル選択器１０から出力される動きベクトルの値が等しい場合は、両者のブロックを統合して、より大きなサイズのブロックとする。
例えば、図１０において、ブロックＢ１０１の動きベクトルＭＶ３１と、ブロックＢ１０２の動きベクトルＭＶ１２との値が等しく、かつ、ブロックＢ１０３の動きベクトルＭＶ１３と、ブロックＢ１０４の動きベクトルＭＶ３４との値が等しい場合には、ブロック統合器１１は、ブロックＢ１０１とブロックＢ１０２とを統合し、また、ブロックＢ１０３とブロックＢ１０４とを統合して、２つの横１６×縦８画素ブロックを生成し、動き予測を行う単位のブロックサイズを横１６×縦８画素（図１５のブロックＢ１５２１およびＢ１５２２）に決定する。
【００５０】
あるいは、ブロックＢ１０１の動きベクトルＭＶ３１と、ブロックＢ１０３の動きベクトルＭＶ１３と値が等しく、かつ、ブロックＢ１０２の動きベクトルＭＶ１２と、ブロックＢ１０４の動きベクトルＭＶ３４との値が等しい場合には、ブロック統合器１１は、ブロックＢ１０１とブロックＢ１０３とを統合し、また、ブロックＢ１０２とブロックＢ１０４とを統合して、２つの横８×縦１６画素ブロックを生成し、動き予測を行う単位のブロックサイズを横８×縦１６画素（図１５のブロックＢ１５３１およびＢ１５３２）に決定する。
あるいは、ブロックＢ１０１〜Ｂ１０４の動きベクトルの値が全て等しい場合には、ブロック統合器１１は、４つのブロックＢ１０１〜Ｂ１０４を統合して横１６×縦１６画素ブロックを生成し、動き予測を行う単位のブロックサイズを横１６×縦１６画素（図１５のブロックＢ１５１１）に決定する。
一方、隣接するブロックの動きベクトルの値が互いに異なる場合は、ブロック統合器１１は、ブロックの統合は行わず、動き予測を行う単位のブロックサイズを横８×縦８画素（図１５のブロックＢ１５５１〜Ｂ１５５４）に決定する。
以上のように、ブロック統合器１１は、ブロックサイズ（インター符号化モード）および動きベクトルＣ２０１を決定し、動きベクトル検出装置１００の外部に出力する。
【００５１】
ここで、符号化対象のマクロブロックの画像が平坦であり、参照画像にも同様の平坦な画像の領域がある場合、平坦な画像の領域のどの部分をとっても、動きベクトル評価値にあまり差が生じないことが考えられる。この場合、ノイズ等の擾乱の影響により動きベクトル評価値がわずかに変化するだけで、近傍探索器８あるいは動きベクトル選択器１０が選択する動きベクトルが、擾乱の影響が無い場合と異なるものになりうる。したがって、マクロブロックの各８×８画素ブロックについて見ると、マクロブロックの画像が平坦な場合は、ノイズ等の擾乱によってブロック毎に異なる方向の動きベクトルが選択され易くなる。この場合、ブロック統合器１１はブロックの統合を行わず、符号化効率が低下する。
【００５２】
また、画面全体が同一方向に移動（パン）している映像では、画面全体の移動が反映された動きベクトル予測値近傍の動きベクトルが選択されることが望ましい。これに対して、ノイズ等の影響により一部の横８×縦８画素ブロックで動きベクトル予測値近傍の動きベクトルが選択されず、例えばゼロベクトル近傍の動きベクトルが選択された場合、このブロックに隣接するマクロブロックを処理する際に、探索中心指示器７は、このゼロベクトル近傍の動きベクトルに基づいて動きベクトル予測値を算出する。その結果、探索中心指示器７が算出する動きベクトル予測値は、画面全体の移動を正しく反映しないものとなる。このため、前記ブロックに隣接するマクロブロックでも動きベクトル予測値近傍の動きベクトルが選択されない可能性が高い。同様に、さらにこのマクロブロックに隣接するマクロブロックでも、動きベクトル予測値近傍の動きベクトルが選択されない可能性が高い。このように、１つのブロックへのノイズ等の混入が、複数のマクロブロックに影響し、符号化効率が低下するおそれがあり、また、符号化・復号の際に復号画像に画像誤差が含まれ易くなり、主観品質が低下するおそれがある。
【００５３】
そこで、画像特徴量演算器９は、符号化対象マクロブロック画像Ｃ１２１の特徴量として、画素値の分散など、画素値のばらつきを示す指標を算出し、マクロブロックの画像が平坦か否か、すなわち、画素値のばらつきが小さいか否かを判定し、判定結果Ｃ９１を、近傍探索器８と動きベクトル選択器１０とに出力する。画素値のばらつきが小さいとの判定結果が出力された場合、近傍探索器８は、横８×縦８画素ブロック単位での差分絶対値の集計および動きベクトル算出を行わず、横１６×縦１６画素のマクロブロック単位で動き探索を行い、マクロブロックの動きベクトルおよび動きベクトル評価値を出力する。そして、動きベクトル選択器１０は、近傍探索器８から出力されるマクロブロックの動きベクトルのうち、動きベクトル評価値が最も小さい動きベクトルを選択する。これにより、平坦な画像においてブロックが不必要に細かく分割されることを防ぐことができる。
画像特徴量演算器９は、例えば、式（１）が成立する場合に、マクロブロックの画素値のばらつきが小さいと判定する。
【００５４】
【数１】
2011130265.tif 000003
【００５５】
ここで、「マクロブロックの分散値」とは、マクロブロック内の各画素と、全画素の平均値との差分の絶対値和をいう。また、αは閾値であり、例えば、予め定められた定数である。
【００５６】
図１１は、動きベクトル検出装置１００が、符号化対象のマクロブロックＣ１２１に対する動きベクトルを検出する処理手順を示すフローチャートである。
ステップＳ１１において、画像縮小器１２は、符号化対象のマクロブロックＣ１２１を縦横共に２分の１の画素数に縮小した画像Ｃ１２２を生成して一次探索器６に出力し、一次探索器６は、縮小画像Ｃ１２２を用いて、縮小参照画像Ｃ４１上での動き探索をマクロブロック単位で行い、一次動きベクトルＣ６１を生成して近傍探索器８に出力する。
ステップＳ１２において、探索中心指示器７は、近傍探索器８が二次探索を行う領域の中心座標を示す探索中心座標Ｃ７１を出力する。
ステップＳ１３において、画像特徴量演算器９は、符号化対象のマクロブロックＣ１２１の画素値に基づいて、符号化対象のマクロブロックＣ１２１の画像が平坦か否かを示す画像特徴量を算出する。
【００５７】
ステップＳ１４において、画像特徴量演算器９は、算出した画像特徴量に基づいて、符号化対象のマクロブロックＣ１２１の画素値のばらつきが小さいか否かを判定する。ばらつきが小さいと判定した場合（ステップＳ１４：ＹＥＳ）はステップＳ２１に進み、ばらつきが小さくないと判定した場合（ステップＳ１４：ＮＯ）はステップＳ１５に進む。
ステップＳ１５において、近傍探索器８は、符号化対象のマクロブロックＣ１２１を用いて、参照画像Ｃ５１上での動き探索を行い、一次探索器６が出力する一次動きベクトルＣ６１および探索中心指示器７が出力する探索中心座標Ｃ７１の各々の近傍について、横８×縦８画素ブロック毎に、動きベクトル評価値が最小となる動きベクトルを選択し、選択した動きベクトルと、その動きベクトル評価値とを、動きベクトル選択器１０に出力する。
【００５８】
ステップＳ１６において、動きベクトル選択器１０は、近傍探索器８から出力される動きベクトルから、横８×縦８画素ブロック毎に、動きベクトル評価値が最小となる動きベクトルを選択し、選択したブロック毎の動きベクトルをブロック統合器１１に出力する。
ステップＳ１７において、ブロック統合器１１は、互いに隣接し、かつ、動きベクトルの値が等しいブロックを統合することにより、符号化対象のマクロブロックのブロックサイズおよび各ブロックの動きベクトルを決定する。
ステップＳ１８において、ブロック統合器１１は、決定したブロックサイズおよび動きベクトルを動きベクトル検出装置１００の外部に出力する。その後、符号化対象のマクロブロックＣ１２１に対する動きベクトルを検出する処理を終了する。
【００５９】
ステップＳ２１において、近傍探索器８は、符号化対象のマクロブロックＣ１２１を用いて、参照画像Ｃ５１上での動き探索を行い、一次探索器６が出力する一次動きベクトルＣ６１および探索中心指示器７が出力する探索中心座標Ｃ７１の各々の近傍について、横１６×縦１６画素ブロック単位で、動きベクトル評価値が最小となる動きベクトルを選択し、選択した動きベクトルと、その動きベクトル評価値とを、動きベクトル選択器１０に出力する。
ステップＳ２２において、動きベクトル選択器１０は、近傍探索器８から出力される動きベクトルから、横１６×縦１６画素ブロック単位で、動きベクトル評価値が最小となる動きベクトルを選択し、選択した動きベクトルをブロック統合器１１に出力する。その後、ステップＳ１８に進む。
【００６０】
以上のように、一次探索器６が、縮小画像を用いて広範囲の一次探索を行う際に、横８×縦８画素ブロック毎ではなく横１６×縦１６画素のマクロブロック単位で探索を行うので、動きベクトル評価値を算出する対象となる画素数が多い。これにより、ノイズ等の擾乱の影響を受けにくく、動体の画像の追跡を、より正確に行うことができる。
また、近傍探索器８は、一次動きベクトルＣ６１の近傍だけでなく、ゼロベクトルの近傍や動きベクトル予測値の近傍、または、上下左右に隣接するブロックまたはマクロブロックの動きベクトルの近傍についても動き探索を行うので、静止する画像や隣接するブロックと同様に動く画像にも対応して、より適切な動きベクトルを選択することができる。
また、近傍探索器８は、限定されたブロックサイズ、例えば横８×縦８画素毎に動きベクトルを生成するので、さまざまなブロックサイズで動き探索を行う必要が無く、動き探索の演算量を削減できる。かつ、ブロック統合器１１が、動きベクトルの値に応じてブロックを統合するので、適切なブロックサイズを選択して符号化効率を高めることができる。
さらに、画像特徴量演算器９が、画像が平坦なマクロブロックを検出して、細かいブロックへの分割を抑制するので、画像が平坦な場合にもノイズ等の擾乱の影響を受けにくい。
【００６１】
なお、一次探索器６が一次探索を行う際に用いる参照画像の縮小比率は、上述した縦横２分の１倍に限らず、近傍探索器８が二次探索を行う際に用いる参照画像は、非縮小のものに限らない。例えば、演算量を抑えつつ探索範囲を広げるために、一次探索器６が縦横共に４分の１の縮小比率の参照画像を用いて一次探索を行い、近傍探索器８が非縮小の参照画像を用いて二次探索を行うようにしてもよい。あるいは、一次探索器６が縦横共に４分の１の縮小比率の参照画像を用いて一次探索を行い、近傍探索器８が縦横共に２分の１の縮小比率の参照画像を用いて二次探索を行うようにしてもよい。この場合、一次探索器６は、横４×縦４画素に縮小された、符号化対象マクロブロックの縮小画像Ｃ１２２を用いて探索を行う。
また、一次探索器６が一次探索を行う際に用いる参照画像は、縦横の縮小比率が同一でなくてもよい。例えば、一次探索器６が、縦２分の１、横４分の１に縮小された、横４×縦８画素の縮小画像Ｃ１２２を用いて一次探索を行うようにしてもよい。
【００６２】
また、二次探索の対象は近傍９点に限らない。例えば、近傍探索器８が、一次ベクトル等を中心に±２画素の範囲内の２５点について二次探索を行なう、あるいは、０．２５画素または０．５画素などの小数精度で二次探索を行うなど、より広い範囲を探索するようにしてもよい。これにより、より適切な動きベクトルの探索が期待できる。
また、一次探索器６や、近傍探索器８が、複数の参照画像の候補を用いるようにしてもよい。例えば、一次探索器６が複数の参照画像の候補に対して一次探索を行い、動きベクトル評価値が最も小さな参照画像と一次動きベクトルとを選択して、近傍探索器８に出力するようにしてもよい。近傍探索器８は、一次探索器６が選択した参照画像（縮小された参照画像）に対応する参照画像（非縮小の参照画像）上で、一次動きベクトルが示す位置を中心とする近傍探索を行い、参照画像を示す情報と二次探索の結果の動きベクトルとをブロック毎に出力する。
さらに、ブロック統合器１１がブロックを統合してより大きなブロックにする条件は、隣接するブロックの動きベクトルの値が同一の場合に限らない。例えば、式（２）が成立する場合に、ブロックを統合するようにしてもよい。
【００６３】
【数２】
2011130265.tif 000004
【００６４】
ここで、βは閾値であり、例えば、予め定められる定数である。例えばβ＝０．２５の場合、ブロック統合器１１は、隣接するブロックの動きベクトルの差の絶対値が０．２５画素以下である場合に、ブロックを統合する。このように、ブロックを統合し易くすることにより、符号化対象の動きベクトルの個数が減少し、符号化効率の向上が期待できる。なお、ブロックを統合する場合、ブロック統合器１１は、例えば、統合前の何れかブロックの動きベクトルを統合後のブロックの動きベクトルに決定する。
【００６５】
なお、動きベクトル検出装置１００の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【００６６】
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【産業上の利用可能性】
【００６７】
本発明は、例えば、動画像のディジタル信号をＭＰＥＧ（Moving Picture Experts Group）方式、あるいは、ＩＴＵ−Ｔ (The International Telecommunication Union Telecommunication Standardization Sector)Ｈシリーズ方式に従って符号化する映像符号化器など、動き予測を行う映像符号化器において、動きベクトルを出力する動きベクトル検出装置、動きベクトル検出方法およびプログラムに用いて好適である。
【符号の説明】
【００６８】
１  画像メモリ
２  探索範囲切り出し器
３、１２  画像縮小器
４  縮小画像キャッシュメモリ
５  画像キャッシュメモリ
６  一次探索器
７  探索中心指示器
８  近傍探索器
９  画像特徴量演算器
１０  動きベクトル選択器
１１  ブロック統合器
１００  動きベクトル検出装置
【図１】
2011130265.tif 000005
【図２】
2011130265.tif 000006
【図３】
2011130265.tif 000007
【図４】
2011130265.tif 000008
【図５】
2011130265.tif 000009
【図６】
2011130265.tif 000010
【図７】
2011130265.tif 000011
【図８】
2011130265.tif 000012
【図９】
2011130265.tif 000013
【図１０】
2011130265.tif 000014
【図１１】
2011130265.tif 000015
【図１２】
2011130265.tif 000016
【図１３】
2011130265.tif 000017
【図１４】
2011130265.tif 000018
【図１５】
2011130265.tif 000019