(57)【特許請求の範囲】
【請求項１】
動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクとサーチエリア内の全ての候補ブロツクとに含まれる画素の値から最大値及び最小値を検出する最大最小値検出ステツプと、
上記最大値及び上記最小値の和の１／２の値と上記参照ブロツク及び上記候補ブロツクの各画素の値とを比較演算して、上記参照ブロツク及び上記候補ブロツクの各画素の値を値「１」又は値「０」のコード値に符号化する符号化ステツプと、
上記サーチエリア内で上記候補ブロツクの位置をずらし、上記コード値を用いて上記参照ブロツク及び上記候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を動きベクトルとする動きベクトル検出ステツプと、
直前の上記動きベクトル検出ステツプで求められた動きベクトルで動き補償を行つた後、直前のサーチエリアより小さいサーチエリアで、上記最大最小値検出ステツプ、上記符号化ステツプ及び上記動きベクトル検出ステツプを実行して、他の動きベクトルを算出する動きベクトル算出ステツプをｎ回（ｎは０以上の整数）繰り返し、ｎ個の動きベクトルを算出する繰返しステツプと、
上記動きベクトル検出ステツプ及び上記繰返しステツプで求められた動きベクトルのうち最後に求められた動きベクトルに応じて動き補償を行つた後、上記参照ブロツク及び上記候補ブロツクそれぞれの画素値を用いて、最後に求められたサーチエリアに対して上下左右、所定画素数の範囲縮小したサーチエリアについてマツチング演算を行い、当該演算値が最小の位置を画素値による動きベクトルとする画素値による動きベクトル検出ステツプと、
上記動きベクトル検出ステツプ、上記繰返しステツプ及び上記画素値による動きベクトル検出ステツプで求められた複数の動きベクトルの和を求め、上記動きベクトルの和を最終的な動きベクトルとして出力する動きベクトル出力ステツプと
を具えることを特徴とする動きベクトル検出方法。
【請求項２】
上記動きベクトル検出ステツプの上記マツチング演算は、上記コード値に符号化された上記参照ブロツク及び上記候補ブロツク毎の画素の値の差分の絶対値和を算出するようにした
ことを特徴とする請求項１に記載の動きベクトル検出方法。
【請求項３】
上記動きベクトル検出ステツプの上記マツチング演算は、上記コード値に符号化された上記参照ブロツク及び上記候補ブロツク毎の画素の値の排他的論理和の演算結果を積算して算出するようにした
ことを特徴とする請求項１に記載の動きベクトル検出方法。
【請求項４】
動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクとサーチエリア内の全ての候補ブロツクとに含まれる全ての画素の値から最大値及び最小値を検出する最大最小値検出ステツプと、
上記最大値及び上記最小値の差よりダイナツクレンジを求め、上記参照ブロツク及び上記候補ブロツクの画素値と上記最大値又は上記最小値との差分をｎビツトのコード値に符号化する符号化ステツプと、
上記サーチエリア内で上記候補ブロツクの位置をずらし、当該符号化された上記コード値の最上位桁ビツトを用いて上記参照ブロツク及び上記候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を動きベクトルとする動きベクトル検出ステツプと、
直前の上記動きベクトル検出ステツプで求められた動きベクトルで動き補償を行つた後、直前のサーチエリアより小さいサーチエリアで、直前に用いられた上記コード値の桁よりも一つ下の桁のビツトを用いて、上記参照ブロツク及び上記候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を他の動きベクトルとする動きベクトル算出ステツプをｎ回（ｎは０以上の整数）繰り返す繰返しステツプと、
上記動きベクトル検出ステツプ及び上記繰返しステツプで求められた動きベクトル、又は上記動きベクトル検出ステツプ及び上記繰返しステツプで求められた動きベクトルのうち最後に求められた動きベクトルに応じて動き補償を行つた後、上記参照ブロツク及び上記候補ブロツクそれぞれの画素値を用いて、最後に求められたサーチエリアに対して上下左右、所定画素数の範囲縮小したサーチエリアについてマツチング演算を行い、当該演算値が最小の位置を画素値による動きベクトルとする画素値による動きベクトル検出ステツプと、
上記動きベクトル検出ステツプ、上記繰返しステツプ及び上記画素値による動きベクトル検出ステツプで求められた複数の動きベクトルの和を求め、上記動きベクトルの和を最終的な動きベクトルとして出力する動きベクトル出力ステツプと
を具えることを特徴とする動きベクトル検出方法。
【請求項５】
入力画像データに対してラプラシアンフイルタ処理を施すラプラシアンフイルタ処理ステツプと、
上記ラプラシアンフイルタ処理が施された画像から、動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクとサーチエリア内の全ての候補ブロツクとに含まれる画素の値の絶対値から最大値を検出する最大値検出ステツプと、
上記最大値を参照ブロツクとサーチエリア内の全ての候補ブロツクのダイナミツクレンジとして、各参照ブロツク及び各候補ブロツクの画素値を、極性を表す符合を含む（符号＋ｎ）ビツトのコード値に符号化する符号化ステツプと、
上記サーチエリア内で上記候補ブロツクの位置を順次ずらし、上記コード値の符号ビツトを用いて上記参照ブロツクと上記候補ブロツクとのマツチング演算を行い、当該演算値が最小の位置を第１の動きベクトルとする第１の動きベクトル検出ステツプと、
上記第１の動きベクトルで動き補償を行つた後、上記サーチエリアをより小さくして、上記コード値の最上位桁ビツトを用いて、上記参照ブロツク及び上記候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を第２の動きベクトルとする第２の動きベクトル検出ステツプと、
直前の上記第２の動きベクトル検出ステツプで求められた第２の動きベクトルで動き補償を行つた後、直前のサーチエリアより小さいサーチエリアで、直前に用いられた上記コード値の桁よりも一つ下の桁のビツトを用いて、上記参照ブロツク及び上記候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を他の動きベクトルとする動きベクトル算出ステツプをｎ回（ｎは０以上の整数）繰り返す繰返しステツプと、
上記第１、第２動きベクトル検出ステツプ及び上記繰返しステツプで求められた動きベクトル、又は上記第１、第２の動きベクトル検出ステツプ及び上記繰返しステツプで求められた動きベクトルのうち最後に求められた動きベクトルに応じて動き補償を行つた後、上記参照ブロツク及び上記候補ブロツクそれぞれの画素値を用いて、最後に求められたサーチエリアに対して上下左右、所定画素数の範囲縮小したサーチエリアについてマツチング演算を行い、当該演算値が最小の位置を画素値による動きベクトルとする画素値による動きベクトル検出ステツプと、
上記第１、第２の動きベクトル検出ステツプ、上記繰返しステツプ及び上記画素値による動きベクトル検出ステツプで求められた複数の動きベクトルの和を求め、当該動きベクトルの和を最終的な動きベクトルとして出力する動きベクトル出力ステツプと
を具えることを特徴とする動きベクトル検出方法。
【請求項６】
動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクとサーチエリア内の全ての候補ブロツクとに含まれる画素の値から最大値及び最小値を検出する最大最小値検出手段と、
上記最大値及び上記最小値の和の１／２の値と上記参照ブロツク及び上記候補ブロツクの各画素の値とを比較演算して、上記参照ブロツク及び上記候補ブロツクの各画素の値を値「１」又は値「０」のコード値に符号化する符号化手段と、
上記サーチエリア内で上記候補ブロツクの位置をずらし、上記コード値を用いて上記参照ブロツク及び上記候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を動きベクトルとする動きベクトル検出手段と、
直前の上記動きベクトル検出手段で求められた動きベクトルで動き補償を行つた後、直前のサーチエリアより小さいサーチエリアで、上記最大最小値検出手段、上記符号化手段及び上記動きベクトル検出手段による処理を実行して、他の動きベクトルを算出する動きベクトル算出手段による処理をｎ回（ｎは０以上の整数）繰り返し、ｎ個の動きベクトルを算出する繰返し手段と、
上記動きベクトル検出手段及び上記繰返し手段により求められた動きベクトルのうち、最後に求められた動きベクトルに応じて動き補償を行つた後、上記参照ブロツク及び上記候補ブロツクそれぞれの画素値を用いて、最後に求められたサーチエリアに対して上下左右、所定画素数の範囲縮小したサーチエリアについてマツチング演算を行い、当該演算値が最小の位置を画素値による動きベクトルとする画素値による動きベクトル検出手段と、
上記動きベクトル検出手段、上記繰返し手段及び上記画素値による動きベクトル検出手段により求められた複数の動きベクトルの和を求め、上記動きベクトルの和を最終的な動きベクトルとして出力する動きベクトル出力手段と
を具えることを特徴とする動きベクトル検出装置。
【請求項７】
動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクとサーチエリア内の全ての候補ブロツクとに含まれる全ての画素の値から最大値及び最小値を検出する最大最小値検出手段と、
上記最大値及び上記最小値の差よりダイナミツクレンジを求め、上記参照ブロツク及び上記候補ブロツクの画素値と上記最大値又は上記最小値との差分をｎビツトのコード値に符号化する符号化手段と、
上記サーチエリア内で上記候補ブロツクの位置をずらし、当該符号化された上記コード値の最上位桁ビツトを用いて上記参照ブロツク及び上記候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を動きベクトルとする動きベクトル検出手段と、
直前の上記動きベクトル検出手段により求められた動きベクトルで動き補償を行つた後、直前のサーチエリアより小さいサーチエリアで、直前に用いられた上記コード値の桁よりも一つ下の桁のビツトを用いて、上記参照ブロツク及び上記候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を他の動きベクトルとする動きベクトル算出手段による処理をｎ回（ｎは０以上の整数）繰り返す繰返し手段と、
上記動きベクトル検出手段及び上記繰返し手段により求められた動きベクトル、又は上記動きベクトル検出手段及び上記繰返し手段により求められた動きベクトルのうち最後に求められた動きベクトルに応じて動き補償を行つた後、上記参照ブロツク及び上記候補ブロツクそれぞれの画素値を用いて、最後に求められたサーチエリアに対して上下左右、所定画素数の範囲縮小したサーチエリアについてマツチング演算を行い、当該演算値が最小の位置を画素値による動きベクトルとする画素値による動きベクトル検出手段と、
上記動きベクトル検出手段、上記繰返し手段及び上記画素値による動きベクトル検出手段により求められた複数の動きベクトルの和を求め、上記動きベクトルの和を最終的な動きベクトルとして出力する動きベクトル出力手段と
を具えることを特徴とする動きベクトル検出装置。
【請求項８】
入力画像データに対してラプラシアンフイルタ処理を施すラプラシアンフイルタと、
上記ラプラシアンフイルタ処理が施された画像から、動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクとサーチエリア内の全ての候補ブロツクとに含まれる画素の値の絶対値から最大値を検出する最大値検出手段と、
上記最大値を参照ブロツクとサーチエリア内の全ての候補ブロツクのダイナミツクレンジとして、各参照ブロツク及び各候補ブロツクの画素値を、極性を表す符合を含む（符号＋ｎ）ビツトのコード値に符号化する符号化手段と、
上記サーチエリア内で上記候補ブロツクの位置を順次ずらし、上記コード値の符号ビツトを用いて上記参照ブロツクと上記候補ブロツクとのマツチング演算を行い、当該演算値が最小の位置を第１の動きベクトルとする第１の動きベクトル検出手段と、
上記第１の動きベクトルで動き補償を行つた後、上記サーチエリアをより小さくして、上記コード値の最上位桁ビツトを用いて、上記参照ブロツク及び上記候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を第２の動きベクトルとする第２の動きベクトル検出手段と、
直前の上記第２の動きベクトル検出手段で求められた第２の動きベクトルで動き補償を行つた後、直前のサーチエリアより小さいサーチエリアで、直前に用いられた上記コード値の桁よりも一つ下の桁のビツトを用いて、上記参照ブロツク及び上記候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を他の動きベクトルとする動きベクトル算出手段による処理をｎ回（ｎは０以上の整数）繰り返す繰返し手段と、
上記第１、第２動きベクトル検出手段及び上記繰返し手段により求められた動きベクトル、又は上記第１、第２の動きベクトル検出手段及び上記繰返し手段で求められた動きベクトルのうち最後に求められた動きベクトルに応じて動き補償を行つた後、上記参照ブロツク及び上記候補ブロツクそれぞれの画素値を用いて、最後に求められたサーチエリアに対して上下左右、所定画素数の範囲縮小したサーチエリアについてマツチング演算を行い、当該演算値が最小の位置を画素値による動きベクトルとする画素値による動きベクトル検出手段と、
上記第１、第２の動きベクトル検出手段、上記繰返し手段及び上記画素値による動きベクトル検出手段で求められた複数の動きベクトルの和を求め、上記動きベクトルの和を最終的な動きベクトルとして出力する動きベクトル出力手段と
を具えることを特徴とする動きベクトル検出装置。
【発明の詳細な説明】
【０００１】
【目次】
以下の順序で本発明を説明する。
産業上の利用分野
従来の技術
発明が解決しようとする課題
課題を解決するための手段
作用
実施例
（１）動きベクトル検出の原理（図１）
（２）第１実施例の動きベクトル検出方法及び装置（図２〜図４）
（３）第２実施例の動きベクトル検出方法及び装置（図２、図５及び図６）
（４）第３実施例の動きベクトル検出方法及び装置（図７〜図１１）
（５）他の実施例
発明の効果
【０００２】
【産業上の利用分野】
本発明は動きベクトル検出方法及び装置に関し、特に時間的に異なる２つの画像データを用いて画像の動きベクトルを検出するものに適用し得る。
【０００３】
【従来の技術】
従来、動画像の処理として、動きベクトルすなわち時間的に異なる画像中の物体の動き方向と大きさや速さを用いるものがある。例えば画像の高能率符号化における動き補償フレーム間符号化や、フレーム間時間領域フイルタによるテレビジヨン雑音低減装置における動きによるパラメータ制御等に、動きベクトルが用いられる。この画像の動きベクトルを求める動きベクトル検出方法として、ブロツクマツチング法がある（特公昭５４−１２４９２７  号公報）。
【０００４】
このブロツクマツチング法では、まず１つの画面を適当な数画素からなるブロツクに分割する。続いてこのようにブロツク化された画像データを参照ブロツクとし、当該参照ブロツクが動いた領域を検索するために、時間的に異なる画面の対応する領域を含むようにブロツク化した画像データを候補ブロツクとする。この参照ブロツクと候補ブロツクとのマツチング演算を、サーチ領域内で１画素ずつずらしながら行い、評価値が最小となる最適値を求めることにより、参照ブロツクの動きベクトルを検出する。
【０００５】
【発明が解決しようとする課題】
ところがブロツクマツチング法で動きベクトルを検出する際には、検出対象のブロツクの全ての画素に対して、検出範囲となる全てのサーチ領域をくまなくサーチし、その差分を求める必要がある。このため動きベクトルを検出する計算量が大きくなり、装置自体が大型化したり演算時間が長くなる問題があつた。
【０００６】
本発明は以上の点を考慮してなされたもので、簡易な回路構成で階層的にレベル方向で分解能を上げて精度良く動きベクトルを検出し得る動きベクトル検出方法及び装置を提案しようとするものである。
【０００７】
【課題を解決するための手段】
かかる課題を解決するため本発明においては、動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクとサーチエリア内の全ての候補ブロツクとに含まれる画素の値から最大値及び最小値を検出する最大最小値検出ステツプと、最大値及び最小値の和の１／２の値と参照ブロツク及び候補ブロツクの各画素の値とを比較演算して、参照ブロツク及び候補ブロツクの各画素の値を値「１」又は値「０」のコード値に符号化する符号化ステツプと、サーチエリア内で候補ブロツクの位置をずらし、コード値を用いて参照ブロツク及び候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を動きベクトルとする動きベクトル検出ステツプと、直前の動きベクトル検出ステツプで求められた動きベクトルで動き補償を行つた後、直前のサーチエリアより小さいサーチエリアで、最大最小値検出ステツプ、符号化ステツプ及び動きベクトル検出ステツプを実行して、他の動きベクトルを算出する動きベクトル算出ステツプをｎ回（ｎは０以上の整数）繰り返し、ｎ個の動きベクトルを算出する繰返しステツプと、動きベクトル検出ステツプ及び繰返しステツプで求められた動きベクトルのうち、最後に求められた動きベクトルに応じて動き補償を行つた後、参照ブロツク及び候補ブロツクそれぞれの画素値を用いて、最後に求められたサーチエリアに対して上下左右、所定画素数の範囲縮小したサーチエリアについてマツチング演算を行い、当該演算値が最小の位置を画素値による動きベクトルとする画素値による動きベクトル検出ステツプと、動きベクトル検出ステツプ、繰返しステツプ及び画素値による動きベクトル検出ステツプで求められた複数の動きベクトルの和を求め、動きベクトルの和を最終的な動きベクトルとして出力する動きベクトル出力ステツプとを設けるようにする。
【０００８】
また本発明においては、動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクとサーチエリア内の全ての候補ブロツクとに含まれる全ての画素の値から最大値及び最小値を検出する最大最小値検出ステツプと、最大値及び最小値の差よりダイナミツクレンジを求め、参照ブロツク及び候補ブロツクの画素値と最大値又は最小値との差分をｎビツトのコード値に符号化する符号化ステツプと、サーチエリア内で候補ブロツクの位置をずらし、当該符号化されたコード値の最上位桁ビツトを用いて参照ブロツク及び候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を動きベクトルとする動きベクトル検出ステツプと、直前の動きベクトル検出ステツプで求められた動きベクトルで動き補償を行つた後、直前のサーチエリアより小さいサーチエリアで、直前に用いられたコード値の桁よりも一つ下の桁のビツトを用いて、参照ブロツク及び候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を他の動きベクトルとする動きベクトル算出ステツプをｎ回（ｎは０以上の整数）繰り返す繰返しステツプと、動きベクトル検出ステツプ及び繰返しステツプで求められた動きベクトル、又は動きベクトル検出ステツプ及び繰返しステツプで求められた動きベクトルのうち最後に求められた動きベクトルに応じて動き補償を行つた後、参照ブロツク及び候補ブロツクそれぞれの画素値を用いて、最後に求められたサーチエリアに対して上下左右、所定画素数の範囲縮小したサーチエリアについてマツチング演算を行い、当該演算値が最小の位置を画素値による動きベクトルとする画素値による動きベクトル検出ステツプと、動きベクトル検出ステツプ、繰返しステツプ及び画素値による動きベクトル検出ステツプで求められた複数の動きベクトルの和を求め、動きベクトルの和を最終的な動きベクトルとして出力する動きベクトル出力ステツプとを設けるようにする。
【０００９】
さらに本発明においては、入力画像データに対してラプラシアンフイルタ処理を施すラプラシアンフイルタ処理ステツプと、ラプラシアンフイルタ処理が施された画像から、動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクとサーチエリア内の全ての候補ブロツクとに含まれる画素の値の絶対値から最大値を検出する最大値検出ステツプと、最大値を参照ブロツクとサーチエリア内の全ての候補ブロツクのダイナミツクレンジとして、各参照ブロツク及び各候補ブロツクの画素値を、極性を表す符合を含む（符号＋ｎ）ビツトのコード値に符号化する符号化ステツプと、サーチエリア内で候補ブロツクの位置を順次ずらし、コード値の符号ビツトを用いて参照ブロツクと候補ブロツクとのマツチング演算を行い、当該演算値が最小の位置を第１の動きベクトルとする第１の動きベクトル検出ステツプと、第１の動きベクトルで動き補償を行つた後、サーチエリアをより小さくして、コード値の最上位桁ビツトを用いて、参照ブロツク及び候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を第２の動きベクトルとする第２の動きベクトル検出ステツプと、直前の第２の動きベクトル検出ステツプで求められた第２の動きベクトルで動き補償を行つた後、直前のサーチエリアより小さいサーチエリアで、直前に用いられたコード値の桁よりも一つ下の桁のビツトを用いて、参照ブロツク及び候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を他の動きベクトルとする動きベクトル算出ステツプをｎ回（ｎは０以上の整数）繰り返す繰返しステツプと、第１、第２動きベクトル検出ステツプ及び繰返しステツプで求められた動きベクトル、又は第１、第２の動きベクトル検出ステツプ及び繰返しステツプで求められた動きベクトルのうち最後に求められた動きベクトルに応じて動き補償を行つた後、参照ブロツク及び候補ブロツクそれぞれの画素値を用いて、最後に求められたサーチエリアに対して上下左右、所定画素数の範囲縮小したサーチエリアについてマツチング演算を行い、当該演算値が最小の位置を画素値による動きベクトルとする画素値による動きベクトル検出ステツプと、第１、第２の動きベクトル検出ステツプ、繰返しステツプ及び画素値による動きベクトル検出ステツプで求められた複数の動きベクトルの和を求め、動きベクトルの和を最終的な動きベクトルとして出力する動きベクトル出力ステツプとを設けるようにする。
【００１０】
【作用】
動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクとサーチエリア内の全ての候補ブロツクとに含まれる画素の値から最大値及び最小値を検出し、最大値及び最小値の和の１／２の値と参照ブロツク及び候補ブロツクの各画素の値とを比較演算して、参照ブロツク及び候補ブロツクの各画素の値を値「１」又は値「０」のコード値に符号化し、サーチエリア内で候補ブロツクの位置をずらし、コード値を用いて参照ブロツク及び候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を動きベクトルとして求め、直前に求められた動きベクトルで動き補償を行つた後、直前のサーチエリアより小さいサーチエリアで、最大最小値検出処理、符号化処理及び動きベクトル検出処理を実行して他の動きベクトルを算出する処理をｎ回繰り返してｎ個の動きベクトルを算出し、最後に求められた動きベクトルに応じて動き補償を行つた後、参照ブロツク及び候補ブロツクそれぞれの画素値を用いて、最後に求められたサーチエリアに対して上下左右、所定画素数の範囲縮小したサーチエリアについてマツチング演算を行い、当該演算値が最小の位置を画素値による動きベクトルとし、これら複数の動きベクトルの和を最終的な動きベクトルとして出力するようにしたことにより、参照ブロツク及び候補ブロツクの各画素の値をコード値に変換することにより演算量を大幅に削減し得ると共に、順次サーチエリアを狭くしていきながら算出した複数の動きベクトルの和を最終的な動きベクトルとして出力することができるので、簡易な構成でかつ十分に高い精度の最終的な動きベクトルを算出し得る。
また、動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクとサーチエリア内の全ての候補ブロツクとに含まれる全ての画素の値から最大値及び最小値を検出し、最大値及び最小値の差よりダイナミツクレンジを求め、参照ブロツク及び候補ブロツクの画素値と最大値又は最小値との差分をｎビツトのコード値に符号化し、サーチエリア内で候補ブロツクの位置をずらし、当該符号化されたコード値の最上位桁ビツトを用いて参照ブロツク及び候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を動きベクトルとして求め、直前に求められた動きベクトルで動き補償を行つた後、直前のサーチエリアより小さいサーチエリアで、直前に用いられたコード値の桁よりも一つ下の桁のビツトを用いて、参照ブロツク及び候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を他の動きベクトルとする処理をｎ回（ｎは０以上の整数）繰り返し、これらによつて求められた動きベクトルのいずれかに応じて動き補償を行つた後、参照ブロツク及び候補ブロツクそれぞれの画素値を用いて、最後に求められたサーチエリアに対して上下左右、所定画素数の範囲縮小したサーチエリアについてマツチング演算を行い、当該演算値が最小の位置を画素値による動きベクトルとし、これら複数の動きベクトルの和を最終的な動きベクトルとして出力するようにしたことにより、参照ブロツクと全ての候補ブロツクとに含まれる全ての画素の値から検出した最大値及び最小値の差よりダイナツクレンジを求め、参照ブロツク及び候補ブロツクの画素値と最大値又は最小値との差分をｎビツトのコード値に符号化し、サーチエリアを次第に小さくしながら当該コード値の最上位桁のビツトからその一つ下の桁のビツトまで順番に用いて参照ブロツク及び候補ブロツク毎のマツチング演算を行うことにより演算量を大幅に削減し、順次サーチエリアを狭くしていきながら算出した全ての動きベクトルの和を最終的な動きベクトルとして出力することができるので、簡易な構成でかつ十分に高い精度の最終的な動きベクトルを算出し得る。
【００１１】
さらに、入力画像データに対してラプラシアンフイルタ処理が施された画像から、動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクとサーチエリア内の全ての候補ブロツクとに含まれる画素の値の絶対値から最大値を検出し、最大値を参照ブロツクとサーチエリア内の全ての候補ブロツクのダイナミツクレンジとして、各参照ブロツク及び各候補ブロツクの画素値を、極性を表す符合を含む（符号＋ｎ）ビツトのコード値に符号化し、サーチエリア内で候補ブロツクの位置を順次ずらし、コード値の符号ビツトを用いて参照ブロツクと候補ブロツクとのマツチング演算を行い、当該演算値が最小の位置を第１の動きベクトルとし、第１の動きベクトルで動き補償を行つた後、サーチエリアをより小さくして、コード値の最上位桁ビツトを用いて、参照ブロツク及び候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を第２の動きベクトルとし、直前に求められた第２の動きベクトルで動き補償を行つた後、直前のサーチエリアより小さいサーチエリアで、直前に用いられたコード値の桁よりも一つ下の桁のビツトを用いて、参照ブロツク及び候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を他の動きベクトルとする処理をｎ回（ｎは０以上の整数）繰り返し、これらによつて求められた動きベクトルのいずれかに応じて動き補償を行つた後、参照ブロツク及び候補ブロツクそれぞれの画素値を用いて、最後に求められたサーチエリアに対して上下左右、所定画素数の範囲縮小したサーチエリアについてマツチング演算を行い、当該演算値が最小の位置を画素値による動きベクトルとし、これら複数の動きベクトルの和を最終的な動きベクトルとして出力するようにしたことにより、入力画像データに対してラプラシアンフイルタ処理を施してエツジ等の画像の特徴成分を強調したうえで動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクにおける画素値及び候補ブロツクにおける画素値を、極性を表す符合を含む（符号＋ｎ）ビツトのコード値に符号化し、当該（符号＋ｎ）ビツトのコード値を用いて演算量を大幅に減らし、順次分解能を上げるようにして画像の特徴を考慮した一段と高精度の最終的な動きベクトルを得ることができる。
【００１２】
【実施例】
以下図面について、本発明の一実施例を詳述する。
【００１３】
（１）動きベクトル検出の原理
一般的に動きベクトルを検出する方法として、ブロツクマツチングが行われる。これは、図１に示すように、現在のフレーム（又はフイールド）Ｆ１をｍ画素×ｎ画素の大きさのブロツクに分割して得られる参照ブロツクＢ１と、過去のフレーム（又はフイールド）Ｆ２のサーチエリア内（±ｓ画素）に存在する候補ブロツクＢ２との画素毎の差分の絶対値和を評価値Ｐ（ｈ、ｖ）として演算し、次式
【数１】
0003627872.tif 000002
に示すように、サーチエリア内で候補ブロツクＢ２を１画素毎にずらしてトータル（２ｓ＋１）２点の評価値Ｐ（ｈ、ｖ）を演算する。これらの評価値Ｐ（ｈ、ｖ）の最小値を求めることによつて、その最小値が示す相対的座標値（ｈ、ｖ）を該参照ブロツクＢ１の動きベクトルとする手法である。トータルの演算数は、演算量＝ブロツク数×サーチポイント数×評価式数で表される。この場合、サーチポイント数は（２ｓ＋１）２であり、評価式数は減算（ｍ×ｎ）、絶対値演算（ｍ×ｎ）、加算（ｍ×ｎ−１）の和となる。
【００１４】
ここで動き検出のハードウエアを小さくするためには、上式の各項目を減らす必要があるが、ブロツク数は変えることができないので、サーチポイント数又は評価式数を減らすしかない。サーチポイント数を減らす手法としては、３ステツプ方式や正射影方式がある。またサーチポイント数と評価式数を同時に減らす手法として階層化方式がある。しかしながらマツチング演算自体は画素のレベル（８ビツト）そのもので行われているため、さらにハードウエアを小さくするためこの実施例ではマツチング演算の対象となる画素の語長を減らすようになされている。
【００１５】
（２）第１実施例の動きベクトル検出方法及び装置
この第１実施例の動きベクトル検出方法では、時間的に連続する２枚のフレーム（又はフイールド）Ｆ１、Ｆ２の画像から、現在のフレームＦ１についてはｍ画素×ｎ画素の大きさのブロツクに分割し、その中のある参照ブロツクＢ１に関して過去のフレーム（又はフイールド）Ｆ２からの動きベクトルを算出することを前提とする。現在のフレーム（又はフイールド）Ｆ１の参照ブロツクＢ１のデータは、上述の分割したブロツクからあるブロツクを順次選択して供給し、過去のフレーム（又はフイールド）Ｆ２での候補ブロツクＢ２のデータは参照ブロツクＢ１の空間的位置と同じ位置を中心としてサーチエリア（±ｓ画素）ＳＡの中を順次動かして供給する。
【００１６】
この第１実施例の動きベクトル検出方法では、次のような処理を行つて動きベクトルを算出する。まず参照ブロツクＢ１の画素値とサーチエリアＳＡ内の全候補ブロツクＢ２の画素値とにおける画素毎の差分の絶対値和を評価値Ｐ(ｈ、ｖ)として演算し、その評価値Ｐ(ｈ、ｖ)の最大値及び最小値を検出し、その最大値及び最小値の和の１／２をしきい値として、各ブロツクの画素値とそれぞれ比較演算することによつて、１ビツトＡＤＲＣ(adaptive dynamic range coding)処理を行うことにより、参照ブロツクＢ１及び候補ブロツクＢ２の画素値を、値「１」又は値「０」のコード値に符号化する。
【００１７】
次に各ブロツクのコード値を用いて参照ブロツクＢ１と候補ブロツクＢ２の画素位置毎のマツチング演算として差分の絶対値和を求め、評価値Ｐ（ｈ、ｖ）を算出する。なお評価値の計算は、コード値の排他的論理和（ＥＸＯＲ）をとつて求めても良い。この操作をサーチエリアＳＡ内で候補ブロツクＢ２の位置をずらしながら、順次評価値を算出し、トータルで（２ｓ＋１）２  点の評価値Ｐ（ｈ、ｖ）を演算する。次に求められた評価値に基づいて最小値の位置を検出し、その相対的な座標値（ｈ、ｖ）を第１の動きベクトルとする。
【００１８】
続いてこのようにして求められた第１の動きベクトルで動き補償を行つた後、決定された第１の候補ブロツクＢ２を中心として、改めてサーチエリアＳＡをより小さく設定する。そして上述の操作を再度行うことによつて第２の動きベクトルを算出する。以下、適当な回数だけ、求めた動きベクトルで動き補償すると共にサーチエリアＳＡをより小さくして上述の操作を繰り返すことによつて、第（ｎ−１）の動きベクトルを算出する。次に第（ｎ−１）の動きベクトルを使用して、さらに動き補償を行つた後、最終段では、画素値そのものを用いてサーチエリアＳＡの中心を動かし、当該中心から上下左右方向に１画素単位で動かした範囲内で従来のブロツクマツチングを行い第ｎの動きベクトルを算出する。最終的な動きベクトルは、上述で求めた第１〜第ｎの動きベクトルの和を計算することで求められる。
【００１９】
ここで、図２にこの実施例の動きベクトル検出装置１の概略構成を示す。この動きベクトル検出装置１では、動きベクトル検出の前提として、入力される画像データについて走査変換回路２及びフレームメモリ３で、現在のフレーム（又はフイールド）Ｆ１と過去のフレーム（又はフイールド）Ｆ２のブロツクのデータを生成し、これを動きベクトル検出回路４に供給する。この動きベクトル検出回路４は、図３に示すように、大きく分けて３つの部分からなり、第１の動きベクトルｍｖ１  を求める動きベクトル算出回路５、第２の動きベクトルｍｖ２  を求める動きベクトル算出回路６、そして第３の動きベクトルｍｖ３  を算出する残りの回路から構成されている。
【００２０】
このうち動きベクトル算出回路５及び６については同様で、図４に示すように構成されている。この動きベクトル算出回路５及び６は、入力された現在の参照ブロツクＢ１の画素値及び過去の候補ブロツクＢ２の画素値に基づき最大最小値回路７で参照ブロツクＢ１の画素値とサーチエリアＳＡ内の全候補ブロツクＢ２の画素値とにおける画素毎の差分の絶対値和を評価値Ｐ(ｈ、ｖ)として演算し、その評価値Ｐ(ｈ、ｖ)の最大値及び最小値を検出し、それぞれレジスタ８、９に保持する。これによりレジスタ８、９に保持された最大値及び最小値は、加算器１０で加算された後ビツトシフトされて１／２倍され、その結果をレジスタ１１に保持する。レジスタ１１の値は、１ビツトＡＤＲＣを行うためのしきい値となる。
【００２１】
このしきい値が算出されるまでの遅延分をＦＩＦＯ１２、１３で補償し、比較回路１４、１５によつて現在及び過去ブロツクデータとしきい値が比較され、しきい値より大きいときは値「１」、小さいときは値「０」のコードデータが出力される。これにより１ビツトＡＤＲＣが実行される。比較回路１４、１５の出力は、一旦メモリ回路１６、１７に記憶される。
【００２２】
メモリ回路１６、１７の読み出しは、現在ブロツクのコードデータとサーチエリアの範囲内で切り出した過去ブロツクのコードデータとが順次出力され、評価値演算回路１８で画素位置毎の演算値の積算が行われる。評価値演算回路１８ではイクスクルーシブオア（ＥＸＯＲ）回路１９で、排他的論理和によるマツチングの度合いが計られる。つまりコードデータが一致していると値「０」が出力され、一致していないと値「１」が出力され積算される。この評価値演算回路１８と同じ動作をするものが評価値演算回路２０（図３）で、ここでは差分の絶対値を積算する。
【００２３】
１ブロツクのコードデータが走査された後、レジスタ２２にはあるサーチポイントでの評価値が保持されていることになる。この評価値は評価値メモリ２３に記憶される。このような演算をサーチポイントをずらしながら行つていくと、評価値メモリ２３には、全部で（２ｓ＋１）２  点の評価値Ｐ（ｈ、ｖ）が記憶される。次に評価値メモリ２３から評価値を読み出して、最小値検出回路２４で最小値の位置を検出する。このときの相対的な座標が求められ、ベクトル決定回路２５で第１又は第２の動きベクトルｍｖｉ  が出力される。
【００２４】
一方動きベクトル算出回路５で第１の動きベクトルｍｖ１  が算出されるまでの時間をＦＩＦＯ２６及びメモリ回路２７で補償すると共に、メモリ回路２７の読み出しは、第１の動きベクトルｍｖ１  で動き補償してサーチエリアの中心を動かし、さらにサーチエリアの範囲を縮小した形でアドレスコントロール２８でアドレスを指定して、ブロツクのデータを順次動きベクトル算出回路６に入力する。この結果動きベクトル算出回路６では、上述の動きベクトル算出回路５と同様にして第２の動きベクトルｍｖ２  が算出される。
【００２５】
第２の動きベクトルｍｖ２が算出されると、同様にＦＩＦＯ２９及びメモリ回路３０で遅延を補償すると共に、メモリ回路３０の読み出しは、第２の動きベクトルｍｖ２で動き補償してサーチエリアの中心を動かし、当該中心から上下左右方向に１画素単位で動かした範囲内で、アドレスコントロール３１でアドレスを指定してブロツクのデータを順次メモリ回路３２及び３３に出力する。
【００２６】
この最終段の動きベクトル検出は、第１及び第２の動きベクトル検出とは異なり、例えば８ビツトでなる画素値そのもので行う。メモリ回路３２及び３３に一旦記憶された現在ブロツクデータとサーチエリアの範囲内で切り出した過去ブロツクデータは順次出力され、評価値演算回路２０の減算回路３４及び絶対値回路３５で画素位置毎の差分の絶対値の演算が行われ、その結果が加算器３６及びレジスタ３７で、順次画素毎の積算が行われる。
【００２７】
１ブロツクのコードデータが走査された後、レジスタ３７にはあるサーチポイントでの評価値が保持されたことになる。この評価値は評価値メモリ３８に記憶される。このような演算をサーチポイントをずらしながら行つていくと、評価値メモリ３８には、例えば９点の評価値が記憶される。そして評価値メモリ３８から評価値を読み出して、最小値検出回路３９で評価値が最小となる位置を検出する。このときの相対的な座標が求められ、ベクトル決定回路４０で第３の動きベクトルｍｖ３  が出力される。第１の動きベクトルｍｖ１  、第２の動きベクトルｍｖ２  及び第３の動きベクトルｍｖ３  は加算器４１、４２で加算され、当該加算結果が入力画像データの動きベクトルｍｖとして、レジスタ４３に保持され外部に出力される。
【００２８】
以上の構成によれば、動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクＢ１と候補ブロツクＢ２を１ビツトＡＤＲＣで符号化し、そのコード値によつてマツチング演算を行つて動きベクトルｍｖ１  を算出し、その動きベクトルｍｖ１  で動き補償した後、サーチエリアをより小さくして、さらにブロツクを小さくして繰り返して動きベクトルｍｖ２  を求め、最終的には繰り返し求めた動きベクトルｍｖ２  に応じて動き補償した後、参照ブロツクＢ１及び候補ブロツクＢ２それぞれの画素値を用いて、サーチエリアの±１画素の範囲でマツチング演算を行つて動きベクトルｍｖ３  を求め、全ての動きベクトルｍｖ１  、ｍｖ２  、ｍｖ３  の和を出力すべき動きベクトルｍｖとして求めるようにしたことにより、簡易な構成でかつ十分に高い精度で動きベクトルｍｖを算出し得る。
【００２９】
（３）第２実施例の動きベクトル検出方法及び装置
この第２実施例の動きベクトル検出方法は、現在及び過去ブロツクのデータについて第１実施例の１ビツトＡＤＲＣによる符号化に代えて、ｎビツトＡＤＲＣのコード値に符号化するものである。実際上次のような操作を行つて動きベクトルを算出する。まず参照ブロツクＢ１とサーチエリア内の全候補ブロツクＢ２のデータから最大値及び最小値を検出し、その最大値及び最小値の差からダイナミツクレンジを求める。このダイナミツクレンジを２ｎ  で割り算して量子化ステツプ幅を求め、各ブロツクの画素値と最小値又は最大値との差分データをその量子化ステツプ幅で割り算し、ｎビツトのコードに符号化してｎビツトＡＤＲＣ符号化を行う。なおＡＤＲＣ符号化はＲＯＭと簡単なロジツクで実現される。
【００３０】
このようにしてｎビツトＡＤＲＣ符号化された参照ブロツクＢ１と候補ブロツクＢ２とのＡＤＲＣコード値のＭＳＢ（最上位桁ビツト）で、画素位置毎のマツチング演算として排他論理和（ＥＸＯＲ）演算し、その結果のブロツク内積算値として評価値Ｐ（ｈ、ｖ）を算出する。この操作をサーチエリア内で候補ブロツクＢ２の位置をずらしながら順次評価値を算出し、トータルで（２ｓ＋１）２  点の評価値Ｐ（ｈ、ｖ）を演算する。次に求められた評価値から最小値の位置を検出し、その相対的な座標値（ｈ、ｖ）を第１の動きベクトルとする。
【００３１】
続いてこのようにして求められた第１の動きベクトルで動き補償を行つた後、決定された第１の候補ブロツクを中心として、改めてサーチエリアをより小さく設定する。そしてＡＤＲＣコード値の最上位桁より２番目のビツトで同様にして、ブロツク毎のマツチング演算を行い、順次サーチエリア内で評価値Ｐ（ｈ、ｖ）を算出し、その評価値Ｐ（ｈ、ｖ）の最小点を検出することで第２の動きベクトルを算出する。
【００３２】
以下、順次ＡＤＲＣコード値の順次下位桁のビツトについてのマツチング演算を、サーチエリアをより小さくして繰り返すことによつて、第ｎの動きベクトルまで算出する。この第ｎの動きベクトルを使用して、さらに動き補償を行つた後、最終段では、画素値そのものを用いてサーチエリアの±１画素の範囲で従来と同様のブロツクマツチングを行い、第（ｎ＋１）の動きベクトルを算出する。最終的な動きベクトルは、第１〜第（ｎ＋１）の動きベクトルの和を計算することで求めるようになされている。
【００３３】
ここでこの実施例の動きベクトル検出装置１は図２と同様の構成でなり、動きベクトル検出回路４が、図５及び図６に示すように、大きく分けて４つの部分からなり、ＡＤＲＣ符号化を行うＡＤＲＣ符号化回路５０、第１の動きベクトルを算出する第１の動きベクトル算出回路５１及び第２の動きベクトルを算出する第２の動きベクトル算出回路５２、そして第３の動きベクトルを算出する残りの回路から構成されている。
【００３４】
まずＡＤＲＣ符号化回路５０において、入力された現在の参照ブロツクＢ１の画素値及びサーチエリア内で切り出された過去の候補ブロツクＢ２の画素値に基づき最大最小値回路５３で参照ブロツクＢ１の画素値とサーチエリア内の全候補ブロツクＢ２の画素値とにおける画素毎の差分の絶対値和を評価値Ｐ(ｈ、ｖ)として演算し、その評価値Ｐ(ｈ、ｖ)の最大値及び最小値を検出し、それぞれレジスタ５４、５５に保持する。保持された最大値及び最小値を減算器５６で減算してダイナミツクレンジを求めた後、そのダイナミツクレンジをレジスタ５７に保持する。
【００３５】
現在ブロツクデータに関しては遅延メモリ５８によつて適当な遅延の後、減算器６０において最小値を減算されレジスタ６２に保持する。同様に過去ブロツクデータに関しても遅延メモリ５９によつて遅延された後、減算器６１において最小値を減算されレジスタ６３に保持する。各々のデータは、それぞれダイナミツクレンジデータと共にＡＤＲＣ変換用ＲＯＭ６４及び６５に入力されて２ビツトＡＤＲＣ符号化され、それぞれレジスタ６６及び６７にコード値が保持される。
【００３６】
保持されたコード値は、そのＭＳＢ（最上位桁ビツト）が第１の動きベクトル算出回路５１に、そして最上位桁より２ビツト目（２ｎｄＭＳＢ、この場合はＬＳＢとなる）が遅延メモリ６８、６９を経て第２の動きベクトル算出回路５２に供給される。第１及び第２の動きベクトル算出回路５１及び５２は、同様の回路で構成されている。例えば第１の動きベクトル算出回路５１において、入力された現在のＡＤＲＣコード値のＭＳＢと過去のＡＤＲＣコード値のＭＳＢがＥＸＯＲゲート７０で比較され、一致した場合は値「０」の出力、異なる場合は値「１」の出力が次段の加算器７１及びレジスタ７２でブロツク内のデータ数の回数だけ積算される。なお、加算器７１及びレジスタ７２に代えてカウンタを用いても良い。
【００３７】
１ブロツクのコードデータが走査された後、レジスタ７２にはあるサーチポイントでの評価値が保持されていることになる。レジスタ７２の出力は一旦評価値テーブルメモリ７３に記憶される。以上の演算をサーチポイントをずらしながら行つていくと、評価値テーブルメモリ７３には、全部で（２ｓ＋１）２  点の評価値Ｐ（ｈ、ｖ）が記憶されていることになる。次に評価値メモリ回路７３から評価値Ｐ（ｈ、ｖ）を読み出して、ベクトル決定回路７４で評価値が最小となる位置を検出する。これにより最小値の位置の相対的な座標が求められ、第１の動きベクトルｍｖ１  が出力される。
【００３８】
一方、第１の動きベクトルｍｖ１  が算出されるまでの時間を遅延メモリ６８、６９で補償すると共に、遅延メモリ６９の読み出しは、第１の動きベクトルｍｖ１  を考慮してサーチエリアの中心を動かし、さらにサーチ範囲を縮小した形でアドレスコントロール７５でアドレスを指定してデータを出力する。これにより第２の動きベクトル検出回路５２にデータが入力され、動きベクトル検出回路５１と同様にして第２の動きベクトルｍｖ２  が算出される。
【００３９】
第２の動きベクトルｍｖ２が算出されると、遅延メモリ７６及び７７からの画素データは同様に遅延が補償されると共に、遅延メモリの読み出しは、加算器７８及びレジスタ７９を通じて得られる第１及び第２の動きベクトルｍｖ１及びｍｖ２の和を考慮してサーチエリアの中心を動かし、当該中心から上下左右方向に１画素単位で動かした範囲内で、アドレスコントロール８０でアドレスを指定して行われる。
【００４０】
最終段の動きベクトル検出は、第１及び第２の動きベクトルｍｖ１  及びｍｖ２  の検出とは異なり、例えば８ビツトでなる画素値そのもので行われる。すなわち遅延メモリ７６、７７に一旦記憶された現在ブロツクデータとサーチエリアの範囲内で切り出した過去ブロツクデータは順次出力され、減算器８１で画素位置毎の差分が計算され、絶対値化回路８２で絶対値が演算される。その結果が加算器８３を通してレジスタ８４に保持されて、順次画素毎の積算が行われる。１ブロツクのコードのコードデータが走査された後、レジスタ８４にはあるサーチポイントでの評価値が保持されていることになる。
【００４１】
この評価値は評価値テーブルメモリ８５に記憶される。このような演算をサーチポイントをずらしながら行つていくと、評価値メモリ８５には例えば９点の評価値が記憶される。次に評価値テーブルメモリ８５から評価値を読み出して、ベクトル決定回路８６で最小値の位置を検出し、このときの相対的な座標が求められ第３の動きベクトルｍｖ３  が出力される。第１の動きベクトルｍｖ１  、第２の動きベクトルｍｖ２  及び第３の動きベクトルｍｖ３  は加算器８７で加算され、当該加算結果が入力画像データの動きベクトルｍｖとしてレジスタ８８に保持され、外部に出力される。
【００４２】
以上の構成によれば、動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクＢ１と候補ブロツクＢ２をｎビツトＡＤＲＣで符号化し、そのコード値のＭＳＢによつてマツチング演算を行つて動きベクトルｍｖ１を算出し、その動きベクトルｍｖ１で動き補償した後、サーチエリアをより小さくし、さらにブロツクを小さくして繰り返し最上位桁より２ビツト目のビツトを用いてマツチング演算して動きベクトルｍｖ２を求め、最終的には繰り返し求めた動きベクトルに応じて動き補償した後、参照ブロツクＢ１及び候補ブロツクＢ２それぞれの画素値を用い、サーチエリアの中心を動かし、当該中心から上下左右方向に１画素単位で動かした範囲内でマツチング演算を行つて動きベクトルｍｖ３を求め、全ての動きベクトルｍｖ１、ｍｖ２、ｍｖ３の和を出力すべき動きベクトルｍｖとして求めるようにしたことにより、簡易な構成でかつ十分に高い精度で動きベクトルｍｖを算出し得る。
【００４３】
（４）第３実施例の動きベクトル検出方法及び装置
この第３実施例の動きベクトル検出方法においては、入力画像に対してラプラシアンフイルタ処理を施した後、動きベクトルを検出する。実際上ラプラシアンフイルタ処理の後、参照ブロツクとサーチエリア内の全候補ブロツクのデータは、０レベルを中心として＋の値と−の値に変化しており、特に画像のエツジ付近での変化が大きい。そこで、この実施例では、ＡＤＲＣによる符号化をする際に、極性を考慮した符号化を行う。
【００４４】
先ず、参照ブロツクとサーチエリア内の全候補ブロツクのデータの絶対値の最大値を検出し、当該最大値をダイナミツクレンジとする。このダイナミツクレンジを２ｎ  で割り算して量子化ステツプ幅を求め、各ブロツク内の画素値を当該量子化ステツプ幅で割り算することにより（符号＋ｎ）ビツトのコードに符号化する。すなわち（符号＋ｎ）ビツトのＡＤＲＣ符号化処理を行う。この場合、符号ビツトは、正のときに「０」とし、負のときに「１」とする。なお、この（符号＋ｎ）ビツトのＡＤＲＣ符号化はＲＯＭと簡単なロジツクで実現できる。
【００４５】
このように（符号＋ｎ）ビツトＡＤＲＣ符号化された参照ブロツクと候補ブロツクのＡＤＲＣコード値のうち符号ビツトを用いて、画素位置毎のマツチング演算として排他的論理和（ＥＸＯＲ）演算を行い、その結果のブロツク内積算値として評価値Ｐ（ｈ、ｖ）を算出する。この処理をサーチエリア内で候補ブロツクの位置をずらしながら行うことにより順次評価値を算出し、トータルで（２ｓ＋１）２  点の評価値Ｐ（ｈ、ｖ）を算出する。次に、求められた評価値が最小となる位置を検出し、その相対的な座標値（ｈ、ｖ）を第１の動きベクトルとする。
【００４６】
続いてこのようにして求められた第１の動きベクトルで動き補償を行つた後、サーチエリアをより小さく設定する。そしてＡＤＲＣコード値のＭＳＢ（最上位桁ビツト）で同様にして画素位置毎のマツチング演算（排他的論理和演算）を行い、順次サーチエリア内で評価値を算出し、当該評価値の最小点を検出することで第２の動きベクトルを算出する。
【００４７】
以下、順次ＡＤＲＣコード値の下位桁についてのマツチング演算を、サーチエリアをより小さくして繰り返すことによつて、第（ｎ＋１）の動きベクトルまで算出する。次にこの第（ｎ＋１）の動きベクトルを使用して、さらに動き補償を行つた後、最終段では、画素値そのものを用いてサーチエリアの±１画素の範囲で従来と同様のブロツクマツチングを行い、第（ｎ＋１）の動きベクトルを算出する。そして最終的な動きベクトルは、第１〜第（ｎ＋１）の動きベクトルの和を計算することで求めるようになされている。
【００４８】
ここでこの実施例の動きベクトル検出装置１００は、図７に示すように構成されており、入力画像データをラプラシアンフイルタ１０１に入力し、入力画像データに対してラプラシアンフイルタ１０１によつてラプラシアンフイルタ処理を施してから動きベクトルを検出する。動きベクトル検出装置１００はラプラシアンフイルタ処理後の画像データに対して走査変換回路１０２及びフレームメモリ１０３で、現在のフレーム（又はフイールド）Ｆ１と過去のフレーム（又はフイールド）Ｆ２のブロツクのデータを形成し、これらを動き検出回路１０４に送出する。
【００４９】
ここでラプラシアンフイルタ１０１は、例えば図８に示すような２次元のフイルタ係数とされている。実際上図８（Ａ）の２次元フイルタ係数を実現するためには、ラプラシアンフイルタ１０１を、図９に示すように構成すれば良い。すなわちラプラシアンフイルタ１０１は、入力画像データをそれぞれ１画素分の遅延時間を有する遅延素子（Ｄ）１０５〜１０７を介して１ライン分の遅延時間を有するラインデイレイ（Ｌｉｎｅ）１１２に送出する。そして各遅延素子１０５〜１０７の出力をそれぞれ乗算係数が−１に選定された乗算回路１０８〜１１０を介して積算回路１１１に送出する。
【００５０】
ラインデイレイ１１２の出力は、それぞれ１画素分の遅延時間を有する遅延素子１１３〜１１５を介して１ライン分の遅延時間を有するラインデイレイ１１９に送出される。そして各遅延素子１１３〜１１５の出力が、それぞれ乗算係数が−１、８、１に選定された乗算回路１１６、１１７、１１８を介して積算回路１１１に送出される。さらにラインデイレイ１１９の出力は、それぞれ１画素分の遅延時間を有する遅延素子１２０〜１２２に順次送出される。そして各遅延素子１２０〜１２２の出力が、それぞれ乗算係数が−１に選定された乗算回路１２３〜１２５を介して積算回路１１１に送出される。この結果積算回路１１１において積算された各乗算回路１０８〜１１０、１１６〜１１８及び１２３〜１２５の出力がラプラシアンフイルタ１０１の出力として遅延素子１２６を介して出力される。
【００５１】
またこの実施例の動きベクトル検出回路１０４は、図１０及び図１１に示すように、大きく分けて４つの部分からなり、（符号＋ｎ）ビツトのＡＤＲＣ符号化処理を行うＡＤＲＣ符号化回路１３０、第１の動きベクトルｍｖ１  を求める第１の動きベクトル算出回路１３１、第２の動きベクトルを求める第２の動きベクトル算出回路１３２、第３の動きベクトルｍｖ３  を求める第３の動きベクトル算出回路１３３、そして第４の動きベクトルｍｖ４  を求める残りの回路から構成されている。
【００５２】
まずＡＤＲＣ符号化回路１３０について説明する。ＡＤＲＣ符号化回路１３０は入力された現在のブロツク化された画素データ及びサーチエリア内で切り出された過去のブロツク化された画素データを絶対値化回路１３４でそれぞれ絶対値化した後、続く最大値検出回路１３５で最大値を検出し、これをダイナミツクレンジとしてレジスタ１３６に保持する。また現在ブロツクデータに関しては遅延回路１３７によつて適当に遅延した後順次レジスタ１３８に保持する。同様に過去のブロツクデータに関しても遅延回路１３９によつて遅延した後レジスタ１４０に保持する。このレジスタ１３８及び１４０に保持された各々のデータはそれぞれダイナミツクレンジデータと共にＡＤＲＣ変換用ＲＯＭ１４１及びＡＤＲＣ変換用ＲＯＭ１４２に入力され、（符号＋２）ビツトＡＤＲＣ符号化され、それぞれレジスタ１４３及び１４４にコード値が保持される。
【００５３】
保持されたコード値は、その符号ビツトがそのまま第１の動きベクトル算出回路１３１に、ＭＳＢが遅延メモリ１４５及び１４６を介して第２の動きベクトル算出回路１３２に、そして２ｎｄＭＳＢ（この場合はＬＳＢとなる）が遅延メモリ１４７及び１４８を介して第３の動きベクトル算出回路１３３に供給される。ここで第１、第２及び第３の動きベクトル算出回路１３１、１３２及び１３３は、第２実施例において上述した第１及び第２の動きベクトル算出回路５１及び５２（図６）と同様の構成でなり、入力されたＡＤＲＣコード値に対して排他的論理和（ＥＸＯＲ）演算を行い、その結果のブロツク内積算値として評価値Ｐ（ｈ、ｖ）を算出し、この評価値が最小となる位置を検出し、その相対的な座標値（ｈ、ｖ）をそれぞれの動きベクトルとする。
【００５４】
動きベクトル検出回路１０４においては、第１の動きベクトルｍｖ１  、第２の動きベクトルｍｖ２  、第３の動きベクトルｍｖ３  、第４の動きベクトルｍｖ４  の順に順次動き補償をしながらサーチエリアを小さくして動きベクトルを求めることにより最終的な動きベクトルｍｖを求めるのに要する演算量を低減するようになされている。
すなわち動きベクトル検出回路１０４は、第１の動きベクトル算出回路１３１によつて第１の動きベクトルｍｖ１  が求められると、これを加算器１４９及びアドレスコントロール１５０に送出する。そしてアドレスコントロール１５０は第１の動きベクトルｍｖ１  を考慮して、遅延メモリ１４６にサーチエリアの中心を動かすと共にサーチエリアを縮小した形のアドレスを指定して遅延メモリ１４６からデータを出力させる。
【００５５】
また第２の動きベクトルｍｖ２  が算出されると、これが加算器１４９に送出され、ここで第１及び第２の動きベクトルｍｖ１  及びｍｖ２  の和が算出され、これがレジスタ１５１を介して加算器１５２及びアドレスコントロール１５３に送出される。アドレスコントロール１５３は第１及び第２の動きベクトルｍｖ１  及びｍｖ２  の和を考慮して、遅延メモリ１４８にサーチエリアの中心を動かすと共にサーチエリアを縮小した形のアドレスを指定して遅延メモリ１４８からデータを出力させる。
【００５６】
さらに第３の動きベクトルｍｖ３  が算出されると、これが加算器１５２に送出され、ここで第１、第２及び第３の動きベクトルｍｖ１  、ｍｖ２  及びｍｖ３  の和が算出され、これがレジスタ１５４を介して加算器１５５及びアドレスコントロール１５６に送出される。ここで遅延回路１３７及び１３９からの画素データは遅延メモリ１５７及び１５８によつて上述の第１、第２及び第３の動きベクトルｍｖ１  、ｍｖ２  及びｍｖ３  を算出する時間分の遅延が補償されて格納されている。そしてアドレスコントロール１５６が、第１、第２及び第３の動きベクトルｍｖ１  、ｍｖ２  及びｍｖ３  の和を考慮して、遅延メモリ１５８にサーチエリアの中心を動かすと共にサーチエリアを縮小した形のアドレスを指定して遅延メモリ１５６からデータを出力させる。
【００５７】
最終段での動きベクトル検出（すなわち第４の動きベクトルｍｖ４  の検出）は、第１、第２及び第３の動きベクトルの検出とは異なり、（符号＋８）ビツトの画素値そのもので行う。すなわち遅延メモリ１５７及び１５８に一旦格納された現在ブロツクデータとサーチエリア内で切り出された過去のブロツクデータが順次出力され、減算器１５９で画素位置毎の差分が計算され、絶対値化回路１６０で絶対値が演算される。その結果が加算器１６１を通してレジスタ１６２に保持されて、順次画素毎の積算が行われる。１ブロツクのコードデータが走査された後、レジスタ１６２にはあるサーチポイントでの評価値が保持されていることになる。この評価値は評価値テーブルメモリ１６３に記憶される。このような演算をサーチポイントをずらしながら行つていくと、評価値テーブルメモリ１６３には例えば９点の評価値が記憶される。
【００５８】
次に評価値テーブルメモリ１６３から評価値を読み出し、ベクトル決定回路１６４によつて評価値が最小となる位置を検出し、このときの相対的な座標が求められ、第４の動きベクトルｍｖ４  が出力される。最終的に、第１、第２、第３及び第４の動きベクトルｍｖ１  、ｍｖ２  、ｍｖ３  及びｍｖ４  は加算器１５５で加算され、この加算結果が入力画像データの動きベクトルｍｖとしてレジスタ１６５に保持され、外部に出力される。
【００５９】
以上の構成において、この実施例の動きベクトル検出装置１００は、入力画像データに対してラプラシアンフイルタ処理を施してエツジ等の画像の特徴成分を強調したうえで、動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクＢ１と候補ブロツクＢ２を（符号＋ｎ）ビツトＡＤＲＣで符号化する。
【００６０】
次に、そのＡＤＲＣコード値のうち符号ビツト（極性を表すビツト）を用いて第１の動きベクトルｍｖ１  を算出し、その動きベクトルｍｖ１  で動き補償した後サーチエリアを小さくしてＡＤＲＣコード値のうち最上位桁ビツトを用いて第２の動きベクトルｍｖ２  を算出する。
【００６１】
次に、第１及び第２の動きベクトルｍｖ１及びｍｖ２の和に応じて動き補償した後サーチエリアを小さくしてＡＤＲＣコード値のうち２ビツト目のビツトを用いて第３の動きベクトルｍｖ３を算出する。次に第１、第２及び第３の動きベクトルｍｖ１、ｍｖ２及びｍｖ３の和に応じて動き補償した後、参照ブロツクＢ１及び候補ブロツクＢ２それぞれの画素を用いて、サーチエリアの中心を動かし、当該中心から上下左右方向に１画素単位で動かした範囲内でマツチング演算を行つて第４の動きベクトルｍｖ４を算出する。そして最後に、全ての動きベクトルｍｖ１、ｍｖ２、ｍｖ３、ｍｖ４の和を出力すべき動きベクトルｍｖとする。
【００６２】
以上の構成によれば、ラプラシアンフイルタ処理を施した入力画像データについて、順次分解能を上げるようにして動きベクトルｍｖを求めるようにしたことにより、画像の特徴を考慮した一段と高精度の動きベクトルｍｖを得ることができる。
【００６３】
（５）他の実施例
なお上述の第１及び第２の実施例においては、第１及び第２の動きベクトルを１ビツトＡＤＲＣ又はｎビツトＡＤＲＣで符号化したコードデータでそれぞれ求め、第３の動きベクトルについて画素値そのものを用いて求めた場合について述べたが、さらに複数階層の動きベクトルについて１ビツトＡＤＲＣ又はｎビツトＡＤＲＣで符号化したコードデータでそれぞれ求め、最終的な動きベクトルのみを画素値そのものを用いて求めるようにしても良い。
【００６４】
同様に、上述の第３実施例においては、（符号＋２）ビツトのコード値にＡＤＲＣ符号化されたデータを用いため、第３の動きベクトルまでをコード値を用いて求め、第４の動きベクトルを画素値そのものを用いて求めたが、さらに一般化して（符号＋ｎ）ビツトのコード値にＡＤＲＣ符号化されたデータを用いた場合には、第１の動きベクトルを符号ビツトにより求め、第２〜第（ｎ＋１）番目の動きベクトルを符号ビツト以外のコード値を用いて求め、最終的な動きベクトルのみを画素値そのものを用いて求めるようにすれば良い。
【００６５】
【発明の効果】
上述のように本発明によれば、参照ブロツク及び候補ブロツクの各画素の値をコード値に変換することにより演算量を大幅に削減し得ると共に、順次サーチエリアを狭くしていきながら算出した複数の動きベクトルの和を最終的な動きベクトルとして出力することができるので、簡易な構成でかつ十分に高い精度の最終的な動きベクトルを算出し得る。
また本発明によれば、参照ブロツクと全ての候補ブロツクとに含まれる全ての画素の値から検出した最大値及び最小値の差よりダイナミツクレンジを求め、参照ブロツク及び候補ブロツクの画素値と最大値又は最小値との差分をｎビツトのコード値に符号化し、サーチエリアを次第に小さくしながら当該コード値の最上位桁のビツトからその一つ下の桁のビツトまで順番に用いて参照ブロツク及び候補ブロツク毎のマツチング演算を行うことにより演算量を大幅に削減し、順次サーチエリアを狭くしていきながら算出した全ての動きベクトルの和を最終的な動きベクトルとして出力することができるので、簡易な構成でかつ十分に高い精度の最終的な動きベクトルを算出し得る。
【００６６】
さらに本発明によれば、入力画像データに対してラプラシアンフイルタ処理を施してエツジ等の画像の特徴成分を強調したうえで動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクにおける画素値及び候補ブロツクにおける画素値を、極性を表す符合を含む（符号＋ｎ）ビツトのコード値に符号化し、当該（符号＋ｎ）ビツトのコード値を用いて演算量を大幅に減らし、順次分解能を上げるようにして画像の特徴を考慮した一段と高精度の最終的な動きベクトルを得ることができる。
【図面の簡単な説明】
【図１】ブロツクマツチングによる動きベクトル検出の原理の説明に供する略線図である。
【図２】本発明による動きベクトル検出装置の概略構成を示すブロツク図である。
【図３】第１実施例による動きベクトル検出回路を示すブロツク図である。
【図４】第１実施例による動きベクトル検出回路を示すブロツク図である。
【図５】第２実施例による動きベクトル検出回路を示すブロツク図である。
【図６】第２実施例による動きベクトル検出回路を示すブロツク図である。
【図７】第３実施例による動きベクトル検出装置の概略構成を示すブロツク図てある。
【図８】第３実施例で用いるラプラシアンフイルタのフイルタ係数の例を示す略線図である。
【図９】ラプラシアンフイルタの構成例を示すブロツク図である。
【図１０】第３実施例による動きベクトル検出回路を示すブロツク図である。
【図１１】第３実施例による動きベクトル検出回路を示すブロツク図である。
【符号の説明】
１、１００……動きベクトル検出装置、２、１０２……走査変換回路、３、１０３……フレームメモリ、４、１０４……動きベクトル検出回路、５、６、５１、５２、１３１、１３２、１３３……動きベクトル算出回路、７、５３……最大最小値検出回路、８、９、１１、２２、３７、４３、５４、５５、６２、６３、６６、６７、７２、７２′、７９、８４、８８、１３６、１３８、１４０、１４３、１４４、１５１、１５４、１６２、１６５……レジスタ、１０、２１、４１、３６、４２、７１、７１′、７８、８３、８７、１４９、１５２、１５５、１６１……加算器、１２、１３、２６……ＦＩＦＯ、１４、１５……比較回路、１６、１７、２７、３０、３２、３３……メモリ、１８、２０……評価値演算回路、１９、７０、７０′……ＥＸＯＲゲート、２３、３８……評価値メモリ、２４、３９……最小値検出回路、２５、４０、７４、７４′、８６、１６４……ベクトル決定回路、２８、３１、７５、８０、１５０、１５３、１５６……アドレスコントロール、３４、５６、６０、６１、８１、１５９……減算器、３５、８２、１３４……絶対値化回路、５０、１３０……ＡＤＲＣ符号化回路、５８、５９、６８、６９、７６、７７、１３７、１３９、１４５、１４６、１４７、１４８、１５７、１５８…………遅延メモリ、６４、６５、１４１、１４２……ＡＤＲＣコード変換ＲＯＭ、７３、７３′、８５、１６３……評価値テーブルメモリ、１０１……ラプラシアンフイルタ、１０５〜１０７、１１３〜１１５、１２０〜１２２、１２６……デイレイ、１０８〜１１０、１１６〜１１８、１２３〜１２５……乗算回路、１１１……積算回路、１１２、１１９……ラインデイレイ、１３５……最大値検出回路、ｍｖ１  ……第１の動きベクトル、ｍｖ２  ……第２の動きベクトル、ｍｖ３  ……第３の動きベクトル、ｍｖ４  ……第４の動きベクトル、ｍｖ……動きベクトル。
【図１】
0003627872.tif 000003
【図２】
0003627872.tif 000004
【図３】
0003627872.tif 000005
【図４】
0003627872.tif 000006
【図５】
0003627872.tif 000007
【図６】
0003627872.tif 000008
【図７】
0003627872.tif 000009
【図８】
0003627872.tif 000010
【図９】
0003627872.tif 000011
【図１０】
0003627872.tif 000012
【図１１】
0003627872.tif 000013