(57)【特許請求の範囲】
【請求項１】
参照ブロックのブロックサイズをＭ×Ｎ画素とし、候補ブロックの個数をＭ×Ｎ個として、ブロックマッチング法により全探索を行って動きベクトル検出を行う演算回路であって、
上記参照ブロックの画素値と候補ブロックの画素値との差分絶対値を計算する差分絶対値演算器を少なくとも有する演算ユニットをＭ×Ｎ個設けると共に、当該演算ユニットをＭ×Ｎの行列状に配置し、
偶数番目の各演算ユニットの出力をそれぞれ第１の加算器を介してパイプライン接続し、
奇数番目の各演算ユニットの出力をそれぞれ上記第１の加算器と別系統の第２の加算器を介してパイプライン接続し、
上記参照ブロック及び候補ブロックの画素値を一定の順序で上記各演算ユニットの差分絶対値演算器に供給することにより、
偶数フィールドにおける動きベクトルと、奇数フィールドにおける動きベクトルと、フレームにおける動きベクトルの３種の動きベクトルを同時に求める動きベクトル検出処理を行うことを特徴とする演算回路。
【請求項２】
参照ブロックのブロックサイズをＭ×Ｎ画素とし、候補ブロックの個数をＭ×Ｎ個として、ブロックマッチング法により全探索を行って動きベクトル検出を行う演算回路であって、
上記参照ブロックの画素値と候補ブロックの画素値との差分自乗値を計算する差分自乗演算器を少なくとも有する演算ユニットをＭ×Ｎ個設けると共に、当該演算ユニットをＭ×Ｎの行列状に配置し、
偶数番目の各演算ユニットの出力をそれぞれ第１の加算器を介してパイプライン接続し、
奇数番目の各演算ユニットの出力をそれぞれ上記第１の加算器と別系統の第２の加算器を介してパイプライン接続し、
上記参照ブロック及び候補ブロックの画素値を一定の順序で上記各演算ユニットの差分自乗演算器に供給することにより、
偶数フィールドにおける動きベクトルと、奇数フィールドにおける動きベクトルと、フレームにおける動きベクトルの３種の動きベクトルを同時に求める動きベクトル検出処理を行うことを特徴とする演算回路。
【請求項３】
参照ブロックのブロックサイズをＭ×Ｎ画素とし、候補ブロックの個数をＭ×Ｎ個として、ブロックマッチング法により全探索を行って動きベクトル検出を行う演算回路であって、
上記参照ブロックの画素値と候補ブロックの画素値との差分絶対値を計算し、奇数番目の差分絶対値と偶数番目の差分絶対値をそれぞれ別々に累積して差分絶対値和を求める演算ユニットをＭ×Ｎ個設けると共に、当該演算ユニットをＭ×Ｎの行列状に配置して相互接続し、上記参照ブロック及び候補ブロックの画素値を一定の順序で供給することにより、
偶数フィールドにおける動きベクトルと、奇数フィールドにおける動きベクトルと、フレームにおける動きベクトルの３種の動きベクトルを同時に求める動きベクトル検出処理を行うことを特徴とする演算回路。
【請求項４】
参照ブロックのブロックサイズをＭ×Ｎ画素とし、候補ブロックの個数をＭ×Ｎ個として、ブロックマッチング法により全探索を行って動きベクトル検出を行う演算回路であって、
上記参照ブロックの画素値と候補ブロックの画素値との差分自乗値を計算し、奇数番目の差分自乗値と偶数番目の差分自乗値をそれぞれ別々に累積して差分自乗和を求める演算ユニットをＭ×Ｎ個設けると共に、当該演算ユニットをＭ×Ｎの行列状に配置して相互接続し、上記参照ブロック及び候補ブロックの画素値を一定の順序で供給することにより、
偶数フィールドにおける動きベクトルと、奇数フィールドにおける動きベクトルと、フレームにおける動きベクトルの３種の動きベクトルを同時に求める動きベクトル検出処理を行うことを特徴とする演算回路。
【請求項５】
上記奇数フィールド、偶数フィールド、フレームのそれぞれにおいて、全ての候補ブロックについての参照ブロックとの差分絶対値和を格納するメモリを有することを特徴とする請求項１又は３記載の演算回路。
【請求項６】
上記奇数フィールド、偶数フィールド、フレームのそれぞれにおいて、全ての候補ブロックについての参照ブロックとの差分自乗和を格納するメモリを有することを特徴とする請求項２又は４記載の演算回路。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、ディジタル画像処理の画像圧縮符号化等に用いられる動きベクトル検出処理に用いて好適な演算回路に関するものであり、特に、いわゆるブロックマッチング法で全探索を行って動きベクトル検出を行う演算回路に関するものである。
【０００２】
【従来の技術】
従来より、ディジタル画像処理の画像圧縮符号化等に用いられる動きベクトル検出処理において一般に実用化されている方式としては、いわゆるブロックマッチング法と勾配法がある。
【０００３】
以下、ブロックマッチング法について説明する。当該ブロックマッチング法は、画像圧縮符号化の動き補償予測に広く用いられている。
【０００４】
先ず、画像フレーム（或いはフィールド）を細いブロックに分割する。この時のブロックサイズとしては、一般に８×８画素や１６×１６画素のサイズが用いられる。ここで、動きベクトル検出処理とは、基本的には、現フレームの対象ブロック（参照ブロックと呼ぶ）が、前フレームのどの領域から移動してきたかを検出する処理である。すなわち、具体的に言うと、動きベクトル検出処理は、例えば図８に示すように、現フレームＦｐの参照ブロックＢｐに最も良く似たブロックを前フレームＦｂの探索範囲Ｅ内の候補ブロックＢｂの集合より検出し、当該検出された候補ブロックＢｂと参照ブロックＢｐ間の位置のずれを動きベクトルとして検出する処理である。
【０００５】
上記動きベクトル検出処理における上記参照ブロックＢｐに最も良く似たブロックの判定は、以下のように行われる。
すなわち、先ず第１の判定操作として、ある候補ブロックＢｂの各画素値ｃについて、参照ブロックＢｐの対応する画素値ｒとの差分をとり、その絶対値和（或いは自乗和）を求める。
【０００６】
次に、第２の判定操作として、上記第１の判定操作を探索範囲Ｅ内の全ての候補ブロックＢｂについて行い、それぞれ求めた各差分絶対値和（或いは差分自乗和）のうちから最小のものを求める。この最小の差分絶対値和（或いは差分自乗和）を与える候補ブロックＢｂを、参照ブロックＢｐに最も良く似たブロックとする。
【０００７】
具体的に言うと、参照ブロックＢｐのブロックサイズをＭ×Ｎ画素とし、候補ブロックＢｂの数をＫ×Ｌ個とした場合、上記動きベクトル検出処理は、以下の数１の数式(1) と、次の数式(2) で表せる。なお、この数式(1) ，数式(2) では、差分自乗和でなく、差分絶対値和Ｄ(i,j) を求めている。また、数式(1) の式中のｒは現フレームの参照ブロックＢｐの画素値を表し、数式(1) の式中のｃは前フレームの画素値を表している。さらに、数式(2) の式中（ｘ，ｙ）は、最小となる差分絶対値和（ｍｉｎＤ(i,j) ）を与えるときの（ｉ，ｊ）を意味する。この数式(2) における（ｘ，ｙ）が動きベクトルＭＶ(x,y) となる。
【０００８】
【数１】
0003545004.tif 000002
【０００９】
【数２】
ＭＶ(x,y) ＝ｍｉｎＤ(i,j)                           ・・・・(2)
【００１０】
このようなことから、参照ブロックＢｐのブロックサイズが４×４画素で候補ブロックＢｂの数が７×７個の場合に差分絶対値和Ｄ(5,3) が最小になっている上記図８の例では、上記動きベクトルＭＶが（５，３）となる。
【００１１】
次に、フレームを単位として動きベクトルを検出する処理（以下フレームのみの動きベクトル検出処理と呼ぶ）における従来の回路構成について説明する。先ず、従来の回路構成を説明するために、動きベクトル検出処理の例を挙げ、その例について説明する。さらに、その例に沿って、従来の回路構成および制御方式を説明する。
【００１２】
ここで、一例として、参照ブロックＢｐのブロックサイズが３×４画素で、候補ブロックＢｂの数もまた３×４個の場合の動きベクトル検出処理について、図９を用いて説明する。なお、この図９では、現フレームＦｐの参照ブロックＢｐの各画素値ｒについては英小文字の番号ａ，ｂ，ｃ，・・・を付している（ｒa ，ｒb ，ｒc ，・・・・）。また、前フレームＦｂの各画素値ｃについては数字の番号０，１，２，・・・を付している（ｃ0 ，ｃ1 ，ｃ2 ，・・・・）。以下、上記フレームのみの動きベクトル検出処理の手順を、この図９を用いて説明する。
【００１３】
先ず、第１の処理工程として、参照ブロックＢｐ０の画素値ｒ（ｒa 〜ｒl ）と、参照ブロックＢｐ０に対する探索範囲Ｅ０内の全ての候補ブロックＢｂ０（１２個存在する）の画素値ｃ（ｃ0 〜ｃ34）について、前述した数式(1) に基づいて以下の数式(3) 〜数式(14)のような計算を行い、差分絶対値和Ｄ(i,j) （０≦ｉ＜２，０≦ｊ＜３）を求める。
【００１４】
【数３】
Ｄ(0,0)=｜ｒa −ｃ0 ｜＋｜ｒb −ｃ1 ｜＋｜ｒc −ｃ2 ｜＋｜ｒd −ｃ3 ｜
＋｜ｒe −ｃ7 ｜＋・・・・＋｜ｒl −ｃ17｜      ・・・・(3)
【００１５】
【数４】
Ｄ(0,1)=｜ｒa −ｃ1 ｜＋｜ｒb −ｃ2 ｜＋｜ｒc −ｃ3 ｜＋｜ｒd −ｃ4 ｜
＋｜ｒe −ｃ8 ｜＋・・・・＋｜ｒl −ｃ18｜      ・・・・(4)
【００１６】
【数５】
Ｄ(0,2)=｜ｒa −ｃ2 ｜＋｜ｒb −ｃ3 ｜＋｜ｒc −ｃ4 ｜＋｜ｒd −ｃ5 ｜
＋｜ｒe −ｃ9 ｜＋・・・・＋｜ｒl −ｃ19｜      ・・・・(5)
【００１７】
【数６】
Ｄ(0,3)=｜ｒa −ｃ3 ｜＋｜ｒb −ｃ4 ｜＋｜ｒc −ｃ5 ｜＋｜ｒd −ｃ6 ｜
＋｜ｒe −ｃ10｜＋・・・・＋｜ｒl −ｃ20｜      ・・・・(6)
【００１８】
【数７】
Ｄ(1,0)=｜ｒa −ｃ7 ｜＋｜ｒb −ｃ8 ｜＋｜ｒc −ｃ9 ｜＋｜ｒd −ｃ10｜
＋｜ｒe −ｃ14｜＋・・・・＋｜ｒl −ｃ24｜      ・・・・(7)
【００１９】
【数８】
Ｄ(1,1)=｜ｒa −ｃ8 ｜＋｜ｒb −ｃ9 ｜＋｜ｒc −ｃ10｜＋｜ｒd −ｃ11｜
＋｜ｒe −ｃ15｜＋・・・・＋｜ｒl −ｃ25｜      ・・・・(8)
【００２０】
【数９】
Ｄ(1,2)=｜ｒa −ｃ9 ｜＋｜ｒb −ｃ10｜＋｜ｒc −ｃ11｜＋｜ｒd −ｃ12｜
＋｜ｒe −ｃ16｜＋・・・・＋｜ｒl −ｃ26｜      ・・・・(9)
【００２１】
【数１０】
Ｄ(1,3)=｜ｒa −ｃ10｜＋｜ｒb −ｃ11｜＋｜ｒc −ｃ12｜＋｜ｒd −ｃ13｜
＋｜ｒe −ｃ17｜＋・・・・＋｜ｒl −ｃ27｜      ・・・・(10)
【００２２】
【数１１】
Ｄ(2,0)=｜ｒa −ｃ14｜＋｜ｒb −ｃ15｜＋｜ｒc −ｃ16｜＋｜ｒd −ｃ17｜
＋｜ｒe −ｃ21｜＋・・・・＋｜ｒl −ｃ31｜      ・・・・(11)
【００２３】
【数１２】
Ｄ(2,1)=｜ｒa −ｃ15｜＋｜ｒb −ｃ16｜＋｜ｒc −ｃ17｜＋｜ｒd −ｃ18｜
＋｜ｒe −ｃ22｜＋・・・・＋｜ｒl −ｃ32｜      ・・・・(12)
【００２４】
【数１３】
Ｄ(2,2)=｜ｒa −ｃ16｜＋｜ｒb −ｃ17｜＋｜ｒc −ｃ18｜＋｜ｒd −ｃ19｜
＋｜ｒe −ｃ23｜＋・・・・＋｜ｒl −ｃ33｜      ・・・・(13)
【００２５】
【数１４】
Ｄ(2,3)=｜ｒa −ｃ17｜＋｜ｒb −ｃ18｜＋｜ｒc −ｃ19｜＋｜ｒd −ｃ20｜
＋｜ｒe −ｃ24｜＋・・・・＋｜ｒl −ｃ34｜      ・・・・(14)
【００２６】
次に、第２の処理工程として、上記第１の処理工程で求めた全ての差分絶対値和Ｄ(i,j) （０≦ｉ＜２，０≦ｊ＜３）について、前述した数式(2) に基づいて最小となる差分絶対値和ｍｉｎＤ(i,j) を求め、動きベクトルＭＶ(x,y) を得る。
【００２７】
第３の処理工程として、参照ブロックＢｐ０に隣接する参照ブロックＢｐ１の画素値ｒa'〜ｒl'と、参照ブロックＢｐ１の探索範囲Ｅ１内のすべての候補ブロックＢｂ１（１２個存在する）の画素値ｃ21〜ｃ55について、上記第１の処理工程と同様に、数式(1) に基づいて計算を行い、差分絶対値和Ｄ’(i,j) （０≦ｉ＜２，０≦ｊ＜３）を求める。
【００２８】
その後、第４の処理工程として、上記第３の処理工程で求めた全ての差分絶対値和Ｄ’(i,j) （０≦ｉ＜２，０≦ｊ＜３）について、数式(2) に基づいて最小となる差分絶対値和ｍｉｎＤ’(i,j) を求め、動きベクトルＭＶ(x,y) を得る。
【００２９】
最後に、第５の処理工程として、以下同様に、現フレームＦｐの全ての参照ブロックＢｐについて、上記の操作を繰り返し、動きベクトルＭＶ(x,y) を求める。
【００３０】
従来は、上述したような動きベクトル検出処理を図１０，図１１，図１２に示す回路構成で実現している。
【００３１】
ここで、図１０は、従来の動きベクトル検出回路（動きベクトル検出を行う演算回路）の全体構成である。この図１０において、当該演算回路は、複数の演算ユニット（ＰＥ）１０〜２１と、複数の画素値格納用レジスタ(Reg) ２２〜３８と、複数のマルチプレクサ付き画素値格納用レジスタ（Ｍ＆Ｒ）３９〜４４とを相互接続した構成となっている。
【００３２】
すなわちこの図１０において、端子１には参照ブロックＢｐの画素値ｒが供給され、縦続接続された各演算ユニット１０〜２１に送られる。また、端子２には例えば探索範囲Ｅの上半分の候補ブロックＢｂの画素値ｃが供給され、縦続接続された画素値格納用レジスタ２２〜２５の初段のレジスタ２２の入力端子に送られ、これら画素値格納用レジスタ２２〜２５で順次格納される。
【００３３】
上記各画素値格納用レジスタ２２〜２５の各出力は、上記演算ユニット１０〜２１のうちの対応する演算ユニット１０〜１３にも送られる。これら演算ユニット１０〜１３のうちの演算ユニット１３の出力は、縦続接続された画素値格納用レジスタ３０〜３２の初段のレジスタ３０の入力端子に送られ、これら画素値補間用レジスタ３０〜３２で順次格納される。上記各画素値格納用レジスタ３０〜３２の出力は、上記演算ユニット１０〜２１のうちの対応する演算ユニット１５〜１７にも送られる。
【００３４】
さらに、これら演算ユニット１５〜１７のうちの演算ユニット１７の出力は、縦続接続された画素値格納用レジスタ３３〜３５の初段のレジスタ３３の入力端子に送られ、これら画素値補間用レジスタ３３〜３５で順次格納される。上記各画素値格納用レジスタ３３〜３５の出力は、上記演算ユニット１０〜２１のうちの対応する演算ユニット１９〜２１にも送られる。
【００３５】
また、端子３には例えば探索範囲Ｅの下半分の候補ブロックＢｂの画素値ｃが供給され、縦続接続された画素値格納用レジスタ２６〜２９の初段のレジスタ２６の入力端子に送られ、これら画素値格納用レジスタ２６〜２９で順次格納される。上記各画素値格納用レジスタ２６〜２９のうちのレジスタ２７の出力は画素値格納用レジスタ３６にも送られ、レジスタ２８の出力は一方の入力端子に上記レジスタ３６の出力が供給されるマルチプレクサ付き画素値格納用レジスタ３９の他方の入力端子に、レジスタ２９の出力は一方の入力端子にレジスタ３９の出力が供給されるマルチプレクサ付き画素値格納用レジスタ４０の他方の入力端子にも送られる。
【００３６】
上記マルチプレクサ付き画素値格納用レジスタ４０の出力は、上記演算ユニット１０〜２１のうちの演算ユニット１０の入力端子に送られる。この演算ユニット１０の出力は、次の演算ユニット１１に送られると共に、画素値格納用レジスタ３７の入力端子にも送られる。当該レジスタ３７の出力は一方の入力端子に上記演算ユニット１１の出力が供給されるマルチプレクサ付き画素値格納用レジスタ４１の他方の入力端子に供給され、このレジスタ４１の出力は一方の入力端子に上記演算ユニット１２の出力が供給されマルチプレクサ付き画素値格納用レジスタ４２の他方の入力端子に供給される。また、演算ユニット１３の出力は、上記画素値格納用レジスタ３０へ送られると共に、演算ユニット１４にも送られる。
【００３７】
さらに、上記演算ユニット１４の出力は、次の演算ユニット１５に送られると共に、画素値格納用レジスタ３８の入力端子にも送られる。当該レジスタ３８の出力は一方の入力端子に上記演算ユニット１５の出力が供給されるマルチプレクサ付き画素値格納用レジスタ４３の他方の入力端子に供給され、このレジスタ４３の出力は一方の入力端子に上記演算ユニット１６の出力が供給されまマルチプレクサ付き画素値格納用レジスタ４４の他方の入力端子に供給される。また、演算ユニット１７の出力は、上記画素値格納用レジスタ３３へ送られると共に、演算ユニット１８にも送られる。
【００３８】
ここで、上述した図１０の各演算ユニット１０〜２１は、具体的には図１１に示すように構成されるものである。この図１１において、端子５１には図１０の他の演算ユニット或いは画素値格納用レジスタからの出力が供給され、端子５５には図１０の他の演算ユニット或いはマルチプレクサ付き画素値格納用レジスタからの出力が供給される。これら端子５１，５５を介した信号は、マルチプレクサ（ＭＰＸ）５７で多重化された後画素値格納用レジスタ５８に送られる。当該画素値格納用レジスタ５８の出力は、端子５２及び５４から出力されると共に、差分絶対値演算器（｜ｒ−ｃ｜）５９の一方の入力端子に供給される。この差分絶対値演算器５９の他方の入力端子には、端子５３を介した上記図１０の端子１を介した参照ブロックＢｐの画素値ｒが供給される。当該差分絶対値演算器５９の出力は、累算器（ＡＣＣ）６０に送られ、当該累算器６０で累加算された後、端子５６から差分絶対値和Ｄ(i,j) として出力される。
【００３９】
また、上述した図１０の上記マルチプレクサ付き画素値格納用レジスタ３９〜４４は、具体的には図１２に示すように構成されるものである。この図１２において、端子７２には前段の図１０の画素値格納用レジスタ或いはマルチプレクサ付き画素値格納用レジスタの出力が供給され、端子７３には対応する図１０の画像値格納用レジスタ或いは演算ユニットの図１１の端子５４からの出力が供給される。この端子７２，７３を介した信号は、マルチプレクサ７５で多重化された後画素値格納用レジスタ７６に送られる。当該画素値格納用レジスタ７６の出力が、端子７１を介して後段の構成に送られる。
【００４０】
次に、上述した図１０，図１１，図１２に示した回路構成を用いて動きベクトル検出処理を実現するための制御方式について、動きベクトル検出制御のタイミングを示す図１３を用いて説明する。
【００４１】
この図１３に示すように、参照ブロックＢｐの画素値ｒは、全ての演算ユニットに対して１クロックサイクル毎に与えられる。すなわち、参照ブロックＢｐの画素値ｒについては、あるクロックサイクルにおいて、各演算ユニットが同一の画素値ｒに対して演算を行っている。
【００４２】
また、候補ブロックＢｂの画素値ｃは、探索範囲Ｅの上半分と下半分の２つの領域に分けられて、図１０に示した２つの入力端子２，３に順次入力される。さらに、上記候補ブロックＢｂの画素値ｃは、１クロックサイクル毎に後段の画素値格納用レジスタに転送される。但し、４クロックサイクルに一回、図１１に示した演算ユニットの画素値格納用レジスタ５８に転送される。このようにして、候補ブロックＢｂの画素値ｃについては、図１３に示すように、あるクロックサイクルにおいて、各演算ユニットが異なる画素値ｃに対して演算を行っている。
【００４３】
従来の演算回路においては、上述したような制御を行うことにより、１２クロックサイクル毎に各演算ユニットから一斉に差分絶対値和が出力される（図１０の出力端子５６から出力される）。その後、これらの差分絶対値和Ｄ(i,j) の大小比較を行うことにより、動きベクトルＭＶ(x,y) を求める。なお、この際、図１１に示した累算器６０は、次クロックサイクルにおいて、次の参照ブロックＢｐについての差分絶対値和Ｄ(i,j) の累算を間断なく開始するので、すべての差分絶対値和Ｄ(i,j) を一旦レジスタに格納してから大小比較演算を行う必要がある。
【００４４】
以上が、フレームのみの動きベクトル検出処理を行う従来の回路構成についての説明である。
【００４５】
これに対し、フィールド単位の動きベクトル検出処理（以下フィールド対応動きベクトル検出処理と呼ぶ）にも対応できる従来の回路構成について以下に説明する。このフィールド対応動きベクトル検出処理において、動きベクトルは、偶数フィールド、奇数フィールド、フレームの各々に対応して３つ求める。ここでは、上述のフレームのみの動きベクトル検出処理の説明で用いた例を再び用いる（図９参照）。
【００４６】
ここで、前提として、参照ブロックＢｐ０の画素値ｒa 〜ｒl は、偶数フィールドと奇数フィールドに対応して、以下の２つのグループに分けられる。すなわち例えば、
偶数フィールドでは｛ｒa ，ｒc ，ｒe ，ｒg ，ｒi ，ｒk ｝のグループに、奇数フィールドでは｛ｒb ，ｒd ，ｒf ，ｒh ，ｒj ，ｒl ｝のグループに分けられる。
【００４７】
以下、上記前提に基づき、上記フィールド対応動きベクトル検出処理の手順を、前記図９を用いて説明する。
【００４８】
先ず、偶数フィールドの場合から説明する。この場合、参照ブロックＢｐ０の偶数フィールドの画素値ｒと、参照ブロックＢｐ０に対する探索範囲Ｅ０内の全ての候補ブロックＢｂ０（１２個存在する）の画素値ｃ0 〜ｃ34とを用いて、前述した数式(1) に基づいて以下の数式(15)〜数式(26)のような計算を行い、偶数フィールドにおける差分絶対値和Ｄe (i,j) （０≦ｉ＜２，０≦ｊ＜３）を求める。
【００４９】
【数１５】
Ｄe (0,0)=｜ｒa −ｃ0 ｜＋｜ｒc −ｃ2 ｜＋｜ｒe −ｃ7 ｜＋｜ｒg −ｃ9 ｜
＋｜ｒi −ｃ14｜＋｜ｒk −ｃ16｜                ・・・・(15)
【００５０】
【数１６】
Ｄe (0,1)=｜ｒa −ｃ1 ｜＋｜ｒc −ｃ3 ｜＋｜ｒe −ｃ8 ｜＋｜ｒg −ｃ10｜
＋｜ｒi −ｃ15｜＋｜ｒk −ｃ17｜                ・・・・(16)
【００５１】
【数１７】
Ｄe (0,2)=｜ｒa −ｃ2 ｜＋｜ｒc −ｃ4 ｜＋｜ｒe −ｃ9 ｜＋｜ｒg −ｃ11｜
＋｜ｒi −ｃ16｜＋｜ｒk −ｃ18｜                ・・・・(17)
【００５２】
【数１８】
Ｄe (0,3)=｜ｒa −ｃ3 ｜＋｜ｒc −ｃ5 ｜＋｜ｒe −ｃ10｜＋｜ｒg −ｃ12｜
＋｜ｒi −ｃ17｜＋｜ｒk −ｃ19｜                ・・・・(18)
【００５３】
【数１９】
Ｄe (1,0)=｜ｒa −ｃ7 ｜＋｜ｒc −ｃ9 ｜＋｜ｒe −ｃ14｜＋｜ｒg −ｃ16｜
＋｜ｒi −ｃ21｜＋｜ｒk −ｃ23｜                ・・・・(19)
【００５４】
【数２０】
Ｄe (1,1)=｜ｒa −ｃ8 ｜＋｜ｒc −ｃ10｜＋｜ｒe −ｃ15｜＋｜ｒg −ｃ17｜
＋｜ｒi −ｃ22｜＋｜ｒk −ｃ24｜                ・・・・(20)
【００５５】
【数２１】
Ｄe (1,2)=｜ｒa −ｃ9 ｜＋｜ｒc −ｃ11｜＋｜ｒe −ｃ16｜＋｜ｒg −ｃ18｜
＋｜ｒi −ｃ23｜＋｜ｒk −ｃ25｜                ・・・・(21)
【００５６】
【数２２】
Ｄe (1,3)=｜ｒa −ｃ10｜＋｜ｒc −ｃ12｜＋｜ｒe −ｃ17｜＋｜ｒg −ｃ19｜
＋｜ｒi −ｃ24｜＋｜ｒk −ｃ26｜                ・・・・(22)
【００５７】
【数２３】
Ｄe (2,0)=｜ｒa −ｃ14｜＋｜ｒc −ｃ16｜＋｜ｒe −ｃ21｜＋｜ｒg −ｃ23｜
＋｜ｒi −ｃ28｜＋｜ｒk −ｃ30｜                ・・・・(23)
【００５８】
【数２４】
Ｄe (2,1)=｜ｒa −ｃ15｜＋｜ｒc −ｃ17｜＋｜ｒe −ｃ22｜＋｜ｒg −ｃ24｜
＋｜ｒi −ｃ29｜＋｜ｒk −ｃ31｜                ・・・・(24)
【００５９】
【数２５】
Ｄe (2,2)=｜ｒa −ｃ16｜＋｜ｒc −ｃ18｜＋｜ｒe −ｃ23｜＋｜ｒg −ｃ25｜
＋｜ｒi −ｃ30｜＋｜ｒk −ｃ32｜                ・・・・(25)
【００６０】
【数２６】
Ｄe (2,3)=｜ｒa −ｃ17｜＋｜ｒc −ｃ19｜＋｜ｒe −ｃ24｜＋｜ｒg −ｃ26｜
＋｜ｒi −ｃ31｜＋｜ｒk −ｃ33｜                ・・・・(26)
【００６１】
次に、奇数フィールドの場合について説明する。参照ブロックＢｐ０の奇数フィールドの画素値ｒについても、上述した偶数フィールドの場合と同様に、参照ブロックＢｐ０に対する探索範囲Ｅ０内の全ての候補ブロックＢｂ０（１２個存在する）の画素値ｃ0 〜ｃ34とを用いて、前述した数式(1) に基づいて以下の数式(27)〜数式(38)のような計算を行い、奇数フィールドにおける差分絶対値和Ｄo (i,j) （０≦ｉ＜２，０≦ｊ＜３）を求める。
【００６２】
【数２７】
Ｄo (0,0)=｜ｒb −ｃ1 ｜＋｜ｒd −ｃ3 ｜＋｜ｒf −ｃ8 ｜＋｜ｒh −ｃ10｜
＋｜ｒj −ｃ15｜＋｜ｒl −ｃ17｜                ・・・・(27)
【００６３】
【数２８】
Ｄo (0,1)=｜ｒb −ｃ2 ｜＋｜ｒd −ｃ4 ｜＋｜ｒf −ｃ9 ｜＋｜ｒh −ｃ11｜
＋｜ｒj −ｃ16｜＋｜ｒl −ｃ18｜                ・・・・(28)
【００６４】
【数２９】
Ｄo (0,2)=｜ｒb −ｃ3 ｜＋｜ｒd −ｃ5 ｜＋｜ｒf −ｃ10｜＋｜ｒh −ｃ12｜
＋｜ｒj −ｃ17｜＋｜ｒl −ｃ19｜                ・・・・(29)
【００６５】
【数３０】
Ｄo (0,3)=｜ｒb −ｃ4 ｜＋｜ｒd −ｃ6 ｜＋｜ｒf −ｃ11｜＋｜ｒh −ｃ13｜
＋｜ｒj −ｃ18｜＋｜ｒl −ｃ20｜                ・・・・(30)
【００６６】
【数３１】
Ｄo (1,0)=｜ｒb −ｃ8 ｜＋｜ｒd −ｃ10｜＋｜ｒf −ｃ15｜＋｜ｒh −ｃ17｜
＋｜ｒj −ｃ22｜＋｜ｒl −ｃ24｜                ・・・・(31)
【００６７】
【数３２】
Ｄo (1,1)=｜ｒb −ｃ9 ｜＋｜ｒd −ｃ11｜＋｜ｒf −ｃ16｜＋｜ｒh −ｃ18｜
＋｜ｒj −ｃ23｜＋｜ｒl −ｃ25｜                ・・・・(32)
【００６８】
【数３３】
Ｄo (1,2)=｜ｒb −ｃ10｜＋｜ｒd −ｃ12｜＋｜ｒf −ｃ17｜＋｜ｒh −ｃ19｜
＋｜ｒj −ｃ24｜＋｜ｒl −ｃ26｜                ・・・・(33)
【００６９】
【数３４】
Ｄo (1,3)=｜ｒb −ｃ11｜＋｜ｒd −ｃ13｜＋｜ｒf −ｃ18｜＋｜ｒh −ｃ20｜
＋｜ｒj −ｃ25｜＋｜ｒl −ｃ27｜                ・・・・(34)
【００７０】
【数３５】
Ｄo (2,0)=｜ｒb −ｃ15｜＋｜ｒd −ｃ17｜＋｜ｒf −ｃ22｜＋｜ｒh −ｃ24｜
＋｜ｒj −ｃ29｜＋｜ｒl −ｃ31｜                ・・・・(35)
【００７１】
【数３６】
Ｄo (2,1)=｜ｒb −ｃ16｜＋｜ｒd −ｃ18｜＋｜ｒf −ｃ23｜＋｜ｒh −ｃ25｜
＋｜ｒj −ｃ30｜＋｜ｒl −ｃ32｜                ・・・・(36)
【００７２】
【数３７】
Ｄo (2,2)=｜ｒb −ｃ17｜＋｜ｒd −ｃ19｜＋｜ｒf −ｃ24｜＋｜ｒh −ｃ26｜
＋｜ｒj −ｃ31｜＋｜ｒl −ｃ33｜                ・・・・(37)
【００７３】
【数３８】
Ｄo (2,3)=｜ｒb −ｃ18｜＋｜ｒd −ｃ20｜＋｜ｒf −ｃ25｜＋｜ｒh −ｃ27｜
＋｜ｒj −ｃ32｜＋｜ｒl −ｃ34｜                ・・・・(38)
【００７４】
最後に、フレームの場合については、前述したフレームのみの動きベクトル検出処理の場合と同様であり、参照ブロックＢｐ０に対する探索範囲Ｅ０内の全ての候補ブロックＢｂ０の画素値ｃ（ｃ0 〜ｃ34）について、前述した数式(1) に基づいて前記数式(3) 〜数式(14)のような計算を行い、フレームにおける差分絶対値和Ｄ(i,j) （０≦ｉ＜２，０≦ｊ＜３）を求める。
【００７５】
次に、上記偶数フィールドにおける差分絶対値和Ｄe (i,j) （０≦ｉ＜２，０≦ｊ＜３）の全てについて、前記数式(2) に基づいて最小となる差分絶対値和ｍｉｎＤe (i,j) を求め、偶数フィールドにおける動きベクトルＭＶe (x,y) を得る。
【００７６】
また、上記奇数フィールドにおける差分絶対値和Ｄo (i,j) （０≦ｉ＜２，０≦ｊ＜３）の全てについて、前記数式(2) に基づいて最小となる差分絶対値和ｍｉｎＤo (i,j) を求め、奇数フィールドにおける動きベクトルＭＶo (x,y) を得る。
【００７７】
同じく、上記フレームにおける差分絶対値和Ｄ(i,j) （０≦ｉ＜２，０≦ｊ＜３）の全てについて、前記数式(2) に基づいて最小となる差分絶対値和ｍｉｎＤ(i,j) を求め、フレームにおける動きベクトルＭＶ(x,y) を得る。
【００７８】
次に、上記参照ブロックＢｐ０に隣接する参照ブロックＢｐ１の画素値ｒa'〜ｒl'と、参照ブロックＢｐ１の探索範囲Ｅ１内の全ての候補ブロックＢｂ１（１２個存在する）の画素値ｃ21〜ｃ55とについて、上述同様にして数式(1) に基づいて、上記偶数フィールドにおける差分絶対値和Ｄ' e (i,j) （０≦ｉ＜２，０≦ｊ＜３）、上記奇数フィールドにおける差分絶対値和Ｄ' o (i,j) （０≦ｉ＜２，０≦ｊ＜３）、フレームにおける差分絶対値和Ｄ'(i,j)（０≦ｉ＜２，０≦ｊ＜３）を求める。
【００７９】
ここで上述のようにして求めた全ての差分絶対値和Ｄ' e (i,j) （０≦ｉ＜２，０≦ｊ＜３）、Ｄ' o (i,j) （０≦ｉ＜２，０≦ｊ＜３）、Ｄ'(i,j)（０≦ｉ＜２，０≦ｊ＜３）について、前記数式(2) に基づいて、それぞれ最小となる差分絶対値和ｍｉｎＤ' e (i,j) 、ｍｉｎＤ' o (i,j) 、ｍｉｎＤ'(i,j)を求め、偶数フィールド，奇数フィールド，フレームのそれぞれにおける３種の動きベクトルＭＶe (x,y) 、ＭＶo (x,y) 、ＭＶ(x,y) を得る。
【００８０】
以下同様に、現フレームＦｐのすべての参照ブロックＢｐについて、上記の操作を繰り返し、偶数フィールド、奇数フィールド、フレームのそれぞれにおける３種の動きベクトルＭＶe (x,y) 、ＭＶo (x,y) 、ＭＶ(x,y) を求める。
【００８１】
従来は、上述したようなフィールド対応動きベクトル検出処理も、前記図１０，図１１，図１２で示した回路構成で実現している。すなわち、前記図１０，図１１，図１２で示した構成の動きベクトル検出回路（演算回路）を３つ設け、偶数フィールドにおける動きベクトル検出処理と、奇数フィールドにおける動きベクトル検出処理と、フレームにおける動きベクトル検出処理を、これら３つの動きベクトル検出回路でそれぞれ別々に行うようにしている。
【００８２】
【発明が解決しようとする課題】
上述したように、従来のフィールド対応動きベクトル検出処理の回路構成では、偶数フィールド、奇数フィールド、フレームにおける差分絶対値和を、それぞれ別々に設けられた回路によって求めるようにしている。
【００８３】
すなわち、従来は、フィールド対応動きベクトル検出処理を行うために、偶数フィールド、奇数フィールド、フレームの各々に対応して３つの動きベクトル検出回路が必要となり、したがってハードウェア量が増大する。
【００８４】
さらに、従来は、フィールド対応動きベクトル検出処理を行うために、上述のように動きベクトル検出回路を３つ用意することにより、これら３つの動きベクトル検出回路の各々に対して、参照ブロックの画素値および候補ブロックの画素値を別々に供給する必要がでてくる。このため、前述したフレームのみの動きベクトル検出処理を行う場合の回路構成に比較して、上記フィールド対応動きベクトル検出処理を行う回路構成は、外部の付加回路が必要でかつ複雑化するようになり、また、この動きベクトル検出回路に各画素値を供給するフレームメモリのポート数の増大も招くようになる。
【００８５】
そこで、本発明は、ハードウェア量の削減や、外部の付加回路の削減、フレームメモリのポート数の削減が可能な演算回路を提供することを目的とするものである。
【００８６】
【課題を解決するための手段】
本発明は上述した目的を達成するために提案されたものであり、現フレームの参照ブロックのブロックサイズをＭ×Ｎ画素とし、前フレームの候補ブロックの個数をＭ×Ｎ個として、ブロックマッチング法により全探索を行って動きベクトル検出を行う演算回路であって、１クロックサイクル毎に順次入力される参照ブロックの各画素値を所定クロックサイクル間保持するレジスタと、候補ブロックの画素値を奇数カラムと偶数カラムとで適宜切り替えるマルチプレクサと、上記レジスタから出力された参照ブロックの画素値と上記マルチプレクサから出力された候補ブロックの画素値との差分絶対値（或いは差分自乗値）を計算する差分絶対値演算器（或いは差分自乗演算器）とを有する演算ユニットをＭ×Ｎ個設けると共に、当該演算ユニットをＭ×Ｎの行列状に配置し、偶数番目の各演算ユニットの出力をそれぞれ第１の加算器を介してパイプライン接続し、奇数番目の各演算ユニットの出力をそれぞれ上記第１の加算器と別系統の第２の加算器を介してパイプライン接続し、上記参照ブロック及び候補ブロックの画素値を一定の順序で上記各演算ユニットの差分絶対値演算器（或いは差分自乗演算器）に供給することにより、偶数フィールドにおける差分絶対値和（或いは差分自乗和）と、奇数フィールドにおける差分絶対値和（或いは差分自乗和）とを求め、さらに、これら偶数フィールドにおける差分絶対値和（或いは差分自乗和）と奇数フィールドにおける差分絶対値和（或いは差分自乗和）とを加算して得たフレームにおける差分絶対値和（或いは差分自乗和）とを求め、その後、これら得られた偶数フィールドにおける差分絶対値和（或いは差分自乗和）と奇数フィールドにおける差分絶対値和（或いは差分自乗和）とフレームにおける差分絶対値和（或いは差分自乗和）から、それぞれ最小となる差分絶対値和（或いは差分自乗和）を求めることにより、偶数フィールドにおける動きベクトルと、奇数フィールドにおける動きベクトルと、フレームにおける動きベクトルの３種の動きベクトルを同時に求める動きベクトル検出処理を行うものである。
【００８７】
また、本発明の演算回路は、１クロックサイクル毎に順次入力される参照ブロックの各画素値を所定クロックサイクル間保持するレジスタと、候補ブロックの画素値を奇数カラムと偶数カラムとで適宜切り替えるマルチプレクサと、上記レジスタから出力された参照ブロックの画素値と上記マルチプレクサから出力された候補ブロックの画素値との差分絶対値（或いは差分自乗値）を計算する差分絶対値演算器（或いは差分自乗演算器）と、上記差分絶対値演算器（或いは差分自乗演算器）からの偶数番目の出力を累加算する偶数番目用累算器と、上記差分絶対値演算器（或いは差分自乗演算器）からの奇数番目の出力を累加算する奇数番目用累算器とを有する演算ユニットをＭ×Ｎ個設けると共に、当該演算ユニットをＭ×Ｎの行列状に配置して相互接続し、上記参照ブロック及び候補ブロックの画素値を一定の順序で供給することにより、偶数フィールドにおける差分絶対値和（或いは差分自乗和）と、奇数フィールドにおける差分絶対値和（或いは差分自乗和）とを求め、さらに、これら偶数フィールドにおける差分絶対値和（或いは差分自乗和）と奇数フィールドにおける差分絶対値和（或いは差分自乗和）とを加算して得たフレームにおける差分絶対値和（或いは差分自乗和）とを求め、その後、これら得られた偶数フィールドにおける差分絶対値和（或いは差分自乗和）と奇数フィールドにおける差分絶対値和（或いは差分自乗和）とフレームにおける差分絶対値和（或いは差分自乗和）から、それぞれ最小となる差分絶対値和（或いは差分自乗和）を求めることにより、偶数フィールドにおける動きベクトルと、奇数フィールドにおける動きベクトルと、フレームにおける動きベクトルの３種の動きベクトルを同時に求める動きベクトル検出処理を行うものである。
【００８８】
ここで、本発明の演算回路は、さらに、上記奇数フィールド、偶数フィールド、及びフレームのそれぞれにおいて求めた全ての候補ブロックについての参照ブロックとの差分絶対値和（或いは差分自乗和）を格納するメモリを有してなり、このメモリに格納された各差分絶対値和（或いは差分自乗和）から、上記動きベクトルを求めるための最小となる差分絶対値和（或いは差分自乗和）を求めるようにしている。
【００８９】
【作用】
本発明の演算回路によれば、差分絶対値を求める演算ユニットをＭ×Ｎの行列状に配置し、これら各演算ユニットの各出力うち、偶数番目の各演算ユニットの出力をそれぞれ第１の加算器を介してパイプライン接続し、奇数番目の各演算ユニットの出力をそれぞれ上記第１の加算器と別系統の第２の加算器を介してパイプライン接続しているため、最終段の第１の加算器の出力が偶数フィールドにおける差分絶対値和（或いは差分自乗和）となり、最終段の第２の加算器の出力が奇数フィールドにおける差分絶対値和（或いは差分自乗和）となる。これらをさらに加算すればフレームにおける差分絶対値和（或いは差分自乗和）を求めることができる。
【００９０】
また、本発明の演算回路によれば、奇数番目の差分絶対値と偶数番目の差分絶対値をそれぞれ別々に累積して差分絶対値和を求める演算ユニットをＭ×Ｎの行列状に配置して相互接続しているため、各演算ユニットからは、偶数フィールドにおける差分絶対値和（或いは差分自乗和）と奇数フィールドにおける差分絶対値和（或いは差分自乗和）の２つの出力が得られる。これらをさらに加算すればフレームにおける差分絶対値和（或いは差分自乗和）を求めることができる。
【００９１】
【実施例】
以下、本発明の演算回路の一実施例について図面を参照しながら説明する。
【００９２】
本発明実施例の演算回路は、現フレームＦｐの参照ブロックＢｐのブロックサイズをＭ×Ｎ画素（本実施例では例えば３×４画素）とし、前フレームＦｂの候補ブロックＢｂの個数をＭ×Ｎ個（本実施例では例えば３×４個）として、ブロックマッチング法により全探索を行って動きベクトル検出を行う演算回路である。
【００９３】
ここで、本発明の第１の実施例の演算回路は、図１及び図２に示すように、１クロックサイクル毎に順次入力される参照ブロックＢｐの各画素値ｒを所定クロックサイクル間（例えば１２クロックサイクル間）保持するレジスタ１８２と、候補ブロックＢｂの画素値ｃを奇数カラムと偶数カラムとで適宜切り替えるマルチプレクサ１８４と、上記レジスタ１８２から出力された参照ブロックＢｐの画素値ｒと上記マルチプレクサ１８４から出力された候補ブロックＢｂの画素値ｃとの差分絶対値（或いは差分自乗値）を計算する差分絶対値演算器１８５（或いは差分自乗演算器）とを有する演算ユニット（ＰＥ）をＭ×Ｎ個（３×４＝１２個の演算ユニット１９０〜２０１）設けると共に、当該演算ユニット１９０〜２０１をＭ×Ｎ（すなわち３×４）の行列状に配置している。
【００９４】
また、第１の実施例の演算回路は、偶数番目の各演算ユニット１９０，１９２，１９４，１９６，１９８，２００の出力をそれぞれ対応する第１の加算器３２１〜３２５を介してパイプライン接続し、奇数番目の各演算ユニット１９１，１９３，１９５，１９７，１９９，２０１の出力をそれぞれ上記第１の加算器３２１〜３２５と別系統の第２の加算器３２６〜３３０を介してパイプライン接続し、上記参照ブロック及び候補ブロックの画素値を一定の順序で上記各演算ユニット１９０〜２０１の差分絶対値演算器１８５（或いは差分自乗演算器）に供給することにより、偶数フィールドにおける差分絶対値和Ｄe (i,j) （或いは差分自乗和）と、奇数フィールドにおける差分絶対値和Ｄo (i,j) （或いは差分自乗和）とを求め、さらに、これら偶数フィールドにおける差分絶対値和（或いは差分自乗和）と奇数フィールドにおける差分絶対値和（或いは差分自乗和）とを加算器３４１で加算することにより、フレームにおける差分絶対値和Ｄ(i,j) （或いは差分自乗和）を求めるようにしている。
【００９５】
本実施例の演算回路においては、その後、これら得られた偶数フィールドにおける差分絶対値和Ｄe (i,j) （或いは差分自乗和）と奇数フィールドにおける差分絶対値和Ｄo (i,j) （或いは差分自乗和）とフレームにおける差分絶対値和Ｄ(i,j) （或いは差分自乗和）から、それぞれ最小となる差分絶対値和（或いは差分自乗和）を求めることにより、偶数フィールドにおける動きベクトルＭＶe (x,y) と、奇数フィールドにおける動きベクトルＭＶo (x,y) と、フレームにおける動きベクトルの３種の動きベクトルＭＶ(x,y) を同時に求める動きベクトル検出処理が実現できることになる。
【００９６】
なお、図示は省略するが、本実施例の演算回路には、さらに、上記奇数フィールド、偶数フィールド、及びフレームのそれぞれにおいて求めた全ての候補ブロックについての参照ブロックとの差分絶対値和Ｄe (i,j) 、Ｄo (i,j) 、Ｄ(i,j) （或いは差分自乗和）を格納するメモリを有してなり、このメモリに格納された各差分絶対値和（或いは差分自乗和）から、上記動きベクトルＭＶe (x,y) 、ＭＶo (x,y) 、ＭＶ(x,y) を求めるための最小となる差分絶対値和（或いは差分自乗和）を求めるようにしている。
【００９７】
以下の実施例では差分絶対値演算を行う構成について説明している。
【００９８】
ここで、本実施例回路は、以下のようなことを踏まえて、フィールド対応動きベクトル検出処理を行うための演算回路を実現している。
【００９９】
すなわち、前述した偶数フィールドにおける差分絶対値和Ｄe (i,j) （０≦ｉ＜２，０≦ｊ＜３）、上記奇数フィールドにおける差分絶対値和Ｄo (i,j) （０≦ｉ＜２，０≦ｊ＜３）、フレームにおける差分絶対値和Ｄ(i,j) （０≦ｉ＜２，０≦ｊ＜３）は、以下の数式(39)に示すような関係が成立している。
【０１００】
【数３９】
Ｄ(i,j) ＝Ｄe (i,j) ＋Ｄo (i,j)                 ・・・・・(39)
【０１０１】
この数式(39)から、フレームにおける差分絶対値和Ｄ(i,j) は、偶数フィールドにおける差分絶対値和Ｄe (i,j) と奇数フィールドにおける差分絶対値和Ｄo (i,j) から求めることができる。
【０１０２】
以下、図１〜図５を参照して、本発明の第１の実施例の演算回路について詳述する。なお、本実施例では、上述した従来の回路構成を説明するために挙げた動きベクトル検出処理の例を用いて、本発明の回路構成および制御方式について説明する。
【０１０３】
本発明実施例では、前述のフィールド対応動きベクトル検出処理を、図１，図２に示す回路構成で実現している。図１には本発明実施例における動きベクトル検出処理を行う演算回路の全体構成を示し、上述したように当該回路は、上記演算ユニット１９０〜２０１を３×４の行列状に配置した構成となっている。
【０１０４】
この図１において、端子１８０には前フレームＦｂの奇数カラムの候補ブロックＢｂの画素値ｃが供給され、当該画素値ｃが各演算ユニット１９０〜２０１の第１の入力端子に送られる。また、端子１８９には前フレームＦｂの偶数カラムの候補ブロックＢｂの画素値ｃが供給され、当該画素値ｃが各演算ユニット１９０〜２０１の第２の入力端子に送られる。端子１８１には参照ブロックＢｐの画素値ｒが供給され、各演算ユニット１９０〜２０１の第３の入力端子に送られる。これら各演算ユニット１９０〜２０１の出力端子からは差分絶対値が出力される。
【０１０５】
ここで、各々の演算ユニット１９０〜２０１は、図２に示すような内部構成となっている。すなわち、演算ユニット１９０〜２０１は、マルチプレクサ１８４、画素値格納用レジスタ１８２、差分絶対値演算器１８５からなる。この図２において、上記第１の入力端子１７２には上記図１の端子１８０を介した前フレームＦｂの奇数カラムの候補ブロックＢｂの画素値ｃが供給され、上記第２の入力端子１７３には上記図１の端子１８９を介した前フレームＦｂの偶数カラムの候補ブロックＢｂの画素値ｃが供給される。これら画素値ｃは、マルチプレクサ１８４によって適宜切り替えられた後、上記差分絶対値演算器１８５の一方の入力端子に送られる。さらに、上記第３の端子１７１には、上記図１の端子１８１を介した参照ブロックＢｐの画素値ｒが供給される。この画素値ｒは、画素値格納用レジスタ１８２を介して上記差分絶対値演算器１８５の他方の入力端子に送られる。上記差分絶対値演算器１８５で求められた差分絶対値は、端子１８３から出力される。
【０１０６】
図１に戻って、本実施例装置では、上述したように、偶数番目の各演算ユニット１９０，１９２，１９４，１９６，１９８，２００の出力がそれぞれ第１の加算器３２１〜３２５を介してパイプライン接続され、奇数番目の各演算ユニット１９１，１９３，１９５，１９７，１９９，２０１の出力がそれぞれ上記第２の加算器３２６〜３３０を介してパイプライン接続されている。
【０１０７】
すなわち、偶数番目の各演算ユニットから説明すると、本実施例装置では、演算ユニット１９０の出力と演算ユニット１９２の出力が加算器３２１で加算され、当該加算器３２１の加算出力と上記演算ユニット１９４の出力とが加算器３２２で加算され、当該加算器３２２の加算出力と上記演算ユニット１９６の出力とが加算器３２３で加算され、当該加算器３２３の加算出力と上記演算ユニット１９８の出力とが加算器３２４で加算され、当該加算器３２４の加算出力と上記演算ユニット２００の出力とが加算器３２５で加算される。これにより、最終段の第１の加算器３２５の加算出力が、偶数フィールドにおける差分絶対値和Ｄe (i,j) となる。この偶数フィールドにおける差分絶対値和Ｄe (i,j) は、本実施例回路の偶数フィールド用出力端子３４２から出力される。
【０１０８】
また、奇数番目の各演算ユニットにおいては、演算ユニット１９１の出力と演算ユニット１９３の出力が加算器３２６で加算され、当該加算器３２６の加算出力と上記演算ユニット１９５の出力とが加算器３２７で加算され、当該加算器３２７の加算出力と上記演算ユニット１９７の出力とが加算器３２８で加算され、当該加算器３２８の加算出力と上記演算ユニット１９９の出力とが加算器３２９で加算され、当該加算器３２９の加算出力と上記演算ユニット２０１の出力とが加算器３３０で加算される。これにより、最終段の第２の加算器３３０の加算出力が、奇数フィールドにおける差分絶対値和Ｄo (i,j) となる。この奇数フィールドにおける差分絶対値和Ｄo (i,j) は、本実施例回路の奇数フィールド用出力端子３４３から出力される。
【０１０９】
なお、この図１において、第１，第２の加算器の入力端子側，出力端子側に接続されている（加算器間に挿入接続されている）レジスタ３０１〜３１９は、パイプラインレジスタである。
【０１１０】
さらに、上記偶数フィールドにおける差分絶対値和Ｄe (i,j) と奇数フィールドにおける差分絶対値和Ｄo (i,j) は、加算器３４１で加算されるようになっている。この加算器３４１の加算出力がフレームにおける差分絶対値和Ｄ(i,j) となる。このフレームにおける差分絶対値和Ｄ(i,j) は、本実施例回路のフレーム用出力端子３４４から出力される。
【０１１１】
次に、上記図１，図２に示した回路構成を用いてフィールド対応動きベクトル検出処理を実現するための制御方式について説明する。図３，図４に、上記図１，図２に示した回路構成を用いたフィールド対応動きベクトル検出制御における動作のタイミングを示す。なお、図３には偶数フィールドにおける処理のタイミングを、図４には奇数フィールドにおける処理のタイミングを示している。
【０１１２】
この図３及び図４において、上記現フィールドＦｂの参照ブロックＢｐの画素値ｒは、１クロックサイクル毎に図１の各演算ユニット１９０〜２０１の画素値格納用レジスタ１８２に順次入力される。当該レジスタ１８２は、入力された参照ブロックＢｐの画素値ｒを１２クロックサイクルの間保持する。したがって、各演算ユニット１９０〜２０１は、１２クロックサイクルの間、同一の参照ブロックＢｐの画素値ｒについての差分絶対値演算を行うことになる。ただし、それぞれの演算ユニット１９０〜２０１では、参照ブロックＢｐの異なる画素値ｒに対して差分絶対値演算が行われる。
【０１１３】
また、候補ブロックＢｂの画素値ｃは、前フレームＦｂの偶数カラムと奇数カラムの２つの領域に分けられて、図１に示す２つの入力端子１８０，１８９から各演算ユニット１９０〜２０１に一定の順序で順次入力される。すなわち、前記図９に示した前フレームＦｂの画素値ｃの内の偶数カラムの画素値ｃ０,ｃ１,ｃ２,ｃ３,ｃ４,ｃ５,ｃ６,ｃ１４,ｃ１５,ｃ１６, ・・・が図１の入力端子１８９に、奇数カラムの画素値ｃ７,ｃ８,ｃ９,ｃ１０,ｃ１１,ｃ１２,ｃ１３,ｃ２１,ｃ２２,ｃ２３, ・・・が図１の入力端子１８０にそれぞれ供給される。この場合の各入力順序は、図３、図４に示すような一定の順序である。
各演算ユニット１９０〜２０１では、図３或いは図４に示す順序で候補ブロックＢｂの画素値ｃが供給されるように、演算ユニット内のマルチプレクサ１８４によって２つの画素値ｃを適宜切り替える。すなわち、図３、図４に示す具体例の場合、例えば演算ユニット１９０については、該演算ユニット１９０内のマルチプレクサ１８４では、クロックサイクル「０」〜「３」、「８」〜「１１」、・・・の期間は、画素値ｃ０,ｃ１,ｃ２、ｃ１４,ｃ１５,ｃ１６,ｃ１７、・・・、すなわち偶数カラムの画素値ｃに切り替え、それ以外では奇数カラムの画素値ｃに切り替えている。また、例えば演算ユニット１９１では、クロックサイクル「１」〜「４」、「９」〜「１２」、・・・の期間は、画素値ｃ１,ｃ２,ｃ３,ｃ４、ｃ１５,ｃ１６,ｃ１７,ｃ１８、・・・、すなわち偶数カラムの画素値ｃに切り替え、それ以外では奇数カラムの画素値ｃに切り替えている。同様に、演算ユニット１９２では、クロックサイクル「２」〜「５」、「１０」〜「１３」、・・・の期間は偶数カラムの画素値ｃに切り替え、それ以外では奇数カラムの画素値ｃに切り替えている。演算ユニット１９３では、クロックサイクル「３」〜「６」、「１１」〜「１４」、・・・の期間は偶数カラムの画素値ｃに切り替え、それ以外では奇数カラムの画素値ｃに切り替えている。以下の各演算ユニット１９４〜２０１内のマルチプレクサ１８４も同様に、４クロックサイクル周期で偶数カラム、奇数カラムの画素値ｃを適宜切り替えている。
このようにすることで、候補ブロックＢｂの画素値ｃについては、図３或いは図４に示すように、あるクロックサイクルにおいて、各演算ユニット１９０〜２０１が２つの画素値ｃに対して演算を行う。
【０１１４】
さらに、本実施例回路では、偶数番目の演算ユニット１９０，１９２，１９４，１９６，１９８，２００の各差分絶対値演算器１８５からの出力が、上述のように上記パイプライン接続した第１の加算器３２１〜３２５を用いて順次加算され、偶数フィールドにおける差分絶対値和Ｄe (i,j) が計算される。一方、奇数番目の演算ユニット１９１，１９３，１９５，１９７，１９９，２０１の各差分絶対値演算器１８５からの出力も、上述のように上記パイプライン接続した第２の加算器３２６〜３３０を用いて順次加算され、奇数フィールドにおける差分絶対値和Ｄo (i,j) が計算される。また、本実施例回路では、これら偶数フィールド，奇数フィールドにおける差分絶対値和Ｄe (i,j) 及びＤo (i,j) が、上述のように加算器３４１によって加算され、フレームにおける差分絶対値和Ｄ(i,j) が算出される。
【０１１５】
上述したような制御を行うことにより、本実施例回路においては、１クロックサイクル毎に偶数フィールド用出力端子３４２，奇数フィールド用出力端子３４３，フレーム用出力端子３４４から３種の差分絶対値和が出力されるようになる。これらの差分絶対値和の大小比較を行うことにより、偶数フィールド，奇数フィールド、フレームの各々における３種の動きベクトルＭＶe (x,y) 、ＭＶo (x,y) 、ＭＶ(x,y) を求めることができる。
【０１１６】
次に、本発明の第２の実施例の演算回路は、図５及び図６に示すように、１クロックサイクル毎に順次入力される参照ブロックＢｐの各画素値ｒを所定クロックサイクル間保持するレジスタ２３２と、候補ブロックＢｂの画素値ｃを偶数カラムと奇数カラムとで適宜切り替えるマルチプレクサ２３４と、上記レジスタ２３２から出力された参照ブロックＢｐの画素値ｒと上記マルチプレクサ２３４から出力された候補ブロックＢｂの画素値ｃとの差分絶対値（或いは差分自乗値）を計算する差分絶対値演算器２３５（或いは差分自乗演算器）と、上記差分絶対値演算器２３５からの偶数番目の出力を累加算する偶数番目用累算器２４５と、上記差分絶対値演算器２３５からの奇数番目の出力を累加算する奇数番目用累算器２４６とを有する演算ユニット（ＰＥ）をＭ×Ｎ個（３×４個の演算ユニット２１０〜２２１）設けると共に、当該演算ユニット２１０〜２２１をＭ×Ｎ（３×４）の行列状に配置して相互接続している。
【０１１７】
ここで、本実施例回路では、上記参照ブロックＢｐ及び候補ブロックＢｂの画素値ｒ及びｃを一定の順序で供給することにより、偶数フィールドにおける差分絶対値和Ｄe (i,j) （或いは差分自乗和）と、奇数フィールドにおける差分絶対値和Ｄo (i,j) （或いは差分自乗和）とを求め、さらに、これら偶数フィールドにおける差分絶対値和（或いは差分自乗和）と奇数フィールドにおける差分絶対値和（或いは差分自乗和）とを加算して得たフレームにおける差分絶対値和Ｄ(i,j) （或いは差分自乗和）とを求めるようにしている。
【０１１８】
この第２の実施例の演算回路においても、その後、これら得られた偶数フィールドにおける差分絶対値和Ｄe (i,j) （或いは差分自乗和）と奇数フィールドにおける差分絶対値和Ｄo (i,j) （或いは差分自乗和）とフレームにおける差分絶対値和Ｄ(i,j) （或いは差分自乗和）から、それぞれ最小となる差分絶対値和（或いは差分自乗和）を求めることにより、偶数フィールドにおける動きベクトルＭＶe (x,y) と、奇数フィールドにおける動きベクトルＭＶo (x,y) と、フレームにおける動きベクトルＭＶ(x,y) の３種の動きベクトルを同時に求める動きベクトル検出処理が実現できることになる。
【０１１９】
なお、図示は省略するが、本実施例の演算回路も、さらに、上記奇数フィールド、偶数フィールド、及びフレームのそれぞれにおいて求めた全ての候補ブロックについての参照ブロックとの差分絶対値和Ｄe (i,j) 、Ｄo (i,j) 、Ｄ(i,j) （或いは差分自乗和）を格納するメモリを有してなり、このメモリに格納された各差分絶対値和（或いは差分自乗和）から、上記動きベクトルＭＶe (x,y) 、ＭＶo (x,y) 、ＭＶ(x,y) を求めるための最小となる差分絶対値和（或いは差分自乗和）を求めるようにしている。
【０１２０】
なお、この図５において、端子２３６には前フレームＦｂの奇数カラムの候補ブロックＢｂの画素値ｃが供給され、当該画素値ｃが各演算ユニット２１０〜２２１の第１の入力端子に送られる。また、端子２３８には前フレームＦｂの偶数カラムの候補ブロックＢｂの画素値ｃが供給され、当該画素値ｃが各演算ユニット２１０〜２２１の第２の入力端子に送られる。端子２３７には参照ブロックＢｐの画素値ｒが供給され、縦続接続された各演算ユニット２１０〜２２１のうちの初段の演算ユニット２１０の第３の入力端子に送られ、順次、次段の演算ユニットの第３の入力端子に送られる。これら各演算ユニット２１０〜２２１に対応する各々２つの出力端子２４７，２４８からは偶数フィールドにおける差分絶対値和Ｄe (i,j) と奇数フィールドにおけるＤo (i,j) が出力される。
【０１２１】
また、この図５の各演算ユニット２１０〜２２１は、図６に示すように、マルチプレクサ２３４、画素値格納用レジスタ２３２、差分絶対値演算器２３５、及び偶数フィールドにおける差分絶対値和Ｄe (i,j) を求めるための累算器（ＡＣＣ）２４５と奇数フィールドにおける差分絶対値和Ｄo (i,j) を求めるための累算器（ＡＣＣ）２４６からなる。
【０１２２】
この図６において、上記第１の入力端子２４１には、上記図５の端子２３６を介した前フレームＦｂの奇数カラムの候補ブロックＢｂの画素値ｃが供給され、第２の入力端子２３４には上記図５の端子２３８を介した前フレームＦｂの偶数カラムの候補ブロックＢｂの画素値ｃが供給される。これら画素値ｃは、マルチプレクサ２３４によって適宜切り替えられた後、上記差分絶対値演算器２３５の一方の入力端子に送られる。さらに、第３の入力端子２４１には、図５の端子２３７を介した参照ブロックＢｐの画素値ｒ或いは前段の演算ユニットの端子２４４からの画素値ｒが供給される。この画素値ｒは、画素値格納用レジスタ２３２を介して上記差分絶対値演算器２３５の他方の入力端子に送られると共に、上記端子２４４から次段の演算ユニットに送られる。上記差分絶対値演算器２３５の出力は、偶数フィールドにおける差分絶対値和Ｄe (i,j) を求めるための累算器２４５と奇数フィールドにおける差分絶対値和Ｄo (i,j) を求めるための累算器２４６に送られ、これら累算器２４５，２４６で累算された後、これら累算器２４５，２４６に対応する端子２４７，２４８から偶数フィールドにおける差分絶対値和Ｄe (i,j) 及び奇数フィールドにおける差分絶対値和Ｄo (i,j) として出力される。
【０１２３】
次に、上記図５，図６に示した第２の実施例の回路構成を用いてフィールド対応動きベクトル検出を実現するための制御方式について説明する。図７に、上記図５，図６に示した回路構成を用いたフィールド対応動きベクトル検出制御における動作のタイミングを示す。
【０１２４】
この図７に示すように、参照ブロックＢｐの画素値ｒは、１クロックサイクル毎に図５の初段の演算ユニット２１０の画素値格納用レジスタ２３２に順次入力される。当該入力された参照ブロックＢｐの画素値ｒは、１２クロックサイクルかけて図５の全ての演算ユニット２１０〜２２１に供給される。すなわち、それぞれの演算ユニット２１０〜２２１では、参照ブロックＢｐの異なる画素値ｒに対して差分絶対値演算が行われる。
【０１２５】
また、候補ブロックＢｂの画素値ｃは、前フレームＦｂの偶数カラムと奇数カラムの２つの領域に分けられて、図５に示す２つの入力端子２３６，２３８から各演算ユニット２１０〜２２１に一定の順序で順次入力される。すなわち、前記図９に示した前フレームＦｂの画素値ｃの内の偶数カラムの画素値ｃ０,ｃ１,ｃ２,ｃ３,ｃ４,ｃ５,ｃ６,ｃ１４,ｃ１５,ｃ１６, ・・・が図５の入力端子２３８に、奇数カラムの画素値ｃ７,ｃ８,ｃ９,ｃ１０,ｃ１１,ｃ１２,ｃ１３,ｃ２１,ｃ２２,ｃ２３, ・・・が図５の入力端子２３６にそれぞれ供給される。この場合の各入力順序は、図７に示すような一定の順序である。
各演算ユニット２１０〜２２１では、図７に示す順序で候補ブロックＢｂの画素値ｃが供給されるように、演算ユニット内のマルチプレクサ２３４により２つの画素値ｃを適宜切り替える。すなわち、図７に示す具体例の場合、演算ユニット２１０内のマルチプレクサ２３４では、クロックサイクル「０」〜「３」、「８」〜「１１」、・・・の期間は偶数カラムの画素値ｃに切り替え、それ以外では奇数カラムの画素値ｃに切り替えている。演算ユニット２１１では、クロックサイクル「１」〜「４」、「９」〜「１２」、・・・の期間は偶数カラムの画素値ｃに切り替え、それ以外では奇数カラムの画素値ｃに切り替えている。演算ユニット２１２では、クロックサイクル「２」〜「５」、「１０」〜「１３」、・・・の期間は偶数カラムの画素値ｃに切り替え、それ以外では奇数カラムの画素値ｃに切り替えている。演算ユニット２１３では、クロックサイクル「３」〜「６」、「１１」〜「１４」、・・・の期間は偶数カラムの画素値ｃに切り替え、それ以外では奇数カラムの画素値ｃに切り替えている。以下の各演算ユニット２１４〜２２１内のマルチプレクサ２３４も同様に、４クロックサイクル周期で偶数カラム、奇数カラムの画素値ｃを適宜切り替えている。
このようにすることで、候補ブロックＢｂの画素値ｃについては、図７に示すように、あるクロックサイクルにおいて、各演算ユニット２１０〜２２１が２つの画素値ｃに対して演算を行う。
【０１２６】
さらに、各演算ユニット２１０〜２２１では、差分絶対値演算器２３５からの偶数番目の出力を上記累算器２４５に送る。これにより、当該累算器２４５では、偶数フィールドにおける差分絶対値和Ｄe (i,j) が計算される。一方、差分絶対値演算器２３５からの奇数番目の出力は、累算器２４６に送られる。これにより、当該累算器２４６では、奇数フィールドにおける差分絶対値和Ｄo (i,j) が計算される。
【０１２７】
上述したような制御を行うことにより、本実施例においては、１クロックサイクル毎に図５の各演算ユニット２１０〜２２１から、順次、偶数フィールドにおける差分絶対値和Ｄe (i,j) 及び奇数フィールドにおける差分絶対値和Ｄo (i,j) が出力（出力端子２４７，２４８から出力）されるようになる。これらの差分絶対値和Ｄe (i,j) ，Ｄo (i,j) を各々で大小比較することにより、偶数フィールド、奇数フィールドの各々における２種の動きベクトルＭＶe (x,y) 、ＭＶo (x,y) を求めることができる。
【０１２８】
さらに、本実施例回路では、これら偶数フィールド，奇数フィールドにおける差分絶対値和Ｄe (i,j) 及びＤo (i,j) を加算してフレームにおける差分絶対値和Ｄ(i,j) を求め、このフレームにおける差分絶対値和Ｄ(i,j) を大小比較することで、フレームにおける動きベクトルＭＶ(x,y) を求めることができる。
【０１２９】
なお、上述した各実施例では、参照ブロックＢｐのサイズが３×４画素で、候補ブロックＢｂの数もまた３×４個の場合のフィールド対応動きベクトル検出処理について述べたが、本発明はこれら実施例に限定されず、参照ブロックＢｐのサイズと候補ブロックＢｂの数が等しければ、どのような参照ブロックＢｐのサイズの動きベクトル検出処理についても実現可能である。
【０１３０】
上述のように、本発明の各実施例の演算回路によれば、前記数式(39)に示した偶数フィールド，奇数フィールド，フレームにおける各差分絶対値和の関係を利用して、偶数フィールドにおける差分絶対値和Ｄe (i,j) と奇数フィールドにおける差分絶対値和Ｄo (i,j) とからフレームにおける差分絶対値和Ｄ(i,j) を求めることが可能となる。
【０１３１】
また、各実施例回路では、パイプラインの接続（あるいは累算器の接続）を工夫することにより、同一の候補ブロックＢｐの画素値ｃを用いる偶数フィールドにおける差分絶対値和演算と奇数フィールドにおける差分絶対値和演算とを、１つの動きベクトル検出回路により行うことが可能となる。
【０１３２】
したがって、本実施例の演算回路によれば、フィールド対応動きベクトル検出処理において、偶数フィールド、奇数フィールド、フレームの各々における３種の動きベクトルＭＶe (x,y) 、ＭＶo (x,y) 、ＭＶ(x,y) を、１つの動きベクトル検出回路で求めることが可能となり、ハードウェア量を従来の回路構成の１／３に削減できる。
【０１３３】
さらに、本実施例の回路構成における外部の付加回路は、前記フレームのみの動きベクトル検出処理を行う場合の回路構成と同一であり、また、フレームメモリのポート数も前記フレームのみの動きベクトル検出処理を行う場合の回路構成と変わらないため、フィールド対応動きベクトル検出処理をフレームメモリのポート数の増加なしに実現することができる。
【０１３４】
【発明の効果】
上述のように、本発明によれば、参照ブロックのサイズがＭ×Ｎで、候補ブロック数もまたＭ×Ｎである場合に、参照ブロックの画素値と候補ブロックの画素値との差分絶対値（或いは差分自乗値）を計算する差分絶対値演算器（或いは差分自乗演算器）を有するＭ×Ｎ個の演算ユニットをＭ×Ｎの行列状に配置し、偶数番目の各演算ユニットの出力をそれぞれ第１の加算器を介してパイプライン接続し、奇数番目の各演算ユニットの出力をそれぞれ第１の加算器とは別系統の第２の加算器を介してパイプライン接続し、各演算ユニットでは参照ブロック及び候補ブロックの画素値を一定の順序で差分絶対値演算器（或いは差分自乗演算器）に供給することにより、また、参照ブロックの画素値と候補ブロックの画素値との差分絶対値（或いは差分自乗値）を偶数用と奇数用の２個の累算器でそれぞれ累積して差分絶対値和（或いは差分自乗和）を求めるＭ×Ｎ個の演算ユニットをＭ×Ｎの行列状に配置して相互接続し、参照ブロック及び候補ブロックの画素値を一定の順序で供給することにより、奇数フィールド、偶数フィールド、フレームにおける差分絶対値和を求めることを可能としている。したがって、本発明の演算回路は、ハードウェア量の削減ができ、また、外部の付加回路の削減、フレームメモリのポート数の増大を防ぐことが可能となっている。
【図面の簡単な説明】
【図１】フィールド対応動きベクトル検出処理を行う第１の実施例の演算回路の全体構成を示すブロック回路図である。
【図２】第１の実施例の演算回路の演算ユニットの具体的構成を示すブロック回路図である。
【図３】第１の実施例の演算回路における偶数フィールドにおける動きベクトル検出処理の制御のタイミングを説明するための図である。
【図４】第１の実施例の演算回路における奇数フィールドにおける動きベクトル検出処理の制御のタイミングを説明するための図である。
【図５】フィールド対応動きベクトル検出処理を行う第２の実施例の演算回路の全体構成を示すブロック回路図である。
【図６】第２の実施例の演算回路の演算ユニットの具体的構成を示すブロック回路図である。
【図７】第２の実施例の演算回路におけるフィールド対応動きベクトル検出処理の制御のタイミングを説明するための図である。
【図８】動きベクトル検出処理の原理を示す図である。
【図９】参照ブロックのサイズが３×４画素で、候補ブロックの数が３×４個の場合の動きベクトル検出処理を説明するための図である。
【図１０】従来のフレームのみの動きベクトル検出処理を行う演算回路の全体構成を示すブロック回路図である。
【図１１】従来例回路の演算ユニットの具体的構成を示すブロック回路図である。
【図１２】従来例回路のマルチプレクサ付き画素値格納用レジスタの具体的構成を示すブロック回路図である。
【図１３】従来の動きベクトル検出処理の制御のタイミングを説明するための図である。
【符号の説明】
１９０〜２０１，２１０〜２２１・・・演算ユニット
１８２，２３２・・・・・・・・・・画素値格納用レジスタ
１８４，２３４・・・・・・・・・・マルチプレクサ
１８５，２３５・・・・・・・・・・差分絶対値演算器
２４５，２４６・・・・・・・・・・累算器
３０１〜３１９・・・・・・・・・・パイプラインレジスタ
３２１〜３３０，３４１・・・・・・加算器
【図１】
0003545004.tif 000003
【図２】
0003545004.tif 000004
【図３】
0003545004.tif 000005
【図４】
0003545004.tif 000006
【図５】
0003545004.tif 000007
【図６】
0003545004.tif 000008
【図７】
0003545004.tif 000009
【図８】
0003545004.tif 000010
【図９】
0003545004.tif 000011
【図１０】
0003545004.tif 000012
【図１１】
0003545004.tif 000013
【図１２】
0003545004.tif 000014
【図１３】
0003545004.tif 000015