JP3620080B2 - Motion vector detection circuit - Google Patents
Motion vector detection circuit Download PDFInfo
- Publication number
- JP3620080B2 JP3620080B2 JP3174395A JP3174395A JP3620080B2 JP 3620080 B2 JP3620080 B2 JP 3620080B2 JP 3174395 A JP3174395 A JP 3174395A JP 3174395 A JP3174395 A JP 3174395A JP 3620080 B2 JP3620080 B2 JP 3620080B2
- Authority
- JP
- Japan
- Prior art keywords
- motion vector
- sum
- circuit
- supplied
- vector detection
- 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
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
【0001】
【産業上の利用分野】
この発明は、例えば動画像の高能率符号化におけるブロックマッチング法を用いた動きベクトル検出回路に関する。
【0002】
【従来の技術】
動きベクトルの検出方法の1つとして、ブロックマッチング法が知られている。ブロックマッチング法は、例えばマクロブロックが(16×16)画素ごとの評価関数により動きベクトルを求める方法である。一般的に評価関数の演算方法としては、差分絶対値和が用いられる。例えば動画像データの時間方向の冗長度を削減し、データ量の圧縮を行なう高能率符号化方式において動きベクトルの検出が行なわれる。
【0003】
このブロックマッチング法による動きベクトルの検出方法を図11に示す。145は、処理されるフレームである。処理されるフレーム145は(16×16)画素の処理マクロブロック146に分割され、これらのマクロブロックごとに動きベクトルが検出される。参照フレーム141からは、サーチウィンドウ142と呼ばれる動きベクトルを探索する範囲の画素データが切り出される。
【0004】
動きベクトルの評価関数の演算方法としては、サーチウィンドウ内の処理マクロブロックと、処理マクロブロックと同一位置或いはシフトされた位置の候補マクロブロックとの差分絶対値和が一般的に用いられる。即ち、マクロブロック間で対応する位置の画素値の差分が求められ、この差分の絶対値が1マクロブロック分累算したものが差分絶対値和である。差分絶対値の代わりに、差分の二乗値和を累算したものを評価関数として用いてもよい。
【0005】
図11において、点線で示す候補マクロブロック143は処理マクロブロック146と対応する位置のものである。実線で示す候補マクロブロック144は、評価関数の値が最小となるものである。この候補マクロブロック144の位置に応じた動きベクトルが求められる。図11に示される動きベクトルの例は、右方向及び下方向が正である座標で(−2,4)と表される。
【0006】
次に、ブロックマッチング法の演算量を削減するため、サブサンプリングパターンを利用する方法がある。マクロブロックが(16×16)画素の大きさの場合の1/2サブサンプリングパターンの例を図12に示す。また、マクロブロックが(4×4)画素の大きさの場合の1/2サブサンプリングパターンの例を図13に示す。
【0007】
白丸及び黒丸は、第1フィールド(#1)の画素を示し、白い四角及び黒い四角は、第2フィールド(#2)の画素を示す。差分絶対値和を計算する際は、白丸及び白い四角の画素のみ差分絶対値和を計算する。これらの1/2サブサンプリングパターンの評価関数を利用すれば、画素数が半分になるのと対応して演算量を1/2に削減することができる。
【0008】
マクロブロックが(4×4)画素の大きさの場合の従来の動きベクトルの検出方法を図14を参照して説明する。上述と同様に、処理されるフレームは(4×4)画素の処理マクロブロック152に分割され、動きベクトルが検出される。参照されるフレーム内の点線で示す候補マクロブロック151が処理マクロブロック152と対応する位置のものである。
【0009】
そして、複数の候補マクロブロック中の太線で示す候補マクロブロック153に関する評価関数が最小の場合には、右方向及び下方向が正である座標で(1,2)と表される動きベクトルが求まる。ここで、垂直方向に関して1マクロブロックを構成する複数の画素(図14では4画素)を単位として帯状に区切られた領域をストライプと称する。図14に示す処理されるフレームの上側半分のストライプを処理ストライプMBと称する。また、参照されるフレームの上側半分のストライプを上段ストライプSW1、下側半分のストライプを下段ストライプSW2とそれぞれ称する。
【0010】
図14に示す動きベクトル検出方法を実現する、従来の動きベクトル検出回路の一例を図15に示す。図15において、上段ストライプSW1のデータが上段ストライプ入力端子161からシリアル・パラレル変換回路164を介して選択回路166に供給される。下段ストライプSW2のデータが下段ストライプ入力端子162からシリアル・パラレル変換回路165を介して選択回路166に供給される。
【0011】
選択回路166の出力がPE(Processor Element 、処理要素)回路167に供給される。処理マクロブロックMBのデータが処理ストライプ入力端子163からPE回路167に供給される。PE回路167の出力が最小値選択回路168を介して出力端子169に供給される。
【0012】
この動きベクトル検出回路は、水平及び垂直方向のそれぞれで0から3までの合計16ポイントの動きベクトルを探索する。選択回路166内の16個のセレクタは、2入力の一方を選択するセレクタである。PE回路167では、各PEごとに差分絶対値和が計算される。最小値選択回路168では、各PEで計算された差分絶対値和を最小とする動きベクトルが選択される。
【0013】
図16にPE回路167内の各PEの回路構成を示す。171は、PEを全体として示す。入力端子172から候補マクロブロック側の画素データが減算器174に供給される。また、減算器174には入力端子173から処理マクロブロック側の画素データが供給される。減算器174の出力が絶対値回路175を介して加算器178に供給される。
【0014】
また、加算器178にはセレクタ177の出力が供給される。加算器178の出力が出力端子180に供給されると共に、遅延回路179を介してセレクタ177に供給される。端子176からは、リセット入力(全て“0”のデータ)がセレクタ177に供給される。これらの加算回路178、セレクタ177、遅延回路179が差分絶対値和を形成する。
【0015】
図17に処理マクロブロック側のPE回路167のPE0からPE15に対する入力データシーケンスを示す。図18にサーチウィンドウ側のPE回路167のPE0からPE15に対する入力データシーケンスを示す。図17及び図18の太線192及び202と点線191及び201のデータは、図14に示す候補マクロブロック153と候補マクロブロック151にそれぞれ対応している。
【0016】
図15に示す動きベクトル検出回路は、1つのPEが1つの候補マクロブロックの評価関数の演算を受け持っている。即ち、1つの動きベクトルに対応している。そして、各画素の差分絶対値和が時間方向の加算で行なわれることによって、評価関数が求められている。
【0017】
【発明が解決しようとする課題】
上述の動きベクトル検出回路において、図13に示すような1/2サブサンプリングパターンの処理マクロブロック(0、2、5、7、8、10、13、15)の番号の画素については、差分絶対値を求める処理が不要である。
【0018】
しかしながら、従来の動きベクトル検出回路で評価関数を求めるために、各画素の差分絶対値が時間方向に加算されるので、サブサンプリングを利用しても16個のセレクタを含む選択回路166と、16個のPEを含むPE回路167を必要とし、回路規模を削減することはできないという問題がある。更に、図12及び図13に示す1/2サブサンプリングパターンよりも、動きベクトルの検出効率を保ちながら更なる演算量及び回路規模の削減が可能となるサブサンプリングパターンが望まれる。
【0019】
従って、この発明の目的は、動きベクトルの検出効率を保ちながら、演算量及び回路規模の削減が可能となる動きベクトル検出回路を提供することにある。
【0020】
【課題を解決するための手段】
この発明は、処理ブロックとサーチウィンドウ内の複数の候補ブロックの各々との対応する画素毎に差分を求め、差分の絶対値和または二乗値和を計算し、絶対値和または二乗値和の最小値から動きベクトルを検出するようにした動きベクトル検出回路において、
サブサンプリングパターンに従って必要とする、処理ブロック内の各画素データを1ブロック周期の間、並列に保持する保持手段と、
サブサンプリングパターンに従って必要とする、異なる候補ブロックの画素データを1ブロック周期毎に並列に発生する並列化手段と、
保持手段からの各画素データが一方の入力として共通に供給されると共に、並列化手段からの候補ブロックの並列化データの各画素データが他方の入力として供給される複数の減算手段と、
複数の減算手段の出力の差分を1ブロック周期毎に積算すると共に、差分の絶対値和または二乗値和を求める積算手段と、
各ブロック周期で積算手段によって求められた差分の絶対値和または二乗値和の中で最小値を検出する検出手段とからなることを特徴とする動きベクトル検出回路である。
【0021】
【作用】
動きベクトル検出回路は、水平及び垂直方向のそれぞれで0から3までの合計16ポイントの動きベクトルを探索する。処理マクロブロックMBのデータはシリアル・パラレル変換回路においてデータは並列化され、更にデータ保持回路で1マクロブロック周期の間、データを保持する。
【0022】
PE回路では各タイムスロット(1ブロック周期)ごとに各PEが各サンプリングの差分絶対値を計算し、積算回路が処理マクロブロックと1つの候補マクロブロック間で生じる16サンプル分の差分絶対値を加算し、差分絶対値和が計算される。最小値選択回路では、計算された差分絶対値和が最小となる動きベクトルが選択される。
【0023】
【実施例】
先ず、この発明の動きベクトル検出回路を利用する高能率符号化方式の一例の概要について説明する。符号化の方法としては、広く知られているMC−DCT(動き補償−離散コサイン変換)符号化方式を例として説明する。
【0024】
図1にMC−DCT符号化方式の回路構成を示す。ディジタル画像信号が入力端子1から動きベクトル検出回路5に供給されると共に、減算器2に供給される。また、減算器2には動き補償回路4の出力が供給される。減算器2の出力がDCT(離散コサイン変換)回路3を介して量子化器6に供給される。量子化器6の出力が可変長符号化回路11に供給されると共に、逆量子化器7に供給される。可変長符号化回路11の出力が出力端子12に供給される。
【0025】
逆量子化器7の出力が逆DCT回路8を介して加算器9に供給される。また、加算器9には動き補償回路4の出力が供給される。加算器9の出力がフレームメモリ10に供給される。フレームメモリ10の出力が動き補償回路4に供給されると共に、動きベクトル検出回路5に供給される。動きベクトル検出回路5の出力(動きベクトル)が動き補償回路4に供給されると共に、出力端子13に供給される。
【0026】
図1において、減算器2で入力画像信号と予測信号の誤差が計算される。予測信号は、フレームメモリ10にある前フレームの信号から動き補償回路4で動き補償されて得られる。動き補償に必要な動きベクトルは、動きベクトル検出回路5で検出される。DCT回路3では、マクロブロックが(8×8)画素程度のブロックに対して2次元DCTが行なわれる。
【0027】
DCT係数は量子化器6で量子化され、量子化レベルを得る。この量子化レベルが可変長符号化回路11に供給され、可変長符号化回路11ではハフマン符号化などにより符号化が行なわれ、バッファメモリを経て伝送、記録される。逆量子化器7でDCT係数を得て、逆DCT回路8で復号された復号信号を得る。ローカル復号されたデータは、フレームメモリ10に蓄えられる。この発明は、動きベクトル検出回路5に関するものである。
【0028】
次に、この発明の一実施例について説明するが、理解の容易のための動きベクトル検出回路の一構成例を図2を参照して説明する。一例として、マクロブロックが(4×4)画素で図14に示すように画素データが配列されている。図2において、上段ストライプSW1のデータ0〜31が上段ストライプ入力端子21からシリアル・パラレル変換回路24を介して選択回路27に供給される。下段ストライプSW2のデータ0〜31が下段ストライプ入力端子22からシリアル・パラレル変換回路25を介して選択回路27に供給される。
【0029】
選択回路27の出力がPE回路29に供給される。処理マクロブロックMBのデータ0〜15が処理ストライプ入力端子23からシリアル・パラレル変換回路26及びデータ保持回路28を介してPE回路29に供給される。PE回路29の出力が積算回路30及び最小値選択回路31を介して出力端子32に供給される。
【0030】
この動きベクトル検出回路は、水平及び垂直方向のそれぞれで0から3までの合計16ポイントの動きベクトルを探索する。処理マクロブロックMBのデータはシリアル・パラレル変換回路26においてデータは並列化され、更にデータ保持回路28で1マクロブロック周期の間、データを保持する。データ保持回路28は、16個の保持回路(SD)を有する。
【0031】
PE回路29では各タイムスロット(1ブロック周期)ごとに各PEが各サンプリングの差分絶対値を計算し、積算回路30が処理マクロブロックと1つの候補マクロブロック間で生じる16サンプル分の差分絶対値を加算し、差分絶対値和が計算される。最小値選択回路31では、計算された差分絶対値和が最小となる動きベクトルが選択される。
【0032】
図3にPE回路29内の各PEの回路構成を示す。この各PEの回路構成は、後述するこの発明の一実施例及び他の実施例の動きベクトル検出回路に共通するものである。41は、PEを全体として示す。入力端子42の出力が減算器44に供給される。また、減算器44には入力端子43の出力が供給される。減算器44の出力が絶対値回路45を介して出力端子46に供給される。
【0033】
図4にデータ保持回路28内の各保持回路の回路構成を示す。この各保持回路の回路構成は、後述するこの発明の一実施例及び他の実施例の動きベクトル検出回路に共通するものである。51は、保持回路を全体として示す。入力端子52の出力がセレクタ53に供給される。また、セレクタ53にはD−フリップフロップ54の出力が供給される。セレクタ53の出力がD−フリップフロップ54に供給されると共に、出力端子55に供給される。
【0034】
図5に処理マクロブロック側のPE回路29のPE0からPE15に対する入力データシーケンスを示す。図6にサーチウィンドウ側のPE回路29のPE0からPE15に対する入力データシーケンスを示す。
【0035】
図5及び図6の太線62及び72と点線61及び71のデータは、図14に示す候補マクロブロック153と候補マクロブロック151にそれぞれ対応している。図2に示す動きベクトル検出回路は、1つのタイムスロットが1つの候補マクロブロックの評価関数の演算、即ち、1つの動きベクトルに対応している。そして、各画素の差分絶対値和が各PEの加算で行なわれる。
【0036】
従来の動きベクトル検出回路では、サブサンプリングの評価関数を利用しても回路規模を削減することができない。それに対して、図2に示す1クロック周期が1つの動きベクトルの評価関数の演算処理に相当するような動きベクトル検出回路であれば、サブサンプリングを利用して回路規模を削減することができる。
【0037】
1/2サブサンプリングパターンを利用する、この発明の一実施例を図7に示す。図7において、上段ストライプSW1のデータが上段ストライプ入力端子81からシリアル・パラレル変換回路84に供給され、並列化したデータの中でサブサンプリングパターンに従って必要とする、画素データのみが選択回路87に供給される。下段ストライプSW2のデータが下段ストライプ入力端子82からシリアル・パラレル変換回路85に供給され、必要とする画素データのみが選択回路87に供給される。
【0038】
選択回路87の出力がPE回路89に供給される。処理マクロブロックMBのデータが処理ストライプ入力端子83からシリアル・パラレル変換回路86及びデータ保持回路88を介してPE回路89に供給される。この場合も、サブサンプリングパターンに従って必要な画素データのみがデータ保持回路88及びPE回路89に供給される。PE回路89の出力が積算回路90及び最小値選択回路91を介して出力端子92に供給される。
【0039】
図7に示すこの発明の一実施例の動きベクトル検出回路と図15に示す従来の動きベクトル検出回路とを比較すると、選択回路87、PE回路89において演算量及び回路規模が半減していることが分かる。
【0040】
次に、ここまでの動きベクトル検出回路はフレーム予測を前提に行なってきたが、フィールド予測と呼ばれる方法も知られている。フレーム予測は、マクロブロック単位に動きベクトルを検出する方法である。一方、フィールド予測はマクロブロックが(16×16)画素の大きさの場合には、それぞれが(8×16)画素の奇数フィールドマクロブロックと偶数フィールドマクロブロックに分け、それぞれ別個に動きベクトルを検出する方法である。
【0041】
この発明の他の実施例を図8に示す。他の実施例は、図2に示す動きベクトル検出回路をフィールド/フレーム予測対応としたものである。但し、サブサンプリングは使用していない。図8において、上段ストライプSW1のデータが上段ストライプ入力端子101からシリアル・パラレル変換回路104を介して選択回路107に供給される。下段ストライプSW2のデータが下段ストライプ入力端子102からシリアル・パラレル変換回路105を介して選択回路107に供給される。
【0042】
選択回路107の出力がPE回路109に供給される。処理マクロブロックMBのデータが処理ストライプ入力端子103からシリアル・パラレル変換回路106及びデータ保持回路108を介してPE回路109に供給される。PE回路109の出力が積算回路110に供給されると共に、積算回路111に供給される。
【0043】
積算回路110の出力が加算器112に供給されると共に、最小値選択回路113を介して出力端子116に供給される。積算回路111の出力が加算器112に供給されると共に、最小値選択回路115を介して出力端子118に供給される。加算器112の出力が最小値選択回路114を介して出力端子117に供給される。
【0044】
図8に示すこの発明の他の実施例の動きベクトル検出回路と図2に示す動きベクトル検出回路とを比較すると、積算回路30を第1フィールド(#1)用の積算回路111と第2フィールド(#2)用の積算回路110に分け、フィールドごとの差分絶対値和を求めるが相違している。また、加算器112によって、2つのフィールドの差分絶対値和を加算することによって、フレーム予測の差分絶対値和を計算することができる。
【0045】
そして、フィールド(#1)用の最小値選択回路115、フィールド(#2)用の最小値選択回路113、フレーム用の最小値選択回路114によりそれぞれフィールド予測、フレーム予測の動きベクトルが選択される。
【0046】
尚、この発明は一実施例及び他の実施例に限定されるものではなく、1/4サブサンプリングパターンの評価関数を利用しても良い。この場合、動きベクトルの検出効率を保つためには、空間的な散らばりのあるサブサンプリングパターンが望ましい。
【0047】
フレーム予測の場合に適したフレーム内での散らばりのある1/4サブサンプリングパターンの例を図9に示す。このサブサンプリングパターンでは差分絶対値和の演算量を1/4に削減できるにもかかわらず、動きベクトルの検出効率を保つことができる。
【0048】
また、フィールド予測の場合に適したフィールド内での散らばりのある1/4サブサンプリングパターンの例を図10に示す。このサブサンプリングパターンでは差分絶対値和の演算量を1/4に削減できるにもかかわらず、動きベクトルの検出効率を保つことができる。このような種々の変形が考えられる。
【0049】
【発明の効果】
この発明は、フィールド予測、フレーム予測等の種々の動きベクトルの検出方法に対応可能である。また、この発明は、従来技術に比べ1/2或いは1/4サブサンプリングパターンから動きベクトルの検出効率を保ちながら、更に大きな演算量及び回路規模の削減を可能とする。
【図面の簡単な説明】
【図1】この発明を説明するための高能率符号化方式のブロック図である。
【図2】この発明を説明するための動きベクトル検出回路のブロック図である。
【図3】この発明の一実施例及び他の実施例に共通する各PEのブロック図である。
【図4】この発明の一実施例及び他の実施例に共通する各保持回路のブロック図である。
【図5】この発明の処理マクロブロック側のPE回路の入力データシーケンスを示す略線図である。
【図6】この発明のサーチウィンドウ側のPE回路の入力データシーケンスを示す略線図である。
【図7】この発明の一実施例の動きベクトル検出回路のブロック図である。
【図8】この発明の他の実施例のフィールド/フレーム予測対応の動きベクトル検出回路のブロック図である。
【図9】この発明に使用できるフレーム予測に適した1/4サブサンプリングパターンの略線図である。
【図10】この発明に使用できるフィールド予測に適した1/4サブサンプリングパターンの略線図である。
【図11】ブロックマッチング法を説明するための略線図である。
【図12】マクロブロックが(16×16)画素の大きさの場合の1/2サブサンプリングパターンの略線図である。
【図13】マクロブロックが(4×4)画素の大きさの場合の1/2サブサンプリングパターンの略線図である。
【図14】マクロブロックが(4×4)画素の大きさの場合の動きベクトルの検出方法を説明するための略線図である。
【図15】従来の動きベクトル検出回路のブロック図である。
【図16】従来の動きベクトル検出回路における各PEのブロック図である。
【図17】従来の動きベクトル検出回路を説明するための入力データシーケンスを示す略線図である。
【図18】従来の動きベクトル検出回路を説明するための入力データシーケンスを示す略線図である。
【符号の説明】
28、88、108 データ保持回路
30、90、110、111 積算回路
31、91、113、114、115 最小値選択回路
112 加算器[0001]
[Industrial application fields]
The present invention relates to a motion vector detection circuit using a block matching method in, for example, high-efficiency encoding of moving images.
[0002]
[Prior art]
As one of motion vector detection methods, a block matching method is known. The block matching method is a method in which, for example, a macroblock obtains a motion vector using an evaluation function for each (16 × 16) pixel. In general, the sum of absolute differences is used as an evaluation function calculation method. For example, motion vectors are detected in a high-efficiency encoding method that reduces the redundancy of moving image data in the time direction and compresses the data amount.
[0003]
FIG. 11 shows a motion vector detection method using this block matching method.
[0004]
As a method for calculating a motion vector evaluation function, a sum of absolute differences between a processing macroblock in a search window and a candidate macroblock at the same position as or a position shifted from the processing macroblock is generally used. That is, the difference between pixel values at corresponding positions between macroblocks is obtained, and the sum of absolute values of differences is obtained by accumulating the absolute value of this difference for one macroblock. Instead of absolute differences may be used after accumulating square value sum of the differences as an evaluation function.
[0005]
In FIG. 11,
[0006]
Next, there is a method of using a sub-sampling pattern in order to reduce the calculation amount of the block matching method. FIG. 12 shows an example of a 1/2 sub-sampling pattern when the macroblock has a size of (16 × 16) pixels. FIG. 13 shows an example of a 1/2 sub-sampling pattern when the macro block has a size of (4 × 4) pixels.
[0007]
White circles and black circles indicate pixels in the first field (# 1), and white squares and black squares indicate pixels in the second field (# 2). When calculating the sum of absolute differences, the sum of absolute differences is calculated only for white circles and white square pixels. If the evaluation function of these 1/2 sub-sampling patterns is used, the amount of calculation can be reduced to 1/2 corresponding to the fact that the number of pixels is halved.
[0008]
A conventional motion vector detection method when the macroblock has a size of (4 × 4) pixels will be described with reference to FIG. As described above, the frame to be processed is divided into
[0009]
When the evaluation function related to the
[0010]
FIG. 15 shows an example of a conventional motion vector detection circuit that realizes the motion vector detection method shown in FIG. In FIG. 15, the data of the
[0011]
The output of the
[0012]
This motion vector detection circuit searches for motion vectors of a total of 16 points from 0 to 3 in the horizontal and vertical directions. The 16 selectors in the
[0013]
FIG. 16 shows a circuit configuration of each PE in the
[0014]
The
[0015]
FIG. 17 shows an input data sequence for PE0 to PE15 of the
[0016]
In the motion vector detection circuit shown in FIG. 15, one PE is responsible for the calculation of the evaluation function of one candidate macroblock. That is, it corresponds to one motion vector. Then, an evaluation function is obtained by performing the sum of absolute differences of each pixel by addition in the time direction.
[0017]
[Problems to be solved by the invention]
In the motion vector detection circuit described above, the absolute difference is applied to the pixels of the numbers of the processing macro blocks (0, 2, 5, 7, 8, 10, 13, 15) of the 1/2 sub-sampling pattern as shown in FIG. No processing for obtaining a value is required.
[0018]
However, since the absolute difference value of each pixel is added in the time direction in order to obtain the evaluation function by the conventional motion vector detection circuit, a
[0019]
Accordingly, an object of the present invention is to provide a motion vector detection circuit capable of reducing the amount of calculation and the circuit scale while maintaining motion vector detection efficiency.
[0020]
[Means for Solving the Problems]
The present invention obtains a difference for each corresponding pixel between a processing block and each of a plurality of candidate blocks in a search window, calculates an absolute value sum or a square value sum of the differences , and calculates a minimum of the absolute value sum or the square value sum . In a motion vector detection circuit that detects a motion vector from a value,
Holding means for holding each pixel data in the processing block required in accordance with the sub-sampling pattern in parallel for one block period;
Parallelizing means for generating pixel data of different candidate blocks required in accordance with the sub-sampling pattern in parallel for each block period;
A plurality of subtracting means to which each pixel data from the holding means is commonly supplied as one input and each pixel data of the parallelized data of the candidate block from the parallelizing means is supplied as the other input;
A summing means for summing up the differences of the outputs of the plurality of subtracting means for each block period , and for obtaining the sum of absolute values or sum of squares of the differences ;
It is a motion vector detection circuit comprising detection means for detecting the minimum value of the sum of absolute values or the sum of square values of differences obtained by the integration means in each block period.
[0021]
[Action]
The motion vector detection circuit searches for motion vectors of a total of 16 points from 0 to 3 in the horizontal and vertical directions. The data of the processing macroblock MB is parallelized in the serial / parallel conversion circuit, and the data is held in the data holding circuit for one macroblock cycle.
[0022]
In the PE circuit, each PE calculates the absolute value of each sampling difference for each time slot (one block period), and the integrating circuit adds the absolute value of 16 samples generated between the processing macroblock and one candidate macroblock. Then, the sum of absolute differences is calculated. In the minimum value selection circuit, a motion vector that minimizes the calculated sum of absolute differences is selected.
[0023]
【Example】
First, an outline of an example of a high-efficiency encoding method using the motion vector detection circuit of the present invention will be described. As an encoding method, a widely known MC-DCT (motion compensation-discrete cosine transform) encoding method will be described as an example.
[0024]
FIG. 1 shows a circuit configuration of the MC-DCT encoding method. The digital image signal is supplied from the
[0025]
The output of the
[0026]
In FIG. 1, the
[0027]
The DCT coefficient is quantized by the
[0028]
Next, an embodiment of the present invention will be described. An example of the configuration of a motion vector detection circuit for easy understanding will be described with reference to FIG. As an example, the macro block is (4 × 4) pixels and pixel data is arranged as shown in FIG. In FIG. 2,
[0029]
The output of the
[0030]
This motion vector detection circuit searches for motion vectors of a total of 16 points from 0 to 3 in the horizontal and vertical directions. The data of the processing macroblock MB is parallelized in the serial /
[0031]
In the
[0032]
FIG. 3 shows the circuit configuration of each PE in the
[0033]
FIG. 4 shows a circuit configuration of each holding circuit in the
[0034]
FIG. 5 shows an input data sequence for PE0 to PE15 of the
[0035]
The data of the
[0036]
In the conventional motion vector detection circuit, the circuit scale cannot be reduced even if the sub-sampling evaluation function is used. On the other hand, if it is a motion vector detection circuit in which one clock cycle shown in FIG. 2 corresponds to the calculation processing of one motion vector evaluation function, the circuit scale can be reduced using subsampling.
[0037]
One embodiment of the present invention utilizing a 1/2 sub-sampling pattern is shown in FIG. In FIG. 7, the data of the upper stripe SW1 is supplied from the upper
[0038]
The output of the selection circuit 87 is supplied to the
[0039]
Comparing the motion vector detection circuit of one embodiment of the present invention shown in FIG. 7 with the conventional motion vector detection circuit shown in FIG. 15, the selection circuit 87 and the
[0040]
Next, the motion vector detection circuit so far has been performed on the premise of frame prediction, but a method called field prediction is also known. Frame prediction is a method of detecting a motion vector for each macroblock. On the other hand, in the field prediction, when the macroblock is (16 × 16) pixels in size, each is divided into an odd field macroblock and an even field macroblock each having (8 × 16) pixels, and a motion vector is detected separately. It is a method to do.
[0041]
Another embodiment of the present invention is shown in FIG. In another embodiment, the motion vector detection circuit shown in FIG. 2 is adapted for field / frame prediction. However, subsampling is not used. In FIG. 8, the data of the
[0042]
The output of the
[0043]
The output of the integrating
[0044]
Comparing the motion vector detection circuit of another embodiment of the present invention shown in FIG. 8 with the motion vector detection circuit shown in FIG. 2, the
[0045]
The field (# 1) minimum
[0046]
The present invention is not limited to one embodiment and other embodiments, and an evaluation function of a 1/4 sub-sampling pattern may be used. In this case, in order to maintain motion vector detection efficiency, a sub-sampling pattern with spatial dispersion is desirable.
[0047]
FIG. 9 shows an example of a 1/4 sub-sampling pattern having scattering within a frame suitable for frame prediction. Although this sub-sampling pattern can reduce the calculation amount of the sum of absolute differences to ¼, the motion vector detection efficiency can be maintained.
[0048]
Further, FIG. 10 shows an example of a 1/4 sub-sampling pattern having scattering in the field suitable for the field prediction. Although this sub-sampling pattern can reduce the calculation amount of the sum of absolute differences to ¼, the motion vector detection efficiency can be maintained. Such various modifications are conceivable.
[0049]
【The invention's effect】
The present invention is applicable to various motion vector detection methods such as field prediction and frame prediction. Further, the present invention makes it possible to further reduce the calculation amount and the circuit scale while maintaining the motion vector detection efficiency from the 1/2 or 1/4 sub-sampling pattern as compared with the prior art.
[Brief description of the drawings]
FIG. 1 is a block diagram of a high-efficiency encoding method for explaining the present invention.
FIG. 2 is a block diagram of a motion vector detection circuit for explaining the present invention.
FIG. 3 is a block diagram of each PE common to one embodiment and another embodiment of the present invention.
FIG. 4 is a block diagram of each holding circuit common to one embodiment and another embodiment of the present invention.
FIG. 5 is a schematic diagram showing an input data sequence of a PE circuit on the processing macroblock side according to the present invention.
FIG. 6 is a schematic diagram showing an input data sequence of a PE circuit on the search window side according to the present invention.
FIG. 7 is a block diagram of a motion vector detection circuit according to an embodiment of the present invention.
FIG. 8 is a block diagram of a motion vector detection circuit corresponding to field / frame prediction according to another embodiment of the present invention.
FIG. 9 is a schematic diagram of a quarter subsampling pattern suitable for frame prediction that can be used in the present invention.
FIG. 10 is a schematic diagram of a quarter subsampling pattern suitable for field prediction that can be used in the present invention.
FIG. 11 is a schematic diagram for explaining a block matching method;
FIG. 12 is a schematic diagram of a ½ sub-sampling pattern when a macro block has a size of (16 × 16) pixels.
FIG. 13 is a schematic diagram of a ½ sub-sampling pattern when a macroblock has a size of (4 × 4) pixels.
FIG. 14 is a schematic diagram for explaining a motion vector detection method when a macroblock has a size of (4 × 4) pixels.
FIG. 15 is a block diagram of a conventional motion vector detection circuit.
FIG. 16 is a block diagram of each PE in a conventional motion vector detection circuit.
FIG. 17 is a schematic diagram showing an input data sequence for explaining a conventional motion vector detection circuit;
FIG. 18 is a schematic diagram showing an input data sequence for explaining a conventional motion vector detection circuit;
[Explanation of symbols]
28, 88, 108
Claims (3)
サブサンプリングパターンに従って必要とする、上記処理ブロック内の各画素データを1ブロック周期の間、並列に保持する保持手段と、
サブサンプリングパターンに従って必要とする、異なる上記候補ブロックの画素データを1ブロック周期毎に並列に発生する並列化手段と、
上記保持手段からの各画素データが一方の入力として共通に供給されると共に、上記並列化手段からの上記候補ブロックの並列化データの各画素データが他方の入力として供給される複数の減算手段と、
複数の上記減算手段の出力の差分を1ブロック周期毎に積算すると共に、上記差分の絶対値和または二乗値和を求める積算手段と、
各ブロック周期で上記積算手段によって求められた上記差分の絶対値和または二乗値和の中で最小値を検出する検出手段とからなることを特徴とする動きベクトル検出回路。Calculates the difference in the corresponding each pixel and each of the plurality of candidate blocks in the processing block and the search window, the absolute value sum or square value sum of the difference calculated from the minimum value of the absolute value sum or square value sum the In a motion vector detection circuit configured to detect a motion vector,
Holding means for holding each pixel data in the processing block required in accordance with the sub-sampling pattern in parallel for one block period;
Parallelizing means for generating pixel data of different candidate blocks required in accordance with the sub-sampling pattern in parallel for each block period;
A plurality of subtracting means to which each pixel data from the holding means is commonly supplied as one input and each pixel data of the parallelized data of the candidate block from the parallelizing means is supplied as the other input; ,
A summing means for summing up the differences of the outputs of the plurality of subtracting means for each block period , and for obtaining an absolute value sum or a square value sum of the differences ;
A motion vector detection circuit comprising: detection means for detecting a minimum value among the absolute value sum or the square value sum of the differences obtained by the integration means in each block period.
フィールド内で動きベクトルを検出する場合にはフィールド内で、フレーム内で動きベクトルを検出する場合にはフレーム内で、、動きベクトル検出に使用する画素データの隣接するもの同士が水平方向および垂直方向において連続しないように、上記サブサンプリングパターンを選定することを特徴とする動きベクトル検出回路。The motion vector detection circuit according to claim 1,
When detecting motion vectors in the field, within the field , when detecting motion vectors within the frame, within the frame, adjacent pixel data used for motion vector detection are in the horizontal and vertical directions. as not continuous in the motion vector detection circuit, characterized by selecting the sub-sampling pattern.
上記処理ブロック内の各画素データを1ブロック周期の間、並列に保持する保持手段と、
異なる上記候補ブロックの画素データを1ブロック周期毎に並列に発生する並列化手段と、
上記保持手段から第1のフィールドの各画素データが一方の入力として共通に供給されると共に、上記並列化手段からの上記候補ブロックの上記第1のフィールドの並列化データの各画素データが他方の入力として供給される複数の第1の減算手段と、
上記保持手段から第2のフィールドの各画素データが一方の入力として共通に供給されると共に、上記並列化手段からの上記候補ブロックの上記第2のフィールドの並列化データの各画素データが他方の入力として供給される複数の第2の減算手段と、
複数の上記第1の減算手段の出力を1ブロック周期毎に積算すると共に、上記差分の絶対値和または二乗値和を求める第1の積算手段と、
複数の上記第2の減算手段の出力を1ブロック周期毎に積算すると共に、上記差分の絶対値和または二乗値和を求める第2の積算手段と、
各ブロック周期で上記第1の積算手段によって求められた上記差分の絶対値和または二乗値和の中で最小値を検出する第1の検出手段と
各ブロック周期で上記第2の積算手段によって求められた上記差分の絶対値和または二乗値和の中で最小値を検出する第2の検出手段と
上記第1の積算手段と上記第2の積算手段により求められたそれぞれの上記差分の絶対値和または二乗値和を合成し、合成された絶対値和または二乗値和の中で最小値を検出する第3の検出手段からなり、
上記第1の検出手段および上記第2の検出手段によって上記第1のフィールドおよび第2のフィールドの動きベクトルを求めると共に、上記第3の積算手段によってフレームの動きベクトルを求めるようにしたことを特徴とする動きベクトル検出回路。Calculates the difference in the corresponding each pixel and each of the plurality of candidate blocks in the processing block and the search window, the absolute value sum or square value sum of the difference calculated from the minimum value of the absolute value sum or square value sum the In a motion vector detection circuit configured to detect a motion vector,
Holding means for holding each pixel data in the processing block in parallel for one block period;
Parallelizing means for generating pixel data of different candidate blocks in parallel for each block period;
Each pixel data of the first field from the holding unit is commonly supplied as one input, and each pixel data of the parallelized data of the first field of the candidate block from the parallelizing unit is supplied to the other A plurality of first subtracting means supplied as input;
Each pixel data of the second field from the holding means is commonly supplied as one input, and each pixel data of the parallel data of the second field of the candidate block from the parallelizing means is supplied to the other A plurality of second subtracting means supplied as input;
A first summing means for summing up the outputs of the plurality of first subtracting means for each block period, and for obtaining an absolute value sum or a square value sum of the differences ;
A second summing means for summing up the outputs of the plurality of second subtracting means for each block period and obtaining the sum of absolute values or sum of squares of the differences ;
The first detecting means for detecting the minimum value of the sum of absolute values or the sum of square values of the differences obtained by the first integrating means in each block period and the second integrating means in each block period. is absolute value sum or square value second detection means and said first integrating means and said second absolute value of each of the difference calculated by the integrating means for detecting a minimum value among the sum of the difference Comprising a third detection means for synthesizing a sum of sums or square values and detecting a minimum value in the sum of absolute values or sum of squares ;
The motion vectors of the first field and the second field are obtained by the first detection means and the second detection means, and the motion vector of the frame is obtained by the third integration means. A motion vector detection circuit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3174395A JP3620080B2 (en) | 1995-01-28 | 1995-01-28 | Motion vector detection circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3174395A JP3620080B2 (en) | 1995-01-28 | 1995-01-28 | Motion vector detection circuit |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08205167A JPH08205167A (en) | 1996-08-09 |
JP3620080B2 true JP3620080B2 (en) | 2005-02-16 |
Family
ID=12339518
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3174395A Expired - Fee Related JP3620080B2 (en) | 1995-01-28 | 1995-01-28 | Motion vector detection circuit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3620080B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8422559B2 (en) * | 2007-10-10 | 2013-04-16 | Mediatek Inc. | Matching-pixel sub-sampling motion estimation method for video compression |
-
1995
- 1995-01-28 JP JP3174395A patent/JP3620080B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH08205167A (en) | 1996-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6430317B1 (en) | Method and apparatus for estimating motion using block features obtained from an M-ary pyramid | |
KR0171146B1 (en) | Feature point based motion vectors detecting apparatus | |
KR100648596B1 (en) | Method and motion estimation system for obtaining a motion vector, computer program product, and method and system for converting a frame of digital video data | |
RU2608674C2 (en) | Moving image encoding device, moving image decoding device, moving image encoding method and moving image decoding method | |
EP1138152B8 (en) | Method and apparatus for performing hierarchical motion estimation using nonlinear pyramid | |
US8023562B2 (en) | Real-time video coding/decoding | |
EP0976251B1 (en) | Method and arrangement for video coding | |
KR100739281B1 (en) | Motion estimation method and appratus | |
KR20100015456A (en) | A method and an apparatus for processing a video signal | |
CN1054248C (en) | A motion vector processor for compressing video signal | |
JP3655651B2 (en) | Data processing device | |
CN1306649A (en) | Decoding encoded image having first resolution directly into decoded image having second resolution | |
WO1998026601A1 (en) | Picture encoder and picture decoder | |
JPH08307874A (en) | Video signal encoding device | |
KR20030007087A (en) | Motion estimation apparatus and method for scanning a reference macroblock window in a search area | |
US20050123039A1 (en) | Motion estimation method for motion picture encoding and recording medium having program recorded thereon to implement the motion estimation method | |
KR100955414B1 (en) | Unit for and method of estimating a current motion vector | |
EP0966836B1 (en) | Methods and apparatus for comparing blocks of pixels | |
KR100431013B1 (en) | Image encoding system | |
KR0181029B1 (en) | Apparatus for selecting a feature point by using edge | |
JP3620080B2 (en) | Motion vector detection circuit | |
JP6875802B2 (en) | Image coding device and its control method, imaging device and program | |
US20050213662A1 (en) | Method of compression and digital imaging device employing compression algorithm | |
Ramachandran et al. | FPGA implementation of a novel, fast motion estimation algorithm for real-time video compression | |
JP3309519B2 (en) | Motion vector detection device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040803 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041004 |
|
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: 20041026 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041108 |
|
LAPS | Cancellation because of no payment of annual fees |