(57)【要約】比較的高速なサーキュラーメモリ装置であって、他のプロセスとの組合せにより、イメージプロセッシング効率を高める装置。その目的のために、初期メモリに記憶された画像データを処理する方法と装置は画像を複数の隣接片に論理的に分割する。第１の複数の片は、サーキュラーアドレッシング構成を有する動作メモリであって初期メモリよりも高速でありかつ複数の連続したアドレス位置を有する動作メモリに記憶される。第１の複数の片は隣接し開始アドレスを有する。さらに、第１の複数の片は隣接した状態に動作メモリに記憶されて動作メモリを介して開始アドレスに関して処理される。
2005530246.tif 000002
【特許請求の範囲】
【請求項１】
初期メモリに記憶された画像データを処理する方法であって、
画像を複数の隣接する片に論理的に分割し、
サーキュラーアドレッシング構成を有する動作メモリであって前記初期メモリよりも高速であり複数の連続したアドレス位置を有する動作メモリに第１の複数の前記片をそれらの片が隣接し開始アドレスを有しかつ隣接した状態に記憶し、
前記第１の複数の片を前記動作メモリを介して前記開始アドレスに関して処理する、
ことを含んでなる方法。
【請求項２】
請求項１の方法であって、前記第１の複数の片を記憶することは前記複数の片のうちの異なる片の隣接部分を前記動作メモリの隣接アドレス位置に記憶する方法。
【請求項３】
請求項１の方法であって、前記動作メモリは、第１記憶位置が論理的に最後記憶位置に隣接する前記第１記憶位置と前記最後記憶位置とを有する方法。
【請求項４】
請求項１の方法であって、前記処理は前記開始アドレスからのオフセットを計算する方法。
【請求項５】
請求項１の方法であって、前記第１の複数の片が処理されているときに、前記第１の複数の片に隣接する新しい片を前記動作メモリに記憶することをさらに含んでなる方法。
【請求項６】
請求項５の方法であって、前記第１の複数の片から少なくとも１つの片を前記新しい片と共に処理ことをさらに含んでなる方法。
【請求項７】
請求項１の方法であって、前記動作メモリは与えられた数の片領域に分割され、前記各片の画像データは複数列画像データを含んでなり、前記記憶することは、前記与えられた数の片領域に基づいて前記複数列を前記動作メモリに記憶するために前記複数列をシフトさせることを含んでなる方法。
【請求項８】
初期メモリに記憶された画像データを処理するためにコンピュータシステム上で使用するコンピュータプログラム製品であって、コンピュータで読み込み可能なプログラムコードが記憶されたコンピュータで使用可能なメディアを含み、前記コンピュータで読み込み可能なプログラムコードは、
前記画像を複数の隣接の片に論理的に分割するプログラムコードと、
サーキュラーアドレッシング構成を有する動作メモリであって初期メモリよりも高速でありかつ複数の連続したアドレス位置を有する動作メモリに第１の複数の前記片を記憶するプログラムコードであって、前記第１の複数の片が隣接し開始アドレスを有しかつ隣接した状態に前記動作メモリに記憶させるプログラムコードと、
前記第１の複数の片を前記動作メモリを介して前記開始アドレスに関して処理する処理プログラムコードとを、
含んでなるコンピュータプログラム製品。
【請求項９】
請求項８のコンピュータプログラム製品であって、前記第１の複数の片を隣接した状態に前記動作メモリに記憶する前記プログラムコードは、前記複数の片のうちの異なる片の隣接部分を記憶するプログラムコードを前記動作メモリの隣接するアドレス位置に含んでなるコンピュータプログラム製品。
【請求項１０】
請求項８のコンピュータプログラム製品であって、動作メモリは、第１記憶位置が論理的に最後記憶位置に隣接する前記第１記憶位置と前記最後記憶位置とを有するコンピュータプログラム製品。
【請求項１１】
請求項８のコンピュータプログラム製品であって、前記処理プログラムコードは前記開始アドレスからのオフセットを計算するプログラムコードを含むコンピュータプログラム製品。
【請求項１２】
請求項８のコンピュータプログラム製品であって、前記第１の複数の片が処理されているときに、前記第１の複数の片に隣接する新しい片を前記動作メモリに記憶するプログラムコードをさらに含んでなるコンピュータプログラム製品。
【請求項１３】
請求項１２のコンピュータプログラム製品であって、前記第１の複数の片から少なくとも１つの片を前記新しい片と共に処理することをさらに含んでなるコンピュータプログラム製品。
【請求項１４】
請求項８のコンピュータプログラム製品であって、前記動作メモリが与えられた数の片領域に分割され、前記各画像データは複数列の画像データを含み、前記処理プログラムコードは、前記与えられた数の片領域に基づいて前記複数列を前記動作メモリに記憶するために前記複数列をシフトさせるプログラムコードをさらに含んでなるコンピュータプログラム製品。
【請求項１５】
論理的に複数の隣接片に分割されて初期メモリに記憶された画像データを処理する装置であって、
前記初期メモリよりも高速であり複数の連続したアドレス位置を有する動作メモリにサーキュラー状態でアクセスするアドレスマネージャと、
第１の複数の片を前記動作メモリに記憶するデータ転送装置であって、第１の複数の片が隣接し開始アドレスを有しかつ隣接した状態に前記動作メモリに記憶させるデータ転送装置と、
前記第１の複数の片を前記動作メモリを介して前記開始アドレスに関して処理するプロセッサとを、
含んでなる装置。
【請求項１６】
請求項１５の装置であって、前記データ転送装置は、前記複数の片の異なる片の隣接部分を前記動作メモリの隣接アドレス位置に記憶する装置。
【請求項１７】
請求項１５の装置であって、前記動作メモリは、第１記憶位置が最後記憶位置に論理的に隣接する前記第１記憶位置と前記最後記憶位置とを有する装置。
【請求項１８】
請求項１５の装置であって、前記プロセッサは、前記開始アドレスからのオフセットを計算する装置。
【請求項１９】
請求項１５の装置であって、前記データ転送装置は、前記第１の複数の片が処理されるときに、前記第１の複数の片に隣接する新しい片を前記動作メモリに記憶する装置。
【請求項２０】
請求項１９の装置であって、前記プロセッサは、前記第１の複数の片から少なくとも１つの片を前記新しい片と共に処理する装置。
【請求項２１】
請求項１５の装置であって、前記動作メモリが所定数の片領域に分割され、前記各片内の前記画像データは複数列の画像データを含み、前記データ転送装置は、前記所定数の片領域に基づいて前記複数列を前記動作メモリに記憶するために前記複数列をシフトさせる装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にメモリ管理に関し、特に、図形処理システムのメモリ効率を高めることに関する。
【背景技術】
【０００２】
近代的なコンピュータシステムは、多くの利点の中でもとりわけ、生き生きとしたグラフィカル表示を作り出す能力を有する。その結果、コンピュータシステムは写真やグラフィックデザインなどの様々なグラフィックアートにおいて広く使用されるツールになった。しかしながら、そのような目的のための増加するコンピュータ用法はデザインの複雑さと、それに対応してグラフィックイメージを作るソフトウェアの複雑さを増加させる結果に至った。
【０００３】
技術は、コンピュータシステムの処理能力を高めることによって、この必要性に応じてきた。例えば、多くのコンピュータシステムは、メインプロセッサの計算負荷を減少させる目的で設計されたグラフィックプロセッサを捧げた。その結果、そのような多くのコンピュータは主記憶装置（すなわち、ＲＡＭ）又はキャッシュなどの他のコンピュータ構成装置のスピードを超える処理速度を有する。事実、多くの従来のパーソナルコンピュータは、メインメモリとキャッシュのスピードを単独で超えるメインプロセッサを有する。従って、プロセッサの速度は上がったが、メインメモリとキャッシュはコンピュータシステム内で処理ボトルネックを生じて画像ラスター化処理を妨害している。
【発明の概要】
【０００４】
本発明の１局面によると、比較的高速なサーキュラーメモリ（circular  memory）装置は、他のプロセスとの組合せによりイメージプロセッシング効率を高める。そのために、初期メモリに記憶された処理画像データを処理する方法と装置は、論理的に、画像を複数の隣接片に分割する。第１の複数の片は、サーキュラーアドレッシング構成を有する動作メモリであって、初期メモリよりも高速かつ複数の連続したアドレス位置を有する動作メモリに記憶される。第１の複数の片は隣接し、開始アドレスを有する。さらに、第１の複数の片は隣接した状態で動作メモリに記憶され、動作メモリを介して開始アドレスに関して処理される。
【０００５】
いくつかの実施の形態では、（複数の片のうちの）異なる片の隣接する部分が動作メモリの隣接アドレス位置に記憶されるとき、第１の複数の片を隣接した状態に記憶させる。サーキュラー状態（円状性）を維持するために、動作メモリは、第１記憶位置が論理的に最後記憶位置に隣接する第１記憶位置と最後記憶位置を有することとしてもよい。そのうえ、処理の間、開始アドレスからのオフセットを計算することとしてもよい。
【０００６】
他の実施の形態では、第１の複数の片が処理されているときに新しい片は動作メモリに記憶される。新しい片は第１の複数の片に隣接する。したがって、第１の複数の片から少なくとも１つの片は新しい片と共に処理される。動作メモリを与えられた数の片領域に分割してもよく、各片の中のイメージデータは複数列の画像データを含んでいる。そのような実施の形態では、与えられた数の片領域に基づいて、複数列をそれらを動作メモリに記憶させるためにシフトさせることによって、片を記憶することとしてもよい。
【０００７】
発明の他の局面によると、複数の隣接する片に論理的に分割された初期メモリに記憶された画像データを処理する装置は動作メモリにサーキュラー状態でアクセス可能なアドレスマネージャを含んでいる。動作メモリは初期メモリよりも高速であり複数の連続したアドレス位置を有する。装置はまた、隣接し開始アドレスを有している第１の複数の片を動作メモリに記憶するデータ転送装置を含んでいる。第１の複数の片は隣接状態で動作メモリに記憶される。装置は、動作メモリを介して第１の複数の片を開始アドレスに関して処理するプロセッサをさらに含む。
【０００８】
発明の例示的な実施の形態は、コンピュータの読み込み可能なプログラムコードが記憶されたコンピュータで使用可能なメディアを有するコンピュータプログラム製品として実行される。コンピュータで読み込み可能なコードは、従来のプロセスに従うコンピュータシステムによって読まれ利用することができる。
【発明の実施するための最良の形態】
【０００９】
発明の上記内容及び長所は添付図面を参照して以下になされる説明から、より完全に理解されるであろう。
【００１０】
発明の例示的な実施の形態では、コンピュータシステムの画像データは、低速メモリから、処理用のより高速なサーキュラー（円状）構成のメモリへ移される。例示的な実施の形態の詳細を以下で論じる。
【００１１】
図１は例示的な実施の形態を実行することができる例示的なコンピュータシステムを概略的に示す。図１の例示的コンピュータシステム１００を説明目的だけのために論じるものであり、発明をそのように限定するものと考えるべきでない。以下の説明は特定のコンピュータシステムを説明する際に一般的に使用される用語に言及するが、説明された概念は図１で示すアーキテクチャと異なるアーキテクチャを有するシステムを含む他のコンピュータシステムに等しく適用される。
【００１２】
コンピュータ１００は従来のマイクロプロセッサと、情報を一時的に記憶するためのメイン（システム）メモリ１１０（例えば、当該技術において一般的に「ＲＡＭ」と呼ばれるランダムアクセスメモリ）と、読出し専用情報を継続的に記憶する固定メモリ（ＲＯＭ）１１５とを有する中央演算処理装置（ＣＰＵ）１０５を含んでいる。さらに、コンピュータ１００はまた、システムＲＡＭ１１０を制御するメモリコントローラ１２０と、システムＲＡＭ１１０へのダイレクトメモリアクセスを制御するダイレクトメモリアクセス（ＤＭＡ）コントローラ１６０を有する。コンピュータ１００はまた、様々な内部構成装置を結合するメインバス１３０を含んでいる。
【００１３】
マスストレージ（大容量外部記憶装置）はディスケット１４２、デジタル・バーサタイル・ディスク（当該技術分野において一般的に「ＤＶＤ」と呼ばれるものであり、図示省略する）、ＣＤ−ＲＯＭ１４７、ハードディスク１５２などの公知の不揮発性外部記憶装置メディアによって提供することができる。そのうえ、ディスケット１４２、ＣＤ−ＲＯＭ１４７などのリムーバブルメディアを介し、または、ネットワーク結合を介して、コンピュータシステム１００に対してデータとソフトウェアを交換することもできる。
【００１４】
コンピュータ１００に入力されるユーザ入力は多くの装置によって提供することができる。例えば、キーボード１５６とマウス１５７をキーボード及びマウスコントローラ１５５を介してバス１３０に接続できる。デジタルカメラ、ペン及び／又はタブレット、音声入力のためのマイクロホンなどの他の入力装置をバス１３０及び適当なコントローラを介してコンピュータ１００に接続することができることは当業者にとって明白である。
【００１５】
コンピュータシステム１００は、望ましくは、ＷＩＮＤＯＷＳ  ＮＴ（登録商標）オペレーティングシステム（アメリカ合衆国ワシントン州レッドモンドのマイクロソフト・コーポレーションから配付される）などのオペレーティングシステムソフトウエアによって制御され調整される。コンピュータシステム制御機能のうち、とりわけ、オペレーティングシステムはシステムリソースの割り当てを制御し、処理スケジューリング、メモリ管理、ネットワーク、および入出力サービスなどのシステムタスクを実行する。特に、例示的な実施の形態（これはメモリ管理に関連する）をオペレーティングシステムの一部として、または、別のユーティリティとして実行してもよい。
【００１６】
図２は、発明の例示的な実施の形態に従って処理されるグラフィックイメージ１６２のフレームを図式的に示す。グラフィックイメージ１６２は、デジタルカメラまたはビデオ送りなどの公知の如何なるソースから作り出されるディジタル画像であってもよい。一例として、画像１６２は従来のＭＰＥＧ標準規格に対応した圧縮作業を行う等の何らかの処理を必要とするかもしれない。
【００１７】
そのために、グラフィックイメージ１６２は論理的に複数の隣接データ片（以下「片」という）に分割され、これらの片は論理的に複数の隣接データセル（以下「セル」という）を形成すると考えられる。各片は画像１６２のそれぞれの部分を作る２次元配列のピクセルから成る。図２で示される例では、画像１６２は７片の２つの列に分割される。７片の各列は６つのセルを形成する。片は片Ａ−Ｎとして識別されるが、セルはセル１−１２として識別される。あるセルが隣接の２つの片から成る。例えば、片ＡとＢはセル１を形成する。以下は図２中のセルとそれらの対応する片を示す表である。
【表１】
2005530246.tif 000003
【００１８】
セルは、各中央セル（すなわち、列中の最初のセルでもなく、また、最後のセルでもない）が先行セルと後続セルに重なるように各列に形成される。例えば、セル２は片ＢとＣによって形成され、セル３は片ＣとＤによって形成される。従って、セル２と３は片Ｃを共有する。同じように、セル１と２は片Ｂを共有する。以下で極めて詳細に説明されるように、このオーバラッピングはコンピュータ１００の内部メモリシステムのパイプラインを許可することによって並列処理を容易にする。処理速度改良のような片を論理的に指定することの長所は当業者にとって明らかであろう。
【００１９】
しかしながら、図２中の論理的な片とセルの議論は例示的なものであり、かつ、その数の片とセルだけが満足のいくものであることを意図するのではないことに注意されたい。いくつかの実施の形態では、例えば、３片または１片でセルを形成することができる。従って、特定の片とセルサイズ／数の議論は発明の様々な実施の形態の範囲を制限することを意図するものではない。
【００２０】
図２に説明的に示す画像１６２の片とセルは、画像１６２が高速メモリにおいて処理される前に論理的に形成される。図３はそのような論理的に分割された画像１６２を処理するのに使用できる２個のメモリ装置を示す。高レベルにおいて、画像１６２は初めに初期メモリ装置（初期メモリ１６４）に記憶され、次に、動作メモリ装置（動作モリ１６６）に片ごとに移される。動作メモリ１６６は初期メモリ１６４の速度よりも高速である。中央処理装置１０５は、画像１６２をそれが動作メモリ１６６内にある間に処理する。
【００２１】
特に、図３に関して、初期メモリ１６４は全体画像１６２を記憶する外部ＳＤＲＡＭ（同期ダイナミックＲＡＭ）であってもよい。ＤＭＡコントローラは画像１６２の片を動作メモリ１６６に移す。この例では、動作メモリ１６６は内部キャッシュメモリである。画像１６２を移送し処理する方法の詳細は図５と６に関して以下でより詳細に論じられる。しかしながら、ＳＤＲＡＭとキャッシュについて論じるが、そのような相対的なスピードを有する他のタイプのメモリを使用することもできることに留意されたい。従って、データ処理のために、より速いメモリに移す如何なる低速メモリ装置も多くの実施の形態において十分である。
【００２２】
図４Ａは、図３に示す第２メモリ（キャッシュメモリ）の構成の追加詳細を示す。動作メモリ１６６は、それぞれが画像１６２の１つのピクセルに関するデータを記憶する所定数のアドレス位置（「記憶位置」とも呼ばれる）を有するように構成される。例えば、図４Ａに示す動作メモリ１６６は９６ピクセルのデータに関するアドレス位置を有する。それぞれのアドレス位置は、初期メモリ１６４から受け取った未加工のイメージデータを記憶するために適宜大きさにされる。従って、それぞれのアドレス位置は与えられたピクセルに必要であるカラー（例えば、赤、緑、および青）、透過性、深み、その他のデータを記憶するに十分なスペースを有するべきである。
【００２３】
処理の間、それぞれのアドレス位置を連続して横移動してもよい。例えば、最初に読まれるアドレス位置がアドレス位置０であるならば、２番目に読まれるアドレス位置はアドレス位置１であるだろうし、次に読まれるアドレス位置はアドレス位置２、３…となるであろう。代替の実施の形態では、アドレス位置は連続していて処理されない。しかしながら、どちらの実施の形態においても、（以下で論じられるように、「開始アドレス」と呼ばれる）ベースアドレスが選択され、処理はそのベースアドレスに対応して続く。より明確に言えば、処理はベースアドレスに対するオフセット（位置ずれ）で実行される。例えば、ベースアドレスがアドレス位置４であり、次にアドレス位置６−８を処理するならば、論理は、ベースアドレスから２−４オフセットしたアドレス位置を処理するように指定する。
【００２４】
例示的な実施の形態において、動作メモリ１６６はサーキュラーメモリとして構成される。従って、アドレス位置９５が読まれ、スキップされ、または横移動された後に、処理はアドレス位置０に戻る。そのうえ、動作メモリ１６６は、画像１６２中の片に対応する２つ以上のグループに論理的に仕切られる。より明確に言えば、図４Ａに示される動作メモリ１６６は３つの等しい大きさに分けられたブロックに分割される。これらのブロックはここでは、第１ブロック１６６Ａ、第２ブロック１６６Ｂ、および第３ブロック１６６Ｃと呼ばれる。各メモリブロックは、画像データの１つの片のアドレス位置の数と同じ総数を有するように構成される。このように、例示的な実施の形態では、各メモリブロックは、画像１６２の１つの片として正確な二次元サイズを有するように構成される。
【００２５】
図４Ｂは図４Ａに示す動作メモリ１６６の別の論理的な概要を示す。特に、動作メモリ１６６は、ポインタその他のメモリ横移動装置にとって、１次元配列のアドレス位置であるように見える。図示の例では、アドレス位置９５が横移動された後にアドレス位置０が読まれ、スキップされ、または横移動される。それにもかかわらず、隣接の画像データは図４Ａに示されるアドレス位置に記憶される。
【００２６】
発明の他の要素と同様に、図４Ａと４Ｂに示すアドレス位置の総数は例示的である。従って、異なった数のアドレス位置と区分を使用してもよく、異なった大きさのメモリを使用してもよい。このように、特定のサイズに関する議論は発明の範囲を制限することを意図しない。
【００２７】
図５は、図２に示す画像１６２を処理する例示的な方法を示す。方法はステップ５００で始まる。そこでは、画像１６２は論理的に複数の片に分割される。例えば、画像１６２を図２に示すように分割することとしてもよい。画像１６２のサイズに依存して、画像１６２を１列又は２以上の列の片に分割してもよい。そこでは、上で述べたように、各列は複数の重なるセルを形成する。このように、残りのステップは画像１６２の各列に関して実行される。
【００２８】
明確に言えば、第１セットの複数の隣接片は初期メモリ１６４（すなわち、レベル２メモリなどの低速メモリ）から動作メモリ１６６（すなわち、レベル１メモリなどの高速メモリ）へ移される。例示的な実施の形態では、片ＡとＢ（すなわち、セル１）を最初に、動作メモリ１６６の第１ブロック１６６Ａと、第２ブロック１６６Ｂにロードすることができる。図示のように、片は隣接状態で動作メモリ１６６にロードされる。より明確に言えば、隣接する２つの片の間の隣接ピクセルは動作メモリ１６６内の隣接アドレス位置に記憶される。図示の例では、２つの隣接する片は同じ列の隣接ピクセルを有する。
【００２９】
そのために、ＤＭＡコントローラは２次元ＤＭＡとして構成される。特に、ＤＭＡコントローラは実例として２つの作業を実行する。すなわち、１つは、セル（すなわち、片のセット）をＦＩＦＯ（先入れ先出し）パイプにロードする「ロード」作業であり、２番目は、ＦＩＦＯパイプからの画像データを２次元配列のピクセル（すなわち、片又はセル）として動作メモリ１６６に記憶する「記憶」作業である。各片が上で論じられるように画像１６２の部分を形成するピクセルデータの２次元配列であることに注意する。従って、これらの作業は、片データ形式が初期のメモリ１６４に記憶されるように維持されることを確実にする。
【００３０】
例示的な実施の形態では、２つの有名なＤＭＡ作業のためのソフトウェアは以下のようにすることができる。
【表２】
2005530246.tif 000004
【００３１】
第１セットの片がロードされた後に、対のポインタはステップ５０４で設定される。より詳しくは、システムは、任意セルの第１アドレス位置（動作メモリ１６６のもの）を示すベースポインタと、該ベースポインタに対してオフセットしたアドレス位置（これも動作メモリ１６６のもの）を示す読取りポインタを有するように構成されている。初めに、両方のポインタは同じアドレス位置を示す。例えば、ポインタは初めに片Ａにおける第１アドレス位置を示すように設定される。図６（以下で論じられる）に示すように、ベースポインタは、新しいセルが処理される都度、そのアドレス位置セット数を増加させ、一方、読取りポインタは、セル上を横移動するときに各セル内において（各アドレス位置のために）一旦増加する。
【００３２】
したがって、方法はステップ５０６へと続き、そこでは現在のセットの片（すなわち、現在処理されているセル）は以下で図６に関して論じられる方法に従って処理される。処理されている列が処理する追加片を有するか否かが次にステップ５０８で決定される。その列の追加片を処理する必要がないならば、（その列のための）処理は終わる。
【００３３】
それとは逆に、追加片の処理が必要であるならば、処理はステップ５１０へと続き、そこでは、次のセットの片は動作メモリ１６６に記憶される。図２に示す例では、単一片のデータ（例えば、片Ｃ）は動作メモリ１６６内の次に続くブロック（この場合、動作メモリ１６６の３番目のブロック１６６Ｃ）に記憶される。処理は次にステップ５０４に戻り、そこでは、ポインタがリセットされる。そのために、ベースポインタと読取りポインタは、次のセル（例えば、片Ｂの第１記憶位置）の第１アドレス位置を示すように設定される。従って、次のセル（片ＢとＣから成る）は処理され、その結果、データ（すなわち、片Ｂ）の再利用を可能にする。この方法は列全体が処理されるまで繰り返される。画像１６２が追加列を有するならば、方法は次の列のために繰り返される。
【００３４】
図示の実施の形態では、図５の方法の様々なステップは異なる順番で又は実質的に同時に実行される。例えば、現在のセットの片が処理されている間（ステップ５０６）、ＣＰＵ１０５は、追加片の処理の必要があるかどうかを決定し（ステップ５０８）、必要がある場合、さらに、動作メモリ１６６の次のブロックにそのような片を記憶する（ステップ５１０）。従って、いくつかの実施の形態はこれらの３ステップを実質的に１つの並列操作に結合する。
【００３５】
図６はステップ５０６によって記載される現在のセットの片を処理する方法を示す。方法はステップ６００で始まり、そこでは、ベースポインタと読取りポインタの位置が定められる。このステップは本処理に内在するものであり、したがって、様々な実施の形態において必要性が肯定されるものではない。処理は次にステップ６０２へと続き、そこでは、１セットのアドレス位置が処理のために読まれる。そのために、読取りポインタはベースポインタから１セット数のアドレス位置を読取るために増加される。ここで論じる例では、読取りポインタは、現在のセル中の第１番目の８つのアドレス位置を読み出すために８倍に増加される。従って、このステップは、方法が、セルデータを有する動作メモリ１６６の２つの隣接ブロックの一部分を読取れるようにする。
【００３６】
アドレス位置のセット後に、読取りポインタは次に続く１セットのアドレス位置をスキップする（ステップ６０４）。図示の例では、読取りポインタは次の４つのアドレス位置をスキップする。このステップは、このように、方法に、セルデータを有していない動作メモリ１６６の１ブロックをスキップさせる。次にステップ６０６において、読取りポインタがベースポインタによって示されたもの（すなわち、ベースアドレス）と同じアドレスを示しているか否かが決定される。ベースアドレスを示しているならば、全体のセルが動作メモリ１６６に記憶されたので、方法は終了する。逆に、読取りポインタが異なったアドレス位置を示しているならば、処理はステップ６０２に戻り、そこでは、１セット数の次のアドレス位置が読まれる。従って、この方法は、全体セルが動作メモリ１６６に記憶されるまで繰り返される。上で述べたように、アドレス位置を読取った後に、ＣＰＵ１０５はイメージデータを圧縮する等のいくつかの処理機能を実行してもよい。
【００３７】
従って、図５と６で説明される方法は、２次元配列のピクセルデータが動作メモリ１６６に記憶されることを可能にする。ベースポインタから読取り／記憶プロセスを開始し、かつ、動作メモリ１６６をサーキュラーメモリとして構成することにより、上記記憶を効率的に行うことができる。
【００３８】
以下は一例であり、図４Ａに示す動作メモリ１６６における、ここで説明する方法を９回反復することを示すものである。より詳しく言えば、この例はイメージプロセスを９回反復することにより動作メモリ１６６の内容を示す。画像１６２は列として連続してアドレッシングされるピクセルを有する。言い換えれば、各列は６４の連続してアドレッシングされるピクセル位置を有する。
【００３９】
この例のパラメータは以下の通りである。
【００４０】
画像サイズ：６４ｘ６４
片サイズ：４ｘ８
片数：１列あたり１６片、８列の片、合計１２８片
セルサイズ：８ｘ８（２片）
サーキュラーアドレッシングサイズ：３＊４＊８
【００４１】
以下の例において、画像１６２の各ピクセルは次のフォーマット、ａ（列、カラム）で識別される。したがって、「ａ（０，１）」のような印は、画像１６２の列０、カラム１に位置するピクセルのピクセルデータを表す。さらに、動作メモリ１６６の第１カラムの各記憶位置アドレス数は動作メモリ１６６の第１カラムのすぐ左に示される。もちろん、例示的な動作メモリ１６６のすべてのアドレスもまた図４Ａに関して確かめることができる。最後に、各反復のベースアドレスは大文字で書かれかつアンダーラインが引かれており、一方、画像データを受け取るメモリ部分は太文字で記載されている。
【００４２】
シミュレーション出力：
反復（１）、ベースアドレス＝０
【表３】
2005530246.tif 000005
【００４３】
反復（２）、ベースアドレス＝４
【表４】
2005530246.tif 000006
【００４４】
反復（３）、ベースアドレス＝８
【表５】
2005530246.tif 000007
【００４５】
反復（４）、ベースアドレス＝１２
【表６】
2005530246.tif 000008
【００４６】
反復（５）、ベースアドレス＝１６
【表７】
2005530246.tif 000009
【００４７】
反復（６）、ベースアドレス＝２０
【表８】
2005530246.tif 000010
【００４８】
反復（７）、ベースアドレス＝２４
【表９】
2005530246.tif 000011
【００４９】
反復（８）、ベースアドレス＝２８
【表１０】
2005530246.tif 000012
【００５０】
反復（９）、ベースアドレス＝３２
【表１１】
2005530246.tif 000013
【００５１】
上でデモンストレーションされるように、この関連するプロセスは片内の列を事前選択された回数だけ論理的にシフトする効果を有する。特に、このシフトは動作メモリ１６６のブロック数に基づいて実行される。上の例では、第１セットの３片が記憶された後に、第２セットの片は、動作メモリに記憶されると、１列で下方にシフトされる。次の続くセットの３片が動作メモリ１６６に記憶されると、それらは２列で下方にシフトされる。このプロセスは、すべてのセルが画像の列において処理されるまで、（上の例では）３片のセットあたり１列毎に繰り返される。
【００５２】
当業者は、例示的な実施の形態を複数セルの複数列に関して単に例として論じたことを理解するべきである。セルの他の構成を用いることもできる。例えば、同様の原則をセルのカラムに適用することができる。従って、様々な実施の形態はセルの列にのみ制限されることを意図するものではない。
【００５３】
上で説明された利点に加えて、例示的な実施の形態は、ポインタの動向をおさえるために中央処理装置（ＣＰＵ）１０５を必要としない。代わりに、簡単なモジューロコマンドとカウンタをある条件が満たされるまで（例えば、ベースポインタによって示されたアドレス位置と同じアドレス位置を読取りポインタが示すまで）、ポインタを増加するのに使用することとしてもよい。従って、中央処理装置の使用が最適化される。さらに、別の１片がロードされている間（すなわち、パイプライニング時）に画像データの１つのセルを処理することでシステム性能を改善することができる。
【００５４】
発明の様々な実施の形態は少なくとも部分的に如何なる従来のコンピュータープログラミング言語でも実行することができる。例えば、いくつかの実施の形態は手続き上のプログラミング言語（例えば、「Ｃ言語」）又はオブジェクト指向プログラミング言語（例えば、「Ｃ＋＋」）で実行することができる。発明の他の実施の形態はプログラムされたハードウェア要素（例えば、適用業務に特化された集積回路、ＦＰＧＡ、およびデジタルシグナルプロセッサ）又は他の関連要素として実施されてもよい。
【００５５】
代替の実施の形態では、開示されている装置と方法はコンピュータシステムによって使用されるコンピュータプログラム製品として実施されてもよい。そのような実施はコンピュータで読み込み可能なメディア（例えば、ディスケット、ＣＤ  ＲＯＭ、ＲＯＭ、または固定ディスク）などの触知できるメディアに固定された一連の機械命令又はメディアを介してネットワークに接続された通信アダプタなどのモデムその他のインタフェース装置を介してコンピュータシステムに移送可能な一連の機械命令を含んでもよい。メディアは触知できるメディア（例えば、光学メディア若しくはアナログの通信ライン）又はワイヤレス技術（例えば、マイクロウェーブ、赤外線その他の伝送方式）で実行されるメディアのどちらかであってもよい。
【００５６】
一連の機械命令は以前にシステムに関してここで説明された機能のすべてか一部を具体化する。多くのコンピュータアーキテクチャ又はオペレーティングシステムに使用する多くのプログラミング言語でそのような機械命令を書くことができることを当業者は理解すべきである。さらに、そのような命令は、半導体、磁気、光学その他のメモリ装置などの如何なるメモリ装置に記憶することができ、また、光学、赤外線、マイクロウェーブその他の伝送技術などの如何なる通信技術を用いて伝送できる。
【００５７】
そのようなコンピュータプログラム製品は付随の印刷又は電子ドキュメンテーションを備えるリムーバブルメディア（例えば、真空パック包装したソフトウェア）として配付されてもよいし、コンピュータシステム（例えば、システムＲＯＭか固定ディスク）にプレロードされてもよいし、またはネットワーク（例えば、インターネットまたはＷＷＷ）の上でサーバ又は電子掲示板から配付されることが期待される。もちろん、発明のいくつかの実施の形態はソフトウェア（例えば、コンピュータプログラム製品）とハードウェアの両方の組合せとして実行されてもよい。発明のさらに別の実施の形態は完全にハードウェア、または完全にソフトウェア（例えば、コンピュータプログラム製品）として実行される。
【００５８】
発明の様々な例示的な実施の形態が明らかにされたが、それが発明の真の範囲から逸脱することなく発明の長所のいくつかを達成できる様々な変形と変更をすることができることは当業者にとって明白である。これら及びその他の変更を添付の特許請求の範囲によってカバーすることを意図する。
【図面の簡単な説明】
【００５９】
【図１】例示的な実施の形態を実行することができる例示的なコンピュータシステムを概略的に示す図である。
【図２】発明の例示的な実施の形態に従って処理することができるグラフィックイメージフレームを概略的に示す図である。
【図３】画像を処理に使用できる２個のメモリ装置を示す図である。
【図４】図４Ａは、図３に示す第２メモリ（キャッシュメモリ）の構成の追加的詳細を示す図である。図４Ｂは、図４Ａに示す第２メモリの別の論理的な概要を示す図である。
【図５】図２示す画像を処理する例示的な方法を示す図である。
【図６】図３、４Ａ、および４Ｂに示す第２メモリを横移動する例示的な方法を示す図である。
【図１】
2005530246.tif 000014
【図２】
2005530246.tif 000015
【図３】
2005530246.tif 000016
【図４】
2005530246.tif 000017
【図５】
2005530246.tif 000018
【図６】
2005530246.tif 000019
【国際調査報告】
2005530246.tif 000020
2005530246.tif 000021
2005530246.tif 000022