(57)【特許請求の範囲】
【請求項１】
基本画像から抽出した候補ブロツクと参照画像から抽出した参照ブロツクとをブロツクマツチングの対象とし、サーチエリア内で上記候補ブロツクの位置をずらしながら参照ブロツク及び候補ブロツク間でマツチング演算を行い、当該演算値に基づいて動きベクトルを検出する動きベクトル検出方法において、
基本画像及び参照画像をそれぞれ複数の帯域画像に分割する帯域分割ステツプと、
上記帯域分割ステツプにおいて分割された帯域画像のうち低域側の帯域画像の候補ブロツクと参照ブロツクとに含まれる画素の値から最大値及び最小値を検出し、上記最大値及び上記最小値の差よりダイナミツクレンジを求め、当該ダイナミツクレンジに応じた量子化ステツプ幅を選定し、当該量子化ステツプ幅により参照ブロツク及び候補ブロツクの画素値と上記最大値又は上記最小値との差分をｎビツトのコード値に符号化する適応ダイナミツクレンジ符号化ステツプと、
上記コード値を用いてサーチエリア内で上記候補ブロツクの位置をずらして、参照ブロツク及び候補ブロツク間でマツチング演算を行い、当該演算値が最小となる位置を第１の動きベクトルとする動きベクトル検出ステツプと、
上記第１の動きベクトルに応じて上記低域側よりも高域側の帯域画像に対して動き補償を行つた後、当該高域側の帯域画像において上記サーチエリアよりも小さいエリア内にて第２の動きベクトルを上記画像の動きベクトルとして検出する第２の動きベクトル検出ステツプと
を具えることを特徴とする動きベクトル検出方法。
【請求項２】
上記第１の動きベクトル検出ステツプでは、
上記マツチング演算として上記コード値に符号化された参照ブロツク及び候補ブロツク間の画素の値の排他的論理和の演算結果を積算して算出するようにした
ことを特徴とする請求項２に記載の動きベクトル検出方法。
【請求項３】
基本画像から抽出した候補ブロツクと参照画像から抽出した参照ブロツクとをブロツクマツチングの対象とし、サーチエリア内で上記候補ブロツクの位置をずらしながら参照ブロツク及び候補ブロツク間でマツチング演算を行い、当該演算値に基づいて動きベクトルを検出する動きベクトル検出方法において、
基本画像及び参照画像をそれぞれ複数の帯域画像に分割する帯域分割ステツプと、
上記帯域分割ステツプにおいて分割された帯域画像のうち低域側の帯域画像の候補ブロツクと参照ブロツクとに含まれる画素の値から最大値及び最小値を検出し、上記最大値及び上記最小値の和の１／２の値とそれぞれ参照ブロツク及び候補ブロツクの画素値とを比較演算して、参照ブロツク及び候補ブロツクの各画素値を値「１」又は値「０」のコード値に符号化する符号化ステツプと、
上記コード値を用いてサーチエリア内で上記候補ブロツクの位置をずらして、参照ブロツク及び候補ブロツク間でマツチング演算を行い、当該演算値が最小の位置を第１の動きベクトルとする動きベクトル検出ステツプと、
上記第１の動きベクトルに応じて上記低域側よりも高域側の帯域画像に対して動き補償を行つた後、当該高域側の帯域画像において上記サーチエリアよりも小さいエリア内にて第２の動きベクトルを上記画像の動きベクトルとして検出する第２の動きベクトル検出ステツプと
を具えることを特徴とする動きベクトル検出方法。
【請求項４】
上記第１の動きベクトル検出ステツプでは、
上記マツチング演算として上記コード値に符号化された参照ブロツク及び候補ブロツク間の画素の値の排他的論理和の演算結果を積算して算出し、当該積算値が最小となる位置を上記第１の動きベクトルとする
ことを特徴とする請求項３に記載の動きベクトル検出方法。
【請求項５】
基本画像から抽出した候補ブロツクと参照画像から抽出した参照ブロツクとをブロツクマツチングの対象とし、サーチエリア内で上記候補ブロツクの位置をずらしながら参照ブロツク及び候補ブロツク間でマツチング演算を行い、当該演算値に基づいて動きベクトルを検出する動きベクトル検出装置において、
基本画像及び参照画像をそれぞれ複数の帯域画像に分割する帯域分割手段と、
上記帯域分割手段において分割された帯域画像のうち低域側の帯域画像の候補ブロツクと参照ブロツクとに含まれる画素の値から最大値及び最小値を検出し、上記最大値及び上記最小値の差よりダイナミツクレンジを求め、当該ダイナミツクレンジに応じた量子化ステツプ幅を選定し、当該量子化ステツプ幅により参照ブロツク及び候補ブロツクの画素値と上記最大値又は上記最小値の差分をｎビツトのコード値に符号化する適応ダイナミツクレンジ符号化手段と、
上記コード値を用いてサーチエリア内で上記候補ブロツクの位置をずらして、参照ブロツク及び候補ブロツク間でマツチング演算を行い、当該演算値が最小となる位置を第１の動きベクトルとする動きベクトル検出手段と、
上記第１の動きベクトルに応じて上記低域側よりも高域側の帯域画像に対して動き補償を行つた後、当該高域側の帯域画像において上記サーチエリアよりも小さいエリア内にて第２の動きベクトルを上記画像の動きベクトルとして検出する第２の動きベクトル検出手段と
を具えることを特徴とする動きベクトル検出装置。
【請求項６】
上記第１の動きベクトル検出手段では、
上記マツチング演算として上記コード値に符号化された参照ブロツク及び候補ブロツク間で画素の値の排他的論理和の演算結果を積算して算出し、当該積算値が最小となる位置を上記第１の動きベクトルとする
ことを特徴とする請求項５に記載の動きベクトル検出装置。
【請求項７】
基本画像から抽出した候補ブロツクと参照画像から抽出した参照ブロツクとをブロツクマツチングの対象とし、サーチエリア内で上記候補ブロツクの位置をずらしながら参照ブロツク及び候補ブロツク間でマツチング演算を行い、当該演算値に基づいて動きベクトルを検出する動きベクトル検出装置において、
基本画像及び参照画像をそれぞれ複数の帯域画像に分割する帯域分割手段と、
上記帯域分割手段において分割された帯域画像のうち低域側の帯域画像の候補ブロツクと参照ブロツクとに含まれる画素の値から最大値及び最小値を検出し、上記最大値及び上記最小値の和の１／２の値とそれぞれ参照ブロツク及び候補ブロツクの画素値とを比較演算して、参照ブロツク及び候補ブロツクの各画素値を値「１」又は値「０」のコード値に符号化する符号化手段と、
上記コード値を用いてサーチエリア内で上記候補ブロツクの位置をずらして、参照ブロツク及び候補ブロツク間でマツチング演算を行い、当該演算値が最小の位置を第１の動きベクトルとする動きベクトル検出手段と、
上記第１の動きベクトルに応じて上記低域側よりも高域側の帯域画像に対して動き補償を行つた後、当該高域側の帯域画像において上記サーチエリアよりも小さいエリア内にて第２の動きベクトルを上記画像の動きベクトルとして検出する第２の動きベクトル検出手段と
を具えることを特徴とする動きベクトル検出装置。
【請求項８】
上記第１の動きベクトル検出手段では、
上記マツチング演算として上記コード値に符号化された参照ブロツク及び候補ブロツク間の画素の値の排他的論理和の演算結果を積算して算出し、当該積算値が最小となる位置を上記第１の動きベクトルとする
ことを特徴とする請求項７に記載の動きベクトル検出装置。
【発明の詳細な説明】
【０００１】
【目次】
以下の順序で本発明を説明する。
産業上の利用分野
従来の技術（図１０及び図１１）
発明が解決しようとする課題
課題を解決するための手段（図１〜図９）
作用（図１〜図９）
実施例
（１）第１実施例（図１〜図５）
（２）第２実施例（図６）
（３）第３実施例（図７）
（４）他の実施例（図８及び図９）
発明の効果
【０００２】
【産業上の利用分野】
本発明は動きベクトル検出方法及び装置に関し、特に時間的に異なる２つの画像データを用いて画像の動きベクトルを検出するものに適用して好適なものである。
【０００３】
【従来の技術】
従来、画像の動きベクトルを検出する手法として、ブロツクマツチング法がある。これは、図１０に示すように参照画像としての現在のフレーム（又はフイールド）Ｆ１をｍ画素×ｎ画素の大きさのブロツクに分割して得られる参照ブロツクＢ１と、基本画像としての過去のフレーム（又はフイールド）Ｆ２のサーチエリア（±ｓ画素）ＳＡ内に存在する候補ブロツクＢ２との画素毎の差分の絶対値和を評価値Ｐ（ｈ、ｖ）として演算し、次式
【数１】
0003627870.tif 000002
に示すように、サーチエリアＳＡ内で候補ブロツクＢ２を１画素毎にずらしてトータル（２ｓ＋１）２  点の評価値Ｐ（ｈ、ｖ）を演算する。これらの評価値の最小値を求めることによつて、その最小値が示す相対的座標値（ｈ、ｖ）を当該参照ブロツクＢ１の動きベクトルとする手法である。トータルの演算数は、演算量＝ブロツク数×サーチポイント×評価式数で表される。この場合、サーチポイント数は（２ｓ＋１）２  であり、評価式数は減算（ｍ×ｎ）、絶対値演算（ｍ×ｎ）、加算（ｍ×ｎ−１）の和となる。
【０００４】
ここで動き検出のハードウエアを小さくするためには、上式の各項目を減らす必要があるが、ブロツク数は変えることができないので、サーチポイント数を減らす手法としては、３ステツプ方式や正射影方式がある。またサーチポイント数と評価値数を同時に減らす手法として階層化方式がある。
【０００５】
ここで、図１１に動きベクトル検出装置の概略構成を示す。この動きベクトル検出装置１５では、動きベクトル検出の前提として、入力される画像データについて走査変換回路１６及びフレームメモリ１７で、現在のフレーム（又はフイールド）Ｆ１と過去のフレーム（又はフイールド）Ｆ２のブロツクのデータを生成し、これを動きベクトル検出回路１８に供給する。この動きベクトル検出回路１８は、上述のように参照ブロツクＢ１の動きベクトルを検出する。
【０００６】
【発明が解決しようとする課題】
ところがブロツクマツチング法は、参照ブロツクＢ１と候補ブロツクＢ２のマツチング演算をサーチエリアＳＡ内で１画素ずつずらしながら行う方法であるため、動きベクトルを検出する演算量が膨大となり、この結果ＬＳＩ化したときに装置全体として大型化したり演算時間が長くなる問題があつた。
また画像圧縮符号化方法において、サブバンド符号化やウエーブレツト変換符号化に動き補償を組み合わせて高能率化を図ることが考えられているが、動きベクトルを検出する演算量を軽減するには未だ不十分な問題があつた。
【０００７】
本発明は以上の点を考慮してなされたもので、動きベクトルの演算量が増加するのを抑制して高精度の動きベクトルを検出すると共に、装置全体として簡易な構成にし得るような動きベクトル検出方法及び装置を提案しようとするものである。
【０００８】
【課題を解決するための手段】
かかる課題を解決するため本発明においては、基本画像及び参照画像をそれぞれ複数の帯域画像に分割し、当該帯域分割された帯域画像のうち低域側の帯域画像の候補ブロツクと参照ブロツクとに含まれる画素の値から最大値及び最小値を検出し、最大値及び最小値の差よりダイナミツクレンジを求め、当該ダイナミツクレンジに応じた量子化ステツプ幅を選定し、当該量子化ステツプ幅により参照ブロツク及び候補ブロツクの画素値と最大値又は最小値との差分をｎビツトのコード値に符号化する。続いてコード値を用いてサーチエリア内で候補ブロツクの位置をずらして、参照ブロツク及び候補ブロツク間でマツチング演算を行い、当該演算値が最小となる位置を第１の動きベクトルし、当該第１の動きベクトルに応じて低域側よりも高域側の帯域画像に対して動き補償を行つた後、当該高域側の帯域画像においてサーチエリアよりも小さいエリア内にて第２の動きベクトルを画像の動きベクトルとして検出するようにした。
また本発明においては、基本画像及び参照画像をそれぞれ複数の帯域画像に分割し、当該帯域分割された帯域画像のうち低域側の帯域画像の候補ブロツクと参照ブロツクとに含まれる画素の値から最大値及び最小値を検出し、最大値及び最小値の和の１／２の値とそれぞれ参照ブロツク及び候補ブロツクの画素値とを比較演算して、参照ブロツク及び候補ブロツクの各画素値を値「１」又は値「０」のコード値に符号化する。続いてコード値を用いてサーチエリア内で候補ブロツクの位置をずらして、参照ブロツク及び候補ブロツク間でマツチング演算を行い、当該演算値が最小の位置を第１の動きベクトルとし、当該第１の動きベクトルに応じて低域側よりも高域側の帯域画像に対して動き補償を行つた後、当該高域側の帯域画像においてサーチエリアよりも小さいエリア内にて第２の動きベクトルを画像の動きベクトルとして検出するようにした。
【０００９】
【作用】
これにより帯域分割前の入力画像に基づいて動きベクトルを検出し、当該検出結果を分割後の各帯域毎に動き補償を行う場合と比較して、動きベクトルの演算量が増加するのを抑制して高精度の動きベクトルを検出することができる。さらに動きベクトルを検出する際に、ｎビツトＡＤＲＣ（Adaptive Dynamic Range Coding）符号化を用いたことによりマツチング演算の対象となる画素の語長（ビツト）を削減することができ、この結果一段とマツチング演算の演算量を低減させることができる。
【００１０】
【実施例】
以下図面について、本発明の一実施例を詳述する。
【００１１】
（１）第１実施例
図１において、１は全体として本発明による動きベクトル検出方法を適用した画像符号化装置を示す。画像符号化装置１は、入力画像信号をサブバンド分割により複数の帯域に分割し、低域側から高域側に順次動きベクトルを検出する。
画像符号化装置１は、まず入力画像信号Ｓ１を低域フイルタ（ＬＰＦ）２及び高域フイルタ（ＨＰＦ）３により２つの帯域に分割し、一方の低域側をさらにＬＰＦ４及びＨＰＦ５により２つの帯域に分割した後それぞれ帯域分割信号Ｓ２及びＳ３として第１及び第２の動き予測回路（ＭＥ）６及び７に供給すると共に、他方の高域側を帯域分割信号Ｓ４として第３の動き予測回路８に供給する。
【００１２】
すなわちサブバンド符号化においては、図２（Ａ）に示すように、入力画像信号Ｓ１を例えば直交ミラーフイルタ（ＱＭＦ）でなるＬＰＦ及びＨＰＦを用いて、水平及び垂直両方向に交互に高域側の成分と低域側の成分とに分割し、この結果得られる両成分をさらにそれぞれ高域側の成分と低域側の成分とに分割することにより、最終的にそれぞれ例えば４つの帯域に分割する。この結果、図２（Ｂ）に示すように入力画像信号Ｓ１を２次元的に１６の帯域に分割することができる。因に、帯域分割された入力画像信号Ｓ１について、その帯域幅に応じてサンプルを間引いてサンプル数を低減することにより、低域側ほど画素数の少ない画像データとして扱うことができる。
【００１３】
ここで、第１の動き予測回路６は、帯域分割信号Ｓ２に基づいて動きベクトルの検出を行つた後、当該検出結果から得られる動きベクトルｍｖ１  を第１の動き補償回路（ＭＣ）９及び第２の動き予測回路７に供給する。続いて第２の動き予測回路７は、帯域分割信号Ｓ３及び動きベクトルｍｖ１  に基づいて動きベクトルの検出を行つた後、当該検出結果から得られる動きベクトルｍｖ２  を第２の動き補償回路１０及び第３の動き予測回路８に供給する。さらに第３の動き予測回路８は、帯域分割信号Ｓ４及び動きベクトルｍｖ２  に基づいて動きベクトルの検出を行つた後、当該検出結果から得られる動きベクトルｍｖ３  を第３の動き補償回路１１に供給する。
【００１４】
このように第１〜第３の動き予測回路６〜８は、全体として低域側から高域側に順次動きベクトルを検出する。このときまず第１の動き予測回路６は、低域側におけるサブサンプルされたデータをフルサーチすることにより動きベクトルｍｖ１  を検出する。続いて第２の動き予測回路７は、動きベクトルｍｖ１  を決定した候補ブロツクを基準としてサーチエリアを縮小して設定した後、当該縮小したサーチエリア内で候補ブロツクを決定することにより、動きベクトルｍｖ２  を検出する。
【００１５】
さらに第３の動き予測回路８は、動きベクトルｍｖ２  を決定した候補ブロツクを基準としてサーチエリアを縮小して設定した後、当該縮小したサーチエリア内で候補ブロツクを決定することにより、動きベクトルｍｖ３  を検出する。このとき高域側では低密側に比べて画素が密でなるにもかかわらず、高域側におけるサーチエリアがより縮小して設定されることにより、全体的に動きベクトルの演算量が減少されることとなる。
【００１６】
第１〜第３の動き補償回路９〜１１は、それぞれ各帯域毎から得られた動きベクトルｍｖ１  〜ｍｖ３  に基づいてそれぞれ動き補償した後、当該結果から得られる予測画像データＳ５〜Ｓ７をそれぞれ対応する第１〜第３のビツト圧縮回路（ＢＲ：Ｂｉｔ  Ｒｅｄｕｃｔｉｏｎ  ）１２〜１４に供給する。第１〜第３のビツト圧縮回路１２〜１４は、それぞれ各帯域毎に得られた予測画像データＳ５〜Ｓ７に基づいてＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ  ）変換符号化によるＤＣＴ処理を行つた後出力するようになされている。
【００１７】
この第１実施例の動きベクトル検出方法では、各帯域において、フレームメモリを使用して遅延させた時間的に連続する２枚のフレーム（又はフイールド）Ｆ１、Ｆ２の画像から、現在のフレームＦ１についてはｍ画素×ｎ画素の大きさのブロツクに分割し、その中のある参照ブロツクＢ１に関して過去のフレーム（又はフイールド）Ｆ２からの動きベクトルを算出することを前提とする（図１０）。現在のフレーム（又はフイールド）Ｆ１の参照ブロツクＢ１のデータは、上述の分割したブロツクからあるブロツクを順次選択して供給し、過去のフレーム（又はフイールド）Ｆ２での候補ブロツクＢ２のデータは、参照ブロツクＢ１の空間的位置と同じ位置を中心としてサーチエリア（±ｓ画素）ＳＡの中を順次動かして供給する。
【００１８】
ここで、図３にこの実施例における第１〜第３の動き予測回路６〜８の構成を示し、第１〜第３の動き予測回路６〜８は、それぞれフレームメモリ２０〜２２及び動きベクトル検出回路２３〜２５で構成されている。
【００１９】
第１の動き予測回路６において、入力画像信号Ｓ１を帯域分割して得られた低域側でなる帯域分割信号Ｓ２は、フレームメモリ２０及び動きベクトル検出回路２３内のブロツク回路２６に入力される。続いてフレームメモリ２０に設定された過去（すなわち１フレーム前）の画像データが、動き補償されたサーチエリアに応じてサーチブロツク回路２９に読み出される。
【００２０】
次にメモリコントロール３２は、サーチブロツク回路２９とブロツク回路２６との過去及び現在の画像データを読み出して、評価値算出回路３５に供給する。評価値算出回路３５は、サーチブロツク回路２９とブロツク回路２６との過去及び現在の画像データを用いて、所定の演算を行つて評価値を算出し、当該評価値を動きベクトル決定回路３８に入力する。動きベクトル決定回路３８は、この評価値に基づいて動きベクトルｍｖ１  を検出する。
【００２１】
続いて第２の動き予測回路７において、帯域分割信号Ｓ３がフレームメモリ２１及び動きベクトル検出回路２４内のブロツク回路２７に入力されると共に、動きベクトルｍｖ１  がフレームメモリ２１のアドレスのオフセツト値として供給される。続いてフレームメモリ２１に設定された過去（すなわち１フレーム前）の画像データが、動き補償されたサーチエリアに応じてサーチブロツク回路３０に読み出される。
【００２２】
次にメモリコントロール３３は、サーチブロツク回路３０とブロツク回路２７との過去及び現在の画像データを読み出して、評価値算出回路３６に供給する。評価値算出回路３６は、サーチブロツク回路３０とブロツク回路２７との過去及び現在の画像データを用いて、所定の演算を行つて評価値を算出し、当該評価値を動きベクトル決定回路３９に入力する。動きベクトル決定回路３９は、この評価値に基づいて動きベクトルｍｖ２  を検出する。
【００２３】
続いて第３の動き予測回路８において、帯域分割信号Ｓ４がフレームメモリ２２及び動きベクトル検出回路２５内のブロツク回路２８に入力されると共に、動きベクトルｍｖ２  がフレームメモリ２２のアドレスのオフセツト値として供給される。続いてフレームメモリ２２に設定された過去（すなわち１フレーム前）の画像データが、動き補償されたサーチエリアに応じてサーチブロツク回路３１に読み出される。
【００２４】
次にメモリコントロール３４は、サーチブロツク回路３１とブロツク回路２８との過去及び現在の画像データを読み出して、評価値算出回路３７に供給する。評価値算出回路３７は、サーチブロツク回路３１とブロツク回路２８との過去及び現在の画像データを用いて、所定の演算を行つて評価値を算出し、当該評価値を動きベクトル決定回路４０に入力する。動きベクトル決定回路４０は、この評価値に基づいて動きベクトルｍｖ３  を検出する。
【００２５】
ここでこの実施例の場合、動きベクトル検出回路２３〜２５は、それぞれ図４に示すような回路５０で構成されている。すなわち動きベクトル検出回路５０においては、ブロツク回路２６〜２８に対応する参照ブロツクメモリ５１と、サーチブロツク回路２９〜３１に対応する候補ブロツクメモリ５２と、メモリコントロール３２〜３４に対応するメモリコントロール５３とを有し、また評価値算出回路３５〜３７に対応する評価値算出回路５４と、動きベクトル決定回路３８〜４０に対応する動きベクトル決定回路５５とを有する。
【００２６】
動きベクトル検出回路５０においては、まず参照ブロツクメモリ５１及び候補ブロツクメモリ５２の内容、すなわち参照ブロツクＢ１とこれに対応するサーチエリアＳＡ内の全ての候補ブロツクＢ２とのデータがメモリコントロール５３で指定されたアドレスの順に読み出され、それぞれ評価値算出回路５４内のレジスタ５６及び５７を通じて減算回路５８で減算される。この結果得られる差分データは絶対値化回路５９で絶対値化され、加算回路６０及びレジスタ６１で累積加算された後、当該累積加算結果を累積加算データＳ１０として動きベクトル決定回路５５に供給される。
【００２７】
動きベクトル決定回路５５においては、図５に示すように、この累積加算データＳ１０が評価値メモリ６５に、評価値メモリコントロール６６より指定されたアドレスの順に従つて入力される。続いて動きベクトル決定回路５５では、評価値が記憶された評価値メモリ６５が、順次評価値メモリコントロール６６より指定されたアドレスに従つて読み出され、比較回路６７及びレジスタ６８に入力される。
【００２８】
比較回路６７は他方の入力と評価値メモリ６５より読み出された評価値を順次比較し、このうち入力された評価値が小さいとき、レジスタ６８及び６９の内容を更新する信号を送出する。このレジスタ６９には、評価値メモリ６５を読み出すアドレスが順次設定される。このようにして順次評価値メモリ６５に記憶された評価値が評価され、そのうちの評価値の最小を与えるアドレスがレジスタ６９より送出され、これが動きベクトル決定回路５５の出力、すなわち動きベクトルｍｖとして出力される。
【００２９】
また動きベクトル決定回路５５はメモリコントロール５３（図４）に制御信号Ｓ１１を送出して、当該メモリコントロール５３における参照ブロツクメモリ５１及び候補ブロツクメモリ５２からのデータの読み出しを制御するようになされている。
【００３０】
以上の構成において、画像符号化装置１は入力画像データを帯域分割した後、第１の動き予測回路６において当該各帯域のうち低域側のデータから動きベクトルｍｖ１  を算出する。続いて第２の動き予測回路７はこの動きベクトルｍｖ１  に応じて高域側で動き補償した後、当該動きベクトルｍｖ１  を決定した候補ブロツクを基準としてサーチエリアを縮小して動きベクトルｍｖ２  を算出する。さらに第３の動き予測回路８はこの動きベクトルｍｖ２  に応じてより高域側で動き補償した後、当該動きベクトルｍｖ２  を決定した候補ブロツクを基準としてサーチエリアを縮小して動きベクトルｍｖ３  を算出する。これにより帯域分割前の画像データに基づいて動きベクトルを検出し、当該検出結果を分割後の各帯域毎に動き補償を行う場合と比較して、動きベクトルの演算量を軽減させることができる。
【００３１】
以上の構成によれば、画像符号化装置１は入力画像データを帯域分割した後、当該各帯域のうち低域側のデータから動きベクトルを算出し、当該動きベクトルに応じて高域側で動き補償を行つた後、高域側のサーチエリアを縮小するようにしたことにより、動きベクトルの演算量が増加するのを抑制して高精度の動きベクトルを検出すると共に、装置全体として簡易な構成にすることができる。
【００３２】
（２）第２実施例
この第２実施例の動きベクトル検出方法では、次のような手順に従つて動きベクトルを算出する。まず参照ブロツクＢ１とサーチエリアＳＡ内の全候補ブロツクＢ２のデータから最大値、最小値を検出し、当該最大値、当該最小値の差からダイナミツクレンジを求める。ダイナミツクレンジを２ｎ  （ｎは自然数）で割り算して量子化ステツプ幅を求め、各ブロツクの画素値と当該最小値との差分データを当該量子化ステツプ幅で割り算し、ｎビツトのコードに符号化してｎビツトＡＤＲＣ（Ａｄａｐｔｉｖｅ  Ｄｙｎａｍｉｃ  Ｒａｎｇｅ  Ｃｏｄｉｎｇ  ）符号化を行う。なお、ＡＤＲＣ符号化はＲＯＭと簡単なロジツクで実現され得る。
【００３３】
このようにしてｎビツトＡＤＲＣ符号化された参照ブロツクＢ１と候補ブロツクＢ２とのＡＤＲＣコード値のビツト方向で画素位置毎のマツチング演算として排他的論理和（ＥＸＯＲ）演算し、その結果のブロツク内積算値として評価値Ｐ（ｈ、ｖ）を算出する。因に、ＥＸＯＲ演算においてコードデータが一致していると値「０」が出力され、一致していないと値「１」が出力され演算されることから、マツチングがとれているほど評価値の値は小さくなる。
【００３４】
この手順に従つてサーチエリアＳＡ内で候補ブロツクＢ２の位置をずらせながら順次評価値を算出し、トータルで（２ｓ＋１）２  点の評価値Ｐ（ｈ、ｖ）を演算する。次に求められた評価値から最小値の位置を検出し、その相対的な座標値（ｈ、ｖ）を動きベクトルｍｖ１  とする。
【００３５】
続いてこのようにして求められた動きベクトルｍｖ１  で動き補償を行つた後、当該動きベクトルｍｖ１  の検出時において決定された候補ブロツクを中心として、改めてサーチエリアＳＡ内をより小さく設定する。そして上述の手順を再度行うことによつて動きベクトルｍｖ２  を算出する。以下、求めた動きベクトルｍｖ２  で動き補償すると共にサーチエリアをより小さくして上述の手順を繰り返すことによつて、動きベクトルｍｖ３  を算出する。
【００３６】
ここで図３との対応部分に同一符号を付して示す図６において、第２実施例の動き予測回路７０の構成を示し、この動き予測回路７０は図３における第１〜第３の動き予測回路６〜８に代わつてそれぞれ適用される。すなわち動き予測回路７０は、フレームメモリ２０（２１、２２）と動きベクトル検出回路７１とで構成され、入力された帯域分割信号Ｓ２（Ｓ３、Ｓ４）に基づいて動きベクトルｍｖ１  （ｍｖ２  、ｍｖ３  ）を算出するようになされている。
【００３７】
まず動きベクトル検出回路７１には、入力された帯域分割信号Ｓ２（Ｓ３、Ｓ４）をフレームメモリ２０（２１、２２）を用いて遅延させて得られた時間的に連続する現在及び過去ブロツクデータが、ＡＤＲＣ符号化回路９５の最大最小値検出回路７２に入力される。最大最小値検出回路７２は、現在及び過去ブロツクデータから最大値及び最小値を検出し、それぞれレジスタ７３及び７４に保持する。これによりレジスタ７３及び７４に保持された最大値から最小値を減算回路７５で減算してダイナミツクレンジを求めた後、そのダイナミツクレンジをレジスタ７６に保持する。
【００３８】
現在ブロツクデータに関してはＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）７７で遅延分を補償した後、減算回路７９において最小値を減算されＡＤＲＣコード変換ＲＯＭ８１に入力される。同様に過去ブロツクデータに関してもＦＩＦＯ７８で遅延分を補償した後、減算回路８０において最小値を減算されＡＤＲＣコード変換ＲＯＭ８２に入力される。またＡＤＲＣコード変換ＲＯＭ８１、８２には当該各データと共にレジスタ７６からダイナミツクレンジデータが入力されてそれぞれ４ビツトＡＤＲＣ符号化され、それぞれレジスタ８３、８４にコード値が保持される。保持されたコード値は、現在ブロツクのコードデータとサーチエリア内で切り出した過去ブロツクのコードデータとが順次出力され、評価値演算回路８５で画素位置毎の演算値の積算が行われる。
【００３９】
評価値演算回路８５では４つのイクスクルーシブオア（ＥＸＯＲ）ゲート８６〜８９で、それぞれ排他的論理和によるマツチングの度合いが計られる。つまりコードデータが一致していると値「０」が出力され、一致していないと値「１」が出力され、その結果が加算回路９０及びレジスタ９１で順次画素毎に積算される。この評価値演算回路８５と同じ動作をするものが評価値算出回路５４（図４）で、ここでは差分の絶対値を積算する。
【００４０】
１ブロツクのコードデータが走査された後、レジスタ９１にはあるサーチポイントでの評価値が保持されていることになる。この評価値は評価値テーブルメモリ９２に記憶される。このような演算をサーチポイントをずらしながら行つていくと、評価値テーブルメモリ９２には、全部で（２ｓ＋１）２  点の評価値Ｐ（ｈ、ｖ）が記憶される。次に評価値テーブルメモリ９２から評価値を読み出して、最小値検出回路９３で最小値の位置を検出する。このときの相対的な座標が求められ、ベクトル決定回路９４で動きベクトルｍｖ１  、ｍｖ２  又はｍｖ３  が出力される。
【００４１】
以上の構成において、画像符号化装置１は入力画像データを帯域分割した後、第１の動き予測回路（７０）において当該各帯域のうち低域側のデータを４ビツトＡＤＲＣで符号化して得られるコードデータに基づいて動きベクトルｍｖ１  を算出する。続いて第２の動き予測回路（７０）はこの動きベクトルｍｖ１  に応じて高域側で動き補償した後、当該動きベクトルｍｖ１  を決定した候補ブロツクを基準としてサーチエリアを縮小して上述した４ビツトＡＤＲＣ符号化に基づいて動きベクトルｍｖ２  を算出する。さらに第３の動き予測回路（７０）はこの動きベクトルｍｖ２  に応じてより高域側で動き補償した後、当該動きベクトルｍｖ２  を決定した候補ブロツクを基準としてサーチエリアを縮小して上述した４ビツトＡＤＲＣ符号化に基づいて動きベクトルｍｖ３  を算出する。
【００４２】
これにより帯域分割前の画像データに基づいて動きベクトルを検出し、当該検出結果を分割後の各帯域毎に動き補償を行う場合と比較して、動きベクトルの演算量を軽減させることができる。さらに動きベクトルを検出する際に、４ビツトＡＤＲＣ符号化を用いたことによりマツチング演算の対象となる画素の語長（ビツト）を削減することができ、この結果一段とマツチング演算の演算量を低減させることができる。
【００４３】
以上の構成によれば、画像符号化装置１は入力画像データを帯域分割した後、当該各帯域のうち低域側のデータから動きベクトルを算出し、当該動きベクトルに応じて高域側で動き補償を行つた後、高域側のサーチエリアを縮小するようにしたことにより、動きベクトルの演算量が増加するのを抑制して高精度の動きベクトルを検出すると共に、装置全体として簡易な構成にすることができる。さらに動きベクトルを検出する際に４ビツトＡＤＲＣ符号化を用いてマツチング演算の対象となる画素の語長（ビツト）を削減するようにしたことにより、一段と演算量を低減させることができ、かくして装置全体としての構成を簡易にし得る。
【００４４】
（３）第３実施例
この第３実施例の動きベクトル検出方法は、現在及び過去ブロツクデータについて第２実施例のｎビツトＡＤＲＣによる符号化に代えて、１ビツトＡＤＲＣのコード値に符号化するものである。実際上次のような手順に従つて動きベクトルを算出する。まず参照ブロツクＢ１とサーチエリアＳＡ内の全候補ブロツクＢ２のデータから最大値及び最小値を検出し、その最大値及び最小値の和の１／２と、各ブロツクの画素値を比較演算することによつて、１ビツトＡＤＲＣの手法を用いて、参照ブロツクＢ１及び候補ブロツクＢ２のデータを、値「１」又は値「０」のコード値に符号化する。
【００４５】
次に各ブロツクのコード値にて参照ブロツクＢ１と候補ブロツクＢ２の画素位置毎のマツチング演算として差分の絶対値和を求め、評価値Ｐ（ｈ、ｖ）を算出する。なお評価値の計算は、コード値の排他的論理和（ＥＸＯＲ）をとつて求めても良い。この手順に従つてサーチエリアＳＡ内で候補ブロツクＢ２の位置をずらしながら、順次評価値を算出し、トータルで（２ｓ＋１）２  点の評価値Ｐ（ｈ、ｖ）を演算する。次に求められた評価値から最小値の位置を検出し、その相対的な座標値（ｈ、ｖ）を動きベクトルｍｖ１  とする。
【００４６】
続いてこのようにして求められた動きベクトルｍｖ１  で動き補償を行つた後、当該動きベクトルｍｖ１  の検出時において決定された候補ブロツクＢ２を中心として、改めてサーチエリアＳＡ内をより小さく設定する。そして上述の手順を再度行うことによつて動きベクトルｍｖ２  を算出する。以下、求めた動きベクトルｍｖ２  で動き補償すると共にサーチエリアをより小さくして上述の手順を繰り返すことによつて、動きベクトルｍｖ３  を算出する。
【００４７】
ここで、図３との対応部分に同一符号を付して示す図７において、第３実施例の動き予測回路１００の構成を示し、この動き予測回路１００は図３における第１〜第３の動き予測回路６〜８に代わつてそれぞれ適用される。すなわち動き予測回路１００は、フレームメモリ２０（２１、２２）と動きベクトル検出回路１０１とで構成され、入力された帯域分割信号Ｓ２（Ｓ３、Ｓ４）に基づいて動きベクトルｍｖ１  （ｍｖ２  、ｍｖ３  ）を算出するようになされている。
【００４８】
まず動きベクトル検出回路１０１には、入力された帯域分割信号Ｓ２（Ｓ３、Ｓ４）をフレームメモリ２０（２１、２２）を用いて遅延させて得られた時間的に連続する現在及び過去ブロツクデータが、符号化回路１２０の最大最小値検出回路１０２に入力される。最大最小値検出回路１０２は、現在及び過去ブロツクデータから最大値及び最小値を検出し、それぞれレジスタ１０３及び１０４に保持する。これによりレジスタ１０３及び１０４に保持された最大値及び最小値は、加算回路１０５で加算された後ビツトシフトされて１／２倍され、その結果をレジスタ１０６に保持する。レジスタ１０６の値は、１ビツトＡＤＲＣを実行するための閾値となる。
【００４９】
この閾値が算出されるまでの延長分をＦＩＦＯ１０７、１０８で補償し、比較回路１０９、１１０によつて現在及び過去ブロツクデータと閾値が比較され、閾値より大きいときは値「１」、小さいときは値「０」のコードデータが出力される。これにより１ビツトＡＤＲＣが実行される。比較回路１０９、１１０の出力は、一旦メモリ回路１１１、１１２に記憶される。
【００５０】
メモリ回路１１１、１１２の読み出しは、現在ブロツクのコードデータとサーチエリア内で切り出した過去ブロツクのコードデータとが順次出力され、評価値演算回路１１３で画素位置毎の演算値の積算が行われる。評価値演算回路１１３ではＥＸＯＲゲート１１４で、排他的論理和によるマツチングの度合いが計られる。つまりコードデータが一致していると値「０」が出力され、一致していないと値「１」が出力され、その結果が加算回路１１５及びレジスタ１１６で順次画素毎に積算される。この評価値演算回路１１３と同じ動作をするものが評価値算出回路５４（図４）で、ここでは差分の絶対値を積算する。
【００５１】
１ブロツクのコードデータが走査された後、レジスタ１１６にはあるサーチポイントでの評価値が保持されていることになる。この評価値は評価値テーブルメモリ１１７に記憶される。このような演算をサーチポイントをずらしながら行つていくと、評価値テーブルメモリ１１７には、全部で（２ｓ＋１）２  点の評価値Ｐ（ｈ、ｖ）が記憶される。次に評価値テーブルメモリ１１７から評価値を読み出して、最小値検出回路１１８で最小値の位置を検出する。このときの相対的な座標が求められ、ベクトル決定回路１１９で動きベクトルｍｖ１  、ｍｖ２  又はｍｖ３  が出力される。
【００５２】
以上の構成において、画像符号化装置１は入力画像データを帯域分割した後、第１の動き予測回路（１００）において当該各帯域のうち低域側のデータを１ビツトＡＤＲＣで符号化して得られるコードデータに基づいて動きベクトルｍｖ１  を算出する。続いて第２の動き予測回路（１００）はこの動きベクトルｍｖ１  に応じて高域側で動き補償した後、当該動きベクトルｍｖ１  を決定した候補ブロツクを基準としてサーチエリアを縮小して上述した１ビツトＡＤＲＣ符号化に基づいて動きベクトルｍｖ２  を算出する。さらに第３の動き予測回路（１００）はこの動きベクトルｍｖ２  に応じてより高域側で動き補償した後、当該動きベクトルｍｖ２  を決定した候補ブロツクを基準としてサーチエリアを縮小して上述した１ビツトＡＤＲＣ符号化に基づいて動きベクトルｍｖ３  を算出する。
【００５３】
これにより帯域分割前の画像データに基づいて動きベクトルを検出し、当該検出結果を分割後の各帯域毎に動き補償を行う場合と比較して、動きベクトルの演算量を軽減させることができる。さらに動きベクトルを検出する際に、１ビツトＡＤＲＣ符号化を用いたことにより、第２実施例における４ビツトＡＤＲＣ符号化を用いた場合と比較してＥＸＯＲゲートの数を削減することができ、マツチング演算の対象となる画素の語長（ビツト）を削減することができ、この結果さらにマツチング演算の演算量を低減させることができる。
【００５４】
以上の構成によれば、画像符号化装置１は入力画像データを帯域分割した後、当該各帯域のうち低域側のデータから動きベクトルを算出し、当該動きベクトルに応じて高域側で動き補償を行つた後、高域側のサーチエリアを縮小するようにしたことにより、動きベクトルの演算量が増加するのを抑制して高精度で動きベクトルを検出すると共に、装置全体として簡易な構成にすることができる。さらに動きベクトルを検出する際に１ビツトＡＤＲＣ符号化を用いてマツチング演算の対象となる画素の語長（ビツト）を削減するようにしたことにより、一段と演算量を低減させることができ、かくして装置全体としての構成を簡易にし得る。
【００５５】
（４）他の実施例
なお上述の実施例においては、帯域分割符号化のうちサブバンド符号化を適用した場合について述べたが、本発明はこれに限らず、サブバンド符号化以外にもウエーブレツト変換符号化を適用するようにしても良い。この場合、ウエーブレツト変換符号化においては、１フレーム分の画像をウエーブレツトの基底を用いて直交変換することにより帯域毎に分割するようになされている。
【００５６】
ここでウエーブレツト変換符号化のうちオクターブ分割符号化においては、低域側になるにつれて細かく分割されるようになされている。すなわちオクターブ分割符号化では、図８（Ａ）に示すように、入力画像信号Ｓ１をＬＰＦ及びＨＰＦを用いて、水平及び垂直方向に交互に低域側を再帰的に２分割することにより、最終的にそれぞれ例えば４つの帯域に分割する。この結果、図８（Ｂ）に示すように入力画像信号Ｓ１を２次元的に１０の帯域に分割することができる。
【００５７】
また上述の実施例においては、帯域分割符号化のうちサブバンド符号化を適用した場合について述べたが、本発明はこれに限らず、サブバンド符号化以外にも階層符号化を適用するようにしても良い。この場合階層符号化においては、図９（Ａ）に示すように、オリジナル画像の２×２画素の平均値による上位階層を繰り返し生成することにより、帯域毎に分割するようになされている。図９（Ｂ）はオリジナル画像について３階層に階層化された画像データを生成する場合で、第１階層はオリジナル画像である。オリジナル画像上のブロツク（例えば１６×１６）より上位階層の画像データ、第ｎ階層における画像データをＭｎ  （ｘ、ｙ）とすると、次式
【数２】
0003627870.tif 000003
のように平均値化によつて求めることができ、ブロツクサイズは水平及び垂直方向にそれぞれ１／２となる。またこのように平均値階層化された第１階層の画像データから第２階層の画像データを生成するときも、（２）式により同様に求めることができる。
【００５８】
さらに上述の実施例においては、サブバンド符号化を行う際に直交ミラーフイルタ（ＱＭＦ）でなるＬＰＦ及びＨＰＦを用いた場合について述べたが、本発明はこれに限らず、対象シヨートカーネルフイルタ（ＳＳＫＦ）でなるＬＰＦ及びＨＰＦを用いるようにしても良い。
【００５９】
さらに上述の実施例においては、第１〜第３のビツト圧縮回路１２〜１４は分割された各帯域毎にＤＣＴ変換符号化する場合について述べたが、本発明はこれに限らず、適当な量子化を行つたり、またランレングス・ハフマン符号化を行つたりするようにしても良い。因に、一般的には低域側の成分に対してはＤＣＴ符号化や予測符号化（ＤＰＣＭ）等を行い、また高域側の成分に対してはランレングス・ハフマン符号化を行うようになされている。
【００６０】
さらに第１実施例においては、マツチング演算として参照ブロツク及び候補ブロツク間の差分の絶対値和を算出し、当該絶対値和が最小となる位置を動きベクトルとするようにした場合について述べたが、本発明はこれに限らず、マツチング演算として参照ブロツク及び候補ブロツク間の２乗和を算出し、当該２乗和の最小となる位置を動きベクトルとするようにしても良い。
【００６１】
さらに第２実施例においては、４ビツトＡＤＲＣ符号化を適用した場合について述べたが、本発明はこれに限らず、４ビツト以外の２、３又は５以上のビツトのＡＤＲＣ符号化を適用しても良い。
【００６２】
【発明の効果】
上述のように本発明によれば、入力画像を帯域分割した後、当該各帯域のうち低域側のデータから動きベクトルを算出し、当該動きベクトルに応じて高域側で動き補償を行つた後、高域側のサーチエリアを縮小するようにしたことにより、帯域分割前の入力画像に基づいて動きベクトルを検出し、当該検出結果を分割後の各帯域毎に動き補償を行う場合と比較して、動きベクトルの演算量が増加するのを抑制して高精度の動きベクトルを検出することができる上に、さらに動きベクトルを検出する際に、ｎビツトＡＤＲＣ（Adaptive Dynamic Range Coding）符号化を用いたことによりマツチング演算の対象となる画素の語長（ビツト）を削減することができ、この結果一段とマツチング演算の演算量を低減させることができ、かくして装置全体として簡易な構成にし得るような動きベクトル検出方法及び装置に実現することができる。
【図面の簡単な説明】
【図１】本発明による画像符号化装置の構成を示すブロツク図である。
【図２】実施例によるサブバンド分割された画像の説明に供する略線図である。
【図３】第１実施例による動き予測回路の構成を示すブロツク図である。
【図４】第１実施例による動きベクトル検出回路の構成を示すブロツク図である。
【図５】第１実施例による動きベクトル決定回路の構成を示すブロツク図である。
【図６】第２実施例による動き予測回路の構成を示すブロツク図である。
【図７】第３実施例による動き予測回路の構成を示すブロツク図である。
【図８】他の実施例によるオクターブ分割された画像の説明に供する略線図である。
【図９】他の実施例による階層画像の説明に供する略線図である。
【図１０】従来のブロツクマツチングによる動きベクトル検出の原理の説明に供する略線図である。
【図１１】従来の動きベクトル検出装置の概略構成を示すブロツク図である。
【符号の説明】
１……画像符号化装置、２、４……ＬＰＦ、３、５……ＨＰＦ、６〜８、７０、１００……動き予測回路、２０〜２２……フレームメモリ、２３〜２５、５０……動きベクトル検出回路、２６〜２８、５１……ブロツク回路（参照ブロツクメモリ）、２９〜３１、５２……サーチブロツク回路（候補ブロツクメモリ）、３２〜３４……メモリコントロール、３５〜３７、５４……評価値算出回路、３８〜４０、５５……動きベクトル決定回路、５８、７５、７９、８０……減算回路、５９……絶対値化回路、６５……評価値メモリ、６６……評価値メモリコントロール、６７……比較回路、７２、１０２……最大最小値検出回路、７７、７８、１０７、１０８……ＦＩＦＯ、８１、８２……ＡＤＲＣコード変換ＲＯＭ、８５、１１３……評価値演算回路、８６〜８９、１１４……ＥＸＯＲゲート、９０、１０５、１１５……加算回路、９２、１１７……評価値テーブルメモリ、９３、１１８……最小値検出回路、９４、１１９……ベクトル決定回路、９５……ＡＤＲＣ符号化回路、１０９、１１０……比較回路、１１１、１１２……メモリ回路、１２０……符号化回路。
【図１】
0003627870.tif 000004
【図２】
0003627870.tif 000005
【図３】
0003627870.tif 000006
【図４】
0003627870.tif 000007
【図５】
0003627870.tif 000008
【図６】
0003627870.tif 000009
【図７】
0003627870.tif 000010
【図８】
0003627870.tif 000011
【図９】
0003627870.tif 000012
【図１０】
0003627870.tif 000013
【図１１】
0003627870.tif 000014