[go: nahoru, domu]

JP2004229150A - Motion vector searching method and device - Google Patents

Motion vector searching method and device Download PDF

Info

Publication number
JP2004229150A
JP2004229150A JP2003016877A JP2003016877A JP2004229150A JP 2004229150 A JP2004229150 A JP 2004229150A JP 2003016877 A JP2003016877 A JP 2003016877A JP 2003016877 A JP2003016877 A JP 2003016877A JP 2004229150 A JP2004229150 A JP 2004229150A
Authority
JP
Japan
Prior art keywords
search
motion vector
image
motion
reduced
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.)
Granted
Application number
JP2003016877A
Other languages
Japanese (ja)
Other versions
JP4228705B2 (en
Inventor
Toru Yamada
徹 山田
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2003016877A priority Critical patent/JP4228705B2/en
Publication of JP2004229150A publication Critical patent/JP2004229150A/en
Application granted granted Critical
Publication of JP4228705B2 publication Critical patent/JP4228705B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a device and a method for searching a motion vector at a high speed by reducing a decrease in searching accuracy to a minimum. <P>SOLUTION: In a multiple step search, in which coarse search is performed first and then fine search focusing on the result of the coarse search is performed, two or more adjoining blocks are searched by the gross in the first step search, and one motion vector for each unit of two or more searched blocks is detected. In the second step search, each block is searched focusing on the result of the first step search, and a motion vector for each block is sought. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は動き補償予測符号化技術に係り、特に多段探索法で用いられる動きベクトル探索方法および装置ならびにコンピュータシステムに関する。
【0002】
【従来の技術】
動画像信号を記録あるいは伝送する際の圧縮符号化では、符号化効率を高めるために画像フレーム間の相関を利用した符号化方法が一般に用いられる。画像フレーム間の相関を利用する符号化方式は動き補償予測符号化と呼ばれ、MPEG (Moving Picture Experts Group)2などで採用されている。
【0003】
動き補償予測符号化では、フレーム間の映像の動きの情報(動きベクトル)と、動きベクトルによって生成される予測画像と符号化中のフレームとの差分画像(予測誤差)を符号化する。画像フレーム間の相関が大きければ、予測誤差が小さくなり、符号化する情報量を小さくでき圧縮率を向上させることができる。動き補償予測符号化では、一般に、フレームを16×16画素などの一定サイズのブロックに分割し、分割したブロックごとに動きベクトルを割り当てる。
【0004】
具体的には、すでに符号化が完了しているフレーム(参照フレーム)の中から、ブロックごとに相関が最も大きくなる場所を探し、そのブロック間の差分を求め、符号化する。相関が大きくなる場所を探す処理を動きベクトル探索という。相関の大小は、参照フレームと符号化中フレームとのブロック内の各画素の差異を総和することで評価できる。
【0005】
指定された探索範囲のすべての点を単純に探索し、相関の大きさを調べれば最適な動きベクトルが得られるが、この方法では演算量が極めて大きくなり現実的でない。演算量を削減するために、初めに粗く第1段の探索をおこない、その探索結果を中心にして細かい第2段の探索を行うのが一般的である。このような方法は多段探索法と呼ばれ、例えば非特許文献1などに開示されている。以下、多段探索法について簡単に説明する。
【0006】
図7(A)は、一般的な多段探索法を説明するための画素配列を示す模式図であり、(B)は第2段の探索の様子を示すシーケンス図である。例えば、初めに第1段の探索として2画素精度探索(図7(A)の”1”でラベルされた位置の探索)を実行し、そのなかで最も相関が大きくなる位置を決定する。 続いて、第1段の探索結果である位置を中心に、第2段の探索として1画素精度探索(図7(A)の”2”でラベルされた位置の探索)を実行し、その中で最も相関が大きくなる位置を最終的な動きベクトルとする。
【0007】
通常、第1段の動きベクトル探索は、フレームをサブサンプリングして解像度を下げたフレームデータを用いる。例えば、フレームデータを縦横ともに半分にして第1段の動きベクトル探索をおこない、その探索結果の周囲を探索範囲として本来の解像度で第2段の探索を実行し、最終的な動きベクトルを求める。たとえば図7(B)に示すように、第2段の探索範囲が縦および横方向±1画素の範囲である場合には、探索範囲内のすべての位置(図7(B)の(a)〜(i))でマッチングが行われる。
【0008】
非特許文献2には、このように解像度を下げて動きベクトルを探索する方法の一例が開示されている。非特許文献2に記載された方法では、解像度を下げて縮小した画像による動きベクトル探索と本来の解像度の画像による動きベクトル探索の2種類の探索を行い、予測誤差が小さくなる探索結果を採用する。
【0009】
たとえば、解像度を下げた探索では、まず符号化対象画像と参照画像とを共に水平方向のみN:1にサブサンプリングし、サブサンプリングされた画像上で動きベクトル探索をおこなう。このときサブサンプリングされた画像上ではブロックのサイズも縮小されるが、マッチング単位は本来の解像度のブロックサイズと同一にしている。つまり、本来の解像度でのブロックサイズが水平方向16画素、垂直方向16画素の場合、水平方向のみサブサンプリングしたことでブロックサイズは水平方向16/N画素、垂直方向16画素となるが、探索は水平方向16画素、垂直方向16画素のままでおこなう。したがって水平方向に隣接するN個のブロックを一度に探索することになる。これにより、もし解像度を下げた探索の探索結果が採用された場合には、隣接するN個のブロックで同じ動きベクトルを持つことになる。また、このときの動きベクトルの精度はサブサンプリングされた画像サイズに依存する。例えば水平方向2:1にサブサンプリングして探索をおこない、この探索結果が最終的な動きベクトルとして採用された場合、本来の解像度上で考えると1画素飛ばしの探索をおこなったことと等価な探索精度となる。
【0010】
また、特許文献1(特開平10−191347号公報)に開示された動き検出方法では、2つのブロックをまとめたセミグローバルブロックを求めて、それに隣接するブロックの動きベクトルを検出することでセミグローバルブロックの大まかな動きを検出する。そして、検出された大まかな位置をサーチ対象としてブロックごとの動きベクトルを検出する。同様に、特許文献2(特開平10−13835号公報)に開示された動き検出方法でも、複数ブロックのうちの1ブロックを代表させて探索している。
【0011】
【非特許文献1】
Renxiang Li 等、“A new three−step search algorithm for block motion estimation”、IEEE Transactions on Circuits and Systems for Video Technology, Vol.4, No.4, August, 1994, pp.438−441
【非特許文献2】
神田等 “ダウンサンプリングによる動きベクトルの広範囲探索”、 映像メディア処理シンポジウム(IMPS96), 1996, pp.99−100
【特許文献1】
特開平10−191347号公報(要約、0029〜0031)。
【特許文献2】
特開平10−13835号公報(要約、0018)。
【0012】
【発明が解決しようとする課題】
しかしながら、非特許文献2で開示されている方法では、2種類の動きベクトル探索法を用いて探索を行っているために演算量が増加するという問題がある。
【0013】
また、解像度を下げた探索の探索結果が採用された場合、隣接する複数のブロックで同一の動きベクトルとなり、かつ、粗い探索による探索結果がそのまま最終的な動きベクトルとなる。このために、画像中の細かい動きに対応することができなくなり探索精度が低下するという問題も生じる。
【0014】
また、特許文献1に開示された方法では、セミグローバルブロックの動きを隣接するブロックの動きで代表させているために、セミグローバルブロック自体の動きを検出していない。特許文献2の方法も同様の代表探索を採用している。このために検索精度が大きく低下する場合が生じうる。
【0015】
本発明の目的は、動きベクトルを高速に探索できる新規な動きベクトル探索方法および装置ならびにコンピュータシステムを提供することにある。
【0016】
本発明の他の目的は、探索精度の低下を最小限に抑えて高速に動きベクトルを探索できる動きベクトル探索方法および装置ならびにコンピュータシステムを提供することにある。
【0017】
【課題を解決するための手段】
本発明による動きベクトル探索装置および方法は、対象画像および参照画像の縦方向及び横方向を縮小して縮小対象画像および縮小参照画像をそれぞれ生成し、これら縮小対象画像および縮小参照画像に基づいて、隣接する複数個のブロックからなる探索単位で第1動きベクトルを探索する。検出された第1動きベクトルにより決定される探索範囲内で、縮小前の画像解像度により1ブロック単位で第2動きベクトルを探索し動きベクトルを決定する。さらに、動画像の動きの複雑度を判定し、動き複雑度に応じて探索単位の大きさを変化させることが望ましい。
【0018】
通常の階層的動きベクトル探索では、1段目探索および2段目探索ともに、ブロックごとに探索をおこない各ブロックの動きベクトルを検出するが、本発明によれば、1段目の探索において隣接する複数のブロックをまとめて一括探索する。水平方向に隣接するNブロック、垂直方向に隣接するMブロックを一まとめにして一括探索すると、N×Mブロックにつき1つの動きベクトルを検出することになる。2段目探索においては、1段目探索の探索結果となった位置を中心として1ブロックごとに探索を行い、最終的な動きベクトルを決定する。最終的な動きベクトルはブロックごとに検出されるので、探索精度の低下を防ぐことができる。
【0019】
このように1段目探索において、複数のブロックをまとめた探索単位で探索することにより、検出するベクトルの本数が少なくなる。したがって、ベクトル検出にかかる演算量が削減され、高速な動きベクトル探索を実現できる。なお、2段目探索においては1ブロックごとに動きベクトルを求めるため、動き探索の精度の低下は最小限に抑えられる。
【0020】
また、1段目探索において複数のブロックを一度に探索することにより、最終的に得られる動きベクトルは隣接するブロック間でその差が小さくなる。そのため、動きベクトルを符号化するために必要となる符号量を少なくすることができ、ブロックデータの符号化のためにより多くの符号量を割り当てることができる。したがって、画質の低下は最小限に抑えられる。
【0021】
【発明の実施の形態】
図1は、本発明による動きベクトル探索装置の第1実施形態を示すブロック図である。図1において、現フレームバッファ101には符号化中のフレームのデータが格納され、参照フレームバッファ102には参照フレームデータが格納されている。サブサンプリング処理部103は現フレームバッファ101および参照フレームバッファ102からそれぞれ現フレームデータおよび参照フレームデータを入力し、サンプリングによって縮小現フレームデータおよび縮小参照フレームデータを生成する。
【0022】
第1段の動き探索処理部104は、縮小現フレームデータおよび縮小参照フレームデータを用いて動き探索を行い、その探索結果である第1段の動きベクトルの位置情報を第2段の動き探索処理部105へ出力する。第2段の動き探索処理部105は、現フレームバッファ101および参照フレームバッファ102から本来の現フレームデータ及び参照フレームデータを入力し、第1段の動きベクトルの位置を中心として詳細な動きベクトル探索を実行する。こうして、最終的な動きベクトルを決定する。
【0023】
サブサンプリング処理103は縦/横の縮小をおこなう縮小処理部111を有し、縮小処理部111により縮小された縮小現フレームデータおよび縮小参照フレームデータは縮小現フレームバッファ112および縮小参照フレームバッファ113にそれぞれ格納される。第1段の動き探索処理部104は、後述するマッチング単抽出部114およびマッチング演算処理部115から構成される。次に、本実施形態の全体的動作について詳細に説明する。
【0024】
図2は第1実施形態の全体的動作を示すフローチャートである。まず、縮小処理部111は、符号化しようとしている現フレームデータを現フレームバッファ101から入力してサブサンプリングする(ステップS201)。同様に、縮小処理部111は、参照フレームデータを参照フレームバッファ102から入力してサブサンプリングする(ステップS202)。
【0025】
次に、フレームの先頭から第1段の探索処理を開始するため、縮小した現フレームの先頭のブロックにポインタを合わせ(ステップS203)、縮小したデータを用いた第1段の動き探索を開始する。まず、第1段の動き探索処理部104のマッチング単位抽出部211は、複数ブロックからなる予め指定されたマッチング単位(水平方向Nブロック×垂直方向Mブロック)を抽出する(ステップS204)。 ここで、NおよびMは1以上の整数である。
【0026】
続いて、マッチング演算処理部212は、抽出されたN×Mブロック領域をマッチング単位として、縮小画像上で動きベクトル探索を実行し(ステップS205)、現フレームの縮小画像と参照フレームの縮小画像との間で相関が一番高くなる位置を決定する。一つ目のブロックの探索が終了したら、まだ探索が行われていない隣接するブロックにポインタを移動させ(ステップS206)、フレーム内のすべてのブロックについて探索が終了するまで、同様の動きベクトル探索を繰り返す(ステップS207)。この第1段探索では、N×Mブロック領域をマッチング単位として一括探索されるために、各ブロックごとではなくN×Mブロックごとに1個の動きベクトルが検出される。
【0027】
第1段の動きベクトル探索が終了すると(ステップS207のYES)、第2段の動き探索処理部105は、現フレームの先頭のブロックにポインタを合わせる(ステップS208)。そして、第1段の探索で決定された動きベクトルを中心に、本来の画像解像度で動きベクトル探索を開始する。すなわち、第2段の動き探索では、第1段動き探索の結果である位置を中心に、1ブロックをマッチング単位として、マッチング処理をおこなう(ステップS209)。一つ目のブロックの探索が終了したら、次のブロックにポインタを移動させ(ステップS210)、すべてのブロックの探索が終了するまで第2段の動き探索を順次実行する(ステップS209〜S211)。フレーム内のすべてのブロックについて探索が終了していたら第2段の探索を終了させ(ステップS211のYES)、最も相関が大きいと判定された位置を最終的な動きベクトルとする。
【0028】
上述した第1実施形態における1段目の動きベクトル探索は、水平方向に隣接したNブロックと垂直方向に隣接したMブロックとからなる画素データをマッチング単位として実行される。そのために、検出される動きベクトルの個数を少なくすることができ、その結果探索に要する演算量が削減され、動きベクトル探索が高速化される。
【0029】
第1段動き探索処理部104では、上述したように、N×Mブロック領域をマッチング単位として一括探索が実行されるために、N×Mブロックで同一の動きベクトルとなる。次に説明する本発明の第2実施形態は、このマッチング単位を画像の動きに応じて変化させることで探索精度の低下を最小限に抑えることが可能である。
【0030】
図3は、本発明による動きベクトル探索装置の第2実施形態を示すブロック図である。なお、図3において、図1に示す第1実施形態と同じ機能を有するブロックには同じ参照番号を付して説明は省略する。第2実施形態は、第1段動き探索処理部304の構成及び動作が第1実施形態のそれらとは異なるので、以下、第1段動き探索処理部304について説明する。
【0031】
図3に示すように、第2実施形態における第1段動き探索処理部304は、動き複雑度判定部314、マッチング単位決定部315、マッチング単位抽出部316、および、マッチング演算処理部317から構成されている。
【0032】
動き複雑度判定部314は、縮小現フレームデータおよび縮小参照フレームデータをサブサンプリング処理部103から入力し、過去の動きベクトルの統計情報や予測誤差の大きさ等に基づいて動きの複雑さを判定する。たとえば、すでに動きベクトルを求めた近隣の複数ブロックにおいてベクトルの方向が一致していない場合、すなわち動きベクトルがバラバラの方向を指している場合に、動きが複雑であると判断する。近隣の複数ブロックにおける動きベクトルの方向の一致の程度(方向の分布の偏りなど)を数量化して動き複雑度を定めてもよい。
【0033】
マッチング単位決定部315は、判定された動きの複雑さに応じてマッチング単位を変化させる。具体的には、動きが複雑であると判断される場合はマッチング単位を小さくする。これによって複雑な動きに対応することができる。また、動きが単調であると判断される場合はマッチング単位を大きくする。これによって探索に要する演算量を削減することができる。
【0034】
マッチング単位抽出部316は決定されたマッチング単位を抽出し、以下、上述したように、抽出されたマッチング単位でマッチング演算処理部317がマッチング処理を実行する。
【0035】
図4は第2実施形態の全体的動作を示すフローチャートである。まず、縮小処理部111は、符号化しようとしている現フレームデータを現フレームバッファ101から入力してサブサンプリングする(ステップS401)。同様に、縮小処理部111は、参照フレームデータを参照フレームバッファ102から入力してサブサンプリングする(ステップS402)。
【0036】
次に、フレームの先頭から第1段の探索処理を開始するため、縮小した現フレームの先頭のブロックにポインタを合わせ(ステップS403)、縮小したデータを用いた第1段の動き探索を開始する。まず、動き複雑度判定部314は過去の動きベクトルの統計情報や予測誤差の大きさ等に基づいて動きの複雑度を判定し(ステップS404)、マッチング単位決定部315は判定された動きの複雑さに応じてマッチング単位の大きさを決定する(ステップS405)。
【0037】
具体的には、動き複雑度が比較的大きいところではマッチング単位(水平方向Nブロック×垂直方向Mブロック)が小さくなり、動き複雑度が比較的小さいところ(動きの単調なところ)ではマッチング単位が大きくなるように、たとえばNおよびMの値を予め定めテーブル化して格納しておく。マッチング単位抽出部211は、決定されたマッチング単位のサイズに応じてマッチング単位を抽出する(ステップS406)。
【0038】
続いて、マッチング演算処理部317は、抽出されたN×Mブロック領域をマッチング単位として、縮小画像上で動きベクトル探索を実行し(ステップS407)、現フレームの縮小画像と参照フレームの縮小画像との間で相関が一番高くなる位置を決定する。一つ目のブロックの探索が終了したら、まだ探索が行われていない隣接するブロックにポインタを移動させ(ステップS408)、フレーム内のすべてのブロックについて探索が終了するまで、同様の動きベクトル探索(ステップS404〜S408)を繰り返す(ステップS409)。この第1段探索では、N×Mブロック領域をマッチング単位として一括探索されているために、第1段探索結果はN×Mブロックで同一の動きベクトルとなる。
【0039】
第1段の動きベクトル探索が終了すると(ステップS409のYES)、第2段の動き探索処理部105は、現フレームの先頭のブロックにポインタを合わせる(ステップS410)。そして、第1段の探索で決定された動きベクトルを中心に、1ブロックをマッチング単位として、マッチング処理をおこなう(ステップS411)。一つ目のブロックの探索が終了したら、次のブロックにポインタを移動させ(ステップS412)、すべてのブロックの探索が終了するまで第2段の動き探索を順次実行する(ステップS411〜S412)。フレーム内のすべてのブロックについて探索が終了していたら第2段の探索を終了させ(ステップS413のYES)、最も相関が大きいと判定された位置を最終的な動きベクトルとする。
【0040】
このように、動きの複雑なところでは小さいマッチング単位で探索し、動きの単調なところでは大きいマッチング単位で探索するため、探索精度の低下をより小さくし、かつ高速な動きベクトル探索が可能となる。
【0041】
【実施例】
次に、横方向の画素数が720、縦方向の画素数が480の動画像を符号化する場合を具体例として、本発明による動きベクトル探索方法について説明する。
【0042】
符号化方式は横方向16画素、縦方向16画素を一つのブロックとして、ブロックごとに動きベクトルを割り当てる方式を採用しているものとし、第1段の動きベクトル探索のマッチング単位が水平方向2ブロック×垂直方向1ブロックに設定されているものとする。
【0043】
図5は、本発明による動きベクトル探索方法の一実施例を説明するための模式的な流れ図である。まず、水平720画素×垂直480画素のオリジナルフレームデータ501を所定の縮小率(ここでは水平および垂直方向に1/2)でサブサンプリングし、水平360画素×垂直240画素の縮小フレームデータ502を生成する。このとき、1ブロックのサイズは、水平8画素×垂直8画素となる。
【0044】
この縮小フレームデータ502を用いて、8×8ブロックの水平方向2個分となる水平16画素×垂直8画素のサイズをマッチング単位として第1段の複数ブロック一括探索を実行する。上述したように、各ブロックにおいて、あらかじめ指定された探索範囲内のすべての点を探索し相関が最も大きくなる位置を探す。ここでは、第1段探索によって、探索中心から左に6画素(−6)、下に3画素の動きベクトル(−6,3)が特定されたと仮定する。
【0045】
次に、第1段の探索で得られた探索結果の画素位置を本来の解像度の画素位置にマッピングする。ここでは、水平および垂直方向に2倍した位置(−12,6)にマッピングされる。マッピングされた位置(−12,6)とそれを中心とする周辺とが1ブロック(16×16)をマッチング単位として探索される。すなわち、第1段で一括探索した2つのブロックそれぞれについて、(−12,6)に基づいて第2段の探索が実行される。このように第1段の探索結果は隣接する2つのブロックで同一のものになっているが、第2段の探索では1ブロックごとに探索を行うために、最終的に得られる動きベクトルはブロックごとに異なるものとなる。
【0046】
このように動きベクトル探索を行うことで、通常の探索よりも高速でかつ精度の良く動きベクトルを検出することができる。
【0047】
図6は、本発明による動きベクトル探索装置の他の実施形態であるコンピュータシステムを示すブロック図である。このコンピュータシステムには、プログラム制御プロセッサ601が装備されている。プログラム制御プロセッサ601には、現フレームバッファ611および参照フレームバッファ612の他に、必要なプログラムを格納したプログラムメモリ602と、縮小現フレームバッファ613および縮小参照フレームバッファ614を含む縮小フレームバッファ603と、が接続されている。
【0048】
プログラムメモリ602には、本発明による動きベクトル探索を実行するためのメインプログラムの他に、上述した縮小処理部615、マッチング単位抽出処理部616、複数ブロックを一括探索する第1段動き探索処理部617、1ブロックごとの探索をおこなう第2段動き探索処理部618をそれぞれ機能的に実現するプログラムモジュールが格納されている。プログラムメモリ602には、更に動き複雑度判定部およびマッチング単位決定部が格納され、本発明の第2実施形態をインプリメントすることもできる。メインプログラムおよび各機能モジュールをプログラム制御プロセッサ601で実行することで、本発明による動きベクトル探索が実行される。
【0049】
【発明の効果】
以上説明したように、本発明による動きベクトル探索方法及び装置は、サブサンプリングを行って第1の探索を実行する際に、隣接する複数ブロックを一括探索する。このように構成することで、演算量が削減され、動きベクトル探索を高速化できる。また、第2探索においては1ブロックごとに探索をおこなうため、動きベクトル探索の精度の低下は最小限に抑えることができる。
【0050】
さらに、第1探索を実行する際に隣接する複数のブロックを一括探索するため、隣同士のブロックの動きベクトルの差が小さくなる。このため、動きベクトルを符号化するために必要となる符号量を少なくすることができ、ブロックデータの符号化のためにより多くの符号量を割り当てることができる。したがって、動きベクトル探索において若干の探索精度低下が見られるが、画質の低下は最小限に抑えることができる。
【0051】
また、本発明によれば、第1の探索において動きの複雑度に応じてマッチング単位を変化させることができる。このために、動きの複雑なところではマッチング単位を小さくし、動きの単調なところでは大きくする、というように動きに応じた適切な探索が可能となり、探索精度の低下をより小さくし、かつ高速な動きベクトル探索が可能となる。
【図面の簡単な説明】
【図1】本発明による動きベクトル探索装置の第1実施形態を示すブロック図である。
【図2】第1実施形態の全体的動作を示すフローチャートである。
【図3】本発明による動きベクトル探索装置の第2実施形態を示すブロック図である。
【図4】第2実施形態の全体的動作を示すフローチャートである。
【図5】本発明による動きベクトル探索方法の一実施例を説明するための模式的な流れ図である。
【図6】本発明による動きベクトル探索装置の他の実施形態であるコンピュータシステムを示すブロック図である。
【図7】(A)は、一般的な多段探索法を説明するための画素配列を示す模式図であり、(B)は第2段の探索の様子を示すシーケンス図である。
【符号の説明】
101 現フレームバッファ
102 参照フレームバッファ
103 サブサンプリング処理部
104 第1段動き探索処理部
105 第2段動き探索処理部
111 縮小処理部
112 縮小現フレームバッファ
113 縮小参照フレームバッファ
114 マッチング単位抽出部
115 マッチング演算処理部
314 動き複雑度判定度判定部
315 マッチング単位決定部
316 マッチング単位抽出部
317 マッチング演算処理部
601 プログラム制御プロセッサ
602 プログラムメモリ
603 縮小フレームバッファ
611 現フレームバッファ
612 参照フレームバッファ
613 縮小現フレームバッファ
614 縮小参照フレームバッファ
615 縮小処理
616 マッチング単位抽出
617 複数ブロックによる1段目探索
618 1ブロックごとの2段目探索
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a motion compensated predictive coding technique, and more particularly to a motion vector search method and apparatus used in a multi-stage search method, and a computer system.
[0002]
[Prior art]
In compression encoding when recording or transmitting a moving image signal, an encoding method using correlation between image frames is generally used in order to increase encoding efficiency. A coding method using correlation between image frames is called motion compensation prediction coding, and is adopted in MPEG (Moving Picture Experts Group) 2 or the like.
[0003]
In motion-compensated prediction coding, information on motion of a video between frames (motion vector) and a difference image (prediction error) between a predicted image generated by the motion vector and a frame being encoded are encoded. If the correlation between the image frames is large, the prediction error becomes small, the amount of information to be encoded can be reduced, and the compression ratio can be improved. In the motion compensation prediction coding, a frame is generally divided into blocks of a fixed size such as 16 × 16 pixels, and a motion vector is assigned to each of the divided blocks.
[0004]
Specifically, from among frames (reference frames) that have already been encoded, a location where the correlation is highest for each block is searched for, a difference between the blocks is obtained, and encoding is performed. The process of searching for a place where the correlation becomes large is called a motion vector search. The magnitude of the correlation can be evaluated by summing up the differences of each pixel in the block between the reference frame and the frame being encoded.
[0005]
An optimum motion vector can be obtained by simply searching all points in the designated search range and examining the magnitude of the correlation. However, this method is extremely unrealistic because the amount of calculation is extremely large. In general, in order to reduce the amount of calculation, it is common to first perform a coarse first-stage search and then perform a fine second-stage search centering on the search result. Such a method is called a multistage search method and is disclosed in, for example, Non-Patent Document 1. Hereinafter, the multi-stage search method will be briefly described.
[0006]
FIG. 7A is a schematic diagram showing a pixel array for explaining a general multistage search method, and FIG. 7B is a sequence diagram showing a state of a second stage search. For example, first, a two-pixel accuracy search (search for a position labeled “1” in FIG. 7A) is executed as a first-stage search, and a position having the largest correlation is determined. Subsequently, a one-pixel accuracy search (search for a position labeled “2” in FIG. 7A) is executed as a second-stage search centering on the position that is the first-stage search result. The position where the correlation becomes maximum is determined as the final motion vector.
[0007]
Usually, the first-stage motion vector search uses frame data whose resolution is reduced by sub-sampling the frame. For example, the first-stage motion vector search is performed by halving the frame data both vertically and horizontally, and the second-stage search is executed at the original resolution with the surrounding area of the search result as a search range to obtain a final motion vector. For example, as shown in FIG. 7B, when the search range of the second stage is a range of ± 1 pixel in the vertical and horizontal directions, all positions within the search range ((a) in FIG. 7B) ~ (I)) matching is performed.
[0008]
Non-Patent Literature 2 discloses an example of a method of searching for a motion vector by reducing the resolution in this way. In the method described in Non-Patent Document 2, two types of searches, a motion vector search using an image reduced in resolution and reduced, and a motion vector search using an image of the original resolution are performed, and a search result that reduces a prediction error is adopted. .
[0009]
For example, in the search with reduced resolution, first, both the encoding target image and the reference image are subsampled in the horizontal direction at N: 1, and a motion vector search is performed on the subsampled image. At this time, the size of the block is also reduced on the sub-sampled image, but the matching unit is the same as the block size of the original resolution. That is, when the block size at the original resolution is 16 pixels in the horizontal direction and 16 pixels in the vertical direction, the block size is 16 / N pixels in the horizontal direction and 16 pixels in the vertical direction by subsampling only in the horizontal direction. The operation is performed with 16 pixels in the horizontal direction and 16 pixels in the vertical direction. Therefore, N blocks adjacent in the horizontal direction are searched at once. As a result, if the search result of the search with the reduced resolution is adopted, adjacent N blocks have the same motion vector. The accuracy of the motion vector at this time depends on the size of the sub-sampled image. For example, a search is performed by subsampling in the horizontal direction 2: 1. When the search result is adopted as a final motion vector, a search equivalent to a search of skipping one pixel is considered in terms of the original resolution. Accuracy.
[0010]
In addition, in the motion detection method disclosed in Patent Document 1 (Japanese Patent Laid-Open No. Hei 10-191347), a semi-global block obtained by combining two blocks is obtained, and a motion vector of a block adjacent thereto is detected. Detect rough movement of blocks. Then, a motion vector for each block is detected by using the detected rough position as a search target. Similarly, in the motion detection method disclosed in Patent Document 2 (Japanese Patent Application Laid-Open No. 10-13835), a search is performed on behalf of one of a plurality of blocks.
[0011]
[Non-patent document 1]
"A new three-step search algorithm for block motion estimation", IEEE Transactions on Circuits and Systems for Video Games. 4, No. 4, August, 1994, p. 438-441
[Non-patent document 2]
Kanda et al. “Wide-area search of motion vectors by downsampling”, Video Media Processing Symposium (IMPS96), 1996, pp. 99-100
[Patent Document 1]
JP-A-10-191347 (abstract, 0029-0031).
[Patent Document 2]
JP-A-10-13835 (abstract, 0018).
[0012]
[Problems to be solved by the invention]
However, the method disclosed in Non-Patent Document 2 has a problem that the amount of calculation increases because the search is performed using two types of motion vector search methods.
[0013]
When the search result of the search with reduced resolution is adopted, the same motion vector is obtained in a plurality of adjacent blocks, and the search result obtained by the coarse search becomes the final motion vector as it is. For this reason, there is also a problem that it is not possible to cope with fine movements in the image, and the search accuracy is reduced.
[0014]
Further, in the method disclosed in Patent Literature 1, since the motion of the semi-global block is represented by the motion of an adjacent block, the motion of the semi-global block itself is not detected. The method of Patent Document 2 also employs a similar representative search. For this reason, the search accuracy may be greatly reduced.
[0015]
An object of the present invention is to provide a novel motion vector search method and apparatus and a computer system capable of searching for a motion vector at high speed.
[0016]
Another object of the present invention is to provide a motion vector search method and apparatus and a computer system that can search for a motion vector at high speed while minimizing a decrease in search accuracy.
[0017]
[Means for Solving the Problems]
A motion vector search device and method according to the present invention reduce a vertical direction and a horizontal direction of a target image and a reference image to generate a reduction target image and a reduced reference image, respectively, and based on the reduction target image and the reduced reference image, A first motion vector is searched for in a search unit including a plurality of adjacent blocks. Within the search range determined by the detected first motion vector, the second motion vector is searched for in units of one block based on the image resolution before reduction, and the motion vector is determined. Furthermore, it is desirable to determine the complexity of the motion of the moving image and change the size of the search unit according to the motion complexity.
[0018]
In the ordinary hierarchical motion vector search, in both the first-stage search and the second-stage search, a search is performed for each block to detect a motion vector of each block. According to the present invention, adjacent motions are detected in the first-stage search. Search multiple blocks at once. When N blocks adjacent in the horizontal direction and M blocks adjacent in the vertical direction are collectively searched for, one motion vector is detected for each N × M block. In the second-stage search, a search is performed for each block centering on the position obtained as the search result of the first-stage search, and a final motion vector is determined. Since the final motion vector is detected for each block, it is possible to prevent a decrease in search accuracy.
[0019]
As described above, in the first-stage search, the number of vectors to be detected is reduced by searching in a search unit in which a plurality of blocks are put together. Therefore, the amount of calculation for vector detection is reduced, and a high-speed motion vector search can be realized. In addition, in the second stage search, since a motion vector is obtained for each block, a decrease in the accuracy of the motion search is minimized.
[0020]
Further, by searching a plurality of blocks at once in the first-stage search, the difference between the finally obtained motion vectors between adjacent blocks is reduced. Therefore, the code amount required for coding the motion vector can be reduced, and a larger code amount can be allocated for coding the block data. Therefore, a decrease in image quality is minimized.
[0021]
BEST MODE FOR CARRYING OUT THE INVENTION
FIG. 1 is a block diagram showing a first embodiment of a motion vector search device according to the present invention. In FIG. 1, data of a frame being encoded is stored in a current frame buffer 101, and reference frame data is stored in a reference frame buffer 102. The sub-sampling processing unit 103 receives the current frame data and the reference frame data from the current frame buffer 101 and the reference frame buffer 102, respectively, and generates reduced current frame data and reduced reference frame data by sampling.
[0022]
The first-stage motion search processing unit 104 performs a motion search using the reduced current frame data and the reduced reference frame data, and converts the position information of the first-stage motion vector obtained as a result of the search into the second-stage motion search process. Output to the unit 105. The second-stage motion search processing unit 105 receives the original current frame data and the reference frame data from the current frame buffer 101 and the reference frame buffer 102, and performs a detailed motion vector search centering on the position of the first-stage motion vector. Execute Thus, a final motion vector is determined.
[0023]
The sub-sampling process 103 includes a reduction processing unit 111 that performs vertical / horizontal reduction. The reduced current frame data and reduced reference frame data reduced by the reduction processing unit 111 are stored in a reduced current frame buffer 112 and a reduced reference frame buffer 113. Each is stored. The first stage motion search processing unit 104 includes a matching single extraction unit 114 and a matching calculation processing unit 115 described later. Next, the overall operation of the present embodiment will be described in detail.
[0024]
FIG. 2 is a flowchart showing the overall operation of the first embodiment. First, the reduction processing unit 111 inputs the current frame data to be encoded from the current frame buffer 101 and performs sub-sampling (step S201). Similarly, the reduction processing unit 111 inputs the reference frame data from the reference frame buffer 102 and performs sub-sampling (step S202).
[0025]
Next, in order to start the first stage search processing from the beginning of the frame, the pointer is set to the first block of the reduced current frame (step S203), and the first stage motion search using the reduced data is started. . First, the matching unit extraction unit 211 of the first-stage motion search processing unit 104 extracts a predetermined matching unit (N blocks in the horizontal direction × M blocks in the vertical direction) composed of a plurality of blocks (step S204). Here, N and M are integers of 1 or more.
[0026]
Subsequently, the matching operation processing unit 212 performs a motion vector search on the reduced image using the extracted N × M block area as a matching unit (step S205), and performs a search on the reduced image of the current frame and the reduced image of the reference frame. The position where the correlation is highest between is determined. When the search for the first block is completed, the pointer is moved to an adjacent block that has not been searched yet (step S206), and the same motion vector search is performed until the search is completed for all blocks in the frame. It repeats (step S207). In the first-stage search, since a collective search is performed using the N × M block area as a matching unit, one motion vector is detected not for each block but for each N × M block.
[0027]
When the first-stage motion vector search ends (YES in step S207), the second-stage motion search processing unit 105 sets the pointer to the first block of the current frame (step S208). Then, the motion vector search is started at the original image resolution centering on the motion vector determined in the first stage search. That is, in the second-stage motion search, a matching process is performed using one block as a matching unit centering on the position obtained as a result of the first-stage motion search (step S209). When the search for the first block is completed, the pointer is moved to the next block (step S210), and the second-stage motion search is sequentially executed until the search for all blocks is completed (steps S209 to S211). If the search has been completed for all the blocks in the frame, the second-stage search is completed (YES in step S211), and the position determined to have the largest correlation is set as the final motion vector.
[0028]
The first-stage motion vector search in the above-described first embodiment is executed using, as a matching unit, pixel data including N blocks adjacent in the horizontal direction and M blocks adjacent in the vertical direction. Therefore, the number of detected motion vectors can be reduced, and as a result, the amount of calculation required for search is reduced, and the speed of motion vector search is increased.
[0029]
In the first-stage motion search processing unit 104, as described above, since the collective search is performed using the N × M block area as a matching unit, the same motion vector is used for N × M blocks. In the second embodiment of the present invention described below, it is possible to minimize a decrease in search accuracy by changing the matching unit according to the motion of the image.
[0030]
FIG. 3 is a block diagram showing a second embodiment of the motion vector search device according to the present invention. In FIG. 3, blocks having the same functions as those in the first embodiment shown in FIG. 1 are denoted by the same reference numerals, and description thereof will be omitted. In the second embodiment, the configuration and operation of the first-stage motion search processing unit 304 are different from those of the first embodiment. Therefore, the first-stage motion search processing unit 304 will be described below.
[0031]
As shown in FIG. 3, the first-stage motion search processing unit 304 in the second embodiment includes a motion complexity determination unit 314, a matching unit determination unit 315, a matching unit extraction unit 316, and a matching calculation processing unit 317. Have been.
[0032]
The motion complexity determining unit 314 inputs the reduced current frame data and the reduced reference frame data from the sub-sampling processing unit 103, and determines the complexity of the motion based on statistical information of past motion vectors, the magnitude of prediction error, and the like. I do. For example, if the directions of the vectors do not match in a plurality of neighboring blocks for which a motion vector has already been obtained, that is, if the motion vectors point in different directions, it is determined that the motion is complicated. The motion complexity may be determined by quantifying the degree of coincidence of the directions of the motion vectors in a plurality of neighboring blocks (eg, deviation of the direction distribution).
[0033]
The matching unit determination unit 315 changes the matching unit according to the determined complexity of the motion. Specifically, when it is determined that the movement is complicated, the matching unit is reduced. This makes it possible to cope with complicated movements. If the motion is determined to be monotonous, the matching unit is increased. As a result, the amount of calculation required for the search can be reduced.
[0034]
The matching unit extraction unit 316 extracts the determined matching unit, and then, as described above, the matching calculation processing unit 317 executes the matching process on the extracted matching unit.
[0035]
FIG. 4 is a flowchart showing the overall operation of the second embodiment. First, the reduction processing unit 111 inputs the current frame data to be encoded from the current frame buffer 101 and performs sub-sampling (step S401). Similarly, the reduction processing unit 111 inputs the reference frame data from the reference frame buffer 102 and performs sub-sampling (step S402).
[0036]
Next, in order to start the first stage search processing from the beginning of the frame, the pointer is set to the first block of the reduced current frame (step S403), and the first stage motion search using the reduced data is started. . First, the motion complexity determination unit 314 determines the complexity of the motion based on the past motion vector statistical information, the magnitude of the prediction error, and the like (step S404), and the matching unit determination unit 315 determines the complexity of the determined motion. The size of the matching unit is determined accordingly (step S405).
[0037]
Specifically, the matching unit (N blocks in the horizontal direction × M blocks in the vertical direction) becomes smaller where the motion complexity is relatively large, and the matching unit is smaller where the motion complexity is relatively small (where the motion is monotonous). For example, the values of N and M are determined in advance and stored in a table so as to increase. The matching unit extraction unit 211 extracts a matching unit according to the determined size of the matching unit (step S406).
[0038]
Subsequently, the matching calculation processing unit 317 performs a motion vector search on the reduced image using the extracted N × M block area as a matching unit (step S407), and performs a search on the reduced image of the current frame and the reduced image of the reference frame. The position where the correlation is highest between is determined. When the search for the first block is completed, the pointer is moved to an adjacent block that has not been searched yet (step S408), and the same motion vector search (step S408) is performed until the search is completed for all the blocks in the frame. Steps S404 to S408) are repeated (step S409). In the first-stage search, since the N × M block area is searched collectively using the matching unit as the matching unit, the first-stage search result is the same motion vector for N × M blocks.
[0039]
When the first-stage motion vector search ends (YES in step S409), the second-stage motion search processing unit 105 sets the pointer to the first block of the current frame (step S410). Then, matching processing is performed using one block as a matching unit with the motion vector determined in the first stage search as a center (step S411). When the search for the first block is completed, the pointer is moved to the next block (step S412), and the second-stage motion search is sequentially executed until the search for all blocks is completed (steps S411 to S412). If the search has been completed for all blocks in the frame, the search in the second stage is completed (YES in step S413), and the position determined to have the largest correlation is set as the final motion vector.
[0040]
As described above, a search is performed in a small matching unit in a place where a motion is complicated, and a search is performed in a large matching unit in a place where a motion is monotonous. Therefore, a decrease in search accuracy is reduced, and a high-speed motion vector search becomes possible. .
[0041]
【Example】
Next, the motion vector search method according to the present invention will be described with a specific example in which a moving image having 720 pixels in the horizontal direction and 480 pixels in the vertical direction is encoded.
[0042]
It is assumed that the encoding method adopts a method in which 16 pixels in the horizontal direction and 16 pixels in the vertical direction are treated as one block and a motion vector is assigned to each block. X It is assumed that one block is set in the vertical direction.
[0043]
FIG. 5 is a schematic flowchart for explaining one embodiment of the motion vector search method according to the present invention. First, original frame data 501 of 720 horizontal pixels × 480 vertical pixels is sub-sampled at a predetermined reduction ratio (here, 1/2 in the horizontal and vertical directions) to generate reduced frame data 502 of 360 horizontal pixels × 240 vertical pixels. I do. At this time, the size of one block is 8 horizontal pixels × 8 vertical pixels.
[0044]
Using the reduced frame data 502, the first-stage multiple block collective search is performed using a size of 16 horizontal pixels × 8 vertical pixels, which is equivalent to two 8 × 8 blocks in the horizontal direction, as a matching unit. As described above, in each block, all points within the search range specified in advance are searched to find a position where the correlation becomes maximum. Here, it is assumed that the first-stage search has specified a motion vector (−6, 3) of 6 pixels (−6) left and 3 pixels below the search center.
[0045]
Next, the pixel positions of the search result obtained in the first-stage search are mapped to the pixel positions of the original resolution. Here, it is mapped to a position (-12, 6) doubled in the horizontal and vertical directions. The mapped position (−12, 6) and its surroundings are searched using one block (16 × 16) as a matching unit. That is, for each of the two blocks that have been collectively searched for in the first stage, the second stage search is performed based on (-12, 6). As described above, the search result of the first stage is the same for two adjacent blocks, but since the search of the second stage is performed for each block, the motion vector finally obtained is a block. Will be different for each.
[0046]
By performing the motion vector search in this way, it is possible to detect a motion vector at higher speed and with higher accuracy than a normal search.
[0047]
FIG. 6 is a block diagram showing a computer system which is another embodiment of the motion vector search device according to the present invention. This computer system is equipped with a program control processor 601. The program control processor 601 includes, in addition to the current frame buffer 611 and the reference frame buffer 612, a program memory 602 storing necessary programs, a reduced frame buffer 603 including a reduced current frame buffer 613 and a reduced reference frame buffer 614, Is connected.
[0048]
In the program memory 602, in addition to the main program for executing the motion vector search according to the present invention, the above-described reduction processing unit 615, matching unit extraction processing unit 616, and first-stage motion search processing unit that searches a plurality of blocks collectively 617, a program module that functionally implements a second-stage motion search processing unit 618 that performs a search for each block is stored. The program memory 602 further stores a motion complexity determining unit and a matching unit determining unit, and can implement the second embodiment of the present invention. When the main program and each functional module are executed by the program control processor 601, the motion vector search according to the present invention is executed.
[0049]
【The invention's effect】
As described above, the motion vector search method and apparatus according to the present invention perform a collective search for a plurality of adjacent blocks when performing the first search by performing subsampling. With this configuration, the amount of calculation is reduced, and the speed of motion vector search can be increased. Further, in the second search, a search is performed for each block, so that a decrease in the accuracy of the motion vector search can be minimized.
[0050]
Furthermore, since a plurality of adjacent blocks are searched collectively when the first search is executed, a difference between motion vectors of adjacent blocks is reduced. For this reason, it is possible to reduce the code amount required for coding the motion vector, and it is possible to allocate a larger code amount for coding the block data. Therefore, a slight decrease in search accuracy is found in the motion vector search, but a decrease in image quality can be minimized.
[0051]
Further, according to the present invention, in the first search, the matching unit can be changed according to the complexity of the motion. For this reason, it is possible to perform an appropriate search according to the motion, for example, by reducing the matching unit in a place where the motion is complicated, and to increase the unit in a case where the motion is monotonous. It is possible to search for a suitable motion vector.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a first embodiment of a motion vector search device according to the present invention.
FIG. 2 is a flowchart showing an overall operation of the first embodiment.
FIG. 3 is a block diagram showing a second embodiment of the motion vector search device according to the present invention.
FIG. 4 is a flowchart showing an overall operation of the second embodiment.
FIG. 5 is a schematic flowchart for explaining one embodiment of a motion vector search method according to the present invention.
FIG. 6 is a block diagram showing a computer system which is another embodiment of the motion vector search device according to the present invention.
FIG. 7A is a schematic diagram showing a pixel array for explaining a general multi-stage search method, and FIG. 7B is a sequence diagram showing a state of a second-stage search.
[Explanation of symbols]
101 Current frame buffer 102 Reference frame buffer 103 Sub-sampling processing unit 104 First-stage motion search processing unit 105 Second-stage motion search processing unit 111 Reduction processing unit 112 Reduced current frame buffer 113 Reduced reference frame buffer 114 Matching unit extraction unit 115 Matching Arithmetic processing unit 314 Motion complexity degree determination unit 315 Matching unit determination unit 316 Matching unit extraction unit 317 Matching arithmetic processing unit 601 Program control processor 602 Program memory 603 Reduced frame buffer 611 Current frame buffer 612 Reference frame buffer 613 Reduced current frame buffer 614 Reduced reference frame buffer 615 Reduction processing 616 Matching unit extraction 617 First-stage search with multiple blocks 618 Second-stage search for each block Rope

