JP4223169B2 - Motion vector detection method, motion vector detection device, and data recording medium - Google Patents
Motion vector detection method, motion vector detection device, and data recording medium Download PDFInfo
- Publication number
- JP4223169B2 JP4223169B2 JP2000076925A JP2000076925A JP4223169B2 JP 4223169 B2 JP4223169 B2 JP 4223169B2 JP 2000076925 A JP2000076925 A JP 2000076925A JP 2000076925 A JP2000076925 A JP 2000076925A JP 4223169 B2 JP4223169 B2 JP 4223169B2
- Authority
- JP
- Japan
- Prior art keywords
- motion vector
- block
- motion
- error
- search
- 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
Links
- 230000033001 locomotion Effects 0.000 title claims description 949
- 239000013598 vector Substances 0.000 title claims description 618
- 238000001514 detection method Methods 0.000 title claims description 246
- 238000000034 method Methods 0.000 claims description 148
- 230000008569 process Effects 0.000 claims description 129
- 238000004364 calculation method Methods 0.000 claims description 29
- 238000013500 data storage Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 31
- 206010000210 abortion Diseases 0.000 description 12
- 231100000176 abortion Toxicity 0.000 description 11
- 230000002093 peripheral effect Effects 0.000 description 11
- 238000007906 compression Methods 0.000 description 6
- 230000006835 compression Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 101000969688 Homo sapiens Macrophage-expressed gene 1 protein Proteins 0.000 description 4
- 102100021285 Macrophage-expressed gene 1 protein Human genes 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000000593 degrading effect Effects 0.000 description 1
- 230000005764 inhibitory process Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、動きベクトル検出方法,動きベクトル検出装置,及びデータ記憶媒体に関し、特に、ブロック単位動き補償符号化処理,つまり画面間の画素値相関を利用して画像信号を所定数の画素からなるブロック毎に効率良く符号化する処理において使用される動きベクトルを高速かつ精度良く生成する動きベクトル検出処理に関するものである。
【0002】
【従来の技術】
近年、音声,画像,その他のデータを統合的に扱うマルチメディア時代を迎え、従来からの情報メディア,つまり新聞,雑誌,テレビ,ラジオ,電話等の情報を人に伝達する手段がマルチメディアの対象として取り上げられるようになってきた。一般に、マルチメディアとは、文字だけでなく、図形、音声、特に画像等を同時に関連づけて表すことをいうが、上記従来の情報メディアをマルチメディアの対象とするには、その情報をディジタル形式にして表すことが必須条件となる。
【0003】
ところが、上記各情報メディアで扱われる情報量をディジタル情報量として見積もってみると、文字の場合1文字当たりの情報量は1〜2バイトであるのに対し、音声の場合1秒当たり64Kbits(電話品質)、さらに動画については1秒当たり100Mbits(現行テレビ放送品質)以上の情報量が必要となり、上述したほとんどの情報メディアにおいては、その膨大な情報をディジタル形式でそのまま扱うことは現実的ではない。例えば、テレビ電話は、64Kbps 〜1.5Mbps の伝送速度を持つサービス総合ディジタル網(ISDN:Integrated Services Digital Network)によってすでに実用化されているが、テレビカメラの映像情報をそのままISDNで送ることは不可能である。
【0004】
そこで、必要となってくるのが情報の圧縮技術である。例えば、テレビ電話の場合、ITU−T(国際電気通信連合 電気通信標準化部門)で国際標準化されたH.261やH.263規格の動画圧縮技術が用いられている。また、MPEG1規格の情報圧縮技術によると、通常の音楽用CD(コンパクト・ディスク)に音声情報とともに画像情報を記録することも可能となる。
【0005】
ここで、MPEG(Moving Picture Experts Group) とは、動画データ(動画像の画像信号)の圧縮技術に関する国際規格であり、MPEG1は、動画データを1.5Mbps まで、つまりテレビ信号の情報を約100分の1にまで圧縮する規格である。また、MPEG1規格を対象とする伝送速度が主として約1.5Mbps に制限されていることから、さらなる高画質化の要求をみたすべく規格化されたMPEG2では、動画データが2〜15Mbps に圧縮される。
【0006】
さらに現状では、MPEG1,MPEG2と標準化を進めてきた作業グループ(ISO/IEC JTC1/SC29/WG11) によって、物体単位で符号化処理や信号操作を可能とし、マルチメディア時代に必要な新しい機能を実現する動画データの圧縮技術がMPEG4として規格化されつつある。このMPEG4では、当初、低ビットレートの符号化方法の標準化を目指してきたが、現在は、標準化の対象が、インタレース画像に対応した高ビットレートのより汎用的な符号化処理に拡張されている。
【0007】
上述した符号化処理では、画面間の画素値相関を利用して画像信号の符号化を行う処理,いわゆる画面間動き補償符号化処理を用いることにより大幅なデータ圧縮(ビットレート節約)を実現している。ここで、上記画面間動き補償符号化処理では、16×16画素からなる画像空間(マクロブロック)、もしくは8×8画素からなる画像空間(ブロック)を単位として、符号化処理の対象となる被処理ブロック(以下、対象ブロックともいう。)の画像信号が、符号化処理が施された画面に対応する画像信号(参照画面の画像信号)と比較されて、参照画面における、最も画素値の配列パターンが上記対象ブロックと似ている領域(予測ブロック)の位置を示す位置情報が対象ブロックに対応する動きベクトルとして検出される。この動きベクトルは、上記対象ブロックに対応する画像信号と予測ブロック(参照ブロック)に対応する画像信号との差分信号(動き補償誤差)とともに符号化される。
【0008】
図11は従来の代表的な画面間動き補償符号化装置のブロック図である。なお、説明の簡略化のために、以下の説明では、16×16画素からなるマクロブロックと8×8画素からなるブロックを区別せずにブロックという。
この画面間動き補償符号化装置(以下、符号化装置と略記する。)1000は、所定の物体に対応する画像信号を上記ブロックに対応するよう分割して得られる画像信号をブロック毎に順次受け、各ブロックに対応する画像信号に対して画面間動き補償符号化処理を施すものである。
【0009】
つまり、上記符号化装置1000は、符号化処理の対象となる被処理ブロックに対応する画像信号Stと、参照画面に対応する画像信号から取得した予測ブロックに対応する画像信号(動き補償データ)Ptとの差分値Dtを計算する減算器d1と、該減算器d1により得られた差分値DtをDCT(離散コサイン変換)等の直交変換処理により周波数成分Ttに変換する直交変換器d2と、該周波数成分Ttを量子化して量子化値Qtを出力する量子化器d3と、量子化値Qtを符号化して符号化データEtを出力する可変長符号化器d4とを有している。
【0010】
また、上記符号化装置1000は、上記量子化値Qtを逆量子化して周波数成分IQtを復元する逆量子化器d5と、復元した周波数成分IQtを逆DCT処理等の処理により空間領域の画像データ(画素値)ITtに変換する逆直交変換器d6と、復元した画像データITtと上記動き補償データPtとを加算する加算器d7と、該加算器d7の出力Rtを後続画面に対する符号化処理の際に参照するためのデータとして一時的に記憶するフレームメモリd8とを有している。
【0011】
さらに、上記符号化装置1000は、上記被処理ブロックと同一サイズの、上記参照画面における領域毎に、上記被処理ブロックに対応する画像信号Stを、フレームメモリd8に格納されている参照画面の画像データCtと比較し、両者の差が最小となる参照画面における領域(予測ブロック)の位置を示す情報(動きベクトル)MVを導出する動き検出器d9と、検出した動きベクトルMVに応じたフレームメモリd8に対するアドレス信号Adを発生し、このアドレス信号Adに基づいて、参照画面における画素位置により特定される領域(予測ブロック)の画像データMtを取得し、この画像データを動き補償データPtとして出力する動き補償器d10とを有している。
【0012】
上述した従来の符号化装置1000では、画像信号Stを直接符号化する代わりに、エネルギーの小さい減算器d1の出力を符号化することにより、圧縮効率の向上を図っている。この圧縮効率は、上記減算器d1の出力のエネルギー(出力信号の振幅)が小さいほど向上することが知られており、従って、動き検出器d9において、高速かつ精度良く動きベクトルを検出することが重要になる。このような精度のよい動きベクトルを検出することにより、上記減算器d1の出力のエネルギーが小さくなる。
【0013】
なお、図中、i20は画像信号(画像データ)Stの入力端子、o20は符号化データEtの出力端子である。また、図11に示す符号化装置1000では、フレームメモリd8と動き検出器d9により、動きベクトルの検出を行う動きベクトル検出装置200が構成されており、以下、この動きベクトル検出装置200について詳述する。
【0014】
図12は従来の代表的な動きベクトル検出装置の構成を示すブロック図である。
この動きベクトル検出装置200は、上記参照画面の画像データCtが格納されるフレームメモリd8と、外部からの動きベクトル探索中心を示す情報Scを受け、探索中心近傍の複数の画素位置を示す候補動きベクトルMVcを出力する動きベクトル生成器u1aと、候補動きベクトルMVcにより示される参照画面における予測ブロックの画素値(画像データ)Ctと、入力された被処理ブロックの画像信号(画像データ)Stとの誤差(動き補償誤差)Dpを算出する誤差計算器u3aと、該誤差計算器u3aの出力である誤差Dpを監視し、動きベクトル生成器u1aの出力である候補動きベクトルMVcから、誤差が最小となるものを選択し、選択された候補動きベクトルを被処理ブロックに対応する動きベクトルMVsとして出力する最小誤差選択器u4aとを有している。ここでは、上記動き検出器d9は、上記動きベクトル生成器u1a,誤差計算器u3a,及び最小誤差選択器u4aにより構成されている。
【0015】
なお、図中、i1は上記画像信号(画像データ)Stが入力される動きベクトル検出装置200の第1の入力端子、i2は上記動きベクトル探索中心情報Scが入力される動きベクトル検出装置200の第2の入力端子、o1は上記動きベクトルMVsが出力される上記検出装置200の出力端子である。また、動きベクトル探索中心情報Scは、フレームメモリd8に格納されている参照画面の画像信号Ctと入力された画像信号Stとを比較して動きベクトルを検出するための探索処理を開始する位置を示すものであり、この探索処理の開始位置としては、被処理画面上の対象ブロックと同じ空間位置に対応する参照画面上の位置や、対象ブロック近傍に位置する近傍ブロックの検出済み動きベクトルで示される参照画面上の位置などがよく使われる。例えば、対象ブロック近傍に位置する近傍ブロックとしては、対象ブロックの左隣に位置するブロックが用いられる。
【0016】
次に動作について説明する。
上記画面間動き補償符号化装置1000に、符号化処理の対象となる被処理ブロックに対応する画像信号Stが入力されると、減算器d1にて、該被処理ブロックの画像信号Stと、対応する予測ブロックの画像信号(動き補償データ)Ptとの差分値Dtが計算される。この差分値Dtは、直交変換器d2にて、DCT(離散コサイン変換)等の直交変換処理により周波数成分Ttに変換される。この周波数成分Ttは量子化器d3にて量子化されて、対応する量子化値Qtが出力される。そして、可変長符号化器d4では、この量子化値Qtを可変長符号に変換する可変長符号化処理が行われ、該符号化器d4からは上記被処理ブロックに対応する符号化データEtが出力される。
【0017】
一方、このとき、上記量子化値Qtは、逆量子化器d5にて逆量子化処理により周波数成分IQtに復元され、さらにこの周波数成分IQtは、逆直交変換器d6にて空間領域の画像データ(画素値)ITtに変換される。そして、この画像データITtは、加算器d7にて、上記動き補償データ(予測ブロックに対応する画像信号)Ptと加算されて、被処理ブロックに対応する再生データRtが生成される。この再生データRtは、被処理画面に続く後続画面に対応する画像信号を符号化する際に参照するための参照データとして一時的にフレームメモリd8に格納される。
【0018】
そして、動き検出器d9では、フレームメモリd8に格納されている参照画面に対応する画像信号Ctと、被処理ブロックに対応する画像信号Stとが比較され、参照画面における上記被処理ブロックと同一サイズの所定領域(予測ブロック)の位置情報が、上記被処理ブロックに対応する動きベクトルMVとして導出される。すると、動き補償器d10では、この動きベクトルMVにより示される参照画面上の位置に対応するアドレスAdが生成され、このアドレスAdに基づいて、フレームメモリd8から上記予測ブロックに対応する画像データMtが、被処理ブロックに対応する動き補償データPtとして出力される。
【0019】
続いて、上記動き検出器d9とフレームメモリd8からなる動きベクトル検出装置200の動作について詳しく説明する。
上記動きベクトル検出装置200における動きベクトル生成器u1aでは、該装置の外部から供給されるベクトル探索中心情報Scに基づいて、探索中心近傍の複数の画素位置を示す動きベクトルが候補動きベクトルMVcとして出力される。すると、上記フレームメモリd8では、該候補動きベクトルMVcにより示される参照画面上のブロックに対応する画像信号(動き補償データ)Ctが出力される。上記誤差計算器u3aでは、各候補動きベクトルに対応する動き補償データCtと対象ブロックの画像信号との差分信号(画像誤差データ)Dpが算出される。最小誤差選択器u4aでは、この画像誤差データDpがモニターされており、複数の候補動きベクトルMVcから、該誤差データDpが最小となる候補動きベクトルMVcが選択され、選択された候補動きベクトルが被処理ブロックに対応する動きベクトル(選択動きベクトル)MVsとして出力される。
【0020】
この動きベクトル検出装置200はその構成が簡単なものであるが、動きベクトルの探索範囲、すなわち動きベクトル生成器u1aで生成する候補動きベクトルの数に比例して、動き補償誤差を計算する際の演算量が増加するという欠点がある。
言い換えると、動きの大きい物体を含む画像に対しては、画像空間上の広範な範囲にわたって動きベクトルの探索を行うことが符号化効率の向上につながるため、符号化効率の向上を図る上で、動きベクトル検出装置における演算処理のうちで、演算負荷が最も大きい誤差計算を削減することが重要な課題となってくる。
そこで、上記のような動きベクトル検出装置における誤差計算の演算回数を削減する方式として、階層的動きベクトル検出方式がよく使用される。
【0021】
図13は、このような階層的動きベクトル検出方式の一例である従来の動きベクトル検出法(3ステップ法)を説明するための図である。
この3ステップ法は、第n回目の階層の処理では、第n−1回目の階層の処理において検出した動きベクトルが示す指示位置を探索中心とする、その周辺の8つの近傍位置にて、探索範囲を第n−1回目の階層の処理における探索範囲の1/3に縮小して再帰的に探索を行うというものである。なお、上記8つの近傍位置は、上記指示位置の上方向,下方向,左方向,右方向に位置する4つの近傍位置、及び該指示位置の右上方向,右下方向,左上方向,左下方向に位置する4つの近傍位置である。
【0022】
なお、図13では、○印は参照画面を構成する各画素を表しており、数字の1が書き込まれた○印は、第1回目の階層の処理において探索の対象となる画素(第1探索対象画素)であり、候補動きベクトルが示す候補予測ブロック(動き補償ブロック)の代表位置である。図13に示す参照画面には、この第1探索対象画素が、探索中心となる画素を含めて9個示されている。
【0023】
まず、第1回目の階層の動き検出処理では、画素P0を探索中心として、該画素P0及びその周辺の画素P1a〜P1hの位置により特定される特定ブロックに対応する画像誤差データ(つまり該特定ブロックと被処理ブロックとの間での画像データの誤差)が検出される。ここでは、上記周辺画素P1bが、画像誤差データの最も小さいものとなっている。従って、第2回目の階層の動き検出処理は、この画素P1bを探索中心として行われる。なお、上記周辺画素P1a〜P1hは、上記探索中心を含む、垂直方向,水平方向,及び該水平方向に対して±45度の角度をなす斜め方向と平行な直線上において、上記探索中心となる画素P0から9画素間隔離れて位置している。
【0024】
次に、第2回目の階層の動き検出処理では、上記周辺画素P1bを探索中心として、該画素P1bの周辺の画素P2a〜P2hの位置により特定される特定ブロックに対応する画像誤差データ(つまり該特定ブロックと被処理ブロックとの間での画像データの誤差)が検出される。ここでは、上記周辺画素P2eが、画像誤差データの最も小さいものとなっている。従って、第3回目の階層の動き検出処理は、この画素P2eを検索中心として行われる。なお、上記周辺画素P2a〜P2hは、上記第2回目の階層の動き検出処理における探索中心を含む、垂直方向,水平方向,及び該水平方向に対して±45度の角度をなす斜め方向と平行な直線上において、上記探索中心となる画素P1bから3画素間隔離れて位置している。
【0025】
最後に、第3回目の階層の動き検出処理では、上記周辺画素P2eを探索中心として、該画素P2eの周辺の画素P3a〜P3hの位置により特定される特定ブロックに対応する画像誤差データ(つまり該特定ブロックと被処理ブロックとの間での画像データの誤差)が検出される。ここでは、上記周辺画素P3aが、画像誤差データの最も小さいものとなっている。従って、この画素P3a(斜線で示す○印)を示す動きベクトルが、3ステップ法により検出された被処理ブロックに対応する動きベクトルとされる。なお、上記周辺画素P3a〜P3hは、上記第3回目の階層の動き検出処理における探索中心を含む、垂直方向,水平方向,及び該水平方向に対して±45度の角度をなす斜め方向と平行な直線上において、上記検索中心となる画素P2eから1画素間隔離れて位置している。
【0026】
この3ステップ法は、一般に画像データに関してはほぼ成立する条件下、つまり画像誤差データが最小となる探索位置に近い画素ほど、対応する画像誤差データが小さくなるという条件下では、単純に探索範囲の全ての画素位置(つまり参照画面における全ての画素)について直接画像誤差データを計算して、画像誤差データが最小となる動きベクトルを検出する方式と比べてほとんど差のない精度でもって動きベクトルが検出できるものである。
【0027】
また、図13で示す3ステップ法による動き検出処理では、画像誤差データ(以下単に誤差ともいう。)の計算回数は、第1階層の処理における9回、第2階層の処理における8回、及び第3階層の処理における8回の合計25回であり、単純に探索範囲の全ての画素位置について直接誤差を計算する方法に比べて、誤差の計算回数を大幅に削減できることが明かである。
【0028】
図14は従来の他の動きベクトル検出法を説明するための図である。
この動きベクトル検出法では、1/2画素精度で、誤差(画像誤差データ)の最小となる画素の位置の探索処理が行われる。
【0029】
上記1/2画素精度の探索処理では、参照画面上の隣接する2つの画素の間に、仮想的な画素値を有する補間画素が定義され、この補間画素を含む参照画面上で、画像誤差データが最小となる画素位置を示す動きベクトルの探索が行われる。この探索処理により得られた1/2画素精度の動きベクトルに基づいて、1/2画素以下の高精度な動き補償が行われることとなる。なお、上記補間画素の画素値は、該補間画素の両側に位置する画素の画素値に対する補間演算により求められる。
【0030】
このような1/2画素精度の探索処理は、図11に示す符号化装置における差分器d1の出力信号のエネルギー(振幅レベル)を小さくすることにより符号化効率を向上するために使用される。
【0031】
この1/2画素精度の探索処理では、フレームメモリから参照画面の画素値を読み出す際に、隣接する2つの画素の間に位置する補間画素の仮想的な画素値を補間演算により生成するという新たな処理が必要となる。このため、第1階層の探索処理では、図14の実線の○印で示す画素を対象とする整数画素精度の動き検出処理を行い、第2階層の探索処理では、第1回層の探索処理で検出した画素P’0(図14参照)を探索中心とし、探索の対象となる画素を該画素P’0の周囲にこれと隣接して位置する近傍画素(図14の画素P’1〜P’8)に限定して、誤差が最小となる画素位置が探索される。これにより1/2画素精度の動きベクトルが検出されることとなる。
これらの従来の階層的な動きベクトル探索処理の特徴は、段階的に探索範囲を狭めかつ探索密度を高めながら、各段階に対応する探索範囲内で常に最小誤差となる動きベクトルを選択していくことである。
【0032】
図15は、従来の階層動きベクトル検出装置を説明するためのブロック図である。
この階層動きベクトル検出装置201は、外部から入力される動きベクトル探索中心を示す位置情報(以下、動きベクトル探索中心情報ともいう。)Scに基づいて第1階層の探索処理により動きベクトルMV1sを検出する第1階層動き検出部と、該第1階層の探索処理により得られる動きベクトルMV1sに基づいて、第2階層の探索処理により動きベクトルMV2sを検出する第2階層動き検出部とを有している。
【0033】
ここで、上記第1階層動き検出部は、図12に示す動きベクトル検出装置200と同様、外部からの動きベクトル探索中心情報Scに基づいて第1の候補動きベクトルMV1cを複数生成するMV生成器u1aと、参照画面に対応する画像データを記憶しているフレームメモリu2と、該第1の候補動きベクトルMV1cに基づいて該フレームメモリu2から読みだされた動き補償データ(候補予測ブロックの画像データ)C1tと、入力された対象ブロックの画像データStとの誤差データD1pを算出する誤差計算器u3aと、該誤差データD1pに基づいて、複数の候補動きベクトルMV1cのなかから、誤差データが最小となる候補動きベクトルを第1階層動きベクトルMV1sとして選択する最小誤差選択器u4aとを有している。
【0034】
また、上記第2階層動き検出部は、上記第1階層動きベクトルMV1sが示す画素位置を探索中心として第2の候補動きベクトルMV2cを複数生成するMV生成器u1bと、参照画面に対応する画像データを記憶しているフレームメモリu2と、該第2の候補動きベクトルMV2cに基づいて該フレームメモリu2から読みだされた動き補償データ(候補予測ブロックの画像データ)C2tと、入力された対象ブロックの画像データStとの誤差データD2pを算出する誤差計算器u3bと、該誤差データD2pに基づいて、複数の候補動きベクトルMV2cのなかから、誤差データが最小となる候補動きベクトルを第2階層動きベクトルMV2sとして選択する最小誤差選択器u4bとを有している。この第2階層動き検出部の誤差計算器u3bには、上記第1階層動き検出部の最小誤差選択器u4aから最小誤差データD1pmが供給されるようになっている。このため、誤差計算器u3bでは、第2階層動き検出処理における探索中心に対応する誤差データを求める必要がない。
【0035】
なお、この動きベクトル検出装置201では、フレームメモリu2は、第1階層動き検出部と第2階層動き検出部とによって共用されている。また、図15中、i1は上記対象ブロックの画像信号Stが入力される第1の入力端子、i2は上記動きベクトル探索中心情報Scが入力される第2の入力端子、o1は対象ブロックの動きベクトルMV2sが出力される出力端子である。なお、図15に示すフレームメモリu2は、図11及び図12に示すフレームメモリd8と同一のものである。
【0036】
次に動作について説明する。
図15に示す動きベクトル検出装置201の第1階層動き検出部では、図12に示す動きベクトル検出装置200と全く同一の探索処理が行われて、対象ブロックに対応する動きベクトルが第1階層動きベクトルMV1sとして生成される。
【0037】
そして、第1階層動きベクトルMV1sが動きベクトル検出装置201における第2階層動き検出部に入力されると、該第2階層動き検出部では、第1階層動きベクトルMV1sが示す参照画面上の画素位置を探索中心として、該探索中心の近傍に位置する周辺画素に対応する第2候補動きベクトルMV2cが複数生成される。
【0038】
さらに、誤差計算器u3bでは、フレームメモリu2から読みだされた、第2候補動きベクトルで示される参照画面上の候補予測ブロックに対応する画像データ(動き補償データ)C2tが入力されると、該動き補償データC2tと対象ブロックの画像データStとの誤差データD2pが算出される。
【0039】
最小誤差選択器u4bには、MV生成器u1bにて生成された複数の候補動きベクトルMV2cとともに、各候補動きベクトルMV2cに対応する誤差データD2pが入力され、誤差データが最小となる候補動きベクトルMV2cが第2階層動きベクトルMV2sとして選択されて出力される。
【0040】
なお、動きベクトル生成器u1bでの探索中心(すなわち最小誤差選択器u4aにて選択された動きベクトル)に対応する誤差データD1pmは既に誤差計算器u3aで計算されて最小誤差選択器u4aに通知済みであるから、この最小誤差データD1pmを最小誤差選択器u4aから誤差計算器u3bに通知することで、誤差計算器u3bでは、第2階層動き探索処理における探索中心を示す動きベクトルについては、対応する誤差データを求める演算が省略できる。
【0041】
また、図15では、動きベクトル検出装置201として、2階層の探索処理により対象ブロックに対応する動きベクトルを検出するものを示しているが、3階層の探索処理により対象ブロックに対応する動きベクトルを検出する動きベクトル検出装置の構成は、図12に示す動きベクトル検出装置200において、誤差計算器、最小誤差選択器,及びMV生成器を、さらに1組追加することにより得られることは容易に類推できる。
【0042】
また、従来の動きベクトル検出方法は、図13及び図14を用いて説明した階層的な探索処理を行うものに限らず、動きベクトル探索中心を探索開始位置として、各画素位置毎に探索方向を決定して、動き補償誤差がより小さくなる参照画面上の画素位置を探索するものもある。
図16は、このように動き補償誤差がより小さくなる画素位置を求めて探索位置をベクトル探索中心から順次移動していく動きベクトル検出方法を説明するための図であり、参照画面における画素の配置を示している。なお、図中、Ps0,Psa〜Psiは参照画面上の各画素である。
【0043】
この動きベクトル検出方法は、One at a time と呼ばれており、以下この動きベクトル検出方法の処理フローについて具体的に説明する。
ただし、ここでは、図16に示す各画素Ps0,Psa〜Psiにより特定される参照画面上のブロックと、被処理画面上の被処理ブロックとの間での画像データの誤差(動き補償誤差)SADs0,SADsa〜SADsiに関して、次の式(1)〜(3)が成立しているものとする。
SADs0,SADsa>SADsb ・・・(1)
SADsb,SADsd>SADsc ・・・(2)
SADsc,SADsf〜SADsi>SADse ・・・(3)
この動きベクトル検出方法では、まず、第1のステップでは、参照画面にて、探索中心となる画素Ps0の左右に位置する画素Psa及びPsbに対する探索が行われる。
【0044】
この場合、探索中心画素Ps0の右側の画素Psbに対応する動き補償誤差SADsbが、探索中心画素Ps0及びその左側の画素Psaに対応する動き補償誤差SADs0,SADsaより小さくなっている(式(1)参照)。このため、続く第2のステップでは、上記画素Psbの左右に位置する画素Ps0及びPscに対する探索が行われる。
【0045】
第3のステップでは、上記画素Pscに対応する動き補償誤差SADscが、画素Ps0 及び画素Psbに対応する動き補償誤差SADs0,SADsbより小さくなっているため(式(1),(2)参照)、上記画素Pscの左右に位置する画素Psb及びPsdに対する探索が行われる。
【0046】
第4のステップでは、上記画素Pscに対応する動き補償誤差SADscが、画素Psb及び画素Psdに対応する動き補償誤差SADsb,SADsdより小さくなっているため(式(2)参照)、上記画素Pscの上下に位置する画素Pse及びPsfに対する探索が行われる。
【0047】
第5のステップでは、上記画素Pseに対応する動き補償誤差SADseが、画素Psc及び画素Psfに対応する動き補償誤差SADsc,SADsfより小さくなっているため(式(3)参照)、上記画素Pseの左右に位置する画素Psg及びPshに対する探索が行われる。
【0048】
第6のステップでは、上記画素Pseに対応する動き補償誤差SADseが、画素Psg及び画素Pshに対応する動き補償誤差SADsg,SADshより小さくなっているため(式(3)参照)、上記画素Pseの上下に位置する画素Psi及びPscに対する探索が行われる。そして、この場合、上記画素Pseに対応する動き補償誤差SADseが、画素Psi及び画素Pscに対応する動き補償誤差SADsi,SADscより小さくなっているため(式(3)参照)、上記画素Pseの位置を示す動きベクトルが、被処理ブロックに対する動きベクトルとして決定される。
なお、図16中の画素を示す○印内の番号は、上記第1〜第6の各ステップで新たに探索対象に加えられる画素を示している。例えば、画素Pscを示す○印内の番号は2であり、この番号2は、この画素Pscが第2のステップで新たに探索対象に加えられるものであることを示している。
【0049】
【発明が解決しようとする課題】
以上説明したように、従来の動きベクトル検出処理では、階層的な動きベクトルの探索あるいはOne at atime探索等の効率的な動きベクトル検索によって、画像誤差データの計算回数が大幅に削減されているが、近年、機器の小型化や省エネルギー化等の要求がますます厳しくなるに従い、動きベクトル検出処理を、誤差データの計算回数が更に少ないものとする必要性が出てきた。
【0050】
上記のような省エネルギータイプの小型の画像表示用機器といった用途では、画像信号の符号化効率(一定ビットレートでの画質向上)が重要であることは言うまでもないが、それ以上に動きベクトル検出といった演算量の多い処理における計算回数の削減が要求されるといった課題がある。
【0051】
本発明は、上記のような課題に鑑みてなされたものであり、画像信号の符号化効率を殆ど劣化させずに、演算量の多い動きベクトル検出処理における計算回数を削減することができ、これにより消費電力を低く抑えることができる動きベクトル検出方法及び動きベクトル検出装置,並びに該動きベクトル検出方法により動きベクトルを検出する処理をコンピュータにより行わせるためのプログラムを格納したデータ記憶媒体を得ることを目的とする。
【0052】
【課題を解決するための手段】
この発明(請求項1)に係る動きベクトル検出方法は、被処理画面に対応する画像データを処理する単位である、所定数の画素からなるブロック毎に、処理対象となる被処理ブロックに対応する予測ブロックの、参照画面における位置を一定条件下で探索して、上記予測ブロックの位置を示す情報を、被処理ブロックに対応する動きベクトルとして検出する動きベクトル検出処理を含む動きベクトル検出方法であって、上記予測ブロックの位置の探索を開始する位置である動きベクトル探索中心に対応するブロックと、上記処理対象となる被処理ブロックとの間での画像データの誤差を、上記動きベクトル探索中心に対応する動き補償誤差として算出する算出処理と、上記被処理ブロックの近傍に位置する近傍ブロックと、これに対応する予測ブロックとの間での画像データの誤差である、近傍ブロックに対応する動き補償誤差を、上記動きベクトル探索中心に対応する動き補償誤差と比較する比較処理とを含み、上記両動き補償誤差の比較結果に応じて、上記動きベクトル探索中心を示す位置情報を上記被処理ブロックに対応する動きベクトルとして出力するか、あるいは上記動きベクトル検出処理を上記動きベクトル探索中心を探索開始位置として行って得られる動きベクトルを被処理ブロックに対応する動きベクトルとして出力するかを切り替えるものである。
【0053】
この発明(請求項2)は、請求項1記載の動きベクトル検出方法において、上記動きベクトル探索中心に対応する動き補償誤差が上記近傍ブロックに対応する動き補償誤差より小さいとき、上記動きベクトル探索中心を示す位置情報をそのまま被処理ブロックに対応する動きベクトルとして出力するものである。
【0054】
この発明(請求項3)は、請求項1記載の動きベクトル検出方法において、上記動きベクトル探索中心に対応する動き補償誤差が上記近傍ブロックに対応する動き補償誤差より小さく、かつ該動きベクトル探索中心に対応する動き補償誤差が所定値未満であるとき、上記動きベクトル探索中心を示す位置情報をそのまま被処理ブロックに対応する動きベクトルとして出力するものである。
【0055】
この発明(請求項4)は、請求項3記載の動きベクトル検出方法において、外部から動き検出指令信号が入力されたとき、上記近傍ブロックに対応する動き補償誤差及び上記動きベクトル探索中心に対応する動き補償誤差の大小関係に拘わらず、上記動きベクトル検出処理を上記動きベクトル探索中心を探索開始位置として行って得られる動きベクトルを、被処理ブロックに対応する動きベクトルとして出力するものである。
【0056】
この発明(請求項5)は、請求項1記載の動きベクトル検出方法において、上記近傍ブロックに対応する動き補償誤差と、上記動きベクトル探索中心に対応する動き補償誤差との差分の大きさが所定値未満であるとき、上記動きベクトル探索中心を示す位置情報をそのまま被処理ブロックに対応する動きベクトルとして出力するものである。
【0057】
この発明(請求項6)に係る動きベクトル検出方法であって、被処理画面に対応する画像データを処理する単位である、所定数の画素からなるブロック毎に、処理対象となる被処理ブロックに対応する予測ブロックの、参照画面における位置を一定条件下で探索して、上記予測ブロックの位置を示す情報を、被処理ブロックに対応する動きベクトルとして検出する動きベクトル検出方法であって、上記参照画面上に設定された第1の探索範囲にて上記予測ブロックの位置を探索して、被処理ブロックに対応する第1の候補動きベクトルにより特定される参照画面上のブロックと、被処理画面上の被処理ブロックとの間での画像データの誤差である第1の動き補償誤差を算出する処理と、上記第1の候補動きベクトルが示す画素位置の近傍に位置する上記参照画面上の第2の探索範囲にて、上記予測ブロックの位置を探索して、被処理ブロックに対応する第2の候補動きベクトルにより特定される参照画面上のブロックと、被処理画面上の被処理ブロックとの間での画像データの誤差である第2の動き補償誤差を算出する処理と、上記第1の候補動きベクトルと第2の候補動きベクトルに基づいて設定された上記参照画面上の第3の探索範囲にて、上記予測ブロックの位置を探索して、被処理ブロックに対応する第3の候補動きベクトルにより特定される上記参照画面上のブロックと、被処理画面上の被処理ブロックとの間での画像データの誤差である第3の動き補償誤差を算出する処理と、上記第1,第2,第3の動き補償誤差を比較して、その比較結果に応じて、上記第1,第2,第3の候補動きベクトルのうちの1つを、被処理ブロックに対応する動きベクトルとして選択する処理とを含むものである。
【0058】
この発明(請求項7)は、請求項6記載の動きベクトル検出方法において、上記第3の探索範囲を、上記参照画面上にて第1および第2の探索範囲以外の領域に設定し、上記第3の探索範囲における上記予測ブロックの位置の探索を、上記第1および第2の動き補償誤差を参照せずに行うものである。
【0059】
この発明(請求項8)は、請求項6記載の動きベクトル検出方法において、上記第1の探索範囲では、上記予測ブロックの位置を探索する処理として、画素単位の探索処理を行い、上記第3の探索範囲では、上記予測ブロックの位置を探索する処理を、上記参照画面における画素間の仮想画素に対応する画素値を補間して、半画素以上の精度で行うものである。
【0060】
この発明(請求項9)は、請求項6記載の動きベクトル検出方法において、上記第2の探索範囲では、上記予測ブロックの位置を、上記参照画面における垂直もしくは水平方向のみに沿って探索し、上記第3の探索範囲では、上記予測ブロックの位置を、該第2の探索範囲における探索方向以外の方向に沿って探索するものである。
【0061】
この発明(請求項10)に動きベクトル検出装置は、被処理画面に対応する画像データを処理する単位である、所定数の画素からなるブロック毎に、処理対象となる被処理ブロックに対応する予測ブロックの、参照画面における位置を一定条件下で探索して、上記予測ブロックの位置を示す情報を、被処理ブロックに対応する動きベクトルとして検出する動きベクトル検出処理を行う動きベクトル検出装置であって、上記予測ブロックの位置の探索を開始する位置である動きベクトル探索中心に対応するブロックと、上記処理対象となる被処理ブロックとの間での画像データの誤差を、上記動きベクトル探索中心に対応する動き補償誤差として算出する誤差計算手段と、上記被処理ブロックの近傍に位置する近傍ブロックと、これに対応する予測ブロックとの間での画像データの誤差である近傍ブロックに対応する動き補償誤差を、上記動きベクトル探索中心に対応する動き補償誤差と比較する比較手段と、上記両動き補償誤差の比較結果に応じて、上記被処理ブロックに対する動きベクトル検出処理を行うべきか否かを判別する判別手段と、上記判別手段により動きベクトル検出処理を行うべきと判別されたときのみ、上記動きベクトル探索中心を探索開始位置として上記動きベクトル検出処理を行って動きベクトルを検出する動き検出手段と、上記判別手段にて動きベクトル検出処理を行うべきと判別されたとき、上記動き検出手段により検出された動きベクトルを被処理ブロックに対応する動きベクトルとして出力し、上記判別手段にて動きベクトル検出処理を行うべきではないと判別されたとき、上記動きベクトル探索中心を示す位置情報をそのまま被処理ブロックに対応する動きベクトルとして出力する選択手段と、上記選択手段から出力される動きベクトルに対応する動き補償誤差を、他のブロックに対する動きベクトル検出処理を行うか否かを判定するためのデータとして一時的に格納するメモリとを備えたものである。
【0062】
この発明(請求項11)に係る動きベクトル検出装置は、被処理画面に対応する画像データを処理する単位である、所定数の画素からなるブロック毎に、処理対象となる被処理ブロックに対応する予測ブロックの、参照画面における位置を一定条件下で探索して、上記予測ブロックの位置を示す情報を、被処理ブロックに対応する動きベクトルとして検出する動きベクトル検出装置であって、上記参照画面上に設定された第1の探索範囲にて上記予測ブロックの位置を探索して、被処理ブロックに対応する第1の候補動きベクトルにより特定される参照画面上のブロックと、被処理画面上の被処理ブロックとの間での画像データの誤差である第1の動き補償誤差を算出する第1の動き検出手段と、上記第1の候補動きベクトルが示す画素位置の近傍に位置する上記参照画面上の第2の探索範囲にて、上記予測ブロックの位置を探索して、被処理ブロックに対応する第2の候補動きベクトルにより特定される参照画面上のブロックと、被処理ブロックとの間での画像データの誤差である第2の動き補償誤差を算出する第2の動き検出手段と、上記第1の候補動きベクトルと第2の候補動きベクトルに基づいて設定された上記参照画面上の第3の探索範囲にて上記予測ブロックの位置を探索して、被処理ブロックに対応する第3の候補動きベクトルにより特定される上記参照画面上のブロックと、被処理ブロックとの間での画像データの誤差である第3の動き補償誤差を算出する第3の動き検出手段と、上記第1,第2,第3の動き補償誤差を比較して、その比較結果に応じて、上記第1,第2,第3の候補動きベクトルのうちの1つを、被処理ブロックに対応する動きベクトルとして選択する選択手段とを備えたものである。
【0063】
この発明(請求項12)に係るデータ記憶媒体は、プログラムとして、コンピュータに、請求項1記載の動きベクトル検出方法により被処理ブロックに対応する動きベクトルを検出する処理を行わせるためのプログラムを格納したものである。
【0064】
この発明(請求項13)に係るデータ記憶媒体は、プログラムとして、コンピュータに、請求項6記載の動きベクトル検出方法により被処理ブロックに対応する動きベクトルを検出する処理を行わせるためのプログラムを格納したものである。
【0065】
【発明の実施の形態】
以下、本発明の実施の形態について説明する。
(実施の形態1)
最初に本発明の実施の形態1の基本的な考え方を説明する。
画像信号は一般に局所的な画素値の相関が強いため、被処理画面における対象ブロックとこれに隣接して位置する近傍ブロックの間では、動きベクトルや動き補償誤差はほぼ等しいものとなっている。
その結果、画素値相関が強い場合には、近傍ブロックの動きベクトルから、対象ブロックに対する動きベクトルを求めるための動きベクトル探索中心情報を予測生成し、その予測生成した動きベクトル探索中心情報を対象ブロックに対応する動きベクトルとしても、対象ブロックの動きベクトルの検出精度は殆ど劣化しない。
【0066】
しかしながら、対象ブロックと近傍ブロックとがそれぞれ、異なる動きをする物体の画素を含む場合は、対象ブロックと近傍ブロックとの間での画素値の相関が失われ、動きベクトルや動き補償誤差も、対象ブロックと近傍ブロックとの間では大きく異なるものとなる。
【0067】
そこで、近傍ブロックの動きベクトルから対象ブロックの動きベクトル探索中心情報を予測生成し、該動きベクトル探索中心に対応する動き補償誤差を、近傍ブロックに対応する動き補償誤差と比較し、その比較結果に応じて、動きベクトル検出処理を切り替えることにより、対象ブロックの動きベクトルの検出精度をあまり損なうことなく、対象ブロックに対する動き検出処理における演算量を削減することができる。
具体的には、上記動きベクトル探索中心に対する動き補償誤差と近傍ブロックに対する動き補償誤差の比較結果に応じて、該両動き補償誤差の差分が小さい場合は、対象ブロックに対応する動きベクトル探索中心情報を対象ブロックに対する動きベクトルとして用いる。一方、上記両動き補償誤差の差分が大きい場合は、対象ブロックの動きベクトル探索中心を探索開始位置として動きベクトル検出処理を行って得られる動きベクトルを、対象ブロックに対する動きベクトルとして用いる。
【0068】
また、対象ブロックの動きベクトル探索中心に対する動き補償誤差が、近傍ブロックの動き補償誤差より小さい場合には、近傍ブロックと対象ブロックの間での画素値相関が低く、このため近傍ブロックから予測した動きベクトル探索中心は対象ブロックの最適な動きベクトルとは異なる可能性があるが、その反面、動きベクトル探索中心を示す位置情報を対象ブロックの動きベクトルとして選出しても対象ブロックの動き補償誤差が小さいことから実用上問題無いとみなすことができる。
【0069】
そこで、両者の動き補償誤差の差分の大きさが所定値未満の場合に動きベクトル探索中心を示す位置情報を対象ブロックの動きベクトルとする判定結果(動き検出の打ち切り判定)を出力する代わりに、対象ブロックの検索中心に対する動き補償誤差が近傍ブロックの動き補償誤差より小さい場合に動きベクトル探索中心を示す位置情報を対象ブロックの動きベクトルとすること(動き検出の打ち切り判定)を示す判定信号を出力するようにしてもよい。
【0070】
図1は本発明の実施の形態1による動きベクトル検出装置を説明するためのブロック図である。
この実施の形態1の動きベクトル検出装置101は、対象ブロックに対応する動きベクトルの検出を2階層の探索処理により行うものであるが、この装置では、第1階層の探索処理は外部から入力される動きベクトル探索中心情報Scに対する動き補償誤差を計算するものである。このため、この動き検出装置101は、図15に示す従来の階層動きベクトル検出装置201における動きベクトル生成器u1a及び最小誤差選択器u4aは有していない。
【0071】
この実施の形態1の動きベクトル検出装置101は、参照画面の画像データが格納されるフレームメモリu2と、外部から動きベクトル探索中心を示す情報Scにより示される参照画面上の特定ブロックの画像データと、対象ブロックの画像データとの誤差を算出する誤差計算器u3aとを有している。この動きベクトル検出装置101では、上記フレームメモリu2と誤差計算器u3aにより第1階層動き検出部が構成されている。
【0072】
また、この動きベクトル検出装置101は、上記外部からの動きベクトル探索中心情報Scが示す画素位置を探索中心として候補動きベクトルMVcを複数生成するMV生成器u1と、上記候補動きベクトルMVcに基づいて上記フレームメモリu2から読みだされた動き補償データ(第2の動き補償データ)C2tと、入力された対象ブロックの画像データStとの誤差データD2pを算出する誤差計算器u3bと、該誤差データD2pに基づいて、複数の候補動きベクトルMVcのなかから、最小誤差に対応する候補動きベクトルを第2階層動きベクトルMVsとして選択する最小誤差選択器u4とを有している。この動きベクトル検出装置101では、上記フレームメモリu2,MV生成器u1,誤差計算器u3b,最小誤差選択器u4により第2階層動き検出部が構成されている。
【0073】
さらに、上記動きベクトル検出装置101は、制御信号Dcに基づいて、上記誤差計算器u3aから出力される誤差データD1pと、上記最小誤差選択器u4から出力される最小誤差データDmpの一方を選択し、選択したデータを選択誤差データDspとして出力する第1の選択器u6と、上記制御信号Dcに基づいて、外部から入力された動きベクトル探索中心情報Scと、上記最小誤差選択器u4から出力される第2階層動きベクトルMVsとの一方を選択し、選択した動きベクトルを対象ブロックの動きベクトルMVとして出力する第2の選択器u7とを有している。
【0074】
ここで、上記選択器u6は、その第1の入力ノード6aには上記最小誤差選択器u4からの最小誤差データDmpが入力され、その第2の入力ノード6bには誤差計算器u3aから出力される誤差データD1pが入力され、これらの一方のデータが選択誤差データDspとしてその出力ノード6cから出力されるようになっている。また、上記選択器u7は、その第1の入力ノード7aには上記最小誤差選択器u4からの第2階層動きベクトルMVsが入力され、その第2の入力ノード7bには外部からの動きベクトル探索中心情報Scが入力され、これらの一方のデータが対象ブロックの動きベクトルMVとしてその出力ノード7cから出力されるようになっている。
【0075】
また、上記動きベクトル検出装置101は、上記選択誤差データDspを一時的に格納する一時格納メモリu8と、一時メモリu8から読み出された近傍ブロックの動き補償誤差Drpと、誤差計算器u3aで計算した動きベクトル探索中心に対応する動き補償誤差D1pとを比較し、上記第2階層動き検出部による動きベクトルの探索処理を打切るかどうかを示す打ち切り判定結果を上記制御信号Dcとして出力する打切判定器u5aとを有している。
その他の構成は従来の動きベクトル検出装置201と同様である。
【0076】
図2(a)は、図1に示す動きベクトル検出装置101を構成する打ち切り判定器u5aの具体的な構成を示す図である。
この打ち切り判定器u5aは、近傍ブロックの動き補償誤差Drpと、対象ブロックの動きベクトル探索中心Scに対応する動き補償誤差(図1では誤差計算器u3aの出力に相当)D1pとを比較する比較器c1aからなり、該両動き補償誤差の大小関係に応じて打ち切り判定結果を示す判定信号Dcを出力する構成となっている。なお、図2(a)中、i10,i11はそれぞれ上記判定器u5aの入力端子で、入力端子i10には近傍ブロックの動き補償誤差Drpが、入力端子i11には動きベクトル探索中心Scに対応する動き補償誤差D1pが入力される。また、o10は上記判定器u5aの出力端子であり、この出力端子o10からは上記判定信号Dcが出力される。
【0077】
つまり、この打ち切り判定器u5aは、動きベクトル探索中心に対する動き補償誤差D1pが近傍ブロックに対する動き補償誤差Drpにより小さいときには、第2階層目の探索処理を打ち切ることを示す判定信号Dcを出力し、動きベクトル探索中心に対する動き補償誤差D1pが近傍ブロックに対する動き補償誤差Drp以上であるときには、第2階層目の探索処理を行うことを示す判定信号Dcを出力する構成となっている。
【0078】
そして、本実施の形態1の動きベクトル検出装置101では、この第2階層目の探索処理を打ち切ることを示す判定信号Dcが上記打ち切り判定器u5aから出力されたときには、上記誤差計算器u3b,最小誤差選択器u4,及びMV生成器u1での演算処理が停止され、上記選択器u6では、誤差計算器u3aからの誤差データD1pが選択され、上記選択器u7では、外部から入力された動きベクトル探索中心情報Scが選択されるようになっている。一方、上記第2階層目の探索処理を行うことを示す判定信号Dcが上記打ち切り判定器u5aから出力されたときには、誤差計算器u3b,最小誤差選択器u4,及びMV生成器u1での演算処理が行われ、上記選択器u6では、最小誤差計算器u4からの最小誤差データDmpが選択され、上記選択器u7では、最小誤差計算器u4からの第2階層動きベクトルMVsが選択されるようになっている。
【0079】
次に作用効果について説明する。
以下、図1の動きベクトル検出装置101の動作について説明する。
一時メモリu8には、処理対象となる対象ブロックの1つ前に処理された近傍ブロックに対応する動き補償誤差(誤差データ)Drpが格納されており、打切り判定器u5aでは、一時メモリu8から読み出した近傍ブロックの動き補償誤差Drpと、誤差計算器u3aにて計算された、対象ブロックの動きベクトル探索中心情報Scに対応する動き補償誤差D1pとの比較が行われ、第2階層の動きベクトル探索処理を打切るかどうかを示す打ち切り判定結果が判定信号Dcとして出力される。
【0080】
具体的には、この打ち切り判定器u5aでは、動きベクトル探索中心に対する動き補償誤差D1pが近傍ブロックに対する動き補償誤差Drpより小さいときには、第2階層目の探索処理を打ち切ることを示す判定信号Dcが出力される。一方、動きベクトル探索中心に対する動き補償誤差D1pが近傍ブロックに対する動き補償誤差Drp以上であるときには、第2階層目の探索処理を打ち切らないことを示す判定信号Dcが出力される。
【0081】
上記打ち切り判定器u5aにて第2階層目の探索処理を打切ると判断された場合は、動きベクトル生成器u1、誤差計算器u3bおよび最小誤差選択器u4には上記判定信号Dcにより演算処理が不要であることが通知され、上記誤差計算器u3b,最小誤差選択器u4,及びMV生成器u1では、第2階層目の探索処理に対する演算処理が行われない。一方、上記打ち切り判定器u5aにて第2階層目の探索処理を打切らないと判断された場合は、動きベクトル生成器u1、誤差計算器u3bおよび最小誤差選択器u4には上記判定信号Dcにより演算処理が必要であることが通知され、上記誤差計算器u3b,最小誤差選択器u4,及びMV生成器u1では、第2階層目の探索処理に対する演算処理が行われることとなる。
【0082】
また、このとき選択器u7では、判定信号Dcが第2階層目の探索処理の打切りを示す場合は、動きベクトル探索中心情報Scが選択されて対象ブロックの動きベクトルMVとして出力される。一方、上記判定信号Dcが第2階層目の探索処理を打切らないことを示す場合は、最小誤差選択器u4にて選択された動きベクトルMVsが対象ブロックの動きベクトルMVとして出力される。
【0083】
同様に、選択器u6では、上記判定信号Dcが第2階層目の探索処理の打切りを示す場合は、動きベクトル探索中心情報Scに対応する動き補償誤差D1pが選択されて一時メモリu8に出力される。一方、上記判定信号Dcが第2階層目の探索処理を打切らないことを示す場合は、最小誤差選択器u4にて選択された動きベクトルMVsに対応する動き補償誤差Dmpが一時メモリu8に出力される。
【0084】
このような構成の実施の形態1では、打ち切り判定器u5aにて、近傍ブロックの検出済み動きベクトルに対応する動き補償誤差Drpを参照して、第2階層の動き探索を行っても符号化効率が向上しない場合を判定するので、不要な2階層目の動き探索処理を中止することができ、これにより動きベクトル検出処理における誤差計算回数を削減することができる。
【0085】
また、上記打ち切り判定器u5aでは、対象ブロックの動きベクトル探索中心に対する動き補償誤差D1pが、近傍ブロックの動き補償誤差Drpより小さい場合に、動きベクトル探索中心情報Scを対象ブロックの動きベクトルとして選出するようにしており、この場合、近傍ブロックと対象ブロックの画素値相関が低く、近傍ブロックから予測した動きベクトル探索中心は対象ブロックの最適な動きベクトルとは異なる可能性があるが、動きベクトル探索中心に対する動き補償誤差D1pが小さいことから実用上問題無いとみなすことができる。
【0086】
なお、上記実施の形態1では、第2階層目の探索処理を打ち切るか否かの判定を、対象ブロックの動きベクトル探索中心に対する動き補償誤差D1pと、近傍ブロックに対する動き補償誤差Drpとの大小関係に応じて行っているが、動き補償誤差D1pと動き補償誤差Drpの差分の大きさが、所定値未満の場合に第2階層目の検索処理を打ち切り、該差分が所定値以上である場合には、第2階層目の検索処理を打ち切らないようにしてもよい。
【0087】
図2(b)は、このような構成の打ち切り判定器u51aの構成を示している。
この打ち切り判定器u51aは、上記所定の基準値Dcpを発生する基準値発生器c1bと、動き補償誤差D1pと動き補償誤差Drpの差分の大きさと、該所定の基準値Dcpとを比較して判定信号Dcを出力する比較判定器c51aとを有している。そして、この比較判定器c51aは、上記差分の大きさが、所定値未満の場合に第2階層目の探索処理を打ち切ることを示す判定信号Dcを出力し、該差分が所定値以上である場合には、第2階層目の探索処理を打ち切らないことを示す判定信号Dcを出力するよう構成されている。
【0088】
(実施の形態2)
図3は本発明の実施の形態2による動きベクトル検出装置を説明するためのブロック図である。
この実施の形態2の動きベクトル検出装置102は、上記実施の形態1の動きベクトル検出装置における打ち切り判定器u5aに代えて、近傍ブロックの検出済動きベクトルに対応する動き補償誤差Drpと対象ブロックの動きベクトル探索中心に対応する動き補償誤差D1pとの大小関係、及び外部から入力される閾値Thに基づいて、第2階層目の動き探索を打ち切るか否かを示す判定信号Dcbを出力する打ち切り判定器u5bを備えたものである。そしてこの動きベクトル検出装置102のその他の構成は、実施の形態1の動きベクトル検出装置101と同一である。なお、図3中、i3は、上記閾値Thが入力される動きベクトル検出装置102の第3の入力端子である。
【0089】
図4は、図3に示す動きベクトル検出装置102を構成する打ち切り判定器u5bの具体的な構成を示す図である。
上記打ち切り判定器u5bは、一時メモリu8から読み出した近傍ブロックに対応する動き補償誤差Drpと、誤差計算器u3aで計算した動きベクトル探索中心情報Scに対応する動き補償誤差D1pとの比較を行う第1の比較器c2aと、外部から入力された閾値Thと動きベクトル探索中心情報Scに対応する動き補償誤差D1pとの比較を行う第2の比較器c2bとから構成されている。
【0090】
ここで、上記閾値Thは、画面間動き補償符号化装置から出力される符号化データのビットレートと上記動きベクトル検出装置での動き補償誤差の演算回数とによって決まる、対象ブロックに対応する動き補償誤差の許容値である。また、上記第1の比較器c2aは、動きベクトル探索中心に対する動き補償誤差D1pが近傍ブロックに対する動き補償誤差Drpより小さいときには、第2階層目の探索処理を打ち切ることを示す判定信号Dcaを出力し、動きベクトル探索中心に対する動き補償誤差D1pが近傍ブロックに対する動き補償誤差Drp以上であるときには、第2階層目の探索処理を行うことを示す判定信号Dcaを出力する構成となっている。また、上記第2の比較器c2bは、動きベクトル探索中心に対する動き補償誤差D1pが上記閾値Th未満であれば、上記第1の比較器c2aから出力される判定信号Dcaをそのまま判定信号Dcbとして出力し、動きベクトル探索中心に対する動き補償誤差D1pが上記閾値Th以上であれば、上記第1の比較器c2aからの判定信号Dcaに拘わらず、第2階層目の探索処理を打ち切らないこと(つまり第2階層目の探索処理を行うこと)を示す判定信号Dcbを出力する構成となっている。
なお、図4中、i12は、上記動きベクトル検出装置102の外部からの閾値Thが入力される打切判定器u5bの第3の入力端子である。
【0091】
次に作用効果について説明する。
まず、簡単に実施の形態2の基本原理について説明する。
上記実施の形態1では、単純に、近傍ブロックの検出済み動きベクトルに対応する動き補償誤差Drpと、対象ブロックの動きベクトル探索中心に対応する動き補償誤差D1pを比較して、打ち切り判定結果を示す判定信号Dcを生成するようにしているが、近傍のブロックに対する動き検出の精度が悪く、近傍ブロックに対応する動き補償誤差が大きなものとなった場合は、対象ブロックに対する動き補償を動きベクトル探索中心情報Scに基づいて行って得られる動き補償誤差が大きくても、第2回層目の動き検出処理が打ち切られることとなり、精度の悪い動きベクトル探索中心情報Scが対象ブロックの動きベクトルMVとして出力されてしまう。
【0092】
そこで、例えば、画面間動き補償符号化装置から出力される符号化データのビットレートと上記動きベクトル検出装置での動き補償誤差の演算回数とによって決まる動き補償誤差の許容値を、閾値Thとして上記打ち切り判定器u5bに与えることにより、対象ブロックに対する動き補償を動きベクトル探索中心情報Scに基づいて行って得られる動き補償誤差が上記閾値Thより大きい場合には、第2回層目の動き検出処理の打ち切りを中止するようにすることができる。
【0093】
次に動作について説明する。
本実施の形態2の動きベクトル検出装置102では、打ち切り判定器u5b以外の動作は、上記実施の形態1の動きベクトル検出装置101の動作と同一であるため、以下は打ち切り判定器u5bの動作についてのみ説明する。
【0094】
打ち切り判定器u5bでは、一時メモリu8から読み出された近傍ブロックに対応する動き補償誤差Drpと、誤差計算器u3aにて計算された動きベクトル探索中心に対応する動き補償誤差D1pとの比較が行われ、さらに外部から入力された閾値Thと動きベクトル探索中心情報Scに対応する動き補償誤差D1pとの比較が行われる。
【0095】
そして、打ち切り判定器u5bでは、上記各比較器c2a,c2bでの比較結果に基づいて、第2階層目の動き検出を打ち切るか否かを示す打ち切り判定信号Dcbが出力される。
打切りと判断された場合は、上記判定信号Dcbにより、動きベクトル生成器u1、誤差計算器u3bおよび最小誤差選択器u4に処理が不要であることが通知される。
【0096】
以下、上記打ち切り判定器u5bの具体的な動作について説明する。
まず、上記打ち切り判定器u5bでは、上記実施の形態1の打ち切り判定器u5aと同様に、近傍ブロックに対応する動き補償誤差Drpと対象ブロックの動きベクトル探索中心に対応する動き補償誤差D1pとが比較器c2aにて比較される。そして、動きベクトル探索中心に対する動き補償誤差D1pが近傍ブロックに対する動き補償誤差Drpより小さいときには、第2階層目の探索処理を打ち切ることを示す判定信号Dcaが上記比較器c2aから出力される。一方、動きベクトル探索中心に対する動き補償誤差D1pが近傍ブロックに対する動き補償誤差Drp以上であるときには、第2階層目の探索処理を打ち切らないことを示す判定信号Dcaが上記比較器c2aから出力される。
【0097】
また、このとき比較器c2bでは、対象ブロックの動きベクトル探索中心に対応する動き補償誤差D1pが上記閾値Thと比較され、この動き補償誤差D1pが閾値Th未満であれば、比較器c2aの出力Dcaがそのまま打ち切り判定信号Dcbとして出力され、この動き補償誤差D1pが閾値Th以上であれば、上記比較器c2aの判定出力Dcaに拘わらず、2階層目の動き探索処理を実施する(即ち第2階層目の探索処理を打切りらない)ことを示す判定信号Dcbが出力される。
【0098】
このような構成の実施の形態2では、打切り判定器u5bにて外部から入力される閾値Thと動きベクトル探索中心情報Scに基づく動き補償誤差D1pを比較し、対象ブロックに対する動き補償を動きベクトル探索中心情報Scに基づいて行って得られる動き補償誤差が上記閾値より大きい場合には、必ず第2階層目の動き探索処理を行うようにしたので、動き検出精度を向上することができる。
【0099】
なお、実施の形態2では、上記打ち切り判定器u5bにおける比較器c2aを、対象ブロックの動きベクトル探索中心に対する動き補償誤差D1pが近傍ブロックの動き補償誤差Drpより小さいとき、第2階層目の検出処理を打ち切ることを示す判定信号Dcaを出力し、対象ブロックの動きベクトル探索中心に対する動き補償誤差D1pが近傍ブロックの動き補償誤差Drp以上であるとき、第2階層目の検出処理を行うことを示す判定信号Dcaを出力する構成としているが、この比較器c2aは、図2(b)に示す比較器c51aと同様、動き補償誤差D1pと動き補償誤差Drpの差分の大きさが、所定の基準値Dcp未満であるときには、第2階層目の探索処理を打ち切ることを示す判定信号Dcaを出力し、該差分が所定値Dcp以上であるときには、第2階層目の探索処理を打ち切らないことを示す判定信号Dcaを出力する構成としてもよい。
【0100】
(実施の形態3)
図5は本発明の実施の形態3による動きベクトル検出装置を説明するためのブロック図である。
この実施の形態3の動きベクトル検出装置103は、上記実施の形態2の動きベクトル検出装置における打ち切り判定器u5bに代えて、近傍ブロックの検出済動きベクトルに対応する動き補償誤差Drpと対象ブロックの動きベクトル探索中心に対応する動き補償誤差D1pとの大小関係、外部から入力される閾値Th、及び2階層目動き検出指令信号Cmに基づいて、第2階層目の動き探索を打ち切るか否かを示す判定信号Dcfを出力する打ち切り判定器u5cを備えたものであり、その他の構成は、実施の形態2の動きベクトル検出装置102と同一である。なお、図5中、i4は、上記2階層目動き検出指令信号Cmが入力される動きベクトル検出装置103の第4の入力端子である。
【0101】
また、図6は図5に示す動きベクトル検出装置103を構成する打ち切り判定器u5cの具体的な構成を示す図である。
この打ち切り判定器u5cは、実施の形態2の打ち切り判定器u5bにおける比較器c2a,c2bと同一構成の比較器c3a,c3bに加えて、打ち切り禁止信号Fcを発生する信号発生器c3cと、外部から入力される2階層目動き検出指令信号Cmに基づいて、上記第2の比較器c3bの出力Dcb及び上記打ち切り禁止信号Fcの一方を選択する選択器c3とを有している。
【0102】
ここで、上記選択器c3は、外部から上記2階層目動き検出指令信号Cmが入力されているときには、上記打ち切り禁止信号Fcを選択し、上記2階層目動き検出指令信号Cmが入力されていないときは、上記第2の比較器c3bの出力Dcbを選択する構成となっている。また、上記第2階層目動き検出指令信号Cmを出力する、動きベクトル検出装置103外部の機器としては、例えば、対象ブロックや近傍ブロックに対する符号化モードを判定する画面内/画面間符号化モード判定器などが挙げられる。
【0103】
次に作用効果について説明する。
まず簡単に実施の形態3の基本原理について説明する。
対象ブロック近傍に位置する近傍ブロックが、動きベクトルを有さないブロック,つまり被処理画面における最初に処理されるブロックや画面端のブロックである場合や、近傍ブロックが画面内符号化処理が施されたイントラブロックである場合では、対象ブロックの近傍に位置するブロックの動きベクトルから予測生成した動きベクトル探索中心情報Scはその信頼性が低いものであると考えられる。なお、近傍ブロックが画面内符号化処理が施されたイントラブロックである場合は、対象ブロックに対する動き補償誤差が大きく、対象ブロックの動きベクトルは信頼性が無いものであることが多い。
【0104】
そこで、このような状況では、動きベクトル検出装置103外部の画面内/画面間符号化モード判定器など等の機器からの第2階層目動き検出指令信号Cmにより動きベクトル探索中心Scの信頼性が低いことを打ち切り判定器u5cに指令し、第2階層目動き検出を実施することを示す判定信号Dcfを打切り判定器u5cが出力するようにすることにより、動き検出の精度をさらに向上することができる。
【0105】
次に動作について説明する。
本実施の形態3の動きベクトル検出装置103では、上記打ち切り判定器u5c以外の動作は、全て図3に示す実施の形態2の動きベクトル検出装置102と同一であるので、以下は打ち切り判定器u5cの動作についてのみ説明する。
この図6に示す打ち切り判定器u5cでは、まず、図4に示す打ち切り判定器u5bと同様に、近傍ブロックに対応する動き補償誤差Drpと対象ブロックの動きベクトル探索中心に対応する動き補償誤差D1pとの比較が比較器c3aにて行われ、さらに外部から入力された閾値Thと、動きベクトル探索中心に対応する動き補償誤差D1pとの比較が比較器c3bにて行われる。
【0106】
そして、打ち切り判定器u5cでは、上記各比較器c3a,c3bでの比較結果、及び2階層目動き検出指令信号Cmが入力されているか否かに基づいて、第2階層目の動きベクトル探索を打ち切るか否かを示す打ち切り判定信号Dcfが出力される。打切りと判断された場合は、上記判定信号Dcfにより、動きベクトル生成器u1、誤差計算器u3bおよび最小誤差選択器u4に処理が不要であることが通知される。
【0107】
以下、上記打ち切り判定器u5cの具体的な動作について説明する。
まず、上記打ち切り判定器u5cでは、上記実施の形態2の打ち切り判定器u5aと同様に、近傍ブロックに対応する動き補償誤差Drpと対象ブロックの動きベクトル探索中心に対応する動き補償誤差D1pとが比較器c3aにて比較される。そして、動きベクトル探索中心に対する動き補償誤差D1pが近傍ブロックに対する動き補償誤差Drpにより小さいときには、第2階層目の探索処理を打ち切ることを示す判定信号Dcaが上記比較器c3aから出力される。一方、動きベクトル探索中心に対する動き補償誤差D1pが近傍ブロックに対する動き補償誤差Drp以上であるときには、第2階層目の探索処理を打ち切らないことを示す判定信号Dcaが上記比較器c3aから出力される。
【0108】
また、このとき比較器c3bでは、対象ブロックの動きベクトル探索中心に対応する動き補償誤差D1pが閾値Thと比較される。この比較の結果、該動きベクトル探索中心に対応する動き補償誤差D1pが閾値Th未満であれば、比較器c3aの出力Dcaがそのまま打ち切り判定信号Dcbとして出力される。一方、上記動きベクトル探索中心に対応する動き補償誤差D1pが閾値Th以上であれば、上記比較器c3aの判定出力Dcaに拘わらず、第2回層目の動きベクトル探索を実施する(即ち第2階層目の探索処理を打切りらない)ことを示す判定信号Dcbが出力される。
【0109】
また、2階層目動き検出指令信号Cmが上記選択器c3に入力されているときには、該選択器c3では、上記打ち切り禁止信号Fcが選択されて最終判定データDcfとして出力される。逆に、2階層目動き検出指令信号Cmが上記選択器c3に入力されていないときには、該選択器c3では、上記比較器c3bからの判定信号Dcbが選択されて最終判定データDcfとして出力される。
【0110】
以上のように実施の形態3では、外部からの2階層目動き検出指令信号Cmにより、強制的に第2階層目動きベクトル探索を実施することを示す判定結果を打切り判定器u5cから出力するので、図3に示す実施の形態2の動きベクトル検出装置102に比べて動きベクトル検出精度を更に向上することができる。
【0111】
なお、実施の形態3では、上記打ち切り判定器u5cにおける比較器c3aを、対象ブロックの動きベクトル探索中心に対応する動き補償誤差D1pが近傍ブロックの動き補償誤差Drpより小さいとき、第2階層目の動きベクトル探索処理を打ち切ることを示す判定信号Dcaを出力し、対象ブロックの動きベクトル探索中心に対応する動き補償誤差D1pが近傍ブロックの動き補償誤差Drp以上であるとき、第2階層目の動きベクトル探索処理を行うことを示す判定信号Dcaを出力する構成としているが、この比較器c3aは、図2(b)に示す比較器c51aと同様、動き補償誤差D1pと動き補償誤差Drpの差分の大きさが、所定の基準値Dcp未満であるときには、第2階層目の動きベクトル探索処理を打ち切ることを示す判定信号Dcaを出力し、該差分が所定値Dcp以上であるときには、第2階層目の動きベクトル探索処理を打ち切らないことを示す判定信号Dcaを出力する構成としてもよい。
【0112】
また、実施の形態1ないし3では、第2階層の動きベクトル探索処理,つまり動きベクトル探索中心を探索開始位置として動きベクトル探索を行って対象ブロックに対する動きベクトルを検出する処理の具体的な内容は示していないが、第2階層の動きベクトル探索処理では、図13に示す従来の3ステップ法、図14に示すその他の従来の階層的な動きベクトル検出法、あるいは図16に示すOne at a time等の動きベクトル検出方法が用いられる。
【0113】
(実施の形態4)
次に本発明の実施の形態4による動きベクトル検出装置について説明する。
まず、本実施の形態4の動きベクトル検出装置の基本原理について説明する。
図7は、この実施の形態の動きベクトル検出装置の動作原理を説明するための図であり、動きベクトル検出処理(以下、動き検出処理ともいう。)の際に参照される参照画面上の画素を示している。
【0114】
図7において、P0は第1階層目の探索処理により見つけた動きベクトルにより示される位置の参照画素であり、この参照画素P0の周囲には、周辺画素P1〜P8が位置している。これらの周辺画素P1〜P8の位置は、1/2画素精度等の整数画素精度より高い精度を有する動きベクトルにより示される仮想的な画素位置であり、これらの画素の画素値は、実際に存在する画素の画素値を内挿補間することにより生成されている。
【0115】
また、図8は、実施の形態4の動きベクトル検出装置の動作を説明するための図であり、画素値の補間生成を行う具体的な方法の一例が示されている。
図8において、Q1、Q2、Q3、Q4は、参照画面を構成する実際の画素であり、該参照画面上で所定の正方形の頂点に対応する位置に位置している。そして、該各画素Q1、Q2、Q3、Q4はそれぞれ、画素値q1、q2、q3、q4を有している。
【0116】
また、H1は画素Q1と画素Q2の中間に位置する仮想画素、H2は画素Q1と画素Q3の中間に位置する仮想画素、H3は画素Q1と画素Q4の中間に位置する仮想画素である。これらの仮想画素H1,H2,H3の画素値h1、h2、h3は、それぞれ下記の式(1),(2),(3)により計算されるのが一般的である。
h1 = (q1+q2)/2 ・・・(1)
h2 = (q1+q3)/2 ・・・(2)
h3 = (q1+q2+q3+q4)/4 ・・・(3)
【0117】
このように、整数画素精度より高い精度の動き検出処理(高画素精度動き検出)では、参照画面上の画素が存在しない位置に仮想的に配置される仮想画素については、その画素値を補間処理により生成しなければならないために、整数画素精度の動き検出処理と比較して演算量が増加する。しかしながら、その反面、高画素精度動き検出処理により得られる動きベクトルは、小さな画像の小さな動きでも精度良く表現できるものであるため、このような動きベクトルを用いた動き補償処理では、動き補償誤差が小さくなる。さらに、上記のような画素値の補間処理は、低域通過フィルタと等価なものであるため、該補間処理は高周波数雑音を抑圧する効果があることも知られている。
【0118】
整数画素精度より高い精度の動き検出処理については、この高周波数雑音抑圧効果が無視できないため、例えば、図7における画素P0を示す動きベクトルによる動き補償誤差が、画素P2、P4、P5、P7に対応するものより小さいとしても、画素P1、P3、P6、P8を示す動きベクトルによる動き補償誤差が画素P0に対応する動き補償誤差よりも小さくなることが多い。
【0119】
しかしながら、画素P1、P3、P6、P8の全てについて動き検出を行えば、誤差計算回数が多くなる。そこで、第2階層目の探索処理では画素P2、P4、P5、P7の位置を示す参照画素の動きベクトル4通りについて動き補償誤差を計算し、画素P2、P4、P5、P7の中で動き補償誤差が最小となる画素位置Piを検出し、第3階層目の探索処理では、画素P1、P3、P6、P8の中で画素位置Piに隣接する画素位置を示す動きベクトル2つに限定して探索を行うことにする。
【0120】
そして、最後に、1階層目、2階層目、3階層目の探索処理により得られた動きベクトルに対応する動き補償誤差を比較し、動き補償誤差が最小となる動きベクトルを、対象ブロックの動きベクトルとする。
この方法は、従来の階層的3ステップ法と似ているが、従来の3ステップ法は各階層毎に動き補償誤差が最小となる動きベクトル1つを選択するのに対し、本実施の形態4の方法は、各階層の探索処理により得られた動きベクトルから、動き補償誤差が最小となる1つの動きベクトルを選択するものである。
【0121】
例えば、従来の3ステップ法では、図7に示す画素P0の位置に対応する動き補償誤差が、図7に示す画素P2、P4、P5、P7の位置に対応する動き補償誤差よりも小さければ、画素P0の位置を示す動きベクトルが、2階層目で選択されることになり、第3階層目の探索処理では画素P1、P3、P6、P8の4つの候補から探索範囲を絞り込む判断基準が存在しないこととなる。これに対し、本実施の形態では、第2階層目の探索では、第1階層目の探索により得られた動きベクトルの示す画素P0を考慮しないため、画素P2、P4、P5、P7のいずれかが、動き補償誤差が最小となる画素位置Piとして検出されることとなる。従って、第3階層目の探索処理では、上記画素位置Piを判断基準として、画素P1、P3、P6、P8の4つの候補から探索範囲を絞り込むことができる。
【0122】
図9は本発明の実施の形態4による動きベクトル検出装置を説明するためのブロック図である。
この実施の形態4の動きベクトル検出装置104は、従来の動きベクトル検出装置201の構成に加えて、最小誤差選択器u4bで選択した2階層目の動きベクトルMV2sと、最小誤差選択器u4aで選択した1階層目の動きベクトルMV1sとに応じて、複数の候補動きベクトルMV3cを生成する動きベクトル生成器u1cと、フレームメモリu2から読みだされた、上記候補動きベクトルMV3cにより指定される参照画面の特定ブロックに対応する画像データC3tと、入力される対象ブロックの画像データScとの誤差を計算する誤差計算器u3cと、1階層目、2階層目、3階層目の探索処理により得られた各階層に対応する3つの動きベクトルのうちから、動き補償誤差が最小となる動きベクトルを選択し、選択された動きベクトルを対象ブロックに対応する動きベクトルMV3sとして出力する最小誤差選択器u4cとを有している。なお、この動きベクトル検出装置104では、MV生成器u1c,誤差計算器u3c,最小誤差選択器u4c,及びフレームメモリu2によって3階層目の動きベクトル検出部が構成されている。
【0123】
ここで、上記動きベクトル生成器u1cは、1階層目の動きベクトルMV1s及び2階層目の動きベクトルMV2sにより限定される、第1階層目の探索範囲及び第2階層目の探索範囲を含まない第3の探索範囲内の画素位置を示す候補動きベクトルMV3cを検出する構成となっている。また、上記最小誤差選択器u4cには、最小誤差選択器u4a,u4bからの第1,第2の選択動きベクトルMVs1,MVs2及び第1,第2の動き補償誤差D1pm,D2pmと、動きベクトル生成器u1cからの複数の候補動きベクトルMV3cと、誤差計算器u3cからの動き補償誤差D3pとが入力される。そして、上記最小誤差選択器u4cでは、3階層目の探索により動きベクトルを選択する処理と、1階層目、2階層目、3階層目の探索処理により選択された各階層に対応する3つの動きベクトルのうちから、動き補償誤差が最小となる動きベクトルを選択する処理とが一括して行われるようになっている。
【0124】
また、この実施の形態4では、MV生成器u1b,誤差計算器u3b,最小誤差選択器u4b,及びフレームメモリu2からなる2階層目の動きベクトル検出部は、第1階層目の探索処理により得られた動きベクトルMV1sが示す画素位置の近傍を第2探索範囲として、第2階層目の動きベクトルMV2sを検出する構成となっている。つまり、上記最小誤差選択器u4bは、第1階層の動きベクトル検出部の最小誤差選択器u4aから出力される動きベクトルMV1sは考慮せずに、MV生成器u1bにて生成された候補動きベクトルMV2cのなかから、動き補償誤差が最小となる動きベクトルを、上記第2階層目の動きベクトルMV2sとして選択する構成となっている。
ここで、上記動きベクトルMV1sが示す画素位置は、図7では画素P0の位置であり、また、第2探索範囲は、図7では、画素P2、P4、P5、P7からなる画像空間である。そして、第2階層目の動きベクトルMV2sが画素P7の位置を示すものであれば、第3探索範囲は、図7では、画素P6及びP8からなる画像空間となる。
【0125】
次に動作について説明する。
なお、本実施の形態4の動きベクトル検出装置104では、第1階層の探索処理については、従来の階層的な動きベクトル検出装置201における処理と同一であるが、ここでは、第1階層,第2階層及び第3階層の探索処理について説明する。
【0126】
上記動きベクトル検出装置104における動きベクトル生成器u1aでは、該装置の外部から供給されるベクトル探索中心情報Scに基づいて、探索中心近傍の複数の画素位置を示す動きベクトルが候補動きベクトルMV1cとして出力される。すると、上記フレームメモリu2では、該候補動きベクトルMV1cにより示される参照画面上の特定ブロックに対応する画像信号(動き補償データ)C1tが出力される。上記誤差計算器u3aでは、該動き補償データC1tと対象ブロックの画像信号St1との差分信号(画像誤差データ)D1pが算出される。最小誤差選択器u4aでは、この画像誤差データD1pがモニターされており、複数の候補動きベクトルMV1cから、該誤差データD1pが最小となる候補動きベクトルMV1cが選択されて、選択動きベクトル(第1階層の動きベクトル)MV1sとして出力される。例えば、この選択動きベクトル(第1階層の動きベクトル)MV1sは、図7の画素P0の位置を示すものである。
【0127】
そして、第1階層動きベクトルMV1sが動きベクトル検出装置104における第2階層動き検出部に入力されると、該第2階層動き検出部のMV生成器u1bでは、第1階層動きベクトルMV1sが示す参照画面上の画素位置の近傍位置に対応する第2候補動きベクトルMV2cが複数生成される。これらの第2候補動きベクトルMV2cは、例えば、図7の画素P2、P4、P5、P7の位置を示すものである。
【0128】
このとき、誤差計算器u3bでは、フレームメモリu2から読みだされた、第2候補動きベクトルMV2cで示される参照画面上の特定ブロックに対応する画像データ(動き補償データ)C2tが入力され、該動き補償データC2tと対象ブロックの画像データStとの誤差データD2pが算出される。
【0129】
また、最小誤差選択器u4bには、MV生成器u1bにて生成された複数の候補動きベクトルMV2cとともに、各候補動きベクトルMV2cに対応する誤差データD2pが入力され、誤差データが最小となる候補動きベクトルMV2cが第2階層目の動きベクトル(選択動きベクトル)MV2sとして選択されて出力される。例えば、第2階層目の動きベクトル(選択動きベクトル)MV2sは、図7の画素P7の位置を示すものである。
【0130】
さらに、第3階層動き検出部の動きベクトル生成器u1cに、最小誤差選択器u4bからの2階層目の動きベクトルMV2s、及び最小誤差選択器u4aからの1階層目の動きベクトルMV1sが入力されると、該動きベクトル生成器u1cでは、これらの動きベクトルMV1s,MV2sにより限定される、上記第1及び第2の探索範囲を含まない第3の探索範囲内の画素に対応する複数の候補動きベクトルMV3cが生成される。例えば、これらの複数の候補動きベクトルMV3cは、図7の画素P6及びP8の位置を示すものである。
【0131】
すると、複数の候補動きベクトルMV3cに対応する動き補償データC3tがフレームメモリu2から読みだされ、誤差計算器u3cでは、上記候補動きベクトルMV3cに対応する動き補償データC3tと、入力される対象ブロックの画像データStとの間の誤差データD3pが計算される。
【0132】
さらに、最小誤差選択器u4cでは、1階層目及び2階層目の探索処理により得られた対象ブロックに対応する選択動きベクトルMV1s及びMV2s、並びに3階層目の探索処理により得られる候補動きベクトルMV3cのうちから、動き補償誤差が最小となる動きベクトルが、対象ブロックの動きベクトルMV3sとして選択して出力される。
【0133】
このように本実施の形態4では、2階層目では1階層目で探索した範囲以外における画素位置を示す動きベクトルであって動き補償誤差が最小となる動きベクトルMV2sの検出を行い、1階層目および2階層目の探索により検出した2つの動きベクトルに基づいて3階層目の探索範囲を決定し、3階層目の探索処理により得られた動きベクトル、並びに第1階層及び第2階層の探索により得られた動きベクトルのなかから、対象ブロックに対応する動きベクトルを検出するようにしたので、3階層目の探索範囲を効率良く絞り込むことができ、動きベクトル検出処理における誤差計算回数の削減が実現できる。
【0134】
なお、上記実施の形態4では、上記第2の探索範囲では、第1選択動きベクトルMV1sが示す画素位置を探索中心として、上記予測ブロックの位置を、上記参照画面における垂直方向及び水平方向に沿って探索し、上記第3の探索範囲では、第2選択動きベクトルMV2sが示す画素位置を探索中心として、上記予測ブロックの位置を、参照画面における水平方向のみに沿って探索しているが、第2及び第3探索範囲における探索方向はこれに限るものではない。
例えば、上記第2の探索範囲では、第1選択動きベクトルMV1sが示す画素位置を探索中心として、上記予測ブロックの位置を、上記参照画面における垂直もしくは水平方向のみに沿って探索し、上記第3の探索範囲では、第2選択動きベクトルMV2sが示す画素位置を探索中心として、上記予測ブロックの位置を、該第2の探索範囲における探索方向以外の方向に沿って探索するようにしてもよい。
【0135】
さらに、上記各実施の形態で示した動きベクトル検出装置による動きベクトルの検出処理を実現するための動き検出プログラムを、フロッピーディスク等の記憶媒体に記録するようにすることにより、上記各実施の形態で示した動きベクトルの検出処理を、コンピュータシステムにおいて簡単に実施することが可能となる。
【0136】
図10は、上記実施の形態1ないし実施の形態4の動きベクトル検出装置による動きベクトル検出処理を、上記動き検出プログラムを格納したフロッピーディスクを用いて、コンピュータシステムにより実施する場合の説明図である。
図10(a)は、フロッピーディスクの正面からみた外観、その断面構造、及びフロッピーディスク本体を示し、図10(b)は、該フロッピーディスク本体の物理フォーマットの例を示している。
上記フロッピーディスクFDは、上記フロッピーディスク本体DをフロッピーディスクケースFC内に収容した構造となっており、該フロッピーディスク本体Dの表面には、同心円状に外周からは内周に向かって複数のトラックTrが形成され、各トラックTrは角度方向に16のセクタSeに分割されている。従って、上記プログラムを格納したフロッピーディスクFDでは、上記フロッピーディスク本体Dは、その上に割り当てられた領域(セクタ)Seに、上記プログラムとしてのデータが記録されたものとなっている。
また、図10(c)は、フロッピーディスクFDに対する上記プログラムの記録、及びフロッピーディスクFDに格納したプログラムを用いたソフトウエアによる画像処理を行うための構成を示している。
【0137】
上記プログラムをフロッピーディスクFDに記録する場合は、コンピュータシステムCsから上記プログラムとしてのデータを、フロッピーディスクドライブFDDを介してフロッピーディスクFDに書き込む。また、フロッピーディスクFDに記録されたプログラムにより、上記動きベクトル検出装置をコンピュータシステムCs中に構築する場合は、フロッピーディスクドライブFDDによりプログラムをフロッピーディスクFDから読み出し、コンピュータシステムCsにロードする。
【0138】
なお、上記説明では、データ記録媒体としてフロッピーディスクを用いて説明を行ったが、光ディスクを用いても上記フロッヒーディスクの場合と同様にソフトウエアーによる動きベクトル検出処理を行うことができる。また、データ記録媒体はこれに限らず、ICカード、ROMカセット等、プログラムを記録できるものであれば同様に実施することができる。
【0139】
【発明の効果】
以上のように本発明(請求項1,2,3,4,5,10,12)によれば、被処理ブロックの近傍に位置する近傍ブロックに対応する動き補償誤差と、動きベクトル探索中心に対応する動き補償誤差とを比較し、該両動き補償誤差の比較により得られるこれらの動き補償の差分の大きさに応じて、上記動きベクトル探索中心を示す位置情報を上記被処理ブロックの動きベクトルとして出力するか、あるいは予測ブロックの探索処理及び動きベクトルの検出処理を上記動きベクトル探索中心を探索開始位置として行って得られる動きベクトルを、被処理ブロックの動きベクトルとして出力か、を切替えるようにしたので、動き検出精度を殆ど損うことなく、最も演算量の多い誤差計算回数を削減することができ、これにより消費電力を低減できるなどその実用的価値が高い動きベクトル検出処理を実現できる。
【0140】
また、本発明(請求項6,7,8,9,11,13)によれば、第1,第2の探索範囲にて予測ブロックの探索処理を行って、各探索範囲で動き補償誤差が最小となる第1,第2の選択動きベクトルを検出し、第1,第2の選択動きベクトルに基づいて第3の探索範囲を絞り込み、該第3の探索範囲にて動き補償誤差が最小となる第3の選択動きベクトルを検出し、上記第1,第2,第3の選択動きベクトルに対応する動き補償誤差を比較して、上記第1,第2,第3の候補のベクトルのうちの1つを、被処理ブロックに対応する動きベクトルとして選択するので、第3の探索範囲を効率よく絞り込むことができ、誤差計算回数の削減が可能となる。
【図面の簡単な説明】
【図1】本発明の実施の形態1による動きベクトル検出装置を説明するためのブロック図である。
【図2】上記実施の形態1の動きベクトル検出装置を構成する打ち切り判定器の構成(図(a))及びその変形例の構成(図(b))を示す図である。
【図3】本発明の実施の形態2による動きベクトル検出装置を説明するためのブロック図である。
【図4】上記実施の形態2の動きベクトル検出装置を構成する打ち切り判定器の構成を示す図である。
【図5】本発明の実施の形態3による動きベクトル検出装置を説明するためのブロック図である。
【図6】上記実施の形態3の動きベクトル検出装置を構成する打ち切り判定器の構成を示す図である。
【図7】本発明の実施の形態4による動きベクトル検出装置の基本原理を説明するための図である。
【図8】上記実施の形態4の動きベクトル検出装置の基本原理を説明するための図である。
【図9】上記実施の形態4の動きベクトル検出装置を説明するためのブロック図である。
【図10】上記各実施の形態の動き検出処理をコンピュータシステムにより行うためのプログラムを格納したデータ記憶媒体(図(a),(b))、及び上記コンピュータシステム(図(c))を説明するための図である。
【図11】従来の代表的な画面間動き補償符号化装置を説明するためのブロック図である。
【図12】従来の画面間動き補償符号化装置を構成する代表的な動き検出装置を説明するためのブロック図である。
【図13】従来の動きベクトル検出法(3ステップ法)を説明するための図である。
【図14】従来の動きベクトル検出法(1/2画素精度探索)を説明するための図である。
【図15】従来の階層的な動きベクトル検出装置を説明するためのブロック図である。
【図16】従来の動きベクトル検出法(One at a time)を説明するための図である。
【符号の説明】
101〜104 動きベクトル検出装置
u1a、u1b、u1c 動きベクトル生成器
u2 フレームメモリ
u3a、u3b、u3c 誤差計算器
u4a、u4b、u4c 最小誤差選択器
u5a、u5b、u5c 打ち切り判定器
u6、u7 選択器
u8 一時メモリ
C1t 第1の動き補償データ
C2t 第2の動き補償データ
Cm 動き検出指令信号
Dc 判定データ
Dca 第1の判定データ
Dcb 第2の判定データ
Dcf 最終判定データ
D1p,D2p,D3p 第1,第2,第3の画像誤差データ
Dmp 最小誤差データ
Dsp 選択誤差データ
Drp 参照誤差データ
D1pm,D2pm 第1,第2の動き補償誤差(最小誤差データ)
MVc 候補動きベクトル
MVs 選択動きベクトル
MV1c,MV2c,MV3c 第1,第2,第3の候補動きベクトル
MVs 選択動きベクトル
MV1s,MV2s 第1,第2の選択動きベクトル(第1,第2階層動きベクトル)
MV3s 対象ブロックの動きベクトル
St 画像信号
Sc 動きベクトル探索中心情報
Et 画像符号化データ
Cs コンピュータシステム
D フロッピディスク本体
FC フロッピディスクケース
FD フロッピディスク
FDD フロッピディスクドライブ
Se セクタ
Tr トラック[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a motion vector detection method, a motion vector detection device, and a data storage medium, and in particular, an image signal is made up of a predetermined number of pixels using block-unit motion compensation encoding processing, that is, pixel value correlation between screens. The present invention relates to a motion vector detection process for generating a motion vector used in a process of efficiently encoding each block at high speed and with high accuracy.
[0002]
[Prior art]
In recent years, the multimedia era of voice, image, and other data has been integrated, and conventional information media, that is, means for transmitting information such as newspapers, magazines, television, radio, and telephones to people are targeted for multimedia. It has come to be taken up as. In general, multimedia refers to not only characters but also figures, sounds, especially images, etc. that are associated with each other at the same time. It is an essential condition.
[0003]
However, when the amount of information handled by each information medium is estimated as a digital information amount, the amount of information per character is 1 to 2 bytes in the case of characters, whereas 64 Kbits per second (phone) in the case of speech. Quality), and more than 100 Mbits (current TV broadcast quality) per second is required for moving images, and in most of the information media mentioned above, it is not realistic to handle such enormous information in digital form. . For example, a videophone has already been put into practical use by an Integrated Services Digital Network (ISDN) having a transmission rate of 64 Kbps to 1.5 Mbps, but it is not possible to send video information of a TV camera as it is by ISDN. Is possible.
[0004]
Therefore, information compression technology is required. For example, in the case of a videophone, H.264 has been internationally standardized by ITU-T (International Telecommunication Union Telecommunication Standardization Sector). 261 and H.264. H.263 standard video compression technology is used. In addition, according to the information compression technology of the MPEG1 standard, it is possible to record image information together with audio information on a normal music CD (compact disc).
[0005]
Here, MPEG (Moving Picture Experts Group) is an international standard relating to compression technology of moving image data (moving image signal), and MPEG1 has moving image data up to 1.5 Mbps, that is, information of a television signal is about 100. It is a standard that compresses to a fraction. Also, since the transmission speed for the MPEG1 standard is mainly limited to about 1.5 Mbps, in MPEG2 standardized to meet the demand for higher image quality, moving image data is compressed to 2 to 15 Mbps. .
[0006]
Furthermore, the current working group (ISO / IEC JTC1 / SC29 / WG11), which has been standardizing with MPEG1 and MPEG2, enables encoding processing and signal manipulation on an object basis, and realizes new functions required in the multimedia era. The moving image data compression technology is being standardized as MPEG4. MPEG4 originally aimed at standardization of a low bit rate encoding method, but at present, the object of standardization has been extended to a more general encoding process of high bit rate corresponding to interlaced images. Yes.
[0007]
In the encoding process described above, significant data compression (bit rate saving) is realized by using a so-called inter-frame motion compensation encoding process that encodes an image signal using pixel value correlation between the screens. ing. Here, in the inter-frame motion compensation encoding process, an image space (macroblock) composed of 16 × 16 pixels or an image space (block) composed of 8 × 8 pixels is used as a unit. An image signal of a processing block (hereinafter also referred to as a target block) is compared with an image signal (an image signal of a reference screen) corresponding to a screen on which an encoding process has been performed. Position information indicating the position of a region (predicted block) whose pattern is similar to the target block is detected as a motion vector corresponding to the target block. This motion vector is encoded together with a difference signal (motion compensation error) between the image signal corresponding to the target block and the image signal corresponding to the prediction block (reference block).
[0008]
FIG. 11 is a block diagram of a conventional typical inter-frame motion compensation encoding apparatus. For simplification of description, in the following description, a macroblock composed of 16 × 16 pixels and a block composed of 8 × 8 pixels are referred to as blocks without being distinguished.
This inter-screen motion compensation encoding apparatus (hereinafter abbreviated as an encoding apparatus) 1000 sequentially receives image signals obtained by dividing an image signal corresponding to a predetermined object so as to correspond to the block. The inter-frame motion compensation encoding process is performed on the image signal corresponding to each block.
[0009]
That is, the
[0010]
In addition, the
[0011]
Furthermore, the
[0012]
In the
[0013]
In the figure, i20 is an input terminal for an image signal (image data) St, and o20 is an output terminal for encoded data Et. In the
[0014]
FIG. 12 is a block diagram showing the configuration of a conventional representative motion vector detection apparatus.
The motion
[0015]
In the figure, i1 is a first input terminal of the motion
[0016]
Next, the operation will be described.
When the image signal St corresponding to the processing target block to be encoded is input to the inter-screen motion
[0017]
On the other hand, at this time, the quantized value Qt is restored to the frequency component IQt by the inverse quantization process in the inverse quantizer d5, and the frequency component IQt is further converted into image data in the spatial domain by the inverse orthogonal transformer d6. (Pixel value) Converted to ITt. Then, this image data ITt is added to the motion compensation data (image signal corresponding to the prediction block) Pt by the adder d7 to generate reproduction data Rt corresponding to the processing block. The reproduction data Rt is temporarily stored in the frame memory d8 as reference data for reference when encoding an image signal corresponding to a subsequent screen following the screen to be processed.
[0018]
Then, the motion detector d9 compares the image signal Ct corresponding to the reference screen stored in the frame memory d8 with the image signal St corresponding to the processed block, and has the same size as the processed block on the reference screen. Is obtained as a motion vector MV corresponding to the block to be processed. Then, the motion compensator d10 generates an address Ad corresponding to the position on the reference screen indicated by the motion vector MV, and the image data Mt corresponding to the prediction block is generated from the frame memory d8 based on the address Ad. Are output as motion compensation data Pt corresponding to the block to be processed.
[0019]
Next, the operation of the motion
The motion vector generator u1a in the motion
[0020]
The motion
In other words, for an image including an object with a large amount of motion, searching for a motion vector over a wide range in the image space leads to an improvement in the encoding efficiency. Of the arithmetic processing in the motion vector detection device, it is an important issue to reduce error calculation with the largest arithmetic load.
Therefore, a hierarchical motion vector detection method is often used as a method for reducing the number of calculation times of error calculation in the motion vector detection device as described above.
[0021]
FIG. 13 is a diagram for explaining a conventional motion vector detection method (3-step method) which is an example of such a hierarchical motion vector detection method.
In the three-step method, in the n-th hierarchy process, search is performed at eight neighboring positions around the designated position indicated by the motion vector detected in the (n-1) -th hierarchy process. The range is reduced to 1/3 of the search range in the (n-1) th hierarchy processing, and the search is performed recursively. The eight neighboring positions include the four neighboring positions located in the upward, downward, leftward, and rightward directions, and the upper right direction, the lower right direction, the upper left direction, and the lower left direction of the designated position. There are four neighboring positions.
[0022]
In FIG. 13, each of the pixels constituting the reference screen represents a circle, and a circle written with a numeral 1 represents a pixel to be searched (first search) in the first layer processing. Target pixel), which is a representative position of the candidate prediction block (motion compensation block) indicated by the candidate motion vector. In the reference screen shown in FIG. 13, nine first search target pixels including the pixel serving as the search center are shown.
[0023]
First, in the first-layer motion detection processing, image error data (that is, the specific block) corresponding to the specific block specified by the position of the pixel P0 and the surrounding pixels P1a to P1h with the pixel P0 as the search center. Error of the image data between the processing block and the processed block). Here, the peripheral pixel P1b has the smallest image error data. Therefore, the second-layer motion detection process is performed with the pixel P1b as a search center. The peripheral pixels P1a to P1h are the search centers on the vertical direction, the horizontal direction, and the straight line parallel to the oblique direction that forms an angle of ± 45 degrees with respect to the horizontal direction, including the search center. It is located 9 pixels apart from the pixel P0.
[0024]
Next, in the second-layer motion detection process, image error data corresponding to a specific block specified by the positions of the pixels P2a to P2h around the pixel P1b with the peripheral pixel P1b as the search center (that is, the Error of image data between the specific block and the block to be processed) is detected. Here, the peripheral pixel P2e has the smallest image error data. Accordingly, the third-layer motion detection process is performed with the pixel P2e as a search center. The peripheral pixels P2a to P2h are parallel to the vertical direction, the horizontal direction, and the oblique direction that forms an angle of ± 45 degrees with respect to the horizontal direction, including the search center in the motion detection processing of the second hierarchy. On a straight line, it is located at a distance of 3 pixels from the pixel P1b as the search center.
[0025]
Finally, in the third-layer motion detection process, image error data corresponding to a specific block identified by the positions of the pixels P3a to P3h around the pixel P2e with the peripheral pixel P2e as the search center (that is, the Error of image data between the specific block and the block to be processed) is detected. Here, the peripheral pixel P3a has the smallest image error data. Therefore, a motion vector indicating the pixel P3a (circle mark indicated by diagonal lines) is a motion vector corresponding to the processing block detected by the three-step method. The peripheral pixels P3a to P3h are parallel to a vertical direction, a horizontal direction, and an oblique direction that forms an angle of ± 45 degrees with respect to the horizontal direction, including the search center in the third-layer motion detection process. On a straight line, it is located one pixel apart from the search center pixel P2e.
[0026]
In general, this three-step method is simply performed in the search range under the condition that the image data is almost satisfied, that is, the condition that the corresponding image error data becomes smaller as the pixel is closer to the search position where the image error data is minimum. Motion vector detection is performed with accuracy that is almost the same as the method that calculates image error data directly for all pixel positions (that is, all pixels on the reference screen) and detects the motion vector that minimizes the image error data. It can be done.
[0027]
In addition, in the motion detection processing by the three-step method shown in FIG. 13, the number of times of calculation of image error data (hereinafter also simply referred to as error) is 9 times in the first layer processing, 8 times in the second layer processing, and It is apparent that the number of error calculations can be greatly reduced compared to a method of calculating errors directly for all pixel positions in the search range, which is 25 times in total in 8 processes in the third hierarchy.
[0028]
FIG. 14 is a diagram for explaining another conventional motion vector detection method.
In this motion vector detection method, a search process of a pixel position where an error (image error data) is minimized is performed with a 1/2 pixel accuracy.
[0029]
In the search process with 1/2 pixel accuracy, an interpolation pixel having a virtual pixel value is defined between two adjacent pixels on the reference screen, and image error data is displayed on the reference screen including the interpolation pixel. A search for a motion vector indicating the pixel position at which is minimized is performed. Based on the motion vector of 1/2 pixel accuracy obtained by this search process, highly accurate motion compensation of 1/2 pixel or less is performed. Note that the pixel value of the interpolation pixel is obtained by interpolation calculation on the pixel values of pixels located on both sides of the interpolation pixel.
[0030]
Such a search process with 1/2 pixel accuracy is used to improve the encoding efficiency by reducing the energy (amplitude level) of the output signal of the differentiator d1 in the encoding apparatus shown in FIG.
[0031]
In this 1/2 pixel precision search process, when the pixel value of the reference screen is read from the frame memory, a virtual pixel value of an interpolation pixel located between two adjacent pixels is generated by interpolation calculation. Processing is required. For this reason, in the first layer search process, motion detection processing with integer pixel accuracy is performed for the pixels indicated by the solid circles in FIG. 14, and in the second layer search process, the first layer search process is performed. The pixel P′0 (see FIG. 14) detected in FIG. 14 is used as a search center, and the pixel to be searched is a neighboring pixel (pixels P′1 to P1 in FIG. 14) located around the pixel P′0 and adjacent thereto. Only in P′8), the pixel position where the error is minimized is searched. As a result, a motion vector with 1/2 pixel accuracy is detected.
The features of these conventional hierarchical motion vector search processes are to select the motion vector that always has the smallest error within the search range corresponding to each step, while narrowing the search range stepwise and increasing the search density. That is.
[0032]
FIG. 15 is a block diagram for explaining a conventional hierarchical motion vector detection apparatus.
This hierarchical motion
[0033]
Here, like the motion
[0034]
In addition, the second hierarchical motion detection unit includes an MV generator u1b that generates a plurality of second candidate motion vectors MV2c with the pixel position indicated by the first hierarchical motion vector MV1s as a search center, and image data corresponding to a reference screen. , The motion compensation data (image data of the candidate prediction block) C2t read from the frame memory u2 based on the second candidate motion vector MV2c, and the input target block An error calculator u3b for calculating error data D2p with respect to the image data St, and a candidate motion vector having the smallest error data from the plurality of candidate motion vectors MV2c based on the error data D2p And a minimum error selector u4b to be selected as MV2s. The error calculator u3b of the second hierarchy motion detector is supplied with the minimum error data D1pm from the minimum error selector u4a of the first hierarchy motion detector. For this reason, the error calculator u3b does not need to obtain error data corresponding to the search center in the second layer motion detection process.
[0035]
In this motion
[0036]
Next, the operation will be described.
The first layer motion detection unit of the motion
[0037]
When the first layer motion vector MV1s is input to the second layer motion detection unit in the motion
[0038]
Further, when the error calculator u3b receives image data (motion compensation data) C2t corresponding to the candidate prediction block on the reference screen indicated by the second candidate motion vector read from the frame memory u2, the error calculator u3b Error data D2p between the motion compensation data C2t and the image data St of the target block is calculated.
[0039]
The minimum error selector u4b receives error data D2p corresponding to each candidate motion vector MV2c together with the plurality of candidate motion vectors MV2c generated by the MV generator u1b, and the candidate motion vector MV2c that minimizes the error data. Is selected and output as the second layer motion vector MV2s.
[0040]
Note that the error data D1pm corresponding to the search center in the motion vector generator u1b (ie, the motion vector selected by the minimum error selector u4a) has already been calculated by the error calculator u3a and notified to the minimum error selector u4a. Therefore, by notifying the minimum error data D1pm from the minimum error selector u4a to the error calculator u3b, the error calculator u3b corresponds to the motion vector indicating the search center in the second hierarchical motion search process. The calculation for obtaining error data can be omitted.
[0041]
FIG. 15 shows the motion
[0042]
The conventional motion vector detection method is not limited to the hierarchical search process described with reference to FIGS. 13 and 14, and the search direction is set for each pixel position with the motion vector search center as the search start position. Some determine and search for a pixel position on the reference screen with a smaller motion compensation error.
FIG. 16 is a diagram for explaining a motion vector detection method for obtaining a pixel position with a smaller motion compensation error and sequentially moving the search position from the vector search center. Is shown. In the figure, Ps0 and Psa to Psi are each pixel on the reference screen.
[0043]
This motion vector detection method is called “One at a time”, and the processing flow of this motion vector detection method will be specifically described below.
However, here, an error (motion compensation error) SADs0 of image data between the block on the reference screen specified by the pixels Ps0 and Psa to Psi shown in FIG. 16 and the block to be processed on the screen to be processed. , SADsa to SADsi, the following equations (1) to (3) are assumed to hold.
SADs0, SADsa> SADsb (1)
SADsb, SADsd> SADsc (2)
SADsc, SADsf to SADsi> SADse (3)
In this motion vector detection method, first, in the first step, a search for pixels Psa and Psb located on the left and right of the pixel Ps0 serving as the search center is performed on the reference screen.
[0044]
In this case, the motion compensation error SADsb corresponding to the right pixel Psb of the search center pixel Ps0 is smaller than the motion compensation errors SADs0 and SADsa corresponding to the search center pixel Ps0 and the left side pixel Psa (formula (1)). reference). Therefore, in the subsequent second step, a search is performed for the pixels Ps0 and Psc located on the left and right of the pixel Psb.
[0045]
In the third step, since the motion compensation error SADsc corresponding to the pixel Psc is smaller than the motion compensation errors SADs0 and SADsb corresponding to the pixel Ps0 and the pixel Psb (see equations (1) and (2)). A search for pixels Psb and Psd located on the left and right of the pixel Psc is performed.
[0046]
In the fourth step, the motion compensation error SADsc corresponding to the pixel Psc is smaller than the motion compensation errors SADsb and SADsd corresponding to the pixel Psb and the pixel Psd (see Expression (2)). A search is performed for the pixels Pse and Psf located above and below.
[0047]
In the fifth step, the motion compensation error SADse corresponding to the pixel Pse is smaller than the motion compensation errors SADsc and SADsf corresponding to the pixel Psc and the pixel Psf (see Expression (3)). A search is performed for the pixels Psg and Psh located on the left and right.
[0048]
In the sixth step, the motion compensation error SADse corresponding to the pixel Pse is smaller than the motion compensation errors SADsg and SADsh corresponding to the pixel Psg and the pixel Psh (see Expression (3)). A search is performed for the pixels Psi and Psc located above and below. In this case, since the motion compensation error SADse corresponding to the pixel Pse is smaller than the motion compensation errors SADsi and SADsc corresponding to the pixel Psi and the pixel Psc (see Expression (3)), the position of the pixel Pse Is determined as a motion vector for the block to be processed.
Note that the numbers in circles indicating the pixels in FIG. 16 indicate the pixels that are newly added to the search target in the first to sixth steps. For example, the number in circles indicating the pixel Psc is 2, and this
[0049]
[Problems to be solved by the invention]
As described above, in the conventional motion vector detection processing, the number of image error data calculations is greatly reduced by efficient motion vector search such as hierarchical motion vector search or One at atime search. In recent years, as the demands for miniaturization and energy saving of equipment have become more and more severe, it has become necessary to make motion vector detection processing with fewer error data calculations.
[0050]
In applications such as the above-mentioned energy saving type small image display devices, it goes without saying that image signal coding efficiency (improvement of image quality at a constant bit rate) is important. There is a problem that a reduction in the number of calculations in a large amount of processing is required.
[0051]
The present invention has been made in view of the above-described problems, and can reduce the number of calculations in motion vector detection processing with a large amount of calculation without substantially degrading the encoding efficiency of an image signal. To obtain a motion vector detecting method and a motion vector detecting apparatus capable of suppressing power consumption to a low level, and a data storage medium storing a program for causing a computer to perform a process of detecting a motion vector by the motion vector detecting method. Objective.
[0052]
[Means for Solving the Problems]
The motion vector detection method according to the present invention (Claim 1) corresponds to a block to be processed for each block including a predetermined number of pixels, which is a unit for processing image data corresponding to a screen to be processed. This is a motion vector detection method including a motion vector detection process in which a position of a prediction block on a reference screen is searched under a certain condition and information indicating the position of the prediction block is detected as a motion vector corresponding to a block to be processed. Thus, the error of the image data between the block corresponding to the motion vector search center that is the position where the search for the position of the prediction block is started and the processing target block to be processed is determined based on the motion vector search center. A calculation process for calculating a corresponding motion compensation error, a neighboring block located in the vicinity of the block to be processed, and a corresponding prediction A comparison process of comparing a motion compensation error corresponding to a neighboring block, which is an error in image data with the block, with a motion compensation error corresponding to the motion vector search center, and comparing the motion compensation errors. Depending on the result, position information indicating the motion vector search center is output as a motion vector corresponding to the block to be processed, or obtained by performing the motion vector detection process using the motion vector search center as a search start position. Whether to output a motion vector as a motion vector corresponding to the block to be processed is switched.
[0053]
According to the present invention (Claim 2), in the motion vector detection method according to Claim 1, when the motion compensation error corresponding to the motion vector search center is smaller than the motion compensation error corresponding to the neighboring block, the motion vector search center Is output as a motion vector corresponding to the block to be processed.
[0054]
According to the present invention (Claim 3), in the motion vector detection method according to Claim 1, a motion compensation error corresponding to the motion vector search center is smaller than a motion compensation error corresponding to the neighboring block, and the motion vector search center is When the motion compensation error corresponding to is less than a predetermined value, the position information indicating the motion vector search center is directly output as a motion vector corresponding to the block to be processed.
[0055]
According to a fourth aspect of the present invention, in the motion vector detection method according to the third aspect, when a motion detection command signal is input from the outside, the motion compensation error corresponding to the neighboring block and the motion vector search center are supported. Regardless of the magnitude relationship of motion compensation errors, a motion vector obtained by performing the motion vector detection process using the motion vector search center as a search start position is output as a motion vector corresponding to the block to be processed.
[0056]
According to the present invention (Claim 5), in the motion vector detection method according to Claim 1, the magnitude of the difference between the motion compensation error corresponding to the neighboring block and the motion compensation error corresponding to the motion vector search center is predetermined. When the value is less than the value, the position information indicating the motion vector search center is output as it is as a motion vector corresponding to the block to be processed.
[0057]
In the motion vector detection method according to the present invention (Claim 6), a block to be processed is processed for each block including a predetermined number of pixels, which is a unit for processing image data corresponding to a screen to be processed. A motion vector detection method for searching for a position of a corresponding prediction block on a reference screen under a certain condition and detecting information indicating the position of the prediction block as a motion vector corresponding to a block to be processed. A block on the reference screen specified by the first candidate motion vector corresponding to the block to be processed is searched for in the first search range set on the screen, and on the screen to be processed A process of calculating a first motion compensation error, which is an error of image data with respect to the processing target block, and a position near the pixel position indicated by the first candidate motion vector. A block on the reference screen specified by the second candidate motion vector corresponding to the block to be processed by searching for the position of the prediction block in the second search range on the reference screen to be processed; A process for calculating a second motion compensation error, which is an error in image data with the upper processing block, and the reference set based on the first candidate motion vector and the second candidate motion vector In the third search range on the screen, the position of the prediction block is searched, the block on the reference screen specified by the third candidate motion vector corresponding to the block to be processed, The process for calculating the third motion compensation error, which is the error of the image data with the block to be processed, is compared with the first, second, and third motion compensation errors, and according to the comparison result , The first and second One of the third candidate motion vector, is intended to include a process of selecting a motion vector corresponding to the processed block.
[0058]
According to a seventh aspect of the present invention, in the motion vector detection method according to the sixth aspect, the third search range is set to a region other than the first and second search ranges on the reference screen, The position of the prediction block in the third search range is searched without referring to the first and second motion compensation errors.
[0059]
According to this invention (invention 8), in the motion vector detection method according to
[0060]
The present invention (Claim 9) is the motion vector detection method according to
[0061]
In this invention (claim 10), the motion vector detection apparatus predicts corresponding to the processing target block to be processed for each block consisting of a predetermined number of pixels, which is a unit for processing the image data corresponding to the processing target screen. A motion vector detection device that performs a motion vector detection process of searching for a position of a block on a reference screen under a certain condition and detecting information indicating the position of the predicted block as a motion vector corresponding to a block to be processed. The error of the image data between the block corresponding to the motion vector search center that is the position where the search for the position of the prediction block is started and the processing target block to be processed corresponds to the motion vector search center. Error calculation means for calculating motion compensation error, neighboring blocks located in the vicinity of the block to be processed, and corresponding to this A comparison means for comparing a motion compensation error corresponding to a neighboring block, which is an error in image data with the measurement block, with a motion compensation error corresponding to the motion vector search center, and a comparison result of the both motion compensation errors. Accordingly, a determination means for determining whether or not motion vector detection processing for the block to be processed should be performed, and the motion vector search center is searched only when the determination means determines that motion vector detection processing should be performed. A motion detection unit that detects the motion vector by performing the motion vector detection process as a start position, and a motion vector detected by the motion detection unit when the determination unit determines that the motion vector detection process should be performed. It should be output as a motion vector corresponding to the block to be processed, and motion vector detection processing should not be performed by the discrimination means A selection means for directly outputting the position information indicating the motion vector search center as a motion vector corresponding to the block to be processed, and a motion compensation error corresponding to the motion vector output from the selection means, And a memory temporarily stored as data for determining whether or not to perform motion vector detection processing on the block.
[0062]
The motion vector detection device according to the present invention (invention 11) corresponds to a block to be processed for each block composed of a predetermined number of pixels, which is a unit for processing image data corresponding to the screen to be processed. A motion vector detection device that searches for a position of a prediction block on a reference screen under a certain condition and detects information indicating the position of the prediction block as a motion vector corresponding to a block to be processed. The position of the prediction block is searched in the first search range set to the block on the reference screen specified by the first candidate motion vector corresponding to the block to be processed, and the target on the screen to be processed. First motion detecting means for calculating a first motion compensation error, which is an error of image data with respect to the processing block, and a pixel position indicated by the first candidate motion vector; A block on the reference screen identified by the second candidate motion vector corresponding to the block to be processed by searching for the position of the prediction block in a second search range on the reference screen located in the vicinity; A second motion detecting means for calculating a second motion compensation error, which is an error in image data with the block to be processed, and the first candidate motion vector and the second candidate motion vector. A block on the reference screen identified by a third candidate motion vector corresponding to the block to be processed by searching for a position of the prediction block in a third search range on the reference screen; The third motion detection means for calculating a third motion compensation error that is an error in image data between the first motion compensation error and the first motion compensation error is compared with the first, second and third motion compensation errors. Depending on the first Second, one of the third candidate motion vector, in which a selection means for selecting a motion vector corresponding to the processed block.
[0063]
A data storage medium according to the present invention (Claim 12) stores, as a program, a program for causing a computer to perform processing for detecting a motion vector corresponding to a block to be processed by the motion vector detection method according to Claim 1. It is a thing.
[0064]
The data storage medium according to the present invention (Claim 13) stores, as a program, a program for causing a computer to perform processing for detecting a motion vector corresponding to a block to be processed by the motion vector detection method according to
[0065]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below.
(Embodiment 1)
First, the basic concept of Embodiment 1 of the present invention will be described.
Since the image signal generally has a strong correlation between local pixel values, the motion vector and the motion compensation error are substantially equal between the target block on the screen to be processed and a neighboring block located adjacent thereto.
As a result, when the pixel value correlation is strong, the motion vector search center information for obtaining the motion vector for the target block is predicted and generated from the motion vectors of the neighboring blocks, and the motion vector search center information thus generated is used as the target block. As a motion vector corresponding to, the motion vector detection accuracy of the target block is hardly deteriorated.
[0066]
However, if the target block and neighboring blocks each contain pixels of objects that move differently, the correlation of pixel values between the target block and neighboring blocks is lost, and motion vectors and motion compensation errors are There are significant differences between blocks and neighboring blocks.
[0067]
Therefore, the motion vector search center information of the target block is predicted and generated from the motion vector of the neighboring block, the motion compensation error corresponding to the motion vector search center is compared with the motion compensation error corresponding to the neighboring block, and the comparison result is Accordingly, by switching the motion vector detection process, it is possible to reduce the amount of calculation in the motion detection process for the target block without significantly impairing the motion vector detection accuracy of the target block.
Specifically, if the difference between the motion compensation errors for the motion vector search center and the motion compensation error for the neighboring block is small, the motion vector search center information corresponding to the target block is determined. Is used as a motion vector for the target block. On the other hand, when the difference between the two motion compensation errors is large, a motion vector obtained by performing motion vector detection processing using the motion vector search center of the target block as a search start position is used as a motion vector for the target block.
[0068]
In addition, when the motion compensation error for the motion vector search center of the target block is smaller than the motion compensation error of the neighboring block, the pixel value correlation between the neighboring block and the target block is low, and therefore the motion predicted from the neighboring block Although the vector search center may be different from the optimal motion vector of the target block, the motion compensation error of the target block is small even if the position information indicating the motion vector search center is selected as the motion vector of the target block. Therefore, it can be considered that there is no practical problem.
[0069]
Therefore, instead of outputting a determination result (motion detection censoring determination) using the position information indicating the motion vector search center as the motion vector of the target block when the magnitude of the difference between the motion compensation errors is less than a predetermined value, When the motion compensation error with respect to the search center of the target block is smaller than the motion compensation error of the neighboring block, a determination signal indicating that the position information indicating the motion vector search center is set as the motion vector of the target block (motion detection abort determination) is output You may make it do.
[0070]
FIG. 1 is a block diagram for explaining a motion vector detection apparatus according to Embodiment 1 of the present invention.
The motion
[0071]
The motion
[0072]
Further, the motion
[0073]
Further, the motion
[0074]
Here, the selector u6 receives the minimum error data Dmp from the minimum error selector u4 at the
[0075]
The motion
Other configurations are the same as those of the conventional motion
[0076]
FIG. 2A is a diagram showing a specific configuration of the abort determination unit u5a that constitutes the motion
The abort determination unit u5a compares the motion compensation error Drp of the neighboring block with the motion compensation error D1p (corresponding to the output of the error calculator u3a in FIG. 1) corresponding to the motion vector search center Sc of the target block. c1a, which is configured to output a determination signal Dc indicating an abort determination result according to the magnitude relationship between the motion compensation errors. In FIG. 2 (a), i10 and i11 are input terminals of the determiner u5a, the motion compensation error Drp of the neighboring block corresponds to the input terminal i10, and the motion vector search center Sc corresponds to the input terminal i11. The motion compensation error D1p is input. Further, o10 is an output terminal of the determination unit u5a, and the determination signal Dc is output from the output terminal o10.
[0077]
That is, when the motion compensation error D1p with respect to the motion vector search center is smaller than the motion compensation error Drp with respect to the neighboring block, the abort determination unit u5a outputs the determination signal Dc indicating that the search process of the second layer is aborted, and the motion When the motion compensation error D1p for the vector search center is equal to or greater than the motion compensation error Drp for the neighboring block, a determination signal Dc indicating that the second-layer search process is performed is output.
[0078]
In the motion
[0079]
Next, the function and effect will be described.
Hereinafter, the operation of the motion
The temporary memory u8 stores a motion compensation error (error data) Drp corresponding to the neighboring block processed immediately before the target block to be processed. The abort determination unit u5a reads from the temporary memory u8. The motion compensation error Drp of the neighboring block is compared with the motion compensation error D1p corresponding to the motion vector search center information Sc of the target block calculated by the error calculator u3a, and the motion vector search of the second layer is performed. An abort determination result indicating whether or not to abort the process is output as a determination signal Dc.
[0080]
Specifically, the abort determination unit u5a outputs a determination signal Dc indicating that the search process of the second hierarchy is terminated when the motion compensation error D1p for the motion vector search center is smaller than the motion compensation error Drp for the neighboring block. Is done. On the other hand, when the motion compensation error D1p for the motion vector search center is equal to or greater than the motion compensation error Drp for the neighboring block, the determination signal Dc indicating that the search process of the second hierarchy is not aborted is output.
[0081]
When the abort determination unit u5a determines that the search processing of the second hierarchy is to be terminated, the motion vector generator u1, the error calculator u3b, and the minimum error selector u4 are subjected to arithmetic processing by the determination signal Dc. The error calculator u3b, the minimum error selector u4, and the MV generator u1 do not perform the calculation process for the second-layer search process. On the other hand, when it is determined by the abortion decision unit u5a that the search processing of the second hierarchy is not terminated, the motion vector generator u1, the error calculator u3b, and the minimum error selector u4 receive the decision signal Dc. It is notified that the calculation process is necessary, and the error calculator u3b, the minimum error selector u4, and the MV generator u1 perform the calculation process for the search process of the second hierarchy.
[0082]
At this time, the selector u7 selects the motion vector search center information Sc and outputs it as the motion vector MV of the target block when the determination signal Dc indicates the termination of the search processing of the second layer. On the other hand, when the determination signal Dc indicates that the search process of the second hierarchy is not terminated, the motion vector MVs selected by the minimum error selector u4 is output as the motion vector MV of the target block.
[0083]
Similarly, in the selector u6, when the determination signal Dc indicates the termination of the search processing of the second hierarchy, the motion compensation error D1p corresponding to the motion vector search center information Sc is selected and output to the temporary memory u8. The On the other hand, when the determination signal Dc indicates that the second-layer search process is not terminated, the motion compensation error Dmp corresponding to the motion vector MVs selected by the minimum error selector u4 is output to the temporary memory u8. Is done.
[0084]
In the first embodiment having such a configuration, even when the abortion determination unit u5a refers to the motion compensation error Drp corresponding to the detected motion vector of the neighboring block and performs the second layer motion search, the coding efficiency is improved. Therefore, it is possible to cancel the unnecessary motion search process in the second layer, thereby reducing the number of error calculations in the motion vector detection process.
[0085]
Also, the abortion decision unit u5a selects the motion vector search center information Sc as the motion vector of the target block when the motion compensation error D1p for the motion vector search center of the target block is smaller than the motion compensation error Drp of the neighboring block. In this case, the pixel value correlation between the neighboring block and the target block is low, and the motion vector search center predicted from the neighboring block may be different from the optimal motion vector of the target block. Since the motion compensation error D1p is small, it can be considered that there is no practical problem.
[0086]
In the first embodiment, the determination as to whether or not to cancel the second-layer search process is made based on the magnitude relationship between the motion compensation error D1p for the motion vector search center of the target block and the motion compensation error Drp for the neighboring blocks. If the magnitude of the difference between the motion compensation error D1p and the motion compensation error Drp is less than a predetermined value, the second-layer search process is terminated, and the difference is greater than or equal to the predetermined value. May not stop the search processing of the second hierarchy.
[0087]
FIG. 2B shows a configuration of the abortion determination unit u51a having such a configuration.
The abort determination unit u51a is determined by comparing the reference value generator c1b that generates the predetermined reference value Dcp, the difference between the motion compensation error D1p and the motion compensation error Drp, and the predetermined reference value Dcp. And a comparison / determination unit c51a that outputs a signal Dc. Then, the comparison / determination unit c51a outputs a determination signal Dc indicating that the search process of the second hierarchy is terminated when the magnitude of the difference is less than a predetermined value, and the difference is greater than or equal to the predetermined value. Is configured to output a determination signal Dc indicating that the search processing of the second hierarchy is not terminated.
[0088]
(Embodiment 2)
FIG. 3 is a block diagram for explaining a motion vector detection apparatus according to
The motion
[0089]
FIG. 4 is a diagram illustrating a specific configuration of the abortion determination unit u5b included in the motion
The abort determination unit u5b compares the motion compensation error Drp corresponding to the neighboring block read from the temporary memory u8 and the motion compensation error D1p corresponding to the motion vector search center information Sc calculated by the error calculator u3a. 1 comparator c2a, and a second comparator c2b that compares the threshold value Th input from the outside with the motion compensation error D1p corresponding to the motion vector search center information Sc.
[0090]
Here, the threshold value Th is determined by the bit rate of the encoded data output from the inter-frame motion compensation encoding device and the number of times of motion compensation error calculation in the motion vector detection device. This is the error tolerance. The first comparator c2a outputs a determination signal Dca indicating that the second-layer search process is to be terminated when the motion compensation error D1p for the motion vector search center is smaller than the motion compensation error Drp for the neighboring block. When the motion compensation error D1p for the motion vector search center is equal to or greater than the motion compensation error Drp for the neighboring block, a determination signal Dca indicating that the second-layer search process is performed is output. If the motion compensation error D1p for the motion vector search center is less than the threshold Th, the second comparator c2b outputs the determination signal Dca output from the first comparator c2a as it is as the determination signal Dcb. If the motion compensation error D1p with respect to the motion vector search center is equal to or greater than the threshold Th, the second-layer search process is not terminated regardless of the determination signal Dca from the first comparator c2a (that is, the first A determination signal Dcb indicating that the search process of the second hierarchy is performed) is output.
In FIG. 4, i12 is a third input terminal of the abort determination unit u5b to which a threshold value Th from the outside of the motion
[0091]
Next, the function and effect will be described.
First, the basic principle of the second embodiment will be briefly described.
In the first embodiment, the motion compensation error Drp corresponding to the detected motion vector of the neighboring block is simply compared with the motion compensation error D1p corresponding to the motion vector search center of the target block, and the abort determination result is shown. The determination signal Dc is generated, but when the motion detection accuracy for the neighboring block is poor and the motion compensation error corresponding to the neighboring block becomes large, the motion compensation for the target block is performed at the motion vector search center. Even if the motion compensation error obtained based on the information Sc is large, the motion detection process for the second layer is aborted, and the motion vector search center information Sc with poor accuracy is output as the motion vector MV of the target block. Will be.
[0092]
Therefore, for example, an allowable value of the motion compensation error determined by the bit rate of the encoded data output from the inter-frame motion compensation encoding device and the number of operations of the motion compensation error in the motion vector detection device is set as the threshold Th. When the motion compensation error obtained by performing motion compensation on the target block based on the motion vector search center information Sc by giving to the abort determination unit u5b is larger than the threshold Th, the second-layer motion detection process Can be canceled.
[0093]
Next, the operation will be described.
In the motion
[0094]
The abort determination unit u5b compares the motion compensation error Drp corresponding to the neighboring block read from the temporary memory u8 and the motion compensation error D1p corresponding to the motion vector search center calculated by the error calculator u3a. In addition, the threshold Th inputted from the outside is compared with the motion compensation error D1p corresponding to the motion vector search center information Sc.
[0095]
Then, the abort determination unit u5b outputs an abort determination signal Dcb indicating whether or not to cancel the second-layer motion detection based on the comparison results of the comparators c2a and c2b.
When it is determined that the process is aborted, the determination signal Dcb notifies the motion vector generator u1, the error calculator u3b, and the minimum error selector u4 that processing is unnecessary.
[0096]
Hereinafter, a specific operation of the abort determination unit u5b will be described.
First, the abort determination unit u5b compares the motion compensation error Drp corresponding to the neighboring block with the motion compensation error D1p corresponding to the motion vector search center of the target block, as in the abort determination unit u5a of the first embodiment. Comparison is made in the device c2a. When the motion compensation error D1p with respect to the motion vector search center is smaller than the motion compensation error Drp with respect to the neighboring block, a determination signal Dca indicating that the second-layer search process is to be terminated is output from the comparator c2a. On the other hand, when the motion compensation error D1p for the motion vector search center is equal to or greater than the motion compensation error Drp for the neighboring block, a determination signal Dca indicating that the second-layer search process is not terminated is output from the comparator c2a.
[0097]
At this time, the comparator c2b compares the motion compensation error D1p corresponding to the motion vector search center of the target block with the threshold Th, and if the motion compensation error D1p is less than the threshold Th, the output Dca of the comparator c2a Is output as the abort determination signal Dcb, and if the motion compensation error D1p is equal to or greater than the threshold Th, the motion search process of the second hierarchy is performed regardless of the determination output Dca of the comparator c2a (ie, the second hierarchy) The determination signal Dcb indicating that the eye search process is not terminated is output.
[0098]
In the second embodiment having such a configuration, the threshold Th inputted from the outside in the abortion decision unit u5b is compared with the motion compensation error D1p based on the motion vector search center information Sc, and motion compensation for the target block is performed as a motion vector search. When the motion compensation error obtained based on the center information Sc is larger than the threshold, the second layer motion search process is always performed, so that the motion detection accuracy can be improved.
[0099]
In the second embodiment, the comparator c2a in the abortion decision unit u5b performs the second-layer detection process when the motion compensation error D1p for the motion vector search center of the target block is smaller than the motion compensation error Drp of the neighboring block. A determination signal Dca indicating that the second layer is detected when the motion compensation error D1p for the motion vector search center of the target block is equal to or greater than the motion compensation error Drp of the neighboring block. The comparator c2a is configured to output the signal Dca. The comparator c2a, like the comparator c51a shown in FIG. 2 (b), has a difference between the motion compensation error D1p and the motion compensation error Drp having a predetermined reference value Dcp. If it is less than the value, a determination signal Dca indicating that the search processing of the second hierarchy is to be terminated is output, and the difference is a predetermined value Dcp. When it is above, may output a decision signal Dca indicating that no truncated second tier search process.
[0100]
(Embodiment 3)
FIG. 5 is a block diagram for explaining a motion vector detection apparatus according to
The motion
[0101]
FIG. 6 is a diagram showing a specific configuration of the abortion determining unit u5c constituting the motion
In addition to the comparators c3a and c3b having the same configuration as the comparators c2a and c2b in the abort determination unit u5b of the second embodiment, the abort determination unit u5c includes a signal generator c3c that generates an abort prohibition signal Fc and an external source. A selector c3 for selecting one of the output Dcb of the second comparator c3b and the abort inhibition signal Fc based on the input second-level motion detection command signal Cm.
[0102]
Here, when the second layer motion detection command signal Cm is input from the outside, the selector c3 selects the abort prohibition signal Fc, and the second layer motion detection command signal Cm is not input. In some cases, the output Dcb of the second comparator c3b is selected. The device outside the motion
[0103]
Next, the function and effect will be described.
First, the basic principle of the third embodiment will be briefly described.
If the neighboring block located near the target block is a block that does not have a motion vector, that is, the first block to be processed or the block at the edge of the screen to be processed, or the neighboring block is subjected to intra-frame coding processing. In the case of the intra block, the motion vector search center information Sc predicted and generated from the motion vector of the block located in the vicinity of the target block is considered to have low reliability. When the neighboring block is an intra block that has been subjected to intra-frame coding processing, the motion compensation error for the target block is large, and the motion vector of the target block is often unreliable.
[0104]
Therefore, in such a situation, the reliability of the motion vector search center Sc is determined by the second layer motion detection command signal Cm from a device such as an intra-screen / inter-screen coding mode determiner outside the motion
[0105]
Next, the operation will be described.
In the motion
In the abort determination unit u5c shown in FIG. 6, first, similarly to the abort determination unit u5b shown in FIG. 4, the motion compensation error Drp corresponding to the neighboring block and the motion compensation error D1p corresponding to the motion vector search center of the target block are The comparator c3a compares the threshold value Th input from the outside with the motion compensation error D1p corresponding to the motion vector search center.
[0106]
Then, the abort determination unit u5c aborts the motion vector search in the second layer based on the comparison results in the comparators c3a and c3b and whether or not the second layer motion detection command signal Cm is input. An abort determination signal Dcf indicating whether or not is output. When it is determined that the process is aborted, the determination signal Dcf notifies the motion vector generator u1, the error calculator u3b, and the minimum error selector u4 that processing is unnecessary.
[0107]
Hereinafter, a specific operation of the abort determination unit u5c will be described.
First, the abort determination unit u5c compares the motion compensation error Drp corresponding to the neighboring block with the motion compensation error D1p corresponding to the motion vector search center of the target block, as in the abort determination unit u5a of the second embodiment. Comparison is made in the device c3a. When the motion compensation error D1p with respect to the motion vector search center is smaller than the motion compensation error Drp with respect to the neighboring block, a determination signal Dca indicating that the second-layer search process is to be terminated is output from the comparator c3a. On the other hand, when the motion compensation error D1p for the motion vector search center is equal to or greater than the motion compensation error Drp for the neighboring block, the determination signal Dca indicating that the second-layer search process is not terminated is output from the comparator c3a.
[0108]
At this time, the comparator c3b compares the motion compensation error D1p corresponding to the motion vector search center of the target block with the threshold Th. As a result of the comparison, if the motion compensation error D1p corresponding to the motion vector search center is less than the threshold Th, the output Dca of the comparator c3a is output as it is as the abort determination signal Dcb. On the other hand, if the motion compensation error D1p corresponding to the motion vector search center is equal to or greater than the threshold Th, the second-layer motion vector search is performed regardless of the determination output Dca of the comparator c3a (ie, the second motion vector search). A determination signal Dcb indicating that the search processing of the hierarchy is not terminated) is output.
[0109]
When the second-layer motion detection command signal Cm is input to the selector c3, the selector c3 selects the abort prohibiting signal Fc and outputs it as final determination data Dcf. Conversely, when the second-layer motion detection command signal Cm is not input to the selector c3, the selector c3 selects the determination signal Dcb from the comparator c3b and outputs it as final determination data Dcf. .
[0110]
As described above, in
[0111]
In the third embodiment, when the motion compensation error D1p corresponding to the motion vector search center of the target block is smaller than the motion compensation error Drp of the neighboring block, the comparator c3a in the abort determination unit u5c When the determination signal Dca indicating that the motion vector search process is discontinued is output and the motion compensation error D1p corresponding to the motion vector search center of the target block is equal to or greater than the motion compensation error Drp of the neighboring block, the motion vector of the second layer A determination signal Dca indicating that search processing is to be performed is output. The comparator c3a, like the comparator c51a shown in FIG. 2B, has a large difference between the motion compensation error D1p and the motion compensation error Drp. Is less than a predetermined reference value Dcp, a determination indicating that the motion vector search process in the second layer is to be terminated No. outputs Dca, when said difference is equal to or greater than the predetermined value Dcp may be configured to output a determination signal Dca indicating that no truncated the second tier of the motion vector search process.
[0112]
In the first to third embodiments, the specific contents of the second layer motion vector search process, that is, the process of detecting the motion vector for the target block by performing the motion vector search with the motion vector search center as the search start position are as follows. Although not shown, in the second-layer motion vector search process, the conventional three-step method shown in FIG. 13, the other conventional hierarchical motion vector detection method shown in FIG. 14, or the one at a time shown in FIG. A motion vector detection method such as is used.
[0113]
(Embodiment 4)
Next, a motion vector detection device according to
First, the basic principle of the motion vector detection device according to the fourth embodiment will be described.
FIG. 7 is a diagram for explaining the operation principle of the motion vector detection device of this embodiment, and is a pixel on the reference screen that is referred to during motion vector detection processing (hereinafter also referred to as motion detection processing). Is shown.
[0114]
In FIG. 7, P0 is a reference pixel at a position indicated by a motion vector found by the search processing of the first layer, and peripheral pixels P1 to P8 are located around the reference pixel P0. The positions of these peripheral pixels P1 to P8 are virtual pixel positions indicated by motion vectors having accuracy higher than integer pixel accuracy such as 1/2 pixel accuracy, and the pixel values of these pixels actually exist. This is generated by interpolating the pixel values of the pixels to be interpolated.
[0115]
FIG. 8 is a diagram for explaining the operation of the motion vector detection apparatus according to the fourth embodiment, and shows an example of a specific method for performing interpolation generation of pixel values.
In FIG. 8, Q1, Q2, Q3, and Q4 are actual pixels constituting the reference screen, and are located at positions corresponding to the vertices of a predetermined square on the reference screen. The pixels Q1, Q2, Q3, and Q4 have pixel values q1, q2, q3, and q4, respectively.
[0116]
H1 is a virtual pixel located between the pixels Q1 and Q2, H2 is a virtual pixel located between the pixels Q1 and Q3, and H3 is a virtual pixel located between the pixels Q1 and Q4. The pixel values h1, h2, and h3 of these virtual pixels H1, H2, and H3 are generally calculated by the following equations (1), (2), and (3), respectively.
h1 = (q1 + q2) / 2 (1)
h2 = (q1 + q3) / 2 (2)
h3 = (q1 + q2 + q3 + q4) / 4 (3)
[0117]
As described above, in motion detection processing with higher accuracy than integer pixel accuracy (high pixel accuracy motion detection), pixel values of virtual pixels that are virtually arranged at positions where no pixels exist on the reference screen are interpolated. Therefore, the amount of calculation increases as compared with the motion detection process with integer pixel accuracy. However, on the other hand, since the motion vector obtained by the high pixel accuracy motion detection process can accurately represent even a small motion of a small image, motion compensation error using such a motion vector has a motion compensation error. Get smaller. Furthermore, since the pixel value interpolation process as described above is equivalent to a low-pass filter, it is also known that the interpolation process has an effect of suppressing high-frequency noise.
[0118]
Since the high frequency noise suppression effect cannot be ignored for motion detection processing with higher accuracy than integer pixel accuracy, for example, motion compensation errors due to motion vectors indicating the pixel P0 in FIG. 7 are generated in the pixels P2, P4, P5, and P7. Even if it is smaller than the corresponding one, the motion compensation error due to the motion vector indicating the pixels P1, P3, P6, and P8 is often smaller than the motion compensation error corresponding to the pixel P0.
[0119]
However, if motion detection is performed for all of the pixels P1, P3, P6, and P8, the number of error calculations increases. Therefore, in the search process of the second hierarchy, motion compensation errors are calculated for the four motion vectors of the reference pixels indicating the positions of the pixels P2, P4, P5, and P7, and motion compensation is performed among the pixels P2, P4, P5, and P7. The pixel position Pi that minimizes the error is detected, and the search processing in the third hierarchy is limited to two motion vectors indicating pixel positions adjacent to the pixel position Pi among the pixels P1, P3, P6, and P8. We will search.
[0120]
Finally, the motion compensation errors corresponding to the motion vectors obtained by the search processing in the first, second, and third layers are compared, and the motion vector that minimizes the motion compensation error is compared with the motion of the target block. Let it be a vector.
This method is similar to the conventional hierarchical three-step method, but the conventional three-step method selects one motion vector that minimizes the motion compensation error for each layer, whereas the fourth embodiment In this method, one motion vector that minimizes the motion compensation error is selected from the motion vectors obtained by the search processing of each layer.
[0121]
For example, in the conventional three-step method, if the motion compensation error corresponding to the position of the pixel P0 shown in FIG. 7 is smaller than the motion compensation error corresponding to the positions of the pixels P2, P4, P5, and P7 shown in FIG. The motion vector indicating the position of the pixel P0 is selected in the second layer, and there is a criterion for narrowing the search range from the four candidates of the pixels P1, P3, P6, and P8 in the search processing in the third layer. Will not. On the other hand, in this embodiment, since the pixel P0 indicated by the motion vector obtained by the first layer search is not considered in the second layer search, any one of the pixels P2, P4, P5, and P7 is used. Is detected as the pixel position Pi where the motion compensation error is minimized. Therefore, in the search process of the third hierarchy, the search range can be narrowed down from the four candidates of the pixels P1, P3, P6, and P8 using the pixel position Pi as a criterion.
[0122]
FIG. 9 is a block diagram for explaining a motion vector detection apparatus according to
In addition to the configuration of the conventional motion
[0123]
Here, the motion vector generator u1c does not include the first-tier search range and the second-tier search range, which are limited by the first-tier motion vector MV1s and the second-tier motion vector MV2s. The candidate motion vector MV3c indicating the pixel position within the
[0124]
In the fourth embodiment, the second-layer motion vector detection unit including the MV generator u1b, the error calculator u3b, the minimum error selector u4b, and the frame memory u2 is obtained by the first-layer search process. The vicinity of the pixel position indicated by the obtained motion vector MV1s is used as the second search range, and the second-layer motion vector MV2s is detected. That is, the minimum error selector u4b does not consider the motion vector MV1s output from the minimum error selector u4a of the first layer motion vector detection unit, and the candidate motion vector MV2c generated by the MV generator u1b. Among them, the motion vector that minimizes the motion compensation error is selected as the second-layer motion vector MV2s.
Here, the pixel position indicated by the motion vector MV1s is the position of the pixel P0 in FIG. 7, and the second search range is an image space composed of the pixels P2, P4, P5, and P7 in FIG. If the motion vector MV2s in the second hierarchy indicates the position of the pixel P7, the third search range is an image space composed of the pixels P6 and P8 in FIG.
[0125]
Next, the operation will be described.
Note that in the motion
[0126]
The motion vector generator u1a in the motion
[0127]
When the first layer motion vector MV1s is input to the second layer motion detection unit in the motion
[0128]
At this time, the error calculator u3b receives image data (motion compensation data) C2t corresponding to a specific block on the reference screen indicated by the second candidate motion vector MV2c read from the frame memory u2, and the motion Error data D2p between the compensation data C2t and the image data St of the target block is calculated.
[0129]
The minimum error selector u4b receives a plurality of candidate motion vectors MV2c generated by the MV generator u1b and error data D2p corresponding to each candidate motion vector MV2c, so that the candidate motion that minimizes the error data is input. The vector MV2c is selected and output as the motion vector (selected motion vector) MV2s in the second layer. For example, the motion vector (selected motion vector) MV2s in the second layer indicates the position of the pixel P7 in FIG.
[0130]
Further, the second layer motion vector MV2s from the minimum error selector u4b and the first layer motion vector MV1s from the minimum error selector u4a are input to the motion vector generator u1c of the third layer motion detector. In the motion vector generator u1c, a plurality of candidate motion vectors corresponding to the pixels in the third search range that are limited by these motion vectors MV1s and MV2s and do not include the first and second search ranges. MV3c is generated. For example, the plurality of candidate motion vectors MV3c indicate the positions of the pixels P6 and P8 in FIG.
[0131]
Then, motion compensation data C3t corresponding to the plurality of candidate motion vectors MV3c is read from the frame memory u2, and the error calculator u3c receives the motion compensation data C3t corresponding to the candidate motion vector MV3c and the input target block. Error data D3p with respect to the image data St is calculated.
[0132]
Further, in the minimum error selector u4c, the selected motion vectors MV1s and MV2s corresponding to the target block obtained by the search processing of the first layer and the second layer, and the candidate motion vector MV3c obtained by the search processing of the third layer are obtained. The motion vector that minimizes the motion compensation error is selected and output as the motion vector MV3s of the target block.
[0133]
As described above, in the fourth embodiment, a motion vector MV2s that indicates a pixel position outside the range searched in the first layer and has a minimum motion compensation error is detected in the second layer, and the first layer is detected. And the search range of the third hierarchy is determined based on the two motion vectors detected by the search of the second hierarchy, the motion vector obtained by the search process of the third hierarchy, and the search of the first hierarchy and the second hierarchy Since the motion vector corresponding to the target block is detected from the obtained motion vectors, the search range of the third hierarchy can be narrowed down efficiently, and the number of error calculations in the motion vector detection process can be reduced. it can.
[0134]
In the fourth embodiment, in the second search range, with the pixel position indicated by the first selected motion vector MV1s as the search center, the position of the predicted block is along the vertical and horizontal directions on the reference screen. In the third search range, the position of the predicted block is searched only along the horizontal direction on the reference screen with the pixel position indicated by the second selected motion vector MV2s as the search center. The search directions in the second and third search ranges are not limited to this.
For example, in the second search range, the position of the prediction block is searched only in the vertical or horizontal direction on the reference screen, with the pixel position indicated by the first selected motion vector MV1s as the search center, and the third search range. In the search range, the position of the prediction block may be searched along a direction other than the search direction in the second search range with the pixel position indicated by the second selected motion vector MV2s as the search center.
[0135]
Further, by recording a motion detection program for realizing motion vector detection processing by the motion vector detection device shown in each of the above-described embodiments on a storage medium such as a floppy disk, the above-described each of the above-described embodiments. The motion vector detection process shown in (5) can be easily performed in the computer system.
[0136]
FIG. 10 is an explanatory diagram when the motion vector detection processing by the motion vector detection device of the first to fourth embodiments is performed by a computer system using a floppy disk storing the motion detection program. .
FIG. 10A shows the appearance of the floppy disk as viewed from the front, its cross-sectional structure, and the floppy disk body, and FIG. 10B shows an example of the physical format of the floppy disk body.
The floppy disk FD has a structure in which the floppy disk body D is accommodated in a floppy disk case FC, and a plurality of tracks are concentrically formed on the surface of the floppy disk body D from the outer periphery toward the inner periphery. Tr is formed, and each track Tr is divided into 16 sectors Se in the angular direction. Therefore, in the floppy disk FD storing the program, the floppy disk main body D is such that data as the program is recorded in an area (sector) Se allocated thereon.
FIG. 10C shows a configuration for recording the program on the floppy disk FD and performing image processing by software using the program stored on the floppy disk FD.
[0137]
When recording the program on the floppy disk FD, data as the program is written from the computer system Cs to the floppy disk FD via the floppy disk drive FDD. Further, when the motion vector detecting device is constructed in the computer system Cs by the program recorded on the floppy disk FD, the program is read from the floppy disk FD by the floppy disk drive FDD and loaded into the computer system Cs.
[0138]
In the above description, the floppy disk is used as the data recording medium. However, even if the optical disk is used, the motion vector detection process by software can be performed as in the case of the floppy disk. Further, the data recording medium is not limited to this, and can be similarly implemented as long as it can record a program such as an IC card or a ROM cassette.
[0139]
【The invention's effect】
As described above, according to the present invention (claims 1, 2, 3, 4, 5, 10, 12), the motion compensation error corresponding to the neighboring block located in the vicinity of the block to be processed and the motion vector search center are provided. The position information indicating the motion vector search center is converted into the motion vector of the block to be processed in accordance with the magnitude of the difference between the motion compensation errors obtained by comparing the motion compensation errors with the corresponding motion compensation errors. Or the motion vector obtained by performing the prediction block search process and the motion vector detection process with the motion vector search center as the search start position is output as the motion vector of the block to be processed. As a result, the number of error calculations with the largest amount of computation can be reduced with little loss of motion detection accuracy, thereby reducing power consumption. Its practical value such as can be achieved with high motion vector detecting process.
[0140]
Further, according to the present invention (claims 6, 7, 8, 9, 11, 13), the prediction block search process is performed in the first and second search ranges, and the motion compensation error is detected in each search range. The first and second selected motion vectors that are the smallest are detected, the third search range is narrowed down based on the first and second selected motion vectors, and the motion compensation error is minimized in the third search range. A third selected motion vector is detected, and motion compensation errors corresponding to the first, second, and third selected motion vectors are compared, and among the first, second, and third candidate vectors, Is selected as a motion vector corresponding to the block to be processed, so that the third search range can be narrowed down efficiently, and the number of error calculations can be reduced.
[Brief description of the drawings]
FIG. 1 is a block diagram for explaining a motion vector detection apparatus according to a first embodiment of the present invention.
FIG. 2 is a diagram showing a configuration (FIG. (A)) of an abortion determination device constituting the motion vector detection device of the first embodiment and a configuration (FIG. (B)) of a modified example thereof.
FIG. 3 is a block diagram for explaining a motion vector detection apparatus according to a second embodiment of the present invention.
FIG. 4 is a diagram illustrating a configuration of an abort determination unit that constitutes the motion vector detection device according to the second embodiment.
FIG. 5 is a block diagram for explaining a motion vector detection apparatus according to
FIG. 6 is a diagram illustrating a configuration of an abort determination unit that configures the motion vector detection device according to the third embodiment.
FIG. 7 is a diagram for explaining a basic principle of a motion vector detection device according to a fourth embodiment of the present invention.
FIG. 8 is a diagram for explaining a basic principle of the motion vector detection device according to the fourth embodiment.
FIG. 9 is a block diagram for explaining a motion vector detection apparatus according to the fourth embodiment.
FIG. 10 illustrates a data storage medium (FIGS. (A) and (b)) storing a program for performing the motion detection processing of each of the above embodiments by a computer system, and the computer system (FIG. (C)). It is a figure for doing.
FIG. 11 is a block diagram for explaining a conventional typical inter-frame motion compensation encoding apparatus.
FIG. 12 is a block diagram for explaining a typical motion detection device constituting a conventional inter-screen motion compensation encoding device.
FIG. 13 is a diagram for explaining a conventional motion vector detection method (3-step method).
FIG. 14 is a diagram for explaining a conventional motion vector detection method (1/2 pixel accuracy search).
FIG. 15 is a block diagram for explaining a conventional hierarchical motion vector detection device;
FIG. 16 is a diagram for explaining a conventional motion vector detection method (One at a time);
[Explanation of symbols]
101-104 Motion vector detection device
u1a, u1b, u1c motion vector generator
u2 frame memory
u3a, u3b, u3c Error calculator
u4a, u4b, u4c Minimum error selector
u5a, u5b, u5c censor
u6, u7 selector
u8 temporary memory
C1t first motion compensation data
C2t second motion compensation data
Cm Motion detection command signal
Dc judgment data
Dca first determination data
Dcb second determination data
Dcf final judgment data
D1p, D2p, D3p First, second and third image error data
Dmp minimum error data
Dsp selection error data
Drp reference error data
D1pm, D2pm First and second motion compensation errors (minimum error data)
MVc candidate motion vector
MVs selection motion vector
MV1c, MV2c, MV3c First, second and third candidate motion vectors
MVs selection motion vector
MV1s, MV2s first and second selected motion vectors (first and second layer motion vectors)
MV3s target block motion vector
St image signal
Sc Motion vector search center information
Et image encoded data
Cs computer system
D floppy disk body
FC floppy disk case
FD floppy disk
FDD floppy disk drive
Se sector
Tr track
Claims (13)
上記予測ブロックの位置の探索を開始する位置である動きベクトル探索中心に対応するブロックと、上記処理対象となる被処理ブロックとの間での画像データの誤差を、上記動きベクトル探索中心に対応する動き補償誤差として算出する算出処理と、
上記被処理ブロックの近傍に位置する近傍ブロックと、これに対応する予測ブロックとの間での画像データの誤差である、近傍ブロックに対応する動き補償誤差を、上記動きベクトル探索中心に対応する動き補償誤差と比較する比較処理とを含み、
上記両動き補償誤差の比較結果に応じて、上記動きベクトル探索中心を示す位置情報を上記被処理ブロックに対応する動きベクトルとして出力するか、あるいは上記動きベクトル検出処理を上記動きベクトル探索中心を探索開始位置として行って得られる動きベクトルを被処理ブロックに対応する動きベクトルとして出力するかを切り替えることを特徴とする動きベクトル検出方法。For each block consisting of a predetermined number of pixels, which is a unit for processing image data corresponding to the screen to be processed, the position of the prediction block corresponding to the block to be processed on the reference screen is searched under a certain condition. A motion vector detection method including a motion vector detection process for detecting information indicating the position of the prediction block as a motion vector corresponding to the processing target block,
The error of the image data between the block corresponding to the motion vector search center that is the position where the search for the position of the prediction block is started and the processing target block to be processed corresponds to the motion vector search center. A calculation process for calculating motion compensation error;
The motion compensation error corresponding to the neighboring block, which is the error of the image data between the neighboring block located in the vicinity of the block to be processed and the prediction block corresponding thereto, is represented by the motion corresponding to the motion vector search center. A comparison process for comparing with the compensation error,
According to the comparison result of the both motion compensation errors, position information indicating the motion vector search center is output as a motion vector corresponding to the block to be processed, or the motion vector detection process searches for the motion vector search center. A motion vector detection method characterized by switching whether to output a motion vector obtained as a start position as a motion vector corresponding to a block to be processed.
上記動きベクトル探索中心に対応する動き補償誤差が上記近傍ブロックに対応する動き補償誤差より小さいとき、上記動きベクトル探索中心を示す位置情報をそのまま被処理ブロックに対応する動きベクトルとして出力することを特徴とする動きベクトル検出方法。The motion vector detection method according to claim 1,
When the motion compensation error corresponding to the motion vector search center is smaller than the motion compensation error corresponding to the neighboring block, the position information indicating the motion vector search center is output as it is as a motion vector corresponding to the processing block. A motion vector detection method.
上記動きベクトル探索中心に対応する動き補償誤差が上記近傍ブロックに対応する動き補償誤差より小さく、かつ該動きベクトル探索中心に対応する動き補償誤差が所定値未満であるとき、上記動きベクトル探索中心を示す位置情報をそのまま被処理ブロックに対応する動きベクトルとして出力することを特徴とする動きベクトル検出方法。In the motion vector detection method according to claim 1,
When the motion compensation error corresponding to the motion vector search center is smaller than the motion compensation error corresponding to the neighboring block and the motion compensation error corresponding to the motion vector search center is less than a predetermined value, the motion vector search center is A motion vector detection method, wherein the indicated position information is output as it is as a motion vector corresponding to a block to be processed.
外部から動き検出指令信号が入力されたとき、上記近傍ブロックに対応する動き補償誤差及び上記動きベクトル探索中心に対応する動き補償誤差の大小関係に拘わらず、上記動きベクトル検出処理を上記動きベクトル探索中心を探索開始位置として行って得られる動きベクトルを、被処理ブロックに対応する動きベクトルとして出力することを特徴とする動きベクトル検出方法。The motion vector detection method according to claim 3, wherein
When a motion detection command signal is input from the outside, the motion vector detection process is performed regardless of the magnitude relationship between the motion compensation error corresponding to the neighboring block and the motion compensation error corresponding to the motion vector search center. A motion vector detection method comprising: outputting a motion vector obtained by performing the search using a center as a search start position as a motion vector corresponding to a block to be processed.
上記近傍ブロックに対応する動き補償誤差と、上記動きベクトル探索中心に対応する動き補償誤差との差分の大きさが所定値未満であるとき、上記動きベクトル探索中心を示す位置情報をそのまま被処理ブロックに対応する動きベクトルとして出力することを特徴とする動きベクトル検出方法。The motion vector detection method according to claim 1,
When the magnitude of the difference between the motion compensation error corresponding to the neighboring block and the motion compensation error corresponding to the motion vector search center is less than a predetermined value, the position information indicating the motion vector search center is used as it is as the processing block. A motion vector detection method, wherein the motion vector is output as a motion vector corresponding to.
上記参照画面上に設定された第1の探索範囲にて上記予測ブロックの位置を探索して、被処理ブロックに対応する第1の候補動きベクトルにより特定される参照画面上のブロックと、被処理画面上の被処理ブロックとの間での画像データの誤差である第1の動き補償誤差を算出する処理と、
上記第1の候補動きベクトルが示す画素位置の近傍に位置する上記参照画面上の第2の探索範囲にて、上記予測ブロックの位置を探索して、被処理ブロックに対応する第2の候補動きベクトルにより特定される参照画面上のブロックと、被処理画面上の被処理ブロックとの間での画像データの誤差である第2の動き補償誤差を算出する処理と、
上記第1の候補動きベクトルと第2の候補動きベクトルに基づいて設定された上記参照画面上の第3の探索範囲にて、上記予測ブロックの位置を探索して、被処理ブロックに対応する第3の候補動きベクトルにより特定される上記参照画面上のブロックと、被処理画面上の被処理ブロックとの間での画像データの誤差である第3の動き補償誤差を算出する処理と、
上記第1,第2,第3の動き補償誤差を比較して、その比較結果に応じて、上記第1,第2,第3の候補動きベクトルのうちの1つを、被処理ブロックに対応する動きベクトルとして選択する処理とを含むことを特徴とする動きベクトル検出方法。For each block consisting of a predetermined number of pixels, which is a unit for processing image data corresponding to the screen to be processed, the position of the prediction block corresponding to the block to be processed on the reference screen is searched under certain conditions. A motion vector detection method for detecting information indicating the position of the prediction block as a motion vector corresponding to the block to be processed,
A block on the reference screen identified by the first candidate motion vector corresponding to the block to be processed, by searching for the position of the prediction block in the first search range set on the reference screen; A process of calculating a first motion compensation error, which is an error of image data with a block to be processed on the screen;
In the second search range on the reference screen located in the vicinity of the pixel position indicated by the first candidate motion vector, the position of the predicted block is searched for, and the second candidate motion corresponding to the block to be processed A process of calculating a second motion compensation error, which is an error in image data, between a block on the reference screen specified by the vector and a block to be processed on the processing screen;
The position of the predicted block is searched for in the third search range on the reference screen set based on the first candidate motion vector and the second candidate motion vector, and the position corresponding to the block to be processed is searched. Processing for calculating a third motion compensation error, which is an error in image data, between the block on the reference screen identified by the candidate motion vector of 3 and the block to be processed on the processing screen;
The first, second, and third motion compensation errors are compared, and one of the first, second, and third candidate motion vectors is associated with the block to be processed according to the comparison result. A motion vector detection method comprising: selecting as a motion vector to be performed.
上記第3の探索範囲は、上記参照画面上にて第1および第2の探索範囲以外の領域に設定され、
上記第3の探索範囲における上記予測ブロックの位置の探索は、上記第1および第2の動き補償誤差を参照せずに行われることを特徴とする動きベクトル検出方法。The motion vector detection method according to claim 6,
The third search range is set in an area other than the first and second search ranges on the reference screen,
The motion vector detection method, wherein the search for the position of the prediction block in the third search range is performed without referring to the first and second motion compensation errors.
上記第1の探索範囲では、上記予測ブロックの位置を探索する処理として、画素単位の探索処理が行われ、
上記第3の探索範囲では、上記予測ブロックの位置を探索する処理は、上記参照画面における画素間の仮想画素に対応する画素値を補間して、半画素以上の精度で行われることを特徴とする動きベクトル検出方法。The motion vector detection method according to claim 6,
In the first search range, pixel-by-pixel search processing is performed as processing for searching for the position of the prediction block,
In the third search range, the process of searching for the position of the prediction block is performed with an accuracy of half a pixel or more by interpolating pixel values corresponding to virtual pixels between pixels on the reference screen. Motion vector detection method.
上記第2の探索範囲では、上記予測ブロックの位置は、上記参照画面における垂直もしくは水平方向のみに沿って探索され、上記第3の探索範囲では、上記予測ブロックの位置は、該第2の探索範囲における探索方向以外の方向に沿って探索されることを特徴とする動きベクトル検出方法。The motion vector detection method according to claim 6,
In the second search range, the position of the prediction block is searched along only the vertical or horizontal direction on the reference screen. In the third search range, the position of the prediction block is the second search range. A motion vector detection method characterized by searching along a direction other than a search direction in a range.
上記予測ブロックの位置の探索を開始する位置である動きベクトル探索中心に対応するブロックと、上記処理対象となる被処理ブロックとの間での画像データの誤差を、上記動きベクトル探索中心に対応する動き補償誤差として算出する誤差計算手段と、
上記被処理ブロックの近傍に位置する近傍ブロックと、これに対応する予測ブロックとの間での画像データの誤差である近傍ブロックに対応する動き補償誤差を、上記動きベクトル探索中心に対応する動き補償誤差と比較する比較手段と、
上記両動き補償誤差の比較結果に応じて、上記被処理ブロックに対する動きベクトル検出処理を行うべきか否かを判別する判別手段と、
上記判別手段により動きベクトル検出処理を行うべきと判別されたときのみ、上記動きベクトル探索中心を探索開始位置として上記動きベクトル検出処理を行って動きベクトルを検出する動き検出手段と、
上記判別手段にて動きベクトル検出処理を行うべきと判別されたとき、上記動き検出手段により検出された動きベクトルを被処理ブロックに対応する動きベクトルとして出力し、上記判別手段にて動きベクトル検出処理を行うべきではないと判別されたとき、上記動きベクトル探索中心を示す位置情報をそのまま被処理ブロックに対応する動きベクトルとして出力する選択手段と、
上記選択手段から出力される動きベクトルに対応する動き補償誤差を、他のブロックに対する動きベクトル検出処理を行うか否かを判定するためのデータとして一時的に格納するメモリとを備えたことを特徴とする動きベクトル検出装置。For each block consisting of a predetermined number of pixels, which is a unit for processing image data corresponding to the screen to be processed, the position of the prediction block corresponding to the block to be processed on the reference screen is searched under a certain condition. A motion vector detection device that performs a motion vector detection process for detecting information indicating the position of the prediction block as a motion vector corresponding to the block to be processed,
The error of the image data between the block corresponding to the motion vector search center that is the position where the search for the position of the prediction block is started and the processing target block to be processed corresponds to the motion vector search center. An error calculating means for calculating motion compensation error;
The motion compensation error corresponding to the neighboring block, which is the error of the image data between the neighboring block located in the vicinity of the block to be processed and the prediction block corresponding thereto, is compensated for the motion compensation corresponding to the motion vector search center. A comparison means for comparing with the error;
A discriminating means for discriminating whether or not to perform motion vector detection processing for the block to be processed in accordance with a comparison result of the both motion compensation errors;
Only when it is determined that the motion vector detection process should be performed by the determination means, a motion detection means for detecting a motion vector by performing the motion vector detection process with the motion vector search center as a search start position;
When it is determined that the motion vector detection process should be performed by the determination means, the motion vector detected by the motion detection means is output as a motion vector corresponding to the block to be processed, and the motion vector detection process is performed by the determination means Selecting means for outputting the position information indicating the motion vector search center as it is as a motion vector corresponding to the block to be processed,
And a memory that temporarily stores motion compensation errors corresponding to the motion vectors output from the selection means as data for determining whether or not to perform motion vector detection processing for other blocks. A motion vector detection device.
上記参照画面上に設定された第1の探索範囲にて上記予測ブロックの位置を探索して、被処理ブロックに対応する第1の候補動きベクトルにより特定される参照画面上のブロックと、被処理画面上の被処理ブロックとの間での画像データの誤差である第1の動き補償誤差を算出する第1の動き検出手段と、
上記第1の候補動きベクトルが示す画素位置の近傍に位置する上記参照画面上の第2の探索範囲にて、上記予測ブロックの位置を探索して、被処理ブロックに対応する第2の候補動きベクトルにより特定される参照画面上のブロックと、被処理ブロックとの間での画像データの誤差である第2の動き補償誤差を算出する第2の動き検出手段と、
上記第1の候補動きベクトルと第2の候補動きベクトルに基づいて設定された上記参照画面上の第3の探索範囲にて上記予測ブロックの位置を探索して、被処理ブロックに対応する第3の候補動きベクトルにより特定される上記参照画面上のブロックと、被処理ブロックとの間での画像データの誤差である第3の動き補償誤差を算出する第3の動き検出手段と、
上記第1,第2,第3の動き補償誤差を比較して、その比較結果に応じて、上記第1,第2,第3の候補動きベクトルのうちの1つを、被処理ブロックに対応する動きベクトルとして選択する選択手段とを備えたことを特徴とする動きベクトル検出装置。For each block consisting of a predetermined number of pixels, which is a unit for processing image data corresponding to the screen to be processed, the position of the prediction block corresponding to the block to be processed on the reference screen is searched under a certain condition. A motion vector detection device that detects information indicating the position of the prediction block as a motion vector corresponding to the block to be processed,
A block on the reference screen identified by the first candidate motion vector corresponding to the block to be processed, by searching for the position of the prediction block in the first search range set on the reference screen; First motion detection means for calculating a first motion compensation error, which is an error of image data with a processing target block on the screen;
In the second search range on the reference screen located in the vicinity of the pixel position indicated by the first candidate motion vector, the position of the predicted block is searched for, and the second candidate motion corresponding to the block to be processed Second motion detection means for calculating a second motion compensation error, which is an error of image data between a block on the reference screen specified by the vector and the block to be processed;
The position of the predicted block is searched for in the third search range on the reference screen set based on the first candidate motion vector and the second candidate motion vector, and the third corresponding to the block to be processed. Third motion detection means for calculating a third motion compensation error, which is an error in image data between the block on the reference screen specified by the candidate motion vector and the block to be processed;
The first, second, and third motion compensation errors are compared, and one of the first, second, and third candidate motion vectors is associated with the block to be processed according to the comparison result. A motion vector detection apparatus comprising: selection means for selecting a motion vector to be performed.
上記プログラムは、コンピュータに、請求項1記載の動きベクトル検出方法により被処理ブロックに対応する動きベクトルを検出する処理を行わせるためのプログラムであることを特徴とするデータ記憶媒体。A data storage medium storing a program,
A data storage medium for causing a computer to perform a process of detecting a motion vector corresponding to a block to be processed by the motion vector detection method according to claim 1.
上記プログラムは、コンピュータに、請求項6記載の動きベクトル検出方法により被処理ブロックに対応する動きベクトルを検出する処理を行わせるためのプログラムであることを特徴とするデータ記憶媒体。A data storage medium storing a program,
7. A data storage medium characterized in that the program is a program for causing a computer to perform a process of detecting a motion vector corresponding to a block to be processed by the motion vector detection method according to claim 6.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000076925A JP4223169B2 (en) | 1999-03-17 | 2000-03-17 | Motion vector detection method, motion vector detection device, and data recording medium |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11-72283 | 1999-03-17 | ||
JP7228399 | 1999-03-17 | ||
JP2000076925A JP4223169B2 (en) | 1999-03-17 | 2000-03-17 | Motion vector detection method, motion vector detection device, and data recording medium |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000333184A JP2000333184A (en) | 2000-11-30 |
JP4223169B2 true JP4223169B2 (en) | 2009-02-12 |
Family
ID=26413422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000076925A Expired - Fee Related JP4223169B2 (en) | 1999-03-17 | 2000-03-17 | Motion vector detection method, motion vector detection device, and data recording medium |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4223169B2 (en) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4608136B2 (en) * | 2001-06-22 | 2011-01-05 | オリンパス株式会社 | Motion vector and parallax vector detection device |
JP4923368B2 (en) * | 2001-09-17 | 2012-04-25 | 富士通株式会社 | Tracking type motion vector search method and apparatus |
KR20040013325A (en) * | 2002-08-05 | 2004-02-14 | 엘지전자 주식회사 | Method for compression moving picture |
JP4519676B2 (en) * | 2004-02-27 | 2010-08-04 | パナソニック株式会社 | Motion detection method and video encoding method |
US7894526B2 (en) | 2004-02-27 | 2011-02-22 | Panasonic Corporation | Motion estimation method and moving picture coding method |
US8358696B2 (en) * | 2008-12-31 | 2013-01-22 | Intel Corporation | Motion estimation techniques |
JP2013523038A (en) * | 2010-03-22 | 2013-06-13 | トムソン ライセンシング | Method and apparatus for low-band content that preserves compression of stereoscopic 3D images |
JP6074404B2 (en) * | 2014-12-12 | 2017-02-01 | トムソン ライセンシングThomson Licensing | Method and apparatus for low-band content that preserves compression of stereoscopic 3D images |
KR20200012957A (en) * | 2017-06-30 | 2020-02-05 | 후아웨이 테크놀러지 컴퍼니 리미티드 | Inter-frame Prediction Method and Device |
JP6914462B2 (en) * | 2019-06-20 | 2021-08-04 | Kddi株式会社 | Image decoding device, image decoding method and program |
JP6835337B2 (en) * | 2019-06-20 | 2021-02-24 | Kddi株式会社 | Image decoding device, image decoding method and program |
JP7026276B2 (en) * | 2021-01-20 | 2022-02-25 | Kddi株式会社 | Image decoder, image decoding method and program |
JP7076660B2 (en) * | 2021-01-20 | 2022-05-27 | Kddi株式会社 | Image decoder, image decoding method and program |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05236452A (en) * | 1991-04-08 | 1993-09-10 | Olympus Optical Co Ltd | Method and device for detection motion vector |
JPH0799658A (en) * | 1993-08-03 | 1995-04-11 | Sony Corp | Motion vector detector |
JPH07162864A (en) * | 1993-12-08 | 1995-06-23 | Ricoh Co Ltd | Motion vector detecting method |
JPH0970046A (en) * | 1995-08-31 | 1997-03-11 | Victor Co Of Japan Ltd | Motion vector detector |
JPH10164586A (en) * | 1996-11-29 | 1998-06-19 | Sharp Corp | Motion vector detection circuit |
JPH10327401A (en) * | 1997-05-22 | 1998-12-08 | Hitachi Ltd | Motion vector detection method and image signal coding method and apparatus using the same |
JP3155509B2 (en) * | 1997-06-17 | 2001-04-09 | 日本電信電話株式会社 | Motion vector search method, motion vector search device, and storage medium storing motion vector search program |
-
2000
- 2000-03-17 JP JP2000076925A patent/JP4223169B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000333184A (en) | 2000-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7158570B2 (en) | Motion picture encoding apparatus | |
EP1147668B1 (en) | Improved motion estimation and block matching pattern | |
EP1779662B1 (en) | Method and device for motion estimation and compensation for panorama image | |
JP4846719B2 (en) | Panorama motion estimation and compensation | |
US8054890B2 (en) | Method for encoding and decoding video signal | |
US6928234B2 (en) | Picture recording apparatus and method thereof | |
JP4223169B2 (en) | Motion vector detection method, motion vector detection device, and data recording medium | |
JPWO2008136178A1 (en) | Motion detection device, motion detection method, and motion detection program | |
US6438254B1 (en) | Motion vector detection method, motion vector detection apparatus, and data storage media | |
US20030112870A1 (en) | Encoder and decoder | |
CN101304530A (en) | Moving picture decoding integrated circuit, moving picture decoding method, device and program | |
CN101123728A (en) | Motion vector detection apparatus and motion vector detection method | |
US6480543B1 (en) | Detection of a change of scene in a motion estimator of a video encoder | |
US6836273B1 (en) | Memory management method, image coding method, image decoding method, image display method, memory management apparatus, and memory management program storage medium | |
JPH05227525A (en) | Picture encoder | |
JP2007228560A (en) | Moving picture coding method and moving picture coding device | |
JP4709155B2 (en) | Motion detection device | |
JPH11239352A (en) | Image processing method, image processing unit and data storage medium | |
JP2002094987A (en) | Video signal encoder | |
JP3886784B2 (en) | Apparatus and method for identifying object in moving image | |
JP2001145011A (en) | Video signal encoder | |
JPH10327410A (en) | Data structure for image transmission, coding and decoding methods | |
JPH07264594A (en) | Motion compensative prediction encoding method for dynamic image | |
WO2006103984A1 (en) | Motion detection device | |
JP2003274411A (en) | Image encoding method and image decoding method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070316 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081021 |
|
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: 20081028 |
|
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: 20081119 |
|
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: 20111128 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111128 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121128 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |