JP3627872B2 - 動きベクトル検出方法及び装置 - Google Patents
動きベクトル検出方法及び装置 Download PDFInfo
- Publication number
- JP3627872B2 JP3627872B2 JP09140095A JP9140095A JP3627872B2 JP 3627872 B2 JP3627872 B2 JP 3627872B2 JP 09140095 A JP09140095 A JP 09140095A JP 9140095 A JP9140095 A JP 9140095A JP 3627872 B2 JP3627872 B2 JP 3627872B2
- Authority
- JP
- Japan
- Prior art keywords
- motion vector
- value
- search area
- block
- motion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Landscapes
- Picture Signal Circuits (AREA)
- Color Television Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
【目次】
以下の順序で本発明を説明する。
産業上の利用分野
従来の技術
発明が解決しようとする課題
課題を解決するための手段
作用
実施例
(1)動きベクトル検出の原理(図1)
(2)第1実施例の動きベクトル検出方法及び装置(図2〜図4)
(3)第2実施例の動きベクトル検出方法及び装置(図2、図5及び図6)
(4)第3実施例の動きベクトル検出方法及び装置(図7〜図11)
(5)他の実施例
発明の効果
【0002】
【産業上の利用分野】
本発明は動きベクトル検出方法及び装置に関し、特に時間的に異なる2つの画像データを用いて画像の動きベクトルを検出するものに適用し得る。
【0003】
【従来の技術】
従来、動画像の処理として、動きベクトルすなわち時間的に異なる画像中の物体の動き方向と大きさや速さを用いるものがある。例えば画像の高能率符号化における動き補償フレーム間符号化や、フレーム間時間領域フイルタによるテレビジヨン雑音低減装置における動きによるパラメータ制御等に、動きベクトルが用いられる。この画像の動きベクトルを求める動きベクトル検出方法として、ブロツクマツチング法がある(特公昭54−124927 号公報)。
【0004】
このブロツクマツチング法では、まず1つの画面を適当な数画素からなるブロツクに分割する。続いてこのようにブロツク化された画像データを参照ブロツクとし、当該参照ブロツクが動いた領域を検索するために、時間的に異なる画面の対応する領域を含むようにブロツク化した画像データを候補ブロツクとする。この参照ブロツクと候補ブロツクとのマツチング演算を、サーチ領域内で1画素ずつずらしながら行い、評価値が最小となる最適値を求めることにより、参照ブロツクの動きベクトルを検出する。
【0005】
【発明が解決しようとする課題】
ところがブロツクマツチング法で動きベクトルを検出する際には、検出対象のブロツクの全ての画素に対して、検出範囲となる全てのサーチ領域をくまなくサーチし、その差分を求める必要がある。このため動きベクトルを検出する計算量が大きくなり、装置自体が大型化したり演算時間が長くなる問題があつた。
【0006】
本発明は以上の点を考慮してなされたもので、簡易な回路構成で階層的にレベル方向で分解能を上げて精度良く動きベクトルを検出し得る動きベクトル検出方法及び装置を提案しようとするものである。
【0007】
【課題を解決するための手段】
かかる課題を解決するため本発明においては、動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクとサーチエリア内の全ての候補ブロツクとに含まれる画素の値から最大値及び最小値を検出する最大最小値検出ステツプと、最大値及び最小値の和の1/2の値と参照ブロツク及び候補ブロツクの各画素の値とを比較演算して、参照ブロツク及び候補ブロツクの各画素の値を値「1」又は値「0」のコード値に符号化する符号化ステツプと、サーチエリア内で候補ブロツクの位置をずらし、コード値を用いて参照ブロツク及び候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を動きベクトルとする動きベクトル検出ステツプと、直前の動きベクトル検出ステツプで求められた動きベクトルで動き補償を行つた後、直前のサーチエリアより小さいサーチエリアで、最大最小値検出ステツプ、符号化ステツプ及び動きベクトル検出ステツプを実行して、他の動きベクトルを算出する動きベクトル算出ステツプをn回(nは0以上の整数)繰り返し、n個の動きベクトルを算出する繰返しステツプと、動きベクトル検出ステツプ及び繰返しステツプで求められた動きベクトルのうち、最後に求められた動きベクトルに応じて動き補償を行つた後、参照ブロツク及び候補ブロツクそれぞれの画素値を用いて、最後に求められたサーチエリアに対して上下左右、所定画素数の範囲縮小したサーチエリアについてマツチング演算を行い、当該演算値が最小の位置を画素値による動きベクトルとする画素値による動きベクトル検出ステツプと、動きベクトル検出ステツプ、繰返しステツプ及び画素値による動きベクトル検出ステツプで求められた複数の動きベクトルの和を求め、動きベクトルの和を最終的な動きベクトルとして出力する動きベクトル出力ステツプとを設けるようにする。
【0008】
また本発明においては、動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクとサーチエリア内の全ての候補ブロツクとに含まれる全ての画素の値から最大値及び最小値を検出する最大最小値検出ステツプと、最大値及び最小値の差よりダイナミツクレンジを求め、参照ブロツク及び候補ブロツクの画素値と最大値又は最小値との差分をnビツトのコード値に符号化する符号化ステツプと、サーチエリア内で候補ブロツクの位置をずらし、当該符号化されたコード値の最上位桁ビツトを用いて参照ブロツク及び候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を動きベクトルとする動きベクトル検出ステツプと、直前の動きベクトル検出ステツプで求められた動きベクトルで動き補償を行つた後、直前のサーチエリアより小さいサーチエリアで、直前に用いられたコード値の桁よりも一つ下の桁のビツトを用いて、参照ブロツク及び候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を他の動きベクトルとする動きベクトル算出ステツプをn回(nは0以上の整数)繰り返す繰返しステツプと、動きベクトル検出ステツプ及び繰返しステツプで求められた動きベクトル、又は動きベクトル検出ステツプ及び繰返しステツプで求められた動きベクトルのうち最後に求められた動きベクトルに応じて動き補償を行つた後、参照ブロツク及び候補ブロツクそれぞれの画素値を用いて、最後に求められたサーチエリアに対して上下左右、所定画素数の範囲縮小したサーチエリアについてマツチング演算を行い、当該演算値が最小の位置を画素値による動きベクトルとする画素値による動きベクトル検出ステツプと、動きベクトル検出ステツプ、繰返しステツプ及び画素値による動きベクトル検出ステツプで求められた複数の動きベクトルの和を求め、動きベクトルの和を最終的な動きベクトルとして出力する動きベクトル出力ステツプとを設けるようにする。
【0009】
さらに本発明においては、入力画像データに対してラプラシアンフイルタ処理を施すラプラシアンフイルタ処理ステツプと、ラプラシアンフイルタ処理が施された画像から、動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクとサーチエリア内の全ての候補ブロツクとに含まれる画素の値の絶対値から最大値を検出する最大値検出ステツプと、最大値を参照ブロツクとサーチエリア内の全ての候補ブロツクのダイナミツクレンジとして、各参照ブロツク及び各候補ブロツクの画素値を、極性を表す符合を含む(符号+n)ビツトのコード値に符号化する符号化ステツプと、サーチエリア内で候補ブロツクの位置を順次ずらし、コード値の符号ビツトを用いて参照ブロツクと候補ブロツクとのマツチング演算を行い、当該演算値が最小の位置を第1の動きベクトルとする第1の動きベクトル検出ステツプと、第1の動きベクトルで動き補償を行つた後、サーチエリアをより小さくして、コード値の最上位桁ビツトを用いて、参照ブロツク及び候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を第2の動きベクトルとする第2の動きベクトル検出ステツプと、直前の第2の動きベクトル検出ステツプで求められた第2の動きベクトルで動き補償を行つた後、直前のサーチエリアより小さいサーチエリアで、直前に用いられたコード値の桁よりも一つ下の桁のビツトを用いて、参照ブロツク及び候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を他の動きベクトルとする動きベクトル算出ステツプをn回(nは0以上の整数)繰り返す繰返しステツプと、第1、第2動きベクトル検出ステツプ及び繰返しステツプで求められた動きベクトル、又は第1、第2の動きベクトル検出ステツプ及び繰返しステツプで求められた動きベクトルのうち最後に求められた動きベクトルに応じて動き補償を行つた後、参照ブロツク及び候補ブロツクそれぞれの画素値を用いて、最後に求められたサーチエリアに対して上下左右、所定画素数の範囲縮小したサーチエリアについてマツチング演算を行い、当該演算値が最小の位置を画素値による動きベクトルとする画素値による動きベクトル検出ステツプと、第1、第2の動きベクトル検出ステツプ、繰返しステツプ及び画素値による動きベクトル検出ステツプで求められた複数の動きベクトルの和を求め、動きベクトルの和を最終的な動きベクトルとして出力する動きベクトル出力ステツプとを設けるようにする。
【0010】
【作用】
動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクとサーチエリア内の全ての候補ブロツクとに含まれる画素の値から最大値及び最小値を検出し、最大値及び最小値の和の1/2の値と参照ブロツク及び候補ブロツクの各画素の値とを比較演算して、参照ブロツク及び候補ブロツクの各画素の値を値「1」又は値「0」のコード値に符号化し、サーチエリア内で候補ブロツクの位置をずらし、コード値を用いて参照ブロツク及び候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を動きベクトルとして求め、直前に求められた動きベクトルで動き補償を行つた後、直前のサーチエリアより小さいサーチエリアで、最大最小値検出処理、符号化処理及び動きベクトル検出処理を実行して他の動きベクトルを算出する処理をn回繰り返してn個の動きベクトルを算出し、最後に求められた動きベクトルに応じて動き補償を行つた後、参照ブロツク及び候補ブロツクそれぞれの画素値を用いて、最後に求められたサーチエリアに対して上下左右、所定画素数の範囲縮小したサーチエリアについてマツチング演算を行い、当該演算値が最小の位置を画素値による動きベクトルとし、これら複数の動きベクトルの和を最終的な動きベクトルとして出力するようにしたことにより、参照ブロツク及び候補ブロツクの各画素の値をコード値に変換することにより演算量を大幅に削減し得ると共に、順次サーチエリアを狭くしていきながら算出した複数の動きベクトルの和を最終的な動きベクトルとして出力することができるので、簡易な構成でかつ十分に高い精度の最終的な動きベクトルを算出し得る。
また、動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクとサーチエリア内の全ての候補ブロツクとに含まれる全ての画素の値から最大値及び最小値を検出し、最大値及び最小値の差よりダイナミツクレンジを求め、参照ブロツク及び候補ブロツクの画素値と最大値又は最小値との差分をnビツトのコード値に符号化し、サーチエリア内で候補ブロツクの位置をずらし、当該符号化されたコード値の最上位桁ビツトを用いて参照ブロツク及び候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を動きベクトルとして求め、直前に求められた動きベクトルで動き補償を行つた後、直前のサーチエリアより小さいサーチエリアで、直前に用いられたコード値の桁よりも一つ下の桁のビツトを用いて、参照ブロツク及び候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を他の動きベクトルとする処理をn回(nは0以上の整数)繰り返し、これらによつて求められた動きベクトルのいずれかに応じて動き補償を行つた後、参照ブロツク及び候補ブロツクそれぞれの画素値を用いて、最後に求められたサーチエリアに対して上下左右、所定画素数の範囲縮小したサーチエリアについてマツチング演算を行い、当該演算値が最小の位置を画素値による動きベクトルとし、これら複数の動きベクトルの和を最終的な動きベクトルとして出力するようにしたことにより、参照ブロツクと全ての候補ブロツクとに含まれる全ての画素の値から検出した最大値及び最小値の差よりダイナツクレンジを求め、参照ブロツク及び候補ブロツクの画素値と最大値又は最小値との差分をnビツトのコード値に符号化し、サーチエリアを次第に小さくしながら当該コード値の最上位桁のビツトからその一つ下の桁のビツトまで順番に用いて参照ブロツク及び候補ブロツク毎のマツチング演算を行うことにより演算量を大幅に削減し、順次サーチエリアを狭くしていきながら算出した全ての動きベクトルの和を最終的な動きベクトルとして出力することができるので、簡易な構成でかつ十分に高い精度の最終的な動きベクトルを算出し得る。
【0011】
さらに、入力画像データに対してラプラシアンフイルタ処理が施された画像から、動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクとサーチエリア内の全ての候補ブロツクとに含まれる画素の値の絶対値から最大値を検出し、最大値を参照ブロツクとサーチエリア内の全ての候補ブロツクのダイナミツクレンジとして、各参照ブロツク及び各候補ブロツクの画素値を、極性を表す符合を含む(符号+n)ビツトのコード値に符号化し、サーチエリア内で候補ブロツクの位置を順次ずらし、コード値の符号ビツトを用いて参照ブロツクと候補ブロツクとのマツチング演算を行い、当該演算値が最小の位置を第1の動きベクトルとし、第1の動きベクトルで動き補償を行つた後、サーチエリアをより小さくして、コード値の最上位桁ビツトを用いて、参照ブロツク及び候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を第2の動きベクトルとし、直前に求められた第2の動きベクトルで動き補償を行つた後、直前のサーチエリアより小さいサーチエリアで、直前に用いられたコード値の桁よりも一つ下の桁のビツトを用いて、参照ブロツク及び候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を他の動きベクトルとする処理をn回(nは0以上の整数)繰り返し、これらによつて求められた動きベクトルのいずれかに応じて動き補償を行つた後、参照ブロツク及び候補ブロツクそれぞれの画素値を用いて、最後に求められたサーチエリアに対して上下左右、所定画素数の範囲縮小したサーチエリアについてマツチング演算を行い、当該演算値が最小の位置を画素値による動きベクトルとし、これら複数の動きベクトルの和を最終的な動きベクトルとして出力するようにしたことにより、入力画像データに対してラプラシアンフイルタ処理を施してエツジ等の画像の特徴成分を強調したうえで動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクにおける画素値及び候補ブロツクにおける画素値を、極性を表す符合を含む(符号+n)ビツトのコード値に符号化し、当該(符号+n)ビツトのコード値を用いて演算量を大幅に減らし、順次分解能を上げるようにして画像の特徴を考慮した一段と高精度の最終的な動きベクトルを得ることができる。
【0012】
【実施例】
以下図面について、本発明の一実施例を詳述する。
【0013】
(1)動きベクトル検出の原理
一般的に動きベクトルを検出する方法として、ブロツクマツチングが行われる。これは、図1に示すように、現在のフレーム(又はフイールド)F1をm画素×n画素の大きさのブロツクに分割して得られる参照ブロツクB1と、過去のフレーム(又はフイールド)F2のサーチエリア内(±s画素)に存在する候補ブロツクB2との画素毎の差分の絶対値和を評価値P(h、v)として演算し、次式
【数1】
に示すように、サーチエリア内で候補ブロツクB2を1画素毎にずらしてトータル(2s+1)2点の評価値P(h、v)を演算する。これらの評価値P(h、v)の最小値を求めることによつて、その最小値が示す相対的座標値(h、v)を該参照ブロツクB1の動きベクトルとする手法である。トータルの演算数は、演算量=ブロツク数×サーチポイント数×評価式数で表される。この場合、サーチポイント数は(2s+1)2であり、評価式数は減算(m×n)、絶対値演算(m×n)、加算(m×n−1)の和となる。
【0014】
ここで動き検出のハードウエアを小さくするためには、上式の各項目を減らす必要があるが、ブロツク数は変えることができないので、サーチポイント数又は評価式数を減らすしかない。サーチポイント数を減らす手法としては、3ステツプ方式や正射影方式がある。またサーチポイント数と評価式数を同時に減らす手法として階層化方式がある。しかしながらマツチング演算自体は画素のレベル(8ビツト)そのもので行われているため、さらにハードウエアを小さくするためこの実施例ではマツチング演算の対象となる画素の語長を減らすようになされている。
【0015】
(2)第1実施例の動きベクトル検出方法及び装置
この第1実施例の動きベクトル検出方法では、時間的に連続する2枚のフレーム(又はフイールド)F1、F2の画像から、現在のフレームF1についてはm画素×n画素の大きさのブロツクに分割し、その中のある参照ブロツクB1に関して過去のフレーム(又はフイールド)F2からの動きベクトルを算出することを前提とする。現在のフレーム(又はフイールド)F1の参照ブロツクB1のデータは、上述の分割したブロツクからあるブロツクを順次選択して供給し、過去のフレーム(又はフイールド)F2での候補ブロツクB2のデータは参照ブロツクB1の空間的位置と同じ位置を中心としてサーチエリア(±s画素)SAの中を順次動かして供給する。
【0016】
この第1実施例の動きベクトル検出方法では、次のような処理を行つて動きベクトルを算出する。まず参照ブロツクB1の画素値とサーチエリアSA内の全候補ブロツクB2の画素値とにおける画素毎の差分の絶対値和を評価値P(h、v)として演算し、その評価値P(h、v)の最大値及び最小値を検出し、その最大値及び最小値の和の1/2をしきい値として、各ブロツクの画素値とそれぞれ比較演算することによつて、1ビツトADRC(adaptive dynamic range coding)処理を行うことにより、参照ブロツクB1及び候補ブロツクB2の画素値を、値「1」又は値「0」のコード値に符号化する。
【0017】
次に各ブロツクのコード値を用いて参照ブロツクB1と候補ブロツクB2の画素位置毎のマツチング演算として差分の絶対値和を求め、評価値P(h、v)を算出する。なお評価値の計算は、コード値の排他的論理和(EXOR)をとつて求めても良い。この操作をサーチエリアSA内で候補ブロツクB2の位置をずらしながら、順次評価値を算出し、トータルで(2s+1)2 点の評価値P(h、v)を演算する。次に求められた評価値に基づいて最小値の位置を検出し、その相対的な座標値(h、v)を第1の動きベクトルとする。
【0018】
続いてこのようにして求められた第1の動きベクトルで動き補償を行つた後、決定された第1の候補ブロツクB2を中心として、改めてサーチエリアSAをより小さく設定する。そして上述の操作を再度行うことによつて第2の動きベクトルを算出する。以下、適当な回数だけ、求めた動きベクトルで動き補償すると共にサーチエリアSAをより小さくして上述の操作を繰り返すことによつて、第(n−1)の動きベクトルを算出する。次に第(n−1)の動きベクトルを使用して、さらに動き補償を行つた後、最終段では、画素値そのものを用いてサーチエリアSAの中心を動かし、当該中心から上下左右方向に1画素単位で動かした範囲内で従来のブロツクマツチングを行い第nの動きベクトルを算出する。最終的な動きベクトルは、上述で求めた第1〜第nの動きベクトルの和を計算することで求められる。
【0019】
ここで、図2にこの実施例の動きベクトル検出装置1の概略構成を示す。この動きベクトル検出装置1では、動きベクトル検出の前提として、入力される画像データについて走査変換回路2及びフレームメモリ3で、現在のフレーム(又はフイールド)F1と過去のフレーム(又はフイールド)F2のブロツクのデータを生成し、これを動きベクトル検出回路4に供給する。この動きベクトル検出回路4は、図3に示すように、大きく分けて3つの部分からなり、第1の動きベクトルmv1 を求める動きベクトル算出回路5、第2の動きベクトルmv2 を求める動きベクトル算出回路6、そして第3の動きベクトルmv3 を算出する残りの回路から構成されている。
【0020】
このうち動きベクトル算出回路5及び6については同様で、図4に示すように構成されている。この動きベクトル算出回路5及び6は、入力された現在の参照ブロツクB1の画素値及び過去の候補ブロツクB2の画素値に基づき最大最小値回路7で参照ブロツクB1の画素値とサーチエリアSA内の全候補ブロツクB2の画素値とにおける画素毎の差分の絶対値和を評価値P(h、v)として演算し、その評価値P(h、v)の最大値及び最小値を検出し、それぞれレジスタ8、9に保持する。これによりレジスタ8、9に保持された最大値及び最小値は、加算器10で加算された後ビツトシフトされて1/2倍され、その結果をレジスタ11に保持する。レジスタ11の値は、1ビツトADRCを行うためのしきい値となる。
【0021】
このしきい値が算出されるまでの遅延分をFIFO12、13で補償し、比較回路14、15によつて現在及び過去ブロツクデータとしきい値が比較され、しきい値より大きいときは値「1」、小さいときは値「0」のコードデータが出力される。これにより1ビツトADRCが実行される。比較回路14、15の出力は、一旦メモリ回路16、17に記憶される。
【0022】
メモリ回路16、17の読み出しは、現在ブロツクのコードデータとサーチエリアの範囲内で切り出した過去ブロツクのコードデータとが順次出力され、評価値演算回路18で画素位置毎の演算値の積算が行われる。評価値演算回路18ではイクスクルーシブオア(EXOR)回路19で、排他的論理和によるマツチングの度合いが計られる。つまりコードデータが一致していると値「0」が出力され、一致していないと値「1」が出力され積算される。この評価値演算回路18と同じ動作をするものが評価値演算回路20(図3)で、ここでは差分の絶対値を積算する。
【0023】
1ブロツクのコードデータが走査された後、レジスタ22にはあるサーチポイントでの評価値が保持されていることになる。この評価値は評価値メモリ23に記憶される。このような演算をサーチポイントをずらしながら行つていくと、評価値メモリ23には、全部で(2s+1)2 点の評価値P(h、v)が記憶される。次に評価値メモリ23から評価値を読み出して、最小値検出回路24で最小値の位置を検出する。このときの相対的な座標が求められ、ベクトル決定回路25で第1又は第2の動きベクトルmvi が出力される。
【0024】
一方動きベクトル算出回路5で第1の動きベクトルmv1 が算出されるまでの時間をFIFO26及びメモリ回路27で補償すると共に、メモリ回路27の読み出しは、第1の動きベクトルmv1 で動き補償してサーチエリアの中心を動かし、さらにサーチエリアの範囲を縮小した形でアドレスコントロール28でアドレスを指定して、ブロツクのデータを順次動きベクトル算出回路6に入力する。この結果動きベクトル算出回路6では、上述の動きベクトル算出回路5と同様にして第2の動きベクトルmv2 が算出される。
【0025】
第2の動きベクトルmv2が算出されると、同様にFIFO29及びメモリ回路30で遅延を補償すると共に、メモリ回路30の読み出しは、第2の動きベクトルmv2で動き補償してサーチエリアの中心を動かし、当該中心から上下左右方向に1画素単位で動かした範囲内で、アドレスコントロール31でアドレスを指定してブロツクのデータを順次メモリ回路32及び33に出力する。
【0026】
この最終段の動きベクトル検出は、第1及び第2の動きベクトル検出とは異なり、例えば8ビツトでなる画素値そのもので行う。メモリ回路32及び33に一旦記憶された現在ブロツクデータとサーチエリアの範囲内で切り出した過去ブロツクデータは順次出力され、評価値演算回路20の減算回路34及び絶対値回路35で画素位置毎の差分の絶対値の演算が行われ、その結果が加算器36及びレジスタ37で、順次画素毎の積算が行われる。
【0027】
1ブロツクのコードデータが走査された後、レジスタ37にはあるサーチポイントでの評価値が保持されたことになる。この評価値は評価値メモリ38に記憶される。このような演算をサーチポイントをずらしながら行つていくと、評価値メモリ38には、例えば9点の評価値が記憶される。そして評価値メモリ38から評価値を読み出して、最小値検出回路39で評価値が最小となる位置を検出する。このときの相対的な座標が求められ、ベクトル決定回路40で第3の動きベクトルmv3 が出力される。第1の動きベクトルmv1 、第2の動きベクトルmv2 及び第3の動きベクトルmv3 は加算器41、42で加算され、当該加算結果が入力画像データの動きベクトルmvとして、レジスタ43に保持され外部に出力される。
【0028】
以上の構成によれば、動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクB1と候補ブロツクB2を1ビツトADRCで符号化し、そのコード値によつてマツチング演算を行つて動きベクトルmv1 を算出し、その動きベクトルmv1 で動き補償した後、サーチエリアをより小さくして、さらにブロツクを小さくして繰り返して動きベクトルmv2 を求め、最終的には繰り返し求めた動きベクトルmv2 に応じて動き補償した後、参照ブロツクB1及び候補ブロツクB2それぞれの画素値を用いて、サーチエリアの±1画素の範囲でマツチング演算を行つて動きベクトルmv3 を求め、全ての動きベクトルmv1 、mv2 、mv3 の和を出力すべき動きベクトルmvとして求めるようにしたことにより、簡易な構成でかつ十分に高い精度で動きベクトルmvを算出し得る。
【0029】
(3)第2実施例の動きベクトル検出方法及び装置
この第2実施例の動きベクトル検出方法は、現在及び過去ブロツクのデータについて第1実施例の1ビツトADRCによる符号化に代えて、nビツトADRCのコード値に符号化するものである。実際上次のような操作を行つて動きベクトルを算出する。まず参照ブロツクB1とサーチエリア内の全候補ブロツクB2のデータから最大値及び最小値を検出し、その最大値及び最小値の差からダイナミツクレンジを求める。このダイナミツクレンジを2n で割り算して量子化ステツプ幅を求め、各ブロツクの画素値と最小値又は最大値との差分データをその量子化ステツプ幅で割り算し、nビツトのコードに符号化してnビツトADRC符号化を行う。なおADRC符号化はROMと簡単なロジツクで実現される。
【0030】
このようにしてnビツトADRC符号化された参照ブロツクB1と候補ブロツクB2とのADRCコード値のMSB(最上位桁ビツト)で、画素位置毎のマツチング演算として排他論理和(EXOR)演算し、その結果のブロツク内積算値として評価値P(h、v)を算出する。この操作をサーチエリア内で候補ブロツクB2の位置をずらしながら順次評価値を算出し、トータルで(2s+1)2 点の評価値P(h、v)を演算する。次に求められた評価値から最小値の位置を検出し、その相対的な座標値(h、v)を第1の動きベクトルとする。
【0031】
続いてこのようにして求められた第1の動きベクトルで動き補償を行つた後、決定された第1の候補ブロツクを中心として、改めてサーチエリアをより小さく設定する。そしてADRCコード値の最上位桁より2番目のビツトで同様にして、ブロツク毎のマツチング演算を行い、順次サーチエリア内で評価値P(h、v)を算出し、その評価値P(h、v)の最小点を検出することで第2の動きベクトルを算出する。
【0032】
以下、順次ADRCコード値の順次下位桁のビツトについてのマツチング演算を、サーチエリアをより小さくして繰り返すことによつて、第nの動きベクトルまで算出する。この第nの動きベクトルを使用して、さらに動き補償を行つた後、最終段では、画素値そのものを用いてサーチエリアの±1画素の範囲で従来と同様のブロツクマツチングを行い、第(n+1)の動きベクトルを算出する。最終的な動きベクトルは、第1〜第(n+1)の動きベクトルの和を計算することで求めるようになされている。
【0033】
ここでこの実施例の動きベクトル検出装置1は図2と同様の構成でなり、動きベクトル検出回路4が、図5及び図6に示すように、大きく分けて4つの部分からなり、ADRC符号化を行うADRC符号化回路50、第1の動きベクトルを算出する第1の動きベクトル算出回路51及び第2の動きベクトルを算出する第2の動きベクトル算出回路52、そして第3の動きベクトルを算出する残りの回路から構成されている。
【0034】
まずADRC符号化回路50において、入力された現在の参照ブロツクB1の画素値及びサーチエリア内で切り出された過去の候補ブロツクB2の画素値に基づき最大最小値回路53で参照ブロツクB1の画素値とサーチエリア内の全候補ブロツクB2の画素値とにおける画素毎の差分の絶対値和を評価値P(h、v)として演算し、その評価値P(h、v)の最大値及び最小値を検出し、それぞれレジスタ54、55に保持する。保持された最大値及び最小値を減算器56で減算してダイナミツクレンジを求めた後、そのダイナミツクレンジをレジスタ57に保持する。
【0035】
現在ブロツクデータに関しては遅延メモリ58によつて適当な遅延の後、減算器60において最小値を減算されレジスタ62に保持する。同様に過去ブロツクデータに関しても遅延メモリ59によつて遅延された後、減算器61において最小値を減算されレジスタ63に保持する。各々のデータは、それぞれダイナミツクレンジデータと共にADRC変換用ROM64及び65に入力されて2ビツトADRC符号化され、それぞれレジスタ66及び67にコード値が保持される。
【0036】
保持されたコード値は、そのMSB(最上位桁ビツト)が第1の動きベクトル算出回路51に、そして最上位桁より2ビツト目(2ndMSB、この場合はLSBとなる)が遅延メモリ68、69を経て第2の動きベクトル算出回路52に供給される。第1及び第2の動きベクトル算出回路51及び52は、同様の回路で構成されている。例えば第1の動きベクトル算出回路51において、入力された現在のADRCコード値のMSBと過去のADRCコード値のMSBがEXORゲート70で比較され、一致した場合は値「0」の出力、異なる場合は値「1」の出力が次段の加算器71及びレジスタ72でブロツク内のデータ数の回数だけ積算される。なお、加算器71及びレジスタ72に代えてカウンタを用いても良い。
【0037】
1ブロツクのコードデータが走査された後、レジスタ72にはあるサーチポイントでの評価値が保持されていることになる。レジスタ72の出力は一旦評価値テーブルメモリ73に記憶される。以上の演算をサーチポイントをずらしながら行つていくと、評価値テーブルメモリ73には、全部で(2s+1)2 点の評価値P(h、v)が記憶されていることになる。次に評価値メモリ回路73から評価値P(h、v)を読み出して、ベクトル決定回路74で評価値が最小となる位置を検出する。これにより最小値の位置の相対的な座標が求められ、第1の動きベクトルmv1 が出力される。
【0038】
一方、第1の動きベクトルmv1 が算出されるまでの時間を遅延メモリ68、69で補償すると共に、遅延メモリ69の読み出しは、第1の動きベクトルmv1 を考慮してサーチエリアの中心を動かし、さらにサーチ範囲を縮小した形でアドレスコントロール75でアドレスを指定してデータを出力する。これにより第2の動きベクトル検出回路52にデータが入力され、動きベクトル検出回路51と同様にして第2の動きベクトルmv2 が算出される。
【0039】
第2の動きベクトルmv2が算出されると、遅延メモリ76及び77からの画素データは同様に遅延が補償されると共に、遅延メモリの読み出しは、加算器78及びレジスタ79を通じて得られる第1及び第2の動きベクトルmv1及びmv2の和を考慮してサーチエリアの中心を動かし、当該中心から上下左右方向に1画素単位で動かした範囲内で、アドレスコントロール80でアドレスを指定して行われる。
【0040】
最終段の動きベクトル検出は、第1及び第2の動きベクトルmv1 及びmv2 の検出とは異なり、例えば8ビツトでなる画素値そのもので行われる。すなわち遅延メモリ76、77に一旦記憶された現在ブロツクデータとサーチエリアの範囲内で切り出した過去ブロツクデータは順次出力され、減算器81で画素位置毎の差分が計算され、絶対値化回路82で絶対値が演算される。その結果が加算器83を通してレジスタ84に保持されて、順次画素毎の積算が行われる。1ブロツクのコードのコードデータが走査された後、レジスタ84にはあるサーチポイントでの評価値が保持されていることになる。
【0041】
この評価値は評価値テーブルメモリ85に記憶される。このような演算をサーチポイントをずらしながら行つていくと、評価値メモリ85には例えば9点の評価値が記憶される。次に評価値テーブルメモリ85から評価値を読み出して、ベクトル決定回路86で最小値の位置を検出し、このときの相対的な座標が求められ第3の動きベクトルmv3 が出力される。第1の動きベクトルmv1 、第2の動きベクトルmv2 及び第3の動きベクトルmv3 は加算器87で加算され、当該加算結果が入力画像データの動きベクトルmvとしてレジスタ88に保持され、外部に出力される。
【0042】
以上の構成によれば、動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクB1と候補ブロツクB2をnビツトADRCで符号化し、そのコード値のMSBによつてマツチング演算を行つて動きベクトルmv1を算出し、その動きベクトルmv1で動き補償した後、サーチエリアをより小さくし、さらにブロツクを小さくして繰り返し最上位桁より2ビツト目のビツトを用いてマツチング演算して動きベクトルmv2を求め、最終的には繰り返し求めた動きベクトルに応じて動き補償した後、参照ブロツクB1及び候補ブロツクB2それぞれの画素値を用い、サーチエリアの中心を動かし、当該中心から上下左右方向に1画素単位で動かした範囲内でマツチング演算を行つて動きベクトルmv3を求め、全ての動きベクトルmv1、mv2、mv3の和を出力すべき動きベクトルmvとして求めるようにしたことにより、簡易な構成でかつ十分に高い精度で動きベクトルmvを算出し得る。
【0043】
(4)第3実施例の動きベクトル検出方法及び装置
この第3実施例の動きベクトル検出方法においては、入力画像に対してラプラシアンフイルタ処理を施した後、動きベクトルを検出する。実際上ラプラシアンフイルタ処理の後、参照ブロツクとサーチエリア内の全候補ブロツクのデータは、0レベルを中心として+の値と−の値に変化しており、特に画像のエツジ付近での変化が大きい。そこで、この実施例では、ADRCによる符号化をする際に、極性を考慮した符号化を行う。
【0044】
先ず、参照ブロツクとサーチエリア内の全候補ブロツクのデータの絶対値の最大値を検出し、当該最大値をダイナミツクレンジとする。このダイナミツクレンジを2n で割り算して量子化ステツプ幅を求め、各ブロツク内の画素値を当該量子化ステツプ幅で割り算することにより(符号+n)ビツトのコードに符号化する。すなわち(符号+n)ビツトのADRC符号化処理を行う。この場合、符号ビツトは、正のときに「0」とし、負のときに「1」とする。なお、この(符号+n)ビツトのADRC符号化はROMと簡単なロジツクで実現できる。
【0045】
このように(符号+n)ビツトADRC符号化された参照ブロツクと候補ブロツクのADRCコード値のうち符号ビツトを用いて、画素位置毎のマツチング演算として排他的論理和(EXOR)演算を行い、その結果のブロツク内積算値として評価値P(h、v)を算出する。この処理をサーチエリア内で候補ブロツクの位置をずらしながら行うことにより順次評価値を算出し、トータルで(2s+1)2 点の評価値P(h、v)を算出する。次に、求められた評価値が最小となる位置を検出し、その相対的な座標値(h、v)を第1の動きベクトルとする。
【0046】
続いてこのようにして求められた第1の動きベクトルで動き補償を行つた後、サーチエリアをより小さく設定する。そしてADRCコード値のMSB(最上位桁ビツト)で同様にして画素位置毎のマツチング演算(排他的論理和演算)を行い、順次サーチエリア内で評価値を算出し、当該評価値の最小点を検出することで第2の動きベクトルを算出する。
【0047】
以下、順次ADRCコード値の下位桁についてのマツチング演算を、サーチエリアをより小さくして繰り返すことによつて、第(n+1)の動きベクトルまで算出する。次にこの第(n+1)の動きベクトルを使用して、さらに動き補償を行つた後、最終段では、画素値そのものを用いてサーチエリアの±1画素の範囲で従来と同様のブロツクマツチングを行い、第(n+1)の動きベクトルを算出する。そして最終的な動きベクトルは、第1〜第(n+1)の動きベクトルの和を計算することで求めるようになされている。
【0048】
ここでこの実施例の動きベクトル検出装置100は、図7に示すように構成されており、入力画像データをラプラシアンフイルタ101に入力し、入力画像データに対してラプラシアンフイルタ101によつてラプラシアンフイルタ処理を施してから動きベクトルを検出する。動きベクトル検出装置100はラプラシアンフイルタ処理後の画像データに対して走査変換回路102及びフレームメモリ103で、現在のフレーム(又はフイールド)F1と過去のフレーム(又はフイールド)F2のブロツクのデータを形成し、これらを動き検出回路104に送出する。
【0049】
ここでラプラシアンフイルタ101は、例えば図8に示すような2次元のフイルタ係数とされている。実際上図8(A)の2次元フイルタ係数を実現するためには、ラプラシアンフイルタ101を、図9に示すように構成すれば良い。すなわちラプラシアンフイルタ101は、入力画像データをそれぞれ1画素分の遅延時間を有する遅延素子(D)105〜107を介して1ライン分の遅延時間を有するラインデイレイ(Line)112に送出する。そして各遅延素子105〜107の出力をそれぞれ乗算係数が−1に選定された乗算回路108〜110を介して積算回路111に送出する。
【0050】
ラインデイレイ112の出力は、それぞれ1画素分の遅延時間を有する遅延素子113〜115を介して1ライン分の遅延時間を有するラインデイレイ119に送出される。そして各遅延素子113〜115の出力が、それぞれ乗算係数が−1、8、1に選定された乗算回路116、117、118を介して積算回路111に送出される。さらにラインデイレイ119の出力は、それぞれ1画素分の遅延時間を有する遅延素子120〜122に順次送出される。そして各遅延素子120〜122の出力が、それぞれ乗算係数が−1に選定された乗算回路123〜125を介して積算回路111に送出される。この結果積算回路111において積算された各乗算回路108〜110、116〜118及び123〜125の出力がラプラシアンフイルタ101の出力として遅延素子126を介して出力される。
【0051】
またこの実施例の動きベクトル検出回路104は、図10及び図11に示すように、大きく分けて4つの部分からなり、(符号+n)ビツトのADRC符号化処理を行うADRC符号化回路130、第1の動きベクトルmv1 を求める第1の動きベクトル算出回路131、第2の動きベクトルを求める第2の動きベクトル算出回路132、第3の動きベクトルmv3 を求める第3の動きベクトル算出回路133、そして第4の動きベクトルmv4 を求める残りの回路から構成されている。
【0052】
まずADRC符号化回路130について説明する。ADRC符号化回路130は入力された現在のブロツク化された画素データ及びサーチエリア内で切り出された過去のブロツク化された画素データを絶対値化回路134でそれぞれ絶対値化した後、続く最大値検出回路135で最大値を検出し、これをダイナミツクレンジとしてレジスタ136に保持する。また現在ブロツクデータに関しては遅延回路137によつて適当に遅延した後順次レジスタ138に保持する。同様に過去のブロツクデータに関しても遅延回路139によつて遅延した後レジスタ140に保持する。このレジスタ138及び140に保持された各々のデータはそれぞれダイナミツクレンジデータと共にADRC変換用ROM141及びADRC変換用ROM142に入力され、(符号+2)ビツトADRC符号化され、それぞれレジスタ143及び144にコード値が保持される。
【0053】
保持されたコード値は、その符号ビツトがそのまま第1の動きベクトル算出回路131に、MSBが遅延メモリ145及び146を介して第2の動きベクトル算出回路132に、そして2ndMSB(この場合はLSBとなる)が遅延メモリ147及び148を介して第3の動きベクトル算出回路133に供給される。ここで第1、第2及び第3の動きベクトル算出回路131、132及び133は、第2実施例において上述した第1及び第2の動きベクトル算出回路51及び52(図6)と同様の構成でなり、入力されたADRCコード値に対して排他的論理和(EXOR)演算を行い、その結果のブロツク内積算値として評価値P(h、v)を算出し、この評価値が最小となる位置を検出し、その相対的な座標値(h、v)をそれぞれの動きベクトルとする。
【0054】
動きベクトル検出回路104においては、第1の動きベクトルmv1 、第2の動きベクトルmv2 、第3の動きベクトルmv3 、第4の動きベクトルmv4 の順に順次動き補償をしながらサーチエリアを小さくして動きベクトルを求めることにより最終的な動きベクトルmvを求めるのに要する演算量を低減するようになされている。
すなわち動きベクトル検出回路104は、第1の動きベクトル算出回路131によつて第1の動きベクトルmv1 が求められると、これを加算器149及びアドレスコントロール150に送出する。そしてアドレスコントロール150は第1の動きベクトルmv1 を考慮して、遅延メモリ146にサーチエリアの中心を動かすと共にサーチエリアを縮小した形のアドレスを指定して遅延メモリ146からデータを出力させる。
【0055】
また第2の動きベクトルmv2 が算出されると、これが加算器149に送出され、ここで第1及び第2の動きベクトルmv1 及びmv2 の和が算出され、これがレジスタ151を介して加算器152及びアドレスコントロール153に送出される。アドレスコントロール153は第1及び第2の動きベクトルmv1 及びmv2 の和を考慮して、遅延メモリ148にサーチエリアの中心を動かすと共にサーチエリアを縮小した形のアドレスを指定して遅延メモリ148からデータを出力させる。
【0056】
さらに第3の動きベクトルmv3 が算出されると、これが加算器152に送出され、ここで第1、第2及び第3の動きベクトルmv1 、mv2 及びmv3 の和が算出され、これがレジスタ154を介して加算器155及びアドレスコントロール156に送出される。ここで遅延回路137及び139からの画素データは遅延メモリ157及び158によつて上述の第1、第2及び第3の動きベクトルmv1 、mv2 及びmv3 を算出する時間分の遅延が補償されて格納されている。そしてアドレスコントロール156が、第1、第2及び第3の動きベクトルmv1 、mv2 及びmv3 の和を考慮して、遅延メモリ158にサーチエリアの中心を動かすと共にサーチエリアを縮小した形のアドレスを指定して遅延メモリ156からデータを出力させる。
【0057】
最終段での動きベクトル検出(すなわち第4の動きベクトルmv4 の検出)は、第1、第2及び第3の動きベクトルの検出とは異なり、(符号+8)ビツトの画素値そのもので行う。すなわち遅延メモリ157及び158に一旦格納された現在ブロツクデータとサーチエリア内で切り出された過去のブロツクデータが順次出力され、減算器159で画素位置毎の差分が計算され、絶対値化回路160で絶対値が演算される。その結果が加算器161を通してレジスタ162に保持されて、順次画素毎の積算が行われる。1ブロツクのコードデータが走査された後、レジスタ162にはあるサーチポイントでの評価値が保持されていることになる。この評価値は評価値テーブルメモリ163に記憶される。このような演算をサーチポイントをずらしながら行つていくと、評価値テーブルメモリ163には例えば9点の評価値が記憶される。
【0058】
次に評価値テーブルメモリ163から評価値を読み出し、ベクトル決定回路164によつて評価値が最小となる位置を検出し、このときの相対的な座標が求められ、第4の動きベクトルmv4 が出力される。最終的に、第1、第2、第3及び第4の動きベクトルmv1 、mv2 、mv3 及びmv4 は加算器155で加算され、この加算結果が入力画像データの動きベクトルmvとしてレジスタ165に保持され、外部に出力される。
【0059】
以上の構成において、この実施例の動きベクトル検出装置100は、入力画像データに対してラプラシアンフイルタ処理を施してエツジ等の画像の特徴成分を強調したうえで、動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクB1と候補ブロツクB2を(符号+n)ビツトADRCで符号化する。
【0060】
次に、そのADRCコード値のうち符号ビツト(極性を表すビツト)を用いて第1の動きベクトルmv1 を算出し、その動きベクトルmv1 で動き補償した後サーチエリアを小さくしてADRCコード値のうち最上位桁ビツトを用いて第2の動きベクトルmv2 を算出する。
【0061】
次に、第1及び第2の動きベクトルmv1及びmv2の和に応じて動き補償した後サーチエリアを小さくしてADRCコード値のうち2ビツト目のビツトを用いて第3の動きベクトルmv3を算出する。次に第1、第2及び第3の動きベクトルmv1、mv2及びmv3の和に応じて動き補償した後、参照ブロツクB1及び候補ブロツクB2それぞれの画素を用いて、サーチエリアの中心を動かし、当該中心から上下左右方向に1画素単位で動かした範囲内でマツチング演算を行つて第4の動きベクトルmv4を算出する。そして最後に、全ての動きベクトルmv1、mv2、mv3、mv4の和を出力すべき動きベクトルmvとする。
【0062】
以上の構成によれば、ラプラシアンフイルタ処理を施した入力画像データについて、順次分解能を上げるようにして動きベクトルmvを求めるようにしたことにより、画像の特徴を考慮した一段と高精度の動きベクトルmvを得ることができる。
【0063】
(5)他の実施例
なお上述の第1及び第2の実施例においては、第1及び第2の動きベクトルを1ビツトADRC又はnビツトADRCで符号化したコードデータでそれぞれ求め、第3の動きベクトルについて画素値そのものを用いて求めた場合について述べたが、さらに複数階層の動きベクトルについて1ビツトADRC又はnビツトADRCで符号化したコードデータでそれぞれ求め、最終的な動きベクトルのみを画素値そのものを用いて求めるようにしても良い。
【0064】
同様に、上述の第3実施例においては、(符号+2)ビツトのコード値にADRC符号化されたデータを用いため、第3の動きベクトルまでをコード値を用いて求め、第4の動きベクトルを画素値そのものを用いて求めたが、さらに一般化して(符号+n)ビツトのコード値にADRC符号化されたデータを用いた場合には、第1の動きベクトルを符号ビツトにより求め、第2〜第(n+1)番目の動きベクトルを符号ビツト以外のコード値を用いて求め、最終的な動きベクトルのみを画素値そのものを用いて求めるようにすれば良い。
【0065】
【発明の効果】
上述のように本発明によれば、参照ブロツク及び候補ブロツクの各画素の値をコード値に変換することにより演算量を大幅に削減し得ると共に、順次サーチエリアを狭くしていきながら算出した複数の動きベクトルの和を最終的な動きベクトルとして出力することができるので、簡易な構成でかつ十分に高い精度の最終的な動きベクトルを算出し得る。
また本発明によれば、参照ブロツクと全ての候補ブロツクとに含まれる全ての画素の値から検出した最大値及び最小値の差よりダイナミツクレンジを求め、参照ブロツク及び候補ブロツクの画素値と最大値又は最小値との差分をnビツトのコード値に符号化し、サーチエリアを次第に小さくしながら当該コード値の最上位桁のビツトからその一つ下の桁のビツトまで順番に用いて参照ブロツク及び候補ブロツク毎のマツチング演算を行うことにより演算量を大幅に削減し、順次サーチエリアを狭くしていきながら算出した全ての動きベクトルの和を最終的な動きベクトルとして出力することができるので、簡易な構成でかつ十分に高い精度の最終的な動きベクトルを算出し得る。
【0066】
さらに本発明によれば、入力画像データに対してラプラシアンフイルタ処理を施してエツジ等の画像の特徴成分を強調したうえで動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクにおける画素値及び候補ブロツクにおける画素値を、極性を表す符合を含む(符号+n)ビツトのコード値に符号化し、当該(符号+n)ビツトのコード値を用いて演算量を大幅に減らし、順次分解能を上げるようにして画像の特徴を考慮した一段と高精度の最終的な動きベクトルを得ることができる。
【図面の簡単な説明】
【図1】ブロツクマツチングによる動きベクトル検出の原理の説明に供する略線図である。
【図2】本発明による動きベクトル検出装置の概略構成を示すブロツク図である。
【図3】第1実施例による動きベクトル検出回路を示すブロツク図である。
【図4】第1実施例による動きベクトル検出回路を示すブロツク図である。
【図5】第2実施例による動きベクトル検出回路を示すブロツク図である。
【図6】第2実施例による動きベクトル検出回路を示すブロツク図である。
【図7】第3実施例による動きベクトル検出装置の概略構成を示すブロツク図てある。
【図8】第3実施例で用いるラプラシアンフイルタのフイルタ係数の例を示す略線図である。
【図9】ラプラシアンフイルタの構成例を示すブロツク図である。
【図10】第3実施例による動きベクトル検出回路を示すブロツク図である。
【図11】第3実施例による動きベクトル検出回路を示すブロツク図である。
【符号の説明】
1、100……動きベクトル検出装置、2、102……走査変換回路、3、103……フレームメモリ、4、104……動きベクトル検出回路、5、6、51、52、131、132、133……動きベクトル算出回路、7、53……最大最小値検出回路、8、9、11、22、37、43、54、55、62、63、66、67、72、72′、79、84、88、136、138、140、143、144、151、154、162、165……レジスタ、10、21、41、36、42、71、71′、78、83、87、149、152、155、161……加算器、12、13、26……FIFO、14、15……比較回路、16、17、27、30、32、33……メモリ、18、20……評価値演算回路、19、70、70′……EXORゲート、23、38……評価値メモリ、24、39……最小値検出回路、25、40、74、74′、86、164……ベクトル決定回路、28、31、75、80、150、153、156……アドレスコントロール、34、56、60、61、81、159……減算器、35、82、134……絶対値化回路、50、130……ADRC符号化回路、58、59、68、69、76、77、137、139、145、146、147、148、157、158…………遅延メモリ、64、65、141、142……ADRCコード変換ROM、73、73′、85、163……評価値テーブルメモリ、101……ラプラシアンフイルタ、105〜107、113〜115、120〜122、126……デイレイ、108〜110、116〜118、123〜125……乗算回路、111……積算回路、112、119……ラインデイレイ、135……最大値検出回路、mv1 ……第1の動きベクトル、mv2 ……第2の動きベクトル、mv3 ……第3の動きベクトル、mv4 ……第4の動きベクトル、mv……動きベクトル。
Claims (8)
- 動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクとサーチエリア内の全ての候補ブロツクとに含まれる画素の値から最大値及び最小値を検出する最大最小値検出ステツプと、
上記最大値及び上記最小値の和の1/2の値と上記参照ブロツク及び上記候補ブロツクの各画素の値とを比較演算して、上記参照ブロツク及び上記候補ブロツクの各画素の値を値「1」又は値「0」のコード値に符号化する符号化ステツプと、
上記サーチエリア内で上記候補ブロツクの位置をずらし、上記コード値を用いて上記参照ブロツク及び上記候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を動きベクトルとする動きベクトル検出ステツプと、
直前の上記動きベクトル検出ステツプで求められた動きベクトルで動き補償を行つた後、直前のサーチエリアより小さいサーチエリアで、上記最大最小値検出ステツプ、上記符号化ステツプ及び上記動きベクトル検出ステツプを実行して、他の動きベクトルを算出する動きベクトル算出ステツプをn回(nは0以上の整数)繰り返し、n個の動きベクトルを算出する繰返しステツプと、
上記動きベクトル検出ステツプ及び上記繰返しステツプで求められた動きベクトルのうち最後に求められた動きベクトルに応じて動き補償を行つた後、上記参照ブロツク及び上記候補ブロツクそれぞれの画素値を用いて、最後に求められたサーチエリアに対して上下左右、所定画素数の範囲縮小したサーチエリアについてマツチング演算を行い、当該演算値が最小の位置を画素値による動きベクトルとする画素値による動きベクトル検出ステツプと、
上記動きベクトル検出ステツプ、上記繰返しステツプ及び上記画素値による動きベクトル検出ステツプで求められた複数の動きベクトルの和を求め、上記動きベクトルの和を最終的な動きベクトルとして出力する動きベクトル出力ステツプと
を具えることを特徴とする動きベクトル検出方法。 - 上記動きベクトル検出ステツプの上記マツチング演算は、上記コード値に符号化された上記参照ブロツク及び上記候補ブロツク毎の画素の値の差分の絶対値和を算出するようにした
ことを特徴とする請求項1に記載の動きベクトル検出方法。 - 上記動きベクトル検出ステツプの上記マツチング演算は、上記コード値に符号化された上記参照ブロツク及び上記候補ブロツク毎の画素の値の排他的論理和の演算結果を積算して算出するようにした
ことを特徴とする請求項1に記載の動きベクトル検出方法。 - 動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクとサーチエリア内の全ての候補ブロツクとに含まれる全ての画素の値から最大値及び最小値を検出する最大最小値検出ステツプと、
上記最大値及び上記最小値の差よりダイナツクレンジを求め、上記参照ブロツク及び上記候補ブロツクの画素値と上記最大値又は上記最小値との差分をnビツトのコード値に符号化する符号化ステツプと、
上記サーチエリア内で上記候補ブロツクの位置をずらし、当該符号化された上記コード値の最上位桁ビツトを用いて上記参照ブロツク及び上記候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を動きベクトルとする動きベクトル検出ステツプと、
直前の上記動きベクトル検出ステツプで求められた動きベクトルで動き補償を行つた後、直前のサーチエリアより小さいサーチエリアで、直前に用いられた上記コード値の桁よりも一つ下の桁のビツトを用いて、上記参照ブロツク及び上記候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を他の動きベクトルとする動きベクトル算出ステツプをn回(nは0以上の整数)繰り返す繰返しステツプと、
上記動きベクトル検出ステツプ及び上記繰返しステツプで求められた動きベクトル、又は上記動きベクトル検出ステツプ及び上記繰返しステツプで求められた動きベクトルのうち最後に求められた動きベクトルに応じて動き補償を行つた後、上記参照ブロツク及び上記候補ブロツクそれぞれの画素値を用いて、最後に求められたサーチエリアに対して上下左右、所定画素数の範囲縮小したサーチエリアについてマツチング演算を行い、当該演算値が最小の位置を画素値による動きベクトルとする画素値による動きベクトル検出ステツプと、
上記動きベクトル検出ステツプ、上記繰返しステツプ及び上記画素値による動きベクトル検出ステツプで求められた複数の動きベクトルの和を求め、上記動きベクトルの和を最終的な動きベクトルとして出力する動きベクトル出力ステツプと
を具えることを特徴とする動きベクトル検出方法。 - 入力画像データに対してラプラシアンフイルタ処理を施すラプラシアンフイルタ処理ステツプと、
上記ラプラシアンフイルタ処理が施された画像から、動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクとサーチエリア内の全ての候補ブロツクとに含まれる画素の値の絶対値から最大値を検出する最大値検出ステツプと、
上記最大値を参照ブロツクとサーチエリア内の全ての候補ブロツクのダイナミツクレンジとして、各参照ブロツク及び各候補ブロツクの画素値を、極性を表す符合を含む(符号+n)ビツトのコード値に符号化する符号化ステツプと、
上記サーチエリア内で上記候補ブロツクの位置を順次ずらし、上記コード値の符号ビツトを用いて上記参照ブロツクと上記候補ブロツクとのマツチング演算を行い、当該演算値が最小の位置を第1の動きベクトルとする第1の動きベクトル検出ステツプと、
上記第1の動きベクトルで動き補償を行つた後、上記サーチエリアをより小さくして、上記コード値の最上位桁ビツトを用いて、上記参照ブロツク及び上記候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を第2の動きベクトルとする第2の動きベクトル検出ステツプと、
直前の上記第2の動きベクトル検出ステツプで求められた第2の動きベクトルで動き補償を行つた後、直前のサーチエリアより小さいサーチエリアで、直前に用いられた上記コード値の桁よりも一つ下の桁のビツトを用いて、上記参照ブロツク及び上記候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を他の動きベクトルとする動きベクトル算出ステツプをn回(nは0以上の整数)繰り返す繰返しステツプと、
上記第1、第2動きベクトル検出ステツプ及び上記繰返しステツプで求められた動きベクトル、又は上記第1、第2の動きベクトル検出ステツプ及び上記繰返しステツプで求められた動きベクトルのうち最後に求められた動きベクトルに応じて動き補償を行つた後、上記参照ブロツク及び上記候補ブロツクそれぞれの画素値を用いて、最後に求められたサーチエリアに対して上下左右、所定画素数の範囲縮小したサーチエリアについてマツチング演算を行い、当該演算値が最小の位置を画素値による動きベクトルとする画素値による動きベクトル検出ステツプと、
上記第1、第2の動きベクトル検出ステツプ、上記繰返しステツプ及び上記画素値による動きベクトル検出ステツプで求められた複数の動きベクトルの和を求め、当該動きベクトルの和を最終的な動きベクトルとして出力する動きベクトル出力ステツプと
を具えることを特徴とする動きベクトル検出方法。 - 動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクとサーチエリア内の全ての候補ブロツクとに含まれる画素の値から最大値及び最小値を検出する最大最小値検出手段と、
上記最大値及び上記最小値の和の1/2の値と上記参照ブロツク及び上記候補ブロツクの各画素の値とを比較演算して、上記参照ブロツク及び上記候補ブロツクの各画素の値を値「1」又は値「0」のコード値に符号化する符号化手段と、
上記サーチエリア内で上記候補ブロツクの位置をずらし、上記コード値を用いて上記参照ブロツク及び上記候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を動きベクトルとする動きベクトル検出手段と、
直前の上記動きベクトル検出手段で求められた動きベクトルで動き補償を行つた後、直前のサーチエリアより小さいサーチエリアで、上記最大最小値検出手段、上記符号化手段及び上記動きベクトル検出手段による処理を実行して、他の動きベクトルを算出する動きベクトル算出手段による処理をn回(nは0以上の整数)繰り返し、n個の動きベクトルを算出する繰返し手段と、
上記動きベクトル検出手段及び上記繰返し手段により求められた動きベクトルのうち、最後に求められた動きベクトルに応じて動き補償を行つた後、上記参照ブロツク及び上記候補ブロツクそれぞれの画素値を用いて、最後に求められたサーチエリアに対して上下左右、所定画素数の範囲縮小したサーチエリアについてマツチング演算を行い、当該演算値が最小の位置を画素値による動きベクトルとする画素値による動きベクトル検出手段と、
上記動きベクトル検出手段、上記繰返し手段及び上記画素値による動きベクトル検出手段により求められた複数の動きベクトルの和を求め、上記動きベクトルの和を最終的な動きベクトルとして出力する動きベクトル出力手段と
を具えることを特徴とする動きベクトル検出装置。 - 動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクとサーチエリア内の全ての候補ブロツクとに含まれる全ての画素の値から最大値及び最小値を検出する最大最小値検出手段と、
上記最大値及び上記最小値の差よりダイナミツクレンジを求め、上記参照ブロツク及び上記候補ブロツクの画素値と上記最大値又は上記最小値との差分をnビツトのコード値に符号化する符号化手段と、
上記サーチエリア内で上記候補ブロツクの位置をずらし、当該符号化された上記コード値の最上位桁ビツトを用いて上記参照ブロツク及び上記候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を動きベクトルとする動きベクトル検出手段と、
直前の上記動きベクトル検出手段により求められた動きベクトルで動き補償を行つた後、直前のサーチエリアより小さいサーチエリアで、直前に用いられた上記コード値の桁よりも一つ下の桁のビツトを用いて、上記参照ブロツク及び上記候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を他の動きベクトルとする動きベクトル算出手段による処理をn回(nは0以上の整数)繰り返す繰返し手段と、
上記動きベクトル検出手段及び上記繰返し手段により求められた動きベクトル、又は上記動きベクトル検出手段及び上記繰返し手段により求められた動きベクトルのうち最後に求められた動きベクトルに応じて動き補償を行つた後、上記参照ブロツク及び上記候補ブロツクそれぞれの画素値を用いて、最後に求められたサーチエリアに対して上下左右、所定画素数の範囲縮小したサーチエリアについてマツチング演算を行い、当該演算値が最小の位置を画素値による動きベクトルとする画素値による動きベクトル検出手段と、
上記動きベクトル検出手段、上記繰返し手段及び上記画素値による動きベクトル検出手段により求められた複数の動きベクトルの和を求め、上記動きベクトルの和を最終的な動きベクトルとして出力する動きベクトル出力手段と
を具えることを特徴とする動きベクトル検出装置。 - 入力画像データに対してラプラシアンフイルタ処理を施すラプラシアンフイルタと、
上記ラプラシアンフイルタ処理が施された画像から、動きベクトルを検出するブロツクマツチングの対象となる参照ブロツクとサーチエリア内の全ての候補ブロツクとに含まれる画素の値の絶対値から最大値を検出する最大値検出手段と、
上記最大値を参照ブロツクとサーチエリア内の全ての候補ブロツクのダイナミツクレンジとして、各参照ブロツク及び各候補ブロツクの画素値を、極性を表す符合を含む(符号+n)ビツトのコード値に符号化する符号化手段と、
上記サーチエリア内で上記候補ブロツクの位置を順次ずらし、上記コード値の符号ビツトを用いて上記参照ブロツクと上記候補ブロツクとのマツチング演算を行い、当該演算値が最小の位置を第1の動きベクトルとする第1の動きベクトル検出手段と、
上記第1の動きベクトルで動き補償を行つた後、上記サーチエリアをより小さくして、上記コード値の最上位桁ビツトを用いて、上記参照ブロツク及び上記候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を第2の動きベクトルとする第2の動きベクトル検出手段と、
直前の上記第2の動きベクトル検出手段で求められた第2の動きベクトルで動き補償を行つた後、直前のサーチエリアより小さいサーチエリアで、直前に用いられた上記コード値の桁よりも一つ下の桁のビツトを用いて、上記参照ブロツク及び上記候補ブロツク毎のマツチング演算を行い、当該演算値が最小の位置を他の動きベクトルとする動きベクトル算出手段による処理をn回(nは0以上の整数)繰り返す繰返し手段と、
上記第1、第2動きベクトル検出手段及び上記繰返し手段により求められた動きベクトル、又は上記第1、第2の動きベクトル検出手段及び上記繰返し手段で求められた動きベクトルのうち最後に求められた動きベクトルに応じて動き補償を行つた後、上記参照ブロツク及び上記候補ブロツクそれぞれの画素値を用いて、最後に求められたサーチエリアに対して上下左右、所定画素数の範囲縮小したサーチエリアについてマツチング演算を行い、当該演算値が最小の位置を画素値による動きベクトルとする画素値による動きベクトル検出手段と、
上記第1、第2の動きベクトル検出手段、上記繰返し手段及び上記画素値による動きベクトル検出手段で求められた複数の動きベクトルの和を求め、上記動きベクトルの和を最終的な動きベクトルとして出力する動きベクトル出力手段と
を具えることを特徴とする動きベクトル検出装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP09140095A JP3627872B2 (ja) | 1994-07-22 | 1995-03-25 | 動きベクトル検出方法及び装置 |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP19182394 | 1994-07-22 | ||
| JP6-191823 | 1994-07-22 | ||
| JP09140095A JP3627872B2 (ja) | 1994-07-22 | 1995-03-25 | 動きベクトル検出方法及び装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0888855A JPH0888855A (ja) | 1996-04-02 |
| JP3627872B2 true JP3627872B2 (ja) | 2005-03-09 |
Family
ID=26432832
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP09140095A Expired - Lifetime JP3627872B2 (ja) | 1994-07-22 | 1995-03-25 | 動きベクトル検出方法及び装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3627872B2 (ja) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4973591B2 (ja) * | 2008-05-01 | 2012-07-11 | ソニー株式会社 | 動きベクトル検出装置及び動きベクトル検出方法 |
| JP6602089B2 (ja) | 2015-08-06 | 2019-11-06 | キヤノン株式会社 | 画像処理装置及びその制御方法 |
| JP6700872B2 (ja) | 2016-03-07 | 2020-05-27 | キヤノン株式会社 | 像振れ補正装置及びその制御方法、撮像装置、プログラム、記憶媒体 |
| JP6759089B2 (ja) | 2016-12-21 | 2020-09-23 | キヤノン株式会社 | 画像処理装置、撮像装置、制御方法 |
| JP6827801B2 (ja) | 2016-12-26 | 2021-02-10 | キヤノン株式会社 | 撮像装置および制御方法 |
| JP6851854B2 (ja) | 2017-02-22 | 2021-03-31 | キヤノン株式会社 | 画像処理装置、撮像装置および画像処理装置の制御方法 |
-
1995
- 1995-03-25 JP JP09140095A patent/JP3627872B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPH0888855A (ja) | 1996-04-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2977969B2 (ja) | 画像処理システムのエッジ検出方法及びその装置 | |
| US6430317B1 (en) | Method and apparatus for estimating motion using block features obtained from an M-ary pyramid | |
| EP0643539A2 (en) | Motion vector detection apparatus and method | |
| KR100303107B1 (ko) | 동작벡터검출장치및방법 | |
| KR0166724B1 (ko) | 반화소정확도를 갖는 동벡터추정방법 및 그 장치 | |
| KR980003999A (ko) | Cdf 연산영역에 근거한 히스토그램 등화회로 및 그 방법 | |
| JP3627872B2 (ja) | 動きベクトル検出方法及び装置 | |
| US5579058A (en) | Motion detection circuit and method using spatial information | |
| US8705626B2 (en) | Motion estimation method | |
| EP3001685A1 (en) | Method and apparatus for estimating absolute motion values in image sequences | |
| JPH0262178A (ja) | 画像処理装置の動き検出方式 | |
| CN1139041C (zh) | 用于半象素绝对差值和产生的方法和装置 | |
| JPH05268595A (ja) | 動画像信号符号化装置 | |
| JP3580612B2 (ja) | 動画像符号化装置の動き検出装置 | |
| JP3627870B2 (ja) | 動きベクトル検出方法及び装置 | |
| JP3861325B2 (ja) | 動きベクトル検出装置および検出方法 | |
| JP3020299B2 (ja) | 動きベクトル検出装置 | |
| KR100207650B1 (ko) | 영상 압축 시스템의 움직임 추정 장치 | |
| JP2788257B2 (ja) | ベクトル量子化の最適出力ベクトル探索方法 | |
| JP3627871B2 (ja) | 動き量検出方法及び動き量検出装置 | |
| JP3052711B2 (ja) | 動きベクトル検出回路 | |
| CN117319810A (zh) | 图像处理方法与图像处理电路 | |
| JP2901848B2 (ja) | ベクトル相関検出回路 | |
| JPS62104387A (ja) | 高能率符号化及び復号化方法 | |
| JPH0998423A (ja) | 動画像信号の動き補償方法および動ベクトル検出装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040827 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041026 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20041119 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041202 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071217 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081217 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091217 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091217 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101217 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111217 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121217 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121217 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131217 Year of fee payment: 9 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| EXPY | Cancellation because of completion of term |