Claims (8)

動画像の符号化における動きベクトルを探索する装置において、
対象画像および参照画像の縦方向及び横方向を縮小して縮小対象画像および縮小参照画像をそれぞれ生成する画像縮小手段と、
前記縮小対象画像および縮小参照画像に基づいて、隣接する複数個のブロックからなる探索単位で第1動きベクトルを探索する第1探索手段と、
前記第1動きベクトルにより決定される探索範囲内で、前記縮小前の画像解像度により1ブロック単位で第2動きベクトルを探索し前記動きベクトルを決定する第2探索手段と、
を有することを特徴とする動きベクトル探索装置。
In an apparatus for searching for a motion vector in video coding,
Image reduction means for reducing the vertical direction and the horizontal direction of the target image and the reference image to generate a reduction target image and a reduced reference image, respectively;
A first search unit that searches for a first motion vector in a search unit including a plurality of adjacent blocks based on the reduction target image and the reduced reference image;
A second search unit that searches for a second motion vector in block units based on the image resolution before the reduction in the search range determined by the first motion vector and determines the motion vector;
A motion vector search device comprising:
前記第1探索手段は、さらに、
前記動画像の動きの複雑度を判定する動き複雑度判定手段と、
前記動き複雑度に応じて、前記探索単位の大きさを変化させる探索単位決定手段と、
を有することを特徴とする請求項1記載の動きベクトル探索装置。
The first search means further comprises:
Motion complexity determining means for determining the complexity of the motion of the moving image;
A search unit determining unit that changes a size of the search unit according to the motion complexity;
2. The motion vector search device according to claim 1, comprising:
動画像の符号化における動きベクトルを探索する方法において、
対象画像および参照画像の縦方向及び横方向を縮小して縮小対象画像および縮小参照画像をそれぞれ生成し、
前記縮小対象画像および縮小参照画像に基づいて、隣接する複数個のブロックからなる探索単位で第1動きベクトルを探索し、
前記第1動きベクトルにより決定される探索範囲内で、前記縮小前の画像解像度により1ブロック単位で第2動きベクトルを探索することで前記動きベクトルを決定する、
ことを特徴とする動きベクトル探索方法。
In a method of searching for a motion vector in video coding,
Reduce the vertical and horizontal directions of the target image and the reference image to generate a reduction target image and a reduced reference image, respectively,
A first motion vector is searched for in a search unit including a plurality of adjacent blocks based on the reduced target image and the reduced reference image,
Within the search range determined by the first motion vector, the motion vector is determined by searching for a second motion vector in block units based on the image resolution before the reduction.
A motion vector search method, characterized in that:
前記探索単位の大きさは、前記動画像の動きの複雑度に応じてを変化させることを特徴とする請求項3記載の動きベクトル探索方法。4. The motion vector search method according to claim 3, wherein the size of the search unit is changed according to the complexity of the motion of the moving image. 動画像の符号化における動きベクトル探索を実行するコンピュータシステムにおいて、
対象画像データを格納する対象画像バッファと、
参照画像を格納する参照画像バッファと、
動画像の符号化における動きベクトル探索をコンピュータに実行させるための命令からなるプログラムを格納するメモリと、
前記プログラムを実行するプログラム制御プロセッサと、
を有し、前記プログラムは、少なくとも、
前記対象画像および前記参照画像を縮小し、縮小対象画像および縮小参照画像をそれぞれ生成する画像縮小部と、
前記縮小対象画像および縮小参照画像に基づいて第1動きベクトルを探索する際に隣接する複数のブロックを探索単位として一度に探索する第1探索部と、
前記第1動きベクトルにより決定される位置の探索範囲内で、前記縮小前の画像解像度により1ブロックごとに第2動きベクトルを探索して前記動きベクトルを決定する第2探索部と、
からなることを特徴とするコンピュータシステム。
In a computer system that executes a motion vector search in encoding of a moving image,
A target image buffer for storing target image data;
A reference image buffer for storing the reference image;
A memory for storing a program consisting of instructions for causing a computer to execute a motion vector search in video encoding,
A program control processor that executes the program;
And the program comprises at least:
An image reduction unit that reduces the target image and the reference image, and generates a reduction target image and a reduced reference image, respectively;
A first search unit that searches a plurality of adjacent blocks at a time as a search unit when searching for a first motion vector based on the reduction target image and the reduced reference image;
A second search unit that searches for a second motion vector for each block based on the image resolution before reduction within the search range of the position determined by the first motion vector to determine the motion vector;
A computer system comprising:
前記探索単位のブロック数は、前記動画像の動きの複雑さに応じて増減させることを特徴とする請求項5記載のコンピュータシステム。The computer system according to claim 5, wherein the number of blocks in the search unit is increased or decreased according to the complexity of the motion of the moving image. 動画像の符号化における動きベクトル探索をコンピュータに実行させるための命令からなるコンピュータプログラムにおいて、
対象画像および参照画像の縦方向及び横方向を縮小して縮小対象画像および縮小参照画像をそれぞれ生成するステップと、
前記縮小対象画像および縮小参照画像に基づいて、隣接する複数個のブロックからなる探索単位で第1動きベクトルを探索する第1探索ステップと、
前記第1動きベクトルにより決定される探索範囲内で、前記縮小前の画像解像度により1ブロック単位で第2動きベクトルを探索することで前記動きベクトルを決定する第2探索ステップと、
を有することを特徴とするコンピュータプログラム。
A computer program comprising instructions for causing a computer to execute a motion vector search in encoding of a moving image,
Generating a reduced target image and a reduced reference image by reducing the vertical direction and the horizontal direction of the target image and the reference image, respectively;
A first search step of searching for a first motion vector in search units consisting of a plurality of adjacent blocks based on the reduction target image and the reduced reference image;
A second search step of determining the motion vector by searching a second motion vector for each block in the search range determined by the first motion vector with the image resolution before the reduction,
A computer program comprising:
前記探索単位のブロック数は、前記動画像の動きの複雑さに応じて増減させることを特徴とする請求項7記載のコンピュータプログラム。8. The computer program according to claim 7, wherein the number of blocks in the search unit is increased or decreased according to the complexity of the motion of the moving image.
JP2003016877A 2003-01-27 2003-01-27 Motion vector search method and apparatus Expired - Fee Related JP4228705B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003016877A JP4228705B2 (en) 2003-01-27 2003-01-27 Motion vector search method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003016877A JP4228705B2 (en) 2003-01-27 2003-01-27 Motion vector search method and apparatus

