JP3545004B2 - 演算回路 - Google Patents

演算回路 Download PDF

Info

Publication number
JP3545004B2
JP3545004B2 JP02713893A JP2713893A JP3545004B2 JP 3545004 B2 JP3545004 B2 JP 3545004B2 JP 02713893 A JP02713893 A JP 02713893A JP 2713893 A JP2713893 A JP 2713893A JP 3545004 B2 JP3545004 B2 JP 3545004B2
Authority
JP
Japan
Prior art keywords
motion vector
sum
pixel value
block
arithmetic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP02713893A
Other languages
English (en)
Other versions
JPH06225287A (ja
Inventor
英次 岩田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP02713893A priority Critical patent/JP3545004B2/ja
Publication of JPH06225287A publication Critical patent/JPH06225287A/ja
Application granted granted Critical
Publication of JP3545004B2 publication Critical patent/JP3545004B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

【0001】
【産業上の利用分野】
本発明は、ディジタル画像処理の画像圧縮符号化等に用いられる動きベクトル検出処理に用いて好適な演算回路に関するものであり、特に、いわゆるブロックマッチング法で全探索を行って動きベクトル検出を行う演算回路に関するものである。
【0002】
【従来の技術】
従来より、ディジタル画像処理の画像圧縮符号化等に用いられる動きベクトル検出処理において一般に実用化されている方式としては、いわゆるブロックマッチング法と勾配法がある。
【0003】
以下、ブロックマッチング法について説明する。当該ブロックマッチング法は、画像圧縮符号化の動き補償予測に広く用いられている。
【0004】
先ず、画像フレーム(或いはフィールド)を細いブロックに分割する。この時のブロックサイズとしては、一般に8×8画素や16×16画素のサイズが用いられる。ここで、動きベクトル検出処理とは、基本的には、現フレームの対象ブロック(参照ブロックと呼ぶ)が、前フレームのどの領域から移動してきたかを検出する処理である。すなわち、具体的に言うと、動きベクトル検出処理は、例えば図8に示すように、現フレームFpの参照ブロックBpに最も良く似たブロックを前フレームFbの探索範囲E内の候補ブロックBbの集合より検出し、当該検出された候補ブロックBbと参照ブロックBp間の位置のずれを動きベクトルとして検出する処理である。
【0005】
上記動きベクトル検出処理における上記参照ブロックBpに最も良く似たブロックの判定は、以下のように行われる。
すなわち、先ず第1の判定操作として、ある候補ブロックBbの各画素値cについて、参照ブロックBpの対応する画素値rとの差分をとり、その絶対値和(或いは自乗和)を求める。
【0006】
次に、第2の判定操作として、上記第1の判定操作を探索範囲E内の全ての候補ブロックBbについて行い、それぞれ求めた各差分絶対値和(或いは差分自乗和)のうちから最小のものを求める。この最小の差分絶対値和(或いは差分自乗和)を与える候補ブロックBbを、参照ブロックBpに最も良く似たブロックとする。
【0007】
具体的に言うと、参照ブロックBpのブロックサイズをM×N画素とし、候補ブロックBbの数をK×L個とした場合、上記動きベクトル検出処理は、以下の数1の数式(1) と、次の数式(2) で表せる。なお、この数式(1) ,数式(2) では、差分自乗和でなく、差分絶対値和D(i,j) を求めている。また、数式(1) の式中のrは現フレームの参照ブロックBpの画素値を表し、数式(1) の式中のcは前フレームの画素値を表している。さらに、数式(2) の式中(x,y)は、最小となる差分絶対値和(minD(i,j) )を与えるときの(i,j)を意味する。この数式(2) における(x,y)が動きベクトルMV(x,y) となる。
【0008】
【数1】
Figure 0003545004
【0009】
【数2】
MV(x,y) =minD(i,j) ・・・・(2)
【0010】
このようなことから、参照ブロックBpのブロックサイズが4×4画素で候補ブロックBbの数が7×7個の場合に差分絶対値和D(5,3) が最小になっている上記図8の例では、上記動きベクトルMVが(5,3)となる。
【0011】
次に、フレームを単位として動きベクトルを検出する処理(以下フレームのみの動きベクトル検出処理と呼ぶ)における従来の回路構成について説明する。先ず、従来の回路構成を説明するために、動きベクトル検出処理の例を挙げ、その例について説明する。さらに、その例に沿って、従来の回路構成および制御方式を説明する。
【0012】
ここで、一例として、参照ブロックBpのブロックサイズが3×4画素で、候補ブロックBbの数もまた3×4個の場合の動きベクトル検出処理について、図9を用いて説明する。なお、この図9では、現フレームFpの参照ブロックBpの各画素値rについては英小文字の番号a,b,c,・・・を付している(ra ,rb ,rc ,・・・・)。また、前フレームFbの各画素値cについては数字の番号0,1,2,・・・を付している(c0 ,c1 ,c2 ,・・・・)。以下、上記フレームのみの動きベクトル検出処理の手順を、この図9を用いて説明する。
【0013】
先ず、第1の処理工程として、参照ブロックBp0の画素値r(ra 〜rl )と、参照ブロックBp0に対する探索範囲E0内の全ての候補ブロックBb0(12個存在する)の画素値c(c0 〜c34)について、前述した数式(1) に基づいて以下の数式(3) 〜数式(14)のような計算を行い、差分絶対値和D(i,j) (0≦i<2,0≦j<3)を求める。
【0014】
【数3】
D(0,0)=|ra −c0 |+|rb −c1 |+|rc −c2 |+|rd −c3
+|re −c7 |+・・・・+|rl −c17| ・・・・(3)
【0015】
【数4】
D(0,1)=|ra −c1 |+|rb −c2 |+|rc −c3 |+|rd −c4
+|re −c8 |+・・・・+|rl −c18| ・・・・(4)
【0016】
【数5】
D(0,2)=|ra −c2 |+|rb −c3 |+|rc −c4 |+|rd −c5
+|re −c9 |+・・・・+|rl −c19| ・・・・(5)
【0017】
【数6】
D(0,3)=|ra −c3 |+|rb −c4 |+|rc −c5 |+|rd −c6
+|re −c10|+・・・・+|rl −c20| ・・・・(6)
【0018】
【数7】
D(1,0)=|ra −c7 |+|rb −c8 |+|rc −c9 |+|rd −c10
+|re −c14|+・・・・+|rl −c24| ・・・・(7)
【0019】
【数8】
D(1,1)=|ra −c8 |+|rb −c9 |+|rc −c10|+|rd −c11
+|re −c15|+・・・・+|rl −c25| ・・・・(8)
【0020】
【数9】
D(1,2)=|ra −c9 |+|rb −c10|+|rc −c11|+|rd −c12
+|re −c16|+・・・・+|rl −c26| ・・・・(9)
【0021】
【数10】
D(1,3)=|ra −c10|+|rb −c11|+|rc −c12|+|rd −c13
+|re −c17|+・・・・+|rl −c27| ・・・・(10)
【0022】
【数11】
D(2,0)=|ra −c14|+|rb −c15|+|rc −c16|+|rd −c17
+|re −c21|+・・・・+|rl −c31| ・・・・(11)
【0023】
【数12】
D(2,1)=|ra −c15|+|rb −c16|+|rc −c17|+|rd −c18
+|re −c22|+・・・・+|rl −c32| ・・・・(12)
【0024】
【数13】
D(2,2)=|ra −c16|+|rb −c17|+|rc −c18|+|rd −c19
+|re −c23|+・・・・+|rl −c33| ・・・・(13)
【0025】
【数14】
D(2,3)=|ra −c17|+|rb −c18|+|rc −c19|+|rd −c20
+|re −c24|+・・・・+|rl −c34| ・・・・(14)
【0026】
次に、第2の処理工程として、上記第1の処理工程で求めた全ての差分絶対値和D(i,j) (0≦i<2,0≦j<3)について、前述した数式(2) に基づいて最小となる差分絶対値和minD(i,j) を求め、動きベクトルMV(x,y) を得る。
【0027】
第3の処理工程として、参照ブロックBp0に隣接する参照ブロックBp1の画素値ra'〜rl'と、参照ブロックBp1の探索範囲E1内のすべての候補ブロックBb1(12個存在する)の画素値c21〜c55について、上記第1の処理工程と同様に、数式(1) に基づいて計算を行い、差分絶対値和D’(i,j) (0≦i<2,0≦j<3)を求める。
【0028】
その後、第4の処理工程として、上記第3の処理工程で求めた全ての差分絶対値和D’(i,j) (0≦i<2,0≦j<3)について、数式(2) に基づいて最小となる差分絶対値和minD’(i,j) を求め、動きベクトルMV(x,y) を得る。
【0029】
最後に、第5の処理工程として、以下同様に、現フレームFpの全ての参照ブロックBpについて、上記の操作を繰り返し、動きベクトルMV(x,y) を求める。
【0030】
従来は、上述したような動きベクトル検出処理を図10,図11,図12に示す回路構成で実現している。
【0031】
ここで、図10は、従来の動きベクトル検出回路(動きベクトル検出を行う演算回路)の全体構成である。この図10において、当該演算回路は、複数の演算ユニット(PE)10〜21と、複数の画素値格納用レジスタ(Reg) 22〜38と、複数のマルチプレクサ付き画素値格納用レジスタ(M&R)39〜44とを相互接続した構成となっている。
【0032】
すなわちこの図10において、端子1には参照ブロックBpの画素値rが供給され、縦続接続された各演算ユニット10〜21に送られる。また、端子2には例えば探索範囲Eの上半分の候補ブロックBbの画素値cが供給され、縦続接続された画素値格納用レジスタ22〜25の初段のレジスタ22の入力端子に送られ、これら画素値格納用レジスタ22〜25で順次格納される。
【0033】
上記各画素値格納用レジスタ22〜25の各出力は、上記演算ユニット10〜21のうちの対応する演算ユニット10〜13にも送られる。これら演算ユニット10〜13のうちの演算ユニット13の出力は、縦続接続された画素値格納用レジスタ30〜32の初段のレジスタ30の入力端子に送られ、これら画素値補間用レジスタ30〜32で順次格納される。上記各画素値格納用レジスタ30〜32の出力は、上記演算ユニット10〜21のうちの対応する演算ユニット15〜17にも送られる。
【0034】
さらに、これら演算ユニット15〜17のうちの演算ユニット17の出力は、縦続接続された画素値格納用レジスタ33〜35の初段のレジスタ33の入力端子に送られ、これら画素値補間用レジスタ33〜35で順次格納される。上記各画素値格納用レジスタ33〜35の出力は、上記演算ユニット10〜21のうちの対応する演算ユニット19〜21にも送られる。
【0035】
また、端子3には例えば探索範囲Eの下半分の候補ブロックBbの画素値cが供給され、縦続接続された画素値格納用レジスタ26〜29の初段のレジスタ26の入力端子に送られ、これら画素値格納用レジスタ26〜29で順次格納される。上記各画素値格納用レジスタ26〜29のうちのレジスタ27の出力は画素値格納用レジスタ36にも送られ、レジスタ28の出力は一方の入力端子に上記レジスタ36の出力が供給されるマルチプレクサ付き画素値格納用レジスタ39の他方の入力端子に、レジスタ29の出力は一方の入力端子にレジスタ39の出力が供給されるマルチプレクサ付き画素値格納用レジスタ40の他方の入力端子にも送られる。
【0036】
上記マルチプレクサ付き画素値格納用レジスタ40の出力は、上記演算ユニット10〜21のうちの演算ユニット10の入力端子に送られる。この演算ユニット10の出力は、次の演算ユニット11に送られると共に、画素値格納用レジスタ37の入力端子にも送られる。当該レジスタ37の出力は一方の入力端子に上記演算ユニット11の出力が供給されるマルチプレクサ付き画素値格納用レジスタ41の他方の入力端子に供給され、このレジスタ41の出力は一方の入力端子に上記演算ユニット12の出力が供給されマルチプレクサ付き画素値格納用レジスタ42の他方の入力端子に供給される。また、演算ユニット13の出力は、上記画素値格納用レジスタ30へ送られると共に、演算ユニット14にも送られる。
【0037】
さらに、上記演算ユニット14の出力は、次の演算ユニット15に送られると共に、画素値格納用レジスタ38の入力端子にも送られる。当該レジスタ38の出力は一方の入力端子に上記演算ユニット15の出力が供給されるマルチプレクサ付き画素値格納用レジスタ43の他方の入力端子に供給され、このレジスタ43の出力は一方の入力端子に上記演算ユニット16の出力が供給されまマルチプレクサ付き画素値格納用レジスタ44の他方の入力端子に供給される。また、演算ユニット17の出力は、上記画素値格納用レジスタ33へ送られると共に、演算ユニット18にも送られる。
【0038】
ここで、上述した図10の各演算ユニット10〜21は、具体的には図11に示すように構成されるものである。この図11において、端子51には図10の他の演算ユニット或いは画素値格納用レジスタからの出力が供給され、端子55には図10の他の演算ユニット或いはマルチプレクサ付き画素値格納用レジスタからの出力が供給される。これら端子51,55を介した信号は、マルチプレクサ(MPX)57で多重化された後画素値格納用レジスタ58に送られる。当該画素値格納用レジスタ58の出力は、端子52及び54から出力されると共に、差分絶対値演算器(|r−c|)59の一方の入力端子に供給される。この差分絶対値演算器59の他方の入力端子には、端子53を介した上記図10の端子1を介した参照ブロックBpの画素値rが供給される。当該差分絶対値演算器59の出力は、累算器(ACC)60に送られ、当該累算器60で累加算された後、端子56から差分絶対値和D(i,j) として出力される。
【0039】
また、上述した図10の上記マルチプレクサ付き画素値格納用レジスタ39〜44は、具体的には図12に示すように構成されるものである。この図12において、端子72には前段の図10の画素値格納用レジスタ或いはマルチプレクサ付き画素値格納用レジスタの出力が供給され、端子73には対応する図10の画像値格納用レジスタ或いは演算ユニットの図11の端子54からの出力が供給される。この端子72,73を介した信号は、マルチプレクサ75で多重化された後画素値格納用レジスタ76に送られる。当該画素値格納用レジスタ76の出力が、端子71を介して後段の構成に送られる。
【0040】
次に、上述した図10,図11,図12に示した回路構成を用いて動きベクトル検出処理を実現するための制御方式について、動きベクトル検出制御のタイミングを示す図13を用いて説明する。
【0041】
この図13に示すように、参照ブロックBpの画素値rは、全ての演算ユニットに対して1クロックサイクル毎に与えられる。すなわち、参照ブロックBpの画素値rについては、あるクロックサイクルにおいて、各演算ユニットが同一の画素値rに対して演算を行っている。
【0042】
また、候補ブロックBbの画素値cは、探索範囲Eの上半分と下半分の2つの領域に分けられて、図10に示した2つの入力端子2,3に順次入力される。さらに、上記候補ブロックBbの画素値cは、1クロックサイクル毎に後段の画素値格納用レジスタに転送される。但し、4クロックサイクルに一回、図11に示した演算ユニットの画素値格納用レジスタ58に転送される。このようにして、候補ブロックBbの画素値cについては、図13に示すように、あるクロックサイクルにおいて、各演算ユニットが異なる画素値cに対して演算を行っている。
【0043】
従来の演算回路においては、上述したような制御を行うことにより、12クロックサイクル毎に各演算ユニットから一斉に差分絶対値和が出力される(図10の出力端子56から出力される)。その後、これらの差分絶対値和D(i,j) の大小比較を行うことにより、動きベクトルMV(x,y) を求める。なお、この際、図11に示した累算器60は、次クロックサイクルにおいて、次の参照ブロックBpについての差分絶対値和D(i,j) の累算を間断なく開始するので、すべての差分絶対値和D(i,j) を一旦レジスタに格納してから大小比較演算を行う必要がある。
【0044】
以上が、フレームのみの動きベクトル検出処理を行う従来の回路構成についての説明である。
【0045】
これに対し、フィールド単位の動きベクトル検出処理(以下フィールド対応動きベクトル検出処理と呼ぶ)にも対応できる従来の回路構成について以下に説明する。このフィールド対応動きベクトル検出処理において、動きベクトルは、偶数フィールド、奇数フィールド、フレームの各々に対応して3つ求める。ここでは、上述のフレームのみの動きベクトル検出処理の説明で用いた例を再び用いる(図9参照)。
【0046】
ここで、前提として、参照ブロックBp0の画素値ra 〜rl は、偶数フィールドと奇数フィールドに対応して、以下の2つのグループに分けられる。すなわち例えば、
偶数フィールドでは{ra ,rc ,re ,rg ,ri ,rk }のグループに、奇数フィールドでは{rb ,rd ,rf ,rh ,rj ,rl }のグループに分けられる。
【0047】
以下、上記前提に基づき、上記フィールド対応動きベクトル検出処理の手順を、前記図9を用いて説明する。
【0048】
先ず、偶数フィールドの場合から説明する。この場合、参照ブロックBp0の偶数フィールドの画素値rと、参照ブロックBp0に対する探索範囲E0内の全ての候補ブロックBb0(12個存在する)の画素値c0 〜c34とを用いて、前述した数式(1) に基づいて以下の数式(15)〜数式(26)のような計算を行い、偶数フィールドにおける差分絶対値和De (i,j) (0≦i<2,0≦j<3)を求める。
【0049】
【数15】
e (0,0)=|ra −c0 |+|rc −c2 |+|re −c7 |+|rg −c9
+|ri −c14|+|rk −c16| ・・・・(15)
【0050】
【数16】
e (0,1)=|ra −c1 |+|rc −c3 |+|re −c8 |+|rg −c10
+|ri −c15|+|rk −c17| ・・・・(16)
【0051】
【数17】
e (0,2)=|ra −c2 |+|rc −c4 |+|re −c9 |+|rg −c11
+|ri −c16|+|rk −c18| ・・・・(17)
【0052】
【数18】
e (0,3)=|ra −c3 |+|rc −c5 |+|re −c10|+|rg −c12
+|ri −c17|+|rk −c19| ・・・・(18)
【0053】
【数19】
e (1,0)=|ra −c7 |+|rc −c9 |+|re −c14|+|rg −c16
+|ri −c21|+|rk −c23| ・・・・(19)
【0054】
【数20】
e (1,1)=|ra −c8 |+|rc −c10|+|re −c15|+|rg −c17
+|ri −c22|+|rk −c24| ・・・・(20)
【0055】
【数21】
e (1,2)=|ra −c9 |+|rc −c11|+|re −c16|+|rg −c18
+|ri −c23|+|rk −c25| ・・・・(21)
【0056】
【数22】
e (1,3)=|ra −c10|+|rc −c12|+|re −c17|+|rg −c19
+|ri −c24|+|rk −c26| ・・・・(22)
【0057】
【数23】
e (2,0)=|ra −c14|+|rc −c16|+|re −c21|+|rg −c23
+|ri −c28|+|rk −c30| ・・・・(23)
【0058】
【数24】
e (2,1)=|ra −c15|+|rc −c17|+|re −c22|+|rg −c24
+|ri −c29|+|rk −c31| ・・・・(24)
【0059】
【数25】
e (2,2)=|ra −c16|+|rc −c18|+|re −c23|+|rg −c25
+|ri −c30|+|rk −c32| ・・・・(25)
【0060】
【数26】
e (2,3)=|ra −c17|+|rc −c19|+|re −c24|+|rg −c26
+|ri −c31|+|rk −c33| ・・・・(26)
【0061】
次に、奇数フィールドの場合について説明する。参照ブロックBp0の奇数フィールドの画素値rについても、上述した偶数フィールドの場合と同様に、参照ブロックBp0に対する探索範囲E0内の全ての候補ブロックBb0(12個存在する)の画素値c0 〜c34とを用いて、前述した数式(1) に基づいて以下の数式(27)〜数式(38)のような計算を行い、奇数フィールドにおける差分絶対値和Do (i,j) (0≦i<2,0≦j<3)を求める。
【0062】
【数27】
o (0,0)=|rb −c1 |+|rd −c3 |+|rf −c8 |+|rh −c10
+|rj −c15|+|rl −c17| ・・・・(27)
【0063】
【数28】
o (0,1)=|rb −c2 |+|rd −c4 |+|rf −c9 |+|rh −c11
+|rj −c16|+|rl −c18| ・・・・(28)
【0064】
【数29】
o (0,2)=|rb −c3 |+|rd −c5 |+|rf −c10|+|rh −c12
+|rj −c17|+|rl −c19| ・・・・(29)
【0065】
【数30】
o (0,3)=|rb −c4 |+|rd −c6 |+|rf −c11|+|rh −c13
+|rj −c18|+|rl −c20| ・・・・(30)
【0066】
【数31】
o (1,0)=|rb −c8 |+|rd −c10|+|rf −c15|+|rh −c17
+|rj −c22|+|rl −c24| ・・・・(31)
【0067】
【数32】
o (1,1)=|rb −c9 |+|rd −c11|+|rf −c16|+|rh −c18
+|rj −c23|+|rl −c25| ・・・・(32)
【0068】
【数33】
o (1,2)=|rb −c10|+|rd −c12|+|rf −c17|+|rh −c19
+|rj −c24|+|rl −c26| ・・・・(33)
【0069】
【数34】
o (1,3)=|rb −c11|+|rd −c13|+|rf −c18|+|rh −c20
+|rj −c25|+|rl −c27| ・・・・(34)
【0070】
【数35】
o (2,0)=|rb −c15|+|rd −c17|+|rf −c22|+|rh −c24
+|rj −c29|+|rl −c31| ・・・・(35)
【0071】
【数36】
o (2,1)=|rb −c16|+|rd −c18|+|rf −c23|+|rh −c25
+|rj −c30|+|rl −c32| ・・・・(36)
【0072】
【数37】
o (2,2)=|rb −c17|+|rd −c19|+|rf −c24|+|rh −c26
+|rj −c31|+|rl −c33| ・・・・(37)
【0073】
【数38】
o (2,3)=|rb −c18|+|rd −c20|+|rf −c25|+|rh −c27
+|rj −c32|+|rl −c34| ・・・・(38)
【0074】
最後に、フレームの場合については、前述したフレームのみの動きベクトル検出処理の場合と同様であり、参照ブロックBp0に対する探索範囲E0内の全ての候補ブロックBb0の画素値c(c0 〜c34)について、前述した数式(1) に基づいて前記数式(3) 〜数式(14)のような計算を行い、フレームにおける差分絶対値和D(i,j) (0≦i<2,0≦j<3)を求める。
【0075】
次に、上記偶数フィールドにおける差分絶対値和De (i,j) (0≦i<2,0≦j<3)の全てについて、前記数式(2) に基づいて最小となる差分絶対値和minDe (i,j) を求め、偶数フィールドにおける動きベクトルMVe (x,y) を得る。
【0076】
また、上記奇数フィールドにおける差分絶対値和Do (i,j) (0≦i<2,0≦j<3)の全てについて、前記数式(2) に基づいて最小となる差分絶対値和minDo (i,j) を求め、奇数フィールドにおける動きベクトルMVo (x,y) を得る。
【0077】
同じく、上記フレームにおける差分絶対値和D(i,j) (0≦i<2,0≦j<3)の全てについて、前記数式(2) に基づいて最小となる差分絶対値和minD(i,j) を求め、フレームにおける動きベクトルMV(x,y) を得る。
【0078】
次に、上記参照ブロックBp0に隣接する参照ブロックBp1の画素値ra'〜rl'と、参照ブロックBp1の探索範囲E1内の全ての候補ブロックBb1(12個存在する)の画素値c21〜c55とについて、上述同様にして数式(1) に基づいて、上記偶数フィールドにおける差分絶対値和D' e (i,j) (0≦i<2,0≦j<3)、上記奇数フィールドにおける差分絶対値和D' o (i,j) (0≦i<2,0≦j<3)、フレームにおける差分絶対値和D'(i,j)(0≦i<2,0≦j<3)を求める。
【0079】
ここで上述のようにして求めた全ての差分絶対値和D' e (i,j) (0≦i<2,0≦j<3)、D' o (i,j) (0≦i<2,0≦j<3)、D'(i,j)(0≦i<2,0≦j<3)について、前記数式(2) に基づいて、それぞれ最小となる差分絶対値和minD' e (i,j) 、minD' o (i,j) 、minD'(i,j)を求め、偶数フィールド,奇数フィールド,フレームのそれぞれにおける3種の動きベクトルMVe (x,y) 、MVo (x,y) 、MV(x,y) を得る。
【0080】
以下同様に、現フレームFpのすべての参照ブロックBpについて、上記の操作を繰り返し、偶数フィールド、奇数フィールド、フレームのそれぞれにおける3種の動きベクトルMVe (x,y) 、MVo (x,y) 、MV(x,y) を求める。
【0081】
従来は、上述したようなフィールド対応動きベクトル検出処理も、前記図10,図11,図12で示した回路構成で実現している。すなわち、前記図10,図11,図12で示した構成の動きベクトル検出回路(演算回路)を3つ設け、偶数フィールドにおける動きベクトル検出処理と、奇数フィールドにおける動きベクトル検出処理と、フレームにおける動きベクトル検出処理を、これら3つの動きベクトル検出回路でそれぞれ別々に行うようにしている。
【0082】
【発明が解決しようとする課題】
上述したように、従来のフィールド対応動きベクトル検出処理の回路構成では、偶数フィールド、奇数フィールド、フレームにおける差分絶対値和を、それぞれ別々に設けられた回路によって求めるようにしている。
【0083】
すなわち、従来は、フィールド対応動きベクトル検出処理を行うために、偶数フィールド、奇数フィールド、フレームの各々に対応して3つの動きベクトル検出回路が必要となり、したがってハードウェア量が増大する。
【0084】
さらに、従来は、フィールド対応動きベクトル検出処理を行うために、上述のように動きベクトル検出回路を3つ用意することにより、これら3つの動きベクトル検出回路の各々に対して、参照ブロックの画素値および候補ブロックの画素値を別々に供給する必要がでてくる。このため、前述したフレームのみの動きベクトル検出処理を行う場合の回路構成に比較して、上記フィールド対応動きベクトル検出処理を行う回路構成は、外部の付加回路が必要でかつ複雑化するようになり、また、この動きベクトル検出回路に各画素値を供給するフレームメモリのポート数の増大も招くようになる。
【0085】
そこで、本発明は、ハードウェア量の削減や、外部の付加回路の削減、フレームメモリのポート数の削減が可能な演算回路を提供することを目的とするものである。
【0086】
【課題を解決するための手段】
本発明は上述した目的を達成するために提案されたものであり、現フレームの参照ブロックのブロックサイズをM×N画素とし、前フレームの候補ブロックの個数をM×N個として、ブロックマッチング法により全探索を行って動きベクトル検出を行う演算回路であって、1クロックサイクル毎に順次入力される参照ブロックの各画素値を所定クロックサイクル間保持するレジスタと、候補ブロックの画素値を奇数カラムと偶数カラムとで適宜切り替えるマルチプレクサと、上記レジスタから出力された参照ブロックの画素値と上記マルチプレクサから出力された候補ブロックの画素値との差分絶対値(或いは差分自乗値)を計算する差分絶対値演算器(或いは差分自乗演算器)とを有する演算ユニットをM×N個設けると共に、当該演算ユニットをM×Nの行列状に配置し、偶数番目の各演算ユニットの出力をそれぞれ第1の加算器を介してパイプライン接続し、奇数番目の各演算ユニットの出力をそれぞれ上記第1の加算器と別系統の第2の加算器を介してパイプライン接続し、上記参照ブロック及び候補ブロックの画素値を一定の順序で上記各演算ユニットの差分絶対値演算器(或いは差分自乗演算器)に供給することにより、偶数フィールドにおける差分絶対値和(或いは差分自乗和)と、奇数フィールドにおける差分絶対値和(或いは差分自乗和)とを求め、さらに、これら偶数フィールドにおける差分絶対値和(或いは差分自乗和)と奇数フィールドにおける差分絶対値和(或いは差分自乗和)とを加算して得たフレームにおける差分絶対値和(或いは差分自乗和)とを求め、その後、これら得られた偶数フィールドにおける差分絶対値和(或いは差分自乗和)と奇数フィールドにおける差分絶対値和(或いは差分自乗和)とフレームにおける差分絶対値和(或いは差分自乗和)から、それぞれ最小となる差分絶対値和(或いは差分自乗和)を求めることにより、偶数フィールドにおける動きベクトルと、奇数フィールドにおける動きベクトルと、フレームにおける動きベクトルの3種の動きベクトルを同時に求める動きベクトル検出処理を行うものである。
【0087】
また、本発明の演算回路は、1クロックサイクル毎に順次入力される参照ブロックの各画素値を所定クロックサイクル間保持するレジスタと、候補ブロックの画素値を奇数カラムと偶数カラムとで適宜切り替えるマルチプレクサと、上記レジスタから出力された参照ブロックの画素値と上記マルチプレクサから出力された候補ブロックの画素値との差分絶対値(或いは差分自乗値)を計算する差分絶対値演算器(或いは差分自乗演算器)と、上記差分絶対値演算器(或いは差分自乗演算器)からの偶数番目の出力を累加算する偶数番目用累算器と、上記差分絶対値演算器(或いは差分自乗演算器)からの奇数番目の出力を累加算する奇数番目用累算器とを有する演算ユニットをM×N個設けると共に、当該演算ユニットをM×Nの行列状に配置して相互接続し、上記参照ブロック及び候補ブロックの画素値を一定の順序で供給することにより、偶数フィールドにおける差分絶対値和(或いは差分自乗和)と、奇数フィールドにおける差分絶対値和(或いは差分自乗和)とを求め、さらに、これら偶数フィールドにおける差分絶対値和(或いは差分自乗和)と奇数フィールドにおける差分絶対値和(或いは差分自乗和)とを加算して得たフレームにおける差分絶対値和(或いは差分自乗和)とを求め、その後、これら得られた偶数フィールドにおける差分絶対値和(或いは差分自乗和)と奇数フィールドにおける差分絶対値和(或いは差分自乗和)とフレームにおける差分絶対値和(或いは差分自乗和)から、それぞれ最小となる差分絶対値和(或いは差分自乗和)を求めることにより、偶数フィールドにおける動きベクトルと、奇数フィールドにおける動きベクトルと、フレームにおける動きベクトルの3種の動きベクトルを同時に求める動きベクトル検出処理を行うものである。
【0088】
ここで、本発明の演算回路は、さらに、上記奇数フィールド、偶数フィールド、及びフレームのそれぞれにおいて求めた全ての候補ブロックについての参照ブロックとの差分絶対値和(或いは差分自乗和)を格納するメモリを有してなり、このメモリに格納された各差分絶対値和(或いは差分自乗和)から、上記動きベクトルを求めるための最小となる差分絶対値和(或いは差分自乗和)を求めるようにしている。
【0089】
【作用】
本発明の演算回路によれば、差分絶対値を求める演算ユニットをM×Nの行列状に配置し、これら各演算ユニットの各出力うち、偶数番目の各演算ユニットの出力をそれぞれ第1の加算器を介してパイプライン接続し、奇数番目の各演算ユニットの出力をそれぞれ上記第1の加算器と別系統の第2の加算器を介してパイプライン接続しているため、最終段の第1の加算器の出力が偶数フィールドにおける差分絶対値和(或いは差分自乗和)となり、最終段の第2の加算器の出力が奇数フィールドにおける差分絶対値和(或いは差分自乗和)となる。これらをさらに加算すればフレームにおける差分絶対値和(或いは差分自乗和)を求めることができる。
【0090】
また、本発明の演算回路によれば、奇数番目の差分絶対値と偶数番目の差分絶対値をそれぞれ別々に累積して差分絶対値和を求める演算ユニットをM×Nの行列状に配置して相互接続しているため、各演算ユニットからは、偶数フィールドにおける差分絶対値和(或いは差分自乗和)と奇数フィールドにおける差分絶対値和(或いは差分自乗和)の2つの出力が得られる。これらをさらに加算すればフレームにおける差分絶対値和(或いは差分自乗和)を求めることができる。
【0091】
【実施例】
以下、本発明の演算回路の一実施例について図面を参照しながら説明する。
【0092】
本発明実施例の演算回路は、現フレームFpの参照ブロックBpのブロックサイズをM×N画素(本実施例では例えば3×4画素)とし、前フレームFbの候補ブロックBbの個数をM×N個(本実施例では例えば3×4個)として、ブロックマッチング法により全探索を行って動きベクトル検出を行う演算回路である。
【0093】
ここで、本発明の第1の実施例の演算回路は、図1及び図2に示すように、1クロックサイクル毎に順次入力される参照ブロックBpの各画素値rを所定クロックサイクル間(例えば12クロックサイクル間)保持するレジスタ182と、候補ブロックBbの画素値cを奇数カラムと偶数カラムとで適宜切り替えるマルチプレクサ184と、上記レジスタ182から出力された参照ブロックBpの画素値rと上記マルチプレクサ184から出力された候補ブロックBbの画素値cとの差分絶対値(或いは差分自乗値)を計算する差分絶対値演算器185(或いは差分自乗演算器)とを有する演算ユニット(PE)をM×N個(3×4=12個の演算ユニット190〜201)設けると共に、当該演算ユニット190〜201をM×N(すなわち3×4)の行列状に配置している。
【0094】
また、第1の実施例の演算回路は、偶数番目の各演算ユニット190,192,194,196,198,200の出力をそれぞれ対応する第1の加算器321〜325を介してパイプライン接続し、奇数番目の各演算ユニット191,193,195,197,199,201の出力をそれぞれ上記第1の加算器321〜325と別系統の第2の加算器326〜330を介してパイプライン接続し、上記参照ブロック及び候補ブロックの画素値を一定の順序で上記各演算ユニット190〜201の差分絶対値演算器185(或いは差分自乗演算器)に供給することにより、偶数フィールドにおける差分絶対値和De (i,j) (或いは差分自乗和)と、奇数フィールドにおける差分絶対値和Do (i,j) (或いは差分自乗和)とを求め、さらに、これら偶数フィールドにおける差分絶対値和(或いは差分自乗和)と奇数フィールドにおける差分絶対値和(或いは差分自乗和)とを加算器341で加算することにより、フレームにおける差分絶対値和D(i,j) (或いは差分自乗和)を求めるようにしている。
【0095】
本実施例の演算回路においては、その後、これら得られた偶数フィールドにおける差分絶対値和De (i,j) (或いは差分自乗和)と奇数フィールドにおける差分絶対値和Do (i,j) (或いは差分自乗和)とフレームにおける差分絶対値和D(i,j) (或いは差分自乗和)から、それぞれ最小となる差分絶対値和(或いは差分自乗和)を求めることにより、偶数フィールドにおける動きベクトルMVe (x,y) と、奇数フィールドにおける動きベクトルMVo (x,y) と、フレームにおける動きベクトルの3種の動きベクトルMV(x,y) を同時に求める動きベクトル検出処理が実現できることになる。
【0096】
なお、図示は省略するが、本実施例の演算回路には、さらに、上記奇数フィールド、偶数フィールド、及びフレームのそれぞれにおいて求めた全ての候補ブロックについての参照ブロックとの差分絶対値和De (i,j) 、Do (i,j) 、D(i,j) (或いは差分自乗和)を格納するメモリを有してなり、このメモリに格納された各差分絶対値和(或いは差分自乗和)から、上記動きベクトルMVe (x,y) 、MVo (x,y) 、MV(x,y) を求めるための最小となる差分絶対値和(或いは差分自乗和)を求めるようにしている。
【0097】
以下の実施例では差分絶対値演算を行う構成について説明している。
【0098】
ここで、本実施例回路は、以下のようなことを踏まえて、フィールド対応動きベクトル検出処理を行うための演算回路を実現している。
【0099】
すなわち、前述した偶数フィールドにおける差分絶対値和De (i,j) (0≦i<2,0≦j<3)、上記奇数フィールドにおける差分絶対値和Do (i,j) (0≦i<2,0≦j<3)、フレームにおける差分絶対値和D(i,j) (0≦i<2,0≦j<3)は、以下の数式(39)に示すような関係が成立している。
【0100】
【数39】
D(i,j) =De (i,j) +Do (i,j) ・・・・・(39)
【0101】
この数式(39)から、フレームにおける差分絶対値和D(i,j) は、偶数フィールドにおける差分絶対値和De (i,j) と奇数フィールドにおける差分絶対値和Do (i,j) から求めることができる。
【0102】
以下、図1〜図5を参照して、本発明の第1の実施例の演算回路について詳述する。なお、本実施例では、上述した従来の回路構成を説明するために挙げた動きベクトル検出処理の例を用いて、本発明の回路構成および制御方式について説明する。
【0103】
本発明実施例では、前述のフィールド対応動きベクトル検出処理を、図1,図2に示す回路構成で実現している。図1には本発明実施例における動きベクトル検出処理を行う演算回路の全体構成を示し、上述したように当該回路は、上記演算ユニット190〜201を3×4の行列状に配置した構成となっている。
【0104】
この図1において、端子180には前フレームFbの奇数カラムの候補ブロックBbの画素値cが供給され、当該画素値cが各演算ユニット190〜201の第1の入力端子に送られる。また、端子189には前フレームFbの偶数カラムの候補ブロックBbの画素値cが供給され、当該画素値cが各演算ユニット190〜201の第2の入力端子に送られる。端子181には参照ブロックBpの画素値rが供給され、各演算ユニット190〜201の第3の入力端子に送られる。これら各演算ユニット190〜201の出力端子からは差分絶対値が出力される。
【0105】
ここで、各々の演算ユニット190〜201は、図2に示すような内部構成となっている。すなわち、演算ユニット190〜201は、マルチプレクサ184、画素値格納用レジスタ182、差分絶対値演算器185からなる。この図2において、上記第1の入力端子172には上記図1の端子180を介した前フレームFbの奇数カラムの候補ブロックBbの画素値cが供給され、上記第2の入力端子173には上記図1の端子189を介した前フレームFbの偶数カラムの候補ブロックBbの画素値cが供給される。これら画素値cは、マルチプレクサ184によって適宜切り替えられた後、上記差分絶対値演算器185の一方の入力端子に送られる。さらに、上記第3の端子171には、上記図1の端子181を介した参照ブロックBpの画素値rが供給される。この画素値rは、画素値格納用レジスタ182を介して上記差分絶対値演算器185の他方の入力端子に送られる。上記差分絶対値演算器185で求められた差分絶対値は、端子183から出力される。
【0106】
図1に戻って、本実施例装置では、上述したように、偶数番目の各演算ユニット190,192,194,196,198,200の出力がそれぞれ第1の加算器321〜325を介してパイプライン接続され、奇数番目の各演算ユニット191,193,195,197,199,201の出力がそれぞれ上記第2の加算器326〜330を介してパイプライン接続されている。
【0107】
すなわち、偶数番目の各演算ユニットから説明すると、本実施例装置では、演算ユニット190の出力と演算ユニット192の出力が加算器321で加算され、当該加算器321の加算出力と上記演算ユニット194の出力とが加算器322で加算され、当該加算器322の加算出力と上記演算ユニット196の出力とが加算器323で加算され、当該加算器323の加算出力と上記演算ユニット198の出力とが加算器324で加算され、当該加算器324の加算出力と上記演算ユニット200の出力とが加算器325で加算される。これにより、最終段の第1の加算器325の加算出力が、偶数フィールドにおける差分絶対値和De (i,j) となる。この偶数フィールドにおける差分絶対値和De (i,j) は、本実施例回路の偶数フィールド用出力端子342から出力される。
【0108】
また、奇数番目の各演算ユニットにおいては、演算ユニット191の出力と演算ユニット193の出力が加算器326で加算され、当該加算器326の加算出力と上記演算ユニット195の出力とが加算器327で加算され、当該加算器327の加算出力と上記演算ユニット197の出力とが加算器328で加算され、当該加算器328の加算出力と上記演算ユニット199の出力とが加算器329で加算され、当該加算器329の加算出力と上記演算ユニット201の出力とが加算器330で加算される。これにより、最終段の第2の加算器330の加算出力が、奇数フィールドにおける差分絶対値和Do (i,j) となる。この奇数フィールドにおける差分絶対値和Do (i,j) は、本実施例回路の奇数フィールド用出力端子343から出力される。
【0109】
なお、この図1において、第1,第2の加算器の入力端子側,出力端子側に接続されている(加算器間に挿入接続されている)レジスタ301〜319は、パイプラインレジスタである。
【0110】
さらに、上記偶数フィールドにおける差分絶対値和De (i,j) と奇数フィールドにおける差分絶対値和Do (i,j) は、加算器341で加算されるようになっている。この加算器341の加算出力がフレームにおける差分絶対値和D(i,j) となる。このフレームにおける差分絶対値和D(i,j) は、本実施例回路のフレーム用出力端子344から出力される。
【0111】
次に、上記図1,図2に示した回路構成を用いてフィールド対応動きベクトル検出処理を実現するための制御方式について説明する。図3,図4に、上記図1,図2に示した回路構成を用いたフィールド対応動きベクトル検出制御における動作のタイミングを示す。なお、図3には偶数フィールドにおける処理のタイミングを、図4には奇数フィールドにおける処理のタイミングを示している。
【0112】
この図3及び図4において、上記現フィールドFbの参照ブロックBpの画素値rは、1クロックサイクル毎に図1の各演算ユニット190〜201の画素値格納用レジスタ182に順次入力される。当該レジスタ182は、入力された参照ブロックBpの画素値rを12クロックサイクルの間保持する。したがって、各演算ユニット190〜201は、12クロックサイクルの間、同一の参照ブロックBpの画素値rについての差分絶対値演算を行うことになる。ただし、それぞれの演算ユニット190〜201では、参照ブロックBpの異なる画素値rに対して差分絶対値演算が行われる。
【0113】
また、候補ブロックBbの画素値cは、前フレームFbの偶数カラムと奇数カラムの2つの領域に分けられて、図1に示す2つの入力端子180,189から各演算ユニット190〜201に一定の順序で順次入力される。すなわち、前記図9に示した前フレームFbの画素値cの内の偶数カラムの画素値c,c,c,c,c,c,c,c14,c15,c16, ・・・が図1の入力端子189に、奇数カラムの画素値c,c,c,c10,c11,c12,c13,c21,c22,c23, ・・・が図1の入力端子180にそれぞれ供給される。この場合の各入力順序は、図3、図4に示すような一定の順序である。
各演算ユニット190〜201では、図3或いは図4に示す順序で候補ブロックBbの画素値cが供給されるように、演算ユニット内のマルチプレクサ184によって2つの画素値cを適宜切り替える。すなわち、図3、図4に示す具体例の場合、例えば演算ユニット190については、該演算ユニット190内のマルチプレクサ184では、クロックサイクル「0」〜「3」、「8」〜「11」、・・・の期間は、画素値c,c,c、c14,c15,c16,c17、・・・、すなわち偶数カラムの画素値cに切り替え、それ以外では奇数カラムの画素値cに切り替えている。また、例えば演算ユニット191では、クロックサイクル「1」〜「4」、「9」〜「12」、・・・の期間は、画素値c,c,c,c、c15,c16,c17,c18、・・・、すなわち偶数カラムの画素値cに切り替え、それ以外では奇数カラムの画素値cに切り替えている。同様に、演算ユニット192では、クロックサイクル「2」〜「5」、「10」〜「13」、・・・の期間は偶数カラムの画素値cに切り替え、それ以外では奇数カラムの画素値cに切り替えている。演算ユニット193では、クロックサイクル「3」〜「6」、「11」〜「14」、・・・の期間は偶数カラムの画素値cに切り替え、それ以外では奇数カラムの画素値cに切り替えている。以下の各演算ユニット194〜201内のマルチプレクサ184も同様に、4クロックサイクル周期で偶数カラム、奇数カラムの画素値cを適宜切り替えている。
このようにすることで、候補ブロックBbの画素値cについては、図3或いは図4に示すように、あるクロックサイクルにおいて、各演算ユニット190〜201が2つの画素値cに対して演算を行う。
【0114】
さらに、本実施例回路では、偶数番目の演算ユニット190,192,194,196,198,200の各差分絶対値演算器185からの出力が、上述のように上記パイプライン接続した第1の加算器321〜325を用いて順次加算され、偶数フィールドにおける差分絶対値和De (i,j) が計算される。一方、奇数番目の演算ユニット191,193,195,197,199,201の各差分絶対値演算器185からの出力も、上述のように上記パイプライン接続した第2の加算器326〜330を用いて順次加算され、奇数フィールドにおける差分絶対値和Do (i,j) が計算される。また、本実施例回路では、これら偶数フィールド,奇数フィールドにおける差分絶対値和De (i,j) 及びDo (i,j) が、上述のように加算器341によって加算され、フレームにおける差分絶対値和D(i,j) が算出される。
【0115】
上述したような制御を行うことにより、本実施例回路においては、1クロックサイクル毎に偶数フィールド用出力端子342,奇数フィールド用出力端子343,フレーム用出力端子344から3種の差分絶対値和が出力されるようになる。これらの差分絶対値和の大小比較を行うことにより、偶数フィールド,奇数フィールド、フレームの各々における3種の動きベクトルMVe (x,y) 、MVo (x,y) 、MV(x,y) を求めることができる。
【0116】
次に、本発明の第2の実施例の演算回路は、図5及び図6に示すように、1クロックサイクル毎に順次入力される参照ブロックBpの各画素値rを所定クロックサイクル間保持するレジスタ232と、候補ブロックBbの画素値cを偶数カラムと奇数カラムとで適宜切り替えるマルチプレクサ234と、上記レジスタ232から出力された参照ブロックBpの画素値rと上記マルチプレクサ234から出力された候補ブロックBbの画素値cとの差分絶対値(或いは差分自乗値)を計算する差分絶対値演算器235(或いは差分自乗演算器)と、上記差分絶対値演算器235からの偶数番目の出力を累加算する偶数番目用累算器245と、上記差分絶対値演算器235からの奇数番目の出力を累加算する奇数番目用累算器246とを有する演算ユニット(PE)をM×N個(3×4個の演算ユニット210〜221)設けると共に、当該演算ユニット210〜221をM×N(3×4)の行列状に配置して相互接続している。
【0117】
ここで、本実施例回路では、上記参照ブロックBp及び候補ブロックBbの画素値r及びcを一定の順序で供給することにより、偶数フィールドにおける差分絶対値和De (i,j) (或いは差分自乗和)と、奇数フィールドにおける差分絶対値和Do (i,j) (或いは差分自乗和)とを求め、さらに、これら偶数フィールドにおける差分絶対値和(或いは差分自乗和)と奇数フィールドにおける差分絶対値和(或いは差分自乗和)とを加算して得たフレームにおける差分絶対値和D(i,j) (或いは差分自乗和)とを求めるようにしている。
【0118】
この第2の実施例の演算回路においても、その後、これら得られた偶数フィールドにおける差分絶対値和De (i,j) (或いは差分自乗和)と奇数フィールドにおける差分絶対値和Do (i,j) (或いは差分自乗和)とフレームにおける差分絶対値和D(i,j) (或いは差分自乗和)から、それぞれ最小となる差分絶対値和(或いは差分自乗和)を求めることにより、偶数フィールドにおける動きベクトルMVe (x,y) と、奇数フィールドにおける動きベクトルMVo (x,y) と、フレームにおける動きベクトルMV(x,y) の3種の動きベクトルを同時に求める動きベクトル検出処理が実現できることになる。
【0119】
なお、図示は省略するが、本実施例の演算回路も、さらに、上記奇数フィールド、偶数フィールド、及びフレームのそれぞれにおいて求めた全ての候補ブロックについての参照ブロックとの差分絶対値和De (i,j) 、Do (i,j) 、D(i,j) (或いは差分自乗和)を格納するメモリを有してなり、このメモリに格納された各差分絶対値和(或いは差分自乗和)から、上記動きベクトルMVe (x,y) 、MVo (x,y) 、MV(x,y) を求めるための最小となる差分絶対値和(或いは差分自乗和)を求めるようにしている。
【0120】
なお、この図5において、端子236には前フレームFbの奇数カラムの候補ブロックBbの画素値cが供給され、当該画素値cが各演算ユニット210〜221の第1の入力端子に送られる。また、端子238には前フレームFbの偶数カラムの候補ブロックBbの画素値cが供給され、当該画素値cが各演算ユニット210〜221の第2の入力端子に送られる。端子237には参照ブロックBpの画素値rが供給され、縦続接続された各演算ユニット210〜221のうちの初段の演算ユニット210の第3の入力端子に送られ、順次、次段の演算ユニットの第3の入力端子に送られる。これら各演算ユニット210〜221に対応する各々2つの出力端子247,248からは偶数フィールドにおける差分絶対値和De (i,j) と奇数フィールドにおけるDo (i,j) が出力される。
【0121】
また、この図5の各演算ユニット210〜221は、図6に示すように、マルチプレクサ234、画素値格納用レジスタ232、差分絶対値演算器235、及び偶数フィールドにおける差分絶対値和De (i,j) を求めるための累算器(ACC)245と奇数フィールドにおける差分絶対値和Do (i,j) を求めるための累算器(ACC)246からなる。
【0122】
この図6において、上記第1の入力端子241には、上記図5の端子236を介した前フレームFbの奇数カラムの候補ブロックBbの画素値cが供給され、第2の入力端子234には上記図5の端子238を介した前フレームFbの偶数カラムの候補ブロックBbの画素値cが供給される。これら画素値cは、マルチプレクサ234によって適宜切り替えられた後、上記差分絶対値演算器235の一方の入力端子に送られる。さらに、第3の入力端子241には、図5の端子237を介した参照ブロックBpの画素値r或いは前段の演算ユニットの端子244からの画素値rが供給される。この画素値rは、画素値格納用レジスタ232を介して上記差分絶対値演算器235の他方の入力端子に送られると共に、上記端子244から次段の演算ユニットに送られる。上記差分絶対値演算器235の出力は、偶数フィールドにおける差分絶対値和De (i,j) を求めるための累算器245と奇数フィールドにおける差分絶対値和Do (i,j) を求めるための累算器246に送られ、これら累算器245,246で累算された後、これら累算器245,246に対応する端子247,248から偶数フィールドにおける差分絶対値和De (i,j) 及び奇数フィールドにおける差分絶対値和Do (i,j) として出力される。
【0123】
次に、上記図5,図6に示した第2の実施例の回路構成を用いてフィールド対応動きベクトル検出を実現するための制御方式について説明する。図7に、上記図5,図6に示した回路構成を用いたフィールド対応動きベクトル検出制御における動作のタイミングを示す。
【0124】
この図7に示すように、参照ブロックBpの画素値rは、1クロックサイクル毎に図5の初段の演算ユニット210の画素値格納用レジスタ232に順次入力される。当該入力された参照ブロックBpの画素値rは、12クロックサイクルかけて図5の全ての演算ユニット210〜221に供給される。すなわち、それぞれの演算ユニット210〜221では、参照ブロックBpの異なる画素値rに対して差分絶対値演算が行われる。
【0125】
また、候補ブロックBbの画素値cは、前フレームFbの偶数カラムと奇数カラムの2つの領域に分けられて、図5に示す2つの入力端子236,238から各演算ユニット210〜221に一定の順序で順次入力される。すなわち、前記図9に示した前フレームFbの画素値cの内の偶数カラムの画素値c,c,c,c,c,c,c,c14,c15,c16, ・・・が図5の入力端子238に、奇数カラムの画素値c,c,c,c10,c11,c12,c13,c21,c22,c23, ・・・が図5の入力端子236にそれぞれ供給される。この場合の各入力順序は、図7に示すような一定の順序である。
各演算ユニット210〜221では、図7に示す順序で候補ブロックBbの画素値cが供給されるように、演算ユニット内のマルチプレクサ234により2つの画素値cを適宜切り替える。すなわち、図7に示す具体例の場合、演算ユニット210内のマルチプレクサ234では、クロックサイクル「0」〜「3」、「8」〜「11」、・・・の期間は偶数カラムの画素値cに切り替え、それ以外では奇数カラムの画素値cに切り替えている。演算ユニット211では、クロックサイクル「1」〜「4」、「9」〜「12」、・・・の期間は偶数カラムの画素値cに切り替え、それ以外では奇数カラムの画素値cに切り替えている。演算ユニット212では、クロックサイクル「2」〜「5」、「10」〜「13」、・・・の期間は偶数カラムの画素値cに切り替え、それ以外では奇数カラムの画素値cに切り替えている。演算ユニット213では、クロックサイクル「3」〜「6」、「11」〜「14」、・・・の期間は偶数カラムの画素値cに切り替え、それ以外では奇数カラムの画素値cに切り替えている。以下の各演算ユニット214〜221内のマルチプレクサ234も同様に、4クロックサイクル周期で偶数カラム、奇数カラムの画素値cを適宜切り替えている。
このようにすることで、候補ブロックBbの画素値cについては、図7に示すように、あるクロックサイクルにおいて、各演算ユニット210〜221が2つの画素値cに対して演算を行う。
【0126】
さらに、各演算ユニット210〜221では、差分絶対値演算器235からの偶数番目の出力を上記累算器245に送る。これにより、当該累算器245では、偶数フィールドにおける差分絶対値和De (i,j) が計算される。一方、差分絶対値演算器235からの奇数番目の出力は、累算器246に送られる。これにより、当該累算器246では、奇数フィールドにおける差分絶対値和Do (i,j) が計算される。
【0127】
上述したような制御を行うことにより、本実施例においては、1クロックサイクル毎に図5の各演算ユニット210〜221から、順次、偶数フィールドにおける差分絶対値和De (i,j) 及び奇数フィールドにおける差分絶対値和Do (i,j) が出力(出力端子247,248から出力)されるようになる。これらの差分絶対値和De (i,j) ,Do (i,j) を各々で大小比較することにより、偶数フィールド、奇数フィールドの各々における2種の動きベクトルMVe (x,y) 、MVo (x,y) を求めることができる。
【0128】
さらに、本実施例回路では、これら偶数フィールド,奇数フィールドにおける差分絶対値和De (i,j) 及びDo (i,j) を加算してフレームにおける差分絶対値和D(i,j) を求め、このフレームにおける差分絶対値和D(i,j) を大小比較することで、フレームにおける動きベクトルMV(x,y) を求めることができる。
【0129】
なお、上述した各実施例では、参照ブロックBpのサイズが3×4画素で、候補ブロックBbの数もまた3×4個の場合のフィールド対応動きベクトル検出処理について述べたが、本発明はこれら実施例に限定されず、参照ブロックBpのサイズと候補ブロックBbの数が等しければ、どのような参照ブロックBpのサイズの動きベクトル検出処理についても実現可能である。
【0130】
上述のように、本発明の各実施例の演算回路によれば、前記数式(39)に示した偶数フィールド,奇数フィールド,フレームにおける各差分絶対値和の関係を利用して、偶数フィールドにおける差分絶対値和De (i,j) と奇数フィールドにおける差分絶対値和Do (i,j) とからフレームにおける差分絶対値和D(i,j) を求めることが可能となる。
【0131】
また、各実施例回路では、パイプラインの接続(あるいは累算器の接続)を工夫することにより、同一の候補ブロックBpの画素値cを用いる偶数フィールドにおける差分絶対値和演算と奇数フィールドにおける差分絶対値和演算とを、1つの動きベクトル検出回路により行うことが可能となる。
【0132】
したがって、本実施例の演算回路によれば、フィールド対応動きベクトル検出処理において、偶数フィールド、奇数フィールド、フレームの各々における3種の動きベクトルMVe (x,y) 、MVo (x,y) 、MV(x,y) を、1つの動きベクトル検出回路で求めることが可能となり、ハードウェア量を従来の回路構成の1/3に削減できる。
【0133】
さらに、本実施例の回路構成における外部の付加回路は、前記フレームのみの動きベクトル検出処理を行う場合の回路構成と同一であり、また、フレームメモリのポート数も前記フレームのみの動きベクトル検出処理を行う場合の回路構成と変わらないため、フィールド対応動きベクトル検出処理をフレームメモリのポート数の増加なしに実現することができる。
【0134】
【発明の効果】
上述のように、本発明によれば、参照ブロックのサイズがM×Nで、候補ブロック数もまたM×Nである場合に、参照ブロックの画素値と候補ブロックの画素値との差分絶対値(或いは差分自乗値)を計算する差分絶対値演算器(或いは差分自乗演算器)を有するM×N個の演算ユニットをM×Nの行列状に配置し、偶数番目の各演算ユニットの出力をそれぞれ第1の加算器を介してパイプライン接続し、奇数番目の各演算ユニットの出力をそれぞれ第1の加算器とは別系統の第2の加算器を介してパイプライン接続し、各演算ユニットでは参照ブロック及び候補ブロックの画素値を一定の順序で差分絶対値演算器(或いは差分自乗演算器)に供給することにより、また、参照ブロックの画素値と候補ブロックの画素値との差分絶対値(或いは差分自乗値)を偶数用と奇数用の2個の累算器でそれぞれ累積して差分絶対値和(或いは差分自乗和)を求めるM×N個の演算ユニットをM×Nの行列状に配置して相互接続し、参照ブロック及び候補ブロックの画素値を一定の順序で供給することにより、奇数フィールド、偶数フィールド、フレームにおける差分絶対値和を求めることを可能としている。したがって、本発明の演算回路は、ハードウェア量の削減ができ、また、外部の付加回路の削減、フレームメモリのポート数の増大を防ぐことが可能となっている。
【図面の簡単な説明】
【図1】フィールド対応動きベクトル検出処理を行う第1の実施例の演算回路の全体構成を示すブロック回路図である。
【図2】第1の実施例の演算回路の演算ユニットの具体的構成を示すブロック回路図である。
【図3】第1の実施例の演算回路における偶数フィールドにおける動きベクトル検出処理の制御のタイミングを説明するための図である。
【図4】第1の実施例の演算回路における奇数フィールドにおける動きベクトル検出処理の制御のタイミングを説明するための図である。
【図5】フィールド対応動きベクトル検出処理を行う第2の実施例の演算回路の全体構成を示すブロック回路図である。
【図6】第2の実施例の演算回路の演算ユニットの具体的構成を示すブロック回路図である。
【図7】第2の実施例の演算回路におけるフィールド対応動きベクトル検出処理の制御のタイミングを説明するための図である。
【図8】動きベクトル検出処理の原理を示す図である。
【図9】参照ブロックのサイズが3×4画素で、候補ブロックの数が3×4個の場合の動きベクトル検出処理を説明するための図である。
【図10】従来のフレームのみの動きベクトル検出処理を行う演算回路の全体構成を示すブロック回路図である。
【図11】従来例回路の演算ユニットの具体的構成を示すブロック回路図である。
【図12】従来例回路のマルチプレクサ付き画素値格納用レジスタの具体的構成を示すブロック回路図である。
【図13】従来の動きベクトル検出処理の制御のタイミングを説明するための図である。
【符号の説明】
190〜201,210〜221・・・演算ユニット
182,232・・・・・・・・・・画素値格納用レジスタ
184,234・・・・・・・・・・マルチプレクサ
185,235・・・・・・・・・・差分絶対値演算器
245,246・・・・・・・・・・累算器
301〜319・・・・・・・・・・パイプラインレジスタ
321〜330,341・・・・・・加算器

Claims (6)

  1. 参照ブロックのブロックサイズをM×N画素とし、候補ブロックの個数をM×N個として、ブロックマッチング法により全探索を行って動きベクトル検出を行う演算回路であって、
    上記参照ブロックの画素値と候補ブロックの画素値との差分絶対値を計算する差分絶対値演算器を少なくとも有する演算ユニットをM×N個設けると共に、当該演算ユニットをM×Nの行列状に配置し、
    偶数番目の各演算ユニットの出力をそれぞれ第1の加算器を介してパイプライン接続し、
    奇数番目の各演算ユニットの出力をそれぞれ上記第1の加算器と別系統の第2の加算器を介してパイプライン接続し、
    上記参照ブロック及び候補ブロックの画素値を一定の順序で上記各演算ユニットの差分絶対値演算器に供給することにより、
    偶数フィールドにおける動きベクトルと、奇数フィールドにおける動きベクトルと、フレームにおける動きベクトルの3種の動きベクトルを同時に求める動きベクトル検出処理を行うことを特徴とする演算回路。
  2. 参照ブロックのブロックサイズをM×N画素とし、候補ブロックの個数をM×N個として、ブロックマッチング法により全探索を行って動きベクトル検出を行う演算回路であって、
    上記参照ブロックの画素値と候補ブロックの画素値との差分自乗値を計算する差分自乗演算器を少なくとも有する演算ユニットをM×N個設けると共に、当該演算ユニットをM×Nの行列状に配置し、
    偶数番目の各演算ユニットの出力をそれぞれ第1の加算器を介してパイプライン接続し、
    奇数番目の各演算ユニットの出力をそれぞれ上記第1の加算器と別系統の第2の加算器を介してパイプライン接続し、
    上記参照ブロック及び候補ブロックの画素値を一定の順序で上記各演算ユニットの差分自乗演算器に供給することにより、
    偶数フィールドにおける動きベクトルと、奇数フィールドにおける動きベクトルと、フレームにおける動きベクトルの3種の動きベクトルを同時に求める動きベクトル検出処理を行うことを特徴とする演算回路。
  3. 参照ブロックのブロックサイズをM×N画素とし、候補ブロックの個数をM×N個として、ブロックマッチング法により全探索を行って動きベクトル検出を行う演算回路であって、
    上記参照ブロックの画素値と候補ブロックの画素値との差分絶対値を計算し、奇数番目の差分絶対値と偶数番目の差分絶対値をそれぞれ別々に累積して差分絶対値和を求める演算ユニットをM×N個設けると共に、当該演算ユニットをM×Nの行列状に配置して相互接続し、上記参照ブロック及び候補ブロックの画素値を一定の順序で供給することにより、
    偶数フィールドにおける動きベクトルと、奇数フィールドにおける動きベクトルと、フレームにおける動きベクトルの3種の動きベクトルを同時に求める動きベクトル検出処理を行うことを特徴とする演算回路。
  4. 参照ブロックのブロックサイズをM×N画素とし、候補ブロックの個数をM×N個として、ブロックマッチング法により全探索を行って動きベクトル検出を行う演算回路であって、
    上記参照ブロックの画素値と候補ブロックの画素値との差分自乗値を計算し、奇数番目の差分自乗値と偶数番目の差分自乗値をそれぞれ別々に累積して差分自乗和を求める演算ユニットをM×N個設けると共に、当該演算ユニットをM×Nの行列状に配置して相互接続し、上記参照ブロック及び候補ブロックの画素値を一定の順序で供給することにより、
    偶数フィールドにおける動きベクトルと、奇数フィールドにおける動きベクトルと、フレームにおける動きベクトルの3種の動きベクトルを同時に求める動きベクトル検出処理を行うことを特徴とする演算回路。
  5. 上記奇数フィールド、偶数フィールド、フレームのそれぞれにおいて、全ての候補ブロックについての参照ブロックとの差分絶対値和を格納するメモリを有することを特徴とする請求項1又は3記載の演算回路。
  6. 上記奇数フィールド、偶数フィールド、フレームのそれぞれにおいて、全ての候補ブロックについての参照ブロックとの差分自乗和を格納するメモリを有することを特徴とする請求項2又は4記載の演算回路。
JP02713893A 1993-01-25 1993-01-25 演算回路 Expired - Fee Related JP3545004B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP02713893A JP3545004B2 (ja) 1993-01-25 1993-01-25 演算回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP02713893A JP3545004B2 (ja) 1993-01-25 1993-01-25 演算回路

Publications (2)

Publication Number Publication Date
JPH06225287A JPH06225287A (ja) 1994-08-12
JP3545004B2 true JP3545004B2 (ja) 2004-07-21

Family

ID=12212696

Family Applications (1)

Application Number Title Priority Date Filing Date
JP02713893A Expired - Fee Related JP3545004B2 (ja) 1993-01-25 1993-01-25 演算回路

Country Status (1)

Country Link
JP (1) JP3545004B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02177105A (ja) * 1988-12-28 1990-07-10 Hitachi Maxell Ltd 磁気ヘツド
KR950014343B1 (ko) * 1993-05-20 1995-11-24 한국방송공사 고화질 티브(hdtv)의 화상데이타 움직임 추정방법 및 그 장치
KR100225690B1 (ko) * 1995-04-18 1999-10-15 모리시다 요이치 상관도 연산장치, 병렬상관도 연산장치 및 상관도연산방법
JP5013040B2 (ja) * 2005-09-29 2012-08-29 株式会社メガチップス 動き探索方法
JP5013041B2 (ja) * 2005-09-29 2012-08-29 株式会社メガチップス 動き探索方法
US8290044B2 (en) 2006-05-10 2012-10-16 Qualcomm Incorporation Instruction for producing two independent sums of absolute differences

Also Published As

Publication number Publication date
JPH06225287A (ja) 1994-08-12

Similar Documents

Publication Publication Date Title
CA2014854C (en) Circuit implementation of block matching algorithm with fractional precision
US5719642A (en) Full-search block matching motion estimation processor
US5586202A (en) Motion detecting apparatus
US5621481A (en) Motion vector detecting apparatus for determining interframe, predictive error as a function of interfield predictive errors
US5604546A (en) Image signal processing circuit for performing motion estimation
US20010028681A1 (en) Motion estimator
JPH06334980A (ja) 動画像の動きベクトル検出装置
US6516031B1 (en) Motion vector detecting device
US8509567B2 (en) Half pixel interpolator for video motion estimation accelerator
US5793443A (en) Motion vector detection circuit
JP3545004B2 (ja) 演算回路
US6990149B2 (en) Circuit and method for full search block matching
Baek et al. A fast array architecture for block matching algorithm
US6198771B1 (en) Motion vector processing circuit
CN100553341C (zh) 运动矢量检测装置和运动矢量检测方法
US6968011B2 (en) Motion vector detecting device improved in detection speed of motion vectors and system employing the same devices
KR100225690B1 (ko) 상관도 연산장치, 병렬상관도 연산장치 및 상관도연산방법
JP4101645B2 (ja) 動きベクトル検出装置,動きベクトル検出方法,プログラム,および記録媒体
JP2960328B2 (ja) シストリックアーキテクチャ内に配置される「n+1」個の演算子にオペランドを供給するための装置
JPH0879761A (ja) 動き予測装置および動きベクトルを計算する装置
JPH10322706A (ja) 動きベクトル検出装置
JP2885039B2 (ja) 動きベクトル検出回路
JP3038935B2 (ja) 動き検出装置
JP4170173B2 (ja) ブロックマッチング演算装置
JPH01265684A (ja) 動き補償フレーム間予測符号化および復号化装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20020806

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040407

LAPS Cancellation because of no payment of annual fees