JP2008511930A - 図形データのキャッシュ効率的なラスター化 - Google Patents

図形データのキャッシュ効率的なラスター化 Download PDF

Info

Publication number
JP2008511930A
JP2008511930A JP2007530297A JP2007530297A JP2008511930A JP 2008511930 A JP2008511930 A JP 2008511930A JP 2007530297 A JP2007530297 A JP 2007530297A JP 2007530297 A JP2007530297 A JP 2007530297A JP 2008511930 A JP2008511930 A JP 2008511930A
Authority
JP
Japan
Prior art keywords
sub
block
size
tile
cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007530297A
Other languages
English (en)
Other versions
JP4824687B2 (ja
Inventor
ボード、アレキセイ・ブイ.
アーシャド、シュアイブ・ウッディン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2008511930A publication Critical patent/JP2008511930A/ja
Application granted granted Critical
Publication of JP4824687B2 publication Critical patent/JP4824687B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】図形データのキャッシュ効率的なラスター化
【解決手段】キャッシュは、図形データをラスター化する際に用いられるデータをストアする。このキャッシュサイズは、選択されたタイルサイズに等しい。プロセッサは、図形画像のラスター化を、この図形画像を複数のサブブロックに分割することによって実行する。これらのサブブロックは、サブブロックを、図形画像データを有するサブブロックのタイルにさらに分割することによって、ブロック処理順序に基づいて処理される。これらのタイルは選択されたタイルサイズに等しいサイズを有する。タイルと関連付けられたデータはキャッシュにロードされ、このキャッシュデータを利用して、図形画像の関連付けられたタイルの画素を生成する。
【選択図】 図2

Description

本発明は、図形データをキャッシュ効率的にラスター化する方法と装置に関する。
表示又は印刷目的で図形を準備するには、図形データをラスター化し、これを画素の配列(ビットマップ)に変換してからこれを用いて、図形を表示したり印刷したりする。図1に、ラスター化が実行される環境100の概念図を示す。環境100は、マイクロプロセシングユニット(MPU)105、ストレージデバイス110、キャッシュ115、フレームバッファ120及び出力デバイス125を含んでいる。
MPU105は、ホストコンピュータ(例えば、デスクトップもしくはラップトップコンピュータ、サーバ、ゲームコンソール、セルラー電話など)の中央演算処理装置(CPU)を備えてよく、又は、特に図形生成専用の図形デバイス(例えば図形アクセラレータ)もしくは、デジタル信号処理アルゴリズムを実行するように調整されているデジタル信号処理(DSP)ユニットの一部である。ストレージデバイス110は、永久ストレージデバイス、大容量デバイス、取り外し可能ストレージデバイス、ランダムアクセスメモリ(RAM)などの揮発性読み書きメモリなど様々な形態のメモリリソースを備えてよい。
MPU105は、アプリケーション130のプログラム命令をロードして実行して、図形データ132のストリームを生成する。この図形アプリケーション130のプログラム命令と生成された図形データ132とは、ストレージデバイス110にストアされて、ここから読み出される。生成された図形データは、表示される図形(テキスト又は画像)を記述しており、数式、ベクトルの座標、ベクトル図面など様々な形態をとりうる。図形データは、色、テクスチャ、深み(z)のデータなどの図形を記述するいくつかのタイプのデータの内のいずれかを含んでよい。
図形データ132が生成されたら、MPU105は、ビットマップ135を生成するため、この図形データをラスター化することによってこの図形データの表示の準備をする。このラスター化プロセス中、MPU105は、この図形データをロード、解析して、ビットマップ135を生成する。例えば、MPU105は、深み(z)データを解析して、図形のどの要素が可視であるか、また、図形のどの要素が遮蔽されているか(図形の他の要素によって視界をさえぎられているか)を判定する。MPU105はまた、色データとテクスチャデータを解析し、図形の色成分とテクスチャ成分を判定してよい。MPU105によるこのような解析による判定結果は、生成されたビットマップ135に反映される。
この生成されたビットマップ135は、フレームバッファ120にストアされてから用いられて、出力デバイス125(例えば、表示モニタ又はプリンタ)上に画像を表示又は印刷する。このフレームバッファ120は、一般的には、メモリリソース(ストレージデバイス110など)中のメモリのエリアであり、ビットマップ化された図形をストアすると同時に、出力デバイス125上にこの図形を表示したり印刷したりするために用いられる。
上記のラスター化プロセス中、MPU105は、ラスター化される図形データをストレージデバイス110からキャッシュ115に転送し、これで、MPU105が一般的には、ストレージデバイス110にアクセスするよりかなり短い時間でこのキャッシュにアクセス可能となる。次に、MPU105は、キャッシュ115から図形データをロードし、この図形データをラスター化して、ビットマップ135を生成する。後になって、ラスター化プロセス中に特定の図形データがMPUにおいて必要となった場合、MPUは最初に、キャッシュ115に対するアクセス時間はストレージデバイス110に対するそれより短いため、この特定の図形データがキャッシュ115にストアされているかどうか判定する。この特定の図形データがキャッシュ中に存在すれば、「キャッシュヒット」となり、これによって、この特定の図形データがキャッシュから検索される。この特定の図形データがキャッシュ中に存在しなければ、「キャッシュミス」となり、これによって、この特定の図形データは、ストレージデバイス110からキャッシュ115に転送しなければならないが、これによって、キャッシュ115から直接に検索する場合と比べて多くの時間とエネルギーが消費される。したがって、図形データは、できるかぎりラスター化プロセス中にキャッシュ115から直接に検索した方が有利であるが、これは、こうしたほうが必要とされる時間とエネルギーの分量が減るためである。これは、バッテリの電力が大いに必要となるラスター化を携帯式デバイス(ラップトップコンピュータ、セルラー電話など)で実行中には、特に当てはまる。
しかしながら、一般的に、このラスター化プロセスは、図形データをストレージデバイスからキャッシュに対して何回も転送する必要があるような、非効率的な仕方で実行される。これは、従来のラスター化方法では、キャッシュに対する図形データの転送回数が最大化されることがなく、キャッシュに転送される図形データのほとんど又はすべてが、ストレージデバイスからの図形データがさらに必要とされるより前に、ラスター化されるせいである。その結果、一般的に、キャッシュにロードされた図形データのかなりの部分が処理されずに廃棄され、次に、ストレージデバイスからロードされた他の図形データに取って代わられることになる。
したがって、ストレージデバイスからキャッシュに対する図形データの転送回数を最適化して、図形データの必要転送回数が減少するような効率的な仕方で、図形データをラスター化する技法に対する必要性が存在する。これによって、ラスター化プロセスを実行するために必要とされる時間とエネルギーが軽減される。
画像を記述する図形データはラスター化するために処理される。図形データのブロック(画素配列)は、二分探索分割プロセスに基づいた「Z」パターンの順序で解析されて、画像のサブブロック(サブ画素配列)のラスター化順序を決定する。一部の実施形態では、ブロックとサブブロックの辺は、2の累乗である長さを(画素という形で)有している。この技法では、サブブロックを、これが所定のタイルサイズに適合するまで更なるサブロックに再帰的に分割する再帰的プロセス(二分探索分割プロセス)を用いて、画像のサブブロックの解析順序を決定する。結果として得られる各々のサブブロックの辺もまた、2の累乗である長さを(画素という形で)有している。ある状況下では、次に、この技法では、サブブロック(タイルサイズに等しいサイズを有している)と関連している図形データをキャッシュにロードして、ラスター化する。一部の実施形態では、ブロックを成す画素を、これまた二分探索分割プロセスに基づいている「Z」パターン走査順序でラスター化する。
タイルサイズは、キャッシュサイズに基づいて決定される。一部の実施形態では、このタイルは、2の累乗である長さを(画素という形で)持つ辺を有する方形である。ある状況下では、この技法が、所定のタイルサイズを有するタイル(サブブロック)の図形データをキャッシュにロードしてラスター化する。一部の実施形態では、キャッシュサイズがタイルサイズをサポートし、これで、このタイルと関連するすべての図形データをキャッシュに対して同時にストアすることが可能となるようにする。一部の実施形態では、タイルは、他の図形データがキャッシュにロードされるより前に、キャッシュからラスター状に展開される。
本発明の方法は、図形データをキャッシュにロードして、この図形データをキャッシュからラスター状に展開する効率的な方法を提供する。タイルサイズはキャッシュサイズに基づいているため、キャッシュに同時にストアされた図形データのほとんど又はすべてが、更なる図形データがストレージデバイスからキャッシュにロードされるより前にラスター化される。したがって、キャッシュに対するデータ転送回数が最適化され、キャッシュに対する図形データの転送回数が減少する。また、画像のサブブロックの処理順序が、サブブロックの解析とラスター化の順序を効率化する二分探索分割プロセスに基づく「Z」パターン順序によって決定される。
また、この技法では、2の累乗であるサイズを(画素という形で)有するタイルとサブブロックとを用いることによって、図形データの処理を効率化する。したがって、この図形データ処理で必要とされる計算が簡略化されて、複雑な二進法除算演算の数が減り、さらに、これらのほとんどが簡単で迅速なシフト演算で置き換えられる。これらの簡略化されたシフト演算は、例えば、サブブロックをさらなるサブブロックに再帰的に分割する再帰的プロセス(二分探索分割プロセス)で、又は、特定のサブブロックが画像に重なっているかどうか判定する際に、用いられてよい。
本発明の新規な特徴は添付の特許請求の範囲に記載されている。しかしながら、説明の目的上、本発明のいくつかの実施形態を以下の図に記載する。
以下の説明において、多くの詳細を説明目的で記載する。しかしながら、当業者は、本発明がこれらの特定的な詳細を用いなくても実施可能であることを認識するであろう。別の例では、公知の構造とデバイスとをブロック図の形態で示して、不必要な詳細を記載することで本発明の説明があいまいになることがないようにしている。
画像を記述している図形データはラスター化のために処理される。この技法では、図形データのブロック(画素配列)を、二分探索分割プロセスに基づいた「Z」パターンの順序で解析して、画像のサブブロック(サブ画素配列)のラスター化順序を決定する。一部の実施形態では、ブロックとサブブロックの辺は、2の累乗である長さを(画素という形で)有している。この技法では、サブブロックを、これが所定のタイルサイズに適合するまで更なるサブロックに再帰的に分割する再帰的プロセス技法(二分探索分割プロセス)を用いて、画像のサブブロックの解析順序を決定する。結果として得られる各々のサブブロックの辺もまた、2の累乗である長さを(画素という形で)有している。ある状況下では、次に、この技法では、サブブロック(タイルサイズに等しいサイズを有している)と関連している図形データをキャッシュにロードして、ラスター化する。一部の実施形態では、ブロックに関連する画素を、これまた二分探索分割プロセスに基づいている「Z」パターン走査順序でラスター化する。
タイルサイズは、キャッシュサイズに基づいて決定される。一部の実施形態では、このタイルは、2の累乗である長さを(画素という形で)持つ辺を有する方形である。ある状況下では、この技法が、所定のタイルサイズを有するタイル(サブブロック)の図形データをキャッシュにロードしてラスター化する。一部の実施形態では、キャッシュサイズがタイルサイズをサポートし、これで、このタイルと関連するすべての図形データをキャッシュに対して同時にストアすることが可能となるようにする。一部の実施形態では、タイルは、他の図形データがキャッシュにロードされるより前にキャッシュデータを用いてラスター化される。
本明細書に開示する本技法は、図形データをキャッシュにロードして、この図形データをキャッシュからラスター状に展開する効率的な方法を提供する。タイルサイズはキャッシュサイズに基づいているため、キャッシュに同時にストアされた図形データのほとんど又はすべてが、更なる図形データがストレージデバイスからキャッシュにロードされるより前にラスター化される。したがって、キャッシュに対するデータ転送回数が最適化され、キャッシュに対する図形データの転送回数が減少する。また、画像のサブブロックの処理順序が、サブブロックの解析とラスター化の順序を効率化する二分探索分割プロセスに基づく「Z」パターン順序によって決定される。
また、この技法では、2の累乗であるサイズを(画素という形で)有するタイルとサブブロックとを用いることによって、図形データの処理を効率化する。したがって、この図形データ処理で必要とされる計算が簡略化されて、複雑な二進法除算演算の数が減り、さらに、これらのほとんどが簡単で迅速なシフト演算で置き換えられる。これらの簡略化されたシフト演算は、例えば、サブブロックをさらなるサブブロックに再帰的に分割する再帰的プロセス(二分探索分割プロセス)で、又は、特定のサブブロックが画像に重なっているかどうか判定する際に、用いられてよい。
本発明に関する以下の説明には、セクションIで解説するように、図形データをラスター化するために処理する一般的な技法が含まれている。この説明にはまた、セクションIIで解説するように、二分探索分割プロセスに基づく「Z」パターン順序にしたがって画像のサブブロックを処理する再帰的処理も含まれる。この説明にはさらに、セクションIIIで解説するように、二分探索分割プロセスに基づく「Z」パターン順序にしたがってブロックの画素の走査順序を指定する、再帰的関連付け技法が含まれる。
セクションI:ラスター化のための図形データの処理
図2は、図形データストリームを処理してラスター化する一般的技法200を示すフローチャートである。一般的技法200は、画像(図形データで記述されている)を「Z」パターン順序で解析して、この画像のサブブロックのラスター化順序を決定する。一般的技法200は、図形データストリームを生成するアプリケーション、生成された図形データをストアするストレージデバイス、及び図形データのある部分をラスター化するために一時的にストアするキャッシュと共に、用いられる。一般的技法200を、図3Aから3Bを参照して説明する。図3Aから3Bに、例示の画像を一般的技法200で処理する概念図を示す。
このプロセスは、一般的技法200で図形データを処理している間に図形データを一時的にストアするために用いられるキャッシュサイズに基づいて、タイルサイズ(画素配列のサイズ)を決定する(205)ことによって開始される。このタイルサイズは、キャッシュサイズと相互関連付けされ、このキャッシュサイズが、タイルサイズをサポートすることが可能となるように(すなわち、キャッシュサイズが、1つのタイルと関連するすべてのデータを同時にストアすることが可能となるように)決定される。このタイルサイズは、タイルの各々の画素に対して必要とされるデータの分量(これは、色品質、テクスチャデータや深みデータの存在などによって変動する)によって決まる。
このタイルサイズは、画像を生成するためにアプリケーションが用いる三角形画像の図形データ及びサイズを生成するアプリケーションによって調整/影響されうる。一般的には、アプリケーションは、画像を複数の三角形画像の複合体として記述している図形データを生成する。画像を構成するために用いられるこの三角形画像のサイズは、アプリケーションによって変動する。一部の実施形態では、決定されたタイルサイズは、比較的小さい三角形画像を用いるアプリケーションに対しては減少され、比較的大きい三角形画像を用いるアプリケーションに対しては増大される。
一部の実施形態では、タイルは、2の累乗(2)である(画素単位で測定した)長さを有する辺を持つ方形であって、2×2個の画素からなる配列を備えている。本明細書で言うところのタイルとは、所定のサイズの画素配列のことである。しかしながら、本明細書で言うところのタイルとはまた、このタイルの所定のサイズと適合するサイズを(画素という形で)有する画像のサブブロックのことでもある。
次に、一般的技法200は、所定のサイズを有するa×a画素配列に対する図形データを(図形データストリームから)受信する(210)。図3Aに、受信した画素配列305の例示画像310の概念図を示す。図3Aのこの例では、受信した画素配列305は、表示される三角形画像310を含む32×32配列である。
プロセス200は次に、この画像を囲む境界ボックスのサイズと位置を決定する(220)。一部の実施形態では、この境界ボックスは、2の累乗である(画素単位で測定した)長さを有する辺を持つ方形である。図3Bに、画像310を囲む例示の境界ボックス315の概念図を示す。図3Bのこの例では、この境界ボックス315は、16×16画素配列(2個の画素からなる辺を有する(ここでk=4))を備えている。境界ボックス315のサイズと位置を決定するプロセス400を、図4を参照して以下に説明する。
次に、プロセス200は、境界ボックスの(画素という形で示す)サイズがタイルサイズ(ステップ205で決定済み)に等しいかどうか判定する(225)。等しければ、プロセス200は、境界ボックスと関連付けられ、境界ボックス内の画像を記述している図形データを、ストレージデバイスからキャッシュにロードする(230)。次に本プロセスは、境界ボックス内に含まれている画像を(キャッシュにロードされた関連付けられた図形データによって記述されているように)ラスター化する(235)。この境界ボックスの画像は、ストレージからキャッシュに対して更なるデータをロードすることなくラスター化することが可能であるが、これは、キャッシュサイズが境界ボックスサイズをサポートしているからである。これは、タイルサイズをサポートするキャッシュサイズは、境界ボックスのサイズがタイルサイズに等しいと判定済み(225:イエス)のため、境界ボックスのサイズもサポートしているという事実によるものである。一部の実施形態では、境界ボックスの画像全体を、さらなる図形データをキャッシュにロードする前にラスター化する。
次に、本プロセスは、図形データストリーム中にまだ処理すべき図形データがあるかどうかを判定する(237)。あれば、プロセスはステップ210に進んで、次のa×aの画素配列に対する図形データを受信する。なければ、プロセスは終了する。
境界ボックスのサイズがタイルサイズとは等しくないと判定された場合(225:ノー)、現行のブロックを境界ボックスと設定する(240)。次に、再帰的処理技法(図5を参照して以下に説明する)をコールして(245)、図形データのこの現行ブロック(境界ボックス)を再帰的処理技法に渡す。再帰的処理技法は、現行ブロックのサブブロックを効率的な順序で解析してラスター化する。一部の実施形態では、再帰的処理技法は、現行ブロックのサブブロックを、二分探索分割プロセスに基づく「Z」処理パターンにしたがって処理する。次に、図形データストリーム中に処理すべき図形データがあるかどうか判定する(237)。あれば、ステップ210に進んで、次のa×a画素配列の図形データを受信する。なければ、終了する。
図4は、表示される画像を囲む境界ボックスのサイズと位置を決定するプロセス400を示すフローチャートである。プロセス400は、一般的プロセス200のステップ220を備えている。プロセス400を、図3Aから3Bを参照して説明する。プロセス400は三角形である画像に関連しているが、当業者は、プロセス400が、他の形状や形態の画像を囲む境界ボックスを判定するように容易に適合されうることを認識するであろう。また、プロセス400では、三角形の画像は、この三角形の頂点の水平方向と垂直方向の座標((x、y)、(x、y)、(x、y))によって指定されるものと仮定している。しかしながら、当業者は、三角形の画像は別の方法でも指定されうることを認識するであろう。
一部の実施形態では、境界ボックスは、画像を囲むことが可能な最小サイズを有し同時に、2の累乗である長さ(画素という形で示す)を持つ辺を有している方形(すなわち、画像を囲み、2の累乗である辺を持つ最小の方形)である。境界ボックスの辺の長さは2と表し、これで、境界ボックスが2×2画素配列を備えるようにする。
プロセス400は、この三角形画像の頂点の水平方向と垂直方向の座標((x、y)、(x、y)、(x、y))を特定する(405)ことによって開始される。一部の実施形態では、これらの水平方向と垂直方向の座標は、この三角形の画像を包含している画素配列の画素座標という形を取っている。このステップの例を図3Aに示す。
次に、これら特定された頂点の最小と最大の水平方向と垂直方向座標を決定する(410)。次のように式の形で決定する。
min=min(x、x、x)、
max=max(x、x、x)、
min=min(y、y、y)、及び、
max=max(y、y、y)。
例えば、図3Aに示す画像310の場合、xmin=x、xmax=x、ymin=y、ymax=yと決定してよい。
次に、画像のスパン(s)を決定する(415)。このスパンは、画像の水平方向長さ(画素単位で測定される)と垂直方向長さ(画素単位で測定される)のどちらか長いほうである。スパン(s)は、式の形で、s=max(xmax−xmin、ymax−ymin)で表される。例えば、図3Aに示す画像310の場合、s=max(x−x、y−y)=(x−x)と決定される。したがって、図3Aの例では、画像の水平方向長さのほうが画像の垂直方向長さより長いので、この水平方向長さによってスパンが決まる。
次に、kの数値を、2k−1<s≦2となるように決定する(420)。kの値によって、境界ボックスのサイズが決まるが、この場合、境界ボックスは2×2画素配列を備え、2という辺の長さを有している。例えば、図3Bに示すように、kの値は4と決定され、これで、境界ボックス315の辺が16画素分の長さとなる(境界ボックス315が16×16画素配列を備える)用になっている。
次に、境界ボックスの位置を決定する(425)。一部の実施形態では、以下のようになるように数値xを決定することによって境界ボックスの位置を決定する。
=2n、
≦xmin、かつ、
(n+1)>xmin
また、数値yを以下のようになるように決定する。
=2m、
≦ymin、かつ、
(m+1)>ymin
次に、境界ボックスの4つの頂点を次に示す座標で特定する。
(x、y)、
(x+2、y)、
(x、y+2)、及び、
(x+2、y+2)。
境界ボックスの頂点と位置は、三角形の画像全体を(図3Bの例に示すように)囲むように決定される。これで、プロセスは終了する。
セクションII:画像のサブブロックを解析してラスター化する再帰的処理
図5は、効率的な「Z」パターン順序で図形データのブロックを解析してラスター化する再帰的処理技法500を示すフローチャートである。一部の実施形態では、この再帰的処理技法では、図形データのサブブロックを選択して、二分探索分割プロセスを用いて特定の順序で解析し、また、場合によりラスター化も実施する。技法500は、図形データを生成するアプリケーション、この生成された図形データをストアするストレージデバイス、及びラスター化に用いられるデータを一時的にストアするキャッシュと共に用いられる。図5を、図6Aから6Eと関連付けて説明する。図5は、(図形データのブロックによって記述されている)例示の画像の、それが再帰的処理技法500によって処理される様子を示す概念図を示している。
この再帰的処理技法は、ステップ245で図2の一般的プロセス200によってコールされて、一般的プロセス200から(現行ブロックと関連している図形データによって記述されているような)画像を有する現行ブロック(境界ボックス)を受信する。図6Aに、図3Bから境界ボックス315を備えている現行ブロック605の概念図を示す。図6Aの例に示すように、現行ブロック605は、ラスター化され表示される三角形画像610を有する16×16画素配列を備えている。
再帰的処理技法500は、現行ブロックを分割して(505)サブブロックを生成する(すなわち、現行ブロックの画素配列を分割して、サブ画素配列を生成する)ことによって開始される。一部の実施形態では、現行ブロックを、垂直方向真ん中と水平方向真ん中とで分割して、等しいサイズである4つのサブブロックを生成する。図2を参照して上述したように、現行ブロックは、2の累乗の(画素単位で測定した)長さである辺を有する方形である。したがって、各々のサブブロックもまた、2の累乗の長さを有する辺を持つ方形である。図6Bに示す例では、現行ブロックは16×16画素配列であり、これで、生成されたサブブロックはその各々が8×8画素配列となるようになる。
次に、本技法は、(図6Bに示すような)「Z」パターンにしたがって、処理順序を、生成された各々のサブブロックと関連付ける(507)。言い換えれば、現行ブロックの左上の角のサブブロック(サブブロック1)はこの処理順序で関連付けられた最初の位置を有し、現行ブロックの右上の角のサブブロック(サブブロック2)はこの処理順序で関連付けられた2番目の位置を有し、現行ブロックの左下の角のサブブロック(サブブロック3)はこの処理順序で関連付けられた3番目の位置を有し、現行ブロックの右下の角のサブブロック(サブブロック4)はこの処理順序で関連付けられた4番目(最後)の位置を有する。統計的には、この処理順序によって、ある順序で画素を解析してラスター化して、キャッシュを効率的に利用できるようになる。
次に、技法500は、関連付けられた処理順序にしたがって現行のサブブロックを選択する(510)。したがって、技法500を複数回繰り返すことによって、サブブロック1が最初に選択されて処理され、サブブロック2が2番目に選択されて処理され、サブブロック3が3番目に選択されて処理され、サブブロック4が最後に選択されて処理される。
次に、技法500は、現行のサブブロックが現行のブロック中の画像に重なるかどうか判定する(515)。一部の実施形態では、本技法は、この判定を、現行のサブブロックが画像の完全に内部にあるか又は画像と交差するか(すなわち、画像が部分的にサブブロック中にあって、画像の辺がサブブロックの辺と交差しているかどうか)判定することによって実施する。一部の実施形態では、本技法は、現行のサブブロックが完全に画像の内部にあるか、又は、現行のサブブロックが画像と交差するか(すなわち、現行のサブブロックが画像と非ゼロ交点を有するかどうか)を、次のステップを実行することによって判定する。最初に、本技法は、e、e、eが三角形のエッジ/辺の式であり、b、b、b、bが現行のサブブロックのエッジ/辺の式であると仮定する。次に、本技法は、数値Ei、jを、eのエッジ式に入力されると非負値となるbに属する頂点の数として定義する。次に、この技法は、式E1,1+E1,3+E2,1+E2,3+E3,1+E3,3=12が成立するかどうか判定する。成立すれば、現行のサブブロックが完全に画像に包含される。成立しなければ、現行のサブブロックは画像に完全には包含されない。次に、本技法は、あるjに対して、式E1,j>0、式E2,j>0、式E3,j>0が成立するかどうか、また、bに属する少なくとも1つの頂点が、[xmin,max]×[ymin,max]で画定される境界ボックス内にあるかどうか判定する。そうであれば、現行のサブブロックは画像と交差する(すなわち、画像と非ゼロ交差点を有する)。そうでなければ、現行のサブブロックは画像と交差しない。
現行のサブブロックが画像に重ならない場合には、現行のサブブロックは無視され、本技法は次に、処理すべきサブブロックが現行のブロック中にまだあるかどうか判定する(520)。あれば、本技法はステップ510に進んで、次の現行のサブブロックが関連付けられた処理順序にしたがって選択される。なければ、本技法はコール手順に戻る。本技法500を最初に繰り返すときには、このコール手順は一般的な技法200であるが、それ以降の繰り返しでは、このコール手順は技法500自体である。
技法500が現行のサブブロックが画像に重なると判定すると(515:イエス)、本技法はステップ527に進む。ここで、図6Bに示す例では、サブブロック1は画像610に重なっている。ステップ527では、本技法は、現行のサブブロックのサイズがタイルサイズ(一般的技法200のステップ205で決定済み)に等しいかどうか判定する。等しければ、技法500は、現行のサブブロックと関連付けられている図形データをストレージデバイスからキャッシュにロードする(530)(すなわち、現行のサブブロックに重なる画像部分を記述している図形データをロードする)。
次に、本技法は、(キャッシュにロードされた関連付けされた図形データによって記述されているような)画像の現行のサブブロックをラスター化する(535)。現行のサブブロックは、ストレージからキャッシュに対してさらにデータをロードしなくてもラスター化することが可能であるが、これは、キャッシュサイズが現行のサブブロックのサイズをサポートするからである。これは、キャッシュサイズは、タイルサイズをサポートしているので、現行のサブブロックのサイズがタイルサイズに等しいと判定されている(527:イエス)ため、現行のサブブロックサイズもサポートするという事実による。一部の実施形態では、現行のサブブロックの全体を、図形データをさらにキャッシュにロードする以前にラスター化する。
本技法が、現行のサブブロックのサイズがタイルサイズと等しくないと判定する(527:ノー)と、技法500(コール手順)は、現行のサブブロックに対して再帰する。本技法は、現行のブロックを現行のサブブロックと設定し(540)、自身を現行のブロックのためにコールし(545)、図形データの現行ブロックをコールされた/再帰された手順に渡すことによって(545)これを実行する。技法500を現行のサブブロックのために再帰させることによって、本技法は、タイルサイズが適合するまで、サブブロックをさらなるサブブロックに分割し続ける(505)。タイルサイズがサブブロックと適合すると、このサブブロックと関連付けられた図形データがキャッシュにロードされ、サブブロックがラスター化される(530と535)。処理すべきサブブロックが現行のブロック中になくなると、本技法はコール手順(一般的技法200又は技法500自体)に戻る(525)。
図6Bに示す例の場合、タイルサイズは、サブブロックサイズ(8×8画素配列)とは適合しないように2×2画素配列であると仮定する。したがって、図6Bに示す例では、技法500を最初に繰り返すと、本技法はサブブロック1のために再帰する(545)。図6Cの例に示すように、サブブロック1は4つの4×4サブブロックに分割される(505)が、これらのサブブロックは関連付けられた「Z」パターン処理順序となっている。サブブロック1は、技法500が解析するように選択される(510)最初のサブブロックとなる。サブブロック1は、画像610には重ならないため無視され、サブブロック2が選択されて(510)解析されるようになる。サブブロック2は画像610に重なるが、タイルサイズに等しいサイズを有してはいない(サブブロックサイズは4×4で、タイルサイズは2×2であるので)ため、技法500はサブブロック2のために再度回帰する(545)。
図6Dの例に示すように、サブブロック2は4つの2×2サブブロックに分割される(505)が、これらサブブロックは関連付けられた「Z」パターン処理順序となっている。サブブロック1は、技法500によって処理される最初のサブブロックとなる。サブブロック1は画像610に重なり、タイルサイズに等しいサイズを有している(サブブロックサイズは2×2で、タイルサイズは2×2であるので)ため、技法500は、サブブロック1と関連付けられている図形データをキャッシュにロードして(530)、このサブブロックをラスター化する(535)。次に、本技法はサブブロック2を解析して、サブブロック2と関連付けられている図形データをロードしてラスター化する。本技法は、サブブロック3に対し、次にサブブロック4に対して同じことを実行する。
サブブロック4を処理した後では、本技法は、現行のブロック(図6Cのサブブロック2)のサブブロックはもはやないと判定する(520)。したがって、本技法は、図6Cのサブブロック2の処理を終了した(545)コール手順(技法500)に戻る(525)。次に、本技法は、現行のブロック(図6Bのサブブロック1)の処理すべきサブブロック(図6Cのサブブロック3と4)がまだあると判定する(520)。したがって、次に、本技法は、図6Cのサブブロック3を選択して(510)解析されるようにする。
技法500は、図6Bの各々のサブブロックが処理されるまでこのように継続される。これらのサブブロックを処理している間、さらなるサブブロックが再帰的に作成されて、その内のあるサブブロックはキャッシュにロードされてラスター化され、またあるものは無視される。図6Eに、技法500で生成された画像610のサブブロックのラスター化順序の例を示す。サブブロック中の数値は、サブブロックの他のサブブロックに対するラスター化順序を示している。実践と点線は、サブブロックをさらなるサブブロックに分割することを示しており、この内の点線は、タイルサイズと同じサイズを有するサブブロックを示している。
セクションIII:「Z」パターン走査順序
一部の実施形態では、本発明の技法は、ブロックのラスター化の間にブロック(画素配列)の画素を走査する「Z」パターン順序を実現する。例えば、「Z」パターンラスター化順序を用いて、境界ボックス内の画像を走査したり(図2のステップ235)、画像のサブブロックを走査したり(図5のステップ535)する。
図7は、ラスター化されるブロックの画素の走査順序を解析して指定する再帰的な関連付け技法700を示すフローチャートである。技法700は、2×2より大きいサイズを有するブロックに適用することが可能である。2×2ブロックの画素には単に「Z」走査順序(図8Aに示すような順序)が指定される。再帰的関連付け技法700は、サブブロックのサイズが2×2になるまで、ブロックのサブブロックをさらなるサブブロックに再帰的に分割する二分探索分割プロセスを用いて、ブロックの画素に対して走査順序を指定する。次に、本技法は、2×2サブブロックの画素に対して「Z」走査順序(図8Aに示すようなもの)を指定する。再帰的関連付け技法700は、タイルサイズが2×2画素配列に等しい図5の再帰的処理技法500に類似している。再帰的処理技法500と異なっているようなステップだけをここでは詳細に説明する。
再帰的関連付け技法700は、ラスター化される現行のブロック(画素配列)を受信する(702)ことによって開始される。一部の実施形態では、ブロックは2の累乗である(画素単位で測定した)長さを有する辺を持った方形である。ブロックは2×2画素配列を備えている。次に、本技法は、現行ブロックを分割して(705)4つの等しいサイズのサブブロックを生成するが、これらサブブロックは各々が2の累乗である(画素単位で測定した)長さを持った辺を有している。次に、本技法は、(図6Bに示す)「Z」パターンにしたがって、処理順序を各々の生成されたサブブロックと関連付ける(707)。ここで、この処理順序は画素に対して指定された走査順序とは同じではなく、この処理順序は解析の順序となるが、この解析順序にしたがって技法700は走査順序を決定し、一方、画素に対して指定された走査順序は、ラスター化中に画素が走査される順序となる。
次に、技法700は、関連付けされた処理順序にしたがって現行のサブブロックを選択する(710)。本技法は、現行のサブブロックのサイズが2×2サイズであるかどうか判定する(715)。そうであれば、技法700は、現行のサブブロックの画素に対して「Z」パターン走査順序を指定する(717)。言い換えれば、現行のサブブロックの左上の角の画素はこの走査順序で関連付けされた第1の位置を有しており、現行のサブブロックの右上の角の画素はこの走査順序で関連付けされた第2の位置を有しており、現行のサブブロックの左下の角の画素はこの走査順序で関連付けされた第3の位置を有しており、現行のサブブロックの左上の角の画素はこの走査順序で関連付けされた第4の位置を有している。
次に、本技法は、現行のブロックのサブブロックの内、処理すべきものがまだあるかどうか判定する(720)。あれば、本技法はステップ710に進んで、関連付けされた処理順序にしたがって次の現行N’サブブロックを選択する。なければ、本技法はコール手順に戻る。
本技法は、現行のサブブロックのサイズが2×2サイズでないと判定すると(715:ノー)、技法700(コール手順)は、現行のサブブロックのために再帰する。本技法は、現行のブロックを現行のサブブロックとして設定し(740)、自身を現行のブロックのためにコールし(745)、この現行のブロックをコールされた/再帰された手順に対して渡す(745)ことによって、それを実行する。現行のサブブロックのために技法700を再帰させることによって、本技法は継続されて、2×2サブブロックとなるまで、サブブロックをさらなるサブブロックに分割する(705)。2×2サブブロックになると、サブブロックの画素に対する「Z」パターン走査順序が指定される(717)。現行のブロックで処理すべきサブブロックがなくなると、本技法はコール手順に戻る(725)。
図8Aに、2×2画素配列に対する「Z」パターン走査順序を示す。図8Bから8Cに、技法700が発生した走査順序の例を示す。図8Bは、4×4ブロックに対する結果として得られた走査順序を示し、図8Cに、16×16ブロックに対する結果として得られた走査順序を示す。走査画素配列に対するこの「Z」パターン走査順序は、統計的に見て、テクスチャマッピングキャッシュのヒット率を向上させる。
図9は、本発明の一部の実施形態を実施するコンピュータシステム900を提示する図である。一部の実施形態では、本発明の技法は、具体的には図形作成専用のハードウェアデバイスにハードコーディングされる、及び/又はコンピュータ読み取り可能媒体(ソフトウェア)にストアされているコンピュータで実行可能な命令として実施される。
コンピュータシステム900は、バス905、プロセッサ910、システムメモリ915、読み取り専用メモリ920、永久ストレージデバイス925、入力デバイス930、出力デバイス935及び代替のプロセッサ940を含んでいる。
バス905は、コンピュータシステム900の多くの内部デバイスを通信可能に接続するシステムバス、ペリフェラルバス及びチップセットバスを、すべてまとめて表すものである。例えば、バス905は、プロセッサ910を、読み取り専用メモリ920、システムメモリ915及び永久ストレージデバイス925と通信可能に接続する。
読み取り専用メモリ(ROM)920は、コンピュータシステムのプロセッサ910や他のモジュールが必要とする静的データや命令をストアする。他方、永久ストレージデバイス925は読み書きメモリデバイスである。このデバイスは、コンピュータシステム900がオフ状態でも命令とデータをストアする、不揮発性メモリユニットである。本発明の一部の実施形態では、大容量ストレージデバイス(磁気ディスク又は光ディスク及びそれに対応するディスクドライブなど)を永久ストレージデバイス925として用いている。永久ストレージデバイスとして、取り外し可能ストレージデバイス(フロッピー(登録商標)ディスク又はzip(登録商標)ディスク及びそれに対応するディスクドライブなど)を用いている実施形態もある。
永久ストレージデバイス925のように、システムメモリ915は読み書きメモリデバイスである。しかしながら、ストレージデバイス925とは異なって、このシステムメモリは、ランダムアクセスメモリ(RAM)などの揮発性読み書きメモリである。このシステムメモリは、プロセッサがランタイムに必要とする命令とデータの一部をストアする。
一部の実施形態では、本発明の方法を実行するために必要とされる命令及び/又はデータは、システムメモリ915、永久ストレージデバイス925、読み取り専用メモリ920又はこれら3つの任意の組み合わせにストアされる。例えば、様々なメモリユニットが、アプリケーションの命令及び/又はこのアプリケーションが生成した図形データを含んでいてよい。一部の実施形態では、システムメモリ915及び/又は永久ストレージデバイス925は、キャッシュ及び/又はバッファを備えている。
これら様々なメモリユニットから、プロセッサ910は、実行すべき命令と処理すべきデータとを検索して、本発明のプロセスを実行する。一部の実施形態では、プロセッサ910は、オンチップキャッシュ912を用いて、プロセッサ910が最近アクセスした又は生成したデータを保持する。一部の実施形態では、代替プロセッサ940が、命令を実行し、データを処理して、本発明のプロセスを実行する。
バス905はまた、入力デバイス930と出力デバイス935に接続している。入力デバイス930によって、ユーザはコンピュータシステム900に対して情報を通信し、コマンドを選択する。入力デバイス930は、英数字キーボードとカーソルコントローラを含んでいる。出力デバイス935は、コンピュータシステム900が生成した画像を印刷したり表示したりする。この出力デバイスは、プリンタと、陰極線管(CRT)や液晶表示装置(LCD)などの表示デバイスとを含んでいる。
最後に、図9に示すように、バス905はまた、例えば、ネットワークアダプタ(図示せず)を介して、コンピュータシステム900をネットワーク965に結合する。このようにして、コンピュータシステム900は、コンピュータのネットワーク(ローカルエリアネットワーク(LAN)やワイドエリアネットワーク(WAN)やイントラネットなど)、又はネットワークのネットワーク(インターネットなど)の一部となることが可能である。コンピュータシステム900のコンポーネントの一部又はすべてを本発明と関連させて用いる。しかしながら、当業者は、他のいかなる構成でも本発明と関連させて用いられうることを理解するであろう。
本発明を多くの具体的な詳細を参照して説明したが、当業者は、本発明が本発明の精神から逸脱することなく他の具体的な形態で実現可能であることを認識するであろう。したがって、当業者は、本発明が前述の例示的な詳細に制限されることなく、添付の特許請求の範囲によって定義されることを理解するであろう。
本明細書に開示する実施形態と関連して説明した、様々な例示的な論理ブロック、モジュール及び回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラム可能論理デバイス、ディスクリートゲートロジックもしくはトランジスタロジック、ディスクリートハードウェアコンポーネント、又は本明細書に説明する機能を実行するように設計されたこれらの任意の組み合わせで、実現されたり実行されたりする。汎用プロセッサは、マイクロプロセッサであってよいが、代替例では、このプロセッサは、いずれかの従来型のプロセッサ、コントローラ、マイクロコントローラ又は状態機械であってよい。プロセッサはまた、計算デバイスの組み合わせ、例えば、DSPとマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、DSPコアと連結された1つ以上のマイクロプロセッサ又は他の任意のこのような構成物として実現される。
本明細書に開示する実施形態と関連して説明した方法又はアルゴリズムのステップは、直接にハードウェアとして、プロセッサによって実行されるソフトウェアモジュールとして、又はこれら2つの組み合わせとして実現される。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、取り外し可能ディスク、CD−ROM又は他のいずれかの形態を持つ当技術分野において周知の記憶媒体に常駐していてよい。例示の記憶媒体はプロセッサに結合され、これで、プロセッサは記憶媒体から情報を読み出したりこれに対して情報を書き込んだりすることが可能である。代替例では、この記憶媒体はプロセッサと一体化していてもよい。プロセッサと記憶媒体は、ASICに常駐していてよい。このASICはユーザ端末に常駐していてよい。代替例では、プロセッサと記憶媒体は、ユーザ端末中にディスクリートコンポーネントとして常駐していてよい。
開示の実施形態に関する上述の説明は、当業者が本発明を作製したり使用したりすることを可能とするためのものである。これらの実施形態の様々な修正例は当業者には容易に明らかであろうし、また、本明細書に定義する一般的な原理は、本発明の精神や範囲から逸脱することなく他の実施形態に適用されてよい。したがって、本発明は、本明細書に示す実施形態に制限されることを意図するものではなく、本明細書に開示する原理及び新規な特徴と矛盾しない最も広い範囲を与えられるべきである。
ラスター化が実行される環境の概念図を示す図である。 図形データストリームを処理してラスター化する様子を示すフローチャートである。 例示の画像が処理される様子を示す概念図である。 例示の画像が処理される様子を示す概念図である。 表示される画像を囲む境界ボックスのサイズと位置を決定するプロセスを示すフローチャートである。 効率的な「Z」パターン順序で図形データブロックを解析してラスター化する再帰的プロセスを示すフローチャートである。 図5の再帰的処理技法によって例示の画像が処理される様子を示す概念図である。 図5の再帰的処理技法によって例示の画像が処理される様子を示す概念図である。 図5の再帰的処理技法によって例示の画像が処理される様子を示す概念図である。 図5の再帰的処理技法によって例示の画像が処理される様子を示す概念図である。 図5の再帰的処理技法によって例示の画像が処理される様子を示す概念図である。 ラスター化されるブロックの画素の走査順序を解析して指定する再帰的な関連付けプロセスを示すフローチャートである。 2×2ブロックの「Z」パターン走査順序を示す図である。 4×4ブロックの「Z」パターン走査順序を示す図である。 8×8ブロックの「Z」パターン走査順序を示す図である。 本発明の一部の実施形態を実施するコンピュータシステム900を提示する図である。

Claims (24)

  1. データをストアするキャッシュであり、前記キャッシュサイズはタイルサイズと等しいサイズを含む、前記キャッシュと、
    図形画像を複数のサブブロックに分割し、前記サブブロックをブロック処理順序に基づいて処理し、前記サブブロックを、図形画像データを備えるサブブロック用の複数のタイルに分割することを含み、ここで前記タイルは前記タイルサイズに等しいサイズを備え、タイルと関連付けられたデータを前記キャッシュにロードし、前記キャッシュ中の前記データを利用して、前記図形データの前記関連付けられたタイルの画素を生成する、前記キャッシュに結合されたプロセッサと、
    を備える、デバイス。
  2. 前記プロセッサは、a)前記サブブロックが前記図形画像に重なるかどうかを判定し、b)前記サブブロックが前記図形画像に重なる場合に、前記サブブロックのサイズが前記タイルサイズに等しいかどうか判定し、c)前記サブブロックが前記図形画像に重なり及び前記サブブロックのサイズが前記タイルサイズに等しい場合に、前記サブブロックをさらなるサブブロックに分割し、d)前記さらなるサブブロックの内の1つを前記ブロック処理順序に基づいて選択する、ソフトウェアをさらに備え、前記サブブロックサイズが前記タイルサイズに等しくなるまで要素a、b、c及びdを繰り返す、請求項1に記載のデバイス。
  3. 前記プロセッサは、さらに前記図形画像を包囲する境界ボックスを決定し、前記境界ボックスを分割して前記サブブロックを生成するソフトウェアをさらに備える、請求項1に記載のデバイス。
  4. 前記プロセッサは、境界ボックスサイズ2×2(ここで、Kは整数値を含む)を決定するソフトウェアをさらに備える、請求項3に記載のデバイス。
  5. 前記タイルサイズは2×2(ここで、Kは整数値を含む)を含む、請求項1に記載のデバイス。
  6. 前記プロセッサは、前記画素を生成する画素処理順序を割り当てるソフトウェアをさらに備える、請求項1に記載のデバイス。
  7. タイルサイズを選択する手段と、
    前記図形画像を複数のサブブロックに分割する手段と、
    ブロック処理順序に基づいて前記サブブロックを処理する手段であり、前記サブブロックを、図形画像データを備えるサブブロック用の複数のタイルに分割することを含み、前記タイルは前記タイルサイズを含む、前記手段と、
    タイルと関連付けられたデータを前記キャッシュにロードする手段と、
    前記キャッシュ中の前記データを利用して、前記図形画像の前記関連付けられたタイルの画素を生成する手段と、
    を備える、キャッシュ効率のよい図形ラスター化装置。
  8. サブブロックを処理する前記手段は、
    a)前記サブブロックが前記図形画像に重なるかどうか判定する手段と、
    b)前記サブブロックが前記図形画像に重なる場合に、前記サブブロックのサイズが前記タイルサイズに等しいかどうか判定する手段と、
    c)前記サブブロックが前記図形画像に重なり、また、前記サブブロックのサイズが前記タイルサイズに等しい場合に、前記サブブロックをさらなるサブブロックに分割する手段と、
    d)前記さらなるサブブロックの内の1つを前記ブロック処理順序に基づいて選択する手段と、
    を備え、前記サブブロックサイズが前記タイルサイズに等しくなるまで要素a、b、c及びdを繰り返す、請求項7に記載の装置。
  9. 図形画像を包囲する境界ボックスを決定する手段と、
    前記境界ボックスを分割して前記サブブロックを生成する手段と、
    をさらに備える、請求項7に記載の装置。
  10. 図形画像を包囲する境界ボックスを決定する手段が、境界ボックスサイズ2×2(ここで、Kは整数値を含む)を決定する手段を備える、請求項9に記載の装置。
  11. 前記タイルサイズは2×2(ここで、Kは整数値を含む)を含む、請求項7に記載の装置。
  12. 前記キャッシュ中の前記データを利用して前記サブブロックの画素を生成する手段が、前記画素を生成する画素処理順序を割り当てることを備える、請求項7に記載の装置。
  13. 図形画像を受信することと、
    タイルサイズを選択することと、
    前記図形画像を複数のサブブロックに分割することと、
    ブロック処理順序に基づいて前記サブブロックを処理することであり、前記サブブロックを、図形画像データを備えるサブブロック用の複数のタイルに分割することを含み、前記タイルは前記タイルサイズを含むことと、
    タイルと関連付けられたデータを前記キャッシュにロードすることと、
    前記キャッシュ中の前記データを利用して、前記図形画像の前記関連付けられたタイルの画素を生成することと、
    を備える、キャッシュ効率のよい図形ラスター化方法。
  14. 前記サブブロックを処理することは、
    a)前記サブブロックが前記図形画像に重なるかどうかを判定することと、
    b)前記サブブロックが前記図形画像に重なる場合に、前記サブブロックのサイズが前記タイルサイズに等しいかどうか判定することと、
    c)前記サブブロックが前記図形画像に重なり、また、前記サブブロックのサイズが前記タイルサイズに等しい場合に、前記サブブロックをさらなるサブブロックに分割することと、
    d)前記さらなるサブブロックの内の1つを前記ブロック処理順序に基づいて選択することと、
    を備え、前記サブブロックサイズが前記タイルサイズに等しくなるまで要素a、b、c及びdを繰り返す、請求項13に記載の方法。
  15. 前記図形画像を包囲する境界ボックスを決定することと、
    前記境界ボックスを分割して前記サブブロックを生成することと、
    をさらに備える、請求項13に記載の方法。
  16. 前記図形画像を包囲する境界ボックスを決定することは、境界ボックスサイズ2×2(ここで、Kは整数値を含む)を決定することを備える、請求項15に記載の装置。
  17. 前記タイルサイズは2×2(ここで、Kは整数値を含む)を含む、請求項13に記載の方法。
  18. 前記キャッシュ中の前記データを利用して、前記サブブロックの画素を生成することは、前記画素を生成する画素処理順序を割り当てることを備える、請求項13に記載の方法。
  19. キャッシュ効率のよい図形ラスター化方法を具体化するコンピュータ読み取り可能媒体であり、前記方法は、
    図形画像を受信することと、
    タイルサイズを選択することと、
    前記図形画像を複数のサブブロックに分割することと、
    ブロック処理順序に基づいて前記サブブロックを処理することであり、前記サブブロックを、図形画像データを備えるサブブロック用の複数のタイルに分割することを含み、前記タイルは前記タイルサイズを含むことと、
    タイルと関連付けられたデータを前記キャッシュにロードすることと、
    前記キャッシュ中の前記データを利用して、前記図形画像の前記関連付けられたタイルの画素を生成することと、
    を備える、コンピュータ読み取り可能媒体。
  20. 前記サブブロックを処理することは、
    a)前記サブブロックが前記図形画像に重なるかどうかを判定することと、
    b)前記サブブロックが前記図形画像に重なる場合に、前記サブブロックのサイズが前記タイルサイズに等しいかどうか判定することと、
    c)前記サブブロックが前記図形画像に重なり、また、前記サブブロックのサイズが前記タイルサイズに等しい場合に、前記サブブロックをさらなるサブブロックに分割することと、
    d)前記さらなるサブブロックの内の1つを前記ブロック処理順序に基づいて選択することと、
    を備え、前記サブブロックサイズが前記タイルサイズに等しくなるまで要素a、b、c及びdを繰り返す、請求項19に記載のコンピュータ読み取り可能媒体。
  21. 前記図形画像を包囲する境界ボックスを決定することと、
    前記境界ボックスを分割して前記サブブロックを生成することと、
    をさらに備える、請求項19に記載のコンピュータ読み取り可能媒体。
  22. 前記図形画像を包囲する境界ボックスを決定することは、境界ボックスサイズ2×2(ここで、Kは整数値を含む)を決定することを備える、請求項21に記載のコンピュータ読み取り可能媒体。
  23. 前記タイルサイズは2×2(ここで、Kは整数値を含む)を含む、請求項19に記載のコンピュータ読み取り可能媒体。
  24. 前記キャッシュ中の前記データを利用して、前記サブブロックの画素を生成することは、前記画素を生成する画素処理順序を割り当てることを備える、請求項20に記載のコンピュータ読み取り可能媒体。