Publications (2)

Publication Number Publication Date
JP2004229150A true JP2004229150A (en) 2004-08-12
JP4228705B2 JP4228705B2 (en) 2009-02-25

Family

ID=32904176

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003016877A Expired - Fee Related JP4228705B2 (en) 2003-01-27 2003-01-27 Motion vector search method and apparatus

Country Status (1)

Country Link
JP (1) JP4228705B2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006115312A (en) * 2004-10-15 2006-04-27 Mie Tlo Co Ltd Motion detector and motion detecting method
WO2007057986A1 (en) * 2005-11-15 2007-05-24 Sharp Kabushiki Kaisha Motion vector calculation device and motion vector calculation method
WO2007057985A1 (en) * 2005-11-21 2007-05-24 Sharp Kabushiki Kaisha Image encoding apparatus and image encoding method
JP2009027437A (en) * 2007-07-19 2009-02-05 Fujifilm Corp Image processor, image processing method and imaging device
JP2010288110A (en) * 2009-06-12 2010-12-24 Sony Corp Image processing apparatus and method
US8929449B2 (en) 2010-07-30 2015-01-06 Canon Kabushiki Kaisha Motion vector detection apparatus, motion vector detection method, and computer-readable storage medium

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006115312A (en) * 2004-10-15 2006-04-27 Mie Tlo Co Ltd Motion detector and motion detecting method
WO2007057986A1 (en) * 2005-11-15 2007-05-24 Sharp Kabushiki Kaisha Motion vector calculation device and motion vector calculation method
JP2007142521A (en) * 2005-11-15 2007-06-07 Sharp Corp Apparatus and method for calculating motion vector
CN101080930B (en) * 2005-11-15 2010-06-16 夏普株式会社 Motion vector calculation device and motion vector calculation method
WO2007057985A1 (en) * 2005-11-21 2007-05-24 Sharp Kabushiki Kaisha Image encoding apparatus and image encoding method
US8300695B2 (en) 2005-11-21 2012-10-30 Sharp Kabushiki Kaisha Image encoding apparatus and image encoding method
JP2009027437A (en) * 2007-07-19 2009-02-05 Fujifilm Corp Image processor, image processing method and imaging device
JP2010288110A (en) * 2009-06-12 2010-12-24 Sony Corp Image processing apparatus and method
US8542741B2 (en) 2009-06-12 2013-09-24 Sony Corporation Image processing device and image processing method
US8929449B2 (en) 2010-07-30 2015-01-06 Canon Kabushiki Kaisha Motion vector detection apparatus, motion vector detection method, and computer-readable storage medium

