(57)【特許請求の範囲】
【請求項１】
処理の対象となるフレーム画像と処理の基準となるフレーム画像の間でブロックマッチングを行う方法において、
前記処理の基準となるフレーム画像の所定探索範囲において、粗い精度で前記処理の対象となるフレーム画像のブロックのマッチングをとる第１マッチング工程と、
第１マッチング工程を行った時点で良好なマッチングを示した複数ブロックの位置の相互関係をもとに、最良マッチングを得ることのできる可能性の高い探索方向をしぼり込む判定工程と、
しぼり込まれた探索方向において、密な精度で前記処理の対象となるフレーム画像のマッチングをとる第２マッチング工程と、
を含むことを特徴とするブロックマッチング探索方法。
【請求項２】
前記判定工程は、第１マッチング工程を行った時点で最も良好なマッチングを示したブロックの位置の中心と、二番目に良好なマッチングを示したブロックの位置の中心を結ぶ方向を主たる方向として探索方向をしぼり込む請求項１に記載の方法。
【請求項３】
処理の対象となるフレーム画像と処理の基準となるフレーム画像の間でブロックマッチングを行う装置において、
前記処理の基準となるフレーム画像の所定探索範囲において、粗い精度で前記処理の対象となるフレーム画像のブロックのマッチングをとる第１マッチング手段と、
第１マッチング手段によって良好なマッチングを示した複数ブロックの位置の相互関係をもとに、最良マッチングを得ることのできる可能性の高い探索方向をしぼり込む判定手段と、
しぼり込まれた探索方向において、密な精度で前記処理の対象となるフレーム画像のマッチングをとる第２マッチング手段と、
を含むことを特徴とするブロックマッチング探索装置。
【請求項４】
前記判定手段は、
第１マッチング手段によるマッチングの結果最も良好なマッチングを示すブロックの位置を検出する第１検出手段と、
第１マッチング手段によるマッチングの結果二番目に良好なマッチングを示すブロックの位置を検出する第２検出手段と、
第１および第２検出手段における検出結果を利用して探索方向をしぼり込む範囲設定手段と、
を含む請求項３に記載の装置。
【請求項５】
前記第１マッチング手段は整数画素精度でマッチングを行い、前記第２マッチング手段は半整数画素精度でマッチングを行う請求項３、４のいずれかに記載の装置。
【請求項６】
前記第１マッチング手段は探索の対象点を間引いた粗い整数画素精度でマッチングを行い、前記第２マッチング手段は第１マッチング手段よりも密な整数画素精度でマッチングを行う請求項３〜５のいずれかに記載の装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は、ブロックマッチング探索方法と装置、とくに、処理の対象となるフレーム画像と処理の基準となるフレーム画像の間でブロック単位にマッチングを行う方法と、その方法を用いた装置に関する。
【０００２】
【従来の技術】
近年、各種映像関連機器や通信技術の進展に伴い、画像をより少ない符号量で、より高い画質を維持しながら伝送または記録することに対する要望はますます高まりつつある。こうした背景から、ビデオ・コーデックとよばれる画像符号化伝送装置では、動き補償を用いた画像符号化が採用されることがある。動き補償とは、あるフレーム画像Ａが入力されたとき、先に入力されていたフレーム画像Ｂに対する画像データの差分と動きベクトルなどを利用して、フレーム画像Ａの符号量を低減する方式をいう。動きベクトルを算出する際、フレーム画像Ａとフレーム画像Ｂの間でブロックマッチングが行われることが多い。
【０００３】
特開平５−４０８２８号公報には、ブロックマッチングの演算量を低減する探索方式が提案されている。この方式では、まず第１段階において、全データ平面にわたって飛び飛びのブロックマッチング検査を行い、最適候補ブロックを探索する。つぎに第二段階で、最適候補ブロックを取り囲む所定範囲内で詳細なブロックマッチングを行う。この二段階の処理で最終的に最適なブロックデータを得る。この結果、最初から全データ平面に対して詳細なブロックマッチングを行うことに比べ、トータルの演算量が低減される。
【０００４】
【発明が解決しようとする課題】
このブロックマッチング探索方式では、第一段階を導入することで演算量を減らすことができるが、第二段階については最適候補ブロックの周囲にわたって合計８回の詳細なブロックマッチングが必要になる。第二段階では、例えば半画素（ハーフペル）の精度でブロックマッチングが行われるため、まず周囲８方向にある半画素精度の再生画像データ値を算出し、それらの基準フレーム画像に対する歪み量、すなわち画像データの差分絶対値和を算出するよう構成されている。したがって、８方向にわたる演算量はやはり膨大であり、また演算に必要なメモリのワークエリアも大きくなる。ハードウエアも高速に設計しなければならない。
【０００５】
本発明はこうした点に鑑みてなされたもので、その目的は、ブロックマッチングの最終結果の妥当性を確保しながら、さらに演算量を低減し、ハードウエアをよりコンパクトにし、ハードウエアに要求される高速性を緩和することのできるブロックマッチング探索方法およびその方法を用いた装置の提供にある。
【０００６】
【課題を解決するための手段】
本発明のブロックマッチング探索方法は、処理の対象となるフレーム画像と処理の基準となるフレーム画像の間でブロックマッチングを行う方法である。この方法は、前記処理の基準となるフレーム画像の所定探索範囲において、粗い精度で前記処理の対象となるフレーム画像のブロックのマッチングをとる第１マッチング工程と、第１マッチング工程を行った時点で良好なマッチングを示した複数ブロックの位置の相互関係をもとに、最良マッチングを得ることのできる可能性の高い探索方向をしぼり込む判定工程を含む。さらに、しぼり込まれた探索方向において、密な精度で前記処理の対象となるフレーム画像のマッチングをとる第２マッチング工程を含むものである。
【０００８】
このとき、前記判定工程は、第１マッチング工程を行った時点で最も良好なマッチングを示したブロックの位置の中心と、二番目に良好なマッチングを示したブロックの位置の中心を結ぶ方向を主たる方向として探索方向をしぼり込むことができる。
【０００９】
一方、本発明のブロックマッチング探索装置は、処理の対象となるフレーム画像と処理の基準となるフレーム画像の間でブロックマッチングを行う装置である。この装置は、前記処理の基準となるフレーム画像の所定探索範囲において、粗い精度で前記処理の対象となるフレーム画像のブロックのマッチングをとる第１マッチング手段と、第１マッチング手段によって良好なマッチングを示した複数ブロックの位置の相互関係をもとに、最良マッチングを得ることのできる可能性の高い探索方向をしぼり込む判定手段とを含む。また、しぼり込まれた探索方向において、密な精度で前記処理の対象となるフレーム画像のマッチングをとる第２マッチング手段を含むものである。
【００１０】
また前記判定手段は、第１マッチング手段によるマッチングの結果最も良好なマッチングを示すブロックの位置を検出する第１検出手段と、第１マッチング手段によるマッチングの結果二番目に良好なマッチングを示すブロックの位置を検出する第２検出手段と、第１および第２検出手段における検出結果をもとに探索方向をしぼり込む範囲設定手段とを含むことができる。
【００１１】
さらに、前記第１マッチング手段は整数画素精度でマッチングを行い、前記第２マッチング手段は半整数画素精度でマッチングを行うことができる。
【００１２】
または、前記第１マッチング手段は探索の対象点を間引いた粗い整数画素精度でマッチングを行い、前記第２マッチング手段は第１マッチング手段よりも密な整数画素精度でマッチングを行うことができる。
【００１３】
【発明の実施の形態】
本発明の好適な実施の形態を適宜図面を参照しながら説明する。
【００１４】
実施の形態１．
図１は実施の形態１に係るブロックマッチング探索装置の構成を示す図である。同図において、１は処理の対象となるフレーム画像データが順次入力される入力フレームバッファ、２は先に入力された、処理の基準となるフレーム画像データが格納されているフレームバッファ、３は入力フレームバッファ１より出力される入力データブロック、４はフレームバッファ２より出力される再生画像データブロック、５は整数画素精度の歪み量を演算する第１マッチング部、１０は所定探索範囲（例えば両フレームで位置的に近い範囲）内の各ブロックに関して第１マッチング部５から出力される歪み量、６は第１マッチング部５におけるマッチング結果をもとに最良マッチングを得ることのできる可能性の高い探索方向をしぼり込む判定部、７はしぼり込まれた探索方向において半画素精度の歪み量を演算する第２マッチング部、８は第２マッチング部７の出力を受けて動きベクトルを計算する動きベクトル算出部、２２は算出された動きベクトルである。
【００１５】
判定部６において、１１は第１マッチング部５のマッチング結果のうち最小歪み量を与える（すなわちマッチング結果が最良である）再生画像データブロックの位置を検出し、当該ブロックの入力データブロックに対する相対位置を示すベクトル（ｖｅｃｔｏｒ＿ｍｉｎと表記）を出力する第１検出部、１３は第１検出部１１から出力されるｖｅｃｔｏｒ＿ｍｉｎ、１２は第１マッチング部５のマッチング結果のうち二番目に小さな歪み量を与える（すなわちマッチング結果が二番目によい）再生画像データブロックの位置を検出し、当該ブロックの入力データブロックに対する相対位置を示すベクトル（ｖｅｃｔｏｒ＿ｓｅｃｏｎｄと表記）を出力する第２検出部、１４は第２検出部１２から出力されるｖｅｃｔｏｒ＿ｓｅｃｏｎｄ、１５はｖｅｃｔｏｒ＿ｍｉｎ１３とｖｅｃｔｏｒ＿ｓｅｃｏｎｄ１４を受けて半画素精度のブロックマッチングによって動きベクトルを検索すべき範囲を設定する範囲設定部、１６は範囲設定部１５の出力である動きベクトルの検索範囲（以下、単に検索範囲という）である。
【００１６】
第２マッチング部７において、１８は検索範囲１６において半画素精度で再生画像データを算出する画像再生部、１９は半画素精度で再生された再生画像データ、２０は再生画像データ１９を利用して半画素精度の歪み量を演算する演算部、２１は演算で求められる歪み量である。
【００１７】
次に動作について説明する。
まず第１マッチング部５は、入力フレームバッファ１に蓄積された入力ブロックデータを入力する。これとともに、フレームバッファ２より動きベクトルの所定探索範囲内の再生画像データブロックを読み込み、入力データブロックと、整数画素精度の探索点における再生画像データブロックとの歪み量Ｅ（Ｖｘ，Ｖｙ）を式１に基づき算出する。ここで、所定の動きベクトル探索範囲は、入力データブロックの位置を中心としたＸ軸方向±１６、Ｙ軸方向±１６の近傍範囲であるとする。
【００１８】
【数１】
0003539835.tif 000002
ここで、Ａ（ｘ，ｙ）は入力データブロックの画素値、Ａ’（ｘ，ｙ）は再生画像データブロックの画素値、ＶｘとＶｙは入力データブロックの位置を基準とする移動量（−１６≦Ｖｘ，Ｖｙ≦１６）である。
【００１９】
第１検出部１１では、第１マッチング部５より出力された複数の歪み量Ｅ（Ｖｘ，Ｖｙ）のうち最小の歪み量Ｅ＿ｍｉｎを求め、Ｅ＿ｍｉｎを与える再生画像データブロックの入力データブロックに対する相対位置を示すベクトル（Ｖｘ＿ｍｉｎ，Ｖｙ＿ｍｉｎ）、すなわちｖｅｃｔｏｒ＿ｍｉｎ１３を検出する。一方、第２検出部１２ではＥ（Ｖｘ，Ｖｙ）の中で２番目に小さい歪み量Ｅ＿ｓｅｃｏｎｄを求め、Ｅ＿ｓｅｃｏｎｄを与える再生画像データブロックの入力データブロックに対する相対位置を示すベクトルｖｅｃｔｏｒ＿ｓｅｃｏｎｄ１４を出力する。
【００２０】
範囲設定部１５は、ｖｅｃｔｏｒ＿ｍｉｎ１３とｖｅｃｔｏｒ＿ｓｅｃｏｎｄ１４との関係に基づき検索範囲１６を設定する。設定例を図２を用いて説明する。同図中●はｖｅｃｔｏｒ＿ｍｉｎ１３で決まる位置、すなわち第１マッチング部５において最良のマッチングが得られた位置（以下「仮の最良位置」という）を示し、（ａ）、（ｂ）、（ｃ）、（ｄ）、（ｅ）、（ｆ）、（ｇ）、（ｈ）は、それぞれ仮の最良位置の左上、直上、右上、直左、直右、左下、直下、右下の半画素位置に対応する。
【００２１】
図２に示すように仮の最良位置を中心に周囲を８つの領域１〜領域８に分割する。ここで、仮の最良位置を原点として見たｖｅｃｔｏｒ＿ｓｅｃｏｎｄ１４の示す位置（すなわち、ｖｅｃｔｏｒ＿ｓｅｃｏｎｄ１４−ｖｅｃｔｏｒ＿ｍｉｎ１３で決まるベクトルの示す位置で、以下「可能性のある最良位置」ともいう）が領域１に属していれば検索範囲１６を（ｂ）に設定し、以下同様に同図の各領域に付される英字に従って検索範囲１６を設定する。
【００２２】
第２マッチング部７ではまず、画像再生部１８にて検索範囲１６に対応する半画素精度の再生画像データ１９を算出する。図３は算出例を説明する図である。図中Ａ〜Ｉを整数画素精度の再生画像データが対応する位置、ａ〜ｈを半画素精度の再生画像データ１９が対応する位置とすれば、ａ〜ｈの画素値はそれぞれ式２〜９によって算出される。
【００２３】
ａ＝（Ａ＋Ｂ＋Ｄ＋Ｅ＋２）／４      （式２）
ｂ＝（Ｂ＋Ｅ＋１）／２              （式３）
ｃ＝（Ｂ＋Ｃ＋Ｅ＋Ｆ＋２）／４      （式４）
ｄ＝（Ｄ＋Ｅ＋１）／２              （式５）
ｅ＝（Ｅ＋Ｆ＋１）／２              （式６）
ｆ＝（Ｄ＋Ｅ＋Ｇ＋Ｈ＋２）／４      （式７）
ｇ＝（Ｅ＋Ｈ＋１）／２              （式８）
ｈ＝（Ｅ＋Ｆ＋Ｈ＋Ｉ＋２）／４      （式９）
ここで、例えば式２に含まれる定数「２」は、後の四捨五入をこの段階で疑似的に実行してしまうためのソフトウエア技法にもとづくものであり、Ａ〜Ｉの一文字につき０．５を付加した結果生じる。
【００２４】
図４は可能性のある最良位置が仮の最良位置の真上にある場合の半画素精度の再生画像データブロックを示す。この場合、仮の最良位置にある再生画像データブロック（図中太枠５０で表示）の各点に対し、真上方向の探索を考慮した式３を用いて半画素精度の再生画像データブロック（図中細枠５１で表示）を算出する。この計算は従来の技術で８通り行っていたため、この部分の演算量は理論上１／８になる。
【００２５】
つづいて、再生画像データブロックをもとに、演算部２０で精細なブロックマッチングを行う。ここでは、可能性のある最良位置の再生画像データブロック（図４の細枠）と入力データブロックとの歪み量Ｅｈ（Ｖｘｈ，Ｖｙｈ）が式１０で算出される。
【００２６】
【数２】
0003539835.tif 000003
Ａ'h（ｘ＋Ｖｘｈ，ｙ＋Ｖｙｈ）は半画素精度の再生画像データブロックを示す。ここでは真上方向を考慮するため、Ｖｘｈ＝０、Ｖｙｈ＝０．５に関する計算が行われる。この計算の結果は歪み量２１として動きベクトル算出部８へ与えられる。式１０の計算は、従来の技術で説明した方法であれば、Ｖｘｈ、Ｖｙｈ＝−０．５、０、０．５として、Ｖｘｈ＝Ｖｙｈ＝０の場合（つまり仮の最良位置）を除く合計８回の計算を要した部分であり、本実施の形態では式１０に関する演算量も理論上１／８になる。
【００２７】
最後に、動きベクトル算出部８において、可能性のある最良位置における歪み量２１と、すでに第１マッチング部５の演算によって求められている仮の最良位置におけるＥ＿ｍｉｎとを比較し、より少ないほうをもとに動きベクトルを決定する。したがって、仮の最良位置および可能性のある最良位置のうち、最終的に最良と考えられる位置が選択される。この選択にしたがい、動きベクトル２２が出力される。
【００２８】
図５は本実施の形態によるブロックマッチングの手順を示すフローチャートである。同図のごとく、まずＳ２において、入力データブロックと動きベクトルの所定探索範囲内の再生画像データブロックの歪み量Ｅ（Ｖｘ，Ｖｙ）が式１で算出される。Ｓ３ではＳ２で計算した歪み量Ｅ（Ｖｘ，Ｖｙ）とその時点での歪み量の最小値であるＥ＿ｍｉｎとの比較を行い、Ｅ＿ｍｉｎ＞Ｅ（Ｖｘ，Ｖｙ）なら、Ｓ４でＥ＿ｍｉｎ、Ｅ＿ｓｅｃｏｎｄ、ｖｅｃｔｏｒ＿ｍｉｎ１３、ｖｅｃｔｏｒ＿ｓｅｃｏｎｄ１４が更新される。Ｅ（Ｖｘ，Ｖｙ）≧Ｅ＿ｍｉｎならＳ５に進む。
【００２９】
Ｓ５では所定探索範囲内のすべての再生画像データブロックに関する歪み量の算出が終了したか否かを判断し、未終了ならＳ６にて再生画像データブロックの更新を行いＳ２に戻る。Ｓ５で終了と判断した場合、Ｓ７に進む。Ｓ７ではｖｅｃｔｏｒ＿ｍｉｎ１３とｖｅｃｔｏｒ＿ｓｅｃｏｎｄ１４との関係に基づき、半画素精度の検索範囲１６、すなわち可能性のある最良位置を決定する。つづくＳ８では、式２〜式９のいずれかを用いて検索範囲１６に対応する半画素精度の再生画像データブロックを算出する。
【００３０】
Ｓ９では、入力データブロックとＳ８にて求めた再生画像データブロックとの歪み量Ｅｈ（Ｖｘｈ，Ｖｙｈ）を式１０に基づき算出する。Ｓ１０では、Ｓ９で算出した、可能性のある最良位置における歪み量Ｅｈ（Ｖｘｈ，Ｖｙｈ）と仮の最良位置における歪み量Ｅ＿ｍｉｎとの比較を行い、Ｅ＿ｍｉｎ＞Ｅｈ（Ｖｘｈ，Ｖｙｈ）ならＳ１１においてＥ＿ｍｉｎの更新とｖｅｃｔｏｒ＿ｍｉｎ１３の更新を行う。Ｅｈ（Ｖｘｈ，Ｖｙｈ）≧Ｅ＿ｍｉｎならＳ１２に進み、ｖｅｃｔｏｒ＿ｍｉｎ１３を出力する。この後、最終的なｖｅｃｔｏｒ＿ｍｉｎ１３に基づいて動きベクトル２２が決定される。
【００３１】
以上のように、この実施の形態によれば、第１マッチング部５において良好なマッチングを示した複数ブロックの位置の相互関係をもとに、最良なマッチングが得られるであろう探索方向がしぼり込まれるため、演算量の大幅な削減、処理時間の短縮が可能となる。この結果、演算に必要なメモリ等のハードウェアもコンパクトにすることができる。
【００３２】
なお本実施の形態では、図２において、可能性のある最良位置としてただひとつの位置を検索範囲１６として定めたが、当然これ以外の方法もある。例えば仮の最良位置から見たｖｅｃｔｏｒ＿ｓｅｃｏｎｄ１４が以下の領域に存在するとき、右に示す３方向を可能性のある最良位置として検索範囲１６に設定し、探索に幅をもたせてもよい。
【００３３】
・領域１…（ａ）、（ｂ）、（ｃ）
・領域３…（ｃ）、（ｅ）、（ｈ）
・領域５…（ｆ）、（ｇ）、（ｈ）
・領域７…（ａ）、（ｄ）、（ｆ）
また、領域と検索方向の関係についても、図２の代わりに図６を採用してもよい。図６の場合、領域２、４、６、８がそれぞれ４つの象現のひとつに対応し、領域１はｙ＞０，ｘ＝０、領域３はｘ＞０，ｙ＝０、領域５はｙ＜０，ｘ＝０、領域７はｘ＜０，ｙ＝０にそれぞれ対応する。図２、図６のいずれを採用するかについては、実験等で適宜決めればよい。
【００３４】
実施の形態２．
実施の形態１では、第２マッチング部７による検索範囲１６を決定するのにｖｅｃｔｏｒ＿ｍｉｎ１３とｖｅｃｔｏｒ＿ｓｅｃｏｎｄ１４を用いた。ここではさらに、３番目に小さな歪みをもつ再生画像データブロックに対応する動きベクトルｖｅｃｔｏｒ＿ｔｈｉｒｄも考慮する場合を説明する。
【００３５】
図７は、実施の形態２に係るブロックマッチング探索装置の構成を示すブロック図である。同図において、３０はｖｅｃｔｏｒ＿ｔｈｉｒｄを考慮して検索範囲１６を決定する判定部、４０はｖｅｃｔｏｒ＿ｔｈｉｒｄを検出する第３検出部、４１はｖｅｃｔｏｒ＿ｔｈｉｒｄ、４２は半画素精度でベクトルを検索するための範囲設定部である。その他の構成は図１と同等であり、図１と同一の符号を与えて説明を省略する。
【００３６】
この装置の動作を説明する。実施の形態１同様、第１マッチング部５では歪み量Ｅ（Ｖｘ，Ｖｙ）が、第１検出部１１ではＥ＿ｍｉｎが、第２検出部１２ではＥ＿ｓｅｃｏｎｄが検出される。さらに第３検出部４０ではＥ（Ｖｘ，Ｖｙ）のうち３番目に小さい歪み量Ｅ＿ｔｈｉｒｄを求め、Ｅ＿ｔｈｉｒｄを与える再生画像データブロックの入力データブロックに対する相対位置を示すベクトルｖｅｃｔｏｒ＿ｔｈｉｒｄ４１を出力する。
【００３７】
範囲設定部４２では、ｖｅｃｔｏｒ＿ｍｉｎ１３とｖｅｃｔｏｒ＿ｓｅｃｏｎｄ１４とｖｅｃｔｏｒ＿ｔｈｉｒｄ４１との関係に基づき、半画素精度の検索範囲１６を求める。領域と検索方向の関係について図２の表記を利用するものとし、検索範囲１６の設定は例えば図８、９によって行うことができる。
【００３８】
図８は、ｖｅｃｔｏｒ＿ｍｉｎ１３が示す仮の最良位置を原点にした場合にｖｅｃｔｏｒ＿ｓｅｃｏｎｄ１４が領域２、４、６、８に含まれるときの検索範囲１６の設定例、図９は同様にｖｅｃｔｏｒ＿ｓｅｃｏｎｄ１４が領域１、３、５、７に含まれるときの検索範囲１６の設定例をそれぞれ示している。
【００３９】
図８のごとく、ｖｅｃｔｏｒ＿ｓｅｃｏｎｄ１４が領域２、４、６、８に含まれる場合はｖｅｃｔｏｒ＿ｔｈｉｒｄ４１は不参照（ドントケア）であり、検索範囲１６はそれぞれ（ｃ）、（ｈ）、（ｆ）、（ａ）と決まる。一方、ｖｅｃｔｏｒ＿ｓｅｃｏｎｄ１４が領域１、３、５、７に含まれる場合はｖｅｃｔｏｒ＿ｔｈｉｒｄ４１も参照され、例えば、ｖｅｃｔｏｒ＿ｓｅｃｏｎｄ１４が領域１、ｖｅｃｔｏｒ＿ｔｈｉｒｄ４１が領域３に含まれれば検索範囲は（ｃ）のみとなる。本実施の形態によるブロックマッチングの手順は、図５のＳ４においてさらにＥ＿ｔｈｉｒｄおよびｖｅｃｔｏｒ＿ｔｈｉｒｄを更新すれば足り、全体手順は図５のままでよい。
【００４０】
以上、この実施の形態によれば、ｖｅｃｔｏｒ＿ｔｈｉｒｄ４１も加えて検索範囲を設定するため、設定された検索範囲の妥当性を高める効果がある。このことから逆に、図８、９のごとく最終的な検索範囲をひとつに絞ることも容易であり、演算量とハードウエアを大幅に削減することができる。なお、本実施の形態についても、領域と探索方向については図２の代わりに図６など別の関係を用いることができる。
【００４１】
実施の形態３．
実施の形態１、２では、第１マッチング部５における探索を整数画素精度、第２マッチング部７における探索を半画素精度で行った。ここでは、前者を粗い整数画素精度、後者をそれよりも密な整数画素精度で行う場合を説明する。
【００４２】
本実施の形態に係るブロックマッチング探索装置の構成は図１と同等である。ただし、第１マッチング部５は実施の形態１などと異なり、粗い整数画素精度で歪み量を演算する。判定部６の第１検出部１１は、第１マッチング部５における最小の歪み量に対応するｖｅｃｔｏｒ＿ｍｉｎ１３を検出し、同様に第２検出部１２は２番目に小さい歪み量に対応するｖｅｃｔｏｒ＿ｓｅｃｏｎｄ１４を検出する。範囲設定部１５はこれら２つのベクトルから実施の形態１同様の方法で検索範囲を設定する。第２マッチング部７の画像再生部１８は、設定された検索範囲において密の整数画素精度で再生画像データ１９を算出する。演算部２０は、密の整数画素精度で歪み量２１を演算する。動きベクトル算出部８は、その演算結果を参照して動きベクトル２２を出力する。
【００４３】
次に動作を説明する。
まず第１マッチング部５は、入力フレームバッファ１に蓄積された入力ブロックデータを入力する。これとともに、フレームバッファ２より動きベクトルの所定探索範囲内の再生画像データブロックを読み込み、入力データブロックと粗い整数画素精度の探索点の再生画像データブロックとの歪み量Ｅ（Ｖｘ，Ｖｙ）を式１１に基づき算出する。所定探索範囲は入力データブロックの位置を中心としたＸ軸方向±１６、Ｙ軸方向±１６の範囲であり、粗い整数精度の探索は１画素おきに行う。
【００４４】
【数３】
0003539835.tif 000004
ここで、Ａ（ｘ，ｙ）は入力データブロック、Ａ”（ｘ，ｙ）は粗い精度の探索点に対応する再生画像データブロック、ＶｘとＶｙは入力データブロックの位置を示す座標を基準とした移動量（Ｖｘ＝２Ｎｘ，Ｖｙ＝２Ｎｙ，−８≦Ｎｘ，Ｎｙ≦８）である。したがって、第１マッチング部５は、
0003539835.tif 000005
を順に算出することになる。
【００４５】
以下、実施の形態１の整数画素精度、半整数画素精度の処理をそれぞれ粗い整数画素精度、より密な整数画素精度の処理に読み替えることで本実施の形態の処理が実現する。例えば、第２マッチング部７の演算部２０における密な整数画素精度の歪み量Ｅｍ（Ｖｘｍ，Ｖｙｍ）は、式１０のかわりにつぎの式で計算される。
【００４６】
【数４】
0003539835.tif 000006
ここでＡ”h（ｘ＋Ｖｘｍ，ｙ＋Ｖｙｍ）は密な整数画素精度の再生画像データブロックを示す。ＶｘｍとＶｙｍは、探索方向にしたがって−１、０、１のいずれかをとる。
【００４７】
以上のように、この実施の形態によれば、実施の形態１同様の効果を別の処理、すなわち粗い整数画素精度とより密な整数画素精度の二段階マッチングで実現できる。この実施の形態によれば、第１マッチング部５による演算回数が実施の形態１の場合より減る。したがって、実施の形態１はより高画質を、実施の形態３はより少ない演算量と処理時間をそれぞれ目的とする用途に使い分ければよい。
【００４８】
なお、本実施の形態についても実施の形態２同様、３番目に良好な結果を示すｖｅｃｔｏｒ＿ｔｈｉｒｄ４１を加味してもよい。その場合、実施の形態２の整数画素精度、半整数画素精度の処理をそれぞれ粗い整数画素精度、より密な整数画素精度の処理に読み替えればよい。
【００４９】
また、以上の実施の形態では差分絶対値和によるブロックマッチング演算の例を示した。しかしこのほかにも、二乗和など他の差分を用いることができる。また、ここでは本発明を例えば動き補償フレーム間符号化へ応用する場合を示したが、同一のフレーム画像内で互いに最も類似したブロックデータを探索する場合にも適用できる。この場合、処理の対象となるフレーム画像と処理の基準となるフレーム画像は同じものとなる。
【００５０】
さらに、ここでは二段階のマッチングを「整数画素精度→半整数画素精度」または「粗い整数画素精度→より密な整数画素精度」としたが、これらを組み合わせて「粗い整数画素精度→半整数画素精度」とする変形例も考えられる。
【００５１】
【発明の効果】
本発明のブロックマッチング探索方法によれば、密な精度によるマッチングの前に、最良マッチングを得ることのできる可能性の高い探索方向がしぼり込まれるため、演算量の低減、ハードウエアの簡素化、処理時間の短縮が実現する。
【００５２】
粗い精度で良好なマッチングを示した複数ブロックの位置の相互関係をもとに探索方向をしぼり込む場合は、しぼり込みの結果が妥当性をもつ。
【００５３】
粗い精度で最も良好なマッチングを示したブロックの位置の中心と、二番目に良好なマッチングを示したブロックの位置の中心を結ぶ方向を主たる方向として探索方向をしぼり込む場合は、経験則にもとづく自然なしぼり込みが実現する。
【００５４】
一方、本発明のブロックマッチング探索装置によれば、密な精度によるマッチングの前に、最良マッチングを得ることのできる可能性の高い探索方向がしぼり込まれるため、演算量の低減、ハードウエアの簡素化、処理時間の短縮が実現する。
【００５５】
粗い精度のマッチングの結果最も良好なマッチングを示すブロックの位置を検出する第１検出手段と、同様に二番目に良好なマッチングを示すブロックの位置を検出する第２検出手段を含む場合、探索方向のしぼり込みに妥当性を持たせることができる。
【００５６】
整数画素精度のマッチングと半整数画像精度のマッチングの二段階処理を行う場合、高画質を維持しながら演算量を低減できる。
【００５７】
粗い整数画素精度のマッチングと、より密な整数画素精度のマッチングの二段階処理を行う場合、さらなる演算量の低減が実現する。
【図面の簡単な説明】
【図１】実施の形態１に係るブロックマッチング探索装置の構成を示す図である。
【図２】実施の形態１において、ｖｅｃｔｏｒ＿ｍｉｎの示す位置を基準としたときにｖｅｃｔｏｒ＿ｓｅｃｏｎｄが属する領域と、設定される検索範囲の関係を示す図である。
【図３】実施の形態１において、画像再生部による再生画像データの算出例を説明する図である。
【図４】実施の形態１において、可能性のある最良位置が仮の最良位置の直上にある場合の半画素精度の再生画像データブロックを示す図である。
【図５】実施の形態１によるブロックマッチングの手順を示すフローチャートである。
【図６】実施の形態１において、ｖｅｃｔｏｒ＿ｍｉｎの示す位置を基準としてときにｖｅｃｔｏｒ＿ｓｅｃｏｎｄが属する領域と、設定される検索範囲の別の関係を示す図である。
【図７】実施の形態２に係るブロックマッチング探索装置の構成を示すブロック図である。
【図８】実施の形態２において設定される検索範囲を示す図である。
【図９】実施の形態２において設定される検索範囲を示す図である。
【符号の説明】
１  入力フレームバッファ、２  フレームバッファ、３  入力データブロック、４  再生画像データブロック、５  第１マッチング部、６  判定部、７  第２マッチング部、８  動きベクトル算出部、１０  歪み量、１１  第１検出部、１２  第２検出部、１３  ｖｅｃｔｏｒ＿ｍｉｎ、１４  ｖｅｃｔｏｒ＿ｓｅｃｏｎｄ、１５  範囲設定部、１６  検索範囲、１８  画像再生部、１９  再生画像データ、２０  演算部、２１  歪み量、２２  動きベクトル、３０  判定部、４０  第３検出部、４１  ｖｅｃｔｏｒ＿ｔｈｉｒｄ、４２  範囲設定部、５０  仮の最良位置にある再生画像データブロック、５１  半画素精度の再生画像データブロック。
【図１】
0003539835.tif 000007
【図２】
0003539835.tif 000008
【図３】
0003539835.tif 000009
【図４】
0003539835.tif 000010
【図５】
0003539835.tif 000011
【図６】
0003539835.tif 000012
【図７】
0003539835.tif 000013
【図８】
0003539835.tif 000014
【図９】
0003539835.tif 000015