JP2004046886A - グラフィック対象物をチャンク映像に変換し、かつ、映像層を結合して表示画像に換える方法、および、装置 - Google Patents
グラフィック対象物をチャンク映像に変換し、かつ、映像層を結合して表示画像に換える方法、および、装置 Download PDFInfo
- Publication number
- JP2004046886A JP2004046886A JP2003286313A JP2003286313A JP2004046886A JP 2004046886 A JP2004046886 A JP 2004046886A JP 2003286313 A JP2003286313 A JP 2003286313A JP 2003286313 A JP2003286313 A JP 2003286313A JP 2004046886 A JP2004046886 A JP 2004046886A
- Authority
- JP
- Japan
- Prior art keywords
- pixel
- data
- memory
- image
- gsprite
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Abstract
【解決手段】 この装置はgスプライトのシャンクを直列にレンダリングし、且つ表示イメージを計算するためのgスプライトを合成する。この装置はフレームアニメーションのために対象物を再レンダリングするよりもむしろ三次元対象物の動きをシミュレートするためにgスプライト上にアフィン変換を実行できる。シャンク内のレンダリング幾何学が複雑な断片リストアンチアリアースを可能にする。この装置は断片バッファ内に部分的に覆われた画素位置を表現する断片又は半透明画素を記憶する。シャンクに対するプリミテーブをラスター化した後に、断片分解補助装置が出力画素を計算するために断片を識別する。この装置のラスター化成分が断片メモリを節約するために断片を合併しようと試みる。
【選択図】 図4A
Description
アプリケーション・モデルとは、もちろん画像処理はモデルに基づくと仮定して、データ、すなわち、表示される対象物を表わす。モデルは、対象の形を定義する基本要素、例えば、点、線や多角形を始め、対象物の属性(例えば、色)に関する情報を含む。アプリケーション・プログラムは、アプリケーション・モデルへ入るインプット、モデルから出て行くアウトプットをコントロールし、アプリケーション・モデルと、グラフィックス・サブシステムとの間の翻訳者として有効に活動する。最後に、グラフィックス・サブシステムは、ユーザー・インプットをアプリケーション・モデルに手渡したり、また、アプリケーション・モデルの蓄えている詳細な記載に基づいて画像を生成したりする。
CRT のような従来のラスター画像装置に関するもう一つの問題は、装置から発せられる光が比較的速やかに減衰することである。そのため、画像の「ゆらぎ」を避けるためには、通常、60Hz以上もの頻度で、表示を「 更新」してやらなければならない(すなわち、ラスターを再走査しなければならない)。このため、画像生成装置は、画像データを一定頻度で供給するという厳しい要求をつきつけられることになる。二つのフレーム・バッファーを用いてこの問題に対応しようとする装置がある。すなわち、バッファーの内の一つは、直後の画像フレームに対応するピックスマップ情報を備え、他方のバッファーは、只今の画像フレームのピックスマップでスクリーンを更新するのに用いられる。
フレーム・バッファー法の主要利点は、任意の数の単純な対象物を用いて、出力装置において、一つの任意の画像を生成することができ、しかも、それが、ただ、その出力装置の空間的、強度的解像度によってしか制限されないということである。しかしながら、フレーム・バッファーを用いる画像装置にはいくつかの弱点がある。
本発明は、幾何学的基本図形のようなグラフィック・データを変換して、表示画像を生成するための方法、および、装置を与える。本発明は、3Dグラフィックスをリアル・タイムで変換するのに特に好適であるが、他のグラフィックスや画像処理アプリケーションにも同様に適用できる。
画像変換装置の一つの態様として、本装置は、グラッフィク対象物を、gスプライト(gsprite) と呼ばれる画像層に別々に変換し、次に、このgスプライトを合成して表示画像に仕立てあげる。さらに具体的に言うと、本装置は、gスプライトを対象物に割り当て、次に、各対象物( 単数または複数)を、対応するgスプライトに変換する。gスプライトを変換するために、本装置は、映像領域、すなわち、gスプライトのチャンクを連続的に変換する。本装置は、gスプライトを、チャンクに分解し、これらのチャンクの間で対象物の大きさを仕分けし、次に、そのチャンクを連続的に変換する。本装置は、gスプライトを合成して表示画像に仕立てる。
下記の詳細な説明の中で、われわれは、画像処理装置に関して、いくつかの実施態様を記述する。
この画像処理装置は、グラフィックスとビデオ処理の両方にたいして、リアル・タイム画像変換と生成をサポートする。本装置に用いられる新規のアーキテクチャーと画像処理法によって、本装置は、当今の画像装置に比べて、高度なリアル・タイム3Dアニメを、はるかにコスト安で生成することができる。画像処理に加えて、本装置は、ビデオ編集アプリケーションのようなビデオ処理をもサポートし、また、ビデオとグラッフィクスを結合させることもできる。例えば、本装置は、ビデオを、グラッフィクな対象物に適用したり、ビデオ・データにグラッフィクな対象物を加えるのに用いることもできる。
画像プロセッサー106 は、画像を変換し、表示装置108 に表示されるべき表示画像を生成する。変換とは、モデルから画像を生成する工程を指し、二三挙げるならば、大きさ処理(大きさ処理は、前処理機能でもあることに注意)、視程表面の決定、走査変換、および、光入射などの機能を含む。画像、または、画像の一部を変換した後、画像プロセッサー106 は、変換された画像データを、表示のために表示装置に転送する。
本装置においては、多数の、独立の映像層がビデオ速度で合成されて、出力ビデオ信号を生成する。この映像層を、われわれは一般化スプライト(generalized sprite)すなわちgスプライト(gsprite) と呼ぶことにするが、これらは、独立に変換・操作することができる。これによって、各対象物を、独立に更新することができるので、対象物の更新速度を、場面の優先性に応じて最適化することができる。例えば、はるか遠くの背景を動く対象物は、前景対象物ほど頻繁に、また、それほど正確に更新する必要はない。
gスプライトにたいしては、拡大・縮小、回転、サブピクセル位置づけ、アフィン・ワープのような運動模倣性変換を含む、いくつかの異なる作業をビデオ速度で実行することができる。従って、gスプライト更新速度は変えられる一方で、gスプライト変換(運動など)は、完全なビデオ速度で実現可能なので、更新速度保証を持たない従来の3D画像装置で実現できるレベルをはるかに越えた滑らかな運動性を実現する。
通常の、3Dグラッフィクス・アプリケーション(特にインタラクティブ・ゲーム)は、高度の活動速度を実現するために、ディテールの尺度レベルを犠牲にする。gスプライトによって、本装置は、さらに二つの場面パラメータを利用することができる。すなわち、ディテールの時間レベルと、ティテールの空間レベルである。そして、それらによって、ユーザーから見たときの実効的演技を最適なものとする。ある対象物が映像に変換される時の空間解像度は、そこへ変換されるスクリーンの解像度に適合する必要はない。さらに、本装置は、この調整を、アプリケーション側のサポートを必要とせず、自動的にやりくりすることができる。
装置のコストと性能の決定にあずかってもっとも重要な因子は恐らくメモリーであろう。例えば、従来の高性能3D画像装置は、フレーム・バッファー(2重バッファー)、深みバッファー、生地バッファー、および、自然化バッファーを含めて、30メガバイトを越えるメモリーを持つ。そして、この多くは、特殊メモリーであって、DRAMよりもずっと高価である。メモリー帯域は常に死命を制するネックとなる。高性能装置のコストは、順飛ばしによって得た多数のメモリー貯蓄を、ピクセルや、生地データ・アクセスのために十分な帯域を用意したいという要求に振り向けるために突き上げられることがしばしばである。
本装置の、もう一つの重要な進歩を、チャンク化と呼ぶ。従来の3D画像装置(その点に限って言えばどのフレーム・バッファーでも)ランダムにアクセスが可能である(されている)。スクリーン上の任意のピクセルにたいして、ランダムな順序でアクセスすることができる。圧縮アルゴリスムは、相当に大きな数の隣接ピクセルへのアクセス性に依存するので(空間的一体性を利用するために)、圧縮は、グラフィックス・アルゴリスムによって用いられるランダム・アクセス・パターンの性質のために、すべてのピクセルの更新がなされて始めて実行可能となる。このため、圧縮技術を、表示バッファーにたいして適用することは実際的でなくなる。
本装置は別の方法を取る。ある場面、または、場面の一部は、チャンクと呼ばれるピクセル領域に分割される(ある特定の実行例では32 x 32 ピクセル)。一つの実行例では、装置は、gスプライトに割り当てられた幾何図形をチャンクに分割するが、別の実行例では、gスプライトを用いずにチャンク化を実行する。この幾何図形は、それがどのチャンクに変換されるかに基づいて前もってビンに仕分けされる。この工程をチャンク化と呼ぶ。チャンクの境界にかかる図形はできれば、それが見える各チャンクに参照されることが好ましい。場面が活性化されるにつれて、データ構造は、一つのチャンクから別のチャンクへと移動する図形に合うように修正される。
本装置のアーキテクチャーのもう一つの利点は、3Dインタラクティブ・アプリケーションが、1970年代のCAD 画像装置の外観―あの、飽き飽きする、複数の高反射部を備えた、ランベルト図形的、段階状陰影の多角形群―から抜け出すためのきっかけを与えることである。色付きの生地マッピングは、この外観を改善するばかりでなく、アプリケーション上ではさらにもう一つ独特の外観を呈する。1980年代に、プログラム可能な陰影器や、処理的生地マップの概念が、変換工程に新しい飛躍をもたらした。これらの概念は、オフ・ライン変換の世界を一掃し、今日われわれが映画の特殊効果に見るような高品質画像を生成する。
本画像処理装置、または、その部分は、デスクトップ・コンピュータ、テレビセット接続ユニット、および、ゲーム装置を含む、いくつかの異なるプラットフォームに実装することができる。
表示装置142 は、カラー・ディスプレーであって、画像を表示するために連続的に更新される。一つの実施態様の表示装置は、陰極線管(CRT) 装置であるが、これは、液晶表示(LCD) であっても、その他の表示装置であってもよい。
二次保存装置138 は、各種の保存媒体を含む。例えば、二次保存装置は、フロッピー(登録商標)・ディスク、ハードディスク、テープ、CD-ROMなどを含んでいてよく、また、電気的、磁気的、光学的、または、他の記録材料を用いる装置であってもよい。
下記に詳述する一つの実行例においては、画像処理ハードウェア144 は、コンピュータ装置と、PCI バスを通して結合するボードに実装される。また別の実行例では、画像処理ハードウェアは、プロセッサーや、他の画像処理ハードウェアやメモリーと共にシステム・ボードに置かれる。例えば、あるゲーム装置では、画像処理ハードウェアは、通常、マザー・ボード上に置かれる。同様に、テレビセット接続装置の画像処理ハードウェアもマザー・ボード上に置いてもよい。
われわれは、以下に、グラフィック・サポート・ソフトウェアの機能に関してさらに詳細を述べる。画像処理ボード164 は、変形、照明、および、影つけ、生地つけ、自然化、透過性などを含む低レベルの幾何学処理を実行する。一つの実施態様では、DSP166が、フロント・エンド幾何学処理と照明計算を実行するが、この機能のうちいくつかは、ホストのプロセッサー132 に実行させてもよい。
第4A図は、画像処理ボード174 を示すブロック・ダイアグラムである。この画像処理ボード174 は、ホスト・コンピュータと、バス146 を介して連絡する。このものは、DSP176、タイラー200 、共有メモリー216 、gスプライト・エンジン204 、合成バッファー210 、および、ディジタル・アナログ変換器(DAC)212を含む。ホストからの命令に応じて、画像処理ボード174 は、画像を変換し、表示用画像を、DAC212を介して表示装置142(第2図)に転送する。
DSP176は、ビデオ圧縮・脱圧と、フロントエンド画像処理(変換、照明、など)を行なう。できれば、DSP は、1000 MFLOPS/MOPS を越える浮動小点と積分計算をサポートするものであることが好ましい。
タイラー200 は、VLSIチップであって、マルチパス変換のために、走査変換、陰影階調、生地つけ、被遮蔽表面の除去、自然化処理、透過性、影つけ、および、混合を行なう。次に、この得られた変換gスプライト・チャンクを圧縮し、圧縮した形で共有メモリーに蓄える。タイラーはさらに、ビデオ、および、ウィンドウ作業をサポートするために、gスプライト・データの脱圧および再圧縮を行なう。
DAC212は、RGB ビデオDAC と対応するビデオ・ポート214 から、ビデオ編集装置までを含む。個々の成分は、DAC の機能性を実現するために用いられる。
第5Aおよび5B図は、本画像処理装置において映像を変換する際に実行される手順を示すフロー・ダイグラムである。画像プロセッサー106 が、視野構成のために映像変換を開始する前に、画像前置プロセッサー104 は、対象物と視点の位置を決める(240) 。第2と3図で示した実施態様では、ホスト・コンピュータ装置132 の上を走るグラフィックス・サポート・ソフトウェア160 が、グラッフィクス・アプリケーションから供給されるデータに基づいて、対象物と視点の位置を決める。ホスト・プロセッサーの上を走るグラフィックス・アプリケーションは、関係対象物を表わすモデルを定義し、モデル化変形を供給し、これが、その対象物を、他の対象物と共に「世界座標」の中に位置づけるのに使用される。
決定手順(254 )(第5B図)、および、それに続く手順(256) は、チャンク内で多角形のタイル敷きを行なう工程を表わす。画像プロセッサーは、現在のチャンクの境界に重なる多角形を含む一方、同チャンク内にあるピクセルしか生成しない。生成されたピクセルは、自然化処理( 断片記録) のための情報を含み、これは、すべてのピクセルが生成されるまで保存される。
第6図は、画像を表示するために実行される手順を示すフロー・ダイアグラムである。上述の画像処理ボード174 上において、画像は、共有メモリー216 から読み取られ、gスプライト・エンジン204 によって、物理的出力装置座標に変形され、合成バッファー210 において合成され、DAC212に転送され、次に出力装置に転送される。
見える可能性のある範囲のgスプライトに関しては、画像プロセッサーは、gスプライト変形を求める。gスプライト変形とは、変換2Dgスプライトにおける変形を指す。一つの実施態様では、画像プロセッサーは、変換必須成分を抑えるようにgスプライトにたいして変形を実行する。各フレームごとに各対象物を変換するのでなく、画像プロセッサーは、変換gスプライトを再利用することによって、変換必須成分を抑える。
gスプライトの位置が変化しない場合には、このgスプライトに、単位行列をかけてもよい。これは、例えば、画像プロセッサーが、現在のフレームのためにgスプライトを変換した場合、あるいは、始めに変換されて以来gスプライトの位置が変化しない場合にあてはまる。
2重バッファーであるために、第6図に示した手順は重複する。すなわち、画像プロセッサーは、あるフレームにたいしては、手順(280-286) を実行する一方で、別のフレームにたいしては手順(290-298)を実行する。
一つの実施態様においては、画像プロセッサーは、各帯域ごとにループ操作を行ない、gスプライト表示リストに従って、その帯域に照射するgスプライトを変形する。以下に、この表示工程をさらに詳細に述べる。
ピクセル・データを合成した後、画像プロセッサーは、合成ピクセル・データを出力装置に転送する。ピクセル・データを表示するためには、それは、表示と適合するフォーマットに変換されていなければならない。
画像処理ボード
一つの実施態様では、共有メモリー216 は、4 メガバイトのRAM を含む。これは、2 本の8 ビットRAM バス・チャンネルによって実行される。しかしながら、メモリーの量および型は変更可能である。
DSP コア338 は、上述の画像処理計算を実行するためのプロセッサーを含む。さらにDSP コアは、スケジュール設定、および、リソース管理を実行する。
本画像処理ボード(第4A図、174 )のアーキテクチャーは、特定のDSP からは比較的独立している。しかしながら、DSP は、顕著な浮動小点性能を持っていることが好ましい。適当なDSP としては、Samsung 半導体のMSP-1 、および、Phillips半導体のTrimediaが挙げられる。これら特定のDSP は、十分な浮動小点性能を与えるDSP の二つの例である。
タイラー378 は、基本図形変換のためにいくつかの成分を含む。命令およびメモリー・コントロール380 は、共有メモリー216 、gスプライト・エンジン204 、および、DSP176とインターフェイスを形成する。タイラー、DSP 、および、gスプライト・エンジンからの、メモリーにたいするアクセスは、このブロックによって判断される。キューが、バッファー読み取りアクセスにたいして与えられる。
走査変換エンジン398 は、生地アドレスを生地フィルター・エンジン400 に渡す。エンジンは生地データを求める。生地フィルター・エンジン400 は、変換された多角形のピクセルの色とアルファー・データを求める。図に示した生地フィルター・エンジンは、変換された三角形のZ 勾配と方向、および、生地要求の中心に基づいてフィルター・カーネルを計算する(1点のS とT 座標が生地にマップされる)。濾過は、パイプライン方式によって、各サイクルごとに新しいピクセルが生成されるように二段階で実施される。フィルター・カーネルは、異方性フィルターであってもよいし、等方性フィルターであってもよい。異方性が要求されないばあいは、フィルター・カーネルは、3直線内挿法の場合よりももっとずっと鮮鋭な生地を与える陰性片葉を用いてもよい。生地フィルター・エンジン400 はさらに、陰影にたいする効果を計算するために、Z 比較作業を扱う。
走査変換エンジン398 は、ピクセル・データをピクセル・エンジン406 に転送する。ピクセル・エンジン406 は、混合、および、深み保存を含むピクセル・レベルの計算を実行する。ピクセル・エンジンはさらに陰影に必要なZ 比較作業を扱う。最適性能を発揮するためには、ピクセル・エンジンは、各クロック・サイクルごとに1ピクセルずつ作業することが好ましい。
生地マッピング作業の他にも、この方法は、影つけや、マルチパス混合作業にも同様に適用できる。例えば、生地参照データ・キューを用いて、メモリーの中にある影深みマップを取り出すことができる。また別法として、生地参照データ・キューは、マルチパス照明や、影つけ作業で使用された色、および・または、アルファー・データの回収に利用できる。生地マッピング、影つけ、および、マルチパス作業についてはさらに詳細に以下に述べる。
生地キャッシュ・コントロール391 、生地読み取りキュー393 、および、メモリー・コントロール380 は、第10図の生地ブロック・フェッチ420 の特異な実行例である。さらに、圧縮生地ブロックにたいしては、圧縮キャッシュ416 と脱圧エンジン404 が、生地ブロック・フェッチ420 の一部となる。
第9C図は、第11図に示した装置のさらに詳細な実装を示す。この実行例では、第11図のブロック425 と426 に関連して記載された機能は、セットアップ・ブロック383 内部に実装される。特に、セットアップ・ブロック383 は、前ラスター化装置426 を含む。セットアップ・ブロック383 はさらに、付加的基本図形を含む付加頂点コントロール・レジスター381 をも含む。そのために、前ラスター化装置は、基本図形を速やかに変換し、生地データ請求を発することができる。セットアップ・エンジンと前ラスター化装置383 は、生地ブロックにたいする請求を、第9C図に示した生地キャッシュ・コントロール391 に送る。
待ち時間を短縮した環境においてラスター化を行い、テクスチャ取り込み操作をおこなう2つの方法を上記に説明した。次にテクスチャキャッシュ制御の特徴を詳細に説明する。
テクスチャキャッシュ制御には、仮想キャッシュと物理的キャッシュの2つの概念キャッシュがある。仮想キャッシュは最初の( 事前取り込み) 要求ストリームに関連しており、キャッシュエントリに直接伴うデータは有していない( このキャッシュへの要求によりデータが戻ることはない) 。物理的キャッシュは第2の( 実際の) 要求ストリームに関連しており、各キャッシュエントリに伴う実際のテクスチャデータを有している( 従ってデータは要求元に戻る) 。これらのキャッシュのエントリ数は同一である。
ちなみに要求されたキーがすでに仮想キャッシュに存在していた場合、関連データは第2の要求ストリームから要求があった時には物理的キャッシュに存在しているので何も実行されない。
この置換は必要となるときまで延期されるので、物理的キャッシュへのデータ書き込みに要する時間により、待ち時間は第2の要求ストリームを制御する処理に加算される。この待ち時間を減小させる2つの方法は次の通りである。
最初の方法では、物理的キャッシュのバッファデータを2倍にする。これにより、復元サブシステムはその倍増バッファ側に各エントリのデータを即座に書き込み、また物理的キャッシュコントローラはバッファスワップ( おそらく高速)を行ってデータをそのキャッシュ側にマップさせることが可能になる。書き込まれるエントリに空きがなく、まだスワップされていない場合は、復元サブシステムは待機するのみである。ちなみに、仮想キャッシュコントローラが使用するキャッシュ置換アルゴリズムは同じエントリに繰り返し書き込みを行う傾向があるので、キャッシュエントリへの書き込みを「広げる」必要がある。
この方式は同一の要求ストリームが2つ生成されることを基本的に前提としている。しかしながら、このような要求に対応する特定のキーは同一である必要はない。
最初の( 早いほうの) 要求ストリームを形成するキャッシュキーは、テクスチャデータの読み出しとその後の復元を制御するのに使用される。このようなキーは、要求されたデータ( メモリアドレス等) に直接関連していなければならない。
gスプライトデータアドレスジェネレータは要求されたgスプライトブロックのメモリのアドレスを決定し、gスプライト読み出し要求をインタフェース制御ブロックに送信する。gスプライトデータアドレスジェネレータ448はメモリ管理ユニットを有している。
復元エンジン450には2つのデコンプレッサを備えており、一方は3次元のgスプライトや画像等の連続したトーンの画像に対してDCTに基づいたアルゴリズムを実行し、他方はデスクトップピクセルデータに対してロスのないアルゴリズムを実行する。DCTに基いたアルゴリズムは2つの平行圧縮ブロックが実行し、両ブロックとも各クロック周期ごとに8個のピクセル要素(すなわち2ピクセル)を生成することができる。
画像プロセッサアドレスジェネレータ454は、特定の疑似変換に基づいて各gスプライトをスキャンし、また各ピクセルのフィルタパラメータを計算するのに使用される。gスプライトキャッシュアドレスはgスプライトキャッシュ452のgスプライトデータにアクセスし、それをgスプライトフィルタエンジン456に送るために生成される。画像プロセッサアドレスジェネレータ454も合成バッファを制御する。
図12Bはgスプライトエンジン437の他の構成を示すブロック図である。これには、プリラスタライザ449とラスタライザ454の両者が含まれているので、gスプライトエンジンはgスプライトピクセルデータブロックの検索や復元で待ち時間を生じさせることなくgスプライト空間からのピクセルデータを画面空間に変換することができる。この構成で2つのラスタライザを用いる方法は図11及び9Cを参照して上記に説明したとおりである。
アルファバッファ48 6は1344x32ピクセルのそれぞれに対して8ビットの数値を有している。メモリは、連続する4つのピクセルが各クロック周期ごとに読み出しまたは書き込みされるように構成されている。アルファバッファは、32走査線帯の切り替えの間にバッファを迅速にクリアする高速クリア機構も有している。
マルチプレクサは2つの走査線バッファ488のうちの何れかからのデータを選択し、ピクセル表示データをDAC に送信する。マルチプレクサは32本の走査線ごとにバッファの切り替えを行う。
図14は画像処理ボード174上のDAC 514を示すブロック図である。DAC514は、現在市場に一般的に出回っているRAMDACに共通する基本機能を実行する。DAC は内部制御レジスタの読み書きを行ったり、映像制御信号を次々と送信するロジックを有している。その他の機能ブロックについては、以下に説明する。
ステレオ画像スプリッタ520は、ヘッド装備ディスプレイシステムを用いて立体表示される2つの映像信号を支援する。このモードでは、2つの映像チャネル( 522,524) が合成バッファから交互配置されており、DAC 514によって分割されなければならない。ステレオ画像スプリッタ520はDAC 514でこの機能を実行する。通常の単一チャネルモードでは、LUT データが第1DAC に直接送られる。
RAM に大容量のフレームバッファとZ-バッファを使用してカラー、深さ、各ピクセルのその他の情報を記憶する従来のグラフィックシステムとは異なり、このシステムはある1画面の中の対象を「チャンク」と呼ばれる画像領域に分割し、対象の配列をこのようなチャンクに別個に配置する。実施例において、対象はgスプライトで表示される。gスプライトはチャンクに下位分割され、チャンクは別個に表示される。この説明は幾つかの特定の実施例について言及しているが、チャンキングは本発明の範囲から逸脱せずに様々に応用することができる。
またキャッシュは選択キャッシングにも使用できる。例えば、配列プリミティブが所定数のチャンクを使用するときに、これらのプリミティブが自動的にキャッシュされるよう閾値を決める場合である。キャッシュの使用が可能であれば、仮想チャンキングを行うことができる。仮想チャンキングでは、それぞれが仮想チャンクであるN x M チャンクの領域に相当するチャンクバケットを作成する。仮想チャンキングにより、内容と配列サイズに合った仮想チャンクの適応サイズ設定を行うことができる。
チャンク1バケット:X,A,B,1,2,5,A,X,C,D,C,X
チャンク2バケット:X,A,B,A,X,C,D,C,X
チャンク3バケット:X,A,B,2,7,8,A,4,X,D,3,C,X チャンク4バケット:X,A,B,A,4,X,C,6,D,C,X
また、現在の属性状態を維持し、容認された各配列を送信する前にこの状態を送る方法もある。これにより、チャンクバケットに以下のコマンドストリームができる。 チャンク1バケット:B,1,B,2,B,5
チャンク2バケット:<空き>
チャンク3バケット:B,2,B,7,B,8,A,4,D,3
チャンク4バケット:A,4,C,6
第2の方法は第1の方法を改良したものである。ちなみに属性Bは配列2及び5の前に指定された第2及び3の不要な時間である。この動作は、配列7及び8のBに対するチャンク3でも行われる。実際には、現在の属性状態がどの属性も各配列に対して再指定されることを表しているので、状況はここに説明する以上に悪くなってしまう。つまり、テクスチャ変換マトリクスが全画面グラフに対して変化しなくても、全チャンクの各配列を送る前にマトリクスが送信されてしまう。
最も遠い属性を優先属性として使用すると、属性維持が非常に簡素化する。画面グラフの移動中に、属性ノードに遭遇すると、画面グラフの中のそのノードよりも下にあるその属性タイプのノード全てを無視することができる。これは最上位の属性が他よりも優先されるためである。
局部変換は構成属性である。従って、現在の値は前の値と新しい値によって定義される。構成属性には、画面グラフが移動して前の数値を保存する際にある種のスタックが必要になる。
・ 現在の値を有する属性ノード。
・ 移動コンテクスト。これは、各優先属性に対して現在の属性値を示すポインタを有する構造である。
・ それぞれコマンドストリームバッファと広域移動コンテクストとして同種のバケットコンテクスト構造を有するバケットのグリッド。
・ それぞれ移動コンテクストによって参照可能なデフォルト属性値のリスト。初期化するために、コンテクストはデフォルト状態になるので、属性は全てデフォルトコンテクストを表す。デフォルト値は、各チャンクに再現コマンドを送る前にひとまとめにダンプされるのではなく、ゆっくりとロードされる。
Initialize Attribute Maintenance:
for each attribute: attr
for each bucket: bucket
bucket.context(attr) ←nil // Clear context for eachbucket
end
context[attr]←default[attr] // Initialize to default values end
次に所定の属性ノードの処理方法を説明する。
Process Attribute:
if context[attr] ≠default[attr]
ProcessGem() // Attr already set, ignore subsequent value.
else
Context[attr]←SetAttr(attr,value) // Set to new value.
ProcessGeom()
Context[attr]←SetAttr(attr,default[attr])
endif
配列ノードを扱う処理により、現在の移動状態が各バケットの属性状態と同期する。
Process Geometry:
geomCommand ←ConvertGeometry(geom) // Convert to Command Stream.
for each touched bucket: bucket
for each attribute: attr
if (bucket.context(attr)≠context(attr)
bucket.context(attr)←context(attr)
append(bucket,context(attr))
endif
end
append(bucket,geomCommand)
end
移動中にスタックを維持するいうことを除けば、構成属性は優先属性と同様の働きをする。これは、スタック値を保存するためのノードを使用することで可能となる。この方法には以下の構造が必要となる。
・以前の値と新しい値の組み合わせを有する現在の属性ノード。
・移動コンテクスト。これは、全ての構成属性のために、現在の属性ノードを示すポインタを有する構造である。
・それぞれ移動コンテクストによって参照されるデフォルト属性値のリスト。
・それぞれコマンドストリームバッファと広域移動コンテクストと同じタイプのバケットコンテクスト構造を有するバケットのグリッド。
構造属性の初期化は優先属性の初期化と同様と思われる。
Initialize Attribute Maintenance:
for each attribute: attr
for each bucket: bucket
bucket.context(attr)←nil // Clear context for each bucket
end
context[attr]←default[attr] // Initialize to default values
end
Process Attribute:
node.ComposedValue ←Compose(context[attr],node.Value)
SavePtr←context[attr] // Save previous composed value.
context[attr]←node
ProcessGeom()
context[attr]←SavePtr // Restore the previous composed value.
配列処理部は優先属性の場合と同じである。
Process Geometry
geomCommand←ConvertGeometry(geom) // Convert to Command Stream.
for each touched bucket: bucket
for each attribute: attr
if (bucket.context(attr) ≠context(attr)
bucket.context(attr) ←context(attr)
append(bucket,context(attr))
endif
end
append(bucket,geomCommand)
end
バケットチャンキングの第2のパスは、バケットのグリッドを反復させて対応するコマンドストリームを発する。空でない全てのバケットについては、そのバケットに保存されている情報から該当するチャンクが再現される。ちなみに、画面の中に空のバケットがある場合もあり、これはgスプライトの全てのチャンクが再現されるわけではないことを意味している。活性の高いgスプライトは、透明な背景上の不透明な対象から構成され、多数のチャンクが空である必要がある。
画像圧縮
上記に述べたように、チャンクサイズと逐次再現は画像圧縮技術にとって重要な事である。それは、32x32ピクセルチャンク全体が、次のチャンクの計算が行われる前に完全に再現され、即座に圧縮することが可能なためである。タイラーは損失の多い圧縮形式と損失の少ない圧縮形式の両方をサポートして、チャンクの圧縮を行う。損失の多い圧縮形式及び損失の少ない圧縮形式は共に8x8ピクセルから成る独立ブロックのチャンクを圧縮するので、圧縮された各32x32ピクセルチャンクは16個の圧縮ブロックから構成されることになる。
変換エンジン660( 図20) はモデル及び表示変換、クリッピング、ライティング等を計算し、この情報をタイラー662に送信する。タイラーは変換情報を処理すると、テクスチャメモリ664からテクスチャデータを読み出す。テクスチャブロックが必要となるので、テクスチャデータは圧縮形式で保存されている。テクスチャブロックはタイラー復元エンジン666で復元され、タイラーのオンチップテクスチャキャッシュにキャッシュされる。タイラーはピクセルデータを解像すると、解像されたデータをタイラー圧縮エンジン668に送る。ここで解像されたデータは圧縮され、さらに圧縮されたデータはgスプライトメモリ670に保存される。gスプライトエンジン672は圧縮されたgスプライトデータが必要になると、gスプライト復元エンジン674を使ってgスプライトメモリ664からのgスプライトデータを復元し、オンチップgスプライトキャッシュにデータをキャッシュする。実際のハードウェアでは、テクスチャメモリ664とgスプライトメモリ670は同一である( すなわち圧縮データは様々なエンジンが共有する単一のメモリに保存される) 。使用する圧縮方法及び復元方法に互換性があれば、共通の共有メモリは不要である。またgスプライトデータはデータベースやその他の画像源676から取り込んで、テクスチャメモリ664及びgスプライトメモリ670に保存することも可能である。
損失の多い画像圧縮形式には、損失の多い第1段階と損失の無い第2段階の2つの段階がある。損失の多い圧縮形式は、赤、緑、青( R,G,B) 彩度値から輝度( Y) 及びクロミナンス( U及びV、またCr及びCbとも言う) 値への任意のカラー空間変換で始まる。損失の多い段階では、直接余弦変換( DCT) と所定の周波数成分を減少させる量子化が行われる。
第2段階は、ハフマンコーディング及び実行長さエンコーディング( RLE)から成る損失の無い圧縮形式である。ハフマンコーディングの代わりに、演算コーディングなどの他のコーディング方法も使用できる。
損失の多い復元方法では、デコーディング、圧縮データの逆量子化、逆DCT、YUVからRGBへの任意のカラー空間変換が行われる。
損失の無い圧縮形式では、RGBからYUVへの損失の無い任意のカラー空間変換、予測段階、損失の無いエンコーディング段階より構成される。このエンコーディング段階は、損失の多い圧縮形式のエントロピーコーディング段階と同じであってもよい。この損失の無い復元方法は、デコーディング、各カラー成分を逆予測する段階、YUVからRGBへの任意のカラー空間変換から成り立っている。
損失の多い圧縮/復元
タイラーの圧縮エンジン414( 図9A〜C) における損失の多い圧縮方法の一つは、次の4または5つの手順で行われる。
1. RGBデータ入力をYUVのような輝度クロミナンス系統へ変換する( 任 意) 。
2. 各カラー成分をそれぞれ別個に順方向2次元離散余弦変換( DCT) させる。
3. 2次元DCT係数をおおよその頻度の増加順に並べる。
4. DCT係数を量子化する:均一の除数または頻度依存除数で除算する。
5.求めた係数を固定コード表を有するハフマンエンコーディングによってエンコードする。
1.圧縮データ入力を固定コード表を使用するハフマンデコーディングによってデコードする。
2.圧縮データを逆量子化する:圧縮の量子化手順で使用した均一の乗数または頻度依存乗数で乗算する。
3.データの線形配列を適切なDCT係数の2次元順序に並べる。
4.各カラー成分に対して逆の2次元DCTをそれぞれ別個に実行する。
5.該当する任意の段階が圧縮処理に含まれる場合、YUVのような輝度クロミナンス系統のカラーをRGBカラーに変換する。
カラー空間変換は、輝度座標Yとカラー座標U及びVに基づいてRGBカラーを輝度カラー系統に変換する。この輝度クロミナンス系統は標準のカラー空間ではない。カラー座標は輝度の圧縮に必要なビットのほんの一部のみを必要とするため、この系統を使用すると圧縮の度合いが向上する。損失の無い可逆変換は各ピクセルに対して別個に実行され、アルファ値を変えることはない。
正数のRGB値から正数のYUV値への変換では、次のような変換式を使用する。
Y = (4R + 4G + 4B) / 3 - 512
U = R - G
V = (4B - 2R - 2G) / 3
YUVからRGB( 復元の場合)
正数のYUV値から正数のRGB値への変換では、次のような変換式を使用する。R = (((Y + 512) - V) / 2 + U + 1) / 2
G = (((Y + 512) - V) / 2 - U + 1) / 2
B = ((Y +512) / 2 + V + 1) / 2
画像とテクスチャは、3原色の振幅と不透明度の振幅を含むピクセルである。ピクセルの位置は画像またはテクスチャマップ中の空間位置に相当する。この形式の画像やテクスチャは空間領域の中にある。画像やテクスチャの場合、離散余弦変換( DCT) でDCTの基底係数を乗じる係数を計算する。画像やテクスチャにDCTを実行すると、画像やテクスチャを同等に表す係数の集合が求まる。この形式の画像やテクスチャは頻度領域の中に存在する。
量子化を行うと、係数を正数で除算することでジグザグ配列のDCT係数が有することのできる互いに異なる値の数が減少する。圧縮タイプパラメータの値によっても異なるが、量子化は均一的または知覚的量子化となる。どちらの場合もDC頻度の係数が変わるが( インデックス=0) 、そのままこの係数を送信する。
Qインデックス及びQ因子はブロック( 8x8ピクセル) ごとに変化させることが可能である。あるブロックのQインデックスは、チャンクのQインデックスをブロック圧縮タイプに埋め込まれている数値でインクリメントすることで求められる。
量子化の種類が知覚量子化である場合、Qインデックス及びQ因子は係数ごとに( 配列インデックスごとに) 変化させることも可能である。
均一量子化の場合は、係数QインデックスはブロックQインデックスに等しいので、該当するQ因子はブロック中の各係数を乗算( 逆量子化) または除算( 量子化) する。
係数Qインデックス 配列インデックス
ブロックQインデックス インデックス<12
ブロックQインデックス+1 12≦インデックス<28
ブロックQインデックス+2 28≦インデックス<52
ブロックQインデックス+3 52≦インデックス
エントロピーコーディング
1.( DCT係数は互いに関連していないため) ゼロ以外の係数を存在しうる最低ビットで別個にエンコードする。
2.( ジグザグ配列であるため) 特に線形配列の最後にあるゼロの数値で連続する種類の係数を最適にエンコードする。
ハフマン/RLEコーディング処理を適切に行う方法としては、既知のJPEG静止画像圧縮標準のAC係数で使用されるハフマン/RLEコーディング処理がある。
アルゴリズムは、以下を表す一連の可変長コード語を計算する。
1.次のゼロ以外の係数の前の一続きのゼロの1から15までの長さ。
2.次のゼロ以外の係数の符号と仮数を指定するのに必要な追加ビット数。
コード語の後にゼロ以外の係数の符号と仮数が書き込まれる。ある1つの指定コードは、ブロックの残りの係数が全てゼロであることを表す。
全ブロックをエンコードする場合、ISO International Standard 10918の付録K 、セクションK.3. 2に記載されている代表的なAC係数のハフマン表を使用する。これには、輝度( Y) AC係数の表K.5とクロミナンス( U及びV)AC係数の表K.6が示されている。
全ブロックをデコードする場合、エンコード処理として同一の一定表を使用する。従って、データを書き込んだハフマン表を保存したり移動させる必要なはい。
タイラーの圧縮エンジン414では、次の2つの段階で損失の無い圧縮が行われる。
1.入力されたRGBデータからYUVのような輝度クロミナンス系統への変換( 任意) 。
2.各カラー成分に対して微分予測計算を行う。固定コード表を使用するハフマンエンコーディングにより、求めた係数をエンコードする。
タイラーの復元エンジン404,450及びgスプライトエンジンでは、次のような2または3つの段階で損失の無い復元が行われる。
1.固定コード表を使用するハフマンデコーディングにより、入力される圧縮データをデコードする。
2.各カラー成分に対して逆の微分予測( 再構成) 計算を行う。
3.圧縮処理にYUVのような輝度クロミナンス系統のカラーをRGBカラーに変換する任意の作業が含まれる場合、この変換作業を行う。
カラー空間変換は、RGBカラーを輝度座標Yとカラー座標U及びVに基づく輝度カラー系統に逆に変換する。これはYUV系統以上に圧縮の度合いを上げることのできる他と異なるカラー空間である。ハフマン/RLEエンコーダへの入力数が少なく、さらなる圧縮が可能となるためである。各ピクセルはそれぞれ別個にカラー空間変換され、またこの変換によってアルファの値が変化することはない。
正数のRGB値から正数のYUV値へ変換する場合、次のような変換式を使用する。
Y = G
U = R - G
V = B - G
正数のYUV値から正数のRGB値へ変換する場合、次のような変換式を使用する。
R = Y + U
G = Y
B = Y + V
カラー空間変換を回避することも可能である。gスプライト制御データ構造でフラグを用いて、カラー変換を回避することをデコンプレッサに知らせる。
カラー空間変換後に予測が行われる。予測は、大部分のソース画像、特に空きスペースと水平及び垂直線を多く含む画像のエントロピーを減少させる損失の少ない可逆過程である。
1.p( x,y) は、コンプレッサに入力され、また復元エンジンから出力されるピクセル値である。
2.d( x,y) は、圧縮エンジンの次段のコーダへ入力され、また復元エンジンのコーダの反対側から出力される差分値である。
x = 0, y = 0のとき、d(x,y) = p(x,y)
x = 0, y > 0のとき、d(x,y) = p(x,y) - p(x,y-1)
x > 0 のとき、d(x,y) = p(x,y) - p(x-1,y)
復元エンジンでの逆予測は次のように計算される。
x = 0, y = 0のとき、p(x,y) = d(x,y)
x = 0, y > 0のとき、p(x,y) = p(x,y-1) + d(x,y)
x > 0 のとき、p(x,y) = p(x-1,y) + d(x,y)
ハフマン/RLEコーディング及びデコーディングは、本実施例の損失の多い圧縮/復元形式で行われるものと同一である。
上記に述べたように、タイラー( 図9A〜9C) は一度にgスプライトを1つのチャンクに再現する。このようなチャンクはピクセルブロックで構成されている( この場合、16個の8x8ピクセルブロック) 。テクスチャマッピング、陰影付け、その他のマルチパス再現操作の場合、タイラーはgスプライトまたはテクスチャのブロックをメモリから取り込む。フレームを構成するために、gスプライトエンジン( 図12A〜B) はgスプライトを取り込み、ピクセルを画面空間に変換し、合成バッファでピクセルを合成する。
上記のコントロールパラメータを使ってgスプライトのピクセルを有する座標( X,Y) を検索する手順は以下の通りである。
1)32でY及びXを除算し、チャンクの列と行をそれぞれ得る。
2)( チャンク列) *( チャンクの中のスプライトの幅) +チャンク行を計算して、チャンク数を得る。
3)( チャンク数) *(チャンクヘッダブロックのサイズ) を計算して、チャンクコントロールブロックのオフセットを求める。
4)( Y<4:3>*4+X<4:3>)*3を計算して、チャンクコントロール内のブロックのオフセットを求める。
5)ブロックポインタを復元したキャッシュロジックに送り、ブロックを受信する。
6)(Y<2:0>*8)+X<2:0>を計算して、ブロック内のピクセルのオフセットを求める。
ブロックポインタはピクセルを含むブロックを選択し、またピクセルのオフセットはピクセルを選択する。
ピクセルデータの圧縮ブロックの中にある所定のピクセルに対応するブロックにアクセスするために、タイラー及びgスプライトエンジンのキャッシュコントロールが以下の操作を行う。
1)チャンクコントロールブロックにあるブロックポインタ値を検索し、MAUのサイズで除算することにより、MAUアドレスを求める。
2)そのブロックに対応するチャンクコントロールブロックに割り当てられているMAUの数を検索する。
3)チャンクコントロールブロックの次のブロックポインタアドレスを検索する。
4)割り当てられているMAUの数 * MAUサイズ + (( ブロックポインタ) 変更MAUサイズ) +( 次のブロックポインタ) 変更( MAUサイズ) の2の補数
5)ブロックアドレス及び圧縮ブロックの長さを圧縮キャッシュロジックに送る。
MIPマップテクスチャ操作をサポートするために、タイラーは他のインデクシングレベルをサポートしている。MIPマップレベルのインデクシングを行う一つの方法では、次のような手順を行う。
1)所定のスプライトに対して、以下の計算を行ってMIPチャンクレベルオフセットの表を作成する。
MIPチャンクオフセット[0]= 0 \\詳細レベル0のオフセット
MIPマップの各レベルの場合:
MIPチャンクオフセット[レベル+1]= スプライト幅/( 2^レベル) *スプライト高さ/( 2^レベル) +MIPチャンクオフセット[レベル]
2)LODパラメータを使用してMIPチャンクオフセットを求める。
このとき、MIPチャンクオフセット、スプライト幅/( 2^レベル) 、スプライト高さ/( 2^レベル) を使用して、現在のgスプライトの選択した詳細レベル内にある所望のチャンクを求めることもできる。
gスプライト
上記にgスプライトの概念を説明した。簡単にもう一度説明すると、表示ボリューム中の1つ以上の対象はgスプライトに割り当てられる。gスプライトは別個に再現されるので、これによりgスプライトを異なる解像度で再現させ、また様々な速度で更新させることができる。再現オーバーヘッドを低減させるために、システムは対象をもう一度再現するのではなく、gスプライトを疑似変換させることにより、対象の動きを近似的に作り出すことができる。画面を構成するgスプライトを表示させるために、システムは画面の中で対象を表すgスプライトを合成する。次に、上記及び他の特徴について詳しく説明する。
上記に述べたように、配列をgスプライトに割り当てることによりシステムが起動する。gスプライトは物理的な出力機器の座標で示される2次元領域である。以下に述べる例では、gスプライトの形は矩形であるが、他の形を使用することも可能である。gスプライトはgスプライトエンジンで疑似変換させることができる( すなわち、拡大縮小、回転、反転、及び/または切り取りが可能である−何れの変換も2x2マトリクスを使用した変換と移動である) 。2次元変換の1適用例としては、3次元移動のシミュレーションがある。gスプライトの例として、同一のgスプライトの画像が様々に変換されて複数回画面に表示させることが可能である。この例はgスプライト画像の矩形下位集合や画像全体に適用できる。また、カラー成分をベースにして適用させることも可能である。例えば、アルファをあるgスプライトから得て、カラーを別のgスプライトから得ることもできる。
一般に、画像プロセッサは1つの対象を単一のgスプライトに割り当てるが、複数の対象を1つのgスプライトに割り当てることも可能である。画像プリプロセッサは互いに影響を及ぼす対象や他と関連性を持たない対象を単一のgスプライトの中で組み合わせる。また、メモリと処理制限に基づいて対象を統合する。例えば、画像プロセッサは、それぞれ独立しているが重なり合っているgスプライトを出力機器のリフレッシュ速度が要する時間内で合成することはできない。この場合、システムはこのような重なり合っている対象を単一のgスプライトに統合する。
アファイン変換は、時間t0および時間t における視認特性点から計算される。特性点が選択された方法に依存し乍ら、モデル特性点は対象物上もしくはその境界枠上の点を表す。これらのモデル特性点の位置は、モデル変換(modeling transform)に係る時間によって変化する。また、視認特性点を見出す為には、モデル特性点に視認変換が乗ぜられる。更に、以下の論議は、2-D gスプライトを変換する上で用いられるアファイン変換行列を計算する処理を明確化する上で有用であろう。
アファイン変換行列のフォーマットは次の如きものである:
更に別のこころみは、明暗距離(lighting metric) を使用することである。内部回転に対する距離と同様に、モデル特性点を用いて近似の精度をチェックするのである。
もし、変換されたgスプライトを表す特性点が十分に正確であれば、変換されたgスプライトを、再レンダリングされたgスプライトの代わりに使用することが出来る。2-D 変換を計算する為に、時間t0に対するgスプライトにアファイン変換行列を乗ずる(750) 。gスプライトのレンダリングと対照的に、この計算では処理時間が極めて短い。従って、2-D 変換による3-D 移動のシミュレートは、イメージをレンダリングするに必要な処理量を相当に減少させるものである。
更なる最適化として、レンダリングシステムはフレーム毎の明暗変化をサンプリングすると共にgスプライトのカラー値を改変してこれらの変化を近似することが出来る。この試みは、1)フレーム間の明暗変化をサンプリングし、2)gスプライトのカラー値を改変して明暗変化を近似する(即ち、色ワープを計算する)方法を決定し、かつ、3)もし十分に正確であればgスプライトに関して色ワープを行って明暗変化を近似する、という基本的な3つの段階を含んでいる。もし、明暗式の評価の後に、明暗が所定量以上変化したことをプリプロセッサが決定したのであれば、それはタイラ(tiler) に対して対象物の再レンダリングを指示する。
kaは周囲の反射係数、
Odλは対象物の拡散色、
fattは、光エネルギが光源から離間するにつれて如何に減少するかを記述する、光源の減衰率、
Ipλは点光源からの光、
kdは、物質毎に変化する、0と1の間の定数である拡散反射係数、
Osλは、対象物の反射色、
ksは、0乃至1に亙る、物質の鏡面反射係数、
(N・ L)は、表面法線N と光源L の方向との間の内積、
(R・ V)は、反射方向R と視点V との間の内積、
上添字n は、物質の鏡面反射「べき指数」であり、通常は1乃至数百まで変化し、
λは、この下添字を有する項は波長に依存することを示している。明暗式を簡略化する為のひとつの仮定は、対象物に対する光の相互作用をRGB カラーモデルが十分に表現し得る、ということである。この仮定に基づき、明暗モデルをR 、G およびB の色要素の各々に適用することが可能となる。
乗数およびオフセット値を計算するひとつの手法は、各特性点における明暗式の変化を表す乗数およびオフセットに関し、特性点が対象物の表面、有界体積の表面、または、両者に位置しているかを解くことである。プリプロセッサは乗数、オフセット、または両者を計算し得るが、これは、サンプリング段階の間に観察された各特性点の明暗式の同一なもしくは実質的に同一な変化を引起こす乗数もしくはオフセット、または乗数とオフセットの組合せを選択することにより計算される。これらの乗数および/またはオフセットが一旦計算されれば、gスプライト内のカラー値に適用される乗数およびオフセットを計算する方法が多数存在する。ひとつの方法は、乗数を平均することにより、gスプライトに対する単一の縮尺率を導くことである。別の方法は、オフセットを平均することにより、gスプライトに対する単一のオフセットを導くことである。更に別の方法は、乗数およびオフセットに関して独立的に最小2乗適合法を行い、乗数およびオフセットが対象物の表面上の位置により如何に変化するかを表す式を導くことである。この式は、gスプライト内のピクセル位置に対して独立した乗数および/またはオフセットを補間計算するハードウェアにて実現され得る。例えばgスプライト・エンジンは、各ピクセル位置に対する乗数および/またはオフセットを補間する補間器を備えたラスタライザ(rasterizer)を含み得るが、この補間は、カラー値に乗数を乗じ、または、カラー値もしくは換算カラー値(即ち、ピクセル位置に対して計算された対応乗数により換算された値)にオフセットを加算する前に行われる。
上記で概略的に述べた如く、gスプライトを独立的にレンダリングすることには多くの利点がある。各gスプライトは種々の更新速度を有していることから、特定のフレーム内で更新されるgスプライトの個数も変化する。幾つかのgスプライトはフレーム毎に更新が必要である一方、他のgスプライトの更新頻度は更に少ないこともある。もし特定のフレーム内で多数のgスプライトが更新されるべきであれば、レンダリング総量は劇的に増大してシステムが過負荷になり得る。この問題に対処すべく、システムは優先キューを作り、多数のフレームへレンダリングを配分してgスプライトを一層効率的に処理することを可能としている。
gスプライトに対する負担は、それが占有するメモリと、それをレンダリングする為に必要な処理とに関して測定することが可能である。もし、gスプライトイメージが一定の解像度すなわちスクリーン解像度で記憶かつレンダリングされるのであれば、gスプライトにより蒙る負担はそのスクリーンの大きさにより決定される。
システムは、スクリーンの解像度をgスプライトの解像度から切り離し、gスプライトの負担をその最終的なスクリーン範囲から独立させて設定することも可能である。また、システムはこれを達成する上で、gスプライトの解像度を適切に選択し、次に、gスプライトを適切なサイズに換算する。
gスプライトが低い解像度に換算され得る様に、それはひとつのサイズにレンダリングされてから小さな表示領域に換算され得る。この技術は、シーン内でサイズが小さくなっていく対象物に適用され得る。フレーム毎に対象物をレンダリングする代わり、システムは対象物を表すgスプライトを換算することができる。この試みは、gスプライトデータ構造内に縮尺率も記憶することで行われる。
この実施例においては、DSP 176 はgスプライトデータ構造を設定すると共に、それらをイメージ処理ボード174 上の共有メモリ内に記憶する。DSP 176 は、タイラを通してメモリマップインタフェースによりgスプライト・エンジン・レジスタに読み書きを行う。gスプライトエンジン内のレジスタは、現在の表示リストへのポインタを含んでいる。また、gスプライトエンジン436 を更に詳細に読むことにより、図12に関する処が提供される。
gスプライトエンジン204 への主要入力はgスプライト表示リストである。
gスプライトのエッジ式は次の形態を有している:A0x + B0y + C0=F0; A1x + B1y + C1=F1; -A0x + B0y + C2=F2; -A1x - B1y + C3=F3。これらの式の各右辺は、夫々の辺部でゼロである。DSP 176 は、gスプライトに対するアファイン変換から係数の値を決定する。アファイン変換の後、gスプライトの形状は平行四辺形であることから、係数A およびB の2組のみの記憶が必要とされる。C 項は全く必要とされない、と言うのも、gスプライトエンジンが必要とするのは始点におけるF の値と、スクリーン空間X およびY 内でのステップによりF の値が如何に変化するのかの記述であり、それは係数A およびB により与えられるからである。出力装置座標への記憶gスプライトデータのマッピングをサポートする為に係数の符号が設定されるが、それは、平行四辺形内の点の座標がエッジ式で評価されたときに結果が正の数になる如く行われる。
スキャンの開始点は平行四辺形の最左点であり、スキャンはスクリーン空間内で左から右へ向かって列毎に移動する。gスプライトを各32スキャンライン・スクリーンバンドにクリップする為に、SCB は始点(最左点)から頂部および底部への勾配dx/dy を含むことから、特定のスクリーンバンド上の最左点が決定され得る。
gスプライトデータは、別のgスプライトで例示できる。第20図で示した例では、一つのgスプライトが別のgスプライトからの画像データを例示している。ここで、SCBの第1チャンクハンドル(808)が別のgスプライトのSCB810を指している。別つの方法では、チャンクハンドルは、チャンクが記憶されている記憶領域中の位置を指す。第25図は、2個のチャンクgスプライトによる6個のチャンクがディスプレイの水平バンドにマップする態様の事例である。第25図は、画像データをgスプライトスペースから物理的出力装置スペースまで走査に使用される出発点836と終了点834を示している。gスプライト画像データがどのようにして出力装置スペースにマップされるかを以下に詳細に説明する。
さらに具体的には、gスプライトエンジンは、共有記憶領域からのgスプライトAYUVフォーマット画像データを読み、圧縮解除変換して、ついでこれをフィルタしてARGBフォーマットに変換する。さらにこのデータは、ビデオレート(例えば、75Hz)で合成バッファに送られる。合成バッファは、圧縮解除されたARGBピクセルを1334x32フレームバッファに合成する。
リアルタイムアプリケーションでは、gスプライトエンジンは、フレームレートにより指定された時間内に走査を完了しなければならないので、gスプライトエンジンは、バンドごとにすべてのgスプライトを処理できなくても良い。
SCBのエッジ方程式データを使用して、gスプライトエンジンは、gスプライトをクリップして各バンドにおける走査の開始する位置を決定する。例えば、第25図は、gスプライトのエッジが第3バンド(830,832)にクロスするかを示している。交差点がこの個々のバンドにおけるgスプライトの開始点と終了点となる。一つの走査法では、開始点からジグザグなパターンで走査する。バンドの開始点は、出力装置座標における交差点に最近接するピクセルを出すことにより見つける。開始点が演算でされれば、gスプライトエンジンは、gスプライトの外側にでる、すなわちバンドの外にでるまで増加方向にステップアップする。次いで1行右へステップしてもgスプライトの外側にでる、すなわちバンドの外にでるまでステップダウンする。各ステップで、gスプライトのピクセルデータを補間し、ピクセル位置のピクセル値を得る。各位置でのピクセル値を演算した時に合成バッファにピクセルデータを送り合成をする。
gスプライトデータは、合成すべき各ピクセルにつき一次カラーデータとα
データとを合成バッファに転送する。32走査線αバッファは、合成に使用される走査線バッファと関連させる。gスプライトデータは、前後の順に処理されるので、αバッファは、各ピクセルの不透明さを蓄積して、正しいアンチエーリアシングおよび透過を可能とする。
上述したように、画像プロセッサ(第1図)は、走査−変換を行い、さらに隠れた表面を除去し、アンチエーリエシング、透過度計算、組織化、陰付けが行われる。本章では、走査変換、隠れた表面の削除およびアンチエーリアシングの透明度の演算を詳細に説明する。
第4B図のコンポーネントは、タイラーを充足するものである。タイラーは、プリミティブデータならびに共有記憶領域システム216(第4A図)からの再生指示を読みとり、再生画像データを発生し、共有記憶領域に圧縮画像データを記憶する。上述したように、システム中の基本3−Dグラフィックプリミティブは、三角形である。三角形は、常に平面でかつ凸であるので、三角形再生は、グラフィック発生に使用するハードウェアにおいて数々単純化を与えるものである。しかしながら、こり代わりに、n片の多角形を使用することもできる。
タイラーは、DSPからの入力を受けるので、DSP176(第4図)の機能の再生から始める。上述したように、DSP176は、フロントエンド幾何学を実施し、3−Dグラフィックに要される照明計算を行う。DSP176は、モデル、窓表示域変換、クリッピング、照明などを行う。再生コマンドは、主メモリバッファに記憶され、PCLバス上で画像処理ボードにDMA(直接メモリアクセス)される。再生コマンドは、次いで共有記憶領域216(第4A図)にDSPで必要とされまで一時的に記憶される。再生コマンドは、画像処理動作を行う準備が整った時に、タイラー200(第4A図)により読みとられる。
二つの頂点制御レジスタが、それぞれ3づつ、6個の頂点を記憶する。二つの頂点制御レジスタは、三角形情報を複式バッファ処理を可能としてセットアップエンジンが常に処理する三角形情報をを有するようにする。
セットアップエンジンは、次いでエッジ、カラーおよび三角形表面を横断する組織座標補間を決定する線形方程式(918)を計算する。これらの線形方程式は、どの組織ブロックが三角形の再生に必要かを判断するものである。エッジ方程式は、走査変換ブロック(920)に通され、走査変換エンジンが必要とするまで走査変換ブロック以内のプリミティブレジスタに記憶される。プリミティブレジスタは、エッジ方程式の多数セットを記憶可能である。
走査変換エンジンは、プリミティブレジスタ(934)からエッジ方程式を読み取り、三角形エッジ情報を変換する。走査変換エンジンは、三角形のエッジを歩行し、カラー、深さ、透明度などを補間する補間器を含む。
走査変換エンジンは、組織アドレスを組織フィルタエンジン(936)に転送する。組織フィルターエンジンは、再生しようとしている多角形用の組織データを計算する。組織フィルタエンジンは、Z−スロープ、三角形の原点、sおよびt座標の基づくフィルタの殻を演算する。組織フィルタエンジンに付随する組織キャッシュは、16の8x8ピクセルブロック用データを記憶する。組織キャッシュは、圧縮解除エンジンにも連通している。この圧縮解除エンジンは、組織データ(圧縮状態で記憶されている)を圧縮解除して組織フィルタエンジンによる使用に具する。
第28A図および第28B図に図示の方法は、第10図と第11図に関連して説明した代替方法に関して変化する。第28C図および第28D図は、第10図と第9B図に争闘する画像データをアクセスする方法を示している。同様に、第28E図と第28F図は、第11図と第9C図に相当する画像データをアクセスする方法を示している。
プリラスタライザがセットアップブロックで待ち行列となっているプリミティブを走査すると、組織読み取りリクエストが組織キャッシュ制御装置391(964)に転送される。組織キャッシュ制御装置391は、適正組織ブロック(965)を決定し、読み取りリクエストを組織読み取りキュー393を介してコマンドメモリ制御ブロック389(989)(第28F図)に転送する。メモリ制御ブロックは、要求された組織データを取りだし、圧縮状態であれば、圧縮キャッシュ416(990)にこの組織データを記憶する。圧縮解除エンジンは、圧縮キャッシュ416内の組織ブロックを圧縮解除して圧縮解除したデータを組織キャッシュ402(991,992)に書き込む。組織キャッシュ制御装置は、圧縮キャッシュ416から圧縮解除エンジン404から組織キャッシュ402への組織ブロックのフロウを管理しする。
組み合わされたフラグメントが完全にカバー(完全カバレッジマスクと不透明αとともに)されたものと判断されたら、フラグメントは、カラーバッファに書き込まれ、フラグメント位置が現在のチャンク内の引き続く多角形に使用されるまで解放される。
チャンクのすべての多角形が際されたならば、ピクセルバッファがスワップされる。一方アンチアリエーシングエンジンがフラグメントバッファとピクセルバッファの一つとのピクセルデータを解析している間に、ピクセルエンジンは、次のチャンクのピクセルデータを別のピクセルバッファに書き込み、また残りの解放位置をフラグメントバッファに書き込む。一般に、ピクセル解析は、ピクセルおよび位置相当フラグメントバッファ中におけるピクセルデータに基づくピクセル位置の単一のカラー値(および多分αも値も)を計算する段階を含んでいる。これらについて以下に詳細に説明する。
フラグメントバッファは、エッジがて所与のピクセルとクロスする多角形の、あるいは半透明度を持った多角形のピクセルフラグメントについての情報を記憶するのに使用される。フラグメントバッファの各エントリは、カラー、α、Zおよび表面と関連するカバレッジデータを提供する。
を含む範囲と関連する索引がカバレッジ順序テーブルへの索引として使用される。
ピクセルエンジンが、入力してくるピクセルデータについて深さ比較動作を行うことにより隠れた表面の除去を行うことを上述した。またピクセルフラグメントがマージされ、フラグメントメモリを解放することも上述した。フラグメントマージングは、記憶要求を低減し、所与のシーンをアンチアリエースし、フラグメント解析の速度を上げ最終画像を生成する。隠れた表面の除去の実施方法につき説明する。これには、入力してきたフラグメントが記憶されたフラグメントの既決定カラーと深さの許容範囲内にある場合に入力してきたピクセルフラグメントを記憶されたピクセルフラグメントとマージする方法も含んでいる。
上述のしたごとく、タイラー内の走査変換ブロック(ラスタライザ)は、1)完全にカバーされた不透明ピクセル、2)完全にカバーされた半透明ピクセル、3)部分的にカバーされた不透明ピクセル、4)部分的にカバーされた半透明ピクセル表示するピクセルデータの事例を発生させる。
ピクセルバッファは、最先端の完全にカバーされた不透明ピクセルのカラーおよび深さ(Z)を記憶する。またピクセルバッファは、充分にカバーされていないカバレッジマスクあるいは、充分に不透明でないαを有するフラグメントを含むフラグメントリストに対するポインタを記憶する。フラグメントリスト中のヘッドすなわちだい1フラグメントは、もっとも最近処理されたピクセルフラグメントである。この特定の実施方法では、ピクセルエンジンは、入力してくるピクセルフラグメントともっとも最近のピクセルフラグメントとをマージする。多角形の再生には、ある量の特殊なコヒーレンスがあるので、所与のピクセル位置に関して発生したもっとも最近のフラグメントとのマージングは、マージの成功度を増大させる。
別の代替実施方法において、ピクセルエンジンは、フラグメントマージ基準合致するピクセルフラグメントをフラグメントリストで検索するために付加的ロジックを含んでいる。この方法は、検索ロジックのオーバーヘットがより高いマージ候補を認識する際のインクリメンタルな改良を正当化しな理由で好ましくない。これは特に、マージプロセスで消費される付加的クロックサイクルがアニメーションのフレームを再生するに必要な時間を増大するリアルタイムシステムでは特にそうである。
ピクセルエンジンがフラグメントリストを縦断してカラーおよび深さの許容範囲内のピクセルフラグメントを発見する場合の代替実施例において、“prev”と表示された成分は、マージテストを使用して解析されるピクセル位置用のフラグメントリストにおけるピクセルフラグメントおのおのを示すもののである。
幾何学的なプリミティブをラスタライズ(rasterize) するとき、 ティラー(tiler) はピクセルデータをピクセル及びフラグメントバッファ内に格納する。 また、ティラーはこのピクセルデータを処理ステップで解像する。 ティラーはこのピクセルデータを格納するために固定サイズのメモリを使用するので、 メモリ容量が不足する可能性がる。 この問題に取り組むために、 ティラーはメモリ容量をモニタして、 可能なら、 その時点でフラグメントメモリをオーバーフローさせていない画像部分のサイズを小さくする。
ここに記載され図示されている特定の具体例においては、 メモリ分解はフラグメントメモリがその容量、 即ち512個のピクセルフラグメントに達するときに開始される。 しかしながら、 フラグメントメモリが容量いっぱいになる前に分解を開始することもできる。
他に8×8チャンクが残っていなければ、 ティラーは更に16×16ピクセルチャンクがあるか否かをチェックする(1148)。 16×16ピクセルチャンクが残っていれば、 ティラーは残った16×16ピクセルサブチャンクに対してポリゴン処理を再び開始する(1158)。 他に16×16ピクセルチャンクがなければ、 ティラーは次のチャンクに対して入力データの流れを作り(1160)、その中でのポリゴン処理に進む(1158)。
途中のバッファの分解は、 かなり複雑な特性(例えば、 多光源、 微細な碁盤目、半透明、 等)を有するグラフィック対象物を処理するときでも、 小さなピクセル出力バッファ、 小容量のフラグメントバッファメモリを使用してグラフィック対象物の処理の間フラグメントデータメモリのオーバーフローを低減する手法を提供する。
我々は特定の実施例に関して分解を説明しているが、 本発明は種々の他の手法で実行され得ることを理解すべきである。 上述したような特定な方法で画像領域を分割する必要はない。 むしろ、 画像領域は異なるサイズの細領域に分かすされる。 チャンキング(chunking)アーキテクチャは画像の細分割には特によく適合するが、 フルフレームバッファはより小さい領域に分解されてフラグメントメモリの要求を低減する。 メモリ消費をたどって調査するのに使用される特定なタイプの論理又はソフトウェアもまた変形することができる。 結局、 本発明の範囲には多くの使用しうる他の方法が含まれる。
ピクセルの後処理
画像プロセッサは、 ピクセル位置のフラグメントデータを発生した後で、 このフラグメントデータをソートかつ解像してその位置で色調を計算する。 上記のように、 画像プロセッサは部分的にカバーされたピクセルのフラグメントを発生しかつ保持する。 一つ以上のポリゴンのエッジがピクセルと交差するとき、 又はポリゴンが半透明のとき、 ピクセルはポリゴンにより部分的にカバーされる。 フラグメントデータを保持してアンティエーリアシングと半透明を実行するには十分なメモリ容量を必要とする。 描出されるポリゴンの数が増加すると、 ピクセルデータ及びフラグメントを格納するメモリの容量もまた増加する。
増加したメモリ要求に加えて、 フラグメントを解像するのに要求される処理量も多くなる。 Zバッファへのアプローチにおいて、 フラグメントデータは深くソートされる。 一般的に、 プリミティブのデータは、 描出のため到来するときに深さの順にソートされる。 プリミティブのデータが任意の深さの順に到来するので、画像プロセッサはフラグメントを発生した後でそれをソートしなければならない。ソートされたデータは、 ピクセル位置で色調と可能であればアルファを決定するために処理される。 各ピクセル位置で、 いくつかのフラグメントが色調に寄与する。 アルファが計算されるなら、 フラグメントの数及び処理の複雑さもまた増加する。
上記のように強調された理由によって、 進んだアンティエーリアシング及び半透明性を支持するためのメモリ及び処理要求は不可欠である。 一方では、 複雑なアンティエーリアシング及び半透明性の計算を支持することと、 他方では、 メモリ要求を低減することの間には矛盾がある。 システムのコストを低減するために、メモリの使用を最小限にすべきだが、 進んだアンティエーリアシング及び半透明性は通常更なるメモリを必要とする。 これらの進んだ構成をメモリの要求を最小にしつつリアルタイムのシステムで保持することは困難でさえある。
一実施例において、 我々のシステムは一度に一つのチャンクのプリミティブを描出し、 その結果メモリを減らして後処理ステップでフラグメントを解像する。ピクセルデータが一つのチャンクで発生する間に、 他のチャンクのピクセルデータを解像することができる。 フラグメントのソート及びピクセルの解像に影響を与える数多くの利益がチャンキングの概念からもたらされる。 画像プロセッサがチャンク内のピクセルを解像した後ではラスタライズ処理の間に発生したたくさんのデータは保持されるべきではないので、 メモリの要求は十分に減らされる。画像プロセッサはチャンクを解像した後で解像された色調部分を保持すればよい。
直列にチャンクを描出することの他の利点は、 ピクセルフラグメントメモリがメモリアクセスの経費(overhead)を低減するのに設けられ得ることである。 典型的なグラフィックシステムは外部メモリを使用して色調、 深さ及びフラグメントバッファを設ける。 この外部メモリを有機的に構成してリアルタイム画像処理の厳密なバンド幅の要求を満たすことはかなり困難である。 32×32ピクセル領域のようなチャンクの描出を支持するのに必要なピクセルフラグメントメモリは外部メモリに設けられるべきではなく、 それに代えて、 ラスタライズ及びアンティエーリアシング機能を実行する同じハードウェア上に設けることができる。 例えば、 上記の具体例において、 フラグメント及びピクセルバッファは単一の集積回路チップ上に設けることができる。
チップメモリを使用すると外部メモリに関連するバンド幅の問題を簡素化することができる。 チップメモリは多段メモリを効率的に使用することができる。 例えば、 1段をピクセルバッファに使用し、 他段をフラグメントの記録に使用することができる。
チップメモリの他の利点は、 多ポートメモリの装備を低価格かつ容易に行うことができることである。 ピクセル及びフラグメントバッファの性能は、 多ポートメモリを使用することにより増大することができ、 その結果同時読み込み及び/又は書き込みがピクセル処理速度当たり1クロック(one clock per pixel processing rate) を達成することができる。 チャンクが別々に描出されるときはフラグメントバッファがかなり小さいので、 それはチップ上に装備される。 メモリの小サイズ及びチップ上のメモリの存在の双方は、 多ポートメモリの使用を実現可能にしかつコストを有効に働かせる。 一方、 外部多ポートメモリはビット当たりコスト高、 チップ間の接続の故に高価である。
チャンキングに関する他の重要な利点は、 フレームの一部のピクセルを、 他の部分のピクセルが解像されている間に発生することができることである。 このように、 本アプローチは、 全部のフレームのピクセルを発生してそれらのピクセルを解像するのではなく、 ピクセルの発生と共に解像をオーバーラップさせることができ、 その結果システムの搬送遅れを低減することができる。
本システムの一実施例において、 画像プロセッサは後処理ステップでフラグメントを解像する。 ピクセルエンジンが画像の一部のピクセルデータを発生している間に、 アンティエーリアシングエンジンが画像の他の部分のフラグメントを解像する。 上記のように、 ピクセルデータは二重に緩衝記憶されている。 即ち、 アンティエーリアシングエンジンが一のバッファをアクセスしている間にピクセルエンジンは他のバッファをアクセスすることができる。 ピクセルエンジンがチャンクのピクセルを発生した後で、 ティラーはバッファスワップを実行する。 ピクセルエンジンは次のチャンクのピクセルを発生すると共に、 アンティエーリアシングエンジンは前のチャンクのピクセルを解像する。
ピクセルプロセッサは解像処理を完了する前に深さ順にフラグメントデータをソートする。 一般的に、 画像プロセッサはピクセルを発生するとき、 また描出されるべき画像の部分のピクセルを発生した後でピクセルデータをソートすることができる。 例えば、 ピクセルエンジンは、 フラグメントデータをフラグメントバッファに書き込むときに挿入ソートを実行することができる。 加えて、 ピクセルエンジンは、 画像のすべて又は一部のピクセルデータを発生するのを完了した後でフラグメントデータをソートすることができる。 ピクセルエンジンはまた、 入って来るピクセルデータを拒否する場合は、 フラグメントをソートすることができる。 ピクセルエンジンは、 入って来るピクセルデータを拒否するときは、 フラグメントバッファに書き込みを行うべきではないので、 入って来る次のピクセルが到来する前にフラグメントのソートを実行することができる。 我々は後者のアプローチをフラグメントの「バックグラウンドソーティング」と呼んでいる。
ピクセルの発生及び解像が上記のようにオーバーラップしていたとしても、 ピクセルエンジンが画像の部分のピクセルを発生するときに画像の一部のフラグメントのソートを、 実行することは有益である。 ピクセルフラグメントをバックグラウンドソーティングすると、 ピクセルエンジンが一組のプリミティブのピクセルの発生を完了した後におけるフラグメントのソート経費を低減する。
解像された色調の計算は、 続く層をそれによって基準化(scale) する適用範囲情報を計算かつ維持しつつ正しく基準化された色調の分布を各層から蓄積することを含む。 この蓄積は、 前から後ろ、 又は後ろから前への深さの順に実行することができる。 前から後ろへのアプローチでは、 後ろから前へとは反対に、 スペースの適用範囲のデータは続く層の適用範囲を決定するのに使用される。 適用範囲とは異なって、 アルファデータがすべてのピクセル領域に等しく適用される。
アルファ(Alpha) は最大値(逆アルファ)に初期化され、 色調(Color) は0に初期化される。
Anew=Aold-Aold*Ain);
Cnew=Cold+(Cin*(Aold*Ain));
後ろから前へのものでは、 ソートされたフラグメントの記録に対する色調とアルファを計算する式は以下のようになる。
アルファ及び色は0に初期化される。
Anew=Ain+((1-Ain)*Aold);
Cnew=(Cin*Ain)+((1-Ain)*Cold);
ハードウェア手段には、 解像処理はハードウェアの集中度が少ない(less hardware intensive)ので前から後ろが好ましい。
フラグメントを深さ、 色調、 適用範囲のみで(アルファなしで)フラグメントを蓄積する擬似コードの例は以下のように記述される。
NUM _CVG _BITSは適用範囲マスクのビットの数であり、 MAX _ALPHA はアルファの最大値である。
(各フラグメント化されたピクセル位置)として{
ColorAccum = 0;
CoverageAccum = 0;
ここで(フラグメントリストは空欄ではない){
フラグメントリストをスキャンし、 かつ最も近いフラグメントを抽出する( 適用範囲, 色調);
ColorScale=CountSetbits(coverage&((CoverageAccum))/NUM_CVG _BITS;
ColorAccum+=ColorScale* 色調;
ColorAccum (=適用範囲
)
ColorAccumはピクセルの色調である
)
(各フラグメント化されたピクセル位置)として{
ColorAccum=0;
AlphaAccum[NUM_CVG _BITS]={MAX _ALPHA,MAX _ALPHA,...MAX_ALPHA };
ここで(フラグメントリストは空欄ではない){
フラグメントリストをスキャンし、 最も近いフラグメントを抽出する( 適用範囲, 色調, アルファ).
(i=0;i<NUM _CVG _BITS;i++) として{
// このビットが適用範囲のマスクに設定されると、
(適用範囲>>I)& ox1 であれば、 {
// アルファの基準化値−この色の寄与度を計算する
AlphaScale=(アルファ*AlphaAccum[i]);
// アルファにより基準化された色調を加える
ColorAccum +=(色調*AlphaScale)*(1/NUM _CVG _BITS)};
// サブサンプルの蓄積されたアルファを計算する
// AlphaAccum=AlphaAccum*(MAX_ALPHA-alpha)=
// AlphaAccum-AlphaAccum*alpha
AlphaAccum[i]=AlphaScale;
}
}
ColorAccumはピクセルの色調である
}
図35は、 4×4のサブピクセル領域(1224)に分割されたピクセルに対して上記のアプローチのハードウェア手段を図示する概略図である。 解像ハードウェアはアルファ色調蓄積器(ACA)(1226)と呼ばれる16個の同じ処理記憶ユニットの組を含み、 各ACAはピクセルのうちの一つのサブピクセル領域専用である。 各ピクセル位置のフラグメントリストの処理の間、 各フラグメントの適用範囲マスクは解像ハードウェアの処理マスクとして使用される。 ACAは、 アルファの基準化、 色調蓄積、 及びアルファ蓄積の乗算を実行する。 (1/NUM_CVG _BITS) の基準化には上記のようにズレがある。 一旦すべてのフラグメントが所定のピクセル位置に対して処理されると、 出力部は階層上に16個のサブピクセルのすべてを色調及びアルファ値を結合する(1228)。 出力用のプロセッサは入って来る二つの値を結合して、 2で割る。 ハードウェアをパイプラインして、 ピクセル解像処理はフラグメントのエントリ毎の単一のハードウェアのフロックのみを使用する。
アルファと適用範囲のマスクは、 これらのエントリのあるサブセットがある時間で実際に効力がある(又は「使用中」)NUM _CVG _BITS要素のアレイに格納される。 「使用中」のエントリは特有のアルファ値の現在のセットを保持するものである。 使用中のエントリビットインデックスにおけるアレイの要素が使用中であることがビットセットで示されるNUM _CVG _BITSビットのマスクによって識別される。 {ユニークアルファ、 適用範囲のアレイ}の対における適用範囲のアレイ中の第1のビットセットはその対が格納されているアレイ要素を規定するという慣例が使用されている。 アレイを三つのフラグメントの蓄積によって(三つのサブサンプルを使用して)初期化されると共に更新する手法として次の例を挙げる。
0b0001 //使用中のマスク
{1., 0b1111}//アルファと適用範囲の対
{X, 0bXXXX }
{X, 0bXXXX }
{X, 0bXXXX }
蓄積フラグメント{.5alpha*/.0b0011適用範囲マスク*/}
0b0101 //使用中のマスク
{.5, 0b0011}//アルファと適用範囲の対
{X, 0bXXXX }
{1., 0b1100}
{X, 0bXXXX }
蓄積フラグメント{.3, 0b1000}
0b1101 //使用中のマスク
{.5, 0b0011} // アルファと適用範囲の対
{X, 0bXXXX }
{1., 0b0100}
{.7, 0b1000}
蓄積フラグメント {.8, 0b0101}
0b1111 //使用中のマスク
{.1, 0b0001}//アルファと適用範囲の対
{.5, 0b0010}
{.2, 0b0100}
{.7, 0b1000}
最初のアルファの適用範囲のアレイは以下のように記載される。
フラグメント1の後で、 アルファの適用範囲のマスクは以下のように表される。
// 初期状態( ピクセル毎)
InUsemask = 0x0001;
CoverageArraymask[16] = {0xffff, 0, ...,0];
CoverageArryAlpha[16] = {MAX _ALPHA.MAX _ALPHA. ....,MAX _ALPHA };
ColorAccum = 0;
ここで(フラグメントリストは空欄ではない){
フラグメントリストをスキャンし、 かつ最も近いフラグメントを抽出する( 適用範囲, 色調, アルファ);
// このフラグメントの色調を使用中の各要素のColorAccumに蓄積する InUseMaskScratch = InUseMask;
ここで(InUseMaskScrach ! = 0x000) {
// 使用中のマスク消去時に第1のビットセットを見付ける
Index = FindFirstSetBit(InUseMaskScratch);
// マスク消去時にこのビットをクリアする
InUseMaskscratch & = ((0x1 << Index);
// このエントリの旧(現)アルファを読み込む−これは、 カバー // されていない領域を更新する(新しく「使用中」になる)
AlphaOld = CoverageArryAlpha[Index];
// アルファ基準化ファクタ−蓄積のために色調を基準化し続く
// 層のアルファを計算するのに使用される
AlphaScale = AlphaOld*alpha;
// 次の層のアルファを計算する−これをアルファのアレイを更 // 新するのに使用する
AlphaNext = AlphaOld*(MAX _ALPHA-alpha) = AlphaOld-AlphaOld*alpha
AlphaNex = AlphaOld-AlphaScale;
// オーバーラップした適用範囲のマスクを計算する−これは、
// 新しいフラグメントによってカバーされるアレイのエント
// リの一部であり、 色調を蓄積して新しいアルファ値でアレイ // を更新する
AccumCvgMask= 適用範囲& CoverageArrayMask[Index];
(AccumCvgMask ! = 0x0000)のとき[
// 色調を蓄積する
nCoverageBits = CountSetBits(AccumCvgMask);
ColorAccum+ = color*(AlphaScale * nCverageBits/NUM_CVG _BITS)];
// カバーされた部分のアルファを更新する(これは「新しい」 // 使用中の要素をもたらすか、 又は古いものをオーバーライト // する)
Index2 = FindFirstSetBit(AccumCvgMask);
InUseMask ? = (0x1 << Index2);
CoverageArrayMask[Index2] - AccumCvgMask;
CoverageArrayAlpha[Index2] = AlphaNext;
)
// カバーされていない領域のマスクを計算する−これは、 新し // いフラグメントによって不明瞭でないアレイのエントリの部 // 分であり、 適用範囲を更新する(アルファは同じ値をとる)
IndateCvgMask = ( 適用範囲& CoverageArrayMask[Index];
(UpdateCvgMask! = 0x0000)のとき {
Index2 = FindFirstSetBit(UpdateCvgMask);
InUseMAsk? = (0x1 << Index2);
// カバーされていない部分のアルファを更新する−これ // は「新しい」使用中の要素をもたらすか、 又は古いも // のをオーバーライトする(このようにそれが新しい // 場合はアルファ値をコピーする)
CoverageArrayMask[Index2] = UpdateCvgMask;
CoverageArrayAlpha[Index2 ] = AlphaOld;
}
)
)
ColorAccum はピクセルの色調である
}
ColorAccum+=色調*(アルファ*AlphaOld*(nCoverageBits/NUM_CVG _BITS)); 三番目の乗算はサブサンプルの数によっては若干簡素化される場合があることに注意されたい。 16個のサンプルに対して、 第3の乗算は0. 4に固定された少数(point value) を含み、 この乗数は8×4である(ここで、 他の乗数は8×8であろう)。 また、 2**nのサイズの適用範囲のマスクには、 上記した分割は単にズレであることに注意されたい。
この技術は最低の場合下式による蓄積全部を必要とする。
一つの有効な最適化は十分に不透明なアルファ値を有する適用範囲のマスクの位置をたどって調査することである。これは、フラグメントが不透明でない半透明値によらずに幾何学的な適用範囲の一部によって発生している場合に有効である。これらのフラグメントは通常は十分に不透明な半透明値を有する。この最適化は、追加的なマスク値、即ち OpaqueAlphaMask を保持することにより実行される。この OpaqueAlphaMask はアルファが十分に不透明であるフラグメントの適用範囲のマスクにおいてO−リング (O-Ring) によって設定される(これは、フラグメントの寄与率を蓄積した後で実施される)。対応するサブサンプルに対して更なる色調の寄与率が生じ得ないので、このマスクは続くフラグメントのマスク内のビットを 無視するのに使用される。
上記した例及び擬似コードは前から後ろへのソートを使用する。同じ計算を後ろから前へ深さに関してソートすることは同じように可能である。また、上記の計算は、アルファ成分が予め乗算されていない色調成分を使用する。同じ技術が、若干異なる算術計算(及び同じ制御フロー)によって予め乗算された色調成分に適用される。
現在のフラグメントが現在のピクセル領域とオーバーラップするなら、サブシステムは、1)ピクセル領域のオーバーラップ部分の蓄積した色調を計算し、かつ2)使用中のマスク及びこの使用中のエレメントの対応する適用範囲のアレイのマスクびアルファ(適用範囲のアレイのアルファ)を更新する。
スケール及び蓄積制御装置1246は現在のフラグメントによってカバーされた各ユニークピクセル領域の蓄積された色調を計算する。この基準化及び蓄積制御装置は、適用範囲スケーラ (scaler) 1240、色調スケーラ1242、及び色調蓄積器1244を含む。適用範囲スケーラ1240は適用範囲基準化ファクタ(現在のフラグメント/全サブピクセル位置でオーバーラップする現在のピクセル領域のサブピクセル位置の数*A*Aold)を計算する。色調スケーラ1242は現在のフラグメント(1232)の色調値(RGB)を読み込むと共に、それらに適用範囲スケーラ1240からの適用範囲基準化ファクタを乗算する。最後に、色調蓄積器1244は更新され蓄積された色調値を計算するために基準化された色調に蓄積された色調を加える。
現在のフラグメントのみがピクセル領域の一部を(そのすべてをオーバーラップするというよりむしろ)カバーするとき、新規な適用範囲制御装置1238は二つの新しいピクセル領域、即ち、1)現在のフラグメントがオーバーラップするピクセル領域の一部と、2)現在のフラグメントによって不透明でなくなるピクセル領域の一部を生成する。この場合、サブシステムは、不透明でない部分の適用範囲を計算すると共に、それに対してアルファを設定して、元のピクセル領域と同じままにする。これを達成するために、適用範囲アレイループ制御装置1234は使用中のマスク1236を更新すると共に、新規な適用範囲制御装置1238に適用範囲のアレイのマスク1230を更新するように指示する。この第2のピクセル領域に対応する適用範囲のアレイのアルファのエントリは、現在のフラグメントによっては変化しないので現在のピクセル領域(Aold)と同じままである。
クランプ及び調節ブロック1248は蓄積された色調を適切な範囲(これは、適用範囲スケーラブロックで丸められる必要があり、その結果8ビットの範囲を超える色調とアルファをもたらす)にクランプすると共に、1を示す8ビット2進数によって値を基準化することにより導入される誤差を調節する。この方法による誤差の調節は、値1が実際には16進法値「FF」で表されるのである状況で必要である場合がある。換言すれば、0から1のアルファの範囲は00からFFの8ビット数の範囲で表される。それ故、数xにFFを乗算するときは、結果はxである。この調節は、FFの乗算結果が適切にxに丸められる。
フラグメント解像サブシステムがフィードバックモードにないとき、クランプ及び調節ブロック1248は、図36に示すように解像されたピクセルデータをデータ経路1252を経由してブロックステージ (staging) のバッファに送出する。これらのブロックステージ (staging)バッファは、解像されたピクセルデータをそれが8×8ピクセルブロックで圧縮される前に緩衝記憶するのに使用される。
このイメージ処理装置は多くの進歩したテクスチュアマッピング特徴を有している。テクスチュアマッピングのためのそれの支持はテクスチュアデータの異方性フィルタリングを含む。この装置はリアルタイムでテクスチュアデータの異方性フィルタリングを実行できる。
我々は、異方性フィルタリングに対する我々の解決法のための基礎を形成する幾つかの概念を記載することにより始めて、且つそれから実行をもっと詳細に記載する。
テクスチュアマッピングはイメージを表面にマッピングすることに帰する。対象物の表面における複雑な詳細は多角形又は他の幾何学的プリミティブを用いて模型を作ることは非常に難しく、且つそうすることは対象物の計算機費用を大幅に増大し得る。テクスチュアマッピングがイメージ処理装置に対象物の表面上に細かい詳細を充分に表現することを可能にする。テクスチュアマップはディジタルイメージであり、それを我々は「ソースイメージ」とも呼ぼう。このテクスチュアマップは形が典型的に矩形であり且つそれ自信の(u,v)座標空間を有する。テクスチュアマップの個別の要素は「テクセル(Texel)」と呼ばれる。テクスチュアマッピングにおいては、テクスチュアすなわち「ソースイメージ」がターゲットイメージへマッピングされる。
幾何学的変換がいかにしてソースイメージからの点をターゲットイメージへマッピングするかを詳述する。この変換の逆がいかにしてターゲット内の点をソースイメージへマッピングし返すかを詳述する。イメージ処理機は、テクセルのソースアレイ内のどこから画素濃度がこなくてはならないかを決めるためにこの逆変換を用い得る。ソースイメージ内のこの点での濃度はその時付近のテクセルデータに基づいて決められ得る。ソースイメージ内へマッピングし返されたターゲット内の点は、テクセルの整数座標上に正確に落ちる必要はない。この点における濃度を見つけるために、イメージデータが付近のテクセルから計算される。
等方性のフィルタリングはむしろ粗い近似を用いるので、等方性のフィルタリングは歪みを発生し得る。実際のフットプリントが高度に延長されたソースイメージの範囲において、たとえ寸法が調節できるとしても、正方形又は円形のような本質的に等方性形状はフットプリントに対してよくない代用品である。等方性フィルタは一つの形状のみを有するので、等方性フィルタは延長されたフットプリント内のテクセルを正確に捕捉できない。例えば、正方形フィルタは一方向において延長された四辺形フットプリントからテクセル値を正確にサンプリングできない。実際のフットプリントの外側のテクセルをサンプリングすることがブラーリングを起こし得る。これに反して、フットプリント内のテクセルをサンプリングしないことが、最終イメージにエイリアシングによりきらめかせ得る。
最大延長の方向はターゲットイメージからテクスチュアマップまでのフィルタの後向きマッピングから引き出され得る。例えば遠近法マッピングにおいて(そこでは対象物が消失点に向かって次第に消える)ターゲットイメージからテクスチュアまでのn×n画素フットプリントのマッピングが四辺形である。異方性の線が最大延長の方向を有し且つソースイメージ内へマッピングし返されたターゲットからの点を通過する線として定義される。
この実施例においては、イメージ処理機が最大延長の方向を見つけるためにテクスチュアに対してフィルタフットプリントを後向きマッピングする。イメージ処理機はそれから最大延長の方向に沿って補間フィルタ(上記に略述した復元フィルタ)を掃引する。ターゲットイメージに対する画素値を計算するために、イメージ処理機は補間フィルタの出力へ再サンプリングフィルタを適用する。
この実施においては、補間フィルタは二次元等方性フィルタである。再サンプリングフィルタについてのように、我々は補間フィルタの特定の種類に対して我々の発明の範囲を制限しようとしない。二次元等方性フィルタは一つの可能な実施にすぎない。この補間フィルタが付近のテクセルデータからこれらの値を補間することにより異方性の線に沿った位置における値を与える。補間フィルタがソースイメージへ加えられる分離した位置が、増分で垂直にか又は水平にかのいずれかでステップすることにより及び各位置において異方性の線における値を補間することにより決められ得る。例えば、異方性の線が水平よりももっと垂直である場合には、一つの解決法はテクスチュアの(u,v)座標系における垂直すなわちV方向にステップすることであろう。同様に、異方性の線が垂直よりももっと水平である場合には、もう一つの解決法はテクスチュアの(u,v)座標系における水平すなわちU方向にステップことであろう。
図38A〜Dは異方性フィルタリングの過程の一例を図解している。図38A〜Dはテクスチュアマップ内のテクセル(1400a〜d)を図解し且ついかにして異方性フィルタが発生され得るかを示している。第1ステップは、ターゲットイメージ内の画素位置に対するフィルタフットプリント上で、逆変換を実行することによりソースイメージ内のフィルタフットプリントを計算することである。この例においては、テクスチュア1400a内のフィルタフットプリントは、四辺形1402として図解されている。
再び図38における例を参照して、復元及び再サンプリングフィルタの寸法がヤコビ行列から引き出され得る。図38Bにおいては、我々は平行四辺形1404としてヤコビ行列を表現している。この平行四辺形の長さが再サンプリングフィルタの寸法を決めるために用いられ得る。この例においては長さが最大延長の方向1406に沿って測定され、その方向を我々は異方性の方向とも呼ぶ。同様に、四辺形の高さは復元フィルタの寸法を決めるために用いられ得る。この高さは最小延長の方向1408である。
図38Dはいかにしてこの「棒状」フィルタが計算され得るかを図解している。復元フィルタのフットプリントは正方形1408により表現されている。この例においては、復元フィルタは正方形フットプリントを有し且つ従って本質的に等方性フィルタである。図38D中の線1410により表現される異方性の線に沿った値を計算するために、値が異方性の線1410の線を取り囲むテクセル(1400d)から補間される。その復元フィルタは、それ故に、上に記載された補間フィルタである。このフィルタの出力はその時、再サンプリングフィルタを表現する一次元フィルタへ加えられる。異方性の線1410が再サンプリングフィルタの配向を表現している。復元フィルタとして計算される値は、ターゲットイメージのための画素値を計算するために合計される異方性の線に沿って通される。
図9A〜Cに図解されたタイラーにおいては、異方性フィルタリングが走査変換ブロックとテクスチュアフィルタエンジンとで支持される。走査変換ブロックがソースイメージ内の点での逆幾何学的変換の偏導関数のヤコビ行列を取ることにより、再サンプリング及び復元フィルタのための制御パラメータを計算する。そのヤコビ行列が逆変換に対する最良局部アフィン近似の線型部分を表現している。もっと詳細に言えば、それは所望のソース点の周りに集中された逆変換の二次元でのテイラー数列の一次部分である。
この変換は走査変換ブロックが各プリミティブを走査するように走査変換ブロックが評価する属性エッジの式の形を取る。以下の式が典型的である。
FS/W=AS/Wx+BS/Wy
ここで、画素位置(x,y)において;
1) FS/W は均質座標(w)により分割されたテクスチュア座標(s)の値である。
2) AS/W はx座標に対する均質座標(w)により分割されたテクスチュア座標(s)の勾配の値である。
3」 BS/W はy座標に対する均質座標(w)により分割されたテクスチュア座標(s)の勾配の値である。F,A及びBはプリミティブの走査開始点に対 して全部正規化されている。走査変換ブロックはl/w, s/w及びt/w に対する エッジの式を評価する。
逆ヤコビ行列に対する導関数は、各テクスチュア座標(s,t)におけるエッジの式のFs, As及びBsから直接引き出す。
// DsDx is the partial derivative of s with respect to x, etc.
(DsDxはx等に対するsの偏導関数である)
// (DsDc, DtDc) are steps in (s, t) along axis of anisotropy.
((DsDc, DtDc)は異方性の軸に沿った(s,t)座標でのステップである)
if (LengthXSquared >= LengthYSquared) {
MajorSquared = LengthXSquared
InverseMajor = 1./sqrt(MajorSquared)
DsDc = DsDx * InverseMajor
DtDc = DtDx * InverseMajor
}else{
MajorSquared = LengthYSquared
InverseMajor = 1./sqrt(MajorSquared)
DsDc = DsDy = InverseMajor
DtDc = DtDy = InverseMajor
}
この実施においては、短い方のベクトルの長さは、異方性比率がプリセットされた制限を越えない限り、復元フィルタの幅を普通は近似する。この制限を越えた場合には、異方性比率はその計算中にこのプリセットされた制限により置き換えられる。この方法において比率を制限することが、フィルタが値を計算するためのテクセル点の予め決められた数よりも多く用いるのを防止する。かくして、その比率上の制限がいかに長く復元フィルタが出力値を計算することを必要とするかについての境界を置く。
走査変換ブロックがそのフィルタに対する制御パラメータを計算した後に、走査変換ブロックはそれから画素値を計算する。一次元デジタルフィルタが補間フィルタからの出力の重み付けされた平均を計算する。その補間フィルタが、異方性の線に隣接するソースイメージから、テクセルデータを補間することによりこの出力を計算する。
特定の例が上述の特定の実施の動作を図解するのを助ける。所望の等方性寸法が3である場合は、log23は1.583 と等しい。この結果の整数部分は1であり、それがそれぞれ2及び4の濃度低減によりレベル1及び2を選択する。レベル0は低減無しよる元のソースイメージである。混合係数は0.585 である。
一つの実施において、テクスチュアフィルタエンジンが混合を延期する。最初に、テクスチュアフィルタエンジンが、各レベルにおいて所望の点に集中された異方性比率と比例する長さの1−Dフィルタを適用する。それからテクスチュアフィルタエンジンが各レベルからの出力を混合する。
代わりの実施においては、テクスチュアフィルタエンジンが異方性の線に沿ってステップし、且つこの線に沿って分散するサンプルにおいて3線型補間を実行する。テクスチュアフィルタエンジンが、それから各サンプルにおいて3線型補間の結果に対して一次元フィルタを適用する。
シャドウイング動作に対して、入力はサンプルインデックス、シャドウマップ内へマッピングされた画素位置の(s,t)座標、及び所定の画素位置に対する光源からの幾何学的プリミテブの深さを表現するベータを含んでいる。このサンプルインデックスは、シャドウフィルタがシャドウマップ素子すなわち「サンプル」上で動作する特定の方法に関係している。この特定の実施では、テクスチュアフィルタエンジンがクロックサイクル当たり8サンプルに動作する。シャドウフィルタリングの場合には、これらのサンプルが4×2グリッドに対応する。例えば、シャドウフィルタは4×4モード(4×2+4×2=4×4)に対するサンプルの2集合と8×8モードに対する8集合との全部に動作する。4×4モードの場合には、シャドウフィルタが4×4の全体フットプリント内の上側左、上側右、下側左、及び下側右の3×3ブロックへ各々1個に、3×3フィルタを4回適用する。第1クロックサイクルにおいては、それが上側の4×2グリッドを処理し、且つ第2クロックにおいてはそれは下側の4×2グリッドを4×4ブロックにおいて処理する。このサンプルインデックスは現在処理されている8サンプルの集合を確認するために用いられるインデックスである。このサンプルインデックスは、4×4の場合に対しては2クロックサイクルを通して、また8×8の場合に対して8クロックサイクルを通してステップし、且つどの4×2部分集合が現在処理されているかを確認する。
テクスチュアマッピング動作において、キー発生器1310が(s,t)座標とLODとを読み取り、且つテクスチュアキャッシュから対応するテクスチュアデータを引き出すためにキャッシュキーを発生する。テクスチュアキャッシュがテクスチュア要求に応じてアルファとRGB成分とを返す。分数制御器1312が入力として(s,t)座標を受け取り、且つカラー成分補間装置1314において2線型の動作と3線型補間装置との双方又はいずれか一方を制御する。カラー成分補間装置1314が補間さたアルファとRGB成分とを計算するためにテクセルサンプルを補間する。積算機及び後処理機1318がそれからアルファとRGB成分とをスケーリングし、スケーリングされた成分を積算し、且つ現在処理されている画素位置に対応するアルファとカラー係数とを出力する。これらのアルファとカラー係数とはテクスチュア変調(Textur Modulation)過程への入力として、画素エンジンへのカラーとアルファ値入力となる。
シャドウイング動作に対して、キー発生器1310がシャドウマップ内へマッピングされた画素位置の(s,t)座標を読み取り、且つキャッシュキーを発生する。テクスチュアキャッシュが、シャドウフィルタ積算機1316へシャドウマップ素子(シェイデル ; shadel)を返す。シャドウフィルタが入力としてシャドウインデックスとベータとを受け取り、且つシャドウマスクを発生するためにフィルタフットプリント内の深さ値と光空間内の画素データの現在の例の深さを比較する。シャドウフィルタ積算機がシャドウマスク内の素子を合計し、且つサンプルの数によりその合計を割り算する。この実行において、テクスチュアフィルタエンジンが深さ比較ステップの結果に対して台形フィルタを適用することにより、フィルタフットプリントのエッジにおいて円滑なロールオフを達成する。台形フィルタを実行するために、シャドウ積算フィルタがそれぞれ4×4又は8×8フィルタフットプリントに対して4回3×3又は7×7ボックスフィルタを適用することにより、4個の予備シャドウ係数を計算し、且つカラー成分補間装置1314のうちの一つへその4個の予備係数を送る。このカラー成分補間装置1314が最終シャドウ係数を計算するためにそれらの予備係数に2線型補間を実行する。
図39における分数制御器1312がテクスチュア又はシャドウマップ内のサンプル間及び3線型補間のためのMIPマップレベル間の補間を制御する。2線型補間を支持するために、分数制御器がテクスチュア又はシャドウマップ内のサンプル間の重み付けを制御する。3線型補間を支持するために、分数制御器が二つの最も近いMIPマップレベル内へマッピングされた点に対して4個の最も近いサンプルの間で補間すること(2線型補間)を補間装置に指令し、且つそれから二つのMIPマップレベルからの結果を混合するために線型補間を指令する。この分数制御器は入力としてhi and lo MIPマップレベルに対するLOD及び(s,t)座標を受け取り、且つ各MIPレベルにおけるサンプル間とMIPマップレベル間の補間を制御する。
このカラー成分補間装置はテクスチュアキャッシュからテクセル又はシャドウマップ素子を受け取り、且つそれらをマルチプレクサ(MUX)のバンク1350へ加える。マルチプレクサのバンク1350へ入力する場合に、サンプル有効データがどのサンプルが有効であるか、すなわち現在のテクスチュア又はシャドウイング動作に用いられるべきサンプルを確認する。サンプル有効制御信号に基づいて、それらのマルチプレクサが入ってくるサンプルか又はテクスチュア背景カラー1352かのいずれかを選択する。シャドウイング動作に対しては、カラー成分補間装置1314がシャドウフィルタ積算機1316へシャドウ素子を送る。3つのカラーチャネルが単一の24ビット幅シャドウマップ素子を形成するために用いられ、且つアルファチャネルがシャドウイング動作において無視される。テクスチュアマッピング動作に対しては、カラー成分補間装置が線型補間装置(Linear Interpolator)の段1354, 1356及び1358へテクスチュアサンプルを転送する。
シャドウフィルタ積算機がフィルタフットプリント内のサンプルへ4ボックスフィルタ(例えば、3×3又は7×7)を適用する。シャドウマスクのどの素子が現在のクロックサイクルに対して有効であるかを決め且つそれからそれらの有効な素子を合計するために、シャドウ寄与ブロックの各々がフットプリントマスクとシャドウマスクとを結合する。全体のフィルタフットプリントに対するシャドウマスク内の有効な素子を積算した後に、シャドウ寄与ブロックが予備シャドウ係数を計算するためにサンプルの数によりその合計を除算し、それらがカラー補間装置内の2線型補間段へ転送される。カラー補間装置がそれから最終シャドウ係数を計算するために4個の予備シャドウ係数の間を補間する。
シャドウ後処理機1384は全部で3個のカラーチャネルに対して、及び(条件付きで)アルファチャネルに対して、スカラーシャドウ減衰「s」の模写を行う。シャドウイメージを計算することのためにシャドウ減衰の条件付き補数化(s=1−s)もある。シャドウイメージは、シャドウ係数のアレイあるいはgスプライト(gsprite)をシャドウイングするために用い得るシャドウ係数の補数のアレイである。
Claims (59)
- 映像処理方式において、
描図したフィルタ足跡を計算するために逆変数を用いてフィルタ足跡を根源映像に描図し、
異方性の線に沿いフィルタを反復的に適用して根源映像からの画素値を標本化し、
反復的濾波過程の出力を濾波して行き先映像に対する画素値を計算する各過程を備えて、行き先映像から根源映像までの点の描図が逆変換によって行なわれる場合に行き先映像まで根源映像を構造描図する方法。 - フィルタが補間フィルタであり、そのフィルタを適用する過程が、描図した
フィルタ足跡の最大延長の方向に沿い補間フィルタを適用して根源映像からの画素値の補間を備えている請求項1記載の方法。 - 処理過程が、補間フィルタの出力への再標本化フィルタの適用とその再標本化フィルタの出力の総計による行き先映像用画素値の計算とを備えた請求項2記載の方法。
- 再標本化フィルタが一次元フィルタである請求項3記載の方法。
- 描図したフィルタ足跡を近似するための逆変換用のジャコビ・マトリックスの計算を含んだ請求項1記載の方法。
- 最大延長の方向をジャコビ・マトリッスクにおけるベクトルから判定する請求項5記載の方法。
- フィルタ足跡を描図する過程が、根源映像に描図した点における逆変換の導関数の計算を含んでいる請求項1記載の方法。
- 描図したフィルタ足跡を近似するための根源映像内の点における逆変換の部分導関数のジャコビ・マトリックスの計算を含んでいる請求項1記載の方法。
- 補間フィルタの足跡が二次元であり、描図したフィルタ足跡を適応させるために、補間フィルタの足跡の大きさを調整する過程を含んでいる請求項2記載の方法。
- 補間フィルタの足跡の大きさを調整するための根源映像のMIP描図の使用を調整過程に含めた請求項9記載の方法。
- フィルタが補間フィルタであり、
描図したフィルタ足跡を近似するために根源映像に描図した点で、第1および第2のベクトルを含んだ逆変換のジャコビ・マトリックスを計算し、
第1もしくは第2のベクトルの方向から最大延長の方向を判定し、
補間フィルタの出力に再標本化フィルタを適用するとともに、その再標本化フィルタの出力を総計して、行き先映像用画素値を計算する各過程をさらに含んだ請求項1記載の方法。 - 1および第2のベクトルのいずれかの長さから補間フィルタの大きさを判定するとともに、根源映像に対する補間フィルタの大きさを調整するために根源映像のMIP描図を用いる過程を含んだ請求項11記載の方法。
- 第1もしくは第2のベクトルの長さから再標本化フィルタの大きさを判定するとともに、第1もしくは第2のベクトルの長さに基づいて補間フィルタの大きさを調整する過程を含んだ請求項11記載の方法。
- 構造メモリ、
指令と、その指令を説明し、図形素材から逆変換データを計算し、図形素材から構造宛名を計算し、さらに、構造宛名に対応した構造メモリに構造データを回収するための図形素材とを受取るための設定プロセッサ、並びに、
その設定プロセッサおよび構造メモリと連通して、逆変換データおよび構造宛名を受信し、構造中に描図した点を介して異方性の線を計算するために、異方性の線に沿って標本化した画素値の加重総和を計算するためのフィルタを含んだ構造フィルタ
を備えて、図形素材の表面に構造の構造描図を施すための方式。 - 逆変換データが、根源映像に描図した図形素材の表面上の点の逆変換を表わすマトリックスであり、構造フィルタ機関が、そのマトリックスから異方性の線の方向を判定するための回路を含んでいる請求項14記載の方式。
- 根源映像から画素値を標本化するための補間フィルタ回路をフィルタに含めた請求項14記載の方式。
- フィルタが二次元補間フィルタである請求項16記載の方式。
- 異方性の線に沿って画素値を標本化するための補間フィルタおよびその補間フィルタの出力に適用した一次元ディジタル・フィルタをフィルタに含めた請求項14記載の方式。
- 図形表現方式において、
画素断片を発生させるために、大きさS1 の第1映像領域について図形素材の第1組を面走査し、
断片入力として画素断片を断片バッファに蓄積し、
断片バッファにおける断片入力の個数が予定値を超えたか否かを判定し、
断片入力の個数が予定値を超えたとの判定に応じ、第1映像領域を少なくとも二つの大きさS2 の映像領域に分割し、
対応する第1画素断片を発生させるために、大きさS2 の第1映像領域に対する図形素材の第1組の第1副組を面走査する過程、対応する第1画素断片を分解する過程および大きさS2 の後続映像領域に対して面走査と分解との各過程を反復する過程を含めて、大きさS2 の少なくとも二つの映像領域を連続的に表現する
各過程を備えて図形素材を表現する方法。 - 第1映像領域の大きさS1 を評価するとともに、第1映像領域の大きさに基
づいて大きさS2 を判定し、さらに、
大きさS1 の第1映像領域を大きさS2 の映像領域に分割する
各過程を分割過程に含めた請求項19記載の方法。 - それぞれ、第1映像領域の大きさS1 の1/4の大きさの4映像領域への大
きさS1 の第1映像領域の階層的分割を分割過程に含めた請求項19記載の方法。 - 図形素材の大きさS1 の映像領域群への類別をさらに含めた請求項19記載の方法。
- 断片入力が予定値を超えたという判定に応じて断片バッファを空にする過程
をさらに含めた請求項19記載の方法。 - 断片入力が予定値を超えたという判定に応じて断片バッファを空にし、さら
に、
大きさS2 の第1映像領域に対する図形素材の第1組の第1副組を面走査する過程に、図形素材の第1組を読取って、大きさS2 の第1映像領域に突出しない素材をすべて排除する過程を含める
各過程をさらに含めた請求項19記載の方法。 - 断片入力の個数が予定値を超えたという判定に応じて断片バッファを空にし、
図形素材の第1組を少なくとも二つの大きさS2 の映像領域に類別して、図形素材の第1組の対応した少なくとも二つの副組を形成し、さらに、
大きさS2 の第1映像領域に対する図形素材の第1組の第1副組を面走査する過程に、図形素材の第1組の対応する副組の一つの面走査を含めた請求項19記載の方法。 - 断片バッファにおける断片バッファ入力の個数の足跡を保持するために断片バッファ・カウンタを歩進させ、さらに、判定の過程に断片バッファ・カウンタの計数値の評価を含めた請求項19記載の方法。
- 画素断片の対応した第1組を断片バッファに蓄積し、画素断片の対応した第1組が断片バッファに付加されるに従って、断片バッファの断片入力の個数が予定値を超えたか否かを判定し、図形素材の第1組の第1副組を面走査している間に、断片バッファの断片入力の個数が予定値を超えたとの判定に応じ、大きさS2 の映像領域を少なくとも二つの大きさS3 の映像領域に分割する各過程をさらに含んだ請求項19記載の方法。
- 画素断片が色彩、区域および深度の各データを含む請求項19記載の方法。
- 画素断片が色彩、区域、不透明性および深度の各データを含む請求項19記載の方法。
- 断片メモリ、
図形素材を読取るように動作し得るとともに、大きさS1 の映像領域および大きさS2 の映像領域について画素データを発生させるように動作し得る面走査器、
その面走査器と連通して、画素データを受信するように動作し得るとともに、選ばれた画素データの断片メモリへの伝送を制御するように動作し得、断片メモリと連通して、選ばれた画素データを断片メモリに蓄積するように動作し得る画素機関、および、
断片メモリと連通して、断片メモリのメモリ使用が予定値に達したか否かを判定するように動作し得、面走査器に連通して、断片メモリのメモリ使用が予定値に達した場合に、副領域の一つに対して図形素材の副組を面走査器に面走査させる緩衝制御回路
を備えて、表示映像を図形素材に計算させるための装置。 - 大きさS1 を有する画素メモリをさらに含むとともに、大きさS2 の副領域
を含み、選ばれた画素データの断片および画素メモリへの伝送を制御するように動作し得るとともに、断片および画素メモリと連通して、選ばれた画素データを画素もしくは断片のメモリに蓄積し、さらに、
面走査器と連通して、断片メモリのメモリ使用が予定値に達した場合に、大きさS2 の映像領域に対する図形素材の副組を面走査器に、画素メモリの対応した副領域まで面走査させる請求項30記載の装置。 - 大きさS1 の映像領域に対し、大きさS1 の映像領域の副領域である大きさS2 の映像副領域に対し、さらに、大きさS2 の映像領域の副領域である大きさS3 の映像副領域に対し、画素データを発生させるように面走査器が動作し得る、請求項30記載の装置。
- 画素メモリが、大きさS1 を有するとともに、大きさS2 およびS3 の副領域を有し、面走査器が、大きさS1,S2 もしくはS3 の映像領域に対する画素データを画素メモリの対応する領域まで発生させるように動作し得る請求項32記載の装置。
- 断片メモリのメモリ使用が予定値に達した場合に、画素メモリを階層的に副分割するように面走査器が動作し得る請求項33記載の装置。
- 素材を蓄積するように動作し得る素材列、
その素材列と連通し、その根源列から素材を受信して構造データ要求に変換するように動作し得る予備面走査器、
予備面走査器と連通し、構造データ要求を蓄積するように動作し得る構造要求列、
構造隠し場、
構造要求列と連通し、メモリから構造データを回収して、構造隠し場に蓄積するように動作し得る構造獲得ユニット、
素材列と連通して、素材列から素材を受取るように動作し得、構造隠し場と連通して、構造隠し場から回収した構造データを用いて素材を面走査するように動作し得る予後面走査器
を備えて、図形表現系における構造データに接近するための装置。 - 構造データ要求が構造ブロックのリストを備えた請求項35記載の装置。
- 予備面走査器が、構造隠し場における構造ブロックの置換を制御して、構造隠し場のメモリ容量の超過を防ぐように動作し得る請求項35記載の装置。
- メモリからの回収した各構造ブロックに対する単一の要求にまで構造データ要求を圧縮するように予備面走査器が動作し得る請求項35記載の装置。
- 予後面走査器が素材のそれぞれの面走査を完了した後に、素材列から素材を除去するように予後面走査器が動作し得る請求項35記載の装置。
- メモリと連通し、圧縮し、圧縮された構造データを受取り、圧縮された構造データを減圧し、減圧した構造データを構造隠し場に伝送するように動作し得る減圧機関をさらに含んだ請求項35記載の装置。
- メモリおよび減圧ユニットと連通し、減圧ユニットが圧縮された構造データの圧縮されたブロックを減圧するにつれて、メモリから回収した圧縮された構造データを一時的に蓄積するように動作し得る圧縮された隠し場をさらに含んでいる請求項40記載の装置。
- 個別の余弦波変換型の圧縮を用いて圧縮した構造ブロックに減圧を施すように減圧ユニットが動作し得る請求項40記載の装置。
- ハフマン・ランレングス符号化を含む無損失型の圧縮を用いて圧縮した構造ブロックに減圧を施すように減圧ユニットが動作し得る請求項40記載の装置。
- 図形素材の列を作り、
列を作った図形素材を構造基準に変換し、
構造基準の列を作り、
構造データ・ブロックをメモリから獲得し、
構造隠し場に構造データ・ブロックを隠し、
列を作った図形素材を面走査して出力画素データを発生させ、その面走査過程に、構造隠し場内で構造ブロックが利用可能になるにつれて、構造データ・ブロックのアクセスを含める
各過程を備えて、図形表現系で行なわれる表現動作の期間中に構造データをメモリからアクセスする方法。 - メモリから獲得した圧縮された構造ブロックの減圧をさらに含めた請求項44記載の方法。
- 図形素材データを受信して、構造要求を含んだ画素データを発生させるよう
に動作し得る面走査器、
面走査器と連通して、画素データを受信するように動作し得る構造基準データ列、
構造基準データ列と連通し、構造要求をメモリ内の構造ブロックのアドレスに変換して、構造ブロックをメモリから獲得するように動作し得る構造獲得ユニット、
構造獲得ユニットと連通して、構造ブロックを蓄積するように動作し得る構造隠し場、並びに、
構造隠し場および構造基準データ列と連通して、構造基準データ列から画素データを読出すとともに、構造隠し場から構造標本を読出して出力画素を発生させるように動作し得る構造フィルタ機関
を備えて、図形表現系で構造データをアクセスするための装置。 - メモリと連通して、圧縮された構造データのブロックを減圧するように動作し得る減圧ユニットをさらに含んだ請求項46記載の装置。
- 減圧ユニットが二つの並列減圧ブロックを含む請求項47記載の装置。
- 減圧ユニットが個別の余弦波変換型の減圧を行なうように動作し得る請求項47記載の装置。
- 減圧ユニットが無損失ランレングス復号もしくはハフマン復号を行なうように動作し得る請求項49記載の装置。
- .構造獲得ユニットが構造隠し場に蓄積した構造ブロックの置換を制御するように動作し得るので、構造隠し場のメモリ容量が超過しない請求項46記載の装置。
- 構造要求が構造標本区域の中心を構造地図の座標系に備えている請求項46記載の装置。
- 構造基準データ列が、補間した色彩、行き先画素に対するアドレスおよび構造基準データを含んだ画素データを蓄積するように動作し得る請求項46記載の装置。
- 図形素材を面走査して、それぞれ、画素アドレス、色彩データおよび構造要
求を含んだ画素要素を発生させ、
画素要素の列を作り、
要素列から構造要求を読出し、
構造要求をメモリに蓄積した構造ブロックのアドレスに変換し、
メモリに蓄積した構造ブロックを獲得し、
構造隠し場に構造ブロックを隠し、
列中の付加的画素要素に対して読出し、変換および獲得の各過程を反復し、
画素要素を列から回収し、構造標本データを構造隠し場から回収し、さらに、構造標本データを画素要素に対する色彩デートと結び付けることにより出力画素を発生させ、さらに、
発生過程を反復して付加的出力画素を発生させる
各過程を備えて、図形表現系で行なわれる表現動作の期間中に構造データをメモリからアクセスする方法。 - 圧縮された構造ブロックをメモリから回収し、
圧縮された構造ブロックを減圧し、さらに、
減圧した構造ブロックを構造隠し場に蓄積する
各過程を獲得過程に含めた請求項54記載の方法。 - 獲得過程が、圧縮された構造ブロックを隠す過程をさらに含んだ請求項55記載の方法。
- 圧縮された構造ブロックが個別の余弦波変換圧縮を用いて圧縮される請求項55記載の方法。
- 圧縮された構造ブロックがハフマンおよびランレングスの各符号化を用いて圧縮される請求項55記載の方法。
- 構造隠し場にすでに蓄積された構造ブロックに対する要求の発生を避けるために、メモリに隠した構造ブロックの足跡の維持を含んでいる請求項54記載の方法。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US51155395A | 1995-08-04 | 1995-08-04 | |
US56011495A | 1995-11-17 | 1995-11-17 | |
US08/671,412 US5867166A (en) | 1995-08-04 | 1996-06-27 | Method and system for generating images using Gsprites |
US08/672,694 US5949428A (en) | 1995-08-04 | 1996-06-27 | Method and apparatus for resolving pixel data in a graphics rendering system |
US08/672,347 US6005582A (en) | 1995-08-04 | 1996-06-27 | Method and system for texture mapping images with anisotropic filtering |
US08/672,425 US5990904A (en) | 1995-08-04 | 1996-06-27 | Method and system for merging pixel fragments in a graphics rendering system |
US08/671,506 US5852443A (en) | 1995-08-04 | 1996-06-27 | Method and system for memory decomposition in a graphics rendering system |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP50860497A Division JP4540753B2 (ja) | 1995-08-04 | 1996-08-02 | グラフィックオブジェクトを画像チャンクにレンダリングして、画像層を表示画像に組み合わせる方法及びシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004046886A true JP2004046886A (ja) | 2004-02-12 |
JP3968063B2 JP3968063B2 (ja) | 2007-08-29 |
Family
ID=27569819
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP50860497A Expired - Lifetime JP4540753B2 (ja) | 1995-08-04 | 1996-08-02 | グラフィックオブジェクトを画像チャンクにレンダリングして、画像層を表示画像に組み合わせる方法及びシステム |
JP2003286313A Expired - Lifetime JP3968063B2 (ja) | 1995-08-04 | 2003-08-04 | グラフィックオブジェクトを画像チャンクにレンダリングして、画像層を表示画像に組み合わせる方法及びシステム |
JP2003286311A Expired - Lifetime JP4521167B2 (ja) | 1995-08-04 | 2003-08-04 | グラフィックオブジェクトを画像チャンクにレンダリングして、画像層を表示画像に組み合わせる方法及びシステム |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP50860497A Expired - Lifetime JP4540753B2 (ja) | 1995-08-04 | 1996-08-02 | グラフィックオブジェクトを画像チャンクにレンダリングして、画像層を表示画像に組み合わせる方法及びシステム |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003286311A Expired - Lifetime JP4521167B2 (ja) | 1995-08-04 | 2003-08-04 | グラフィックオブジェクトを画像チャンクにレンダリングして、画像層を表示画像に組み合わせる方法及びシステム |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP0850462B1 (ja) |
JP (3) | JP4540753B2 (ja) |
AU (1) | AU6766096A (ja) |
CA (1) | CA2229027A1 (ja) |
DE (1) | DE69636599T2 (ja) |
WO (1) | WO1997006512A2 (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008512766A (ja) * | 2004-09-09 | 2008-04-24 | シリコン オプティックス インコーポレイテッド | 異方性フィルタリングを用いたシングルパス画像ワーピングシステム及び方法 |
JP2012138104A (ja) * | 2012-03-01 | 2012-07-19 | Qualcomm Inc | 異方性フィルタリングを用いたシングルパス画像ワーピングシステム及び方法 |
US8692939B2 (en) | 2005-10-18 | 2014-04-08 | Nec Viewtechnology, Ltd. | Method and apparatus for improving image quality |
JP2015076102A (ja) * | 2013-10-08 | 2015-04-20 | 三星電子株式会社Samsung Electronics Co.,Ltd. | 映像処理装置及び方法 |
KR101609266B1 (ko) * | 2009-10-20 | 2016-04-21 | 삼성전자주식회사 | 타일 기반의 랜더링 장치 및 방법 |
JP2019517696A (ja) * | 2016-05-31 | 2019-06-24 | アリババ グループ ホウルディング リミテッド | 画像生成方法及びデバイス |
JP2020087458A (ja) * | 2018-11-14 | 2020-06-04 | 芯原微電子(上海)股▲ふん▼有限公司 | エッジをアンチエイリアスするグラフィックス処理方法、システム、記憶媒体及び装置 |
Families Citing this family (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6204859B1 (en) * | 1997-10-15 | 2001-03-20 | Digital Equipment Corporation | Method and apparatus for compositing colors of images with memory constraints for storing pixel data |
US6771264B1 (en) * | 1998-08-20 | 2004-08-03 | Apple Computer, Inc. | Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor |
GB2343603B (en) † | 1998-11-06 | 2003-04-02 | Videologic Ltd | Shading 3-dimensional computer generated images |
DE69936376T2 (de) * | 1998-11-12 | 2008-02-28 | Sony Computer Entertainment Inc. | Verfahren und vorrichtung zur erzeugung eines bildes |
US6393145B2 (en) * | 1999-01-12 | 2002-05-21 | Microsoft Corporation | Methods apparatus and data structures for enhancing the resolution of images to be rendered on patterned display devices |
AUPP923799A0 (en) | 1999-03-16 | 1999-04-15 | Canon Kabushiki Kaisha | Method for optimising compilation of compositing expressions |
AU744463B2 (en) * | 1999-03-16 | 2002-02-21 | Canon Kabushiki Kaisha | Method for compiling compositiing expressions for optimised rendering |
US6898692B1 (en) | 1999-06-28 | 2005-05-24 | Clearspeed Technology Plc | Method and apparatus for SIMD processing using multiple queues |
US6636224B1 (en) * | 1999-08-31 | 2003-10-21 | Microsoft Corporation | Method, system, and computer program product for overlapping graphics data collection and transmission using a single processor |
EP1287494B1 (en) | 2000-06-08 | 2007-03-14 | Imagination Technologies Limited | Tiling and compression for rendering 3d images |
WO2003010718A1 (en) * | 2001-07-20 | 2003-02-06 | Koninklijke Philips Electronics N.V. | Computer graphics system and method of rendering polygons |
JP4467267B2 (ja) * | 2002-09-06 | 2010-05-26 | 株式会社ソニー・コンピュータエンタテインメント | 画像処理方法、画像処理装置、および画像処理システム |
DE602004024974D1 (de) * | 2003-04-15 | 2010-02-25 | Nxp Bv | Computergrafikprozessor und verfahren zum erzeugen eines computergrafikbildes |
US8063916B2 (en) | 2003-10-22 | 2011-11-22 | Broadcom Corporation | Graphics layer reduction for video composition |
GB0426170D0 (en) | 2004-11-29 | 2004-12-29 | Falanx Microsystems As | Processing of computer graphics |
JP4660254B2 (ja) * | 2005-04-08 | 2011-03-30 | 株式会社東芝 | 描画方法及び描画装置 |
GB0524804D0 (en) | 2005-12-05 | 2006-01-11 | Falanx Microsystems As | Method of and apparatus for processing graphics |
JP4827659B2 (ja) * | 2006-08-25 | 2011-11-30 | キヤノン株式会社 | 画像処理装置、画像処理方法、及びコンピュータプログラム |
US9418450B2 (en) | 2006-08-31 | 2016-08-16 | Ati Technologies Ulc | Texture compression techniques |
US9965886B2 (en) | 2006-12-04 | 2018-05-08 | Arm Norway As | Method of and apparatus for processing graphics |
GB2445008B (en) * | 2006-12-20 | 2008-12-31 | Sony Comp Entertainment Europe | Image compression and/or decompression |
US7948500B2 (en) | 2007-06-07 | 2011-05-24 | Nvidia Corporation | Extrapolation of nonresident mipmap data using resident mipmap data |
US7944453B1 (en) | 2007-06-07 | 2011-05-17 | Nvidia Corporation | Extrapolation texture filtering for nonresident mipmaps |
US8044971B2 (en) | 2008-01-31 | 2011-10-25 | Arm Norway As | Methods of and apparatus for processing computer graphics |
GB0900700D0 (en) | 2009-01-15 | 2009-03-04 | Advanced Risc Mach Ltd | Methods of and apparatus for processing graphics |
JP5371596B2 (ja) * | 2009-07-13 | 2013-12-18 | キヤノン株式会社 | 情報処理装置、情報処理方法及びプログラム |
JP5469516B2 (ja) * | 2010-04-12 | 2014-04-16 | 任天堂株式会社 | 画像表示プログラム、画像表示システム、画像表示方法および画像表示装置 |
CA2805308A1 (en) * | 2010-07-14 | 2012-01-19 | Research In Motion Limited | Methods and apparatus to perform animation smoothing |
JP5664052B2 (ja) | 2010-09-15 | 2015-02-04 | 富士通セミコンダクター株式会社 | グラフィック処理装置、及び、グラフィック処理プログラム |
US8701183B2 (en) * | 2010-09-30 | 2014-04-15 | Intel Corporation | Hardware-based human presence detection |
US8463073B2 (en) * | 2010-11-29 | 2013-06-11 | Microsoft Corporation | Robust recovery of transform invariant low-rank textures |
KR101227155B1 (ko) * | 2011-06-14 | 2013-01-29 | 주식회사 넥서스칩스 | 저해상도 그래픽 영상을 고해상도 그래픽 영상으로 실시간 변환하는 그래픽 영상 처리 장치 및 방법 |
JP5907780B2 (ja) * | 2012-04-02 | 2016-04-26 | 富士フイルム株式会社 | 超音波診断装置 |
CN102930568B (zh) * | 2012-09-25 | 2015-01-14 | 哈尔滨工业大学 | 一种静止背景中匀速运动目标的离散退化图像构造方法 |
US9317948B2 (en) | 2012-11-16 | 2016-04-19 | Arm Limited | Method of and apparatus for processing graphics |
US9582848B2 (en) | 2012-12-28 | 2017-02-28 | Apple Inc. | Sprite Graphics rendering system |
KR101451813B1 (ko) * | 2013-02-07 | 2014-10-16 | 주식회사 로커스 | 입체영상 제작 시 탑-뷰 매트릭스를 이용한 이미지 처리 방법 및 이를 이용하는 이미지 처리 장치 |
US10204391B2 (en) | 2013-06-04 | 2019-02-12 | Arm Limited | Method of and apparatus for processing graphics |
KR102095702B1 (ko) * | 2013-09-27 | 2020-04-14 | 에스케이플래닛 주식회사 | 이동 단말을 위한 애니메이션 재생 장치 및 방법 |
US9355464B2 (en) | 2014-05-30 | 2016-05-31 | Apple Inc. | Dynamic generation of texture atlases |
FR3028990B1 (fr) | 2014-11-21 | 2018-01-19 | Institut National Des Sciences Appliquees De Lyon | Procedes de compression et de decompression de donnees representatives d’un objet tridimensionnel numerique et support d'enregistrement d'informations contenant ces donnees |
KR101617606B1 (ko) | 2015-05-21 | 2016-05-03 | (주) 비비비 | 영상 생성 장치 및 방법 |
US9990690B2 (en) * | 2015-09-21 | 2018-06-05 | Qualcomm Incorporated | Efficient display processing with pre-fetching |
RU2638014C2 (ru) * | 2015-09-28 | 2017-12-08 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и вычислительное устройство для создания симплифицированных границ графических объектов |
GB2553744B (en) | 2016-04-29 | 2018-09-05 | Advanced Risc Mach Ltd | Graphics processing systems |
CN106708623B (zh) * | 2016-11-23 | 2021-04-27 | 腾讯科技(深圳)有限公司 | 一种对象资源处理方法、装置及系统 |
CN108492342B (zh) * | 2018-03-22 | 2022-05-03 | 网易(杭州)网络有限公司 | 合并碎图的方法、装置、处理器、存储介质和终端 |
CN108830916A (zh) * | 2018-06-27 | 2018-11-16 | 河南职业技术学院 | 一种包含大量角色的三维动画制作方法及系统 |
KR102160092B1 (ko) * | 2018-09-11 | 2020-09-25 | 스노우 주식회사 | 레이어드 마스크와 룩업테이블을 이용한 이미지 처리 방법 및 시스템 |
US10810700B2 (en) * | 2019-03-05 | 2020-10-20 | Aspeed Technology Inc. | Method of adjusting texture coordinates based on control regions in a panoramic image |
CN110765891B (zh) * | 2019-09-30 | 2022-05-17 | 万翼科技有限公司 | 工程图纸识别方法、电子设备及相关产品 |
CN114253724B (zh) * | 2021-12-15 | 2023-10-13 | 中煤科工重庆设计研究院(集团)有限公司 | 一种bim模型渲染方法及系统 |
CN115278264B (zh) * | 2022-09-26 | 2023-02-28 | 杭州雄迈集成电路技术股份有限公司 | 一种图像放大和osd叠加编码方法和系统 |
CN116070464B (zh) * | 2023-03-07 | 2023-06-06 | 四川宏华电气有限责任公司 | 一种虚拟现实的钻井井场仿真系统 |
-
1996
- 1996-08-02 JP JP50860497A patent/JP4540753B2/ja not_active Expired - Lifetime
- 1996-08-02 DE DE69636599T patent/DE69636599T2/de not_active Expired - Lifetime
- 1996-08-02 EP EP96928062A patent/EP0850462B1/en not_active Expired - Lifetime
- 1996-08-02 WO PCT/US1996/012780 patent/WO1997006512A2/en active IP Right Grant
- 1996-08-02 CA CA002229027A patent/CA2229027A1/en not_active Abandoned
- 1996-08-02 AU AU67660/96A patent/AU6766096A/en not_active Abandoned
-
2003
- 2003-08-04 JP JP2003286313A patent/JP3968063B2/ja not_active Expired - Lifetime
- 2003-08-04 JP JP2003286311A patent/JP4521167B2/ja not_active Expired - Lifetime
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008512766A (ja) * | 2004-09-09 | 2008-04-24 | シリコン オプティックス インコーポレイテッド | 異方性フィルタリングを用いたシングルパス画像ワーピングシステム及び方法 |
US8692939B2 (en) | 2005-10-18 | 2014-04-08 | Nec Viewtechnology, Ltd. | Method and apparatus for improving image quality |
KR101609266B1 (ko) * | 2009-10-20 | 2016-04-21 | 삼성전자주식회사 | 타일 기반의 랜더링 장치 및 방법 |
JP2012138104A (ja) * | 2012-03-01 | 2012-07-19 | Qualcomm Inc | 異方性フィルタリングを用いたシングルパス画像ワーピングシステム及び方法 |
JP2015076102A (ja) * | 2013-10-08 | 2015-04-20 | 三星電子株式会社Samsung Electronics Co.,Ltd. | 映像処理装置及び方法 |
US10229524B2 (en) | 2013-10-08 | 2019-03-12 | Samsung Electronics Co., Ltd. | Apparatus, method and non-transitory computer-readable medium for image processing based on transparency information of a previous frame |
JP2019517696A (ja) * | 2016-05-31 | 2019-06-24 | アリババ グループ ホウルディング リミテッド | 画像生成方法及びデバイス |
JP2020087458A (ja) * | 2018-11-14 | 2020-06-04 | 芯原微電子(上海)股▲ふん▼有限公司 | エッジをアンチエイリアスするグラフィックス処理方法、システム、記憶媒体及び装置 |
JP7018420B2 (ja) | 2018-11-14 | 2022-02-10 | 芯原微電子(上海)股▲ふん▼有限公司 | エッジをアンチエイリアスするグラフィックス処理方法、システム、記憶媒体及び装置 |
Also Published As
Publication number | Publication date |
---|---|
WO1997006512A2 (en) | 1997-02-20 |
JPH11511277A (ja) | 1999-09-28 |
JP4540753B2 (ja) | 2010-09-08 |
EP0850462A2 (en) | 1998-07-01 |
EP0850462B1 (en) | 2006-10-04 |
JP2004102998A (ja) | 2004-04-02 |
AU6766096A (en) | 1997-03-05 |
DE69636599D1 (de) | 2006-11-16 |
CA2229027A1 (en) | 1997-02-20 |
WO1997006512A3 (en) | 1997-06-19 |
DE69636599T2 (de) | 2007-08-23 |
JP4521167B2 (ja) | 2010-08-11 |
JP3968063B2 (ja) | 2007-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4540753B2 (ja) | グラフィックオブジェクトを画像チャンクにレンダリングして、画像層を表示画像に組み合わせる方法及びシステム | |
US5880737A (en) | Method and system for accessing texture data in environments with high latency in a graphics rendering system | |
US5886701A (en) | Graphics rendering device and method for operating same | |
US5864342A (en) | Method and system for rendering graphical objects to image chunks | |
US5870097A (en) | Method and system for improving shadowing in a graphics rendering system | |
US6005582A (en) | Method and system for texture mapping images with anisotropic filtering | |
US5867166A (en) | Method and system for generating images using Gsprites | |
US5999189A (en) | Image compression to reduce pixel and texture memory requirements in a real-time image generator | |
US5977977A (en) | Method and system for multi-pass rendering | |
US5949428A (en) | Method and apparatus for resolving pixel data in a graphics rendering system | |
US5852443A (en) | Method and system for memory decomposition in a graphics rendering system | |
US5990904A (en) | Method and system for merging pixel fragments in a graphics rendering system | |
US5808617A (en) | Method and system for depth complexity reduction in a graphics rendering system | |
Torborg et al. | Talisman: Commodity realtime 3D graphics for the PC | |
US5856829A (en) | Inverse Z-buffer and video display system having list-based control mechanism for time-deferred instructing of 3D rendering engine that also responds to supervisory immediate commands | |
US6064393A (en) | Method for measuring the fidelity of warped image layer approximations in a real-time graphics rendering pipeline | |
US6426755B1 (en) | Graphics system using sample tags for blur | |
KR100478767B1 (ko) | 그래픽 렌더링 방법, 컴퓨터 그래픽 파이프라인용 상태 감시 장치 및 3차원 그래픽 렌더링용 계산처리 시스템 | |
US6016150A (en) | Sprite compositor and method for performing lighting and shading operations using a compositor to combine factored image layers | |
US6956576B1 (en) | Graphics system using sample masks for motion blur, depth of field, and transparency | |
US6392655B1 (en) | Fine grain multi-pass for multiple texture rendering | |
US6184891B1 (en) | Fog simulation for partially transparent objects | |
US7116335B2 (en) | Texturing systems for use in three-dimensional imaging systems | |
EP1434171A2 (en) | Method and system for texture mapping a source image to a destination image | |
Lefebvre et al. | Unified texture management for arbitrary meshes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060905 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20061205 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20061215 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070305 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20070305 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070507 |
|
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: 20070529 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070601 |
|
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: 20110608 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110608 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120608 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120608 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130608 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
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 |
|
EXPY | Cancellation because of completion of term |