Also Published As

Publication number Publication date
JP4228705B2 (en) 2009-02-25

Similar Documents

Publication Publication Date Title
EP1430724B1 (en) Motion estimation and/or compensation
US7050502B2 (en) Method and apparatus for motion vector detection and medium storing method program directed to the same
JP2007026459A (en) Method and apparatus for global-to-local block motion estimation
JP2000106674A (en) Method and device for detecting motion
KR100984953B1 (en) Image data retrieval
JP2004129099A (en) Motion vector searching method and device
JP2004229150A (en) Motion vector searching method and device
JP2008060836A (en) Motion vector search method and device
JPH09261646A (en) Motion detector for image
US7773673B2 (en) Method and apparatus for motion estimation using adaptive search pattern for video sequence compression
JP3175914B2 (en) Image encoding method and image encoding device
US20040247032A1 (en) Motion vector detection device and motion vector detection method
CN113489988B (en) HEVC integer pixel motion estimation method and device
JP4488805B2 (en) Motion vector detection apparatus and method
JPH0262178A (en) Motion detection system for picture processor
JP2006217486A (en) Motion compensation type ip conversion processor and processing method
JPH11215502A (en) Motion vector detector and its method
JP2000134628A (en) Method and device for motion vector detection
KR100926440B1 (en) Block matching motion estimation apparatus for picture coding
JPH08242454A (en) Method for detecting global motion parameter
JP2000102015A (en) Motion vector detector and motion vector detection method
JPH07288817A (en) Motion vector detector
JP2868441B2 (en) Motion vector search method and search device
JPH11110563A (en) Method and device for detecting motion of object
JPH04180383A (en) Motion vector searching circuit for predictive encoding between motion compensating frames

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050822

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070802

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070807

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071009

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080819

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081016

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20111212

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111212

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121212

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121212

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20131212

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees