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
Application number
JP21180999A
Other languages
English (en)
Other versions
JP2000105839A (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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JP2000105839A publication Critical patent/JP2000105839A/ja
Application granted granted Critical
Publication of JP3453088B2 publication Critical patent/JP3453088B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory 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

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータ・グ
ラフィックス・システムにおけるテクスチャ・マッピン
グに関するもので、特に、メモリ・システムから圧縮テ
クスチャ・データを効率的に取り出すことを可能にする
データ構造に関するものである。
【0002】
【従来の技術】コンピュータ・グラフィックスの分野に
おいて、テクスチャ・マッピングは、オブジェクトの表
面のあらゆる細部を実際にモデル化することを必要とす
ることなく、レンダリングされたオブジェクトの表面上
に複雑な様相を作成するため使用される周知の技術であ
る。この技術は、典型的には、2次元の関数またはアレ
イ(すなわちテクスチャ)を3次元オブジェクト空間にお
けるオブジェクトにマップし、その結果生成された画像
を表示するため2次元画面空間に戻すように投影する動
作を伴う。"テクスチャ・マップ"という用語は、テクス
チャ・マッピング・プロセスにおいて使用される関数ま
たはアレイを意味する。一般的2次元テクスチャ・マッ
プは、例えば、木材または大理石のような材質を表現す
るための反復可能パターンから構成される。また、3次
元テクスチャ・マップも頻繁ではないが使用される。3
次元テクスチャ・マップは、通常、2次元テクスチャ・
マップより大きい。テクスチャ・マップは、テクセル(t
exel)と呼ばれる複数の数値から構成される。テクセル
の数値は、通常、RGBカラー値に対応し、また、アル
ファ透明度値に対応する場合もある(RGBカラー値お
よびアルファ透明度値に加えて、あるいは、それらに代
えて、その他のパラメータがテクスチャ・マップに含め
られることもある)。テクスチャ・マップの範囲内のテ
クセルの位置は、s,t座標を使用して指定されること
ができる。
【0003】また、MIPマッピングとして知られる技
術がテクスチャ・マッピングにおいて使用される。MI
Pマッピングは、基底テクスチャ・マップを多数回縮小
サンプリングして、一連の一層小さいテクスチャ・マッ
プを開発するもので、それら一連の一層小さいテクスチ
ャ・マップの各々はあらかじめ決められた一層低レベル
の解像度で基底マップを表現する。典型的には、マップ
番号が各マップに割り当てられる。例えば、2つのテク
スチャが記憶されるシステムの場合、テクスチャ・マッ
プを個別に参照するため、4つの異なるレベルでの解像
度において各々2つ計8つのユニークなマップ番号が必
要とされる。MIPマッピングを使用するシステムにお
いては、各テクスチャに関する基底マップがメモリに記
憶される必要があるだけではなく、各テクスチャに関す
る縮小サンプルされたマップの各々も記憶されなければ
ならない。このように、テクスチャ・マップは、複雑な
画像をレンダリングするため重要な効率を生み出す一方
で、それらの記憶のため必要とされるメモリ量という観
点から負担となる場合もある。実際、画像のレンダリン
グのため使用されるテクスチャ・マップのサイズは、レ
ンダリングされた画像自体より大きい場合もある。
【0004】テクスチャ・マップに関連するメモリ問題
に対処するため現在使用されている1つの技術は、グラ
フィックス・サブシステムの範囲内に位置する専用テク
スチャ・メモリではなく、ホスト・コンピュータ・シス
テムのメモリにテクスチャ・マップを記憶するというも
のである。この新しい技術は、グラフィックス・サブシ
ステムにおける大きい専用テクスチャ・メモリの必要性
を除去または減少させるという範囲において、有益であ
る。一方、この新しい技術は、ソフトウェア・レンダリ
ングに代わってハードウェア・レンダリングを利用する
という新しい問題をシステムにもたらす。グラフィック
ス・サブシステムのレンダリング・ハードウェアは、シ
ステム・メモリに記憶されている大量のテクスチャ・デ
ータにアクセスするため、システム・バスを頻繁に使用
しなければならない。これは、システム・バスおよびシ
ステム・メモリの両方に大幅なバンド幅需要を生じさせ
る。
【0005】テクスチャ・マッピングに関連するこれら
メモリ空間ならびにバンド幅の問題のため、記憶される
テクスチャ・マップを多数の等サイズのブロックに論理
的に分割することが普及した。この方法は、システム・
メモリから1度に1テクセルを取り出すのではなくテク
スチャ・データのブロック全体を取り出すというもの
で、バスならびにメモリ利用度の観点からみて一般的に
効率的である。
【0006】同じ理由のため、テクスチャ・マップを圧
縮した形式で記憶することも普及している。この目的の
ため、JPEG、ラン長符号化、Huffman符号化、ベク
トル量子化およびLampel-Ziv圧縮法を含む種々の圧縮ア
ルゴリズムが使用されている。これらのアルゴリズムの
各々は次のような多数の異なる方法で分類することがで
きる。第1に、アルゴリズムは有損失または無損失か?
有損失アルゴリズムは、無損失よりすぐれた圧縮率を
生むが、画像品質を犠牲にする。第2に、アルゴリズム
が生成する圧縮比率は固定的か可変的か?言い換える
と、アルゴリズムは画像のあらゆる部分を同程度に圧縮
するのか、あるいは、画像の非常に詳細な部分を他の画
像部分より小さい圧縮比率で圧縮するのか? 無損失、
可変圧縮率アルゴリズムがテクスチャ・マッピングの用
途にとって最も利益のあることが判明している。なぜな
らば、無損失アルゴリズムだけが、圧縮/伸張プロセス
を通して、画像品質を保持することができるからであ
る。圧縮比率の可変性によって、無損失を維持しなが
ら、可能な限り最大の全般的圧縮効率が可能とされる。
圧縮アルゴリズムを選択する第3の重要な因子は、当該
アルゴリズムによって生成された圧縮テクスチャ・デー
タを容易にランダムにアクセスすることができる否かと
いう点である。所与のレンダリング・ルーチンがテクス
チャをどのようにアクセスするかを事前に決定すること
が難しいことが多い。従って、圧縮テクスチャー・デー
タをランダムにアクセスすることができる機能は非常に
有益である。
【0007】現在普及している更に別の技法は、上述の
方法の組み合せである。すなわち、テクスチャ・マップ
が論理的にブロックに分割され、次に1度に1ブロック
が圧縮される。圧縮されたテクスチャ・マップが個々の
圧縮された複数ブロックからなる1つのセットとしてシ
ステム・メモリに記憶されるとすれば、テクスチャ・デ
ータの所望の部分は、所望のデータを内包する個々の圧
縮されたブロックだけを取り出すことによって、システ
ム・メモリから取り出すことができる。この技法を使用
すれば、圧縮されたテクスチャ・マップ全体をシステム
・メモリから取り出す必要はなく、システム・メモリに
おけるテクスチャ・データの個々の部分にだけアクセス
すればよい。更に、ブロックが圧縮形式で取り出される
ので、バスならびにメモリ・バンド幅の更なる節約が実
現する。
【0008】
【発明が解決しようとする課題】従って、圧縮されたテ
クスチャ・データをメモリから効率的に取り出すことを
可能にするデータ構造が必要とされている。また、特に
取り出すべき圧縮テクスチャ・データが可変圧縮比率を
使用して生成されたものである場合の効率を高めるデー
タ構造が求められている。
【0009】
【課題を解決するための手段】本発明は、コンピュータ
読み取り可能記憶媒体に記憶されている圧縮テクスチャ
・データ構造を含む。本発明の圧縮テクスチャ・データ
構造は、コンピュータ読み取り可能記憶媒体からのコン
ピュータ・グラフィックス表示システムによる圧縮テク
スチャ・データの効率的取り出しを可能にする。圧縮テ
クスチャ・データ構造は、少くとも第1および第2の圧
縮テクスチャ・データ・セグメントを含む。第1の圧縮
テクスチャ・データ・セグメントは、第1セグメント開
始メモリ位置から始まって第1セグメント終了メモリ位
置で終了し、第1セグメント長を有し、第1圧縮テクス
チャ・データ・ブロック長を持つ第1圧縮テクスチャ・
データ・ブロックを内包する。第2の圧縮テクスチャ・
データ・セグメントは、第2セグメント開始メモリ位置
から始まって第2セグメント終了メモリ位置で終了し、
第2セグメント長を有し、第2圧縮テクスチャ・データ
・ブロック長を持つ第2圧縮テクスチャ・データ・ブロ
ックを内包する。第2セグメント開始メモリ位置は、第
1セグメント終了メモリ位置に連続して配置される。第
1および第2セグメント長は等しいが、第1および第2
圧縮テクスチャ・データ・ブロック長は等しくない。第
1圧縮テクスチャ・データ・ブロックは第1セグメント
開始メモリ位置から開始し、第2圧縮テクスチャ・デー
タ・ブロックは第2セグメント開始メモリ位置から開始
する。
【0010】本発明の別の1つの局面において、第1圧
縮テクスチャ・データ・セグメントは第1の長さインジ
ケータを含む。第1の長さインジケータは、第1の圧縮
テクスチャ・データ・ブロック長を決定するためコンピ
ュータ・グラフィックス・システムによって使用される
ことができる。第1の長さインジケータは、第1ヘッダ
の内部に含まれる。第1ヘッダは第1セグメント開始メ
モリ位置から始まることができる。その場合、第1圧縮
テクスチャ・データ・ブロックは、第1ヘッダの終了メ
モリ位置に隣接するメモリ位置から始まる。第1および
第2の圧縮テクスチャ・データ・ブロックは、非圧縮テ
クスチャ・マップの第1および第2の非圧縮ブロックの
圧縮表現を含む。
【0011】本発明の更に別の局面において、第1圧縮
テクスチャ・データ・セグメントは、第1圧縮/伸張タ
イプ・インディケータを含む。第1圧縮/伸張タイプ・
インディケータは、第1圧縮テクスチャ・データ・ブロ
ックを伸張する際に使用する伸張アルゴリズムを選択す
るため、コンピュータ・グラフィックス・システムによ
って使用されることができる。第1圧縮/伸張タイプ・
インディケータも第1ヘッダの内部に含められる。
【0012】
【発明の実施の形態】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のアーキテクチャと共に、例示の
目的のため提示されているにすぎず、本発明を実施する
ため、図示以外のバス・タイプおよびアーキテクチャを
使用することは可能である。
【0013】グラフィックス・サブシステム116は、
典型的には、グラフィックス・レンダリング・ハードウ
ェア118、フレーム・バッファ・コントローラ120
およびフレーム・バッファ・メモリ122を含む。フレ
ーム・バッファ・コントローラ120は表示モニタ12
6を駆動するため(例えばRAMDACおよび同期発生
回路のような)ビデオ・コントローラ124とインタフ
ェースされる。グラフィックス・レンダリング・ハード
ウェア118は、典型的には、AGPバス113にイン
タフェースされた2Dまたは3Dジオメトリ加速ハード
ウェア、および、テクスチャ・メモリ128ならびにフ
レーム・バッファ・コントローラ120とインタフェー
スされたラスター化/テクスチャ・マッピング・ハード
ウェアを含む。
【0014】テクスチャ・データは、コンピュータ・シ
ステム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のキャッシュとして使用することが適切で
ある。
【0015】2. 可変長圧縮ブロックの連続的記憶 図2は、圧縮(された)テクスチャ・データの可変長ブロ
ックをメモリ・システムに記憶するための第1の技法を
示している。データ構造200は、多数の圧縮テクスチ
ャ・データ・ブロック0−nを含む。圧縮ブロック0−
nは共通のブロック長を持たないが、システム・メモリ
に連続的に記憶される。データ構造200における非圧
縮ブロック0−nと圧縮ブロック0−nの対応関係を示
すように、非圧縮テクスチャ・マップ202が図2に示
されている(通常、テクスチャ・マップ202が一旦圧
縮されたならば、圧縮されたバージョンだけがメモリに
記憶される)。非圧縮ブロック0−nの各々は同じブロ
ック長を持つ。データ構造200は、システム・メモリ
104におけるメモリ空間を節約するという利点を持つ
けれども、圧縮ブロック0−nの各々に関する開始アド
レスを決定する何らかの付加的方式がなければ、それを
使用することはできない。
【0016】図3はそのような方式を示している。非圧
縮テクスチャ・マップのどの非圧縮ブロックが当該テク
セルを含むかを決定するマッピング機能300に対して
s,t座標が使用される。マッピング機能300のよう
なマッピング機能は、照合テーブルまたは組合せの論理
を用いて実施することができる。次に、当該テクセルに
関してマッピング機能302に対して非圧縮ブロック番
号およびマップ番号を使用して、(1)テクセルの圧縮表
現を含む実際の圧縮ブロックに関するシステム・メモリ
の開始アドレスおよび(2)圧縮ブロック長を決定する。
好ましくは、マッピング機能302のようなマッピング
機能を実施するため照合テーブルが使用される。別の実
施形態において、マッピング機能300および302
は、全体として1つの大きい照合テーブル304に包含
されることもできる。マッピング機能の実施様態がどの
ようなものであろうと、マッピング機能は、システム・
メモリ104ではなくグラフィックス・サブシステム1
16の範囲内に物理的に配置されることが好ましい。マ
ッピング機能がシステム・メモリ104の範囲内に配置
されるとすれば、システム・メモリ104に記憶されて
いる圧縮テクスチャ・データのブロックにアクセスする
時、システム・バスが少くとも2回使用されなければな
らない。すなわち、最初は圧縮ブロックに関する開始ア
ドレスおよびブロック長を決定するため、2回目はその
ブロック自体をアクセスするためである。そのような技
法は、システム・バスおよびシステム・メモリ・バンド
幅の観点から非効率である。
【0017】3.可変長圧縮ブロックの等サイズ・セグ
メントへの記憶 図4は、可変長圧縮テクスチャ・データ・ブロックを等
サイズのセグメントに記憶する技法を示す。データ構造
400は、基底アドレス402から始まるシステム・メ
モリ104に記憶される。データ構造400は、各々等
しいセグメント・サイズを持つセグメント0−nから成
る。各セグメント0−nの範囲内に圧縮ブロック0−n
がそれぞれある。各セグメントのサイズは同じである
が、圧縮されたブロックの各々のサイズは潜在的に異な
るので、セグメント0−nの大部分は、図4において例
えば404、406および408という符号で示されて
いるように、未使用のメモリ部分を含む。このように、
データ構造400は、データ構造200と比較してなに
がしかのメモリを浪費する。しかしながら、等サイズの
セグメントへの可変長ブロックの記憶は、各ブロック
(すなわちセグメント)の開始アドレスの計算を単純化す
る。
【0018】好ましくは、データ構造400が作成され
る時、最初にテクスチャ・マップ202がブロック毎に
完全に圧縮される。次に、データ構造400に関するセ
グメント・サイズは、圧縮されたブロック0−nのうち
の最大のもの(すなわち最悪ケースの圧縮比率を持つブ
ロック)に等しく設定される。このようにして、部分4
04、406および408のような未使用部分によって
無駄となるシステム・メモリの量が最小限度にとどめら
れる。また、セグメント・サイズを最も近い2の累乗値
に丸めれば、セグメント開始アドレスの計算が更に簡略
化されるので、都合がよい(セグメント・サイズが2の
累乗であれば、アドレス計算の間に必要な乗算は単純な
シフト動作を使用して実行できる)。代替的に、セグメ
ント・サイズをキャッシュ行境界のような別の便利な値
まで丸めることもできる。
【0019】図5は、図4の方式の1つのバリエーショ
ンを示す。データ構造500の代表部分(すなわち1つ
のセグメント)がシステム・メモリ104に記憶されて
いるように示されている。ヘッダ502が各セグメント
の開始部分に加えられた点を除けば、データ構造500
はすべての点でデータ構造400と同じものである。好
ましくは、ヘッダ502は、そのセグメントに含まれる
圧縮ブロック(例えば図5における圧縮ブロックx)の長
さを表示するため、ブロック長フィールド504を含
む。オプションとして、別の1つのフィールド506を
ヘッダ502に含めることもできる。圧縮/伸張タイプ
・フィールド506を使用して、そのセグメントに含ま
れる圧縮ブロックを生成するために使用された圧縮アル
ゴリズムのタイプを標示することができる(同じことで
はあるが、フィールド506はブロックを伸張するため
に使用されなければならない伸張アルゴリズムを標示す
る)。圧縮/伸張タイプ・フィールド506を使用する
利点は、データ構造500に圧縮ブロックの各々を作成
するため異なるアルゴリズムを使用することができる点
である。このようにして、データ構造500の全体サイ
ズを最小限度にとどめることができる。
【0020】4. 圧縮テクスチャ・データ・セグメント
の開始アドレスの決定 対象テクセルの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と等しい)。
【0021】当該テクセルに対応するマップ番号を使用
して、マッピング機能608によって、目標セグメント
を含むデータ構造に対応するセグメント長610が決定
される。(好ましい実施形態において、圧縮テクスチャ
・セグメント長は、コンピュータ・システム100に記
憶されるすべての圧縮テクスチャ・マップについて同じ
ものである。その場合、マッピング機能608は省略す
ることができる。実際、データ構造400および500
の特性からこのマッピング機能は省略されることが可能
とされている。しかし、一般的ケースにおいては、各マ
ップ番号は異なるセグメント長に対応する)。マッピン
グ機能608は、また、目標セグメントを含むデータ構
造に関する基底アドレス612を生成する。次に、セグ
メント番号606がセグメント長610に乗算され(ブ
ロック614)、乗算結果が基底アドレスに加算されて
(ブロック616)、目標圧縮テクスチャ・データ・セグ
メントに関する開始アドレス618が生成される(上述
のように、セグメント長が2の累乗であれば、乗算61
4は、シフト・レジスタで実施されることができる)。
【0022】最悪ケース圧縮比率620は、目標セグメ
ントを含むデータ構造に対応する。それは、マッピング
機能608によって生成されることができる。代替実施
形態において、セグメント長および非圧縮テクスチャ・
データ・ブロックのサイズの関数として、それは決定さ
れる。(非圧縮テクスチャ・データ・ブロックのサイズ
は前もって知られていると仮定される。好ましくは、サ
イズは各テクスチャ・マップについて同じものであっ
て、使用される圧縮アルゴリズムと無関係である。)
【0023】5. バッファおよびデータ経路 好ましいデータ取り出し方法を記述する前に、図7を参
照してバッファおよびデータ経路を考察する。圧縮テク
スチャ・データがグラフィックス・サブシステム116
によってシステム・メモリ104から読み取られる時、
圧縮テクスチャ・データは経路700を経由して到着し
て、圧縮テクスチャ・データ・バッファ702に記憶さ
れる。データ構造500の場合のようにヘッダが利用さ
れている時、経路706上でアクセスできるようなヘッ
ダ・バッファ704が提供される。好ましくは、(状態
マシンのような)伸張プロセス708が、圧縮テクスチ
ャ・データ・バッファ702にアクセスして、伸張テク
スチャ・データ・バッファ710にファイルする。目標
データ712は、オフセット603を使用して伸張テク
スチャ・データ・バッファ710から取り出すことがで
きる。
【0024】6. 圧縮テクスチャ・データの効率的取り
出し 図8は、アクセスされている圧縮ブロックの長さが前も
って知られていない場合に圧縮テクスチャ・データをメ
モリ・システムから取り出す効率的な方法を示す。ステ
ップ800において、目標テクセルに関するs,t座標
およびマップ番号を使用して、目標圧縮テクスチャ・デ
ータ・セグメントのシステム・メモリ104における開
始アドレスが決定される。ステップ802において、目
標圧縮セグメントを含むデータ構造に関する最悪ケース
圧縮比率が決定される。(以下の記述において、最悪ケ
ース圧縮比率をその英語表現"worst case compression
ratio"の頭文字をとって"WCCR"と略称する)。この
目的のため、図6に関連して上述された方法を使用する
ことができる。(本明細書の記述の目的から、圧縮比率
は、オブジェクトの圧縮前サイズの圧縮後サイズに対す
る比率として定義される。例えば、ある圧縮アルゴリズ
ムが40Kバイトのオブジェクトを10Kバイト・オブ
ジェクトに圧縮することができるならば、この圧縮アル
ゴリズムはこのオブジェクトに対して4対1の圧縮比率
を達成したといわれる)。ステップ804において、カ
ウントが0に初期化される。このカウントは、システム
・メモリ104に対して発信された読み取り要求の総数
に関する情報を追跡するために使用される。ステップ8
06において、読み取りアドレスは、ステップ800で
決定された目標セグメントに関する開始アドレスに初期
化される。
【0025】ステップ808において、読み取り要求発
信動作が開始される。この動作の間に、データ読み取り
要求は、ステップ800において決定された開始アドレ
スから始めて、目標圧縮セグメントの範囲内のアドレス
に順に向けられる。ステップ808において発信される
1つの読み取り要求は読み取りアドレスに記憶されてい
る1つのアドレスに向けられる(各読み取り要求は、好
ましくは、複数バイトのデータを取り出す。説明の目的
から、各読み取り要求はxバイトのデータを取り出すと
仮定する)。ステップ810において、カウントが増分
される。ステップ812および814において、読み取
り要求発信動作が停止されたか否か検査される。ステッ
プ812において、それまでに要求されたデータの最小
非圧縮サイズに対応する最小非圧縮サイズが決定され
る。このサイズを決定するため、カウントに各読み取り
要求が取り出すバイト数(この例では"x")が乗算され
る。乗算の結果にWCCRが乗算される。ステップ81
4において、そのように決定された最小非圧縮サイズが
予想非圧縮サイズと比較される。この比較において使用
される予想非圧縮サイズは、当該ブロックの(事前に知
られている)非圧縮サイズであるか、あるいは、オフセ
ット値603に基づく場合もある(例えば目標テクセル
だけを取り出そうとする場合、予想非圧縮サイズは"オ
フセット+1"として設定される)。最小非圧縮サイズが
予想非圧縮サイズより小さい場合、ステップ816にお
いて読み取りアドレスが適切に増分され、ステップ80
8において別の1つの読み取り要求が発信される。しか
し、最小非圧縮サイズが予想非圧縮サイズと少なくとも
同じであれば、ステップ818において読み取り要求発
信動作が停止される。
【0026】図9は、図8の方法に対する修正を示す。
図9において、ステップ820が、図8のステップ81
2を置き換え、ステップ822が図8のステップ814
を置き換えている。ステップ820において、要求され
たデータに関する実際の圧縮サイズが計算される。実際
の圧縮サイズは単純にxとカウントの乗算結果である。
ステップ822において、この実際の圧縮サイズが予想
圧縮サイズと比較される。予想圧縮サイズを単にセグメ
ント・サイズとすることができる。実際の圧縮サイズが
少くとも予想圧縮サイズと同じ大きさであれば、ステッ
プ824において読み取り要求発信動作が停止される。
しかし、実際の圧縮サイズが予想圧縮サイズより小さけ
れば、動作は図8のステップ816へ進む。注:セグメ
ント・サイズが最大ブロックのサイズに等しく設定され
ているデータ構造を伴う特別のケースの場合、図9の予
想非圧縮サイズが非圧縮ブロックのサイズに設定さてい
れば、図9の方法は、図8の方法と同じ結果を生む(す
なわち、たとえその範囲内の圧縮テクスチャ・データ・
ブロックがセグメントと同じ大きさでないとしても圧縮
テクスチャ・データ・セグメントの全体が読み取られる
という結果を生む)。
【0027】7. 取り出したデータの非圧縮サイズを迅
速に決定することができる場合の方法改善 図10は、非圧縮データのサイズが受け取り次第迅速に
かつ漸増的に決定されることができる場合の符号化アル
ゴリズムの1つの一般的クラスを示している。そのよう
な符号化アルゴリズムの1例は、ランレングス(run-len
gth)符号化法である。ランレングス符号化法のような符
号化技法によって生成されるデータストリームは、先ず
反復数900が送られ、次に、反復されるべきデータの
サイズに対応するサイズ・フィールド902が続き、そ
の後に、反復されるべき実際のデータ904(またはデ
ータを参照するために使用されるインジケータ)が続
く。注:ランレングス符号化においてサイズ・フィール
ド902がオプションで、サイズが暗黙的に定まってい
る場合もある。反復数にデータのサイズを乗算すること
によって、非圧縮サイズが決定され、符号化されたデー
タが受け取られる都度累積される。
【0028】図11は、非圧縮データのサイズが受け取
り次第迅速にかつ漸増的に決定されることができる場合
のテクスチャ・データ取り出し方法を示す。ステップ1
000において、第2の最小非圧縮サイズ値が0に初期
化される。この値は、受け取ったデータの非圧縮サイズ
を蓄積するために使用される。ステップ1002におい
て、その他の値が初期化される。すなわち、目標圧縮テ
クスチャ・データ・セグメントの開始アドレスおよび該
セグメントのデータ構造に関するWCCRが決定され
る。カウント値がゼロに初期化される。このカウント値
は、(要求は出されたがそのデータがいまだに受け取ら
れていない)仕掛り中読み取り要求を追跡するために使
用される。最後に、読み取りアドレス値が目標セグメン
トの開始アドレスに初期化される。ステップ1004に
おいて、読み取り要求発信動作が開始される。読み取り
要求は読み取りアドレスに記憶されているxバイトのデ
ータに対して発信され、カウントが増分される。ステッ
プ1006、1008および1010において、読み取
り要求に応じるデータ量が受け取られ、バッファ702
のような圧縮テクスチャ・データ・バッファに受け取ら
れたデータが記憶され、データがxバイト受け取られる
毎にカウントが減分される(このようにして、カウント
は、要求されたがまだデータが受け取られていない読み
取り要求の数を常に反映する)。
【0029】ステップ1012において、第1の非圧縮
サイズが決定される。このサイズは、要求されたがまだ
受け取られていないデータのサイズに対応する。この値
は、xにカウントを乗算し、更に、WCCRを乗算する
ことによって決定される。ステップ1014および10
16は、上述の第2の非圧縮サイズを蓄積するプロセス
を表す。未処理反復インジケータがバッファ702に存
在する限り、反復数に反復されるべきデータのサイズを
乗算して、その結果を蓄積された合計に加えることによ
って、第2の最小非圧縮サイズが更新される。
【0030】ステップ1018において、第1および第
2の最小非圧縮サイズが加算される。この合計が予想非
圧縮サイズ(例えば、非圧縮ブロックのサイズまたはオ
フセット603から決定されるサイズ)と少なくとも同
じ大きさであれば、ステップ1022において、読み取
り要求発信動作は停止される。しかし、この合計が予想
非圧縮サイズ未満であれば、ステップ1020において
読み取りアドレスが適切に増分され、動作はステップ1
004へ進む。
【0031】本明細書に示されている動作流れ図におけ
るすべてのステップの順序は例示の目的にすぎない点は
注意されるべきである。これらステップは、本発明の理
念を逸脱することなく、異なる順序で実行することがで
きるし、あるいは、異なるプロセスまたは異なる状態マ
シンによって同時に実行することも可能である。
【0032】8. 圧縮テクスチャ・データ・セグメント
の内部におけるヘッダの使用 図12は、データ構造500のようなデータ構造が使用
される場合にメモリ・システムから圧縮テクスチャ・デ
ータを取り出すために使用される方法を示す。ステップ
1100において初期化が実行される。すなわち、目標
圧縮セグメントの開始アドレスが決定され、カウントが
0にセットされ、読み取りアドレス値が目標セグメント
の開始アドレスに等しくセットされる。ステップ110
2において、読み取り要求発信動作が開始する。すなわ
ち、読み取りアドレスに記憶されているデータのxバイ
トを取り出すように読み取り要求が出され、カウントが
増分される。注:図12の方法におけるカウントは、仕
掛かり中読み取り要求の数ではなく発信された読み取り
要求の総数を追跡する。
【0033】ステップ1104乃至1116において、
データが受け取られ、記憶される。データが受け取られ
ると(ステップ1104)、ヘッダが既に受け取られてい
るか否か調べられる(ステップ1106)。まだ受け取ら
れていないとすれば、ステップ1108においてカウン
トが減分され(ヘッダはデータとしてカウントしない)、
ヘッダがバッファ704に記憶される(ステップ111
0)。次に、圧縮ブロック長ヘッダ・フィールド504
に従って、予想圧縮ブロック長値がセットされる。圧縮
/伸張ヘッダ・フィールド506を使用する実施形態に
おいては、ステップ1114にいて、ヘッダ・フィール
ド506の情報を使用して伸張タイプ値がセットされ
る。この伸張タイプ値は、データを伸張するため後刻使
用される。ステップ1106において、ヘッダがすでに
受け取られていると判断されると、到来データがバッフ
ァ702に記憶される(ステップ1116)。
【0034】ステップ1118において、xにカウント
を乗算することによって要求されたデータ長値が計算さ
れる。ステップ1120において、この値が、ステップ
1112でセットされた予想圧縮ブロック長値と比較さ
れる。要求されたデータ長が予想圧縮ブロック長と少な
くとも同じ大きさであれば、ステップ1124において
読み取り要求発信動作が停止され、受け取られたデータ
が伸張される。オプションとして、圧縮/伸張タイプ・
フィールド506を使用する実施形態においては、ステ
ップ1114においてセットされる圧縮/伸張タイプを
使用してステップ1122において伸張を実行すること
が可能である。
【0035】9. 並列伸張 読み取り要求発信動作がまだ進行している間に、それぞ
れのジョブを実行する別のプロセスまたは別の状態マシ
ンを使用することによって、バッファ702の内容を伸
張することも可能である。そのような実施形態において
は、図13乃至図16に示さているような方法を使用す
ることができる。図13の方法は、図14乃至図16に
比較して基本的なものである。ステップ1200におい
て初期化が実行される。すなわち、目標圧縮セグメント
の開始アドレスが決定され、カウントが0にセットさ
れ、読み取りアドレス値が目標セグメントの開始アドレ
スに等しくセットされる。ステップ1202において、
読み取り要求発信動作がプロセス1として開始される。
ステップ1204において、当該読み取り要求発信動作
に応答してなんらかのデータが受け取られたと判断され
ると、ステップ1206において、伸張動作708がプ
ロセス2として開始される。プロセス2は、その進捗を
示すため現在時非圧縮データ・サイズを維持する。プロ
セス1および2が進む間に、ステップ1208が、現在
時非圧縮データ・サイズを予想非圧縮データ・サイズと
比較する。現在時非圧縮データ・サイズが予想非圧縮デ
ータ・サイズと少なくとも同じ大きさであれば、プロセ
ス1および2が共に停止される(ステップ1210)。
【0036】図14乃至図16の方法は、図13の方法
より効果的である。図14の場合、ステップ1300に
おいて、WCCRが決定されること以外は、ステップ1
200の場合と同じ初期化が実行される。ステップ13
02において、読み取り要求発信動作がプロセス1とし
て開始される。このプロセス1は図15に示されてい
る。ステップ1400において、読み取りアドレスに記
憶されているxバイトを取り出す読み取り要求が発信さ
れ、カウントが増分される。ステップ1402において
データのxバイトが受けられたと判断されれば、ステッ
プ1404においてカウントが減分される(このケース
では、カウントは読み取り要求総数ではなく仕掛かり中
読み取り要求を追跡する)。ステップ1406において
伸張プロセスがまだ始まっていないと判断されると、伸
張プロセスがプロセス2として開始される。このプロセ
ス2は図16を参照して後述される。ステップ1410
において、受け取られたデータがバッファ702に記憶
される。
【0037】ステップ1412において、第1の非圧縮
サイズが決定される。この第1のサイズは、要求は出さ
れたがまだ受け取られていないデータの最小非圧縮サイ
ズに対応する。それは、xにカウントを乗算し、さらに
WCCRを乗算することによって決定される、ステップ
1414において、第2の非圧縮サイズが決定される。
この第2のサイズは、プロセス2によって進捗インジケ
ータとして維持されている実際の非圧縮サイズ値に対応
する。ステップ1416において、第1および第2のサ
イズが加算される。その合計が予想非圧縮サイズと少な
くとも同じ大きさであれば、(プロセス1の)読み取り要
求発信動作は、ステップ1418において、停止され
る。さもなければ、プロセス1はステップ1400に戻
る。
【0038】プロセス2の伸張活動が図16に示されて
いる。未処理データがバッファ702に存在すれば(ス
テップ1500)、その少くとも一部分が伸張される(ス
テップ1502)。ステップ1504において、非圧縮
サイズ進捗インジケータが更新されなければならない。
ステップ1506において、更新された非圧縮サイズ値
が予想非圧縮サイズと比較される。実際の非圧縮サイズ
が予想非圧縮サイズと少なくとも同じ大きさであれば、
ステップ1508において伸張プロセスは停止される。
さもなければ、伸張プロセスはステップ1500に戻
る。
【0039】10. システム・メモリから圧縮テクスチ
ャ・データを取り出す効率的方法 図17は、圧縮テクスチャ・データをシステム・メモリ
104から取り出す別の方法を示す。図17の方法は、
グラフィックス・サブシステム116に配置される照合
テーブルまたはハードウェア・マッピング機能(図3参
照)を利用する。ステップ1600において、目標テク
セルに対応するs,t座標およびマップ番号が、グラフ
ィックス・サブシステム116の照合テーブルまたはハ
ードウェア・マッピング機能に適用される。ステップ1
602において、照合テーブルまたはハードウェア・マ
ッピング機能の出力に基づいて、システム・メモリ10
4に記憶されている目標圧縮テクスチャ・データ・ブロ
ックの開始アドレスと長さが決定される(注:図17の
方法では、開始アドレスは、圧縮テクスチャ・データ・
ブロックを含むセグメントではなくそのようなブロック
の開始アドレスを直接指す)。ステップ1604におい
て、カウントが0に初期化され、読み取りアドレス値が
ステップ1602で決定された開始アドレスに初期化さ
れる。
【0040】ステップ1606、1608、1610お
よび1612は、目標テクセルの圧縮表現を含む(シス
テム・メモリ104に記憶されている)圧縮テクスチャ
・データ・ブロックにアクセスするプロセスを表す。ス
テップ1606において、読み取りアドレスに記憶され
ているデータのxバイトを取り出す読み取り要求が発信
され、カウントが増分される。ステップ1608におい
て、xにカウントを乗算することによって要求されたデ
ータ長値が計算される。ステップ1610において、要
求されたデータ長値が、ステップ1602で決定された
圧縮ブロック長と比較される。要求されたデータ長値が
圧縮ブロック長と少なくとも同じ大きさであれば、ステ
ップ1614において読み取り要求発信動作は停止され
る。さもなければ、ステップ1612において読み取り
アドレスが適切に増分され、プロセスはステップ160
6に進む。図17の方法は、アクセスに先立って目標圧
縮テクスチャ・データ・ブロックの開始アドレスおよび
その長さを決定するためシステム・バス110の使用を
必要としないので、システム・バスのバンド幅の効率が
高い方法である。
【0041】以上、好ましい実施形態を参照して本発明
を記述したが、上記参照の実施形態は例示のためのもの
にすぎず、本発明をそのような特定の実施形態に制約す
るために提示されたものではない。本発明の理念を逸脱
することなく、上記実施形態に種々の変更を加えること
が可能な点は当業者に認められることであろう。例え
ば、上述された技法のすべては、3次元のテクスチャ・
マップに適用することが可能である。それら技法を3次
元テクスチャ・マップに関して使用するため、s,t座
標の代わりにr,s,t座標を使用することができる。
【0042】本発明には、例として次のような実施様態
が含まれる。 (1)コンピュータ・グラフィックス表示システムによ
るコンピュータ読み取り可能記憶媒体からの圧縮テクス
チャ・データの効率的取り出しのためコンピュータ読み
取り可能記憶媒体に記憶される圧縮テクスチャ・データ
構造であって、該圧縮テクスチャ・データ構造が少くと
も第1および第2の圧縮テクスチャ・データ・セグメン
トを備え、上記第1圧縮テクスチャ・データ・セグメン
トは、第1セグメント開始メモリ位置から始まって第1
セグメント終了メモリ位置で終了し、第1セグメント長
を有し、第1圧縮テクスチャ・データ・ブロック長を持
つ第1圧縮テクスチャ・データ・ブロックを内包し、上
記第2圧縮テクスチャ・データ・セグメントは、第2セ
グメント開始メモリ位置から始まって第2セグメント終
了メモリ位置で終了し、第2セグメント長を有し、第2
圧縮テクスチャ・データ・ブロック長を持つ第2圧縮テ
クスチャ・データ・ブロックを内包し、上記第2セグメ
ント開始メモリ位置は上記第1セグメント終了メモリ位
置に連続して配置され、上記第1および第2セグメント
長は等しく、上記第1および第2圧縮テクスチャ・デー
タ・ブロック長は等しくない、圧縮テクスチャ・データ
構造。
【0043】(2)上記第1圧縮テクスチャ・データ・
ブロックは上記第1セグメント開始メモリ位置から開始
し、上記第2圧縮テクスチャ・データ・ブロックは上記
第2セグメント開始メモリ位置から開始する、上記
(1)に記載の圧縮テクスチャ・データ構造。 (3)上記第1圧縮テクスチャ・データ・セグメントが
第1の長さインジケータを含み、該第1の長さインジケ
ータは上記第1圧縮テクスチャ・データ・ブロック長を
決定するためコンピュータ・グラフィックス・システム
によって使用される、上記(1)に記載の圧縮テクスチ
ャ・データ構造。 (4)上記第1の長さインジケータが第1ヘッダの内部
に含まれ、該第1ヘッダは上記第1セグメント開始メモ
リ位置から始まる、上記(3)に記載の圧縮テクスチャ
・データ構造。
【0044】(5)上記第1圧縮テクスチャ・データ・
ブロックが第1圧縮ブロック開始メモリ位置から始ま
り、上記第1ヘッダが第1ヘッダ終了メモリ位置で終了
し、上記第1圧縮ブロック開始メモリ位置が上記第1ヘ
ッダ終了メモリ位置に隣接するメモリ位置から始まる、
上記(4)に記載の圧縮テクスチャ・データ構造。
(8)上記第1および第2の圧縮テクスチャ・データ・
ブロックが、非圧縮テクスチャ・マップの第1および第
2の非圧縮ブロックの圧縮表現を含む、上記(1)に記
載の圧縮テクスチャ・データ構造。 (6)上記第1圧縮テクスチャ・データ・セグメントが
第1圧縮/伸張タイプ・インディケータを含み、該第1
圧縮/伸張タイプ・インディケータは、上記第1圧縮テ
クスチャ・データ・ブロックを伸張する際に使用する伸
張アルゴリズムを選択するため、上記コンピュータ・グ
ラフィックス・システムによって使用される、上記
(1)に記載の圧縮テクスチャ・データ構造。 (7)上記第1圧縮/伸張タイプ・インディケータが、
上記第1セグメント開始メモリ位置から始まる上記第1
ヘッダの内部に含められる、上記(6)に記載の圧縮テ
クスチャ・データ構造。
【0045】
【発明の効果】本発明によって、圧縮されたテクスチャ
・データをメモリから効率的に取り出すことができるデ
ータ構造が利用可能となる。特に、取り出すべき圧縮テ
クスチャ・データが可変圧縮比率を使用して生成された
ものである場合、データ取り出しの効率が大幅に改善さ
れる。
【図面の簡単な説明】
【図1】本発明の1つの実施形態に適するコンピュータ
・システムのブロック図である。
【図2】圧縮テクスチャ・データの可変長ブロックをメ
モリ・システムに記憶する第1の技法を示すブロック図
である。
【図3】図2の圧縮テクスチャ・データ・ブロックの開
始アドレスおよびブロック・サイズを決定する方法を示
すブロック図である。
【図4】圧縮テクスチャ・データの可変長ブロックをメ
モリ・システムに記憶する第2の技法を示すブロック図
である。
【図5】圧縮テクスチャ・データの可変長ブロックをメ
モリ・システムに記憶する第3の技法を示すブロック図
である。
【図6】図4および図5の圧縮テクスチャ・データ・セ
グメントの開始アドレスを決定する方法を示すブロック
図である。
【図7】図5のデータ構造から圧縮テクスチャ・データ
を取り出す時使用できるバッファおよびデータ経路のブ
ロック図である。
【図8】本発明の1つの好ましい実施形態に従ってメモ
リ・システムから圧縮テクスチャ・データを取り出す第
1の方法を示す流れ図である。
【図9】図8の方法に対する修正部分を示す流れ図であ
る。
【図10】テクスチャ・データを圧縮するために使用す
ることができる符号化の従来技術の1つのタイプを示す
ブロック図である。
【図11】本発明の1つの好ましい実施形態に従ってメ
モリ・システムから圧縮テクスチャ・データを取り出す
第2の方法を示す流れ図である。
【図12】本発明の1つの好ましい実施形態に従ってメ
モリ・システムから圧縮テクスチャ・データを取り出す
第3の方法を示す流れ図である。
【図13】本発明の1つの好ましい実施形態に従ってメ
モリ・システムから圧縮テクスチャ・データを取り出す
第4の方法を示す流れ図である。
【図14】本発明の1つの好ましい実施形態に従ってメ
モリ・システムから圧縮テクスチャ・データを取り出す
第5の方法を示す流れ図である。
【図15】本発明の1つの好ましい実施形態に従ってメ
モリ・システムから圧縮テクスチャ・データを取り出す
第5の方法を示す流れ図である。
【図16】本発明の1つの好ましい実施形態に従ってメ
モリ・システムから圧縮テクスチャ・データを取り出す
第5の方法を示す流れ図である。
【図17】本発明の1つの好ましい実施形態に従ってメ
モリ・システムから圧縮テクスチャ・データを取り出す
第6の方法を示す流れ図である。
【符号の説明】
104 システム・メモリ 202 非圧縮テクスチャ・マップ 400 データ構造 402 基底アドレス 404、406、408 未使用部分
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平10−307925(JP,A) 特開 平10−98719(JP,A) 特開 平10−11594(JP,A) 特開 平9−326041(JP,A) 特開 平9−16785(JP,A) 特開 平8−339267(JP,A) 特開 平8−339262(JP,A) 特開 平8−314798(JP,A) 特開 平8−314689(JP,A) 特開 平8−221249(JP,A) 特開 平8−163560(JP,A) 特開 平8−102141(JP,A) 特開 平8−87398(JP,A) 特開 平5−37790(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06T 15/00 300 G06F 5/00 G06F 12/04 530 H03M 7/30 JICSTファイル(JOIS)

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】ホスト・コンピュータ・システムのフレー
    ム・バッファ・メモリから独立した、該ホスト・コンピ
    ュータ・システムのシステム・メモリに記憶される圧縮
    テクスチャ・データ構造であって、 第1セグメント開始メモリ位置から始まって第1セグメ
    ント終了メモリ位置で終了し、第1セグメント長を有
    し、可変の、第1圧縮テクスチャ・データ・ブロック長
    を持つ第1圧縮テクスチャ・データ・ブロックを内包
    る第1圧縮テクスチャ・データ・セグメントと、 第2セグメント開始メモリ位置から始まって第2セグメ
    ント終了メモリ位置で終了し、第2セグメント長を有
    し、可変の、第2圧縮テクスチャ・データ・ブロック長
    を持つ第2圧縮テクスチャ・データ・ブロックを内包
    る第2圧縮テクスチャ・データ・セグメントとを備え、 前記第2セグメント開始メモリ位置は前記第1セグメン
    ト終了メモリ位置に連続して配置され、 前記第1および第2セグメント長は等しく前記等しいセ
    グメント長は、未使用部分によって無駄となるシステム
    ・メモリの量を最小限度にとどめるように、最大の圧縮
    テクスチャ・データ・ブロックに基づいて定められる
    縮テクスチャ・データ構造。
  2. 【請求項2】前記第1圧縮テクスチャ・データ・ブロッ
    クは前記第1セグメント開始メモリ位置から開始し、前
    記第2圧縮テクスチャ・データ・ブロックは前記第2セ
    グメント開始メモリ位置から開始する、請求項1に記載
    の圧縮テクスチャ・データ構造。
  3. 【請求項3】前記第1圧縮テクスチャ・データ・セグメ
    ントが第1の長さインジケータを含み、該第1の長さイ
    ンジケータは前記第1圧縮テクスチャ・データ・ブロッ
    ク長を決定するためコンピュータ・グラフィックス・シ
    ステムによって使用される、請求項1に記載の圧縮テク
    スチャ・データ構造。
  4. 【請求項4】前記第1の長さインジケータが第1ヘッダ
    の内部に含まれ、該第1ヘッダは前記第1セグメント開
    始メモリ位置から始まる、請求項3に記載の圧縮テクス
    チャ・データ構造。
  5. 【請求項5】前記第1圧縮テクスチャ・データ・ブロッ
    クが第1圧縮ブロック開始メモリ位置から始まり、前記
    第1ヘッダが第1ヘッダ終了メモリ位置で終了し、前記
    第1圧縮ブロック開始メモリ位置が前記第1ヘッダ終了
    メモリ位置に隣接する、請求項4に記載の圧縮テクスチ
    ャ・データ構造。
  6. 【請求項6】前記第1圧縮テクスチャ・データ・セグメ
    ントが第1圧縮/伸張タイプ・インディケータを含み、
    該第1圧縮/伸張タイプ・インディケータは、前記第1
    圧縮テクスチャ・データ・ブロックを伸張する際に使用
    する伸張アルゴリズムを選択するため、コンピュータ・
    グラフィックス・システムによって使用される、請求項
    1に記載の圧縮テクスチャ・データ構造。
  7. 【請求項7】前記第1圧縮/伸張タイプ・インディケー
    タが、前記第1セグメント開始メモリ位置から始まる前
    記第1ヘッダの内部に含められる、請求項6に記載の圧
    縮テクスチャ・データ構造。
  8. 【請求項8】前記第1および第2の圧縮テクスチャ・デ
    ータ・ブロックが、非圧縮テクスチャ・マップの第1お
    よび第2の非圧縮ブロックの圧縮表現を含む、請求項1
    に記載の圧縮テクスチャ・データ構造。
JP21180999A 1998-07-31 1999-07-27 圧縮テクスチャ・データ構造 Expired - Fee Related JP3453088B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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