JP3453088B2 - 圧縮テクスチャ・データ構造 - Google Patents
圧縮テクスチャ・データ構造Info
- Publication number
- JP3453088B2 JP3453088B2 JP21180999A JP21180999A JP3453088B2 JP 3453088 B2 JP3453088 B2 JP 3453088B2 JP 21180999 A JP21180999 A JP 21180999A JP 21180999 A JP21180999 A JP 21180999A JP 3453088 B2 JP3453088 B2 JP 3453088B2
- Authority
- JP
- Japan
- Prior art keywords
- texture data
- compressed
- segment
- compressed texture
- memory location
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Memory System (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
ラフィックス・システムにおけるテクスチャ・マッピン
グに関するもので、特に、メモリ・システムから圧縮テ
クスチャ・データを効率的に取り出すことを可能にする
データ構造に関するものである。
おいて、テクスチャ・マッピングは、オブジェクトの表
面のあらゆる細部を実際にモデル化することを必要とす
ることなく、レンダリングされたオブジェクトの表面上
に複雑な様相を作成するため使用される周知の技術であ
る。この技術は、典型的には、2次元の関数またはアレ
イ(すなわちテクスチャ)を3次元オブジェクト空間にお
けるオブジェクトにマップし、その結果生成された画像
を表示するため2次元画面空間に戻すように投影する動
作を伴う。"テクスチャ・マップ"という用語は、テクス
チャ・マッピング・プロセスにおいて使用される関数ま
たはアレイを意味する。一般的2次元テクスチャ・マッ
プは、例えば、木材または大理石のような材質を表現す
るための反復可能パターンから構成される。また、3次
元テクスチャ・マップも頻繁ではないが使用される。3
次元テクスチャ・マップは、通常、2次元テクスチャ・
マップより大きい。テクスチャ・マップは、テクセル(t
exel)と呼ばれる複数の数値から構成される。テクセル
の数値は、通常、RGBカラー値に対応し、また、アル
ファ透明度値に対応する場合もある(RGBカラー値お
よびアルファ透明度値に加えて、あるいは、それらに代
えて、その他のパラメータがテクスチャ・マップに含め
られることもある)。テクスチャ・マップの範囲内のテ
クセルの位置は、s,t座標を使用して指定されること
ができる。
術がテクスチャ・マッピングにおいて使用される。MI
Pマッピングは、基底テクスチャ・マップを多数回縮小
サンプリングして、一連の一層小さいテクスチャ・マッ
プを開発するもので、それら一連の一層小さいテクスチ
ャ・マップの各々はあらかじめ決められた一層低レベル
の解像度で基底マップを表現する。典型的には、マップ
番号が各マップに割り当てられる。例えば、2つのテク
スチャが記憶されるシステムの場合、テクスチャ・マッ
プを個別に参照するため、4つの異なるレベルでの解像
度において各々2つ計8つのユニークなマップ番号が必
要とされる。MIPマッピングを使用するシステムにお
いては、各テクスチャに関する基底マップがメモリに記
憶される必要があるだけではなく、各テクスチャに関す
る縮小サンプルされたマップの各々も記憶されなければ
ならない。このように、テクスチャ・マップは、複雑な
画像をレンダリングするため重要な効率を生み出す一方
で、それらの記憶のため必要とされるメモリ量という観
点から負担となる場合もある。実際、画像のレンダリン
グのため使用されるテクスチャ・マップのサイズは、レ
ンダリングされた画像自体より大きい場合もある。
に対処するため現在使用されている1つの技術は、グラ
フィックス・サブシステムの範囲内に位置する専用テク
スチャ・メモリではなく、ホスト・コンピュータ・シス
テムのメモリにテクスチャ・マップを記憶するというも
のである。この新しい技術は、グラフィックス・サブシ
ステムにおける大きい専用テクスチャ・メモリの必要性
を除去または減少させるという範囲において、有益であ
る。一方、この新しい技術は、ソフトウェア・レンダリ
ングに代わってハードウェア・レンダリングを利用する
という新しい問題をシステムにもたらす。グラフィック
ス・サブシステムのレンダリング・ハードウェアは、シ
ステム・メモリに記憶されている大量のテクスチャ・デ
ータにアクセスするため、システム・バスを頻繁に使用
しなければならない。これは、システム・バスおよびシ
ステム・メモリの両方に大幅なバンド幅需要を生じさせ
る。
メモリ空間ならびにバンド幅の問題のため、記憶される
テクスチャ・マップを多数の等サイズのブロックに論理
的に分割することが普及した。この方法は、システム・
メモリから1度に1テクセルを取り出すのではなくテク
スチャ・データのブロック全体を取り出すというもの
で、バスならびにメモリ利用度の観点からみて一般的に
効率的である。
縮した形式で記憶することも普及している。この目的の
ため、JPEG、ラン長符号化、Huffman符号化、ベク
トル量子化およびLampel-Ziv圧縮法を含む種々の圧縮ア
ルゴリズムが使用されている。これらのアルゴリズムの
各々は次のような多数の異なる方法で分類することがで
きる。第1に、アルゴリズムは有損失または無損失か?
有損失アルゴリズムは、無損失よりすぐれた圧縮率を
生むが、画像品質を犠牲にする。第2に、アルゴリズム
が生成する圧縮比率は固定的か可変的か?言い換える
と、アルゴリズムは画像のあらゆる部分を同程度に圧縮
するのか、あるいは、画像の非常に詳細な部分を他の画
像部分より小さい圧縮比率で圧縮するのか? 無損失、
可変圧縮率アルゴリズムがテクスチャ・マッピングの用
途にとって最も利益のあることが判明している。なぜな
らば、無損失アルゴリズムだけが、圧縮/伸張プロセス
を通して、画像品質を保持することができるからであ
る。圧縮比率の可変性によって、無損失を維持しなが
ら、可能な限り最大の全般的圧縮効率が可能とされる。
圧縮アルゴリズムを選択する第3の重要な因子は、当該
アルゴリズムによって生成された圧縮テクスチャ・デー
タを容易にランダムにアクセスすることができる否かと
いう点である。所与のレンダリング・ルーチンがテクス
チャをどのようにアクセスするかを事前に決定すること
が難しいことが多い。従って、圧縮テクスチャー・デー
タをランダムにアクセスすることができる機能は非常に
有益である。
方法の組み合せである。すなわち、テクスチャ・マップ
が論理的にブロックに分割され、次に1度に1ブロック
が圧縮される。圧縮されたテクスチャ・マップが個々の
圧縮された複数ブロックからなる1つのセットとしてシ
ステム・メモリに記憶されるとすれば、テクスチャ・デ
ータの所望の部分は、所望のデータを内包する個々の圧
縮されたブロックだけを取り出すことによって、システ
ム・メモリから取り出すことができる。この技法を使用
すれば、圧縮されたテクスチャ・マップ全体をシステム
・メモリから取り出す必要はなく、システム・メモリに
おけるテクスチャ・データの個々の部分にだけアクセス
すればよい。更に、ブロックが圧縮形式で取り出される
ので、バスならびにメモリ・バンド幅の更なる節約が実
現する。
クスチャ・データをメモリから効率的に取り出すことを
可能にするデータ構造が必要とされている。また、特に
取り出すべき圧縮テクスチャ・データが可変圧縮比率を
使用して生成されたものである場合の効率を高めるデー
タ構造が求められている。
読み取り可能記憶媒体に記憶されている圧縮テクスチャ
・データ構造を含む。本発明の圧縮テクスチャ・データ
構造は、コンピュータ読み取り可能記憶媒体からのコン
ピュータ・グラフィックス表示システムによる圧縮テク
スチャ・データの効率的取り出しを可能にする。圧縮テ
クスチャ・データ構造は、少くとも第1および第2の圧
縮テクスチャ・データ・セグメントを含む。第1の圧縮
テクスチャ・データ・セグメントは、第1セグメント開
始メモリ位置から始まって第1セグメント終了メモリ位
置で終了し、第1セグメント長を有し、第1圧縮テクス
チャ・データ・ブロック長を持つ第1圧縮テクスチャ・
データ・ブロックを内包する。第2の圧縮テクスチャ・
データ・セグメントは、第2セグメント開始メモリ位置
から始まって第2セグメント終了メモリ位置で終了し、
第2セグメント長を有し、第2圧縮テクスチャ・データ
・ブロック長を持つ第2圧縮テクスチャ・データ・ブロ
ックを内包する。第2セグメント開始メモリ位置は、第
1セグメント終了メモリ位置に連続して配置される。第
1および第2セグメント長は等しいが、第1および第2
圧縮テクスチャ・データ・ブロック長は等しくない。第
1圧縮テクスチャ・データ・ブロックは第1セグメント
開始メモリ位置から開始し、第2圧縮テクスチャ・デー
タ・ブロックは第2セグメント開始メモリ位置から開始
する。
縮テクスチャ・データ・セグメントは第1の長さインジ
ケータを含む。第1の長さインジケータは、第1の圧縮
テクスチャ・データ・ブロック長を決定するためコンピ
ュータ・グラフィックス・システムによって使用される
ことができる。第1の長さインジケータは、第1ヘッダ
の内部に含まれる。第1ヘッダは第1セグメント開始メ
モリ位置から始まることができる。その場合、第1圧縮
テクスチャ・データ・ブロックは、第1ヘッダの終了メ
モリ位置に隣接するメモリ位置から始まる。第1および
第2の圧縮テクスチャ・データ・ブロックは、非圧縮テ
クスチャ・マップの第1および第2の非圧縮ブロックの
圧縮表現を含む。
テクスチャ・データ・セグメントは、第1圧縮/伸張タ
イプ・インディケータを含む。第1圧縮/伸張タイプ・
インディケータは、第1圧縮テクスチャ・データ・ブロ
ックを伸張する際に使用する伸張アルゴリズムを選択す
るため、コンピュータ・グラフィックス・システムによ
って使用されることができる。第1圧縮/伸張タイプ・
インディケータも第1ヘッダの内部に含められる。
・システム 図1は、本発明の好ましい実施形態の実施に適するコン
ピュータ・システム100を示す。コンピュータ・シス
テム100は、少くとも1台のCPU102、システム
・メモリ104、メモリならびにI/Oコントローラ1
06、プリンタ、スキャナ、ネットワーク・インタフェ
ースなどのようないくつかのI/O装置108を含む
(キーボードならびにマウスも通常I/O装置として含
まれるが、コンピュータ・システム100へのインタフ
ェースとしてそれら自身のインタフェース・タイプを持
つ可能性がある)。典型的には、メモリならびにI/O
コントローラ106は、システム・バス110、およ
び、AGPバス・ブリッジ112ならびにPCIバス・
ブリッジ114のようなと少くとも1つのバス・インタ
フェースを含む。PCIバス・ブリッジ114は、I/
O装置108をシステム・バス110へインタフェース
するため使用され、一方、AGPバス・ブリッジ112
は、例えばグラフィックス・サブシステム116をシス
テム・バス110へインタフェースするため使用され
る。図1に示されているバスの特定タイプは、コンピュ
ータ・システム100のアーキテクチャと共に、例示の
目的のため提示されているにすぎず、本発明を実施する
ため、図示以外のバス・タイプおよびアーキテクチャを
使用することは可能である。
典型的には、グラフィックス・レンダリング・ハードウ
ェア118、フレーム・バッファ・コントローラ120
およびフレーム・バッファ・メモリ122を含む。フレ
ーム・バッファ・コントローラ120は表示モニタ12
6を駆動するため(例えばRAMDACおよび同期発生
回路のような)ビデオ・コントローラ124とインタフ
ェースされる。グラフィックス・レンダリング・ハード
ウェア118は、典型的には、AGPバス113にイン
タフェースされた2Dまたは3Dジオメトリ加速ハード
ウェア、および、テクスチャ・メモリ128ならびにフ
レーム・バッファ・コントローラ120とインタフェー
スされたラスター化/テクスチャ・マッピング・ハード
ウェアを含む。
ステム100の範囲内の多数の異なる位置に記憶される
可能性がある。例えば、専用のテクスチャ・メモリ12
8がグラフィックス・サブシステム116の内部に備え
られる(テクスチャ・メモリ128は、小規模のオンチ
ップ・キャッシュまたは比較的大きいオフチップ・テク
スチャ・メモリとして、あるいはそれらの組み合わせと
して、実施される場合がある)。テクスチャ・データ
が、テクスチャ・メモリ128の範囲内のテクスチャ記
憶域130に記憶されることもある。この場合、この記
憶域は、グラフィックス・レンダリング・ハードウェア
118のラスター化/テクスチャ・マッピング・ハード
ウェアにとって即座に利用できる。または、テクスチャ
・データは、フレーム・バッファ・メモリ132の範囲
内のテクスチャ記憶域132に記憶されることもでき
る。また、テクスチャ・データはシステム・メモリ10
4の範囲内のテクスチャ記憶域134に記憶されること
もできる。テクスチャ記憶域130には、典型的には、
利用できるメモリは比較的小量しか存在しないが、ラス
ター化/テクスチャ・マッピング・ハードウェアがそこ
に記憶されているテクスチャ・データにアクセスする際
に発生する遅延は非常に小さい。テクスチャ記憶域13
2の利用可能メモリ量は若干大きいが、そこに記憶され
ているテクスチャ・データにアクセスする際に発生する
遅延も若干大きい。これは、フレーム・バッファ・コン
トローラ120を経由してフレーム・バッファ・メモリ
122にアクセスすることに関わるバンド幅の制約によ
るものである。テクスチャ記憶域134の利用可能メモ
リ量は相対的に大きいが、そこに記憶されているテクス
チャ・データにアクセスする際に発生する遅延は非常に
大きい。これは、メモリならびにI/Oコントローラ1
06、システム・バス110およびシステム・メモリ1
04が、コンピュータ・システム100のコンポーネン
トのすべてによって共有されなければならないからであ
る。従って、テクスチャ・マッピングに関して、テクス
チャ記憶域132をテクスチャ記憶域134のキャッシ
ュとして使用し、テクスチャ記憶域130をテクスチャ
記憶域132のキャッシュとして使用することが適切で
ある。
ックをメモリ・システムに記憶するための第1の技法を
示している。データ構造200は、多数の圧縮テクスチ
ャ・データ・ブロック0−nを含む。圧縮ブロック0−
nは共通のブロック長を持たないが、システム・メモリ
に連続的に記憶される。データ構造200における非圧
縮ブロック0−nと圧縮ブロック0−nの対応関係を示
すように、非圧縮テクスチャ・マップ202が図2に示
されている(通常、テクスチャ・マップ202が一旦圧
縮されたならば、圧縮されたバージョンだけがメモリに
記憶される)。非圧縮ブロック0−nの各々は同じブロ
ック長を持つ。データ構造200は、システム・メモリ
104におけるメモリ空間を節約するという利点を持つ
けれども、圧縮ブロック0−nの各々に関する開始アド
レスを決定する何らかの付加的方式がなければ、それを
使用することはできない。
縮テクスチャ・マップのどの非圧縮ブロックが当該テク
セルを含むかを決定するマッピング機能300に対して
s,t座標が使用される。マッピング機能300のよう
なマッピング機能は、照合テーブルまたは組合せの論理
を用いて実施することができる。次に、当該テクセルに
関してマッピング機能302に対して非圧縮ブロック番
号およびマップ番号を使用して、(1)テクセルの圧縮表
現を含む実際の圧縮ブロックに関するシステム・メモリ
の開始アドレスおよび(2)圧縮ブロック長を決定する。
好ましくは、マッピング機能302のようなマッピング
機能を実施するため照合テーブルが使用される。別の実
施形態において、マッピング機能300および302
は、全体として1つの大きい照合テーブル304に包含
されることもできる。マッピング機能の実施様態がどの
ようなものであろうと、マッピング機能は、システム・
メモリ104ではなくグラフィックス・サブシステム1
16の範囲内に物理的に配置されることが好ましい。マ
ッピング機能がシステム・メモリ104の範囲内に配置
されるとすれば、システム・メモリ104に記憶されて
いる圧縮テクスチャ・データのブロックにアクセスする
時、システム・バスが少くとも2回使用されなければな
らない。すなわち、最初は圧縮ブロックに関する開始ア
ドレスおよびブロック長を決定するため、2回目はその
ブロック自体をアクセスするためである。そのような技
法は、システム・バスおよびシステム・メモリ・バンド
幅の観点から非効率である。
メントへの記憶 図4は、可変長圧縮テクスチャ・データ・ブロックを等
サイズのセグメントに記憶する技法を示す。データ構造
400は、基底アドレス402から始まるシステム・メ
モリ104に記憶される。データ構造400は、各々等
しいセグメント・サイズを持つセグメント0−nから成
る。各セグメント0−nの範囲内に圧縮ブロック0−n
がそれぞれある。各セグメントのサイズは同じである
が、圧縮されたブロックの各々のサイズは潜在的に異な
るので、セグメント0−nの大部分は、図4において例
えば404、406および408という符号で示されて
いるように、未使用のメモリ部分を含む。このように、
データ構造400は、データ構造200と比較してなに
がしかのメモリを浪費する。しかしながら、等サイズの
セグメントへの可変長ブロックの記憶は、各ブロック
(すなわちセグメント)の開始アドレスの計算を単純化す
る。
る時、最初にテクスチャ・マップ202がブロック毎に
完全に圧縮される。次に、データ構造400に関するセ
グメント・サイズは、圧縮されたブロック0−nのうち
の最大のもの(すなわち最悪ケースの圧縮比率を持つブ
ロック)に等しく設定される。このようにして、部分4
04、406および408のような未使用部分によって
無駄となるシステム・メモリの量が最小限度にとどめら
れる。また、セグメント・サイズを最も近い2の累乗値
に丸めれば、セグメント開始アドレスの計算が更に簡略
化されるので、都合がよい(セグメント・サイズが2の
累乗であれば、アドレス計算の間に必要な乗算は単純な
シフト動作を使用して実行できる)。代替的に、セグメ
ント・サイズをキャッシュ行境界のような別の便利な値
まで丸めることもできる。
ンを示す。データ構造500の代表部分(すなわち1つ
のセグメント)がシステム・メモリ104に記憶されて
いるように示されている。ヘッダ502が各セグメント
の開始部分に加えられた点を除けば、データ構造500
はすべての点でデータ構造400と同じものである。好
ましくは、ヘッダ502は、そのセグメントに含まれる
圧縮ブロック(例えば図5における圧縮ブロックx)の長
さを表示するため、ブロック長フィールド504を含
む。オプションとして、別の1つのフィールド506を
ヘッダ502に含めることもできる。圧縮/伸張タイプ
・フィールド506を使用して、そのセグメントに含ま
れる圧縮ブロックを生成するために使用された圧縮アル
ゴリズムのタイプを標示することができる(同じことで
はあるが、フィールド506はブロックを伸張するため
に使用されなければならない伸張アルゴリズムを標示す
る)。圧縮/伸張タイプ・フィールド506を使用する
利点は、データ構造500に圧縮ブロックの各々を作成
するため異なるアルゴリズムを使用することができる点
である。このようにして、データ構造500の全体サイ
ズを最小限度にとどめることができる。
の開始アドレスの決定 対象テクセルのs,t座標およびマップ番号を所与とし
て、図6は、テクセルの圧縮表現を含む(図4および図
5に示されているような)圧縮テクスチャ・データ・セ
グメントの開始アドレスを決定する方法を示す。本明細
書における記述の目的から、対象テクセルの圧縮された
表現を含む圧縮されたテクスチャ・データ・セグメント
を、目標圧縮テクスチャ・データ・セグメントと呼ぶ。
テクセルのs,t座標を使用して、マッピング機能60
0によって、非圧縮テクスチャ・マップのどの非圧縮ブ
ロックが当該テクセルを含むか決定される(このマッピ
ング機能は上述されたマッピング機能300と同等のも
のである)。マッピング機能600は、次に、当該テク
セルに対応する非圧縮ブロック番号602を生成する
(マッピング機能603は、また、非圧縮ブロックの開
始位置に対するテクセル位置を示すオフセット603を
生成する)。一般的ケースにおいては、非圧縮ブロック
番号602を使用して、マッピング機能604によって
セグメント番号606が決定される。セグメント番号6
06は、データ構造400または500のようなデータ
構造におけるどの圧縮テクスチャ・データ・セグメント
が目標セグメントであるか標示する。好ましい実施形態
において、非圧縮ブロック番号はセグメント番号として
0からnまで番号をつけられているので、マッピング機
能604は単に同一性関数である(言い換えると、好ま
しい実施形態において、セグメント番号606は、単
に、非圧縮ブロック番号602と等しい)。
して、マッピング機能608によって、目標セグメント
を含むデータ構造に対応するセグメント長610が決定
される。(好ましい実施形態において、圧縮テクスチャ
・セグメント長は、コンピュータ・システム100に記
憶されるすべての圧縮テクスチャ・マップについて同じ
ものである。その場合、マッピング機能608は省略す
ることができる。実際、データ構造400および500
の特性からこのマッピング機能は省略されることが可能
とされている。しかし、一般的ケースにおいては、各マ
ップ番号は異なるセグメント長に対応する)。マッピン
グ機能608は、また、目標セグメントを含むデータ構
造に関する基底アドレス612を生成する。次に、セグ
メント番号606がセグメント長610に乗算され(ブ
ロック614)、乗算結果が基底アドレスに加算されて
(ブロック616)、目標圧縮テクスチャ・データ・セグ
メントに関する開始アドレス618が生成される(上述
のように、セグメント長が2の累乗であれば、乗算61
4は、シフト・レジスタで実施されることができる)。
ントを含むデータ構造に対応する。それは、マッピング
機能608によって生成されることができる。代替実施
形態において、セグメント長および非圧縮テクスチャ・
データ・ブロックのサイズの関数として、それは決定さ
れる。(非圧縮テクスチャ・データ・ブロックのサイズ
は前もって知られていると仮定される。好ましくは、サ
イズは各テクスチャ・マップについて同じものであっ
て、使用される圧縮アルゴリズムと無関係である。)
照してバッファおよびデータ経路を考察する。圧縮テク
スチャ・データがグラフィックス・サブシステム116
によってシステム・メモリ104から読み取られる時、
圧縮テクスチャ・データは経路700を経由して到着し
て、圧縮テクスチャ・データ・バッファ702に記憶さ
れる。データ構造500の場合のようにヘッダが利用さ
れている時、経路706上でアクセスできるようなヘッ
ダ・バッファ704が提供される。好ましくは、(状態
マシンのような)伸張プロセス708が、圧縮テクスチ
ャ・データ・バッファ702にアクセスして、伸張テク
スチャ・データ・バッファ710にファイルする。目標
データ712は、オフセット603を使用して伸張テク
スチャ・データ・バッファ710から取り出すことがで
きる。
出し 図8は、アクセスされている圧縮ブロックの長さが前も
って知られていない場合に圧縮テクスチャ・データをメ
モリ・システムから取り出す効率的な方法を示す。ステ
ップ800において、目標テクセルに関するs,t座標
およびマップ番号を使用して、目標圧縮テクスチャ・デ
ータ・セグメントのシステム・メモリ104における開
始アドレスが決定される。ステップ802において、目
標圧縮セグメントを含むデータ構造に関する最悪ケース
圧縮比率が決定される。(以下の記述において、最悪ケ
ース圧縮比率をその英語表現"worst case compression
ratio"の頭文字をとって"WCCR"と略称する)。この
目的のため、図6に関連して上述された方法を使用する
ことができる。(本明細書の記述の目的から、圧縮比率
は、オブジェクトの圧縮前サイズの圧縮後サイズに対す
る比率として定義される。例えば、ある圧縮アルゴリズ
ムが40Kバイトのオブジェクトを10Kバイト・オブ
ジェクトに圧縮することができるならば、この圧縮アル
ゴリズムはこのオブジェクトに対して4対1の圧縮比率
を達成したといわれる)。ステップ804において、カ
ウントが0に初期化される。このカウントは、システム
・メモリ104に対して発信された読み取り要求の総数
に関する情報を追跡するために使用される。ステップ8
06において、読み取りアドレスは、ステップ800で
決定された目標セグメントに関する開始アドレスに初期
化される。
信動作が開始される。この動作の間に、データ読み取り
要求は、ステップ800において決定された開始アドレ
スから始めて、目標圧縮セグメントの範囲内のアドレス
に順に向けられる。ステップ808において発信される
1つの読み取り要求は読み取りアドレスに記憶されてい
る1つのアドレスに向けられる(各読み取り要求は、好
ましくは、複数バイトのデータを取り出す。説明の目的
から、各読み取り要求はxバイトのデータを取り出すと
仮定する)。ステップ810において、カウントが増分
される。ステップ812および814において、読み取
り要求発信動作が停止されたか否か検査される。ステッ
プ812において、それまでに要求されたデータの最小
非圧縮サイズに対応する最小非圧縮サイズが決定され
る。このサイズを決定するため、カウントに各読み取り
要求が取り出すバイト数(この例では"x")が乗算され
る。乗算の結果にWCCRが乗算される。ステップ81
4において、そのように決定された最小非圧縮サイズが
予想非圧縮サイズと比較される。この比較において使用
される予想非圧縮サイズは、当該ブロックの(事前に知
られている)非圧縮サイズであるか、あるいは、オフセ
ット値603に基づく場合もある(例えば目標テクセル
だけを取り出そうとする場合、予想非圧縮サイズは"オ
フセット+1"として設定される)。最小非圧縮サイズが
予想非圧縮サイズより小さい場合、ステップ816にお
いて読み取りアドレスが適切に増分され、ステップ80
8において別の1つの読み取り要求が発信される。しか
し、最小非圧縮サイズが予想非圧縮サイズと少なくとも
同じであれば、ステップ818において読み取り要求発
信動作が停止される。
図9において、ステップ820が、図8のステップ81
2を置き換え、ステップ822が図8のステップ814
を置き換えている。ステップ820において、要求され
たデータに関する実際の圧縮サイズが計算される。実際
の圧縮サイズは単純にxとカウントの乗算結果である。
ステップ822において、この実際の圧縮サイズが予想
圧縮サイズと比較される。予想圧縮サイズを単にセグメ
ント・サイズとすることができる。実際の圧縮サイズが
少くとも予想圧縮サイズと同じ大きさであれば、ステッ
プ824において読み取り要求発信動作が停止される。
しかし、実際の圧縮サイズが予想圧縮サイズより小さけ
れば、動作は図8のステップ816へ進む。注:セグメ
ント・サイズが最大ブロックのサイズに等しく設定され
ているデータ構造を伴う特別のケースの場合、図9の予
想非圧縮サイズが非圧縮ブロックのサイズに設定さてい
れば、図9の方法は、図8の方法と同じ結果を生む(す
なわち、たとえその範囲内の圧縮テクスチャ・データ・
ブロックがセグメントと同じ大きさでないとしても圧縮
テクスチャ・データ・セグメントの全体が読み取られる
という結果を生む)。
速に決定することができる場合の方法改善 図10は、非圧縮データのサイズが受け取り次第迅速に
かつ漸増的に決定されることができる場合の符号化アル
ゴリズムの1つの一般的クラスを示している。そのよう
な符号化アルゴリズムの1例は、ランレングス(run-len
gth)符号化法である。ランレングス符号化法のような符
号化技法によって生成されるデータストリームは、先ず
反復数900が送られ、次に、反復されるべきデータの
サイズに対応するサイズ・フィールド902が続き、そ
の後に、反復されるべき実際のデータ904(またはデ
ータを参照するために使用されるインジケータ)が続
く。注:ランレングス符号化においてサイズ・フィール
ド902がオプションで、サイズが暗黙的に定まってい
る場合もある。反復数にデータのサイズを乗算すること
によって、非圧縮サイズが決定され、符号化されたデー
タが受け取られる都度累積される。
り次第迅速にかつ漸増的に決定されることができる場合
のテクスチャ・データ取り出し方法を示す。ステップ1
000において、第2の最小非圧縮サイズ値が0に初期
化される。この値は、受け取ったデータの非圧縮サイズ
を蓄積するために使用される。ステップ1002におい
て、その他の値が初期化される。すなわち、目標圧縮テ
クスチャ・データ・セグメントの開始アドレスおよび該
セグメントのデータ構造に関するWCCRが決定され
る。カウント値がゼロに初期化される。このカウント値
は、(要求は出されたがそのデータがいまだに受け取ら
れていない)仕掛り中読み取り要求を追跡するために使
用される。最後に、読み取りアドレス値が目標セグメン
トの開始アドレスに初期化される。ステップ1004に
おいて、読み取り要求発信動作が開始される。読み取り
要求は読み取りアドレスに記憶されているxバイトのデ
ータに対して発信され、カウントが増分される。ステッ
プ1006、1008および1010において、読み取
り要求に応じるデータ量が受け取られ、バッファ702
のような圧縮テクスチャ・データ・バッファに受け取ら
れたデータが記憶され、データがxバイト受け取られる
毎にカウントが減分される(このようにして、カウント
は、要求されたがまだデータが受け取られていない読み
取り要求の数を常に反映する)。
サイズが決定される。このサイズは、要求されたがまだ
受け取られていないデータのサイズに対応する。この値
は、xにカウントを乗算し、更に、WCCRを乗算する
ことによって決定される。ステップ1014および10
16は、上述の第2の非圧縮サイズを蓄積するプロセス
を表す。未処理反復インジケータがバッファ702に存
在する限り、反復数に反復されるべきデータのサイズを
乗算して、その結果を蓄積された合計に加えることによ
って、第2の最小非圧縮サイズが更新される。
2の最小非圧縮サイズが加算される。この合計が予想非
圧縮サイズ(例えば、非圧縮ブロックのサイズまたはオ
フセット603から決定されるサイズ)と少なくとも同
じ大きさであれば、ステップ1022において、読み取
り要求発信動作は停止される。しかし、この合計が予想
非圧縮サイズ未満であれば、ステップ1020において
読み取りアドレスが適切に増分され、動作はステップ1
004へ進む。
るすべてのステップの順序は例示の目的にすぎない点は
注意されるべきである。これらステップは、本発明の理
念を逸脱することなく、異なる順序で実行することがで
きるし、あるいは、異なるプロセスまたは異なる状態マ
シンによって同時に実行することも可能である。
の内部におけるヘッダの使用 図12は、データ構造500のようなデータ構造が使用
される場合にメモリ・システムから圧縮テクスチャ・デ
ータを取り出すために使用される方法を示す。ステップ
1100において初期化が実行される。すなわち、目標
圧縮セグメントの開始アドレスが決定され、カウントが
0にセットされ、読み取りアドレス値が目標セグメント
の開始アドレスに等しくセットされる。ステップ110
2において、読み取り要求発信動作が開始する。すなわ
ち、読み取りアドレスに記憶されているデータのxバイ
トを取り出すように読み取り要求が出され、カウントが
増分される。注:図12の方法におけるカウントは、仕
掛かり中読み取り要求の数ではなく発信された読み取り
要求の総数を追跡する。
データが受け取られ、記憶される。データが受け取られ
ると(ステップ1104)、ヘッダが既に受け取られてい
るか否か調べられる(ステップ1106)。まだ受け取ら
れていないとすれば、ステップ1108においてカウン
トが減分され(ヘッダはデータとしてカウントしない)、
ヘッダがバッファ704に記憶される(ステップ111
0)。次に、圧縮ブロック長ヘッダ・フィールド504
に従って、予想圧縮ブロック長値がセットされる。圧縮
/伸張ヘッダ・フィールド506を使用する実施形態に
おいては、ステップ1114にいて、ヘッダ・フィール
ド506の情報を使用して伸張タイプ値がセットされ
る。この伸張タイプ値は、データを伸張するため後刻使
用される。ステップ1106において、ヘッダがすでに
受け取られていると判断されると、到来データがバッフ
ァ702に記憶される(ステップ1116)。
を乗算することによって要求されたデータ長値が計算さ
れる。ステップ1120において、この値が、ステップ
1112でセットされた予想圧縮ブロック長値と比較さ
れる。要求されたデータ長が予想圧縮ブロック長と少な
くとも同じ大きさであれば、ステップ1124において
読み取り要求発信動作が停止され、受け取られたデータ
が伸張される。オプションとして、圧縮/伸張タイプ・
フィールド506を使用する実施形態においては、ステ
ップ1114においてセットされる圧縮/伸張タイプを
使用してステップ1122において伸張を実行すること
が可能である。
れのジョブを実行する別のプロセスまたは別の状態マシ
ンを使用することによって、バッファ702の内容を伸
張することも可能である。そのような実施形態において
は、図13乃至図16に示さているような方法を使用す
ることができる。図13の方法は、図14乃至図16に
比較して基本的なものである。ステップ1200におい
て初期化が実行される。すなわち、目標圧縮セグメント
の開始アドレスが決定され、カウントが0にセットさ
れ、読み取りアドレス値が目標セグメントの開始アドレ
スに等しくセットされる。ステップ1202において、
読み取り要求発信動作がプロセス1として開始される。
ステップ1204において、当該読み取り要求発信動作
に応答してなんらかのデータが受け取られたと判断され
ると、ステップ1206において、伸張動作708がプ
ロセス2として開始される。プロセス2は、その進捗を
示すため現在時非圧縮データ・サイズを維持する。プロ
セス1および2が進む間に、ステップ1208が、現在
時非圧縮データ・サイズを予想非圧縮データ・サイズと
比較する。現在時非圧縮データ・サイズが予想非圧縮デ
ータ・サイズと少なくとも同じ大きさであれば、プロセ
ス1および2が共に停止される(ステップ1210)。
より効果的である。図14の場合、ステップ1300に
おいて、WCCRが決定されること以外は、ステップ1
200の場合と同じ初期化が実行される。ステップ13
02において、読み取り要求発信動作がプロセス1とし
て開始される。このプロセス1は図15に示されてい
る。ステップ1400において、読み取りアドレスに記
憶されているxバイトを取り出す読み取り要求が発信さ
れ、カウントが増分される。ステップ1402において
データのxバイトが受けられたと判断されれば、ステッ
プ1404においてカウントが減分される(このケース
では、カウントは読み取り要求総数ではなく仕掛かり中
読み取り要求を追跡する)。ステップ1406において
伸張プロセスがまだ始まっていないと判断されると、伸
張プロセスがプロセス2として開始される。このプロセ
ス2は図16を参照して後述される。ステップ1410
において、受け取られたデータがバッファ702に記憶
される。
サイズが決定される。この第1のサイズは、要求は出さ
れたがまだ受け取られていないデータの最小非圧縮サイ
ズに対応する。それは、xにカウントを乗算し、さらに
WCCRを乗算することによって決定される、ステップ
1414において、第2の非圧縮サイズが決定される。
この第2のサイズは、プロセス2によって進捗インジケ
ータとして維持されている実際の非圧縮サイズ値に対応
する。ステップ1416において、第1および第2のサ
イズが加算される。その合計が予想非圧縮サイズと少な
くとも同じ大きさであれば、(プロセス1の)読み取り要
求発信動作は、ステップ1418において、停止され
る。さもなければ、プロセス1はステップ1400に戻
る。
いる。未処理データがバッファ702に存在すれば(ス
テップ1500)、その少くとも一部分が伸張される(ス
テップ1502)。ステップ1504において、非圧縮
サイズ進捗インジケータが更新されなければならない。
ステップ1506において、更新された非圧縮サイズ値
が予想非圧縮サイズと比較される。実際の非圧縮サイズ
が予想非圧縮サイズと少なくとも同じ大きさであれば、
ステップ1508において伸張プロセスは停止される。
さもなければ、伸張プロセスはステップ1500に戻
る。
ャ・データを取り出す効率的方法 図17は、圧縮テクスチャ・データをシステム・メモリ
104から取り出す別の方法を示す。図17の方法は、
グラフィックス・サブシステム116に配置される照合
テーブルまたはハードウェア・マッピング機能(図3参
照)を利用する。ステップ1600において、目標テク
セルに対応するs,t座標およびマップ番号が、グラフ
ィックス・サブシステム116の照合テーブルまたはハ
ードウェア・マッピング機能に適用される。ステップ1
602において、照合テーブルまたはハードウェア・マ
ッピング機能の出力に基づいて、システム・メモリ10
4に記憶されている目標圧縮テクスチャ・データ・ブロ
ックの開始アドレスと長さが決定される(注:図17の
方法では、開始アドレスは、圧縮テクスチャ・データ・
ブロックを含むセグメントではなくそのようなブロック
の開始アドレスを直接指す)。ステップ1604におい
て、カウントが0に初期化され、読み取りアドレス値が
ステップ1602で決定された開始アドレスに初期化さ
れる。
よび1612は、目標テクセルの圧縮表現を含む(シス
テム・メモリ104に記憶されている)圧縮テクスチャ
・データ・ブロックにアクセスするプロセスを表す。ス
テップ1606において、読み取りアドレスに記憶され
ているデータのxバイトを取り出す読み取り要求が発信
され、カウントが増分される。ステップ1608におい
て、xにカウントを乗算することによって要求されたデ
ータ長値が計算される。ステップ1610において、要
求されたデータ長値が、ステップ1602で決定された
圧縮ブロック長と比較される。要求されたデータ長値が
圧縮ブロック長と少なくとも同じ大きさであれば、ステ
ップ1614において読み取り要求発信動作は停止され
る。さもなければ、ステップ1612において読み取り
アドレスが適切に増分され、プロセスはステップ160
6に進む。図17の方法は、アクセスに先立って目標圧
縮テクスチャ・データ・ブロックの開始アドレスおよび
その長さを決定するためシステム・バス110の使用を
必要としないので、システム・バスのバンド幅の効率が
高い方法である。
を記述したが、上記参照の実施形態は例示のためのもの
にすぎず、本発明をそのような特定の実施形態に制約す
るために提示されたものではない。本発明の理念を逸脱
することなく、上記実施形態に種々の変更を加えること
が可能な点は当業者に認められることであろう。例え
ば、上述された技法のすべては、3次元のテクスチャ・
マップに適用することが可能である。それら技法を3次
元テクスチャ・マップに関して使用するため、s,t座
標の代わりにr,s,t座標を使用することができる。
が含まれる。 (1)コンピュータ・グラフィックス表示システムによ
るコンピュータ読み取り可能記憶媒体からの圧縮テクス
チャ・データの効率的取り出しのためコンピュータ読み
取り可能記憶媒体に記憶される圧縮テクスチャ・データ
構造であって、該圧縮テクスチャ・データ構造が少くと
も第1および第2の圧縮テクスチャ・データ・セグメン
トを備え、上記第1圧縮テクスチャ・データ・セグメン
トは、第1セグメント開始メモリ位置から始まって第1
セグメント終了メモリ位置で終了し、第1セグメント長
を有し、第1圧縮テクスチャ・データ・ブロック長を持
つ第1圧縮テクスチャ・データ・ブロックを内包し、上
記第2圧縮テクスチャ・データ・セグメントは、第2セ
グメント開始メモリ位置から始まって第2セグメント終
了メモリ位置で終了し、第2セグメント長を有し、第2
圧縮テクスチャ・データ・ブロック長を持つ第2圧縮テ
クスチャ・データ・ブロックを内包し、上記第2セグメ
ント開始メモリ位置は上記第1セグメント終了メモリ位
置に連続して配置され、上記第1および第2セグメント
長は等しく、上記第1および第2圧縮テクスチャ・デー
タ・ブロック長は等しくない、圧縮テクスチャ・データ
構造。
ブロックは上記第1セグメント開始メモリ位置から開始
し、上記第2圧縮テクスチャ・データ・ブロックは上記
第2セグメント開始メモリ位置から開始する、上記
(1)に記載の圧縮テクスチャ・データ構造。 (3)上記第1圧縮テクスチャ・データ・セグメントが
第1の長さインジケータを含み、該第1の長さインジケ
ータは上記第1圧縮テクスチャ・データ・ブロック長を
決定するためコンピュータ・グラフィックス・システム
によって使用される、上記(1)に記載の圧縮テクスチ
ャ・データ構造。 (4)上記第1の長さインジケータが第1ヘッダの内部
に含まれ、該第1ヘッダは上記第1セグメント開始メモ
リ位置から始まる、上記(3)に記載の圧縮テクスチャ
・データ構造。
ブロックが第1圧縮ブロック開始メモリ位置から始ま
り、上記第1ヘッダが第1ヘッダ終了メモリ位置で終了
し、上記第1圧縮ブロック開始メモリ位置が上記第1ヘ
ッダ終了メモリ位置に隣接するメモリ位置から始まる、
上記(4)に記載の圧縮テクスチャ・データ構造。
(8)上記第1および第2の圧縮テクスチャ・データ・
ブロックが、非圧縮テクスチャ・マップの第1および第
2の非圧縮ブロックの圧縮表現を含む、上記(1)に記
載の圧縮テクスチャ・データ構造。 (6)上記第1圧縮テクスチャ・データ・セグメントが
第1圧縮/伸張タイプ・インディケータを含み、該第1
圧縮/伸張タイプ・インディケータは、上記第1圧縮テ
クスチャ・データ・ブロックを伸張する際に使用する伸
張アルゴリズムを選択するため、上記コンピュータ・グ
ラフィックス・システムによって使用される、上記
(1)に記載の圧縮テクスチャ・データ構造。 (7)上記第1圧縮/伸張タイプ・インディケータが、
上記第1セグメント開始メモリ位置から始まる上記第1
ヘッダの内部に含められる、上記(6)に記載の圧縮テ
クスチャ・データ構造。
・データをメモリから効率的に取り出すことができるデ
ータ構造が利用可能となる。特に、取り出すべき圧縮テ
クスチャ・データが可変圧縮比率を使用して生成された
ものである場合、データ取り出しの効率が大幅に改善さ
れる。
・システムのブロック図である。
モリ・システムに記憶する第1の技法を示すブロック図
である。
始アドレスおよびブロック・サイズを決定する方法を示
すブロック図である。
モリ・システムに記憶する第2の技法を示すブロック図
である。
モリ・システムに記憶する第3の技法を示すブロック図
である。
グメントの開始アドレスを決定する方法を示すブロック
図である。
を取り出す時使用できるバッファおよびデータ経路のブ
ロック図である。
リ・システムから圧縮テクスチャ・データを取り出す第
1の方法を示す流れ図である。
る。
ることができる符号化の従来技術の1つのタイプを示す
ブロック図である。
モリ・システムから圧縮テクスチャ・データを取り出す
第2の方法を示す流れ図である。
モリ・システムから圧縮テクスチャ・データを取り出す
第3の方法を示す流れ図である。
モリ・システムから圧縮テクスチャ・データを取り出す
第4の方法を示す流れ図である。
モリ・システムから圧縮テクスチャ・データを取り出す
第5の方法を示す流れ図である。
モリ・システムから圧縮テクスチャ・データを取り出す
第5の方法を示す流れ図である。
モリ・システムから圧縮テクスチャ・データを取り出す
第5の方法を示す流れ図である。
モリ・システムから圧縮テクスチャ・データを取り出す
第6の方法を示す流れ図である。
Claims (8)
- 【請求項1】ホスト・コンピュータ・システムのフレー
ム・バッファ・メモリから独立した、該ホスト・コンピ
ュータ・システムのシステム・メモリに記憶される圧縮
テクスチャ・データ構造であって、 第1セグメント開始メモリ位置から始まって第1セグメ
ント終了メモリ位置で終了し、第1セグメント長を有
し、可変の、第1圧縮テクスチャ・データ・ブロック長
を持つ第1圧縮テクスチャ・データ・ブロックを内包す
る第1圧縮テクスチャ・データ・セグメントと、 第2セグメント開始メモリ位置から始まって第2セグメ
ント終了メモリ位置で終了し、第2セグメント長を有
し、可変の、第2圧縮テクスチャ・データ・ブロック長
を持つ第2圧縮テクスチャ・データ・ブロックを内包す
る第2圧縮テクスチャ・データ・セグメントとを備え、 前記第2セグメント開始メモリ位置は前記第1セグメン
ト終了メモリ位置に連続して配置され、 前記第1および第2セグメント長は等しく前記等しいセ
グメント長は、未使用部分によって無駄となるシステム
・メモリの量を最小限度にとどめるように、最大の圧縮
テクスチャ・データ・ブロックに基づいて定められる圧
縮テクスチャ・データ構造。 - 【請求項2】前記第1圧縮テクスチャ・データ・ブロッ
クは前記第1セグメント開始メモリ位置から開始し、前
記第2圧縮テクスチャ・データ・ブロックは前記第2セ
グメント開始メモリ位置から開始する、請求項1に記載
の圧縮テクスチャ・データ構造。 - 【請求項3】前記第1圧縮テクスチャ・データ・セグメ
ントが第1の長さインジケータを含み、該第1の長さイ
ンジケータは前記第1圧縮テクスチャ・データ・ブロッ
ク長を決定するためコンピュータ・グラフィックス・シ
ステムによって使用される、請求項1に記載の圧縮テク
スチャ・データ構造。 - 【請求項4】前記第1の長さインジケータが第1ヘッダ
の内部に含まれ、該第1ヘッダは前記第1セグメント開
始メモリ位置から始まる、請求項3に記載の圧縮テクス
チャ・データ構造。 - 【請求項5】前記第1圧縮テクスチャ・データ・ブロッ
クが第1圧縮ブロック開始メモリ位置から始まり、前記
第1ヘッダが第1ヘッダ終了メモリ位置で終了し、前記
第1圧縮ブロック開始メモリ位置が前記第1ヘッダ終了
メモリ位置に隣接する、請求項4に記載の圧縮テクスチ
ャ・データ構造。 - 【請求項6】前記第1圧縮テクスチャ・データ・セグメ
ントが第1圧縮/伸張タイプ・インディケータを含み、
該第1圧縮/伸張タイプ・インディケータは、前記第1
圧縮テクスチャ・データ・ブロックを伸張する際に使用
する伸張アルゴリズムを選択するため、コンピュータ・
グラフィックス・システムによって使用される、請求項
1に記載の圧縮テクスチャ・データ構造。 - 【請求項7】前記第1圧縮/伸張タイプ・インディケー
タが、前記第1セグメント開始メモリ位置から始まる前
記第1ヘッダの内部に含められる、請求項6に記載の圧
縮テクスチャ・データ構造。 - 【請求項8】前記第1および第2の圧縮テクスチャ・デ
ータ・ブロックが、非圧縮テクスチャ・マップの第1お
よび第2の非圧縮ブロックの圧縮表現を含む、請求項1
に記載の圧縮テクスチャ・データ構造。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US127663 | 1993-09-27 | ||
US09/127,663 US6243081B1 (en) | 1998-07-31 | 1998-07-31 | Data structure for efficient retrieval of compressed texture data from a memory system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000105839A JP2000105839A (ja) | 2000-04-11 |
JP3453088B2 true JP3453088B2 (ja) | 2003-10-06 |
Family
ID=22431256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP21180999A Expired - Fee Related JP3453088B2 (ja) | 1998-07-31 | 1999-07-27 | 圧縮テクスチャ・データ構造 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6243081B1 (ja) |
JP (1) | JP3453088B2 (ja) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6362824B1 (en) * | 1999-01-29 | 2002-03-26 | Hewlett-Packard Company | System-wide texture offset addressing with page residence indicators for improved performance |
KR100296049B1 (ko) | 1999-03-19 | 2001-07-28 | 윤종용 | 단문메시지서비스를 통한 디지털 휴대용 단말기의 사용자 정보 송수신장치 및 그 방법 |
JP2000305822A (ja) * | 1999-04-26 | 2000-11-02 | Denso Corp | データベース管理装置,データベースレコード抽出装置,データベース管理方法及びデータベースレコード抽出方法 |
US6330025B1 (en) * | 1999-05-10 | 2001-12-11 | Nice Systems Ltd. | Digital video logging system |
US6529201B1 (en) * | 1999-08-19 | 2003-03-04 | International Business Machines Corporation | Method and apparatus for storing and accessing texture maps |
US6452602B1 (en) * | 1999-12-13 | 2002-09-17 | Ati International Srl | Method and apparatus for storing compressed data |
US6606628B1 (en) * | 2000-02-14 | 2003-08-12 | Cisco Technology, Inc. | File system for nonvolatile memory |
US6959110B1 (en) * | 2000-08-17 | 2005-10-25 | Nvidia Corporation | Multi-mode texture compression algorithm |
EP1477028A2 (en) * | 2002-02-21 | 2004-11-17 | BRITISH TELECOMMUNICATIONS public limited company | Video processing |
US7512616B2 (en) * | 2003-11-20 | 2009-03-31 | International Business Machines Corporation | Apparatus, system, and method for communicating a binary code image |
US7292729B2 (en) * | 2004-05-07 | 2007-11-06 | International Business Machines Corporation | Device, system, and method for contiguous compressed data |
US8140744B2 (en) * | 2004-07-01 | 2012-03-20 | Seagate Technology Llc | Method and system for increasing data storage reliability and efficiency via compression |
US8001294B2 (en) * | 2004-09-28 | 2011-08-16 | Sony Computer Entertainment Inc. | Methods and apparatus for providing a compressed network in a multi-processing system |
JP4642620B2 (ja) * | 2004-09-29 | 2011-03-02 | 富士フイルム株式会社 | ランレングス圧縮データの位置特定方法および装置 |
JP4444180B2 (ja) * | 2005-07-20 | 2010-03-31 | 株式会社東芝 | テクスチャ符号化装置、テクスチャ復号化装置、方法、およびプログラム |
WO2007059469A2 (en) | 2005-11-10 | 2007-05-24 | Computer Associates Think, Inc. | System and method for delivering results of a search query in an information management system |
US8295621B1 (en) * | 2007-12-13 | 2012-10-23 | Nvidia Corporation | Data decompression using a geometry shading unit |
US8243086B1 (en) * | 2007-12-13 | 2012-08-14 | Nvidia Corporation | Variable length data compression using a geometry shading unit |
US8254701B1 (en) * | 2007-12-13 | 2012-08-28 | Nvidia Corporation | Data compression using a geometry shading unit |
GB2457303A (en) | 2008-02-11 | 2009-08-12 | Linear Algebra Technologies | Randomly accessing elements of compressed matrix data by calculating offsets from non-zero values of a bitmap |
US9047686B2 (en) | 2011-02-10 | 2015-06-02 | Qualcomm Incorporated | Data storage address assignment for graphics processing |
US9378560B2 (en) * | 2011-06-17 | 2016-06-28 | Advanced Micro Devices, Inc. | Real time on-chip texture decompression using shader processors |
US9734598B2 (en) * | 2013-01-15 | 2017-08-15 | Microsoft Technology Licensing, Llc | Engine for streaming virtual textures |
BR112015023973B1 (pt) * | 2013-08-19 | 2021-12-14 | Huawei Technologies Co., Ltd | Método e aparelho de processamento de objeto de dados |
US9881391B2 (en) | 2013-10-02 | 2018-01-30 | Microsoft Technology Licensing, Llc | Procedurally defined texture maps |
US9159114B2 (en) * | 2013-11-08 | 2015-10-13 | Qualcomm Incorporated | Texture decompression for graphics processors |
US9927998B2 (en) * | 2014-02-05 | 2018-03-27 | Tidal Systems, Inc. | Flash memory compression |
JP6553566B2 (ja) | 2016-09-23 | 2019-07-31 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
US10027984B2 (en) | 2016-11-30 | 2018-07-17 | Hewlett Packard Enterprise Development Lp | Methods and systems for efficiently reading a data block from a data seglet with compressed data blocks |
US10535178B2 (en) | 2016-12-22 | 2020-01-14 | Advanced Micro Devices, Inc. | Shader writes to compressed resources |
CN108804219B (zh) | 2017-04-28 | 2024-01-12 | 超威半导体公司 | 多计算核中的灵活着色器导出设计 |
JP7142562B2 (ja) * | 2018-12-25 | 2022-09-27 | ルネサスエレクトロニクス株式会社 | 半導体装置、および、データのアクセスを制御するための方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4125873A (en) * | 1977-06-29 | 1978-11-14 | International Business Machines Corporation | Display compressed image refresh system |
US5046027A (en) * | 1988-11-08 | 1991-09-03 | Massachusetts General Hospital | Apparatus and method for processing and displaying images in a digital procesor based system |
JP3110041B2 (ja) * | 1990-11-30 | 2000-11-20 | 株式会社東芝 | 画像情報処理装置 |
JP3162773B2 (ja) * | 1992-01-06 | 2001-05-08 | キヤノン株式会社 | 画像処理方法及び装置 |
JPH0757098A (ja) * | 1993-08-16 | 1995-03-03 | Ricoh Co Ltd | 画像データ記憶装置 |
US6002411A (en) * | 1994-11-16 | 1999-12-14 | Interactive Silicon, Inc. | Integrated video and memory controller with data processing and graphical processing capabilities |
US5748781A (en) * | 1995-01-04 | 1998-05-05 | Cabletron Systems, Inc. | Method and apparatus for digital data compression |
US5598526A (en) * | 1995-02-23 | 1997-01-28 | Alliance Semiconductor Corporation | Method and system for displaying images using a dynamically reconfigurable display memory architecture |
US5842004A (en) * | 1995-08-04 | 1998-11-24 | Sun Microsystems, Inc. | Method and apparatus for decompression of compressed geometric three-dimensional graphics data |
US5999189A (en) * | 1995-08-04 | 1999-12-07 | Microsoft Corporation | Image compression to reduce pixel and texture memory requirements in a real-time image generator |
US5793371A (en) * | 1995-08-04 | 1998-08-11 | Sun Microsystems, Inc. | Method and apparatus for geometric compression of three-dimensional graphics data |
US5710604A (en) * | 1996-02-09 | 1998-01-20 | Texas Instruments Incorporated | Video memory device for color-sequential-type displays |
US6014133A (en) * | 1996-06-14 | 2000-01-11 | Seiko Epson Corporation | Data transmitter/receiver apparatus, data transmitter, data receiver, and data compression method |
US5936616A (en) * | 1996-08-07 | 1999-08-10 | Microsoft Corporation | Method and system for accessing and displaying a compressed display image in a computer system |
US5748904A (en) * | 1996-09-13 | 1998-05-05 | Silicon Integrated Systems Corp. | Method and system for segment encoded graphic data compression |
US5861888A (en) * | 1996-11-27 | 1999-01-19 | Vlsi Technology Inc | Method and a system for the nonlinear storage of a texture map within a linear memory device |
US6049330A (en) * | 1997-08-28 | 2000-04-11 | Oak Technology, Inc. | Method and apparatus for optimizing storage of compressed images in memory |
KR100300972B1 (ko) * | 1997-09-19 | 2001-09-03 | 윤종용 | 텍스춰매핑수행장치및텍스춰캐시의데이터억세스방법 |
US6055000A (en) * | 1998-05-28 | 2000-04-25 | Snk Corporation | Storage memory for images |
-
1998
- 1998-07-31 US US09/127,663 patent/US6243081B1/en not_active Expired - Lifetime
-
1999
- 1999-07-27 JP JP21180999A patent/JP3453088B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000105839A (ja) | 2000-04-11 |
US6243081B1 (en) | 2001-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3453088B2 (ja) | 圧縮テクスチャ・データ構造 | |
JP3490346B2 (ja) | テクスチャ・データ取り出し方法 | |
US6407741B1 (en) | Method and apparatus for controlling compressed Z information in a video graphics system that supports anti-aliasing | |
US6492991B1 (en) | Method and apparatus for controlling compressed Z information in a video graphics system | |
US6452602B1 (en) | Method and apparatus for storing compressed data | |
US6204863B1 (en) | Method for dynamic XY tiled texture caching | |
KR102381944B1 (ko) | 주파수 압축과 텍스처 파이프라인 | |
US6366289B1 (en) | Method and system for managing a display image in compressed and uncompressed blocks | |
US7190284B1 (en) | Selective lossless, lossy, or no compression of data based on address range, data type, and/or requesting agent | |
US6208273B1 (en) | System and method for performing scalable embedded parallel data compression | |
US6825847B1 (en) | System and method for real-time compression of pixel colors | |
US5880737A (en) | Method and system for accessing texture data in environments with high latency in a graphics rendering system | |
US5987567A (en) | System and method for caching texture map information | |
KR100597879B1 (ko) | 비트맵데이터라인세그먼트를검색하는구분적인-선형직접메모리억세스어드레싱모드를사용하여,프린트될비트맵데이터의래스터화된라인을구성하는방법및장치 | |
KR101994986B1 (ko) | 셰이더 프로세서를 사용한 실시간 온-칩 텍스처 압축 해제 | |
US6944720B2 (en) | Memory system for multiple data types | |
US7039241B1 (en) | Method and apparatus for compression and decompression of color data | |
EP1267308B1 (en) | Texturing systems for use in three-dimensional imaging systems | |
Knittel et al. | Hardware for superior texture performance | |
JP2001195603A (ja) | 3次元グラフィックスのための頂点キャッシュ | |
GB2406993A (en) | Motion estimation for differential encoding using a 3D graphics processor | |
CA2275727A1 (en) | Enhanced texture map data fetching circuit and method | |
WO1998031004A1 (en) | Pixel reordering for improved texture mapping | |
EP1721298A2 (en) | Embedded system with 3d graphics core and local pixel buffer | |
KR20060116916A (ko) | 텍스쳐 캐쉬 및 이를 구비한 3차원 그래픽 시스템, 그리고그것의 제어 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080718 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090718 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100718 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110718 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110718 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120718 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120718 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130718 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130718 Year of fee payment: 10 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130718 Year of fee payment: 10 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130718 Year of fee payment: 10 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130718 Year of fee payment: 10 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
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 |