(57)【要約】一連の値を使用して複数のメモリ・アドレスに巡回的にアクセスする方法は、複数の値の個数がｍ個とした複数の値を決定するステップを有し、各値はｎ個の所定個数ビットで表わすものとする。この方法は、さらに、重要度で順序付けしたアドレス指定可能な複数個のビットを有するプロセッサのレジスタ（２０）においてｍ×ｎ個の連続したビット識別し、したがって、それぞれｎ個の連続したビットを有する、ｍ個のユニット（２１，２２，２３，２４）よりなる一組のユニットセットを定義するステップを有する。この方法は、ユニットセットにおける異なる複数個の値を表わすビットを有する各ユニットを初期化するステップ、およびｎの整数倍に等しいビット数でレジスタ（２０）の識別したビットを巡回するステップを有する。この方法は、さらに、ユニットで表された値を取得するためユニットを読み出すステップを有する。
2009529171.tif 000002
【特許請求の範囲】
【請求項１】
一連の複数であるｍ個の値よりなる値シークエンスを使用し、各値はｎ個の所定ビット数で表されるものとして複数のメモリ・アドレスに巡回的にアクセスする方法において、
・  各ｍ個の値におけるｍビット表示の連鎖を含むビット・シーケンスでプロセッサのレジスタにおける複数のビットを初期化するステップと、および
・  ｎの整数倍に等しいビット数毎に、レジスタにおける複数個のビットを巡回し、
ｍ個の値のうち一つを取得するため、ｍビット表示の一つに対応するレジスタのｎ個の所定ビットを読み出し、そして、
取得した値に基づいてメモリ・アドレスを識別する
ことを繰り返すステップと、
を有する方法。
【請求項２】
請求項１に記載の方法において、さらに、
・  テーブル・ベース・アドレスを識別するステップと、
・  識別したメモリ・アドレスでメモリに対して読出しまたは書込みを行うステップと、
を有し、
・  前記メモリ・アドレスを識別するステップは、テーブル・ベース・アドレスに基づいて実行するものとした
方法。
【請求項３】
請求項２の方法において、さらに、
・  識別したメモリ・アドレスでポインタ値を読出すステップと、
・  前記ポインタ値に基づくアドレスでメモリに対して読出しまたは書込みを行うステップと、
を有する方法。
【請求項４】
請求項３に記載の方法において、レジスタの所定ｎ個のビットで表される値を取得する前記ステップ、メモリ・アドレスを識別前記ステップ、ポインタ値を読出す前記ステップ、およびメモリに対して読出しまたは書込みを行う前記ステップは、
レジスタの異なる所定ビットに対して複数回にわたって実行し、この結果、２つの連続的な複数ビットの巡回ステップにおける順次の２回実行相互間で異なる読出しポインタ値となるものとした、方法。
【請求項５】
請求項４に記載の方法において、レジスタの所定ｎビットで表される値を取得するステップは、ｍ個の値すべてに対して実行し、各値は対応するｎビットで表されるものとした、方法。
【請求項６】
請求項４に記載の方法において、対応するそれぞれの読出しポインタ値を、それぞれに対応するメモリバッファに関連付けし、前記方法は、複数の対応するメモリバッファに格納されたデータを処理するステップを有するものとした、方法。
【請求項７】
請求項６の方法において、前記データを処理するステップは、少なくとも２次元画像に対してブロックタイプ演算を実行することを含み、各メモリバッファに画像のラインをロードし、ロードしたラインは、集合的にブロック状の画像サブセットを有するものとし、前記ブロックタイプ演算は、メモリバッファから対応するピクセル値を読出すことにより画像のピクセルのブロック上で実行するものとした、方法。
【請求項８】
プロセッサに請求項１の方法を実行させるための命令を有するコンピュータ・プログラム製品。
【請求項９】
一連の複数であるｍ個の値よりなる値シーケンスを使用し、各値はｎ個の所定ビット数で表されるものとして複数のメモリ・アドレスに巡回的にアクセスするシステムにおいて、
・  各ｍ個の値におけるｍビット表示の連鎖を含むビット・シーケンスでプロセッサのレジスタにおける複数ビットを初期化する手段と、および
・  ｎの整数倍に等しいビット数毎に、レジスタにおける複数個のビットを巡回し、
ｍ個の値のうち一つを取得するため、ｍビット表示の一つに対応するレジスタのｎ個の所定ビットを読出し、また
取得した値に基づいてメモリ・アドレスを識別する
ことを繰り返す手段と
を備えたシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は複数のメモリ・アドレスに巡回式にアクセスする方法に関する。
本発明は、コンピュータ・プログラム製品に、そして、一連の値よりなる値シーケンスを巡回式に使用するシステムに関する。
【背景技術】
【０００２】
一般的にデジタル信号処理、およびとくに画像処理は、しばしばブロックタイプの演算を実行することを含む。ブロックタイプの演算は、ピクセルのブロック、例えば３×３ピクセルまたは５×５ピクセルのブロック、を使用して計算を実行するステップを有する。これらの計算は、高速メモリの各メモリバッファに、ブロックのサイズに対応する数の多数のラインをロードし、つぎにロードしたバッファに含まれるブロックに関連した計算を実行することによって効率的に行うことができる。例えば、３×３ブロックの場合、ピクセルの３個の連続するラインを、高速メモリにロードすることができる。その後、このように取得可能なブロックに対して計算を行うとともに、同時に後続する第４番目のラインを高速メモリにロードする。最初の３個の連続するラインのための計算が完了した後に、これらラインのうち第１番目のラインを廃棄する。第４番目のラインと組み合わせたピクセルにおける残りの２個の連続ラインは、再び、３×３ブロックのブロック演算を実行するための３ラインを形成する。高速メモリにピクセルのラインをアドレス指定することは、比較的計算上の負担が多くかかる。ピクセルの連続するラインに対応するメモリバッファの始点に対する４個のポインタを、保持し、また、最初の３個のラインに対応するブロックを処理した後、かつピクセルの第４番目のラインをメモリにロードした後に、第２〜４番目のラインに対応するブロックを処理し、かつ第５番目のラインを最初に第１番目のラインのピクセルを含んでいたメモリバッファにロードする。この処理を画像全体が処理されるまで繰り返す。バッファへのポインタを含むインデックス（指標）を割り付けたテーブルを維持し、インデックスはどのラインがどのバッファで処理すべきかを示し、またどのバッファに後続ラインをロードすべきかを示して、保持される。ブロックを処理しかつ後続ラインをロードした後に、インデックスはテーブルにおけるポインタの数、すなわちバッファの数を法として増分し、したがって、各ポインタは巡回して異なって用いられる。このように、ポインタの数が４である場合、４回のモジュロ演算が要求される。しかしながら、モジュロ計算は、計算上の負荷が多くかかる演算である。
【０００３】
特許文献１（米国特許第５，４６３，７４９号）において、簡略化した巡回バッファが記載される。バッファは、整数の数のメモリ域Ｍを有し、これらメモリ域に対して、連続したメモリ位置ＳＴＥＰが単一演算でアクセスするのに必要とされ、アクセスすべき最初のメモリ位置を画定する所定のＳＴＡＲＴ位置を有する。Ｍは、ＳＴＥＰの整数倍でなければならず、またｋが２ｋ ＞Ｍ−|ＳＴＥＰ|を満たす最小整数であるとして、ＳＴＡＲＴにおけるがｋの最下位ビットはゼロである。この結果は、従来の巡回バッファで使用される一般のモジュロアルゴリズムと同一であるが、完全なモジュロ関数を実施するコストが不要となる。順次のアドレスを生成する装置は、加算器と、マルチプレクサを経てアドレスレジスタに接続するｋビット比較器とを有し、これにより、ｋビット比較器の出力に基づいて、加算器のｋ最下位ビットまたはＭ−|ＳＴＥＰ|または０をアドレスレジスタのｋ最下位ビットに供給する。このことは、巡回バッファをアドレス指定する上で比較的複雑な手法である。
【特許文献１】米国特許第５，４６３，７４９号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、円形に複数のメモリ・アドレスに巡回アクセスする、より効率的な方法を得るにある。
【０００５】
この目的は、一連の複数であるｍ個の値よりなる値シーケンスを使用し、各値はｎ個の所定ビット数で表されるものとする方法を提供することによって実現し、この方法は、
・  各ｍ個の値におけるｍビット表示の連鎖を含むビット・シーケンスでプロセッサのレジスタにおける複数のビットを初期化するステップと、および、
・  ｎの整数倍に等しいビット数毎に、レジスタにおける複数個のビットを巡回し、
ｍ個の値のうち一つを取得するため、ｍビット表示の一つに対応するレジスタのｎ個の所定ビットを読出し、そして、
取得した値に基づいてメモリ・アドレスを識別する
ことを繰り返すステップと、
を有する。
【０００６】
方法は、レジスタにおけるｎ個の所定ビットの読出しを行うステップと、そして一回以上メモリ・アドレスを識別するステップと、を実行することができ、レジスタの複数ビットにおける順次の巡回相互間、毎回ｎ個の異なる所定ビットを読み込む。以下、用語「ユニット」は、ｍ個の値のうち一つを表すレジスタにおける一連のｎビットのビット・シーケンスを示すものとする。複数のユニットは巡回を伴って読み出すことができ、この巡回後に複数個のユニットを再び読み出すことができる。整数倍は、方法が複数の値をどのくらい迅速に進めるかを決定する。整数倍が１に等しい場合、値は一つずつ進む。整数倍が２に等しい、または２より大きい場合、いくつかの値がスキップされる。整数倍が負の場合、値を進む順番は、正の整数倍と比べると、反対になる。整数倍が０である場合、毎回同じ値がアクセスされる。
【発明を実施するための最良の形態】
【０００７】
本発明の実施形態は、さらに、
・  テーブル・ベース・アドレスを識別するステップと、
・  識別したメモリ・アドレスでメモリに対して読出しまたは書込みを行うステップと
を有し、
・  メモリ・アドレスを識別するステップは、また、テーブル・ベース・アドレスに基づいて実行するものとする。
【０００８】
この実施形態は、異なったメモリ・アドレスに格納される、多くの値を巡回する、とくに実用的な方法である。値がｎビットより多いビットで表されるときに、これは有利である。
【０００９】
本発明の実施形態は、さらに、
・  識別したメモリ・アドレスでポインタ値を読出すステップと、
・  ポインタ値に基づくアドレスでメモリに対して読出しまたは書込みを行うステップと、を
有するものとする。
【００１０】
このような方法で、ポインタを通して巡回することができる。また、ポインタに関連付けしたデータのブロックを巡回することができる。
【００１１】
発明の実施形態において、レジスタの所定ｎ個のビットで表される値を取得するステップ、メモリ・アドレスを識別するステップ、ポインタ値を読出すステップ、およびメモリに対して読出しまたは書込むステップは、レジスタの異なる所定ビットに対して複数回にわたって実行し、この結果、２つの連続的な複数ビットの巡回ステップにおける順次の２回実行相互間で異なる読出しポインタ値となるものとする。
【００１２】
この実施例は、異なる処理ステップを巡回式に異なるバッファに適用することを可能にする。さらに、これは第１バッファにおいてデータに対して処理ステップを実行するとともに、同時に新しいデータを第２バッファにロードすることを可能にする。
【００１３】
他の実施形態では、レジスタの所定ｎビットで表される値を取得するステップは、は、ｍ個の値すべてに対して実行し、各値は対応するｎビットで表されるものとする。
【００１４】
この態様は、処理アルゴリズムが複数のバッファを異なる方法で同時に処理することを含み、また各バッファの役割が処理ステップ相互間で反復的に変化する場合、有利に使用することができる。
【００１５】
他の実施形態では、対応する読出しポインタ値を、それぞれに対応するメモリバッファに関連付けし、方法は、複数の対応するメモリバッファに格納されたデータを処理するステップを有するものとする。
【００１６】
メモリバッファが高速メモリまたはキャッシュメモリの一部である場合、処理はより効率的に実行することができる。とくに、高速メモリに完全にロードするのに大き過ぎるデータセットを処理する必要がある場合、データセットの一部分を処理のためにメモリバッファにロードすることができる。
【００１７】
他の実施形態では、データを処理するステップは、少なくとも２次元画像に対してブロックタイプの演算を実行することを含み、各メモリバッファに画像のラインをロードし、ローラ字したラインは、集合的にブロック状の画像のサブセットを有するものとし、ブロックタイプ演算は、メモリバッファから対応するピクセル値を読出すことにより画像のピクセルのブロック上で実行するものとする。
【００１８】
このことは、バッファの極めて効率的な巡回使用を可能にする。
【００１９】
本発明の他の実施形態において、コンピュータ・プログラム製品は、プロセッサに請求項１の方法を実行させるための命令を含むものとする。
【００２０】
本発明は、請求項９に記載のシステムにも関連する。
本発明のこれらおよび他の態様を、以下に図面につき説明する。
【実施例】
【００２１】
図１は、本発明の代表的実施例を示す。本発明の他の適用は、当業者には明らかであろう。この実施例では、ブロックフィルタを、画像に適用する。この実施例のフィルタは、３×３カーネル１０を有する。他のカーネル（別名「フットプリント」としても知られている）のサイズ、例えば３×１０カーネルまたは５×２０フィルタ、または任意のＭ×Ｎカーネル、が可能である。フィルタ演算のステップは、カーネル素子でピクセル値を乗算処理し、これら乗算から生じた値を合計することを有することができる。この結果を、生じるフィルタ処理済み画像におけるピクセル１２として格納する。このようなフィルタカーネルで画像を処理する効率的な方法は、３個の連続するラインを高速メモリにロードすることで開始し、以下のステップを繰り返し行う、すなわち、
・高速メモリにロードした３個のラインで必要とされる演算を実行するステップと、
・次の後続ラインを高速メモリにロードするステップと、
・連続する第１番目のライン（第１ライン）を保持している高速メモリを解放するステップと、
を繰り返し実行する。
【００２２】
この場合、必要とされる演算を実行するステップ、および次のラインをロードするステップは、並列的に実行することができる。この方法をより効率的にするためには、連続する第１ラインを保持している高速メモリを解放する代わりに、この高速メモリは次の後続ラインを高速メモリにロードするためにリザーブする。このことは、４個のメモリバッファを高速メモリに割当てることを意味し、各バッファは画像の単独ラインのピクセル値を保持できるようにする。各ラインは、処理のため３回繰り返すためバッファに保持し、その後、バッファは画像の次のラインで上書きする。各バッファは、繰り返し中に４つの異なる役割、すなわち、カーネルの第１ラインで乗算する役割、カーネルの第２ラインで乗算する役割、カーネルの第３ラインで乗算する役割、および、画像の次の後続ラインで上書きする役割、を有する。これら役割は、各繰り返しの後、４個のバッファ上で巡回する。
【００２３】
類似のシナリオは当業者にとって明らかであろう。例えば、５×５カーネルを上述の実施例に使用する場合、６個の高速メモリバッファを使用し、そのうち５個は画像の連続するラインを含み、１個は次の後続ラインで上書きするのに使用する。
【００２４】
新たなデータをロードするとともに、データを含む他のバッファに対してフィルタ処理を実行するためにバッファをリザーブする原理はダブル・バファリングと称される。
【００２５】
図２は、図１の実施例における各繰り返し処理に使われる画像のラインを示す。３個のメモリバッファは、最初の３個の対応する画像ラインのピクセル値で初期化する。第１の繰り返しａにおいて、ライン０，１および２を、それらのピクセルを保持している対応するメモリバッファを使用して処理し、そして、ライン３を第４のメモリバッファに複写する。第２の繰り返しｂにおいて、ライン１，２および３を処理し、そして、ライン４のピクセル値を初期にライン０を含んでいた高速メモリバッファに複写する。第３の繰り返しｃにおいて、ライン５を、初期にライン１を含んでいた高速メモリバッファにロードする、等を行う。
【００２６】
図３は、本発明により、レジスタ２０をどのようにユニット２１，２２，２３，２４に分割するのかを示す。一連のピクセルデータラインを格納する各バッファは、メモリ・アドレスに関連付けする。インデックス（ＩＤＸ）は、テーブル２５に示すように、各アドレスＡＤＤＲに関連付けする。図は、レジスタ２０も示す。レジスタは、プロセッサ、例えばデジタル信号プロセッサ（ＤＳＰ）または中央演算処理ユニット（ＣＰＵ）、の一部である。２値計算を使用しているプロセッサの場合、レジスタは重要度で順序付けされる多くのビットを有する。連続するビットの所定シーケンス（すなわち、重要度によって順次付けされて連続する）は、以下にユニットと称する。この実施例では、４個のユニット（２１，２２，２３，２４）を使用し、各ユニットは、８個のビット（小さいダッシュで示す）からなり、そして、レジスタは全体で３２ビットからなる。レジスタは、任意の個数のビットでも構成することができ、３２ビット以上のビット数にすることもできる。図面は、単なる実施例としてのみ見なされるべきである。ユニットのビットは、テーブル２５に示すインデックスに対応するインデックス値を表す。例えば、レジスタ２０の８個の最も重要なビットは、ユニット２１を形成する。ユニット２１の８個のビットは、すべてゼロであり、従って、ビットで表されるインデックス値は、ゼロである。テーブルでインデックス値０を参照（ルックアップ）すると、関連付けしたメモリ・アドレス０ｘ４００が見つかる。このことは、インデックス値０に関連付けした高速メモリバッファがアドレス０ｘ４００で見つかることを意味する。３個の残りのユニット２２，２３および２４は、それぞれ図示のように、インデックス値１，２および３を表し、テーブル２５に示すように、それぞれメモリ・アドレス０ｘ８００、０ｘＣ００および０ｘ１０００に関連付けされる。
【００２７】
図４は、図示のように、異なるラインパターンを有する４個の役割（I，II，IIIおよびIV）に関連付けする。各バッファは、各繰り返しにおいて異なる役割を行うことができ、また、代表的には、少なくとも１個のバッファの役割は、巡回式で所定数の役割の中で変化する。図示の実施例においては、４個の異なる役割は、以下のように識別される。第１の役割（I）は、カーネルの第１ラインで乗算するラインのピクセルを含める役割であり、第２の役割（II）は、カーネルの第２ラインで乗算するラインのピクセルを含める役割であり、第３の役割（III）は、カーネルの第３ラインで乗算するラインのピクセルを含める役割であり、および、第４の役割（IV）は、画像における次の後続ラインのピクセルで上書きする役割である。これらの役割は、各繰り返し後、４個のバッファ上で巡回する。バッファは、インデックス値によって識別することができる。この図は、さらに、ブロック処理演算におけるいくつかの繰り返し中、レジスタの状態も示す。第１の繰り返し（ｉ）において、インデックス値０，１，２および３は、図示のように、それぞれ役割I，II，IIIおよびIVに関連付けする。第２の繰り返し（ii）において、インデックス値１，２，３および０は、それぞれ示されるように、役割I，II，IIIおよびIVと関連付けする。第３の繰り返し（iii）において、インデックス値２，３，０および１は、それぞれ示すように、役割I，II，IIIおよびIVと関連付けする。このように、役割は、インデックス値に関して巡回する。テーブル２５で示すように、各インデックス値はメモリバッファに関連付けすることができ、したがって、役割はバッファに関して巡回する。
【００２８】
図５は、レジスタ内でユニットによって表される多くの値に関する他の具体例を示す。各ユニットによって表される、異なる値は、図面ではI，II，III，IVで示す多くの異なる方法で使用することができる。ユニットにおけるビット数で、巡回矢印で示すように、レジスタを巡回させることによって、インデックス値は、巡回する。各ユニットを用いる方法は固定されている（I，II，III，IVは、レジスタの同一ユニットに対応する）ために、各値が各繰り返しで使われる方法も巡回する。通常、レジスタは、ユニットのビット数毎に巡回する。しかし、ユニットのビット数の倍数毎に巡回することもできる。このことは、繰り返し間における２ステップで巡回を進めたい場合、とくに有用である。
【００２９】
図６は、本発明の実施例の簡略化した線図を示す。この図は、プロセッサ５１、ディスプレイおよび／またはキーボード５４およびメモリ５２を示す。プロセッサは、例えばデジタル信号プロセッサまたは中央プロセッサユニットとすることができる。プロセッサ５１は、制御手段５７、演算論理ユニット５５、レジスタ５８、および高速メモリ５６を備える。例えば、高速メモリは、オンチップ・キャッシュメモリとすることができる。代案として、高速メモリは、プロセッサの外部の高速メモリ・キャッシュ（図示せず）として実装できる。高速メモリへのアクセスは、「通常」メモリ５２へのアクセスと比較して、相対的に高速である。図示の構成を使用して、上述の方法を実行することができる。例えば、画像を、メモリ５２に格納する。４個のメモリバッファを高速メモリ５６に割当て、また、各バッファのアドレスを含む図３に記載のテーブル２５を高速メモリ５６に格納する。プロセッサの３２ビットレジスタ５８（図３のレジスタ２０としても示される）を、４個の８ビットユニット２１，２２，２３，２４に分割し、また、各ユニットを、テーブル２５におけるインデックスのうち１個で制御手段５７によって初期化する。制御手段５７は、画像における最初の３ラインを、メモリ５２から、最初の３個のユニット２１，２２，２３によって表されるインデックスでテーブルに格納したアドレスに関連付けした高速メモリ５６のバッファにコピー（複写）する。その後、多数の繰り返しを、以下の通りに実行する。制御装置５７は、レジスタ５８から所定ユニットによって表される値を取得する。このことは、レジスタ５８の特定バイトへのアクセスを許可するプロセッサ命令によって、効率的に行うことができる。制御手段５７は、取得したテーブル２５におけるインデックス値に関連付けしたメモリ・アドレスを参照（ルックアップ）する。このことを、全ての必要とされるユニットに対して実行する。演算論理装置５５は、このようにして決定されたバッファに格納されたデータに対してイメージ処理演算を実行する。同時にまたは順次に、制御手段５７は、画像の次の後続ラインを、メモリ５２から、第４ユニット２４によって表されるインデックスでテーブルに格納されたアドレスに関連付けした高速メモリ５６のバッファにコピーする。その後、制御手段５７は８ビット毎に、またはとくにユニット２１に含まれるビット数毎にレジスタ５８を巡回させ、そして、次の繰り返しを開始する。この繰り返しは、画像の全ての関連付けしたラインが処理されたときに、終了する。
【００３０】
本発明の多くの用途は、当業者には明らかであろう。本明細書において、２次元のブロックフィルタを画像に適用する用途を説明した。しかし、本発明は、同様に、容積測定的データセットをフィルタ処理するための３次元フィルタに適用することもできる。容積測定的データセットは、３次元格子に配列したボクセルを有する。これに対応して、フィルタは、３次元的に展開するカーネルを有する。Ｌ×Ｍ×Ｎのサイズを有する３次元フィルタカーネルを意識されたい。効率的な計算のために、ボクセル値の多くのラインを、バッファにおいてロードする。この場合、Ｌ×Ｍ＋Ｌ個のバッファを使用することができる。Ｌ×Ｍ個のバッファは、フィルタカーネル値との乗算のために使用することができ、そして、残りのＬ個のバッファを、上述のように、ダブル・バファリングのために使用することができる。容積測定的データセットは、代表的には、医用画像で生ずる。
【００３１】
本発明は、所定値の巡回読み出しを必要とする任意の用途、とくに、シーケンス読み出しでそのシーケンスの最初に現れる値が次のシーケンス読み出しで現れる点で反復読み出しが異なる、一連の値シーケンスの反復読み出しを必要とするいかなる用途にも、有利に使用することができる。
【００３２】
本発明は、コンピュータ・プログラム、とくに本発明を実用化するよう構成したキャリヤ上またはキャリヤ内のコンピュータ・プログラムにも及ぶことを理解されたい。プログラムは、ソースコード、オブジェクトコード、中間ソースコードおよび部分的にコンパイルした形式のオブジェクトコード、または本発明による方法の実施に適切な他のいかなる形とすることができる。キャリヤは、プログラムを担持することができる任意の実体またはデバイスとすることができる。例えば、キャリヤは、ＲＯＭのような記憶媒体、例えばＣＤ‐ＲＯＭまたは半導体ＲＯＭ、または磁気記録媒体、例えばフロッピー（登録商標）・ディスクまたはハードディスクとすることができる。さらに、キャリヤは、伝送可能なキャリヤ、例えば電気的もしくは光学的信号とすることができ、電気的もしくは光学的ケーブルを介して、または無線または他の手段によって伝送できるものとする。プログラムをこのような信号内に埋め込むとき、キャリヤは、このようなケーブルまたは他のデバイスまたは手段によって構成することができる。代案として、キャリヤは、プログラムを埋め込んだ集積回路とすることができ、この集積回路は、本発明を実行するよう、または、実行するのに使用するよう、構成するものとする。
【００３３】
上述の実施例は、本発明を限定するものではなく、単に例示に過ぎないものであり、当業者は添付した特許請求の範囲内において、多くの代案的実施例を設計することができるものであることに留意されたい。請求項において、カッコの間で配置されるいかなる参照符号も、請求項を制限するものとして解釈すべきでない。動詞「備える／有する」の使用およびその活用は、請求項において述べられているもの以外の要素やステップの存在を除外しない。要素に先行する冠詞「a」または「an」は、複数のこの種の要素の存在を除外しない。本発明は、いくつかの異なった要素から成るハードウェアによって、そして、最適にプログラムされたコンピュータによって行うことができる。いくつかの手段を列挙している装置請求項において、これらの手段のいくつかは、ハードウェアの１個のかつ同一のアイテムによって実施することができる。若干の手法を相互に異なる従属請求項において引用するという単なる事実は、これら手法の組合せが有効に使われることができないことを示すものではない。
【図面の簡単な説明】
【００３４】
【図１】本発明をどのようにしてブロックフィルタリング演算に適用することができるかを示す説明図である。
【図２】データアクセス・パターンの説明図である。
【図３】メモリ・アドレスに指標付けする方法の説明図である。
【図４】インデックスによる巡回を示す。
【図５】インデックスによる巡回の他の実施例を示す説明図である。
【図６】本発明の実施形態におけるシステム図である。
【図１】
2009529171.tif 000003
【図２ａ】
2009529171.tif 000004
【図２ｂ】
2009529171.tif 000005
【図２ｃ】
2009529171.tif 000006
【図２ｄ】
2009529171.tif 000007
【図３】
2009529171.tif 000008
【図４】
2009529171.tif 000009
【図５】
2009529171.tif 000010
【図６】
2009529171.tif 000011
【国際調査報告】
2009529171.tif 000012
2009529171.tif 000013