(57)【特許請求の範囲】
【請求項１】
水平方向と垂直方向の移動によるジグザグパスでサーチ・ウィンドウをスキャンすることにより、画像信号におけるリファレンス・ブロックとサーチ・ウィンドウ・ブロックとの間でブロックマッチングを行うための動き予測用のパイプライン構造計算回路であって、
リファレンス・ブロックに対応する画素データをストアするリファレンス・ブロック用レジスタ群と、
サーチ・ウィンドウ・ブロックに対応する画素データをストアするサーチ・ウィンドウ用レジスタ群と、
サーチ・ウィンドウ・ブロックに隣接するラインの画素データをストアする追加レジスタ列と、
上記リファレンス・ブロック用レジスタ群にストアされた画素データと上記サーチ・ウィンドウ用レジスタ群にストアされた画素データとの各々の画素間差分を計算し、それら画素間差分に基づいてリファレンス・ブロックとサーチ・ウィンドウ・ブロックとの間のブロック間差分を計算する計算ユニットと、
を含み、
上記サーチ・ウィンドウ用レジスタ群と上記追加レジスタ列の各レジスタが、画素データを水平方向及び垂直方向に互いにシフト可能なように接続されており、
サーチ・ウィンドウ・ブロックのサーチ・ウィンドウ内における水平シフトにより、上記サーチ・ウィンドウ用レジスタ群と上記追加レジスタ列とに画素データが並列的に入力されて上記サーチ・ウィンドウ用レジスタ群及び上記追加レジスタ列の画素データの水平方向のアップデートが行われ、
サーチ・ウィンドウ・ブロックがサーチ・ウィンドウの端に到達した際のサーチ・ウィンドウ・ブロックの垂直シフトにより、上記追加レジスタ列の画素データが上記サーチ・ウィンドウ用レジスタ群へ垂直シフトされることで上記サーチ・ウィンドウ用レジスタ群の画素データのアップデートが行われる、
パイプライン構造計算回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は画像信号の処理技術に関し、特にリアルタイム・ビデオ圧縮のための動き予測の技術に関する。
【０００２】
【従来の技術及びその課題】
ディジタルビデオの転送および蓄積の用途において、信号情報の圧縮は非常に重要である。ＭＰＥＧ技術は、現在のディジタルビデオ（及びオーディオ）圧縮における国際標準である。
【０００３】
図１は、ＭＰＥＧビデオ符号化の一般的構造を示す。（ａ）は、オリジナル・ビデオ信号と復号化されたビデオ信号とを用いる動き予測を示し、（ｂ）はオリジナル・ビデオ信号のみを用いる動き予測を示す。これら２つのアプローチにおける性能的な差はそれほどない。ビデオ符号化の機能ブロックとして、動き予測／補償ブロック１と差分信号圧縮ブロック２の主に２つがある。差分信号圧縮ブロック２は、離散コサイン変換、量子化、可変長符号化などを含む。
【０００４】
動き予測は、例えば、ビデオの連続する画像フレームで同一又は非常によく似た画像セグメントを繰返しコード化することを避けることにより、時間的冗長性（temporal redundancy ）を削除する技術である。フレーム内の各位置におけるビデオ信号は、動きによる相違を除くと前フレームと非常に類似している。動きは画素のグループ（画像サンプル）で起こり、この性質を使って、動きを画素ブロック（８×８，８×１６又は１６×１６の画素）で効率的に追跡することができる。この技術は、一般にブロック・マッチングと呼ばれている。
【０００５】
予測された動きのＶベクトル及びＨベクトル（Ｖ，Ｈはそれぞれ垂直方向、水平方向の動きを表す）は最良のマッチングが得られる相対アドレスとして定義される。動きベクトルは、候補動きベクトルの集合Ｂ＝｛（Ｖベクトル，Ｈベクトル）｝上で以下に示す「コスト関数」を最小化する元として求められる。
【０００６】
【数１】
0004185579.tif 000002
【０００７】
ここで、ＶＢＰ，ＨＢＰはそれぞれ垂直ブロック位置、水平ブロック位置を意味する。これらの値はそれぞれのリファレンス・ブロックの位置を表し、通常、ブロックの左上の画素座標によって決定される。ＩN は時間Ｎの画像を意味し、ＩN-1 は時間Ｎより１ユニット前の画像を意味する。
【０００８】
図２は時間Ｎのリファレンス・ブロックと時間Ｎ−１の画像でのマッチング・ブロックとの間の動きベクトルの定義を示す。
動き予測において、リファレンス・ブロックは必ずオリジナル画像信号を使用する。マッチング・ブロックは、復号化された画像信号かオリジナル画像信号のいずれかを使用する。動き補償は、必ず、復号化された画像信号を用いて行われるが、動き予測はオリジナル画像信号を用いても推定の精度を損なうことはない。
【０００９】
式（１）の計算は、各リファレンス・ブロックに対し実行するが、サーチ回数が大量となるため、膨大な計算量が必要となる。図３は、８×８画素のブロックサイズのマッチングのための従来の計算回路３を示し、第１列の左から２番目のブロック５を拡大して上部に図示している。なお、図及び説明の簡略化のため８×８のブロックサイズを選択して説明するが、この技術の効果は、マッチング・ブロックの大きさによって制限されることはない。
【００１０】
図示した従来の回路において、８×８のリファレンス・ブロック信号サンプルは、図３の入力ポートｂを通って内部８×８レジスタ（レジスタＡ）に先ずロードされる。その後サーチ・ウィンドウ・データが入力ポートａから入力される。入力ポートｃには隣のブロックからローカル合計が入力される。コスト関数式（１）の値は回路からの最終出力（最も右側の加算器からの出力）として得られる。一つの計算結果が、各サーチブロック位置に対し得られる。各候補位置でのコスト関数の値は互いに比較され、最小値を与えるサーチブロック位置（動きベクトル）を決定する。この計算は、余り多くの計算を必要としないので図示した回路では省略している。
【００１１】
リファレンス・ブロック・データがレジスタＡにすべてセットされた後、同じ幅（この場合８画素）のサーチ・ウィンドウの画像信号が入力ポートａから連続して入力される。図４に、サーチ・ウィンドウの画像信号が連続して水平方向からマッチング回路に入力される方法を示す。この図ではマッチング動作の一列のみを示す。サーチ・ウィンドウ・ブロックの位置は水平にシフトする。図３のシェイドされたブロック群から最初の有効な出力が得られるのに８クロックかかることに注意されたい。この遅延は図５にも示されている。従来のブロック・マッチングでは図４に示すように、２次元の動作は１次元（水平か垂直）のマッチング動作の繰返しで行われていた。各１次元マッチング処理に対し図５に示すように計算結果が出力される前に８クロック追加される必要がある。
【００１２】
マッチング動作において、図４及び図５の水平方向のサーチに加え、垂直方向にもサーチを実行する。図３の回路を使ってサーチを実行するとき、リファレンス・データのセットに必要な８クロックの遅延と各１次元サーチに対する８クロックの遅延が生じる。実際のマッチング・コスト関数値が得られる前にこれらの遅延が毎度許容（tolerate）される必要がある。この追加の遅延はリファレンス・ブロックの大きさとそのサーチング・ウィンドウの大きさが同等になるとき重大なオーバーヘッドになる。リファレンス・ウィンドウの大きさが１６×１６画素で、サーチング・ウィンドウの大きさが３２×３２画素の場合、典型的な例における回路の性能比率（得られる実際のコスト関数値の数に対する実際のクロック数）は３２×３２／（１６＋（１６＋３２）×３２）＝６６％である。
【００１３】
【課題を達成するための手段及び作用】
本発明においては、回路の性能比率をほぼ１００％まで改善する新規なアプローチを提供する。
本発明においては、ジグザグパスでサーチ・ウィンドウをスキャンすることにより、画像信号におけるリファレンス・ブロックとサーチ・ウィンドウ・ブロックとの間でブロックマッチングを行うための動き予測用のパイプライン構造計算回路であって、
水平シフトにより画素データのアップデートを行うと共に、サーチ・ウィンドウ・ブロックがサーチ・ウィンドウの端に到達すると垂直シフトにより画素データのアップデートを行うための、行及び列で構成されたサーチ・ウィンドウ用レジスタ群と、
上記サーチウィンドウ用レジスタ群で画素データの垂直シフトが行われる際に、ストアされた画素データを上記サーチ・ウィンドウ用レジスタ群の最下位列レジスタに入力する追加レジスタ列と
を含むパイプライン構造計算回路を提供する。
【００１４】
【実施例】
本発明の一実施例を図面を参照して説明する。
上述の様に従来技術における性能の低下の主な原因は、最初のコスト関数値が出るまでの余分なクロック即ち遅延であることを示した。図３の回路３のシェイドされた部分の構造は、しばしば有限インパルス応答（以下ＦＩＲ）フィルタを実行するために用いられる。ＦＩＲフィルタの通常の用途において、固定あるいは適応型であり得るが、フィルタは入力信号に対して常時適用されている。この場合、フィルタ応答のある量の初期オーバーヘッド又は遅延は、避けられないが重要な問題ではない。しかし、動き予測の場合のようにより短いセグメントに繰返しフィルタが適用されるときは、重大なオーバーヘッドとなり、このアプローチは適さない。
【００１５】
この問題は、以下の３つの新しいアプローチを用いることによって解決できる。
（１）計算遅延を必要とするストリームライン計算の代わりに、計算オーバーヘッドを必要としない新たなパイプライン構造計算回路を用いる。
（２）マッチング・ブロック位置の垂直シフトに関連するオーバーヘッド遅延をなくすため、新しいシフトレジスタ構造を導入する。
（３）計算性能を最大限引き出すため、サーチ・ウィンドウを効率的にスキャンできるジグザグパスを用いる。
【００１６】
上記（１）の要件に合う新しい回路構造の一例を図６に示す。図３の回路におけるレジスタのない計算コンポーネントが、レジスタを有する部品で置き換えられる。更に、マッチング・コスト関数を計算するこの図６の回路６に、２次元階層加算構造を取り入れることによりゲート数を削減し、回路に追加のレジスタを導入することによるゲート数の増加を補償する。結果として、図６で実現するゲート数は、図３のものとほぼ同じになる。図６には図３と同様に、一つのブロック７の拡大ブロック図も示してある。図６の回路６において、レジスタＢの内容（サーチ・ウィンドウ・データ）は以下に説明するように１セットの新たな値に同時に変更することができる。これはストリーム・ライン回路構造ではなく完全にパイプライン化された加算構造を用いることにより可能となるものであり、図３の回路ではそのような動作はできない。
【００１７】
図７に、本発明の一実施例における水平及び垂直ウィンドウ・シフト動作のためのレジスタＢの構造を示す。従来の８×８サーチ・ウィンドウに対応する８×８レジスタ群８に加えて、１×８レジスタの１つの追加列９が提供され、従来のサーチ・ウィンドウ・ブロックの真下のラインで画素データをストアする。水平ウィンドウ・シフトでは、レジスタ・データは水平シフトによってアップデートされる。サーチ・ウィンドウの両端での垂直シフトでは、レジスタ・データは垂直シフトによってアップデートされる。これにより、オーバーヘッド遅延なくサーチ・ウィンドウがセットされる。追加レジスタ列９もサーチ・ウィンドウ・ブロックが水平にシフトするときに画素データで満たされる。図８を用いて再度説明すると、サーチ・ウィンドウ・ブロックが図８に示すジグザグパスのサーチ・ウィンドウのどちらかの端に到達すると、８×８レジスタ群８の内容は図７に示すように垂直方向にシフトされる。この動作が、図６の入力ポートａから初期サーチ・ウィンドウ・データを再ロードすることなく、新しいサーチ・ウィンドウ位置に対応するサーチ・ウィンドウ・データを瞬時にロードする。サーチ・ウィンドウ・ブロックの水平シフトの間、新しいデータは図６の入力ポートａから９列のレジスタ列すべてに入力され、データの最下列は、ブロック位置がウィンドウの端で垂直にシフトされるとき用いられる。
【００１８】
この３つの技術を共に用いれば、オーバーヘッドはリファレンス・ブロック・データ及びサーチ・ウィンドウ・ブロック・データをロードするために必要な初期クロックのみとなる。この初期オーバーヘッドは、全体マッチング動作を終了するのに必要とされるクロック数と比べてわずかであるため、重大なオーバーヘッドを起こすことなく、図８に示すジグザグパスの動き予測動作を完全に行うことができる。そしてそのオーバーヘッドのない加算構造がコスト関数式（１）の連続計算を可能にする。
以上一実施例につき説明したが本発明はこれに限られるものではない。
【００１９】
【発明の効果】
リアルタイム・ビデオ圧縮のための動き予測を効率的にかつ小型ハードウェアで実現できる。
【図面の簡単な説明】
【図１】従来のビデオ符号化構造を示すブロック図。
【図２】リファレンス・ブロックのアドレスと、マッチングされたブロックのアドレスとの相対的な関係を説明する図。
【図３】コスト関数式（１）を計算する典型的な回路構造。
【図４】リファレンス・ブロックとサーチ・ターゲット・ウィンドウとのブロック・マッチングを説明する図。
【図５】従来のブロックマッチングにおける実際の処理を説明する図。
【図６】本発明の一実施例に係る階層加算回路構造を示すブロック図。
【図７】本発明の一実施例における水平及び垂直ウィンドウ・シフト動作のための新規のレジスタ（レジスタＢ）構造を示す図。
【図８】サーチ・ターゲット・ウィンドウ内のジグザグパスのサーチを説明する図。
【符号の説明】
８  サーチ・ウィンドウ用レジスタ群
９  追加レジスタ列
【図１】
0004185579.tif 000003
【図２】
0004185579.tif 000004
【図３】
0004185579.tif 000005
【図４】
0004185579.tif 000006
【図５】
0004185579.tif 000007
【図６】
0004185579.tif 000008
【図７】
0004185579.tif 000009
【図８】
0004185579.tif 000010