(57)【要約】　　　（修正有）【課題】グラフィクス対象物をチャンク映像に変換し、チャンク映像を合成して表示画像を生成することによりメモリ容量が少ない、高速並列処理装置を提供する。【解決手段】レンダリングオーバーヘッドを低減するために、この装置はフレームアニメーションのために対象物を再レンダリングするよりもむしろ三次元対象物の動きをシミュレートするためにｇスプライト５５２上にアフィン変換を実行できる。シャンク内のレンダリング幾何学が複雑な断片アンチエイリアスを可能にする。この装置は断片バッファ内に部分的に覆われた画素位置を表現する断片又は半透明画素を記憶する。シャンクに対するプリミテーブをラスター化した後に、断片分解補助装置が出力画素を計算するために断片を識別する。この装置のラスター化成分が断片メモリを節約するために断片を合併しようと試みる。【選択図】図１５
2004102998.tif 000002
【特許請求の範囲】
【請求項１】
　計算レートで観視空間に映像を発生させる方式において、
　現下の映像に対する観視容積内の対象物を少くとも二つのグスプライトに割当て、
　第１グスプライトに第１三次元対象物を与えるようにして少くとも二つのグスプライトに対象物を互いに無関係に与え、
　少くとも二つのグスプライトを合成して計算レートで現下の映像を発生させ、
　後続の計算機関に第１三次元対象物の動きを模するための密接な変換を計算し、さらに、
　以上の各過程を反復して後続の計算期間に後続の映像を発生させ、
　表現経費を減らすために後続の計算期間に第１グスプライトを再表現するよりもその密接な変換を用いて第１グスプライトに密接な変換を施す
　各過程を備えて映像群を発生させる方法。
【請求項２】
　第１対象物の特性点を用いて密接な変換を計算し、
　密接な変換を用いた第１グラスプライトの密接な変換が予定の許容誤差範囲内にあるか否かを判定し、
　その密接な変換が予定の許容誤差範囲内にあれば、第１対象物の動きを模するために密接な変換を第１グスプライトに施す
　各過程をさらに含む請求項１記載の方法。
【請求項３】
　第１計算期間における第１対象物の特性点を第２計算期間における第１対象物の特性点と比較し、
　特性点の変化が予定許容範囲内にあれば、第１対象物を再表現する
　各過程を含む請求項１記載の方法。
【請求項４】
　先行計算期間に変化するレートで表現したグスプライトを更新する過程を表現過程に含めた請求項１記載の方法。
【請求項５】
　グスプライト・メモリ
　いずれの対象物が観視容積と交差するかを判定し、観視容積と交差する対象物をグスプライトに割当て、グスプライトを変換するのに用いる密接な変換を計算してグスプライトが表わす対象物の動きを模するために、対象物の入力記載位置および観視点を受取る映像前処理器、および、
　対象物を各グスプライトに与え、グスプライトをグスプライト・メモリに蓄積し、グスプライト・メモリからグスプライトを読出すとともにそのグスプライトを密接な変換による物理的出力装置座標に変換し、さらに、物理的出力装置に表示するために表現したグスプライトを合成するために、映像前処理器に結合した映像処理器
　を備えて、グスプライトを用いた表示映像を発生させるための映像処理方式。
【請求項６】
　映像前処理器が計算機方式においてプログラムしたプロセッサを備えた請求項５記載の方式。
【請求項７】
　映像前処理器がプログラムしたディジタル信号プロセッサを備えた請求項５記載の方式。
【請求項８】
　映像前処理器が計算機方式においてプログラムしたプロセッサおよびそのプログラムしたプロセッサに結合してプログラムしたディジタル信号プロセッサを備えた請求項５記載の方式。
【請求項９】
　映像処理器が対象物をグスプライトに与えて、そのグスプライトをグスプライト・メモリに蓄積する請求項５記載の方式。
【請求項１０】
　映像処理器がグスプライト・メモリからグスプライトを読出してそのグスプライトを物理的出力装置座標に変換するためのグスプライト機関を含む請求項５記載の方式。
【請求項１１】
　映像処理器が物理的出力装置に表示するためにグスプライトを合成するためのグスプライト機関に結合した合成用バッファを含む請求項１０記載の方式。
【請求項１２】
　色彩データおよびｎを整数としたｎ画素領域に対応する画素区域データを含む深さ類別断片記録を蓄積するための断片バッファ、
　色彩データを受信して、その色彩データを各副画素領域毎に個別に集積して蓄積するために断片バッファに結合して、ｎ副画素領域に対応する色彩集積器、および、
　色彩集積器のそれぞれから集積した色彩を加算して画素の色彩値を計算する論理回路
　を備えた画素分解回路。
【請求項１３】
　断片記録用に集積した色彩を計算するために乗算動作を行うための回路を色彩集積器が含む請求項１２記載の画素分解回路。
【請求項１４】
　断片記録がアルファ・データを含み、色彩集積器が、アルファ・スケールを計算するための第１乗算動作、集積した色彩を計算するための第２乗算動作および集積したアルファを計算するための第３乗算動作を行なう回路を含む請求項１２記載の画素分解回路。
【請求項１５】
　副画素位置のそれぞれから集積した色彩を計るための論理回路をさらに含む請求項１２記載の画素分解回路。
【請求項１６】
　集積した色彩を加算するための論理回路に、画素当り１クロック周期の割合で色彩値を計算するためのパイプラインを設けた請求項１２記載の画素分解回路。
【請求項１７】
　色彩データとｎを整数としたｎ副画素領域に対応する画素区域データとを含む断片記録を順次に処理し、
　ｎ副画素領域に対して色彩を個別に集積し、
　ｎ副画素領域に対して集積した色彩を蓄積し、さらに、
　ｎ副画素領域に対して集積した色彩を結びつけて画素位置に対する色彩値を計算する
　各過程を備えて画素データを分解するための方法。
【請求項１８】
　ｎ副画素領域について集積したアルファを蓄積し、
　ｎ副画素領域に対して個別に断片記録からアルファ・データを集積する各過程をさらに含んで、断片記録がさらにアルファ・データを含む請求項１７記載の方法。
【請求項１９】
　ｎ副画素領域に対して集積した色彩を１／ｎに計る請求項１７記載の方法。
【請求項２０】
　受持ち区域が存在する副画素領域に対して色彩を集積するような処理マスクとして、断片記録に対し区域マスクを用いる過程を含んで、断片記録に対応する区域マスクを区域データに含めた請求項１７記載の方法。
【請求項２１】
　それぞれ色彩データ、アルファ値およびｎ副画素領域のいずれをその断片記録が受持っているかを示す画素区域データを含んだ、深さ類別断片記録を蓄積する断片バッファ、
　画素区域データを解析し、共通に集積したアルファ値を有する副画素群を含む独特の画素領域を識別し、画素領域に対して共通に集積したアルファ値を蓄積するための、断片バッファと連通した新規の区域制御回路、および、
　共通に集積したアルファ値を有する独特の画素領域に対して集積した色彩を計算するための色彩尺度および色彩集積回路を有する、色彩、アルファおよび画素区域の各データを受信するための断片バッファに結合した新規の区域制御回路および断片バッファに連通した尺度および集積制御回路
　を備えて、ｎを整数としたｎ副画素領域を有する画素位置に対する画素データを分解するための画素分解回路。
【請求項２２】
　尺度および集積制御回路が、区域尺度係数をｍ／ｎとし、ｍを画素領域にお
　ける副画素の個数として、画素領域に対して集積したアルファ、断片記録のアルファおよび区域尺度係数を乗算するための区域尺度器を含む請求項２１記載の画素分解回路。
【請求項２３】
　区域マスクと独特の画素領域を表わして対応する集積したアルファ値との配列を含む区域配列をさらに含み、新たな区域制御回路が、新たな断片記録の画素区域データを区域マスクと比較して、新たな断片記録が独特の画素領域と如何に重複しているかを判定し、新たな独特の画素領域を計算するための回路を含む請求項２１記載の画素分解回路。
【請求項２４】
　新たな区域制御回路が、不透明な副画素領域を識別し、不透明な副画素マスク内の不透明な副画素領域の位置を蓄積し、不透明な副画素マスクを使用して、他の断片からの色彩データもしくはアルファ・データを無視するための回路を含む、請求項２１記載の画素分解回路。
【請求項２５】
　それぞれ色彩データ、アルファ値およびｎ副画素領域中のいずれをその断片記録が受持つかを識別する画素区域データを含む断片記録の深さを類別したリストから現下の断片記録を読取り、
　それぞれ共通に集積したアルファを有する若干の副画素領域を有する若干の独特の画素領域を識別するために現下の断片区域データを解析し、
　若干の独特の画素領域のそれぞれについて、現下の断片に対する色彩データに、区域尺度係数をｍ／ｎとし、ｍを画素領域における副画素領域の個数として、画素領域に対し共通に集積したアルファ、現下の断片のアルファ値および区域尺度係数を乗算することにより、現下の断片に対する色彩データを計測し、計測した色彩データを画素位置に対して集積した色彩データを加算し、さらに、深さを類別したリスト中の後続断片に対して解析、計測および加算の各過程を反復する
　各過程を備えて、ｎを整数としたｎ副画素領域を有する画素位置に対する画素データを分解するための方法。
【請求項２６】
　図形素材を面走査して深さ、色彩および区域の各データを有する画素断片を発生させ、
　映像内の画素位置にそれぞれ対応する、断片バッファ内で選択した画素断片のリストを蓄積し、
　第１の画素位置で発生した第１の画素断片について、対応するリスト内で選択した画素断片が予定の色彩許容範囲内にあるか否かを判定するとともに、選択した画素断片が予定の深さ許容範囲内にあるか否かを判定し、
　発生した画素断片を予定の色彩許容範囲内および予定の深度許容範囲内で選択した第１画素断片と併合し、さらに、併合した画素断片を対応するリスト構造内に蓄積する
　各過程を備えて画素断片を併合する方法。
【請求項２７】
　対応するリスト内で選択した断片が対応するリストに最近付加した断片であり、判定過程が最近付加した断片が予定の色彩許容範囲内にあるか否かの判定のみを備えた請求項２６記載の方法。
【請求項２８】
　図形素材を面走査して深さおよび色彩の各データを有して十分にカバーされた画素群を発生させ、さらに、十分にカバーされて選ばれた画素群を画素バッファに蓄積する
　各過程を備えた請求項２６記載の方法。
【請求項２９】
　図形素材を面走査して深さおよび色彩の各データを有して十分にカバーされた画素群を含む画素データを発生させ、
　十分にカバーされて発生した画素群に深度比較動作を行なって十分にカバーされて選ばれた画素群を識別し、さらに、
　画素バッファ内に十分にカバーされて選ばれた画素群を蓄積する各過程を備えた請求項２６記載の方法。
【請求項３０】
　図形素材を面走査して、深さおよび色彩の各データを有して十分にカバーされた画素群を含む画素データを発生させ、
　十分にカバーされて発生した画素群に深さ比較動作を行なって十分にカバーされて選ばれた画素群を識別し、
　十分にカバーされて選ばれた画素群を画素バッファ内に蓄積し、発生した画素断片と対応して十分にカバーされて画素バッファ内で選ばれた画素群との間の深さ比較動作を行なって、選択された画素断片を識別するとともに断片バッファに蓄積する
　各過程をさらに含んだ請求項２６記載の方法。
【請求項３１】
　区域データが区域マスクを含み、併合過程が
　発生した画素断片の区域マスクを予定の色彩許容範囲内および予定の深度許容範囲内で選ばれた第１の画素断片と組合わせ、
　　組合わせた区域マスクを併合した画素断片に蓄積する
　各過程を備えた請求項２６記載の方法。
【請求項３２】
　併合した画素断片が併合過程の結果として十分にカバーされた画素になっているか否かを判定し、なっている場合には、
　併合した画素断片の色彩および深度を画素バッファの対応した位置に蓄積する
　各過程をさらに含んだ請求項３１記載の方法。
【請求項３３】
　画素バッファ内で選択した画素断片のリスト群を分解し、
　面走査および分解の各過程を反復して表示映像を発生させ、
　表示映像および後続映像群を１０Hzより大きいレートで発生させる各過程をさらに含んだ請求項２６記載の方法。
【請求項３４】
　面走査バッファ、
　図形素材を受信する動作が可能であって、図形素材を面走査して色彩、深度および区域の各データを含む画素断片を形成する面走査器、および、
　画素断片を受信するために面走査器と連通して、画素断片を面走査バッファに蓄積すべきか否かを判定するための深さ比較動作を行なう動作が可能であり、蓄積された画素断片を読出すために面走査バッファに連通して、面走査器によって発生した画素断片を少くとも面走査バッファに蓄積した第１画素断片と比較して、発生した画素断片が色彩許容範囲内にあるか否かを判定する動作が可能であるとともに、発生した画素断片を面走査バッファに蓄積した画素断片の一つと併合する動作が可能な画素機関
　を備えて、図形素材データに観視空間用映像を発生させる方式。
【請求項３５】
　面走査バッファが、観視空間において十分にカバーされた画素位置に対する色彩および深度の各データを蓄積するように動作し得る画素バッファと、観視空間において部分的にカバーされた画素位置に対する色彩、深度および区域の各データを蓄積するように動作し得る断片バッファとを含んだ請求項３４記載の方式。
【請求項３６】
　断片バッファが、観視空間における画素位置の一つに対応する画素断片のリストを蓄積するように動作し得る請求項３５記載の方式。
【請求項３７】
　画素機関が深度比較動作を行なうための比較器回路を含んだ請求項３４記載の方式。
【請求項３８】
　画素機関が、発生した画素断片が色彩許容範囲内にあるか否かを判定するために、面走査器によって発生した画素断片を面走査バッファに蓄積した少くとも第１画素断片と比較するための比較器回路を含んだ請求項３４記載の方式。
【請求項３９】
　発生した画素断片が色彩許容範囲内にあるか否かを判定するために、面走査断片と比較するための第１比較器回路と、発生した画素断片が深度許容範囲内にあるか否かを判定するために、面走査器によって発生した画素断片を面走査バッファに蓄積した少なくとも第１画素断片と比較するための第２比較器回路とを画素機関に含めた請求項３４記載の方式。
【請求項４０】
　画素機関が、映像における各画素位置に対して面走査バッファに蓄積した最近の断片を維持するように動作し得るとともに、発生した断片の画素位置に対応する画素位置に対して面走査バッファに蓄積した最近の断片のみを併合するように動作し得る請求項３４記載の方式。
【請求項４１】
　観視空間における画素位置に対する色彩および深度の各データを有する画素記録を蓄積するように動作し得る画素バッファと、部分的にカバーされた画素位置に対する色彩、区域および深度の各データを含む、画素位置に対応した断片記録のリストを蓄積するように動作し得る断片バッファとを含んだ面走査バッファ、
　図形素材を受信するように動作し得るとともに、色彩、深度および区域の各データを含む画素データを形成するために、図形素材を面走査するように動作し得る面走査器、並びに、
　画素データを受信するために面走査器と連通して、画素データを画素記録もしくは断片記録として面走査バッファに蓄積すべきか否かを判定するために深度比較動作を行なうように動作し得、蓄積した断片記録を読出すために面走査バッファと連通して、面走査器によって発生した部分的にカバーされた画素位置に対する色彩データを、その色彩データが色彩許容範囲内にあるか否かを判定するために断片バッファに蓄積した少くとも第１断片記録と比較するたように動作し得るとともに、色彩データを断片バッファに蓄積した断片記録の一つと併合するように動作し得る画素機関を備えて、観視空間用映像を図形素材データに発生させるための方式。
【発明の詳細な説明】
【技術分野】
【０００１】
　本発明は一般に、グラフィックス変換に関わる。さらに特定的には、グラフィック対象物を変換するための改良法、および、改良装置に関わる。
【背景技術】
【０００２】
　近代生活のあらゆる分野にコンピュータが普及するにつれて、視覚情報を用いてマン・マシーン・インターフェイスを改善しようという要求が増している。グラフィック・ソフトおよびハードウェアの進歩はすでにマン・マシーン・インターフェイスを急速に改善してきた。例えば、デスクトップ・コンピュータ用のウィンドー環境のようなインタラクティブ・グラフィックスは、コンピュータの使い勝手とユーザーとの相互作用を大きく改善し、今日では当たり前のことになっている。ハードウェアの価格対パフォーマンス比が下がるにつれて、コンピュータ上で作成されたグラフィックスやアニメの使用がさらに浸透してきている。残念ながら、真にインタラクティブな、リアルな効果を生み出そうとすると、そのコストのために、応用に限界がある。したがって、より低コストで、さらにインタラクティブで、リアルな効果を与えることのできる新しい画像処理技術やアーキテクチュアにたいしては需要がある。
【０００３】
　画像処理法の分類法には各種あるけれども、よくある方法の一つは、画像を、それが表わしたい対象物の次元で記載するやり方である。例えば、ある画像装置は、対象物を2 次元( 例えば、x 座標とy 座標を持つ)で表わす。この場合は、そのグラフィックスは「２次元性」(2D)であるという。また、３次元( 例えば、x 、y 、および、z 座標を持つ)で表わせば、その場合は、そのグラフィックスは、「３次元性」(3D)であるという。
【０００４】
　陰極線管(CRT) のような表示装置は、２次元性(2D)であり、コンピュータの画像装置によって表示される映像は一般に2Dである。しかしながら、以下にさらに詳しく論ずるように、もしもコンピュータが、３次元空間で映像化された対象物を表わすグラフィック・モデルを保持しているならば、コンピュータは、その表示映像を変えて、3D空間において同じ対象について別の遠近像を描くことができる。一方、2Dグラフィック画像は、表示の前に変形する（例えば、 拡大・縮小したり、一定の方式で変換したり、回転したり）ことはできるけれども、3D空間における別の遠近視におけるその対象物の外観をコンピュータはすぐには描き出すことはできない。
【０００５】
　現代のコンピュータが、2Dグラフィックス、特に3Dグラフィックスを次第に効率的に扱うことができるようになったために、様々の応用分野が広がっており、同時に、コンピュータとユーザー間のインターフェイス(UI)に基本的な変化が生じている。3Dグラッフィクスの利用可能性は益々重要になってきている。すなわち、生産品質のアニメ・フィルムの制作ツールを始め、家庭向きの低解像度のゲームやマルチメディア製品を含めた、娯楽関連性の応用分野が成長しているからである。3Dグラフィックスの関連する他分野について二三挙げるならば、教育、ビデオ会議、ビデオ編集、インタラクティブ・ユーザー・インターフェイス、コンピュータ支援設計やコンピュータ支援製造（CAD ／CAM）、科学・医学画像法、ビジネス応用、および、電子出版がある。
【０００６】
　グラフィックス処理装置は、アプリケーション・モデル、アプリケーション・プログラム、グラフィックス・サブシステムを始め、コンピュータの通常のハードウェア、ソフトウェア部分、および、付属品を含むと考えてよい。
　アプリケーション・モデルとは、もちろん画像処理はモデルに基づくと仮定して、データ、すなわち、表示される対象物を表わす。モデルは、対象の形を定義する基本要素、例えば、点、線や多角形を始め、対象物の属性（例えば、色）に関する情報を含む。アプリケーション・プログラムは、アプリケーション・モデルへ入るインプット、モデルから出て行くアウトプットをコントロールし、アプリケーション・モデルと、グラフィックス・サブシステムとの間の翻訳者として有効に活動する。最後に、グラフィックス・サブシステムは、ユーザー・インプットをアプリケーション・モデルに手渡したり、また、アプリケーション・モデルの蓄えている詳細な記載に基づいて画像を生成したりする。
【０００７】
　通常の画像処理装置は、物理的出力装置を備える。これが、画像の出力、すなわち、表示を行なう。従来他の形態の表示装置も開発されてはきたけれども、今日優勢な技術は、ラスター・グラフィックスに依拠している。ラスター表示装置は、一連の不連続な点、すなわち、画素（すなわち、ピクセル）を含む。画素は、複数の列と行に配列されて、画像を生成する。CRT においては、この画素は、CRT のガラス・スクリーン上に与えられた蛍光体配列に対応する。この配列の中の各蛍光体からの光出力は、それぞれ独立に、この配列を順々に「 走査」する電子ビームによってコントロールされる。配列の奇数・偶数列の一つ置き走査も、例えば、テレビジョン環境では普通に見られる技法である。スクリーンにマップされるピクセル値配列は、ビットマップ、または、ピックスマップと呼ばれることが多い。
【０００８】
　ラスター・画像装置に関連する一つの問題は、たった一つの画像にたいするビットマップでもそれを保存するのに必要なメモリーが膨大になることである。例えば、1280 x 1024 （すなわち、ピクセル行とピクセル列の数）の表示解像度を維持するのに、装置は、ランダム・アクセス・メモリーの3.75メガバイト(Mb)を必要とすることがある。この情報は、繰り返すが、単一スクリーンの画像を表わすにすぎないものであるが、これは、フレーム・バッファーと呼ばれる、コンピュータの表示記憶装置の一部に蓄えられる。
　CRT のような従来のラスター画像装置に関するもう一つの問題は、装置から発せられる光が比較的速やかに減衰することである。そのため、画像の「ゆらぎ」を避けるためには、通常、60Hz以上もの頻度で、表示を「 更新」してやらなければならない（すなわち、ラスターを再走査しなければならない）。このため、画像生成装置は、画像データを一定頻度で供給するという厳しい要求をつきつけられることになる。二つのフレーム・バッファーを用いてこの問題に対応しようとする装置がある。すなわち、バッファーの内の一つは、直後の画像フレームに対応するピックスマップ情報を備え、他方のバッファーは、只今の画像フレームのピックスマップでスクリーンを更新するのに用いられる。
【０００９】
　装置にたいする要求は情報の複雑さによってさらに悪化される。すなわち、アプリケーション・モデルの貯えた対象物から映像を引き出すためには情報が複雑に処理されなければならないからである。例えば、３次元表面のモデル化それ自体が複雑な仕事である。表面モデル化は、アプリケーション・モデルによって実行されるが、多角形メッシュ、パラメトリック表面、または、方形表面を用いて行なう。曲面は、平面多角形のメッシュによって表わされるけれども、変換画像におけるその外観の「 滑らかさ」は、表示の解像度と、表面のモデル化に用いられた、個々の多角形の数の両方に依存する。多角形メッシュによる複雑な表面の、高解像度のモデル化に伴う複雑な計算は、コンピュータのリソースにとって極端に圧迫的である。
【００１０】
　上に紹介したように、よりリアルな、よりインタラクティブな画像を生成したいという要求がある。「リアル・タイム」という用語は、通常、インタラクティブで、リアルな画像処理装置を記述するのに用いられる。「リアル・タイム」装置においては、ユーザーは、ある場面の中の対象物の連続的な動きを感ずることができなければならない。リアル・タイム機能を持つビデオ・ゲームにおいては、活動的キャラクターと視点は、ユーザーのインプットにたいして極小の遅れで反応し、かつ、滑らかに動く必要がある。
【００１１】
　そのようなリアル・タイム効果を実現するためには、画像変換装置は、十分に高速で新しい画像を生成し、それによって、ユーザーが、ある場面の中の対象物の連続的な動きを感知できるほどになっていなければならない。リアル効果を実現するために必要とされる計算速度は、対象物が場面の中でどのくらいの速さで動き回るか、および、透視視点がどのくらい急速に変化するか、によって変わる。通常のアプリケーションでは、リアル・タイム画像装置は、新画像を１秒当たり少なくとも12個計算し、それによって、連続運動を模倣する一連の画像を生成する。高品質アニメ・アプリケーションでは、計算速度は、それよりもはるかに高くなければならない。
【００１２】
　リアル・タイム装置に関するもう一つの問題は搬送遅延である。搬送遅延とは、ユーザーからのインプット、すなわち、場面の中のあるキャラクターを動かすためのジョイスティックの運動、にたいして画像を計算して表示するのに必要な時間である。搬送遅延時間がユーザーにとって目立つものであればあるほど、その程度に応じて、「リアル・タイム」の相互作用性は損なわれる。理想的には、ユーザーに、搬送遅延を気づかせてはならない。しかしながら、実際には、新しいインプットにたいして、ある場面の対象物を変換し表示画像を生成するのに必要な、いくらかの遅延が必ず存在する。リアル・タイム相互作用性の改善は、データを切り落とすことなく達成できればきわめて望ましい。なぜなら、データの切り落としは、画像品質を損なうからである。
【００１３】
　始めに紹介したように、通常の画像装置は、一般に、フレーム・バッファーを備える。画像を生成するためには、画像装置は、ある場面の中の対象物の全てを変換し、得られた画像をこのフレーム・バッファーに蓄える。次に、装置は、変換画像データを表示器に転送する。通常のグラフィックス・アーキテクチャーであれば、フレーム・バッファーの全内容は消去され、場面は再び変換され、新たなフレーム画像を生成する。この型の装置では、各対象物は、各フレームごとに再描画される。なぜなら、フレーム・バッファーは、フレームとフレームの間において空にされるのであるから。従って、各対象物は、同じ速度で最新画像に更新される。これは、その画像が、その場面の中で現実にどのような動きをしているか、または、特定の用途にたいして、それがどのような重要性持つか、には無関係に行なわれる。
【００１４】
　この、通常のアーキテクチャーは、高度にリアルな、インタラクティブなグラフィックスを生成しようとすると、いくつかの障害をもって立ちふさがる。第一に、ある特定のフレームに関して、ある場面の中の各対象物がすべて同じ優先性で、同じ更新速度で変換される。従って、 ほとんど細部を持たず、動いてもいない背景の対象物も、もっと早く動き、もっと細かい表面細部を持つ前景の対象物と同じ速度で再変換される。そのため、処理や、記憶のためのリソースが、背景対象物の再変換のために消費されることになる。しかも、これら背景対象物はフレームごとにほどんど大した変化をしないのに、である。
【００１５】
　この従来のアーキテクチャーに関するもう一つの欠点は、場面における各対象物がすべて同じ解像度で変換されるということである。その結果、この種のやり方で消費される変換リソースは、その対象物が、場面全体にたいして占める重要性ではなく、その対象物が占めるスクリーン面積の大きさに比例することになる。この問題を明らかにするには実例が役立つ。典型的なビデオ・ゲームの場合、前景の、フレームごとに変化する活動的なキャクラクターと、フレームごとに滅多に変化しない背景とがある。メモリー消費という点でのコストは、背景を生成する方が、活動的なキャラクターを生成するのに要するものよりもはるかに高い。なぜならば、背景の方が、スクリーン上において、より大きな面積を占めるからである。画像データは、背景対象物が占める各ピクセル位置について保存されて、なければならない。一方、より小さい、活動的なキャラクターの方はと言えば、ピクセル・データは、小型のキャラクターの占めるピクセルにたいしてだけ、生成・保存される。その結果、背景は、場面の中の重要性はずっと低いにも拘わらず、より大きなメモリーを占有する。さらに、通常のアーキテクチャーでは、背景全体が、各フレームごとに再変換され、貴重な処理用リソースを消費する。
フレーム・バッファー法の主要利点は、任意の数の単純な対象物を用いて、出力装置において、一つの任意の画像を生成することができ、しかも、それが、ただ、その出力装置の空間的、強度的解像度によってしか制限されないということである。しかしながら、フレーム・バッファーを用いる画像装置にはいくつかの弱点がある。
【００１６】
　フレーム・バッファーは、高価なメモリーを大量（例えば、64-128Mb）に使う。標準のランダム・アクセス・メモリー(RAM) では、アクセス・スピードが遅いので、フレーム・バッファーには適しない。例えば、1024 x 1024 スクリーン上の万の桁のピクセルを空にするには、各メモリー・サイクルが250 ナノ秒を要すると仮定して、１秒の1/4 かかる。従って、さらに高速の、さらに高価な、ビデオRAM(VRAM) 、または、ダイナミックRAM(DRAM) が通常フレーム・バッファーには使われる。高性能装置ともなれば、２個の高価なフレーム・バッファーを備えているものも多い。すなわち、一方のフレーム・バッファーは、現在の画面を表示するのに用いられ、他方は、次のフレームを変換するのに用いられる。この大容量の特殊化メモリーは、画像装置のコストを大幅に上昇させる。
【００１７】
　フレーム・バッファーのメモリー帯域がさらに問題である。各ピクセルに蓄えられた生地（生地）、色、深み情報によって画像処理を実行するのをサポートするためには、30Hzで画像処理するとして、約1.7 ギガバイト／秒の帯域が必要である。通常のDRAMは、僅か50Mb／秒しか持っていないから、フレーム・バッファーは、たくさんのDRAMから構築されなければならない。すなわち、これらのDRAMを、平行処理法を用いて、所期の帯域が得られるようにしなければならない。
【００１８】
　リアル・タイムな、インタラクティブな効果を実現するために、高品質画像装置は、平行変換エンジンを用いる。大フレーム・バッファーに関わる問題の処理のために、従来、三つの基本的平行法が開発されている。(1) 変換処理を多数の処理器に分配するパイプライン方式、(2) フレーム・バッファー・メモリーを、各々独自の処理器を備えたメモリー・チップ・グループに分割する分割方式、および、(3) フレーム・バッファー・メモリー・チップ上の処理回路を、高密度メモリー回路と結合させる結合方式、である。これらの方式は、大型フレーム・バッファーを用いる画像装置の処理法を改善したが、この装置のコストをも飛躍的に増大させた。
【００１９】
　高価な平行処理法を用いてさえ、高度な自然化処理法をサポートするのはきわめて難しい。自然化処理法というのは、連続面を不連続なピクセルで表わすことによって引き起こされる、変換画像におけるアーチファクトを減少させるための処理法を指す。通常の、フレーム・バッファー・アーキテクチャーでは、ある全体フレームにおけるピクセル値は、任意の順序で計算される。従って、高度な自然化処理を実行するためには、自然化処理を始める前に、全フレームのピクセル・データが生成されていなければならない。リアル・タイム装置においては、ピクセル・データにたいして自然化処理を実行するのに十分な時間が残されていない。処理を実行すれば必ず搬送遅延がさらに加わることになる。さらに、自然化処理は、ピクセル断片を保存するためのメモリーをさらに必要とする。フレーム・バッファーはすでに大容量の高価なメモリーを含んでいるのであるから、自然化処理をサポートするために、さらに特殊なメモリーを加えることは、フレーム・バッファー装置をさらに一段と高価なものにする。
【００２０】
　画像圧縮法も、画像処理にフレーム・バッファーを用いる画像装置においては容易に使用できるものではない。フレーム・バッファーによる画像装置において、処理速度を上げるために用いられる平行処理法は、圧縮法を導入しようという試みにいくつかの障害をもたらす。平行処理中、フレーム・バッファーのどの部分にたいしても、どの時点においても、ランダムにアクセスすることができる。一方、多くの画像圧縮法では、画像データは、圧縮処理中は変化しないことを要求する。そうすることによって、後になって、画像データを圧縮解除（脱圧）できるようにするためである。
【００２１】
　フレーム・バッファー・アーキテクチャーでは、高価なメモリーや平行処理用ハードウェアは、常にあまり使用されずに放置されがちであった。なぜなら、ある任意の時点においては、フレーム・バッファー・メモリー、または、平行処理装置のごく小部分のみが実際に使用されるにすぎないからである。したがって、フレーム・バッファー・アーキテクチャーは、大量の高価なメモリーや処理用ハードウェアを備えているけれども、このハードウェアは十分に活用されていない。
【発明の開示】
【課題を解決するための手段】
【００２２】
発明の概要
　本発明は、幾何学的基本図形のようなグラフィック・データを変換して、表示画像を生成するための方法、および、装置を与える。本発明は、3Dグラフィックスをリアル・タイムで変換するのに特に好適であるが、他のグラフィックスや画像処理アプリケーションにも同様に適用できる。
　画像変換装置の一つの態様として、本装置は、グラッフィク対象物を、ｇスプライト(gsprite) と呼ばれる画像層に別々に変換し、次に、このｇスプライトを合成して表示画像に仕立てあげる。さらに具体的に言うと、本装置は、ｇスプライトを対象物に割り当て、次に、各対象物( 単数または複数)を、対応するｇスプライトに変換する。ｇスプライトを変換するために、本装置は、映像領域、すなわち、ｇスプライトのチャンクを連続的に変換する。本装置は、ｇスプライトを、チャンクに分解し、これらのチャンクの間で対象物の大きさを仕分けし、次に、そのチャンクを連続的に変換する。本装置は、ｇスプライトを合成して表示画像に仕立てる。
【００２３】
　本発明の一局面として、ｇスプライトは、3D対象物の動きを模倣するように変形させることができ、変換のレベルをさらに上げることができることがある。ある実施態様では、本装置は、ある場面の中の対象物を、別々のｇスプライトに変換する。ある対象物をあるｇスプライトに変換した後、本装置は、その後のフレームのために、その対象物を再変換する代わりに、そのｇスプライトを再利用する。これを実行するために、本装置は、ｇスプライトの表わす3D対象物の動きを模倣するアフィン変換を計算する。本装置は、ｇスプライト上でアフィン変換を実行し、このｇスプライトと他のｇスプライトとを合成し、表示画像を生成する。
【００２４】
　本発明のもう一つの局面は、画像データのチャンクのためにピクセル断片を処理するそのやり方にある。本装置は、チャンクのために基本図形をラスター化し、基本図形で全的にカバーされる、または、部分的にカバーされるピクセル位置用ピクセル・データを生成する。ある基本図形がピクセル位置を部分的にカバーする場合、または、透過性の場合、装置はピクセル断片を生成し、この断片を断片バッファーに蓄える。ある基本図形がピクセル位置を完全にカバーし、かつ、不透明である場合、装置は、その色彩データをピクセル・バッファーに蓄える。装置は、チャンク用に基本図形をラスター化し、次に、後処理手順においてチャンク用ピクセル・データを解消する。チャンク変換用アーキテクチャーは、一方で、表示画像をリアル・タイム速度で生成しながら、他方で高度な自然化処理をこのピクセル・データにたいして実行することを可能にする。
【００２５】
　本発明のもう一つの局面は、装置のラスター化装置が、一般化ピクセル断片を、断片バッファーに蓄えられた断片と融合しようとすることによって、断片メモリーをセーブできるそのやり方にある。もしも蓄えられている断片が、一般化断片のあらかじめ定められた深みと色彩許容度の範囲内にあるならば、装置のピクセル・エンジンは、これら断片を融合する。ピクセル・エンジンは、これらの断片を、一部は、一般化断片と蓄えられた断片の全体データ( 例えば、全体マスク)を結合することによって融合する。もしも融合されたピクセル断片が完全にカバーされ、不透明であるならば、ピクセル・エンジンは、それを、対応するピクセル・バッファー入力部に移し、断片記録を、断片メモリーから解放する。
【００２６】
　本発明のさらにもうひとつの局面は、サブシステムが、断片記録のリストを解消するそのやり方にある。一つのやり方として、断片解消サブシステムは、ピクセルの各サブピクセル位置にたいして別々の色彩およびアルファー集積器を持ち、各サブピクセルごとに別々に色彩を集積する。このサブシステムは、各サブピクセル位置の集積された色彩を結合する論理を備え、最終的な、出力ピクセルを計算する。もう一つのやり方として、断片解消サブシステムは、深みで仕分けられた断片リストにおいて各断片記録が解消されている間、共通の集積アルファー値を持つサブピクセル領域を追跡し続ける。リストの中の各断片を解消した後、二つのやり方で得られた出力は、ただ一組の色彩値(RGB) と、恐らく一つのアルファー値を持つ出力ピクセルとなる。各ピクセル位置にたいし、断片解消サブシステムは、ピクセル・バッファー中の色彩値を、関連する断片リスト中に断片記録があれば、それと結合させて、例えば、RGB 色彩値とアルファー値を含む分解ピクセル値を計算する。
【００２７】
　本発明のさらにもうひとつの局面は、異方性濾過を実行する方法にある。一般に生地マッピングにおいては、画像変換装置は、幾何学的基本図形の表面にたいして、生地マップをマップする。この特定の方法においては、装置はまず、視野の中のピクセル位置の一点をどのように生地マップにマップさせるかを決定する。概念的には、装置は、フィルター足型をどのように生地マップにマップさせるかを決定する。透視マップにおいては、等方性フィルター足型を生地マップにマップさせることは、異方性の方向においては歪んだ形を与える。したがって、生地を等方性フィルターで濾過することは、高品質の結果を得るには十分ではない。ある特定の実施態様では、装置は、フィルター足型を生地にマップさせるやり方を、生地座標にマップされた視野座標（例えば、スクリーン座標）におけるピクセル位置にたいする逆ヤコビアン行列を計算することによって決定する。
【００２８】
　次に本装置は、マップされたフィルター足型から異方性直線を決め、さらに、特に、この特定の実施態様においては、逆ヤコビアン行列によって異方性直線を決める。概念的には、異方性直線は、視野から生地空間にマップされた点の座標を貫通する直線であり、マップされたフィルター足型の最大延長方向に向かう。装置は、異方性直線にそってフィルターを繰り返し用いて、生地マップから数値をサンプルする。この繰り返し濾過手順による出力は濾過・集積され、それらを元に最終の生地マップを計算する。この方法にはいくつかの変法がある。ある特定の実施態様では、装置は、異方性直線にそって３直線内挿を実行する。次に、この３直線フィルターの出力は集められ、それを元にあるピクセル位置にたいする一組の色彩値を計算する。この態様においては、生地フィルター・エンジンは、例えば、三角形または台形の形を持つ一次元フィルターを、異方性直線に沿う３直線内挿の出力に適用する。しかしながら、この方法では、異方性直線にそって適用されるフィルターに関してはいくつかの変種が可能である。
【００２９】
　本発明のもう一つの局面は、ある画像が、断片メモリーからあふれ出た場合に、その画像の小部分の変換を実行するそのやり方である。ある実施態様では、装置は、断片メモリーの使用状況を追跡し、断片記入の数がある予定値に達した場合、画像領域を、小部分にさらに区分することができる。装置はピクセル断片を生成しながら、断片バッファーへの記入の数を追跡し続ける。もしも記入の数が予定値に達したならば、画像領域はさらに小領域に分割され、この小領域について1回に一つずつ変換する。これによって、各小領域を変換するのに十分な断片メモリーが確保される。装置は、もしも断片記入の数が予定値に達したならば、小領域をさらに小さい画像領域に細区分することができる。その結果、装置は、断片メモリーが決して越えられることがないように、変換される画像領域を細区分することができる。これによって、装置は、もし上記の工夫を持たなかったならば、断片メモリーがあふれてしまうような場合でも、断片を放棄することなく、比較的小さい断片メモリーを用いることができる。
【００３０】
　本発明のもう一つの局面は、装置が、高度の潜時を生ずる環境において、生地フェッチ（生地データを、メモリーに行って、持って帰ってくる）作業を実行するそのやり方にある。例えば、生地マッピング、影つけ、マルチパス変換作業においては、作業を実行するために生地データをフェッチする際に高度の潜時が生ずる場合がしばしばある。この潜時は、メモリーからデータを読み取る際に生ずる遅れ、生地データの脱圧にさいして生ずる遅れ、または、その両方のために起こるものである。
【００３１】
　ある実施態様においては、インプット・データ・ストリームの中の幾何学的基本図形は、メモリーから１ブロックの生地データをフェッチするための潜時を十分吸収できる長さの基本キューに蓄えられる。前ラスター化装置が、この基本キューの中の幾何学的基本図形を、生地ブロック参照データに変換し、これが、第２のキューに蓄えられる。この第２のキューで参照データとされた生地ブロックは、メモリーからフェッチされ、生地キャッシュに置かれる。後ラスター化装置は、このキューの中の基本図形を一つずつラスター化する。各基本図形がラスター化されるにつれて、生地データが必要に応じて生地キャッシュから取り出され、現在の基本図形のための出力ピクセルの計算のために用いられる。基本図形は、ラスター化された後、このキューから除去される。
【００３２】
　もう一つの実施態様では、基本図形がラスター化され、得られたピクセル・データは、生地ブロック・フェッチの潜時を吸収するのに十分な長さを持ったキューに置かれる。ある特定の態様では、キューへの記入は、ピクセル・アドレス、そのアドレスにたいする色彩データ、および、生地請求を含む。生地請求はさらに、生地マップ座標における生地サンプルの中心点を含む。生地要求は、生地ブロック・アドレスに変換され、この生地ブロックは、フェッチされ、生地キャッシュに置かれる。キューへの記入はキューから取り出され、現在生地キャッシュにある関連生地データは、出力ピクセルを計算するのに用いられる。両方の方法とも二組の生地請求を生成し、その内の一組は、他の一組のために遅らせられる。第１組は、生地データを実際にフェッチし、そしれ恐らくそれを脱圧するのに用いられ、 第２組は、生地キャッシュから生地データを取り出すのに用いられる。
【００３３】
　本発明の、これ以外の特徴や利点に関しては、下記の詳細な説明と、付属の図面を参照することによって明らかになるであろう。
【実施例】
【００３４】
装置概観
下記の詳細な説明の中で、われわれは、画像処理装置に関して、いくつかの実施態様を記述する。
　この画像処理装置は、グラフィックスとビデオ処理の両方にたいして、リアル・タイム画像変換と生成をサポートする。本装置に用いられる新規のアーキテクチャーと画像処理法によって、本装置は、当今の画像装置に比べて、高度なリアル・タイム3Dアニメを、はるかにコスト安で生成することができる。画像処理に加えて、本装置は、ビデオ編集アプリケーションのようなビデオ処理をもサポートし、また、ビデオとグラッフィクスを結合させることもできる。例えば、本装置は、ビデオを、グラッフィクな対象物に適用したり、ビデオ・データにグラッフィクな対象物を加えるのに用いることもできる。
【００３５】
　本装置は、広範なインタラクティブ・アプリケーションをサポートする。本装置は、高度のリアル・タイム・アニメをサポートできるために、ゲームや、教育用アプリケーション、および、たくさんのインタラクティブ・アプリケーションに好適である。本装置は、3Dグラッフィクス、および、グラフィックスとビデオ併用を含む、高度なユーザー・インターフェイスをサポートする。今日の、パソコン用ウィンドウ環境の制限された画像能力を改善し、本装置は、高度の、アプリケーション用3Dグラフィック・ユーザー・インターフェイスをサポートする。そのアプリケーションは、デスクトップ・コンピュータ上のオフィス・インフォメーション処理用のものから、テレビ・セット接続式のインタラクティブ用途のものまで広範に渡る。本装置は、メモリーと処理時間をきわめて効率よく利用するので、目覚しい画像処理、および、表示を呈示しながら、それでいて、アプリケーションの性能や、ユーザー・アクションにたいするユーザー・インターフェイスの反応性を不当に妨げない。
【００３６】
　第１図は、本画像処理装置100 のブロック・ダイアグラムである。本画像処理装置は、画像データ供給・保存体102 、画像前プロセッサー104 、画像プロセッサー106 、および、変換画像を直ちに表示したいならば、表示装置108 から成る。本装置の各要素は、システム・インターフェイス110 を通じて互いに接続している。画像データ供給・保存体102 は、画像データを装置に供給し、かつ、画像データと命令を保存する。画像前プロセッサー104 は、画像データを操作して、変換できるように調整する。前処理機能の例としては、対象物を幾何学モデルで定義すること、光入射、陰影形成モデルを定義すること、対象位置を決めること、視点と光源の位置を決めること、大きさの処理、がある。
　画像プロセッサー106 は、画像を変換し、表示装置108 に表示されるべき表示画像を生成する。変換とは、モデルから画像を生成する工程を指し、二三挙げるならば、大きさ処理（大きさ処理は、前処理機能でもあることに注意）、視程表面の決定、走査変換、および、光入射などの機能を含む。画像、または、画像の一部を変換した後、画像プロセッサー106 は、変換された画像データを、表示のために表示装置に転送する。
【００３７】
　以下に、われわれは、画像処理装置100 のいくつかの特質を、特定のハードウェア・ソフトウェア・アーキテクチャーを参照しながら詳細に記載する。しかしながら、下記の画像処理装置は、各種のアーキテクチャーに実装可能であることを銘記しなければならない。
【００３８】
　画像処理装置100 は、本発明者にとって既知の従来の高品質3D画像装置にはるかに優る価格性能上の改善を達成した。コンピュータ・グラッフィクスにおけるいくつかの進歩がこの改善の達成に貢献している。そのような進歩としては、合成映像層、画像圧縮、チャンク化、および、マルチパス変換がある。われわれはここにこれらの進歩を紹介し、以下にさらに詳細にこれらの進歩、ならびに、他の進歩を記述する。
【００３９】
合成映像層（ｇスプライト）
　本装置においては、多数の、独立の映像層がビデオ速度で合成されて、出力ビデオ信号を生成する。この映像層を、われわれは一般化スプライト(generalized sprite)すなわちｇスプライト(gsprite) と呼ぶことにするが、これらは、独立に変換・操作することができる。これによって、各対象物を、独立に更新することができるので、対象物の更新速度を、場面の優先性に応じて最適化することができる。例えば、はるか遠くの背景を動く対象物は、前景対象物ほど頻繁に、また、それほど正確に更新する必要はない。
【００４０】
　ｇスプライトは任意の大きさと形を取ることができる。ある実行例では、われわれは方形のｇスプライトを用いた。ｇスプライトのピクセルは、そのピクセルに関連する色とアルファー（不透明度）情報を持っており、そのために、多数のｇスプライトが合成されて全体場面を構成できるようになっている。
　ｇスプライトにたいしては、拡大・縮小、回転、サブピクセル位置づけ、アフィン・ワープのような運動模倣性変換を含む、いくつかの異なる作業をビデオ速度で実行することができる。従って、ｇスプライト更新速度は変えられる一方で、ｇスプライト変換（運動など）は、完全なビデオ速度で実現可能なので、更新速度保証を持たない従来の3D画像装置で実現できるレベルをはるかに越えた滑らかな運動性を実現する。
【００４１】
　多くの3D変換は、2D画像化操作によってシミュレートすることができる。例えば、後退する対象物は、ｇスプライトの大きさを拡大・縮小させることによってシミュレートすることができる。中間フレームにたいしては、以前に変換された画像にたいして2D変換を実行することによって、全体の処理要求を大きく低下させることができるので、3D変換性能を、最高品質画質を生成することが要求される場合に用いることができる。これが、ディテール管理の時間レベルの形態である。
【００４２】
　ジーライト拡大・縮小操作を用いることによって、空間的なディテールも、場面優先性に適合するように調節することができる。例えば、背景対象物、曇った空などは、変換して小さなｇスプライト（低解像度）に納め、次に、それを、表示用に適当な大きさに拡大・縮小する。高品質濾過機能を用いることによって、典型的な低解像度アーティファクトも同じように目立たなくなる。
　通常の、3Dグラッフィクス・アプリケーション（特にインタラクティブ・ゲーム）は、高度の活動速度を実現するために、ディテールの尺度レベルを犠牲にする。ｇスプライトによって、本装置は、さらに二つの場面パラメータを利用することができる。すなわち、ディテールの時間レベルと、ティテールの空間レベルである。そして、それらによって、ユーザーから見たときの実効的演技を最適なものとする。ある対象物が映像に変換される時の空間解像度は、そこへ変換されるスクリーンの解像度に適合する必要はない。さらに、本装置は、この調整を、アプリケーション側のサポートを必要とせず、自動的にやりくりすることができる。
【００４３】
画像圧縮
　装置のコストと性能の決定にあずかってもっとも重要な因子は恐らくメモリーであろう。例えば、従来の高性能3D画像装置は、フレーム・バッファー（２重バッファー）、深みバッファー、生地バッファー、および、自然化バッファーを含めて、30メガバイトを越えるメモリーを持つ。そして、この多くは、特殊メモリーであって、DRAMよりもずっと高価である。メモリー帯域は常に死命を制するネックとなる。高性能装置のコストは、順飛ばしによって得た多数のメモリー貯蓄を、ピクセルや、生地データ・アクセスのために十分な帯域を用意したいという要求に振り向けるために突き上げられることがしばしばである。
【００４４】
　本装置は、この問題を解決するために、画像圧縮技術を広く用いている。画像圧縮は、従来、画像装置には使用されなかった。これは、高品質を実現するのに要求される計算上の複雑さのためであり、また、圧縮技術そのものが、従来のグラフィックス・アーキテクチャーに簡単に適合しないためでもあった。われわれは、チャンク化（後述）と呼ぶ概念を用いることによって、画像や生地にたいして圧縮を効果的に適用することができ、それによって、価格・性能面において目立った改善を実現することができた。
【００４５】
　一面においては、画像装置は従来から、フレーム・バッファー・メモリーにたいして圧縮を用いてきた。高性能装置は、三つの色成分のそれぞれにたいして８ビットを用い、さらにしばしば、８ビットのアルファー値を含んでいた。低性能装置は、この、ピクセル当たり32ビットを4 ビットまで圧縮する。それを、情報を捨てることによって、および・または、カラー・パレットを用いて、同時に表示可能な色の数を少なくすることによって実行する。この圧縮は、よく目立つアーチファクトを生じ、データ要求に目立った抑制を与えず、それでいて、アプリケーションやドライバーに、広範なピクセル・フォーマットに対処するように強制する。
【００４６】
　本装置で使用される圧縮は、高画質を実現しながら、10：1 以上の圧縮比を与える。本装置のもう一つの利点は、すべてのアプリケーションにたいして、単一の高品質のフォーマットしか使用しないということである。これは、空間解像度と色の深みとの間の取引きを必要とする、標準のPCグラフィックス・アーキテクチャーとはっきり異なる点である。
【００４７】
チャンク化
　本装置の、もう一つの重要な進歩を、チャンク化と呼ぶ。従来の3D画像装置（その点に限って言えばどのフレーム・バッファーでも）ランダムにアクセスが可能である（されている）。スクリーン上の任意のピクセルにたいして、ランダムな順序でアクセスすることができる。圧縮アルゴリスムは、相当に大きな数の隣接ピクセルへのアクセス性に依存するので（空間的一体性を利用するために）、圧縮は、グラフィックス・アルゴリスムによって用いられるランダム・アクセス・パターンの性質のために、すべてのピクセルの更新がなされて始めて実行可能となる。このため、圧縮技術を、表示バッファーにたいして適用することは実際的でなくなる。
【００４８】
　このようなランダム・アクセス・パターンの性質によって、ピクセルの被遮蔽（隠れた）表面除去や、自然化アルゴリスムを導入した場合、スクリーン上の各ピクセルは、余分の情報を維持しなければならなくなる。これは、メモリー・サイズ要求を飛躍的に増し、さらに性能上のネックを加える。
　本装置は別の方法を取る。ある場面、または、場面の一部は、チャンクと呼ばれるピクセル領域に分割される（ある特定の実行例では32 x 32 ピクセル）。一つの実行例では、装置は、ｇスプライトに割り当てられた幾何図形をチャンクに分割するが、別の実行例では、ｇスプライトを用いずにチャンク化を実行する。この幾何図形は、それがどのチャンクに変換されるかに基づいて前もってビンに仕分けされる。この工程をチャンク化と呼ぶ。チャンクの境界にかかる図形はできれば、それが見える各チャンクに参照されることが好ましい。場面が活性化されるにつれて、データ構造は、一つのチャンクから別のチャンクへと移動する図形に合うように修正される。
【００４９】
　チャンク化によって、いくつかの目覚しい利点が得られる。チャンク化の使用によって、圧縮が効果的な形態を取ることができる。一つのチャンクの中の幾何図形はすべて、次のチャンクに進む前に変換されるのであるから、深みバッファーは、僅か、単一チャンクだけの大きさを持つだけでよい。32 x 32 ピクセルのような比較的小さなチャンク・サイズを用いることによって、深みファッバーを、画像変換チップに直接装着させることができる。これによって、かなりの量のメモリーを除去することができ、さらに、深みバッファーを、特別メモリー・アーキテクチャーを用いて実装することもできる。すなわち、そのメモリー・アーキテクチャーは、きわめて高い帯域幅をもってアクセスすることができ、かつ、２重バッファー作業時には空にすることができるので、従来の、フレーム間のフレーム・バッファー・メモリー一掃処置を省略することができる。
【００５０】
　自然化処理も相当に簡単になる。なぜなら、各チャンクは、独立に処理できるからである。自然化機能を備える、大抵の高性能Z バッファー画像装置は、大量の付加メモリーを利用しながら、比較的単純な濾過しか実行できない。しかしながら、チャンク化を用いれば、必要とされるデータ量は、かなり少ない（1000の桁）ので、さらにずっと高度な自然化処理アルゴリスムの実装を可能にする。
【００５１】
　Z バッファー処理や自然化処理に加えてさらに、本装置はさらに、適正な、筋目の見えないやり方で透過性をサポートする。あるチャンクの形成中、装置は、もう一つのチャンクで自然化処理と透過性の計算を行なう。言葉を換えて言えば、ある一つのチャンクを形成するのに必要な時間内で、装置は、もう一つのチャンクで自然化処理と透過性処理を実行することができる。装置は、チャンク間をピンポンのように往復することができるので、リアル・タイム・アプリケーション用に映像を処理するにあたって、遅延を加えることなく高度の処理を実行することができる。
【００５２】
　さらにもう一つの利点は、チャンク化は、ブロック性の画像圧縮を可能にすることである。一旦チャンクが変換された（かつ、自然化処理された）ならば、次にそのチャンクは、ブロック変換性圧縮アルゴリスムによって圧縮される。したがって、チャンクを別々にチャンク化することによって実行される圧縮に加えてさらに、チャンク化がさらに高度な、適応性の高い圧縮方式をサポートすることになる。
【００５３】
マルチパス変換
　本装置のアーキテクチャーのもう一つの利点は、3Dインタラクティブ・アプリケーションが、1970年代のCAD 画像装置の外観―あの、飽き飽きする、複数の高反射部を備えた、ランベルト図形的、段階状陰影の多角形群―から抜け出すためのきっかけを与えることである。色付きの生地マッピングは、この外観を改善するばかりでなく、アプリケーション上ではさらにもう一つ独特の外観を呈する。1980年代に、プログラム可能な陰影器や、処理的生地マップの概念が、変換工程に新しい飛躍をもたらした。これらの概念は、オフ・ライン変換の世界を一掃し、今日われわれが映画の特殊効果に見るような高品質画像を生成する。
【００５４】
　今日の通常の高性能3D画像ワークステーションの、厳密な変換パイプライン・モード、および、固定変換モードは、このような効果を実現した場合、必ずリアル・タイム性能を急激に低下させる結果を招く。そのため、リアル・タイム表示を要求するユーザーは、狭く制限された変換弾力性に甘んぜざるを得ない。
【００５５】
　上に概説した方法を用いて帯域要求を下げることによって、本発明の装置は、単一共有メモリーを、圧縮生地保存、および、圧縮ｇスプライト保存を含むすべてのメモリー要求を満たすために用いることができる。このアーキテクチャーのお陰で、変換工程で生成されたデータは、生地プロセッサーに戻され、新たなｇスプライトの変換のためのデータとして使用されることになる。このようなフィードバック・サポートのために、装置は効率的なマルチパス変換を実行することができる。
【００５６】
　効率的なマルチパス変換を、様々の合成モードや、弾力的な陰影言語と結合させることによって、本装置は、以前はオフ・ライン・ソフトウェア変換器の領域であった、各種の変換効果をリアル・タイムで供給することができる。そのようなものとして、陰影（多数光源による陰影を含む）、環境にマップされた反射性対象物、スポット・ライト、地上の霞、リアルな水中シミュレーションなどの機能のサポートがある。
【００５７】
　一つの実施態様においては、画像処理装置（100 ）は、ソフトウェアとハードウェアの併合を含む。次節で、われわれは、ハードウェアとソフトウェア・アーキテクチャーを参照しながら、システム環境について述べる。できれば、別様のアーキテクチャーについても述べる。しかしながら、ソフトウェアとハードウェアは変更が可能であるから、後述する特定の実施例には限定されない。
　本画像処理装置、または、その部分は、デスクトップ・コンピュータ、テレビセット接続ユニット、および、ゲーム装置を含む、いくつかの異なるプラットフォームに実装することができる。
【００５８】
　第２図は、本画像処理装置が実装されるコンピュータ装置130 のブロック・ダイアグラムである。コンピュータ装置130 は、プロセッサー132 、メイン・メモリー134 、メモリー・コントロール136 、二次保存器138 、インプット装置（単数または複数）、表示装置142 、および、画像処理ハードウェア144 を含む。メモリー・コントロール136 は、プロセッサー132 とメイン・メモリー134 の間のインターフェイスとなる。メモリー・コントロールはさらに、プロセッサー132とメイン・メモリー134 が、バス146 に接する時のインターフェイスとしても働く。
【００５９】
　第２図に示したと同じ、または、同様のアーキテクチャーを持つコンピュータ装置は色々ある。そのような装置内部のプロセッサーも変動し得る。さらに、１個以上のプロッセサーを含むコンピュータ装置もある。二三挙げるならば、プロセッサーは、インテル社のペンチアム、または、ペンチアム・プロであってもよいし、シリコン・グラフィックス社のMIPS族から成るマイクロプロセッサーであってもよいし、モトローラ社のパワーPCであってもよい。
【００６０】
　メイン・メモリー134 は、高速メモリーであって、大抵の通常のコンピュータ装置では、ランダム・アクセス・メモリー(RAM) が装着されている。メイン・メモリーは、既知の技術のどのような変種においても、プロセッサーおよびバスとインターフェイスを形成する。メイン・メモリー134 は、コンピュータのオペレーティング・システムや、現在走っているアプリケーション・プログラムのようなプログラムを保存する。以下に、われわれは、コンピュータ装置によって実行される命令のシンボル的な表現を参照しながら、ある実施態様の様々な局面を述べる。この命令は、コンピュータ実行性と呼ばれる場合がある。この実施態様のこれらの局面は、コンピュータの読み取り可能な媒体に保存された一連の命令からなる、一つのプログラムまたは複数のプログラムとして実装することもできる。コンピュータの読み取り可能は媒体は、メイン・メモリーまたは二次保存体に結合される、ここに記載する装置のいずれであっても、または、それら装置の併合であってもよい。
【００６１】
　バス146 は、メモリー・コントロール136 、二次保存体138 、および、画像処理ハードウェア144 を互いに結び付ける。ある実行例では、例えば、バスはPCIバスである。PCI 標準は既知であり、この標準をサポートするように設計されたコンピュータ装置のボードはいくつかある。例としては、ISA バス、EISAバス、VESAローカル・バス、および、NuBus がある。
　表示装置142 は、カラー・ディスプレーであって、画像を表示するために連続的に更新される。一つの実施態様の表示装置は、陰極線管(CRT) 装置であるが、これは、液晶表示(LCD) であっても、その他の表示装置であってもよい。
　二次保存装置138 は、各種の保存媒体を含む。例えば、二次保存装置は、フロッピー（登録商標）・ディスク、ハードディスク、テープ、CD-ROMなどを含んでいてよく、また、電気的、磁気的、光学的、または、他の記録材料を用いる装置であってもよい。
【００６２】
　インプット装置( 単数または複数)140 は、キーボード、マウスや、ジョイスティックのようなカーソル位置づけ装置の他に、各種市販のインプット装置を含む。
　下記に詳述する一つの実行例においては、画像処理ハードウェア144 は、コンピュータ装置と、PCI バスを通して結合するボードに実装される。また別の実行例では、画像処理ハードウェアは、プロセッサーや、他の画像処理ハードウェアやメモリーと共にシステム・ボードに置かれる。例えば、あるゲーム装置では、画像処理ハードウェアは、通常、マザー・ボード上に置かれる。同様に、テレビセット接続装置の画像処理ハードウェアもマザー・ボード上に置いてもよい。
【００６３】
　コンピュータ装置のアーキテクチャーを概観したからといって、われわれは、本発明を、第２図に示したシステム・アーキテクチャーに限定するつもりはない。本画像処理装置は、ゲーム装置、テレビセット接続装置、ビデオ編集装置などに実装することができる。下に、われわれは、第２図に示したシステム・アーキテクチャーの環境における画像処理装置の実施態様を説明する。下記の記述全体を通じて、われわれは、別様の実施態様を述べるが、他に考えられる可能な実行例の完全なリストを与えるつもりで、これら別様の実施態様を記述するものではない。下記の詳細な説明に基づけば、本分野に通常の知識・技術を有するものであれば、本画像処理装置を、別のプラットフォームに実装することは可能であろう。
【００６４】
　第３図は、一つの実施態様におけるソフトウェアとハードウェアの間の関係を示すブロック・ダイグラムである。この実施態様においては、画像処理装置は、ホスト・コンピュータのプロセッサーと、画像処理ハードウェア144 の処理リソースに基づいて実装される。画像処理ハードウェア144 は、プロセッサー( 例えば、ディジタル信号プロセッサー)166 と画像処理回路168 を含む拡張ボード上に実装される。ホスト・コンピュータ130 と、画像処理ボードのプロセッサーは、画像処理作業を共同で行なう。以下に、われわれは、ホストコンピュータ130 と画像処理ボード174 によって実行される機能を概論的に述べる。
【００６５】
　グラッフィクス・サポート・ソフトウェア160 は、ホスト・コンピュータ装置130 の上で実行され、ハードウェア抽象化層(HAL)162を通じて画像処理ボード164 と情報を交換する。画像処理ボード164 は、DSP166と呼ばれるプログラム可能なディジタル信号プロセッサーと、以下に詳述する、別の画像処理ハードウェア168 を含む。
【００６６】
　グラフィックス・サポート・ソフトウェア160 は、メモリー管理、視界容量選択、深み分類、チャンク化の他に、ｇスプライト割り当て、変換、および、ディテール・レベルをサポートする機能を含む。グラフィックス・サポート・ソフトウェアは、ここに挙げる機能を実行するために、グラフィックス・アプリケーション類のアクセス可能な、一群のグラフィックス機能を含んでいてもよい。
【００６７】
　グラフィックス・サポート・ソフトウェア160 は、上に紹介したｇスプライト・パラダイムをサポートする機能を含む。上に示したように、ｇスプライトは独立に変換されるが、各フレームごとに変換される必要はない。むしろ、ｇスプライトの位置の変化は、アフィン、または、その他の変形で近似させてもよい。グラフィックス・サポート・ソフトウェア160 は、一つの対象物、または、複数の対象物を、一つのｇスプライトに割り当てるのを補佐し、そのｇスプライトの位置と動きを記述する移動データを追跡する機能を備える。さらに、グラフィックス・サポート・ソフトウェアは、変換ｇスプライトを更新すべき時を決める機能を備える。ｇスプライトを更新する必要のある場合は、対象物の動き、視点の動き、照明の変化、および、対象物の衝突に応じて変化する。
われわれは、以下に、グラフィック・サポート・ソフトウェアの機能に関してさらに詳細を述べる。画像処理ボード164 は、変形、照明、および、影つけ、生地つけ、自然化、透過性などを含む低レベルの幾何学処理を実行する。一つの実施態様では、DSP166が、フロント・エンド幾何学処理と照明計算を実行するが、この機能のうちいくつかは、ホストのプロセッサー132 に実行させてもよい。
【００６８】
画像処理ボードの概観
　第4A図は、画像処理ボード174 を示すブロック・ダイアグラムである。この画像処理ボード174 は、ホスト・コンピュータと、バス146 を介して連絡する。このものは、DSP176、タイラー200 、共有メモリー216 、ｇスプライト・エンジン204 、合成バッファー210 、および、ディジタル・アナログ変換器(DAC)212を含む。ホストからの命令に応じて、画像処理ボード174 は、画像を変換し、表示用画像を、DAC212を介して表示装置142(第２図)に転送する。
【００６９】
　第2-4A図に示す実施態様では、ホスト・プロセッサーと、DSP は、第１図の画像プロセッサーの機能を分かち合っている。画像プロセッサーは、タイラー200 、ｇスプライト・エンジン204 、合成バッファー210 、および、DAC212から成る。以下に、われわれは、これらの要素についてさらに詳細を述べる。しかしながら、画像処理装置の実装は変更可能であることを銘記しなければならない。
【００７０】
　共有メモリー202 は、画像データと画像処理命令とを画像処理ボード174 上に蓄える。一つの実施態様では、共有メモリーは、ｇスプライトと生地データを圧縮した形で蓄えるのに用いられ、各種バッファーは、処理サブシステム間にデータを転送するのに用いられる。
　DSP176は、ビデオ圧縮・脱圧と、フロントエンド画像処理（変換、照明、など）を行なう。できれば、DSP は、1000 MFLOPS/MOPS　を越える浮動小点と積分計算をサポートするものであることが好ましい。
　タイラー200 は、VLSIチップであって、マルチパス変換のために、走査変換、陰影階調、生地つけ、被遮蔽表面の除去、自然化処理、透過性、影つけ、および、混合を行なう。次に、この得られた変換ｇスプライト・チャンクを圧縮し、圧縮した形で共有メモリーに蓄える。タイラーはさらに、ビデオ、および、ウィンドウ作業をサポートするために、ｇスプライト・データの脱圧および再圧縮を行なう。
【００７１】
　ｇスプライト・エンジン204 は、ビデオ速度で、ｇスプライトのチャンク・データに接触し、これを圧縮し、一般アフィン変換（これには、拡大・縮小、ピクセル以下の精度を持つ翻訳、回転、反射、および、剪断変形が含まれる）のために必要な画像処理を行なう。濾過後、得られたピクセル（アルファーを含む）は、合成バッファーに送られ、ここで表示ピクセル・データが求められる。
【００７２】
　ｇスプライト・チャンク・データは、表示のために、１回に走査線の数だけ処理される。一つの実施態様では、チャンク・データは、１回に32本の走査線分処理される。合成バッファー（210）は、二種の、32走査線カラー・バッファーを含み、これら二種は、表示と合成作業の二つの間を交互切り替えされる。合成バッファーはさらに32走査線アルファー・バッファーを含む。このバッファーは、各ピクセルにたいするアルファーを集積するのに用いられる。
　DAC212は、RGB ビデオDAC と対応するビデオ・ポート214 から、ビデオ編集装置までを含む。個々の成分は、DAC の機能性を実現するために用いられる。
【００７３】
装置の動作
　第5Aおよび5B図は、本画像処理装置において映像を変換する際に実行される手順を示すフロー・ダイグラムである。画像プロセッサー106 が、視野構成のために映像変換を開始する前に、画像前置プロセッサー104 は、対象物と視点の位置を決める(240) 。第２と３図で示した実施態様では、ホスト・コンピュータ装置132 の上を走るグラフィックス・サポート・ソフトウェア160 が、グラッフィクス・アプリケーションから供給されるデータに基づいて、対象物と視点の位置を決める。ホスト・プロセッサーの上を走るグラフィックス・アプリケーションは、関係対象物を表わすモデルを定義し、モデル化変形を供給し、これが、その対象物を、他の対象物と共に「世界座標」の中に位置づけるのに使用される。
【００７４】
　次に、画像前置プロセッサー104 は、見える可能性のある対象物を選び出す(242) 。前置プロセッサーは、視野容量に基づいて、見える可能性のある対象物を決める。視野容量とは、世界座標における３次元空間であって、場面にたいして境界を与える。前置プロセッサーは、対象物を横切ることによって、見える可能性のある対象物を選び出し、その境界が、視野容量と交わるかどうかを決める。視野容量と交わる対象物は、幾何学的、または、空間的意味で見える可能性があることなる。
【００７５】
　ある場合には、場面の将来の変化を予測するために、現在の視野容量の外部にあるが、「 時間的に」 見える可能性のある対象物を決めておくことが有利なことがある。こうすれば、装置は、視野容量の急激な変化にも対応していくことができる。通常の3D画像装置では、このような急激な変化に対応する唯一のやり方は、変更インプットに基づいて新しい場面をまったく新たに生成することであって、そのため、その間に相当な搬送遅延を生ずる。このような長い遅延は、ユーザーに否定的な作用を及ぼし、調節過度や気分のむかつきのような問題を引き起こす。この遅延を下げるために、本発明の画像前置プロセッサーは、視野の外側の拡大範囲に置かれた対象物の位置を計算することができ、かつ、画像プロセッサーは、この拡大範囲の中の映像を変換・保存することができる。本装置のアフィン変換能に基づき、次のフレームにたいする視点インプットを用いて、この拡大範囲のｇスプライトの再配置を、装置転送遅延を、計算フレームにして２フレーム未満に抑えながら実行することができる。このような短い転送遅延は、本発明者に既知の、当今の3Dグラッフィクス・ハードウェア装置では実行不可能であって、さらに高品質なシミュレーションを可能にし、したがって、ユーザーをさらに心地よく画面に没頭させることになる。
【００７６】
　画像前置プロセッサーは、映像にたいするｇスプライトの形態を決定する(244)。この手順は、見える可能性のある対象物をいかにｇスプライトにマップするか、その方法の確立をも含む。この工程の一部として、画像前置プロセッサー104 はｇスプライトの割り当てを行なう。これは、ｇスプライトのデータ構造を生成し、それによって1 個以上の見える可能性のある対象物に相当する画像データを蓄えることをも含む。もしも処理用リソースが許すならば、場面の中の相互非貫通的対象物は、それぞれ、独立のｇスプライトに割り当てられる。互いに貫通しあう、または、自己閉塞性対象物は、単一のｇスプライトとして処理される。
【００７７】
　画像前置プロセッサー104 は、画像プロセッサーが、これらｇスプライトを所期の計算フレーム速度で合成する能力を持たない場合、あるいは、それらジーズプライトを蓄えるほど十分な装置メモリーがない場合、これらのｇスプライトを合体させることができる。別々のｇスプライトに変換する方が必ず計算上効率が高いので、装置にメモリーや、合成能があるならば、相互非貫通性対象物は、別々のｇスプライトに変換される。もしも装置が、ｇスプライトの現在の割り当てに基づいて表示画像を保存ないし生成できない場合には、いくつかのｇスプライトを合体して、この問題を緩和する。
【００７８】
　一つの対象物、または、複数の対象物をｇスプライトに割り当てた後で、画像プロセッサーは、ｇスプライトを、「チャンク」と呼ばれる映像領域に分割する（248 ）。画像前置プロセッサーが、ｇスプライトにたいしループ（繰り返し動作）を実行し、このｇスプライトをチャンクに分割する（246、248 ）。一つの実施態様では、この工程は、視野にたいする対象物の境界容量を変形し、この変形された境界容量を包む方形の映像領域を見出すことを含む。この映像領域は、ｇスプライトの対象物（単数または複数）が変換される２次元平面におけるｇスプライトの大きさを定める。ｇスプライトは、この方形映像領域をチャンクに分割し、それらチャンクをｇスプライト・データ構造と関連させることによって、チャンクに分割される。
【００７９】
　最適化の一つのやり方として、変形された境界容量を拡大・縮小したり、および・または、回転させ、それによって、ｇスプライト変換に必要なチャンクの数が極小になるようにしてもよい。このように変形をさらに加える（拡大・縮小、あるいは、回転）のであるから、ｇスプライトに割り当てられた対象物の変換される空間は、必ずしもスクリーン空間である必要はない。この空間を、ｇスプライト空間と言う。表示画像を生成する過程で、ｇスプライトは再び変形してスクリーン空間に戻さなければならない。
【００８０】
　次の手順は、対象物の大きさを、チャンク間にどのように分割するかを決めることである（250 ）。画像プロセッサーは、幾何学的基本図形（例えば、多角形）が、チャンク間にどのように分割されるかを、その多角形を2D空間（252 ）に変形し、その多角形がどのチャンク（単数または複数）に投影するかを求めて、決める。多角形を切り取るのは高価であるから、好ましい方法は、チャンクの端にある多角形は切り取らないことである。むしろ、チャンクは、その端を重ねる複数の多角形を含む。例えば、もしも、一つの多角形が、二つのチャンクの境界にまたがって延びている場合は、この方法では、多角形の頂点が、各チャンクに含まれることになる。
【００８１】
　次に、画像前置プロセッサーは、チャンク・データを、タイル敷きのためにキュー化する。タイル敷きとは、１個以上の多角形でカバーされる、または、部分的にカバーされるピクセル位置の、色やアルファーのようなピクセル値を決める工程を指す。
　決定手順（254 ）（第5B図）、および、それに続く手順(256) は、チャンク内で多角形のタイル敷きを行なう工程を表わす。画像プロセッサーは、現在のチャンクの境界に重なる多角形を含む一方、同チャンク内にあるピクセルしか生成しない。生成されたピクセルは、自然化処理( 断片記録) のための情報を含み、これは、すべてのピクセルが生成されるまで保存される。
【００８２】
　チャンクの多角形のタイル敷きが終了した後、画像プロセッサーは、ピクセルのための自然化処理データ（断片記録のような）を解消する(258) 。一つの実施態様では、タイラー200 は、2 重バッファーを用い、次のタイル敷きを行なっている間に、その前のチャンクを解消する。また別のやり方として、タイラーは、フリー・リストとバッファーを共有してもよい。フリー・リストとは、共有バッファー内のフリーなメモリーを表わし、これは、新しい断片記録が生成されると割り当てられ、断片記録が解消されると、また加えられるものである。2 重バッファー法と共有メモリーの併用を用いても同様の効果が期待できる。
【００８３】
　画像プロセッサーは、後述する圧縮法を用いて、この解消チャンクを圧縮する。画像プロセッサーは、１ブロックのピクセルを解消すると同時に、別のブロックを圧縮してもよい。画像プロセッサーは、共有メモリーにこの圧縮チャンクを蓄える(262) 。
　第６図は、画像を表示するために実行される手順を示すフロー・ダイアグラムである。上述の画像処理ボード174 上において、画像は、共有メモリー216 から読み取られ、ｇスプライト・エンジン204 によって、物理的出力装置座標に変形され、合成バッファー210 において合成され、DAC212に転送され、次に出力装置に転送される。
【００８４】
　表示工程において、画像プロセッサーは、現在のフレームに表示されるべき一連のｇスプライトにアクセスする。ｇスプライト形態を決定する工程において、画像前置プロセッサーは、ｇスプライトの深みの桁を決める（280）。前述したように、一つのｇスプライトには一つの対象物を割り当てるのが好ましい。しかしながら、画像前置プロセッサーは、例えば、装置で使用されるある特定の画像プロセッサーの処理限界を受け容れるために、一つのｇスプライトにたいして１個以上の対象物を割り当ててもよい。画像前置プロセッサーは、対象物を、Z 順に、すなわち、視点からの距離として、対象物を仕分ける。対象物を仕分けるのに加えて、さらに、ｇスプライトを深み順に仕分け、この深みデータをｇスプライト・データ構造に蓄える。
【００８５】
　第６図の決定手順(282) は、表示工程におけるｇスプライトにたいするループを表わす。このループ内の手順としては、1)変換ｇスプライト用変形を求めること、および、2)ｇスプライトの表示法を調節するｇスプライト表示リストを形成すること、がある。これらの手順については後述する。
　見える可能性のある範囲のｇスプライトに関しては、画像プロセッサーは、ｇスプライト変形を求める。ｇスプライト変形とは、変換2Dｇスプライトにおける変形を指す。一つの実施態様では、画像プロセッサーは、変換必須成分を抑えるようにｇスプライトにたいして変形を実行する。各フレームごとに各対象物を変換するのでなく、画像プロセッサーは、変換ｇスプライトを再利用することによって、変換必須成分を抑える。
【００８６】
　画像データの各フレームごとにｇスプライト変形を計算する必要はない。例えば、もしもｇスプライトが、画像データの現在フレームにたいして変換されたのであれば、そのｇスプライトを変形する必要はない。これは、例えば、そのｇスプライトを変形させて、境界ボックスをその対象物にもっとよく適合させようという要求がない限りそうである。さらに、再変換や変形を要しないｇスプライトがある。すなわち、そのｇスプライトに割り当てられた対象物（単数または複数）が変化しなかったり、動かない場合である。そのような場合、ｇスプライト変形手順は、実行してもよいし、しなくともよい。
ｇスプライトの位置が変化しない場合には、このｇスプライトに、単位行列をかけてもよい。これは、例えば、画像プロセッサーが、現在のフレームのためにｇスプライトを変換した場合、あるいは、始めに変換されて以来ｇスプライトの位置が変化しない場合にあてはまる。
【００８７】
　ｇスプライトの表示法を特定するために、画像プロセッサーは、ｇスプライト表示リストを生成する。表示リストとは、どのｇスプライトを、表示スクリーンに表示すべきかを定義する一つのリスト、または、複数のリストを指す。この表示リスト概念は、他の、一枠の画像データを表示するための出力装置にも当てはめることができる。画像プロセッサーは、表示リストを、変換ｇスプライトを物理的装置座標にマップし、その上に合成するのに用いる。表示を構築する手順は、ｇスプライトにたいするループの一部として示されているけれども、このリスト（単数または複数）は、特にこのループ内に生成される必要はない。
【００８８】
　表示リストは、一連のｇスプライト・リスト、または、帯域あたりの、一連のｇスプライト・リストを指すものであってもよい。「帯域」とは、表示スクリーンの水平走査線領域である。例えば、一つの実施態様では、帯域は、32走査線高 x 1344 ピクセル幅である。表示リストは、各帯域別々のｇスプライト・リストを含んでいてもよく、その場合、帯域リストは、それぞれの帯域に照射するｇスプライトを記述する。また別法として、ディスプレー・リストは、どの帯域にｇスプライトを照射するのかを特定できるようにｇスプライトに名札をつけて実行される、そのような単一リストからなるものであってもよい。
【００８９】
　ここに示した実施態様の表示リストは、２重バッファー方式である。２重バッファーを持つことによって、装置は、一方のデータ・リストを、他方を読んでいる間に、生成することができる。装置が一つのフレームにたいするｇスプライト変形を求め、表示リストを構築している間に、別のフレームの表示リストを読み取り、このリストの中の画像データを表示する。
　２重バッファーであるために、第６図に示した手順は重複する。すなわち、画像プロセッサーは、あるフレームにたいしては、手順(280-286) を実行する一方で、別のフレームにたいしては手順(290-298)を実行する。
【００９０】
　第７図は、上記手順のタイミングを示すブロック・ダイアグラムである。装置が、フレーム310 にたいして手順(280-286)(第６図) を完了すると、装置は、フレーム同期信号( 垂直点線) を待ち、それからバッファー交換を実行する。次に、装置が生成したばかりの表示リストを用いて、現在フレーム312 に表示すべきｇスプライトを決める。この表示リストを処理している間に312 、ｇスプライト変形が計算され、かつ、次のフレームのための表示リストが構築される314 。次のフレームにおいて、前のフレーム314 で生成されたｇスプライト変形と表示リストが用いられ、表示画像316 を生成する。
【００９１】
　画像プロセッサーは、表示リストの中のｇスプライトのリストに基づいて、ｇスプライトを出力装置座標に変換する。画像プロセッサーは、色、アルファー、および、ｇスプライトの位置を特定するデータを含むｇスプライト・データを共有メモリーから読み取る。このデータに基づいて、画像プロセッサーは、そのｇスプライトによってカバーされるピクセルの色とアルファーを決める。
　一つの実施態様においては、画像プロセッサーは、各帯域ごとにループ操作を行ない、ｇスプライト表示リストに従って、その帯域に照射するｇスプライトを変形する。以下に、この表示工程をさらに詳細に述べる。
【００９２】
　ｇスプライト・データを変形した後、画像プロセッサーは、得られたピクセル・データを合成する。この中には、ｇスプライト変形に基づいて、出力装置座標で表わしたピクセルにたいする色とアルファーを計算する作業も含まれる。画像プロセッサーは、表示リストの中のｇスプライトにたいするピクセル・データを変形し、次に、その変形ピクセル・データを合成する。この工程は、あるピクセル位置について、それをカバーするｇスプライトの１個以上のピクセル値に基づいて、その位置のカラーとアルファーを決定する作業を含む。
【００９３】
　一つの実施態様では、画像プロセッサーは、帯域にループ操作を実行し、各帯域ごとにピクセル・データを合成する。画像プロセッサーは、ピクセル・データに２重バッファー処理を行なう。すなわち、一つのバッファーにおいてある帯域のｇスプライトを変形・合成する一方で、別の帯域にたいしては、合成済みピクセル・データを表示する。
ピクセル・データを合成した後、画像プロセッサーは、合成ピクセル・データを出力装置に転送する。ピクセル・データを表示するためには、それは、表示と適合するフォーマットに変換されていなければならない。
【００９４】
　ある実施態様の装置の全体操作を記述し終えたので、次に、画像処理ボードについてさらに詳細に述べよう。
画像処理ボード
　一つの実施態様では、共有メモリー216 は、4 メガバイトのRAM を含む。これは、2 本の8 ビットRAM バス・チャンネルによって実行される。しかしながら、メモリーの量および型は変更可能である。
【００９５】
　第８図は、画像処理ボード174 におけるDSP336を示すブロック・ダイアグラムである。DSP336は、ホスト・プロセッサーからの命令ストリームを取りまとめ、若干のビデオ処理とフロント・エンド幾何学処理を実行する。DSP は、3Dグラフィックスに用いられるフロント・エンド幾何学、および、照明計算を実行する。この中には、モデルおよび視点変形や、切り取り、および、照明が含まれる。ｇスプライト運動外挿のような、ｇスプライト・アニメ処理のある部分もDSP で処理される。
【００９６】
　変換命令は、メイン・メモリー・バッファーに保存され、PCI バスを通り、PCI バス・コントローラー342 を経由して画像処理ボード174 にDMA 化される。次に、これらの命令は、ボードの共有メモリー216 に、DSP336( 第８図) に要求されるまで、蓄えられる。
DSP コア338 は、上述の画像処理計算を実行するためのプロセッサーを含む。さらにDSP コアは、スケジュール設定、および、リソース管理を実行する。
【００９７】
　メモリー・インタフェイス340 は、高速のデータ転送、例えば、80MHz において64ビットをサポートする。これは、通常のDRAMやSDRAM 装置とインターフェイスを形成するように設計されている。タイラー200 は、このバスに直接接続するように設計されており、DSP によって要求されるメモリー・タイミングをシミュレートする。
【００９８】
　DSP におけるデータ・フォーマット装置およびコンバーター346 は、タイラーにたいする変換指令をフォーマットする。このブロックは、浮動小点色成分を、整数に変換し、それらを、タイラー特異的データ構造にパックする。さらに、全命令を蓄え、これを直接共有メモリー中のメモリー・バッファーにDMA する。この変換指令は後に、作業実行の態勢が整った時に、タイラーによって読み取られる。
【００９９】
　フォーマット作業の一つとして、データ・フォーマット装置とコンバーター346 は、タイラーにたいして三角命令データをフォーマットする。DSP(336)によって浮動小点として計算されたRGB ∝（アルファー）データは、８ビットの整数に変換される。座標情報は、浮動小点から12.4固定点に変換される。このデータは、64ビット語にパックされ、一連のブロックとして、共有メモリーに転送され、それによって、最適な帯域幅が得られる。
【０１００】
　表示メモリー管理部（MMU ）334 は、デスクトップ表示メモリーのために使用される。このものは、デスクトップ表示メモリーとして割り当てられた、直線アドレス範囲内のPCI アクセスを捕捉する。次に、このアクセスを、共有メモリーに蓄えられた画像ブロックにマップする。
　本画像処理ボード（第4A図、174 ）のアーキテクチャーは、特定のDSP からは比較的独立している。しかしながら、DSP は、顕著な浮動小点性能を持っていることが好ましい。適当なDSP としては、Samsung 半導体のMSP-1 、および、Phillips半導体のTrimediaが挙げられる。これら特定のDSP は、十分な浮動小点性能を与えるDSP の二つの例である。
【０１０１】
　第9A図は、画像処理ボード174 におけるタイラー200 のブロック・ダイグラムである。タイラーは、2Dおよび3Dグラッフィクスの加速と、共有メモリー調整を実行する。画像処理ボードのブロック・ダイアグラムで示したように、タイラーは直接DSP （176 、第４図）、ｇスプライト・エンジン204 、および、共有メモリー装置216 に接続する。
【０１０２】
　上記ブロック・ダイアグラムの機能ブロックは、この節に記載される。
　タイラー378 は、基本図形変換のためにいくつかの成分を含む。命令およびメモリー・コントロール380 は、共有メモリー216 、ｇスプライト・エンジン204 、および、DSP176とインターフェイスを形成する。タイラー、DSP 、および、ｇスプライト・エンジンからの、メモリーにたいするアクセスは、このブロックによって判断される。キューが、バッファー読み取りアクセスにたいして与えられる。
【０１０３】
　セットアップ・ブロック382 は、三角表面を横切る辺縁、色、および、生地内挿を決める直線方程式を求める。この方程式はまた、この三角形を変換するにはどの生地ブロックが必要とされるかを決めるのにも用いられる。辺縁方程式はさらに走査変換ブロック394 にも送られ、走査変換エンジン398 に要求されるまで、基本図形レジスター396 に蓄えられる。
【０１０４】
　セットアップ・ブロック382 は、三つの成分を含む。頂点インプット・プロセッサー384 、頂点およびコントロール・レジスター386 、および、セットアップ・エンジンである。頂点インプット・プロセッサー384 は、DSP からの命令ストリームを寄せ集める。頂点およびコントロール・レジスター386 は、多角形、または、その他の幾何学的基本図形を処理するのに必要な情報を蓄える。この特定の実施態様では三角処理が用いられ、かつ、タイラー200 は、三角処理の２重バッファー対応を実行するために、６頂点（各三角につき三つずつ）のレジスターを含む。セットアップ・エンジン388 は、色、深み、辺縁にたいする微分と、三角表面を横切る生地座標内挿を計算する。これらの方程式はまた、この三角形を変換するにはどの生地ブロックが使ったらよいかを決めるのにも用いられる。セットアップ・エンジンはさらに生地チャンクをあらかじめフェッチし、それによって、走査変換エンジン398 に要求された場合にいつでも用立てられるようにしておく。
【０１０５】
　セットアップ・エンジン388 はさらに生地読み取りキュー390 、および、生地アドレス・ジェネレーター392 と連絡する。生地読み取りキュー390 は、共有メモリーの生地ブロック読み取り請求を保存する。われわれが、メモリーから画像データ・ブロックを取り出すために用いられるタイラーの部分を指して「生地」という用語を使用する時は、この用語は、マルチパス変換作業で用いられる生地マップ、陰影マップ、および、その他の画像データを指すこともあり得るということを了解しなければならない。生地アドレス・ジェネレーター392 は、要求されたチャンクの、メモリー内部のアドレスを決め、生地読み取り請求を、命令およびメモリー・コントロール380 に送る。この生地アドレス・ジェネレーター392 は、画像データの、生地キャッシュへの書き込みを制御するメモリー管理部を含む。
【０１０６】
　走査変換ブロック394 は、セットアップ・ブロックから微分値とその他の頂点データを受け取り、ピクセル・データを生成する。走査変換ブロック394 は、基本図形レジスター396 と、走査変換エンジン398 とを含む。基本図形レジスター396 は、各三角パラメータにたいする方程式パラメータを蓄える。基本図形レジスターは、多数組の方程式を蓄えるためのレジスターを含み、それによって、走査変換エンジンが、生地データを待ちながら立ち往生することがないようにする。
【０１０７】
　走査変換エンジン398 は、多角形を変換する。この場合、多角形は三角形である。走査変換ブロック394 は、歩行辺縁にたいする、また、色彩、深みなどを評価するための挿入器を含む。色、深みを備えたピクセル・アドレス、および、自然化処理包括情報は、ピクセル・エンジンに転送され、処理される。
　走査変換エンジン398 は、生地アドレスを生地フィルター・エンジン400 に渡す。エンジンは生地データを求める。生地フィルター・エンジン400 は、変換された多角形のピクセルの色とアルファー・データを求める。図に示した生地フィルター・エンジンは、変換された三角形のZ 勾配と方向、および、生地要求の中心に基づいてフィルター・カーネルを計算する（１点のS とT 座標が生地にマップされる）。濾過は、パイプライン方式によって、各サイクルごとに新しいピクセルが生成されるように二段階で実施される。フィルター・カーネルは、異方性フィルターであってもよいし、等方性フィルターであってもよい。異方性が要求されないばあいは、フィルター・カーネルは、３直線内挿法の場合よりももっとずっと鮮鋭な生地を与える陰性片葉を用いてもよい。生地フィルター・エンジン400 はさらに、陰影にたいする効果を計算するために、Z 比較作業を扱う。
【０１０８】
　生地キャッシュ402 は、脱圧画像データのブロックを蓄える。一つの実行例では、生地キャッシュ402 は、16個の、8 x 8 ピクセル・ブロックの生地データを蓄える。このデータは、16個の生地要素が、クロック・サイクルごとにアクセスされるようにまとめられる。
【０１０９】
　脱圧エンジン404 は、生地データを脱圧し、これを、生地キャッシュ402 に転送する。本実施態様においては、脱圧エンジンは、二つの脱圧器を含む。一つは、生地のような連続階調映像にたいして、不連続なコサイン変換（DCT ）準拠アルゴリスムを実行するもので、もう一つは、デスクトップ・ピクセル・データ用に脱落のないアルゴリスムを実行する。DCT 準拠アルゴリスムは、二つの、平行な脱圧ブロックによって実行され、しかも、このブロックは各々クロック・サイクルごとに８ピクセル要素（すなわち２ピクセル）を生成できる。
【０１１０】
　圧縮キャッシュ416 は、脱圧エンジン404 が圧縮データを脱圧し、生地キャッシュ402 に転送するまでは、その圧縮データを蓄えるのに使用される。
　走査変換エンジン398 は、ピクセル・データをピクセル・エンジン406 に転送する。ピクセル・エンジン406 は、混合、および、深み保存を含むピクセル・レベルの計算を実行する。ピクセル・エンジンはさらに陰影に必要なZ 比較作業を扱う。最適性能を発揮するためには、ピクセル・エンジンは、各クロック・サイクルごとに１ピクセルずつ作業することが好ましい。
【０１１１】
　ピクセル・エンジン406 は、ラスター化バッファーへのピクセル・データの転送を制御する。ここに示した実施態様では、ラスター化バッファーは、ピクセル・バッファー408 と断片バッファー410 を含む。ピクセル・バッファー408 は、2 重バッファー処理をサポートするために２個のバッファーを含む。このピクセル・バッファーを実地に用いた場合、各ピクセル入力部は、色成分（RGB ）当たり８ビット、アルファー成分用に８ビット、Z バッファー用に24ビット、ステンシル・バッファー用に８ビット、断片バッファー用に９ビット・ポインターを蓄える。これは、ピクセル当たり合計７３ビットになる。一方のピクセル・バッファーがピクセル・エンジン406 で使用されている時、他方は、自然化処理エンジン412 によって使用される。
【０１１２】
　断片バッファー410 は、ピクセル断片と呼ばれる、部分的にカバーされるピクセルの断片を蓄える。このような断片は、多角形の辺縁があるピクセルを横切る場合、または、多角形が透過性を持つピクセルのあるためである。断片バッファーは、第9A図に示した実行例では単一バッファー処理で実行される。断片のフリー・リストの保持は次のように行なわれる。すなわち、断片が解消されるにつれて、それらはフリー・リストに加えられ、断片が生成されるにつれて、その断片は、フリー・リストの記入例を利用する。また、別法として、断片バッファーは2 重バッファー処理方式であってもよい。それによって、一方の断片バッファーが自然化処理エンジンによって解消されている間に、他方が、平行的にピクセル・エンジンによって満たされることが可能になる。
【０１１３】
　一つの実施態様では、断片記録は、ピクセル・バッファー書き込み、プラス、4 x 4 マスクと同じデータを含む。９ビット・ポインターは、結合書き込みリストを形成するために用いられ、残された値は、リストの終末を示すために使われる。この実施態様では、断片バッファー410 は、合計512 個の書き込みを含むが、この大きさは変動してもよい。
【０１１４】
　自然化処理エンジン412 は、１個以上の多角形によって悪影響を被るピクセルにおける色とアルファー成分を求める。このようなことは、複数の多角形が、そのピクセル領域をほんの部分的にしかカバーしない時（すなわち、多角形辺縁がそのピクセルを横切る時）、または、多角形が透過性を持つときに起こる。自然化処理エンジン412 は、解消されたピクセル・データを圧縮エンジン414 に転送する。この実施態様では、圧縮エンジン414 は、二つの圧縮器を含む。すなわち、一つは、連続階調画像用のDCT 準拠のものであり、他方は、デスクトップ・ピクセル・データ用の脱落のないタイプのものである。DCT 準拠アルゴリスムは、クロック・サイクル当たり８ピクセル要素を圧縮できる圧縮器によって実行される。圧縮エンジン414 は、得られた変換ｇスプライトを圧縮し、この圧縮データをコマンド・メモリーおよびコントロール380 に転送し、これは、共有メモリー216に保存される（第４図）。タイラーも、圧縮データをキャッシュに換える圧縮キャッシュ416 を持つ。
【０１１５】
　第10および11図は、ピクセル生成過程において、メモリーから画像データにアクセスするに当たって、二つの別様の実施態様を示したものである。ピクセル生成中にメモリーから画像データにアクセスしなければならない場合がいくつかある。そのような例としては、例えば、生地マッピング作業中に生地マップにアクセスすること、影つけ作業中に影マップにアクセスすること、および、マルチパス混合作業中に、色、および・または、アルファー・データにアクセスすることが挙げられる。簡単のために、われわれは、メモリー中の画像データを「生地」または、「生地データ」と呼ぶ。しかしながら、ここに述べる方法ならびに装置は、他の型で、そこにおいてピクセル生成中に、メモリーから画像データにアクセスするものにも応用できることを了解しなければならない。
【０１１６】
　第10および11図に示した実行例は、タイラーにたいし生地キャッシュを効率よくロードし、利用するための別法を紹介するものである。この方法の大きな利点は、生地データが、装置の性能を損なうことなく、メモリー中に大きい潜時をもって、しかも、圧縮フォーマットの形でも保存されるということである。
【０１１７】
　メモリーからの生地データは、「ブロック」と呼ばれる単位ごとにアクセスされ、キャッシュに変えられる。このブロックは、通常、効率的なフェッチや、キャッシュ化に適当な小さな方形領域である。通常のブロックの大きさは、8 x 8サンプルである。例えば、生地マップの場合では、通常のブロックは、8 x 8 テクセルである。
【０１１８】
　第10図は、一つの実施態様において、このような生地データのブロックにアクセスする様を示す機能的ブロック・ダイアグラムである。この実施態様は、生地データ請求を含むラスター化装置417 からのピクセル・データを、生地参照データ・キュー418 に蓄えることによって潜時問題を解決している。このキューは、潜時を吸収するに十分な入力部を含んでいるために（もしそれがなければ生地ブロックにアクセスする際に、また、恐らく脱圧する際に潜時が生じるであろう）、変換工程はフル・スピードで進行することができる。例えば、一つの生地ブロックをフェッチするのに100 サイクルを要し、タイラーが、クロック・サイクル当たり１ピクセルを生成できるとするならば、生地参照データ・キューは少なくとも100 個の入力部を含むことになる。
【０１１９】
　第10図に示した装置においてデータの流れは、下記のように進行する。先ず、幾何学的基本図形が、ブロック416 に示すようにラスター化のためにセットアップされる。セットアップ処理としては、例えば、三角形のような幾何学的基本図形にたいして頂点を読み取ること、および、その三角形表面を横切って色、深みと辺縁の微分を求めること、が挙げられる。この計算によって得られるパラメータを次にラスター化装置417 に入力する。
【０１２０】
　ラスター化装置417 は、各基本図形にたいして方程式パラメータ・データを読み取り、ピクセル・データを生成する。ラスター化装置は、生地座標とフィルター・データを含むピクセル・データを生成し、このデータを、生地参照データ・キュー418 に蓄える。生地フェッチ・ブロック420 は、キュー418 に蓄えられる生地参照データを読み取り、かつ、メモリー419 から適当な生地ブロックをフェッチする。
【０１２１】
　本実行例の生地参照データ・キュー418 に蓄えられるピクセル・データは下記を含む。すなわち、計算された、ピクセルの行き先アドレス（X 、 Y ）、深みデータ（Z ）、被覆マスク、色と透過性データ、生地請求の中心座標（S 、 T ）、および、生地フィルター・データである。深み、被覆データは、ピクセルの高度な自然化処理を望む場合にのみ、生地参照データ・キュウーにおいて要求される。もし被遮蔽表面除去処理や自然化処理をラスター化装置内で実行するならば、深みデータや、被覆データは、データ・キュー418 内に保存する必要はない。生地フィルター・データは、例えば、MIP マッピング用の一定レベルのディテール・パラメータを含んでいてもよいし、あるいは、さらに高度な生地濾過のための異方性フィルター・データを含んでいてもよい。
【０１２２】
　生地ブロック・フェッチ420 は、データ・キューに蓄えられる生地参照データを読み取り、メモリー419 から対応する生地データを取り出す。生地マップ・アクセスの場合、生地ブロック・フェッチ部は、生地請求の（S 、 T ）中心と生地フィルター・データを、生地濾過作業を満足に実行するのに必要なブロックのアドレスに変換する。画像データ・ブロックは、もっとも最近使用したキャッシュ(LRU) 、または、その他の適当なキャッシュ交換アルゴリスムを用いてフェッチすることができる。メモリー・アクセスの回数を抑えるために、生地ブロック・フェッチ部は、生地キャッシュ421 にすでに蓄えられている生地ブロックを追跡しており、同じブロックを１回よりも多く請求するのを避ける。この能力によって、高品質の生地濾過を実行するのに必要な帯域幅を大幅に下げることができる。なぜなら、生地ブロックを取り出す際の潜時が、画像を計算する時の1回だけしか起こらないからである。
【０１２３】
　生地ブロック・フェッチ部は、タイラーの生地フィルター部でまだ必要とされている生地ブロックの書き込みすぎを防止するために、抑制機構を備える。このような抑制機構を実行する一つのやり方は、各生地ブロックと参照カウントを関連させ、生地フィルターが、特定の生地ブロックを用いたかどうかを追随しておくことである。この参照カウントは、ブロックにたいする生地請求を、生地フェッチ部が受け取る度ごとに増加し、そのブロックが生地フィルター部によって使用される度ごとに減少する。従って、生地ブロック・フェッチ部は、相当する参照カウントがゼロのブロック同士を交換すればよい。
【０１２４】
　抑制機構を実行するまた別の方法として、生地フェッチ部からの生地ブロック出力のために、一次的保存用のバッファーを割り当てることがある。この方法では、画像ブロックは、最初に、一次保存バッファーに書き込まれる。生地フェッチ部が、この一次保存バッファーへの画像ブロックの書き込みを完了した後で、この画像ブロックは生地キャッシュに転送される。画像ブロックは、生地フィルター部422 に始めに要求された時に、生地キャッシュと交換される。
【０１２５】
　生地マッピング作業の場合、生地フィルター・ブロック422 は、生地キャッシュ421 から生地サンプルと、さらに、生地参照データ・キュー418 に蓄えられているピクセル・データを読み取り、その生地サンプル・データからピクセル色彩値および恐らくアルファー値を計算する。
　生地マッピング作業の他にも、この方法は、影つけや、マルチパス混合作業にも同様に適用できる。例えば、生地参照データ・キューを用いて、メモリーの中にある影深みマップを取り出すことができる。また別法として、生地参照データ・キューは、マルチパス照明や、影つけ作業で使用された色、および・または、アルファー・データの回収に利用できる。生地マッピング、影つけ、および、マルチパス作業についてはさらに詳細に以下に述べる。
【０１２６】
　前記の方法でピクセル・データを保存するといくつかの利点が得られる。一つの大きな利点は、画像データを、あまり特別でない（比較的大きなアクセス時間のものでもよい）メモリーに保存することができることである。これは、全体コストを下げる。さらに、生地を含む画像データを、圧縮フォーマットの形で保存でき、従って、生地濾過のような高度なピクセル作業を実行できるほどに高速でアクセスすることができることである。このため、本装置は、生地データにアクセスするに当たって、既知の方法に比べて、低コストでより向上した性能を発揮することができる。
【０１２７】
　この方法のもう一つの利点は、生地参照データ・キューが、メモリーからどの画像ブロックにアクセスしなければならないかを正確に予測することができること、である。そのため、本装置は、メモリー・アクセスのために必要以上の潜時を生じさせない。一旦画像データ・ブロックが生地キャッシュの中に入ったならば、生地フィルター部は、請求画像ブロックを生地キャッシュに書き込むのに十分なメモリー帯域幅と生地フェッチ出力がある限り、ラスター化装置一杯の高速で走る。
【０１２８】
　生地参照を、生地請求中心でキュー化すること、および、そのデータを濾過すること、これらによって、キューは、同じ生地フィルター重量のままでテキセルをキュー化した場合よりも、はるかに小さくて済む。
【０１２９】
　第11図は、もう一つの実施例において、メモリーから画像データにアクセスする手順を示す機能的ブロック・ダイアグラムである。この方法では、幾何学的基本図形は、キュー化され、前ラスター化装置において、ピクセル生成工程で生じた生地ブロック・フェッチの潜時をマスクするように処理される。一例を挙げて説明すると、この概念が具体的に明らかになるであろう。 もし平均的な基本図形が、ラスター化するのに25サイクルを要し、かつ、メモリーから生地ブロックをフェッチするのに100 クロック・サイクルを要するとするならば、この基本図形キューは、少なくとも４基本図形長となる。後ラスター化装置の単純型としての前ラスター化装置は、メモリーからアクセスするのに必要な画像データ・ブロックを決める回路を含む。一旦生地データがフェッチされたならば、後ラスター化装置は、メモリーからブロックをフェッチする際に生ずる潜時をも生ずることなく、生地データを用いてピクセル・データを生成することができる。
【０１３０】
　この実行例全体を通ずるデータの流れは下記のようになる。前記の実行例同様、幾何学的基本図形は、セットアップ・ブロック425 で処理され、ラスター化される。しかしながら、この特定の実行例では、セットアップ・ブロック425 は、前例よりももっとたくさんの基本図形を蓄えることのできる大きな基本図形キューを含む。前ラスター化装置426 は速やかにこれら基本図形を、一連の生地ブロック・リストに変換し、それによって、基本図形のカバーするすべてのピクセルにたいして、生地濾過要求を、それらブロックが、後ラスター化装置が要求するであろう順番通りに満たしていく。前ラスター化装置は、後ラスター化装置427 の、または、さきの別の実行例のラスター化装置417 の、単純型である。この方法では、前ラスター化装置は、生地データ・アドレスを計算し、かつ、生地請求を決めるだけでよい。
【０１３１】
　前ラスター化装置も生地ブロック・キャッシュのモデルを保持し、キャッシュ交換アルゴリスム、例えば、もっとも最近使用したキャッシュ(LRU) 方式を実行し、生地ブロック・キャッシュの大きさを越えないようにする。キャッシュ交換アルゴリスムの一部として、前ラスター化装置は、生地ブロック・フェッチ部への単一の生地ブロックにたいする繰り返し請求をただ一つの請求に圧縮する。
【０１３２】
　生地ブロック・フェッチ・キュー428 は、生地ブロック請求を蓄える入力部を備える。生地ブロック・フェッチ部429 は、生地ブロック・フェッチ・キューからの生地請求を読み取り、メモリー430 から適当なブロックを取り出す。
【０１３３】
　後ラスター化装置は、セットアップ・ブロック425 でキュー化された基本図形をラスター化し、あるピクセル位置にたいするピクセル・データを生成する。もしも画像データを、ピクセル生成工程中に、メモリーからアクセスする必要があるならば、後ラスター化装置は、必要な生地ブロックが生地ブロック・キャッシュ431 に転送されるほどの速さで、この基本図形をラスター化する。後ラスター化装置が、セットアップ・ブロックでキュー化された基本図形をラスター化し終えると、基本図形は除去され、インプット・データ・ストリームからの別の基本図形と交換される。このセットアップ・ブロックは、キューが常に基本図形で満たされるように保ち、それによって、前ラスター化装置も、後ラスター化装置も、ピクセル生成工程において立ち往生することないようにする。
【０１３４】
　前述の別様実施態様の場合と同様に、生地ブロック・フェッチは、後ラスター化装置によってまだ必要とされている生地ブロックの超過取扱いを予防するための抑制機構を含むことが好ましい。前述の2 個の抑制機構は、この実施態様でも使用できる。特に、参照カウントは、画像ブロックが何時請求され、そして、使用されるかを追随するのに用いることができる。その場合、参照カウントは、ブロックにたいする生地請求を、前ラスター化装置が受け取る度ごとに増加し、後ラスター化装置が使用する度ごとに減少する。従って、生地ブロック・フェッチ部は、生地キャッシュのブロック同士を、その参照カウントが０の場合にのみ交換すればよい。
【０１３５】
　また、別法として、バッファーを、生地フェッチ・ブロックによる生地ブロック出力の一次的保存のために割り当ててもよい。生地フェッチ・ブロックが、この一次バッファーへのブロックの書き込みを完了すると、この画像ブロックは、後ラスター化装置427 に請求されると、生地ブロック・キャッシュ431 に転送される。後ラスター化装置427 が始めに一次バッファー中の生地ブロックを請求すると、ブロックは、生地ブロック・キャッシュ431 に転送される。
【０１３６】
　この方法にはいくつか利点がある。先ず、生地データを、あまり特殊化されていないメモリーに保存しても、高度な生地濾過をサポートするのに十分な速度でアクセスすることができる。それに関連する重要な利点として、生地データは、圧縮フォーマットで保存することができ、かつ、ピクセル生成工程で使用の際に脱圧されるということである。
【０１３７】
　この方法のもう一つの利点は、メモリーにたいする要求が予測できるために、メモリー・アクセスによる潜時を、場面を変換する各生地ブロックごとにただ一度だけしか生じさせないで済むということである。一旦、最初の生地ブロックが生地キャッシュの中に納められたならば、後ラスター化装置は、メモリー帯域幅があり、キャッシュの流れを保持するための生地フェッチ出力がある限り、最高速度で走ることができる。
【０１３８】
　第9B図は、第10図に示した装置の実装をさらに詳細に図示したものである。第9B図のセットアップ・ブロック381 は、第10図のセットアップ・ブロック416 に相当する。第9A図のセットアップ・ブロック382 と違って、この別種実行例のセットアップ・ブロック381 は、生地読み取り請求を生成しない。代わりに、走査変換ブロック395 が、生地参照データを含むピクセル・データを生成する。このデータは、生地参照データ・キュー399 に貯えられる。
【０１３９】
　第9B図の走査変換ブロック395 は、第10図のラスター化装置のある特異な実行例である。このものは、Z 値、カバー・マスク、色・透過性データ、および、生地座標で表わした生地請求中心を計算する。いくつかの生地マッピング作業では、このブロックは、さらにレベル・ディテール・データや、異方性フィルター・データも計算する。生地フィルター・エンジン401 は、生地請求と、恐らく生地参照データ・キュー399 に保存されている生地フィルター・データを読み取り、生地キャッシュの中の適当な生地サンプルにアクセスする。この生地データから、生地フィルター・エンジンは、生地がどの程度、ピクセル色・アルファー値に関与するかを計算する。生地フィルター・エンジンは、生地参照データ・キュー399 の中の色とアルファーを、生地の関与度と結合し、ピクセル値を生成し、これをピクセル・エンジン406 に送る。
　生地キャッシュ・コントロール391 、生地読み取りキュー393 、および、メモリー・コントロール380 は、第10図の生地ブロック・フェッチ420 の特異な実行例である。さらに、圧縮生地ブロックにたいしては、圧縮キャッシュ416 と脱圧エンジン404 が、生地ブロック・フェッチ420 の一部となる。
　第9C図は、第11図に示した装置のさらに詳細な実装を示す。この実行例では、第11図のブロック425 と426 に関連して記載された機能は、セットアップ・ブロック383 内部に実装される。特に、セットアップ・ブロック383 は、前ラスター化装置426 を含む。セットアップ・ブロック383 はさらに、付加的基本図形を含む付加頂点コントロール・レジスター381 をも含む。そのために、前ラスター化装置は、基本図形を速やかに変換し、生地データ請求を発することができる。セットアップ・エンジンと前ラスター化装置383 は、生地ブロックにたいする請求を、第9C図に示した生地キャッシュ・コントロール391 に送る。
【０１４０】
　生地キャッシュ・コントロール391 は、請求された生地ブロックが、必要な時には、生地キャッシュ402 に入っていることを確かめる。生地読み取りキュー・バッファーは、生地データ・ブロックにたいする請求を読み取り、共有メモリー装置に送る。コマンドおよびメモリー・コントロール380 は、共有メモリーへのアクセスを判定するが、さらに、メモリーからのデータを蓄えるためのバッファーをも含む。生地キャッシュ・コントロール391 、生地読み取りキュー393 、および、コマンドおよびメモリー・コントロール390 は、第11図の生地ブロック・フェッチ429 の特異な実行例である。圧縮生地ブロックにたいしては、圧縮キャッシュ416 と脱圧エンジン404 が、生地ブロック・フェッチ429 の一部となる。生地キャッシュ・コントロール391 は、脱圧エンジン404 を介して、圧縮キャッシュ416 から生地キャッシュ402 へと向かう生地ブロックの流れを管理する。
【０１４１】
　走査変換ブロック397 と、生地フィルター・エンジン403 は、第11図の後ラスター化装置の特異な実行例である。走査変換ブロック397 と生地フィルター・エンジン403 は、前述の、第9A図に示した同類と同じように動作する。
【０１４２】
テクスチャキャッシュ制御
　待ち時間を短縮した環境においてラスター化を行い、テクスチャ取り込み操作をおこなう２つの方法を上記に説明した。次にテクスチャキャッシュ制御の特徴を詳細に説明する。
【０１４３】
　テクスチャキャッシュ制御方式では、ラスタライザはテクスチャマップ取り込み制御の待ち時間が短いにも関わらずテクスチャマッピング中に最高速度で機能することができる。タイラーにおいて、この待ち時間は、共有メモリ( 例えばRAMBUS) からの未圧縮データを読み込むのに要する時間と、テクスチャマップのブロックを復元するのに要する時間を加算したものである。共有メモリからｇスプライトブロックを取り込み、可能であればこれを復元し、さらにｇスプライト空間のピクセルデータを表示空間( 具体的には画面座標) に変換するｇスプライトエンジンに応用される。
【０１４４】
　テクスチャキャッシュ制御方式は、時間内にオフセットされるテクセル( またはｇスプライトピクセル) 要求の同一のストリームを２つ作成することを基本的に前提としている。最初の( 早いほうの) ストリームは何れのテクスチャデータも戻されることのない事前取り込み要求で、また第２の( 遅いほう) ストリームはテクセルデータを戻すための実際の要求である。この２つのストリームの時間差を利用することにより、テクスチャデータの読み込みや復元の際の待ち時間が表面に表れなくなる。
【０１４５】
　上記の時間分割要求を発生させる２つの方法は、( １) ともに単一のプリミティブFIFO( 図１１及び９Ｃ) からデータを読み出す一対のラスタライザと、（２）ピクセルFIFO( 図１０及び９Ｂ) がその後に続く単一のラスタライザである。
【０１４６】
　（１） の方法では、第１のラスタライザはプリミティブFIFOの入力側またはその近辺の位置からプリミティブを読みとってプリミティブのラスター化を行うので、テクスチャ要求を作成することができるが、テクセルを受信したりピクセルを作成することはない。第２のラスタライザはFIFO出力からプリミティブを取り除いて後で同一の要求を作成し、テクスチャキャッシュコントローラからテクセルを受信し、ピクセルを作成する。各プリミティブ当たりのピクセル数と組合わさったプリミティブキューの長さにより、２つの要求ストリームの潜在的時間差が決まる。
【０１４７】
　（２） の方法では、単一のラスタライザがプリミティブの処理を行ってテクスチャ要求を作成し、部分的に完全なピクセルデータをピクセルFIFOに出力する。この一部のピクセルデータには、一旦テクスチャ要求が受諾された後でピクセルの計算を完了させるのに必要なデータすべてが含まれる。ピクセルFIFOの出力側には、部分ピクセルが全てあり、これを元に同一のテクスチャ要求のストリームが作成され、テクセルを受信し、完全ピクセルを作成する。ピクセルキューの長さにより、２つの要求ストリームの潜在的時間差が決まる。
【０１４８】
テクスチャキャッシュ制御
　テクスチャキャッシュ制御には、仮想キャッシュと物理的キャッシュの２つの概念キャッシュがある。仮想キャッシュは最初の( 事前取り込み) 要求ストリームに関連しており、キャッシュエントリに直接伴うデータは有していない( このキャッシュへの要求によりデータが戻ることはない) 。物理的キャッシュは第２の( 実際の) 要求ストリームに関連しており、各キャッシュエントリに伴う実際のテクスチャデータを有している( 従ってデータは要求元に戻る) 。これらのキャッシュのエントリ数は同一である。
【０１４９】
　仮想キャッシュは物理的キャッシュの後の内容の制御と追跡を行う。従って、その要求ストリームの何れの位置でも、物理的キャッシュが( 後に) その要求ストリームの中の同じ相対位置で有するのと同じ一対のキャッシュキーとエントリを有している。
【０１５０】
　要求を受けると( 新規の「キー」) 、仮想キャッシュがその現在のキーの集合に対して比較を行う。要求されたキーが仮想キャッシュになければ、キャッシュ置換操作が行われる。仮想キャッシュ置換操作では、１)(LRU またはその他のアルゴリズムによって) 置換するエントリを選択し、２) そのエントリに対するキーを置換し、３)(メモリと) 復元システムを起動してそのキーに関連するデータの取り込みと復元を行う。図９Ｂ及び９Ｃに示す特定の方法では、復元サブシステムはコマンド及びメモリコントロール３8 ０、圧縮キャッシュ４１６、復元エンジン４０４から構成される。
【０１５１】
　復元サブシステムの出力は、後に物理的キャッシュのエントリ( 例えばテクスチャキャッシュ４０２) の内容となるテクスチャデータのブロックである。図９Ｂ及びＣに示すタイラーにおいて、復元サブシステムが行う処理は順序が保たれているマルチエントリパイプラインで実行される。
　ちなみに要求されたキーがすでに仮想キャッシュに存在していた場合、関連データは第２の要求ストリームから要求があった時には物理的キャッシュに存在しているので何も実行されない。
【０１５２】
　物理的キャッシュに要求があると、同様のキーの比較を行って要求されたデータがすでにキャッシュに存在しているか確認する。同一のキーが見つかると、関連データが戻される。同一のキーがない場合は、復元サブシステムが出力する次のデータが確実に所望のデータとなる。なお、この新規データに置換される物理的キャッシュは、仮想キャッシュコントローラで計算されたキャッシュエントリの「目標」インデックスに基づき仮想キャッシュから命令を受け、要求されたデータと共に復元サブシステムを通過する。
【０１５３】
　この方式を適切に機能させるには、復元サブシステムと物理的キャッシュとの間のインタフェースに対してフロー制御を行う必要がある。復元されたデータをすぐに物理的キャッシュの中の目的のエントリーに上書きすることが可能な場合、そのキャッシュエントリの以前の内容に関連するもの全てが完全にそろっていないことが考えられる。( ちなみに、物理的キャッシュコントローラも復元サブシステムがデータを出力するまで待機しなければならない。) 
【０１５４】
　前のエントリの内容を上書きする前に新しいエントリが要求されるまで待機することによって、このフロー制御は行われる。テクスチャキャッシュへの新規データ書き込みは、それが必要となる最後の瞬間まで常に延期される。
　この置換は必要となるときまで延期されるので、物理的キャッシュへのデータ書き込みに要する時間により、待ち時間は第２の要求ストリームを制御する処理に加算される。この待ち時間を減小させる２つの方法は次の通りである。
　最初の方法では、物理的キャッシュのバッファデータを２倍にする。これにより、復元サブシステムはその倍増バッファ側に各エントリのデータを即座に書き込み、また物理的キャッシュコントローラはバッファスワップ( おそらく高速)を行ってデータをそのキャッシュ側にマップさせることが可能になる。書き込まれるエントリに空きがなく、まだスワップされていない場合は、復元サブシステムは待機するのみである。ちなみに、仮想キャッシュコントローラが使用するキャッシュ置換アルゴリズムは同じエントリに繰り返し書き込みを行う傾向があるので、キャッシュエントリへの書き込みを「広げる」必要がある。
【０１５５】
　第２の方法では、複数の「書き込み済み」エントリの他に１つまたは複数の「追加」エントリを物理的キャッシュに設ける。書き込み済みエントリの数は、存在するキャッシュキーの数と同じであり、仮想キャッシュのエントリ数と一致する。追加エントリの数は、アンマップされた( すなわち現在データの書き込まれていない) エントリの数を表している。このようなエントリの総数は、物理的キャッシュのデータエントリの総数となる。　第２の方法では、キャッシュエントリは全て( キーに関連して) 何度もアンマップまたはマップされる。アンマップされたエントリの集合は、復元サブシステムがデータの完全ブロックを書き込むエントリのFIFOを形成している。分離FIFO構造は、このようなアンマップされたエントリに関連する目標インデックスのために維持される。物理的キャッシュへの要求があったが一致するキーがない場合は、アンマップされたエントリのキューの最初のエントリが目標となるインデックスにマップされてそのキーに対応させられる。置換されたエントリはアンマップされ、アンマップ状態のキューの最後に配置される( 空) 。
【０１５６】
キャッシュキー生成
　この方式は同一の要求ストリームが２つ生成されることを基本的に前提としている。しかしながら、このような要求に対応する特定のキーは同一である必要はない。
　最初の( 早いほうの) 要求ストリームを形成するキャッシュキーは、テクスチャデータの読み出しとその後の復元を制御するのに使用される。このようなキーは、要求されたデータ( メモリアドレス等) に直接関連していなければならない。
【０１５７】
　第二の( 遅いほうの) 要求ストリームを形成するキャッシュキーは、最初のストリームの内容と正確に一致する必要はない。両者の間に他と異なる１対１のマッピング関係が成立していることのみ必要となる。これは第２のストリームのキーが既存のキャッシュエントリのマッチングのためだけに使用され、データ取り込み操作には使用されないためである。ここにおいては、新しいデータが物理的キャッシュにマップされたときに物理的キャッシュのキーとキャッシュエントリの間の関係が成立し、また対応するエントリのインデックスが仮想キャッシュによって計算されて復元サブシステムを通過するということが重要である。
【０１５８】
　このことは、ストリームのキーが他と異なっていさえすれば「正確」である必要はないため、第２の要求ストリームキーを生成する処理の制御を簡素化するのに利用できる。
【０１５９】
　図１２Ａは画像処理ボード１７４上のｇスプライトエンジン４３６を示すブロック図である。ｇスプライトエンジン４３６は収集したｇスプライトから出力されるグラフィックスを生成する。ｇスプライトエンジン４３６はタイラーメモリインタフェースユニットとのインタフェースを確立して、共有メモリの中のｇスプライトデータ構造にアクセスする。ｇスプライトはｇスプライトエンジンによって変換され( 回転、縮小拡大など) 、合成バッファに送られて他のｇスプライトから成るピクセルと合成される。
【０１６０】
　インタフェースコントロール４３８ は、タイラーを介してｇスプライトエンジンと共有メモリとの間にインタフェースを確立するのに使用される。このブロックはFIFOを有しており、メモリからのアクセスがｇスプライトエンジンで分散される前にバッファする。
【０１６１】
　ディスプレイコントロール４４０はプロセッサは映像表示の更新制御に使用される。これは、映像表示のリフレッシュを制御し、またｇスプライトアクセスを制御するのに必要なタイミング信号を生成する映像タイミングジェネレータを有している。また、このブロックはｇスプライト表示データ構造をトラバースして、所定の３２走査線帯に対して読み出す必要のあるｇスプライトを決定する。
【０１６２】
　ｇスプライトヘッダ４４２レジスタは、画像プロセッサアドレスジェネレータ４５４とｇスプライトフィルタエンジン４５６が使用するＧスプライトヘッダーを保存して、各ｇスプライトでの変換を決定する。またｇスプライトヘッダデコーダ４４４もこのレジスタを使用して、各帯域でｇスプライトを与えるに必要なブロック（この場合、８ｘ８圧縮ブロック）を決定する。
【０１６３】
　ｇスプライトヘッダデコーダ４４４は、各ｇスプライトからのブロックが３２走査線帯で可視状態になるブロックを決定し、ｇスプライト読み出しキュー４４６に転送されるブロック読み出し要求を発生させる。このぶろっくも、ｇスプライトエッジ等式パラメータを使用してｇスプライトを現在の帯域にクリツップする。この処理を以下に詳しく説明する。
【０１６４】
　ｇスプライト読み出しキュー４４６はｇスプライトブロックの読み出し要求をバッファする。本実施例では、このキューは１６個のブロックの要求を記憶している。
　ｇスプライトデータアドレスジェネレータは要求されたｇスプライトブロックのメモリのアドレスを決定し、ｇスプライト読み出し要求をインタフェース制御ブロックに送信する。ｇスプライトデータアドレスジェネレータ４４８はメモリ管理ユニットを有している。
【０１６５】
　共有メモリ２１６（図４Ａ）から検索した圧縮データは、圧縮キャッシュ４５８に一時的に保存できる。
　復元エンジン４５０には２つのデコンプレッサを備えており、一方は３次元のｇスプライトや画像等の連続したトーンの画像に対してＤＣＴに基づいたアルゴリズムを実行し、他方はデスクトップピクセルデータに対してロスのないアルゴリズムを実行する。ＤＣＴに基いたアルゴリズムは２つの平行圧縮ブロックが実行し、両ブロックとも各クロック周期ごとに８個のピクセル要素（すなわち２ピクセル）を生成することができる。
【０１６６】
　ｇスプライトキャッシュ４５２は、８ｘ８の１６ブロックに対して復元されたｇスプライトデータ（ＲＧＢ∝）を保存する。データは１６個のｇスプライトピクセルが各クロック周期ごとにアクセスされるよう構成される。
　画像プロセッサアドレスジェネレータ４５４は、特定の疑似変換に基づいて各ｇスプライトをスキャンし、また各ピクセルのフィルタパラメータを計算するのに使用される。ｇスプライトキャッシュアドレスはｇスプライトキャッシュ４５２のｇスプライトデータにアクセスし、それをｇスプライトフィルタエンジン４５６に送るために生成される。画像プロセッサアドレスジェネレータ４５４も合成バッファを制御する。
【０１６７】
　ｇスプライトフィルタエンジン４５６は、フィルタパラメータに基づいてピクセル位置のピクセルのカラーとアルファを計算する。このデータは合成バッファに転送されて合成される。このブロック４５６は、ピクセル位置でのｇスプライト s-t座標に基づいて４または１６ピクセルフィルタ核を計算する。例えば、フィルタは双線形またはさらに優れた余弦の和の関数でよい。１６ピクセルフィルタ核は、双線形補間法よりも細かなフィルタリングが可能な負ローブを有することができる。ｇスプライトフィルタエンジン４５６はクロック周期ごとに合成される４つの新しいピクセルを生成する。これらのピクセルは２ｘ２パターンで配列される。
【０１６８】
　ｇスプライトエンジン４３６はタイラー２００と合成バッファ２１０とのインタフェースを確立する。制御信号は映像タイミングとDAC ２１２へのデータ転送を制御する。
　図１２Ｂはｇスプライトエンジン４３７の他の構成を示すブロック図である。これには、プリラスタライザ４４９とラスタライザ４５４の両者が含まれているので、ｇスプライトエンジンはｇスプライトピクセルデータブロックの検索や復元で待ち時間を生じさせることなくｇスプライト空間からのピクセルデータを画面空間に変換することができる。この構成で２つのラスタライザを用いる方法は図１１及び９Ｃを参照して上記に説明したとおりである。
【０１６９】
　ｇスプライトエンジン４３７におけるブロックの操作は、２つのラスタライザを使用してテクスチャデータのブロックを取り込む方法を採用している点以外は、図１２Ａで説明したものとほぼ同じである。この構成( 図１２Ｂ) では、ｇスプライトヘッダデコーダ４４４がｇスプライトヘッダレジスタ４４２を読み出し、ｇスプライトを現在の表示帯にクリップし、さらにｇスプライトキュー４４７にｇスプライトを移してラスター化を行う。データアドレスジェネレータまたは「プリラスタライザ」４４９はｇスプライトヘッダの所定の疑似変換に基づいて各ｇスプライトをスキャンし、ｇスプライトキャッシュコントロール４５１に対して読み出し要求を発する。テクスチャキャッシュコントロールに関連して上記に説明した方法を用いれば、ｇスプライトキャッシュコントロール４５１によって必要なｇスプライトデータブロックはｇスプライトエンジン４３７に、また特に画像プロセッサブロックが必要とするときはｇスプライトキャッシュ４５２に確実に存在するようになる。このコントロールは復元エンジン４５０を介しての圧縮キャッシュ４５8 からｇスプライトキャッシュ４５２へのｇスプライトデータブロックの流れを管理する。読み出しキュー４５３は共有メモリシステムへのｇスプライトデータブロックの要求をバッファする。またインタフェースコントロール４３8 は読み出しキュー４５３の要求を読み出し、共有メモリへのアクセスを制御し、ｇスプライトデータブロックを圧縮キャッシュに入れる。
【０１７０】
　ｇスプライトエンジンの復元サブシステムは圧縮キャッシュ４５8 と復元エンジン４５０を有している。キャッシュコントロール４５１は、テクスチャキャッシュコントロールに関連して上記に説明したこの復元サブシステムを介してｇスプライトブロックの流れを制御する。
【０１７１】
　画像プロセッサアドレスジェネレータ( ラスタライザ) ４５４はｇスプライトヘッダの所定の疑似変換に基づいて各ｇスプライトをスキャンし、各ピクセルのフィルタパラメータを計算する。また、ｇスプライトデータのｇスプライトキャッシュアドレスも生成し、これをｇスプライトフィルタエンジン４５６で使用できるようにｇスプライトキャッシュのキャッシュアドレスマップへ送る。キャッシュ構成の一例では、キャッシュアドレスマップはアクティブとなる１４ピクセルブロックと復元エンジンから書き込みされる２つのブロックを選択する。
【０１７２】
　ｇスプライトフィルタエンジン４５６はｇスプライト空間のピクセル位置にあるカラー及びアルファデータを画面空間にマップする。この方法では、２ｘ２または４ｘ４のフィルタ核を用いて、画面空間のピクセル位置にあるピクセル値(カラーまたはカラーとアルファの両者) を計算する。合成バッファコントロール４５７はピクセル値、この場合は１クロック周期当たり４ピクセルを合成バッファに送る。合成バッファコントロール４５７は合成バッファからのレディラインを監視し、ｇスプライトエンジン４３７が合成バッファをオーバーランさせないようにする。ラスタライザ４５４は合成バッファコントロール４５７を制御する。
【０１７３】
　図１３は画像処理ボード１７４の合成バッファ４8 ０を示すブロック図である。合成バッファ４8 ０は、ｇスプライトエンジンからのｇスプライトデータを合成してDAC ２１２へ転送するデジタルビデオデータを生成するのに使用する専用メモリ機器である。合成バッファは一度に３２本の走査線で動作する。１つの３２走査線帯でｇスプライトを合成する間に、前の３２本の走査線が表示される。
【０１７４】
　合成ロジック４8 ２は走査線バッファに書き込むピクセル値を計算する。これは、現在走査線バッファに保存されているピクセル値と合成バッファに書き込まれているピクセル値とを混合させることで実行される。この操作は以下に詳しく説明する。一構成例では、合成ロジックが各クロック周期ごとに４つの平行ピクセル操作を実行する。
【０１７５】
　メモリコントロール４8 ４はアドレスの制御とメモリバンクのサイクリングに使用される。アドレス情報は、通常のDRAMを使用するときのように行と列のフォーマットで送られる。
　アルファバッファ４8 ６は１３４４ｘ３２ピクセルのそれぞれに対して８ビットの数値を有している。メモリは、連続する４つのピクセルが各クロック周期ごとに読み出しまたは書き込みされるように構成されている。アルファバッファは、３２走査線帯の切り替えの間にバッファを迅速にクリアする高速クリア機構も有している。
【０１７６】
　２つの独立した走査線バッファ４88が使用される。走査線バッファは１３４４ｘ３２ピクセルのそれぞれに対して３種類の８ビットカラー値を有している。メモリは、連続する４つのピクセルが各クロック周期ごとに読み出しまたは書き込みされるように構成されている。一方のバッファは帯域のピクセルデータをDACに転送するのに使用し、他方は次の帯域のピクセルを合成するのに使用する。帯域が一旦終了すると、その機能はスワップされる。
　マルチプレクサは２つの走査線バッファ４88のうちの何れかからのデータを選択し、ピクセル表示データをDAC に送信する。マルチプレクサは３２本の走査線ごとにバッファの切り替えを行う。
【０１７７】
　合成バッファ４8 ０はｇスプライトエンジン２０４とのインタフェースを確立し、画像データをDAC ２１２へ転送する。
　図１４は画像処理ボード１７４上のDAC ５１４を示すブロック図である。DAC５１４は、現在市場に一般的に出回っているRAMDACに共通する基本機能を実行する。DAC は内部制御レジスタの読み書きを行ったり、映像制御信号を次々と送信するロジックを有している。その他の機能ブロックについては、以下に説明する。
【０１７８】
　ピクセルデータルーチングブロック５１６は合成バッファからのピクセルデータのルーチングを制御する。通常の操作モードでは、このデータはピクセル速度で３つのチャネルのそれぞれのColor LUT ５１8 に送られる。このブロックもDSP からデータを再び読み出して診断することが可能である。
　ステレオ画像スプリッタ５２０は、ヘッド装備ディスプレイシステムを用いて立体表示される２つの映像信号を支援する。このモードでは、２つの映像チャネル( ５２２，５２４) が合成バッファから交互配置されており、DAC ５１４によって分割されなければならない。ステレオ画像スプリッタ５２０はDAC ５１４でこの機能を実行する。通常の単一チャネルモードでは、LUT データが第１DAC に直接送られる。
【０１７９】
　その他、単一の映像出力を生成するようDAC ５１４を構成することも可能である。DAC は、単一の映像出力と共に、ライン交互配置フォーマットを使用して立体表示を作成することが可能である。この場合、一方の目に対する走査線に他方の目に対する走査線が続く。結果として生成された映像ストリームは６４０ｘ９６０等のフォーマットを有しており、例えばこれは６４０ｘ４８０の画像を表している。
【０１８０】
　クロックジェネレータ５２６はビデオクロックとオーディオクロックを生成する。これらのクロックは２つの位相固定クロックジェネレータによって生成され、同期ずれを除去する。クロックジェネレータもMedia Channel からの制御信号に従い、画像処理ボードを外部同期ソースに同期させることが可能である。
【０１８１】
　画像処理システムの構造と操作を上記に説明したが、次にシステムの構成部分と特徴について詳細に説明する。まず、上記に説明した概念を実行するためにシステムで使用されるデータ構造を説明する。
【０１８２】
チャンキング
　RAM に大容量のフレームバッファとZ-バッファを使用してカラー、深さ、各ピクセルのその他の情報を記憶する従来のグラフィックシステムとは異なり、このシステムはある１画面の中の対象を「チャンク」と呼ばれる画像領域に分割し、対象の配列をこのようなチャンクに別個に配置する。実施例において、対象はｇスプライトで表示される。ｇスプライトはチャンクに下位分割され、チャンクは別個に表示される。この説明は幾つかの特定の実施例について言及しているが、チャンキングは本発明の範囲から逸脱せずに様々に応用することができる。
【０１８３】
　チャンキングの概念を、図例を挙げて説明する。図１５Ａに示すように、境界ボックス５４8 と呼ばれるボックスで囲まれているグラフィック画面の対象５４６は、ｇスプライト５５２という画像領域に表示される。境界ボックスを回転、拡大縮小、拡張、その他変換( 例えば疑似変換) して、画面領域にｇスプライトを作成してもよい。境界ボックスが一度作成され、境界ボックスが３２ピクセル境界( すなわちチャンク境界) ５５４に収まらないのであれば、境界ボックスを対象の周囲でＸおよびＹ方向に拡張して３２ピクセルチャンクサイズの整数倍になるようにする。図１５Ｂの対象５５０から分かるように、図１５Ａに示す対象５４６を囲む境界ボックスは図１５Ｂの３２ｘ３２ピクセル境界に拡張される。ｇスプライトは再現される前に３２ｘ３２ピクセル「チャンク」５５６に分割される。しかし、チャンクサイズはこれよりも小さいまたは大きいものを用いることもできるし、また他の形状のチャンクも使用できる。しかし、矩形、より好ましくは四角形のチャンクを図示する。
【０１８４】
　図１５Ｃに示すように、グラフィック画面５8 １は重なり合った対象( ５６０，５６２) を複数有している。これらの対象は境界ボックスで囲まれており、ｇスプライト( ５６４，５６６) に割り当てられる。図１５Ｃの境界ボックスは３２ピクセル倍にすでに拡張（及び回転、縮小拡大、その他変換）されており、３２ｘ３２チャンク５６８が生成される。しかし、図１５Ｃから分かるように、ｇスプライトとそれに対応する３２ｘ３２ピクセルチャンク境界５７０は３２ピクセル画面境界に正確に配列されないので、チャンクを行っている間にさらにｇスプライトを操作してｇスプライトが画面空間に収まるようにしなければならない。
【０１８５】
　再現されるｇスプライトをチャンキングによって作成する一つの方法としては、それぞれの対象の配置を含む小さな個々のｇスプライトを複数作成して再現するのではなく、複数の対象を組み合わせてより大きな合成ｇスプライトを作成する方法がある。ｇスプライトを組み合わせると再現の際の処理時間が短くなり、また組み合わせた対象がグラフィック画面の中で頻繁に変わらないのであればこの方法は非常に好ましい。ｇスプライトを作成する別の方法としては、複雑な配置の対象の構成部分を処理の対象とし、これらの複雑な配置の構成部分を複数のｇスプライトに分割するというものがある。このように分割を行うと処理時間が長くなってしまうおそれがあるが、頻繁に変化する特定の複雑な対象の出力解像度を向上させることができる。対象によっては、これら技術を組み合わせて使用してもよい。
【０１８６】
　例として、腕を様々なサイズの複数のスパイクで覆っているビデオゲームのキャラクターを挙げる。この場合、腕は頻繁に動くものとする。キャラクターの体、頭、その他の部分は頻繁には動かないので、これらは組み合わせてより大きな合成ｇスプライトを構成することができる。しかし、スパイクで覆われており、複雑な配置となり、また頻繁に動くキャラクターの腕は、出力解像度を向上させるために複数のｇスプライトに分割される。この場合、組み合わせと分割の両方を用いる。このようなキャラクターを図示するのは容易ではなく、また実用的ではないので、より単純な対象である「コーヒーカップ」を用いて組み合わせと分割を図示する。
【０１８７】
　図１６Ａは「コーヒーカップ」を表している。この「コーヒーカップ」は実質的に複数の別個の対象から構成されている。例えば、「コーヒーカップ」は実際にカップ容器と、カップ取っ手と、ソーサーと、カップから立ち上る湯気とで構成されているように見える。図１６Ａに示すように、一つの方法は個々の対象を組み合わせてより大きなｇスプライト( すなわち、「コーヒーカップ」) にするものである。もう一つの方法は、図１６Ｂに示すように、「コーヒーカップ」を複数の小さな対象( 例えばカップ容器、カップ取っ手、ソーサー、湯気) に分割してそれぞれ小さなｇスプライトを作るものである。また図１６Ｂは複雑な配置の対象を分割する方法も示している。
【０１８８】
　図１６Ａに示すように「コーヒーカップ」５７４を一つの単純な対象とすると、対象の各構成部分( 例えばカップ容器、カップ取っ手、ソーサー、湯気) を組み合わせて一つの大きなｇスプライトを作成することができる。この場合、境界ボックス５７６で対象の周辺を囲み、対象を画面空間に変換して一つの大きなｇスプライトを作成する。画面空間の３２ｘ３２ピクセル境界内に収まるｇスプライトを作成するために、境界ボックスを回転、拡大縮小、拡張、その他の変換させてもよい。その後、ｇスプライトは複数の３２ｘ３２ピクセルチャンク５７８に分割される。
【０１８９】
　ｇスプライトをチャンクに分割する一つの方法は、対象に含まれる配列を全てつなぎ合わせてチャンクに配列を置くというものである。別の方法では、問題のチャンクを使用する配列全てを記録しているチャンクをつなぎ合わせる。図に示す実施例では後者の方法を使用しているが、前者やその他の方法も使用できる。図１６Ａから分かるように、複数のチャンクが空の状態になる( すなわち、何れの対象配列もチャンクを使用していない) 。後で説明するが、これらのチャンクは再現が行われている間は無視される。
【０１９０】
　次に、「コーヒーカップ」を一つの複雑な対象とした場合、図１６Ｂに示すように対象は処理されて複数の小さなｇスプライトを作成するより小さな対象構成部分に分割される。例えば、対象の「コーヒーカップ」は、取っ手のないカップ容器５７９と、カップ取っ手５８０と、ソーサー５８１と、湯気５８２という下位対象から構成される。各下位対象はそれぞれ５８３−５８６に示すように境界ボックスで囲まれて、４つのｇスプライトを形成する。４つのｇスプライトを含む「コーヒーカップ」も、５８７で示すように境界ボックスで囲まれる。画面空間の３２ｘ３２ピクセル境界に収まるｇスプライトを作成するために、各境界ボックスを回転、縮小拡大、拡張、その他変換( 例えば、疑似変換) させてもよい。次に各ｇスプライトは３２ｘ３２ピクセルチャンクに分割する。境界ボックス５８７もチャンクに分割させて、再現の際に無視される空のチャンク５８８を有するようにさせる。しかし、この境界ボックスのチャンクは図１６Ｂに図示されていない。
【０１９１】
　チャンキングにより、グラフィック画像は単一のフレームとして再現されることはないが、後にフレームまたは表示空間に統合される一連のチャンクとして再現される。現在描かれている画像の３２ｘ３２ピクセルチャンクを交差する単一のｇスプライト内の対象のみが再現される。チャンキングにより、フレーム及びＺバッファはメモリの小さな物理的サイズとなって( すなわち、上記に説明した従来のグラフィックシステムよりもはるかに小さなメモリを使用する) 、使用されるメモリの使用頻度が上がり、メモリの帯域幅が増大する。また、チャンクサイズが小さいと、さらに高度な再現技術を使用することができる。このような高度な再現技術は、フレームとＺバッファが大きいと効率的に応用することができない。
【０１９２】
　チャンクの再現はタイラーで実行される。しかし、再現は他のハードウェア構成要素上、またはソフトウェアを使用しても実行できる。タイラーチップのＶＬＳＩメモリは、現在再現されているフレームの( ３２ｘ３２ピクセル) 小さなチャンクを保存するのに使用される。オンチップＶＬＳＩメモリは、外部ＲＡＭよりも非常に高速でメモリ帯域幅も広い。しかし、チャンキング処理が行われるために、フレームバッファ及びＺバッファ全体を保存する大量のメモリは不要になる。タイラー内の内部メモリは現在のチャンクの処理のみを行い、それに続く各チャンクを処理するために繰り返し使用される。そのため、使用可能な内部メモリはグラフィック再現中に頻繁に使用される。
【０１９３】
　また、内部ＶＳＬＩメモリを使用すると、オフチップ通信や、従来のフレーム及びＺバッファに必要な大容量外部メモリに対する読み出しや書き込み操作によるオーバーヘッドが原因で通常発生するピンドライバ遅延を除去することができる。また、図に示す本実施例では次のチャンクが計算される前に３２ｘ３２ピクセルチャンク全体が完全に再現されるので、チャンクサイズが小さいと、外部メモリの大部分に保存されるフレーム及びＺバッファ全体よりもチャンクでのほうがより高度な非偽信号( 例えばフラグメントバッファ) 及びテクスチャリング方法を実行することができる。さらにチャンクサイズが小さい場合、後で詳細に説明する画像圧縮技術を使用する際に便利である。
【０１９４】
　交差するポリゴンを全てチャンク及び変換したフラグメントに書き込んだ後、カラーや不透明度を含むピクセルデータはタイラーチップに圧縮されて、外部メモリに転送される。
【０１９５】
　図１７Ａ及び１７Ｂはグラフィック画面のチャンクへの分割方法のあらましを詳細に示している。まず、１つ以上の境界ボックスが各対象に対して作成される。( ５９２)(図１７Ａ) 。対象の配列が複雑な場合( 例えば細かい碁盤目状になっているなど)(５９４) 、複数の境界ボックスが作成されて( 複数のｇスプライトを作成するために) 対象の複雑な各構成部分を囲む( ５９６) 。対象の配列が複雑でない場合は、単一の境界ボックスを使用して対象を囲み、ｇスプライトを作成することができる( ５９８) しかし、対象が複雑であると、単一の境界ボックスが、対象の複雑な構成部分を囲むための複数の境界ボックスも囲んでしまう。単一または複数の境界ボックスが３２ピクセルの整数倍でないならば( ６００) 、このような境界ボックスを３２ピクセルの整数倍になるようＸまたはＹ方向( または両方向) に対称に拡張する。次に、対象( 配列が複雑なときは対象構成部分)を境界ボックスの中でセンタリングする( ６０２) 。これを図１５Ｂ及び１５Ｃのｇスプライトで示す。拡張は対称に行うのが好ましいが、必ずしもそうする必要はない。拡張が対称であると、単一のｇスプライトの中のチャンク間の処理のバランスが良くなる。
【０１９６】
　再び図１７において、ｇスプライトは３２ｘ３２ピクセルチャンクに分割される( ６０４)(図１７Ｂ) 。明らかなように、チャンクは表示空間の固定位置にあるのではなく、チャンクされた対象の位置によってはアドレス呼び出しが可能な可変位置に置かれる。ｇスプライトをチャンクに分割した後、チャンクの処理を行う。チャンクの再現が完了すると( ６０６) 、処理は終了する。チャンクの再現が完了しない場合、まず次のチャンクが空なのか確認した後このチャンクの処理を始める( ６０８) 。チャンクが空の場合、処理は行われず、次のチャンクの確認が行われる。チャンクが空でない場合は、チャンクを使用している対象全てが処理されるまでチャンクの再現( ６１０) をタイラーで続ける。この処理は、各ｇスプライトの全チャンクと全ｇスプライトの処理が完了するまで続けられる。
【０１９７】
　ｇスプライトのサイズは画面の総領域のパーセンテージで表される。背景のｇスプライトは非常に大きいが、通常画面の他の構成部分は画面の総領域よりも小さい。チャンキングの性能はｇスプライトのプリミティブの画面空間サイズによって変わる。そのため、ｇスプライトの作成に使用する対象データ入力ストリームを適切に調整( 例えば待ち行列に入れる) する必要がある。対象データ入力ストリームを適切に調整すると、対象の処理をより高い帯域幅で実行することができ、またシステムのスループットも上昇する。
【０１９８】
　このシステムはコマンドストリームキャッシュを使って対象データ入力ストリームをキャッシュしている。コマンドストリームキャッシュを使用してｇスプライトの全内容をキャッシュし、また全てのチャンクとそれに対応するキャッシュに保存されているｇスプライトの配列を繰り返し使用することができる。
　またキャッシュは選択キャッシングにも使用できる。例えば、配列プリミティブが所定数のチャンクを使用するときに、これらのプリミティブが自動的にキャッシュされるよう閾値を決める場合である。キャッシュの使用が可能であれば、仮想チャンキングを行うことができる。仮想チャンキングでは、それぞれが仮想チャンクであるN x M チャンクの領域に相当するチャンクバケットを作成する。仮想チャンキングにより、内容と配列サイズに合った仮想チャンクの適応サイズ設定を行うことができる。
【０１９９】
　キャッシュは修正画面グラフキャッシングにも使用できる。画面の静止部分をキャッシングして参照するのではなく、キャッシングを行って間接手段を通じて画面の動的部分を参照する。例えば、やや配列の複雑なカッコウ時計を含むｇスプライトについて考えてみる。時計そのものは非常に複雑であるが、唯一動く部分は鳥、２つのドア、２本の針である。さらに、各配列は固定されており変化することはない。従って、時計を再現すると、６本の木は静止状態で、また６つの部分が変換される( すなわち、時計、鳥、２つのドア、２本の針) 。キャッシュの容量が十分大きければ、画面グラフ全体をコマンドストリームに変換する。再現の際には、現在の変換部分はキャッシュされたコマンドストリーム上にパッチされ、その後コマンドストリームはｇスプライトの全チャンクに対して発せられる。コマンドストリームのパッチ部分のサイズは再現しても変わらない。さらに順応性のある方法としては、キャッシュした静止画面グラフに呼び出しコマンドを挿入するというものがある。再現の際は、動的部分が可変サイズのメモリに書き込まれ、キャッシュされる。このような動的部分のアドレスは、静止コマンドストリームの対応する呼び出しコマンドにパッチされる。この方法は、動的コマンドのサイズを各再現ごとに変えることができるため、順応性に優れている。従って、この場合はメモリにキャッシュされたコールバック方法が効果的である。カッコウ時計の例では、６つの変換部分を書き込んで場合によっては鳥の配列をコールバックするので、ドアが閉じている場合に鳥部分は空になる。この方法は、バス帯域幅に対しては非常にコンパクトで、画面グラフを迅速に指定方向に移動することが可能になる。
【０２００】
　キャッシュメモリに制限があっても、配列や属性によっては何度再現してもキャッシュされた状態を保つことが可能なものもある。例えば、カーレーシングゲームの場合、車体配列をキャッシュすると、全体的に時間を大幅に節約することができる。同様に、一般の属性状態( または下位状態) は複数のｇスプライトまたは単一のｇスプライトを再現する際に何度も利用される。上記に述べたように、チャンキングでキャッシュを使用すると、時間が大幅に節約される。しかし、ｇスプライトの各使用チャンクに対してコマンドストリームを迅速に作成することにより、コマンドストリームキャッシュなしで適切なチャンキング性能を実現することができる。
【０２０１】
　図９Ａ〜９Ｃに示すタイラー手段では、複数のチャンクを平行プロセッサで同時に使用して計算ロードを共有するのではなく、チャンクを順次使用して１つのプロセッサ上でフレーム全体を再現する。あまり好ましくはないが、チャンクの逐次または並行処理を組み合わせて行うことも可能である。チャンクを完全平行処理する場合、画面上を移動する対象に対してはそれが移動したときに固定チャンキング操作を行うことが必要になる。しかし図に示す本発明の実施例においては、チャンクを逐次処理しているので、対象はｇスプライトのチャンク境界に固定される。従って対象が画面上を移動してもチャンキングを行う必要はない。またチャンクを平行処理再現しても、チャンクの逐次再現する場合のように、高度な非偽信号及びテクスチャリング方法を各チャンクに応用することはできない。３２ｘ３２ピクセルチャンク全体は次のチャンクが計算される前に再現されて即座に圧縮されるので、チャンクサイズと順次再現は画像圧縮技術にとって非常に重要である。
【０２０２】
　画像の圧縮は、少ないデータで画像を表示し、保存コスト及びまたは送信時間とコストを減らすために行う。適切な方法で画像を再構成できる場合、画像表示に必要なデータが少ないほどコストをより下げることができる。また、元の画像を正確に再生するのではなく、元の画像に近づけることでさらに効果的な圧縮を行うことができる。圧縮量が多くなると、最終画像も一層元の画像に近づく( 「損失の多い圧縮」) 。
【０２０３】
　チャンキングの処理そのものは圧縮技術である。対象は複数の３２ｘ３２ピクセルチャンクから作成される１つ以上のｇスプライトを使って元の画像に接近させられる。実際の対象はｇスプライトを使って元の画像に近づけ、再現されたｇスプライトから再構成される。元の対象の再構成は、対象をｇスプライトに分割してチャンキングすることでどれほど効果的に元の画像に近づけたかによって変わる( 例えば、上記の複雑な対象配列分割技術) 。
【０２０４】
　各３２ｘ３２チャンクも画像圧縮技術を使って圧縮される。圧縮された３２ｘ３２ピクセルチャンクは、使用可能な内部メモリの小さな領域の中であまり多くのスペースを占領することはない。３２ｘ３２ピクセルチャンクは、離散形余弦変換( ＤＣＴ) を使用する画像圧縮技術で共通して使用されるサイズである１６個の８ｘ８ピクセルチャンクに分割される。
【０２０５】
　ある方法では、タイラーの圧縮及び復元エンジン、及びｇスプライトエンジンの復元エンジンは損失の多い圧縮／復元形式と損失の少ない圧縮／復元形式の両方をサポートしている。損失の多い形式には、ＲＧＢからＹＵＶへの損失の少ないカラー変換、ＤＣＴ、均一または知覚量子化、エントロピーコーディング( 実行長さ及びハフマンコーディング) がある。損失の少ない形式には、ＲＧＢからＹＵＶへのカラー変換、予測段階、損失の多い形式でも実行されるエントロピーコーディングがある。
【０２０６】
　メモリの必要性を大きく減らしてチャンキングによってグラフィック画像を処理するために、図示の実施例では小さなＺバッファを使用している( 例えば４キロバイト( ｋｂ))。特に、この方法でのＺバッファは４ｋｂよりもわずかに小さいが、精度のビット数を変化させることが可能である。しかし、他の大きなサイズまたは小さなサイズのＺバッファも使用できる。小さな４ｋｂのＺバッファを使用すると、１０２４ピクセルのみがＺバッファで一度に再現される。４ｋｂのＺバッファを使用して任意サイズの画面( 例えばｇスプライトで構成される画面)を再現するためには、所定サイズの３２ｘ３２ピクセルのチャンクに分割される( 通常、１画面にはｇスプライトが複数あるが、各ｇスプライトともチャンクに分割される。) この方法では、画像プリプロセッサが適切な配列をｇスプライトの各チャンクに送ってＺバッファで再現を行う。
【０２０７】
　チャンクの機能の例として、図１８Ａに示す８個の対象とそれに対応する配列を挙げる。簡単に説明するために、８個の対象６１２〜６１９をＡ〜Ｄの４つの値のいずれかを有する単一の属性６２０( 例えばカラー) で定義する。図１８Ｂに示すように、８個の対象はグラフィック画面で重なり合う。各ｇスプライトとその生成については無視し、図示の関係上、分離した４つのチャンクのみについて説明する。この分離した４つのチャンク６２１〜６２４を図１８Ｂに示す。分離した４つのチャンクは、図１９Ａに示すように配列１〜８と属性Ａ〜Ｄに接している。チャンク１６３０( 図１９Ａ) は配列１，２，５と属性Ｂに接しており、チャンク２６３９は属性ＡからＤに接しているが何れの配列にも接していない。またチャンク３６３２は配列２，４，７，８と属性Ａ，Ｂ，Ｄに、チャンク４６３４は配列４，６と属性Ａ，Ｃに接している。( 図１８Ｂ及び１９Ａに示すチャンクを使って) 画像の事前処理によって作成した部分画面グラフの例を図１９Ｂに示す。各チャンクの属性( 例えばＡ〜Ｄ，Ｘで示すカラーなど) は円６３８で表し、また属性( 例えば１〜８で示す様々な形状など) は四角形６４０で表している。文字Ｘは属性のデフォルト値を示している。中間ノードは、プリミティブ配列に対して実行する属性演算を有している。画面グラフのリーフノードはチャンクに使用されるプリミティブ配列を有しており、またチャンクが描く配列を取り囲む境界ボリュームも有することがある( 境界ボリュームを有するリーフノードについては以下に説明する) 。
【０２０８】
　チャンキングを行う一つの方法では、各チャンクを繰り返し使用して完全配列を毎回送信する。さらに最適な別な方法では、現在のチャンクで可視状態の配列のみを送信する( ちなみに、この最適な方法では不明瞭または目で確認できない配列は省いている) 。該システムで使用されている３２ｘ３２ピクセルブロックのｇスプライトをチャンクする実際の方法は、上記２つの極端な方法の中間に位置するものでバケットチャンキングと呼ばれている。しかし、これら２つの方法に含まれるあるいは中間に位置するような他の方法を用いて、チャンクを作成し、チャンキングを行うことも可能である。
【０２０９】
　バケットチャンキングは２つのパスで構成される。まず第１のパスは画面グラフを移動させながら、現在の変換部分を表示空間に維持させ、最終的には各チャンクの記述コマンドストリームを表示空間に構築する。表示空間はＮｘＭのチャンクバケットに分割され、このチャンクバケットは最終的にはそれぞれのチャンクに対応する配列のリストをそれぞれ有するようになる。配列プリミティブノードがあると、現在の変換が境界ボリュームに適用されて２Ｄの「フットプリント」が表示空間に生成される。足跡に接する各チャンクごとに、配列( 及び累積属性状態) が該当するバケットに付加される。この最初のパスの終了時には、各バケットとも該当するチャンクを再現するのに必要なデータを有しているはずである。ちなみに、このチャンキング方法は算出されたフットプリントの品質に左右され、対象の領域があまり正確でなければ生成されるフットプリントはより大きくなる。従って、周囲を囲まれた配列に接していないチャンクとなる。対象の領域が正確であると生成されるフットプリントは小さくなるので、ほとんどのチャンクが周囲を囲まれた配列に接することになる。
【０２１０】
　第１のパスの例として、図１９Ａに示す配列１〜８、属性Ａ〜Ｄ，Ｘによって描かれる互いに重なり合う対象を含む４つのチャンクの部分集合について考察する。パス１の中で画面グラフを移動させる一つの方法として、各チャンクの現在の状態を維持し、所定のチャンクに収まらない配列を省くというものがある。これにより、各チャンクのどの配列の属性内容も最新のものに更新される。図１９Ｂの画面グラフでこの方法を用いると、パス１の後でチャンクバケットに以下のようなコマンドストリームができる。
　チャンク１バケット：Ｘ，Ａ，Ｂ，１，２，５，Ａ，Ｘ，Ｃ，Ｄ，Ｃ，Ｘ
　チャンク２バケット：Ｘ，Ａ，Ｂ，Ａ，Ｘ，Ｃ，Ｄ，Ｃ，Ｘ
　チャンク３バケット：Ｘ，Ａ，Ｂ，２，７，８，Ａ，４，Ｘ，Ｄ，３，Ｃ，Ｘ　チャンク４バケット：Ｘ，Ａ，Ｂ，Ａ，４，Ｘ，Ｃ，６，Ｄ，Ｃ，Ｘ
　また、現在の属性状態を維持し、容認された各配列を送信する前にこの状態を送る方法もある。これにより、チャンクバケットに以下のコマンドストリームができる。　チャンク１バケット：Ｂ，１，Ｂ，２，Ｂ，５
　チャンク２バケット：＜空き＞
　チャンク３バケット：Ｂ，２，Ｂ，７，Ｂ，８，Ａ，４，Ｄ，３
　チャンク４バケット：Ａ，４，Ｃ，６
　第２の方法は第１の方法を改良したものである。ちなみに属性Ｂは配列２及び５の前に指定された第２及び３の不要な時間である。この動作は、配列７及び８のＢに対するチャンク３でも行われる。実際には、現在の属性状態がどの属性も各配列に対して再指定されることを表しているので、状況はここに説明する以上に悪くなってしまう。つまり、テクスチャ変換マトリクスが全画面グラフに対して変化しなくても、全チャンクの各配列を送る前にマトリクスが送信されてしまう。
【０２１１】
　従ってこの方法では属性を維持して、属性を優先させ、さらに属性を構成する。拡散カラーは優先属性である。画像グラフを作成する画像プリプロセッサ( 例えば、画像プリプロセッサ２４等で実行される画像事前処理ソフトウェア) で定義されるように、赤( 青( 立方体))に使用される属性から赤の立方体ができる。これは、最も近い属性を対象に結びつける画像プリプロセッサグラフィックインタフェースとは対称的である。最も近い属性を赤( 青( 立体))の対象に結びつけると、青の立方体ができる。
　最も遠い属性を優先属性として使用すると、属性維持が非常に簡素化する。画面グラフの移動中に、属性ノードに遭遇すると、画面グラフの中のそのノードよりも下にあるその属性タイプのノード全てを無視することができる。これは最上位の属性が他よりも優先されるためである。
　局部変換は構成属性である。従って、現在の値は前の値と新しい値によって定義される。構成属性には、画面グラフが移動して前の数値を保存する際にある種のスタックが必要になる。
【０２１２】
　バケットチャッキング方法では以下の構造を用いる：
・　現在の値を有する属性ノード。
・　移動コンテクスト。これは、各優先属性に対して現在の属性値を示すポインタを有する構造である。
・　それぞれコマンドストリームバッファと広域移動コンテクストとして同種のバケットコンテクスト構造を有するバケットのグリッド。
・　それぞれ移動コンテクストによって参照可能なデフォルト属性値のリスト。初期化するために、コンテクストはデフォルト状態になるので、属性は全てデフォルトコンテクストを表す。デフォルト値は、各チャンクに再現コマンドを送る前にひとまとめにダンプされるのではなく、ゆっくりとロードされる。
　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
　バケットチャンキングの第２のパスは、バケットのグリッドを反復させて対応するコマンドストリームを発する。空でない全てのバケットについては、そのバケットに保存されている情報から該当するチャンクが再現される。ちなみに、画面の中に空のバケットがある場合もあり、これはｇスプライトの全てのチャンクが再現されるわけではないことを意味している。活性の高いｇスプライトは、透明な背景上の不透明な対象から構成され、多数のチャンクが空である必要がある。
【０２１４】
　上記の属性状態を維持する方法は、チャンクした状態で配列を再現するのに特に適している。チャンクすることにより配列の集合が、最初に指定されたのとは異なる順序で再現される。例えば、チャンクの再現において、再現システムはチャンクと交差しない配列の集合を省く。従って、チャンクした配列の再現のレベルが低い状態では、多くても次の２つの状態レベルを維持するのがよい。１) タイラーまたは他の再現ハードウェアとの互換性があり配列の再現が可能なフォーマットでの広域状態、及び２）配列の集合にのみ適用されるその集合内の小域状態オーバーレイ。この方法では、配列の各集合は他の集合とは別に再現可能であり、また配列の集合の再現に副次的作用は生じない。
画像圧縮
　上記に述べたように、チャンクサイズと逐次再現は画像圧縮技術にとって重要な事である。それは、３２ｘ３２ピクセルチャンク全体が、次のチャンクの計算が行われる前に完全に再現され、即座に圧縮することが可能なためである。タイラーは損失の多い圧縮形式と損失の少ない圧縮形式の両方をサポートして、チャンクの圧縮を行う。損失の多い圧縮形式及び損失の少ない圧縮形式は共に８ｘ８ピクセルから成る独立ブロックのチャンクを圧縮するので、圧縮された各３２ｘ３２ピクセルチャンクは１６個の圧縮ブロックから構成されることになる。
【０２１５】
　画像の圧縮を行うと、必要なメモリサイズが小さくなり、また必要なメモリ帯域幅も大幅に減少する。この設計ではキャッシングと、事前取り込み戦略と、チャンクとを組み合わせて利用することにより、圧縮とブロックアクセスで生じる待ち時間とオーバーヘッドを減少させている。画像全体は３２ｘ３２ピクセルバッファで計算されるので、ｇスプライト画像圧縮は最小オーバーヘッドで行われる。圧縮アーキテクチュアの概念的レイアウトを図２０に示す。
　変換エンジン６６０( 図２０) はモデル及び表示変換、クリッピング、ライティング等を計算し、この情報をタイラー６６２に送信する。タイラーは変換情報を処理すると、テクスチャメモリ６６４からテクスチャデータを読み出す。テクスチャブロックが必要となるので、テクスチャデータは圧縮形式で保存されている。テクスチャブロックはタイラー復元エンジン６６６で復元され、タイラーのオンチップテクスチャキャッシュにキャッシュされる。タイラーはピクセルデータを解像すると、解像されたデータをタイラー圧縮エンジン６６８に送る。ここで解像されたデータは圧縮され、さらに圧縮されたデータはｇスプライトメモリ６７０に保存される。ｇスプライトエンジン６７２は圧縮されたｇスプライトデータが必要になると、ｇスプライト復元エンジン６７４を使ってｇスプライトメモリ６６４からのｇスプライトデータを復元し、オンチップｇスプライトキャッシュにデータをキャッシュする。実際のハードウェアでは、テクスチャメモリ６６４とｇスプライトメモリ６７０は同一である( すなわち圧縮データは様々なエンジンが共有する単一のメモリに保存される) 。使用する圧縮方法及び復元方法に互換性があれば、共通の共有メモリは不要である。またｇスプライトデータはデータベースやその他の画像源６７６から取り込んで、テクスチャメモリ６６４及びｇスプライトメモリ６７０に保存することも可能である。
【０２１６】
　本発明の一実施例では、損失の多いピクセルブロック圧縮及び復元と損失の無いピクセルブロック圧縮及び復元の両方をサポートしている。
　損失の多い画像圧縮形式には、損失の多い第１段階と損失の無い第２段階の２つの段階がある。損失の多い圧縮形式は、赤、緑、青( Ｒ，Ｇ，Ｂ) 彩度値から輝度( Ｙ) 及びクロミナンス( Ｕ及びＶ、またＣｒ及びＣｂとも言う) 値への任意のカラー空間変換で始まる。損失の多い段階では、直接余弦変換( ＤＣＴ) と所定の周波数成分を減少させる量子化が行われる。
　第２段階は、ハフマンコーディング及び実行長さエンコーディング( ＲＬＥ)から成る損失の無い圧縮形式である。ハフマンコーディングの代わりに、演算コーディングなどの他のコーディング方法も使用できる。
　損失の多い復元方法では、デコーディング、圧縮データの逆量子化、逆ＤＣＴ、ＹＵＶからＲＧＢへの任意のカラー空間変換が行われる。
　損失の無い圧縮形式では、ＲＧＢからＹＵＶへの損失の無い任意のカラー空間変換、予測段階、損失の無いエンコーディング段階より構成される。このエンコーディング段階は、損失の多い圧縮形式のエントロピーコーディング段階と同じであってもよい。この損失の無い復元方法は、デコーディング、各カラー成分を逆予測する段階、ＹＵＶからＲＧＢへの任意のカラー空間変換から成り立っている。
損失の多い圧縮／復元
　タイラーの圧縮エンジン４１４( 図９Ａ〜Ｃ) における損失の多い圧縮方法の一つは、次の４または５つの手順で行われる。
１．　ＲＧＢデータ入力をＹＵＶのような輝度クロミナンス系統へ変換する( 任　　意) 。
２．　各カラー成分をそれぞれ別個に順方向２次元離散余弦変換( ＤＣＴ) させる。
３．　２次元ＤＣＴ係数をおおよその頻度の増加順に並べる。
４．　ＤＣＴ係数を量子化する：均一の除数または頻度依存除数で除算する。
５．求めた係数を固定コード表を有するハフマンエンコーディングによってエンコードする。
【０２１７】
　損失の無い復元は以下の４または５つの手順で行われる。
１．圧縮データ入力を固定コード表を使用するハフマンデコーディングによってデコードする。
２．圧縮データを逆量子化する：圧縮の量子化手順で使用した均一の乗数または頻度依存乗数で乗算する。
３．データの線形配列を適切なＤＣＴ係数の２次元順序に並べる。
４．各カラー成分に対して逆の２次元ＤＣＴをそれぞれ別個に実行する。
５．該当する任意の段階が圧縮処理に含まれる場合、ＹＵＶのような輝度クロミナンス系統のカラーをＲＧＢカラーに変換する。
【０２１８】
カラー空間変換
　カラー空間変換は、輝度座標Ｙとカラー座標Ｕ及びＶに基づいてＲＧＢカラーを輝度カラー系統に変換する。この輝度クロミナンス系統は標準のカラー空間ではない。カラー座標は輝度の圧縮に必要なビットのほんの一部のみを必要とするため、この系統を使用すると圧縮の度合いが向上する。損失の無い可逆変換は各ピクセルに対して別個に実行され、アルファ値を変えることはない。
【０２１９】
ＲＧＢからＹＵＶ( 圧縮の場合) 
　正数のＲＧＢ値から正数のＹＵＶ値への変換では、次のような変換式を使用する。
Y = (4R + 4G + 4B) / 3 - 512
U = R - G 
V = (4B - 2R - 2G) / 3
ＹＵＶからＲＧＢ( 復元の場合) 
正数のＹＵＶ値から正数のＲＧＢ値への変換では、次のような変換式を使用する。R = (((Y + 512) - V) / 2 + U + 1) / 2 
G = (((Y + 512) - V) / 2 - U + 1) / 2 
B = ((Y +512) / 2 + V + 1) / 2
【０２２０】
離散余弦変換
　画像とテクスチャは、３原色の振幅と不透明度の振幅を含むピクセルである。ピクセルの位置は画像またはテクスチャマップ中の空間位置に相当する。この形式の画像やテクスチャは空間領域の中にある。画像やテクスチャの場合、離散余弦変換( ＤＣＴ) でＤＣＴの基底係数を乗じる係数を計算する。画像やテクスチャにＤＣＴを実行すると、画像やテクスチャを同等に表す係数の集合が求まる。この形式の画像やテクスチャは頻度領域の中に存在する。
【０２２１】
　ＤＣＴでは、８ｘ８ピクセルブロックのカラーと不透明度の振幅が空間領域と度数領域との間でマッピングされる。頻度領域では、隣接する係数はあまり互いに関連することなく、また圧縮処理で圧縮効率を落とすことなく各関数をそれぞれ別個に処理する。順方向ＤＣＴでは空間領域から頻度領域へのマッピングが行われ、逆に逆ＤＣＴでは頻度領域から空間領域へのマッピングが行われる。順方向または逆ＤＣＴを適切に行う一つの方法として、１９９０年サンディエゴ、Academic Press Inc. 発行、Rao, K. R.及びP. Yip. 著 "Discrete Cosine Transform"の図Ａ．１．１及びＡ．１．２に記載されている方法がある。
【０２２２】
　２次元ＤＣＴにより、各カラー成分を表す頻度領域の係数２次元配列が生成される。ジグザグ状配列で係数が再配列されるので、線形配列の低い位置でＤＣＴ頻度が低くなる傾向がある。この配列において、係数がゼロになる確率は( 線形インデックスによる) 線形配列での位置の上昇関数である。この配列により、知覚量子化及びＬＯＤフィルタリングが簡素化され、実行長さエンコーディング(ＲＬＥ) も大幅に向上する。
【０２２３】
量子化
　量子化を行うと、係数を正数で除算することでジグザグ配列のＤＣＴ係数が有することのできる互いに異なる値の数が減少する。圧縮タイプパラメータの値によっても異なるが、量子化は均一的または知覚的量子化となる。どちらの場合もＤＣ頻度の係数が変わるが( インデックス＝０) 、そのままこの係数を送信する。
【０２２４】
　量子化処理は、画像または画像の一部の量子化因子の指定から始まる。この場合、量子化因子は３２ｘ３２ピクセルチャンクに対して指定される。量子化インデックス( Ｑインデックス) はチャンクで使用するための該当する量子化因子(Ｑ因子) を指定する。次の表はＱインデックスとＱ因子との関係を表している。
【０２２５】
【表１】
2004102998.tif 000003
【０２２６】
　各カラー面はチャンクＱインデックスの異なる数値を有している。１５のＱインデックスは４０９６のＱ因子を選択し、これにより量子化及び逆量子化の際にゼロが生成される。量子化処理では、Ｑ因子で各係数を除算し、さらに四捨五入して正数にする。逆量子化処理では、各係数をＱ因子で乗算する。量子化及び逆量子化によってＤＣ頻度成分が変化することはない。
【０２２７】
ブロック量子化因子
　Ｑインデックス及びＱ因子はブロック( ８ｘ８ピクセル) ごとに変化させることが可能である。あるブロックのＱインデックスは、チャンクのＱインデックスをブロック圧縮タイプに埋め込まれている数値でインクリメントすることで求められる。
【０２２８】
　ブロックＱインデックス　＝　チャンクQ インデックス＋( ブロック圧縮タイプ−３) これはチャンクQ インデックスを１、２、３または４インクリメントするものである。考えられ得る最大のＱインデックス数値は１５なので、インクリメントした結果１５を越える数値は１５に設定される。
　量子化の種類が知覚量子化である場合、Ｑインデックス及びＱ因子は係数ごとに( 配列インデックスごとに) 変化させることも可能である。
　均一量子化の場合は、係数ＱインデックスはブロックＱインデックスに等しいので、該当するＱ因子はブロック中の各係数を乗算( 逆量子化) または除算( 量子化) する。
【０２２９】
　知覚量子化の場合、係数Ｑインデックスは線形配列のインデックスの数値( ０．．．６３) によって変化する。以下の表は配列インデックス数値の関数として求めた係数Ｑインデックスを示している。
係数Ｑインデックス　　　　　　　配列インデックス
ブロックＱインデックス　　　　　インデックス＜１２
ブロックＱインデックス＋１　　　１２≦インデックス＜２８
ブロックＱインデックス＋２　　　２８≦インデックス＜５２
ブロックＱインデックス＋３　　　５２≦インデックス
エントロピーコーディング
【０２３０】
　ハフマン／ＲＬＥコーディングは量子化されたＤＣＴ係数を以下の方法で処理する。
１．( ＤＣＴ係数は互いに関連していないため) ゼロ以外の係数を存在しうる最低ビットで別個にエンコードする。
２．( ジグザグ配列であるため) 特に線形配列の最後にあるゼロの数値で連続する種類の係数を最適にエンコードする。
ハフマン／ＲＬＥコーディング処理を適切に行う方法としては、既知のＪＰＥＧ静止画像圧縮標準のＡＣ係数で使用されるハフマン／ＲＬＥコーディング処理がある。
【０２３１】
　ブロックにランダムアクセスするために、この方法ではＤＣ頻度係数( インデックス＝０) をエンコードしないが、数値を変えずにこれを送信する。
アルゴリズムは、以下を表す一連の可変長コード語を計算する。
１．次のゼロ以外の係数の前の一続きのゼロの１から１５までの長さ。
２．次のゼロ以外の係数の符号と仮数を指定するのに必要な追加ビット数。
コード語の後にゼロ以外の係数の符号と仮数が書き込まれる。ある１つの指定コードは、ブロックの残りの係数が全てゼロであることを表す。
【０２３２】
エンコーディング
　全ブロックをエンコードする場合、ISO International Standard　１０９１8の付録K 、セクションK.３. ２に記載されている代表的なＡＣ係数のハフマン表を使用する。これには、輝度( Ｙ) ＡＣ係数の表K.５とクロミナンス( Ｕ及びＶ)ＡＣ係数の表K.６が示されている。
【０２３３】
デコーディング
　全ブロックをデコードする場合、エンコード処理として同一の一定表を使用する。従って、データを書き込んだハフマン表を保存したり移動させる必要なはい。
【０２３４】
損失の無い圧縮／復元
　タイラーの圧縮エンジン４１４では、次の２つの段階で損失の無い圧縮が行われる。
１．入力されたＲＧＢデータからＹＵＶのような輝度クロミナンス系統への変換( 任意) 。
２．各カラー成分に対して微分予測計算を行う。固定コード表を使用するハフマンエンコーディングにより、求めた係数をエンコードする。
タイラーの復元エンジン４０４，４５０及びｇスプライトエンジンでは、次のような２または３つの段階で損失の無い復元が行われる。
１．固定コード表を使用するハフマンデコーディングにより、入力される圧縮データをデコードする。
２．各カラー成分に対して逆の微分予測( 再構成) 計算を行う。
３．圧縮処理にＹＵＶのような輝度クロミナンス系統のカラーをＲＧＢカラーに変換する任意の作業が含まれる場合、この変換作業を行う。
【０２３５】
カラー空間変換
　カラー空間変換は、ＲＧＢカラーを輝度座標Ｙとカラー座標Ｕ及びＶに基づく輝度カラー系統に逆に変換する。これはＹＵＶ系統以上に圧縮の度合いを上げることのできる他と異なるカラー空間である。ハフマン／ＲＬＥエンコーダへの入力数が少なく、さらなる圧縮が可能となるためである。各ピクセルはそれぞれ別個にカラー空間変換され、またこの変換によってアルファの値が変化することはない。
【０２３６】
ＲＧＢからＹＵＶ( 圧縮の場合) 
　正数のＲＧＢ値から正数のＹＵＶ値へ変換する場合、次のような変換式を使用する。
Y = G 
U = R - G 
V = B - G 
【０２３７】
YUV からＲＧＢ( 復元の場合) 
　正数のＹＵＶ値から正数のＲＧＢ値へ変換する場合、次のような変換式を使用する。
R = Y + U 
G = Y 
B = Y + V 
【０２３８】
　カラー空間変換の実行中、アルファ情報は変化しない。
　カラー空間変換を回避することも可能である。ｇスプライト制御データ構造でフラグを用いて、カラー変換を回避することをデコンプレッサに知らせる。
　カラー空間変換後に予測が行われる。予測は、大部分のソース画像、特に空きスペースと水平及び垂直線を多く含む画像のエントロピーを減少させる損失の少ない可逆過程である。
【０２３９】
　圧縮の予測過程及び復元の逆予測過程においては、以下のような値が使用される。
１．ｐ( ｘ，ｙ) は、コンプレッサに入力され、また復元エンジンから出力されるピクセル値である。
２．ｄ( ｘ，ｙ) は、圧縮エンジンの次段のコーダへ入力され、また復元エンジンのコーダの反対側から出力される差分値である。
【０２４０】
　予測は次のように計算される。
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)
　ハフマン／ＲＬＥコーディング及びデコーディングは、本実施例の損失の多い圧縮／復元形式で行われるものと同一である。
【０２４１】
　上記の圧縮方法では、８ｘ８ピクセルの独立ブロックの画像を圧縮する。従って上記のチャンキングアーキテクチュアでは、圧縮された各３２ｘ３２ピクセルチャンクはこのような１６個のブロックで構成される。３２ｘ３２ピクセルチャンクの圧縮を容易にするために、偽信号防止エンジン４１２はピクセルデータを８ｘ８ピクセルブロックに変換する。８ｘ８ピクセルブロックは、第１のバッファで保存を行いまた第２のバッファが圧縮されるように、８ｘ８ピクセルブロックをバッファする。
【０２４２】
コントロール及びパラメータ
　上記に述べたように、タイラー( 図９Ａ〜９Ｃ) は一度にｇスプライトを１つのチャンクに再現する。このようなチャンクはピクセルブロックで構成されている( この場合、１６個の８ｘ８ピクセルブロック) 。テクスチャマッピング、陰影付け、その他のマルチパス再現操作の場合、タイラーはｇスプライトまたはテクスチャのブロックをメモリから取り込む。フレームを構成するために、ｇスプライトエンジン( 図１２Ａ〜Ｂ) はｇスプライトを取り込み、ピクセルを画面空間に変換し、合成バッファでピクセルを合成する。
【０２４３】
　ｇスプライト、チャンク、ブロックの処理を制御するコントロールパラメータは複数存在する。ｇスプライト表示リストは表示画像を構成するｇスプライトのリストを保存している。以下に説明するように、ｇスプライトヘッダブロックは、ｇスプライトの幅や高さを含むｇスプライトの属性、及び画面空間平行四辺形で定義されている疑似変換を多数保存している。ｇスプライトヘッダブロックも、その関連するチャンクのリストを有している。一つの実施例では、このリストはポインタやハンドルとしてコントロールブロックをチャンクしている。
【０２４４】
　チャンクコントロールブロックは、チャンク毎及びブロック毎のパラメータを有している。チャンク毎のパラメータは、ＹＵＶカラー変換バイパスと、デフォルトＱ因子と、知覚量子化フラグと、ピクセル形式と、ピクセルデータが線形メモリのメモリ割当ユニット( ＭＡＵ) で管理されるメモリの中に存在するか否かを表す情報とで構成されている。ＭＡＵはチャンクメモリを割り当てるのに使用される一つの共有メモリである。ＭＡＵが管理するメモリにはＭＡＵのリストが保存されており、各ＭＡＵは次のＭＡＵを示すポインタを有している。例えばある具体例においては、チャンクコントロールブロックは各ｇスプライト毎に連続するＭＡＵの中に保存される。
【０２４５】
　ブロック毎のパラメータは、圧縮タイプと、ブロックが保存されるＭＡＵの数と、ブロックのピクセルデータの第１番目のバイトを示すブロックポインタとで構成される。具体的なブロックの形式は、３２ビットピクセル( ８ビットはＲＧＢ及びアルファ用) をエンコードする８ｘ８ｘ４ピクセル配列である。
　上記のコントロールパラメータを使ってｇスプライトのピクセルを有する座標( Ｘ，Ｙ) を検索する手順は以下の通りである。
　１）３２でＹ及びＸを除算し、チャンクの列と行をそれぞれ得る。
　２）( チャンク列) ＊( チャンクの中のスプライトの幅) ＋チャンク行を計算して、チャンク数を得る。
　３）( チャンク数) ＊（チャンクヘッダブロックのサイズ） を計算して、チャンクコントロールブロックのオフセットを求める。
　４）( Ｙ＜４：３＞＊４＋Ｘ＜４：３＞)＊３を計算して、チャンクコントロール内のブロックのオフセットを求める。
　５)ブロックポインタを復元したキャッシュロジックに送り、ブロックを受信する。
　６)（Ｙ＜２：０＞＊８）＋Ｘ＜２：０＞を計算して、ブロック内のピクセルのオフセットを求める。
【０２４６】
　ここにおいて、チャンクのオフセットはチャンクを選択するのに使用される。また、ブロックオフセットはブロックポインタの選択で用いられる。
ブロックポインタはピクセルを含むブロックを選択し、またピクセルのオフセットはピクセルを選択する。
　ピクセルデータの圧縮ブロックの中にある所定のピクセルに対応するブロックにアクセスするために、タイラー及びｇスプライトエンジンのキャッシュコントロールが以下の操作を行う。
　１）チャンクコントロールブロックにあるブロックポインタ値を検索し、ＭＡＵのサイズで除算することにより、ＭＡＵアドレスを求める。
　２）そのブロックに対応するチャンクコントロールブロックに割り当てられているＭＡＵの数を検索する。
　３）チャンクコントロールブロックの次のブロックポインタアドレスを検索する。
　４）割り当てられているＭＡＵの数　＊　ＭＡＵサイズ　＋ (( ブロックポインタ) 変更ＭＡＵサイズ) ＋( 次のブロックポインタ) 変更( ＭＡＵサイズ) の２の補数
　５）ブロックアドレス及び圧縮ブロックの長さを圧縮キャッシュロジックに送る。
【０２４７】
　圧縮キャッシュは第１のＭＡＵを読み出し、転送長さが十分でなければＭＡＵの中のポインタを使用して次のＭＡＵの先頭にアクセスする。この処理は転送長さが十分になるまで続けられる。
　ＭＩＰマップテクスチャ操作をサポートするために、タイラーは他のインデクシングレベルをサポートしている。ＭＩＰマップレベルのインデクシングを行う一つの方法では、次のような手順を行う。
　１）所定のスプライトに対して、以下の計算を行ってＭＩＰチャンクレベルオフセットの表を作成する。
　ＭＩＰチャンクオフセット［０］＝　０　＼＼詳細レベル０のオフセット
　ＭＩＰマップの各レベルの場合：
　ＭＩＰチャンクオフセット［レベル＋１］= スプライト幅／( ２＾レベル) ＊スプライト高さ／( ２＾レベル) ＋ＭＩＰチャンクオフセット［レベル］
　２）ＬＯＤパラメータを使用してＭＩＰチャンクオフセットを求める。
このとき、ＭＩＰチャンクオフセット、スプライト幅／( ２＾レベル) 、スプライト高さ／( ２＾レベル) を使用して、現在のｇスプライトの選択した詳細レベル内にある所望のチャンクを求めることもできる。
ｇスプライト
　上記にｇスプライトの概念を説明した。簡単にもう一度説明すると、表示ボリューム中の１つ以上の対象はｇスプライトに割り当てられる。ｇスプライトは別個に再現されるので、これによりｇスプライトを異なる解像度で再現させ、また様々な速度で更新させることができる。再現オーバーヘッドを低減させるために、システムは対象をもう一度再現するのではなく、ｇスプライトを疑似変換させることにより、対象の動きを近似的に作り出すことができる。画面を構成するｇスプライトを表示させるために、システムは画面の中で対象を表すｇスプライトを合成する。次に、上記及び他の特徴について詳しく説明する。
　上記に述べたように、配列をｇスプライトに割り当てることによりシステムが起動する。ｇスプライトは物理的な出力機器の座標で示される２次元領域である。以下に述べる例では、ｇスプライトの形は矩形であるが、他の形を使用することも可能である。ｇスプライトはｇスプライトエンジンで疑似変換させることができる( すなわち、拡大縮小、回転、反転、及び／または切り取りが可能である−何れの変換も２ｘ２マトリクスを使用した変換と移動である) 。２次元変換の１適用例としては、３次元移動のシミュレーションがある。ｇスプライトの例として、同一のｇスプライトの画像が様々に変換されて複数回画面に表示させることが可能である。この例はｇスプライト画像の矩形下位集合や画像全体に適用できる。また、カラー成分をベースにして適用させることも可能である。例えば、アルファをあるｇスプライトから得て、カラーを別のｇスプライトから得ることもできる。
　一般に、画像プロセッサは１つの対象を単一のｇスプライトに割り当てるが、複数の対象を１つのｇスプライトに割り当てることも可能である。画像プリプロセッサは互いに影響を及ぼす対象や他と関連性を持たない対象を単一のｇスプライトの中で組み合わせる。また、メモリと処理制限に基づいて対象を統合する。例えば、画像プロセッサは、それぞれ独立しているが重なり合っているｇスプライトを出力機器のリフレッシュ速度が要する時間内で合成することはできない。この場合、システムはこのような重なり合っている対象を単一のｇスプライトに統合する。
【０２４８】
　対象をｇスプライトに割り当てた後、画像プロセッサはフレームのｇスプライトを再現する。別個に対象を再現すると、システムは再現オーバーヘッドを減少させることができる。これは、各フレームの画面で各対象を再現し直す必要がないためである。この特徴についてさらに詳細に説明する。
【０２４９】
　対象を画面に表示させるために、画像プロセッサは画面の対象を含むｇスプライトを合成する。合成とは、ｇスプライトの層からのカラーデータを組み合わせる処理のことをいう。半透明性をサポートするために、画像プロセッサは合成して表示を行う際に変換したｇスプライトピクセルのアルファ値も考慮に入れる。
【０２５０】
　図２１Ａ及び２１Ｂは、一実施例においてのｇスプライトの処理方法を示すフローチャートである。図に示す実施例では、ｇスプライトの処理は２フレーム期間にわたって行われる。最初のフレーム期間において、画面の対象はｇスプライトに割り当てられ再現される。また次のフレーム期間において、ｇスプライトは変換され、さらに合成される。　まず、画像プリプロセッサは潜在的に可視状態の対象を確認する。図２１Ａはこの過程を一連の手順として示している。フレーム毎に、画像プロセッサは対象( ６９６，６９８)のリストを移動させ、画面すなわち表示空間において潜在的に見ることのできる対象を確認することで、潜在的に可視状態の対象を決定する。
【０２５１】
　次に、画像プリプロセッサはｇスプライトの割当、再割当、割当解除を行う。ｇスプライトの割当とは、一般的にシステムでｇスプライトを表わすためにデータ構造を作成することをいう。対象が潜在的に可視状態でなく( ７００) 、システムがその対象に対してｇスプライトを割り当てていない場合は( ７０２) 、他の処理を行う必要はない。潜在的に対象を目で見ることができ( ７０２) 、システムがその対象に対してすでにｇスプライトを割り当てている場合は( ７０２) 、画像プロセッサがその対象に対するｇスプライトの割当を解除する( ７０４) 。
【０２５２】
　画像プリプロセッサは、システムがまだｇスプライトを割り当てていない潜在的に可視状態の対象に対して新しいｇスプライトデータ構造を割り当てる( ７０６，７０８) 。この場合、画像プリプロセッサはｇスプライトデータ構造を作成し、その対象に対応す画像データを待ち行列に入れて再現を行う( ７１０) 。再現を実行するために「待ち行列に入れる」というのは、３次元表示させる対象のリストを追加することを表している( ７１０) 。また画像プロセッサはｇスプライトの疑似変換も計算する( ７１４) 。本実施例では、疑似変換には２つの目的がある。第１に、疑似変換を行って画面上での動きに対応する対象の動きを近似的に作り出すことができる。第２に、疑似変換により、ｇスプライトをｇスプライト空間から出力機器座標に変換することができる。ｇスプライト空間とは、対象をチャンクに下位分割させるのに使用する座標系を意味している。対象をチャンクに下位分割する際に使用する座標系は、２次元空間に変換された対象を効率よくチャンク領域で扱うことができるように最適化することが可能である。
【０２５３】
　対象を潜在的に目で見ることができ( ７００) 、システムがその対象に対してすでにｇスプライトを割り当てている場合は( ７０６) 、図に示す画像プリプロセッサは疑似変換式の計算を行う( ７１４) 。以下に詳細に説明するが、疑似変換式を利用して対象の動きを擬似的に作り出すことが可能である。画像プロセッサはこの近似的に作り出した動きの精度を評価し、ひずみが多い場合は( ７１６)、画像プリプロセッサがその対象に対してｇスプライトの再割当を行う( ７０８) 。この場合、次に画像プリプロセッサはｇスプライトに再現する配列を待ち行列に入れて( すなわち３次元リストに入れる) 再現を行い( ７１０) 、ｇスプライトを表示リストに追加する( ７１８) 。
【０２５４】
　しかし、疑似変換式を用いて対象の動きを正確に擬似的に作り出すことができる場合は( ７１６のひずみが所定の許容範囲内にある) 、対象を再現し直す必要はなく、画像プリプロセッサはその対象に対応するｇスプライトを表示リストに入れる( ７１８) 。
【０２５５】
　次のフレーム期間に、画像プロセッサは表示画像を生成する。点線で分けられている手順( ７１８) 及び( ７２０) はフレーム期間を示している。画像プロセッサは表示リストを移動させて、リストのｇスプライトを物理的出力機器の座標に変換する( ７２０) 。一般に、出力座標への変換には、曲げや回転、拡大縮小を施したｇスプライトからのピクセルデータを出力機器のピクセル位置にスキャンする過程が含まれている。次に画像プロセッサはこの変換または「スキャン」したｇスプライトデータを合成する( ７２２) 。最後に、画像プロセッサはピクセルデータをアナログ値に変換し、画像を表示する。
【０２５６】
　図５Ａ及び５Ｂはチャンキングアーキテクチャで配列を再現する過程を示すフローチャートである。重要なことであるが、上記に述べたｇスプライトの概念はチャンキングアーキテクチャにのみに限定されるものではない。図５Ａ及びそれに関する上記の説明では、画像プリプロセッサが画面の配列からｇスプライト構造を確定する方法について詳しく述べている。手順( ２４０〜２４４) 及びそれに関する説明を参照すること。特に、対象は単一のｇスプライト、または必要に応じて幾つかのｇスプライトにに統合及び再現させることが可能である。例えば、タイラー、ｇスプライトエンジン、合成バッファが必要なフレームリフレッシュ速度でフレームのｇスプライトに現在の対象の割当を処理することができない場合、データをＤＳＰまたはホストプロセッサに再び送信し、対象を統合してｇスプライトに複数の対象を再現することが可能である。
【０２５７】
　図６は、一実施例におけるｇスプライトの処理に関して更なる知見を与えるものである。図６に示されると共に上述した如く、イメージプロセッサは、ｇスプライト(280) の深度順番も決定する。
【０２５８】
　イメージプロセッサがｇスプライトを割当てるとき、それはｇスプライトを表すデータ構造を生成する。このｇスプライトデータ構造は、ｇスプライトの種々の属性を記憶すると共に関連するイメージデータがメモリの何処に在るかを追跡し続ける為のヘッダ、を含んでいる。このデータ構造は、ｇスプライトのサイズを記憶し、ｇスプライトのエッジに対するエッジ式を表し、2-D 変換データおよび他のイメージ属性を保持する為の種々のフィールドを含んでいる。
【０２５９】
　ビュースペースに対するｇスプライトの配置形態を決定した後、イメージプロセッサはどのｇスプライトをレンダリングするかを決定する。シーンにおける全ての対象物をレンダリングする代わりに、システムは他のフレームからレンダリングされたｇスプライトを再使用することができる。また、フレーム毎の対象物の位置の変化は、レンダリングされたｇスプライトのアファイン変換(affine transformation) を行うことにより近似され得る。図６に示される如く、イメージプロセッサはｇスプライトをループ(282-286) して、ｇスプライト変換を計算する(284) 。尚、以下においては、ｇスプライトの更新およびｇスプライトのワープ(warping) に関して詳述する。
【０２６０】
　イメージプロセッサシステムは、レンダリングされて対象物を表す2-D ｇスプライトに関してアファイン変換を行うことにより3-D 対象物の動きを近似することができる。尚、本明細書においては、レンダリングされたイメージに関するアファイン変換を“ワープ(warping) ”と称すると共に、この処理の結果として得られるｇスプライトを“ワープされたｇスプライト(warped gsprite)”と称する。ひとつの実施形態においては、対象物の3-D レンダリングをシミュレートする処理は、1)特性点の幾何的運動を近似するアファイン変換行列を算出する段階と、2)段階1 における近似の精度を測定する段階と、3)もし精度が十分であれば、時間t0におけるｇスプライトのアファイン変換を行うことにより後の時点t におけるそれの位置を近似する段階と、を含んでいる。
【０２６１】
　図２２は、3-D 運動をシミュレートするアファイン変換を行う処理を示すフロー図である。詳細に述べると、図２２は最初のステップ744 で“特性点選択”を示している。以下の検討内容から明らかとなる如く、イメージ処理の間に特性点は選択されず、幾何モデルのオーサー(author)により指定されるのが通常である。
【０２６２】
　対象物の動きをシミュレートするために使用されたアファイン変換は、特性点を用いて計算される。特性点は、対象物の位置もしくは時的に変化する他の重要なイメージ特性を表すべく選択された点である。此処では、3-D モデルの世界座標系とスクリーン空間に変換されたモデルのスクリーン座標系とにおける特性点に言及することから、これらの点を記述すべく使用する語句を明確にすることは有用であろう。此処では、スクリーン空間における特性点を“視認特性点(viewing characteristic points) ”と称し、且つ、世界座標系における特性点を“モデル特性点(modeling characteristic points)”と称する。
【０２６３】
　対象物点の全体を考慮するのではなく特性点の内で代表的なものを選択することにより、アファイン変換の計算は相当に簡略化される。対象物の3-D 運動を正確に近似する為に必要とされる特性点の個数は、モデルに依存して変化する。もし対象物が剛体であれば、対象物全体を囲繞する境界枠から特性点を選択することができる。また、もし境界枠を定義する点を同一の変換法により変換すれば、境界枠点は対象物ジオメトリの変換に従う。
【０２６４】
　また、より複雑な動きを行う対象物に対しては、正確な近似を行う上では更に多くの特性点が必要とされよう。例えば、対象物は、個々の位置を近似する境界枠を夫々有する多数の剛体に部分分割することが可能である。もし対象物が、独立した移動変換(moving transformatoins)を有する階層構造の剛体から成っていれば、移動するサブ対象物の境界枠を結合したものから特性点を導くことができる。
【０２６５】
　別の代替例としては、モデルのオーサーがモデルの特性点を指定することも可能である。この様にすれば、対象物の3-D 移動を近似すべく使用された特性点をオーサーが詳細に指定することが可能となる。以下に更に記述する様に、アファイン変換の精度は多くの距離(metrics) のいずれかに依って確認することが出来る。オーサーが特性点を指定し得る様にすることで、アファイン変換の精度を評価すべく使用されるひとつのもしくは複数の距離に対して適切な点をオーサーが指定し得る様になる。
【０２６６】
　特性点の組が与えられたとき、アファイン変換を計算することにより時間t0から時間t へのｇスプライトの位置変化を近似することができる。この段階は図２２のステップ(746) に示されている。
　アファイン変換は、時間t0および時間t における視認特性点から計算される。特性点が選択された方法に依存し乍ら、モデル特性点は対象物上もしくはその境界枠上の点を表す。これらのモデル特性点の位置は、モデル変換(modeling transform)に係る時間によって変化する。また、視認特性点を見出す為には、モデル特性点に視認変換が乗ぜられる。更に、以下の論議は、2-D ｇスプライトを変換する上で用いられるアファイン変換行列を計算する処理を明確化する上で有用であろう。
　アファイン変換行列のフォーマットは次の如きものである：
【０２６７】
【数１】
2004102998.tif 000004
【０２６８】
　近似の精度を確認するためのひとつの距離は、位置距離(position metric) である。位置距離とは、アファイン変換行列を乗じた、時間t における特性点と時間t0における特性点の位置との間の差を指している。位置距離の為の概略式は次の如きものである：
【０２６９】
【数２】
2004102998.tif 000005
【０２７０】
　位置距離の場合、スクリーン空間内の特性点の位置が最も適切である、と言うのも、スクリーン上の位置の差は、変換されたｇスプライトが対応3-D モデルの動きを如何に正確に近似しているかを表すからである。但し、他の距離に対しては、近似の精度をモデル特性点に関して計算することも可能である。位置距離の例として、スクリーン空間の点を直接的に考察する。ここで、V(t)を視認変換とするとともにT(t)をモデル変換とし、
【０２７１】
【数２】
2004102998.tif 000006
をスクリーン空間の点とする。アファイン変換行列を計算するには、標準的な最小２乗法による解法を使用することが可能である。線形システム
【０２７２】
【数３】
2004102998.tif 000007
を解けば、標準的な最小２乗法による解法は位置距離を最小化する解を与える。
【０２７３】
　３個の特性点が在る場合は、アファイン変換行列を直接的に解くことが可能である。例えば、境界枠の軸心の３個の点を使用するのであれば、時間に依存する以下のアファイン変換行列に対して解は閉じた形の表現となる：
【０２７４】
【数４】
2004102998.tif 000008
である。
【０２７５】
　一般的な場合、アファイン変換行列を解く上では正規方程式(normal equations)もしくは特異値分解(singular value decomposition)などの最小２乗法を用いることが可能である。一般化した問題は以下の様になる：
【０２７６】
【数５】
2004102998.tif 000009
【０２７７】
　アファイン変換行列を解く為には、Ｎx ３行列の擬逆行列(pseudoinverse) を計算せねばならない。また、任意の個数の特性点に対しては、最小２乗法を用いて擬逆行列を解くことになる。ひとつの実施例においては、正規方程式法を用いる。
【０２７８】
　また、Ｘを時間t0における特性点の転置行列(transposed matrix) とし、Ｘを時間t における特性点の転置行列とすれば、
【０２７９】
【数６】
2004102998.tif 000010
である。
【０２８０】
　正規方程式法で解くためには、式の両辺に適合行列(fitting matrix)の転置行列を乗じ、次に、得られた正方行列を反転する。正規方程式の典型的な欠点は、得られた行列が特異になりもしくは丸め誤差により不安定になり易い、ということである。もし特性点が縮退すれば、行列は特異となる。行列の特定の形態においては、各項を正規化することにより丸め誤差を調節することが可能である。
【０２８１】
【数７】
2004102998.tif 000011
【０２８２】
　得られた行列には丁度５個の項がある。3x3 行列は次に反転されて、アファイン変換が得られる。代わりに、x 座標の項の和とy 座標の項の和は特性点の図心に対応することから、座標形を変更して図心を0,0 に平行移動することにより、これらの項は消去することができる。得られる行列は2x2 であり、容易に反転される。
【０２８３】
　アファイン変換行列を計算した後、近似の精度をひとつ以上の距離を用いてチェックする。図２２の判定ステップ(748) は、ひとつ以上の距離をチェックするステップを示すと共に、ロジックが距離に基づいて如何にして分岐するかを概略的に示している。上述の如く、位置距離は、アファイン変換の精度を如何にチェックするかのひとつの例である。アファイン変換が位置距離を満足するか否かを測定すべく、計算されたアファイン変換を用いて変換された時間t0における視認特性点を、時間t における視認特性点と比較する。
【０２８４】
　別の試みは、3-D モデルの内部回転を距離として使用することである。この場合、計算されたアファイン変換を用いて変換された時間t0におけるモデル特性点は、時間t におけるモデル特性点と比較される。
　更に別のこころみは、明暗距離(lighting metric) を使用することである。内部回転に対する距離と同様に、モデル特性点を用いて近似の精度をチェックするのである。
【０２８５】
　上述の距離に加え、他の種々の代替物が在る。これらの距離を計算する為に、特性点に沿って適切な特性データが保持され得る。また、所望の精度に依り、ひとつの距離もしくは各種の距離を組合せて使用することが可能である。
　もし、変換されたｇスプライトを表す特性点が十分に正確であれば、変換されたｇスプライトを、再レンダリングされたｇスプライトの代わりに使用することが出来る。2-D 変換を計算する為に、時間t0に対するｇスプライトにアファイン変換行列を乗ずる(750) 。ｇスプライトのレンダリングと対照的に、この計算では処理時間が極めて短い。従って、2-D 変換による3-D 移動のシミュレートは、イメージをレンダリングするに必要な処理量を相当に減少させるものである。
【０２８６】
　近似の精度に基づき、システムはイメージデータのフレームに対し、そのレンダリング能力の範囲内に納めるに必要な程度までレンダリングの総量を減少することができる。この概念を概略的に示すべく、図２２は、2-D 変換が十分に正確でなければｇスプライトが再レンダリングされることを示している。しかし乍ら、以下に更に詳述する如く、距離に基づいてｇスプライトを受け入れもしくは排除することは必ずしも望ましいことではない。正確に述べれば、或るシーンにおける多くのｇスプライトに対する近似が如何に正確かを決定してから、可能な限り多くのｇスプライトを再レンダリングすることが有用であることが多いからである。
【０２８７】
　ｇスプライトの色ワープ(color warping) ：
　更なる最適化として、レンダリングシステムはフレーム毎の明暗変化をサンプリングすると共にｇスプライトのカラー値を改変してこれらの変化を近似することが出来る。この試みは、1)フレーム間の明暗変化をサンプリングし、2)ｇスプライトのカラー値を改変して明暗変化を近似する（即ち、色ワープを計算する）方法を決定し、かつ、3)もし十分に正確であればｇスプライトに関して色ワープを行って明暗変化を近似する、という基本的な３つの段階を含んでいる。もし、明暗式の評価の後に、明暗が所定量以上変化したことをプリプロセッサが決定したのであれば、それはタイラ(tiler) に対して対象物の再レンダリングを指示する。
【０２８８】
　第１段階において、レンダリングシステムはｇスプライトと組合わされた対象物に対する明暗変化をサンプリングする。それは、対象物がｇスプライトにレンダリングされた最初のフレームと、レンダリングシステムがｇスプライトの色ワープを行って色調変化を近似せんとする次フレームとの間の明暗変化をサンプリングする。ここで、明暗変化をサンプリングするためのひとつの手法は、最初のフレームと次フレームとに対する法線による特性点における明暗式をサンプリングし、これらのフレームの各々におけるサンプリング結果を比較することである。好適には、特性点を対象物上に分布させ、ｇスプライトに跨がる明暗変化を正確にサンプリングせねばならない。特性点の詳細な個数および位置は変更可能であり、一般的には、モデル特有のものとなる。
【０２８９】
　明暗式の一例は：
【０２９０】
【数８】
2004102998.tif 000012
であり、
【０２９１】
　Iaλは周囲の明るさ、
　kaは周囲の反射係数、
　Odλは対象物の拡散色、
　fattは、光エネルギが光源から離間するにつれて如何に減少するかを記述する、光源の減衰率、
　Ipλは点光源からの光、
　kdは、物質毎に変化する、０と１の間の定数である拡散反射係数、
　Osλは、対象物の反射色、
　ksは、０乃至１に亙る、物質の鏡面反射係数、
　(N・ L)は、表面法線N と光源L の方向との間の内積、
　(R・ V)は、反射方向R と視点V との間の内積、
　上添字n は、物質の鏡面反射「べき指数」であり、通常は１乃至数百まで変化し、
　λは、この下添字を有する項は波長に依存することを示している。明暗式を簡略化する為のひとつの仮定は、対象物に対する光の相互作用をRGB カラーモデルが十分に表現し得る、ということである。この仮定に基づき、明暗モデルをR 、G およびB の色要素の各々に適用することが可能となる。
【０２９２】
　上記の明暗式は、対象物の表面上の点における明暗を計算する方法のひとつを例示しているに過ぎない。明暗式は、例えば、光減衰率もしくは鏡面反射を無視することにより、簡略化され得る。3-D グラフィックレンダリングの分野においては、グラフィック対象物の表面上の明暗を表現すべく使用される他の習用の明暗式が種々存在する。従って、グラフィック対象物と結合された特性点における明暗をサンプリングする上では、多数の異なる明暗式の内の任意のものを使用し得る。一般的に、プリプロセッサは明暗式を計算し、（おそらくはRGB 成分の各々に対する）結果的な明暗値I の光度がフレーム毎に如何に変化するかを決定する。
【０２９３】
　フレーム毎の明暗の変化を評価する為に、イメージプリプロセッサは最初のフレームおよび次フレームにおける特性点に対する明暗式を計算するが、これは、特性点における直交面、各フレームに対する光源方向、そしておそらくは、特定の明暗式に伴う他のデータ、を用いて計算される。
【０２９４】
　システムは、ｇスプライトにより表される対象物上の特性点もしくは対象物の有界体積上の特性点における明暗変化をサンプリングすることが出来る。明暗の変化をサンプリングする為のひとつの試みは、対象物の有界体積の表面上の明暗変化をサンプリングすることである。例えば、システムは、対象物もしくは対象物の一部の境界球体上の法線における明暗変化をサンプリングすることが可能である。境界球体はプリプロセッサに対し、対象物の“空間”内で移動しつつある局部的光源により生じ得る重要な変動の追跡を許容する。もし、イメージプリプロセッサが、対象物の図心に位置せしめられたベクトルセットを単純に使用したとすれば、局部的な光源の動きは大きな局部的照度変化を引起こさないが、全体として対象物の明暗に大きな影響を与えることもある。これらの状況においては、境界球体の表面における明暗変化のサンプリングを行えば対象物に対する明暗変化を一層正確に捕捉することも可能であるが、それは対象物の表面上の特性点において選択的に見た場合には達成され得ないものである。
【０２９５】
　更なる代替例として、対象物の特性点もしくは境界球体の表面における法線を組合せて使用し、明暗変化をサンプリングすることも可能である。この試みによれば明暗変化を一層効率的に追跡することが可能である、と言うのも、それは対象物上の特性点と、対象物に対する有界体積の表面とにおける明暗変化を追跡するからである。
【０２９６】
　システムは明暗変化に基づき、これらの明暗変化を近似すべくｇスプライトのカラー値を改変する方法を決定する。ｇスプライトに関して行われる幾何的変換と同様に、システムはｇスプライトのカラー値をワープして明暗変化を近似する方法を計算する。カラーワープを計算するひとつの方法は、上述の最小２乗適合法を使用することである。この段階の結果は、定数、線形もしくは高次のワープとなり、これは、ｇスプライトに跨がるピクセルにおけるカラー値を改変（例えば縮尺率を乗じ、且つ／または、オフセットを加算）すべく用いられる。
【０２９７】
　カラーワープは、ｇスプライトに跨がって適用される乗数もしくは乗数配列を含んでいる。最も単純な場合、カラーワープは単純に、ｇスプライト内の全てのピクセルに適用される一定縮尺率たり得る。より正確なアプローチは、線形もしくは高次のワープを使用して明暗変化を近似することである。好適には、乗数はベクトルによる値とし、カラー要素を独立して換算し得るようにする。色付き光源からの変化を正確に表現する為に、各カラー要素は独立して換算せねばならない。
【０２９８】
　乗数に加え、ｇスプライト内のカラー値に加算されたオフセット値もまた、特性点における明暗変化に基づいて計算され得る。
　乗数およびオフセット値を計算するひとつの手法は、各特性点における明暗式の変化を表す乗数およびオフセットに関し、特性点が対象物の表面、有界体積の表面、または、両者に位置しているかを解くことである。プリプロセッサは乗数、オフセット、または両者を計算し得るが、これは、サンプリング段階の間に観察された各特性点の明暗式の同一なもしくは実質的に同一な変化を引起こす乗数もしくはオフセット、または乗数とオフセットの組合せを選択することにより計算される。これらの乗数および／またはオフセットが一旦計算されれば、ｇスプライト内のカラー値に適用される乗数およびオフセットを計算する方法が多数存在する。ひとつの方法は、乗数を平均することにより、ｇスプライトに対する単一の縮尺率を導くことである。別の方法は、オフセットを平均することにより、ｇスプライトに対する単一のオフセットを導くことである。更に別の方法は、乗数およびオフセットに関して独立的に最小２乗適合法を行い、乗数およびオフセットが対象物の表面上の位置により如何に変化するかを表す式を導くことである。この式は、ｇスプライト内のピクセル位置に対して独立した乗数および／またはオフセットを補間計算するハードウェアにて実現され得る。例えばｇスプライト・エンジンは、各ピクセル位置に対する乗数および／またはオフセットを補間する補間器を備えたラスタライザ(rasterizer)を含み得るが、この補間は、カラー値に乗数を乗じ、または、カラー値もしくは換算カラー値（即ち、ピクセル位置に対して計算された対応乗数により換算された値）にオフセットを加算する前に行われる。
【０２９９】
　システムは幾何ワープの精度を評価するのと同時に、カラーワープの精度も評価するが、これは、カラーワープにより計算されたカラー値を、通常のレンダリング処理を用いて現在のフレームに対して計算された対応カラー値と比較することで行われる。もし、これらのカラー値が所定の許容差と異なるのであれば、ｇスプライトを再レンダリングせねばならない。
【０３００】
　レンダリングの総量を減少することに加え、ｇスプライトのワープは移送遅延(transport delay) をも減少し得る。この点、遠近視点(viewpoint perspective)が急激に変化するアプリケーションにおいては、急激に変化しつつある視認図は移送遅延の故に表示することが困難である。尚、移送遅延とは、視点の変化を引起こす受信入力と、その新たな視点に対する適切なイメージの最終的な表示との間に生ずる遅延のことを指している。図２３は如何にして移送遅延が減少され得るかの例を示している。水平軸心に沿った箇所は、フレーム遅延に対応する時的な経過を表している。
【０３０１】
　この例においては、サンプリング入力とディスプレイ装置への表示出力との間には３フレームの遅延がある。最初に、入力は第１のフレーム774 でサンプリングされる。次に、システムはアファイン変換を計算すると共にｇスプライト内に対象物をレンダリングする(776) 。最後に、フレームに対してレンダリングされたイメージデータは合成されてディスプレイ装置778 にスキャン出力される。これらの段階の各々を実行するに必要とされる時間は、必ずしも、フレーム周期により測定された全体的なフレーム遅延ではないが、概念を示す為にフレーム段階の増加を用いている。図示される様に、入力と、対応イメージデータ表示との間には３フレームの遅延がある。
【０３０２】
　移送遅延を減少する為に、次のイメージからの視点データは現在のイメージのレンダリング段階776 で適用され得る。これは、次のイメージに対する入力段階782 から、現在のイメージのｇスプライト変換およびレンダリングを行う段階776 への矢印により示されている。図２３に示される如く、イメージデータの次のフレームに対する処理段階(782、784 、780)は段階(776、778)の近傍に示されている。図示された様に、処理は情報ルート的に生ずる。現在のフレーム対するｇスプライト変換が計算されると共にレンダリングが行われる一方、次フレームに対する入力がサンプリングされる。而して、レンダリングされたｇスプライトは、次のイメージの視点に対する位置をシミュレートすべくワープされる。この試みによればユーザに関する移送遅延効果は減少される、と言うのも、それによりシステムは遠近視点における急激な変化を一層迅速に調節し得る様になるからである。
【０３０３】
　この関連で移送遅延を減少するのに加え、次のイメージデータを使用することにより他の関連でも移送遅延を減少することができる。
　上記で概略的に述べた如く、ｇスプライトを独立的にレンダリングすることには多くの利点がある。各ｇスプライトは種々の更新速度を有していることから、特定のフレーム内で更新されるｇスプライトの個数も変化する。幾つかのｇスプライトはフレーム毎に更新が必要である一方、他のｇスプライトの更新頻度は更に少ないこともある。もし特定のフレーム内で多数のｇスプライトが更新されるべきであれば、レンダリング総量は劇的に増大してシステムが過負荷になり得る。この問題に対処すべく、システムは優先キューを作り、多数のフレームへレンダリングを配分してｇスプライトを一層効率的に処理することを可能としている。
【０３０４】
　この優先キューを作らなければ、特定フレーム内でレンダリングが予定されるｇスプライトの数は変化してしまう。ｇスプライトに対する更新速度は、それがシーンのフォアグラウンドであるかバックグラウンドであるかに依って変化し得る。上述のアファインワープに対するサポートにより、アファイン変換による位置における変化をシミュレートすることでシステムはｇスプライトの再レンダリングを回避することができる。
【０３０５】
　優先キューを履行する為にシステムは、レンダリングされたｇスプライトの再使用により生ずる歪み量に基づいてレンダリングの優先付けを行う。この歪みは、ひとつ以上のエラー閾値に基づいて計算される。また、ｇスプライトの歪みを定量化する為にシステムは、ｇスプライトがそのエラー閾値に如何に近いかまたは如何に遠いかを測定する。エラー閾値は各ｇスプライト毎に変化すると共に、ひとつ以上の要因に基づいている。レンダリングを行う前にｇスプライトの相対的品質を示すべく、ｇスプライトの歪み順番リストが保持される。その場合、システム資源を考慮して、可及的に多数のｇスプライトがフレーム内で再レンダリングされる。ｇスプライトの再レンダリングの順番は、最も歪みの多いｇスプライトから始め、歪みの少ないｇスプライトへと行われる。この様にして処理を行えばｇスプライトのレンダリングによるフレーム過負荷の可能性が排除されるが、これは、ｇスプライトの精度に対してシーンの複雑さ及び動きをバランスさせる為の効率的なメカニズムを提供する代わりに行われる。
【０３０６】
　上述した特徴に加え、ｇスプライトのレンダリングによりシステムはシーン内の対象物の解像度を変更することができる。これにより、システムはシーンにおけるｇスプライトの重要性に基づいてそれらに処理およびメモリ資源を割当てる。
　ｇスプライトに対する負担は、それが占有するメモリと、それをレンダリングする為に必要な処理とに関して測定することが可能である。もし、ｇスプライトイメージが一定の解像度すなわちスクリーン解像度で記憶かつレンダリングされるのであれば、ｇスプライトにより蒙る負担はそのスクリーンの大きさにより決定される。
【０３０７】
　処理およびメモリ資源の割当ては、スクリーン上における対象物の単なる占有サイズではなく、その種類および位置に基づくことが重要である。シーンのフォアグラウンドにおいて有効対象物は、バックグラウンドにおけるものよりもシーンに対して重要であるのが通常である。しかし乍ら、もしｇスプライトがサイズに基づいて資源を割当てられたなら、バックグラウンドのスクリーンは一層大きいことから処理およびメモリ負担は一層大きくなる。
　システムは、スクリーンの解像度をｇスプライトの解像度から切り離し、ｇスプライトの負担をその最終的なスクリーン範囲から独立させて設定することも可能である。また、システムはこれを達成する上で、ｇスプライトの解像度を適切に選択し、次に、ｇスプライトを適切なサイズに換算する。
【０３０８】
　倍率もしくは縮尺率は、イメージのスクリーン上での大きさおよびｇスプライトの解像度から導くことができる。典型的には、グラフィックスアプリケーションがスクリーンの大きさを与える。また、グラフィックスアプリケーションが解像度を指定する。代わりに、利用し得る資源とシーン内のｇスプライトの相対的重要度とに基づいてイメージプリプロセッサがｇスプライト解像度を決定することも可能である。
【０３０９】
　作動時にイメージプロセッサは出力装置座標内の領域にｇスプライトをレンダリングするが、この領域は、視認空間内でｇスプライトが実際に占有するものよりも小さい。ｇスプライトがレンダリングされる領域のサイズは、解像度およびスクリーンの大きさから導かれる。レンダリングされたｇスプライトは次に、スクリーンの大きさにより定義される実際のサイズに換算される。ｇスプライトは小さな領域を有することから、レンダリングの為に消費するメモリおよび資源は一層少ない。更に、図示された実施例においては、解像度が変化するｇスプライトもまた共通のグラフィック情報経路内で処理される。
【０３１０】
　この試みをサポートするひとつの方法は、ｇスプライトデータ構造内に倍率もしくは縮尺率を記憶することである。次にこの縮尺率は、ｇスプライトが他のｇスプライトと合成されて表示イメージを生成する前の換算に使用され得る。イメージプリプロセッサはｇスプライトの換算を行い得る。より詳細には、上述の内容を実行する上では、DSP がｇスプライトを換算する。
　ｇスプライトが低い解像度に換算され得る様に、それはひとつのサイズにレンダリングされてから小さな表示領域に換算され得る。この技術は、シーン内でサイズが小さくなっていく対象物に適用され得る。フレーム毎に対象物をレンダリングする代わり、システムは対象物を表すｇスプライトを換算することができる。この試みは、ｇスプライトデータ構造内に縮尺率も記憶することで行われる。
【０３１１】
　上記では、イメージ処理システムによるｇスプライト処理を記述すると共に、ｇスプライト変換が如何にして計算されてイメージ処理システム内で適用されるのかを記述した。以下には、ピクセルデータを変換、合成および表示する方法を詳述する。
　この実施例においては、DSP 176 はｇスプライトデータ構造を設定すると共に、それらをイメージ処理ボード174 上の共有メモリ内に記憶する。DSP 176 は、タイラを通してメモリマップインタフェースによりｇスプライト・エンジン・レジスタに読み書きを行う。ｇスプライトエンジン内のレジスタは、現在の表示リストへのポインタを含んでいる。また、ｇスプライトエンジン436 を更に詳細に読むことにより、図１２に関する処が提供される。
　ｇスプライトエンジン204 への主要入力はｇスプライト表示リストである。
【０３１２】
　図２４は、表示リスト800 の一例を示している。これを実現する上で、表示リスト800 は、その各々がバンドマスク802 を伴うSCB(スプライト制御ブロック) ハンドル804 と称されるｇスプライト制御ブロックアドレスの配列を備えている。リスト800 内の最初のワードは、リスト内のｇスプライトの個数を含んでいる。バンドマスク内でビットがセットされていれば、このバンド内にｇスプライトが存在していることが示される。此処では特定の実施例が与えられているが、表示リストは別の手法に依っても実現され得る。例えば、リストは各バンドに対する別個のリストから成り、各バンドリストが当該バンドに影響するｇスプライトを列挙することも可能である。上述の如く、表示リスト内のｇスプライトは深度の順番で記憶され、この場合は前から後への順序で記憶される。
【０３１３】
　ｇスプライト制御ブロック(SCB)806は、ｇスプライトをスキャンして装置座標を出力する情報を含んでいる。矩形のｇスプライトはアファイン変換のもとではスクリーン空間内に平行四辺形としてマッピングされる。
　ｇスプライトのエッジ式は次の形態を有している：A0x + B0y + C0=F0; A1x + B1y + C1=F1; -A0x + B0y + C2=F2; -A1x - B1y + C3=F3。これらの式の各右辺は、夫々の辺部でゼロである。DSP 176 は、ｇスプライトに対するアファイン変換から係数の値を決定する。アファイン変換の後、ｇスプライトの形状は平行四辺形であることから、係数A およびB の２組のみの記憶が必要とされる。C 項は全く必要とされない、と言うのも、ｇスプライトエンジンが必要とするのは始点におけるF の値と、スクリーン空間X およびY 内でのステップによりF の値が如何に変化するのかの記述であり、それは係数A およびB により与えられるからである。出力装置座標への記憶ｇスプライトデータのマッピングをサポートする為に係数の符号が設定されるが、それは、平行四辺形内の点の座標がエッジ式で評価されたときに結果が正の数になる如く行われる。
【０３１４】
　詳細には、SCB が含むのは：A0、B0;A1 、B1; F0、F1、F2、F3; 最左点 xs, ys;最右点 xf, yf; Gスプライトの頂部への最左点の勾配；底部への最左点の勾配；および、平行四辺形の幅および高さである。
　スキャンの開始点は平行四辺形の最左点であり、スキャンはスクリーン空間内で左から右へ向かって列毎に移動する。ｇスプライトを各32スキャンライン・スクリーンバンドにクリップする為に、SCB は始点（最左点）から頂部および底部への勾配dx/dy を含むことから、特定のスクリーンバンド上の最左点が決定され得る。
【０３１５】
　平行四辺形のエッジ式はDSP 176 上で正規化されるが、これは、平行四辺形のひとつの辺にて「F=0 」となり、対向辺にては「F=ｇスプライトの幅もしくは高さ」となる如く行われる。従って、平行四辺形の辺0 および1 に対するF の値は、特定のスクリーン位置X 、Y における特定のｇスプライトイメージサンプルS 、T を直接的に調べるために使用することが可能である。スクリーンX 、Y からｇスプライトS 、T へのマッピングがｇスプライトイメージサンプル上に直接的に落とされることは稀であることから、ｇスプライトエンジンは直近の４個の（もしくは１６個の）ｇスプライトイメージサンプルを補間して出力サンプルを求める。
【０３１６】
　SCB 806 は、元のｇスプライトのサイズ（水平および垂直ストライド）と、スキャンすべきサブｇスプライトのサイズおよび位置（幅、高さ、出発S およびT ）とを含む。それはまた、イメージ塊が如何に圧縮されると共にこのイメージ塊内でどのピクセルフォーマットが使用されたのかを記述するフラグも含み得る。
【０３１７】
　切片技術においては、ｇスプライト（ｇｓｐｒｉｔｅ）は、３２ｘ３２ピクセルチャンクに分けられる。再生のためにグスパイトをチャンクにする必要はない。しかしながら、切片技術は、上述したように、多くの利点を有している。切片技術を支援するために、ＳＣＢは、圧縮チャンクの第１語用の共有記憶領域におけるアドレスを表示する圧縮チャンクの二次元配列ポインタ（チャンクハンドル）を有している。チャンクメモリーは、５１２ビットブロックで処理される。各ポインタすなわちクハンドルは、１８ビットであり、全部で１６ＭＢのアドレス指定可能メモリとなるものである。各チャンクを圧縮するのに必要なメモリー量は可変であるため、各５１２ビットブロックは、次のブロックのための１８ビットポインタを含んでいる。もはや不要となったブロックは、解放されたブロックのリンクされたリストに追記されるので、これらブロックは、別のチャンクで使用可能である。
【０３１８】
　ｇスプライトに割り当てられた対象物をチャンクに分割すると、グスパイトデータ構造は更新され、ｇスプライトの画像データを含むチャンクに対する参照が含まれるようになる。
　ｇスプライトデータは、別のｇスプライトで例示できる。第２０図で示した例では、一つのｇスプライトが別のｇスプライトからの画像データを例示している。ここで、ＳＣＢの第１チャンクハンドル（８０８）が別のｇスプライトのＳＣＢ８１０を指している。別つの方法では、チャンクハンドルは、チャンクが記憶されている記憶領域中の位置を指す。第２５図は、２個のチャンクｇスプライトによる６個のチャンクがディスプレイの水平バンドにマップする態様の事例である。第２５図は、画像データをｇスプライトスペースから物理的出力装置スペースまで走査に使用される出発点８３６と終了点８３４を示している。ｇスプライト画像データがどのようにして出力装置スペースにマップされるかを以下に詳細に説明する。
【０３１９】
　フレーム中のｇスプライトの関連変化を再生および計算した後、画像プロセッサは、表示を行う。第２１図で示すように、画像プロセッサは、ｇスプライトを物理的出力座標に変換してｇスプライトを合成する。ピクセルデータを合成後、画像プロセッサは、これをディスプレイに転送する。
【０３２０】
　本実施例では、ｇスプライトエンジンは、表示リスト中で読み、ｇスプライト画像を出力装置座標にマップする。ｇスプライトエンジンがｇスプライトデータを変換し、ついで表示のためにピクセルデータを合成バッファに送る。合成バッファは、好ましくは、複式としてピクセルデータを別のバッファで合成している間に合成ピクセルデータをブッファから変換出来るようにする。
　さらに具体的には、ｇスプライトエンジンは、共有記憶領域からのｇスプライトＡＹＵＶフォーマット画像データを読み、圧縮解除変換して、ついでこれをフィルタしてＡＲＧＢフォーマットに変換する。さらにこのデータは、ビデオレート（例えば、７５Ｈｚ）で合成バッファに送られる。合成バッファは、圧縮解除されたＡＲＧＢピクセルを１３３４ｘ３２フレームバッファに合成する。
【０３２１】
　第２６図は、ｇスプライトエンジンが画像データを処理する態様を示している。フレーム同期信号を８５８受信時、ｇスプライトエンジンは、各バンドを通してフレームをループ処理し、バンド（８６２）中で各ｇスプライトを走査する。バンドにおいてｇスプライトを走査後に次のバンド（８６０）に移動する。ｇスプライトエンジンは、ビュウスペースの各バンドでの走査を繰り返す。
　リアルタイムアプリケーションでは、ｇスプライトエンジンは、フレームレートにより指定された時間内に走査を完了しなければならないので、ｇスプライトエンジンは、バンドごとにすべてのｇスプライトを処理できなくても良い。
【０３２２】
　このような場合を回避する手だてとして、ｇスプライトエンジンは、自由処理時間に各バンドについての各フレームをホストに戻す。この情報を利用して画像プロセッサは、必要に応じて対象物を集合させていずれの個々のバンドがオーバーロードになるのを防いでいる。
【０３２３】
　ｇスプライトスペースからのピクセルを走査するにおいて、ｇスプライトエンジンは、ピクセルデータを出力装置座標（８６６）へ変換する。従来の多数の走査技法のいずれをもｇスプライトを走査して装置座標を出力するに使用可能である。逆方向および順方向のいずれのマッピングも可能である。ｇスプライトエンジンは、本実施例では、逆方向マッピング法を利用している。
　ＳＣＢのエッジ方程式データを使用して、ｇスプライトエンジンは、ｇスプライトをクリップして各バンドにおける走査の開始する位置を決定する。例えば、第２５図は、ｇスプライトのエッジが第３バンド（８３０，８３２）にクロスするかを示している。交差点がこの個々のバンドにおけるｇスプライトの開始点と終了点となる。一つの走査法では、開始点からジグザグなパターンで走査する。バンドの開始点は、出力装置座標における交差点に最近接するピクセルを出すことにより見つける。開始点が演算でされれば、ｇスプライトエンジンは、ｇスプライトの外側にでる、すなわちバンドの外にでるまで増加方向にステップアップする。次いで１行右へステップしてもｇスプライトの外側にでる、すなわちバンドの外にでるまでステップダウンする。各ステップで、ｇスプライトのピクセルデータを補間し、ピクセル位置のピクセル値を得る。各位置でのピクセル値を演算した時に合成バッファにピクセルデータを送り合成をする。
【０３２４】
　第２７図は、ｇスプライトエンジンと合成バッファが画像データのバンドを処理する態様を示している。この図では、“バンド”なる語は、ピクセルデータのバンドを処理するために割り付けられた時間の量（バンド周期）に関するものである。第２７図に示すように、ｇスプライトエンジン２０４は、バンド８８８のバッファ２１０を満たし、これにより合成画像データがディスプレイ８９２まで走査される。複式バッファを利用することで、これらステップが引き続くバンドにわたりオーバラップされる。ｇスプライトエンジン２０４が一つのバンド８９０の合成バッファを満たしている間に合成バッファは、別のバンドの合成画像データをＤＣＡ２１２，８９２に転送する。次のバンド周期で現在合成されたばかりのバントがディスプレイ８９４表示される。ディスプレイ上の各バンドにつき、この処理を繰り返す。この複式バッファのによりピクセルを変換合成する行程は、バンドを表示する行程と同時に行うことができる。
【０３２５】
　ｇスプライトとは、リアルタイムで合成でき、出力装置で表示される画像を発生させる。合成バッファは、二つの３２走査線バッファを有し、その一つは、合成に使用され、もう一つは、表示のためのビデオデータを発生させるために使用される。この二つのバッファは、交互にやり取りされて一つの走査領域が表示されている間に次の走査領域が合成される。
　ｇスプライトデータは、合成すべき各ピクセルにつき一次カラーデータとα
　データとを合成バッファに転送する。３２走査線αバッファは、合成に使用される走査線バッファと関連させる。ｇスプライトデータは、前後の順に処理されるので、αバッファは、各ピクセルの不透明さを蓄積して、正しいアンチエーリアシングおよび透過を可能とする。
【０３２６】
　走査線カラーバッファは、０．０（全ビットが休止）に初期化され、しかしてαバッファが１．０（全バッファがセット）に初期化される。各ピクセルにつき、走査線バッファにロードされたカラーが計算される。すなわちcolor(new) = color(dst) + color(src)*alpha(src)*alpha(dst)。αバッファに記憶されたα値は、alpha(new) = alpha(dst)*(1 minus alpha(src))により計算される。好ましくは、カラールックアップテーブル（ＬＵＴ）は、２５６ｘ１０ビットである。残りのビット（１０vs８）は、提供されたより正確なγ補正に使用しうる。
【０３２７】
タイル張り
　上述したように、画像プロセッサ（第１図）は、走査−変換を行い、さらに隠れた表面を除去し、アンチエーリエシング、透過度計算、組織化、陰付けが行われる。本章では、走査変換、隠れた表面の削除およびアンチエーリアシングの透明度の演算を詳細に説明する。
【０３２８】
　第４Ｂ図は、幾何学的プリミティブからの再生画像を発生する画像プロセッサ４６２の部分を示すブロック図である。本実施例では、画像プロセッサ４６２は、ラスタライザ４６４，ピクセルエンジン４６６、アンチエーリアシングエンジン４６８、ピクセルバッファ４７０含むラスタ化バッファおよびフラグメントバッファ４７２を含む。“ラスタライザ”は、例えば、多角形などの幾何学的プリミティブからピクセル値を決定する画像処プロセッサの部分に関するものである。ラスタライザ４６４は、プリミティブデータを読みとり、ピクセル位置に関連したピクセル値を出力する。このピクセルデータには、カラー、αおよび深さ（観察点からの距離）を含む。ピクセルが多角形のみに完全にカバーされない場合は、ラスタライザは、ピクセルフラグメントデータを発生する。
【０３２９】
　多角形の変換時、ラスタライザは、ピクセルデータをピクセルエンジンに転送して処理する。ピクセルエンジン４６８は、ラスタライザからのピクセルデータを読みとり、どのピクセルデータをピクセルバッファやセグメントバッファに記憶させるかを判断する。ピクセルバッファ４７２は、二次元配列であり、配列の要素は、ピクセル位置に相当し、カラー、αおよび深さデータを記憶するメモリを含んでいる。フラグメントバッファ４７０は、フラグメントデータを記憶し、ピクセルの部分的カバーを与える。
【０３３０】
　ピクセルエンジン４６６は、ラスタライザで発生された深さ値を利用して隠れた表面の除去を行い、またアンチエーリアシングと透明処理のためのピクセルフラグメントおよび不透明ピクセルを保持する。所与のピクセル位置に対して、最近接の完全カバーされた不透明ピクセルがあれば、これを保持する。この点に関して、“完全カバー”は、走査され、ラスタライザにより変換された多角形に完全にカバーされるピクセルを意味している。またピクセルエンジンは、透明度（１＞α）を有するピクセルとピクセルフラグメントを最近接不透明ピクセルの前方に保持する。ピクセルエンジンは、ピクセルバッファにるピクセル位置に関しての最近接不透明ピクセルを記憶し、フラグメントバッファには、最近接不透明ピクセル前方にあるピクセル位置におけるフラグメントすなわち不透明ピクセルをフラグメントバッファに記憶する。
【０３３１】
　ピクセルエンジンがピクセルデータを発生後、アンチエーリアシングエンジン４６８は、ピクセルおよびフラグメントバッファ内のピクセルデータを解析する。第４Ｂ図に示した画像プロセッサのデザインは、ピクセルデータの複式バッファとフラグメントデータの単一バッファの構成となっている。ピクセルエンジンは、ピクセルデータをピクセルバッファの一つで発生し、フラグメントバッファにフラグメント情報を追加し、この間にアンチエーリアシングエンジンは、別のピクセルバッファかのピクセルデータおよびフラグメントバッファからのフラグメントバッファを解析する。各フラグメントが解析されると、フラグメントエントリが、新たなピクセルデータにより使用されるフラグメントフリーリストに記入される。
【０３３２】
　ピクセルデータを発生および解析するプロセスを概略したが、実施例を詳細に説明する。
　第４Ｂ図のコンポーネントは、タイラーを充足するものである。タイラーは、プリミティブデータならびに共有記憶領域システム２１６（第４Ａ図）からの再生指示を読みとり、再生画像データを発生し、共有記憶領域に圧縮画像データを記憶する。上述したように、システム中の基本３−Ｄグラフィックプリミティブは、三角形である。三角形は、常に平面でかつ凸であるので、三角形再生は、グラフィック発生に使用するハードウェアにおいて数々単純化を与えるものである。しかしながら、こり代わりに、ｎ片の多角形を使用することもできる。
【０３３３】
　タイラー２００のコンポーネントについては上述した。次ぎにタイラー内のデータの流れを説明する。
　タイラーは、ＤＳＰからの入力を受けるので、ＤＳＰ１７６（第４図）の機能の再生から始める。上述したように、ＤＳＰ１７６は、フロントエンド幾何学を実施し、３−Ｄグラフィックに要される照明計算を行う。ＤＳＰ１７６は、モデル、窓表示域変換、クリッピング、照明などを行う。再生コマンドは、主メモリバッファに記憶され、ＰＣＬバス上で画像処理ボードにＤＭＡ（直接メモリアクセス）される。再生コマンドは、次いで共有記憶領域２１６（第４Ａ図）にＤＳＰで必要とされまで一時的に記憶される。再生コマンドは、画像処理動作を行う準備が整った時に、タイラー２００（第４Ａ図）により読みとられる。
【０３３４】
　第２８Ａ図と第２８Ｂ図のフロウチャートに示すように、セットアップブロックは、共有記憶領域から読みとられたプリミティブ再生指示を処理する。頂点入力プロセッサは、入力ストリーム（９１４）（第２８Ａ図）を分析し、頂点制御レジスタ（９１６）にプリミティブ三角形処理に必要な情報を記憶する。
　二つの頂点制御レジスタが、それぞれ３づつ、６個の頂点を記憶する。二つの頂点制御レジスタは、三角形情報を複式バッファ処理を可能としてセットアップエンジンが常に処理する三角形情報をを有するようにする。
セットアップエンジンは、次いでエッジ、カラーおよび三角形表面を横断する組織座標補間を決定する線形方程式（９１８）を計算する。これらの線形方程式は、どの組織ブロックが三角形の再生に必要かを判断するものである。エッジ方程式は、走査変換ブロック（９２０）に通され、走査変換エンジンが必要とするまで走査変換ブロック以内のプリミティブレジスタに記憶される。プリミティブレジスタは、エッジ方程式の多数セットを記憶可能である。
【０３３５】
　セットアップエンジンは、組織アドレスを、組織チャンク用のリクエストを一時的に記憶する組織リードキュー（９２２）に転送する。組織アドレスレジスタは、次いで、要求された組織チャンク（９２４）のメモリ中のアドレスを決定し、組織読み取りリクエストを、走査変換ブロックにより使用される組織データ（９２８）を取り出すコマンド記憶制御ブロック（９２６）（第２８Ｂ図）に送る。
【０３３６】
　組織データは、画像フォーマットと同じ形式でも良い圧縮画像フォーマットで共有記憶領域（２１６）（第４Ａ図）に記憶される。圧縮フォーマットは、個々の８ｘ８ピクセルブロックでなされる。８ｘ８ブロックは、メモリ管理費用を低減するためのメモリ管理の目的で、３２ｘ３２ブロックにグループ化される。
【０３３７】
　組織ブロックが必要となった時に、これらは、タイラーに取り込まれ、圧縮解除エンジン（９３０）により圧縮を解除され、オンチップ組織キャッシュ（９３２）でキャッシュされる。各ブロックがただ一つのカラー成分を記憶可能であったとしても、総じて３２８ｘ８ピクセルブロックがキャッシュ可能である。組織データは、ＲＧＢおよびαフォーマットでキャッシュされる。
　走査変換エンジンは、プリミティブレジスタ（９３４）からエッジ方程式を読み取り、三角形エッジ情報を変換する。走査変換エンジンは、三角形のエッジを歩行し、カラー、深さ、透明度などを補間する補間器を含む。
走査変換エンジンは、組織アドレスを組織フィルタエンジン（９３６）に転送する。組織フィルターエンジンは、再生しようとしている多角形用の組織データを計算する。組織フィルタエンジンは、Ｚ−スロープ、三角形の原点、ｓおよびｔ座標の基づくフィルタの殻を演算する。組織フィルタエンジンに付随する組織キャッシュは、１６の８ｘ８ピクセルブロック用データを記憶する。組織キャッシュは、圧縮解除エンジンにも連通している。この圧縮解除エンジンは、組織データ（圧縮状態で記憶されている）を圧縮解除して組織フィルタエンジンによる使用に具する。
【０３３８】
　組織フィルタリングが完了すると、組織フィルタエンジンは、情報を走査変換エンジン（９３８）に戻し、さらなる処理のために走査変換エンジンにより使用可能である。組織処理の過程で、走査変換エンジンは、三角形エッジデータ（９４０）を変換し、カラーおよび深さ情報を含む個々のピクセルアドレスがピクセルエンジンに転送され処理（９４２）される。
　第２８Ａ図および第２８Ｂ図に図示の方法は、第１０図と第１１図に関連して説明した代替方法に関して変化する。第２８Ｃ図および第２８Ｄ図は、第１０図と第９Ｂ図に争闘する画像データをアクセスする方法を示している。同様に、第２８Ｅ図と第２８Ｆ図は、第１１図と第９Ｃ図に相当する画像データをアクセスする方法を示している。
【０３３９】
　第２８Ｃ図と第２８Ｄ図を参照して、この方法の実行は、第９Ｂ図のセットアップブロック３８１で始まる。頂点入力プロセッサ３８４は、入力データストリーム（９４７）を処理する。次に、頂点制御レジスタ３８６は、入力データストリーム（９４８）からの三角形データを一時記憶する。セットアップエンジン３８８は、次いでエッジ方程式（９４９）を計算し、この結果を走査変換ブロック３９５（９５０）に転送する。
【０３４０】
　走査変換ブロック３９５は、プリミティブレジスタ（９５１）に記憶されたエッジ方程式を読み取り、三角形データ（９５２）を走査変換する。走査変換エンジン３９８は、次にピクセルアドレス、カラーおよびαデータならびにカバレッジデータを含むピクセルデータを組織参照データーキュー３９９（９５３）（第２８Ｄ図）におけるエントリに書き込む。組織マッピング動作の場合において、このエントリは、組織参照データすなわち組織の中心点の座標を含む。エントリは、またレベルデータや異方性フィルタデータを含んでも良い。
【０３４１】
　組織参照データから、組織キャッシュ制御装置３９１は、どの組織ブロックを取り出すかを判断し、適正の組織ブロックがメモリ（９５４）から取り出されるようにする。組織アドレスキャッシュ制御装置３９１は、組織読み取りリクエストをコマンドメモリシステム３８０（９５５）に転送する。組織読み取りキュー３９３は、組織ブロック用の読み取りリクエストを共有記憶領域システムに一時記憶する。メモリ制御装置３８０は、共有記憶領域からの組織データを取りだし、圧縮されていれば、圧縮ブロックを圧縮キャッシュ４０２（９５７，９５８）に配置する。第１０図に関して上述したように、組織キャッシュ中のブロックの交換は、キャッシュ交換アルゴリズムに従って進行する。
【０３４２】
　組織キャッシュ中の画像データを要求する組織マッピングあるいは別のピクセル動作を実行するために、組織フィルタエンジン４０１は、組織キャッシュ４０２に中の画像データにアクセスし、組織の寄与を計算し、この寄与を組織参照データキュー３９９（９５５）からのカラーデータとおよび多分αデータとも組み合わせる。組織フィルタエンジン４０１は、ピクセルデータをピクセルエンジン４０６に転送し、これによりピクセルエンジンは隠れた表面の除去を行い、ラスタ化バッファへのピクセルデータの記憶の制御をする。
【０３４３】
　第２８Ｅ図と第２８Ｄ図は、第１１図の方法に相当するメモリからの画像データのアクセスする方法を示している。この代替方法の実施においは、セットアップブロック２８３のプリミティブを消去することから開始される。頂点入力プロセッサ３８４は、入力データストリームを解析し、頂点制御レジスタ３８７（９６１，９６２）の三角形データを待ち行列に入れる。組織マッピング動作におけると同様に、画像データブロックをメモリからアクセスする必要があれば、プリレジスタライザ３８９は、頂点制御レジスタ３８６で待ち行列となっているプリミティブを走査変化して共有記憶領域９６３中の組織データブロックの読み取りリクエストを発生させる。
　プリラスタライザがセットアップブロックで待ち行列となっているプリミティブを走査すると、組織読み取りリクエストが組織キャッシュ制御装置３９１（９６４）に転送される。組織キャッシュ制御装置３９１は、適正組織ブロック（９６５）を決定し、読み取りリクエストを組織読み取りキュー３９３を介してコマンドメモリ制御ブロック３８９（９８９）（第２８Ｆ図）に転送する。メモリ制御ブロックは、要求された組織データを取りだし、圧縮状態であれば、圧縮キャッシュ４１６（９９０）にこの組織データを記憶する。圧縮解除エンジンは、圧縮キャッシュ４１６内の組織ブロックを圧縮解除して圧縮解除したデータを組織キャッシュ４０２（９９１，９９２）に書き込む。組織キャッシュ制御装置は、圧縮キャッシュ４１６から圧縮解除エンジン４０４から組織キャッシュ４０２への組織ブロックのフロウを管理しする。
【０３４４】
　走査変換ブロック３９７は、セットアップブロックで待ち行列となっている幾何学的プリミティブを読み取る。走査変換ブロック３９７は、組織キャッシュブロック４０２で要求された組織データが利用可能であれば即座にピクセル発生動作を実行する。これらピクセル動作の過程で、走査変換エンジン３９８は、プリミティブレジスタ（９９３）からエッジ方程式を読み取り、組織アドレスを組織フィルタエンジン４０３（９９４）に転送する。組織フィルタエンジンは、組織キャッシュ４０２中に記憶された適正画像データにアクセスし、次いでフィルタされたデータを走査変換ブロック３９７（９９５）に戻す。走査制御変換ブロック３９７は、三角形データを変換し、変換された三角形データおよぴフィルターされたデータ（９９６）から出力ピクセルデータを演算する。次いでこの出力ピクセルデータをピクセルエンジン４０６に送る。
【０３４５】
　ピクセルエンジン４０６は、隠れた表面の除去とブレンド動作とをむピクセルレベル計算を実行する。隠れた表面の除去を実行するため、ピクセルエンジン４０６は、入力してくるピクセル（完全にカバーされたピクセルあるいはピクセルフラグメント）のための深さ値とピクセルあるいはフラグメントバッファ中の相当位置でのピクセルと比較する。陰影動作では、ピクセルエンジン４０６は、深さ比較動作を実行し、シャドウマップ中の位置での光源に最近接する第１と第２プリミティブを決定し、必要に応じて第１と第２の最近接プリミティブを更新する。ピクセルレベル計算の実行後に、ピクセルエンジンは、ピクセルあるいはフラグメントバッファに適正データを記憶する。
【０３４６】
　タイラーは、非不透明ピクセルを取り扱う高品質アンチアリエーシングアルゴリズムを実行する。ピクセルバッファは、チャンク中のピクセル位置に関する最先端非透明ピクセル用のピクセルデータを記憶する。フラグメントバッファは、半透明のピクセル用の、および相当する位置におけるピクセルバッファ中のピクセルより観察点に近い部分的にカバーされたピクセル用のピクセルフラグメントを記憶する。一つのピクセル位置に関して一つ以上のフラグメントがフラグメントリスト構造を利用して記憶することが出来る。解析と称されるプロセスにおいて、アンチアリエーシングエンジンは、フラグメントリストを処理してピクセル位置に関するカラーとα値とを演算する。
【０３４７】
　発生するフラグメント数を減らすために、ピクセルエンジンは、発生中のフラグメントと現在バッファに記憶されているしているフラグメントを比較するピクセルフラグメントとをマージする方法を実施する。新と旧のフラグメントの寄与（カラーと深さ）が既設定の許容範囲で同等ならば、フラグメントは、フライ上で組み合わされ、さらに別のフラグメントが発生することがない。
　組み合わされたフラグメントが完全にカバー（完全カバレッジマスクと不透明αとともに）されたものと判断されたら、フラグメントは、カラーバッファに書き込まれ、フラグメント位置が現在のチャンク内の引き続く多角形に使用されるまで解放される。
　チャンクのすべての多角形が際されたならば、ピクセルバッファがスワップされる。一方アンチアリエーシングエンジンがフラグメントバッファとピクセルバッファの一つとのピクセルデータを解析している間に、ピクセルエンジンは、次のチャンクのピクセルデータを別のピクセルバッファに書き込み、また残りの解放位置をフラグメントバッファに書き込む。一般に、ピクセル解析は、ピクセルおよび位置相当フラグメントバッファ中におけるピクセルデータに基づくピクセル位置の単一のカラー値（および多分αも値も）を計算する段階を含んでいる。これらについて以下に詳細に説明する。
【０３４８】
　第９Ａ図から第９Ｃに図示の図タイラーの実行動作において、ピクセルエンジンは、単一のフラグメントバッファと一対のピクセルバッファとをアクセスする。３２ｘ３２ピクセルバッファは、ピクセルエンジンとアンチアリエーシングンとの間の複式バッファのために提供されている。ピクセルバッファエントリは、以下のデータを包含する。
【０３４９】
【表２】
2004102998.tif 000013
【０３５０】
　ここでＲ、Ｇ、Ｂは、赤、緑および青のカラーコンポーネントであり、αは、ピクセルのの半透明度を示すα成分であり、Ｚは、眼点からのピクセルの深さを示す深さ成分である。ｘ、ｙアドレスは、固定され暗にピクセルバッファアドレスを意味する。一カラー成分（すなわち赤、緑、青）ごとに８ビットが用いられ、８ビットがα成分に用いられ、２６ビットがＺ値、ステンシル値および優先値を与えるために用いられる。２６ビットのうち、２４ビットまでが、Ｚ値として用いられ、３ビットまでがステンシル面として用いられ、３ビットまでが優先値として用いられる。第９図に関して上述したように、バッファは、また９ビットのフラグメントバッファポインタを含んでいる。
【０３５１】
　優先値は、プリミティブごとに固定され、Ｚ比較動作中記憶されたＺ値と比較して入力してくるピクセルＺ値をマージすべくタイル張りエンジンにより用いられる優先関係を利用して地形の頂上のロードなどの共通平面上の対象物の解析を支援する。
　フラグメントバッファは、エッジがて所与のピクセルとクロスする多角形の、あるいは半透明度を持った多角形のピクセルフラグメントについての情報を記憶するのに使用される。フラグメントバッファの各エントリは、カラー、α、Ｚおよび表面と関連するカバレッジデータを提供する。
【０３５２】
　多フラグメントバッファエントリは、多角形が同じピクセル位置で部分カバレッジを有している場合のための単一ピクセルと関連づけられる（リンクされたリストメカニズムを介して）。フラグメントバッファは、複式ポートであり、アンチアリエーシングエンジンとピクセルエンジンの双方により並行に動作可能である。フラグメントバッフアの実施の一つにおいて、フラグメントバッファは、フラグメント記録の一次元配列であり、総じて５１２のフラグメント記録エントリを含む。フラグメントバッファのメモリ管理は、リンクされたリスト構造を用いて実行される。各フラグメントバッファエントリは、以下のデータを含んでいる。
【０３５３】
【表３】
2004102998.tif 000014
【０３５４】
　ここでＲ、Ｇ、Ｂは、赤、緑、青のカラー成分であり、αは、ピクセルの半透明度を示すα値であり、Ｚは、眼点からのピクセルの深さを示すＺ値であり、Ｍは、部分的にカバーされたピクセル用の４ｘ４ピクセルカバレッジビットマスクであり、Ｐは、次のフラグメントバッファエントリに対するポインタであり、Ｓは、フラグメントステンシルを示すために用いられる。８ビットがカラー成分（すなわち赤、緑、青）ごとに用いられ、８ビットがα成分ごとに利用され、２６ビットがＺ値＋ステンシルと優先度とを記憶するために用いられ、９ビットがフラグメントポインタのために用いられる。
【０３５５】
　ピクセルカバレッジマスクは、各エッジのカバレッジマスク値を決定し、これらをビット方向にＡＮＤをとることにより演算される。カバレッジマスクの演算は、２段階のプロセスで行われる。第１段階で、カバレッジマスク中のサブピクセルのいくつがオンになるかを判断し、第２段階でどの特定ビットが有効であるかを決定する。
【０３５６】
　第１段階は、いくつのカバレッジマスクビットがオンとされようとしているかを決定すべくエッジによりカバーされるピクセルエリアに使用される。このエリアは、エッジスロープとピクセル中心からの距離で索引されるテーブルルックアップにより演算される。第２段階は、エッジスロープを利用してサンプルビットがオンとなる順序を決定する。ビット順序のセットが、“カバレッジ順序”テーブルと称される既演算テーブルに記憶させる。各カバレッジ順序テーブルエントリは、スロープ値の範囲に関して正しいサンプルビットの特定順序からなる。エッジスロープは、スロープ範囲のセットに対してテストされ、このスロープ値の
を含む範囲と関連する索引がカバレッジ順序テーブルへの索引として使用される。
【０３５７】
　カバレッジマスクの演算方法は、Schilling, A. の“サブピクセルマスク付きの新単純有効アンチアリエーシング”Computer Graphics 第２５巻、Ｎｏ．４、１９９１年７月、第１３３頁から第１４１頁。
【０３５８】
　隠れた表面の除去およびフラグメントマージング
　ピクセルエンジンが、入力してくるピクセルデータについて深さ比較動作を行うことにより隠れた表面の除去を行うことを上述した。またピクセルフラグメントがマージされ、フラグメントメモリを解放することも上述した。フラグメントマージングは、記憶要求を低減し、所与のシーンをアンチアリエースし、フラグメント解析の速度を上げ最終画像を生成する。隠れた表面の除去の実施方法につき説明する。これには、入力してきたフラグメントが記憶されたフラグメントの既決定カラーと深さの許容範囲内にある場合に入力してきたピクセルフラグメントを記憶されたピクセルフラグメントとマージする方法も含んでいる。
【０３５９】
　第４Ｂ図は、ラスタライザ４６４、ピクセルエンジン４６６，ピンセルおよびフラグメントバッファ４７０，４７１とを含むタイラー４６２内のコンポーネントを図示するブロック図である。ピクセルおよびフラグメントバッファは、選定したピクセルデータを記憶するためのラスタ化バッファとなる。ラスタライザが幾何学的プリミティブを横断する際にピクセルデータの事例を発生する。ピクセルエンジンは、Ｚバッファ動作を制御し、さらに入力してくるピクセルフラグメントが、相当するピクセル位置でフラグメントバッファに記憶されたピクセルフラグメントとマージ可能かどうかを判定する。第９Ａ図から第９Ｃ図に図示のタイラーならびに上述の関連説明は、タイラーの具体的実施方法に関するさらなる詳細を与えるものである。以下に説明するピクセルフラグメントのマージングの方法並びにハードウェアは、これらタイラーの設計および同様な代替設計において実施できるものである。
　上述のしたごとく、タイラー内の走査変換ブロック（ラスタライザ）は、１）完全にカバーされた不透明ピクセル、２）完全にカバーされた半透明ピクセル、３）部分的にカバーされた不透明ピクセル、４）部分的にカバーされた半透明ピクセル表示するピクセルデータの事例を発生させる。
　ピクセルバッファは、最先端の完全にカバーされた不透明ピクセルのカラーおよび深さ（Ｚ）を記憶する。またピクセルバッファは、充分にカバーされていないカバレッジマスクあるいは、充分に不透明でないαを有するフラグメントを含むフラグメントリストに対するポインタを記憶する。フラグメントリスト中のヘッドすなわちだい１フラグメントは、もっとも最近処理されたピクセルフラグメントである。この特定の実施方法では、ピクセルエンジンは、入力してくるピクセルフラグメントともっとも最近のピクセルフラグメントとをマージする。多角形の再生には、ある量の特殊なコヒーレンスがあるので、所与のピクセル位置に関して発生したもっとも最近のフラグメントとのマージングは、マージの成功度を増大させる。
【０３６０】
　各ピクセル位置に対するフラグメントリストは、分類してない形式で保持されている。またヘッドフラグメントは、特定ピクセル位置で発生したもっとも最近のフラグメントである。ヘッドフラグメントの背後のピクセルフラグメントは、分類されていないが、フラグメント解析段階の最適化を支援するために付加的演算時間が得られるのであれば、分類が可能である。
　別の代替実施方法において、ピクセルエンジンは、フラグメントマージ基準合致するピクセルフラグメントをフラグメントリストで検索するために付加的ロジックを含んでいる。この方法は、検索ロジックのオーバーヘットがより高いマージ候補を認識する際のインクリメンタルな改良を正当化しな理由で好ましくない。これは特に、マージプロセスで消費される付加的クロックサイクルがアニメーションのフレームを再生するに必要な時間を増大するリアルタイムシステムでは特にそうである。
【０３６１】
　別の実施方法では、ピクセルエンジンは、ピクセルフラグメントの深さ分類リストを保持し、かつ所与のピクセル位置での観察点に最近接するフラグメントとのマージを試みる。この最後の方法は、しかしながら、好ましくない。なぜなら成功しうるマージ候補すなわち、入力してくるフラグメントに対して所定許容範囲内のＺ値とカラー値を有するフラグメントを見つけることが出来そうもないからである。これは、付加的なフラグメントメモリの供給単純化する潜在的利益を有している。もしマージされたピクセルが完全にカバーされ、不透明であれば、マージされたピクセルは、ピクセル位置に関して、記憶された別のピクセルフラグメントより観察点により近いので、そのピクセル位置での全ピクセルフラグメントは、解放することが出来る。
【０３６２】
　第２９図は、タイラー内の隠された表面の除去とフラグメントマージングの実施方法を示すフロウチャートである。処理は、まずピクセル位置でのカラー、Ｚおよびカバレッジマスク（９６８）を有するピクセルデータの新事例の発生で始まる。もしこの位置でのピクセルバッファＺがピクセルデータの新しい事例（完全にあるいは部分的にカバーされたピクセル）（９７０）のＺより近ければ、ピクセルデータの新しい事例は、完全に不明瞭であり、破棄される（９７２）。ラスタライザが被再生プリミティブの現在のセットに対してすべてのピクセルを発生するまで、処理がさらに次のピクセルデータの事例で続けられる。
【０３６３】
　ピクセルデータの新事例のＺよりピクセルバッファＺが近くなければ（すなわちピクセルデータの新事例のＺが観察点により近い）、ピクセルエンジンは、入力してくるピクセル（９７４）に対するカバレッジマスクを吟味する。入力してくるピクセルの対するカバレッジマスクが充分な場合は、ピクセルエンジンは、ピクセルバッファーカラーとＺを新しいカラーとＺ（９７６）とに入れ換える。この場合に新たなピクセルデータがフラグメントリストに追加されず、メモリが節約される。
【０３６４】
　もしピクセルデータの新事例のカバレッジマスクが充分でなければ、ピクセルエンジンは、マージテストを行い、新しいカラーとＺがヘッドフラグメントのカラーとＺ（９７８）の所定の許容範囲内であるか否かを判定する。このマージテストは、入力してくるピクセルのα（半透明度）がヘッドフラグメント中の所定の許容範囲内にあるか否かを判断することも含めることができる。もし新しいフラグメントカラーとＺが所定の許容範囲にない場合は、新しいピクセルフラグメントは、フラグメントリスト（９８０）のヘッドでフラグメントバッファに加えられる。
【０３６５】
　もし新しいフラグメントカラーとＺが所定の許容範囲にあり、新しいカバレッジマスクが充分でない場合は、入力してきたピクセルフラグメントは、フラグメントリスト（９８２）のヘッドフラグメントにマージされる。ピクセルエンジンは、ヘッドカバレッジマスクと新しいカバレッジマスクについてＯＲ演算を行ってピクセルフラグメントをマージし、結果をヘッドカバレッジにの残す。
【０３６６】
　カバレッジマスクの組み合わせ後、マージされたヘッドカバレッジマスクが吟味され、それが完全カバーされたピクセル（９８４）を示すものか否かを確認する。もしマージされたヘッドカバレッジマスクが完全でなければ、次のピクセルデータ（９６６）の事例で処理を継続する。もしマージされたヘッドカバレッジマスクが完全であれば、マージされたヘッドカバレッジマスクは、完全ピクセルカバレッジを与える。よって、ヘッドフラグメントに使用される記憶装置は、解放され（９８６）、ヘッドフラグメントカラー、Ｚおよびカバレッジマスクは、新しいヘッドフラグメントカラー、Ｚおよびカバレッジマスク（９７６）と入れ換えられる。
【０３６７】
　ピクセルエンジンが、ピクセルバッファのエントリを新しい完全にカバーされたピクセルに入れ換える場合には、ピクセルエンジンは、深さ値がこの完全にカバーされたピクセル（９８８）より大きな相当するフラグメントリストにおける全てのピクセルフラグメントを解放する。これは、入力してくる完全にカバーされた不透明ピクセルが、同じピクセル位置でのピクセルバッファエントリより大きな深さ値を有している場合に起こる。またこれは、マージされたフラグメントが完全にカバーされた不透明のものであり、かつ同じピクセル位置でのピクセルバッファエントリより低いＺを有している場合におこる。この場合には、ピクセルエンジンは、フラグメントリストを縦断して、新しい完全にカバーされたピクセルのＺをリスト中のフラグメントのＺと比較して、新しい完全にカバーされたピクセルのＺより大きいＺを有する各フラグメントを解放する。あるいは、Ｚバッファは、パッキングプロセスに対して省略可能であり、フラグメントリストの走査の必要性をなくし、リアルタイム性能を改良する。
【０３６８】
　第２９図に図示の方法は、所与のスクリーンをアンチアリエースするメモリ記憶要求を低減し、使用されないピクセルフラグメントを破棄することにより最終グラフィック画像を発生するためのフラグメント解析の速度を高めている。カラーとＺの許容範囲を調節することにより、破棄された発生フラグメントの数を、ユーザの必要性に依存するアンチアリエーシング精度に対してバランスさせることが出できる。もしカラーとＺがピクセルセンタにもっとも近い多角形のエッジで評価されれば、より狭いカラーとＺの許容範囲が使用され、これでまたメモリの節約となる。
【０３６９】
　第３０図は、入力してくるピクセルフラグメントに対するマージテストを実行に使用されるフラグメントマージ回路の一例を示すブロック図である。この例では、ピクセルエンジンは、入力してくるカラー（Ｒ、Ｇ、Ｂ）、αおよび深さの各値を入力してくるピクセルの位置に関するもっとも最近のピクセルフラグメントのカラー、αおよび深さの各値と比較する。“ｎｅｗ”と表示されているカラー、αおよび深さの各成分は、入力してくるすなわち新しく発生しされたピクセルデータの事例を示し、“ｐｒｅｖ”と表示された成分は、ピクセル位置でのもっとも最近のピクセルフラグメントである。
　ピクセルエンジンがフラグメントリストを縦断してカラーおよび深さの許容範囲内のピクセルフラグメントを発見する場合の代替実施例において、“ｐｒｅｖ”と表示された成分は、マージテストを使用して解析されるピクセル位置用のフラグメントリストにおけるピクセルフラグメントおのおのを示すもののである。
【０３７０】
　マージテストブロック１０００から１００８は、新しいピクセルフラグメントと前のピクセルフラグメントとの深さ、カラーおよびαの各成分を比較し、もし新しい値と前の値が所定の許容範囲にある場合は、新しいピクセルフラグメントは、マージ候補であることを示すビットを出力する。ピクセルエンジンは、次いでビット方向のＡＮＤ（１０１０）をとって各マージテストに合格したか否かを判定する。もしそうであれば、ピクセルエンジンは、新しいピクセルフラグメントと前のピクセルフラグメントとをマージする。ピクセルエンジンは、新しいカバレッジマスクと前のカバレッジマスクとのＯＲをとって前のフラグメントに対する新しいカバレッジマスクを演算する。もしいずれかのマージテストに合格しない場合は、ピクセルエンジンは、新しいピクセルフラグメントをフラグメントリストのヘッドに追加する。この新しいフラグメントは、リンクされたリストの一部となり、フラグメントリストの前のヘッドを指すことになる。
【０３７１】
　図３１は、 組み合わせテストモジュール１０１２をさらに詳細に図示するブロック図である。 組み合わせテストモジュールは、 新規値と前回値の差の絶対値を計算する１０１４。 組み合わせテストモジュールの比較器１０１６はティラーレジスタ(tiler register)１０１８に格納された基準値との差を比較し、 新規値と前回値が所定の許容範囲内にあるか否かを示す論理値を発生する。 組み合わせテストモジュールから出力された論理値は図３０に示すようにビット式のＡＮＤブロック１０１０に入力される。 ビット式のＡＮＤの出力は各色調値、 アルファ値及び深さ値が所定の許容範囲内にあるか否かを示す。 もし、 示すなら、 上記のように、 ピクセルエンジンは入って来る先頭のピクセルフラグメントを組み合わせる(merge) 。 
【０３７２】
　上述のように、 ピクセルフラグメントを組み合わせる方法に対する数多くの適用し得る変数がある。 他の方法としては、 ピクセルエンジンはフラグメントリストを調べて１）リストの末尾に達するまでか、 又は２）組み合わせテストを満足する格納されたピクセルフラグメントを見つけるまで各ピクセルフラグメントに組み合わせテストを行う。 さらに他の方法としては、 ピクセルエンジンは、 例えば、 入って来る各フラグメントで挿入ソート(insersion sort)を実行することによりピクセルフラグメントをソートされた形式に保持することができる。 ピクセルエンジンは、 入って来るピクセルフラグメントを、 観察点 (view point) に最も近いピクセルフラグメントと（最も低いｚ値と）のみ組み合わせを試みることができるか、 又はピクセルの位置として格納された数個のピクセルフラグメントで組み合わせを試みることができる。 
【０３７３】
ピクセルメモリのオーバーフローを防止するための画像領域の細分割
　幾何学的なプリミティブをラスタライズ(rasterize) するとき、 ティラー(tiler) はピクセルデータをピクセル及びフラグメントバッファ内に格納する。 また、ティラーはこのピクセルデータを処理ステップで解像する。 ティラーはこのピクセルデータを格納するために固定サイズのメモリを使用するので、 メモリ容量が不足する可能性がる。 この問題に取り組むために、 ティラーはメモリ容量をモニタして、 可能なら、 その時点でフラグメントメモリをオーバーフローさせていない画像部分のサイズを小さくする。 
【０３７４】
　一実施例において、 ティラーは、 たくさんの３２×３２ピクセルチャンク(chunk) を処理することによってグラフィック出力画像を構築する。 図３２は、 ピクセル及びフラグメントバッファの一部分を図示する図である。 この例に示されるように、 ティラーは関連する５１２個のエントリフラグメントバッファ（１１２０）を使用する３２×３２ピクセルバッファ（１１１８）を解像する。 この具体例においては、 フラグメントバッファは、 ３２×３２ピクセル出力バッファを形成するために後処理ステージで結合される５１２個のピクセルフラグメントまで格納することができる。 ３２×３２出力ピクセルバッファを生成するために５１２個のピクセルフラグメントを使用する際に、 微細に碁盤目状に配列された対象物(object)又はかなりの半透明を含む対象物をラスタライズするときフラグメントメモリを使い尽くす可能性が明確に存在する。 これらの場合、 更なるフラグメントメモリは、 部分的にカバーされるか半透明なピクセルのピクセルフラグメントデータを格納する必要がある。 ５１２個のピクセルエントリを有するフラグメントバッファは１０２４（３２×３２＝１０２４）個のピクセルを格納する３２×３２出力バッファと同数のピクセルの１／２だけを格納する。 
【０３７５】
　このメモリの限界の問題を緩和するために、 ティラーにおけるピクセルメモリのフォーマットは階層的分解の２レベルを支持するように構成される。 図３３は、この階層的分解を図示する図である。 フラグメントメモリが３２×３２ピクセルバッファを処理するときに使い尽くされると、 ティラーは、 ピクセルフラグメントバッファをフラッシュ(flush) すると共に、 四つの１６×１６ピクセルサブバッファの組（１１２２）に対してプリミティブの入力の流れを再処理する。 １６×１６ピクセルバッファを５１２個のフラグメントエントリメモリシステムで処理すると、 所望の出力ピクセルより２倍のフラグメントエントリを得ることができ、 部分的にカバーされるか又は半透明の数多くのピクセルで巨大な数のケースを取り扱うことになる。 
【０３７６】
　フラグメントメモリが１６×１６ピクセルサブバッファのいずれかを処理するときに使い尽くされると、 ティラーはピクセル及びフラグメントバッファをフラッシュすると共に四つの８×８ピクセルサブバッファのセットに対してプリミティブの入力の流れを再処理する（１１２４）。 １６×１６ピクセルサブバッファの夫々は四つの８×８ピクセルサブバッファに分割されて全部で１６の８×８サブバッファになる。 ８×８ピクセルバッファを５１２個のフラグメントエントリメモリシステムで処理すると、 所望の出力ピクセルより８倍のピクセルエントリを得ることができ、 最も考え得る複合グラフィック対象物を取り扱うことになる。８×８サブバッファの付随的な利益はそれらがピクセルデータを圧縮するのに使用される圧縮エンジンが必要とするフォーマットにあり、 更なるピクセルバッファの分解を圧縮の前に必要としないことである。 
【０３７７】
　各ピクセルサブバッファ（即ち、 １６×１６又は８×８のもの）は連続的に処理されるときに、 それらのピクセルは解像されて圧縮エンジンに送出される。 ティラーは完全な３２×３２ピクセルバッファの解像、 圧縮の順に１６×１６及び８×８サブバッファを処理するので、 すべてのサブバッファの処理が完了すると、追加処理を要求することなく、 圧縮されたフォーマットでシステムメモリに格納された完全な３２×３２ピクセルバッファが形成される。 
【０３７８】
　バッファ分解処理は要求 (demanding)　ケース（例えば、 かなりの半透明、 影、及び一つ以上の光源による照明によって微細に碁盤目状の対象物を重ねること）を処理の途中で反復的に取り扱うのに適用される。 この方法を以下に説明する。 
【０３７９】
　図３４Ａ及び図３４Ｂは、 ティラーにおけるバッファの分解方法を図示するフロー図である。 ＤＳＰは、 描出 (rendering)　コマンド、 及びチャンク(chunk)と呼ばれる画像領域の間でソートされるポリゴン (polygon)　を含む入力データの流れを発生する。 そして、 ＤＳＰは入力データの流れを処理のためにティラーに送出する。 その入力データの流れ中の描出コマンドに応じて、 ティラー内のラスタライザは入力データの流れの中のポリゴンをラスタライズしてピクセルデータを発生する（１１３０, １１３２, １１３６）。 　この特別な例において、 フロー図は、 ポリゴンが直列に処理されることを図示している。 しかしながら、 プリミティブを描出するにはたくさんの方法がある。 プリミティブをラスタライズする手法は分解処理にとって決定的 (crytical) ではない。 
【０３８０】
　ラスタライザがピクセルデータを生成するとき、 フラグメントバッファの容量をモニタする。 この具体例においては、 ラスタライザはフラグメントメモリに加えられる各エントリのバッファカウンタをインクリメントさせ、 ピクセルデータを発生するときのカウンタの値をチェックする（１１３８, １１４２）。 バッファカウンタの値が５１２に達すると、 フラグメントメモリはいっぱいになる。 この点において、 ティラーは現在のチャンクサイズをチェックしてピクセルデータをどのように細分割するかを決定する（１１４４, １１５０）。 
　ここに記載され図示されている特定の具体例においては、 メモリ分解はフラグメントメモリがその容量、 即ち５１２個のピクセルフラグメントに達するときに開始される。 しかしながら、 フラグメントメモリが容量いっぱいになる前に分解を開始することもできる。 
【０３８１】
　チャンクサイズが３２×３２ピクセルであるときは（１１４４）、 ティラーはチャンクサイズを四つの１６×１６ピクセルチャンクに分割する（１１４６）。そして、 ティラーはピクセル及びフラグメントバッファをクリアして（１１４６）現在のチャンクの入力の流れを四つの１６×１６サブチャンクにラスタライズするのを開始する（１１５８）。 この具体例において、 ＤＳＰは、 チャンクの入力の流れを再び送出する。 サブチャンク間で再ソートされたポリゴンよりむしろ、ティラーは各サブチャンクに対して繰り返しポリゴンの入力の流れを処理し、 各サブチャンク以外にあるポリゴンを拒否する。 他の方法として、 ＤＳＰは入力データの流れを再処理して、 各サブチャンク領域間の流れの中のポリゴンをソートする。 この他の方法は、 各サブチャンクのポリゴンの数を減少させるが、 ＤＳＰ中の処理経費(processing overhead) を増大させる。 
【０３８２】
　ティラーは、 同様の方法で１６×１６サブチャンクを処理する（１１５０, １１５２）。 現在のチャンクサイズが１６×１６ピクセルであれば、 ティラーはチャンクを８×８ピクセルに分割してピクセル及びフラグメントバッファをクリアする（１１５２）。 この具体例において、 ティラーはチャンクを８×８ブロックより小さくには再分割しない。 この場合５１２個の要素であるフラグメントメモリの容量は、 画像チャンクを８×８ブロックに細分割することによって微細に碁盤目状及び／又は半透明の対象物を取り扱うのに十分であるべきである。 しかしながら、 ここに記載されているティラーは一つの可能性がある方法であり、 画像のサイズを細分割する必要性は、 シーン (scene)　の複雑性、 サポートされたアンティエーリアシング (anti-aliasing)　及び半透明性の形成、 フラグメントバッファのメモリ容量のような要因によって変化する。 
【０３８３】
　バッファカウンタが８×８ピクセルブロックに対して５１２に達すると、 ティラーは更に８×８ピクセルチャンクと関連するピクセルフラグメントを解像してバッファスワップを行う（１１５４）。 ８×８チャンクが解像された後で、 ティラーはさらに８×８ピクセルチャンクがあるか否かをチェックする（１１５６）。更に８×８ピクセルチャンクがあれば、 続いて次の８×８サブチャンクのポリゴン処理を再び開始する（１１５８）。 
　他に８×８チャンクが残っていなければ、 ティラーは更に１６×１６ピクセルチャンクがあるか否かをチェックする（１１４８）。 １６×１６ピクセルチャンクが残っていれば、 ティラーは残った１６×１６ピクセルサブチャンクに対してポリゴン処理を再び開始する（１１５８）。 他に１６×１６ピクセルチャンクがなければ、 ティラーは次のチャンクに対して入力データの流れを作り（１１６０）、その中でのポリゴン処理に進む（１１５８）。 
【０３８４】
　チャンク又はサブチャンクの入力データの流れを処理しているときにフラグメントバッファの容量が超過しないなら、 ティラーはピクセル及びフラグメントバッファでの画像データの解像に進む（１１３２, 　１１３４）。 ティラーが現在のチャンクでの入力データの流れの処理を完了していれば、 チャンク又はサブチャンクの解像フェーズを開始する。 例えば、 チャンクサイズが３２×３２ピクセルであれば（１１６２）、 ３２×３２ピクセルチャンクが解像され、 バッファがスワップされる（１１６４）。 そして、 続いて次のチャンクを取得する（１１６０）（図３４Ａ）。 
【０３８５】
　チャンクサイズが１６×１６ピクセルであれば（１１６６）、 １６×１６ピクセルチャンクが解像され、 バッファがスワップされる（１１６８）。 ティラーは１６×１６チャンクが更に残っているか否かのチェックに進む（１１４８）。 もし、 残っていれば、 次のサブチャンクのポリゴンを再び送出することによりポリゴン処理を再び開始し、 残っていなければ、 次のチャンクの入力の流れを取り込んで、 そのチャンクのポリゴン処理を開始する（１１６０）。 
【０３８６】
　チャンクサイズが１６×１６ピクセルでなければ、 それは、 デフォルトによって８×８ピクセルである。 ティラーは次いで８×８ピクセルチャンクを解像し、バッファをスワップする（１１５４）。 そして、 ティラーは残りの８×８サブチャンク、 更に残りの１６×１６サブチャンクを処理する。 残りのサブチャンクの処理を完了した後、 ティラーは次のチャンクに進む。 処理は、 入力データの流れの中にチャンクが無くなったときに最終的に終了する。 
【０３８７】
　チャンクの処理の間、 データは、 各チャンクが発生するピクセルフラグメントの最大数を決定するために集められる。 各チャンクを処理した後における５１２個のフラグメントバッファの中で自由(free)なエントリの数もまた集められる。このデータは、 対象物を再処理するときにバッファの分解がいつ自動的に実行されるべきかを決定するのに使用される。 例えば、 複雑な対象物がゲームの経過中に何回も再描画されているとき、 複雑な対象物処理は、 ピクセル情報の入力の流れを連続的に再処理するのを避けるために集められたピクセルバッファデータに基づいてバッファの分解を自動的に行う。 
【０３８８】
　１６×１６又は８×８サブバッファへのバッファの分解もまた、 既知の複雑な（即ち、 微細な碁盤目状等）ピクセルチャンクがティラーに送られたときに要求されてもよい。 これは、 ピクセルチャンクがすでに複雑であると知られているときバッファの分解、 ピクセルフラグメントバッファのフラッシュ、 及び入力の流れの再処理が必要か否かの決定を不要にすると共に、 集中処理を必要とする。 
【０３８９】
　オーバーフローが検出されたときにスキャン変換処理を再開始する方法として他に少なくとも二つの方法がある。 一つの方法では、 ピクセルエンジンが、 オーバーフローが検出されたときにスキャン変換ブロックが停止するするように指示し、 処理されるべきサブチャンク以外のピクセル位置のピクセルメモリのすべてのフラグメントリストをクリアしてもよい。 これを達成するために、 ピクセルエンジンは、 サブチャンク以外のピクセル位置のピクセルバッファにおけるフラグメントリストのポインタを読み取って、 これらのピクセル位置に関連するフラグメントバッファ内のフラグメントを自由にすることによりサブチャンク以外でフラグメントリストを参照する。 スキャン変換ブロックは、 終了したところの現在のチャンクの幾何学的なプリミティブのセットを続けてラスタライズする。　二つ目の方法では、 スキャン変換ブロックはすべてのフラグメントメモリをクリアした後で起動する。 この場合、 スキャン変換ブロックは起動後チャンクのプリミティブのセットの最初において幾何学的なプリミティブのラスタライズを開始する。
　途中のバッファの分解は、 かなり複雑な特性（例えば、 多光源、 微細な碁盤目、半透明、 等）を有するグラフィック対象物を処理するときでも、 小さなピクセル出力バッファ、 小容量のフラグメントバッファメモリを使用してグラフィック対象物の処理の間フラグメントデータメモリのオーバーフローを低減する手法を提供する。
　我々は特定の実施例に関して分解を説明しているが、 本発明は種々の他の手法で実行され得ることを理解すべきである。 上述したような特定な方法で画像領域を分割する必要はない。 むしろ、 画像領域は異なるサイズの細領域に分かすされる。 チャンキング(chunking)アーキテクチャは画像の細分割には特によく適合するが、 フルフレームバッファはより小さい領域に分解されてフラグメントメモリの要求を低減する。 メモリ消費をたどって調査するのに使用される特定なタイプの論理又はソフトウェアもまた変形することができる。 結局、 本発明の範囲には多くの使用しうる他の方法が含まれる。 
　ピクセルの後処理
　画像プロセッサは、 ピクセル位置のフラグメントデータを発生した後で、 このフラグメントデータをソートかつ解像してその位置で色調を計算する。 上記のように、 画像プロセッサは部分的にカバーされたピクセルのフラグメントを発生しかつ保持する。 一つ以上のポリゴンのエッジがピクセルと交差するとき、 又はポリゴンが半透明のとき、 ピクセルはポリゴンにより部分的にカバーされる。 フラグメントデータを保持してアンティエーリアシングと半透明を実行するには十分なメモリ容量を必要とする。 描出されるポリゴンの数が増加すると、 ピクセルデータ及びフラグメントを格納するメモリの容量もまた増加する。 
　増加したメモリ要求に加えて、 フラグメントを解像するのに要求される処理量も多くなる。 Ｚバッファへのアプローチにおいて、 フラグメントデータは深くソートされる。 一般的に、 プリミティブのデータは、 描出のため到来するときに深さの順にソートされる。 プリミティブのデータが任意の深さの順に到来するので、画像プロセッサはフラグメントを発生した後でそれをソートしなければならない。ソートされたデータは、 ピクセル位置で色調と可能であればアルファを決定するために処理される。 各ピクセル位置で、 いくつかのフラグメントが色調に寄与する。 アルファが計算されるなら、 フラグメントの数及び処理の複雑さもまた増加する。 
上記のように強調された理由によって、 進んだアンティエーリアシング及び半透明性を支持するためのメモリ及び処理要求は不可欠である。 一方では、 複雑なアンティエーリアシング及び半透明性の計算を支持することと、 他方では、 メモリ要求を低減することの間には矛盾がある。 システムのコストを低減するために、メモリの使用を最小限にすべきだが、 進んだアンティエーリアシング及び半透明性は通常更なるメモリを必要とする。 これらの進んだ構成をメモリの要求を最小にしつつリアルタイムのシステムで保持することは困難でさえある。 
一実施例において、 我々のシステムは一度に一つのチャンクのプリミティブを描出し、 その結果メモリを減らして後処理ステップでフラグメントを解像する。ピクセルデータが一つのチャンクで発生する間に、 他のチャンクのピクセルデータを解像することができる。 フラグメントのソート及びピクセルの解像に影響を与える数多くの利益がチャンキングの概念からもたらされる。 画像プロセッサがチャンク内のピクセルを解像した後ではラスタライズ処理の間に発生したたくさんのデータは保持されるべきではないので、 メモリの要求は十分に減らされる。画像プロセッサはチャンクを解像した後で解像された色調部分を保持すればよい。
　直列にチャンクを描出することの他の利点は、 ピクセルフラグメントメモリがメモリアクセスの経費(overhead)を低減するのに設けられ得ることである。 典型的なグラフィックシステムは外部メモリを使用して色調、 深さ及びフラグメントバッファを設ける。 この外部メモリを有機的に構成してリアルタイム画像処理の厳密なバンド幅の要求を満たすことはかなり困難である。 ３２×３２ピクセル領域のようなチャンクの描出を支持するのに必要なピクセルフラグメントメモリは外部メモリに設けられるべきではなく、 それに代えて、 ラスタライズ及びアンティエーリアシング機能を実行する同じハードウェア上に設けることができる。 例えば、 上記の具体例において、 フラグメント及びピクセルバッファは単一の集積回路チップ上に設けることができる。 
　チップメモリを使用すると外部メモリに関連するバンド幅の問題を簡素化することができる。 チップメモリは多段メモリを効率的に使用することができる。 例えば、 １段をピクセルバッファに使用し、 他段をフラグメントの記録に使用することができる。 
　チップメモリの他の利点は、 多ポートメモリの装備を低価格かつ容易に行うことができることである。 ピクセル及びフラグメントバッファの性能は、 多ポートメモリを使用することにより増大することができ、 その結果同時読み込み及び／又は書き込みがピクセル処理速度当たり１クロック(one clock per pixel processing rate) を達成することができる。 チャンクが別々に描出されるときはフラグメントバッファがかなり小さいので、 それはチップ上に装備される。 メモリの小サイズ及びチップ上のメモリの存在の双方は、 多ポートメモリの使用を実現可能にしかつコストを有効に働かせる。 一方、 外部多ポートメモリはビット当たりコスト高、 チップ間の接続の故に高価である。 
チャンキングに関する他の重要な利点は、 フレームの一部のピクセルを、 他の部分のピクセルが解像されている間に発生することができることである。 このように、 本アプローチは、 全部のフレームのピクセルを発生してそれらのピクセルを解像するのではなく、 ピクセルの発生と共に解像をオーバーラップさせることができ、 その結果システムの搬送遅れを低減することができる。 
　本システムの一実施例において、 画像プロセッサは後処理ステップでフラグメントを解像する。 ピクセルエンジンが画像の一部のピクセルデータを発生している間に、 アンティエーリアシングエンジンが画像の他の部分のフラグメントを解像する。 上記のように、 ピクセルデータは二重に緩衝記憶されている。 即ち、 アンティエーリアシングエンジンが一のバッファをアクセスしている間にピクセルエンジンは他のバッファをアクセスすることができる。 ピクセルエンジンがチャンクのピクセルを発生した後で、 ティラーはバッファスワップを実行する。 ピクセルエンジンは次のチャンクのピクセルを発生すると共に、 アンティエーリアシングエンジンは前のチャンクのピクセルを解像する。 
【０３９０】
　ピクセルデータを二重に緩衝記憶することもできるが、 好ましい実施例においては、 フラグメントバッファに二つのポートが設け、 そのバッファをピクセルエンジン及びアンティエーリアシングエンジンが同時にアクセスしてもよい。 ピクセルエンジンは一つのポートを介してフラグメントデータをフラグメントバッファに書き込み、 アンティエーリアシングエンジンは他のポートを介してフラグメントデータを書き込む。 
【０３９１】
　本実施例において、 二重に緩衝記憶されると共に二つのポートが設けられたメモリシステムにより、 画像プロセッサは画像データの発生及びピクセルの解像をオーバーラップさせることができる。 
　ピクセルプロセッサは解像処理を完了する前に深さ順にフラグメントデータをソートする。 一般的に、 画像プロセッサはピクセルを発生するとき、 また描出されるべき画像の部分のピクセルを発生した後でピクセルデータをソートすることができる。 例えば、 ピクセルエンジンは、 フラグメントデータをフラグメントバッファに書き込むときに挿入ソートを実行することができる。 加えて、 ピクセルエンジンは、 画像のすべて又は一部のピクセルデータを発生するのを完了した後でフラグメントデータをソートすることができる。 ピクセルエンジンはまた、 入って来るピクセルデータを拒否する場合は、 フラグメントをソートすることができる。 ピクセルエンジンは、 入って来るピクセルデータを拒否するときは、 フラグメントバッファに書き込みを行うべきではないので、 入って来る次のピクセルが到来する前にフラグメントのソートを実行することができる。 我々は後者のアプローチをフラグメントの「バックグラウンドソーティング」と呼んでいる。 
【０３９２】
　挿入ソートは、 入って来るフラグメントをフラグメントバッファの他のフラグメントに深さに関してソートすることに関係している。 潜在的に挿入ソートは画像データを発生する処理を減速するから、 潜在的にリアルタイムシステムには好ましくない。 入って来るフラグメントの適切な挿入ポイントを見付けるためにフラグメントバッファを探すと、 望ましくない経費を発生し、 加えて、 ハードウェア手段に関して、 追加のハードウェアを必要とすると共にピクセルエンジンの設計を複雑にする。 
【０３９３】
　挿入ソートの他の方法として、 画像プロセッサが画像の一部のピクセルの発生を完了した後でフラグメントをソートしてもよい。 いくつかのシステムは一旦画像データの全フレームを描出する。 そのようなシステムにおいて、 観察スペース (view spase) で各ピクセル位置毎にフラグメントをソートすると、 特に、 リアルタイムシステムにおいて、 実質的な処理時間を必要とすると共に望ましくない遅延を生ずる。 ソートに必要な時間はピクセル当たりのフラグメントの数に応じて、 かつすでに実行されている挿入ソートの程度に応じて変わる。 だから、 ソート動作は他のピクセル動作が生じるのを妨げ、 性能を低下させる。 
【０３９４】
　観察スペースの一部を一度に描出することにより、 画像の一部のフラグメントを、 次の部分をラスタライズしながら、 ソートすることができる。 本質的に、 アンティエーリアシングエンジンは、 次のチャンクのフラグメントを発生しているときに一つのチャンクのフラグメントをソートする。 
　ピクセルの発生及び解像が上記のようにオーバーラップしていたとしても、 ピクセルエンジンが画像の部分のピクセルを発生するときに画像の一部のフラグメントのソートを、 実行することは有益である。 ピクセルフラグメントをバックグラウンドソーティングすると、 ピクセルエンジンが一組のプリミティブのピクセルの発生を完了した後におけるフラグメントのソート経費を低減する。 
【０３９５】
　一実施例において、 バックグラウンドソーティングは同時に実行され、 ピクセル動作がフラグメントのソートに必要な呼出時間を低減、 場合によっては無くす。その設計は、 たくさんのピクセルが部分的にカバーされ、 それ故フラグメントバッファを使用できなくするという効果もたらす。 バックグラウンドソーティングは、 この予備のバンド幅を使用してフラグメントバッファの一組のフラグメントのソートを実行する。 
【０３９６】
　ソートの後で、 画像プロセッサは、 ピクセル位置のフラグメントを解像してそのピクセル位置の色調を決定する。 アルファが考慮されていなければ、 画像プロセッサはピクセル位置の深さがソートされたリストにおけるフラグメントの色調及び適用範囲データに基づいて色調の蓄積を計算する。 アルファが適用範囲データに加えて考慮されるなら、 画像プロセッサは、 ピクセル位置における深さがソートされたリストのフラグメントの色調、 適用範囲、 及びアルファに基づいて色調の蓄積を計算する。 
【０３９７】
　一般的に、 画像プロセッサは、 可視スペース全体、 又はその時の可視スペースの一部のみに対応するピクセル位置のフラグメントを解像する。 上記の実施例において、 画像プロセッサは、 チャンクと呼ばれる観察スペースの一部のピクセル位置を解像する。 フラグメントの解像は、 フラグメントが発生すると共にソートされた後で生じる。
【０３９８】
　フラグメントの解像は、 ピクセルのすべてのフラグメントが単一の色調値とアルファ値を計算するのに結合される間における処理である。 この単一の色調とアルファは色調バッファの中に書き込まれる（次いで圧縮され、 ＧＳＰＲＩＴＥに格納される）。 
　解像された色調の計算は、 続く層をそれによって基準化(scale) する適用範囲情報を計算かつ維持しつつ正しく基準化された色調の分布を各層から蓄積することを含む。 この蓄積は、 前から後ろ、 又は後ろから前への深さの順に実行することができる。 前から後ろへのアプローチでは、 後ろから前へとは反対に、 スペースの適用範囲のデータは続く層の適用範囲を決定するのに使用される。 適用範囲とは異なって、 アルファデータがすべてのピクセル領域に等しく適用される。 
【０３９９】
　前から後ろのものでは、 ソートされたフラグメントの記録に対する色調とアルファを計算する式は以下のようになる。 
　アルファ(Alpha) は最大値（逆アルファ）に初期化され、 色調(Color) は０に初期化される。 　
Anew=Aold-Aold*Ain);
Cnew=Cold+(Cin*(Aold*Ain)); 
　後ろから前へのものでは、 ソートされたフラグメントの記録に対する色調とアルファを計算する式は以下のようになる。 
　アルファ及び色は０に初期化される。 
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はピクセルの色調である
)
【０４００】
　フラグメントを深さ、 色調、 適用範囲、 及びアルファによって蓄積するには、アルファ値を計算して各サブサンプルのために保持する必要がある。 これは、 各フラグメントに対する適用範囲マスクとアルファ値の結合による。 一般的に、 蓄積の間にある層で蓄積されたアルファが前の層のアルファ値のすべての機能であると言える。 適用範囲マスクによって、 各サブサンプルは「前の」アルファ値の異なる組を潜在的に有する。 なぜならば、 適用範囲ビットが明確である層はそのサブサンプルに寄与していない。 
【０４０１】
　アルファと適用範囲によってフラグメントを解像する一つのアプローチはある層の各サブピクセル(subpixel)の色調を計算し、 サブピクセル位置からの寄与度(contribution)を加えてトータル色調寄与度を決定することである。 このアルファのスケールにサブピクセルの色調が乗算されてサブピクセルの色調寄与度を決定する。 ある層の色はサブピクセルからの色調寄与度を合計することにより決定される。
【０４０２】
　サブピクセルの色調及びアルファを個別に蓄積する一例は以下の通りである。 
（各フラグメント化されたピクセル位置）として｛
　　　　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はピクセルの色調である
｝
【０４０３】
　四つのサブピクセル位置を使用する例はフラグメントの解像を説明するのに都合がよい。 本例においては、 夫々が適用範囲マスク、 アルファ及び色調値を有する三つのフラグメントを考える。 最初の状態は下表に示されている。 本例においては、 我々は前から後ろへのアプローチを使用する色調及びアルファを蓄積する。最初のアルファは十分に半透明を意味する１に設定される。 各層のデータは次の通りである。 フラグメント０、 アルファ＝０. ５、 適用範囲マスク（ｃｍ）＝００１１、 及び色調＝Ｃ０; フラグメント１、 アルファ＝０. ３、 ｃｍ＝１０００、及び色調＝Ｃ１; フラグメント２、 アルファ＝０. ８、 ｃｍ＝０１０１、 及び色調＝Ｃ２. 各フラグメントのデータは下表で与えられている。 　アルファ値は１に初期化され、 アルファの適用範囲のアレイは下記のように示される。 
【０４０４】
【表４】
2004102998.tif 000015
【０４０５】
　色調を計算するために、 各サブピクセル位置の色調値には新しいアルファ及び適用範囲のアレイからのアルファが乗算される。 サブピクセル位置の結果は四つ（サブピクセル位置の数によってわり算されたもの）に分割される。 最後に、 サブピクセル位置のすべてからの寄与度は蓄積された色調を算出するために合計される。
【０４０６】
【表５】
2004102998.tif 000016
【０４０７】
　公式Alpha'=Alpha*(Max ＿alpha-new ＿alpha)を使用して、 画像プロセッサは新しいアルファを各ピクセル位置に対して個別に計算し、 それを下表のアルファの適用範囲のアレイに格納する。 
【０４０８】
【表６】
2004102998.tif 000017
【０４０９】
　フラグメント１の寄与度は下表に記載されている。 
【０４１０】
【表７】
2004102998.tif 000018
【０４１１】
　新しいアルファの適用範囲は次の通りである。 
【０４１２】
【表８】
2004102998.tif 000019
【０４１３】
　フラグメント２の寄与度は下表に記載されている。
【０４１４】
【表９】
2004102998.tif 000020
【０４１５】
　フラグメント２の後のフラグメントのアルファの適用範囲のアレイは次の通りである。 
【０４１６】
【表１０】
2004102998.tif 000021
【０４１７】
　この方法は、 アルファの計算及び色寄与度のフラグメント毎の2*NUM ＿CVG ＿BITSの乗算（４×４の場合、 ２＊１６＝４８）を必要とする。 適用範囲のマスクにおけるビット数が２＊＊ｎのサイズ（典型的には事実）とすると、 (1/NUM＿CVG ＿BITS) の基準化にはズレがある。 
　図３５は、 ４×４のサブピクセル領域（１２２４）に分割されたピクセルに対して上記のアプローチのハードウェア手段を図示する概略図である。 解像ハードウェアはアルファ色調蓄積器（ＡＣＡ）（１２２６）と呼ばれる１６個の同じ処理記憶ユニットの組を含み、 各ＡＣＡはピクセルのうちの一つのサブピクセル領域専用である。 各ピクセル位置のフラグメントリストの処理の間、 各フラグメントの適用範囲マスクは解像ハードウェアの処理マスクとして使用される。 ＡＣＡは、 アルファの基準化、 色調蓄積、 及びアルファ蓄積の乗算を実行する。 (1/NUM＿CVG ＿BITS) の基準化には上記のようにズレがある。 一旦すべてのフラグメントが所定のピクセル位置に対して処理されると、 出力部は階層上に１６個のサブピクセルのすべてを色調及びアルファ値を結合する（１２２８）。 出力用のプロセッサは入って来る二つの値を結合して、 ２で割る。 ハードウェアをパイプラインして、 ピクセル解像処理はフラグメントのエントリ毎の単一のハードウェアのフロックのみを使用する。 
【０４１８】
　他の技術は同様に各層で蓄積された同じアルファを有するサブピクセルを処理することによってハードウェア要求を低減する。 この技術は、 サブサンプルが蓄積されたユニークアルファ値を有する状態が徐々に生じるということに基いている。 最初は、 サブサンプルのアルファのすべては０（透明）に設定されている。最初のフラグメントの蓄積は多くとも一つの特有のアルファ値を加えることができ、 最初のアルファ値を保持しているサブサンプルの１グループと同じ新しいアルファ値を有する他のグループをもたらす。 次のフラグメント蓄積はたった四つの特有のアルファ値をもたらす。 全体としては、 「ｎ」個のフラグメントの蓄積の後で可能性があるユニークサブサンプルのアルファ値の数は２＊＊ｎ（又は、さらに正確には、 MIN(2**n(NUM＿CVG ＿BITS) )である。 
【０４１９】
　他の技術は色調の基準化を実行することによって要求される蓄積と、 サブサンプル毎よりもむしろサブサンプル内の各特有のアルファ値の蓄積の数を低減する特性を使用している。 この技術によって、 せいぜい一つの蓄積が、 第１のフラグメントとして、 第２のフラグメントとして二つ、 第３のフラグメントとして三つ、等、 ピクセルのサブサンプルの数まで生じる（例えば、 ４×４のサブサンプルのアレイによって、 最悪の場合はフラグメント毎に１６個の蓄積が生じる）。 
【０４２０】
　この技術は、 フラグメントの蓄積の間特有のアルファ値の組とそれらの関連する適用範囲のマスクを維持することを基礎としている。 その内容は最小数の色の蓄積を蓄積する。 
　アルファと適用範囲のマスクは、 これらのエントリのあるサブセットがある時間で実際に効力がある（又は「使用中」）NUM ＿CVG ＿BITS要素のアレイに格納される。 「使用中」のエントリは特有のアルファ値の現在のセットを保持するものである。 使用中のエントリビットインデックスにおけるアレイの要素が使用中であることがビットセットで示されるNUM ＿CVG ＿BITSビットのマスクによって識別される。 ｛ユニークアルファ、 適用範囲のアレイ｝の対における適用範囲のアレイ中の第１のビットセットはその対が格納されているアレイ要素を規定するという慣例が使用されている。 アレイを三つのフラグメントの蓄積によって（三つのサブサンプルを使用して）初期化されると共に更新する手法として次の例を挙げる。 
【０４２１】
　初期状態（Ｘは「注意不要」値を意味する）: 
　　　　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｝
　最初のアルファの適用範囲のアレイは以下のように記載される。 
【０４２２】
【表１１】
2004102998.tif 000022
【０４２３】
　使用中のマスクは、 アレイのマスクに格納されている位置を特定する０００１である。 対応するアレイは以下の通りである。 
【０４２４】
【表１２】
2004102998.tif 000023
【０４２５】
　フラグメント０の後で、 アルファの適用範囲のマスクは以下のように表される。
【０４２６】
【表１３】
2004102998.tif 000024
【０４２７】
　使用中のマスクは０１０１であり、 アレイのマスクは以下の通りである。 
【０４２８】
【表１４】
2004102998.tif 000025
【０４２９】
　設定された使用中のマスクの要素では、 アレイのマスクは新しいフラグメントに対して適用範囲のマスクとＡＮＤがとられ、 アルファ値に変化があるか否かを判別する。 新しいアルファがあれば、 アレイのマスクの新しい値は、 （アレイのマスク）ＡＮＤ（ＮＯＴ適用範囲のマスク）で計算される。 アレイのマスクに新しい値があれば、 それを適切な位置に格納する。 
　フラグメント１の後で、 アルファの適用範囲のマスクは以下のように表される。
【０４３０】
【表１５】
2004102998.tif 000026
【０４３１】
　使用中のマスクは１１０１であり、 アレイのマスクは以下の通りである。 
【０４３２】
【表１６】
2004102998.tif 000027
【０４３３】
　フラグメント２の後で、 アルファの適用範囲のマスクは以下のように表される。
【０４３４】
【表１７】
2004102998.tif 000028
【０４３５】
　使用中のマスクは１１１１であり、 アレイのマスクは以下の通りである。 
【０４３６】
【表１８】
2004102998.tif 000029
【０４３７】
　ある時点におけるユニークアルファ値の数は使用中のマスクのセットビットの数に等しい。 完全解は二つのステップを含む。 第１のステップは、 一つの蓄積が適用範囲／アルファのアレイにおける「使用中」エントリ毎に要求される必要な色調の蓄積を実行することである。 第２のステップは新しいフラグメントの値と共に適用範囲／アルファのアレイを更新することである。 
【０４３８】
　この技術の（４×４サブサンプルに対する）完全な手段は以下の通りである。（各フラグメント化されたピクセル位置）として｛
　　　　//　　　初期状態( ピクセル毎) 
　　　　InUsemask = 0x0001; 
　　　　CoverageArraymask[16] = ｛0xffff, 0, ...,0];
　　　　CoverageArryAlpha[16] = ｛MAX ＿ALPHA.MAX ＿ALPHA. ....,MAX ＿ALPHA ｝; 
　　　　ColorAccum = 0; 
　　　　ここで（フラグメントリストは空欄ではない）｛
　　　　フラグメントリストをスキャンし、 かつ最も近いフラグメントを抽出する( 適用範囲, 色調, アルファ);
　　　　//　このフラグメントの色調を使用中の各要素のColorAccumに蓄積する　　　　InUseMaskScratch = InUseMask; 
　　　　ここで(InUseMaskScrach ! = 0x000) ｛
　　　　//　　　使用中のマスク消去時に第１のビットセットを見付ける
　　　　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));　三番目の乗算はサブサンプルの数によっては若干簡素化される場合があることに注意されたい。 １６個のサンプルに対して、 第３の乗算は０. ４に固定された少数(point value) を含み、 この乗数は８×４である（ここで、 他の乗数は８×８であろう）。 また、 ２＊＊ｎのサイズの適用範囲のマスクには、 上記した分割は単にズレであることに注意されたい。 
　この技術は最低の場合下式による蓄積全部を必要とする。 
【０４４０】
【数１０】
2004102998.tif 000030
【０４４１】
　典型的な場合はこれを大きく下回る。 最低の場合は新しいフラグメントの適用範囲が各「使用中」のアレイ要素に設定値及び未設定値の双方を有するからである。 
　一つの有効な最適化は十分に不透明なアルファ値を有する適用範囲のマスクの位置をたどって調査することである。これは、フラグメントが不透明でない半透明値によらずに幾何学的な適用範囲の一部によって発生している場合に有効である。これらのフラグメントは通常は十分に不透明な半透明値を有する。この最適化は、追加的なマスク値、即ち OpaqueAlphaMask　を保持することにより実行される。この OpaqueAlphaMask　はアルファが十分に不透明であるフラグメントの適用範囲のマスクにおいてＯ−リング (O-Ring) によって設定される（これは、フラグメントの寄与率を蓄積した後で実施される）。対応するサブサンプルに対して更なる色調の寄与率が生じ得ないので、このマスクは続くフラグメントのマスク内のビットを　無視するのに使用される。
【０４４２】
　実行し得る他の最適化は同じアルファ値と位置を統合することである。しかし、これは装備がかなり高価になり、０でもなくMAX ＿ALPHA でもない同じアルファ値が発生するだろう。
　上記した例及び擬似コードは前から後ろへのソートを使用する。同じ計算を後ろから前へ深さに関してソートすることは同じように可能である。また、上記の計算は、アルファ成分が予め乗算されていない色調成分を使用する。同じ技術が、若干異なる算術計算（及び同じ制御フロー）によって予め乗算された色調成分に適用される。
【０４４３】
　図３６は、アンティエーリアシングエンジンにおけるハードウェアの最適化されたフラグメント解像サブシステムの具体例を図示するブロック図である。このサブシステムへの入力は、深さに関してソートされたフラグメントの記録の流れである。ここに示されているように、フラグメントの記録はＲＧＢ色調値、アルファ値、及び適用範囲のマスク (Cov mask) を含む。この特別なフラグメント解像サブシステムは、前から後ろへの順にフラグメントの記録処理を行うと共に、各フラグメントの層を処理するときにピクセル位置の色調値を蓄積する。このサブシステムは、共通のアルファを有するユニークピクセル領域をたどる調査を保持するので色調値を蓄積する必要があるハードウェアを最小にし、その結果、フラグメント解像サブシステムが、個別に各サブピクセル領域に対してというよりむしろ各ユニークピクセル領域に対して一旦色調を基準化すると共に蓄積するようになる。
【０４４４】
　上記の疑似コードに関して記載したように、フラグメント解像システムは、フラグメントの記録のリストを解像する前に、使用中のマスク１２３６、適用範囲のマスクのアレイ１２３０、 蓄積されたアルファ値のアレイ１２３０を初期化する。使用中のマスクの要素１２３６は、共通の蓄積されたアルファを有する一つ以上のサブピクセル領域を夫々含む複数のピクセル領域を表示する。適用範囲のマスクはピクセル領域によってカバーされるサブピクセル位置を与える。蓄積されたアルファのアレイは共通のアルファを有しかつ対応するピクセル領域の蓄積されたユニークアルファ値を格納する。 この特別な適用範囲のアレイ１２３６は蓄積されたアルファ値及び適用範囲のマスクを格納する。
【０４４５】
　使用中のマスク、 適用範囲のマスクのアレイ、 及び適用範囲のアレイのアルファを初期化した後で、サブシステムはフラグメントの記録を開始し、観察部分に最も近いフラグメントの記録を始める。ティラー上のアンティエーリアシングエンジン４１２の一つの手段において、スキャン変換ブロック３９５及びテクスチャフィルタエンジン４０１がチャンクのラステライズを完了した後、アンティエーリアシングエンジンは後処理ステージでフラグメントリストをソートする。アンティエーリアシングエンジンはフラグメントリストの各フラグメントの読み込みを先頭から始めて、かつインデックス及び深さに関してソートされたアレイの中へのエントリを所々で行う。このアレイ中の各インデックスは、リスト中のピクセルのフラグメントのＲＧＢ、アルファ及び適用範囲データを格納するフラグメントバッファ位置を示している。ピクセルのフラグメントを読み込むとき、アンティエーリアシングエンジンは、 アレイのエントリがピクセルのフラグメント及び対応する深さ値に対して深さに関してソートされたインデックスのアレイからなるように挿入ソートを実行する。一旦リストがソートされると、フラグメント解像サブシステムは、ソートされたアレイの中の各エントリをこれらのエントリがアレイの中に格納されている順に読み込むことによって深さに関してソートされたフラグメントを検索して、その結果、フラグメント解像サブシステムが深さに関してソートされる順にリスト中のピクセルフラグメントのＲＧＢ色調値、アルファ及び適用範囲マスクを検索する。
【０４４６】
　リスト中の各フラグメントの記録を処理するときに、サブシステムは共通のアルファを有するピクセル領域をたどって調査する。サブシステムは、リスト中のフラグメントの記録が共通のアルファを有する各ピクセル領域にオーバーラップするか否かを判別する。もし、オーバーラップするなら、サブシステムは現在のフラグメントとオーバーラップする現在のピクセル領域の一部の蓄積された色調を計算する。現在のピクセル領域にオーバーラップがあると、サブシステムはまた、このオーバーラップによって生じる一つ以上の新しいピクセル領域を決定して、それらをたどって調査する。
【０４４７】
　現在のフラグメント（１２３２）に対して、サブシステムは使用中のマスクの各要素を介してループ化する。適用範囲アレイループ制御装置１２３４は使用中のマスク（１２３６）を維持すると共に、各フラグメントの記録を処理する際に必要になる更新を行う。使用中のエントリを介してループ化が行われるとき、適用範囲アレイループ制御装置は新規な適用範囲制御装置１２３８と接続してその動作を制御する。新規な適用範囲制御装置１２３８は、現在のフラグメントが現在のピクセル領域にオーバーラップするときに必要になる適用範囲のマスクのアレイ及びアルファ１２３０の更新を行う。
【０４４８】
　新規な適用範囲制御装置１２３８は、使用中のマスク中の現在のエントリに関連する適用範囲のアレイのアルファから格納且つ蓄積されたアルファ（Ａｏｌｄ）を読み込み、色調を基準化するのに使用さると共に続くフラグメントの層、Ａｎｅｘｔ（１−Ａ＊Ａｏｌｄ）のアルファを計算するのに使用されるアルファ基準化ファクタ（Ａ＊Ａｏｌｄ）を計算する。この新規な適用範囲制御装置１２３８は、アルファスケールファク（Ａ＊Ａｏｌｄ）を、現在のフラグメントの色調データを基準化するのに使用されるスケール及び蓄積制御装置１２４６に搬送する。新規な適用範囲制御装置１２３８はまた、続くフラグメントの層、Ａｎｅｘｔ（１−Ａ＊Ａｏｌｄ）のアルファを計算して、それを適用範囲のアレイ１２３０中の対応する適用範囲のアレイのマスクに沿って格納する。
【０４４９】
　共通の蓄積されたアルファを有する各ピクセル領域に対して、フラグメント解像サブシステムは、現在のフラグメントがフラグメント及びピクセル領域の適用範囲マスクの挿入を見つけることにより現在のピクセル領域をオーバーラップするか否かを決定する。
　現在のフラグメントが現在のピクセル領域とオーバーラップするなら、サブシステムは、１）ピクセル領域のオーバーラップ部分の蓄積した色調を計算し、かつ２）使用中のマスク及びこの使用中のエレメントの対応する適用範囲のアレイのマスクびアルファ（適用範囲のアレイのアルファ）を更新する。
　スケール及び蓄積制御装置１２４６は現在のフラグメントによってカバーされた各ユニークピクセル領域の蓄積された色調を計算する。この基準化及び蓄積制御装置は、適用範囲スケーラ (scaler) １２４０、色調スケーラ１２４２、及び色調蓄積器１２４４を含む。適用範囲スケーラ１２４０は適用範囲基準化ファクタ（現在のフラグメント／全サブピクセル位置でオーバーラップする現在のピクセル領域のサブピクセル位置の数＊Ａ＊Ａｏｌｄ）を計算する。色調スケーラ１２４２は現在のフラグメント（１２３２）の色調値（ＲＧＢ）を読み込むと共に、それらに適用範囲スケーラ１２４０からの適用範囲基準化ファクタを乗算する。最後に、色調蓄積器１２４４は更新され蓄積された色調値を計算するために基準化された色調に蓄積された色調を加える。
【０４５０】
　現在のフラグメントが現在のピクセル領域にオーバーラップするとき、適用範囲アレイループ制御装置１２３４は新しいピクセル領域に対応してエントリを含むように使用中のマスク１２３６を更新する。これは、単に現状の使用中の要素をオーバーライトするか、新しいものを生成することによって行ってもよい。適用範囲ループ制御装置はまた、適用範囲のアレイのマスク１２３０を新しいピクセル領域の適用範囲に更新すると共にこの新しいピクセル領域の蓄積されたアルファを設定するように新規な適用範囲制御装置に指令する。新規な適用範囲制御装置１２３８は新しいピクセル領域に対応する新しいアルファの適用範囲のアレイをＡｎｅｘｔに設定する。
　現在のフラグメントのみがピクセル領域の一部を（そのすべてをオーバーラップするというよりむしろ）カバーするとき、新規な適用範囲制御装置１２３８は二つの新しいピクセル領域、即ち、１）現在のフラグメントがオーバーラップするピクセル領域の一部と、２）現在のフラグメントによって不透明でなくなるピクセル領域の一部を生成する。この場合、サブシステムは、不透明でない部分の適用範囲を計算すると共に、それに対してアルファを設定して、元のピクセル領域と同じままにする。これを達成するために、適用範囲アレイループ制御装置１２３４は使用中のマスク１２３６を更新すると共に、新規な適用範囲制御装置１２３８に適用範囲のアレイのマスク１２３０を更新するように指示する。この第２のピクセル領域に対応する適用範囲のアレイのアルファのエントリは、現在のフラグメントによっては変化しないので現在のピクセル領域（Ａｏｌｄ）と同じままである。
【０４５１】
　上記のように記載されたアプローチを繰り返すと、サブシステムは現在のフラグメントの使用中の各エントリを介してループ化して、各ピクセル領域中の現在のフラグメントの効果がある場合はあ、それを計算する。そして、リストが空欄になるまで、リスト中の続くフラグメントの処理を繰り返す。
　クランプ及び調節ブロック１２４８は蓄積された色調を適切な範囲（これは、適用範囲スケーラブロックで丸められる必要があり、その結果８ビットの範囲を超える色調とアルファをもたらす）にクランプすると共に、１を示す８ビット２進数によって値を基準化することにより導入される誤差を調節する。この方法による誤差の調節は、値１が実際には１６進法値「ＦＦ」で表されるのである状況で必要である場合がある。換言すれば、０から１のアルファの範囲は００からＦＦの８ビット数の範囲で表される。それ故、数ｘにＦＦを乗算するときは、結果はｘである。この調節は、ＦＦの乗算結果が適切にｘに丸められる。
【０４５２】
　ピクセルバッファへのフィードバック経路１２５０は解像されたピクセル値がピクセルバッファに再び格納されるモードを支持するために存在し、その結果、解像されたデータのチャンクをティラーから分配されたメモリに送出することなく、解像されたピクセルデータ上にマルチパスを描出させる。
　フラグメント解像サブシステムがフィードバックモードにないとき、クランプ及び調節ブロック１２４８は、図３６に示すように解像されたピクセルデータをデータ経路１２５２を経由してブロックステージ (staging)　のバッファに送出する。これらのブロックステージ (staging)バッファは、解像されたピクセルデータをそれが８×８ピクセルブロックで圧縮される前に緩衝記憶するのに使用される。
【０４５３】
テクスチュアマッピング
　このイメージ処理装置は多くの進歩したテクスチュアマッピング特徴を有している。テクスチュアマッピングのためのそれの支持はテクスチュアデータの異方性フィルタリングを含む。この装置はリアルタイムでテクスチュアデータの異方性フィルタリングを実行できる。
　我々は、異方性フィルタリングに対する我々の解決法のための基礎を形成する幾つかの概念を記載することにより始めて、且つそれから実行をもっと詳細に記載する。
　テクスチュアマッピングはイメージを表面にマッピングすることに帰する。対象物の表面における複雑な詳細は多角形又は他の幾何学的プリミティブを用いて模型を作ることは非常に難しく、且つそうすることは対象物の計算機費用を大幅に増大し得る。テクスチュアマッピングがイメージ処理装置に対象物の表面上に細かい詳細を充分に表現することを可能にする。テクスチュアマップはディジタルイメージであり、それを我々は「ソースイメージ」とも呼ぼう。このテクスチュアマップは形が典型的に矩形であり且つそれ自信の（ｕ，ｖ）座標空間を有する。テクスチュアマップの個別の要素は「テクセル（Texel）」と呼ばれる。テクスチュアマッピングにおいては、テクスチュアすなわち「ソースイメージ」がターゲットイメージへマッピングされる。
【０４５４】
　ディジタルイメージとして、ソースイメージとターゲットイメージとが、普通は整数（Integer）座標を有する点の格子上の、分離した点においてサンプリングされる。ソースイメージにおいては、テクセルが前記の（ｕ，ｖ）座標系内の整数座標に置かれる。同様に、ターゲットイメージにおいては、画素が（ｘ，ｙ）座標系内の整数座標に置かれる。
　幾何学的変換がいかにしてソースイメージからの点をターゲットイメージへマッピングするかを詳述する。この変換の逆がいかにしてターゲット内の点をソースイメージへマッピングし返すかを詳述する。イメージ処理機は、テクセルのソースアレイ内のどこから画素濃度がこなくてはならないかを決めるためにこの逆変換を用い得る。ソースイメージ内のこの点での濃度はその時付近のテクセルデータに基づいて決められ得る。ソースイメージ内へマッピングし返されたターゲット内の点は、テクセルの整数座標上に正確に落ちる必要はない。この点における濃度を見つけるために、イメージデータが付近のテクセルから計算される。
【０４５５】
　ソースイメージ濃度が分離した値で知られるのみであるから、付近のテクセルからの値は補間され且つ結果のデータがそれから低域通過フィルタを通される。一般に、その解決法は次のように生じる。最初に、ターゲットイメージからソースイメージ内へ点がマッピングされる。それから、テクセルデータがソースイメージ内へマッピングされた点での濃度を復元するために補間される。最後に、分離したターゲットイメージ内で正確に再サンプリングされるべき領域を高すぎる領域へ変換するソースイメージ内の空間周波数を除去するために、低域通過フィルタが適用される。この低域通過フィルタは仮装する高周波数又は再サンプリングの故にターゲット内の低周波数の波としての「別名」を除去するので、この低域通過フィルタはしばしばアンチエイリアス化フィルタと呼ばれる。我々は以下にもっと詳細にこの概念を記載する。
【０４５６】
　図37はターゲットイメージの表面1302上の画素1300がテクスチュアマップ1304の表面へいかにマッピングするかを図解する一例である。この例においては、ターゲットイメージからの画素が正方形1306として表現されている。テクスチュアマップ1304上へのこの画素1300の後向きマッピングは届け先表面1302の曲率により画素がそれにマッピングできるもっと複雑な形状を近似する四辺形1308である。テクスチュアへ画素1300をマッピングした後に濃度値がその四辺形内のテクセルサンプルから計算される。例えば一つの解決法において、画素の濃度値がその四辺形内のテクセルの重み付けされた合計を取ることにより計算される。
【０４５７】
　補間及び低域通過フィルタ機能の双方が、ターゲット内の分離した点へマッピングするソース内の各逆変換点を取り囲む点の重み付けされた平均を取ることにより実行される単一フィルタ内へ結合され得る。我々はフィルタのフットプリントとしてその重み付けされた平均に寄与する点の領域を参照する。一般に、そのフットプリントは各ターゲット点に対するソース内で異なる形状を有する。そのフットプリントが各点に対して変わり得るので、そのフットプリントの正しい形状とそのフットプリントの内側の点へ適用するための重み付け係数とを見つけることは難しい。幾つかの慣習的な装置は、それらの装置がフィルタの寸法に変わることを許容するけれども、すべての点においてフィルタに対して同じ形状を使用する近似を行う。この解決法は、しかしながら、最終イメージ内の歪みへ導き得る。
【０４５８】
　我々は等方性フィルタとして可変寸法の正方形か又は円形かいずれかのフットプリントを発生するフィルタにたよる。円形は全部の方向において同じ長さを有するので、円形が真に等方性である。我々はまた正方形が水平方向と垂直方向とに等しい寸法を有するので、正方形が本質的に等方性であるとみなす。
　等方性のフィルタリングはむしろ粗い近似を用いるので、等方性のフィルタリングは歪みを発生し得る。実際のフットプリントが高度に延長されたソースイメージの範囲において、たとえ寸法が調節できるとしても、正方形又は円形のような本質的に等方性形状はフットプリントに対してよくない代用品である。等方性フィルタは一つの形状のみを有するので、等方性フィルタは延長されたフットプリント内のテクセルを正確に捕捉できない。例えば、正方形フィルタは一方向において延長された四辺形フットプリントからテクセル値を正確にサンプリングできない。実際のフットプリントの外側のテクセルをサンプリングすることがブラーリングを起こし得る。これに反して、フットプリント内のテクセルをサンプリングしないことが、最終イメージにエイリアシングによりきらめかせ得る。
【０４５９】
　ＭＩＰ（multum in parvo;小型で内容豊富）マッピングと呼ばれる解決方法においては、多くのテクスチュアマップが異なる分解能で記憶される。例えば、一つのテクスチュアが 512×512 テクセルに有る場合に、この装置は又 256×256, 128×128, 64 ×64, 等でテクスチュアを記憶する。イメージ処理装置はそのテクスチュア内へマッピングされた画素のフットプリント上で等方性フィルタに対して最良に適合を見つけるために変化する分解能におけるこれらのテクスチュアマップを使用できる。このイメージ処理機は、最初にフットプリントがフィルタの寸法に対して寸法が最も近い二つのテクスチュアを見つける。それからこのイメージ処理機は、二つの中間値を計算するために最も近くにフットプリントと合致する二つのテクスチュアに対して補間を実行する。最後に、このイメージ処理機は、この画素に対する値を見つけるために二つの中間値の間を補間する。
【０４６０】
　ＭＩＰマッピングが等方性フィルタに対する改善された結果を与え得るけれども、ＭＩＰマッピングはまだ特にフットプリントが一方向に延長される歪みを発生する。各点において実際のフットプリントに対するもっと正確なフィルタは、幾何学的変換の反転により形状が歪まされた本質的に等方性の再サンプリングフィルタにより巻きつかれた本質的に等方性の復元フィルタの縦続接続により作りだされ得る。この歪みはフィルタの高度の異方性を発生し得る。変換がもう一つの方向におけるよりも一方向においてもっと非常にイメージを収縮する場合には、逆変換がターゲット内の最大収縮の方向に沿ってソース内のフットプリントを拡張すなわち延長する。エッジに近い遠近関係から平らな表面を見た場合にこれが起こり得る。等方性フィルタリングにおいては、フィルタが拡大されたフットプリント内のテクセル値を正しくサンプリングできないので、最終イメージはこの例においては歪まされて現れるだろう。
【０４６１】
　我々の異方性フィルタリング方法の一実施例は、次の二つのステップを含んでいる。すなわち、1)　フィルタフットプリントの最大延長の近似方向を見つけるステップ、及び、2)　実際のフットプリントともっと正確に整合する混成フィルタを作りだすために復元フィルタの出力に対してその方向に沿って再サンプリングフィルタを適合するステップ、である。
　最大延長の方向はターゲットイメージからテクスチュアマップまでのフィルタの後向きマッピングから引き出され得る。例えば遠近法マッピングにおいて（そこでは対象物が消失点に向かって次第に消える）ターゲットイメージからテクスチュアまでのｎ×ｎ画素フットプリントのマッピングが四辺形である。異方性の線が最大延長の方向を有し且つソースイメージ内へマッピングし返されたターゲットからの点を通過する線として定義される。
　この実施例においては、イメージ処理機が最大延長の方向を見つけるためにテクスチュアに対してフィルタフットプリントを後向きマッピングする。イメージ処理機はそれから最大延長の方向に沿って補間フィルタ（上記に略述した復元フィルタ）を掃引する。ターゲットイメージに対する画素値を計算するために、イメージ処理機は補間フィルタの出力へ再サンプリングフィルタを適用する。
【０４６２】
　一つの実施においては、再サンプリングフィルタが異方性の線に沿って適合された一次元ディジタルフィルタである。それ故に、我々は特定の一次元フィルタに対して我々の発明の範囲を制限しようとしない。
　この実施においては、補間フィルタは二次元等方性フィルタである。再サンプリングフィルタについてのように、我々は補間フィルタの特定の種類に対して我々の発明の範囲を制限しようとしない。二次元等方性フィルタは一つの可能な実施にすぎない。この補間フィルタが付近のテクセルデータからこれらの値を補間することにより異方性の線に沿った位置における値を与える。補間フィルタがソースイメージへ加えられる分離した位置が、増分で垂直にか又は水平にかのいずれかでステップすることにより及び各位置において異方性の線における値を補間することにより決められ得る。例えば、異方性の線が水平よりももっと垂直である場合には、一つの解決法はテクスチュアの（ｕ，ｖ）座標系における垂直すなわちＶ方向にステップすることであろう。同様に、異方性の線が垂直よりももっと水平である場合には、もう一つの解決法はテクスチュアの（ｕ，ｖ）座標系における水平すなわちＵ方向にステップことであろう。
【０４６３】
　異方性の線に沿ってステップするための一つの可能な方法は、ほぼ最低延長の長さで平均に間をあけられた、この線に沿った分離した位置で補間フィルタを適用することである。特に、異方性の線に沿ったサンプリング位置が、画素中心がテクスチュアマップ内へマッピングする点に置かれた中心サンプルを有する最小延長の長さとほぼ等しい距離で均等に間をあけられ得る。一旦これらのサンプル位置が計算されると、等方性フィルタが各位置に反復的に適用され得る。例えば、等方性フィルタが、最小延長の長さに依存するフィルタの寸法により、各サンプルに対する付近のテクスチュアサンプルへの補間を実行するためにサンプル位置に適用され得る。この方法を実行するための一つの特定の方法は、異方性の線に沿った各分離した点での３線型補間を実行することである。
【０４６４】
　デジタルフィルタへ補間フィルタの出力を適用した後で、結果の画素値は異方性の線に沿った補間フィルタの出力の重み付けされた平均である。我々はここにフィルタの特定の種類を記載しているが、復元及び再サンプリング機能を近似するために用いられるフィルタの種類は変わり得る。
　図38Ａ〜Ｄは異方性フィルタリングの過程の一例を図解している。図38Ａ〜Ｄはテクスチュアマップ内のテクセル（1400ａ〜ｄ）を図解し且ついかにして異方性フィルタが発生され得るかを示している。第１ステップは、ターゲットイメージ内の画素位置に対するフィルタフットプリント上で、逆変換を実行することによりソースイメージ内のフィルタフットプリントを計算することである。この例においては、テクスチュア1400ａ内のフィルタフットプリントは、四辺形1402として図解されている。
【０４６５】
　次のステップは、ソースイメージ内へマッピングされた点で逆変換マトリックスを近似することである。図38Ｂに示されたこの例においては、この近似が平行四辺形1404により表現されている。この平行四辺形が四辺形形状フットプリントを近似する。一般に、この近似が逆幾何学的変換のためのヤコビ行列を計算することより見出され得る。我々は図示の目的のためにこの例を単純化したしたけれども、逆変換がもっと複雑な場合にも同じ概念が拡張され得る。これが以下に与えられた付加的な詳細から明らかになるだろう。
　再び図38における例を参照して、復元及び再サンプリングフィルタの寸法がヤコビ行列から引き出され得る。図38Ｂにおいては、我々は平行四辺形1404としてヤコビ行列を表現している。この平行四辺形の長さが再サンプリングフィルタの寸法を決めるために用いられ得る。この例においては長さが最大延長の方向1406に沿って測定され、その方向を我々は異方性の方向とも呼ぶ。同様に、四辺形の高さは復元フィルタの寸法を決めるために用いられ得る。この高さは最小延長の方向1408である。
【０４６６】
　図38Ｃは平行四辺形を近似する矩形1406を示している。この矩形の寸法は平行四辺形の高さと長さとに対応している。こお矩形が実際のフィルタフットプリントの異方性を近似するために用いられる「棒状」フィルタを表現している。
　図38Ｄはいかにしてこの「棒状」フィルタが計算され得るかを図解している。復元フィルタのフットプリントは正方形1408により表現されている。この例においては、復元フィルタは正方形フットプリントを有し且つ従って本質的に等方性フィルタである。図38Ｄ中の線1410により表現される異方性の線に沿った値を計算するために、値が異方性の線1410の線を取り囲むテクセル（1400ｄ）から補間される。その復元フィルタは、それ故に、上に記載された補間フィルタである。このフィルタの出力はその時、再サンプリングフィルタを表現する一次元フィルタへ加えられる。異方性の線1410が再サンプリングフィルタの配向を表現している。復元フィルタとして計算される値は、ターゲットイメージのための画素値を計算するために合計される異方性の線に沿って通される。
【０４６７】
　上記の解決法は種々の方法で実行され得る。上記の解決法はハードウエア又はソフトウエアで実行され得る。リアルタイム異方性フィルタリングを支持するために、この方法はハードウエアで好適に実行され得る。この解決法の一実施例はタイラー(Tiler) チップ上で実行される。
　図９Ａ〜Ｃに図解されたタイラーにおいては、異方性フィルタリングが走査変換ブロックとテクスチュアフィルタエンジンとで支持される。走査変換ブロックがソースイメージ内の点での逆幾何学的変換の偏導関数のヤコビ行列を取ることにより、再サンプリング及び復元フィルタのための制御パラメータを計算する。そのヤコビ行列が逆変換に対する最良局部アフィン近似の線型部分を表現している。もっと詳細に言えば、それは所望のソース点の周りに集中された逆変換の二次元でのテイラー数列の一次部分である。
【０４６８】
　テクスチュア座標からスクリーン座標へのアフィン変換の線型部分は、２×２ヤコビ行列Ｊを有し、スクリーン座標からテクスチュア座標への逆変換はヤコビ行列Ｊ-1を有する。行列Ｊ-1の２行ベクトルの長さは単位寸法の画素に対する平行四辺形の２辺の長さである。逆ヤコビ行列における２行ベクトルの成分が平行四辺形の２辺の長さを決定する。
　この変換は走査変換ブロックが各プリミティブを走査するように走査変換ブロックが評価する属性エッジの式の形を取る。以下の式が典型的である。
　　ＦS/W＝ＡS/Wx＋ＢS/Wy
ここで、画素位置（ｘ，ｙ）において；
　1）　ＦS/W は均質座標（ｗ）により分割されたテクスチュア座標（ｓ）の値である。
　2）　ＡS/W はｘ座標に対する均質座標（ｗ）により分割されたテクスチュア座標（ｓ）の勾配の値である。
　3」　ＢS/W はｙ座標に対する均質座標（ｗ）により分割されたテクスチュア座標（ｓ）の勾配の値である。Ｆ，Ａ及びＢはプリミティブの走査開始点に対　　して全部正規化されている。走査変換ブロックはl/w, s/w及びt/w に対する　　エッジの式を評価する。
【０４６９】
　逆ヤコビ行列素子が平行四辺形の辺の長さと面積とを与える。近似する矩形の面積と矩形の長辺とが同じであり、矩形の短辺は（ｓ，ｔ）座標系におけるｘ及びｙ軸の間の角のsin により乗算された平行四辺形の短辺である。
　逆ヤコビ行列に対する導関数は、各テクスチュア座標（ｓ，ｔ）におけるエッジの式のFs, As及びBsから直接引き出す。
【０４７０】
【数１１】
2004102998.tif 000031
【０４７１】
　ヤコビ行列を見出した後に、その走査変換ブロックが２行ベクトルの長い方を見出す。このベクトルの方向が最大延長の線の方向すなわち異方性の線の方向を表現する。この行ベクトルの長さの他方のベクトルの長さに対する比率は異方性の比率と呼ばれる。一次元異方性フィルタの長さはこの比率から決められる。異方性比率により分割された長い方のベクトルの長さが復元フィルタの幅を制御する。
【０４７２】
　長い方の辺が主軸となり且つテクスチュア座標においてステップする（クロックする）場合に増大されるべきスクリーン座標を決めるために用いられ得る。それは増分の大きさの決定のためにも用いられ得る。
// DsDx is the partial derivative of s with respect to x, etc.
　（DsDxはｘ等に対するｓの偏導関数である）
// (DsDc, DtDc) are steps in (s, t) along axis of anisotropy. 
　 ((DsDc, DtDc)は異方性の軸に沿った（ｓ，ｔ）座標でのステップである)
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 
｝
【０４７３】
　ステップ寸法DsDc及びDtDcはテクスチュアフィルタエンジンへの基本的入力であり、そのテクスチュアフィルタエンジンがサンプリングとフィルタリングとを実行する。これらのステップが（多くとも）７度による正しくない配向を発生し、それは等辺平行四辺形の場合に起こる。
　この実施においては、短い方のベクトルの長さは、異方性比率がプリセットされた制限を越えない限り、復元フィルタの幅を普通は近似する。この制限を越えた場合には、異方性比率はその計算中にこのプリセットされた制限により置き換えられる。この方法において比率を制限することが、フィルタが値を計算するためのテクセル点の予め決められた数よりも多く用いるのを防止する。かくして、その比率上の制限がいかに長く復元フィルタが出力値を計算することを必要とするかについての境界を置く。
【０４７４】
　いずれかのベクトルの長さが１よりも小さい場合に、もう一つの制限する場合が生じる。この場合においては、ベクトルの実際の長さが１の長さにより置き換えられる。フィルタ長さが補間を実行するために決して短すぎないことをこれが保証する。
　走査変換ブロックがそのフィルタに対する制御パラメータを計算した後に、走査変換ブロックはそれから画素値を計算する。一次元デジタルフィルタが補間フィルタからの出力の重み付けされた平均を計算する。その補間フィルタが、異方性の線に隣接するソースイメージから、テクセルデータを補間することによりこの出力を計算する。
【０４７５】
　この補間フィルタの寸法は最大延長の方向と垂直な方向で測定されたフットプリント幅を近似するために調節され得る。変換が収縮するイメージの範囲内に生じるフットプリントが大きい場合には、ソースイメージの多くの点が単一出力点を発生するためにフィルタ重み付け係数により乗算されねばならず、それが非常に遅いすなわち費用のかかる実施となる。
【０４７６】
　上に紹介したように、現存する等方性フィルタリング装置がＭＩＰマッピングを用いることにり計算時間を低減する。ＭＩＰマッピングはソースイメージに基づいてイメージピラミッドを形成することに帰し、且つその時ソースイメージ上で等方性フィルタに対する最良の適合を見出すために、このピラミッド内のイメージを用いる。このピラミッドの各レベルがサンプリング濃度でそれの下のレベルと比較して各寸法で２の係数だけ低減される。このピラミッドの底は元のソースイメージである。低減されたサンプリング濃度のイメージを補間することが、フットプリントが低減された濃度へ元のサンプリング濃度の比率により、補間装置のフットプリントに対して拡大される等方性フィルタによって元のイメージをフィルタリングするのと類似の効果を発生する。かくして、フットプリントの二つの拡大の力が補間するためのピラミッドの正しいレベルを選択することにより達成され得る。拡大のあらゆる比率が所望の比率をひとまとめにする二つのピラミッドレベルの補間の結果を混合することにより得ることができる。
【０４７７】
　一実施例においては、等方性フィルタの寸法がＭＩＰマッピング解決法を用いることにより、最小延長の長さともっと詳細に適合するように修正され得る。ヤコビ行列を解析することにより決められた等方性フィルタ寸法は、ひとまとめにするピラミッドレベルと混合係数とを選択するために用いられ得る。一つの実施において、基本ピラミッドレベルはフィルタ寸法の底２の対数の整数部分であり、且つ混合係数は少数部分である。
　特定の例が上述の特定の実施の動作を図解するのを助ける。所望の等方性寸法が３である場合は、log2３は1.583 と等しい。この結果の整数部分は１であり、それがそれぞれ２及び４の濃度低減によりレベル１及び２を選択する。レベル０は低減無しよる元のソースイメージである。混合係数は0.585 である。
　一つの実施において、テクスチュアフィルタエンジンが混合を延期する。最初に、テクスチュアフィルタエンジンが、各レベルにおいて所望の点に集中された異方性比率と比例する長さの１−Ｄフィルタを適用する。それからテクスチュアフィルタエンジンが各レベルからの出力を混合する。
　代わりの実施においては、テクスチュアフィルタエンジンが異方性の線に沿ってステップし、且つこの線に沿って分散するサンプルにおいて３線型補間を実行する。テクスチュアフィルタエンジンが、それから各サンプルにおいて３線型補間の結果に対して一次元フィルタを適用する。
【０４７８】
　補間フィルタの寸法を制御することに加えて、再サンプリングフィルタの寸法もまた制御され得る。一つの実施においては、テクスチュアフィルタエンジンが種々の寸法の１−Ｄ再サンプリングフィルタのための係数の表を用い、且つ表内の特定された寸法の間の寸法のフィルタを作るために、それらの間で混合する。高速ハードウエアに対して特に有効な実施は２の累乗としてフィルタ長さを選択することであり、且つ三角あるいは台形形状を有するようなフィルタインパルス外形を選択することである。個別のフィルタはこの時非常に単純な係数を有し、且つ乗算の成果はハードウエアにおける少しだけの加算とシフトへ低減されされる。
【０４７９】
　以下は２の最初の４累乗に対するこれらのフィルタに対する係数の表である。
【０４８０】
【表１９】
2004102998.tif 000032
【０４８１】
　この例においては、異方性比率の２を底とするlog がレベル及び混合係数を選ぶために用いられている。レベルが４を越えると、テクスチュアフィルタエンジンが最後のフィルタを用い、且つ混合しない。この例においては、全部のフィルタが１の利得を有し、全部のそれらの係数が１へ加えることを意味している。１，２，４及び８による乗算はシフト動作により実行される。３，５及び６による乗算は一回の加算に１回のシフト動作を加えることより実行され得る。最後に、７による乗算は一回の減算と複数のシフト動作とにより実行され得る。２の累乗による除算はシフトするだけである。15による除算は、２を底とする1.00010001による乗算とそれに続く４位置のシフト（16による除算）によりきわめてよく近似され得る。乗算は二つの加算のみである。
【０４８２】
　上述の解決法が合成フィルタの制御に二つの自由度を可能にする。上述の実施例においては、自由度は最小及び最大延長の方向におけるフィルタの大きさである。この解決法が、大いに非線形なマッピングの結果であり得る各点での真のフットプリントを計算する費用無しに、非常に少ないえイリアシング及びブラーリングを有するイメージを発生する。この解決法が異方性の線に沿って実際のフットプリントフィルタを掃引する連続フィルタを近似する。その解決法が異方性の線に沿った「棒状形状」フィルタを生じるので、その解決法が円形又は正方形よりも実際のフットプリントの非常に良好な適合を達成する。我々は、リアルタイム図形レンダリング装置にこの方法を実施した。それ故に、この方法がまだリアルタイム速度を維持しながら、異方性フィルタリングによる高品質テクスチュアマッピングを支持し、すなわち10Hzより大きい速度で且つ特に表示装置のリフレッシュ速度（例えば75Hz）でイメージデータの新しいフレームを計算する。
【０４８３】
　図39はテクスチュアフィルタエンジン（401,　図9B）の一実行を図解するブロック線図である。このテクスチュアフィルタエンジンが画素待ち行列（図9Bにおけるテクスチュア基準データ待ち行列399 ；Pixel Queue）からテクスチュア基準データの事例を読み取り、且つアルファ及びカラー値（アルファ、及びＲＧＢカラー係数）又はこれらの事例に対するシャドウ係数を計算する。この実行がテクスチュアフィルタリングとシャドウフィルタリングとの双方を支持する。テクスチュアマッピング動作に対して、テクスチュアフィルタエンジンがテクスチュアカラーとアルファとを計算し、且つアルファとカラー係数とを計算するためにテクスチュアカラーをフィルタリングする。シャドウイング動作に対して、テクスチュアフィルタエンジンが深さ比較を実行し、且つシャドウ減衰係数（ｓ）を計算するために結果の値をフィルタリングする。
【０４８４】
　画素待ち行列が（図9B内の走査変換ブロック395 ような）ラスター化装置からテクスチュア基準データを受け取り、且つテクスチュアフィルタエンジン401 に対する先入れ先出しバッファとして働く。この「サンプル有効」データが、テクスチュアキャッシュ（Texture Cache）から引き出されたテクスチュア又はシャドウマップ素子の集合内のどのサンプルが現在のフィルタリング動作に対して有効であるかを特定する。
【０４８５】
　テクスチュアマッピング動作に対して、テクスチュア基準データはテクスチュア（ｓ，ｔ）内へマッピングされた画素位置の座標を含んでいる。３線型ＭＩＰマッピングを支持するために、入力は二つの最も近いＭＩＰマップレベル（(hi,lo)と詳細なレベル（ＬＯＤ）に対する（ｓ，ｔ）座標を含む。「積算スケール」データがカラー成分補間装置の出力端子へ加えられる重み付け係数を制御するために用いられる。「延長制御（Extend Control）」データはテクスチュア延長モードを制御するデータビットである。テクスチュア延長モードはテクスチュア要求がテクスチュアマップ範囲の外側にある場合に、クランプ、ラップ又は反射動作のいずれかを実行するためにテクスチュアフィルタエンジンに指令する。
　シャドウイング動作に対して、入力はサンプルインデックス、シャドウマップ内へマッピングされた画素位置の（ｓ，ｔ）座標、及び所定の画素位置に対する光源からの幾何学的プリミテブの深さを表現するベータを含んでいる。このサンプルインデックスは、シャドウフィルタがシャドウマップ素子すなわち「サンプル」上で動作する特定の方法に関係している。この特定の実施では、テクスチュアフィルタエンジンがクロックサイクル当たり８サンプルに動作する。シャドウフィルタリングの場合には、これらのサンプルが４×２グリッドに対応する。例えば、シャドウフィルタは４×４モード（４×２＋４×２＝４×４）に対するサンプルの２集合と８×８モードに対する８集合との全部に動作する。４×４モードの場合には、シャドウフィルタが４×４の全体フットプリント内の上側左、上側右、下側左、及び下側右の３×３ブロックへ各々１個に、３×３フィルタを４回適用する。第１クロックサイクルにおいては、それが上側の４×２グリッドを処理し、且つ第２クロックにおいてはそれは下側の４×２グリッドを４×４ブロックにおいて処理する。このサンプルインデックスは現在処理されている８サンプルの集合を確認するために用いられるインデックスである。このサンプルインデックスは、４×４の場合に対しては２クロックサイクルを通して、また８×８の場合に対して８クロックサイクルを通してステップし、且つどの４×２部分集合が現在処理されているかを確認する。
【０４８６】
　図41に示されるように、テクスチュアフィルタエンジンがキー発生器1310、分数制御器1312、カラー成分補間装置1314、シャドウフィルタ積算機1316、及び積算機及び後処理機1318を含んでいる。
　テクスチュアマッピング動作において、キー発生器1310が（ｓ，ｔ）座標とＬＯＤとを読み取り、且つテクスチュアキャッシュから対応するテクスチュアデータを引き出すためにキャッシュキーを発生する。テクスチュアキャッシュがテクスチュア要求に応じてアルファとＲＧＢ成分とを返す。分数制御器1312が入力として（ｓ，ｔ）座標を受け取り、且つカラー成分補間装置1314において２線型の動作と３線型補間装置との双方又はいずれか一方を制御する。カラー成分補間装置1314が補間さたアルファとＲＧＢ成分とを計算するためにテクセルサンプルを補間する。積算機及び後処理機1318がそれからアルファとＲＧＢ成分とをスケーリングし、スケーリングされた成分を積算し、且つ現在処理されている画素位置に対応するアルファとカラー係数とを出力する。これらのアルファとカラー係数とはテクスチュア変調（Textur Modulation）過程への入力として、画素エンジンへのカラーとアルファ値入力となる。
【０４８７】
　異方性テクスチュアマッピングにおいて、カラー成分補間装置1314が異方性の線に沿って進み、且つ各ステップにおいて３線型補間を実行する。積算機1318が一次元フィルタとして働き、アルファとカラー成分とをスケーリングし、且つそれからスケーリングされた成分を積算する。一つの特定の実施例においては、積算機1318が異方性の比率に基づいた台形又は三角形フィルタリングを用いてアルファ及びカラー成分をスケーリングする。両方の場合に、フィルタのエッジにおけるロールオフを近似するために再サンプリングフィルタの遠い縁での成分を積算機がスケーリングする。台形フィルタリングを達成するために、スケールファクタはフィルタのエッジにおける線型ロールオフに対応し、且つフィルタのエッジの間のステップにおいて一定である。
【０４８８】
　一つの特定の実行において、異方性の線に沿ってステップすためのスケールファクタが次のように計算される。１対１から２対１までの異方性比率に対して、この積算機は異方性ウオーカーの各ステップにおいて0.5 の重み付け係数を適用する。２対１及びそれより大きい異方性比率に対しては、積算機はステップｎ＜（異方性−１）／２に対して１／異方性による成分を重み付けし、且つ（異方性−１）／２より大きいか又はそれに等しいｎに対して 0.5（異方性−２ｎ）／異方性による成分を重み付けする。この特定の例における異方性比率は逆ヤコビ行列に対して最もよく適合する矩形の短辺に対する長辺の比である。逆ヤコビ行列は視野空間座標からテクスチュア座標（すなち（ｘ，ｙ）座標から（ｓ，ｔ）座標）への幾何学的変換の偏導関数のマトリックスである。異方性の線は逆ヤコビ行列の長い方の列ベクトルの方向における（ｓ，ｔ）座標を通る線である。
　シャドウイング動作に対して、キー発生器1310がシャドウマップ内へマッピングされた画素位置の（ｓ，ｔ）座標を読み取り、且つキャッシュキーを発生する。テクスチュアキャッシュが、シャドウフィルタ積算機1316へシャドウマップ素子（シェイデル ; shadel）を返す。シャドウフィルタが入力としてシャドウインデックスとベータとを受け取り、且つシャドウマスクを発生するためにフィルタフットプリント内の深さ値と光空間内の画素データの現在の例の深さを比較する。シャドウフィルタ積算機がシャドウマスク内の素子を合計し、且つサンプルの数によりその合計を割り算する。この実行において、テクスチュアフィルタエンジンが深さ比較ステップの結果に対して台形フィルタを適用することにより、フィルタフットプリントのエッジにおいて円滑なロールオフを達成する。台形フィルタを実行するために、シャドウ積算フィルタがそれぞれ４×４又は８×８フィルタフットプリントに対して４回３×３又は７×７ボックスフィルタを適用することにより、４個の予備シャドウ係数を計算し、且つカラー成分補間装置1314のうちの一つへその４個の予備係数を送る。このカラー成分補間装置1314が最終シャドウ係数を計算するためにそれらの予備係数に２線型補間を実行する。
【０４８９】
　上に紹介したように、キー発生器1310が画素待ち行列から（ｓ，ｔ）座標を読み取り、且つテクスチュアキャッシュからテクスチュアデータを引き出すためにキャッシュキーを発生する。図40はもっと詳細にこのキー発生器を図解するブロック線図である。hi and lo ＭＩＰマップ（二つの最も近いＭＩＰマップ）内の（ｓ，ｔ）座標に基づいて、キー発生器がそのhi and lo ＭＩＰマップ内のテクスチュアサンプル位置を計算する（1340）。このキー発生器がそれからこれらのサンプルからキャッシュキーを計算する（1342）。このキー発生器がキャッシュキー、（ｓ，ｔ）座標、及びhi and lo ＭＩＰマップレベルに対するＬＯＤを、要求されたテクスチュアサンプルを返すテクスチュアキャッシュへ転送する。勿論、１個だけの詳細なテクスチュアマップレベルが用いられる場合には、このキー発生器は１個のテクスチュアマップに対してのみキーを発生する。
　図39における分数制御器1312がテクスチュア又はシャドウマップ内のサンプル間及び３線型補間のためのＭＩＰマップレベル間の補間を制御する。２線型補間を支持するために、分数制御器がテクスチュア又はシャドウマップ内のサンプル間の重み付けを制御する。３線型補間を支持するために、分数制御器が二つの最も近いＭＩＰマップレベル内へマッピングされた点に対して４個の最も近いサンプルの間で補間すること（２線型補間）を補間装置に指令し、且つそれから二つのＭＩＰマップレベルからの結果を混合するために線型補間を指令する。この分数制御器は入力としてhi and lo ＭＩＰマップレベルに対するＬＯＤ及び（ｓ，ｔ）座標を受け取り、且つ各ＭＩＰレベルにおけるサンプル間とＭＩＰマップレベル間の補間を制御する。
【０４９０】
　カラー成分補間装置1314はアルファ及びＲＧＢカラー成分のための補間装置を含んでいる。図41はもっと詳細に４個の補間装置のうちの一つを図解しているブロック線図である。この補間装置は一つの成分に対するカラー成分補間を取り扱い、且つシャドウ係数に２線型補間を実行する。他のカラー成分補間装置はカラー成分のみを取り扱う。
　このカラー成分補間装置はテクスチュアキャッシュからテクセル又はシャドウマップ素子を受け取り、且つそれらをマルチプレクサ（MUX）のバンク1350へ加える。マルチプレクサのバンク1350へ入力する場合に、サンプル有効データがどのサンプルが有効であるか、すなわち現在のテクスチュア又はシャドウイング動作に用いられるべきサンプルを確認する。サンプル有効制御信号に基づいて、それらのマルチプレクサが入ってくるサンプルか又はテクスチュア背景カラー1352かのいずれかを選択する。シャドウイング動作に対しては、カラー成分補間装置1314がシャドウフィルタ積算機1316へシャドウ素子を送る。３つのカラーチャネルが単一の24ビット幅シャドウマップ素子を形成するために用いられ、且つアルファチャネルがシャドウイング動作において無視される。テクスチュアマッピング動作に対しては、カラー成分補間装置が線型補間装置（Linear Interpolator）の段1354, 1356及び1358へテクスチュアサンプルを転送する。
【０４９１】
　３線型補間においては、カラー成分補間装置が３段の線型補間装置を用い、２段は各ＭＩＰマップレベル（1354, 1356）におけるサンプルの間の補間のためであり、且つもう一つは各ＭＩＰレベル（1358）からの結果を混合するためである。カラー成分補間装置が４個のフィルタフットプリントから計算されたシャドウ係数を結合するために２線型補間を実行する。図43に示されたように、この２線型補間を実行するために、最後の２段（1356及び1358）が用いられる。マルチプレクサの第２バンク1360が４個のシャドウ係数と線型補間装置の第１段1354の出力との間で選択する。テクスチュアマッピングとシャドウ動作との双方において、カラー成分補間装置が積算機及び後処理機1318へそれらの補間装置段の出力を転送する。
【０４９２】
　シャドウフィルタ積算機1316が画素待ち行列からサンプルインデックス及び光深さ値（ベータ）を受け取り、シャドウマスクを発生するためにその光深さ値をテクスチュアキャッシュから返されたシャドウマップ素子と比較し、且つ予備シャドウ係数を計算するためにそのシャドウマスクをフィルタリングする。図44はもっと詳細にシャドウフィルタ積算機を図解するブロック線図である。シャドウフィルタ積算機内の深さ比較器がフィルタフットプリント内のシャドウ素子の深さを比較し、且つシャドウマスクを発生する。この特殊の場合において、シャドウマスクはフィルタフットプリントの４×２部分に対応するブール値による８ビットである。
【０４９３】
　フットプリント制御器1372が画素待ち行列からサンプルインデックス値に基づいて全体フットプリントの現在の４×２部分を選択する。フットプリント制御器がクロックサイクルとフィルタリングモード（２×２，４×４又は８×８）とに基づいて４個のシャドウ寄与ブロックの各々へフットプリントマスクを転送する。そのフットプリントマスクが８シャドウマスク素子のうちのどれが、４×４及び８×８モードにおいて、４個のボックスフィルタの各々に対して現在のクロックサイクルにおいて有効であるかを示す。２×２モードにおいては、シャドウフィルタ積算機が４個の最も近いサンプルの各々がシャドウ内にあるか無いかのいずれかを示す４個のブール値を出力する。
　シャドウフィルタ積算機がフィルタフットプリント内のサンプルへ４ボックスフィルタ（例えば、３×３又は７×７）を適用する。シャドウマスクのどの素子が現在のクロックサイクルに対して有効であるかを決め且つそれからそれらの有効な素子を合計するために、シャドウ寄与ブロックの各々がフットプリントマスクとシャドウマスクとを結合する。全体のフィルタフットプリントに対するシャドウマスク内の有効な素子を積算した後に、シャドウ寄与ブロックが予備シャドウ係数を計算するためにサンプルの数によりその合計を除算し、それらがカラー補間装置内の２線型補間段へ転送される。カラー補間装置がそれから最終シャドウ係数を計算するために４個の予備シャドウ係数の間を補間する。
【０４９４】
　積算機及び後処理機1318がカラー成分補間装置1314からアルファ及びカラー成分を受け取り、且つテクスチュア基準データの各例に対してカラーとアルファ係数とを計算する。シャドウイング動作に対して、テクスチュアフィルタエンジンはシャドウ減衰係数を計算するために１チャネル（アルファ又はＲＧＢ）を使用する。シャドウフィルタリング論理は別々にも実施され得る。図43はもっと詳細に積算機及び後処理機を図解するブロック線図である。図示のように、各カラー成分（アルファ及びＲＧＢ）はスケール及び積算機を有している。各成分に対するスケール及び積算機1380は入力として積算スケールとカラー成分とを受け取り、且つ応答して、カラー成分をスケーリングし且つそれを成分合計ブロック1382内の積算された成分値へ加える。例えば、異方性フィルタリングにおいて、テクスチュアフィルタエンジンが異方性の線に沿って進む時に、スケール及び積算機ブロック1380が復元フィルタ（３線型補間装置）の出力を重み付けする。最後のステップの後に、アルファ及びＲＧＢ成分のためのスケール及び積算機が最終カラー成分係数を出力する。
【０４９５】
　シャドウイング動作に対して、スケール及び積算機ブロックは多数動作を迂回するが、周囲オフセットを加える。この周囲オフセットが全体的にシャドウ内の平坦な対象物がまだ見えることを保証する。例えば、１のシャドウ係数が全体に照明されたことを意味し、０のシャドウ係数が全体にシャドウ内であることを意味している。カラーが０の係数により乗算された場合には、対象物がその画素位置では見えなくなる。かくして、オフセットが加えられ、且つシャドウ係数が、オフセットシャドウ係数がオフセット値から１までに配列するように１へ留められる。
　シャドウ後処理機1384は全部で３個のカラーチャネルに対して、及び（条件付きで）アルファチャネルに対して、スカラーシャドウ減衰「ｓ」の模写を行う。シャドウイメージを計算することのためにシャドウ減衰の条件付き補数化（ｓ＝１−ｓ）もある。シャドウイメージは、シャドウ係数のアレイあるいはｇスプライト（gsprite）をシャドウイングするために用い得るシャドウ係数の補数のアレイである。
【０４９６】
　最後に、マルチプレクサ段1386が、シャドウイング動作のためのシャドウ係数か、又はテクスチュアマッピング動作のためのＲＧＢ及びアルファ成分のいずれかを選択する。要するに、テクスチュアフィルタエンジン401 がシャドウイング動作とテクスチュア化動作との双方を実行する。テクスチュアフィルタエンジンがテクスチュア変調段へテクスチュアマッピング動作の結果を送る。テクスチュア変調は典型的に、補間されたカラー又は走査変換ブロックにおいて計算されたカラー値によりテクスチュアフィルタからのＲＧＢカラー値を乗算することを含んでいる。それに加えて半透明性を有する図式的対象物に対して、テクスチュア変調は走査変換ブロックからの補間されたアルファ値によりテクスチュアフィルタからのアルファ値を乗算することも含み得る。この実行に依存して、テクスチュア変調はテクスチュアフィルタエンジン（図9Bにおける素子401）又は画素エンジン（図9Bにおける素子406）において実行され得る。それはまた走査変換ブロック（図9Aにおける素子394 又は図9Cにおける素子397）においても実行され得る。一つの実行においては、テクスチュアフィルタエンジン401 が補間された値を、構成される値を計算するためにフィルタリングされた値と結合する。画素エンジン406 がその時構成された値を記憶するか又は対応するＲＧＢ成分又は対応する画素位置に対する画素か又は断片バッファ内に記憶されたアルファ成分と結合するかどうかを決定する。
【０４９７】
　シャドウイング動作の場合においては、シャドウ係数が画素又は断片バッファ内の対応する画素位置におけるＲＧＢ及びアルファ値へ、又は現在の通路の間に発生され且つ待ち行列内でバッファされた、補間されたＲＧＢ又はアルファ値へ加えられ得る。例えば、対象物がそれに関連するテクスチュアを有さない場合には、テクスチュアフィルタエンジン401 内のテクスチュア変調器が、積算機及び後処理機からのシャドウ減衰係数により、見つけられたイメージを表現し且つテクスチュア標準データ待ち行列391(図9B)内に記憶された、補間され且つ未解決のＲＧＢ及びアルファ値を乗算できる。
【０４９８】
　我々は幾つかの実施例を参照してイメージ処理装置、それの構造、及び関連する方法の種々の態様を記載してきた。我々は詳細に幾つかの実施例を記載してきたが、我々はこれらの特定の実施例に我々の発明を制限するつもりはない。例えば、我々の新奇な構造は、手作業装置からワークステーションへ配列されるコンピュータ装置、ゲームプラットフーム、セットトップボックス、図形処理ハードウエア、図形処理ソフトウエア、及びビデオ編集装置を、含むけれどもそれに制限されない種々のハードウエア設備へ適用され得る。我々の装置と方法との変形はハードウエア又はソフトウエアあるいはそれら双方の組み合わせで実行され得る。
【０４９９】
　我々の発明の原理が置かれ得る多くの可能な態様の範囲において、我々は上述された詳細な実施例が図解のためのみであり、且つ我々の発明の範囲を制限するものとして取られるべきではないことを強調する。むしろ、我々は引き続く請求項及びそれらの請求項と等価な請求項の範囲と精神との中に入り得るような全部の態様を我々の発明として請求する。
【図面の簡単な説明】
【０５００】
【図１】画像処理装置のブロック・ダイアグラムである。
【図２】本発明を実現するためのシステム環境を表わすブロック・ダイアグラムである。
【図３】ある実施態様のシステム・アーキテクチャーのブロック・ダイアグラムである。
【図４Ａ】ある実施態様の画像処理ハードウェアのブロック・ダイアグラムである。
【図４Ｂ】ある実施態様における幾何学的基本図形を変換する画像処理装置の一部を示すブロック・ダイグラムである。
【図５Ａ】ある実施態様における変換工程の概観を示すフロー・ダイグラムである。
【図５Ｂ】ある実施態様における変換工程の概観を示すフロー・ダイグラムである。
【図６】ある実施態様の表示生成工程の概観を示すフロー・ダイアグラムである。
【図７】ある実施態様における、フレーム周期に関して表示生成の一面を示したダイグラムである。
【図８】ある実施態様におけるディジタル信号処理装置(DSP) のブロック・ダイグラムである。
【図９Ａ】タイラーの各種実施態様を示すブロック・ダイアグラムである。
【図９Ｂ】タイラーの各種実施態様を示すブロック・ダイアグラムである。
【図９Ｃ】タイラーの各種実施態様を示すブロック・ダイアグラムである。
【図１０】は、メモリーから生地データにアクセスするための装置を示すブロック・ダイグラムである。
【図１１】メモリーから生地データにアクセスするための装置を示すブロック・ダイグラムである。
【図１２Ａ】ｇスプライト・エンジンの別様実施態様のブロック・ダイグラムである。
【図１２Ｂ】ｇスプライト・エンジンの別様実施態様のブロック・ダイグラムである。
【図１３】ある実施態様における合成用バッファーのブロック・ダイグラムである。
【図１４】ある実施態様におけるディジタル・アナログ変換器(DAC) のブロック・ダイアグラムである。
【図１５】チャンク化の一局面を示す一例の模式図である。
【図１６】ある実施態様におけるチャンク化の局面を示す模式図である。
【図１７Ａ】ある実施態様におけるチャンク化の局面を示すフロー・ダイアグラムである。
【図１７Ｂ】ある実施態様におけるチャンク化の局面を示すフロー・ダイアグラムである。
【図１８】ある実施態様におけるチャンク化の局面を示す模式図である。
【図１９】ある実施態様におけるチャンク化の局面を示す模式図である。
【図２０】ある実施態様における画像圧縮を示すブロック・ダイアグラムである。
【図２１Ａ】ある実施態様におけるｇスプライト処理を示す模式図である。
【図２１Ｂ】ある実施態様におけるｇスプライト処理を示す模式図である。
【図２２】ある実施態様におけるｇスプライト変換を実行する方法の一局面を示すフローダイアグラムである。
【図２３】ある実施態様においてｇスプライト変換がどのようにして搬送遅延を下げることができるかを示すフロー・ダイアグラムである。
【図２４】ある実施態様におけるｇスプライト・データ構造のブロック・ダイアグラムである。
【図２５】ある実施態様において、出力装置座標にマップされるｇスプライトの例を示す模式図ある。
【図２６】ある実施態様における表示生成の一局面を示す模式図である。
【図２７】26図の表示生成を、帯域周期という観点で示すフロー・ダイアグラムである。
【図２８Ａ】３通りの実施態様におけるピクセル、および、断片生成の局面を示すフローダイグラムである。
【図２８Ｂ】３通りの実施態様におけるピクセル、および、断片生成の局面を示すフローダイグラムである。
【図２８Ｃ】３通りの実施態様におけるピクセル、および、断片生成の局面を示すフローダイグラムである。
【図２８Ｄ】３通りの実施態様におけるピクセル、および、断片生成の局面を示すフローダイグラムである。
【図２８Ｅ】３通りの実施態様におけるピクセル、および、断片生成の局面を示すフローダイグラムである。
【図２８Ｆ】３通りの実施態様におけるピクセル、および、断片生成の局面を示すフローダイグラムである。
【図２９】本発明のある実施態様において、ピクセル断片を融合する方法を示すフロー・ダイアグラムである。
【図３０】本発明の実施態様に、断片融合回路を装着した様子を示すブロック・ダイアグラムである。
【図３１】第30図に示した断片融合回路の融合テスト・モヂュール実装の様子を示すブロック・ダイアグラムである。
【図３２】ピクセル、および、断片バッファーの一部を示す模式図である。
【図３３】このピラミッド構造の分解状態を表わす模式図である。
【図３４Ａ】タイラーにおけるバッファー分解法を示すフロー・ダイアグラムである。
【図３４Ｂ】タイラーにおけるバッファー分解法を示すフロー・ダイアグラムである。
【図３５】断片解消サブシステムの実装状態を示すブロック・ダイアグラムである。
【図３６】断片分解消サブシステムのまた別の実装状態を示すブロック・ダイアグラムである。
【図３７】生地マッピングを示す模式図である。
【図３８】38A-38D 図は、ある実施態様における異方性濾過法を示す模式図である。
【図３９】生地および影フィルターの実装状態を示すブロック・ダイアグラムである。
【図４０】第39図のキー・ジェネレーターの実装状態を示すブロック・ダイアグラムである。
【図４１】第39図のカラー挿入器の実装状態を示すブロック・ダイアグラムである。
【図４２】第39図の陰影フィルター集積器の実装状態を示すブロック・ダイアグラムである。
【図４３】第39図の集積器と後処理器の実装状態を示すブロック・ダイアグラムである。
【図１】
2004102998.tif 000033
【図２】
2004102998.tif 000034
【図３】
2004102998.tif 000035
【図４Ａ】
2004102998.tif 000036
【図４Ｂ】
2004102998.tif 000037
【図５Ａ】
2004102998.tif 000038
【図５Ｂ】
2004102998.tif 000039
【図６】
2004102998.tif 000040
【図７】
2004102998.tif 000041
【図８】
2004102998.tif 000042
【図９Ａ】
2004102998.tif 000043
【図９Ｂ】
2004102998.tif 000044
【図９Ｃ】
2004102998.tif 000045
【図１０】
2004102998.tif 000046
【図１１】
2004102998.tif 000047
【図１２Ａ】
2004102998.tif 000048
【図１２Ｂ】
2004102998.tif 000049
【図１３】
2004102998.tif 000050
【図１４】
2004102998.tif 000051
【図１５】
2004102998.tif 000052
【図１６】
2004102998.tif 000053
【図１７Ａ】
2004102998.tif 000054
【図１７Ｂ】
2004102998.tif 000055
【図１８】
2004102998.tif 000056
【図１９】
2004102998.tif 000057
【図２０】
2004102998.tif 000058
【図２１Ａ】
2004102998.tif 000059
【図２１Ｂ】
2004102998.tif 000060
【図２２】
2004102998.tif 000061
【図２３】
2004102998.tif 000062
【図２４】
2004102998.tif 000063
【図２５】
2004102998.tif 000064
【図２６】
2004102998.tif 000065
【図２７】
2004102998.tif 000066
【図２８Ａ】
2004102998.tif 000067
【図２８Ｂ】
2004102998.tif 000068
【図２８Ｃ】
2004102998.tif 000069
【図２８Ｄ】
2004102998.tif 000070
【図２８Ｅ】
2004102998.tif 000071
【図２８Ｆ】
2004102998.tif 000072
【図２９】
2004102998.tif 000073
【図３０】
2004102998.tif 000074
【図３１】
2004102998.tif 000075
【図３２】
2004102998.tif 000076
【図３３】
2004102998.tif 000077
【図３４Ａ】
2004102998.tif 000078
【図３４Ｂ】
2004102998.tif 000079
【図３５】
2004102998.tif 000080
【図３６】
2004102998.tif 000081
【図３７】
2004102998.tif 000082
【図３８】
2004102998.tif 000083
【図３９】
2004102998.tif 000084
【図４０】
2004102998.tif 000085
【図４１】
2004102998.tif 000086
【図４２】
2004102998.tif 000087
【図４３】
2004102998.tif 000088
【手続補正書】
【提出日】平成15年9月2日(2003.9.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
　計算レートで観視空間に映像を発生させる方式において、
　現下の映像に対する観視容積内の対象物を少くとも二つのグスプライトに割当て、
　第１グスプライトに第１三次元対象物を与えるようにして少くとも二つのグスプライトに対象物を互いに無関係に与え、
　少くとも二つのグスプライトを合成して計算レートで現下の映像を発生させ、
　後続の計算機関に第１三次元対象物の動きを模するための密接な変換を計算し、さらに、
　以上の各過程を反復して後続の計算期間に後続の映像を発生させ、
　表現経費を減らすために後続の計算期間に第１グスプライトを再表現するよりもその密接な変換を用いて第１グスプライトに密接な変換を施す
　各過程を備えて映像群を発生させる方法。
【請求項２】
　第１対象物の特性点を用いて密接な変換を計算し、
　密接な変換を用いた第１グラスプライトの密接な変換が予定の許容誤差範囲内にあるか否かを判定し、
　その密接な変換が予定の許容誤差範囲内にあれば、第１対象物の動きを模するために密接な変換を第１グスプライトに施す
各過程をさらに含む請求項１記載の方法。
【請求項３】
　第１計算期間における第１対象物の特性点を第２計算期間における第１対象物の特性点と比較し、
　特性点の変化が予定許容範囲内にあれば、第１対象物を再表現する
各過程を含む請求項１記載の方法。
【請求項４】
　先行計算期間に変化するレートで表現したグスプライトを更新する過程を表現過程に含めた請求項１記載の方法。
【請求項５】
　グスプライト・メモリ
　いずれの対象物が観視容積と交差するかを判定し、観視容積と交差する対象物をグスプライトに割当て、グスプライトを変換するのに用いる密接な変換を計算してグスプライトが表わす対象物の動きを模するために、対象物の入力記載位置および観視点を受取る映像前処理器、および、
　対象物を各グスプライトに与え、グスプライトをグスプライト・メモリに蓄積し、グスプライト・メモリからグスプライトを読出すとともにそのグスプライトを密接な変換による物理的出力装置座標に変換し、さらに、物理的出力装置に表示するために表現したグスプライトを合成するために、映像前処理器に結合した映像処理器
　を備えて、グスプライトを用いた表示映像を発生させるための映像処理方式。
【請求項６】
　映像前処理器が計算機方式においてプログラムしたプロセッサを備えた請求項５記載の方式。
【請求項７】
　映像前処理器がプログラムしたディジタル信号プロセッサを備えた請求項５記載の方式。
【請求項８】
　映像前処理器が計算機方式においてプログラムしたプロセッサおよびそのプログラムしたプロセッサに結合してプログラムしたディジタル信号プロセッサを備えた請求項５記載の方式。
【請求項９】
　映像処理器が対象物をグスプライトに与えて、そのグスプライトをグスプライト・メモリに蓄積する請求項５記載の方式。
【請求項１０】
　映像処理器がグスプライト・メモリからグスプライトを読出してそのグスプライトを物理的出力装置座標に変換するためのグスプライト機関を含む請求項５記載の方式。
【請求項１１】
　映像処理器が物理的出力装置に表示するためにグスプライトを合成するためのグスプライト機関に結合した合成用バッファを含む請求項１０記載の方式。