JP3601506B2 - Apparatus and method for detecting motion vector, and apparatus and method for correcting image vibration - Google Patents
Apparatus and method for detecting motion vector, and apparatus and method for correcting image vibration Download PDFInfo
- Publication number
- JP3601506B2 JP3601506B2 JP2001343752A JP2001343752A JP3601506B2 JP 3601506 B2 JP3601506 B2 JP 3601506B2 JP 2001343752 A JP2001343752 A JP 2001343752A JP 2001343752 A JP2001343752 A JP 2001343752A JP 3601506 B2 JP3601506 B2 JP 3601506B2
- Authority
- JP
- Japan
- Prior art keywords
- motion vector
- screen
- vector
- macro
- macroblock
- 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
- 238000001514 detection method Methods 0.000 claims 4
Images
Landscapes
- Studio Devices (AREA)
- Image Analysis (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、動きベクトル検出装置及び方法、並びに、画像の振動補正装置及び方法に関し、例えばハンディタイプのビデオカメラの撮像出力などのビデオデータに含まれる所謂手振れによる画像の移動量を検出して補正する画像の手振れ補正装置などに適用される。
【0002】
【従来の技術】
一般に、ハンディタイプのビデオカメラでは、撮影時の手振れすなわちカメラの振動が画像の振動となって現れる。そこで、このような手振れによる画像の振動を補正する画像の手振れ補正装置として、例えば特開昭63−166370号公報に開示されているように、画像の動きベクトルを検出し、この動きベクトルに基づいて、画像メモリに貯えられているビデオデータを補正するものが提案されている。
【0003】
画像の動きベクトルの検出には、例えばブロックマッチング法が採用される。このブロックマッチング法による画像の動きベクトルの検出では、画面を多数の領域(ブロックと称する)に分割し、各ブロックの中心に位置する前フィールドの代表点画素と現フィールドのブロック内の各画素の画像データとのフィールド差の絶対値を演算し、各ブロックのフィールド差分絶対値を対応する画素毎に積算して相関積分値を求めて、1ブロック分の画素配列に対応する座標を有する相関積算値表を形成する。そして、この相関積算値表における相関積分値の最小値の座標値を画像の動きベクトルの座標値として画面全体の動きベクトルを決定している。
【0004】
一般に、上述の如きブロックマッチング法では、カメラの手振れによる画像の動きベクトルと被写体の動きによる動きベクトルとが同時に発生するので、これらの判別が難しい。従来、手振れによる画像の動きベクトルの検出精度を高める手法として、1画面を複数の領域(マクロブロック)に分割し、上記マクロブロック毎の動きベクトル(マクロベクトル)を求め、それらから画面全体の動きベクトルを決定する手法が知られている。例えば図13に示すように、1画面の4×3の12マクロブロックに分割して求めたマクロベクトルについての多数決により(2,0)を画面全体の動きベクトルとすることにより、動き物体MVによる動きベクトルの影響を除去するようにしていた。
【0005】
【発明が解決しようとする課題】
ところで、マクロブロック単位の相関積算値表の最小値を求めることにより動きベクトルを検出し、上記マクロブロック毎の動きベクトルから画面全体の動きベクトルを検出する手法では、動き物体があると、手振れベクトルの情報を含む背景画像が上記動き物体によりマスクされてしまうので、画像中の動き物体の占める割合が大きい程、手振れベクトルが上記マクロブロック単位の動きベクトルとして検出される割合が低下し、正しい手振れベクトルの検出が困難になるという問題点がある。
【0006】
そこで、本件出願人は、互いに隣接しないマクロブロックが生じるような形態で1画面を複数のマクロブロックに分割して、マクロブロック単位の相関積算値表の最小値を求めることにより動きベクトルを検出し、図14に示すように、空間的に分離された位置にある少なくとも二つのマクロブロックにおいて検出される同一の動きベクトル(独立同一ベクトル)を手振れベクトルとする手法を例えば特願平3−100384号などにおいて先に提案している。上記図14には、各マクロブロックの動きベクトルと(マクロベクトル)その発生パターンの1例を示してある。
【0007】
しかし、例えば図15にマクロベクトルを示すように、大きな動き物体画面に進入してきたような場合などでは、上述の多数決や独立同一ベクトルによる手法によっても、動き物体による動きベクトル(−3,0)と手振れベクトル(1,−2)との判定ができなくなる場合がある。
【0008】
そこで、本発明は、このような実情に鑑みてなされたものであり、ハンディタイプのビデオカメラなどにおける高性能の手振れ補正を可能にすることを目的とし、画像中に動き物体がある場合にも動きベクトルを高精度に検出することのできる動きベクトル検出装置及び方法、画像の振動補正装置及び方法を提供するものである。
【0009】
【課題を解決するための手段】
本発明に係る動きベクトル検出装置は、互いに隣接しないマクロブロックが生じるような形態で、1画面を複数のマクロブロックに分割し、上記マクロブロック毎に動きベクトルを検出するマクロベクトル検出手段と、互いに隣接しない少なくとも2つの上記マクロブロックにおいて上記マクロベクトル検出手段により略同一の動きベクトルが検出されるとき、当該マクロブロックを有効マクロブロックとして、当該有効マクロブロックに基づいて画面全体の動きベクトルを検出する動きベクトル検出手段と、上記有効マクロブロックの位置情報を記憶する記憶手段と、上記動きベクトル検出手段により上記画面全体の動きベクトルが検出されないとき、現画面の同一の動きベクトルを有するマクロブロックの位置情報と、上記記憶手段に記憶される前画面の有効マクロブロックの位置情報との時間相関に基づいて、現画面の画面全体の動きベクトルを出力する判定手段とを備えることを特徴とする。
【0010】
また、本発明に係る動きベクトル検出方法は、互いに隣接しないマクロブロックが生じるような形態で、1画面を複数のマクロブロックに分割し、上記マクロブロック毎に動きベクトルを検出するステップと、互いに隣接しない少なくとも2つの上記マクロブロックにおいて略同一の動きベクトルが検出されるとき、当該マクロブロックを有効マクロブロックとして、当該有効マクロブロックに基づいて画面全体の動きベクトルを検出するステップと、上記有効マクロブロックの位置情報を記憶するステップと、上記画面全体の動きベクトルが検出されないとき、現画面の同一の動きベクトルを有するマクロブロックの位置情報と、上記記憶される前画面の有効マクロブロックの位置情報との時間相関に基づいて、現画面の画面全体の動きベクトルを出力するステップとを備えることを特徴とする。
【0011】
また、本発明に係る画像の振動補正装置は、互いに隣接しないマクロブロックが生じるような形態で、1画面を複数のマクロブロックに分割し、上記マクロブロック毎に動きベクトルを検出するマクロベクトル検出手段と、互いに隣接しない少なくとも2つの上記マクロブロックにおいて上記マクロベクトル検出手段により略同一の動きベクトルが検出されるとき、当該マクロブロックを有効マクロブロックとして、当該有効マクロブロックに基づいて画面全体の動きベクトルを検出する動きベクトル検出手段と、上記有効マクロブロックの位置情報を記憶する記憶手段と、上記動きベクトル検出手段により上記画面全体の動きベクトルが検出されないとき、現画面の同一の動きベクトルを有するマクロブロックの位置情報と、上記記憶手段に記憶される前画面の有効マクロブロックの位置情報との時間相関に基づいて、現画面の画面全体の動きベクトルを出力する判定手段と、上記判定手段より出力される画面全体の動きベクトルに基づいて、上記画面を構成する画像の振動を補正する補正手段とを備えることを特徴とする。
【0012】
さらに、本発明に係る画像の振動補正方法は、互いに隣接しないマクロブロックが生じるような形態で、1画面を複数のマクロブロックに分割し、上記マクロブロック毎に動きベクトルを検出するステップと、互いに隣接しない少なくとも2つの上記マクロブロックにおいて略同一の動きベクトルが検出されるとき、当該マクロブロックを有効マクロブロックとして、当該有効マクロブロックに基づいて画面全体の動きベクトルを検出するステップと、上記有効マクロブロックの位置情報を記憶するステップと、上記画面全体の動きベクトルが検出されないとき、現画面の同一の動きベクトルを有するマクロブロックの位置情報と、上記記憶される前画面の有効マクロブロックの位置情報との時間相関に基づいて、現画面の画面全体の動きベクトルを出力するステップと、上記出力される画面全体の動きベクトルに基づいて、上記画面を構成する画像の振動を補正するステップとを備えることを特徴とする。
【0013】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【0014】
本発明に係る画像の動きベクトル検出装置は、例えば図1のように構成される。
【0015】
この図1に示した動きベクトル検出装置10は、ハンディタイプのビデオカメラにおける手振れ等による画像の振動を補正する振動補正装置に本発明を適用したもので、補正信号発生部20及び補正部30とともに振動補正装置を構成している。この図1において、信号入力端子1には、上記ビデオカメラの図示しない撮像部による撮像出力として得られるビデオ信号をディジタル化した入力ビデオデータが供給される。
【0016】
この動きベクトル検出装置10は、入力ビデオデータが上記信号入力端子1を介して供給されるフィールド差分検出部11と、このフィールド差分検出部11の出力が供給されるマクロベクトル検出部12と、このマクロベクトル検出部12の出力が供給される独立・準独立同一ベクトル判定部15と、上記マクロベクトル検出部12及び独立・準独立同一ベクトル判定部15の出力が供給される手振れベクトル判定部16とを備えてなる。
【0017】
上記フィールド差分検出部11は、上記入力ビデオデータが上記信号入力端子1を介して供給される代表点メモリ11Aと減算回路11Bからなる。
【0018】
上記代表点メモリ11Aは、入力ビデオデータで構成される1フィールドの画像を複数に分割した各ブロック毎の代表点画素の画像データIk (0,0)を記憶する。具体的には、例えば図2に示すように、1フィールドの画面をm画素×nラインのブロックに分割し、図3に示すように各ブロックの中心の画素S(0,0)を代表点とし、各代表点画素の画像データIk (0,0)を上記代表点メモリ11Aに1フィールド期間記憶する。なお、上記代表点は、画面上で均一にばらまかれている。そして、この代表点メモリ11Aから読み出される1フィールド前の各代表点画素の画像データIk−1 (0,0)が上記減算回路11Bに供給される。
【0019】
また、上記減算回路11Bは、上記信号入力端子1を介して供給される入力ビデオデータすなわち現フィールドの画像データについて、ブロック毎のm×n個の各画素の画像データIk (x,y)と上記代表点メモリ11Aから読み出される前フィールドの対応するブロックの代表点画素の画像データIk−1 (0,0)との差分すなわちフィールド間差の絶対値|Ik−1 (0,0)−Ik (x,y)|を検出する。
【0020】
そして、上記フィールド差分検出部11は、上記減算回路11Bにより得られるフィールド差分絶対値|Ik−1 (0,0)−Ik (x,y)|を上記マクロベクトル検出部12に供給する。
【0021】
上記マクロベクトル検出部12は、上記フィールド差分検出部11により得られたフィールド差分絶対値|Ik−1 (0,0)−Ik (x,y)|が供給されるマクロブロック化回路13と、このマクロブロック化回路13によりマクロブロック化されたフィールド差分絶対値|Ik−1 (0,0)−Ik (x,y)|が供給される第1乃至第12のマクロベクトル検出回路14A〜14L及びベクトル検出回路14Mからなる。
【0022】
上記マクロブロック化回路13は、上記フィールド差分検出部11により得られたフィールド差分絶対値|Ik−1 (0,0)−Ik (x,y)|について、互いに隣接しないマクロブロックが生じる形態で、1画面を複数のマクロブロックに分割するもので、例えば図4に示すように、1画面を4×3の12個のマクロブロックB1〜B12に分割する。
【0023】
そして、このマクロブロック化回路13によりマクロブロック化されたフィールド差分絶対値|Ik−1 (0,0)−Ik (x,y)|は、各マクロブロックB1〜B12に対応するマクロベクトル検出回路14A〜14Lにマクロブロック毎に供給されるとともに、上記ベクトル検出回路14Mに全マクロブロックが供給される。
【0024】
上記第1のマクロベクトル検出回路14Aは、第1のマクロブロックB1のフィールド差分絶対値|Ik−1 (0,0)−Ik (x,y)|について、上記m×n個の画素で構成されるブロックの各フィールド差分絶対値を対応する画素毎に積算して、上記第1のマクロブロックB1の相関積算値表を形成し、その極小値座標を動きベクトル候補として検出する。以下同様に、上記第2乃至第12の絶対値積分回路14B〜14Lは、それぞれ対応する第2乃至第12のマクロブロックB2〜B12の相関積算値表を形成し、各極小値座標を動きベクトル候補として検出する。また、上記第13の絶対値積分回路14Mは、上記第1乃至第12のマクロブロックB1〜B12からなる1画面全体の相関積算値表を形成し、その極小値座標を動きベクトル候補として検出する。
【0025】
ここで、上記マクロベクトル検出部12により形成された各相関積算値表の相関積算値は、各ブロックの代表点画素の画像データIk−1 (0,0)と他の画素の画像データIk (x,y)とのフィールド間相関を示すもので、相関の強い画素に対応する座標ほど小さな値となり、動きベクトルに対応する座標の相関積算値が最小値となるので、相関積算値表の最小値の座標を検出することにより動きベクトルを検出することができる。なお、上記相関積算値表の最小値は極小値の1つであって、画像中の動き物体の占める割合が大きいときには、例えば図5に示すように、マクロブロックB1において、上記動き物体による動きベクトルが上記相関積算値表の最小値座標(3,1)として検出され、背景ベクトルすなわち手振れベクトルが上記マクロブロック単位の動きベクトルを示す座標として検出される割合が低下するが、上記手振れベクトルは上記相関積算値表の極小値の座標(−1,0)として検出されることになる。
【0026】
すなわち、この実施の形態において、上記フィールド差分検出部11及びマクロベクトル検出部12は、互いに隣接しないマクロブロックが生じるような形態で、1画面を複数のマクロブロックに分割し、上記マクロブロック毎に動きベクトルを検出するもので、本発明に係る画像の動きベクトル検出装置におけるマクロベクトル検出手段として機能している。
【0027】
そして、上記マクロベクトル検出部12は、上記第1乃至第12のマクロベクトル検出回路14A〜14Lにより検出した各マクロブロックB1〜B12の動きベクトルすなわち各マクロベクトルと上記ベクトル検出回路14Mにより検出した1画面全体の動きベクトルを上記独立・準独立同一ベクトル判定部15及び上記手振れベクトル判定部16に供給する。
【0028】
上記独立・準独立同一ベクトル判定部15は、上記マクロベクトル検出部12から供給される各マクロベクトル及び画面全体の動きベクトルについて、同一の動きベクトルの発生パターンを判定し、空間的に分離された位置にある少なくとも二つのマクロブロックにおいて同一の動きベクトル(独立同一ベクトル)が検出された場合に、その動きベクトルを画面全体の動きベクトル候補として出力する。例えば上記図5に示した状態では、空間的に分離された位置にある2つマクロブロックB1,4に同一の動きベクトル(−1,0)があるので、この動きベクトル(−1,0)を手振れベクトルとする。このように、上記独立・準独立同一ベクトル判定部15は、各マクロブロックの積算値の最小値ベクトルだけでなく、極小値ベクトルも動きベクトルの候補とすることにより、動き物体が画面中に占める割合が非常に大きいときでも、正しい動きベクトルを検出できる確率が高まり、動き物体の影響を軽減して、誤差の少ない動きベクトルを得ることができる。
【0029】
また、上記独立・準独立同一ベクトル判定部15は、上記マクロベクトル検出部12から供給される各マクロベクトル及び画面全体の動きベクトルについて、同一の動きベクトルの発生パターンを判定し、図6に同一マクロベクトルの発生パターンの一例を示すように、凹状に配置された各マクロブロックにおいて略同一の動きベクトル(準独立同一ベクトル)が検出された場合に、当該動きベクトルを画面全体の動きベクトル候補として出力する。
【0030】
ここで、画面中の存在する自動車や人物などの動き物体は、凸状に現れる場合が多いので、このように凹状に配置された各マクロブロックにおいて略同一の動きベクトルが検出された場合に、当該動きベクトルを画面全体の動きベクトル候補とすることによって、上記独立・準独立同一ベクトル判定部15において動きベクトルを確実に検出することができる。
【0031】
また、上記手振れベクトル判定部16は、本発明に係る画像の動きベクトル検出装置における手振れベクトル判定手段として機能するもので、重なり度算出回路16Aとマクロブロック有効判定メモリ16Bとを備えてなる。
【0032】
この手振れベクトル判定部16において、上記重なり度算出回路16Aは、上記独立・準独立同一ベクトル判定部15により動きベクトルが検出された場合には、その動きベクトルをそのまま出力する。また、上記重なり度算出回路16Aは、1フィールド毎に出力する動きベクトルと同じマクロベクトルが得られた各マクロブロックを示す情報を有効マクロブロック情報として上記マクロブロック有効判定メモリ16Bに記憶させる。
【0033】
例えば、前のフィールドにおいて図7に示すようなマクロベクトルが得られて動きベクトル(−1,2)が検出されたとすると、上記マクロブロック有効判定メモリ16Bには、上記動きベクトル(−1,2)と同じマクロベクトルが得られた図8に斜線を施して示す各マクロブロックB1,B4,B5,B9を示す情報が有効マクロブロック情報として上記マクロブロック有効判定メモリ16Bに記憶される。
【0034】
さらに、上記重なり度算出回路16Aは、上記独立・準独立同一ベクトル判定部15において動きベクトルを検出できない場合に、上記マクロブロック有効判定メモリ16Bから1フィールド前の有効マクロブロック情報を読み出して、上記マクロベクトル検出部12から供給される現フィールドの各マクロベクトルの時間相関を判定し、上記時間相関が有為と判定されたマクロブロックの動きベクトルを画面全体の動きベクトルとして出力する。
【0035】
例えば、現フィールドにおいて図9に示すようなマクロベクトルが得られたとすると、独立同一ベクトルも準備独立同一ベクトルも存在しないので、上記独立・準独立同一ベクトル判定部15では、動きベクトルを検出できない。ここで、動き物体による動きベクトルを示す(7,0)のマクロベクトルが検出された数は9個であり、背景ベクトル(手振れベクトル)を示す(−4,1)のマクロベクトルが検出された数は3個であるから、単純に多数決では動きベクトルが(7,0)に決定してしまうことになる。
【0036】
そこで、上記重なり度算出回路16Aは、現フィールドにおいて(7,0)が動きベクトルであるとすると、上記マクロブロック有効判定メモリ16Bから読み出される前フィールドの有効マクロブロック情報により示される前フィールドで有効であった4個のマクロブロックB1,B4,B5,B9のうち、マクロブロックB4の1個だけが(7,0)であるから、−3+1=−2点とカウントする。また、現フィールドにおいて上記(7,0)のマクロベクトルが得られた図10に斜線を施して示す9個のB2〜B4,B6〜B8,B10〜B12のうち、前フィールドではマクロブロックB4の1個だけが有効マクロブロックであるから、−8+1=−7点とカウントする。そして、現フィールドにおいて(7,0)が動きベクトルであるとする場合の評価点を−2−7=−9点とカウントする。
【0037】
また、上記重なり度算出回路16Aは、現フィールドにおいて(−4,−1)が動きベクトルであるとすると、上記マクロブロック有効判定メモリ16Bから読み出される前フィールドの有効マクロブロック情報により示される前フィールドで有効であった4個のマクロブロックB1,B4,B5,B9のうち、マクロブロックB1,B5,B9の3個が(−4,−1)であるから、3−1=2点とカウントする。また、現フィールドにおいて上記(−4,−1)のマクロベクトルが得られた図11に斜線を施して示す3個のマクロブロックB1,B5,B9が全て前フィールドでは有効マクロブロックであるから、3−0=3点とカウントする。そして、現フィールドにおいて(−4,−1)が動きベクトルであるとする場合の評価点を2+3=5点とカウントする。
【0038】
上記重なり度算出回路16Aは、現フィールドにおいて(7,0)が動きベクトルであるとする場合の評価点は−9点であるのに対し、現フィールドにおいて(−4,−1)が動きベクトルであるとする場合の評価点は5点であるから、上記(−4,−1)が動きベクトルであると判定することができる。
【0039】
このようにこの実施の形態の動きベクトル検出装置では、上記フィールド差分検出部11及びマクロベクトル検出部12により、互いに隣接しないマクロブロックが生じるような形態で、1画面を複数のマクロブロックに分割し、上記マクロブロック毎に動きベクトルを検出する。そして、手振れベクトル判定部16は、上記マクロベクトル検出部12により得られた各マクロブロック毎の動きベクトルの時間相関を判定し、時間相関のある時間相関が有為と判定されたマクロブロックの動きベクトルを画面全体の動きベクトルすなわち手振れベクトルとして出力するので、独立同一ベクトルや準備独立同一ベクトルによる手法や単純な多数決では決定することができない大きな動き物体画面に進入してきたような場合などにおける手振れベクトルを確実に検出して出力することができる。
【0040】
なお、上記重なり度算出回路16Aにおいて、現フィールドの各マクロベクトルの時間相関を判定する手法は、上記手法に限定されるものでない。
【0041】
そして、この動きベクトル検出装置10は、上記独立・準独立同一ベクトル判定部15により検出した動きベクトルを上記補正信号発生部20に供給する。
【0042】
また、上記補正信号発生部20は、上記動きベクトル検出装置10により検出された動きベクトルVt’を入力として、Xt=Xt−1−Vt’なる補正量Xtの画面の振動補正信号を形成し、この画面の振動補正信号を上記補正部30に供給する。
【0043】
そして、上記補正部30は、例えば図12に示すように、上記補正信号発生部20から画面の振動補正信号が供給されるアドレス制御回路31及びセレクト信号発生回路32と、上記アドレス制御回路31から供給されるアドレス信号に従ってビデオデータの書き込み/読み出しが行われるフィールドメモリ33及び周辺メモリ34と、上記フィールドメモリ33及び周辺メモリ34から読み出されるビデオデータを上記セレクト信号発生回路32から供給されるセレクト信号に応じて選択的に出力するセレクタ35とを備えてなる。
【0044】
上記フィールドメモリ33には、上記信号入力端子1を介して供給される入力ビデオデータが順次書き込まれる。そして、このフィールドメモリ33の読み出しアドレスが上記画面の振動補正信号により上記動きベクトルに応じて制御される。これにより、上記フィールドメモリ33からは、1フィールドの入力ビデオデータが上記動きベクトルに応じて移動されたビデオデータが得られる。そして、このフィールドメモリ33から読み出されるビデオデータと上記周辺メモリ34から読み出される周辺ビデオデータとが上記セレクタ35による選択によって合成され、画面の振動補正処理済みのビデオデータとして信号出力端子2から出力される。
【0045】
なお、上記周辺メモリ34には、上記セレクタ35を介して出力される画面の振動補正処理済みのビデオデータによる画像の補正範囲に相当する周辺部分のビデオデータが周辺ビデオデータとして逐次書き込まれる。
【0046】
【発明の効果】
以上の説明からも明らかなように、本発明によれば、互いに隣接しないマクロブロックが生じるような形態で、1画面を複数のマクロブロックに分割し、上記マクロブロック毎に動きベクトルを検出し、検出された各動きベクトルに基づいて画面全体の動きベクトルを検出するための有効マクロブロックを特定し、当該有効マクロブロックの動きベクトルに基づいて動きベクトルを検出し、上記動きベクトルを検出した現画面の上記有効マクロブロックと、前画面の画面全体の動きベクトルを検出するときに用いた有効マクロブロックとの位置情報の相関に基づいて、上記動きベクトルを画面全体の動きベクトルとして出力するので、独立同一ベクトルや準備独立同一ベクトルによる手法や単純な多数決では決定することができない大きな動き物体画面に進入してきたような場合などにおける動きベクトルを確実に検出して出力することができ、正しい動きベクトルを検出できる確率が高まり、動き物体の影響を軽減して、誤差の少ない動きベクトルを得ることができる。
【図面の簡単な説明】
【図1】本発明に係る画像の動きベクトル検出装置を設けた画像の振動補正装置の構成を示すブロック図である。
【図2】上記動きベクトル検出装置における画面のブロック分割の状態を示す図である。
【図3】ブロック分割された画面の1ブロックの構造を示す図である。
【図4】1画面を12分割したマクロブロックの状態を示す図である。
【図5】独立・準独立同一ベクトル判定部により動きベクトルとして検出する独立同一ベクトルの発生パターンの一例を示す図である。
【図6】上記独立・準独立同一ベクトル判定部により動きベクトルとして検出する準独立同一ベクトルの発生パターンの一例を示す図である。
【図7】上記独立・準独立同一ベクトル判定部により動きベクトルが検出された前フィールドのマクロベクトルの発生状態を示す図である。
【図8】上記独立・準独立同一ベクトル判定部により動きベクトルが検出された前フィールドのマクロベクトルの発生パターンを示す図である。
【図9】上記独立・準独立同一ベクトル判定部により動きベクトルが検出できない現フィールドのマクロベクトルの発生状態を示す図である。
【図10】現フィールドにおける物体による動きベクトルの発生パターンを示す図である。
【図11】現フィールドにおけるき動きベクトルの発生パターンを示す図である。
【図12】上記画面の振動補正装置の補正部の構成を示すブロック図である。
【図13】マクロベクトルの多数決により動きベクトルを決定する手法の説明に供する図である。
【図14】空間的に分離された位置のマクロベクトルにより動きベクトルを決定する手法の説明に供する図である。
【図15】空間的に分離された位置のマクロベクトルにより動きベクトルを決定する手法の破綻例の説明に供する図である。
【符号の説明】
10 動きベクトル検出装置、11 フィールド差分検出部、12 マクロベクトル検出部、15 独立・準独立ベクトル判定部、16 手振れベクトル判定部、20 補正信号発生部、30 補正部[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a motion vector detecting device and method, and an image vibration correcting device and method, and detects and corrects a moving amount of an image due to a so-called camera shake included in video data such as an imaging output of a handy type video camera. The present invention is applied to an image stabilization device for a moving image.
[0002]
[Prior art]
In general, in a handy type video camera, camera shake during shooting, that is, camera vibration appears as image vibration. Therefore, as an image stabilization device for correcting image vibration caused by such a camera shake, for example, as disclosed in Japanese Patent Application Laid-Open No. 63-166370, a motion vector of an image is detected and based on this motion vector. A technique for correcting video data stored in an image memory has been proposed.
[0003]
For example, a block matching method is employed for detecting a motion vector of an image. In the detection of a motion vector of an image by the block matching method, a screen is divided into a number of regions (referred to as blocks), and a representative point pixel of a previous field located at the center of each block and a pixel of each pixel in a block of the current field are determined. The absolute value of the field difference from the image data is calculated, the absolute value of the field difference of each block is integrated for each corresponding pixel to obtain a correlation integral value, and the correlation integration having coordinates corresponding to the pixel array of one block Form a value table. Then, the motion vector of the entire screen is determined using the coordinate value of the minimum value of the correlation integral value in the correlation integrated value table as the coordinate value of the motion vector of the image.
[0004]
In general, in the above-described block matching method, a motion vector of an image due to camera shake and a motion vector due to a motion of a subject are simultaneously generated, so that it is difficult to determine these. 2. Description of the Related Art Conventionally, as a method for improving the accuracy of detecting a motion vector of an image due to camera shake, one screen is divided into a plurality of regions (macroblocks), and motion vectors (macrovectors) for each macroblock are obtained. Techniques for determining vectors are known. For example, as shown in FIG. 13, (2, 0) is determined as a motion vector of the entire screen by a majority decision on macro vectors obtained by dividing one screen into 4 × 3 macroblocks. The effect of the motion vector was removed.
[0005]
[Problems to be solved by the invention]
By the way, in the method of detecting a motion vector by obtaining a minimum value of a correlation integrated value table in a macroblock unit and detecting a motion vector of the entire screen from the motion vector of each macroblock, if there is a moving object, a camera shake vector Since the background image including the information of the moving object is masked by the moving object, the larger the proportion of the moving object in the image is, the lower the rate at which the camera shake vector is detected as the motion vector in the macroblock unit is, and the correct camera shake is. There is a problem that it is difficult to detect the vector.
[0006]
Accordingly, the present applicant divides one screen into a plurality of macroblocks in such a manner that macroblocks that are not adjacent to each other are generated, and detects a motion vector by obtaining a minimum value of a correlation integrated value table for each macroblock. As shown in FIG. 14, a method of using the same motion vector (independent same vector) detected in at least two macroblocks located at spatially separated positions as a camera shake vector is disclosed in, for example, Japanese Patent Application No. 3-100384. And so on. FIG. 14 shows an example of a motion vector of each macroblock and a (macrovector) generation pattern thereof.
[0007]
However, for example, as shown in a macro vector in FIG. 15, when a large moving object screen is entered, the motion vector (−3, 0) based on the moving object can be obtained by the above-described majority decision or the independent identical vector method. And the camera shake vector (1, -2) may not be able to be determined.
[0008]
Accordingly, the present invention has been made in view of such circumstances, and aims to enable high-performance camera shake correction in a handy-type video camera or the like, and even when a moving object is present in an image. An object of the present invention is to provide a motion vector detecting device and method capable of detecting a motion vector with high accuracy, and an image vibration correcting device and method.
[0009]
[Means for Solving the Problems]
A motion vector detecting apparatus according to the present invention divides one screen into a plurality of macro blocks in such a manner that macro blocks that are not adjacent to each other are generated, and macro vector detecting means for detecting a motion vector for each macro block. When substantially the same motion vector is detected by the macro vector detection means in at least two non-adjacent macro blocks, the macro block is set as an effective macro block, and a motion vector of the entire screen is detected based on the effective macro block. Motion vector detection means, storage means for storing position information of the effective macroblock, and position of a macroblock having the same motion vector on the current screen when the motion vector of the entire screen is not detected by the motion vector detection means. Information and Is based on the time correlation between the position information of the effective macro block of the previous screen is characterized by comprising a determination means for outputting the entire screen of the motion vector of the current screen.
[0010]
In addition, the motion vector detecting method according to the present invention includes a step of dividing one screen into a plurality of macroblocks and detecting a motion vector for each macroblock in such a manner that macroblocks not adjacent to each other occur. Detecting substantially the same motion vector in at least two of the macroblocks, determining the macroblock as an effective macroblock, and detecting a motion vector of the entire screen based on the effective macroblock; Storing the position information of the macro block having the same motion vector of the current screen when the motion vector of the entire screen is not detected, and the position information of the effective macro block of the previous screen to be stored. Of the current screen based on the time correlation of Characterized in that it comprises a step of outputting the torque.
[0011]
In addition, the image vibration correction apparatus according to the present invention divides one screen into a plurality of macroblocks in such a manner that macroblocks that are not adjacent to each other occur, and detects a motion vector for each macroblock. And when substantially the same motion vector is detected by the macro vector detecting means in at least two macro blocks that are not adjacent to each other, the macro block is regarded as an effective macro block, and the motion vector of the entire screen is determined based on the effective macro block. , A storage unit for storing the position information of the effective macroblock, and a macro having the same motion vector of the current screen when the motion vector of the entire screen is not detected by the motion vector detection means. Block position information and the storage means A determination unit that outputs a motion vector of the entire screen of the current screen based on the time correlation with the position information of the effective macroblock of the previous screen to be stored, and a motion vector of the entire screen output from the determination unit based on the motion vector. And a correcting means for correcting the vibration of the image forming the screen.
[0012]
Further, in the image vibration correction method according to the present invention, a screen is divided into a plurality of macroblocks in such a manner that macroblocks not adjacent to each other are generated, and a motion vector is detected for each macroblock. Detecting substantially the same motion vector in at least two non-adjacent macroblocks as a valid macroblock and detecting a motion vector of the entire screen based on the valid macroblock; Storing the position information of the block, and when the motion vector of the entire screen is not detected, the position information of the macro block having the same motion vector of the current screen and the position information of the effective macro block of the previous screen to be stored. Based on the time correlation with the And outputting the torque, based on the motion vector of the entire screen to be the output, characterized in that it comprises a step of correcting the vibration of the image constituting the screen.
[0013]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[0014]
An apparatus for detecting a motion vector of an image according to the present invention is configured, for example, as shown in FIG.
[0015]
The motion
[0016]
The motion
[0017]
The field difference detection unit 11 includes a
[0018]
The
[0019]
Further, the
[0020]
Then, the field difference detection unit 11 supplies the macro
[0021]
The macro
[0022]
The
[0023]
The field difference absolute value | Ik-1 (0,0) -Ik (x, y) | which has been macroblocked by the
[0024]
The first macro vector detection circuit 14A is configured by the m × n pixels for the field difference absolute value | Ik−1 (0,0) −Ik (x, y) | of the first macro block B1. The absolute value of each field difference of the block to be processed is integrated for each corresponding pixel to form a correlation integrated value table of the first macroblock B1, and the minimum value coordinates are detected as motion vector candidates. Similarly, the second to twelfth absolute value integrators 14B to 14L form a correlation integrated value table of the corresponding second to twelfth macroblocks B2 to B12, and convert each minimum value coordinate to a motion vector. Detect as a candidate. Further, the thirteenth absolute
[0025]
Here, the correlation integrated value of each correlation integrated value table formed by the macro
[0026]
That is, in this embodiment, the field difference detection unit 11 and the macro
[0027]
Then, the macro
[0028]
The independent / quasi-independent identical
[0029]
The independent / quasi-independent identical
[0030]
Here, a moving object such as a car or a person present on the screen often appears in a convex shape, so that when substantially the same motion vector is detected in each of the macroblocks arranged in a concave shape as described above, By using the motion vector as a motion vector candidate for the entire screen, the independent / quasi-independent identical
[0031]
The camera shake
[0032]
When the motion vector is detected by the independent / quasi-independent identical
[0033]
For example, assuming that a macro vector as shown in FIG. 7 is obtained in the previous field and a motion vector (-1, 2) is detected, the motion vector (-1, 2, 3) is stored in the macro block validity determination memory 16B. 8) obtained by obtaining the same macro vector as that shown in FIG. 8 are stored in the macroblock
[0034]
Further, when the independent / quasi-independent identical
[0035]
For example, if a macro vector as shown in FIG. 9 is obtained in the current field, there is no independent identical vector and no prepared independent identical vector, so that the independent / quasi-independent identical
[0036]
Therefore, assuming that (7, 0) is a motion vector in the current field, the overlapping
[0037]
If the current field is (-4, -1) as a motion vector, the overlap
[0038]
The above-described overlap
[0039]
As described above, in the motion vector detection device of this embodiment, the screen is divided into a plurality of macroblocks by the field difference detection unit 11 and the macro
[0040]
The method of determining the time correlation of each macro vector of the current field in the overlapping
[0041]
Then, the motion
[0042]
In addition, the
[0043]
The
[0044]
Input video data supplied through the
[0045]
In the
[0046]
【The invention's effect】
As is clear from the above description, according to the present invention, one screen is divided into a plurality of macroblocks in such a manner that macroblocks that are not adjacent to each other are generated, and a motion vector is detected for each macroblock. An effective macroblock for detecting a motion vector of the entire screen based on each detected motion vector is specified, a motion vector is detected based on a motion vector of the effective macroblock, and the current screen on which the motion vector is detected is detected. The motion vector is output as a motion vector of the entire screen based on the correlation between the effective macroblock of the above and the position information of the effective macroblock used when detecting the motion vector of the entire screen of the previous screen. Large movements that cannot be determined by the same vector, preparation independent It is possible to reliably detect and output a motion vector such as when entering an object screen, and the probability of detecting a correct motion vector increases. Obtainable.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a configuration of an image vibration correction device provided with an image motion vector detection device according to the present invention.
FIG. 2 is a diagram showing a state of block division of a screen in the motion vector detection device.
FIG. 3 is a diagram showing a structure of one block of a screen divided into blocks.
FIG. 4 is a diagram showing a state of a macro block obtained by dividing one screen into 12 parts.
FIG. 5 is a diagram illustrating an example of an occurrence pattern of an independent identical vector detected as a motion vector by an independent / quasi-independent identical vector determination unit.
FIG. 6 is a diagram showing an example of a generation pattern of a quasi-independent identical vector detected as a motion vector by the independent / quasi-independent identical vector determination unit.
FIG. 7 is a diagram showing a macro vector generation state of a previous field in which a motion vector has been detected by the independent / quasi-independent same vector determination unit.
FIG. 8 is a diagram illustrating a macro vector generation pattern of a previous field in which a motion vector is detected by the independent / quasi-independent same vector determination unit.
FIG. 9 is a diagram showing a generation state of a macro vector of a current field in which a motion vector cannot be detected by the independent / quasi-independent same vector determination unit.
FIG. 10 is a diagram illustrating a generation pattern of a motion vector due to an object in a current field.
FIG. 11 is a diagram showing a generation pattern of a motion vector in a current field.
FIG. 12 is a block diagram illustrating a configuration of a correction unit of the screen vibration correction device.
FIG. 13 is a diagram provided for describing a method of determining a motion vector by majority decision of a macro vector.
FIG. 14 is a diagram for explaining a method of determining a motion vector by using macro vectors at spatially separated positions.
FIG. 15 is a diagram provided for describing a failure example of a method of determining a motion vector using macro vectors at spatially separated positions.
[Explanation of symbols]
Claims (4)
互いに隣接しない少なくとも2つの上記マクロブロックにおいて上記マクロベクトル検出手段により略同一の動きベクトルが検出されるとき、当該マクロブロックを有効マクロブロックとして、当該有効マクロブロックに基づいて画面全体の動きベクトルを検出する動きベクトル検出手段と、
上記有効マクロブロックの位置情報を記憶する記憶手段と、
上記動きベクトル検出手段により上記画面全体の動きベクトルが検出されないとき、現画面の同一の動きベクトルを有するマクロブロックの位置情報と、上記記憶手段に記憶される前画面の有効マクロブロックの位置情報との時間相関に基づいて、現画面の画面全体の動きベクトルを出力する判定手段と
を備える動きベクトル検出装置。Macro vector detecting means for dividing one screen into a plurality of macro blocks and detecting a motion vector for each macro block in such a manner that macro blocks which are not adjacent to each other are generated;
When substantially the same motion vector is detected by the macro vector detection means in at least two macro blocks that are not adjacent to each other, the macro block is determined as an effective macro block, and a motion vector of the entire screen is detected based on the effective macro block. Motion vector detecting means,
Storage means for storing the position information of the effective macroblock;
When the motion vector of the entire screen is not detected by the motion vector detection means, the position information of the macroblock having the same motion vector of the current screen and the position information of the effective macroblock of the previous screen stored in the storage means Determining means for outputting a motion vector of the entire screen of the current screen based on the time correlation of the motion vector.
互いに隣接しない少なくとも2つの上記マクロブロックにおいて略同一の動きベクトルが検出されるとき、当該マクロブロックを有効マクロブロックとして、当該有効マクロブロックに基づいて画面全体の動きベクトルを検出するステップと、
上記有効マクロブロックの位置情報を記憶するステップと、
上記画面全体の動きベクトルが検出されないとき、現画面の同一の動きベクトルを有するマクロブロックの位置情報と、上記記憶される前画面の有効マクロブロックの位置情報との時間相関に基づいて、現画面の画面全体の動きベクトルを出力するステップと
を備える動きベクトル検出方法。Dividing one screen into a plurality of macroblocks and detecting a motion vector for each macroblock in such a manner that macroblocks not adjacent to each other occur;
Detecting substantially the same motion vector in at least two of the macroblocks that are not adjacent to each other as a valid macroblock and detecting a motion vector of the entire screen based on the valid macroblock;
Storing the position information of the effective macroblock;
When the motion vector of the entire screen is not detected, based on the time correlation between the position information of the macro block having the same motion vector of the current screen and the stored position information of the effective macro block of the previous screen, the current screen is detected. And outputting a motion vector of the entire screen.
互いに隣接しない少なくとも2つの上記マクロブロックにおいて上記マクロベクトル検出手段により略同一の動きベクトルが検出されるとき、当該マクロブロックを有効マクロブロックとして、当該有効マクロブロックに基づいて画面全体の動きベクトルを検出する動きベクトル検出手段と、
上記有効マクロブロックの位置情報を記憶する記憶手段と、
上記動きベクトル検出手段により上記画面全体の動きベクトルが検出されないとき、現画面の同一の動きベクトルを有するマクロブロックの位置情報と、上記記憶手段に記憶される前画面の有効マクロブロックの位置情報との時間相関に基づいて、現画面の画面全体の動きベクトルを出力する判定手段と、
上記判定手段より出力される画面全体の動きベクトルに基づいて、上記画面を構成する画像の振動を補正する補正手段と
を備える画像の振動補正装置。Macro vector detecting means for dividing one screen into a plurality of macro blocks and detecting a motion vector for each macro block in such a manner that macro blocks which are not adjacent to each other are generated;
When substantially the same motion vector is detected by the macro vector detection means in at least two macro blocks that are not adjacent to each other, the macro block is determined as an effective macro block, and a motion vector of the entire screen is detected based on the effective macro block. Motion vector detecting means,
Storage means for storing the position information of the effective macroblock;
When the motion vector of the entire screen is not detected by the motion vector detection means, the position information of the macroblock having the same motion vector of the current screen and the position information of the effective macroblock of the previous screen stored in the storage means Determining means for outputting a motion vector of the entire screen of the current screen based on the time correlation of
An image vibration correction apparatus comprising: a correction unit configured to correct a vibration of an image forming the screen based on a motion vector of the entire screen output from the determination unit.
互いに隣接しない少なくとも2つの上記マクロブロックにおいて略同一の動きベクトルが検出されるとき、当該マクロブロックを有効マクロブロックとして、当該有効マクロブロックに基づいて画面全体の動きベクトルを検出するステップと、
上記有効マクロブロックの位置情報を記憶するステップと、
上記画面全体の動きベクトルが検出されないとき、現画面の同一の動きベクトルを有するマクロブロックの位置情報と、上記記憶される前画面の有効マクロブロックの位置情報との時間相関に基づいて、現画面の画面全体の動きベクトルを出力するステップと、
上記出力される画面全体の動きベクトルに基づいて、上記画面を構成する画像の振動を補正するステップと
を備える画像の振動補正方法。Dividing one screen into a plurality of macroblocks and detecting a motion vector for each macroblock in such a manner that macroblocks not adjacent to each other occur;
Detecting substantially the same motion vector in at least two of the macroblocks that are not adjacent to each other as a valid macroblock and detecting a motion vector of the entire screen based on the valid macroblock;
Storing the position information of the effective macroblock;
When the motion vector of the entire screen is not detected, based on the time correlation between the position information of the macro block having the same motion vector of the current screen and the stored position information of the effective macro block of the previous screen, the current screen is detected. Outputting a motion vector of the entire screen of
Correcting the vibration of the image forming the screen based on the output motion vector of the entire screen.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001343752A JP3601506B2 (en) | 2001-11-08 | 2001-11-08 | Apparatus and method for detecting motion vector, and apparatus and method for correcting image vibration |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001343752A JP3601506B2 (en) | 2001-11-08 | 2001-11-08 | Apparatus and method for detecting motion vector, and apparatus and method for correcting image vibration |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP16829892A Division JP3466640B2 (en) | 1992-06-04 | 1992-06-04 | Apparatus and method for detecting motion vector, apparatus and method for correcting image vibration |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002203247A JP2002203247A (en) | 2002-07-19 |
JP3601506B2 true JP3601506B2 (en) | 2004-12-15 |
Family
ID=19157385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001343752A Expired - Lifetime JP3601506B2 (en) | 2001-11-08 | 2001-11-08 | Apparatus and method for detecting motion vector, and apparatus and method for correcting image vibration |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3601506B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7777781B2 (en) * | 2005-08-26 | 2010-08-17 | Avago Technologies Ecbu Ip (Singapore) Pte. Ltd. | Method and system for determining the motion of an imaging apparatus |
JP4595834B2 (en) * | 2006-03-03 | 2010-12-08 | 日本ビクター株式会社 | Motion vector detection method and apparatus |
US8013895B2 (en) | 2006-08-07 | 2011-09-06 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Optical motion sensing |
-
2001
- 2001-11-08 JP JP2001343752A patent/JP3601506B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2002203247A (en) | 2002-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4639555B2 (en) | Motion vector detection apparatus and method, camera shake correction apparatus and method, and imaging apparatus | |
JPH05122586A (en) | Blurring corrector for image | |
KR100262793B1 (en) | Image stabilization device | |
US20120051662A1 (en) | Image processing apparatus and storage medium | |
JP3601506B2 (en) | Apparatus and method for detecting motion vector, and apparatus and method for correcting image vibration | |
JP2008010958A (en) | Imaging apparatus and method | |
JP3465264B2 (en) | Apparatus and method for detecting motion of video data | |
JP3252418B2 (en) | Image shake determination device | |
JP2017022597A (en) | Image processing apparatus, control method thereof, and control program | |
JP3225598B2 (en) | Image shake detection device | |
JP3252448B2 (en) | Apparatus and method for detecting motion vector and apparatus and method for correcting image vibration | |
JP3223582B2 (en) | Image shake detection device | |
JP3466640B2 (en) | Apparatus and method for detecting motion vector, apparatus and method for correcting image vibration | |
JP3271273B2 (en) | Image vibration determination apparatus, image vibration correction apparatus, image vibration determination method, and image vibration correction method | |
JP3223577B2 (en) | Image stabilization device | |
JP2006215655A (en) | Method, apparatus, program and program storage medium for detecting motion vector | |
JP3221052B2 (en) | Image shake detection device | |
JP3727460B2 (en) | Motion vector detection circuit | |
JP3200900B2 (en) | Image shake determination device | |
JP3252415B2 (en) | Image stabilization device | |
JPH10173992A (en) | Image correction device | |
JP3252416B2 (en) | Image stabilization device | |
JP2008048459A (en) | Image composing apparatus | |
JP3200888B2 (en) | Image vibration correction device | |
JP3271274B2 (en) | Image vibration determination apparatus, image vibration correction apparatus, image vibration determination method, and image vibration correction method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040820 |
|
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: 20040831 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040913 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091001 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101001 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101001 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111001 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111001 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121001 Year of fee payment: 8 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121001 Year of fee payment: 8 |