JP2007530297A 2004-08-30 2005-08-30 図形データのキャッシュ効率的なラスター化 Expired - Fee Related JP4824687B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/930,408 US7505043B2 (en) 2004-08-30 2004-08-30 Cache efficient rasterization of graphics data
US10/930,408 2004-08-30
PCT/US2005/030931 WO2006026647A2 (en) 2004-08-30 2005-08-30 Cache efficient rasterization of graphics data

Publications (2)

Publication Number Publication Date
JP2008511930A true JP2008511930A (ja) 2008-04-17
JP4824687B2 JP4824687B2 (ja) 2011-11-30

Family

ID=35942417

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007530297A Expired - Fee Related JP4824687B2 (ja) 2004-08-30 2005-08-30 図形データのキャッシュ効率的なラスター化

Country Status (6)

Country Link
US (1) US7505043B2 (ja)
EP (1) EP1787260B1 (ja)
JP (1) JP4824687B2 (ja)
KR (1) KR100894231B1 (ja)
CN (1) CN101044508B (ja)
WO (1) WO2006026647A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015210730A (ja) * 2014-04-28 2015-11-24 ヤマハ株式会社 画像処理装置

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8775997B2 (en) * 2003-09-15 2014-07-08 Nvidia Corporation System and method for testing and configuring semiconductor functional circuits
US8732644B1 (en) 2003-09-15 2014-05-20 Nvidia Corporation Micro electro mechanical switch system and method for testing and configuring semiconductor functional circuits
US8872833B2 (en) 2003-09-15 2014-10-28 Nvidia Corporation Integrated circuit configuration system and method
US8711161B1 (en) 2003-12-18 2014-04-29 Nvidia Corporation Functional component compensation reconfiguration system and method
US8723231B1 (en) 2004-09-15 2014-05-13 Nvidia Corporation Semiconductor die micro electro-mechanical switch management system and method
US8711156B1 (en) 2004-09-30 2014-04-29 Nvidia Corporation Method and system for remapping processing elements in a pipeline of a graphics processing unit
US8427496B1 (en) 2005-05-13 2013-04-23 Nvidia Corporation Method and system for implementing compression across a graphics bus interconnect
US8698811B1 (en) 2005-12-15 2014-04-15 Nvidia Corporation Nested boustrophedonic patterns for rasterization
US9123173B2 (en) * 2005-12-15 2015-09-01 Nvidia Corporation Method for rasterizing non-rectangular tile groups in a raster stage of a graphics pipeline
US9117309B1 (en) 2005-12-19 2015-08-25 Nvidia Corporation Method and system for rendering polygons with a bounding box in a graphics processor unit
US8390645B1 (en) 2005-12-19 2013-03-05 Nvidia Corporation Method and system for rendering connecting antialiased line segments
JP4921202B2 (ja) * 2006-03-15 2012-04-25 キヤノン株式会社 ジョブ履歴管理システム、その制御方法、プログラム及び記憶媒体
US7965297B2 (en) * 2006-04-17 2011-06-21 Microsoft Corporation Perfect hashing of variably-sized data
US8928676B2 (en) 2006-06-23 2015-01-06 Nvidia Corporation Method for parallel fine rasterization in a raster stage of a graphics pipeline
US8085264B1 (en) 2006-07-26 2011-12-27 Nvidia Corporation Tile output using multiple queue output buffering in a raster stage
US9070213B2 (en) * 2006-07-26 2015-06-30 Nvidia Corporation Tile based precision rasterization in a graphics pipeline
US7843468B2 (en) * 2006-07-26 2010-11-30 Nvidia Corporation Accellerated start tile search
US20080055286A1 (en) * 2006-09-06 2008-03-06 Mayank Garg Method And Apparatus For Displaying Bitmap Images
US8427487B1 (en) 2006-11-02 2013-04-23 Nvidia Corporation Multiple tile output using interface compression in a raster stage
US8482567B1 (en) 2006-11-03 2013-07-09 Nvidia Corporation Line rasterization techniques
US8139058B2 (en) * 2006-11-03 2012-03-20 Vivante Corporation Hierarchical tile-based rasterization algorithm
US7872648B2 (en) * 2007-06-14 2011-01-18 Microsoft Corporation Random-access vector graphics
JP4370438B2 (ja) * 2007-06-27 2009-11-25 Necシステムテクノロジー株式会社 ベクター画像描画装置、ベクター画像描画方法およびプログラム
US20090086254A1 (en) * 2007-09-28 2009-04-02 Mike Hy Duong Systems and Methods for Dynamic Printer Configuration
US20090086255A1 (en) * 2007-09-28 2009-04-02 Mike Hy Duong Systems and Methods for Print Accounting
US8724483B2 (en) 2007-10-22 2014-05-13 Nvidia Corporation Loopback configuration for bi-directional interfaces
JP4568750B2 (ja) * 2007-11-30 2010-10-27 富士通株式会社 描画装置、描画プログラムおよび描画方法
US9064333B2 (en) * 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8780123B2 (en) 2007-12-17 2014-07-15 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
KR20090097689A (ko) * 2008-03-12 2009-09-16 삼성전자주식회사 영상의 인트라 예측 부호화/복호화 방법 및 장치
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US8681861B2 (en) 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US20110063304A1 (en) 2009-09-16 2011-03-17 Nvidia Corporation Co-processing synchronizing techniques on heterogeneous graphics processing units
US9331869B2 (en) 2010-03-04 2016-05-03 Nvidia Corporation Input/output request packet handling techniques by a device specific kernel mode driver
HUE051391T2 (hu) 2010-04-13 2021-03-01 Ge Video Compression Llc Szignifikancia térképek és transzformációs együttható blokkok kódolása
US9171350B2 (en) 2010-10-28 2015-10-27 Nvidia Corporation Adaptive resolution DGPU rendering to provide constant framerate with free IGPU scale up
CN102567945B (zh) 2010-12-21 2014-12-10 北大方正集团有限公司 页面数字图像的光栅化处理方法和装置
US20120163456A1 (en) 2010-12-22 2012-06-28 Qualcomm Incorporated Using a most probable scanning order to efficiently code scanning order information for a video block in video coding
US10397577B2 (en) 2011-03-08 2019-08-27 Velos Media, Llc Inverse scan order for significance map coding of transform coefficients in video coding
US9491469B2 (en) 2011-06-28 2016-11-08 Qualcomm Incorporated Coding of last significant transform coefficient
KR102080851B1 (ko) * 2012-09-17 2020-02-24 삼성전자주식회사 레이 추적의 스케쥴링을 위한 장치 및 방법
US20140325152A1 (en) * 2013-04-26 2014-10-30 Samsung Electronics Company, Ltd. Quadtree based data management for memory
US9710894B2 (en) 2013-06-04 2017-07-18 Nvidia Corporation System and method for enhanced multi-sample anti-aliasing
KR20150095144A (ko) 2014-02-12 2015-08-20 삼성전자주식회사 그래픽스 데이터를 렌더링하는 방법 및 장치
CN104184963B (zh) * 2014-09-05 2017-10-13 无锡英斯特微电子有限公司 光电导航系统中高效资源利用的方法
US10163180B2 (en) * 2015-04-29 2018-12-25 Qualcomm Incorporated Adaptive memory address scanning based on surface format for graphics processing
US10037621B2 (en) * 2015-06-18 2018-07-31 Intel Corporation Hierarchical quadrant based coverage testing for rasterization
US10535114B2 (en) * 2015-08-18 2020-01-14 Nvidia Corporation Controlling multi-pass rendering sequences in a cache tiling architecture
GB2548852B (en) * 2016-03-30 2020-10-28 Advanced Risc Mach Ltd Method of operating a graphics processing pipeline by compressing a block of sampling positions having the same data value
US11252464B2 (en) 2017-06-14 2022-02-15 Mellanox Technologies, Ltd. Regrouping of video data in host memory
CN110741415B (zh) * 2017-11-24 2024-03-22 谷歌有限责任公司 用于基于法线的纹理混合的来自深度图的平滑法线

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10261095A (ja) * 1997-03-19 1998-09-29 Sega Enterp Ltd 画像処理装置及び画像処理方法
JP2000149055A (ja) * 1998-11-12 2000-05-30 Hewlett Packard Co <Hp> グラフィックス表示システムの走査変換実施装置
JP2000293709A (ja) * 1999-02-03 2000-10-20 Toshiba Corp 画像処理装置、画像処理システムおよび画像処理方法
JP2003524810A (ja) * 1998-09-02 2003-08-19 シリコン・グラフィクス・インコーポレーテッド 階層順によるラスタ化方法および装置
JP2003536153A (ja) * 2000-06-08 2003-12-02 イマジネイション テクノロジーズ リミテッド 三次元イメージレンダリングのためのタイリング及び圧縮

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05127663A (ja) * 1991-11-01 1993-05-25 Mitsubishi Electric Corp 表示方法
US5600763A (en) * 1994-07-21 1997-02-04 Apple Computer, Inc. Error-bounded antialiased rendering of complex scenes
US5864342A (en) * 1995-08-04 1999-01-26 Microsoft Corporation Method and system for rendering graphical objects to image chunks
US6215507B1 (en) * 1998-06-01 2001-04-10 Texas Instruments Incorporated Display system with interleaved pixel address
GB2343603B (en) * 1998-11-06 2003-04-02 Videologic Ltd Shading 3-dimensional computer generated images
US6421053B1 (en) * 1999-05-24 2002-07-16 International Business Machines Corporation Block rendering method for a graphics subsystem
US6674443B1 (en) * 1999-12-30 2004-01-06 Stmicroelectronics, Inc. Memory system for accelerating graphics operations within an electronic device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10261095A (ja) * 1997-03-19 1998-09-29 Sega Enterp Ltd 画像処理装置及び画像処理方法
JP2003524810A (ja) * 1998-09-02 2003-08-19 シリコン・グラフィクス・インコーポレーテッド 階層順によるラスタ化方法および装置
JP2000149055A (ja) * 1998-11-12 2000-05-30 Hewlett Packard Co <Hp> グラフィックス表示システムの走査変換実施装置
JP2000293709A (ja) * 1999-02-03 2000-10-20 Toshiba Corp 画像処理装置、画像処理システムおよび画像処理方法
JP2003536153A (ja) * 2000-06-08 2003-12-02 イマジネイション テクノロジーズ リミテッド 三次元イメージレンダリングのためのタイリング及び圧縮

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015210730A (ja) * 2014-04-28 2015-11-24 ヤマハ株式会社 画像処理装置

