(57)【要約】【課題】  ローカル・レジスタを有する処理要素のアレイを提供すること。【解決手段】  特殊化された画像処理回路が、通常、単一命令複数データ（ＳＩＭＤ）アーキテクチャとして超並列方式でハードウェア中に実装される。公知の実装形態は一般に、処理要素とメモリ・サブシステムとの間の接続パスが長く複雑であり、その結果、最大動作周波数が制限されるという難点がある。最適化された画像処理用アーキテクチャは、２次元構造に配列された処理要素（ＰＥ００，．．．，ＰＥ７７）を有し、各処理要素は、複数の参照ピクセルを含むローカル・ストレージ（Ｘ０，．．．，Ｘ８）を有するが、参照ピクセルは参照画像中の近隣ではない。そうではなく、参照ピクセルは参照画像の異なるブロックに属し、これは種々の符号化方式で様々である場合がある。【選択図】        図５
2008165756.tif 000002
【特許請求の範囲】
【請求項１】
複数のディジタル処理要素のアレイであって、ディジタル処理要素は、ディジタル入力データを処理してディジタル出力データを提供するためのハードウェア構造であり、前記アレイは１つまたは複数の次元を有することができ、
各ディジタル処理要素は、入力データを保持するための複数のレジスタを関連付けており、前記入力データはロード・モードで外部データ・ソースからロードすることができ、
ディジタル処理要素の前記複数のレジスタはそれぞれ、切換え可能な接続を介して、前記アレイの各次元における２つの近隣処理要素に関連する前記レジスタのうちの少なくとも２つに接続され、前記切換え可能な接続はシフト・レジスタ動作モードに切り換えることができ、前記アレイの境界にある処理要素に関連するレジスタは、前記アレイの反対側の境界にある処理要素に関連するレジスタに接続される、前記アレイ。
【請求項２】
前記シフト・レジスタ・モードは複数のサブモードを含み、前記サブモードは前記アレイの各次元の各方向へのシフトを可能にする、請求項１に記載のアレイ。
【請求項３】
第２のレジスタ群が前記シフト・レジスタ・モードにある間に、第１のレジスタ群を前記ロード・モードに切り換えることができる、請求項１または２に記載のアレイ。
【請求項４】
「ショート・シフト・レジスタ」モードという別のモードで、前記アレイの境界にない処理要素に関連するレジスタが、前記アレイの境界のうちの１つにある処理要素に関連するレジスタに接続される、請求項１から３のうちの一項に記載のアレイ。
【請求項５】
各処理要素は現データを保持するための少なくとも１つの第２のレジスタを有し、前記第１のレジスタが前記シフト・レジスタ・モードにあるときに前記第２のレジスタの内容はシフトされない、請求項１から４のうちの一項に記載のアレイ。
【請求項６】
前記アレイはクロック信号によって動作させられ、前記処理要素による前記処理は前記シフト・レジスタ・モードでの前記シフトと同じクロック・サイクルで実施される、請求項１から５のうちの一項に記載のアレイ。
【請求項７】
処理要素の前記アレイは１次元あたり８つの処理要素を含む２次元を有し、各処理要素は入力データを保持するために９つの前記レジスタを有する、請求項１から６のうちの一項に記載のアレイ。
【請求項８】
前記入力データは、１つまたは複数の次元で、ある順序で配列され、処理要素の前記複数のレジスタに記憶されている入力データは前記順序に従った近隣ではない、請求項１から７のうちの一項に記載のアレイ。
【請求項９】
前記入力データは隣接データ・ブロックに配列され、処理要素に関連する前記複数のレジスタは、異なるブロックからの入力データを記憶するためのものである、請求項８に記載のアレイ。
【請求項１０】
前記ディジタル入力データおよびディジタル出力データは複数ビットの値である、請求項１から９のうちの一項に記載のアレイ。
【請求項１１】
前記複数ビットの値は画像のピクセル値である、請求項１０に記載のアレイ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力データのためのローカル・レジスタを有する処理要素のアレイに関する。
【背景技術】
【０００２】
動き推定（ＭＥ）は、非常に多くの処理力を必要とする時間クリティカルな適用例の一例である。従って通常、特殊化された回路が、単一命令複数データ（ＳＩＭＤ、ｓｉｎｇｌｅ  ｉｎｓｔｒｕｃｔｉｏｎ  ｍｕｌｔｉｐｌｅ  ｄａｔａ）アーキテクチャとして超並列方式でハードウェア中に実装される。これらのアーキテクチャは、例えば現ピクチャのピクセルを参照ピクセルと比較するために、計算される１つの値につき、普通は１つの処理要素（ＰＥ）を有する。通常、前ピクチャ中の対応するピクセル、およびその近隣が、参照ピクセルとしての働きをする。より一般化された見方では、任意の１次元、２次元、または多次元データ・セットが、処理への入力としての働きをする。ＭＥのためのＰＥは、現ピクセル、およびメモリに記憶されたいくつかの参照ピクセルにアクセスすることができる。ピクセルは通常、大きい画像メモリから、より速くアクセスできるより小さい動作用メモリにコピーされる。大きい画像メモリは遅いので、このコピー操作は比較的長くかかる。動作用メモリはいくつかのブロックを含み、これらのブロックは、利用される符号化方式に従って、現ブロックを予測するための参照としての働きをすることができる。ブロックはしばしば、１６×１６、８×８、または４×４ピクセルを含む正方形構造を有する。
【０００３】
通常、ピクセル・ブロックに対するＰＥの結果は、現ブロックと特定の参照ブロックとの類似性の尺度を計算するために蓄積され、後続の回路が、最も類似する参照ブロックを決定し、このブロックに基づいて現ブロックを符号化する。
【０００４】
従って、ＰＥは、現ブロックと比較して相対的に大きい動作用メモリ全体に分散するいくつかの参照ピクセルへのアクセスを有する必要がある。冗長ピクセル記憶を防止すべきである場合、複雑な接続回路を含むアーキテクチャが必要とされる。例えば、ＵＳ２００３／０１７４２５２号は、ピクセル値をメモリ・サブシステムからＰＥに振り分けるために、プログラム可能なクロスバー・スイッチを使用する。ビット・マスクが、どのピクセル・データにＰＥからアクセスできるかを制御する。クロスバー・スイッチは一般に、深い階層に多数のマルチプレクサ要素を含み、このことは、より高い動作周波数の場合に不利である。
【０００５】
通常、ＭＥ回路は、ハードウェア、例えばＡＳＩＣ中に実装される。しかし、公知の実装形態は一般に、ＰＥとメモリ・サブシステムとの間の接続パスが長く複雑であり、その結果、最大動作周波数が制限されるという難点がある。従って、最適化されたアーキテクチャが望ましい。
【特許文献１】ＵＳ２００３／０１７４２５２号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、ＰＥとそのそれぞれのメモリ・サブシステムとの間の時間クリティカルな信号パスを最適化するアーキテクチャを提供する。従来技術の実装形態で、これらの信号パスは２つの異なる機能、すなわち参照ピクセルを整理し直すこと（遅い）および整理し直された参照ピクセルをＰＥと接続すること（速い必要がある）を、実現することが認識されている。本発明による最適化は、原則的に、この２つの機能を大きく分けることによって達成される。
【課題を解決するための手段】
【０００７】
本発明の一態様は、複数のディジタル処理要素のアレイである。ディジタル処理要素は、ディジタル入力データを処理してディジタル出力データを提供するためのハードウェア構造であり、アレイは１つまたは複数の次元を有する。各ディジタル処理要素は、入力データを保持するための複数のレジスタを関連付けており、入力データは、（例えば最初に）ロード・モードで外部データ・ソースからロードすることができる。ディジタル処理要素の複数のレジスタはそれぞれ、切換え可能な接続を介して、アレイの各次元における２つの近隣処理要素に関連する少なくとも２つのレジスタに接続される。切換え可能な接続は、種々のシフト・レジスタ動作モードに切り換えることができる。アレイの境界にある処理要素に関連するレジスタは、アレイの反対側の境界にある処理要素に関連するレジスタに接続される。
【０００８】
本発明の一実施形態では、シフト・レジスタ・モードは、複数のサブモードを含む。サブモードは、アレイの各次元の各方向へのシフトを可能にする。例えば、１次元では、「右」および「左」への異なるサブモードが可能であり、少なくとも２次元では、「北」「南」「東」「西」が可能である。
【０００９】
本発明の一実施形態では、第２のレジスタ群がシフト・レジスタ・モードにある間に、第１のレジスタ群をロード・モードに切り換えることができる。本発明の一実施形態では、「ショート・シフト・レジスタ」モードという別のモードは、アレイの境界にない処理要素に関連するレジスタが、アレイの境界のうちの１つにある処理要素に関連するレジスタに接続されることを含む。従って、アレイのいくつかのＰＥのみのローカル・レジスタがシフト・レジスタとして配列され、他のローカル・レジスタは使用されず、例えばロードすることができる。これは、ロードが１クロック・サイクルよりも長くかかる場合に有利である。
【００１０】
本発明の一実施形態では、アレイはクロック信号によって動作させられ、ＰＥによる処理は、シフト・レジスタ・モードでのシフトと同じクロック・サイクルで実施される。
【００１１】
本発明の一実施形態では、入力データは、１つまたは複数の次元で、ある順序で配列され、特定の処理要素に関連する複数のレジスタに記憶されている入力データは、この順序に従った近隣ではない。
【００１２】
本発明の一実施形態では、入力データは隣接データ・ブロックに配列され、処理要素に関連する複数のレジスタは、異なるブロックからの入力データを記憶するためのものである（すなわち、各レジスタは異なるブロックからのデータを記憶する）。
【００１３】
本発明の一実施形態によるアーキテクチャでは、複数のＰＥが２次元構造に配列され、各ＰＥはローカル・ストレージを有する。各ＰＥのローカル・ストレージは、複数の参照値、例えばピクセルを含み、これらの参照値は、入力データ・フィールド中、例えば参照画像中で近隣ではない。そうではなく、参照ピクセルは、参照画像の異なるブロックに属し、これは種々の符号化方式で様々である場合がある。画定された検索領域に応じて、参照ピクセルのうちの１つは、現ピクセルに直接に対応するものとすることができる。すなわちこの参照ピクセルは、現ピクセルが現画像中で有する座標と同じ座標を、参照画像中で有する。他の参照ピクセルは、例えば参照画像中の近隣ブロックまたはマクロブロックからのものとすることができる。これらは、８×８ピクセルよりも大きいブロック・サイズに使用される。
【００１４】
２次元アレイ構造では、各ＰＥはその直接の近隣に接続され、従って、ピクセル値を任意の近隣ＰＥとの間でシフトすることができ、これは、本発明のこの実施形態で２次元シフト・レジスタを実現する。これにより、現ブロックを複数の参照ブロックにわたってシフトすることができる。
【００１５】
さらに、本発明の一実施形態では、各ＰＥのメモリ・サブシステムは、参照ピクセル・ロード領域としての働きをする拡張領域、すなわち、現ピクセルと比較される現在の実行の中にはないが次の実行の中にあるピクセルのための記憶領域を含む。これにより、ピクセルを主画像メモリから比較的低速でロードすることができる。というのは、拡張領域への書込みと、メモリの主検索領域の処理／シフトが干渉しないからである。このようなモードでは、主検索領域を別個にシフトすることができる。このロード機能により、参照ブロックを、他のデータの処理と同時に任意の方式で拡張することが可能である。
【００１６】
本発明の有利な実施形態は、従属請求項、後続の記述、および図に開示する。
【００１７】
本発明の例示的な実施形態を、添付の図面を参照しながら述べる。
【発明を実施するための最良の形態】
【００１８】
動き推定では、前のフィールド／フレーム中で所与のブロックに最もよく合致する位置が検索される。これを達成するには、所与のブロックを検索領域中の多くの位置と比較しなければならない。必要な処理速度を達成するために、１ピクセルあたり１つのＰＥを有する並列ハードウェアが使用される。これは、図１に示すように、ＰＥの２次元アレイまたはグリッドとして実現することができる。本発明のこの実施形態では、各ＰＥは９つの特別なレジスタＸ０，．．．，Ｘ８を有し、各レジスタは参照ピクセル値を保持する。例えば、１つのレジスタＸ０は、参照画像の対応ブロックの対応ピクセルを保持し、３つのレジスタＸ１、Ｘ３、Ｘ４は、８×１６、１６×８、１６×１６のようなより大きいブロック・サイズに使用することのできる、参照画像の近隣ブロックの対応ピクセルを保持し、５つのレジスタＸ２、Ｘ５、Ｘ６、Ｘ７、Ｘ８は、後述するように１６×１６ブロックＸ０−Ｘ１−Ｘ３−Ｘ４の中へまたは中からシフトされるピクセルをバッファリングするのに使用される。近隣参照ブロックは、例えば東Ｘ１、南Ｘ３、および東南Ｘ４と呼ばれるブロックである。さらに、１つのレジスタＲ０が、検索すべき現ピクセルを保持する。加えて、いくつかの他のレジスタＲ１〜Ｒ９も、この目的に利用可能とすることができる。これらのレジスタはすべて、ＰＥ中でローカルに利用可能である。従って、ＰＥ内におけるこれらのレジスタおよび処理ユニットの間の接続構造は、非常に単純である。さらに、現ブロックが８×８よりも大きい場合、各ＰＥは、例えば現ブロックのさらに３つのピクセルを保持する他のレジスタＲ１、Ｒ２、Ｒ３を有することができる。これは、例えば８×１６、１６×８、または１６×１６ブロックに対するブロック・マッチングを可能にする。
【００１９】
上述した構造は、各ＰＥがローカルに記憶した単一ピクセルがどこから来たものであるかを考えたとき、よりよく理解される。図２に、参照画像の２４×２４ピクセルの領域を示す。各ピクセルはＰＥグリッド中にローカルに記憶される。参照画像の主検索領域は、この例では４つの８×８ブロックからなる。例えば、主検索領域の各ブロックの左上角は、ＰＥ００中のレジスタＸ０、Ｘ１、Ｘ３、Ｘ４中にローカルに記憶される。同様にして、他の参照ピクセルも、他のＰＥに振り分けられる。
【００２０】
動き推定プロセス中に、現ブロックと参照ブロックとの類似性の尺度、例えば差分絶対値和（ＳＡＤ、ｓｕｍ  ｏｆ  ａｂｓｏｌｕｔｅ  ｄｉｆｆｅｒｅｎｃｅｓ）が決定される。特定のＰＥについての８×８ブロックの現ピクセルがローカル・レジスタＲ０に記憶されている場合、ＰＥは差分絶対値｜Ｒ０−Ｘ０｜を計算し、高性能のプロセッサ、例えば累算器が、すべてのＰＥのＳＡＤを、ＳＡＤ＝Σ｜Ｒ０−Ｘ０｜として計算する。別の例では、８×１６ブロックの現ピクセルが、ローカル・レジスタＲ０およびＲ１に記憶されている。ＰＥは、ＰＥハードウェアに応じて１つまたは複数のステップで差分絶対値｜Ｒ０−Ｘ０｜および｜Ｒ１−Ｘ１｜を計算し、累算器はＳＡＤ＝Σ（｜Ｒ０−Ｘ０｜＋｜Ｒ１−Ｘ１｜）を計算する。このタイプの検索では、近隣参照ブロックのピクセルがＰＥ中でローカルに利用可能であることが有利である。従って、上述した、各ＰＥが現在値のための４つのレジスタＲ０，．．．，Ｒ３を有する８×８ＰＥのグリッドは、８×８データのブロックを処理する適用例に向けて最適化されているが、現在使用されているＭＥアルゴリズムの場合のように、８×１６、１６×８、または１６×１６データのブロックも扱うことができる。他の適用例では、ＰＥの数、および／または１ＰＥあたりのレジスタ数を変更するのが有利な場合がある。
【００２１】
ＭＥでは、ＳＡＤが記憶され、検索領域が移動され、ＳＡＤ計算が繰り返される。最小限のＳＡＤを有するブロックが決定され、このブロックは最終的に、動きベクトルを決定するための参照ブロックとして選択される。検索領域の移動は一般に、検索領域と参照領域とを相互に対して相対的にシフトすることによって行われる。これは普通、複雑なプロセスだが、本発明のアーキテクチャを使用すればずっと容易である。本発明の一態様によれば、より大きい検索（または参照）領域がシフトされ、より小さい現領域は、すべての位置が終わるまで一定に保たれる。従って、Ｒ０〜Ｒ３レジスタ中の現在値は各ＰＥごとに同じままであり、「特別な」レジスタ（Ｘ０，．．．，Ｘ８）中の値が変更される。
【００２２】
本発明の一態様によれば、これらの「特別な」レジスタ（Ｘ０，．．．，Ｘ８）は、北、東、南、または西のシフトを可能にする２次元シフト・レジスタを実現する切換え可能な接続によって、近隣ＰＥの対応する「特別な」レジスタに接続される。ＰＥはこれらのレジスタ（Ｘ０，．．．，Ｘ８）を介してその値を近隣ＰＥに通信することができるので、これらのレジスタを本明細書では通信レジスタと呼ぶ。切換え可能な接続は、典型的にはマルチプレクサを使用する。マルチプレクサは単純であって例えば６：１であり、短いワイヤを介して近隣ＰＥに接続される。このため、高周波数の動作が可能である。ＰＥの１つまたは複数の処理ステップが完了して、現ブロックが検索領域中の次の位置に移動されることになるとき、各ＰＥのピクセルは単に、ＰＥグリッドのすべてのマルチプレクサを相応に制御することによって、その近隣ＰＥに（現在使用されている方向に）シフトされる。明らかに、検索方向を変更するのは非常に容易である。すなわち、異なるマルチプレクサ制御によって変更する。境界ＰＥの近隣マッピングについては後述する。
【００２３】
このように、ＰＥ間で検索データをやり取りするための効率的な方法を提供するシフト・レジスタが得られる。このシフト・レジスタにより、検索領域をピクセル単位で動かすことができる。例えば、「北」方向のシフト操作は、特定のＰＥ、例えばＰＥ１１のピクセルを、その北の近隣ＰＥ０１の対応レジスタにシフトすることになる。検索領域の外にシフトされるピクセルは、グリッドの反対側に入力される（これは「循環」とも呼ばれるが、本明細書では「シフト」という用語を使用する）。例えば、「北」シフトでは、ＰＥ０１からのピクセルはＰＥ７１にシフトされる。同じことが逆に「南」シフト、さらには「東」および「西」シフトにも当てはまる。従って、すべてのＰＥの通信レジスタは、２次元リング・バッファをなす。しかし、この構造は、８×８ブロックのため複雑である。これは図２で見ることができ、図２はまた、シフト方向に応じた可能なリング・バッファの構造も示している。例えば、すべてのブロックにわたって「東」（＝右）シフトに構成されたとき、一番上のピクセル・ラインを保持する１つのリング・バッファは、ＰＥ００〜ＰＥ０７のすべてのＸ０レジスタを含み、さらに、同じＰＥのすべてのＸ１レジスタを含み、次いで、同じＰＥのすべてのＸ２レジスタを含む。図３に示すように、このラインの最後のレジスタＰＥ０７Ｘ２は、最初のレジスタＰＥ００Ｘ０に接続され、これはリング構造をなす。検索領域の他のラインも相応に配列され、同じことが列にも当てはまる。
【００２４】
１つの検索中に、検索領域は、例えば行の順序でまたは蛇行走査順序で、８×８ブロック内のすべての可能な位置にわたって移動される。例えば、「南」方向への７回のシフト操作の後には、ＰＥ００Ｘ０，ＰＥ１０Ｘ０，．．．，ＰＥ７０Ｘ０の内容は、ＰＥ７０Ｘ０，ＰＥ００Ｘ３，．．．，ＰＥ６０Ｘ３に移動されている。蛇行走査順序を使用する場合、次いで「東」シフトが続き、それによりＰＥ７０Ｘ０，ＰＥ００Ｘ３，．．．，ＰＥ６０Ｘ３の内容は、次のＳＡＤを計算するためにＰＥ７１Ｘ０，ＰＥ０１Ｘ３，．．．，ＰＥ６１Ｘ３に移動され、次いで８回の「北」シフト、もう１回の「東」シフトなどが続くことを意味し得る。最初のライン／列は、７回のシフトしか必要としない。というのは、最初の計算はデータがロードされる間にすでに行われたものとすることができるからである。他のタイプの蛇行走査が、他のアルゴリズム、例えば（７×Ｅ）−Ｓ−（８×Ｗ）−Ｓ−（８×Ｅ）−Ｓ−．．．または（７×Ｎ）−Ｗ−（８×Ｓ）−Ｗ−（８×Ｎ）−Ｗ−．．．を使用することもできる（例えば、Ｅは１回の「東」シフトおよびＰＥ計算、などとする）。参照画像の現在使用されていない部分は、拡張レジスタＸ２、Ｘ５、Ｘ６、Ｘ７、Ｘ８中にシフトされ、この部分は後でシフトして戻すことができる。他のタイプの走査順序、例えば中央ブロックから開始する螺旋走査を使用してもよい。有利なことに、提案する構造を使用してこれが可能である。というのは、ＰＥの各レジスタが同等であり、従って例えば検索領域内で検索すべき８×８ソース・ブロックをＲ０レジスタに記憶することができるが、利用される検索戦略に応じて例えばその代わりにＲ３レジスタに記憶することもできるからである。同様に、拡張領域は、例えば螺旋走査で必要とされる場合があるように、上側または左側にあってもよい。というのもやはり、ＰＥ内の通信レジスタＸ０〜Ｘ８が同等の構造を有するからである。
【００２５】
このアーキテクチャの特有の利点の１つは、通信レジスタのうちの４つまでしか現検索位置として使用されないので、検索領域サイズの制限なしでグリッドまたはアレイをエッジで拡張できることである。図２に示したように、これらは各ＰＥのＸ０、Ｘ１、Ｘ３、Ｘ４レジスタである。例えば１６×１６ブロックを処理する場合、各ＰＥは、次のシフトの前に４つの計算、すなわち｜Ｒ０−Ｘ０｜、｜Ｒ１−Ｘ１｜、｜Ｒ２−Ｘ２｜、｜Ｒ３−Ｘ３｜を実施する。これらの計算には４サイクルを必要とする場合がある。次いで、対応する拡張領域に有効データが事前にロードされていると仮定して、前述のようにシフトが適用される。
【００２６】
例えば、「東」または「西」シフトの場合は、右の拡張領域（通信レジスタＸ２およびＸ５）は事前にロードされていなければならず、「北」または「南」シフトの場合は、下の拡張領域（通信レジスタＸ６およびＸ７）は事前にロードされていなければならない。８回のシフトの後、それぞれの拡張領域の通信レジスタは、最初に主検索領域にあったデータのみを保持している。蛇行走査順序が使用される場合、これらのデータはシフトされて戻されることになる。検索領域の拡張には、しかし、新しい拡張領域データを主画像メモリからロードするために過去の時間（４×８サイクル）が使用された場合がある。これは有利である。というのは、このロードは特定時点での主画像メモリへのアクセスを必要とせず、これらの３２サイクル中の任意の時点で行うことができるからである。これにより、主画像メモリが遅いかまたは非常にビジーであるときもまた、ＭＥのシームレスな操作が可能である。主画像メモリからの新しいデータは、中間バッファに収集し、８回目と９回目のシフトの間に単一ステップで拡張領域の通信レジスタにコピーすることができる。
【００２７】
本発明によるアーキテクチャはまた、他のタイプの処理、特に、例えば２次元フィルタリングなどの画像処理にも有利である。ＰＥの数、および／または１ＰＥあたりの通信レジスタの数は、実際の適用例に従って様々である場合がある。何れの場合でも、ＰＥは、種々のタイプのシフト・レジスタに動的に接続できるローカル・レジスタ（通信レジスタ）を有し、シフト・レジスタは、リング・バッファとして働く。すなわちシフト時にデータを失わない。このレジスタ構造を使用すると、大きい入力データ・フィールドのソースに絶えずアクセスする必要なしに、この入力データ・フィールドに作用することが可能である。これは、現在の操作ステップの入力データを、次の操作ステップで別のＰＥまたは同じＰＥ中で再び使用するためにシフトすることによって達成される。従って、ある意味では、ＰＥをそれらの現在の中間結果と共に入力データに沿って移動するのではなく、入力データがＰＥに沿って移動される。
【００２８】
図４に、図３でも強調表示されているＰＥ４３の特定の通信レジスタＸ１の回路を、例示的に、また原則的にのみ示す。このレジスタＰＥ４３Ｘ１は、マルチプレクサＭＸ４３Ｘ１を介して、ＰＥ４３のローカル・レジスタ、ならびにその近隣すなわち南方向のＰＥ５３Ｘ１、西方向のＰＥ４２Ｘ１、北方向のＰＥ３３Ｘ１、および東方向のＰＥ４４Ｘ１に接続される。制御信号ＣＴＲＬによって制御されるマルチプレクサ位置に応じて、値はそれぞれの方向にシフトされる。さらに、現在値を保持するために、すなわちシフトが実施されないときに、１つのマルチプレクサ位置が必要とされる。制御信号ＣＴＲＬは、一実施形態では、すべての通信レジスタおよびＰＥに対して同じである。別の実施形態では、図２の２４×２４レジスタの一部のみをシフトすることが可能であり、従って、ＰＥアレイの異なる部分に対して異なる制御信号が使用される。例えば、東または西のシフトの場合、下の拡張領域は使用されないので、これはシフトする必要がない場合がある。８×８ブロック・モードでは、ブロックの１つのラインまたは１つの列をシフトすれば十分である。この場合は「ショート・シフト・レジスタ」モードが使用され、このモードでは、アレイの境界にない処理要素に関連するレジスタが、アレイの境界のうちの１つにある処理要素に関連するレジスタに接続される（このモードは図４では見られない）。
【００２９】
図４にはさらに、ＰＥの実際の処理ユニットＰＵ４３を、別のマルチプレクサＭＸ４３Ｘを介してそのローカル通信レジスタの何れかに接続できることが示してある。この接続は、現モードに応じて切り換えられる。例えば、ソース・ブロックが８×８ブロック・モードで左上角に位置決定される場合は、Ｘ０のみであり、１６×１６ブロック・モードでは、Ｘ０、Ｘ１、Ｘ３、およびＸ４である。しかし、すべてのレジスタＸ０，．．．，Ｘ８は等価なので、ソース・ブロックはどこにでも位置決定することができる。一般的な１６×１６マクロブロックを構築するのに１ＰＥあたり４つの通信レジスタしか必要でないので、検索領域を拡張するために新しいデータをメモリからロードするのに使用することのできる１つの行または列がある。例として、１つのブロックを循環させるのには８サイクルかかるが、新しい行または列をロードするのには３サイクルしかかからない。従って、余分なサイクルを必要とせずに検索領域を無限サイズまで動的に拡張することができる。
【００３０】
図４に示すように、ＰＥの９つの通信レジスタはそれぞれ、ＰＥの外に４つの接続しか有さない。すべての接続は、ＰＥの直接の近隣に対してローカルであり、従って短い。信号パスはレジスタから来ており、ターゲット・レジスタ中で終わる前に小さいマルチプレクサのみを有する。従って、オンチップ実装形態のためのルーティングおよびタイミング・クロージャは比較的容易である。
【００３１】
さらに、ＰＥがそれらの近隣に接続され、境界が回り込むので、境界において余分なサイクルは必要ない。例えば、ＰＥ０７Ｘ２の「東」近隣はＰＥ００Ｘ０であり、その「北」近隣はＰＥ７７Ｘ８である。
【００３２】
図５の上部に、図１からのＰＥアレイＰＥ００，．．．，ＰＥ７７を示し、第２層に、ＰＥの通信レジスタＰＥ００Ｘ０〜Ｘ８，．．．，ＰＥ７７Ｘ０〜Ｘ８を示し、第３層に、図２の右下角に対応する入力データ・フィールドの一部を示す。９つの通信レジスタは異なるブロックからのピクセル・データを保持するので、これらのピクセルは参照画像中で近隣ではないが、９つの現ブロックの粗い表現の一種である。原則的に、このアーキテクチャは、複数ブロック・データ構造を単一ブロック・データ構造に、例えば３×３ブロックの参照領域を単一ブロックのＰＥにマッピングする。通信レジスタ間の相互接続は、図５には示されていない。
【００３３】
実際の実装形態では、処理はシフトと同じサイクルで実施することができる。従って、８×８ブロック・モードで処理を前述のように１サイクルで実施することができる場合、データを継続的にシフトすると同時にＰＥによって処理することができる。
【００３４】
本発明によるＰＥ構造のプログラミングは、シフト・モードを選択するコマンド、異なるシフト・モードに対する異なるコマンド、データを外部（中間）メモリから拡張領域のうちの１つにロードするコマンドなど、単純だが特殊化されたコマンドを必要とする。
【００３５】
本発明によるアーキテクチャはまた、例えば１次元フィルタリングにも有利である。入力データが行に配列されている場合、例えば画像データの単一のピクセル・ラインに配列されている場合は、これらをｎ個の連続する値のグループに編成することができる。通常のように１つのＰＥに１つのレジスタが関連するのではなく、各ＰＥに複数のレジスタが接続されている。ＰＥのこれらのレジスタはそれぞれ、入力データの異なるグループからのデータを記憶する。ＰＥは、マルチプレクサを介して、その各入力レジスタに連続的に接続され、それぞれの出力値を計算する。次いで、値は近隣ＰＥにシフトされる。異なるＰＥが異なるデータ・セットに対して異なる操作を実施してもよく、あるいは同じタイプの操作を実施してもよい。本発明による構造は、種々の処理方式を扱うように切換えまたは構成ができるので、例えば短縮されたデータ・ロード時間、入力データのための短い接続（これは高速回路に有利である）、およびフレキシビリティを提供する。
【００３６】
本発明は、入力データ・アレイに作用するあらゆる種類の処理構造に、しかも２次元または多次元入力データ・フィールドにさえも有利であり、特に、常に同じタイプの計算が実施される場合に有利である。
【００３７】
以下に他の実施例を例示する。
（１）複数のディジタル処理要素（ＰＥ００，．．．，ＰＥ７７）のアレイであって、ディジタル処理要素は、ディジタル入力データを処理してディジタル出力データを提供するためのハードウェア構造であり、前記アレイは１つまたは複数の次元を有することができ、
各ディジタル処理要素は、入力データを保持するための複数のレジスタ（Ｘ０，．．．，Ｘ８）を関連付けており、前記入力データはロード・モードで外部データ・ソースからロードすることができ、
ディジタル処理要素の前記複数のレジスタ（Ｘ０，．．．，Ｘ８）はそれぞれ、切換え可能な接続を介して、前記アレイの各次元における２つの近隣処理要素に関連する前記レジスタのうちの少なくとも２つに接続され、前記切換え可能な接続はシフト・レジスタ動作モードに切り換えることができ、前記アレイの境界にある処理要素に関連するレジスタは、前記アレイの反対側の境界にある処理要素に関連するレジスタに接続されるアレイ。
（２）前記シフト・レジスタ・モードは複数のサブモードを含み、前記サブモードは前記アレイの各次元の各方向へのシフトを可能にする、（１）に記載のアレイ。
（３）第２のレジスタ群が前記シフト・レジスタ・モードにある間に、第１のレジスタ群を前記ロード・モードに切り換えることができる、（１）または（２）に記載のアレイ。
（４）「ショート・シフト・レジスタ」モードという別のモードで、前記アレイの境界にない処理要素に関連するレジスタが、前記アレイの境界のうちの１つにある処理要素に関連するレジスタに接続される、（１）から（３）のうちの一項に記載のアレイ。
（５）各処理要素は現データを保持するための少なくとも１つの第２のレジスタ（Ｒ０）を有し、前記第１のレジスタが前記シフト・レジスタ・モードにあるときに前記第２のレジスタの内容はシフトされない、（１）から（４）のうちの一項に記載のアレイ。
（６）前記アレイはクロック信号によって動作させられ、前記処理要素による前記処理は前記シフト・レジスタ・モードでの前記シフトと同じクロック・サイクルで実施される、（１）から（５）のうちの一項に記載のアレイ。
（７）処理要素の前記アレイは１次元あたり８つの処理要素を含む２次元を有し、各処理要素は入力データを保持するために９つの前記レジスタ（Ｘ０，．．．，Ｘ８）を有する、（１）から（６）のうちの一項に記載のアレイ。
（８）前記入力データは、１つまたは複数の次元で、ある順序で配列され、処理要素の前記複数のレジスタに記憶されている入力データは前記順序に従った近隣ではない、（１）から（７）のうちの一項に記載のアレイ。
（９）前記入力データは隣接データ・ブロックに配列され、処理要素に関連する前記複数のレジスタ（Ｘ０，．．．，Ｘ８）は、異なるブロックからの入力データを記憶するためのものである、（８）に記載のアレイ。
（１０）前記ディジタル入力データおよびディジタル出力データは複数ビットの値である、（１）から（９）のうちの一項に記載のアレイ。
（１１）前記複数ビットの値は画像のピクセル値である、（１０）に記載のアレイ。
【図面の簡単な説明】
【００３８】
【図１ａ）】８×８のＰＥアレイを示す図である。
【図１ｂ）】ＰＥのローカル・メモリを示す図である。
【図２】主検索領域と、拡張領域と、ＰＥへの関連ピクセルの割当てとの構造を示す図である。
【図３】境界ＰＥと非境界ＰＥとに対する例示的な近隣を示す図である。
【図４】特定の通信レジスタの回路を示す図である。
【図５】ＰＥと、それらの通信レジスタと、入力データ・フィールド領域との構造を示す図である。
【符号の説明】
【００３９】
ＰＥ００〜ＰＥ７７  処理要素
Ｘ０〜Ｘ８  レジスタ
Ｒ０〜Ｒ３  レジスタ
ＭＸ４３  マルチプレクサ
ＭＸ４３Ｘ１  マルチプレクサ
ＭＸ４４Ｘ１  マルチプレクサ
ＰＵ４３  処理ユニット
【図１ａ）】
2008165756.tif 000003
【図１ｂ）】
2008165756.tif 000004
【図２】
2008165756.tif 000005
【図３】
2008165756.tif 000006
【図４】
2008165756.tif 000007
【図５】
2008165756.tif 000008
【外国語明細書】
2008165756000001.pdf