(57)【特許請求の範囲】
【請求項１】
入力画像上の部分領域が参照画像上のどの領域から動いたかを示す動きベクトルを複数の探索モードを用いてより上位の探索階層からより下位の探索階層にわたって探索して検出する動きベクトル検出方法において、
現探索階層における探索モードを第１及び第２の探索モードのうちのいずれかに決定する探索モード決定ステップと、
前記探索モード決定ステップにより第１の探索モードが決定されたとき、前記入力画像及び参照画像を分割した大ブロックをさらに分割した小ブロック毎及び大ブロック毎に入力画像と参照画像とのブロックマッチング誤差を算出し、小ブロック毎及び大ブロック毎にそれぞれブロックマッチング誤差が最小となる小ブロック動きベクトル候補及び大ブロック動きベクトル候補を探索する第１の動きベクトル候補探索ステップと、
前記探索モード決定ステップにより第２の探索モードが決定されたとき、前記小ブロック毎に入力画像と参照画像とのブロックマッチング誤差を算出し、小ブロック毎にブロックマッチング誤差が最小となる小ブロック動きベクトル候補を探索する第２の動きベクトル候補探索ステップと、
前記第１の動きベクトル候補探索ステップにより探索された前記大ブロック動きベクトル候補及び小ブロック動きベクトル候補にそれぞれ対応するブロックマッチング誤差に基づいて最終的な動きベクトル候補を決定する動きベクトル候補決定ステップと、
全ての探索階層に対する処理の終了時に前記動きベクトル候補決定ステップにより決定された前記最終的な動きベクトル候補を検出動きベクトルとして出力するステップとを具備し、
前記探索モード決定ステップは、前記現探索階層より上位の探索階層において前記動きベクトル候補決定ステップで大ブロック動きベクトル候補が選択された場合は前記現探索階層における探索モードを前記第１の探索モードに決定し、前記上位の探索階層において前記動きベクトル候補決定ステップで小ブロック動きベクトル候補が選択された場合及び前記上位探索階層における探索モードが第２の探索モードの場合は前記現探索階層における探索モードを第２の探索モードに決定する動きベクトル検出方法。
【請求項２】
前記第１の動きベクトル候補探索ステップは、前記小ブロック毎のブロックマッチング誤差の和をとって前記大ブロック毎のブロックマッチング誤差を算出する請求項１記載の動きベクトル検出方法。
【請求項３】
前記動きベクトル候補決定ステップは、前記第１の動きベクトル候補探索ステップで探索される小ブロック動きベクトル候補に対応するブロックマッチング誤差の和をＳＡＤｓｂ、前記第１の動きベクトル候補探索ステップで探索される大ブロック動きベクトル候補に対応するブロックマッチング誤差をＳＡＤｍｂ、Ｋｐを前記探索階層毎に定めた定数として、ＳＡＤｓｂ＋Ｋｐ＞ＳＡＤｍｂを満足する場合は大ブロック動きベクトル候補を前記最終的な動きベクトル候補とし、ＳＡＤｓｂ＋Ｋｐ＞ＳＡＤｍｂを満足しない場合は小ブロック動きベクトル候補を前記最終的な動きベクトル候補とする請求項１記載の動きベクトル検出方法。
【請求項４】
入力画像上の部分領域が参照画像上のどの領域から動いたかを示す動きベクトルを複数の探索モードを用いてより上位の探索階層からより下位の探索階層にわたって探索して検出する動きベクトル検出装置において、
現探索階層における探索モードを第１及び第２の探索モードのうちのいずれかに決定する探索モード決定手段と、
入力画像及び参照画像を分割した大ブロックをさらに分割した小ブロック毎の入力画像と参照画像とのブロックマッチング誤差を算出する小ブロックマッチング誤差算出手段と、
前記小ブロックマッチング誤差算出手段により算出された各小ブロック毎のブロックマッチング誤差の和をとって大ブロック毎の入力画像と参照画像とのブロックマッチング誤差を算出する大ブロックマッチング誤差算出手段と、
前記探索モード決定手段により第１の探索モードが決定されたとき、小ブロック毎及び大ブロック毎にそれぞれブロックマッチング誤差が最小となる小ブロック動きベクトル候補及び大ブロック動きベクトル候補を探索し、前記探索モード決定ステップにより第２の探索モードが決定されたとき、小ブロック毎にブロックマッチング誤差が最小となる小ブロック動きベクトル候補のみを探索する動きベクトル候補探索手段と、
前記第１の動きベクトル候補探索手段により探索された前記大ブロック動きベクトル候補及び小ブロック動きベクトル候補にそれぞれ対応するブロックマッチング誤差に基づいて最終的な動きベクトル候補を決定する動きベクトル候補決定手段と、
全ての探索階層に対する処理の終了時に前記動きベクトル候補決定ステップにより決定された前記最終的な動きベクトル候補を検出動きベクトルとして出力する手段とを具備し、
前記探索モード決定手段は、前記現探索階層より上位の探索階層において前記動きベクトル候補決定ステップで大ブロック動きベクトル候補が選択された場合は前記現探索階層における探索モードを前記第１の探索モードに決定し、前記上位の探索階層において前記動きベクトル候補決定ステップで小ブロック動きベクトル候補が選択された場合及び前記上位探索階層における探索モードが第２の探索モードの場合は前記現探索階層における探索モードを第２の探索モードに決定する動きベクトル検出装置。
【請求項５】
入力画像上の部分領域が参照画像上のどの領域から動いたかを示す動きベクトルを複数の探索モードを用いてより上位の探索階層からより下位の探索階層にわたって探索して検出する動きベクトル検出処理をコンピュータに実行させるためのプログラムであって、
現探索階層における探索モードを第１及び第２の探索モードのうちのいずれかに決定する探索モード決定処理と、
前記探索モード決定処理により第１の探索モードが決定されたとき、前記入力画像及び参照画像を分割した大ブロックをさらに分割した小ブロック毎及び大ブロック毎に入力画像と参照画像とのブロックマッチング誤差を算出し、小ブロック毎及び大ブロック毎にそれぞれブロックマッチング誤差が最小となる小ブロック動きベクトル候補及び大ブロック動きベクトル候補を探索する第１の動きベクトル候補探索処理と、
前記探索モード決定処理により第２の探索モードが決定されたとき、前記小ブロック毎に入力画像と参照画像とのブロックマッチング誤差を算出し、小ブロック毎にブロックマッチング誤差が最小となる小ブロック動きベクトル候補を探索する第２の動きベクトル候補探索処理と、
前記第１の動きベクトル候補探索処理により探索された前記大ブロック動きベクトル候補及び小ブロック動きベクトル候補にそれぞれ対応するブロックマッチング誤差に基づいて最終的な動きベクトル候補を決定する動きベクトル候補決定処理と、
全ての探索階層及び１画面の入力画像に対する処理の終了時に前記動きベクトル候補決定処理により決定された前記最終的な動きベクトル候補を検出動きベクトルとして出力する処理とを具備し、前記探索モード決定処理は、前記現探索階層より上位の探索階層において前記動きベクトル候補決定処理で大ブロック動きベクトル候補が選択された場合は前記現探索階層における探索モードを前記第１の探索モードに決定し、前記上位の探索階層において前記動きベクトル候補決定処理で小ブロック動きベクトル候補が選択された場合及び前記上位探索階層における探索モードが第２の探索モードの場合は前記現探索階層における探索モードを第２の探索モードに決定する、動きベクトル検出処理をコンピュータに実行させるためのプログラム。
【請求項６】
入力画像上の部分領域が参照画像上のどの領域から動いたかを示す動きベクトルを複数の探索モードを用いてより上位の探索階層からより下位の探索階層にわたって探索して検出する動きベクトル検出装置としてコンピュータを機能させるためのプログラムであって、
現探索階層における探索モードを第１及び第２の探索モードのうちのいずれかに決定する探索モード決定手段と、
入力画像及び参照画像を分割した大ブロックをさらに分割した小ブロック毎の入力画像と参照画像とのブロックマッチング誤差を算出する小ブロックマッチング誤差算出手段と、
前記小ブロックマッチング誤差算出手段により算出された各小ブロック毎のブロックマッチング誤差の和をとって大ブロック毎の入力画像と参照画像とのブロックマッチング誤差を算出する大ブロックマッチング誤差算出手段と、
前記探索モード決定手段により第１の探索モードが決定されたとき、小ブロック毎及び大ブロック毎にそれぞれブロックマッチング誤差が最小となる小ブロック動きベクトル候補及び大ブロック動きベクトル候補を探索し、前記探索モード決定ステップにより第２の探索モードが決定されたとき、小ブロック毎にブロックマッチング誤差が最小となる小ブロック動きベクトル候補のみを探索する動きベクトル候補探索手段と、
前記第１の動きベクトル候補探索手段により探索された前記大ブロック動きベクトル候補及び小ブロック動きベクトル候補にそれぞれ対応するブロックマッチング誤差に基づいて最終的な動きベクトル候補を決定する動きベクトル候補決定手段と、
全ての探索階層に対する処理の終了時に前記動きベクトル候補決定ステップにより決定された前記最終的な動きベクトル候補を検出動きベクトルとして出力する手段とを具備し、
前記探索モード決定手段は、前記現探索階層より上位の探索階層において前記動きベクトル候補決定ステップで大ブロック動きベクトル候補が選択された場合は前記現探索階層における探索モードを前記第１の探索モードに決定し、前記上位の探索階層において前記動きベクトル候補決定ステップで小ブロック動きベクトル候補が選択された場合及び前記上位探索階層における探索モードが第２の探索モードの場合は前記現探索階層における探索モードを第２の探索モードに決定する、動きベクトル検出装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像の記録・通信・伝送及び放送等における動画像信号の符号化装置において、入力画像が参照画像のどの領域から動いたものかを示す動きベクトルを検出する動きベクトル検出方法及び装置に関する。
【０００２】
【従来の技術】
動画像の膨大な情報を圧縮する動画像符号化方式の一つである動き補償予測符号化方式は、ＭＰＥＧ２(Moving Picture Experts Group phase 2)や、ＭＰＥＧ４(Moving Picture Experts Group phase 4)等で用いられている。動き補償予測符号化方式では、入力画像の部分領域に対して参照画像から最も相関の高い部分領域を検出し（ブロックマッチングという）、入力画像の部分領域が参照画像のどの部分領域から動いたものかを示す動きベクトル情報と、その動きベクトル情報により示される参照画像の部分領域と入力画像の部分領域との差分（予測誤差）を符号化する。
【０００３】
ＭＰＥＧ２及びＭＰＥＧ４では、動き補償予測符号化に関して動き補償を行う単位（動きベクトル検出を行う単位）の大きさを異ならせた二つのモードが用意され、符号化効率の良い方のモードを選択して符号化が行われる。例えば、ＭＰＥＧ２では動き補償を行う単位を図４（ａ）に示すように１６画素×１６ライン（大ブロック）とするフレームモードと、図４（ｂ）に示すように動き補償を行う単位をフィルタ位相により２つの１６画素×８ライン（小ブロック）に分けるフィールドモードのうちから、符号化効率の高い方を選択して符号化を行う。
【０００４】
一方、ＭＰＥＧ４では動き補償を行う単位を図５（ａ）に示すように１６画素×１６ライン（大ブロック）とするマクロブロックモードと、図５（ｂ）に示すように大ブロックを４つの８画素×８ライン（小ブロック）に分けるブロックモードのうちから、符号化効率の高い方を選択して符号化を行う。
【０００５】
動きベクトルの検出に際しては、このような大ブロックや小ブロック毎に動きベクトルの探索が行われる。また、動きベクトルの検出は対数探索といった階層的探索により、動きベクトルの探索範囲を階層的に徐々に小さくして行う方法が採られる。
【０００６】
ＭＰＥＧ２及びＭＰＥＧ４の何れにおいても、フレームモードやマクロブロックモードでの動きベクトル探索（大ブロック動きベクトル探索という）と、フィールドモードまたはブロックモードでの動きベクトル探索（小ブロック動きベクトル探索という）を常に行うと、探索範囲を小さくした下位階層の探索においては、大ブロック動きベクトル探索領域と小ブロック動きベクトル探索領域の重複がなくなるため、動きベクトル検出に必要なメモリバンド幅と演算量が増加してしまう。
【０００７】
そこで、従来では小ブロック動きベクトル探索のみを行い、その結果から大ブロック動きベクトル探索で探索されると思われる動きベクトル候補（大ブロック動きベクトル候補という）を推定し、フレームモードまたはマクロブロックモードと、フィールドモードまたはブロックモードのいずれを用いるかを決定するためのモード判定時に、小ブロックでの動き補償、大ブロックでの動き補償の何れかを選択する方法がとられている。
【０００８】
【発明が解決しようとする課題】
上述したように、従来技術において推定される大ブロック動きベクトル候補は小ブロック動きベクトル探索による探索結果に基づくものであるため、参照画像とのブロックマッチングに供される入力画像の画素数が本来の大ブロック動きベクトル探索の１／２または１／４になり、動きベクトルの検出精度が劣る。このような事情から、特にＭＰＥＧ４では図６に示すように小ブロックによる動き補償が多用されており、それによって符号化効率の低下を招くという問題がある。
【０００９】
本発明は、大ブロックでの動きベクトル探索精度を確保し、小ブロックによる動き補償の多用を避けて高い符号化効率が維持できる動きベクトル検出方法及び装置を提供することを目的とする。
【００１０】
【課題を解決するための手段】
上記課題を解決するため、本発明は入力画像上の部分領域が参照画像上のどの領域から動いたかを示す動きベクトルを複数の探索モード及び複数の探索階層により探索して検出する動きベクトル検出方法において、入力画像及び参照画像を分割した大ブロックをさらに分割した小ブロック毎及び大ブロック毎に入力画像と参照画像とのブロックマッチング誤差を算出し、小ブロック毎及び大ブロック毎にそれぞれブロックマッチング誤差が最小となる小ブロック動きベクトル候補及び大ブロック動きベクトル候補を探索する第１の探索モードに基づく第１の動きベクトル候補探索ステップと、小ブロック毎に入力画像と参照画像とのブロックマッチング誤差を算出し、小ブロック毎にブロックマッチング誤差が最小となる小ブロック動きベクトル候補を探索する第２の探索モードに基づく第２の動きベクトル候補探索ステップと、第１の探索モードにおける大ブロック動きベクトル候補及び小ブロック動きベクトル候補にそれぞれ対応するブロックマッチング誤差に基づいて最終的な動きベクトル候補を決定する動きベクトル候補決定ステップと、各探索階層毎に上位の探索階層における大ブロック動きベクトル候補及び小ブロック動きベクトル候補の探索結果に基づいて第１及び第２の探索モードのうちのいずれかの探索モードを決定する探索モード決定ステップと、全ての探索階層及び１画面の入力画像に対する処理の終了時に動きベクトル候補決定ステップにより決定された最終的な動きベクトル候補を検出動きベクトルとして出力するステップとを具備することを特徴とする。
【００１１】
本発明は入力画像上の部分領域が参照画像上のどの領域から動いたかを示す動きベクトルを複数の探索モード及び複数の探索階層により探索して検出する動きベクトル検出装置において、入力画像及び参照画像を分割した大ブロックをさらに分割した小ブロック毎の入力画像と参照画像とのブロックマッチング誤差を算出する小ブロックマッチング誤差算出手段と、小ブロックマッチング誤差算出手段により算出された各小ブロック毎のブロックマッチング誤差の和をとって大ブロック毎の入力画像と参照画像とのブロックマッチング誤差を算出する大ブロックマッチング誤差算出手段と、第１及び第２の旦濯モードを有し、第１の探索モードで小ブロック毎及び大ブロック毎にそれぞれブロックマッチング誤差が最小となる小ブロック動きベクトル候補及び大ブロック動きベクトル候補を探索し、第２の探索モードで小ブロック毎にブロックマッチング誤差が最小となる小ブロック動きベクトル候補のみを探索する動きベクトル候補探索手段と、第１の探索モードにおける大ブロック動きベクトル候補及び小ブロック動きベクトル候補にそれぞれ対応するブロックマッチング誤差に基づいて最終的な動きベクトル候補を決定する動きベクトル候補決定手段と、各探索階層毎に上位の探索階層における大ブロック動きベクトル候補及び小ブロック動きベクトル候補の探索結果に基づいて第１及び第２の探索モードのうちのいずれかの探索モードを決定する探索モード決定手段と、全ての探索階層及び１画面の入力画像に対する処理の終了時に動きベクトル候補決定手段により決定された最終的な動きベクトル候補を検出動きベクトルとして出力する手段とを具備することを特徴とする。
【００１２】
さらに、本発明によると入力画像上の部分領域が参照画像上のどの領域から動いたかを示す動きベクトルを複数の探索モード及び複数の探索階層により探索して検出する動きベクトル検出処理をコンピュータに実行させるためのプログラムであって、入力画像及び参照画像を分割した大ブロックをさらに分割した小ブロック毎及び大ブロック毎に入力画像と参照画像とのブロックマッチング誤差を算出し、小ブロック毎及び大ブロック毎にそれぞれブロックマッチング誤差が最小となる小ブロック動きベクトル候補及び大ブロック動きベクトル候補を探索する第１の探索モードに基づく第１の動きベクトル候補探索処理と、小ブロック毎に入力画像と参照画像とのブロックマッチング誤差を算出し、小ブロック毎にブロックマッチング誤差が最小となる小ブロック動きベクトル候補を探索する第２の探索モードに基づく第２の動きベクトル候補探索処理と、第１の探索モードにおいて大ブロック動きベクトル候補及び小ブロック動きベクトル候補にそれぞれ対応するブロックマッチング誤差に基づいて最終的な動きベクトル候補を決定する動きベクトル候補決定処理と、各探索階層毎に上位の探索階層における大ブロック動きベクトル候補及び小ブロック動きベクトル候補の探索結果に基づいて第１及び第２の探索モードのうちのいずれかの探索モードを決定する探索モード決定処理と、全ての探索階層及び１画面の入力画像に対する処理の終了時に動きベクトル候補決定手段により決定された最終的な動きベクトル候補を検出動きベクトルとして出力する処理とをコンピュータに実行させるためのプログラムがあるいは該プログラムを格納した記憶媒体が提供される。
【００１３】
さらに、本発明によると入力画像上の部分領域が参照画像上のどの領域から動いたかを示す動きベクトルを複数の探索モード及び複数の探索階層により探索して検出する動きベクトル装置としてコンピュータを機能させるためのプログラムであって、入力画像及び参照画像を分割した大ブロックをさらに分割した小ブロック毎の入力画像と参照画像とのブロックマッチング誤差を算出する小ブロックマッチング誤差算出手段と、小ブロックマッチング誤差算出手段により算出された各小ブロック毎のブロックマッチング誤差の和をとって大ブロック毎の入力画像と参照画像とのブロックマッチング誤差を算出する大ブロックマッチング誤差算出手段と、第１及び第２の探索モードを有し、第１の探索モードで小ブロック毎及び大ブロック毎にそれぞれブロックマッチング誤差が最小となる小ブロック動きベクトル候補及び大ブロック動きベクトル候補を探索し、第２の探索モードで小ブロック毎にブロックマッチング誤差が最小となる小ブロック動きベクトル候補のみを探索する動きベクトル候補探索手段と、第１の探索モードにおける大ブロック動きベクトル候補及び小ブロック動きベクトル候補にそれぞれ対応するブロックマッチング誤差に基づいて最終的な動きベクトル候補を決定する動きベクトル候補決定手段と、各探索階層毎に上位の探索階層における大ブロック動きベクトル候補及び小ブロック動きベクトル候補の探索結果に基づいて第１及び第２の探索モードのうちのいずれかの探索モードを決定する探索モード決定手段と、全ての探索階層及び１画面の入力画像に対する処理の終了時に動きベクトル候補決定手段により決定された最終的な動きベクトル候補を検出動きベクトルとして出力する手段としてコンピュータを機能させるためのプログラムあるいは該プログラムを格納した記憶媒体が提供される。
【００１４】
【発明の実施の形態】
以下に、図面を用いて本発明の実施形態を説明する。
図１に、本発明の一実施形態に係る動きベクトル検出装置の構成を示す。入力端子１１には、動きベクトル検出対象の画像信号である入力画像データが入力される。入力端子１２には、既に符号化され局部復号化された画像信号が参照画像データとして入力され、参照画像記憶部１４に記憶される。
【００１５】
入力画像データは小ブロック誤差算出部１３に入力される。小ブロック誤差算出部１３では、入力端子１１からの入力画像データのマクロブロック（大ブロック）を小ブロックに分け、参照画像記憶部１４から入力される各小ブロックの参照画像データとのブロックマッチング誤差、すなわち小ブロック毎のブロックマッチング誤差を算出する。
【００１６】
小ブロック誤差算出部１３により算出された小ブロック毎のブロックマッチング誤差は、大ブロックマッチング誤差算出部１５に入力される。大ブロックマッチング誤差算出部１５では、各小ブロックの同一小ブロック動きベクトル候補に対応するブロックマッチング誤差の和をとることにより、大ブロック毎のブロックマッチング誤差を算出する。
【００１７】
小ブロックマッチング誤差算出部１３で算出された小ブロック毎のマブロックマッチング誤差と大ブロックマッチング誤差算出部１５で算出された大ブロック毎のブロックマッチング誤差の情報は、マッチング誤差切替器１６を介して動きベクトル候補探索部１７に交互に取り込まれる。動きベクトル候補探索部１７は、小ブロック毎のブロックマッチング誤差のうちの最小誤差と、大ブロック毎のブロックマッチング誤差のうちの最小誤差を検出し、これらに基づき最小の小ブロック毎のブロックマッチング誤差に対応する小ブロック動きベクトル候補と、最小の大ブロック毎のブロックマッチング誤差に対応する大ブロック動きベクトル候補を探索する。
【００１８】
動きベクトル候補探索部１７で探索された小ブロック動きベクトル候補と大ブロック動きベクトル候補の情報は、動きベクトル候補決定部１８に入力される。動きベクトル候補決定部１８は、探索モード決定部１９によって決定された探索モードに従って最終的な動きベクトル候補を決定する。すなわち、動きベクトル候補決定部１８はマクロブロック探索モード（第１の探索モード）では、各小ブロック動きベクトル候補に対応するブロックマッチング誤差及び大ブロック動きベクトル候補に対応するブロックマッチング誤差が所定の条件を満足するかどうかにより、小ブロック動きベクトル候補及び大ブロック動きベクトル候補のいずれか一方を選択する。また、動きベクトル候補決定部１８はブロック探索モード（第２の探索モード）では、小ブロック動きベクトル候補を選択して、最終的な動きベクトル候補を決定する。
【００１９】
探索モード決定部１９は、動きベクトル候補の階層的探索における各探索階層毎に、上位の探索階層における大ブロック動きベクトル候補や小ブロック動きベクトル候補に基づいて動きベクトル探索モードを決定する。
【００２０】
すなわち、まず最上位の探索階層においては、参照画像と入力画像との間に動きベクトル検出済み画像が存在しない場合は、最上位探索階層の初期動きベクトルとして零を設定すると共に、最上位探索階層の探索モードとしてマクロブロック探索モードを設定する。
【００２１】
参照画像と入力画像との間に動きベクトル検出済み画像が存在する場合は、現マクロブロックと同画像位置の動きベクトル検出済み画像のマクロブロックに対する動きベクトルに基づいて、最上位探索階層の初期動きベクトル及び探索モードを決定する。
具体的には、動きベクトル検出済み画像のマクロブロックの動きベクトルが大ブロック動きベクトルである場合は、その動きベクトルを最上位探索階層の初期動きベクトルとし、最上位探索階層の探索モードをマクロブロック探索モードとする。
【００２２】
動きベクトル検出済み画像のマクロブロックの動きベクトルが小ブロック動きベクトルである場合は、各小ブロック動きベクトルが所定の条件を満たすかどうかにより、最上位探索階層での初期動きベクトル及び探索モードを決定する。例えば、動きベクトル検出済み画像のマクロブロックに対する各小ブロック動きベクトルの差分が所定値以下の場合は、それらの小ブロック動きベクトルの中心ベクトルを最上位探索階層の初期動きベクトルとし、最上位探索階層の探索モードをマクロブロック探索モードとする。動きベクトル検出済み画像のマクロブロックに対する各小ブロック動きベクトルの差分が所定値以下でない場合（所定値を超える場合）は、それらの小ブロック動きベクトルを最上位探索階層の初期動きベクトルとし、最上位探索階層の探索モードをブロック探索モードとする。
【００２３】
探索モード決定部１９は、下位探索階層では動きベクトル候補決定部１８により決定されたより上位探索階層の動きベクトル候補に基づいて、探索階層毎の初期動きベクトル及び探索モードを決定する。具体的には、上位探索階層で大ブロック動きベクトル候補が選択された場合は、その大ブロック動きベクトル候補を現探索階層の初期動きベクトルとし、現探索階層の探索モードをマクロブロック探索モードとする。上位探索階層で小ブロック動きベクトル候補が選択された場合（上位探索階層の探索モードがブロック探索モードの場合を含む）は、その小ブロック動きベクトル候補を現探索階層の現マクロブロックを構成する各小ブロックの初期動きベクトルとし、現探索階層の探索モードをブロック探索モードとする。
【００２４】
さらに、探索モード決定部１９では、現マクロブロックの上位の探索階層での動きベクトル候補探索結果が大ブロック動きベクトル候補である場合は、その動きベクトル候補を現探索階層の初期動きベクトルとすると共に、現探索階層の探索モードをマクロブロック探索モードとし、現マクロブロックの上位探索階層での動きベクトル候補探索結果が小ブロック動きベクトル候補である場合（現マクロブロックの上位探索階層の探索モードがブロック探索モードの場合を含む）は、各小ブロック動きベクトル候補が所定条件を満たすかどうかにより現探索階層での初期動きベクトル及び探索モードを決定してもよい。
【００２５】
例えば、各小ブロック動きベクトル候補の差分が所定値以下の場合は、それらの小ブロック動きベクトル候補の中心ベクトルを現探索階層の初期動きベクトルとし、現探索階層の探索モードをマクロブロック探索モードとし、そうで無い場合は各小ブロック動きベクトル候補を現探索階層の現マクロブロックを構成する各小ブロックの初期動きベクトルとし、現探索階層の探索モードをブロック探索モードとする。さらに、探索モード決定部１９は、初期動きベクトルに従って対応する参照画像データを参照画像記憶部１４から読み出して、小ブロック誤差算出部１３に供給する処理も行う。
【００２６】
このようにして動きベクトル候補決定部１８により全ての探索階層及び１画面の入力画像に対する処理の終了時に決定された最終的な動きベクトル候補は、出力端子２０から検出動きベクトルとして出力される。
【００２７】
次に、本実施形態に係る動きベクトル検出の処理手順について図４を用いて説明する。
まず、動きベクトル検出対象画像である入力画像と参照画像との間に動きベクトル検出済み画像が存在しない場合、動きベクトル探索モード決定ステップＳ０１において最上位探索階層の初期動きベクトルとして零を設定し、最上位探索階層の探索モードをマクロブロック探索モード（第１の探索モード）に決定する。
【００２８】
入力画像と参照画像との間に動きベクトル検出済み画像が存在する場合は、動きベクトル探索モード決定ステップＳ０１において現マクロブロックと同画像位置の動きベクトル検出済み画像の大ブロックに対する動きベクトルに基づいて、最上位探索階層での初期動きベクトルをの設定及び探索モードの決定を行う。具体的には、動きベクトル検出済み画像のマクロブロックの動きベクトルが大ブロック動きベクトルである場合は、その動きベクトルを最上位探索階層の初期動きベクトルに設定し、最上位探索階層の探索モードをマクロブロック探索モードに決定する。
【００２９】
動きベクトル検出済み画像のマクロブロックの動きベクトルが小ブロック動きベクトルである場合は、各小ブロック動きベクトルが所定条件を満たすかどうかにより、最上位探索階層での初期動きベクトルの設定及び探索モードの決定を行う。例えば、動きベクトル検出済み画像のマクロブロックに対する各小ブロック動きベクトルの差分が所定値以下の場合は、それらの小ブロック動きベクトルの中心ベクトルを最上位探索階層の初期動きベクトルに設定すると共に、最上位探索階層の探索モードをマクロブロック探索モードに決定し、そうで無い場合はそれらの小ブロック動きベクトルを最上位探索階層の現マクロブロックを構成する各小ブロックの初期動きベクトルに設定し、最上位探索階層の探索モードをブロック探索モード（第２の探索モード）に決定する。
【００３０】
動きベクトル探索モード決定ステップＳ０１においてマクロブロック探索モードが決定された場合は、探索モード判定ステップＳ０２を介してステップＳ１１〜Ｓ１５からなるマクロブロック探索モードによる動きベクトル候補探索処理を行う。
【００３１】
すなわち、マクロブロック探索モードではステップＳ０２から小ブロック誤差算出ステップＳ１１に移り、初期動きベクトルに基づき参照領域データを入力して入力画像のマクロブロックに対して小ブロック毎に参照画像とのブロックマッチング誤差を算出する。
次に、大ブロック誤差算出ステップＳ１２において各小ブロックのブロックマッチング誤差の和をとることにより、大ブロックのブロックマッチング誤差を算出する。
次に、動きベクトル候補探索ステップＳ１３において、各小ブロックのブロックマッチング誤差が最小となる位置を示す小ブロック動きベクトル候補及び大ブロックのブロックマッチング誤差が最小となる位置を示す大ブロック動きベクトル候補とそれらの動きベクトル候補に対応する各ブロックマッチング誤差を更新する。
次に、探索範囲終了判定ステップＳ１４を介して探索位置更新ステップＳ１５に移り、探索位置の更新に従って新しい参照領域データを入力する。そして、前述のステップＳ１１から探索位置更新ステップＳ１５までの処理が探索範囲終了判定ステップＳ１４により探索範囲終了と判断されるまで繰り返される。
【００３２】
探索範囲終了時には、動きベクトル候補探索ステップＳ１３の処理により、探索範囲内での小ブロック毎にブロックマッチング誤差が最小となる小ブロック動きベクトル候補及び大ブロックのブロックマッチング誤差が最小となる大ブロック動きベクトル候補とそれらの動きベクトル候補に対応するブロックマッチング誤差が求まり、動きベクトル候補決定ステップＳ０３に移る。
【００３３】
動きベクトル候補決定ステップＳ０３では、小ブロック動きベクトル候補に対応するブロックマッチング誤差の和と大ブロック動きベクトル候補に対応するブロックマッチング誤差に基づいて所定の条件を満足するかどうかにより、小ブロック動きベクトル候補及び大ブロック動きベクトル候補の一方を選択して動きベクトル候補を決定する。
【００３４】
例えば、各小ブロック動きベクトル候補に対応するブロックマッチング誤差の和をＳＡＤｓｂ、大ブロック動きベクトル候補に対応するブロックマッチング誤差をＳＡＤｍｂ、Ｋｐを探索階層毎に定めた定数として、
ＳＡＤｓｂ＋Ｋｐ＞ＳＡＤｍｂ    （１）
を満足する場合は大ブロック動きベクトル候補を選択する。式（１）の条件を満足しない場合は、小ブロック動きベクトル候補を選択する。ここで、動きベクトル候補の探索精度と符号化効率の観点から、上位探索階層における定数Ｋｐは下位探索階層における値以下にするのが望ましい。
【００３５】
一方、動きベクトル探索モード決定ステップＳ０１でブロック探索モードが決定された場合は、探索モード判定ステップＳ０２を介してステップＳ２１〜Ｓ２５からなるブロック探索モードによる動きベクトル候補探索処理を行う。
【００３６】
すなわち、マクロブロック探索モードではステップＳ０２から小ブロック誤差算出ステップＳ２１へ移り、小ブロック毎に設定された初期動きベクトルに基づいて参照領域データを入力し、小ブロック毎に参照画像とのブロックマッチング誤差を算出する。
次に、動きベクトル候補探索ステップＳ２３において、小ブロック毎にブロックマッチング誤差が最小となる小ブロック動きベクトル候補とそのブロックマッチング誤差を更新する。
次に、探索範囲終了判定ステップＳ２４を介して探索位置更新ステップＳ２５に移り、探索位置の更新に従って新しい参照領域データを入力する。
そして、小ブロック誤差算出ステップＳ２１から探索位置更新ステップＳ２５までの処理が探索範囲終了判定ステップＳ２４により探索範囲終了と判断されるまで繰り返される。
【００３７】
探索範囲終了時には、動きベクトル候補探索ステップＳ２３の処理により、探索範囲内での小ブロック毎にブロックマッチング誤差が最小となる小ブロック動きベクトル候補と各小ブロック動きベクトル候補に対応するブロックマッチング誤差が求まる。
【００３８】
次に、全探索階層終了判定ステップＳ０４を介して探索階層更新ステップＳ０５に移り探索階層を下位に更新し、動きベクトル探索モード決定ステップＳ０１に移る。動きベクトル探索モード決定ステップＳ０１では、上位探索階層での動きベクトル候補探索結果に従って、現探索階層の初期動きベクトルと探索モードを設定する。
【００３９】
具体的には、上位探索階層で大ブロック動きベクトル候補が選択された場合は、その大ブロック動きベクトル候補を現探索階層の初期動きベクトルとし、現探索階層の探索モードをマクロブロック探索モードとし、小ブロック動きベクトル候補が選択された場合（上位探索階層の探索モードがブロック探索モードの場合を含む）は、その小ブロック動きベクトル候補を現探索階層の現マクロブロックを構成する各小ブロックの初期動きベクトルとし、現探索階層の探索モードをブロック探索モードとする。
【００４０】
さらに、動きベクトル探索モード決定ステップＳ０１においてマクロブロック探索モードが選択された場合は、探索モード判定ステップＳ０２を介して小ブロック誤差算出ステップＳ１１へ移り、小ブロック誤差算出ステップＳ１１から探索位置更新ステップＳ１５までの処理が探索範囲終了判定ステップＳ１４により探索範囲終了と判断されるまで繰り返される。
【００４１】
また、この動きベクトル探索モード決定ステップＳ０１においてブロック探索モードが選択された場合には、探索モード判定ステップＳ０２を介して小ブロック誤差算出ステップＳ２１へ移り、小ブロック誤差算出ステップＳ２１から探索位置更新ステップＳ２５までの処理が探索範囲終了判定ステップＳ２４により探索範囲終了と判断されるまで繰り返される。
【００４２】
このようにして、全探索階層終了判定ステップＳ０４により１つのマクロブロックについて全ての探索階層における動きベクトル候補探索が終了したと判断されるまで、動きベクトル探索モード決定ステップＳ０１から探索階層更新ステップＳ０５までの処理が繰り返される。１つのマクロブロックについて全探索階層が終了すると、全探索階層終了判定ステップＳ０４から１画像終了判定ステップＳ０６を介してマクロブロック更新ステップＳ０７に移り、現マクロブロックが更新され、動きベクトル探索モード決定ステップＳ０１に戻る。
上述の処理は、１画面終了判定ステップＳ０６で１画面分の動きベクトル探索終了と判断されるまで繰り返される。
【００４３】
本実施形態は、探索階層の更新をマクロブロック単位で行うため、上位探索階層で探索した動きベクトル候補に対応するブロックマッチング誤差と現探索階層のブロックマッチング誤差の比較も行って、ブロックマッチング誤差が最小となる動きベクトル候補を探索する、いわゆる木探索による動きベクトル検出処理に適している。
【００４４】
図４は、本発明の第２の実施形態に係る動きベクトル検出の処理手順を示している。本実施形態は第１の実施形態の図３に示したステップＳ０４〜Ｓ０５の処理とステップＳ０６〜Ｓ０７の処理を入れ替えて、探索階層の更新を１画像単位で行う例であり、他の処理内容については第１の実施形態と同様であるため、説明を省略する。本実施形態は、隣接する大ブロックに対して参照画像データの領域の共通部分が存在する、いわゆる対数探索による動きベクトル検出などに適している。
【００４５】
【発明の効果】
以上説明したように、本発明によれば大ブロックでの動きベクトルによる動き補償の効果の少ない場合や、有意な大ブロックでの動きベクトル候補探索を小ブロックの動きベクトル候補探索結果から算出できない場合にのみ、大ブロックでの動きベクトル候補探索が省略されることにより、小ブロックによる動き補償の多用を避け、少ないメモリバンド幅と少ない演算量で高い符号化効率を維持できる動きベクトル検出が可能となる。
【図面の簡単な説明】
【図１】  本発明の一実施形態に係る動きベクトル検出装置の構成を示すブロック図
【図２】本発明の一実施形態に係る動きベクトル検出方法の処理手順を示すフローチャート
【図３】本発明の他の実施形態に係る動きベクトル検出方法の処理手順を示すフローチャート
【図４】フレームモードとフィールドモードの説明図
【図５】マクロブロックモードとブロックモードの説明図
【図６】小ブロックによる動き補償の説明図
【符号の説明】
１１…動きベクトル検出対象画像信号入力端子
１２…参照画像信号入力端子
１３…小ブロックマッチング誤差算出部
１４…参照画像記憶部
１５…大ブロックマッチング誤差算出部
１６…マッチング誤差切替器
１７…動きベクトル候補探索部
１８…動きベクトル候補決定部
１９…探索モード決定部
２０…動きベクトル情報出力端子
【図１】
0003782332.tif 000002
【図２】
0003782332.tif 000003
【図３】
0003782332.tif 000004
【図４】
0003782332.tif 000005
【図５】
0003782332.tif 000006
【図６】
0003782332.tif 000007