Also Published As

Publication number Publication date
JP4824687B2 (ja) 2011-11-30
WO2006026647A2 (en) 2006-03-09
KR20070058548A (ko) 2007-06-08
US7505043B2 (en) 2009-03-17
CN101044508B (zh) 2011-09-14
EP1787260A2 (en) 2007-05-23
WO2006026647A3 (en) 2006-08-17
US20060044317A1 (en) 2006-03-02
EP1787260B1 (en) 2019-08-14
CN101044508A (zh) 2007-09-26
KR100894231B1 (ko) 2009-04-20

Similar Documents

Publication Publication Date Title
JP4824687B2 (ja) 図形データのキャッシュ効率的なラスター化
US11222462B2 (en) Method, apparatus, and computer program product for improved graphics performance
US7167171B2 (en) Methods and apparatuses for a polygon binning process for rendering
JP4030519B2 (ja) 画像処理装置および画像処理システム
US10068518B2 (en) Method, apparatus and system for dithering an image
JP3474078B2 (ja) 描画処理装置
CN110286992A (zh) 界面图形重绘的方法及装置
US8654122B2 (en) Method, apparatus, and computer program product for improved graphics performance
JP2008165760A (ja) グラフィックスを処理する方法および装置
US7719538B1 (en) Assignments for parallel rasterization
US6940515B1 (en) User programmable primitive engine
US6900810B1 (en) User programmable geometry engine
US20070057950A1 (en) Size-based font smoothing
JP4863306B2 (ja) ベクターイメージ描画装置、ベクターイメージ描画方法およびプログラム
JP3688765B2 (ja) 描画方法およびグラフィックス装置
JP3330803B2 (ja) 画像データ処理方法
JP2006031160A (ja) グラフィックオブジェクト処理方法
CN112233206A (zh) 字符图像生成方法、装置、设备及存储介质
JP2019077133A (ja) 画像形成装置、画像形成方法、プログラム
AU2014277651A1 (en) Generating and rendering an anti-aliased page representation
JP2002216142A (ja) 画像処理装置および画像処理方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100119

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100419

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100426

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100519

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100526

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100610

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100810

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101110

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101117

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101210

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101217

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110210

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110315

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110715

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110725

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110809

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110908

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140916

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees