(57)【要約】【課題】多次元データをデータ競合なしで同時検索する。【解決手段】１個のデータポートを有する単一の方形データアレイは、多次元ピクセルアレイを表すデータ要素セットを記憶できる。ロード／記憶ユニットはデータ要素セットを受取り、各別のアドレスポートを有する複数の個別アドレス指定可能データアレイの間で分割記憶できる。個別アドレス指定可能データアレイは、ピクセルアレイの多次元サブアレイを表すデータ要素サブセットからのデータ要素を記憶する単一行を含んでよい。１回の計算サイクルでデータ要素の完全なサブセットを検索するプロセッサは、個別アドレス指定可能データアレイのそれぞれに対応するそれぞれのアドレスポートにアクセスすることで、複数のアドレス指定可能データアレイそれぞれの単一行に同時アクセスできる。実行ユニットは、データ要素サブセットで命令実行できる。【選択図】  図４
2011258207.tif 000002
【特許請求の範囲】
【請求項１】
多次元データを処理するためのデータ処理方法であって、前記データ処理方法は、
それぞれデータ要素が１ピクセルを表すように、多次元ピクセルアレイを表す複数の前記データ要素からなるデータ要素セットを受取ることと；
複数の個別アドレス指定可能データアレイの間で分割された前記データ要素セットを記憶することであって、それぞれ前記個別アドレス指定可能データアレイは、データ要素サブセットからのデータ要素を記憶するせいぜい単一の行を含み、前記データ要素サブセットは、前記多次元ピクセルアレイの多次元サブアレイを表すことと；
前記データ要素の完全なサブセットを１回の計算サイクルで検索するために、前記個別アドレス指定可能データアレイのそれぞれに対して各別のアドレスポートにアクセスすることによって、複数の前記個別アドレス指定可能データアレイの各単一の行に同時にアクセスすることと；
前記データ要素サブセットに関する１個以上の命令を実行することと；
前記データ要素サブセットに関する１個以上の前記命令を実行することによって処理された映像または画像を表示することと
を備えることを特徴とする、データ処理方法。
【請求項２】
前記データ処理方法はさらに、前記データ要素セットを、１個のデータポートを有する単一の方形データアレイから、複数のアドレスポートを有する複数のデータアレイに変換することを含む、
請求項１記載のデータ処理方法。
【請求項３】
単一の方形データアレイの各行から行シーケンスの順序で一度に１行ずつ順次整えられた一連のデータ要素は、複数のデータアレイ全体にわたり複数のデータアレイの順序で最初の利用可能な行の間で分割され、
その後に前記データ要素は、複数の前記データアレイにおける次の利用可能な行の間で分割される、
請求項２記載のデータ処理方法。
【請求項４】
単一の前記方形データアレイ内では垂直方向に整えられていた前記データ要素は、単一の前記方形データアレイの互いに異なる行から変換されたデータ要素の間に整数個のヌルデータ要素が挿入されることで、複数の前記データアレイの互いに異なるデータアレイへとスタガー配列される、
請求項３記載のデータ処理方法。
【請求項５】
単一の前記方形データアレイの１行に含まれるデータ要素の数に、前記データアレイの行の間に挿入されたヌルデータ要素の数を加えたものに、等しい数のデータ要素によって分離されている複数の前記データアレイの行から、前記データ要素は検索される、
請求項２記載のデータ処理方法。
【請求項６】
単一の前記方形データアレイにおいて垂直方向に積み重ねられた前記データ要素の行は、複数のデータアレイのそれぞれ互いに異なるデータアレイに垂直方向にスタガー配列される、
請求項２記載のデータ処理方法。
【請求項７】
個別アドレス指定可能データアレイの各別のアドレスポートのアドレスは、前記データ要素がこれらに変換される順序で整えられている、
請求項２記載のデータ処理方法。
【請求項８】
前記変換は、マップユニットによって実行され、
前記データ要素は、単一の前記方形データアレイからロードされ、
前記データ要素は、複数の前記データアレイに記憶されるときにマッピングされる、
請求項２記載のデータ処理方法。
【請求項９】
前記データ要素は、複数の前記データアレイのそれぞれの各行からバーストで同時に検索される、
請求項１記載のデータ処理方法。
【請求項１０】
多次元データを処理するためのデータプロセッサであって、前記データプロセッサは、
各データ要素が１ピクセルを表すように多次元ピクセルアレイを表すデータ要素のセットとしてのデータ要素セットを受取り、かつ複数の個別アドレス指定可能データアレイの間で分割された前記データ要素セットを記憶するためのロード／記憶ユニットを有し、それぞれ前記個別アドレス指定可能データアレイは、データ要素サブセットからのデータ要素を記憶するせいぜい単一の行を含み、前記データ要素サブセットは、前記多次元ピクセルアレイの多次元サブアレイを表し、
前記データプロセッサは、１回の計算サイクルで前記データ要素の完全なサブセットを検索するために、前記個別アドレス指定可能データアレイのそれぞれに対して各別のアドレスポートにアクセスすることによって、複数の前記個別アドレス指定可能データアレイの各単一の行に同時にアクセスするように構成され、
さらに前記データプロセッサは、前記データ要素サブセットに関する１個以上の命令を実行するための実行ユニットを有していることを特徴とする、
多次元データを処理するためのデータプロセッサ。
【請求項１１】
前記ロード／記憶ユニットは、前記データ要素セットを、１個のデータポートを有する単一の方形データアレイから、複数のアドレスポートを有する複数のデータアレイに変換するように構成されている、
請求項１０記載のデータプロセッサ。
【請求項１２】
前記ロード／記憶ユニットは、単一の前記方形データアレイの各行から行シーケンスの順序で一度に１行ずつ順次整えられた一連のデータ要素を、複数のデータアレイ全体にわたり複数のデータアレイの順序で最初の利用可能な行の間に記憶し、
その後に前記ロード／記憶ユニットは、複数の前記データアレイにおいて次の利用可能な行の間に前記データ要素を記憶する、
請求項１０記載のデータプロセッサ。
【請求項１３】
前記ロード／記憶ユニットは、単一の前記方形データアレイにおいて垂直方向に積み重ねられたデータ要素の行を、複数の前記データアレイのそれぞれ互いに異なるデータアレイに垂直方向にスタガー配列させるように変換するように構成されている、
請求項１０記載のデータプロセッサ。
【請求項１４】
前記データプロセッサは、複数のデータアレイのそれぞれの各行から、前記データ要素の完全なサブセットを同時にバーストで検索する、
請求項１０記載のデータプロセッサ。
【請求項１５】
多次元データを処理するための処理システムであって、前記処理システムは、
各データ要素が１ピクセルを表すように、多次元ピクセルアレイを表すデータ要素のセットであるデータ要素セットを記憶する１個のデータポートを有する単一の方形データアレイと；
前記データ要素セットを受取り、かつそれぞれ複数のアドレスポートの各別のアドレス
ポートを有して複数の個別アドレス指定可能データアレイの間で分割された前記データ要素セットを記憶するためのロード／記憶ユニットであって、それぞれ前記個別アドレス指定可能データアレイは、データ要素サブセットからのデータ要素を記憶するせいぜい単一の行を含み、前記データ要素サブセットは、前記多次元ピクセルアレイの多次元サブアレイを表す、ロード／記憶ユニットと；
前記データ要素の完全なサブセットを１回の計算サイクルで検索するために、それぞれ前記個別アドレス指定可能データアレイに対してそれぞれ対応するアドレスポートにアクセスすることによって、複数の前記個別アドレス指定可能データアレイの各単一の行に同時にアクセスするためのプロセッサと；
前記データ要素サブセットで１個以上の命令を実行するための実行ユニットと
を有することを特徴とする、多次元データを処理するための処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像と画像アプリケーションとに関する。具体的には本発明は、たとえば映像および画像アプリケーションにおいて多次元データを同時に処理するためのデータ処理方法に関する。
【背景技術】
【０００２】
映像および画像アプリケーションは、コンピュータメモリからのデータを処理することがある。映像データおよび画像データは、多次元データアレイで記憶され得る。多次元データアレイ内の各データ要素は、画像または映像フレーム内のピクセルに一意的に関連付けられた値を有することができる。多次元データアレイは、それぞれ複数の行または列に及ぶブロックまたはサブアレイに分割され得る。各サブアレイ内のデータ要素は、関係し、互いに相関し、または相互依存しているので、或るプログラムにおける命令は、従来の映像処理メカニズムに従いすべてのデータ要素で一緒にグループとして実行され得る。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
プロセッサは、コンピュータメモリから映像データまたは画像データを、データ要素のバースト、束またはグループで検索できる。バーストは、多次元データアレイの単一の行に順次整えられた複数のデータ要素を含んでよい。各ロード操作で、たとえば多次元データアレイの単一の行に順次列挙された４個、８個または１６個のデータ要素が検索され得る。データ要素は、１行ずつ順次検索されるので、検索される（単一の行に順次列挙された）データ要素のバーストまたはグループは、互いに相関するデータ要素の（サブアレイの複数行に及ぶ）グループにはしばしば対応しない。したがって、各サブアレイ内の一緒に処理されるすべてのデータを検索するために、プロセッサは、複数のロード操作を通してサブアレイの各行に循環することで、多次元アレイにおけるデータの完全なグループを得ることができる。
【課題を解決するための手段】
【０００４】
発明と見なされる主題は、明細書の結論部分において具体的に指摘され、明確に請求されている。しかしながら本発明は、作動の組織と方法に関して、対象、特徴および利点と併せ、添付の図面を参照しながら以下の詳細な説明を読むことによって最も良く理解されよう。本発明の特定の実施態様を以下の図面に基づいて説明する。
【０００５】
図解を単純で分かりやすくするために、図中に示された要素は、必ずしも縮尺通りに描かれていないことは理解されよう。たとえば分かりやすくするために幾つかの要素の寸法は、他の要素に対して誇張されることがある。さらに、適切と考えられる場合には、対応する要素または類似の要素を示すために図中で参照符号が繰返されることがある。
【０００６】
以下の記述において、本発明の種々の側面を記述する。説明の目的のために、本発明の完全な理解を提供すべく、特定の構成および詳細が記される。しかしながら当業者にとって、本発明は、本明細書中に記された特定の詳細なしに実施できることは明白であろう。さらに、本発明を曖昧にしないために、良く知られている特徴は省略するか、単純化することがある。
【０００７】
特に別途指摘しない限り、以下の議論から明らかなように、明細書全体を通して「処理」、「コンピューティング」、「計算」、「判定」などの用語を用いた議論は、コンピュ
ーティングシステムのレジスタおよび／またはメモリにおいて物理的な量、たとえば電子的な量で表されるデータを、コンピューティングシステムのメモリ、レジスタまたは他の類似の情報記憶ユニット、伝送装置または表示装置における物理的な量として類似に表される他のデータに操作および／または変換するコンピュータ、コンピューティングシステムまたは類似の電子計算装置の動作および／またはプロセスに関係している。
【０００８】
従来のシステムではデジタル画像は、多次元グリッドまたはピクセルアレイを有することができ、これらはコンピュータメモリに記憶された対応するデータ要素の多次元アレイによって表すことができ、その際に各データ要素は、一意的に１ピクセルに対応している。計算オーバーヘッドを低減するために、データアレイは、単一のアドレスポートを有してよい。プロセッサは、典型的に、各計算サイクルにおいてデータ要素を単一のデータアレイ行から各アドレスポート経由で検索する。しかしながらプロセッサは、単一の行ではなく、データアレイの多次元サブアレイで命令を実行してもよい。多次元サブアレイの要素は複数行に及ぶので、従来のプロセッサは、各行のデータを検索するために各別の計算サイクルを使用し、それによって多次元サブアレイのすべての要素を検索するために複数の計算サイクルを使用するであろう。
【０００９】
本発明の実施態様は、１回の計算サイクルで多次元サブアレイのすべての要素が検索されるのを可能にする改善されたメモリ構造を対象としている。
本発明の幾つかの実施態様に従い、個別にアクセス可能および／またはアドレス指定可能な複数のメモリサブユニットが、たとえばプロセッサの内部に設けられている。従来は単一のメモリユニットに記憶される多次元サブアレイからの互いに相関するデータ要素は、複数の個別にアドレス指定可能なメモリサブユニットの間で展開または分割されて、各行は、互いに異なるメモリサブユニットに記憶される。多次元サブアレイの各行は、互いに異なるメモリサブユニットに別々に記憶され、各メモリサブユニットは、それぞれ互いに異なるアドレスポート経由で別々にアクセス可能なので、プロセッサは、１回の計算サイクルで多次元サブアレイに対応するすべての行に同時にアクセスできる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施態様に従うシステムの概略的な図解。
【図２】本発明の実施態様の理解に有用な映像データおよび画像データを記憶するための多次元データアレイ。
【図３】本発明の実施態様に従う映像データおよび画像データを記憶するためのデータ構造の概略的な図解。
【図４】本発明の実施態様に従う方法のフローチャート。
【発明を実施するための形態】
【００１１】
図１は、本発明の実施態様に従う例示的な装置の概略的な図解を参照する。
装置１００は、コンピュータ装置、映像または画像取込装置または再生装置、セル装置、またはその他の何らかのデジタル装置、たとえば携帯電話、個人用デジタル補助装置（ＰＤＡ）、ビデオゲームコンソールなどを含んでよい。装置１００は、映像データまたは画像データを記録、保存、記憶、処理、編集、表示、投影、受信、送信などして使用または操作するための一連の命令を実行できる装置を含むことができる。装置１００は、入力装置１０１を有することができる。装置１００が記録能力を有するときは、入力装置１０１は、撮像装置、たとえばイメージャ、１個以上のレンズ、プリズムまたはミラーなどを含むカムコーダを備えて、物理的対象の像を、対象から出る光波の反射を介して取込むことができ、および／またはオーディオレコーダ、マイクロホンなどを含む録音装置を備えて、これに投射される音波を記録することができる。
【００１２】
装置１００が画像処理能力を有するときは、入力装置１０１は、ユーザが映像または画
像処理操作を制御、修正または選択するために、ポインティングデバイス、クリックホイールもしくはマウス、キー、タッチスクリーン、音声認識を用いたレコーダ／マイクロホン、その他の入力コンポーネントを有してよい。装置１００は、プロセッサ１によって実行される命令のシーケンスに従って映像データまたは画像データをユーザインタフェースに表示するための出力装置１０２（たとえばモニター、プロジェクタ、スクリーン、プリンタまたはディスプレイ）を有してよい。
【００１３】
例示的な装置１００は、プロセッサ１を含むことができる。プロセッサ１は、中央処理装置（ＣＰＵ）、デジタルシグナルプロセッサ（ＤＳＰ）、マイクロプロセッサ、コントローラ、チップ、マイクロチップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）またはその他の何らかの集積回路（ＩＣ）、またはその他の何らかの適切な多目的もしくは特定プロセッサまたはコントローラを有してよい。
【００１４】
装置１００は、外部メモリユニット２とメモリコントローラ３を含んでよい。メモリコントローラ３は、たとえば１個以上のデータバス８を介してプロセッサ１、外部メモリユニット２および出力装置１０２との間のデータ伝送を制御できる。装置１００は、たとえば１個以上のデータバス９を介して出力装置１０２に表示されるデータ伝送を制御するためのディスプレイコントローラ５を含んでよい。
【００１５】
装置１００は、記憶ユニット（ストレージユニット）４を備えることができる。記憶ユニット４は、映像データまたは画像データを圧縮して記憶でき、外部メモリユニット２は、映像データまたは画像データを圧縮せずに記憶され得る。しかしながら、圧縮されたデータまたは圧縮されないデータは、いずれのメモリユニットでも記憶されることができ、またデータを１個以上のメモリに記憶するための別の配置構成が使用されてもよい。各圧縮されないデータ要素は、画像または映像フレーム内の１ピクセルに一意的に関連付けられた値を持つことができ、各圧縮されたデータ要素は、１フレーム内のピクセルの値、またはビデオストリームもしくは動画における連続フレームの間のピクセルの値の変動または変化を表すことができる。別途指摘のない限り、本明細書中で使用されるデータ要素は一般に、たとえば単一の画像フレームにおける１ピクセル値またはピクセル成分値（たとえばＹＵＶ値またはＲＧＢ値）に関係する圧縮されないデータ要素を指し、たとえば連続画像フレームにおけるピクセルの値の間の変化に関係する圧縮されたデータ要素を指すのではない。ピクセルアレイに対する圧縮されないデータは、対応する１個の多次元データアレイ（たとえば図２に示す）または複数個の多次元データアレイ（たとえば図３に示す）において表されてよく、圧縮されたデータは、データストリームまたは一次元（１Ｄ）データアレイ（図示せず）として表されてよい。
【００１６】
内部メモリユニット１４は、直接アクセス可能か、またはプロセッサ１の内部の（物理的に取付けた、もしくは内部に格納された）メモリユニットであることができる。内部メモリユニット１４は、短期的メモリユニットであってよく、外部メモリユニット２は、長期的または短期的メモリユニットであってよく、記憶ユニット４は、長期的メモリユニットであってよい。しかしながらこれらのいずれのメモリも長期的メモリユニットまたは短期的メモリユニットであることができる。記憶ユニット４は、１個以上の外部駆動装置、たとえばディスクドライブもしくはテープドライブ、または外部装置、たとえばビデオレコーダ、オーディオレコーダおよび／または画像レコーダ内のメモリを含んでよい。内部メモリユニット１４、外部メモリユニット２および記憶ユニット４は、たとえばランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、フラッシュメモリ、キャッシュメモリ、揮発性メモリ、非揮発性メモリまたはその他の適切なメモリユニットもしくは記憶ユニットを含むことができる。内部メモリユニット１４、外部メモリユニット２および記憶ユニット４は、各別のメモリユニット（たとえば「オフチップ」）または一体
化されたメモリユニット（たとえば「オンチップ」）として実装できる。多層メモリまたはメモリ階層が存在する実施態様において、記憶ユニット４と外部メモリユニット２は、オフチップであってよく、内部メモリユニット１４は、オンチップであってよい。たとえば内部メモリユニット１４は、密結合メモリ（ＴＣＭ）、バッファまたはキャッシュ、たとえばＬ１キャッシュもしくはＬ２キャッシュを含んでよい。Ｌ１キャッシュは、Ｌ２キャッシュよりも比較的多くプロセッサ１に一体化され、プロセッサのクロックレートで動作できるのに対し、Ｌ２キャッシュは、Ｌ１キャッシュよりも比較的少なくプロセッサ１に一体化され、プロセッサのクロックレートとは異なる速度で動作できる。一実施態様において、プロセッサ１は、メモリユニット、たとえば外部メモリユニット２、内部メモリユニット１４および／または記憶ユニット４との間でデータの読取り、書込み、および／または伝送を行うためにダイレクトメモリアクセス（ＤＭＡ）ユニットを使用してよい。その他の、または追加のメモリアーキテクチャーも使用できる。
【００１７】
プロセッサ１は、ロードユニット１２、マップユニット６および実行ユニット１１を含んでよい。プロセッサ１は、外部メモリユニット２、内部メモリユニット１４および／または記憶ユニット４からのデータを要求、検索および処理でき、一般にデータで実行された操作のパイプラインフローを制御できる。
【００１８】
各ロード操作または計算サイクルにおいて、ロードユニット１２は、データ構造（たとえば図２の多次元データアレイ２００）の単一の行からの順次データ要素のセットまたは「バースト」を検索し、または取出し、このデータをロードして内部メモリまたはレジスタに記憶され得る。ロードユニット１２が１回のサイクルで２行以上の単一のアドレスポートを有するデータ構造にアクセスしようとすると、ロードユニット１２は、「データ競合」を経験することで、現在のサイクルでは１行しか検索できず、残りの各行へのアクセスは、別のサイクルまで遅れることになろう。
【００１９】
代替的な実施態様において、単一の行からデータ要素を検索する代わりに、ロードユニット１２は、各ロード操作において外部メモリユニット２内のデータ構造の単一の列から（または斜めに横断するか、他の所定のパターンで）順次データ要素を検索してよい。
【００２０】
プロセッサ１は、ロードされたデータを内部メモリ１４、たとえばバッファ、密結合メモリまたはキャッシュに書き込んでよい。プロセッサ１は、多次元サブアレイの複数行に及ぶ互いに相関するデータ要素の完全なセットが内部メモリ１４に記憶されて初めてデータ要素で命令を実行できる。
【００２１】
互いに相関するデータ要素の完全なセットがロードされて内部メモリ１４に記憶されたら、プロセッサ１は、データセットに対する命令を呼出して解読し、それから実行ユニット１１がこれらの命令を実行できる。命令は、プログラムメモリ（たとえば外部メモリユニット２および／または記憶ユニット４）に記憶されて、たとえばコンピュータプログラムの仕様に従い相関映像データまたは画像データの完全なセットに順次適用されてよい。プロセッサ１は、たとえば各命令に対して、以下に例示する順次パイプラインステージを実行できる。
【００２２】
多次元映像データまたは画像データに対する各命令を実行するために、プロセッサ１は、多次元の或る次元の各データ要素を、多次元のうちの他の次元の互いに相関するデータ要素と一緒に処理できる。互いに相関するデータセットが多次元によって定義されるとき、多次元のすべての座標は、何らかの適切な映像処理メカニズムに従い、グループとして一緒に処理されて完全または精確なデータを生成する。直交座標空間（ｘｙｚ）における点配置が（ｘ）、（ｙ）および（ｚ）すべての値で定義されて、（ｘ）のみの値で定義されるのではないように、１個の多次元映像データまたは画像データは、すべての相関多次
元データ要素によって定義され得る。
【００２３】
映像データまたは画像データは、多次元データ構造に記憶され得る。多次元データ構造は、互いに相関するデータ要素の特異的なセットまたはこれに関連するピクセルと、それぞれ一意的に対応する複数の多次元サブアレイを含んでよい。各サブアレイ内の互いに相関するデータ要素は、多次元データアレイの複数の行または列に及んでよい。
【００２４】
図２は、本発明の実施態様の理解に有用な映像データおよび画像データを記憶するための２次元（２Ｄ）データアレイ２００を示す。２次元（２Ｄ）データアレイ２００は、たとえば複数のブロックまたはサブアレイ２０１−２６４を含んでよく、それぞれ互いに相関するデータ要素の特異的なセットを含んでいる。たとえばサブアレイ２０１におけるすべての互いに相関するデータ要素２６５がメモリから検索されて、一緒に処理され得る。図２に示す例において、データアレイ２００は、（２５６個の）サブアレイ２０１−２６４を有する（６４ｘ６４個の）データアレイ（６４ｘ６４ピクセルグリッドに対応）であり、各サブアレイは、（１６個の）互いに相関するデータ要素を有する（４ｘ４）サブアレイである。
【００２５】
サブアレイ２０１内の（１６個の）互いに相関するデータ要素２６５を検索するために、プロセッサは、複数の操作サイクルを実行することで、複数行サブアレイ２０１のそれぞれの行におけるデータ要素２６５を各別にロードできる。たとえばプロセッサは、図２で（４）行の（４ｘ４）サブアレイ２０１−２６４のそれぞれから、それぞれ互いに異なるロードサイクルで一度に１行ずつデータ要素２６５を検索できる。したがって、（４）行の（４ｘ４）サブアレイ２０１における（１６個の）互いに相関するデータ要素２６５のすべてを検索するには、プロセッサは、（４）各別の計算サイクルで（４個の）各別のバーストにおいてデータメモリにアクセスできる。
【００２６】
サブアレイ２０１の各行において最初の４個の（４）順次データ要素２６５のみが互いに相関しているので、各バーストにおけるデータ要素の数を増やすことで、（４）よりも大きく、たとえば（８）または（１６）にすると、そのようなプロセッサは、データ要素２６６をさらに（たとえばサブアレイ２０２内の）各行に沿って検索するであろうが、これらのデータ要素２６６は、最初の（４個の）データ要素２６５とは相関していない。したがって従来のプロセッサを使用すると、バーストサイズは、（１６個の）互いに相関するデータ要素２６５を検索するために必要とされる計算サイクルの数に影響せず、その数は、この例では、各バーストで検索されるデータ要素の数に関わりなく同じ（たとえば４サイクル）である。
【００２７】
本発明の実施態様は、各（たとえば４ｘ４）サブアレイ２０１−２０９のすべての互いに相関するデータ要素が１回の計算サイクルで検索され得るようにする内部および／または外部メモリデータ構造を対象としている。データを検索するとは、データをロードすること、またはデータを記憶することのいずれも指すことができる。本発明の実施態様は、図２のデータアレイ２００からのデータ要素を、図３のデータ構造３００に変換することを含んでよい。図２のデータアレイ２００は、単一のメモリポートを有してよく、図３のデータ構造３００は、複数のデータポートを有してよいのに対し、１個のポートがデータ構造３００内の複数のデータアレイのそれぞれに個別にアクセスする。図２のデータアレイ２００は、図１の外部メモリユニット２内のメモリサブユニット１６（単一のアドレスポートを有する）に記憶されてよく、図３のデータアレイ３００は、図１の内部メモリユニット１４内のメモリユニット１２０の複数のメモリバンクまたはメモリサブユニット１１８（各々それぞれ互いに異なるアドレスポートを有する）に記憶されてよい。ただし、図２のデータアレイ２００または図３のデータ構造３００は、内部メモリユニット１４、外部メモリユニット２および／または記憶ユニット４のいずれにも記憶され得る。
【００２８】
図３は、本発明の幾つかの実施態様に従い、映像データおよび画像データを記憶するためのデータ構造３００を概略的に図解する。データ構造３００は、個別にアクセス可能および／またはアドレス指定可能な複数のデータアレイ３０１−３０８を含んでよい。多次元サブアレイの互いに相関するデータ要素（たとえば図２のサブアレイ２０１における互いに相関するデータ要素２６５）は、データ競合を排除するために複数の個別アドレス指定可能データアレイ３０１−３０８の間で展開または分割されてよく、そうすることによってすべてのデータ要素が同時に、すなわち１回の計算サイクルでアクセスされ得るようになる。
【００２９】
プロセッサの単一のロードユニット１２は、１回の計算サイクルで個別にアドレス指定可能な各データ構造の単一の行からしかデータ要素をロードできないため、本発明の実施態様は、複数行サブアレイの行を個別にアドレス指定可能な複数の互いに異なるデータアレイ３０１−３０８に分けることができる。
【００３０】
同じサブアレイからの要素が個別アドレス指定可能データアレイ３０１−３０８のいずれか１つの互いに異なる２行には存在しないことを保証するために、データ構造３００は、要素をスタガー配列させることができる。一実施態様において、（ｎ個の）積み重ねた行のそれぞれが個別にアドレス指定可能な１個以上の互いに異なるデータアレイ３０１−３０８に別々に記憶され、そうして個別にアドレス指定可能な同じデータアレイ３０１−３０８の２行が同じサブアレイからのデータを記憶しないように、（ｎｘｍ個の）サブアレイの（ｎ個の）積み重ねた行のそれぞれが垂直方向にスタガー配列され得る。したがって、個別アドレス指定可能データアレイのそれぞれ３０１−３０８は、せいぜい１行の各サブアレイからの互いに相関するデータ要素のセットを有する。プロセッサは、個別アドレス指定可能データアレイのそれぞれ３０１−３０８の単一の行に別々にアクセスでき、互いに相関するデータ要素は、個別アドレス指定可能データアレイのそれぞれ３０１−３０８のせいぜい単一の行に記憶されているので、プロセッサは、１回の計算サイクルで複数行データアレイのすべての行に対応するすべての互いに相関するデータ要素を同時に検索できる。
【００３１】
図２の単一のデータアレイ２００からのデータ要素を、図３の複数の個別アドレス指定可能データアレイ３０１−３０８に変換するために、本発明の実施態様に従い、データ要素は、複数の個別アドレス指定可能データアレイ３０１−３０８の間で分割され、かつその内部でスタガー配列され得る。一実施態様において、マップユニット６がデータ要素を変換できる。他の実施態様において、図３の個別アドレス指定可能データアレイ３０１−３０８は、アドレスを有するアドレスポートのシーケンスを有してよく、アドレスポートのアドレス自体も整えられる。このような実施態様において、アドレスポートのアドレスは、データ要素が伝送される順序に従って整えられる。たとえば個別にアドレス指定可能な第１データアレイ３０１は、第１アドレスを持ち、個別にアドレス指定可能な第２データアレイ３０２は、第２アドレスを持つというように続く。したがってプロセッサ１は、図２のデータアレイ２００からのデータ要素を、図３の個別アドレス指定可能データアレイ３０１−３０８の順次アドレスに従って自動的に変換することができ、各別のマップユニットは、必要とはされない（ただし、マップユニットを使用してもよい）。
【００３２】
１個のアドレスを有する単一のデータアレイ（たとえばデータアレイ２００または図２）からのデータ要素を、個別アドレス指定可能データアレイ３０１−３０８の間で分割するために、一実施態様においてプロセッサは、データアレイからのデータ要素を、データアレイの各行に順次列挙されている順に、行シーケンスの順序で一度に１行ずつ、個別にアドレス指定可能なすべてのデータアレイ３０１−３０８の最初（最上部）の利用可能な行が満杯になるまで伝送でき、さらに次の利用可能な行へと続く。すなわち多次元データ
アレイまたはグリッド内のデータ要素の各（ｎ番目の）行は、個別にアドレス指定可能なそれぞれのデータアレイ３０１−３０８における複数の（ｎ番目および／またはｎ＋１番目の）行、つまり隣り合って展開または整列される複数行に分割され得る。一般にプロセッサは、データ要素ａｉｊ（１≦ｉ≦Ｍ、１≦ｊ≦Ｎ）を、（ＮｘＭ個の）データアレイ２００において、要素が各行に順次列挙されている順序（たとえば左から右）で行の順番（たとえば上から下）で、ａ１１，…，ａ１Ｎ，ａ２１，…，ａ２Ｎ，ａ３１，…，ａ３Ｎ，…，ａＭ１，…，ａＭＮのように整えることができる。プロセッサデータ要素のシーケンスを、複数（ＰｘＱ）の個別アドレス指定可能データアレイ３０１−３０８で順番に記憶でき、たとえばすべてのデータアレイ３０１−３０８の利用可能な第ｋ行：１≦ｋ≦Ｐを、データアレイ３０１−３０８の順序で満杯にし、データアレイ３０１−３０８の次の利用可能な第ｋ+１行：１≦ｋ＋１≦Ｐに進む。
【００３３】
最上部サブアレイ２０１−２１６の（ｎ）行に及ぶデータアレイの（ｎ）行からのデータ要素が変換された後、次のサブアレイに及ぶデータアレイの次の（ｎ）行が変換される、というように続く。このパターンは、図２のすべてのサブアレイ２０１−２６４が、図３の個別アドレス指定可能データアレイ３０１−３０８における対応する位置に変換されるまで続くことができる。
【００３４】
しかしながら、単に単一のデータアレイ２００からのデータ要素のシーケンスを、複数の個別アドレス指定可能データアレイ３０１−３０８に変化するだけでは、互いに相関する要素間のデータ競合を排除できない。図２に示すサブアレイの複数の行において積み重ねられた（たとえば垂直方向に整列された）互いに相関する要素は、図３に示す個別アドレス指定可能データアレイ３０１−３０８の複数の行でなおも積み重ねられることができる（たとえば直接互いの行の上か、間に他の行を入れて積み重ねられる）。互いに相関する要素がデータアレイ３０１−３０８に積み重ねられると、プロセッサは、１回の計算サイクルで同じデータアレイの複数の行にアクセスできないので、プロセッサは、データ競合を経験し、２回以上の計算サイクルですべての互いに相関するデータ要素の完全なセットを検索せざるを得なくなるであろう。
【００３５】
データ競合を排除することで、１回のサイクルですべての互いに相関するデータ要素を検索するために、本発明の実施態様は、図２の同じサブアレイ２０１−２６４からの互いに相関するデータ要素が、いずれかの単一のデータアレイ３０１−３０８の２行以上に記憶されないように、プロセッサがデータ要素を変換することを保証できる。たとえば各データアレイ３０１−３０８は、各サブアレイ２０１−２６４からの互いに相関するデータ要素、たとえばサブアレイ２０３からの（１６個の）互いに相関するデータ要素８−１１、７２−７５、１３６−１３９および２００−２０３を記憶するせいぜい単一の行を有することができる。このことを確実にするために、プロセッサは、互いに相関するデータ要素をスタガー配列させてよい。一実施態様において、プロセッサは、データアレイ３０１−３０８に、たとえばデータアレイ２００のそれぞれの行からのデータ要素のシーケンスの間に「プレースホルダー」または「ヌル」データ要素のシーケンスを挿入できる。ヌルデータ要素を挿入することによって、元のデータアレイ２００で垂直方向に整列された互いに相関するデータ要素は、互いに異なるデータアレイ３０１−３０８に変換されるときにスタガー配列され、それによってデータ競合を排除できる。
【００３６】
一実施態様において、互いに相関するデータ要素をスタガー配列させることで、個別アドレス指定可能データアレイのそれぞれ３０１−３０８がいずれかの単一の（ｎｘｍ個の）サブアレイ２０１−２６４からの互いに相関するデータ要素を記憶するせいぜい１行（または１行の部分）を有するように、（ｎｘｍ個の）サブアレイ２０１に及ぶ（ＮｘＭ個の）データアレイ２００からのデータ要素をデータ構造３００に変換できる。他の実施態様において、個別アドレス指定可能データアレイのそれぞれ３０１−３０８は、各サブア
レイ２０１−２６４の各列からのせいぜい１要素を記憶できる。たとえば個別アドレス指定可能データアレイのそれぞれ３０１−３０８は、第１サブアレイ２０１の第１列からのせいぜい１要素（０、６４、１２８または１９２）に記憶でき、第１サブアレイ２０１の第２列からのせいぜい１要素（１、６５、１２９または１９３）に記憶できる、というようにすべてのサブアレイ２０１−２６４に続く。したがって、個別アドレス指定可能データアレイのそれぞれ３０１−３０８は、（６４ｘ６４個）２００のうち各（４ｘ６４個）部分の（６４）列のそれぞれからせいぜい１要素を記憶できる。たとえば第１（４ｘ６４個の）データアレイ部分は、サブアレイ２０１−２１６に対応し、次の部分は、サブアレイ２１７−２３２に対応し、そしてサブアレイ２３３−２４８、サブアレイ２４９−２６４へと続く。
【００３７】
図３の例において、プロセッサは、（６４ｘ６４個の）データアレイ（画像の（６４ｘ６４個の）ピクセル領域に対応）を、（８個の）それぞれ４ピクセル列の個別アドレス指定可能データアレイ３０１−３０８に変換できる。プロセッサは、データアレイ２００の第１行（１ｘ６４）からの第１データ要素（３２個の）を、全（８個の）個別アドレス指定可能データアレイ３０１−３０８のすべての第１行が満杯になるまで変換でき、次にデータアレイ２００の第１行に残りのデータ要素があれば（この場合は３２個の要素が残っている）、プロセッサは、全データアレイ３０１−３０８の次の（第２）行が満杯になるまで進む、というように続く。プロセッサは、データアレイの各（１ｘ６４）行の（６４個の）データ要素の間にヌルデータ要素（図３で「Ｘ」と表示）を記憶できる。プロセッサは、データアレイ３０１−３０８におけるデータ競合を排除するために互いに相関するデータ要素をスタガー配列させる整数個のヌルデータ要素を記憶でき、その数は、データ構造３００の次元によって異なってよい。図３の例ではプロセッサは、（８個の）ヌルデータ要素を記憶できるが、他の数が使用されてもよい。これらのヌルデータ要素は、（６４ｘ６４個の）データアレイにおける（４ｘ４）サブアレイの互いに相関するデータ要素をスタガー配列させ、その結果として各アドレス指定可能なデータアレイ３０１−３０８は、１行に満たない（４ｘ４）サブアレイからの互いに相関するデータ要素と、サブアレイの（４）行に及ぶデータアレイ部分（４ｘ６４個）の各列（１）−（６４）からのせいぜい１個のデータ要素（１、２、…、６４）しか持たない。
【００３８】
互いに相関するデータ要素のセットが１個のアドレスポートを有する単一のデータ構造２００の複数行に及んでいる図２とは対照的に、図３では、同じ互いに相関するデータ要素のセットは、個別アドレス指定可能データアレイのそれぞれ３０１−３０８のせいぜい１行にしか及ばない。
【００３９】
図２を参照して説明した例において、２Ｄデータアレイ２００は、１個のアドレスポートを有するので、プロセッサは、一度に１行からしかデータを検索できない。したがって、プロセッサは、（４回の）各別のロードサイクルで２Ｄ（４ｘ４）サブアレイの互いに相関するデータを検索できる。たとえばバースト１は、行１の要素（６）−（９）を含んでよく、バースト２は、行２の要素（７０）−（７３）を含んでよく、バースト３は、行３の要素（１３４）−（１３７）を含んでよく、バースト４は、行４の要素（１９８）−（２０１）を含んでよい。
【００４０】
図３を参照して説明した例において、図２の（４ｘ４）サブアレイ（４ｘ４ピクセルアレイに対応）の積み重ねた（４）行と連続した（４）列からの（１６個の）互いに相関するデータ要素の各セットは、（８個の）個別アドレス指定可能データアレイ３０１−３０８に配置されており、各データアレイ３０１−３０８のせいぜい単一の行が互いに相関するデータ要素を有している。各データアレイ３０１−３０８は、個別にアドレス指定可能なので、１回の計算サイクルで（４ｘ４）サブアレイ（たとえば図２で強調されたサブアレイ２８０）の全（４）行を検索するために、プロセッサは、各データアレイ３０１−３
０８の単一の互いに相関する行からのデータバーストに同時にアクセスできる。たとえばプロセッサは、両データアレイ３０２と３０３の行１からの（４ｘ４）サブアレイの第１行に対応するデータ要素（６）−（９）、両データアレイ３０４と３０５の行３からの（４ｘ４）サブアレイの第２行に対応するデータ要素（６）−（９）、両データアレイ３０６と３０７の行５からの（４ｘ４）サブアレイの第３行に対応するデータ要素（６）−（９）、データアレイ３０８の行７からの（４ｘ４）サブアレイの第４行に対応するデータ要素（６）−（７）、およびデータアレイ３０１の行８からの（４ｘ４）サブアレイの第４行に対応するデータ要素（８）−（９）を同時に検索できる。
【００４１】
図２のデータ構造２００から１個のアドレスポート経由で（４ｘ４）サブアレイのデータ要素を検索するために（４回の）各別のロードサイクルが使用されるのとは対照的に、図３のデータ構造３００から複数のアドレスポート経由で同じ要素を検索するために単一（１回）の計算サイクルが使用される。したがって、本発明の実施態様は、たとえば命令の処理に使用される映像データおよび画像データの互いに相関するセットの検索において効率の４倍増を提供できる。
【００４２】
或る実施態様において、互いに相関するデータ要素が個別アドレス指定可能データアレイ３０１−３０８の行に一致する行に記憶される場合（たとえばデータ要素（４）−（７））、プロセッサは、データアレイ３０１−３０８のサブセット（４）から互いに相関するデータ要素を検索できる。たとえばプロセッサは、データアレイ３０２、３０４、３０６および３０８から互いに相関するデータ要素（４）−（７）を検索でき、残りのデータアレイ３０１、３０３、３０５および３０７にアクセスする必要はない。これによってデータメモリの効率が改善され、その結果として性能が向上し、消費電力が減少する。さらに、２個の特異的な互いに相関するデータセットがいずれも個別アドレス指定可能データアレイ３０１−３０８のそれぞれ互いに異なるサブセットに一致する場合、プロセッサは、１回の計算サイクルで互いに相関するデータ要素の両セットを同時に検索できる。たとえばプロセッサは、（４）行の互いに相関するデータ要素（８）−（１１）を検索するためにデータアレイ３０１、３０３、３０５および３０７にアクセスし、（４）行の互いに相関するデータ要素（４）−（７）を検索するためにデータアレイ３０２、３０４、３０６および３０８にアクセスでき、これによって１回の計算サイクルで２個の（４ｘ４）ピクセルサブアレイから要素を検索する。この例では従来のプロセッサは、（４ｘ４）サブアレイをロードするために（４）サイクル使用し、それゆえ２個のそのようなサブアレイをロードするために（８）サイクル使用したので、１（１回の）サイクルで２個のサブアレイから互いに相関するデータを検索できる本発明の実施態様は、効率の８倍増を提供できる。
【００４３】
個別アドレス指定可能データアレイのそれぞれ３０１−３０８における互いに相関する行は、或るパターンに従って編成されてよい。図２のデータアレイ２００で垂直方向に整列されて（上下に）隣り合った各対のデータ要素は、１行のデータ構造に含まれる要素の間に挿入されたヌルデータ要素の数を加えた数のデータ要素によって分離された一連のデータ要素に変換される。図３に示す例において、（６４ｘ６４個の）データアレイから変換されて、各行は、（６４個の）要素を持ち、（８個の）ヌル要素が使用されている。したがって、図２のデータアレイ２００で垂直方向に整列されて隣り合うデータ要素の各対は、データアレイ３０１−３０８の所定の位置に変換される。これらのデータ要素は、要素が記憶された順序で数えて（たとえば次の行のセットに進む前に全データアレイ３０１−３０８のすべての整列された行を横断して）（６４個）＋（８個）＝（７２個の）個別のデータ要素である。１対のあらかじめ整列されて隣り合うデータ要素の間の「距離」もしくはデータ要素の数は、垂直方向に隣り合う要素の「ストライド」または分離と呼ばれる。図３の例では一定のストライド（７２）が使用されている。しかしながらストライドでは一定でも可変でもよく、またたとえば或る領域に存在するデータ要素またはピクセル
の数および／または使用されたヌルデータ要素の数に依存した他の任意の数であってもよい。互いに相関するデータの（たとえば変換される前の１方形サブアレイに及ぶ）セットを検索するためにプロセッサは、たとえば（７２個の）データ要素のストライドによって分離された個別アドレス指定可能データアレイ３０１−３０８の行に自動的にアクセスできる。
【００４４】
本発明の実施態様は、同じ（４ｘ４）サブアレイに対応する２Ｄデータアレイ内の互いに相関するデータに関して説明されているが、たとえば（４ｘ８）、（８ｘ４）、（８ｘ８）、（４ｘ１６）、（１６ｘ１６）など任意の方形サブアレイが使用され得ることは理解されよう。さらに、より高次元の、たとえば３次元（３Ｄ）データアレイが使用されてよく、これらは、３Ｄマトリックスまたはテンソルデータ構造によって表され得ることが理解されよう。一例において、ＬＵＭＡデータ要素は、２Ｄデータアレイで表され、クロマデータ要素は、２Ｄまたは３Ｄデータアレイで表され得る。
【００４５】
（６４個の）互いに相関するデータ要素の（４ｘ４ｘ４）サブアレイに分割された３Ｄデータアレイに対して、プロセッサは、各３Ｄ（６４ｘ６４ｘ６４個の）データアレイを（４個の）順次２Ｄ（６４ｘ６４個の）データアレイに変換し、次に、たとえば上で図２と図３を参照して説明したように、各２Ｄ（６４ｘ６４個の）データアレイを複数の（８個の）個別アドレス指定可能データアレイに変換できる。したがって各（４ｘ４ｘ４）サブアレイからの互いに相関するデータ要素は、（３２個の）個別アドレス指定可能データアレイに記憶され得る。（３２個の）データアレイからの（６４個の）互いに相関するデータ要素を検索するために、プロセッサは、各データアレイの単一の行に同時にアクセスでき、各データアレイ行に対してそれぞれ互いに異なるアドレスを用いて、すべての互いに相関するデータ要素を検索する。
【００４６】
対照的に従来の非効率的なプロセッサは、各ロードサイクルで（４ｘ４ｘ４）サブアレイの単一の（４ｘ４）サブアレイの単一の行からデータ要素を検索できる（本発明の実施態様におけるように個別にアドレス指定可能な３２個のデータアレイから同時に検索できない）。そのようなプロセッサは、（１６の）互いに異なる行にアクセスして（６４個の）要素を検索するために、（１６の）各別の連続したロードサイクルを用いるであろう。これは、本発明の実施態様に従い同じデータを検索するために用いられる１回のサイクルと比較して計算サイクルの著しい増加である。
【００４７】
他の互いに異なる次元、行、列、アレイまたはサブアレイ、互いに相関する要素の数、ヌルデータ要素の数、サブアレイにおける要素の数、個別アドレス指定可能データアレイ３０１−３０８または、メモリバンクの数、バーストサイズ、ロードサイクルまたはクロックサイクルを使用できる。
【００４８】
或る実施態様において、プロセッサは、内部メモリと外部メモリ（たとえば図１に示す内部メモリユニット１４と外部メモリユニット２）の両方の個別アドレス指定可能データアレイ３０１−３０８に、データ要素を記憶できる。他の実施態様では、プロセッサは、最初に外部メモリ内に存在する図２のデータアレイ２００にデータ要素を記憶でき、またプロセッサが１回のロードサイクルで互いに相関するデータセットを直接検索できるように、プロセッサは、内部メモリ内にある図３の個別アドレス指定可能データアレイ３０１−３０８にデータ要素を再配列し、マッピングし、変換し、順序付け、展開し、またはその他の方法で再配置してよい。
【００４９】
図４は、本発明の実施態様に従う方法のフローチャートを参照する。
ステップＳ４１０において、プロセッサ（たとえば図１のプロセッサ１）は、第１データ構造（たとえば図２の単一のデータアレイ２００）からのデータ要素を、第２データ構
造（たとえば図３の複数の個別アドレス指定可能データアレイ３０１−３０８を含むデータ構造３００）に変換できる。第１データ構造は、１個のアドレスポートを有してよく、第２データ構造は、複数のデータアレイを含み、それぞれが複数のデータアレイの各々に個別にアクセスするための各別のアドレスポートを有してよい。
【００５０】
プロセッサは、たとえばデータバーストのシーケンスで第２データ構造に変換されるべき第１データ構造から、一連のデータ要素を生成してよい。一連のデータ要素は、たとえば第１データ構造の各行に順次列挙されている順に行シーケンスの順序で一度に１行ずつ整えられてよい。プロセッサは、データ構造の異なる第１行からのデータ要素の間にヌルデータ要素のシーケンスを挿入できる。プロセッサは、たとえば第２データ構造のすべてのデータアレイの（最上部）利用可能な第１行を、データアレイのシーケンスの順序で満杯にすることによって一連のデータ要素を変換でき、それから次の利用可能な行を満杯にする、というように続く。このような変換は、第１データ構造の単一の行を、第２データ構造のそれぞれのデータアレイで整列された複数の行に分割できる。第１データ構造の連続した行からの要素の間にヌルデータ要素を挿入することで、第１データ構造において元は、垂直方向に（他のデータ要素の上か、または重なって）整列されていたデータ要素は、垂直方向に重ならずに斜めになるか、または第２データ構造の互いに異なるデータアレイにスタガー配列され得る。
【００５１】
互いに相関するデータ要素のセットは、垂直方向に積み重ねた複数行（たとえば（４ｘ４）サブアレイを積み重ねた（４）行）に及ぶ第１データ構造のサブセットを含んでよい。プロセッサは、第１データ構造で垂直方向に積み重ねられていた各互いに相関する行を変換することで、第２データ構造のそれぞれ互いに異なるデータアレイ垂直方向にスタガー配列または展開させることができる。一実施態様において、第１データ構造の複数の積み重ねられた行に及ぶ各互いに相関するデータセットは、第２データ構造の各データアレイのせいぜい単一の行に及んでよい。
【００５２】
ステップＳ４２０において、データ要素が第２データ構造に変換されたら、プロセッサは、そこから互いに相関するデータ要素のセットを検索できる。第２データ構造の各データアレイは、互いに異なるアドレスポート経由で個別にアクセス可能なので、プロセッサは、１回の計算サイクルで各データアレイの単一の互いに相関する行からのデータバーストに同時にアクセスすることで、互いに相関するデータセットの全（１６個の）要素を検索できる。プロセッサは、データ要素のストライドによって分離されたデータアレイの行に、自動的にアクセスできる。
【００５３】
第１データ構造とは対照的に、第１データ構造は（一度に１行のデータにアクセスするための）１個のアドレスポートのみ有し、互いに相関するデータセットは、積み重ねられた（４）行に及ぶので、プロセッサは、（４回の）各別の計算サイクルで互いに相関するデータセットを検索できる。したがって、第２データ構造から互いに相関するデータセットを検索するのは、第１データ構造から同じ互いに相関するデータセットを検索するよりも４倍速いであろう。
【００５４】
ステップＳ４３０で、プロセッサは、たとえば第１データ構造の単一のサブアレイから変換されたすべての互いに相関するデータ要素が、第２データ構造から検索されたことを判定できる。したがって互いに相関するデータのデータセットは、完全であり、適切に処理され得る。
【００５５】
ステップＳ４４０で、プロセッサは、処理で、たとえばステップＳ４３０の完全な互いに相関するデータセットで命令を実行できる。
ステップＳ４５０で、ディスプレイ（たとえば図１の出力装置１０２）は、ステップＳ
４４０で処理された互いに相関するデータを表示できる。他のステップまたは一連の操作が使用されてよい。
【００５６】
当業者によって認識されるべきこととして、本発明の実施態様は、映像データまたは画像データに関連して記述されているが、同じまたは類似の、しかし互いに異なるデータタイプに適したデジタル構造を有する任意のデータが使用されてよい。類似のデジタル構造は、互いに相関または相互依存する値のセット、同じデータを相互的もしくは結合的に記述するセット、または多次元データの個々の次元成分のセットを有するデータを含んでよい。
【００５７】
当業者によって認識されるべきこととして、本発明の実施態様は、１個のアドレスを有するデータアレイからのデータ要素を、複数のアドレスを有する複数のデータアレイに配置、整列または変換するシステム、データ構造および方法を記述するが、本発明の他の実施態様において、たとえばデータ要素それ自体を実際に動かし、または再位置決めすることなく、元のデータ構造に複数のアドレスポートが同等に割り当てられてよい。
【００５８】
アドレスポートの数が増えれば、たとえばポートを管理するための計算能力を必要とするなどプロセッサオーバーヘッドが増えることは、理解されよう。したがってアドレスポートは、好ましくはポートの追加がこれに伴うオーバーヘッドの増加という欠点を上回る場合のみ追加されてよい。一例において、或るデータ構造は、図２に示すようにデータアレイ当り１個のポートを使用する。本発明の実施態様は、アドレスポートの数を（たとえば８に）増やすが、それはこのように増やすことが顕著な計算上の利点を有し、たとえば多次元データの検索において図２のデータ構造と比較して４ないし８倍増加するからである。一例において、或るデータ構造は、アドレスポートの数をさらに増やすことによって、同じ計算上の利点を提供できる。たとえば図２の標準データアレイは、個々のデータ要素がそれ自身のアドレスポートを有する場合に提供され得る。このような実施態様では、プロセッサは、１回の計算サイクルで各互いに相関するデータ要素に個々のアドレスで直接アクセスできる。しかしながらそのような実施態様は、本発明の実施態様に従って使用される（８個の）アドレスポートよりも多数のアドレスポート（たとえば６４ｘ６４サブアレイに対して４０９６アドレスポート）を使用する。したがって、本発明の実施態様は、同じ計算上の利点を達成するためにプロセッサオーバーヘッドを減少させることで、そのようなデータ構造に対して顕著な利点を提供する。
【００５９】
バーストは、単一の行に配置された順次エントリーとして記述されているが、代替としてバーストは、複数の行を横断する単一の列における順次エントリーであってよいことが理解されよう。そのような実施態様では、プロセッサは、垂直方向に隣り合う（４）列の互いに相関する（４ｘ４）サブアレイを、列が水平方向にスタガー配列された、それぞれ互いに異なるデータアレイに変換できる。一実施態様において、各データアレイは、せいぜい１列の同じサブアレイからの互いに相関するデータ要素を有している。したがって個別アドレス指定可能データアレイのそれぞれからの１列の互いに相関する要素に同時にアクセスすることによって、１回のサイクルで互いに相関するデータ要素の完全なセットが検索され得る。
【００６０】
図２のデータアレイ２００から変換されたデータ要素がそれぞれ画像中のピクセルに対応しているのとは異なり、本明細書中に記述されたヌルデータ要素は、典型的に画像情報を持たず、一般に図３のデータ構造３００を編成するためにのみ使用される。たとえばヌルデータ要素は、ゼロまたは他の所定の値もしくはマーカーのシーケンスであってよく、または代替としてヌルデータ座標は、空であってよい。したがってヌルデータ要素は、たとえば先行画像行の数、画像行の終わりまたは画像領域を示す画像情報を有してよい。
【００６１】
本発明の実施態様は、プロセッサまたはコントローラ（たとえば図１のプロセッサ１）によって実行されるときに本明細書中に開示された方法を実施する命令を符号化、包含または記憶する物品、たとえばコンピュータまたはプロセッサ可読媒体、コンピュータまたはプロセッサ記憶媒体、たとえばメモリ、ディスクドライブ、ＵＳＢフラッシュメモリを含むことができる。
【００６２】
以上に示された記述された特定の実施態様は、本発明に関連した多くの配分システムにとって有用であることが明らかであるが、本発明の別の修正も当業者に想到されよう。そのような修正は、すべて添付の特許請求の範囲によって定義される本発明の範囲と精神の内部にあるものと考量される。
【図１】
2011258207.tif 000003
【図２】
2011258207.tif 000004
【図３】
2011258207.tif 000005
【図４】
2011258207.tif 000006
【外国語明細書】
2011258207000001.pdf