(57)【要約】【課題】多段マッチング法を用いて動きベクトルを検出する際、２ｎｄステップ以降の探索でも、探索範囲を保ちつつ、画像データの転送量を削減することができるようにする。【解決手段】フレームメモリ１からマクロブロック選択部５により選択されたマクロブロック群の１ｓｔステップ動きベクトルＶ１が指し示す領域ＳＡの合成領域ＣＡの画像データを一度に読み込み、その合成領域ＣＡの画像データから各マクロブロックの２ｎｄステップ動きベクトルＶ２の探索領域を設定して、各マクロブロックの２ｎｄステップ動きベクトルＶ２を探索する。【選択図】図１
2010122975.tif 000002
【特許請求の範囲】
【請求項１】
所定のサイズに分割されている動画像の各ブロックの画像データを記憶する画像データ記憶手段と、上記画像データ記憶手段から複数のブロックの画像データを読み込み、上記複数のブロックの第１段の動きベクトルを探索する第１の動きベクトル探索手段と、上記第１の動きベクトル探索手段により第１段の動きベクトルが探索された複数のブロックの中から、第１段の動きベクトルが指し示す領域間の距離が予め設定された閾値より短い同士のブロックを選択するブロック選択手段と、上記画像データ記憶手段から上記ブロック選択手段により選択されたブロック群の第１段の動きベクトルが指し示す領域の合成領域の画像データを一度に読み込み、上記合成領域の画像データから各ブロックの第２段の動きベクトルの探索領域を設定して、各ブロックの第２段の動きベクトルを探索する第２の動きベクトル探索手段と、上記ブロック選択手段により選択された各ブロックの第１段の動きベクトルと上記第２の動きベクトル探索手段により探索された第２段の動きベクトルを合成する動きベクトル合成手段とを備えた動きベクトル検出装置。
【請求項２】
ブロック選択手段、第２の動きベクトル探索手段及び動きベクトル合成手段の組がＮ段（Ｎは２以上の整数）縦続に接続されており、ｎ段目（ｎ＝２，・・・，Ｎ）のブロック選択手段が、ｎ−１段目の第２の動きベクトル探索手段により第ｎ−１段の動きベクトルが探索された複数のブロックの中から、第ｎ−１段の動きベクトルが指し示す領域間の距離が予め設定された閾値より短い同士のブロックを選択し、ｎ段目の第２の動きベクトル探索手段が、画像データ記憶手段からｎ段目のブロック選択手段により選択されたブロック群の第ｎ−１段の動きベクトルが指し示す領域の合成領域の画像データを一度に読み込み、上記合成領域の画像データから各ブロックの第ｎ段の動きベクトルの探索領域を設定して、各ブロックの第ｎ段の動きベクトルを探索することを特徴とする請求項１記載の動きベクトル検出装置。
【請求項３】
第２の動きベクトル探索手段により第２段の動きベクトルが探索されるブロックの順序を決定する順序決定手段を設け、上記順序決定手段は、ブロック選択手段により選択されたブロック群の順序が連続するように決定することを特徴とする請求項１または請求項２記載の動きベクトル検出装置。
【請求項４】
第１の動きベクトル探索手段が探索する第１段の動きベクトルの個数を２個に限定することを特徴とする請求項１または請求項２記載の動きベクトル検出装置。
【請求項５】
第１の動きベクトル探索手段が、所定のサイズに分割されている動画像の各ブロックの画像データを記憶している画像データ記憶手段から複数のブロックの画像データを読み込み、上記複数のブロックの第１段の動きベクトルを探索する第１の動きベクトル探索ステップと、ブロック選択手段が、上記第１の動きベクトル探索手段により第１段の動きベクトルが探索された複数のブロックの中から、第１段の動きベクトルが指し示す領域間の距離が予め設定された閾値より短い同士のブロックを選択するブロック選択ステップと、第２の動きベクトル探索手段が、上記画像データ記憶手段から上記ブロック選択手段により選択されたブロック群の第１段の動きベクトルが指し示す領域の合成領域の画像データを一度に読み込み、上記合成領域の画像データから各ブロックの第２段の動きベクトルの探索領域を設定して、各ブロックの第２段の動きベクトルを探索する第２の動きベクトル探索ステップと、動きベクトル合成手段が、上記ブロック選択手段により選択された各ブロックの第１段の動きベクトルと上記第２の動きベクトル探索手段により探索された第２段の動きベクトルを合成する動きベクトル合成ステップとを備えた動きベクトル検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば、動画像を高能率符号化してディジタル伝送するシステムなどに適用され、所定の水平画素数と所定の垂直ライン数に分割されている動画像の各マクロブロック毎に、動きベクトルを検出する動きベクトル検出装置及び動きベクトル検出方法に関するものである。
【背景技術】
【０００２】
動画像を圧縮して伝送する技術として動き補償予測を用いるものがあり、動き補償予測を実施するには、動きベクトルの検出が必要である。
動きベクトルを検出する代表的な方法としては、例えば、ブロックマッチング法と呼ばれる方法がある。
ブロックマッチング法は、例えば、現画像をブロック（例えば、１６画素×１６ライン、あるいは、１６画素×８ライン）に分割し、差分絶対値総和等の予測誤差評価基準を用いて、当該ブロックに対して、その予測誤差評価基準値が最も小さくなるブロックを参照画像から求めることで、当該ブロックの動きベクトルを算出する方法である。
【０００３】
ブロックマッチング法による動きベクトルの探索は、探索領域内において、動きベクトルの候補となる点を移動しながら、予測誤差評価基準値を求める操作を行うものであるため、予め、フレームメモリから探索領域の画像データを転送しておく必要があり、探索領域を広く取るほど、メモリ転送のバンド幅を圧迫することになる。
【０００４】
以下の特許文献１には、探索範囲を保ちつつ、動きベクトルを探索する際のメモリ転送量の削減を実現している動きベクトル検出装置が開示されている。
図７はメモリ転送量を削減する方法を示す説明図である。
マクロブロックＡ１の動きベクトルを探索する際、図７（Ａ）に示すように、マクロブロックＡ１の探索領域と、隣接マクロブロックＡ２の探索領域が合成された合成探索領域の画像データを読み込み（フレームメモリから合成探索領域の画像データの転送を受ける）、マクロブロックＡ１の動きベクトルを探索してから、隣接マクロブロックＡ２の動きベクトルを探索する。
【０００５】
次のステップでは、図７（Ｂ）に示すように、動きベクトルを探索するマクロブロックの対象を右に一つ移動する。即ち、マクロブロックＢ１と隣接マクロブロックＢ２を動きベクトルを探索するマクロブロックに設定する。
この場合、マクロブロックＢ１の探索領域と、隣接マクロブロックＢ２の探索領域が合成された合成探索領域の画像データを必要とするが、フレームメモリから転送される画像データは、（Ａ）の合成探索領域から（Ｂ）の合成探索領域に追加された追加部分領域の画像データのみである。
【０００６】
ここで、動きベクトルを探索する際、動きベクトルを複数段階に分けて探索し、複数段の動きベクトルを合成することで、最終的な動きベクトルを得る多段マッチング法が存在する。
以下、多段マッチング法について簡単に説明する。
【０００７】
多段マッチング法では、例えば、全体で（水平±１００，垂直±１００）の領域を探索する場合、図８に示すように、マクロブロックの動きベクトルを探索する領域として、１ｓｔステップ探索領域（（水平±６０，垂直±６０）の領域）を設定して、動きベクトルｖ１の探索処理を行う。
この探索処理により、動きベクトルｖ１が探索されると、その動きベクトルｖ１が指し示す位置を基点にして、２ｎｄステップ探索領域（（水平±４０，垂直±４０）の領域）を設定して、動きベクトルｖ２の探索処理を行う。
このようにして、動きベクトルｖ１，ｖ２を探索すると、動きベクトルｖ１を動きベクトルｖ２に足し込むことにより、最終的な動きベクトルを算出する。
【０００８】
ここでは説明の簡単化のため、動きベクトルを２段階で探索するものについて示したが、３段階以上の探索を行うようにしてもよい。
このような多段マッチング法における２ｎｄステップ以降の探索では、動きベクトルの探索の基点がその都度変化するため、上述した特許文献１に開示されている方法のように、動きベクトルの探索の基点が固定されていることを前提とする方法には適用することができない。
【０００９】
【特許文献１】特開２００７−８８９２２号公報（図４）
【発明の開示】
【発明が解決しようとする課題】
【００１０】
従来の動きベクトル検出装置は以上のように構成されているので、多段マッチング法を用いて動きベクトルを検出する場合、２ｎｄステップ以降の探索で、動きベクトルの探索の基点がその都度変化する。このため、２ｎｄステップ以降の探索で、毎回、探索領域の画像データを転送しなければならず、転送データ量が多大になってしまうなどの課題があった。
【００１１】
この発明は上記のような課題を解決するためになされたもので、多段マッチング法を用いて動きベクトルを検出する際、２ｎｄステップ以降の探索でも、探索範囲を保ちつつ、画像データの転送量を削減することができる動きベクトル検出装置及び動きベクトル検出方法を得ることを目的とする。
【課題を解決するための手段】
【００１２】
この発明に係る動きベクトル検出装置は、第１の動きベクトル探索手段により第１段の動きベクトルが探索された複数のブロックの中から、第１段の動きベクトルが指し示す領域間の距離が予め設定された閾値より短い同士のブロックを選択するブロック選択手段と、画像データ記憶手段からブロック選択手段により選択されたブロック群の第１段の動きベクトルが指し示す領域の合成領域の画像データを一度に読み込み、その合成領域の画像データから各ブロックの第２段の動きベクトルの探索領域を設定して、各ブロックの第２段の動きベクトルを探索する第２の動きベクトル探索手段とを設け、動きベクトル合成手段がブロック選択手段により選択された各ブロックの第１段の動きベクトルと第２の動きベクトル探索手段により探索された第２段の動きベクトルを合成するようにしたものである。
【発明の効果】
【００１３】
この発明によれば、第１の動きベクトル探索手段により第１段の動きベクトルが探索された複数のブロックの中から、第１段の動きベクトルが指し示す領域間の距離が予め設定された閾値より短い同士のブロックを選択するブロック選択手段と、画像データ記憶手段からブロック選択手段により選択されたブロック群の第１段の動きベクトルが指し示す領域の合成領域の画像データを一度に読み込み、その合成領域の画像データから各ブロックの第２段の動きベクトルの探索領域を設定して、各ブロックの第２段の動きベクトルを探索する第２の動きベクトル探索手段とを設け、動きベクトル合成手段がブロック選択手段により選択された各ブロックの第１段の動きベクトルと第２の動きベクトル探索手段により探索された第２段の動きベクトルを合成するように構成したので、多段マッチング法を用いて動きベクトルを検出する際、第２段以降の探索でも、探索範囲を保ちつつ、画像データの転送量を削減することができる効果がある。
【発明を実施するための最良の形態】
【００１４】
実施の形態１．
図１はこの発明の実施の形態１による動きベクトル検出装置を示す構成図であり、図において、フレームメモリ１は所定の水平画素数と所定の垂直ライン数（所定のサイズ）に分割されている動画像の各マクロブロックの画像データ（以下、「マクロブロックデータ」と称する）を記憶しているメモリである。なお、フレームメモリ１は画像データ記憶手段を構成している。
【００１５】
フレームメモリＩ／Ｆ２はフレームメモリ１に記憶されている画像データを読み込み、その画像データを１ｓｔステップ動きベクトル探索部３や２ｎｄステップ動きベクトル探索部７に転送する処理を実施する。
１ｓｔステップ動きベクトル探索部３はフレームメモリ１からフレームメモリＩ／Ｆ２を介してα個（αは１以上の整数）のマクロブロックのマクロブロックデータと、１ｓｔステップ動きベクトル（第１段の動きベクトル）の探索領域のデータ（以下、「１ｓｔステップ探索領域データ」と称する）とを読み込み、α個のマクロブロックのマクロブロックデータと１ｓｔステップ探索領域データのマッチング処理を実施して、α個のマクロブロックの１ｓｔステップ動きベクトルを探索する処理を実施する。
なお、フレームメモリＩ／Ｆ２及び１ｓｔステップ動きベクトル探索部３から第１の動きベクトル探索手段が構成されている。
【００１６】
１ｓｔステップ動きベクトルメモリ４は１ｓｔステップ動きベクトル探索部３により探索されたα個のマクロブロックの１ｓｔステップ動きベクトルを格納するとともに、そのマクロブロックのマクロブロック番号を格納するメモリである。
マクロブロック選択部５はα個のマクロブロックの中から、α個のマクロブロックの１ｓｔステップ動きベクトルが指し示す領域間の距離Ｌが予め設定された閾値Ｌrefより短い同士のマクロブロックを選択する処理を実施する。
また、マクロブロック選択部５は２ｎｄステップ動きベクトル探索部７により２ｎｄステップ動きベクトル（第２段の動きベクトル）が探索されるブロックの順序を決定する機能を備えており、マクロブロック選択部５は選択したマクロブロック群の順序が連続するように決定し、マクロブロックの処理順序を並び替えるための並び替え順序情報を画像データ並べ替え部６及び動きベクトル並べ替え部９に出力する処理を実施する。
なお、マクロブロック選択部５はブロック選択手段及び順序決定手段を構成している。
【００１７】
画像データ並べ替え部６はマクロブロック選択部５から出力された並び替え順序情報にしたがって、マクロブロック選択部５により選択されたマクロブロック群に対する２ｎｄステップ動きベクトル探索部７での処理順序が連続するように、フレームメモリＩ／Ｆ２から転送されたマクロブロックデータの順序を並び替えて出力する処理を実施する。
２ｎｄステップ動きベクトル探索部７はフレームメモリ１からフレームメモリＩ／Ｆ２を介してマクロブロック選択部５により選択されたマクロブロック群の１ｓｔステップ動きベクトルが指し示す領域の合成領域の画像データ（以下、「合成２ｎｄステップ探索領域データ）を読み込んで、その合成２ｎｄステップ探索領域データから各マクロブロックの２ｎｄステップ動きベクトルの探索領域のデータ（以下、「２ｎｄステップ探索領域データ」と称する）を設定し、画像データ並べ替え部６から出力されたマクロブロックデータと当該２ｎｄステップ探索領域データのマッチング処理を実施して、各マクロブロックの２ｎｄステップ動きベクトルを探索する処理を実施する。
なお、フレームメモリＩ／Ｆ２、画像データ並べ替え部６及び２ｎｄステップ動きベクトル探索部７から第２の動きベクトル探索手段が構成されている。
【００１８】
２ｎｄステップ動きベクトルメモリ８は２ｎｄステップ動きベクトル探索部７により探索された２ｎｄステップ動きベクトルを格納するとともに、当該マクロブロックのマクロブロック番号を格納するメモリである。
動きベクトル並べ替え部９はマクロブロック選択部５から出力された並び替え順序情報にしたがって、２ｎｄステップ動きベクトルメモリ８に格納されている２ｎｄステップ動きベクトルの順序を元の順序に戻して加算器１１に出力する処理を実施する。
【００１９】
遅延部１０は１ｓｔステップ動きベクトル探索部３により探索された１ｓｔステップ動きベクトルを加算器１１に与えるタイミングが、動きベクトル並べ替え部９から２ｎｄステップ動きベクトルが出力されるタイミングと一致するように、その１ｓｔステップ動きベクトルを遅延させる処理を実施する。
加算器１１は動きベクトル並べ替え部９から出力された２ｎｄステップ動きベクトルと遅延部１０から出力された１ｓｔステップ動きベクトルを合成して、最終的な動きベクトルを出力する処理を実施する。
なお、動きベクトル並べ替え部９、遅延部１０及び加算器１１から動きベクトル合成手段が構成されている。
【００２０】
図２はこの発明の実施の形態１による動きベクトル検出装置の処理内容を示すフローチャートである。
図３は１ｓｔステップ動きベクトル及び合成２ｎｄステップ探索領域データを示す説明図である。
【００２１】
次に動作について説明する。
ここでは、説明の簡単化のため、動きベクトルの探索段数が２段である例を説明する。
まず、フレームメモリＩ／Ｆ２は、フレームメモリ１に記憶されているマクロブロックのマクロブロックデータの中から、符号化対象のマクロブロック（ｎ）のマクロブロックデータを読み込み、そのマクロブロックデータを１ｓｔステップ動きベクトル探索部３及び画像データ並べ替え部６に転送する。
また、フレームメモリＩ／Ｆ２は、フレームメモリ１からマクロブロック（ｎ）の１ｓｔステップ動きベクトルの１ｓｔステップ探索領域データ（図示せず）を読み込み、その１ｓｔステップ探索領域データを１ｓｔステップ動きベクトル探索部３に転送する。
【００２２】
１ｓｔステップ動きベクトル探索部３は、フレームメモリＩ／Ｆ２からマクロブロック（ｎ）のマクロブロックデータと１ｓｔステップ探索領域データを受けると、図３に示すように、そのマクロブロック（ｎ）のマクロブロックデータと１ｓｔステップ探索領域データのマッチング処理を実施することにより、そのマクロブロック（ｎ）の１ｓｔステップ動きベクトルＶ１nを探索する（ステップＳＴ１）。
１ｓｔステップ動きベクトル探索部３は、マクロブロック（ｎ）の１ｓｔステップ動きベクトルＶ１nを探索すると、その１ｓｔステップ動きベクトルＶ１nをマクロブロック（ｎ）のマクロブロック番号と一緒に１ｓｔステップ動きベクトルメモリ４に格納するとともに（ステップＳＴ２）、その１ｓｔステップ動きベクトルＶ１nを遅延部１０に出力する。
【００２３】
１ｓｔステップ動きベクトル探索部３は、マクロブロック（ｎ）の１ｓｔステップ動きベクトルＶ１nを探索すると、α個の１ｓｔステップ動きベクトルＶ１nの探索が完了したか否かを判定する（ステップＳＴ３）。
図３では、α＝４個の１ｓｔステップ動きベクトルＶ１n，Ｖ１n+1，Ｖ１n+2，Ｖ１n+3を探索する例を示している。
以下、説明の便宜上、α＝４である例を説明する。
【００２４】
この時点では、１ｓｔステップ動きベクトル探索部３が未だ４個の１ｓｔステップ動きベクトルを探索していないので、フレームメモリＩ／Ｆ２がマクロブロック（ｎ＋１）のマクロブロックデータと１ｓｔステップ探索領域データを読み込み、１ｓｔステップ動きベクトル探索部３が、マクロブロック（ｎ）の場合と同様にして、ステップＳＴ１〜ＳＴ３の処理を繰り返すことにより、マクロブロック（ｎ＋１），（ｎ＋２），（ｎ＋３）の１ｓｔステップ動きベクトルＶ１n+1，Ｖ１n+2，Ｖ１n+3を探索する。
【００２５】
マクロブロック選択部５は、１ｓｔステップ動きベクトル探索部３が４個の１ｓｔステップ動きベクトルＶ１n，Ｖ１n+1，Ｖ１n+2，Ｖ１n+3を１ｓｔステップ動きベクトルメモリ４に格納すると、マクロブロック（ｎ）の１ｓｔステップ動きベクトルＶ１nが指し示す領域ＳＡnと、マクロブロック（ｎ＋１），（ｎ＋２），（ｎ＋３）の１ｓｔステップ動きベクトルＶ１n+1，Ｖ１n+2，Ｖ１n+3が指し示す領域ＳＡn+1，ＳＡn+2，ＳＡn+3と間の距離Ｌn-(n+1)，Ｌn-(n+2)，Ｌn-(n+3)を算出する（ステップＳＴ４）。
【００２６】
例えば、マクロブロック（ｎ）の１ｓｔステップ動きベクトルＶ１nが指し示す領域ＳＡnの２次元座標（例えば、領域ＳＡnの左上の座標）が（ｘ１，ｙ１）で、マクロブロック（ｎ＋１）の１ｓｔステップ動きベクトルＶ１n+1が指し示す領域ＳＡn+1の２次元座標（例えば、領域ＳＡn+1の左上の座標）が（ｘ２，ｙ２）である場合、領域ＳＡnと領域ＳＡn+1間の距離Ｌn-(n+1)は、下記の式（１）のようになる。ただし、式（１）において、ＳＱＲＴ（）は平方根を表わす演算式である。
Ｌn-(n+1)＝ＳＱＲＴ（（ｘ１−ｘ２）2＋(ｙ１−ｙ２）2）    （１）
【００２７】
式（１）では、２乗や平方根の計算をしているが、２乗や平方根の計算を省いて、下記の式（２）のように簡略化してもよい。ただし、式（２）において、ＡＢＳ（）は絶対値を表わす演算式である。
Ｌn-(n+1)＝ＡＢＳ（ｘ１−ｘ２）＋ＡＢＳ（ｙ１−ｙ２）        （２）
なお、距離を近似する式であれば、式（１）（２）以外の数式を用いてもよいことは言うまでもない。
【００２８】
マクロブロック選択部５は、距離Ｌn-(n+1)，Ｌn-(n+2)，Ｌn-(n+3)を算出すると、その距離Ｌn-(n+1)，Ｌn-(n+2)，Ｌn-(n+3)の中で、予め設定された閾値Ｌrefより短い距離を検索する。
図３では、領域ＳＡnとＳＡn+3間の距離Ｌn-(n+3)が閾値Ｌrefより短く、領域ＳＡnとＳＡn+1，ＳＡn+2間の距離Ｌn-(n+1)，Ｌn-(n+2)が閾値Ｌrefより長い例を示している。
【００２９】
マクロブロック選択部５は、領域ＳＡnとＳＡn+3間の距離Ｌn-(n+3)が閾値Ｌrefより短いことが判明すると、マクロブロック（ｎ）とマクロブロック（ｎ＋３）の組み合わせを選択し（ステップＳＴ５）、２ｎｄステップ動きベクトル探索部７において、マクロブロック（ｎ）とマクロブロック（ｎ＋３）の処理が連続になるように、マクロブロックの処理順序を示す並び替え順序情報を画像データ並べ替え部６及び動きベクトル並べ替え部９に出力する（ステップＳＴ６）。
即ち、２ｎｄステップ動きベクトル探索部７における処理順序が、マクロブロック（ｎ），（ｎ＋３），（ｎ＋１），（ｎ＋２）の順番になるように、並び替え順序情報を画像データ並べ替え部６及び動きベクトル並べ替え部９に出力する。
【００３０】
画像データ並べ替え部６は、マクロブロック選択部５から並び替え順序情報を受けると、２ｎｄステップ動きベクトル探索部７における処理順序が、マクロブロック（ｎ），（ｎ＋３），（ｎ＋１），（ｎ＋２）の順番になるように、フレームメモリＩ／Ｆ２から転送されたマクロブロックデータの順序を並び替えて２ｎｄステップ動きベクトル探索部７に出力する。
即ち、画像データ並べ替え部６は、フレームメモリＩ／Ｆ２からマクロブロック（ｎ），（ｎ＋１），（ｎ＋２），（ｎ＋３）の順番でマクロブロックデータの転送を受けているが、マクロブロック（ｎ），（ｎ＋３），（ｎ＋１），（ｎ＋２）の順番にマクロブロックデータを並び替えて２ｎｄステップ動きベクトル探索部７に出力する。
【００３１】
また、マクロブロック選択部５は、マクロブロック（ｎ）とマクロブロック（ｎ＋３）の組み合わせを選択した旨の通知（マクロブロック（ｎ），（ｎ＋３）のマクロブロック番号と、同一の識別子を付けたマクロブロック（ｎ），（ｎ＋３）の１ｓｔステップ動きベクトル）をフレームメモリＩ／Ｆ２及び２ｎｄステップ動きベクトル探索部７に出力する。
フレームメモリＩ／Ｆ２は、マクロブロック選択部５からマクロブロック（ｎ）とマクロブロック（ｎ＋３）の組み合わせを選択した旨の通知を受けると、マクロブロック（ｎ）の１ｓｔステップ動きベクトルＶ１nが指し示す領域ＳＡnと、マクロブロック（ｎ＋３）の１ｓｔステップ動きベクトルＶ１n+3が指し示す領域ＳＡn+3の合成領域ＣＡの画像データである合成２ｎｄステップ探索領域データを２ｎｄステップ動きベクトル探索部７に一度に転送する（ステップＳＴ７）。
なお、マクロブロック選択部５により距離が短いマクロブロックの組み合わせが選択されない場合、合成領域ＣＡは各マクロブロックの２ｎｄステップ探索領域と一致する。
【００３２】
２ｎｄステップ動きベクトル探索部７は、フレームメモリＩ／Ｆ２から合成２ｎｄステップ探索領域データを受けると、その合成２ｎｄステップ探索領域データからマクロブロック（ｎ）の２ｎｄステップ探索領域データを抽出するとともに、マクロブロック（ｎ＋３）の２ｎｄステップ探索領域データを抽出する。
２ｎｄステップ動きベクトル探索部７は、マクロブロック（ｎ）の２ｎｄステップ探索領域データを抽出すると、画像データ並べ替え部６から出力されたマクロブロック（ｎ）のマクロブロックデータと、その２ｎｄステップ探索領域データのマッチング処理を実施することにより、そのマクロブロック（ｎ）の２ｎｄステップ動きベクトルＶ２nを探索し（ステップＳＴ８）、その２ｎｄステップ動きベクトルＶ２nを２ｎｄステップ動きベクトルメモリ８に格納する（ステップＳＴ９）。
【００３３】
次に、２ｎｄステップ動きベクトル探索部７は、画像データ並べ替え部６から出力されたマクロブロック（ｎ＋３）のマクロブロックデータと、マクロブロック（ｎ＋３）の２ｎｄステップ探索領域データのマッチング処理を実施することにより、そのマクロブロック（ｎ＋３）の２ｎｄステップ動きベクトルＶ２n+3を探索し（ステップＳＴ８）、その２ｎｄステップ動きベクトルＶ２n+3を２ｎｄステップ動きベクトルメモリ８に格納する（ステップＳＴ９）。
【００３４】
２ｎｄステップ動きベクトル探索部７は、マクロブロック（ｎ），（ｎ＋３）の２ｎｄステップ動きベクトルＶ２n，Ｖ２n+3を探索すると、フレームメモリ１からフレームメモリＩ／Ｆ２を介して、残りのマクロブロック（ｎ＋１），（ｎ＋２）の１ｓｔステップ動きベクトルＶ１n+1，Ｖ１n+2が指し示す領域ＳＡn+1，ＳＡn+2の画像データである２ｎｄステップ探索領域データの読み込みを行う。
この２ｎｄステップ探索領域データの読み込みは、２ｎｄステップ動きベクトルＶ２n，Ｖ２n+3の探索が完了する前に行っていてもよい。
【００３５】
２ｎｄステップ動きベクトル探索部７は、マクロブロック（ｎ＋１），（ｎ＋２）の２ｎｄステップ探索領域データを読み込むと、画像データ並べ替え部６から出力されたマクロブロック（ｎ＋１）のマクロブロックデータと、マクロブロック（ｎ＋１）の２ｎｄステップ探索領域データのマッチング処理を実施することにより、そのマクロブロック（ｎ＋１）の２ｎｄステップ動きベクトルＶ２n+1を探索し（ステップＳＴ８）、その２ｎｄステップ動きベクトルＶ２n+1を２ｎｄステップ動きベクトルメモリ８に格納する（ステップＳＴ９）。
【００３６】
次に、２ｎｄステップ動きベクトル探索部７は、画像データ並べ替え部６から出力されたマクロブロック（ｎ＋２）のマクロブロックデータと、マクロブロック（ｎ＋２）の２ｎｄステップ探索領域データのマッチング処理を実施することにより、そのマクロブロック（ｎ＋２）の２ｎｄステップ動きベクトルＶ２n+2を探索し（ステップＳＴ８）、その２ｎｄステップ動きベクトルＶ２n+2を２ｎｄステップ動きベクトルメモリ８に格納する（ステップＳＴ９）。
【００３７】
動きベクトル並べ替え部９は、上記のようにして、α＝４個の２ｎｄステップ動きベクトルの探索が完了すると（ステップＳＴ１０）、マクロブロック選択部５から出力された並び替え順序情報にしたがって、２ｎｄステップ動きベクトルメモリ８に格納されている２ｎｄステップ動きベクトルの順序を元の順序に戻して加算器１１に出力する（ステップＳＴ１１）。
即ち、動きベクトル並べ替え部９は、２ｎｄステップ動きベクトルがＶ２n，Ｖ２n+3，Ｖ２n+1，Ｖ２n+2の順番で２ｎｄステップ動きベクトルメモリ８に格納されているので、２ｎｄステップ動きベクトルをＶ２n，Ｖ２n+1，Ｖ２n+2，Ｖ２n+3，の順番に並び替えて加算器９に出力する。
【００３８】
遅延部１０は、１ｓｔステップ動きベクトル探索部３により探索された１ｓｔステップ動きベクトルＶ１n，Ｖ１n+1，Ｖ１n+2，Ｖ１n+3を加算器１１に与えるタイミングが、動きベクトル並べ替え部９から２ｎｄステップ動きベクトルＶ２n，Ｖ２n+1，Ｖ２n+2，Ｖ２n+3が出力されるタイミングと一致するように、その１ｓｔステップ動きベクトルＶ１n，Ｖ１n+1，Ｖ１n+2，Ｖ１n+3を遅延させる。
加算器１１は、遅延部１０から出力される１ｓｔステップ動きベクトルＶ１n，Ｖ１n+1，Ｖ１n+2，Ｖ１n+3と、動きベクトル並べ替え部９から出力される２ｎｄステップ動きベクトルＶ２n，Ｖ２n+1，Ｖ２n+2，Ｖ２n+3とを加算（合成）して、最終的な動きベクトルを出力する（ステップＳＴ１２）。
【００３９】
図１の動きベクトル検出装置は、加算器１１から最終的な動きベクトルが１ピクチャ分出力されるまで、ステップＳＴ１〜ＳＴ１２の処理を繰り返し実施し、１ピクチャ分出力されると、一連の処理を終了する（ステップＳＴ１２）。
【００４０】
以上で明らかなように、この実施の形態１によれば、１ｓｔステップ動きベクトル探索部３により１ｓｔステップ動きベクトルＶ１が探索された複数のマクロブロックの中から、１ｓｔステップ動きベクトルＶ１が指し示す領域ＳＡ間の距離が予め設定された閾値より短い同士のマクロブロックを選択するマクロブロック選択部５と、フレームメモリ１からマクロブロック選択部５により選択されたマクロブロック群の１ｓｔステップ動きベクトルＶ１が指し示す領域ＳＡの合成領域ＣＡの画像データを一度に読み込み、その合成領域ＣＡの画像データから各マクロブロックの２ｎｄステップ動きベクトルＶ２の探索領域を設定して、各マクロブロックの２ｎｄステップ動きベクトルＶ２を探索する２ｎｄステップ動きベクトル探索部７とを設け、加算器１１が１ｓｔステップ動きベクトルＶ１と２ｎｄステップ動きベクトルＶ２を合成するように構成したので、多段マッチング法を用いて動きベクトルを検出する際、２ｎｄステップ以降の探索でも、探索範囲を保ちつつ、画像データの転送量を削減することができる効果を奏する。
【００４１】
実施の形態２．
上記実施の形態１では、動きベクトルの探索段数が２段である例を示したが、動きベクトルの探索段数が３段以上であってもよい。
この場合、例えば、図４に示すように、１ｓｔステップ動きベクトルメモリ４、マクロブロック選択部５、画像データ並べ替え部６、２ｎｄステップ動きベクトル探索部７、２ｎｄステップ動きベクトルメモリ８、動きベクトル並べ替え部９、遅延部１０及び加算器１１の組である２ｎｄ処理部２０がＮ段（Ｎは２以上の整数）縦続に接続されている必要がある。
ただし、１段目の２ｎｄ処理部２０の１ｓｔステップ動きベクトルメモリ４は、２段目以降では、Ｎｔｈステップ動きベクトルメモリ４ａと称し、１段目の２ｎｄ処理部２０の２ｎｄステップ動きベクトル探索部７は、２段目以降では、（Ｎ＋１）ｔｈステップ動きベクトル探索部７ａと称し、１段目の２ｎｄ処理部２０の２ｎｄステップ動きベクトルメモリ８は、２段目以降では、（Ｎ＋１）ｔｈステップ動きベクトルメモリ８ａと称している。
【００４２】
各段の探索の基点は、その前段までの動きベクトルを順次足し込んだものを使用する必要があるため、例えば、ｎ段目（ｎ＝２，・・・，Ｎ）のマクロブロック選択部５は、ｎ−１段目の（Ｎ＋１）ｔｈステップ動きベクトル探索部７ａにより第ｎ−１段の動きベクトルが探索された複数のマクロブロックの中から、第ｎ−１段の動きベクトルが指し示す領域間の距離が予め設定された閾値より短い同士のマクロブロックを選択することになる。
また、ｎ段目の（Ｎ＋１）ｔｈステップ動きベクトル探索部７ａは、フレームメモリ２からｎ段目のマクロブロック選択部５により選択された各マクロブロックの第ｎ−１段の動きベクトルが指し示す領域の合成領域の画像データを一度に読み込み、その合成領域の画像データから各マクロブロックの第ｎ段の動きベクトルの探索領域を設定して、各マクロブロックの第ｎ段の動きベクトルを探索することになる。
なお、最終段（ｎ＝Ｎ）の加算器１１から出力される最終的な動きベクトルは、全段の動きベクトルを足し込んだものとなる。
【００４３】
実施の形態３．
上記実施の形態１では、１ｓｔステップ動きベクトル探索部３がα個の１ｓｔステップ動きベクトルＶ１を探索するものについて示したが、１ｓｔステップ動きベクトル探索部３が探索する１ｓｔステップ動きベクトルＶ１の個数が２個であってもよい。
１ｓｔステップ動きベクトル探索部３が探索する１ｓｔステップ動きベクトルＶ１の個数を２個に固定すると、画像データ並べ替え部６及び動きベクトル並べ替え部９において、並べ替え処理を実施する必要がなくなる。
【００４４】
即ち、マクロブロック選択部５では、常に、隣同士のマクロブロックの１ｓｔステップ動きベクトルＶ１が指し示す領域ＳＡ間の距離を計算することになるので、その距離が予め設定された閾値Ｌrefより短い場合でも、比較している一方のマクロブロックの処理順序を他のマクロブロックより早める必要がない。
もう少し具体的に説明すると、例えば、隣同士であるマクロブロック（ｎ）の１ｓｔステップ動きベクトルＶ１nが指し示す領域ＳＡnと、マクロブロック（ｎ＋１）の１ｓｔステップ動きベクトルＶ１n+1が指し示す領域ＳＡn+1との間の距離Ｌn-(n+1)を計算し、その距離Ｌn-(n+1)が予め設定された閾値Ｌrefより短い場合でも、マクロブロック（ｎ＋１）の処理順序が、他のマクロブロック（ｎ＋２），（ｎ＋３）等より元々早いため、マクロブロック（ｎ＋１）の処理順序を変更する必要がない。
【００４５】
したがって、この実施の形態３では、図５に示すように、画像データ並べ替え部６、２ｎｄステップ動きベクトルメモリ８及び動きベクトル並べ替え部９を実装する必要がなく、装置構成を簡略化することができる効果を奏する。
また、マクロブロック選択部５において、並べ替え順序情報を出力する処理が不要になり、処理速度の高速化を図ることも可能になる。
なお、この実施の形態３では、動きベクトルの探索段数が２段である例を示したが、上記実施の形態２と同様に、動きベクトルの探索段数が３段以上であってもよい。
【００４６】
実施の形態４．
上記実施の形態１では、画像データ並べ替え部６が実装されているものを示したが、図６に示すように、画像データ並べ替え部６を省略するようにしてもよい。
この場合、２ｎｄステップ動きベクトル探索部７は、フレームメモリ１からフレームメモリＩ／Ｆ２を介して、マクロブロックデータを読み込むようにする。
【００４７】
即ち、フレームメモリＩ／Ｆ２は、例えば、マクロブロック選択部５からマクロブロック（ｎ）とマクロブロック（ｎ＋３）の組み合わせを選択した旨の通知（マクロブロック（ｎ），（ｎ＋３）のマクロブロック番号と、同一の識別子を付けたマクロブロック（ｎ），（ｎ＋３）の１ｓｔステップ動きベクトル）を受けると、上記実施の形態１と同様に、マクロブロック（ｎ）の１ｓｔステップ動きベクトルＶ１nが指し示す領域ＳＡnと、マクロブロック（ｎ＋３）の１ｓｔステップ動きベクトルＶ１n+3が指し示す領域ＳＡn+3の合成領域ＣＡの画像データである合成２ｎｄステップ探索領域データを２ｎｄステップ動きベクトル探索部７に一度に転送するが、さらに、図１の画像データ並べ替え部６から出力される順序と同一の順序で、即ち、マクロブロック（ｎ），（ｎ＋３），（ｎ＋１），（ｎ＋２）の順序で、これらのマクロブロックのマクロブロックデータを２ｎｄステップ動きベクトル探索部７に転送する。
【００４８】
この実施の形態４によれば、上記実施の形態１と比べて、データ転送量が多少増加するが、装置構成が簡単化されて、小さな規模での実現が可能になる。
なお、この実施の形態３では、動きベクトルの探索段数が２段である例を示したが、上記実施の形態２と同様に、動きベクトルの探索段数が３段以上であってもよい。
【図面の簡単な説明】
【００４９】
【図１】この発明の実施の形態１による動きベクトル検出装置を示す構成図である。
【図２】この発明の実施の形態１による動きベクトル検出装置の処理内容を示すフローチャートである。
【図３】１ｓｔステップ動きベクトル及び合成２ｎｄステップ探索領域データを示す説明図である。
【図４】この発明の実施の形態２による動きベクトル検出装置を示す構成図である。
【図５】この発明の実施の形態３による動きベクトル検出装置を示す構成図である。
【図６】この発明の実施の形態４による動きベクトル検出装置を示す構成図である。
【図７】メモリ転送量を削減する方法を示す説明図である。
【図８】多段マッチング法を示す説明図である。
【符号の説明】
【００５０】
１  フレームメモリ（画像データ記憶手段）、２  フレームメモリＩ／Ｆ（第１の動きベクトル探索手段、第２の動きベクトル探索手段）、３  １ｓｔステップ動きベクトル探索部（第１の動きベクトル探索手段）、４  １ｓｔステップ動きベクトルメモリ、４ａ  Ｎｔｈステップ動きベクトルメモリ、５  マクロブロック選択部（ブロック選択手段、順序決定手段）、６  画像データ並べ替え部（第２の動きベクトル探索手段）、７  ２ｎｄステップ動きベクトル探索部（第２の動きベクトル探索手段）、７ａ  （Ｎ＋１）ｔｈステップ動きベクトル探索部（第２の動きベクトル探索手段）、８  ２ｎｄステップ動きベクトルメモリ、８ａ  （Ｎ＋１）ｔｈステップ動きベクトルメモリ、９  動きベクトル並べ替え部（動きベクトル合成手段）、１０  遅延部（動きベクトル合成手段）、１１  加算器（動きベクトル合成手段）、２０  ２ｎｄ処理部。
【図１】
2010122975.tif 000003
【図２】
2010122975.tif 000004
【図３】
2010122975.tif 000005
【図４】
2010122975.tif 000006
【図５】
2010122975.tif 000007
【図６】
2010122975.tif 000008
【図７】
2010122975.tif 000009
【図８】
2010122975.tif 000010