JP4923368B2 - Tracking type motion vector search method and apparatus - Google Patents

Tracking type motion vector search method and apparatus Download PDF

Info

Publication number
JP4923368B2
JP4923368B2 JP2001280912A JP2001280912A JP4923368B2 JP 4923368 B2 JP4923368 B2 JP 4923368B2 JP 2001280912 A JP2001280912 A JP 2001280912A JP 2001280912 A JP2001280912 A JP 2001280912A JP 4923368 B2 JP4923368 B2 JP 4923368B2
Authority
JP
Japan
Prior art keywords
motion vector
search
vector search
sad
searches
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 - Fee Related
Application number
JP2001280912A
Other languages
Japanese (ja)
Other versions
JP2003087799A (en
Inventor
佩林 劉
敏幸 吉武
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2001280912A priority Critical patent/JP4923368B2/en
Publication of JP2003087799A publication Critical patent/JP2003087799A/en
Application granted granted Critical
Publication of JP4923368B2 publication Critical patent/JP4923368B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Analysis (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、MPEG4(Moving Picture Experts Group 4)エンコーダ等、動き補償を行う動画像エンコーダに使用して好適な追跡型動きベクトル探索方法及び装置に関する。
【0002】
【従来の技術】
たとえば、MPEG4エンコーダにおいては、動きベクトルを用いた動き補償予測符号化処理が行われるが、動きベクトル探索方法の一例として、たとえば、フルサーチ(Full Search)法と呼ばれる方法が知られている。
【0003】
フルサーチ法は、動きベクトル探索範囲の全探索点で、現フレームの輝度信号のマクロブロックの各画素のデータと参照フレームの参照ブロックの各画素のデータとの差分絶対値の総和(以下、単に「SAD」という場合もある)を算出し、SADが一番小さい参照ブロックを現フレームの輝度信号のマクロブロックと最もマッチングの良い参照ブロックとし、動きベクトルを算出するというものである。
【0004】
たとえば、図12に示すように、動きベクトル探索範囲が15×15画素である場合、フルサーチ法では、動きベクトル探索範囲の225個の全画素を探索点とし、これら225個の探索点の各々についてSADを算出し、SADが一番小さい参照ブロックを現フレームの輝度信号のマクロブロックと最もマッチングの良い参照ブロックとし、動きベクトルを算出することになる。
【0005】
このように、フルサーチ法は、動きベクトル探索範囲の全画素を探索点としてブロックマッチングを行う方法であり、局部最小に陥らないため、探索精度が高く、画質の向上を図ることができるという利点を有している。しかし、動きベクトル探索範囲の全画素を探索点としているため、探索回数は、たとえば、動きベクトル探索範囲が15×15画素である場合には225回、動きベクトル探索範囲が31×31画素である場合には961回となってしまう。
【0006】
このため、フルサーチ法は、演算量が非常に大きく、リアルタイムシステムに適用することが実際には難しいという問題点を有している。そこで、演算量を削減した動きベクトル探索方法として、TSS(Three Step Search)法と呼ばれる方法や、NTSS(New Three Step Search)法と呼ばれる方法や、サンプリング法と呼ばれる方法が提案されている。
【0007】
TSS法は、3回のステップで動きベクトルの探索を行う方法である。たとえば、図13に示すように、動きベクトル探索範囲が15×15画素である場合、TSS法では、まず、中心画素(0、0)と、その周辺の8個の画素、たとえば、画素(−4、−4)、(0、−4)、(4、−4)、(−4、0)、(4、0)、(−4、4)、(0、4)、(4、4)との合計9個の画素を1回目のステップでの探索点として、各探索点についてSADが算出される。
【0008】
ここで、たとえば、探索点(−4、−4)のSADが一番小さい場合には、探索点(−4、−4)の周辺の8個の画素、たとえば、画素(−6、−6)、(−4、−6)、(−2、−6)、(−6、−4)、(−2、−4)、(−6、−2)、(−4、−2)、(−2、−2)を2回目のステップでの探索点として、各探索点についてSADが算出される。
【0009】
ここで、たとえば、探索点(−2、−6)のSADが一番小さい場合には、探索点(−2、−6)の周辺の8個の画素、たとえば、画素(−3、−7)、(−2、−7)、(−1、−7)、(−3、−6)、(−1、−6)、(−3、−5)、(−2、−5)、(−1、−5)を3回目のステップでの探索点として、各探索点についてSADが算出され、たとえば、探索点(−2、−7)のSADが一番小さい場合には、座標(−2、−7)が動きベクトルとされる。
【0010】
NTSS法は、NSS法と同様に3回のステップで動きベクトルの探索を行う方法である。NSS法と異なる点は、たとえば、図14に示すように、1回目のステップでの探索点として、TSS法の場合に設定される9個の探索点のほかに、中心座標(0、0)に隣接する8個の画素(−1、−1)、(0、−1)、(1、−1)、(−1、0)、(1、0)、(−1、1)、(0、1)、(1、1)を探索点として設定するという点である。
【0011】
サンプリング法は、所定のパターンをなす一定の画素を探索点とするものであり、たとえば、図15に示すように、動きベクトル探索範囲が15×15画素である場合、4×4個の画素、たとえば、画素(−7、−7)、(−3、−7)、(1、−7)、(5、−7)、(−7、−3)、(−3、−3)、(1、−3)、(5、−3)、(−7、1)、(−3、1)、(1、1)、(5、1)、(−7、5)、(−3、5)、(1、5)、(5、5)を探索点として、各探索点についてSADを算出し、SADが一番小さい探索点の座標を動きベクトルとするものである。
【0012】
TSS法、NTSS法及びサンプリング法は、一定の探索範囲で、決まった探索パターンを用いるため、動きベクトル探索回数が一定となる。動きベクトル探索回数は、たとえば、動き探索範囲が15×15画素である場合、TSS法では25回、NTSS法では33回、4×4サンプリング法では16回であり、動きベクトル探索範囲が31×31画素である場合、TSS法では33回、NTSS法では41回、8×8サンプリング法では64回である。
【0013】
フルサーチ法、TSS法、NTSS法及びサンプリング法は、動きベクトル探索回数を固定とするものであるが、動きベクトル探索回数を不定とする動きベクトル探索方法も提案されている。一般に、追跡型動きベクトル探索方法と呼ばれるものであり、BBGDS(Block-Based Gradient Descent Search)法やDS(Diamond Search)法などがこれに含まれる。
【0014】
追跡型動きベクトル探索方法は、探索原点(参照フレームの現フレームの輝度信号のマクロブロックと同じ位置)から所定の探索パターンに従って各探索点のSADを計算し、探索パターン中心の探索点のSADが一番小さくなるまで、次の探索パターン中心をSADが一番小さい探索点に移動させることにより、動きベクトルを算出するというものである。
【0015】
図16は追跡型動きベクトル探索方法の一例を説明するための図である。この例では、まず、画素(0、0)を探索原点とし、4個の画素(0、−1)、(−1、0)、(1、0)、(0、1)を探索点として4点探索が行われる。すなわち、これら4個の探索点(0、−1)、(−1、0)、(1、0)、(0、1)のSADが計算され、SADが一番小さい探索点に探索パターン中心が移動される。ここで、たとえば、探索点(1、0)の探索点のSADが一番小さい場合、探索パターン中心が探索点(1、0)に移動される。
【0016】
次に、3個の画素(1、−1)、(2、0)、(1、1)を探索点として3点探索が行われる。すなわち、これら3個の探索点(1、−1)、(2、0)、(1、1)のSADが計算され、探索点(1、0)の探索点のSADが一番小さい場合には探索が終了され、座標(1、0)が動きベクトルとされる。これに対して、探索点(1、−1)、(2、0)、(1、1)の中にSADの一番小さいものがある場合には、その探索点に探索パターン中心が移動され、3点探索が行われる。
【0017】
ここで、たとえば、探索点(2、0)のSADが一番小さい場合、探索パターン中心が探索点(2、0)に移動され、3個の座標(2、−1)、(3、0)、(2、1)を探索点として3点探索が行われる。すなわち、これら探索点(2、−1)、(3、0)、(2、1)のSADが計算され、探索点(2、0)のSADが一番小さい場合には探索が終了され、座標(2、0)が動きベクトルとされる。これに対して、探索点(2、−1)、(3、0)、(2、1)の中にSADの一番小さいものがある場合には、その探索点に探索パターン中心が移動され、3点探索が行われる。
【0018】
ここで、たとえば、探索点(3、0)のSADが一番小さい場合、探索パターン中心が探索点(4、0)に移動され、3点探索が行われ、以下、探索パターン中心のSADが一番小さくなるまで、同様の動作が繰り返される。
【0019】
【発明が解決しようとする課題】
フルサーチ法、TSS法、NTSS法及びサンプリング法は、動きが少ない場合であっても、予め決めた探索回数で動きベクトルを求めるため、無駄な計算を行う場合があるという問題点を有している。
【0020】
これに対して、追跡型動きベクトル探索方法は、探索パターン中心の探索点のSADが一番小さくなるまで、動きベクトルの探索を続けるため、画像によっては、動きベクトルを早く検出することができる。しかし、画像によっては、時間が掛かることもあり、このような場合には、動きベクトルの探索を続けても、探索精度は上がりにくく、探索効率が悪くなる。
【0021】
本発明は、かかる点に鑑み、動きベクトル探索の効率化を図ることができるようにした追跡型動きベクトル探索方法及び装置を提供することを目的とする。
【0022】
【課題を解決するための手段】
本発明の追跡型動きベクトル探索方法は、動きベクトル探索可能回数を処理単位(たとえば、MPEGエンコーダにおいては、輝度信号のマクロブロック)ごとに設定するというものである。
【0023】
本発明の追跡型動きベクトル探索方法によれば、動きベクトル探索可能回数を処理単位ごとに設定するとしているので、無駄な動きベクトル探索を防ぐことができる。
【0024】
本発明の追跡型動きベクトル探索装置は、動きベクトル探索可能回数を処理単位(たとえば、MPEGエンコーダにおいては、輝度信号のマクロブロック)ごとに設定する手段を有するというものである。
【0025】
本発明の追跡型動きベクトル探索装置によれば、動きベクトル探索可能回数を処理単位ごとに設定することができるので、無駄な動きベクトル探索を防ぐことができる。
【0026】
【発明の実施の形態】
図1は本発明の追跡型動きベクトル探索装置の一実施形態の一部分を示す回路図である。本発明の追跡型動きベクトル探索装置の一実施形態は、MPEGエンコーダの一部分を構成するものであり、本発明の追跡型動きベクトル探索方法の一実施形態を実行することができるものである。
【0027】
図1中、1はエンコードする前の元画像データを入力してMPEGエンコーダ内の各部を制御するエンコーダ制御部、2はエンコーダ制御部1を介して供給される元画像データからSADの計算に必要な探索データを生成する探索データ生成部である。
【0028】
3は探索データ生成部2からSAD計算スタート信号と現フレームの輝度信号のマクロブロックの画素のデータと参照フレームの輝度信号のマクロブロックの画素のデータが供給され、後述する探索順番制御部から順番に指示される探索点のSADを計算するSAD演算部である。
【0029】
4は動きベクトル探索を制御する探索制御部であり、5はSADを計算する探索点の順番を制御する探索順番制御部であり、探索順番制御部5は、たとえば、図16を使用して説明した方法と同様の方法で追跡型動きベクトル探索を行うことができるように探索順番制御を行う。
【0030】
6はSAD演算部3から供給されるSADに基づいて動きベクトルを計算する動きベクトル計算部、7は動きベクトル探索を終了するか否かを判断し、動きベクトル探索を終了する場合には、動きベクトル探索終了信号を出力する探索終了判断部である。
【0031】
図2は探索終了判断部7の構成を示す回路図である。図2中、8は探索データ生成部2から供給されるSAD計算スタート信号を起動信号として動きベクトル探索回数をカウントする探索回数カウンタ、9は動きベクトル探索終了信号をリセット信号として探索回数カウンタ8の出力値を記憶するレジスタである。本例では、1個の探索点のSADの計算を1回の動きベクトル探索回数とする。
【0032】
10は1フレームに割り当てられている動きベクトル探索可能回数とレジスタ9に記憶されている現マクロブロック(現に動きベクトル探索の対象とされているマクロブロック)の現動きベクトル探索回数を入力して、現マクロブロックの残りの動きベクトル探索可能回数を計算する残り探索可能回数計算ブロックである。なお、残り探索可能回数計算ブロック10から出力される残りの動きベクトル探索可能回数の初期値は、現マクロブロックに割り当てられた探索可能回数である。
【0033】
11は条件1チェックブロックであり、条件1チェックブロック11は、SAD演算部3から供給される各探索点のSADと、探索回数カウンタ8から出力される現動きベクトル探索回数とを入力し、探索パターン中心の探索点のSADが一番小さくなっているか否かをチェックし、探索パターン中心の探索点のSADが一番小さくなっていると判定した時は、その出力C1を論理「1」とするものである。すなわち、条件1チェックブロック11は、従来通常に採用されている動きベクトル探索終了条件を条件1とし、これを満たしているか否かをチェックするブロックである。
【0034】
12は条件2チェックブロックであり、条件2チェックブロック12は、SAD演算部3から供給される各探索点のSADと、閾値THR1、Nとを入力し、前回([i−1]回目)の動きベクトル探索でSADが最小であった探索点のSAD:minSAD[i−1]と今回([i]回目)の動きベクトル探索でSADが最小であった探索点のSAD:minSAD[i]の差分絶対値|minSAD[i]−minSAD[i−1]|がN回続いて閾値THR1より小さいことを条件2として、条件2を満たしているか否かをチェックし、これを満たしていると判定した時は、その出力C2を論理「1」とするものである。
【0035】
13は残り探索可能回数計算ブロック10から出力される残りの動きベクトル探索可能回数を入力して条件2チェックブロック12に対して、閾値THR1として所定の値Thr1_1、Thr1_2、Thr1_3(Thr1_1<Thr1_2<Thr1_3)を選択的に供給するセレクタ、14は残り探索可能回数計算ブロック10から出力される残りの動きベクトル探索可能回数を入力して条件2チェックブロック12に対して、閾値NとしてN1、N2、N3(N1>N2>N3)を選択的に供給するセレクタである。
【0036】
15は条件3チェックブロックであり、条件3チェックブロック15は、SAD演算部3から供給される各探索点のSADと、閾値THR2とを入力し、今回([i]回目)の動きベクトル探索でSADが最小であった探索点のSAD:minSAD[i]が閾値THR2より小さいことを条件3として、条件3を満たしているか否かをチェックし、これを満たしていると判定した時は、その出力C3を論理「1」とするものである。
【0037】
16は残り探索可能回数計算ブロック10から出力される残りの動きベクトル探索可能回数を入力し、条件3チェックブロック15に対して、閾値THR2として、所定の値Thr2_1、Thr2_2、Thr2_3(Thr2_1<Thr2_2<Thr2_3)を選択的に供給するセレクタである。
【0038】
17は条件4チェックブロックであり、条件4チェックブロック17は、探索回数カウンタ8から供給される現動きベクトル探索回数CNTpresent_mbと、残り探索可能回数計算ブロック10から供給される残りの動きベクトル探索可能回数の初期値、すなわち、現マクロブロックに割り当てられた動きベクトル探索可能回数CNTrest_aveを入力して、現動きベクトル探索回数CNTpresent_mbが割り当てられた動きベクトル探索可能回数CNTrest_aveを超えること(CNTpresent_mb>CNTrest_ave)を条件4として、条件4を満たしているか否かをチェックし、これを満たしていると判定した時は、その出力C4を論理「1」とするものである。
【0039】
ここに、現マクロブロックに割り当てられる動きベクトル探索可能回数CNTrest_aveは、数1で求めることができる。
【0040】
【数1】

Figure 0004923368
【0041】
但し、CNTframeは各フレームに割り当てられている動きベクトル探索可能回数、CNTpassedは前マクロブロックまでの動きベクトル探索回数の総和であり、数2で求められる。また、FRAME_MB_NUMは1フレーム内のマクロブロックの数、PASSED_MB_NUMは動きベクトル探索が終了したマクロブロックの数である。数1に示すように動きベクトル探索可能回数をマクロブロックごとに設定することが、本発明の追跡型動きベクトル探索方法の一実施形態である。
【0042】
【数2】
Figure 0004923368
【0043】
18は条件1チェックブロック11の出力C1と条件2チェックブロック12の出力C2と条件3チェックブロック15の出力C3と条件4チェックブロック17の出力C4を入力し、これら出力C1、C2、C3、C4のいずれかが論理「1」となった時に、論理「1」からなる動きベクトル探索終了信号を出力するOR回路である。
【0044】
閾値THR1、N、THR2は、CNTpresent_mbとCNTrest_aveとの差ΔCNT、すなわち、現マクロブロックの残りの動きベクトル探索可能回数ΔCNTで決められるが、たとえば、表1に示すように、すなわち、ΔCNTが大きければ、探索終了条件を厳しくし、ΔCNTが小さくなるに従い、探索終了条件を緩めることで、マクロブロックごとに動きベクトル探索回数の上限を変化させることが、無駄な動きベクトル探索を防ぐ上で好適である。
【0045】
【表1】
Figure 0004923368
【0046】
本発明の追跡型動きベクトル探索装置の一実施形態は、たとえば、図16に示すと同様に、4点探索に続いて3点探索を続け、動きベクトルを求めるものであるが、条件1チェックブロック11の出力C1、条件2チェックブロック12の出力C2、条件3チェックブロック15の出力C3又は条件4チェックブロック17の出力C4のいずれかが論理「1」になると、すなわち、条件1、条件2、条件3又は条件4のいずれかが満たされると、論理「1」からなる動きベクトル探索終了信号が出力され、現マクロブロックについての動きベクトル探索が終了となる。
【0047】
ここで、たとえば、現マクロブロックについて、図3に示すように、Thr1_1=5、Thr1_2=10、Thr1_3=20、N1=4、N2=3、N3=2、Thr2_1=32、Thr2_2=64、Thr2_3=128とし、図4に示すように、割り当てる動きベクトル探索可能回数を40回、探索原点を(3、0)とし、動きベクトル探索回数が1〜13回の間は、THR1=Thr1_1=5、N=N1=4、THR2=Thr2_1=32、動きベクトル探索回数が14〜22回の間は、THR1=Thr1_2=10、N=N2=3、THR2=Thr2_1=32、動きベクトル探索回数が23〜31回の間は、THR1=Thr1_3=20、N=N3=2、THR2=Thr2_1=32とし(動きベクトル探索回数が32回以降のTHR1、N、THR2は表示を省略している)、動きベクトルの探索を行うと、たとえば、図5に示すような動きベクトル探索結果を得ることができる。図5において、「4p」は4点探索、「3p」は3点探索、「mv」は動きベクトルを示している(以下、同様である)。また、図6は探索パターン中心の移動の様子を示している。
【0048】
ここで、条件2チェックブロック12を設けない場合には、動きベクトル探索回数が31回では動きベクトル探索は終了せず、更に続いて動きベクトル探索を行うことになり、この場合、たとえば、図7に示すように、前回([i−1]回目)の動きベクトル探索でSADが最小であった探索点のSAD:minSAD[i−1]と今回([i]回目)の動きベクトル探索でSADが最小であった探索点のSAD:minSAD[i]の差分絶対値|minSAD[i]−minSAD[i−1]|の変化が小さく、これ以上、動きベクトル探索の必要がないにも関わらず、無駄な動きベクトル探索を行ってしまう場合が発生してしまう。
【0049】
また、たとえば、現マクロブロックについて、図3に示すように、Thr1_1=5、Thr1_2=10、Thr1_3=20、N1=4、N2=3、N3=2、Thr2_1=32、Thr2_2=64、Thr2_3=128とし、図8に示すように、割り当てる動きベクトル探索可能回数を40回、探索原点を(8、−1)とし、動きベクトル探索回数が1〜13回の間は、THR1=Thr1_1=5、N=N1=4、THR2=Thr2_1=32、(動きベクトル探索回数が14回以降のTHR1、N、THR2は表示を省略している)、動きベクトルの探索を行うと、たとえば、図9に示すような動きベクトル探索結果を得ることができる。図10は探索パターン中心の移動の様子を示している。
【0050】
ここで、条件3チェックブロック15を設けない場合には、動きベクトル探索回数が13回では動きベクトル探索は終了せず、更に続いて動きベクトル探索を行うことになり、たとえば、図11に示すように、前回([i−1]回目)の動きベクトル探索でSADが最小であった探索点のSAD:minSAD[i−1]と今回([i]回目)の動きベクトル探索でSADが最小であった探索点のSAD:minSAD[i]の差分絶対値|minSAD[i]−minSAD[i−1]|の変化が小さく、これ以上、動きベクトル探索の必要がないにも関わらず、無駄な動きベクトル探索を行ってしまう場合が発生してしまう。
【0051】
以上のように、本発明の追跡型動きベクトル探索装置の一実施形態においては、現マクロブロックについて、条件1(探索パターン中心の探索点のSADが一番小さくなっている)、条件2(現マクロブロックの画素のデータと参照画素のデータとの差分絶対値の総和の変化量が所定の回数、連続して一定値以下になる)、条件3(現マクロブロックの画素のデータと参照画素のデータとの差分絶対値の総和が一定値以下になる)又は条件4(現マクロブロックの動きベクトル探索回数が割り当てられた動きベクトル探索可能回数を超える)のいずれかの条件が満たされると、動きベクトル探索終了信号が出力され、現マクロブロックについての動きベクトル探索が終了となる。
【0052】
したがって、たとえば、現動きベクトル探索回数が現マクロブロックに割り当てられた動きベクトル探索可能回数を超える(条件4を満たす)前に、現マクロブロックの画素のデータと参照画素のデータとの差分絶対値の総和の変化量が所定の回数、連続して一定値以下になると(条件2を満たすと)、動きベクトル探索終了信号が出力され、現マクロブロックについての動きベクトルの探索が終了とされる。この結果、たとえば、図7に示すように、前回の動きベクトル探索でSADが最小であった探索点のSADと今回の動きベクトル探索でSADが最小であった探索点のSADの差分絶対値の変化が小さく、これ以上、動きベクトル探索の必要がないにも関わらず、動きベクトル探索を続けてしまうという、無駄な動きベクトル探索を防ぐことができる。
【0053】
また、現動きベクトル探索回数が現マクロブロックに割り当てられた動きベクトル探索可能回数を超える(条件4を満たす)前に、現マクロブロックの画素のデータと参照画素のデータとの差分絶対値の総和が一定値以下になると(条件3を満たすと)、動きベクトル探索終了信号が出力され、現マクロブロックについての動きベクトルの探索が終了とされる。この結果、たとえば、図11に示すように、前回の動きベクトル探索でSADが最小であった探索点のSADと今回の動きベクトル探索でSADが最小であった探索点のSADの差分絶対値の変化が小さく、これ以上、動きベクトル探索の必要がないにも関わらず、動きベクトル探索を続けてしまうという、無駄な動きベクトル探索を防ぐことができる。
【0054】
また、数2に示すように、1フレームに割り当てられた動きベクトル探索可能回数から前マクロブロックまでに要した動きベクトル探索回数を減じた値を残りの処理単位数で割った値を現マクロブロックの動きベクトル探索可能回数としているので、長い時間の無駄な動きベクトル探索を防ぐことができ、残りのマクロブロックについての動きベクトル探索時間に不足が生じないようにすることができる。
【0055】
以上のように、本発明の追跡型動きベクトル探索装置の一実施形態によれば、MPEGエンコーダにおいて、無駄な動きベクトル探索を行わないように動きベクトル探索を終了することができるので、動きベクトル探索の効率化を図ることができる。なお、本発明は、MPEGエンコーダのみでなく、追跡型の動きベクトル探索を行う動画像エンコーダに広く適用することができる。
【0056】
【発明の効果】
以上のように、本発明の追跡型動きベクトル探索方法によれば、動きベクトル探索可能回数を処理単位ごとに設定するとしているので、無駄な動きベクトル探索を防ぎ、動きベクトル探索の効率化を図ることができる。
【0057】
本発明の追跡型動きベクトル探索装置によれば、動きベクトル探索可能回数を処理単位ごとに設定することができるので、無駄な動きベクトル探索を防ぎ、動きベクトル探索の効率化を図ることができる。
【図面の簡単な説明】
【図1】本発明の追跡型動きベクトル探索装置の一実施形態の一部分を示す回路図である。
【図2】本発明の追跡型動きベクトル探索装置の一実施形態が備える探索終了判断部の構成を示す回路図である。
【図3】本発明の追跡型動きベクトル探索装置の一実施形態の動作を説明するための図である。
【図4】本発明の追跡型動きベクトル探索装置の一実施形態の動作を説明するための図である。
【図5】本発明の追跡型動きベクトル探索装置の一実施形態の動作を説明するための図である。
【図6】本発明の追跡型動きベクトル探索装置の一実施形態の動作を説明するための図である。
【図7】本発明の追跡型動きベクトル探索装置の一実施形態の動作を説明するための図である。
【図8】本発明の追跡型動きベクトル探索装置の一実施形態の動作を説明するための図である。
【図9】本発明の追跡型動きベクトル探索装置の一実施形態の動作を説明するための図である。
【図10】本発明の追跡型動きベクトル探索装置の一実施形態の動作を説明するための図である。
【図11】本発明の追跡型動きベクトル探索装置の一実施形態の動作を説明するための図である。
【図12】フルサーチ(Full Search)法を説明するための図である。
【図13】TSS(Three Step Search)法を説明するための図である。
【図14】NTSS(New Three Step Search)法を説明するための図である。
【図15】4×4サンプリング法を説明するための図である。
【図16】追跡型動きベクトル探索方法の一例を説明するための図である。
【符号の説明】
1 エンコーダ制御部
2 探索データ生成部
3 SAD演算部
4 探索制御部
5 探索順番制御部
6 動きベクトル計算部
7 探索終了判断部
8 探索回数カウンタ
9 レジスタ
10 残り探索可能回数計算ブロック
11 条件1チェックブロック
12 条件2チェックブロック
13 セレクタ
14 セレクタ
15 条件3チェックブロック
16 セレクタ
17 条件4チェックブロック
18 OR回路[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a tracking type motion vector search method and apparatus suitable for use in a moving image encoder that performs motion compensation, such as an MPEG4 (Moving Picture Experts Group 4) encoder.
[0002]
[Prior art]
For example, in an MPEG4 encoder, a motion compensated predictive encoding process using a motion vector is performed. As an example of a motion vector search method, for example, a method called a full search method is known.
[0003]
In the full search method, the sum of absolute differences between the data of each pixel of the macroblock of the luminance signal of the current frame and the data of each pixel of the reference block of the reference frame (hereinafter, simply referred to as the entire frame) of the motion vector search range. The reference block having the smallest SAD is set as the reference block having the best matching with the macro block of the luminance signal of the current frame, and the motion vector is calculated.
[0004]
For example, as shown in FIG. 12, when the motion vector search range is 15 × 15 pixels, the full search method uses all 225 pixels in the motion vector search range as search points, and each of these 225 search points. The SAD is calculated for the reference block, the reference block having the smallest SAD is set as the reference block having the best matching with the macroblock of the luminance signal of the current frame, and the motion vector is calculated.
[0005]
As described above, the full search method is a method of performing block matching using all the pixels in the motion vector search range as search points, and since it does not fall to the local minimum, the search accuracy is high and the image quality can be improved. have. However, since all the pixels in the motion vector search range are set as search points, the number of searches is, for example, 225 times when the motion vector search range is 15 × 15 pixels, and the motion vector search range is 31 × 31 pixels. In this case, it will be 961 times.
[0006]
For this reason, the full search method has a problem that the amount of calculation is very large and it is actually difficult to apply to a real-time system. Therefore, as a motion vector search method with a reduced amount of calculation, a method called TSS (Three Step Search) method, a method called NTSS (New Three Step Search) method, and a method called sampling method have been proposed.
[0007]
The TSS method is a method for searching for a motion vector in three steps. For example, as shown in FIG. 13, when the motion vector search range is 15 × 15 pixels, in the TSS method, first, a central pixel (0, 0) and eight neighboring pixels, for example, a pixel (− 4, -4), (0, -4), (4, -4), (-4, 0), (4, 0), (-4, 4), (0, 4), (4, 4 ) As a search point in the first step, SAD is calculated for each search point.
[0008]
Here, for example, when the SAD of the search point (−4, −4) is the smallest, eight pixels around the search point (−4, −4), for example, the pixel (−6, −6) ), (-4, -6), (-2, -6), (-6, -4), (-2, -4), (-6, -2), (-4, -2), SAD is calculated for each search point with (−2, −2) as the search point in the second step.
[0009]
Here, for example, when the SAD of the search point (−2, −6) is the smallest, eight pixels around the search point (−2, −6), for example, the pixel (−3, −7) ), (-2, -7), (-1, -7), (-3, -6), (-1, -6), (-3, -5), (-2, -5), SAD is calculated for each search point using (−1, −5) as the search point in the third step. For example, when the SAD of the search point (−2, −7) is the smallest, the coordinate ( -2, -7) are motion vectors.
[0010]
The NTSS method is a method of searching for a motion vector in three steps as in the NSS method. The difference from the NSS method is that, for example, as shown in FIG. 14, as the search points in the first step, in addition to the nine search points set in the case of the TSS method, the center coordinates (0, 0) 8 pixels (-1, -1), (0, -1), (1, -1), (-1, 0), (1, 0), (-1, 1), ( 0, 1) and (1, 1) are set as search points.
[0011]
The sampling method uses a fixed pixel having a predetermined pattern as a search point. For example, as shown in FIG. 15, when the motion vector search range is 15 × 15 pixels, 4 × 4 pixels, For example, pixels (−7, −7), (−3, −7), (1, −7), (5, −7), (−7, −3), (−3, −3), ( 1, -3), (5, -3), (-7, 1), (-3, 1), (1, 1), (5, 1), (-7, 5), (-3, 5), (1, 5), (5, 5) are used as search points, SAD is calculated for each search point, and the coordinates of the search point with the smallest SAD are used as motion vectors.
[0012]
Since the TSS method, the NTSS method, and the sampling method use a fixed search pattern within a fixed search range, the number of motion vector searches is constant. For example, when the motion search range is 15 × 15 pixels, the number of motion vector searches is 25 times for the TSS method, 33 times for the NTSS method, and 16 times for the 4 × 4 sampling method, and the motion vector search range is 31 ×. In the case of 31 pixels, the TSS method is 33 times, the NTSS method is 41 times, and the 8 × 8 sampling method is 64 times.
[0013]
The full search method, the TSS method, the NTSS method, and the sampling method have a fixed number of motion vector searches, but a motion vector search method in which the number of motion vector searches is indefinite has been proposed. Generally, this is called a tracking type motion vector search method, and includes a BBGDS (Block-Based Gradient Descent Search) method, a DS (Diamond Search) method, and the like.
[0014]
In the tracking type motion vector search method, the SAD of each search point is calculated according to a predetermined search pattern from the search origin (the same position as the macro block of the luminance signal of the current frame of the reference frame), and the SAD of the search point at the center of the search pattern is calculated. The motion vector is calculated by moving the center of the next search pattern to the search point with the smallest SAD until it becomes the smallest.
[0015]
FIG. 16 is a diagram for explaining an example of the tracking type motion vector search method. In this example, first, pixel (0, 0) is set as a search origin, and four pixels (0, −1), (−1, 0), (1, 0), (0, 1) are set as search points. A four-point search is performed. That is, the SAD of these four search points (0, -1), (-1, 0), (1, 0), (0, 1) is calculated, and the search pattern center is set to the search point with the smallest SAD. Is moved. Here, for example, when the SAD of the search point of the search point (1, 0) is the smallest, the search pattern center is moved to the search point (1, 0).
[0016]
Next, a three-point search is performed using the three pixels (1, −1), (2, 0), and (1, 1) as search points. That is, when the SAD of these three search points (1, -1), (2, 0), (1, 1) is calculated and the SAD of the search point of the search point (1, 0) is the smallest The search is terminated, and the coordinates (1, 0) are set as a motion vector. On the other hand, when the search point (1, -1), (2, 0), (1, 1) has the smallest SAD, the center of the search pattern is moved to the search point. A three-point search is performed.
[0017]
Here, for example, when the SAD of the search point (2, 0) is the smallest, the search pattern center is moved to the search point (2, 0), and the three coordinates (2, -1), (3, 0) are moved. ), (2, 1) as a search point, a three-point search is performed. That is, the SAD of these search points (2, -1), (3, 0), (2, 1) is calculated, and the search is terminated when the SAD of the search point (2, 0) is the smallest, The coordinates (2, 0) are set as a motion vector. On the other hand, if the search point (2, -1), (3, 0), (2, 1) has the smallest SAD, the center of the search pattern is moved to that search point. A three-point search is performed.
[0018]
Here, for example, when the SAD of the search point (3, 0) is the smallest, the search pattern center is moved to the search point (4, 0), and a three-point search is performed. The same operation is repeated until it becomes the smallest.
[0019]
[Problems to be solved by the invention]
The full search method, the TSS method, the NTSS method, and the sampling method have a problem that even if the motion is small, a motion vector is obtained with a predetermined number of searches, and thus there is a case where useless calculation may be performed. Yes.
[0020]
On the other hand, in the tracking type motion vector search method, since the search for the motion vector is continued until the SAD of the search point at the center of the search pattern becomes the smallest, the motion vector can be detected early depending on the image. However, depending on the image, it may take time. In such a case, even if the search for the motion vector is continued, the search accuracy is hardly increased and the search efficiency is deteriorated.
[0021]
SUMMARY OF THE INVENTION The present invention has been made in view of the above, and an object of the present invention is to provide a tracking type motion vector search method and apparatus that can improve the efficiency of motion vector search.
[0022]
[Means for Solving the Problems]
According to the tracking type motion vector search method of the present invention, the number of motion vector searches is set for each processing unit (for example, a macroblock of a luminance signal in the MPEG encoder).
[0023]
According to the tracking type motion vector search method of the present invention, since the number of motion vector searches that can be performed is set for each processing unit, useless motion vector search can be prevented.
[0024]
The tracking type motion vector search device of the present invention has means for setting the number of motion vector searches possible for each processing unit (for example, a macroblock of a luminance signal in the MPEG encoder).
[0025]
According to the tracking type motion vector search device of the present invention, the number of motion vector searches that can be performed can be set for each processing unit, so that useless motion vector searches can be prevented.
[0026]
DETAILED DESCRIPTION OF THE INVENTION
FIG. 1 is a circuit diagram showing a part of one embodiment of the tracking type motion vector search apparatus of the present invention. An embodiment of the tracking type motion vector search apparatus of the present invention constitutes a part of an MPEG encoder and can execute an embodiment of the tracking type motion vector search method of the present invention.
[0027]
In FIG. 1, 1 is an encoder control unit that inputs original image data before encoding and controls each unit in the MPEG encoder, and 2 is necessary for calculation of SAD from the original image data supplied via the encoder control unit 1. This is a search data generation unit that generates simple search data.
[0028]
3 is supplied from the search data generation unit 2 with the SAD calculation start signal, the pixel data of the macroblock of the luminance signal of the current frame, and the pixel data of the macroblock of the luminance signal of the reference frame. This is a SAD computing unit that calculates the SAD of the search point indicated by
[0029]
4 is a search control unit that controls the motion vector search, 5 is a search order control unit that controls the order of search points for calculating the SAD, and the search order control unit 5 is described with reference to FIG. The search order control is performed so that the tracking type motion vector search can be performed by the same method as described above.
[0030]
6 is a motion vector calculation unit that calculates a motion vector based on the SAD supplied from the SAD calculation unit 3, and 7 determines whether or not to end the motion vector search. A search end determination unit that outputs a vector search end signal.
[0031]
FIG. 2 is a circuit diagram showing a configuration of the search end determination unit 7. In FIG. 2, 8 is a search number counter for counting the number of motion vector searches using the SAD calculation start signal supplied from the search data generation unit 2 as an activation signal, and 9 is a search number counter 8 using the motion vector search end signal as a reset signal. This register stores output values. In this example, the SAD calculation for one search point is set as one motion vector search count.
[0032]
10 is input the number of motion vector searches possible assigned to one frame and the current number of motion vector searches of the current macroblock (the macroblock currently targeted for motion vector search) stored in the register 9; This is a remaining searchable number calculation block for calculating the remaining number of motion vector searches for the current macroblock. Note that the initial value of the remaining number of motion vector searches that can be output from the remaining searchable number calculation block 10 is the number of searchable times assigned to the current macroblock.
[0033]
Reference numeral 11 denotes a condition 1 check block. The condition 1 check block 11 inputs the SAD of each search point supplied from the SAD calculation unit 3 and the current motion vector search count output from the search count counter 8 to search. It is checked whether or not the SAD of the search point at the center of the pattern is the smallest. If it is determined that the SAD of the search point at the center of the search pattern is the smallest, the output C1 is set to logic “1”. To do. In other words, the condition 1 check block 11 is a block for checking whether or not a motion vector search end condition, which has been conventionally employed, is satisfied as a condition 1.
[0034]
Reference numeral 12 denotes a condition 2 check block. The condition 2 check block 12 inputs the SAD of each search point supplied from the SAD calculation unit 3 and the threshold values THR1 and NHR, and the previous ([i-1] th) time. SAD: minSAD [i-1] of the search point having the smallest SAD in the motion vector search and SAD: minSAD [i] of the search point having the smallest SAD in the current ([i] th) motion vector search The difference absolute value | minSAD [i] −minSAD [i−1] | is N times consecutively smaller than the threshold value THR1, and it is determined whether or not the condition 2 is satisfied. When this occurs, the output C2 is set to logic "1".
[0035]
13 inputs the number of remaining motion vector searches possible output from the remaining searchable number calculation block 10 and inputs a predetermined value Thr1_1, Thr1_2, Thr1_3 (Thr1_1 <Thr1_2 <Thr1_3) as threshold values THR1 to the condition 2 check block 12 ) Is selectively supplied, and 14 is inputted with the remaining number of possible motion vector searches output from the remaining searchable number calculation block 10, and N1, N2, N3 as threshold values N for the condition 2 check block 12 This selector selectively supplies (N1>N2> N3).
[0036]
Reference numeral 15 denotes a condition 3 check block. The condition 3 check block 15 inputs the SAD of each search point supplied from the SAD calculation unit 3 and the threshold value THR2, and performs the motion vector search this time ([i]). When the SAD: minSAD [i] of the search point having the smallest SAD is smaller than the threshold value THR2, it is checked whether or not the condition 3 is satisfied, and when it is determined that the condition is satisfied, The output C3 is set to logic “1”.
[0037]
16 inputs the remaining number of motion vector searches that can be output from the remaining searchable number calculation block 10, and sets predetermined values Thr2_1, Thr2_2, Thr2_3 (Thr2_1 <Thr2_2 <as threshold values THR2 to the condition 3 check block 15 This selector selectively supplies Thr2_3).
[0038]
Reference numeral 17 denotes a condition 4 check block. The condition 4 check block 17 includes the current motion vector search count CNTpresent_mb supplied from the search count counter 8 and the remaining motion vector search possible count supplied from the remaining searchable count calculation block 10. , Ie, the motion vector search count CNTrest_ave assigned to the current macroblock is input, and the current motion vector search count CNTpresent_mb exceeds the allocated motion vector search count CNTrest_ave (CNTpresent_mb> CNTrest_ave) 4, whether or not the condition 4 is satisfied is checked, and when it is determined that the condition 4 is satisfied, the output C4 is set to logic “1”.
[0039]
Here, the motion vector searchable number CNTrest_ave assigned to the current macroblock can be obtained by Equation 1.
[0040]
[Expression 1]
Figure 0004923368
[0041]
However, CNTframe is the number of motion vector searches that can be assigned to each frame, and CNTpassed is the sum of the number of motion vector searches up to the previous macroblock. FRAME_MB_NUM is the number of macroblocks in one frame, and PASSED_MB_NUM is the number of macroblocks for which motion vector search has been completed. As shown in Equation 1, setting the number of motion vector searches possible for each macroblock is an embodiment of the tracking type motion vector search method of the present invention.
[0042]
[Expression 2]
Figure 0004923368
[0043]
18 receives the output C1 of the condition 1 check block 11, the output C2 of the condition 2 check block 12, the output C3 of the condition 3 check block 15, and the output C4 of the condition 4 check block 17, and these outputs C1, C2, C3, C4 Is one of the OR circuits that outputs a motion vector search end signal composed of logic “1” when any one of them becomes logic “1”.
[0044]
The threshold values THR1, N, and THR2 are determined by the difference ΔCNT between CNTpresent_mb and CNTrest_ave, that is, the remaining motion vector searchable number ΔCNT of the current macroblock. For example, as shown in Table 1, that is, if ΔCNT is large In order to prevent useless motion vector search, it is preferable to change the upper limit of the number of motion vector searches for each macroblock by tightening the search end condition and relaxing the search end condition as ΔCNT decreases. .
[0045]
[Table 1]
Figure 0004923368
[0046]
In one embodiment of the tracking type motion vector search apparatus of the present invention, for example, as shown in FIG. 16, a three-point search is continued following a four-point search to obtain a motion vector. 11 output C1, condition 2 check block 12 output C2, condition 3 check block 15 output C3 or condition 4 check block 17 output C4 becomes logic "1", that is, condition 1, condition 2, When either condition 3 or condition 4 is satisfied, a motion vector search end signal consisting of logic “1” is output, and the motion vector search for the current macroblock ends.
[0047]
Here, for example, as shown in FIG. 3, for the current macroblock, Thr1_1 = 5, Thr1_2 = 10, Thr1_3 = 20, N1 = 4, N2 = 3, N3 = 2, Thr2_1 = 32, Thr2_2 = 64, Thr2_3 As shown in FIG. 4, the number of motion vector searches that can be assigned is 40 times, the search origin is (3, 0), and THR1 = Thr1_1 = 5, When N = N1 = 4, THR2 = Thr2_1 = 32, and the number of motion vector searches is 14 to 22, THR1 = Thr1_2 = 10, N = N2 = 3, THR2 = Thr2_1 = 32, and the number of motion vector searches is 23 to For 31 times, THR1 = Thr1_3 = 20, N = N3 = 2, THR2 = Thr2_1 = 32 (THR1, N, and THR2 after 32 times of motion vector searches are omitted), and motion vectors When searching for In example, it is possible to obtain a motion vector search result as shown in FIG. In FIG. 5, “4p” indicates a 4-point search, “3p” indicates a 3-point search, and “mv” indicates a motion vector (the same applies hereinafter). FIG. 6 shows how the search pattern center moves.
[0048]
Here, when the condition 2 check block 12 is not provided, the motion vector search is not completed when the number of motion vector searches is 31, and the motion vector search is further performed. In this case, for example, FIG. As shown in FIG. 5, SAD: minSAD [i-1] at the search point where the SAD was the smallest in the previous ([i-1]) motion vector search and SAD in the current ([i]) motion vector search. Although the difference in absolute value | minSAD [i] −minSAD [i−1] | of the SAD: minSAD [i] at the search point where the value is the smallest is small, no further motion vector search is required. In some cases, a useless motion vector search is performed.
[0049]
For example, for the current macroblock, as shown in FIG. 3, Thr1_1 = 5, Thr1_2 = 10, Thr1_3 = 20, N1 = 4, N2 = 3, N3 = 2, Thr2_1 = 32, Thr2_2 = 64, Thr2_3 = As shown in FIG. 8, the number of motion vector searches that can be allocated is 40 times, the search origin is (8, −1), and THR1 = Thr1_1 = 5, When N = N1 = 4, THR2 = Thr2_1 = 32 (the display of THR1, N, and THR2 after 14 motion vector searches is omitted), a motion vector search is performed, for example, as shown in FIG. Such a motion vector search result can be obtained. FIG. 10 shows how the search pattern center moves.
[0050]
Here, when the condition 3 check block 15 is not provided, the motion vector search is not completed when the motion vector search count is 13, and the motion vector search is further performed. For example, as shown in FIG. Furthermore, SAD: minSAD [i-1] at the search point where the SAD was minimum in the previous ([i-1]) motion vector search and SAD is minimum in the current ([i]) motion vector search. SAD of a certain search point: the difference absolute value | minSAD [i] −minSAD [i−1] | of the difference SAD [i] is small and is no longer necessary even though there is no need for a motion vector search. In some cases, a motion vector search is performed.
[0051]
As described above, in one embodiment of the tracking type motion vector search apparatus of the present invention, for the current macroblock, Condition 1 (the SAD of the search point at the center of the search pattern is the smallest), Condition 2 (Current The amount of change in the sum of the absolute differences between the macroblock pixel data and the reference pixel data is a predetermined number of times or less continuously, and condition 3 (the current macroblock pixel data and the reference pixel When the condition of either the sum of absolute differences from the data is equal to or less than a certain value) or condition 4 (the motion vector search count of the current macroblock exceeds the allocated motion vector search count) is satisfied A vector search end signal is output, and the motion vector search for the current macroblock ends.
[0052]
Therefore, for example, before the current motion vector search count exceeds the motion vector search count assigned to the current macroblock (condition 4), the difference absolute value between the current macroblock pixel data and the reference pixel data When the amount of change in the sum of the two is continuously equal to or smaller than a predetermined number of times (condition 2 is satisfied), a motion vector search end signal is output, and the motion vector search for the current macroblock is ended. As a result, for example, as shown in FIG. 7, the absolute value of the difference between the SAD of the search point having the smallest SAD in the previous motion vector search and the SAD of the search point having the smallest SAD in the current motion vector search. It is possible to prevent a useless motion vector search in which a motion vector search is continued even though the change is small and no further motion vector search is required.
[0053]
In addition, before the current motion vector search count exceeds the motion vector search count allocated to the current macroblock (condition 4 is satisfied), the sum of absolute differences between the current macroblock pixel data and the reference pixel data Is less than a certain value (when condition 3 is satisfied), a motion vector search end signal is output, and the search for the motion vector for the current macroblock is ended. As a result, for example, as shown in FIG. 11, the absolute value of the difference between the SAD of the search point having the smallest SAD in the previous motion vector search and the SAD of the search point having the smallest SAD in the current motion vector search. It is possible to prevent a useless motion vector search in which a motion vector search is continued even though the change is small and no further motion vector search is required.
[0054]
Further, as shown in Equation 2, a value obtained by dividing a value obtained by subtracting the number of motion vector searches required up to the previous macro block from the number of motion vector searches possible assigned to one frame by the number of remaining processing units is the current macro block. Therefore, it is possible to prevent a long time useless motion vector search and to prevent a shortage of motion vector search time for the remaining macroblocks.
[0055]
As described above, according to one embodiment of the tracking type motion vector search device of the present invention, the motion vector search can be terminated in the MPEG encoder so as not to perform a useless motion vector search. Can be made more efficient. The present invention can be widely applied not only to an MPEG encoder but also to a moving image encoder that performs a tracking type motion vector search.
[0056]
【Effect of the invention】
As described above, according to the tracking type motion vector search method of the present invention, the possible number of motion vector searches is set for each processing unit. Therefore, useless motion vector search is prevented and the efficiency of motion vector search is improved. be able to.
[0057]
According to the tracking type motion vector search device of the present invention, since the number of motion vector searches can be set for each processing unit, useless motion vector search can be prevented and motion vector search efficiency can be improved.
[Brief description of the drawings]
FIG. 1 is a circuit diagram showing a part of an embodiment of a tracking type motion vector search apparatus of the present invention.
FIG. 2 is a circuit diagram showing a configuration of a search end determination unit provided in an embodiment of the tracking type motion vector search apparatus of the present invention.
FIG. 3 is a diagram for explaining the operation of an embodiment of the tracking type motion vector search apparatus of the present invention.
FIG. 4 is a diagram for explaining the operation of an embodiment of the tracking type motion vector search apparatus of the present invention.
FIG. 5 is a diagram for explaining the operation of an embodiment of the tracking type motion vector search apparatus of the present invention.
FIG. 6 is a diagram for explaining the operation of an embodiment of the tracking type motion vector search apparatus of the present invention.
FIG. 7 is a diagram for explaining the operation of the tracking type motion vector search apparatus according to the embodiment of the present invention.
FIG. 8 is a diagram for explaining the operation of an embodiment of the tracking type motion vector search apparatus of the present invention.
FIG. 9 is a diagram for explaining the operation of the tracking type motion vector search apparatus according to the embodiment of the present invention.
FIG. 10 is a diagram for explaining the operation of the tracking type motion vector search apparatus according to the embodiment of the present invention.
FIG. 11 is a diagram for explaining the operation of an embodiment of the tracking type motion vector search apparatus of the present invention.
FIG. 12 is a diagram for explaining a full search method.
FIG. 13 is a diagram for explaining a TSS (Three Step Search) method;
FIG. 14 is a diagram for explaining an NTSS (New Three Step Search) method;
FIG. 15 is a diagram for explaining a 4 × 4 sampling method;
FIG. 16 is a diagram for explaining an example of a tracking type motion vector search method;
[Explanation of symbols]
1 Encoder control unit
2 Search data generator
3 SAD operation part
4 Search control unit
5 Search order control unit
6 Motion vector calculator
7 Search end judgment part
8 Search counter
9 registers
10 Remaining searchable count calculation block
11 Condition 1 check block
12 Condition 2 check block
13 Selector
14 Selector
15 Condition 3 check block
16 selector
17 Condition 4 check block
18 OR circuit

Claims (4)

動きベクトル探索可能回数を1フレーム内の動きベクトル探索の処理単位ごとに設定し、
前記動きベクトル探索可能回数に基づいて前記1フレームに割り当てられた動きベクトル探索可能回数から現在の動きベクトル探索の対象である現処理単位の前処理単位までに要した動きベクトル探索回数を減じた値を前記1フレーム内で動きベクトル探索が行われていない残りの処理単位数で割った値を前記現処理単位の前記動きベクトル探索可能回数に設定し、
設定された複数の動きベクトル探索終了条件の内の少なくとも一の動きベクトル探索終了条件が満たされるときに動きベクトル探索を終了すること
を特徴とする追跡型動きベクトル探索方法。
Set the number of motion vector searches possible for each processing unit of motion vector search within one frame ,
A value obtained by subtracting the number of motion vector searches required from the number of motion vector searches allocated to the one frame based on the number of motion vector searches possible to the preprocessing unit of the current processing unit that is the current motion vector search target. the set value divided by the number of remaining processing units motion vector search is not performed within one frame in the motion vector search permitted number of the current processing unit,
A tracking type motion vector search method characterized in that a motion vector search is ended when at least one of the set motion vector search end conditions is satisfied.
前記複数の動きベクトル探索終了条件は、
現処理単位内の画素のデータと参照画素のデータとの差分絶対値の総和の変化量が所定の回数、連続して一定値以下になることを含むこと
を特徴とする請求項1に記載の追跡型動きベクトル探索方法。
The plurality of motion vector search end conditions are:
The amount of change in the sum of absolute difference values between pixel data and reference pixel data in the current processing unit includes a predetermined number of times, continuously including a predetermined value or less. Tracking motion vector search method.
前記複数の動きベクトル探索終了条件は、
現処理単位内の画素のデータと参照画素のデータとの差分絶対値の総和が一定値以下になることを含むこと
を特徴とする請求項1に記載の追跡型動きベクトル探索方法。
The plurality of motion vector search end conditions are:
The tracking type motion vector search method according to claim 1, further comprising: a sum of absolute differences between pixel data and reference pixel data within a current processing unit is equal to or less than a predetermined value.
1フレームに割り当てられた動きベクトル探索可能回数から現在の動きベクトル探索の対象である動きベクトル探索の現処理単位の前処理単位までに要した動きベクトル探索回数を減じた値を前記1フレーム内で動きベクトル探索が行われていない残りの処理単位数で割った値を前記現処理単位の前記動きベクトル探索可能回数に設定する手段と、
複数の動きベクトル探索終了条件を設定する手段と、
前記複数の動きベクトル探索終了条件の内の少なくとも一の動きベクトル探索終了条件が満たされるか否かを判定し、動きベクトル探索終了信号を出力する手段と
を有することを特徴とする追跡型動きベクトル探索装置。
A value obtained by subtracting the number of motion vector searches required from the motion vector search feasible number assigned to one frame to the preprocessing unit of the current processing unit of the current motion vector search that is the target of the current motion vector search within the one frame. It means for setting the motion vector search is divided by the number of remaining processing units not been performed the value in the motion vector search permitted number of the current processing unit,
Means for setting a plurality of motion vector search termination conditions;
A tracking type motion vector comprising: means for determining whether at least one of the plurality of motion vector search end conditions is satisfied, and outputting a motion vector search end signal. Search device.
JP2001280912A 2001-09-17 2001-09-17 Tracking type motion vector search method and apparatus Expired - Fee Related JP4923368B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001280912A JP4923368B2 (en) 2001-09-17 2001-09-17 Tracking type motion vector search method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001280912A JP4923368B2 (en) 2001-09-17 2001-09-17 Tracking type motion vector search method and apparatus

Publications (2)

Publication Number Publication Date
JP2003087799A JP2003087799A (en) 2003-03-20
JP4923368B2 true JP4923368B2 (en) 2012-04-25

Family

ID=19104827

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001280912A Expired - Fee Related JP4923368B2 (en) 2001-09-17 2001-09-17 Tracking type motion vector search method and apparatus

Country Status (1)

Country Link
JP (1) JP4923368B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100970726B1 (en) 2003-10-04 2010-07-16 삼성전자주식회사 Method of hierarchical motion estimation
US20050286777A1 (en) * 2004-06-27 2005-12-29 Roger Kumar Encoding and decoding images
JP4547668B2 (en) * 2004-12-24 2010-09-22 カシオ計算機株式会社 Motion compensated predictive coding apparatus and motion compensated predictive coding method
JP4597103B2 (en) * 2006-08-30 2010-12-15 Okiセミコンダクタ株式会社 Motion vector search method and apparatus

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06225289A (en) * 1993-01-25 1994-08-12 Matsushita Electric Ind Co Ltd Video signal coder
JPH0970046A (en) * 1995-08-31 1997-03-11 Victor Co Of Japan Ltd Motion vector detector
JPH10108190A (en) * 1996-09-26 1998-04-24 Sharp Corp Method for detecting motion of image
JPH10271514A (en) * 1997-03-23 1998-10-09 Tadayoshi Enomoto Signal processing method for moving image information and device for the method
JPH1155677A (en) * 1997-08-08 1999-02-26 Fujitsu Ltd Moving image coder
JP2000152244A (en) * 1998-11-11 2000-05-30 Matsushita Electric Ind Co Ltd Moving vector detecting method and image encoding method
JP3538055B2 (en) * 1999-02-15 2004-06-14 日本電気株式会社 Motion vector detection device
JP4223169B2 (en) * 1999-03-17 2009-02-12 パナソニック株式会社 Motion vector detection method, motion vector detection device, and data recording medium
JP2001028754A (en) * 1999-07-14 2001-01-30 Matsushita Electric Ind Co Ltd Motion vector detection method

Also Published As

Publication number Publication date
JP2003087799A (en) 2003-03-20

Similar Documents

Publication Publication Date Title
KR20040050127A (en) Device and method for motion estimating of video coder
JP2009510845A5 (en)
KR20010052630A (en) Motion estimation
US6687299B2 (en) Motion estimation method and apparatus for interrupting computation which is determined not to provide solution
JP4923368B2 (en) Tracking type motion vector search method and apparatus
JP2008060836A (en) Motion vector search method and device
US6990149B2 (en) Circuit and method for full search block matching
JP3299671B2 (en) Image motion detection device
JP3865241B2 (en) Adaptive early exit technique for minimum distortion calculation in image correlation
TWI253024B (en) Method and apparatus for block matching
JP2016032265A (en) Image processing system
CN114501030A (en) Matching point searching method and device, storage medium and electronic device
CN110537202A (en) Correlation arithmetic unit
JP2005253015A (en) Apparatus and method for detecting motion vector, and program
CN104767909A (en) Histogram equalization analog-digital conversion circuit of image sensor and method
KR20010052624A (en) Motion estimation
CN104602020A (en) Sparse search method and device for target tracking
CN112308199B (en) Data block processing method, device and storage medium
JPH07288817A (en) Motion vector detector
Pohl et al. Real-time 3DRS motion estimation for frame-rate conversion
JP2885039B2 (en) Motion vector detection circuit
Duanmu et al. A vector based fast block motion estimation algorithm for implementation on SIMD architectures
US8094723B2 (en) Motion estimation sum of all differences (SAD) array having reduced semiconductor die area consumption
JP4253909B2 (en) Image processing apparatus and image processing method
He et al. An efficient block motion estimation method on CELL BE

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080619

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101013

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101019

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110614

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110805

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: 20120110

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120123

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150217

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees