(57)【要約】【課題】図形データのキャッシュ効率的なラスター化【解決手段】キャッシュは、図形データをラスター化する際に用いられるデータをストアする。このキャッシュサイズは、選択されたタイルサイズに等しい。プロセッサは、図形画像のラスター化を、この図形画像を複数のサブブロックに分割することによって実行する。これらのサブブロックは、サブブロックを、図形画像データを有するサブブロックのタイルにさらに分割することによって、ブロック処理順序に基づいて処理される。これらのタイルは選択されたタイルサイズに等しいサイズを有する。タイルと関連付けられたデータはキャッシュにロードされ、このキャッシュデータを利用して、図形画像の関連付けられたタイルの画素を生成する。【選択図】      図２
2008511930.tif 000002
【特許請求の範囲】
【請求項１】
データをストアするキャッシュであり、前記キャッシュサイズはタイルサイズと等しいサイズを含む、前記キャッシュと、
図形画像を複数のサブブロックに分割し、前記サブブロックをブロック処理順序に基づいて処理し、前記サブブロックを、図形画像データを備えるサブブロック用の複数のタイルに分割することを含み、ここで前記タイルは前記タイルサイズに等しいサイズを備え、タイルと関連付けられたデータを前記キャッシュにロードし、前記キャッシュ中の前記データを利用して、前記図形データの前記関連付けられたタイルの画素を生成する、前記キャッシュに結合されたプロセッサと、
を備える、デバイス。
【請求項２】
前記プロセッサは、ａ）前記サブブロックが前記図形画像に重なるかどうかを判定し、ｂ）前記サブブロックが前記図形画像に重なる場合に、前記サブブロックのサイズが前記タイルサイズに等しいかどうか判定し、ｃ）前記サブブロックが前記図形画像に重なり及び前記サブブロックのサイズが前記タイルサイズに等しい場合に、前記サブブロックをさらなるサブブロックに分割し、ｄ）前記さらなるサブブロックの内の１つを前記ブロック処理順序に基づいて選択する、ソフトウェアをさらに備え、前記サブブロックサイズが前記タイルサイズに等しくなるまで要素ａ、ｂ、ｃ及びｄを繰り返す、請求項１に記載のデバイス。
【請求項３】
前記プロセッサは、さらに前記図形画像を包囲する境界ボックスを決定し、前記境界ボックスを分割して前記サブブロックを生成するソフトウェアをさらに備える、請求項１に記載のデバイス。
【請求項４】
前記プロセッサは、境界ボックスサイズ２ｋ×２ｋ（ここで、Ｋは整数値を含む）を決定するソフトウェアをさらに備える、請求項３に記載のデバイス。
【請求項５】
前記タイルサイズは２ｋ×２ｋ（ここで、Ｋは整数値を含む）を含む、請求項１に記載のデバイス。
【請求項６】
前記プロセッサは、前記画素を生成する画素処理順序を割り当てるソフトウェアをさらに備える、請求項１に記載のデバイス。
【請求項７】
タイルサイズを選択する手段と、
前記図形画像を複数のサブブロックに分割する手段と、
ブロック処理順序に基づいて前記サブブロックを処理する手段であり、前記サブブロックを、図形画像データを備えるサブブロック用の複数のタイルに分割することを含み、前記タイルは前記タイルサイズを含む、前記手段と、
タイルと関連付けられたデータを前記キャッシュにロードする手段と、
前記キャッシュ中の前記データを利用して、前記図形画像の前記関連付けられたタイルの画素を生成する手段と、
を備える、キャッシュ効率のよい図形ラスター化装置。
【請求項８】
サブブロックを処理する前記手段は、
ａ）前記サブブロックが前記図形画像に重なるかどうか判定する手段と、
ｂ）前記サブブロックが前記図形画像に重なる場合に、前記サブブロックのサイズが前記タイルサイズに等しいかどうか判定する手段と、
ｃ）前記サブブロックが前記図形画像に重なり、また、前記サブブロックのサイズが前記タイルサイズに等しい場合に、前記サブブロックをさらなるサブブロックに分割する手段と、
ｄ）前記さらなるサブブロックの内の１つを前記ブロック処理順序に基づいて選択する手段と、
を備え、前記サブブロックサイズが前記タイルサイズに等しくなるまで要素ａ、ｂ、ｃ及びｄを繰り返す、請求項７に記載の装置。
【請求項９】
図形画像を包囲する境界ボックスを決定する手段と、
前記境界ボックスを分割して前記サブブロックを生成する手段と、
をさらに備える、請求項７に記載の装置。
【請求項１０】
図形画像を包囲する境界ボックスを決定する手段が、境界ボックスサイズ２ｋ×２ｋ（ここで、Ｋは整数値を含む）を決定する手段を備える、請求項９に記載の装置。
【請求項１１】
前記タイルサイズは２ｋ×２ｋ（ここで、Ｋは整数値を含む）を含む、請求項７に記載の装置。
【請求項１２】
前記キャッシュ中の前記データを利用して前記サブブロックの画素を生成する手段が、前記画素を生成する画素処理順序を割り当てることを備える、請求項７に記載の装置。
【請求項１３】
図形画像を受信することと、
タイルサイズを選択することと、
前記図形画像を複数のサブブロックに分割することと、
ブロック処理順序に基づいて前記サブブロックを処理することであり、前記サブブロックを、図形画像データを備えるサブブロック用の複数のタイルに分割することを含み、前記タイルは前記タイルサイズを含むことと、
タイルと関連付けられたデータを前記キャッシュにロードすることと、
前記キャッシュ中の前記データを利用して、前記図形画像の前記関連付けられたタイルの画素を生成することと、
を備える、キャッシュ効率のよい図形ラスター化方法。
【請求項１４】
前記サブブロックを処理することは、
ａ）前記サブブロックが前記図形画像に重なるかどうかを判定することと、
ｂ）前記サブブロックが前記図形画像に重なる場合に、前記サブブロックのサイズが前記タイルサイズに等しいかどうか判定することと、
ｃ）前記サブブロックが前記図形画像に重なり、また、前記サブブロックのサイズが前記タイルサイズに等しい場合に、前記サブブロックをさらなるサブブロックに分割することと、
ｄ）前記さらなるサブブロックの内の１つを前記ブロック処理順序に基づいて選択することと、
を備え、前記サブブロックサイズが前記タイルサイズに等しくなるまで要素ａ、ｂ、ｃ及びｄを繰り返す、請求項１３に記載の方法。
【請求項１５】
前記図形画像を包囲する境界ボックスを決定することと、
前記境界ボックスを分割して前記サブブロックを生成することと、
をさらに備える、請求項１３に記載の方法。
【請求項１６】
前記図形画像を包囲する境界ボックスを決定することは、境界ボックスサイズ２ｋ×２ｋ（ここで、Ｋは整数値を含む）を決定することを備える、請求項１５に記載の装置。
【請求項１７】
前記タイルサイズは２ｋ×２ｋ（ここで、Ｋは整数値を含む）を含む、請求項１３に記載の方法。
【請求項１８】
前記キャッシュ中の前記データを利用して、前記サブブロックの画素を生成することは、前記画素を生成する画素処理順序を割り当てることを備える、請求項１３に記載の方法。
【請求項１９】
キャッシュ効率のよい図形ラスター化方法を具体化するコンピュータ読み取り可能媒体であり、前記方法は、
図形画像を受信することと、
タイルサイズを選択することと、
前記図形画像を複数のサブブロックに分割することと、
ブロック処理順序に基づいて前記サブブロックを処理することであり、前記サブブロックを、図形画像データを備えるサブブロック用の複数のタイルに分割することを含み、前記タイルは前記タイルサイズを含むことと、
タイルと関連付けられたデータを前記キャッシュにロードすることと、
前記キャッシュ中の前記データを利用して、前記図形画像の前記関連付けられたタイルの画素を生成することと、
を備える、コンピュータ読み取り可能媒体。
【請求項２０】
前記サブブロックを処理することは、
ａ）前記サブブロックが前記図形画像に重なるかどうかを判定することと、
ｂ）前記サブブロックが前記図形画像に重なる場合に、前記サブブロックのサイズが前記タイルサイズに等しいかどうか判定することと、
ｃ）前記サブブロックが前記図形画像に重なり、また、前記サブブロックのサイズが前記タイルサイズに等しい場合に、前記サブブロックをさらなるサブブロックに分割することと、
ｄ）前記さらなるサブブロックの内の１つを前記ブロック処理順序に基づいて選択することと、
を備え、前記サブブロックサイズが前記タイルサイズに等しくなるまで要素ａ、ｂ、ｃ及びｄを繰り返す、請求項１９に記載のコンピュータ読み取り可能媒体。
【請求項２１】
前記図形画像を包囲する境界ボックスを決定することと、
前記境界ボックスを分割して前記サブブロックを生成することと、
をさらに備える、請求項１９に記載のコンピュータ読み取り可能媒体。
【請求項２２】
前記図形画像を包囲する境界ボックスを決定することは、境界ボックスサイズ２ｋ×２ｋ（ここで、Ｋは整数値を含む）を決定することを備える、請求項２１に記載のコンピュータ読み取り可能媒体。
【請求項２３】
前記タイルサイズは２ｋ×２ｋ（ここで、Ｋは整数値を含む）を含む、請求項１９に記載のコンピュータ読み取り可能媒体。
【請求項２４】
前記キャッシュ中の前記データを利用して、前記サブブロックの画素を生成することは、前記画素を生成する画素処理順序を割り当てることを備える、請求項２０に記載のコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、図形データをキャッシュ効率的にラスター化する方法と装置に関する。
【背景技術】
【０００２】
表示又は印刷目的で図形を準備するには、図形データをラスター化し、これを画素の配列（ビットマップ）に変換してからこれを用いて、図形を表示したり印刷したりする。図１に、ラスター化が実行される環境１００の概念図を示す。環境１００は、マイクロプロセシングユニット（ＭＰＵ）１０５、ストレージデバイス１１０、キャッシュ１１５、フレームバッファ１２０及び出力デバイス１２５を含んでいる。
【０００３】
ＭＰＵ１０５は、ホストコンピュータ（例えば、デスクトップもしくはラップトップコンピュータ、サーバ、ゲームコンソール、セルラー電話など）の中央演算処理装置（ＣＰＵ）を備えてよく、又は、特に図形生成専用の図形デバイス（例えば図形アクセラレータ）もしくは、デジタル信号処理アルゴリズムを実行するように調整されているデジタル信号処理（ＤＳＰ）ユニットの一部である。ストレージデバイス１１０は、永久ストレージデバイス、大容量デバイス、取り外し可能ストレージデバイス、ランダムアクセスメモリ（ＲＡＭ）などの揮発性読み書きメモリなど様々な形態のメモリリソースを備えてよい。
【０００４】
ＭＰＵ１０５は、アプリケーション１３０のプログラム命令をロードして実行して、図形データ１３２のストリームを生成する。この図形アプリケーション１３０のプログラム命令と生成された図形データ１３２とは、ストレージデバイス１１０にストアされて、ここから読み出される。生成された図形データは、表示される図形（テキスト又は画像）を記述しており、数式、ベクトルの座標、ベクトル図面など様々な形態をとりうる。図形データは、色、テクスチャ、深み（ｚ）のデータなどの図形を記述するいくつかのタイプのデータの内のいずれかを含んでよい。
【０００５】
図形データ１３２が生成されたら、ＭＰＵ１０５は、ビットマップ１３５を生成するため、この図形データをラスター化することによってこの図形データの表示の準備をする。このラスター化プロセス中、ＭＰＵ１０５は、この図形データをロード、解析して、ビットマップ１３５を生成する。例えば、ＭＰＵ１０５は、深み（ｚ）データを解析して、図形のどの要素が可視であるか、また、図形のどの要素が遮蔽されているか（図形の他の要素によって視界をさえぎられているか）を判定する。ＭＰＵ１０５はまた、色データとテクスチャデータを解析し、図形の色成分とテクスチャ成分を判定してよい。ＭＰＵ１０５によるこのような解析による判定結果は、生成されたビットマップ１３５に反映される。
【０００６】
この生成されたビットマップ１３５は、フレームバッファ１２０にストアされてから用いられて、出力デバイス１２５（例えば、表示モニタ又はプリンタ）上に画像を表示又は印刷する。このフレームバッファ１２０は、一般的には、メモリリソース（ストレージデバイス１１０など）中のメモリのエリアであり、ビットマップ化された図形をストアすると同時に、出力デバイス１２５上にこの図形を表示したり印刷したりするために用いられる。
【０００７】
上記のラスター化プロセス中、ＭＰＵ１０５は、ラスター化される図形データをストレージデバイス１１０からキャッシュ１１５に転送し、これで、ＭＰＵ１０５が一般的には、ストレージデバイス１１０にアクセスするよりかなり短い時間でこのキャッシュにアクセス可能となる。次に、ＭＰＵ１０５は、キャッシュ１１５から図形データをロードし、この図形データをラスター化して、ビットマップ１３５を生成する。後になって、ラスター化プロセス中に特定の図形データがＭＰＵにおいて必要となった場合、ＭＰＵは最初に、キャッシュ１１５に対するアクセス時間はストレージデバイス１１０に対するそれより短いため、この特定の図形データがキャッシュ１１５にストアされているかどうか判定する。この特定の図形データがキャッシュ中に存在すれば、「キャッシュヒット」となり、これによって、この特定の図形データがキャッシュから検索される。この特定の図形データがキャッシュ中に存在しなければ、「キャッシュミス」となり、これによって、この特定の図形データは、ストレージデバイス１１０からキャッシュ１１５に転送しなければならないが、これによって、キャッシュ１１５から直接に検索する場合と比べて多くの時間とエネルギーが消費される。したがって、図形データは、できるかぎりラスター化プロセス中にキャッシュ１１５から直接に検索した方が有利であるが、これは、こうしたほうが必要とされる時間とエネルギーの分量が減るためである。これは、バッテリの電力が大いに必要となるラスター化を携帯式デバイス（ラップトップコンピュータ、セルラー電話など）で実行中には、特に当てはまる。
【０００８】
しかしながら、一般的に、このラスター化プロセスは、図形データをストレージデバイスからキャッシュに対して何回も転送する必要があるような、非効率的な仕方で実行される。これは、従来のラスター化方法では、キャッシュに対する図形データの転送回数が最大化されることがなく、キャッシュに転送される図形データのほとんど又はすべてが、ストレージデバイスからの図形データがさらに必要とされるより前に、ラスター化されるせいである。その結果、一般的に、キャッシュにロードされた図形データのかなりの部分が処理されずに廃棄され、次に、ストレージデバイスからロードされた他の図形データに取って代わられることになる。
【０００９】
したがって、ストレージデバイスからキャッシュに対する図形データの転送回数を最適化して、図形データの必要転送回数が減少するような効率的な仕方で、図形データをラスター化する技法に対する必要性が存在する。これによって、ラスター化プロセスを実行するために必要とされる時間とエネルギーが軽減される。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
画像を記述する図形データはラスター化するために処理される。図形データのブロック（画素配列）は、二分探索分割プロセスに基づいた「Ｚ」パターンの順序で解析されて、画像のサブブロック（サブ画素配列）のラスター化順序を決定する。一部の実施形態では、ブロックとサブブロックの辺は、２の累乗である長さを（画素という形で）有している。この技法では、サブブロックを、これが所定のタイルサイズに適合するまで更なるサブロックに再帰的に分割する再帰的プロセス（二分探索分割プロセス）を用いて、画像のサブブロックの解析順序を決定する。結果として得られる各々のサブブロックの辺もまた、２の累乗である長さを（画素という形で）有している。ある状況下では、次に、この技法では、サブブロック（タイルサイズに等しいサイズを有している）と関連している図形データをキャッシュにロードして、ラスター化する。一部の実施形態では、ブロックを成す画素を、これまた二分探索分割プロセスに基づいている「Ｚ」パターン走査順序でラスター化する。
【００１１】
タイルサイズは、キャッシュサイズに基づいて決定される。一部の実施形態では、このタイルは、２の累乗である長さを（画素という形で）持つ辺を有する方形である。ある状況下では、この技法が、所定のタイルサイズを有するタイル（サブブロック）の図形データをキャッシュにロードしてラスター化する。一部の実施形態では、キャッシュサイズがタイルサイズをサポートし、これで、このタイルと関連するすべての図形データをキャッシュに対して同時にストアすることが可能となるようにする。一部の実施形態では、タイルは、他の図形データがキャッシュにロードされるより前に、キャッシュからラスター状に展開される。
【課題を解決するための手段】
【００１２】
本発明の方法は、図形データをキャッシュにロードして、この図形データをキャッシュからラスター状に展開する効率的な方法を提供する。タイルサイズはキャッシュサイズに基づいているため、キャッシュに同時にストアされた図形データのほとんど又はすべてが、更なる図形データがストレージデバイスからキャッシュにロードされるより前にラスター化される。したがって、キャッシュに対するデータ転送回数が最適化され、キャッシュに対する図形データの転送回数が減少する。また、画像のサブブロックの処理順序が、サブブロックの解析とラスター化の順序を効率化する二分探索分割プロセスに基づく「Ｚ」パターン順序によって決定される。
【００１３】
また、この技法では、２の累乗であるサイズを（画素という形で）有するタイルとサブブロックとを用いることによって、図形データの処理を効率化する。したがって、この図形データ処理で必要とされる計算が簡略化されて、複雑な二進法除算演算の数が減り、さらに、これらのほとんどが簡単で迅速なシフト演算で置き換えられる。これらの簡略化されたシフト演算は、例えば、サブブロックをさらなるサブブロックに再帰的に分割する再帰的プロセス（二分探索分割プロセス）で、又は、特定のサブブロックが画像に重なっているかどうか判定する際に、用いられてよい。
【００１４】
本発明の新規な特徴は添付の特許請求の範囲に記載されている。しかしながら、説明の目的上、本発明のいくつかの実施形態を以下の図に記載する。
【発明を実施するための最良の形態】
【００１５】
以下の説明において、多くの詳細を説明目的で記載する。しかしながら、当業者は、本発明がこれらの特定的な詳細を用いなくても実施可能であることを認識するであろう。別の例では、公知の構造とデバイスとをブロック図の形態で示して、不必要な詳細を記載することで本発明の説明があいまいになることがないようにしている。
【００１６】
画像を記述している図形データはラスター化のために処理される。この技法では、図形データのブロック（画素配列）を、二分探索分割プロセスに基づいた「Ｚ」パターンの順序で解析して、画像のサブブロック（サブ画素配列）のラスター化順序を決定する。一部の実施形態では、ブロックとサブブロックの辺は、２の累乗である長さを（画素という形で）有している。この技法では、サブブロックを、これが所定のタイルサイズに適合するまで更なるサブロックに再帰的に分割する再帰的プロセス技法（二分探索分割プロセス）を用いて、画像のサブブロックの解析順序を決定する。結果として得られる各々のサブブロックの辺もまた、２の累乗である長さを（画素という形で）有している。ある状況下では、次に、この技法では、サブブロック（タイルサイズに等しいサイズを有している）と関連している図形データをキャッシュにロードして、ラスター化する。一部の実施形態では、ブロックに関連する画素を、これまた二分探索分割プロセスに基づいている「Ｚ」パターン走査順序でラスター化する。
【００１７】
タイルサイズは、キャッシュサイズに基づいて決定される。一部の実施形態では、このタイルは、２の累乗である長さを（画素という形で）持つ辺を有する方形である。ある状況下では、この技法が、所定のタイルサイズを有するタイル（サブブロック）の図形データをキャッシュにロードしてラスター化する。一部の実施形態では、キャッシュサイズがタイルサイズをサポートし、これで、このタイルと関連するすべての図形データをキャッシュに対して同時にストアすることが可能となるようにする。一部の実施形態では、タイルは、他の図形データがキャッシュにロードされるより前にキャッシュデータを用いてラスター化される。
【００１８】
本明細書に開示する本技法は、図形データをキャッシュにロードして、この図形データをキャッシュからラスター状に展開する効率的な方法を提供する。タイルサイズはキャッシュサイズに基づいているため、キャッシュに同時にストアされた図形データのほとんど又はすべてが、更なる図形データがストレージデバイスからキャッシュにロードされるより前にラスター化される。したがって、キャッシュに対するデータ転送回数が最適化され、キャッシュに対する図形データの転送回数が減少する。また、画像のサブブロックの処理順序が、サブブロックの解析とラスター化の順序を効率化する二分探索分割プロセスに基づく「Ｚ」パターン順序によって決定される。
【００１９】
また、この技法では、２の累乗であるサイズを（画素という形で）有するタイルとサブブロックとを用いることによって、図形データの処理を効率化する。したがって、この図形データ処理で必要とされる計算が簡略化されて、複雑な二進法除算演算の数が減り、さらに、これらのほとんどが簡単で迅速なシフト演算で置き換えられる。これらの簡略化されたシフト演算は、例えば、サブブロックをさらなるサブブロックに再帰的に分割する再帰的プロセス（二分探索分割プロセス）で、又は、特定のサブブロックが画像に重なっているかどうか判定する際に、用いられてよい。
【００２０】
本発明に関する以下の説明には、セクションＩで解説するように、図形データをラスター化するために処理する一般的な技法が含まれている。この説明にはまた、セクションＩＩで解説するように、二分探索分割プロセスに基づく「Ｚ」パターン順序にしたがって画像のサブブロックを処理する再帰的処理も含まれる。この説明にはさらに、セクションＩＩＩで解説するように、二分探索分割プロセスに基づく「Ｚ」パターン順序にしたがってブロックの画素の走査順序を指定する、再帰的関連付け技法が含まれる。
【００２１】
セクションＩ：ラスター化のための図形データの処理
図２は、図形データストリームを処理してラスター化する一般的技法２００を示すフローチャートである。一般的技法２００は、画像（図形データで記述されている）を「Ｚ」パターン順序で解析して、この画像のサブブロックのラスター化順序を決定する。一般的技法２００は、図形データストリームを生成するアプリケーション、生成された図形データをストアするストレージデバイス、及び図形データのある部分をラスター化するために一時的にストアするキャッシュと共に、用いられる。一般的技法２００を、図３Ａから３Ｂを参照して説明する。図３Ａから３Ｂに、例示の画像を一般的技法２００で処理する概念図を示す。
【００２２】
このプロセスは、一般的技法２００で図形データを処理している間に図形データを一時的にストアするために用いられるキャッシュサイズに基づいて、タイルサイズ（画素配列のサイズ）を決定する（２０５）ことによって開始される。このタイルサイズは、キャッシュサイズと相互関連付けされ、このキャッシュサイズが、タイルサイズをサポートすることが可能となるように（すなわち、キャッシュサイズが、１つのタイルと関連するすべてのデータを同時にストアすることが可能となるように）決定される。このタイルサイズは、タイルの各々の画素に対して必要とされるデータの分量（これは、色品質、テクスチャデータや深みデータの存在などによって変動する）によって決まる。
【００２３】
このタイルサイズは、画像を生成するためにアプリケーションが用いる三角形画像の図形データ及びサイズを生成するアプリケーションによって調整／影響されうる。一般的には、アプリケーションは、画像を複数の三角形画像の複合体として記述している図形データを生成する。画像を構成するために用いられるこの三角形画像のサイズは、アプリケーションによって変動する。一部の実施形態では、決定されたタイルサイズは、比較的小さい三角形画像を用いるアプリケーションに対しては減少され、比較的大きい三角形画像を用いるアプリケーションに対しては増大される。
【００２４】
一部の実施形態では、タイルは、２の累乗（２ｔ）である（画素単位で測定した）長さを有する辺を持つ方形であって、２ｔ×２ｔ個の画素からなる配列を備えている。本明細書で言うところのタイルとは、所定のサイズの画素配列のことである。しかしながら、本明細書で言うところのタイルとはまた、このタイルの所定のサイズと適合するサイズを（画素という形で）有する画像のサブブロックのことでもある。
【００２５】
次に、一般的技法２００は、所定のサイズを有するａ×ａ画素配列に対する図形データを（図形データストリームから）受信する（２１０）。図３Ａに、受信した画素配列３０５の例示画像３１０の概念図を示す。図３Ａのこの例では、受信した画素配列３０５は、表示される三角形画像３１０を含む３２×３２配列である。
【００２６】
プロセス２００は次に、この画像を囲む境界ボックスのサイズと位置を決定する（２２０）。一部の実施形態では、この境界ボックスは、２の累乗である（画素単位で測定した）長さを有する辺を持つ方形である。図３Ｂに、画像３１０を囲む例示の境界ボックス３１５の概念図を示す。図３Ｂのこの例では、この境界ボックス３１５は、１６×１６画素配列（２ｋ個の画素からなる辺を有する（ここでｋ＝４））を備えている。境界ボックス３１５のサイズと位置を決定するプロセス４００を、図４を参照して以下に説明する。
【００２７】
次に、プロセス２００は、境界ボックスの（画素という形で示す）サイズがタイルサイズ（ステップ２０５で決定済み）に等しいかどうか判定する（２２５）。等しければ、プロセス２００は、境界ボックスと関連付けられ、境界ボックス内の画像を記述している図形データを、ストレージデバイスからキャッシュにロードする（２３０）。次に本プロセスは、境界ボックス内に含まれている画像を（キャッシュにロードされた関連付けられた図形データによって記述されているように）ラスター化する（２３５）。この境界ボックスの画像は、ストレージからキャッシュに対して更なるデータをロードすることなくラスター化することが可能であるが、これは、キャッシュサイズが境界ボックスサイズをサポートしているからである。これは、タイルサイズをサポートするキャッシュサイズは、境界ボックスのサイズがタイルサイズに等しいと判定済み（２２５：イエス）のため、境界ボックスのサイズもサポートしているという事実によるものである。一部の実施形態では、境界ボックスの画像全体を、さらなる図形データをキャッシュにロードする前にラスター化する。
【００２８】
次に、本プロセスは、図形データストリーム中にまだ処理すべき図形データがあるかどうかを判定する（２３７）。あれば、プロセスはステップ２１０に進んで、次のａ×ａの画素配列に対する図形データを受信する。なければ、プロセスは終了する。
【００２９】
境界ボックスのサイズがタイルサイズとは等しくないと判定された場合（２２５：ノー）、現行のブロックを境界ボックスと設定する（２４０）。次に、再帰的処理技法（図５を参照して以下に説明する）をコールして（２４５）、図形データのこの現行ブロック（境界ボックス）を再帰的処理技法に渡す。再帰的処理技法は、現行ブロックのサブブロックを効率的な順序で解析してラスター化する。一部の実施形態では、再帰的処理技法は、現行ブロックのサブブロックを、二分探索分割プロセスに基づく「Ｚ」処理パターンにしたがって処理する。次に、図形データストリーム中に処理すべき図形データがあるかどうか判定する（２３７）。あれば、ステップ２１０に進んで、次のａ×ａ画素配列の図形データを受信する。なければ、終了する。
【００３０】
図４は、表示される画像を囲む境界ボックスのサイズと位置を決定するプロセス４００を示すフローチャートである。プロセス４００は、一般的プロセス２００のステップ２２０を備えている。プロセス４００を、図３Ａから３Ｂを参照して説明する。プロセス４００は三角形である画像に関連しているが、当業者は、プロセス４００が、他の形状や形態の画像を囲む境界ボックスを判定するように容易に適合されうることを認識するであろう。また、プロセス４００では、三角形の画像は、この三角形の頂点の水平方向と垂直方向の座標（（ｘ１、ｙ１）、（ｘ２、ｙ２）、（ｘ３、ｙ３））によって指定されるものと仮定している。しかしながら、当業者は、三角形の画像は別の方法でも指定されうることを認識するであろう。
【００３１】
一部の実施形態では、境界ボックスは、画像を囲むことが可能な最小サイズを有し同時に、２の累乗である長さ（画素という形で示す）を持つ辺を有している方形（すなわち、画像を囲み、２の累乗である辺を持つ最小の方形）である。境界ボックスの辺の長さは２ｋと表し、これで、境界ボックスが２ｋ×２ｋ画素配列を備えるようにする。
【００３２】
プロセス４００は、この三角形画像の頂点の水平方向と垂直方向の座標（（ｘ１、ｙ１）、（ｘ２、ｙ２）、（ｘ３、ｙ３））を特定する（４０５）ことによって開始される。一部の実施形態では、これらの水平方向と垂直方向の座標は、この三角形の画像を包含している画素配列の画素座標という形を取っている。このステップの例を図３Ａに示す。
【００３３】
次に、これら特定された頂点の最小と最大の水平方向と垂直方向座標を決定する（４１０）。次のように式の形で決定する。
【００３４】
ｘｍｉｎ＝ｍｉｎ（ｘ１、ｘ２、ｘ３）、
ｘｍａｘ＝ｍａｘ（ｘ１、ｘ２、ｘ３）、
ｙｍｉｎ＝ｍｉｎ（ｙ１、ｙ２、ｙ３）、及び、
ｙｍａｘ＝ｍａｘ（ｙ１、ｙ２、ｙ３）。
【００３５】
例えば、図３Ａに示す画像３１０の場合、ｘｍｉｎ＝ｘ１、ｘｍａｘ＝ｘ３、ｙｍｉｎ＝ｙ３、ｙｍａｘ＝ｙ２と決定してよい。
【００３６】
次に、画像のスパン（ｓ）を決定する（４１５）。このスパンは、画像の水平方向長さ（画素単位で測定される）と垂直方向長さ（画素単位で測定される）のどちらか長いほうである。スパン（ｓ）は、式の形で、ｓ＝ｍａｘ（ｘｍａｘ−ｘｍｉｎ、ｙｍａｘ−ｙｍｉｎ）で表される。例えば、図３Ａに示す画像３１０の場合、ｓ＝ｍａｘ（ｘ３−ｘ１、ｙ２−ｙ３）＝（ｘ３−ｘ１）と決定される。したがって、図３Ａの例では、画像の水平方向長さのほうが画像の垂直方向長さより長いので、この水平方向長さによってスパンが決まる。
【００３７】
次に、ｋの数値を、２ｋ−１＜ｓ≦２ｋとなるように決定する（４２０）。ｋの値によって、境界ボックスのサイズが決まるが、この場合、境界ボックスは２ｋ×２ｋ画素配列を備え、２ｋという辺の長さを有している。例えば、図３Ｂに示すように、ｋの値は４と決定され、これで、境界ボックス３１５の辺が１６画素分の長さとなる（境界ボックス３１５が１６×１６画素配列を備える）用になっている。
【００３８】
次に、境界ボックスの位置を決定する（４２５）。一部の実施形態では、以下のようになるように数値ｘ０を決定することによって境界ボックスの位置を決定する。
【００３９】
ｘ０＝２ｔｎ、
ｘ０≦ｘｍｉｎ、かつ、
２ｔ（ｎ＋１）＞ｘｍｉｎ。
【００４０】
また、数値ｙ０を以下のようになるように決定する。
【００４１】
ｙ０＝２ｔｍ、
ｙ０≦ｙｍｉｎ、かつ、
２ｔ（ｍ＋１）＞ｙｍｉｎ。
【００４２】
次に、境界ボックスの４つの頂点を次に示す座標で特定する。
【００４３】
（ｘ０、ｙ０）、
（ｘ０＋２ｋ、ｙ０）、
（ｘ０、ｙ０＋２ｋ）、及び、
（ｘ０＋２ｋ、ｙ０＋２ｋ）。
【００４４】
境界ボックスの頂点と位置は、三角形の画像全体を（図３Ｂの例に示すように）囲むように決定される。これで、プロセスは終了する。
【００４５】
セクションＩＩ：画像のサブブロックを解析してラスター化する再帰的処理
図５は、効率的な「Ｚ」パターン順序で図形データのブロックを解析してラスター化する再帰的処理技法５００を示すフローチャートである。一部の実施形態では、この再帰的処理技法では、図形データのサブブロックを選択して、二分探索分割プロセスを用いて特定の順序で解析し、また、場合によりラスター化も実施する。技法５００は、図形データを生成するアプリケーション、この生成された図形データをストアするストレージデバイス、及びラスター化に用いられるデータを一時的にストアするキャッシュと共に用いられる。図５を、図６Ａから６Ｅと関連付けて説明する。図５は、（図形データのブロックによって記述されている）例示の画像の、それが再帰的処理技法５００によって処理される様子を示す概念図を示している。
【００４６】
この再帰的処理技法は、ステップ２４５で図２の一般的プロセス２００によってコールされて、一般的プロセス２００から（現行ブロックと関連している図形データによって記述されているような）画像を有する現行ブロック（境界ボックス）を受信する。図６Ａに、図３Ｂから境界ボックス３１５を備えている現行ブロック６０５の概念図を示す。図６Ａの例に示すように、現行ブロック６０５は、ラスター化され表示される三角形画像６１０を有する１６×１６画素配列を備えている。
【００４７】
再帰的処理技法５００は、現行ブロックを分割して（５０５）サブブロックを生成する（すなわち、現行ブロックの画素配列を分割して、サブ画素配列を生成する）ことによって開始される。一部の実施形態では、現行ブロックを、垂直方向真ん中と水平方向真ん中とで分割して、等しいサイズである４つのサブブロックを生成する。図２を参照して上述したように、現行ブロックは、２の累乗の（画素単位で測定した）長さである辺を有する方形である。したがって、各々のサブブロックもまた、２の累乗の長さを有する辺を持つ方形である。図６Ｂに示す例では、現行ブロックは１６×１６画素配列であり、これで、生成されたサブブロックはその各々が８×８画素配列となるようになる。
【００４８】
次に、本技法は、（図６Ｂに示すような）「Ｚ」パターンにしたがって、処理順序を、生成された各々のサブブロックと関連付ける（５０７）。言い換えれば、現行ブロックの左上の角のサブブロック（サブブロック１）はこの処理順序で関連付けられた最初の位置を有し、現行ブロックの右上の角のサブブロック（サブブロック２）はこの処理順序で関連付けられた２番目の位置を有し、現行ブロックの左下の角のサブブロック（サブブロック３）はこの処理順序で関連付けられた３番目の位置を有し、現行ブロックの右下の角のサブブロック（サブブロック４）はこの処理順序で関連付けられた４番目（最後）の位置を有する。統計的には、この処理順序によって、ある順序で画素を解析してラスター化して、キャッシュを効率的に利用できるようになる。
【００４９】
次に、技法５００は、関連付けられた処理順序にしたがって現行のサブブロックを選択する（５１０）。したがって、技法５００を複数回繰り返すことによって、サブブロック１が最初に選択されて処理され、サブブロック２が２番目に選択されて処理され、サブブロック３が３番目に選択されて処理され、サブブロック４が最後に選択されて処理される。
【００５０】
次に、技法５００は、現行のサブブロックが現行のブロック中の画像に重なるかどうか判定する（５１５）。一部の実施形態では、本技法は、この判定を、現行のサブブロックが画像の完全に内部にあるか又は画像と交差するか（すなわち、画像が部分的にサブブロック中にあって、画像の辺がサブブロックの辺と交差しているかどうか）判定することによって実施する。一部の実施形態では、本技法は、現行のサブブロックが完全に画像の内部にあるか、又は、現行のサブブロックが画像と交差するか（すなわち、現行のサブブロックが画像と非ゼロ交点を有するかどうか）を、次のステップを実行することによって判定する。最初に、本技法は、ｅ１、ｅ１、ｅ３が三角形のエッジ／辺の式であり、ｂ１、ｂ２、ｂ３、ｂ４が現行のサブブロックのエッジ／辺の式であると仮定する。次に、本技法は、数値Ｅｉ、ｊを、ｅｉのエッジ式に入力されると非負値となるｂｊに属する頂点の数として定義する。次に、この技法は、式Ｅ１，１＋Ｅ１，３＋Ｅ２，１＋Ｅ２，３＋Ｅ３，１＋Ｅ３，３＝１２が成立するかどうか判定する。成立すれば、現行のサブブロックが完全に画像に包含される。成立しなければ、現行のサブブロックは画像に完全には包含されない。次に、本技法は、あるｊに対して、式Ｅ１，ｊ＞０、式Ｅ２，ｊ＞０、式Ｅ３，ｊ＞０が成立するかどうか、また、ｂｊに属する少なくとも１つの頂点が、［ｘｍｉｎ，ｘｍａｘ］×［ｙｍｉｎ，ｙｍａｘ］で画定される境界ボックス内にあるかどうか判定する。そうであれば、現行のサブブロックは画像と交差する（すなわち、画像と非ゼロ交差点を有する）。そうでなければ、現行のサブブロックは画像と交差しない。
【００５１】
現行のサブブロックが画像に重ならない場合には、現行のサブブロックは無視され、本技法は次に、処理すべきサブブロックが現行のブロック中にまだあるかどうか判定する（５２０）。あれば、本技法はステップ５１０に進んで、次の現行のサブブロックが関連付けられた処理順序にしたがって選択される。なければ、本技法はコール手順に戻る。本技法５００を最初に繰り返すときには、このコール手順は一般的な技法２００であるが、それ以降の繰り返しでは、このコール手順は技法５００自体である。
【００５２】
技法５００が現行のサブブロックが画像に重なると判定すると（５１５：イエス）、本技法はステップ５２７に進む。ここで、図６Ｂに示す例では、サブブロック１は画像６１０に重なっている。ステップ５２７では、本技法は、現行のサブブロックのサイズがタイルサイズ（一般的技法２００のステップ２０５で決定済み）に等しいかどうか判定する。等しければ、技法５００は、現行のサブブロックと関連付けられている図形データをストレージデバイスからキャッシュにロードする（５３０）（すなわち、現行のサブブロックに重なる画像部分を記述している図形データをロードする）。
【００５３】
次に、本技法は、（キャッシュにロードされた関連付けされた図形データによって記述されているような）画像の現行のサブブロックをラスター化する（５３５）。現行のサブブロックは、ストレージからキャッシュに対してさらにデータをロードしなくてもラスター化することが可能であるが、これは、キャッシュサイズが現行のサブブロックのサイズをサポートするからである。これは、キャッシュサイズは、タイルサイズをサポートしているので、現行のサブブロックのサイズがタイルサイズに等しいと判定されている（５２７：イエス）ため、現行のサブブロックサイズもサポートするという事実による。一部の実施形態では、現行のサブブロックの全体を、図形データをさらにキャッシュにロードする以前にラスター化する。
【００５４】
本技法が、現行のサブブロックのサイズがタイルサイズと等しくないと判定する（５２７：ノー）と、技法５００（コール手順）は、現行のサブブロックに対して再帰する。本技法は、現行のブロックを現行のサブブロックと設定し（５４０）、自身を現行のブロックのためにコールし（５４５）、図形データの現行ブロックをコールされた／再帰された手順に渡すことによって（５４５）これを実行する。技法５００を現行のサブブロックのために再帰させることによって、本技法は、タイルサイズが適合するまで、サブブロックをさらなるサブブロックに分割し続ける（５０５）。タイルサイズがサブブロックと適合すると、このサブブロックと関連付けられた図形データがキャッシュにロードされ、サブブロックがラスター化される（５３０と５３５）。処理すべきサブブロックが現行のブロック中になくなると、本技法はコール手順（一般的技法２００又は技法５００自体）に戻る（５２５）。
【００５５】
図６Ｂに示す例の場合、タイルサイズは、サブブロックサイズ（８×８画素配列）とは適合しないように２×２画素配列であると仮定する。したがって、図６Ｂに示す例では、技法５００を最初に繰り返すと、本技法はサブブロック１のために再帰する（５４５）。図６Ｃの例に示すように、サブブロック１は４つの４×４サブブロックに分割される（５０５）が、これらのサブブロックは関連付けられた「Ｚ」パターン処理順序となっている。サブブロック１は、技法５００が解析するように選択される（５１０）最初のサブブロックとなる。サブブロック１は、画像６１０には重ならないため無視され、サブブロック２が選択されて（５１０）解析されるようになる。サブブロック２は画像６１０に重なるが、タイルサイズに等しいサイズを有してはいない（サブブロックサイズは４×４で、タイルサイズは２×２であるので）ため、技法５００はサブブロック２のために再度回帰する（５４５）。
【００５６】
図６Ｄの例に示すように、サブブロック２は４つの２×２サブブロックに分割される（５０５）が、これらサブブロックは関連付けられた「Ｚ」パターン処理順序となっている。サブブロック１は、技法５００によって処理される最初のサブブロックとなる。サブブロック１は画像６１０に重なり、タイルサイズに等しいサイズを有している（サブブロックサイズは２×２で、タイルサイズは２×２であるので）ため、技法５００は、サブブロック１と関連付けられている図形データをキャッシュにロードして（５３０）、このサブブロックをラスター化する（５３５）。次に、本技法はサブブロック２を解析して、サブブロック２と関連付けられている図形データをロードしてラスター化する。本技法は、サブブロック３に対し、次にサブブロック４に対して同じことを実行する。
【００５７】
サブブロック４を処理した後では、本技法は、現行のブロック（図６Ｃのサブブロック２）のサブブロックはもはやないと判定する（５２０）。したがって、本技法は、図６Ｃのサブブロック２の処理を終了した（５４５）コール手順（技法５００）に戻る（５２５）。次に、本技法は、現行のブロック（図６Ｂのサブブロック１）の処理すべきサブブロック（図６Ｃのサブブロック３と４）がまだあると判定する（５２０）。したがって、次に、本技法は、図６Ｃのサブブロック３を選択して（５１０）解析されるようにする。
【００５８】
技法５００は、図６Ｂの各々のサブブロックが処理されるまでこのように継続される。これらのサブブロックを処理している間、さらなるサブブロックが再帰的に作成されて、その内のあるサブブロックはキャッシュにロードされてラスター化され、またあるものは無視される。図６Ｅに、技法５００で生成された画像６１０のサブブロックのラスター化順序の例を示す。サブブロック中の数値は、サブブロックの他のサブブロックに対するラスター化順序を示している。実践と点線は、サブブロックをさらなるサブブロックに分割することを示しており、この内の点線は、タイルサイズと同じサイズを有するサブブロックを示している。
【００５９】
セクションＩＩＩ：「Ｚ」パターン走査順序
一部の実施形態では、本発明の技法は、ブロックのラスター化の間にブロック（画素配列）の画素を走査する「Ｚ」パターン順序を実現する。例えば、「Ｚ」パターンラスター化順序を用いて、境界ボックス内の画像を走査したり（図２のステップ２３５）、画像のサブブロックを走査したり（図５のステップ５３５）する。
【００６０】
図７は、ラスター化されるブロックの画素の走査順序を解析して指定する再帰的な関連付け技法７００を示すフローチャートである。技法７００は、２×２より大きいサイズを有するブロックに適用することが可能である。２×２ブロックの画素には単に「Ｚ」走査順序（図８Ａに示すような順序）が指定される。再帰的関連付け技法７００は、サブブロックのサイズが２×２になるまで、ブロックのサブブロックをさらなるサブブロックに再帰的に分割する二分探索分割プロセスを用いて、ブロックの画素に対して走査順序を指定する。次に、本技法は、２×２サブブロックの画素に対して「Ｚ」走査順序（図８Ａに示すようなもの）を指定する。再帰的関連付け技法７００は、タイルサイズが２×２画素配列に等しい図５の再帰的処理技法５００に類似している。再帰的処理技法５００と異なっているようなステップだけをここでは詳細に説明する。
【００６１】
再帰的関連付け技法７００は、ラスター化される現行のブロック（画素配列）を受信する（７０２）ことによって開始される。一部の実施形態では、ブロックは２の累乗である（画素単位で測定した）長さを有する辺を持った方形である。ブロックは２ｔ×２ｔ画素配列を備えている。次に、本技法は、現行ブロックを分割して（７０５）４つの等しいサイズのサブブロックを生成するが、これらサブブロックは各々が２の累乗である（画素単位で測定した）長さを持った辺を有している。次に、本技法は、（図６Ｂに示す）「Ｚ」パターンにしたがって、処理順序を各々の生成されたサブブロックと関連付ける（７０７）。ここで、この処理順序は画素に対して指定された走査順序とは同じではなく、この処理順序は解析の順序となるが、この解析順序にしたがって技法７００は走査順序を決定し、一方、画素に対して指定された走査順序は、ラスター化中に画素が走査される順序となる。
【００６２】
次に、技法７００は、関連付けされた処理順序にしたがって現行のサブブロックを選択する（７１０）。本技法は、現行のサブブロックのサイズが２×２サイズであるかどうか判定する（７１５）。そうであれば、技法７００は、現行のサブブロックの画素に対して「Ｚ」パターン走査順序を指定する（７１７）。言い換えれば、現行のサブブロックの左上の角の画素はこの走査順序で関連付けされた第１の位置を有しており、現行のサブブロックの右上の角の画素はこの走査順序で関連付けされた第２の位置を有しており、現行のサブブロックの左下の角の画素はこの走査順序で関連付けされた第３の位置を有しており、現行のサブブロックの左上の角の画素はこの走査順序で関連付けされた第４の位置を有している。
【００６３】
次に、本技法は、現行のブロックのサブブロックの内、処理すべきものがまだあるかどうか判定する（７２０）。あれば、本技法はステップ７１０に進んで、関連付けされた処理順序にしたがって次の現行Ｎ’サブブロックを選択する。なければ、本技法はコール手順に戻る。
【００６４】
本技法は、現行のサブブロックのサイズが２×２サイズでないと判定すると（７１５：ノー）、技法７００（コール手順）は、現行のサブブロックのために再帰する。本技法は、現行のブロックを現行のサブブロックとして設定し（７４０）、自身を現行のブロックのためにコールし（７４５）、この現行のブロックをコールされた／再帰された手順に対して渡す（７４５）ことによって、それを実行する。現行のサブブロックのために技法７００を再帰させることによって、本技法は継続されて、２×２サブブロックとなるまで、サブブロックをさらなるサブブロックに分割する（７０５）。２×２サブブロックになると、サブブロックの画素に対する「Ｚ」パターン走査順序が指定される（７１７）。現行のブロックで処理すべきサブブロックがなくなると、本技法はコール手順に戻る（７２５）。
【００６５】
図８Ａに、２×２画素配列に対する「Ｚ」パターン走査順序を示す。図８Ｂから８Ｃに、技法７００が発生した走査順序の例を示す。図８Ｂは、４×４ブロックに対する結果として得られた走査順序を示し、図８Ｃに、１６×１６ブロックに対する結果として得られた走査順序を示す。走査画素配列に対するこの「Ｚ」パターン走査順序は、統計的に見て、テクスチャマッピングキャッシュのヒット率を向上させる。
【００６６】
図９は、本発明の一部の実施形態を実施するコンピュータシステム９００を提示する図である。一部の実施形態では、本発明の技法は、具体的には図形作成専用のハードウェアデバイスにハードコーディングされる、及び／又はコンピュータ読み取り可能媒体（ソフトウェア）にストアされているコンピュータで実行可能な命令として実施される。
【００６７】
コンピュータシステム９００は、バス９０５、プロセッサ９１０、システムメモリ９１５、読み取り専用メモリ９２０、永久ストレージデバイス９２５、入力デバイス９３０、出力デバイス９３５及び代替のプロセッサ９４０を含んでいる。
【００６８】
バス９０５は、コンピュータシステム９００の多くの内部デバイスを通信可能に接続するシステムバス、ペリフェラルバス及びチップセットバスを、すべてまとめて表すものである。例えば、バス９０５は、プロセッサ９１０を、読み取り専用メモリ９２０、システムメモリ９１５及び永久ストレージデバイス９２５と通信可能に接続する。
【００６９】
読み取り専用メモリ（ＲＯＭ）９２０は、コンピュータシステムのプロセッサ９１０や他のモジュールが必要とする静的データや命令をストアする。他方、永久ストレージデバイス９２５は読み書きメモリデバイスである。このデバイスは、コンピュータシステム９００がオフ状態でも命令とデータをストアする、不揮発性メモリユニットである。本発明の一部の実施形態では、大容量ストレージデバイス（磁気ディスク又は光ディスク及びそれに対応するディスクドライブなど）を永久ストレージデバイス９２５として用いている。永久ストレージデバイスとして、取り外し可能ストレージデバイス（フロッピー（登録商標）ディスク又はｚｉｐ（登録商標）ディスク及びそれに対応するディスクドライブなど）を用いている実施形態もある。
【００７０】
永久ストレージデバイス９２５のように、システムメモリ９１５は読み書きメモリデバイスである。しかしながら、ストレージデバイス９２５とは異なって、このシステムメモリは、ランダムアクセスメモリ（ＲＡＭ）などの揮発性読み書きメモリである。このシステムメモリは、プロセッサがランタイムに必要とする命令とデータの一部をストアする。
【００７１】
一部の実施形態では、本発明の方法を実行するために必要とされる命令及び／又はデータは、システムメモリ９１５、永久ストレージデバイス９２５、読み取り専用メモリ９２０又はこれら３つの任意の組み合わせにストアされる。例えば、様々なメモリユニットが、アプリケーションの命令及び／又はこのアプリケーションが生成した図形データを含んでいてよい。一部の実施形態では、システムメモリ９１５及び／又は永久ストレージデバイス９２５は、キャッシュ及び／又はバッファを備えている。
【００７２】
これら様々なメモリユニットから、プロセッサ９１０は、実行すべき命令と処理すべきデータとを検索して、本発明のプロセスを実行する。一部の実施形態では、プロセッサ９１０は、オンチップキャッシュ９１２を用いて、プロセッサ９１０が最近アクセスした又は生成したデータを保持する。一部の実施形態では、代替プロセッサ９４０が、命令を実行し、データを処理して、本発明のプロセスを実行する。
【００７３】
バス９０５はまた、入力デバイス９３０と出力デバイス９３５に接続している。入力デバイス９３０によって、ユーザはコンピュータシステム９００に対して情報を通信し、コマンドを選択する。入力デバイス９３０は、英数字キーボードとカーソルコントローラを含んでいる。出力デバイス９３５は、コンピュータシステム９００が生成した画像を印刷したり表示したりする。この出力デバイスは、プリンタと、陰極線管（ＣＲＴ）や液晶表示装置（ＬＣＤ）などの表示デバイスとを含んでいる。
【００７４】
最後に、図９に示すように、バス９０５はまた、例えば、ネットワークアダプタ（図示せず）を介して、コンピュータシステム９００をネットワーク９６５に結合する。このようにして、コンピュータシステム９００は、コンピュータのネットワーク（ローカルエリアネットワーク（ＬＡＮ）やワイドエリアネットワーク（ＷＡＮ）やイントラネットなど）、又はネットワークのネットワーク（インターネットなど）の一部となることが可能である。コンピュータシステム９００のコンポーネントの一部又はすべてを本発明と関連させて用いる。しかしながら、当業者は、他のいかなる構成でも本発明と関連させて用いられうることを理解するであろう。
【００７５】
本発明を多くの具体的な詳細を参照して説明したが、当業者は、本発明が本発明の精神から逸脱することなく他の具体的な形態で実現可能であることを認識するであろう。したがって、当業者は、本発明が前述の例示的な詳細に制限されることなく、添付の特許請求の範囲によって定義されることを理解するであろう。
【００７６】
本明細書に開示する実施形態と関連して説明した、様々な例示的な論理ブロック、モジュール及び回路は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）もしくは他のプログラム可能論理デバイス、ディスクリートゲートロジックもしくはトランジスタロジック、ディスクリートハードウェアコンポーネント、又は本明細書に説明する機能を実行するように設計されたこれらの任意の組み合わせで、実現されたり実行されたりする。汎用プロセッサは、マイクロプロセッサであってよいが、代替例では、このプロセッサは、いずれかの従来型のプロセッサ、コントローラ、マイクロコントローラ又は状態機械であってよい。プロセッサはまた、計算デバイスの組み合わせ、例えば、ＤＳＰとマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、ＤＳＰコアと連結された１つ以上のマイクロプロセッサ又は他の任意のこのような構成物として実現される。
【００７７】
本明細書に開示する実施形態と関連して説明した方法又はアルゴリズムのステップは、直接にハードウェアとして、プロセッサによって実行されるソフトウェアモジュールとして、又はこれら２つの組み合わせとして実現される。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、取り外し可能ディスク、ＣＤ−ＲＯＭ又は他のいずれかの形態を持つ当技術分野において周知の記憶媒体に常駐していてよい。例示の記憶媒体はプロセッサに結合され、これで、プロセッサは記憶媒体から情報を読み出したりこれに対して情報を書き込んだりすることが可能である。代替例では、この記憶媒体はプロセッサと一体化していてもよい。プロセッサと記憶媒体は、ＡＳＩＣに常駐していてよい。このＡＳＩＣはユーザ端末に常駐していてよい。代替例では、プロセッサと記憶媒体は、ユーザ端末中にディスクリートコンポーネントとして常駐していてよい。
【００７８】
開示の実施形態に関する上述の説明は、当業者が本発明を作製したり使用したりすることを可能とするためのものである。これらの実施形態の様々な修正例は当業者には容易に明らかであろうし、また、本明細書に定義する一般的な原理は、本発明の精神や範囲から逸脱することなく他の実施形態に適用されてよい。したがって、本発明は、本明細書に示す実施形態に制限されることを意図するものではなく、本明細書に開示する原理及び新規な特徴と矛盾しない最も広い範囲を与えられるべきである。
【図面の簡単な説明】
【００７９】
【図１】ラスター化が実行される環境の概念図を示す図である。
【図２】図形データストリームを処理してラスター化する様子を示すフローチャートである。
【図３Ａ】例示の画像が処理される様子を示す概念図である。
【図３Ｂ】例示の画像が処理される様子を示す概念図である。
【図４】表示される画像を囲む境界ボックスのサイズと位置を決定するプロセスを示すフローチャートである。
【図５】効率的な「Ｚ」パターン順序で図形データブロックを解析してラスター化する再帰的プロセスを示すフローチャートである。
【図６Ａ】図５の再帰的処理技法によって例示の画像が処理される様子を示す概念図である。
【図６Ｂ】図５の再帰的処理技法によって例示の画像が処理される様子を示す概念図である。
【図６Ｃ】図５の再帰的処理技法によって例示の画像が処理される様子を示す概念図である。
【図６Ｄ】図５の再帰的処理技法によって例示の画像が処理される様子を示す概念図である。
【図６Ｅ】図５の再帰的処理技法によって例示の画像が処理される様子を示す概念図である。
【図７】ラスター化されるブロックの画素の走査順序を解析して指定する再帰的な関連付けプロセスを示すフローチャートである。
【図８Ａ】２×２ブロックの「Ｚ」パターン走査順序を示す図である。
【図８Ｂ】４×４ブロックの「Ｚ」パターン走査順序を示す図である。
【図８Ｃ】８×８ブロックの「Ｚ」パターン走査順序を示す図である。
【図９】本発明の一部の実施形態を実施するコンピュータシステム９００を提示する図である。
【図１】
2008511930.tif 000003
【図２】
2008511930.tif 000004
【図３Ａ】
2008511930.tif 000005
【図３Ｂ】
2008511930.tif 000006
【図４】
2008511930.tif 000007
【図５】
2008511930.tif 000008
【図６Ａ】
2008511930.tif 000009
【図６Ｂ】
2008511930.tif 000010
【図６Ｃ】
2008511930.tif 000011
【図６Ｄ】
2008511930.tif 000012
【図６Ｅ】
2008511930.tif 000013
【図７】
2008511930.tif 000014
【図８Ａ】
2008511930.tif 000015
【図８Ｂ】
2008511930.tif 000016
【図８Ｃ】
2008511930.tif 000017
【図９】
2008511930.tif 000018
【国際調査報告】
2008511930.tif 000019
2008511930.tif 000020
2008511930.tif 000021