(57)【要約】【課題】動きベクトルの演算量の増加を抑えつつ、動きベクトルの探索精度を向上する。【解決手段】ブロック領域定義手段１ａは、縮小画において仮動きベクトルの探索処理単位である複数のＭＢのブロック領域２ａ〜２ｄを重なるように定義する。仮動きベクトル算出手段１ｂは、ブロック領域２ａ〜２ｄの仮動きベクトルを算出する。仮動きベクトル平均算出手段１ｃは、ブロック領域２ａ〜２ｄの重なる領域３ａ〜３ｅの仮動きベクトルを、領域３ａ〜３ｅを含むそれぞれのブロック領域２ａ〜２ｄの仮動きベクトルを平均して算出する。【選択図】図１
2008061162.tif 000002
【特許請求の範囲】
【請求項１】
画像間の動きベクトルを探索する動きベクトル探索装置において、
前記画像を縮小した縮小画において、仮動きベクトルの探索処理単位である複数のマクロブロックのブロック領域を重なるように定義するブロック領域定義手段と、
前記ブロック領域の前記仮動きベクトルを算出する仮動きベクトル算出手段と、
前記ブロック領域の重なる領域の前記仮動きベクトルを、前記領域を含むそれぞれの前記ブロック領域の前記仮動きベクトルを平均して算出する仮動きベクトル平均算出手段と、
を有することを特徴とする動きベクトル探索装置。
【請求項２】
前記ブロック領域定義手段は、上下左右隣接する前記ブロック領域を重なるように定義することを特徴とする請求項１記載の動きベクトル探索装置。
【請求項３】
前記動きベクトル平均算出手段は、前記領域を含む前記ブロック領域の全ての前記仮動きベクトルを加算し、加算した前記仮動きベクトルの個数で除算することを特徴とする請求項１記載の動きベクトル探索装置。
【請求項４】
前記動きベクトル平均算出手段は、前記領域を含む前記ブロック領域の各前記仮動きベクトルにおいて、前記仮動きベクトルを持つ前記ブロック領域以外のＳＡＤ値を加算して乗算し、前記領域を含む前記ブロック領域の全ての前記ＳＡＤ値を加算して除算し、各前記仮動きベクトルを加算することを特徴とする請求項１記載の動きベクトル探索装置。
【請求項５】
画像間の動きベクトルを探索する動きベクトル探索方法において、
前記画像を縮小した縮小画において、仮動きベクトルの探索処理単位である複数のマクロブロックのブロック領域を重なるように定義し、
前記ブロック領域の前記仮動きベクトルを算出し、
前記ブロック領域の重なる領域の前記仮動きベクトルを、前記領域を含むそれぞれの前記ブロック領域の前記仮動きベクトルを平均して算出する、
ことを特徴とする動きベクトル探索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は動きベクトル探索装置および動きベクトル探索方法に関し、特に画像間の動きベクトルを探索する動きベクトル探索装置および動きベクトル探索方法に関する。
【背景技術】
【０００２】
ＤＶＤ（Digital Versatile Disc）レコーダやＭＰＥＧ（Moving Picture Experts Group）カメラなどの画像符号化規格を応用したディジタル家電の市場は、拡大を続けている。市場が要求する使い勝手のよい低コスト製品を実現するには、ＭＰＥＧ符号化処理のＬＳＩ（Large Scale Integration）化が必須であるが、動画像の符号化は一般的に多大な処理を必要とするため、符号化処理量を削減できる方式上の工夫が必須である。
【０００３】
ＭＰＥＧなどの動画像符号化処理において最も演算量を必要とするのは、動きベクトルの探索処理である。動きベクトルとは、動画を構成する画像間で、１６×１６画素の矩形領域（マクロブロック：以下ＭＢ）ごとに、絵柄の動きを表す量である。符号化時は、画像の全ＭＢについてそれぞれ動きベクトルを判定し、画像間の冗長性を排除して、情報量を削除することで高能率の符号化を行う。
【０００４】
図１２は、ＭＢと動きベクトルを説明する図である。図に示す画像１０１ａ〜１０１ｄのそれぞれは、ある時刻における画像を示している。画像１０１ａ〜１０１ｄは、図の右側に進むほど、時間経過した画像となっており、星の絵柄は、画像１０１ａ〜１０１ｄ間で移動している。
【０００５】
画像１０２，１０３は、画像１０１ｂ，１０１ｃを抜き出したものである。画像１０２を参照画（前画像）、画像１０３を原画とする。また、画像１０２，１０３内の正方形のＭＢ１０４〜１０６は、ＭＢを示している。点線の正方形で示したＭＢ１０６は、参照画のＭＢ１０４を、原画の画像１０３内で示している。動きベクトルは、前述したようにＭＢごとにおける画像の動きを表す量なので、星の絵柄における動きベクトルは、図の動きベクトル１０７に示すようになる。なお、動画像符号化の基本技術は、アスキー出版「最新ＭＰＥＧ教科書」のＰ１６，７１，７６に詳しく記載されている。
【０００６】
画像間の動きベクトルの算出は、パターンマッチング処理により、ＭＢごとに最も似ているパターンを持つＭＢの座標を特定することで行う。例えば、原画から１ＭＢのデータを読み込む。また、この原画のＭＢと同じ位置を中心とした参照画の探索範囲から１ＭＢのデータを読み込む。原画のＭＢと、参照画の探索範囲内のＭＢとの各画素（１６×１６）データの差分値を算出し、その絶対値和（ＳＡＤ値）を積算する。ＭＢのＳＡＤ値の積算は、探索範囲内で探索するＭＢ（探索ＭＢ）を１画素ずつずらしながら、探索範囲内全てにおいて算出する。
【０００７】
ここで、原画のＭＢと探索ＭＢとの各画素の、データの差分値の総和が小さければ、原画のＭＢと探索ＭＢとの絵柄は似ていると判断できる。従って、ＳＡＤ値を積算した値が最も小さい探索ＭＢが、最も原画のＭＢの絵柄に近いといえ、このときの探索ＭＢの座標を特定することで、動きベクトルを算出できる。
【０００８】
ＭＢを探索する探索範囲が広いと、速い動きにも対応でき、符号化時の画質が向上するが、反面、演算量とメモリアクセス量が増加することになり、ＬＳＩの消費電力やコスト増大の要因となる。
【０００９】
図１３は、探索範囲を説明する図のその１である。図には、原画のＭＢ１１１と、参照画の絵柄１１３が記載されている。また、ＭＢ１１１とパターンマッチングするＭＢを探索する探索範囲１１２が示してある。
【００１０】
ＭＢ１１１と最もパターンマッチングするＭＢは、絵柄１１３を囲むＭＢとなる。しかし、探索範囲１１２に示すようにＭＢの探索範囲が小さいと、ＭＢ１１１とパターンマッチングするＭＢを検出することができない。この場合、動きベクトルは、動きベクトル１１４に示すように正しく算出することができない。
【００１１】
図１４は、探索範囲を説明する図のその２である。図において、図１３と同じものには、同じ符号を付し、その詳細な説明を省略する。図１４では、図１３の探索範囲１１２に対し、絵柄１１３を含むように探索範囲１１５が大きくなっている。この場合、ＭＢ１１１とパターンマッチングするＭＢ（絵柄１１３を含むＭＢ）を検出することが可能となり、適正に動きベクトル１１６を算出することができる。
【００１２】
演算量の増加を抑えて広い範囲を精度よく探索する工夫が、製品の競争力を左右する重要なファクタである。いくつかの方式が提案されているが、その一つに縮小画を用いた階層探索法がある。これは、原画と参照画についてそれぞれ縮小処理を行って小さい画面にし、縮小画面同士で動きベクトルの探索を実行する。その後、縮小画面で決定した動きベクトル（オフセットベクトル）の座標を中心に、通常サイズの画面同士で狭い範囲を探索して最終結果とする。この方法により、広い探索範囲と少ない演算量が可能となる。
【００１３】
図１５は、階層探索法を説明する図のその１である。図には参照画の画像１２１と画像１２１を縮小した画像１２２とが示してある。また、原画の画像１２３と画像１２３を縮小した画像１２４とが示してある。画像１２２，１２４は、例えば、７２０×５２８画素を４分の１にした１８０×１３２画素の画像である。
【００１４】
また、図にはＭＢ１２５〜１２８が示してある。ＭＢ１２５，１２７も、ＭＢ１２６，１２８のように縮小する。画素を４分の１にする場合、ＭＢ１２６，１２８は、４×４の画素に縮小する。このように、画像１２１，１２３およびＭＢ１２５，１２７を、画像１２２，１２４およびＭＢ１２６，１２８に示すように縮小する。
【００１５】
図１６は、階層探索法を説明する図のその２である。図において図１５と同じものには同じ符号を付し、その詳細な説明を省略する。なお、図には、原画を縮小した画像１２４を、元の画像の大きさに戻した画像１３３（図１５の画像１２３に対応）が示してある。
【００１６】
階層探索法では、２段階に分けて動きベクトルを探索する。まず１段目では、縮小画において、動きベクトルを探索する。原画を縮小した画像１２４内には、ＭＢ１２８と、参照画のＭＢ１２６が示してあり、この場合、縮小画における動きベクトルは、図に示すように動きベクトル１３２となる。なお、探索範囲は、図に示すように探索範囲１３１とする。
【００１７】
２段目では、元の大きさの画像１３３で動きベクトルを探索する。このとき、縮小画で算出した動きベクトル１３２に基づいて、画像１３３における動きベクトルを算出する。例えば、縮小画で算出した動きベクトル１３２を、元の画像１３３に対応するように変換し、そのベクトルを中心に探索範囲１３５を決める。そして、この探索範囲１３５内で、最終的な動きベクトル１３４（２段目の動きベクトル）を算出することになる。この方法では、広い探索範囲と少ない演算量との両立が可能となる。
【００１８】
一方、１段目の縮小画においては、１６×１６のＭＢサイズも、上述したように４×４といったサイズに縮小されている。このため、ＭＢ単位で処理を行うと、パターンマッチング点の不足が顕著となり、誤探索が生じる割合が増える。そこで、複数のＭＢをひとまとめにして取り扱い、その単位でパターンマッチング処理をすることで、誤探索を減らす。例えば、３ＭＢ×３ＭＢの９ＭＢをひとまとめにして扱う（この単位をＱＭＢと呼ぶ）。
【００１９】
図１７は、ＱＭＢを利用した階層探索法の例を説明する図である。図にはＱＭＢ１４１（図中点線枠）と、１段目の探索範囲を示した探索範囲１４２（図中点線枠）とが示してある。ＱＭＢ１４１のパターンマッチングを探索範囲１４２の範囲で行い、最もパターンマッチングが一致したＱＭＢをＱＭＢ１４３とする。この場合、１段目の探索によって求まる動きベクトルは、動きベクトル１４４（図中点線矢印）となる。
【００２０】
２段目の動きベクトルの探索は、１段目で算出した動きベクトル１４４に基づいて行う。例えば、ＱＭＢ１４１のＭＢ１４５の動きベクトルを算出する場合、ＭＢ１４５から伸びた動きベクトル１４４（真ん中の点線矢印）を中心に、２段目の動きベクトルの探索を行う。この場合、探索範囲は、１段目の探索範囲１４２より小さく、探索範囲１４６となる。
【００２１】
ＭＢ１４５のパターンマッチングを探索範囲１４６の範囲で行い、最もパターンマッチングが一致したＭＢをＭＢ１４７（図中点線枠）とする。この場合、ＭＢ１４５の動きベクトル（２段目の動きベクトル）は、動きベクトル１４８（図中実線矢印）となる。すなわち、ＱＭＢ１４１内の、各ＭＢの２段目の動きベクトルは、１段目の動きベクトル１４４をオフセットベクトルとして算出する。
【００２２】
なお、図では、説明を簡単にするため１段目の動きベクトルの探索を、通常画サイズに拡大して説明しているが、実際は、１段目の動きベクトルの探索は、縮小画サイズで行う。すなわち、縮小画において、動きベクトル１４４を探索し、この動きベクトル１４４に基づいて、通常画における動きベクトル１４８を探索する。
【００２３】
ＱＭＢのサイズを大きくすれば、それだけ誤探索を減らすことができるが、動きベクトルの探索精度という点では弊害となる。これは、ＱＭＢ内で絵柄がバラバラに動く場合、それぞれの絵柄の動きに追従できなくなるからである。
【００２４】
図１８は、絵柄の動きが一定でない場合の階層探索法の例を説明する図である。図にはＱＭＢ１５１が示してある。ＱＭＢ１５１のパターンマッチングを１段目の探索範囲（図示していない）で行い、ＱＭＢ１５１のパターンマッチングしたＱＭＢをＱＭＢ１５２とする。そして、ＱＭＢ１５１の動きベクトルを動きベクトル１５３と算出したとする。なお、図１７と同様に図１８においても、１段目の動きベクトルの探索を、通常画サイズに拡大して説明しているが、実際は、１段目の動きベクトルの探索は、縮小画サイズで行う。
【００２５】
２段目の動きベクトルの探索は、１段目で算出した動きベクトル１５３を中心に行う。例えば、ＱＭＢ１５１のＭＢ１５４の動きベクトルを算出する場合、ＭＢ１５４から伸びた動きベクトル１５５（真ん中の点線矢印）を中心に、２段目の動きベクトルの探索を行う。
【００２６】
この場合、２段目の探索範囲は、１段目の探索範囲より小さく、例えば、探索範囲１５５となる。しかし、ＱＭＢ１５１内で絵柄がバラバラに動いた場合（例えば、ＱＭ１５１内の絵柄が動きベクトル１５３の方向に一様に移動していなかった場合）、ＭＢ１５４にパターンマッチングするＭＢは、例えば、探索範囲１５５外のＭＢ１５６となり、この場合、適正な動きベクトルは、動きベクトル１５７であって、適正に算出することができなくなる。
【００２７】
なお、仮動きベクトルで決定された位置を中心とし、この仮動きベクトルを検出する際に探索した範囲を含む範囲を原画像内で探索することにより、動きベクトルを検出する動きベクトル検出装置が提供されている（例えば、特許文献１参照）。
【特許文献１】特開平１１−２１５５０２号公報
【発明の開示】
【発明が解決しようとする課題】
【００２８】
このように、ＱＭＢのサイズを大きくとると、様々な方向に移動する絵柄が含まれるため、動きベクトルの探索精度が悪化するという問題点があった。
本発明はこのような点に鑑みてなされたものであり、動きベクトルの演算量の増加を抑えつつ、動きベクトルの探索精度を向上することができる動きベクトル探索装置および動きベクトル探索方法を提供することを目的とする。
【課題を解決するための手段】
【００２９】
本発明では上記問題を解決するために、図１に示すような画像間の動きベクトルを探索する動きベクトル探索装置１において、画像を縮小した縮小画において、仮動きベクトルの探索処理単位である複数のマクロブロックのブロック領域２ａ〜２ｄを重なるように定義するブロック領域定義手段１ａと、ブロック領域２ａ〜２ｄの仮動きベクトルを算出する仮動きベクトル算出手段１ｂと、ブロック領域２ａ〜２ｄの重なる領域３ａ〜３ｅの仮動きベクトルを、領域３ａ〜３ｅを含むそれぞれのブロック領域２ａ〜２ｄの仮動きベクトルを平均して算出する仮動きベクトル平均算出手段１ｃと、を有することを特徴とする動きベクトル探索装置１が提供される。
【００３０】
このような動きベクトル探索装置１によれば、ブロック領域２ａ〜２ｄを重なるように定義し、ブロック領域２ａ〜２ｄの重なる領域３ａ〜３ｅの仮動きベクトルを、領域３ａ〜３ｅを含むそれぞれのブロック領域２ａ〜２ｄの仮動きベクトルを平均して算出する。
【発明の効果】
【００３１】
本発明では、ブロック領域を重なるように定義し、ブロック領域の重なる領域の仮動きベクトルを、領域を含むそれぞれのブロック領域の仮動きベクトルを平均して算出するようにした。これによって、動きベクトルの演算量の増加を抑えつつ、動きベクトルの探索精度を向上することができる。
【発明を実施するための最良の形態】
【００３２】
以下、本発明の原理を図面を参照して詳細に説明する。
図１は、動きベクトル探索装置の概要を示した図である。図の（Ａ）には、動きベクトル探索装置１の構成が示してある。図の（Ｂ）には、動きベクトル探索装置１の各手段を説明するための画像が一部示してある。
【００３３】
図に示すように動きベクトル探索装置１は、ブロック領域定義手段１ａ、仮動きベクトル算出手段１ｂ、および仮動きベクトル平均算出手段１ｃを有している。
ブロック領域定義手段１ａは、画像を縮小した縮小画において、仮動きベクトルの探索処理単位である複数のＭＢのブロック領域を重なるように定義する。
【００３４】
例えば、図の（Ｂ）の１マスを縮小画におけるＭＢ（例えば、４×４画素）とし、３×３のＭＢを囲む点線枠をブロック領域２ａ〜２ｄとする。このとき、ブロック領域定義手段１ａは、ブロック領域２ａ〜２ｄを重なるように定義する。図の（Ｂ）では、ブロック領域２ａ〜２ｄは、領域３ａ〜３ｅで重なっている。
【００３５】
なお、図では、４つのブロック領域２ａ〜２ｄしか示してないが、ブロック領域定義手段１ａは、画像の左右上下方向において隣接するブロック領域が重なるようにブロック領域を定義する。
【００３６】
仮動きベクトル算出手段１ｂは、ブロック領域定義手段１ａが定義したブロック領域２ａ〜２ｄの仮動きベクトルを算出する。
仮動きベクトル平均算出手段１ｃは、ブロック領域２ａ〜２ｄの重なる領域３ａ〜３ｅの仮動きベクトルを、重なった領域３ａ〜３ｅを含むブロック領域２ａ〜２ｄの仮動きベクトルを平均して算出する。具体的には、重なった領域３ａ〜３ｅを含むブロック領域２ａ〜２ｄのそれぞれの仮動きベクトルを加算し、仮動きベクトルの加算した数で除算する。
【００３７】
例えば、図の（Ｂ）において、領域３ａは、２つのブロック領域２ａ，２ｂが重なっている。この場合、仮動きベクトル平均算出手段１ｃは、領域３ａの動きベクトルを、領域３ａを含んでいるブロック領域２ａ，２ｂの仮動きベクトルを平均して算出する。また、領域３ｂは、２つのブロック領域２ｂ，２ｄが重なっている。この場合、仮動きベクトル平均算出手段１ｃは、領域３ｂの動きベクトルを、領域３ｂを含んでいるブロック領域２ｂ，２ｄの仮動きベクトルを平均して算出する。また、領域３ｃは、２つのブロック領域２ａ，２ｃが重なっている。この場合、仮動きベクトル平均算出手段１ｃは、領域３ｃの動きベクトルを、領域３ｃを含んでいるブロック領域２ａ，２ｃの仮動きベクトルを平均して算出する。また、領域３ｄは、２つのブロック領域２ｃ，２ｄが重なっている。この場合、仮動きベクトル平均算出手段１ｃは、領域３ｄの動きベクトルを、領域３ｄを含んでいるブロック領域２ｃ，２ｄの仮動きベクトルを平均して算出する。また、領域３ｅは、４つのブロック領域２ａ〜２ｄが重なっている。この場合、仮動きベクトル平均算出手段１ｃは、領域３ｅの動きベクトルを、領域３ｅを含んでいるブロック領域２ａ〜２ｄの仮動きベクトルを平均して算出する。
【００３８】
なお、図の（Ａ）には示していないが、動きベクトル探索装置１は、仮動きベクトル算出手段１ｂによって算出した仮動きベクトルと、仮動きベクトル平均算出手段１ｃによって算出した仮動きベクトルとをオフセットベクトルとして、通常画での動きベクトルを算出する。
【００３９】
このように、動きベクトル探索装置１は、ブロック領域２ａ〜２ｄを重なるように定義し、領域３ａ〜３ｅが重なる部分は、各ブロック領域２ａ〜２ｄの平均の仮動きベクトルを算出するようにした。これにより、様々な方向に移動する絵柄が含まれていても、動きベクトルの演算量の増加を抑えつつ、動きベクトルの探索精度を向上することができる。すなわち、ブロック領域２ａ〜２ｄのサイズを大きくすることなく、領域３ａ〜３ｅが重なる部分の仮動きベクトルの平均を算出することにより、動きベクトルの演算量の増加を抑えつつ、動きベクトルの探索精度を向上することができる。
【００４０】
次に、本発明の実施の形態を図面を参照して詳細に説明する。
図２は、動きベクトルの探索を説明する図である。図には、３×３のＭＢのＱＭＢ１１，１２が示してある。動きベクトル検索装置は、階層探索法において、１段目の動きベクトルを算出するＱＭＢ１１，１２を、一部オーバラップするようにとる。図の例では、オーバラップ領域１３に示すように、ＱＭＢ１１の右端の３つのＭＢと、ＱＭＢ１２の左端の３つのＭＢとがオーバラップするように定義している。
【００４１】
動きベクトル探索装置は、所定の探索範囲内（図示していない）で、ＱＭＢ１１と参照画のＱＭＢとのパターンマッチング処理を行う。最もパターンマッチングしたＱＭＢを、例えば、図に示すようにＱＭＢ１４とする。この場合、ＱＭＢ１１の動きベクトルは、図に示すように動きベクトル１５となる。
【００４２】
同様に、動きベクトル探索装置は、所定の探索範囲内で、ＱＭＢ１２と参照画のＱＭＢとのパターンマッチング処理を行う。最もパターンマッチングしたＱＭＢを、例えば、図に示すようにＱＭＢ１６とする。この場合、ＱＭＢ１２の動きベクトルは、図に示すように動きベクトル１７となる。
【００４３】
以下同様に、動きベクトル探索装置は、画像の横方向および縦方向において、一部がオーバラップするＱＭＢを全画像内で定義し、各ＱＭＢにおける１段目の動きベクトルを算出する。
【００４４】
また、動きベクトル探索装置は、オーバラップ領域１３の１段目の動きベクトルを算出する。具体的には、動きベクトル探索装置は、ＭＢがオーバラップしているＱＭＢ１１，１２の１段目の動きベクトルを平均し、オーバラップ領域１３の１段目の動きベクトルとする。
【００４５】
図の例では、オーバラップ領域１３の動きベクトルは、動きベクトル１５と動きベクトル１７とを加算して２で除算し、動きベクトル１９とする。なお、動きベクトルの平均は、動きベクトルを加算し、加算した動きベクトルの個数で除算するが、以下では、単に動きベクトルを加算するとして説明する。
【００４６】
以下同様に、動きベクトル探索装置は、画像の横方向および縦方向において、ＱＭＢのオーバラップする領域の１段目の動きベクトルを算出する。
次いで、動きベクトル探索装置は、１段目で算出した各ＱＭＢの動きベクトルに基づいて、２段目の動きベクトルを算出する。例えば、ＱＭＢ１１内のＭＢ１８において、２段目の動きベクトルを算出する場合、１段目で算出したＱＭＢ１１の動きベクトル１５（動きベクトル１５の右側の動きベクトル）を中心に（オフセットベクトルとして）、探索範囲（図示していない）を決定する。そして、オフセットベクトルを中心とした探索範囲内で２段目のパターンマッチング処理を行い、２段目の動きベクトルを算出する。
【００４７】
同様に、動きベクトル探索装置は、ＱＭＢ１１，１２がオーバラップしたオーバラップ領域１３の２段目の動きベクトルを算出する。すなわち、動きベクトル探索装置は、動きベクトル１９をオフセットベクトルとして、オーバラップ領域１３の２段目の動きベクトルを算出する。例えば、図に示すように動きベクトル１９を中心とした探索範囲２０を決定し、この範囲内でパターンマッチング処理を行う。
【００４８】
なお、オーバラップ領域１３のＭＢ２１にパターンマッチングするＭＢをＭＢ２２とすると、ＭＢ２１の２段目の動きベクトルは、動きベクトル１９にベクトル２３を加算したベクトルとなる。
【００４９】
図では、説明を簡単にするため１段目の動きベクトルの探索を、通常画サイズに拡大して説明しているが、実際は、１段目の動きベクトルの探索は、縮小画サイズで行う。すなわち、縮小画において、１段目の動きベクトル１５，１７，１９を探索し、この動きベクトル１５，１７，１９に基づいて、通常画における２段目の動きベクトルを探索する。
【００５０】
ここで、ＱＭＢ１１内のＭＢが、周囲のＱＭＢ（例えば、ＱＭＢ１２）の動きの影響によってバラバラの動きをしていた場合（ＱＭＢ１１のＭＢが全体である方向に動きが定まっていない場合）、図に示すようにＭＢ２１のパターンマッチングするＭＢ２２は、ＱＭＢ１１の動きベクトル１５を中心とした探索範囲の範囲内に収まらない。しかし、ＭＢ２１の動きに影響を与えている隣のＱＭＢ１２を、ＱＭＢ１１にオーバラップするように定義し、ＱＭＢ１１とＱＭＢ１２の動きベクトルを加算して、オーバラップ領域１３の１段目の動きベクトル１９を算出する。そして、この動きベクトル１９を中心に、探索範囲２０を設け、ＭＢ２１のパターンマッチング処理を行い、２段目の動きベクトルを算出する。これにより、ＭＢ２１の適正な動きベクトルを算出することができる。
【００５１】
次に、動きベクトルの探索について具体的に説明する。
図３は、縮小画のＳＭＢ配列と通常画のＭＢ配列との対応関係を示した図である。処理対象動画の画像として、７２０×４８０画素サイズのプログレッシブ映像を例とする。動きベクトル探索装置は、例えば、この画像を４：１で画素を間引き、１８０×１３２画素サイズの縮小画を生成する。この際の縮小画の生成においては、単に画素を間引くのではなく、折り返しノイズを防止するため、空間フィルタをかけてから画素を間引くのが一般的である。
【００５２】
縮小画における４×４画素の矩形ブロックが、７２０×４８０画素サイズの通常画の１ＭＢ（１６×１６）に相当する。従って、１８０×１３２画素サイズの縮小画における１２×１２画素のブロック（ここでは、ＳＭＢと呼ぶことにする）が、通常画の４８×４８画素ブロック、つまり、３ＭＢ×３ＭＢのＱＭＢに相当する。
【００５３】
図に示す太枠３１は、ＳＭＢの単位を示している。各ＳＭＢを太字の［ｘ，ｙ］で指し示す。ｘは横方向、ｙは縦方向を示し、図の縮小画の最も左上にあるＳＭＢを［０，０］とする。
【００５４】
縮小画の横方向の画素数は１８０であり、縦方向の画素数は１３２である。ＳＭＢの横方向の画素数は、上述したように１２×１２画素である。従って、ｘ、ｙの最大値は、それぞれ１４と１０となり、右下のＳＭＢは、［１４，１０］となる。
【００５５】
図に示す細枠３２は、通常画における１６×１６画素のＭＢの単位を示している。各ＭＢを細字の［ｖ，ｗ］で指し示す。ｖは横方向、ｗは縦方向を示し、図の縮小画の最も左上にあるＭＢを［０，０］とする。ＭＢの画素は、１６×１６なので、ｖ、ｗの最大値は、それぞれ４４，３２となり、右下のＭＢは、［４４，３２］となる。
【００５６】
なお、９個の通常画のＭＢの画像と、それに対応する縮小画のＳＭＢの画像は、実際大きさが異なるが（縮小画の大きさは通常画の１／４）、図３はあくまでも縮小画のＳＭＢと通常画のＭＢとの対応関係を示したものである。従って、縮小画のＳＭＢ［０，０］の画像は、通常画におけるＭＢ［０，０］〜ＭＢ［２，２］が対応し、縮小画のＳＭＢ［１，０］の画像は、通常画におけるＭＢ［３，０］〜ＭＢ［５，２］が対応する。以下同様に、縮小画のＳＭＢ［１４，１０］の画像は、通常画におけるＭＢ［４２，３０］〜ＭＢ［４４，３２］が対応する。
【００５７】
動きベクトル探索装置は、縮小画の原画と縮小画の参照画においてＳＭＢ単位で、１段目の動きベクトルの探索を行う。そして、その結果をオフセットベクトルとして、通常画における原画と参照画の２段目の動きベクトルの探索を行う。
【００５８】
従来では、図３に示すように、各ＳＭＢはオーバラップしないように定義される。動きベクトル探索装置は、パターンマッチング処理に基づいて、オーバラップしない各ＳＭＢ［０，０］，ＳＭＢ［１，０］，…，ＳＭＢ［１４，１０］の１段目の動きベクトルを算出する。なお、ＳＭＢ［０，０］，ＳＭＢ［１，０］，…，ＳＭＢ［１４，１０］の１段目の動きベクトルを、Ｖ１［０，０］，Ｖ１［１，０］，…，Ｖ１［１４，１０］とする。
【００５９】
次いで、動きベクトル探索装置は、Ｖ１［０，０］，Ｖ１［１，０］，…，Ｖ１［１４，１０］をオフセットベクトルとして、通常画におけるＭＢ［０，０］〜ＭＢ［４４，３２］の２段目の動きベクトルを算出する。通常画における２段目の動きベクトルは、通常画のサイズが４５×３３ＭＢ分なので、Ｖ２［ｍ，ｎ］（ｍ＝０〜４４，ｎ＝０〜３２）用意する。なお、Ｖ２［０，０］〜Ｖ２［４４，３２］のそれぞれは、図３のＭＢ［０，０］〜ＭＢ［４４，３２］のそれぞれと対応する。
【００６０】
動きベクトル探索装置は、図３のＳＭＢ［０，０］内の９個のＭＢ［０，０］〜ＭＢ［２，２］に対応するＶ２［０，０］〜Ｖ２［２，２］に、ＳＭＢ［０，０］のＶ１［０，０］を格納する。また、ＳＭＢ［１，０］内の９個のＭＢ［３，０］〜ＭＢ［５，２］に対応するＶ２［３，０］〜Ｖ２［５，２］に、ＳＭＢ［１，０］のＶ１［１，０］を格納する。以下同様にして、動きベクトル探索装置は、各Ｖ２に、対応するＳＭＢのＶ１を格納していく。そして、動きベクトル探索装置は、Ｖ２に格納されたＶ１をオフセットベクトルとして、２段目の動きベクトルＶ２を算出し、その結果を再びＶ２に格納する。以上の処理をＣ言語で説明する。
【００６１】
図４は、図３の処理をＣ言語を用いて説明する図のその１である。図に示すように１段目の動きベクトルの探索結果を格納する配列として、ｘ成分とｙ成分の２次元の要素を持つ構造体の型（Ｖｅｃｔｏｒ）で、ベクトル配列変数Ｖ１［１５］［１１］を定義する。これは、Ｖ１［ｘ１］［ｙ１］とした場合、ｘ１＝０〜１４、ｙ１＝０〜１０のサイズの領域を持つことになる。
【００６２】
動きベクトル探索装置は、図３に示した各ＳＭＢの動きベクトル（１段目の動きベクトル）を算出し、各ＳＭＢの動きベクトルを、Ｖ１［０］［０］〜Ｖ１［１４］［１０］に格納する。なお、Ｖ１［０］［０］〜Ｖ１［１４］［１０］は、図３で説明したＶ１［０，０］〜Ｖ１［１４，１０］に対応する。
【００６３】
図５は、図３の処理をＣ言語を用いて説明する図のその２である。上述したように、通常画のサイズは７２０×５２８画素であるので、２段目の動きベクトルを格納する領域として、４５×３３ＭＢ分用意する必要がある。つまり、配列としてＶ２［ｍ］［ｎ］とすると、ｍ＝０〜４４、ｎ＝０〜３２のサイズの領域を用意することになる。
【００６４】
２段目の動きベクトルは、１段目の動きベクトルをオフセットベクトルとして算出する。そのため、動きベクトル探索装置は、Ｖ２［０］［０］〜Ｖ２［４４］［３２］に、対応する１段目の動きベクトルＶ１［０］［９］〜Ｖ１［１４］［１０］を格納する。なお、Ｖ２［０］［０］〜Ｖ２［４４］［３２］は、図３で説明したＶ２［０，０］〜Ｖ２［４４，３２］に対応する。
【００６５】
例えば、図３のＳＭＢ［０，０］内の９個のＭＢ［０，０］〜ＭＢ［２，２］に対応するＶ２［０］［０］〜Ｖ２［２］［２］には、ＳＭＢ［０，０］の動きベクトルＶ１［０］［０］を格納する。同様に、各ＳＭＢ内の９個のＭＢに対応するＶ２に、各ＳＭＢのＶ１を格納する。図５には、この処理の内容が示してある。
【００６６】
このように、従来では、Ｖ１［０］［０］〜Ｖ１［１４］［１０］に各ＳＭＢに対応する１段目の動きベクトルを格納する。そして、Ｖ２［０］［０］〜Ｖ２［４４］［３２］に、対応するＶ１［０］［０］〜Ｖ１［１４］［１０］の動きベクトルをオフセットベクトルとして格納する。
【００６７】
上記の処理を、フローチャートを用いて説明する。
図６は、ベクトル探索の処理を示したフローチャートである。
［ステップＳ１］動きベクトル探索装置は、各ＳＭＢにおける１段目の動きベクトルの算出を行う。動きベクトル探索装置は、算出した１段目の動きベクトルを、Ｖ１［ｘ１］［ｙ１］（ｘ１＝０…１４，ｙ１＝０…１０）の配列に格納する。
【００６８】
［ステップＳ２］動きベクトル探索装置は、Ｖ２［ｘ２］［ｙ２］（ｘ２＝０…４４，ｙ２＝０…３２）の配列に、ステップＳ１で求めた対応するＶ１の値を格納する。この格納方法は、図５で説明した処理方法に従う。
【００６９】
［ステップＳ３］動きベクトル探索装置は、Ｖ２に格納されたＶ１の値をオフセットベクトルとして、通常画のＭＢにおける２段目の動きベクトルを算出し、算出結果をＶ２に格納する。
【００７０】
次に、図３で示したＳＭＢがオーバラップする場合について説明する。
図７は、縮小画のＳＭＢがオーバラップする場合の縮小画のＳＭＢ配列と通常画のＭＢ配列との対応関係を示した図である。図に示す太字の［ｘ，ｙ］、細字の［ｖ，ｗ］は、図３で説明したようにＳＭＢおよびＭＢを指し示す。
【００７１】
図７では、隣接するＳＭＢを４画素分オーバラップさせるように定義する。図に示す太枠４１、点線の太枠４２、太枠の一点鎖線４３、太枠の二点鎖線４４は、ＳＭＢの単位を示している。
【００７２】
太枠４２のＳＭＢは、太枠４１のＳＭＢの右端に４画素分、オーバラップするように定義されている。これを通常画で考えると（ＳＭＢを４倍すると）、ＭＢ［２，０］，ＭＢ［２，１］，［２，２］の部分がオーバラップしていることになる。
【００７３】
太枠４３のＳＭＢは、太枠４１のＳＭＢの下側に４画素分、オーバラップするように定義されている。これを通常画で考えると、ＭＢ［０，２］，ＭＢ［１，２］，ＭＢ［２，２］の部分がオーバラップしていることになる。
【００７４】
動きベクトル探索装置は、縮小画の全領域において、上記のように隣接するＳＭＢをオーバラップするように定義する。例えば、図７において、ＭＢ［ｖ，ｗ］のｖが偶数の部分（４４を除く）は、隣接するＳＭＢ同士がオーバラップしている。また、ｗの偶数の部分（３２を除く）は、隣接するＳＭＢ同士がオーバラップしている。
【００７５】
なお、横方向のＳＭＢの数は、｛（１８０−１２）／８｝＋１＝２２個、縦方向のＳＭＢの数は、｛（１３２−１２）／８｝＋１＝１６個となる。従って、図７では、ＳＭＢは、ＳＭＢ［０，０］からＳＭＢ［２１，１５］まで存在することになる。
【００７６】
動きベクトル探索装置は、図７に示すようにオーバラップするように定義した各ＳＭＢにおいて、１段目の動きベクトルを算出する。従って、ＳＭＢ［０，０］〜ＳＭＢ［２１，１５］の１段目の動きベクトルは、Ｖ１［０，０］〜Ｖ１［２１，１５］に格納される。
【００７７】
次いで、動きベクトル探索装置は、１段目で算出した動きベクトルをオフセットベクトルにして、通常画における２段目の動きベクトルを算出する。このとき、動きベクトル探索装置は、２段目の動きベクトルが格納されるＶ２［０，０］〜Ｖ２［４４，３２］に、対応する各ＳＭＢの動きベクトルをオフセットベクトルとして格納する。ただし、動きベクトル探索装置は、ＳＭＢがオーバラップする部分においては、オーバラップする部分を含むＳＭＢの動きベクトルを加算して格納する。
【００７８】
例えば、図７のＭＢ［０，０］，ＭＢ［１，０］，ＭＢ［０，１］，ＭＢ［１，１］は、ＳＭＢがオーバラップしていない。従って、ＭＢ［０，０］，ＭＢ［１，０］，ＭＢ［０，１］，ＭＢ［１，１］に対応するＶ２［０，０］，Ｖ２［１，０］，Ｖ２［０，１］，Ｖ２［１，１］には、ＳＭＢ［０，０］の動きベクトルがそのまま格納される。
【００７９】
また、ＭＢ［２，０］，ＭＢ［２，１］は、太枠４１，４２のＳＭＢがオーバラップしている。従って、ＭＢ［２，０］，ＭＢ［２，１］に対応するＶ２［２，０］，Ｖ２［２，１］には、太枠４１，４２のＳＭＢの動きベクトルを加算した値が格納される。
【００８０】
また、ＭＢ［２，２］は、太枠４１〜４４のＳＭＢがオーバラップしている。従って、ＭＢ［２，２］に対応するＶ２［２，２］には、太枠４１〜４４のＳＭＢの動きベクトルを加算した値が格納される。
【００８１】
このように、ＳＭＢがオーバラップしていないＭＢに対応する動きベクトルＶ２には、対応するＳＭＢの動きベクトルがそのまま格納される。また、ＳＭＢがオーバラップしている部分の動きベクトルＶ２には、オーバラップしている各ＳＭＢの動きベクトルが加算されて格納される。そして、動きベクトル探索装置は、Ｖ２に格納されている動きベクトルをオフセットベクトルとして、各ＭＢの２段目の動きベクトルを算出する。以上の処理をＣ言語で説明する。
【００８２】
図８は、図７の処理をＣ言語を用いて説明する図のその１である。配列Ｖ１［０］［０］〜Ｖ１［２１］［１５］には、図７に示すＳＭＢ［０，０］〜ＳＭＢ［２１，１５］の１段目の動きベクトルが格納されているとする。
【００８３】
動きベクトル探索装置は、図８の処理に示すように、ＳＭＢのオーバラップを考慮せず、Ｖ１［０］［０］〜Ｖ１［２１］［１５］の配列に格納されている動きベクトルを、対応するベクトルＶ２の配列にコピーする。
【００８４】
図９は、図７の処理をＣ言語を用いて説明する図のその２である。次に、動きベクトル探索装置は、図のＸＹ方向平均の処理に示すように、４つのＳＭＢがオーバラップするＭＢのベクトルＶ２に、オーバラップしているＳＭＢのＶ１ベクトルを加算して格納する。
【００８５】
例えば、図７のＭＢ［２，２］，［４，２］は、４つのＳＭＢが重なる。従って、Ｖ２［２］［２］には、Ｖ１［０］［０］，Ｖ１［１］［０］，Ｖ１［０］［１］，Ｖ１［１］［１］のベクトルを加算した値が格納される。また、Ｖ２［４］［２］には、Ｖ１［１］［０］，Ｖ１［２］［０］，Ｖ１［１］［１］，Ｖ１［２］［１］のベクトルを加算した値が格納される。なお、４つのＳＭＢのベクトルの平均を算出するため、加算したＶ１のベクトルを４で割る。
【００８６】
次に、動きベクトル探索装置は、図９のＹ方向だけ平均Ａに示す処理を行う。この処理は、ＭＢ［ｖ，ｗ］のｖが０，１の縦方向において、ＳＭＢがオーバラップしている部分のベクトルＶ２に、オーバラップしているＳＭＢのベクトルＶ１を加算して格納する。
【００８７】
例えば、Ｖ２［０，２］，Ｖ２［１，２］，…，Ｖ２［０，３０］，［１，３０］に、オーバラップしているＳＭＢの動きベクトル（Ｖ１）が加算して格納される。なお、平均をとるため、加算したＶ１のベクトルを２で割る。
【００８８】
次に、動きベクトル探索装置は、図９のＹ方向だけ平均Ｂに示す処理を行う。この処理は、ＭＢ［ｖ，ｗ］のｖが４３，４４の縦方向において、ＳＭＢがオーバラップしている部分のベクトルＶ２に、オーバラップしているＳＭＢのベクトルＶ１を加算して格納する。
【００８９】
例えば、Ｖ２［４３，２］，Ｖ２［４４，２］，…，Ｖ２［４３，３０］，［４３，３０］に、オーバラップしているＳＭＢの動きベクトルが加算して格納される。なお、平均をとるため、加算したＶ１のベクトルを２で割る。
【００９０】
次に、動きベクトル探索装置は、図９のＸ方向だけ平均Ｃに示す処理を行う。この処理は、ＭＢ［ｖ，ｗ］のｗが０，１の横方向において、ＳＭＢがオーバラップしている部分のベクトルＶ２に、オーバラップしているＳＭＢのベクトルＶ１を加算して格納する。
【００９１】
例えば、Ｖ２［２，０］，Ｖ２［２，１］，Ｖ２［４，０］，Ｖ２［４，１］，…，Ｖ２［４２，０］，［４２，１］に、オーバラップしているＳＭＢの動きベクトルが加算して格納される。なお、平均をとるため、加算したＶ１のベクトルを２で割る。
【００９２】
次に、動きベクトル探索装置は、図９のＸ方向だけ平均Ｄに示す処理を行う。この処理は、ＭＢ［ｖ，ｗ］のｗが３１，３２の横方向において、ＳＭＢがオーバラップしている部分のベクトルＶ２に、オーバラップしているＳＭＢのベクトルＶ１を加算して格納する。
【００９３】
例えば、Ｖ２［２，３１］，Ｖ２［２，３２］，…，Ｖ２［４２，３１］，［４２，３２］に、オーバラップしているＳＭＢの動きベクトルが加算して格納される。なお、平均をとるため、加算したＶ１のベクトルを２で割る。
【００９４】
次に、動きベクトル探索装置は、図９のＸ方向だけ平均Ｅ、Ｙ方向だけ平均Ｅに示す処理を行う。この処理は、上記のベクトルＶ２を除いた、ＳＭＢがオーバラップするＶ２に、ベクトルＶ１を加算して格納する。
【００９５】
例えば、Ｖ２［３，２］，Ｖ２［５，２］，…に、オーバラップしているＳＭＢの動きベクトルが加算して格納される。なお、平均をとるため、加算したＶ１のベクトルを２で割る。
【００９６】
すなわち、ＳＭＢがオーバラップしていない部分は、図８の処理に従ってベクトルＶ２に１段目の動きベクトルが格納される。ＳＭＢがオーバラップする部分については、図９の処理に従ってベクトルＶ２に１段目の動きベクトルが格納される。
【００９７】
上記の処理を、フローチャートを用いて説明する。
図１０は、ベクトル探索の処理を示したフローチャートである。
［ステップＳ１１］動きベクトル探索装置は、縮小画において、隣接するＳＭＢが一部オーバラップするように定義する。
【００９８】
［ステップＳ１２］動きベクトル探索装置は、各ＳＭＢにおける１段目の動きベクトルの算出を行う。動きベクトル探索装置は、算出した１段目の動きベクトルを、Ｖ１［ｘ１］［ｙ１］（ｘ１＝０…２１，ｙ１＝０…１５）の配列に格納する。
【００９９】
［ステップＳ１３］動きベクトル探索装置は、Ｖ２［ｘ２］［ｙ２］（ｘ２＝０…４４，ｙ２＝０…３２）の配列に、ステップＳ１２で求めた対応するＶ１の値を格納する。この格納方法は、図８で説明した処理方法に従う。すなわち、オーバラップを考慮せずに、Ｖ２に対応するＶ１の値を格納する。
【０１００】
［ステップＳ１４］動きベクトル探索装置は、ＳＭＢがオーバラップしている部分に対応するＶ２に、オーバラップしているＳＭＢのＶ１の値を加算して格納する。この格納方法は、図９で説明した処理方法に従う。
【０１０１】
［ステップＳ１５］動きベクトル探索装置は、Ｖ２に格納されたＶ１の値をオフセットベクトルとして、通常画のＭＢにおける２段目の動きベクトルを算出し、算出結果をＶ２に格納する。
【０１０２】
ところで、４つのベクトルの平均を算出する場合、次の式（１ａ），（１ｂ）によって算出することもできる。なお、式（１ａ），（１ｂ）は、図７のＶ２［２］［２］（Ｖ２［２，２］）を算出する例を示している。
【０１０３】
V2[2][2].x=(V1[0][0].x+V1[1][0].x+V1[0][1].x+V1[1][1].x)/4  …（１ａ）
V2[2][2].y=(V1[0][0].y+V1[1][0].y+V1[0][1].y+V1[1][1].y)/4  …（１ｂ）
また、２つのベクトルの平均を算出する場合、次の式（２ａ），（２ｂ）によって算出することもできる。なお、式（２ａ），（２ｂ）は、図７のＶ２［２］［０］（Ｖ２［２，０］）を算出する例を示している。
【０１０４】
V2[2][0].x=(V1[0][0].x+V1[1][0].x)/2  …（２ａ）
V2[2][0].y=(V1[0][0].y+V1[1][0].y)/2  …（２ｂ）
上記の平均算出処理において、ＳＭＢの検索精度に合わせて重み付けをすることにより、２段目の動きベクトルの検出精度が向上する。ＳＭＢの検出精度は、ＳＭＢの動きベクトルを算出するときのコスト値（主にＳＡＤ値）で判定できる。例えば、ＳＡＤ値が小さいほど、そのＳＡＤ値に対応するＳＭＢの動きベクトルの重み付けを重くし、ＳＡＤ値が大きいほど、そのＳＡＤ値に対応するＳＭＢの動きベクトルの重み付けを軽くする。
【０１０５】
例えば、図７のＳＭＢ［０，０］，ＳＭＢ［１，０］，ＳＭＢ［０，１］，ＳＭＢ［１，１］のＳＡＤ値を、それぞれａ，ｂ，ｃ，ｄであるとする。このとき、４つのベクトル平均を算出するＶ２［２］［２］．ｘに格納されるオフセットベクトルは、次の式（３）で算出することができる。
【０１０６】
V2[2][2].x=V1[0][0].*(b+c+d)/(a+b+c+d)
+V1[1][0].*(a+c+d)/(a+b+c+d)
+V1[0][1].*(a+b+d)/(a+b+c+d)
+V1[1][1].*(a+b+c)/(a+b+c+d)  …（３）
また、２つのベクトル平均を算出するＶ２［２］［０］．ｘに格納されるオフセットベクトルは、次の式（４）で算出することができる。
【０１０７】
V2[2][0].x=V1[0][0].x*(b)/(a+b)
+V1[1][0].x*(a)/(a+b)  …（４）
すなわち、式（３），（４）の例に示すように、ＳＡＤ値が小さいほど、そのＳＡＤ値に対応するＳＭＢのＶ１の重み付けは重くなり、ＳＡＤ値が大きいほど、そのＳＡＤ値に対応するＳＭＢのＶ１の重み付けは軽くなっている。
【０１０８】
次に、動きベクトル探索装置の機能について説明する。
図１１は、動きベクトル探索装置の機能ブロック図である。図に示すように動きベクトル探索装置５０は、ブロック領域定義部５１、１段目探索処理部５２、記憶部５３、および２段目探索処理部５４を有している。動きベクトル探索装置５０は、例えば、画像処理専用のＬＳＩやマイクロコンピュータなどの半導体装置によって実現される。
【０１０９】
ブロック領域定義部５１は、縮小画においてＳＭＢを定義する。このとき、ブロック領域定義部５１は、上下左右で隣接するＳＭＢがオーバラップするように定義する。
１段目探索処理部５２は、ブロック領域定義部５１が定義した各ＳＭＢの１段目の動きベクトルを算出する。１段目探索処理部５２は、算出した１段目の動きベクトルを、Ｖ１［ｘ１］［ｙ１］（ｘ１＝０…１４，ｙ１＝０…１０）の配列に格納する。Ｖ１［ｘ１］［ｙ１］の配列は、記憶部５３に確保される。
【０１１０】
１段目探索処理部５２は、２段目の動きベクトルの算出のために、算出した１段目の動きベクトルを、対応するＶ２［ｘ２］［ｙ２］（ｘ２＝０…４４，ｙ２＝０…３２）の配列に格納する。Ｖ２［ｘ２］［ｙ２］（ｘ２＝０…４４，ｙ２＝０…３２）の配列は、記憶部５３に確保される。なお、１段目探索処理部５２は、ＳＭＢがオーバラップしている部分については、その部分の１段目の動きベクトルを平均してＶ２［ｘ２］［ｙ２］の配列に格納する。
【０１１１】
２段目探索処理部５４は、Ｖ２［ｘ２］［ｙ２］の配列に格納された１段目の動きベクトルをオフセットベクトルとして、２段目の動きベクトルを算出する。
このように、ＳＭＢをオーバラップするように定義し、オーバラップする部分は、各ＳＭＢの１段目の動きベクトルを平均して算出するようにした。これにより、様々な方向に移動する絵柄が含まれていても、動きベクトルの演算量の増加を抑えつつ、動きベクトルの探索精度を向上することができる。
【０１１２】
（付記１）  画像間の動きベクトルを探索する動きベクトル探索装置において、
前記画像を縮小した縮小画において、仮動きベクトルの探索処理単位である複数のマクロブロックのブロック領域を重なるように定義するブロック領域定義手段と、
前記ブロック領域の前記仮動きベクトルを算出する仮動きベクトル算出手段と、
前記ブロック領域の重なる領域の前記仮動きベクトルを、前記領域を含むそれぞれの前記ブロック領域の前記仮動きベクトルを平均して算出する仮動きベクトル平均算出手段と、
を有することを特徴とする動きベクトル探索装置。
【０１１３】
（付記２）  前記ブロック領域定義手段は、上下左右隣接する前記ブロック領域を重なるように定義することを特徴とする付記１記載の動きベクトル探索装置。
（付記３）  前記動きベクトル平均算出手段は、前記領域を含む前記ブロック領域の全ての前記仮動きベクトルを加算し、加算した前記仮動きベクトルの個数で除算することを特徴とする付記１記載の動きベクトル探索装置。
【０１１４】
（付記４）  前記動きベクトル平均算出手段は、前記仮動きベクトルの算出過程で得られたＳＡＤ値に基づいて前記仮動きベクトルに重み付けをし、前記仮動きベクトルの平均を算出することを特徴とする付記１記載の動きベクトル探索装置。
【０１１５】
（付記５）  前記動きベクトル平均算出手段は、前記領域を含む前記ブロック領域の各前記仮動きベクトルにおいて、前記仮動きベクトルを持つ前記ブロック領域以外のＳＡＤ値を加算して乗算し、前記領域を含む前記ブロック領域の全ての前記ＳＡＤ値を加算して除算し、各前記仮動きベクトルを加算することを特徴とする付記１記載の動きベクトル探索装置。
【０１１６】
（付記６）  前記仮動きベクトル算出手段で算出された前記仮動きベクトルおよび前記仮動きベクトル平均算出手段で算出された前記仮動きベクトルをオフセットベクトルとして、前記動きベクトルを算出する動きベクトル算出手段をさらに有することを特徴とする付記１記載の動きベクトル探索装置。
【０１１７】
（付記７）  画像間の動きベクトルを探索する動きベクトル探索方法において、
前記画像を縮小した縮小画において、仮動きベクトルの探索処理単位である複数のマクロブロックのブロック領域を重なるように定義し、
前記ブロック領域の前記仮動きベクトルを算出し、
前記ブロック領域の重なる領域の前記仮動きベクトルを、前記領域を含むそれぞれの前記ブロック領域の前記仮動きベクトルを平均して算出する、
ことを特徴とする動きベクトル探索方法。
【図面の簡単な説明】
【０１１８】
【図１】動きベクトル探索装置の概要を示した図である。
【図２】動きベクトルの探索を説明する図である。
【図３】縮小画のＳＭＢ配列と通常画のＭＢ配列との対応関係を示した図である。
【図４】図３の処理をＣ言語を用いて説明する図のその１である。
【図５】図３の処理をＣ言語を用いて説明する図のその２である。
【図６】ベクトル探索の処理を示したフローチャートである。
【図７】縮小画のＳＭＢがオーバラップする場合の縮小画のＳＭＢ配列と通常画のＭＢ配列との対応関係を示した図である。
【図８】図７の処理をＣ言語を用いて説明する図のその１である。
【図９】図７の処理をＣ言語を用いて説明する図のその２である。
【図１０】ベクトル探索の処理を示したフローチャートである。
【図１１】動きベクトル探索装置の機能ブロック図である。
【図１２】ＭＢと動きベクトルを説明する図である。
【図１３】探索範囲を説明する図のその１である。
【図１４】探索範囲を説明する図のその２である。
【図１５】階層探索法を説明する図のその１である。
【図１６】階層探索法を説明する図のその２である。
【図１７】ＱＭＢを利用した階層探索法の例を説明する図である。
【図１８】絵柄の動きが一定でない場合の階層探索法の例を説明する図である。
【符号の説明】
【０１１９】
１  動きベクトル探索装置
１ａ  ブロック領域定義手段
１ｂ  仮動きベクトル算出手段
１ｃ  仮動きベクトル平均算出手段
２ａ〜２ｄ  ブロック領域
３ａ〜３ｅ  領域
【図１】
2008061162.tif 000003
【図２】
2008061162.tif 000004
【図３】
2008061162.tif 000005
【図４】
2008061162.tif 000006
【図５】
2008061162.tif 000007
【図６】
2008061162.tif 000008
【図７】
2008061162.tif 000009
【図８】
2008061162.tif 000010
【図９】
2008061162.tif 000011
【図１０】
2008061162.tif 000012
【図１１】
2008061162.tif 000013
【図１２】
2008061162.tif 000014
【図１３】
2008061162.tif 000015
【図１４】
2008061162.tif 000016
【図１５】
2008061162.tif 000017
【図１６】
2008061162.tif 000018
【図１７】
2008061162.tif 000019
【図１８】
2008061162.tif 000020