JPH11511277A - グラフィック対象物をチャンク映像に変換し、かつ、映像層を結合して表示画像に換える方法、および、装置 - Google Patents

グラフィック対象物をチャンク映像に変換し、かつ、映像層を結合して表示画像に換える方法、および、装置

Info

Publication number
JPH11511277A
JPH11511277A JP9508604A JP50860497A JPH11511277A JP H11511277 A JPH11511277 A JP H11511277A JP 9508604 A JP9508604 A JP 9508604A JP 50860497 A JP50860497 A JP 50860497A JP H11511277 A JPH11511277 A JP H11511277A
Authority
JP
Japan
Prior art keywords
pixel
data
fragment
image
buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP9508604A
Other languages
English (en)
Other versions
JPH11511277A5 (ja
JP4540753B2 (ja
Inventor
ネイサン ピー ミールフォルト
ジェイムス ティー カジャ
ジョン ジー ジュニア トルボーグ
マーク エル ケンワーシー
マイケル アレン トール
ケント イー グリフィン
ジェローム エドワード レングイェル
スティーヴン エイ ガブリエル
ジェイムス イー ヴェルス
ジョセフ ダブリュー チャウヴィン
ハワード グッド
ウィリアム チャンバース ザ サード パウエル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US08/672,425 external-priority patent/US5990904A/en
Priority claimed from US08/671,412 external-priority patent/US5867166A/en
Priority claimed from US08/672,694 external-priority patent/US5949428A/en
Priority claimed from US08/671,506 external-priority patent/US5852443A/en
Priority claimed from US08/672,347 external-priority patent/US6005582A/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JPH11511277A publication Critical patent/JPH11511277A/ja
Publication of JPH11511277A5 publication Critical patent/JPH11511277A5/ja
Application granted granted Critical
Publication of JP4540753B2 publication Critical patent/JP4540753B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/00Three-dimensional [3D] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/00Two-dimensional [2D] image generation
    • G06T11/40Filling planar surfaces by adding surface attributes, e.g. adding colours or textures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/00Three-dimensional [3D] image rendering
    • G06T15/005General purpose rendering architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Processing (AREA)

Abstract

(57)【要約】 表示イメージをレンダリングするために、この装置はgスプライトのシャンクを直列にレンダリングし、且つ表示イメージを計算するためのgスプライトを合成する。リンダリングオーバーヘッドを低減するために、この装置はフレームアニメーションのために対象物を再レンダリングするよりもむしろ三次元対象物の動きをシミュレートするためにgスプライト上にアフィン変換を実行できる。シャンク内のレンダリング幾何学が複雑な断片リストアンチアリアースを可能にする。この装置は断片バッファ内に部分的に覆われた画素位置を表現する断片又は半透明画素を記憶する。シャンクに対するプリミテーブをラスター化した後に、断片分解補助装置が出力画素を計算するために断片を識別する。この装置のラスター化成分が断片メモリを節約するために断片を合併しようと試みる。断片メモリが溢れた場合にはこの装置はもっと小さい領域へシャンクを細分し、且つこれらの小さい領域を個別にレンダリングできる。この装置はテクスチュアデータが圧縮された場合におけるように高待ち時間を有する環境にアクセスされるテクスチュアを支持する。テクスチュアアクセシシングの待ち時間はテクスチュア標準か又はテクスチュアデータがメモリから引き出される時に、部分的にレンダリングされた画素データを緩衝するための「画素待ち行列」かのいずれかを用いて、あるいはテクスチュア要求を発生するための前置ラスター化装置と、その前置ラスター化装置により発生されたテクスチュア要求の結果として引き出されたテクスチュアを完全に用いてプリミティブをラスター化するための後ラスター化装置とを用いて、低減される。この装置は、テクスチュアすなわちMIPマッピングされたテクスチュア内へマッピングされた画素位置に対して計算された異方性の線に沿ってテクスチュアデータを反復的にサンプリングすることにより、テクスチュアデータの異方性フィルタリングを支持する。

Description

【発明の詳細な説明】 グラフィック対象物をチャンク映像に変換し、かつ、映像層を 結合して表示画像に換える方法、および、装置技術分野 本発明は一般に、グラフィックス変換に関わる。さらに特定的には、グラフィ ック対象物を変換するための改良法、および、改良装置に関わる。背景技術 近代生活のあらゆる分野にコンピュータが普及するにつれて、視覚情報を用い てマン・マシーン・インターフェイスを改善しようという要求が増している。グ ラフィック・ソフトおよびハードウェアの進歩はすでにマン・マシーン・インタ ーフェイスを急速に改善してきた。例えば、デスクトップ・コンピュータ用のウ ィンドー環境のようなインタラクティブ・グラフィックスは、コンピュータの使 い勝手とユーザーとの相互作用を大きく改善し、今日では当たり前のことになっ ている。ハードウェアの価格対パフォーマンス比が下がるにつれて、コンピュー タ上で作成されたグラフィックスやアニメの使用がさらに浸透してきている。残 念ながら、真にインタラクティブな、リアルな効果を生み出そうとすると、その コストのために、応用に限界がある。したがって、より低コストで、さらにイン タラクティブで、リアルな効果を与えることのできる新しい画像処理技術やアー キテクチュアにたいしては需要がある。 画像処理法の分類法には各種あるけれども、よくある方法の一つは、画像を、 それが表わしたい対象物の次元で記載するやり方である。例えば、ある画像装置 は、対象物を2 次元(例えば、x 座標とy 座標を持つ)で表わす。この場合は、 そのグラフィックスは「2次元性」(2D)であるという。また、3次元( 例えば、 x 、y 、および、z 座標を持つ)で表わせば、その場合は、そのグラフィックス は、「3次元性」(3D)であるという。 陰極線管(CRT)のような表示装置は、2次元性(2D)であり、コンピュータの画 像装置によって表示される映像は一般に2Dである。しかしながら、以下にさらに 詳しく論ずるように、もしもコンピュータが、3次元空間で映像化された対象物 を表わすグラフィック・モデルを保持しているならば、コンピュータは、その表 示映像を変えて、3D空間において同じ対象について別の遠近像を描くことができ る。一方、2Dグラフィック画像は、表示の前に変形する(例えば、拡大・縮小し たり、一定の方式で変換したり、回転したり)ことはできるけれども、3D空間に おける別の遠近視におけるその対象物の外観をコンピュータはすぐには描き出す ことはできない。 現代のコンピュータが、2Dグラフィックス、特に3Dグラフィックスを次第に効 率的に扱うことができるようになったために、様々の応用分野が広がっており、 同時に、コンピュータとユーザー間のインターフェイス(UI)に基本的な変化が生 じている。3Dグラッフィクスの利用可能性は益々重要になってきている。すなわ ち、生産品質のアニメ・フィルムの制作ツールを始め、家庭向きの低解像度のゲ ームやマルチメディア製品を含めた、娯楽関連性の応用分野が成長しているから である。3Dグラフィックスの関連する他分野について二三挙げるならば、教育、 ビデオ会議、ビデオ編集、インタラクティブ・ユーザー・インターフェイス、コ ンピュータ支援設計やコンピュータ支援製造(CAD/CAM)、科学・医学画像法、ビ ジネス応用、および、電子出版がある。 グラフィックス処理装置は、アプリケーション・モデル、アプリケーション・ プログラム、グラフィックス・サブシステムを始め、コンピュータの通常のハー ドウェア、ソフトウェア部分、および、付属品を含むと考えてよい。 アプリケーション・モデルとは、もちろん画像処理はモデルに基づくと仮定し て、データ、すなわち、表示される対象物を表わす。モデルは、対象の形を定義 する基本要素、例えば、点、線や多角形を始め、対象物の属性(例えば、色)に 関する情報を含む。アプリケーション・プログラムは、アプリケーション・モデ ルへ入るインプット、モデルから出て行くアウトプットをコントロールし、アプ リケーション・モデルと、グラフィックス・サブシステムとの間の翻訳者として 有効に活動する。最後に、グラフィックス・サブシステムは、ユーザー・インプ ットをアプリケーション・モデルに手渡したり、また、アプリケーション・モデ ルの蓄えている詳細な記載に基づいて画像を生成したりする。 通常の画像処理装置は、物理的出力装置を備える。これが、画像の出力、すな わち、表示を行なう。従来他の形態の表示装置も開発されてはきたけれども、今 日優勢な技術は、ラスター・グラフィックスに依拠している。ラスター表示装置 は、一連の不連続な点、すなわち、画素(すなわち、ピクセル)を含む。画素は 、複数の列と行に配列されて、画像を生成する。CRT においては、この画素は、 CRT のガラス・スクリーン上に与えられた蛍光体配列に対応する。この配列の中 の各蛍光体からの光出力は、それぞれ独立に、この配列を順々に「走査」する電 子ビームによってコントロールされる。配列の奇数・偶数列の一つ置き走査も、 例えば、テレビジョン環境では普通に見られる技法である。スクリーンにマップ されるピクセル値配列は、ビットマップ、または、ピックスマップと呼ばれるこ とが多い。 ラスター・画像装置に関連する一つの問題は、たった一つの画像にたいするビ ットマップでもそれを保存するのに必要なメモリーが膨大になることである。例 えば、1280 x 1024(すなわち、ピクセル行とピクセル列の数)の表示解像度を 維持するのに、装置は、ランダム・アクセス・メモリーの3.75メガバイト(Mb)を 必要とすることがある。この情報は、繰り返すが、単一スクリーンの画像を表わ すにすぎないものであるが、これは、フレーム・バッファーと呼ばれる、コンピ ュータの表示記憶装置の一部に蓄えられる。 CRT のような従来のラスター画像装置に関するもう一つの問題は、装置から発 せられる光が比較的速やかに減衰することである。そのため、画像の「ゆらぎ」 を避けるためには、通常、60Hz以上もの頻度で、表示を「更新」してやらなけれ ばならない(すなわち、ラスターを再走査しなければならない)。このため、画 像生成装置は、画像データを一定頻度で供給するという厳しい要求をつきつけら れることになる。二つのフレーム・バッファーを用いてこの問題に対応しようと する装置がある。すなわち、バッファーの内の一つは、直後の画像フレームに対 応するピックスマップ情報を備え、他方のバッファーは、只今の画像フレームの ピックスマップでスクリーンを更新するのに用いられる。 装置にたいする要求は情報の複雑さによってさらに悪化される。すなわち、ア プリケーション・モデルの貯えた対象物から映像を引き出すためには情報が複雑 に処理されなければならないからである。例えば、3次元表面のモデル化それ自 体が複雑な仕事である。表面モデル化は、アプリケーション・モデルによって実 行されるが、多角形メッシュ、パラメトリック表面、または、方形表面を用いて 行なう。曲面は、平面多角形のメッシュによって表わされるけれども、変換画像 におけるその外観の「滑らかさ」は、表示の解像度と、表面のモデル化に用いら れた、個々の多角形の数の両方に依存する。多角形メッシュによる複雑な表面の 、高解像度のモデル化に伴う複雑な計算は、コンピュータのリソースにとって極 端に圧迫的である。 上に紹介したように、よりリアルな、よりインタラクティブな画像を生成した いという要求がある。「リアル・タイム」という用語は、通常、インタラクティ ブで、リアルな画像処理装置を記述するのに用いられる。「リアル・タイム」装 置においては、ユーザーは、ある場面の中の対象物の連続的な動きを感ずること ができなければならない。リアル・タイム機能を持つビデオ・ゲームにおいては 、活動的キャラクターと視点は、ユーザーのインプットにたいして極小の遅れで 反応し、かつ、滑らかに動く必要がある。 そのようなリアル・タイム効果を実現するためには、画像変換装置は、十分に 高速で新しい画像を生成し、それによって、ユーザーが、ある場面の中の対象物 の連続的な動きを感知できるほどになっていなければならない。リアル効果を実 現するために必要とされる計算速度は、対象物が場面の中でどのくらいの速さで 動き回るか、および、透視視点がどのくらい急速に変化するか、によって変わる 。通常のアプリケーションでは、リアル・タイム画像装置は、新画像を1秒当た り少なくとも12個計算し、それによって、連続運動を模倣する一連の画像を生成 する。高品質アニメ・アプリケーションでは、計算速度は、それよりもはるかに 高くなければならない。 リアル・タイム装置に関するもう一つの問題は搬送遅延である。搬送遅延とは 、ユーザーからのインプット、すなわち、場面の中のあるキャラクターを動かす ためのジョイスティックの運動、にたいして画像を計算して表示するのに必要な 時間である。搬送遅延時間がユーザーにとって目立つものであればあるほど、そ の程度に応じて、「リアル・タイム」の相互作用性は損なわれる。理想的には、 ユ ーザーに、搬送遅延を気づかせてはならない。しかしながら、実際には、新しい インプットにたいして、ある場面の対象物を変換し表示画像を生成するのに必要 な、いくらかの遅延が必ず存在する。リアル・タイム相互作用性の改善は、デー タを切り落とすことなく達成できればきわめて望ましい。なぜなら、データの切 り落としは、画像品質を損なうからである。 始めに紹介したように、通常の画像装置は、一般に、フレーム・バッファーを 備える。画像を生成するためには、画像装置は、ある場面の中の対象物の全てを 変換し、得られた画像をこのフレーム・バッファーに蓄える。次に、装置は、変 換画像データを表示器に転送する。通常のグラフィックス・アーキテクチャーで あれば、フレーム・バッファーの全内容は消去され、場面は再び変換され、新た なフレーム画像を生成する。この型の装置では、各対象物は、各フレームごとに 再描画される。なぜなら、フレーム・バッファーは、フレームとフレームの間に おいて空にされるのであるから。従って、各対象物は、同じ速度で最新画像に更 新される。これは、その画像が、その場面の中で現実にどのような動きをしてい るか、または、特定の用途にたいして、それがどのような重要性持つか、には無 関係に行なわれる。 この、通常のアーキテクチャーは、高度にリアルな、インタラクティブなグラ フィックスを生成しようとすると、いくつかの障害をもって立ちふさがる。第一 に、ある特定のフレームに関して、ある場面の中の各対象物がすべて同じ優先性 で、同じ更新速度で変換される。従って、ほとんど細部を持たず、動いてもいな い背景の対象物も、もっと早く動き、もっと細かい表面細部を持つ前景の対象物 と同じ速度で再変換される。そのため、処理や、記憶のためのリソースが、背景 対象物の再変換のために消費されることになる。しかも、これら背景対象物はフ レームごとにほどんど大した変化をしないのに、である。 この従来のアーキテクチャーに関するもう一つの欠点は、場面における各対象 物がすべて同じ解像度で変換されるということである。その結果、この種のやり 方で消費される変換リソースは、その対象物が、場面全体にたいして占める重要 性ではなく、その対象物が占めるスクリーン面積の大きさに比例することになる 。この問題を明らかにするには実例が役立つ。典型的なビデオ・ゲームの場合、 前 景の、フレームごとに変化する活動的なキャクラクターと、フレームごとに滅多 に変化しない背景とがある。メモリー消費という点でのコストは、背景を生成す る方が、活動的なキャラクターを生成するのに要するものよりもはるかに高い。 なぜならば、背景の方が、スクリーン上において、より大きな面積を占めるから である。画像データは、背景対象物が占める各ピクセル位置について保存されて 、なければならない。一方、より小さい、活動的なキャラクターの方はと言えば 、ピクセル・データは、小型のキャラクターの占めるピクセルにたいしてだけ、 生成・保存される。その結果、背景は、場面の中の重要性はずっと低いにも拘わ らず、より大きなメモリーを占有する。さらに、通常のアーキテクチャーでは、 背景全体が、各フレームごとに再変換され、貴重な処理用リソースを消費する。 フレーム・バッファー法の主要利点は、任意の数の単純な対象物を用いて、出力 装置において、一つの任意の画像を生成することができ、しかも、それが、ただ 、その出力装置の空間的、強度的解像度によってしか制限されないということで ある。しかしながら、フレーム・バッファーを用いる画像装置にはいくつかの弱 点がある。 フレーム・バッファーは、高価なメモリーを大量(例えば、64-128Mb)に使う 。標準のランダム・アクセス・メモリー(RAM)では、アクセス・スピードが遅い ので、フレーム・バッファーには適しない。例えば、1024 x 1024 スクリーン上 の万の桁のピクセルを空にするには、各メモリー・サイクルが250 ナノ秒を要す ると仮定して、1秒の1/4 かかる。従って、さらに高速の、さらに高価な、ビデ オRAM(VRAM)、または、ダイナミックRAM(DRAM)が通常フレーム・バッファーには 使われる。高性能装置ともなれば、2個の高価なフレーム・バッファーを備えて いるものも多い。すなわち、一方のフレーム・バッファーは、現在の画面を表示 するのに用いられ、他方は、次のフレームを変換するのに用いられる。この大容 量の特殊化メモリーは、画像装置のコストを大幅に上昇させる。 フレーム・バッファーのメモリー帯域がさらに問題である。各ピクセルに蓄え られた生地(生地)、色、深み情報によって画像処理を実行するのをサポートす るためには、30Hzで画像処理するとして、約1.7 ギガバイト/秒の帯域が必要で ある。通常のDRAMは、僅か50Mb/秒しか持っていないから、フレーム・バッファ ーは、たくさんのDRAMから構築されなければならない。すなわち、これらのDRAM を、平行処理法を用いて、所期の帯域が得られるようにしなければならない。 リアル・タイムな、インタラクティブな効果を実現するために、高品質画像装 置は、平行変換エンジンを用いる。大フレーム・バッファーに関わる問題の処理 のために、従来、三つの基本的平行法が開発されている。(1)変換処理を多数の 処理器に分配するパイプライン方式、(2)フレーム・バッファー・メモリーを、 各々独自の処理器を備えたメモリー・チップ・グループに分割する分割方式、お よび、(3)フレーム・バッファー・メモリー・チップ上の処理回路を、高密度メ モリー回路と結合させる結合方式、である。これらの方式は、大型フレーム・バ ッファーを用いる画像装置の処理法を改善したが、この装置のコストをも飛躍的 に増大させた。 高価な平行処理法を用いてさえ、高度な自然化処理法をサポートするのはきわ めて難しい。自然化処理法というのは、連続面を不連続なピクセルで表わすこと によって引き起こされる、変換画像におけるアーチファクトを減少させるための 処理法を指す。通常の、フレーム・バッファー・アーキテクチャーでは、ある全 体フレームにおけるピクセル値は、任意の順序で計算される。従って、高度な自 然化処理を実行するためには、自然化処理を始める前に、全フレームのピクセル ・データが生成されていなければならない。リアル・タイム装置においては、ピ クセル・データにたいして自然化処理を実行するのに十分な時間が残されていな い。処理を実行すれば必ず搬送遅延がさらに加わることになる。さらに、自然化 処理は、ピクセル断片を保存するためのメモリーをさらに必要とする。フレーム ・バッファーはすでに大容量の高価なメモリーを含んでいるのであるから、自然 化処理をサポートするために、さらに特殊なメモリーを加えることは、フレーム ・バッファー装置をさらに一段と高価なものにする。 画像圧縮法も、画像処理にフレーム・バッファーを用いる画像装置においては 容易に使用できるものではない。フレーム・バッファーによる画像装置において 、処理速度を上げるために用いられる平行処理法は、圧縮法を導入しようという 試みにいくつかの障害をもたらす。平行処理中、フレーム・バッファーのどの部 分にたいしても、どの時点においても、ランダムにアクセスすることができる。 一 方、多くの画像圧縮法では、画像データは、圧縮処理中は変化しないことを要求 する。そうすることによって、後になって、画像データを圧縮解除(脱圧)でき るようにするためである。 フレーム・バッファー・アーキテクチャーでは、高価なメモリーや平行処理用 ハードウェアは、常にあまり使用されずに放置されがちであった。なぜなら、あ る任意の時点においては、フレーム・バッファー・メモリー、または、平行処理 装置のごく小部分のみが実際に使用されるにすぎないからである。したがって、 フレーム・バッファー・アーキテクチャーは、大量の高価なメモリーや処理用ハ ードウェアを備えているけれども、このハードウェアは十分に活用されていない 。発明の概要 本発明は、幾何学的基本図形のようなグラフィック・データを変換して、表示 画像を生成するための方法、および、装置を与える。本発明は、3Dグラフィック スをリアル・タイムで変換するのに特に好適であるが、他のグラフィックスや画 像処理アプリケーションにも同様に適用できる。 画像変換装置の一つの態様として、本装置は、グラッフィク対象物を、gスプ ライト(gsprite)と呼ばれる画像層に別々に変換し、次に、このgスプライトを 合成して表示画像に仕立てあげる。さらに具体的に言うと、本装置は、gスプラ イトを対象物に割り当て、次に、各対象物(単数または複数)を、対応するgス プライトに変換する。gスプライトを変換するために、本装置は、映像領域、す なわち、gスプライトのチャンクを連続的に変換する。本装置は、gスプライト を、チャンクに分解し、これらのチャンクの間で対象物の大きさを仕分けし、次 に、そのチャンクを連続的に変換する。本装置は、gスプライトを合成して表示 画像に仕立てる。 本発明の一局面として、gスプライトは、3D対象物の動きを模倣するように変 形させることができ、変換のレベルをさらに上げることができることがある。あ る実施態様では、本装置は、ある場面の中の対象物を、別々のgスプライトに変 換する。ある対象物をあるgスプライトに変換した後、本装置は、その後のフレ ームのために、その対象物を再変換する代わりに、そのgスプライトを再利用す る。これを実行するために、本装置は、gスプライトの表わす3D対象物の動きを 模倣するアフィン変換を計算する。本装置は、gスプライト上でアフィン変換を 実行し、このgスプライトと他のgスプライトとを合成し、表示画像を生成する 。 本発明のもう一つの局面は、画像データのチャンクのためにピクセル断片を処 理するそのやり方にある。本装置は、チャンクのために基本図形をラスター化し 、基本図形で全的にカバーされる、または、部分的にカバーされるピクセル位置 用ピクセル・データを生成する。ある基本図形がピクセル位置を部分的にカバー する場合、または、透過性の場合、装置はピクセル断片を生成し、この断片を断 片バッファーに蓄える。ある基本図形がピクセル位置を完全にカバーし、かつ、 不透明である場合、装置は、その色彩データをピクセル・バッファーに蓄える。 装置は、チャンク用に基本図形をラスター化し、次に、後処理手順においてチャ ンク用ピクセル・データを解消する。チャンク変換用アーキテクチャーは、一方 で、表示画像をリアル・タイム速度で生成しながら、他方で高度な自然化処理を このピクセル・データにたいして実行することを可能にする。 本発明のもう一つの局面は、装置のラスター化装置が、一般化ピクセル断片を 、断片バッファーに蓄えられた断片と融合しようとすることによって、断片メモ リーをセーブできるそのやり方にある。もしも蓄えられている断片が、一般化断 片のあらかじめ定められた深みと色彩許容度の範囲内にあるならば、装置のピク セル・エンジンは、これら断片を融合する。ピクセル・エンジンは、これらの断 片を、一部は、一般化断片と蓄えられた断片の全体データ(例えば、全体マスク )を結合することによって融合する。もしも融合されたピクセル断片が完全にカ バーされ、不透明であるならば、ピクセル・エンジンは、それを、対応するピク セル・バッファー入力部に移し、断片記録を、断片メモリーから解放する。 本発明のさらにもうひとつの局面は、サブシステムが、断片記録のリストを解 消するそのやり方にある。一つのやり方として、断片解消サブシステムは、ピク セルの各サブピクセル位置にたいして別々の色彩およびアルファー集積器を持ち 、各サブピクセルごとに別々に色彩を集積する。このサブシステムは、各サブピ クセル位置の集積された色彩を結合する論理を備え、最終的な、出力ピクセルを 計算する。もう一つのやり方として、断片解消サブシステムは、深みで仕分けら れた断片リストにおいて各断片記録が解消されている間、共通の集積アルファー 値 を持つサブピクセル領域を追跡し続ける。リストの中の各断片を解消した後、二 つのやり方で得られた出力は、ただ一組の色彩値(RGB)と、恐らく一つのアルフ ァー値を持つ出力ピクセルとなる。各ピクセル位置にたいし、断片解消サブシス テムは、ピクセル・バッファー中の色彩値を、関連する断片リスト中に断片記録 があれば、それと結合させて、例えば、RGB 色彩値とアルファー値を含む分解ピ クセル値を計算する。 本発明のさらにもうひとつの局面は、異方性濾過を実行する方法にある。一般 に生地マッピングにおいては、画像変換装置は、幾何学的基本図形の表面にたい して、生地マップをマップする。この特定の方法においては、装置はまず、視野 の中のピクセル位置の一点をどのように生地マップにマップさせるかを決定する 。概念的には、装置は、フィルター足型をどのように生地マップにマップさせる かを決定する。透視マップにおいては、等方性フィルター足型を生地マップにマ ップさせることは、異方性の方向においては歪んだ形を与える。したがって、生 地を等方性フィルターで濾過することは、高品質の結果を得るには十分ではない 。ある特定の実施態様では、装置は、フィルター足型を生地にマップさせるやり 方を、生地座標にマップされた視野座標(例えば、スクリーン座標)におけるピ クセル位置にたいする逆ヤコビアン行列を計算することによって決定する。 次に本装置は、マップされたフィルター足型から異方性直線を決め、さらに、 特に、この特定の実施態様においては、逆ヤコビアン行列によって異方性直線を 決める。概念的には、異方性直線は、視野から生地空間にマップされた点の座標 を貫通する直線であり、マップされたフィルター足型の最大延長方向に向かう。 装置は、異方性直線にそってフィルターを繰り返し用いて、生地マップから数値 をサンプルする。この繰り返し濾過手順による出力は濾過・集積され、それらを 元に最終の生地マップを計算する。この方法にはいくつかの変法がある。ある特 定の実施態様では、装置は、異方性直線にそって3直線内挿を実行する。次に、 この3直線フィルターの出力は集められ、それを元にあるピクセル位置にたいす る一組の色彩値を計算する。この態様においては、生地フィルター・エンジンは 、例えば、三角形または台形の形を持つ一次元フィルターを、異方性直線に沿う 3直線内挿の出力に適用する。しかしながら、この方法では、異方性直線にそっ て 適用されるフィルターに関してはいくつかの変種が可能である。 本発明のもう一つの局面は、ある画像が、断片メモリーからあふれ出た場合に 、その画像の小部分の変換を実行するそのやり方である。ある実施態様では、装 置は、断片メモリーの使用状況を追跡し、断片記入の数がある予定値に達した場 合、画像領域を、小部分にさらに区分することができる。装置はピクセル断片を 生成しながら、断片バッファーへの記入の数を追跡し続ける。もしも記入の数が 予定値に達したならば、画像領域はさらに小領域に分割され、この小領域につい て1回に一つずつ変換する。これによって、各小領域を変換するのに十分な断片 メモリーが確保される。装置は、もしも断片記入の数が予定値に達したならば、 小領域をさらに小さい画像領域に細区分することができる。その結果、装置は、 断片メモリーが決して越えられることがないように、変換される画像領域を細区 分することができる。これによって、装置は、もし上記の工夫を持たなかったな らば、断片メモリーがあふれてしまうような場合でも、断片を放棄することなく 、比較的小さい断片メモリーを用いることができる。 本発明のもう一つの局面は、装置が、高度の潜時を生ずる環境において、生地 フェッチ(生地データを、メモリーに行って、持って帰ってくる)作業を実行す るそのやり方にある。例えば、生地マッピング、影つけ、マルチパス変換作業に おいては、作業を実行するために生地データをフェッチする際に高度の潜時が生 ずる場合がしばしばある。この潜時は、メモリーからデータを読み取る際に生ず る遅れ、生地データの脱圧にさいして生ずる遅れ、または、その両方のために起 こるものである。 ある実施態様においては、インプット・データ・ストリームの中の幾何学的基 本図形は、メモリーから1ブロックの生地データをフェッチするための潜時を十 分吸収できる長さの基本キューに蓄えられる。前ラスター化装置が、この基本キ ューの中の幾何学的基本図形を、生地ブロック参照データに変換し、これが、第 2のキューに蓄えられる。この第2のキューで参照データとされた生地ブロック は、メモリーからフェッチされ、生地キャッシュに置かれる。後ラスター化装置 は、このキューの中の基本図形を一つずつラスター化する。各基本図形がラスタ ー化されるにつれて、生地データが必要に応じて生地キャッシュから取り出され 、 現在の基本図形のための出力ピクセルの計算のために用いられる。基本図形は、 ラスター化された後、このキューから除去される。 もう一つの実施態様では、基本図形がラスター化され、得られたピクセル・デ ータは、生地ブロック・フェッチの潜時を吸収するのに十分な長さを持ったキュ ーに置かれる。ある特定の態様では、キューへの記入は、ピクセル・アドレス、 そのアドレスにたいする色彩データ、および、生地請求を含む。生地請求はさら に、生地マップ座標における生地サンプルの中心点を含む。生地要求は、生地ブ ロック・アドレスに変換され、この生地ブロックは、フェッチされ、生地キャッ シュに置かれる。キューへの記入はキューから取り出され、現在生地キャッシュ にある関連生地データは、出力ピクセルを計算するのに用いられる。両方の方法 とも二組の生地請求を生成し、その内の一組は、他の一組のために遅らせられる 。第1組は、生地データを実際にフェッチし、そしれ恐らくそれを脱圧するのに 用いられ、第2組は、生地キャッシュから生地データを取り出すのに用いられる 。 本発明の、これ以外の特徴や利点に関しては、下記の詳細な説明と、付属の図 面を参照することによって明らかになるであろう。図面の簡単な説明 第1図は、画像処理装置のブロック・ダイアグラムである。 第2図は、本発明を実現するためのシステム環境を表わすブロック・ダイアグ ラムである。 第3図は、ある実施態様のシステム・アーキテクチャーのブロック・ダイアグ ラムである。 第4A図は、ある実施態様の画像処理ハードウェアのブロック・ダイアグラムで ある。 第4B図は、ある実施態様における幾何学的基本図形を変換する画像処理装置の 一部を示すブロック・ダイグラムである。 第5Aおよび5B図は、ある実施態様における変換工程の概観を示すフロー・ダイ グラムである。 第6図は、ある実施態様の表示生成工程の概観を示すフロー・ダイアグラムで ある。 第7図は、ある実施態様における、フレーム周期に関して表示生成の一面を示 したダイグラムである。 第8図は、ある実施態様におけるディジタル信号処理装置(DSP)のブロック・ ダイグラムである。 第9A-C図は、タイラーの各種実施態様を示すブロック・ダイアグラムである。 第10図は、メモリーから生地データにアクセスするための装置を示すブロック ・ダイグラムである。 第11図は、メモリーから生地データにアクセスするための装置を示すブロック ・ダイグラムである。 第12A-B 図は、gスプライト・エンジンの別様実施態様のブロック・ダイグラ ムである。 第13図は、ある実施態様における合成用バッファーのブロック・ダイグラムで ある。第14図は、ある実施態様におけるディジタル・アナログ変換器(DAC)のブ ロック・ダイアグラムである。 第15A-C 図は、チャンク化の一局面を示す一例の模式図である。 第16A-B 図は、ある実施態様におけるチャンク化の局面を示す模式図である。 第17A-B 図は、ある実施態様におけるチャンク化の局面を示すフロー・ダイア グラムである。 第18A-B 図は、ある実施態様におけるチャンク化の局面を示す模式図である。 第19A-B 図は、ある実施態様におけるチャンク化の局面を示す模式図である。 第20図は、ある実施態様における画像圧縮を示すブロック・ダイアグラムであ る。 第21A-B 図は、ある実施態様におけるgスプライト処理を示す模式図である。 第22図は、ある実施態様におけるgスプライト変換を実行する方法の一局面を 示すフローダイアグラムである。 第23図は、ある実施態様においてgスプライト変換がどのようにして搬送遅延 を下げることができるかを示すフロー・ダイアグラムである。 第24図は、ある実施態様におけるgスプライト・データ構造のブロック・ダイ アグラムである。 第25図は、ある実施態様において、出力装置座標にマップされるgスプライト の例を示す模式図ある。 第26図は、ある実施態様における表示生成の一局面を示す模式図である。 第27図は、第26図の表示生成を、帯域周期という観点で示すフロー・ダイアグ ラムである。 第28A-F 図は、3通りの実施態様におけるピクセル、および、断片生成の局面 を示すフローダイグラムである。 第29図は、本発明のある実施態様において、ピクセル断片を融合する方法を示 すフロー・ダイアグラムである。 第30図は、本発明の実施態様に、断片融合回路を装着した様子を示すブロック ・ダイアグラムである。 第31図は、第30図に示した断片融合回路の融合テスト・モヂュール実装の様子 を示すブロック・ダイアグラムである。 第32図は、ピクセル、および、断片バッファーの一部を示す模式図である。 第33図は、このピラミッド構造の分解状態を表わす模式図である。 第34A-B 図は、タイラーにおけるバッファー分解法を示すフロー・ダイアグラ ムである。 第35図は、断片解消サブシステムの実装状態を示すブロック・ダイアグラムで ある。 第36図は、断片分解消サブシステムのまた別の実装状態を示すブロック・ダイ アグラムである。 第37図は、生地マッピングを示す模式図である。 第38A-D 図は、ある実施態様における異方性濾過法を示す模式図である。 第39図は、生地および影フィルターの実装状態を示すブロック・ダイアグラム である。 第40図は、第39図のキー・ジェネレーターの実装状態を示すブロック・ダイア グラムである。 第41図は、第39図のカラー挿入器の実装状態を示すブロック・ダイアグラムで ある。 第42図は、第39図の陰影フィルター集積器の実装状態を示すブロック・ダイア グラムである。 第43図は、第39図の集積器と後処理器の実装状態を示すブロック・ダイアグラ ムである。発明の詳細な説明 装置概観 下記の詳細な説明の中で、われわれは、画像処理装置に関して、いくつかの実施 態様を記述する。 この画像処理装置は、グラフィックスとビデオ処理の両方にたいして、リアル ・タイム画像変換と生成をサポートする。本装置に用いられる新規のアーキテク チャーと画像処理法によって、本装置は、当今の画像装置に比べて、高度なリア ル・タイム3Dアニメを、はるかにコスト安で生成することができる。画像処理に 加えて、本装置は、ビデオ編集アプリケーションのようなビデオ処理をもサポー トし、また、ビデオとグラッフィクスを結合させることもできる。例えば、本装 置は、ビデオを、グラッフィクな対象物に適用したり、ビデオ・データにグラッ フィクな対象物を加えるのに用いることもできる。 本装置は、広範なインタラクティブ・アプリケーションをサポートする。本装 置は、高度のリアル・タイム・アニメをサポートできるために、ゲームや、教育 用アプリケーション、および、たくさんのインタラクティブ・アプリケーション に好適である。本装置は、3Dグラッフィクス、および、グラフィックスとビデオ 併用を含む、高度なユーザー・インターフェイスをサポートする。今日の、パソ コン用ウィンドウ環境の制限された画像能力を改善し、本装置は、高度の、アプ リケーション用3Dグラフィック・ユーザー・インターフェイスをサポートする。 そのアプリケーションは、デスクトップ・コンピュータ上のオフィス・インフォ メーション処理用のものから、テレビ・セット接続式のインタラクティブ用途の ものまで広範に渡る。本装置は、メモリーと処理時間をきわめて効率よく利用す るので、目覚しい画像処理、および、表示を呈示しながら、それでいて、アプリ ケーションの性能や、ユーザー・アクションにたいするユーザー・インターフェ イスの反応性を不当に妨げない。 第1図は、本画像処理装置100 のブロック・ダイアグラムである。本画像処理 装置は、画像データ供給・保存体102 、画像前プロセッサー104 、画像プロセッ サー106 、および、変換画像を直ちに表示したいならば、表示装置108 から成る 。本装置の各要素は、システム・インターフェイス110 を通じて互いに接続して いる。画像データ供給・保存体102 は、画像データを装置に供給し、かつ、画像 データと命令を保存する。画像前プロセッサー104 は、画像データを操作して、 変換できるように調整する。前処理機能の例としては、対象物を幾何学モデルで 定義すること、光入射、陰影形成モデルを定義すること、対象位置を決めること 、視点と光源の位置を決めること、大きさの処理、がある。 画像プロセッサー106 は、画像を変換し、表示装置108 に表示されるべき表示 画像を生成する。変換とは、モデルから画像を生成する工程を指し、二三挙げる ならば、大きさ処理(大きさ処理は、前処理機能でもあることに注意)、視程表 面の決定、走査変換、および、光入射などの機能を含む。画像、または、画像の 一部を変換した後、画像プロセッサー106 は、変換された画像データを、表示の ために表示装置に転送する。 以下に、われわれは、画像処理装置100 のいくつかの特質を、特定のハードウ ェア・ソフトウェア・アーキテクチャーを参照しながら詳細に記載する。しかし ながら、下記の画像処理装置は、各種のアーキテクチャーに実装可能であること を銘記しなければならない。 画像処理装置100 は、本発明者にとって既知の従来の高品質3D画像装置にはる かに優る価格性能上の改善を達成した。コンピュータ・グラッフィクスにおける いくつかの進歩がこの改善の達成に貢献している。そのような進歩としては、合 成映像層、画像圧縮、チャンク化、および、マルチパス変換がある。われわれは ここにこれらの進歩を紹介し、以下にさらに詳細にこれらの進歩、ならびに、他 の進歩を記述する。合成映像層(gスプライト) 本装置においては、多数の、独立の映像層がビデオ速度で合成されて、出力ビ デオ信号を生成する。この映像層を、われわれは一般化スプライト(generalized sprite)すなわちgスプライト(gsprite)と呼ぶことにするが、これらは、独立 に変換・操作することができる。これによって、各対象物を、独立に更新するこ とができるので、対象物の更新速度を、場面の優先性に応じて最適化することが できる。例えば、はるか遠くの背景を動く対象物は、前景対象物ほど頻繁に、ま た、それほど正確に更新する必要はない。 gスプライトは任意の大きさと形を取ることができる。ある実行例では、われ われは方形のgスプライトを用いた。gスプライトのピクセルは、そのピクセル に関連する色とアルファー(不透明度)情報を持っており、そのために、多数の gスプライトが合成されて全体場面を構成できるようになっている。 gスプライトにたいしては、拡大・縮小、回転、サブピクセル位置づけ、アフ ィン・ワープのような運動模倣性変換を含む、いくつかの異なる作業をビデオ速 度で実行することができる。従って、gスプライト更新速度は変えられる一方で 、gスプライト変換(運動など)は、完全なビデオ速度で実現可能なので、更新 速度保証を持たない従来の3D画像装置で実現できるレベルをはるかに越えた滑ら かな運動性を実現する。 多くの3D変換は、2D画像化操作によってシミュレートすることができる。例え ば、後退する対象物は、gスプライトの大きさを拡大・縮小させることによって シミュレートすることができる。中間フレームにたいしては、以前に変換された 画像にたいして2D変換を実行することによって、全体の処理要求を大きく低下さ せることができるので、3D変換性能を、最高品質画質を生成することが要求され る場合に用いることができる。これが、ディテール管理の時間レベルの形態であ る。 ジーライト拡大・縮小操作を用いることによって、空間的なディテールも、場 面優先性に適合するように調節することができる。例えば、背景対象物、曇った 空などは、変換して小さなgスプライト(低解像度)に納め、次に、それを、表 示用に適当な大きさに拡大・縮小する。高品質濾過機能を用いることによって、 典型的な低解像度アーティファクトも同じように目立たなくなる。 通常の、3Dグラッフィクス・アプリケーション(特にインタラクティブ・ゲー ム)は、高度の活動速度を実現するために、ディテールの尺度レベルを犠牲にす る。gスプライトによって、本装置は、さらに二つの場面パラメータを利用する ことができる。すなわち、ディテールの時間レベルと、ティテールの空間レベル である。そして、それらによって、ユーザーから見たときの実効的演技を最適な ものとする。ある対象物が映像に変換される時の空間解像度は、そこへ変換され るスクリーンの解像度に適合する必要はない。さらに、本装置は、この調整を、 アプリケーション側のサポートを必要とせず、自動的にやりくりすることができ る。画像圧縮 装置のコストと性能の決定にあずかってもっとも重要な因子は恐らくメモリー であろう。例えば、従来の高性能3D画像装置は、フレーム・バッファー(2重バ ッファー)、深みバッファー、生地バッファー、および、自然化バッファーを含 めて、30メガバイトを越えるメモリーを持つ。そして、この多くは、特殊メモリ ーであって、DRAMよりもずっと高価である。メモリー帯域は常に死命を制するネ ックとなる。高性能装置のコストは、順飛ばしによって得た多数のメモリー貯蓄 を、ピクセルや、生地データ・アクセスのために十分な帯域を用意したいという 要求に振り向けるために突き上げられることがしばしばである。 本装置は、この問題を解決するために、画像圧縮技術を広く用いている。画像 圧縮は、従来、画像装置には使用されなかった。これは、高品質を実現するのに 要求される計算上の複雑さのためであり、また、圧縮技術そのものが、従来のグ ラフィックス・アーキテクチャーに簡単に適合しないためでもあった。われわれ は、チャンク化(後述)と呼ぶ概念を用いることによって、画像や生地にたいし て圧縮を効果的に適用することができ、それによって、価格・性能面において目 立った改善を実現することができた。 一面においては、画像装置は従来から、フレーム・バッファー・メモリーにた いして圧縮を用いてきた。高性能装置は、三つの色成分のそれぞれにたいして8 ビットを用い、さらにしばしば、8ビットのアルファー値を含んでいた。低性能 装置は、この、ピクセル当たり32ビットを4 ビットまで圧縮する。それを、情報 を捨てることによって、および・または、カラー・パレットを用いて、同時に表 示可能な色の数を少なくすることによって実行する。この圧縮は、よく目立つア ーチファクトを生じ、データ要求に目立った抑制を与えず、それでいて、アプリ ケーションやドライバーに、広範なピクセル・フォーマットに対処するように強 制する。 本装置で使用される圧縮は、高画質を実現しながら、10:1 以上の圧縮比を与 える。本装置のもう一つの利点は、すべてのアプリケーションにたいして、単一 の高品質のフォーマットしか使用しないということである。これは、空間解像度 と色の深みとの間の取引きを必要とする、標準のPCグラフィックス・アーキテク チャーとはっきり異なる点である。チャンク化 本装置の、もう一つの重要な進歩を、チャンク化と呼ぶ。従来の3D画像装置( その点に限って言えばどのフレーム・バッファーでも)ランダムにアクセスが可 能である(されている)。スクリーン上の任意のピクセルにたいして、ランダム な順序でアクセスすることができる。圧縮アルゴリスムは、相当に大きな数の隣 接ピクセルへのアクセス性に依存するので(空間的一体性を利用するために)、 圧縮は、グラフィックス・アルゴリスムによって用いられるランダム・アクセス ・パターンの性質のために、すべてのピクセルの更新がなされて始めて実行可能 となる。このため、圧縮技術を、表示バッファーにたいして適用することは実際 的でなくなる。 このようなランダム・アクセス・パターンの性質によって、ピクセルの被遮蔽 (隠れた)表面除去や、自然化アルゴリスムを導入した場合、スクリーン上の各 ピクセルは、余分の情報を維持しなければならなくなる。これは、メモリー・サ イズ要求を飛躍的に増し、さらに性能上のネックを加える。 本装置は別の方法を取る。ある場面、または、場面の一部は、チャンクと呼ば れるピクセル領域に分割される(ある特定の実行例では32 x 32 ピクセル)。一 つの実行例では、装置は、gスプライトに割り当てられた幾何図形をチャンクに 分割するが、別の実行例では、gスプライトを用いずにチャンク化を実行する。 この幾何図形は、それがどのチャンクに変換されるかに基づいて前もってビンに 仕分けされる。この工程をチャンク化と呼ぶ。チャンクの境界にかかる図形はで きれば、それが見える各チャンクに参照されることが好ましい。場面が活性化さ れるにつれて、データ構造は、一つのチャンクから別のチャンクへと移動する図 形に合うように修正される。 チャンク化によって、いくつかの目覚しい利点が得られる。チャンク化の使用 によって、圧縮が効果的な形態を取ることができる。一つのチャンクの中の幾何 図形はすべて、次のチャンクに進む前に変換されるのであるから、深みバッファ ーは、僅か、単一チャンクだけの大きさを持つだけでよい。32 x 32 ピクセルの ような比較的小さなチャンク・サイズを用いることによって、深みファッバーを 、画像変換チップに直接装着させることができる。これによって、かなりの量の メモリーを除去することができ、さらに、深みバッファーを、特別メモリー・ア ーキテクチャーを用いて実装することもできる。すなわち、そのメモリー・アー キテクチャーは、きわめて高い帯域幅をもってアクセスすることができ、かつ、 2重バッファー作業時には空にすることができるので、従来の、フレーム間のフ レーム・バッファー・メモリー一掃処置を省略することができる。 自然化処理も相当に簡単になる。なぜなら、各チャンクは、独立に処理できる からである。自然化機能を備える、大抵の高性能Z バッファー画像装置は、大量 の付加メモリーを利用しながら、比較的単純な濾過しか実行できない。しかしな がら、チャンク化を用いれば、必要とされるデータ量は、かなり少ない(1000の 桁)ので、さらにずっと高度な自然化処理アルゴリスムの実装を可能にする。 Z バッファー処理や自然化処理に加えてさらに、本装置はさらに、適正な、筋 目の見えないやり方で透過性をサポートする。あるチャンクの形成中、装置は、 もう一つのチャンクで自然化処理と透過性の計算を行なう。言葉を換えて言えば 、ある一つのチャンクを形成するのに必要な時間内で、装置は、もう一つのチャ ンクで自然化処理と透過性処理を実行することができる。装置は、チャンク間を ピンポンのように往復することができるので、リアル・タイム・アプリケーショ ン用に映像を処理するにあたって、遅延を加えることなく高度の処理を実行する ことができる。 さらにもう一つの利点は、チャンク化は、ブロック性の画像圧縮を可能にする ことである。一旦チャンクが変換された(かつ、自然化処理された)ならば、次 にそのチャンクは、ブロック変換性圧縮アルゴリスムによって圧縮される。した がって、チャンクを別々にチャンク化することによって実行される圧縮に加えて さらに、チャンク化がさらに高度な、適応性の高い圧縮方式をサポートすること になる。マルチパス変換 本装置のアーキテクチャーのもう一つの利点は、3Dインタラクティブ・アプリ ケーションが、1970年代のCAD 画像装置の外観−あの、飽き飽きする、複数の高 反射部を備えた、ランベルト図形的、段階状陰影の多角形群−から抜け出すため のきっかけを与えることである。色付きの生地マッピングは、この外観を改善す るばかりでなく、アプリケーション上ではさらにもう一つ独特の外観を呈する。 1980年代に、プログラム可能な陰影器や、処理的生地マップの概念が、変換工程 に新しい飛躍をもたらした。これらの概念は、オフ・ライン変換の世界を一掃し 、今日われわれが映画の特殊効果に見るような高品質画像を生成する。 今日の通常の高性能3D画像ワークステーションの、厳密な変換パイプライン・ モード、および、固定変換モードは、このような効果を実現した場合、必ずリア ル・タイム性能を急激に低下させる結果を招く。そのため、リアル・タイム表示 を要求するユーザーは、狭く制限された変換弾力性に甘んぜざるを得ない。 上に概説した方法を用いて帯域要求を下げることによって、本発明の装置は、 単一共有メモリーを、圧縮生地保存、および、圧縮gスプライト保存を含むすべ てのメモリー要求を満たすために用いることができる。このアーキテクチヤーの お陰で、変換工程で生成されたデータは、生地プロセッサーに戻され、新たなg スプライトの変換のためのデータとして使用されることになる。このようなフィ ードバック・サポートのために、装置は効率的なマルチパス変換を実行すること ができる。 効率的なマルチパス変換を、様々の合成モードや、弾力的な陰影言語と結合さ せることによって、本装置は、以前はオフ・ライン・ソフトウェア変換器の領域 であった、各種の変換効果をリアル・タイムで供給することができる。そのよう なものとして、陰影(多数光源による陰影を含む)、環境にマップされた反射性 対象物、スポット・ライト、地上の霞、リアルな水中シミュレーションなどの機 能のサポートがある。 一つの実施態様においては、画像処理装置(100)は、ソフトウェアとハード ウェアの併合を含む。次節で、われわれは、ハードウェアとソフトウェア・アー キテクチャーを参照しながら、システム環境について述べる。できれば、別様の アーキテクチャーについても述べる。しかしながら、ソフトウェアとハードウェ アは変更が可能であるから、後述する特定の実施例には限定されない。 本画像処理装置、または、その部分は、デスクトップ・コンピュータ、テレビ セット接続ユニット、および、ゲーム装置を含む、いくつかの異なるプラットフ ォームに実装することができる。 第2図は、本画像処理装置が実装されるコンピュータ装置130 のブロック・ダ イアグラムである。コンピュータ装置130 は、プロセッサー132 、メイン・メモ リー134 、メモリー・コントロール136 、二次保存器138 、インプット装置(単 数または複数)、表示装置142 、および、画像処理ハードウェア144 を含む。メ モリー・コントロール136 は、プロセッサー132 とメイン・メモリー134 の間の インターフェイスとなる。メモリー・コントロールはさらに、プロセッサー132 とメイン・メモリー134 が、バス146 に接する時のインターフェイスとしても働 く。 第2図に示したと同じ、または、同様のアーキテクチャーを持つコンピュータ 装置は色々ある。そのような装置内部のプロセッサーも変動し得る。さらに、1 個以上のプロッセサーを含むコンピュータ装置もある。二三挙げるならば、プロ セッサーは、インテル社のペンチアム、または、ペンチアム・プロであってもよ いし、シリコン・グラフィックス社のMIPS族から成るマイクロプロセッサーであ ってもよいし、モトローラ社のパワーPCであってもよい。 メイン・メモリー134 は、高速メモリーであって、大抵の通常のコンピュータ 装置では、ランダム・アクセス・メモリー(RAM)が装着されている。メイン・メ モリーは、既知の技術のどのような変種においても、プロセッサーおよびバスと インターフェイスを形成する。メイン・メモリー134 は、コンピュータのオペレ ーティング・システムや、現在走っているアプリケーション・プログラムのよう なプログラムを保存する。以下に、われわれは、コンピュータ装置によって実行 される命令のシンボル的な表現を参照しながら、ある実施態様の様々な局面を述 べる。この命令は、コンピュータ実行性と呼ばれる場合がある。この実施態様の これらの局面は、コンピュータの読み取り可能な媒体に保存された一連の命令か らなる、一つのプログラムまたは複数のプログラムとして実装することもできる 。コンピュータの読み取り可能は媒体は、メイン・メモリーまたは二次保存体に 結合される、ここに記載する装置のいずれであっても、または、それら装置の併 合であってもよい。 バス146 は、メモリー・コントロール136 、二次保存体138 、および、画像処 理ハードウェア144 を互いに結び付ける。ある実行例では、例えば、バスはPCI バスである。PCI 標準は既知であり、この標準をサポートするように設計された コンピュータ装置のボードはいくつかある。例としては、ISA バス、EISAバス、 VESAローカル・バス、および、NuBus がある。 表示装置142 は、カラー・ディスプレーであって、画像を表示するために連続 的に更新される。一つの実施態様の表示装置は、陰極線管(CRT)装置であるが、 これは、液晶表示(LCD)であっても、その他の表示装置であってもよい。 二次保存装置138 は、各種の保存媒体を含む。例えば、二次保存装置は、フロ ッピー・ディスク、ハードディスク、テープ、CD-ROMなどを含んでいてよく、ま た、電気的、磁気的、光学的、または、他の記録材料を用いる装置であってもよ い。 インプット装置(単数または複数)140 は、キーボード、マウスや、ジョイス ティックのようなカーソル位置づけ装置の他に、各種市販のインプット装置を含 む。 下記に詳述する一つの実行例においては、画像処理ハードウェア144 は、コン ピュータ装置と、PCI バスを通して結合するボードに実装される。また別の実行 例では、画像処理ハードウェアは、プロセッサーや、他の画像処理ハードウェア やメモリーと共にシステム・ボードに置かれる。例えば、あるゲーム装置では、 画像処理ハードウェアは、通常、マザー・ボード上に置かれる。同様に、テレビ セット接続装置の画像処理ハードウェアもマザー・ボード上に置いてもよい。 コンピュータ装置のアーキテクチャーを概観したからといって、われわれは、 本発明を、第2図に示したシステム・アーキテクチャーに限定するつもりはない 。本画像処理装置は、ゲーム装置、テレビセット接続装置、ビデオ編集装置など に 実装することができる。下に、われわれは、第2図に示したシステム・アーキテ クチャーの環境における画像処理装置の実施態様を説明する。下記の記述全体を 通じて、われわれは、別様の実施態様を述べるが、他に考えられる可能な実行例 の完全なリストを与えるつもりで、これら別様の実施態様を記述するものではな い。下記の詳細な説明に基づけば、本分野に通常の知識・技術を有するものであ れば、本画像処理装置を、別のプラットフォームに実装することは可能であろう 。 第3図は、一つの実施態様におけるソフトウェアとハードウェアの間の関係を 示すブロック・ダイグラムである。この実施態様においては、画像処理装置は、 ホスト・コンピュータのプロセッサーと、画像処理ハードウェア144 の処理リソ ースに基づいて実装される。画像処理ハードウェア144 は、プロセッサー(例え ば・ディジタル信号プロセッサー)166 と画像処理回路168 を含む拡張ボード上 に実装される。ホスト・コンピュータ130 と、画像処理ボードのプロセッサーは 、画像処理作業を共同で行なう。以下に、われわれは、ホストコンピュータ130 と画像処理ボード174 によって実行される機能を概論的に述べる。 グラッフィクス・サポート・ソフトウェア160 は、ホスト・コンピュータ装置 130 の上で実行され、ハードウェア抽象化層(HAL)162を通じて画像処理ボード16 4 と情報を交換する。画像処理ボード164 は、DSP166と呼ばれるプログラム可能 なディジタル信号プロセッサーと、以下に詳述する、別の画像処理ハードウェア 168 を含む。 グラフィックス・サポート・ソフトウェア160 は、メモリー管理、視界容量選 択、深み分類、チャンク化の他に、gスプライト割り当て、変換、および、ディ テール・レベルをサポートする機能を含む。グラフィックス・サポート・ソフト ウェアは、ここに挙げる機能を実行するために、グラフィックス・アプリケーシ ョン類のアクセス可能な、一群のグラフィックス機能を含んでいてもよい。 グラフィックス・サポート・ソフトウェア160 は、上に紹介したgスプライト ・パラダイムをサポートする機能を含む。上に示したように、gスプライトは独 立に変換されるが、各フレームごとに変換される必要はない。むしろ、gスプラ イトの位置の変化は、アフィン、または、その他の変形で近似させてもよい。グ ラフィックス・サポート・ソフトウェア160 は、一つの対象物、または、複数の 対象物を、一つのgスプライトに割り当てるのを補佐し、そのgスプライトの位 置と動きを記述する移動データを追跡する機能を備える。さらに、グラフィック ス・サポート・ソフトウェアは、変換gスプライトを更新すべき時を決める機能 を備える。gスプライトを更新する必要のある場合は、対象物の動き、視点の動 き、照明の変化、および、対象物の衝突に応じて変化する。 われわれは、以下に、グラフィック・サポート・ソフトウェアの機能に関してさ らに詳細を述べる。画像処理ボード164 は、変形、照明、および、影つけ、生地 つけ、自然化、透過性などを含む低レベルの幾何学処理を実行する。一つの実施 態様では、DSP166が、フロント・エンド幾何学処理と照明計算を実行するが、こ の機能のうちいくつかは、ホストのプロセッサー132 に実行させてもよい。画像処理ボードの概観 第4A図は、画像処理ボード174 を示すブロック・ダイアグラムである。この画 像処理ボード174 は、ホスト・コンピュータと、バス146 を介して連絡する。こ のものは、DSP176、タイラー200 、共有メモリー216 、gスプライト・エンジン 204 、合成バッファー210 、および、ディジタル・アナログ変換器(DAC)212を含 む。ホストからの命令に応じて、画像処理ボード174 は、画像を変換し、表示用 画像を、DAC212を介して表示装置142(第2図)に転送する。 第2-4A図に示す実施態様では、ホスト・プロセッサーと、DSP は、第1図の画 像プロセッサーの機能を分かち合っている。画像プロセッサーは、タイラー200 、gスプライト・エンジン204 、合成バッファー210 、および、DAC212から成る 。以下に、われわれは、これらの要素についてさらに詳細を述べる。しかしなが ら、画像処理装置の実装は変更可能であることを銘記しなければならない。 共有メモリー202 は、画像データと画像処理命令とを画像処理ボード174 上に 蓄える。一つの実施態様では、共有メモリーは、gスプライトと生地データを圧 縮した形で蓄えるのに用いられ、各種バッファーは、処理サブシステム間にデー タを転送するのに用いられる。 DSP176は、ビデオ圧縮・脱圧と、フロントエンド画像処理(変換、照明、など )を行なう。できれば、DSP は、1000 MFLOPS/MOPS を越える浮動小点と積分計 算をサポートするものであることが好ましい。 タイラー200 は、VLSIチップであって、マルチパス変換のために、走査変換、 陰影階調、生地つけ、被遮蔽表面の除去、自然化処理、透過性、影つけ、および 、混合を行なう。次に、この得られた変換gスプライト・チャンクを圧縮し、圧 縮した形で共有メモリーに蓄える。タイラーはさらに、ビデオ、および、ウィン ドウ作業をサポートするために、gスプライト・データの脱圧および再圧縮を行 なう。 gスプライト・エンジン204 は、ビデオ速度で、gスプライトのチャンク・デ ータに接触し、これを圧縮し、一般アフィン変換(これには、拡大・縮小、ピク セル以下の精度を持つ翻訳、回転、反射、および、剪断変形が含まれる)のため に必要な画像処理を行なう。濾過後、得られたピクセル(アルファーを含む)は 、合成バッファーに送られ、ここで表示ピクセル・データが求められる。 gスプライト・チャンク・データは、表示のために、1回に走査線の数だけ処 理される。一つの実施態様では、チャンク・データは、1回に32本の走査線分処 理される。合成バッファー(210)は、二種の、32走査線カラー・バッファーを含 み、これら二種は、表示と合成作業の二つの間を交互切り替えされる。合成バッ ファーはさらに32走査線アルファー・バッファーを含む。このバッファーは、各 ピクセルにたいするアルファーを集積するのに用いられる。 DAC212は、RGB ビデオDAC と対応するビデオ・ポート214 から、ビデオ編集装 置までを含む。個々の成分は、DAC の機能性を実現するために用いられる。装置の動作 第5Aおよび5B図は、本画像処理装置において映像を変換する際に実行される手 順を示すフロー・ダイグラムである。画像プロセッサー106 が、視野構成のため に映像変換を開始する前に、画像前置プロセッサー104 は、対象物と視点の位置 を決める(240)。第2と3図で示した実施態様では、ホスト・コンピュータ装置1 32 の上を走るグラフィックス・サポート・ソフトウェア160 が、グラッフィク ス・アプリケーションから供給されるデータに基づいて、対象物と視点の位置を 決める。ホスト・プロセッサーの上を走るグラフィックス・アプリケーションは 、関係対象物を表わすモデルを定義し、モデル化変形を供給し、これが、その対 象物を、他の対象物と共に「世界座標」の中に位置づけるのに使用される。 次に、画像前置プロセッサー104 は、見える可能性のある対象物を選び出す(2 42)。前置プロセッサーは、視野容量に基づいて、見える可能性のある対象物を 決める。視野容量とは、世界座標における3次元空間であって、場面にたいして 境界を与える。前置プロセッサーは、対象物を横切ることによって、見える可能 性のある対象物を選び出し、その境界が、視野容量と交わるかどうかを決める。 視野容量と交わる対象物は、幾何学的、または、空間的意味で見える可能性があ ることなる。 ある場合には、場面の将来の変化を予測するために、現在の視野容量の外部に あるが、「時間的に」見える可能性のある対象物を決めておくことが有利なこと がある。こうすれば、装置は、視野容量の急激な変化にも対応していくことがで きる。通常の3D画像装置では、このような急激な変化に対応する唯一のやり方は 、変更インプットに基づいて新しい場面をまったく新たに生成することであって 、そのため、その間に相当な搬送遅延を生ずる。このような長い遅延は、ユーザ ーに否定的な作用を及ぼし、調節過度や気分のむかつきのような問題を引き起こ す。この遅延を下げるために、本発明の画像前置プロセッサーは、視野の外側の 拡大範囲に置かれた対象物の位置を計算することができ、かつ、画像プロセッサ ーは、この拡大範囲の中の映像を変換・保存することができる。本装置のアフィ ン変換能に基づき、次のフレームにたいする視点インプットを用いて、この拡大 範囲のgスプライトの再配置を、装置転送遅延を、計算フレームにして2フレー ム未満に抑えながら実行することができる。このような短い転送遅延は、本発明 者に既知の、当今の3Dグラッフィクス・ハードウェア装置では実行不可能であっ て、さらに高品質なシミュレーションを可能にし、したがって、ユーザーをさら に心地よく画面に没頭させることになる。 画像前置プロセッサーは、映像にたいするgスプライトの形態を決定する(244 )。この手順は、見える可能性のある対象物をいかにgスプライトにマップする か、その方法の確立をも含む。この工程の一部として、画像前置プロセッサー10 4 はgスプライトの割り当てを行なう。これは、gスプライトのデータ構造を生 成し、それによって1 個以上の見える可能性のある対象物に相当する画像データ を蓄えることをも含む。もしも処理用リソースが許すならば、場面の中の相互非 貫通的 対象物は、それぞれ、独立のgスプライトに割り当てられる。互いに貫通しあう 、または、自己閉塞性対象物は、単一のgスプライトとして処理される。 画像前置プロセッサー104 は、画像プロセッサーが、これらgスプライトを所 期の計算フレーム速度で合成する能力を持たない場合、あるいは、それらジーズ プライトを蓄えるほど十分な装置メモリーがない場合、これらのgスプライトを 合体させることができる。別々のgスプライトに変換する方が必ず計算上効率が 高いので、装置にメモリーや、合成能があるならば、相互非貫通性対象物は、別 々のgスプライトに変換される。もしも装置が、gスプライトの現在の割り当て に基づいて表示画像を保存ないし生成できない場合には、いくつかのgスプライ トを合体して、この問題を緩和する。 一つの対象物、または、複数の対象物をgスプライトに割り当てた後で、画像 プロセッサーは、gスプライトを、「チャンク」と呼ばれる映像領域に分割する (248)。画像前置プロセッサーが、gスプライトにたいしループ(繰り返し動 作)を実行し、このgスプライトをチャンクに分割する(246、248 )。一つの実 施態様では、この工程は、視野にたいする対象物の境界容量を変形し、この変形 された境界容量を包む方形の映像領域を見出すことを含む。この映像領域は、g スプライトの対象物(単数または複数)が変換される2次元平面におけるgスプ ライトの大きさを定める。gスプライトは、この方形映像領域をチャンクに分割 し、それらチャンクをgスプライト・データ構造と関連させることによって、チ ャンクに分割される。 最適化の一つのやり方として、変形された境界容量を拡大・縮小したり、およ び・または、回転させ、それによって、gスプライト変換に必要なチャンクの数 が極小になるようにしてもよい。このように変形をさらに加える(拡大・縮小、 あるいは、回転)のであるから、gスプライトに割り当てられた対象物の変換さ れる空間は、必ずしもスクリーン空間である必要はない。この空間を、gスプラ イト空間と言う。表示画像を生成する過程で、gスプライトは再び変形してスク リーン空間に戻さなければならない。 次の手順は、対象物の大きさを、チャンク間にどのように分割するかを決める ことである(250)。画像プロセッサーは、幾何学的基本図形(例えば、多角形 ) が、チャンク間にどのように分割されるかを、その多角形を2D空間(252)に変 形し、その多角形がどのチャンク(単数または複数)に投影するかを求めて、決 める。多角形を切り取るのは高価であるから、好ましい方法は、チャンクの端に ある多角形は切り取らないことである。むしろ、チャンクは、その端を重ねる複 数の多角形を含む。例えば、もしも、一つの多角形が、二つのチャンクの境界に またがって延びている場合は、この方法では、多角形の頂点が、各チャンクに含 まれることになる。 次に、画像前置プロセッサーは、チャンク・データを、タイル敷きのためにキ ュー化する。タイル敷きとは、1個以上の多角形でカバーされる、または、部分 的にカバーされるピクセル位置の、色やアルファーのようなピクセル値を決める 工程を指す。 決定手順(254)(第5B図)、および、それに続く手順(256)は、チャンク内で 多角形のタイル敷きを行なう工程を表わす。画像プロセッサーは、現在のチャン クの境界に重なる多角形を含む一方、同チャンク内にあるピクセルしか生成しな い。生成されたピクセルは、自然化処理(断片記録)のための情報を含み、これ は、すべてのピクセルが生成されるまで保存される。 チャンクの多角形のタイル敷きが終了した後、画像プロセッサーは、ピクセル のための自然化処理データ(断片記録のような)を解消する(258)。一つの実施 態様では、タイラー200 は、2重バッファーを用い、次のタイル敷きを行なって いる間に、その前のチャンクを解消する。また別のやり方として、タイラーは、 フリー・リストとバッファーを共有してもよい。フリー・リストとは、共有バッ ファー内のフリーなメモリーを表わし、これは、新しい断片記録が生成されると 割り当てられ、断片記録が解消されると、また加えられるものである。2重バッ ファー法と共有メモリーの併用を用いても同様の効果が期待できる。 画像プロセッサーは、後述する圧縮法を用いて、この解消チャンクを圧縮する 。画像プロセッサーは、1ブロックのピクセルを解消すると同時に、別のブロッ クを圧縮してもよい。画像プロセッサーは、共有メモリーにこの圧縮チャンクを 蓄える(262)。 第6図は、画像を表示するために実行される手順を示すフロー・ダイアグラム である。上述の画像処理ボード174 上において、画像は、共有メモリー216 から 読み取られ、gスプライト・エンジン204 によって、物理的出力装置座標に変形 され、合成バッファー210 において合成され、DAC212に転送され、次に出力装置 に転送される。 表示工程において、画像プロセッサーは、現在のフレームに表示されるべき一 連のgスプライトにアクセスする。gスプライト形態を決定する工程において、 画像前置プロセッサーは、gスプライトの深みの桁を決める(280)。前述したよ うに、一つのgスプライトには一つの対象物を割り当てるのが好ましい。しかし ながら、画像前置プロセッサーは、例えば、装置で使用されるある特定の画像プ ロセッサーの処理限界を受け容れるために、一つのgスプライトにたいして1個 以上の対象物を割り当ててもよい。画像前置プロセッサーは、対象物を、Z 順に 、すなわち、視点からの距離として、対象物を仕分ける。対象物を仕分けるのに 加えて、さらに、gスプライトを深み順に仕分け、この深みデータをgスプライ ト・データ構造に蓄える。 第6図の決定手順(282)は、表示工程におけるgスプライトにたいするループ を表わす。このループ内の手順としては、1)変換gスプライト用変形を求めるこ と、および、2)gスプライトの表示法を調節するgスプライト表示リストを形成 すること、がある。これらの手順については後述する。 見える可能性のある範囲のgスプライトに関しては、画像プロセッサーは、g スプライト変形を求める。gスプライト変形とは、変換2Dgスプライトにおける 変形を指す。一つの実施態様では、画像プロセッサーは、変換必須成分を抑える ようにgスプライトにたいして変形を実行する。各フレームごとに各対象物を変 換するのでなく、画像プロセッサーは、変換gスプライトを再利用することによ って、変換必須成分を抑える。 画像データの各フレームごとにgスプライト変形を計算する必要はない。例え ば、もしもgスプライトが、画像データの現在フレームにたいして変換されたの であれば、そのgスプライトを変形する必要はない。これは、例えば、そのgス プライトを変形させて、境界ボックスをその対象物にもっとよく適合させようと いう要求がない限りそうである。さらに、再変換や変形を要しないgスプライト がある。すなわち、そのgスプライトに割り当てられた対象物(単数または複数 )が変化しなかったり、動かない場合である。そのような場合、gスプライト変 形手順は、実行してもよいし、しなくともよい。 gスプライトの位置が変化しない場合には、このgスプライトに、単位行列をか けてもよい。これは、例えば、画像プロセッサーが、現在のフレームのためにg スプライトを変換した場合、あるいは、始めに変換されて以来gスプライトの位 置が変化しない場合にあてはまる。 gスプライトの表示法を特定するために、画像プロセッサーは、gスプライト 表示リストを生成する。表示リストとは、どのgスプライトを、表示スクリーン に表示すべきかを定義する一つのリスト、または、複数のリストを指す。この表 示リスト概念は、他の、一枠の画像データを表示するための出力装置にも当ては めることができる。画像プロセッサーは、表示リストを、変換gスプライトを物 理的装置座標にマップし、その上に合成するのに用いる。表示を構築する手順は 、gスプライトにたいするループの一部として示されているけれども、このリス ト(単数または複数)は、特にこのループ内に生成される必要はない。 表示リストは、一連のgスプライト・リスト、または、帯域あたりの、一連の gスプライト・リストを指すものであってもよい。「帯域」とは、表示スクリー ンの水平走査線領域である。例えば、一つの実施態様では、帯域は、32走査線高 x 1344 ピクセル幅である。表示リストは、各帯域別々のgスプライト・リスト を含んでいてもよく、その場合、帯域リストは、それぞれの帯域に照射するgス プライトを記述する。また別法として、ディスプレー・リストは、どの帯域にg スプライトを照射するのかを特定できるようにgスプライトに名札をつけて実行 される、そのような単一リストからなるものであってもよい。 ここに示した実施態様の表示リストは、2重バッファー方式である。2重バッ ファーを持つことによって、装置は、一方のデータ・リストを、他方を読んでい る間に、生成することができる。装置が一つのフレームにたいするgスプライト 変形を求め、表示リストを構築している間に、別のフレームの表示リストを読み 取り、このリストの中の画像データを表示する。 2重バッファーであるために、第6図に示した手順は重複する。すなわち、画 像プロセッサーは、あるフレームにたいしては、手順(280-286)を実行する一方 で、別のフレームにたいしては手順(290-298)を実行する。 第7図は、上記手順のタイミングを示すブロック・ダイアグラムである。装置 が、フレーム310 にたいして手順(280-286)(第6図)を完了すると、装置は、フ レーム同期信号(垂直点線)を待ち、それからバッファー交換を実行する。次に 、装置が生成したばかりの表示リストを用いて、現在フレーム312 に表示すべき gスプライトを決める。この表示リストを処理している間に312 、gスプライト 変形が計算され、かつ、次のフレームのための表示リストが構築される314 。次 のフレームにおいて、前のフレーム314 で生成されたgスプライト変形と表示リ ストが用いられ、表示画像316 を生成する。 画像プロセッサーは、表示リストの中のgスプライトのリストに基づいて、g スプライトを出力装置座標に変換する。画像プロセッサーは、色、アルファー、 および、gスプライトの位置を特定するデータを含むgスプライト・データを共 有メモリーから読み取る。このデータに基づいて、画像プロセッサーは、そのg スプライトによってカバーされるピクセルの色とアルファーを決める。 一つの実施態様においては、画像プロセッサーは、各帯域ごとにループ操作を 行ない、gスプライト表示リストに従って、その帯域に照射するgスプライトを 変形する。以下に、この表示工程をさらに詳細に述べる。 gスプライト・データを変形した後、画像プロセッサーは、得られたピクセル ・データを合成する。この中には、gスプライト変形に基づいて、出力装置座標 で表わしたピクセルにたいする色とアルファーを計算する作業も含まれる。画像 プロセッサーは、表示リストの中のgスプライトにたいするピクセル・データを 変形し、次に、その変形ピクセル・データを合成する。この工程は、あるピクセ ル位置について、それをカバーするgスプライトの1個以上のピクセル値に基づ いて、その位置のカラーとアルファーを決定する作業を含む。 一つの実施態様では、画像プロセッサーは、帯域にループ操作を実行し、各帯 域ごとにピクセル・データを合成する。画像プロセッサーは、ピクセル・データ に2重バッファー処理を行なう。すなわち、一つのバッファーにおいてある帯域 のgスプライトを変形・合成する一方で、別の帯域にたいしては、合成済みピク セル・データを表示する。 ピクセル・データを合成した後、画像プロセッサーは、合成ピクセル・データを 出力装置に転送する。ピクセル・データを表示するためには、それは、表示と適 合するフォーマットに変換されていなければならない。 ある実施態様の装置の全体操作を記述し終えたので、次に、画像処理ボードに ついてさらに詳細に述べよう。画像処理ボード 一つの実施態様では、共有メモリー216 は、4 メガバイトのRAM を含む。これ は、2 本の8 ビットRAM バス・チャンネルによって実行される。しかしながら、 メモリーの量および型は変更可能である。 第8図は、画像処理ボード174 におけるDSP336を示すブロック・ダイアグラム である。DSP336は、ホスト・プロセッサーからの命令ストリームを取りまとめ、 若干のビデオ処理とフロント・エンド幾何学処理を実行する。DSP は、3Dグラフ ィックスに用いられるフロント・エンド幾何学、および、照明計算を実行する。 この中には、モデルおよび視点変形や、切り取り、および、照明が含まれる。g スプライト運動外挿のような、gスプライト・アニメ処理のある部分もDSP で処 理される。 変換命令は、メイン・メモリー・バッファーに保存され、PCI バスを通り、PC I バス・コントローラー342 を経由して画像処理ボード174 にDMA 化される。次 に、これらの命令は、ボードの共有メモリー216 に、DSP336(第8図)に要求され るまで、蓄えられる。 DSP コア338 は、上述の画像処理計算を実行するためのプロセッサーを含む。さ らにDSP コアは、スケジュール設定、および、リソース管理を実行する。 メモリー・インタフェイス340 は、高速のデータ転送、例えば、80MHz におい て64ビットをサポートする。これは、通常のDRAMやSDRAM 装置とインターフェイ スを形成するように設計されている。タイラー200 は、このバスに直接接続する ように設計されており、DSP によって要求されるメモリー・タイミングをシミュ レートする。 DSP におけるデータ・フォーマット装置およびコンバーター346 は、タイラー にたいする変換指令をフォーマットする。このブロックは、浮動小点色成分を、 整数に変換し、それらを、タイラー特異的データ構造にパックする。さらに、全 命令を蓄え、これを直接共有メモリー中のメモリー・バッファーにDMA する。こ の変換指令は後に、作業実行の態勢が整った時に、タイラーによって読み取られ る。 フォーマット作業の一つとして、データ・フォーマット装置とコンバーター34 6 は、タイラーにたいして三角命令データをフォーマットする。DSP(336)によっ て浮動小点として計算されたRGB ∝(アルファー)データは、8ビットの整数に 変換される。座標情報は、浮動小点から12.4固定点に変換される。このデータは 、64ビット語にパックされ、一連のブロックとして、共有メモリーに転送され、 それによって、最適な帯域幅が得られる。 表示メモリー管理部(MMU)334 は、デスクトップ表示メモリーのために使用 される。このものは、デスクトップ表示メモリーとして割り当てられた、直線ア ドレス範囲内のPCI アクセスを捕捉する。次に、このアクセスを、共有メモリー に蓄えられた画像ブロックにマップする。 本画像処理ボード(第4A図、174)のアーキテクチャーは、特定のDSP からは 比較的独立している。しかしながら、DSP は、顕著な浮動小点性能を持っている ことが好ましい。適当なDSP としては、Samsung 半導体のMSP-1 、および、Phil lips半導体のTrimediaが挙げられる。これら特定のDSP は、十分な浮動小点性能 を与えるDSP の二つの例である。 第9A図は、画像処理ボード174 におけるタイラー200 のブロック・ダイグラム である。タイラーは、2Dおよび3Dグラッフィクスの加速と、共有メモリー調整を 実行する。画像処理ボードのブロック・ダイアグラムで示したように、タイラー は直接DSP(176、第4図)、gスプライト・エンジン204 、および、共有メモリ ー装置216 に接続する。 上記ブロック・ダイアグラムの機能ブロックは、この節に記載される。 タイラー378 は、基本図形変換のためにいくつかの成分を含む。命令およびメ モリー・コントロール380 は、共有メモリー216 、gスプライト・エンジン204 、および、DSP176とインターフェイスを形成する。タイラー、DSP 、および、g ス プライト・エンジンからの、メモリーにたいするアクセスは、このブロックによ って判断される。キューが、バッファー読み取りアクセスにたいして与えられる 。 セットアップ・ブロック382 は、三角表面を横切る辺縁、色、および、生地内 挿を決める直線方程式を求める。この方程式はまた、この三角形を変換するには どの生地ブロックが必要とされるかを決めるのにも用いられる。辺縁方程式はさ らに走査変換ブロック394 にも送られ、走査変換エンジン398 に要求されるまで 、基本図形レジスター396 に蓄えられる。 セットアップ・ブロック382 は、三つの成分を含む。頂点インプット・プロセ ッサー384 、頂点およびコントロール・レジスター386 、および、セットアップ ・エンジンである。頂点インプット・プロセッサー384 は、DSP からの命令スト リームを寄せ集める。頂点およびコントロール・レジスター386 は、多角形、ま たは、その他の幾何学的基本図形を処理するのに必要な情報を蓄える。この特定 の実施態様では三角処理が用いられ、かつ、タイラー200 は、三角処理の2重バ ッファー対応を実行するために、6頂点(各三角につき三つずつ)のレジスター を含む。セットアップ・エンジン388 は、色、深み、辺縁にたいする微分と、三 角表面を横切る生地座標内挿を計算する。これらの方程式はまた、この三角形を 変換するにはどの生地ブロックが使ったらよいかを決めるのにも用いられる。セ ットアップ・エンジンはさらに生地チャンクをあらかじめフェッチし、それによ って、走査変換エンジン398 に要求された場合にいつでも用立てられるようにし ておく。 セットアップ・エンジン388 はさらに生地読み取りキュー390 、および、生地 アドレス・ジェネレーター392 と連絡する。生地読み取りキュー390 は、共有メ モリーの生地ブロック読み取り請求を保存する。われわれが、メモリーから画像 データ・ブロックを取り出すために用いられるタイラーの部分を指して「生地」 という用語を使用する時は、この用語は、マルチパス変換作業で用いられる生地 マップ、陰影マップ、および、その他の画像データを指すこともあり得るという ことを了解しなければならない。生地アドレス・ジェネレーター392 は、要求さ れたチャンクの、メモリー内部のアドレスを決め、生地読み取り請求を、命令お よびメモリー・コントロール380 に送る。この生地アドレス・ジェネレーター39 2 は、画像データの、生地キャッシュへの書き込みを制御するメモリー管理部を 含む。 走査変換ブロック394 は、セットアップ・ブロックから微分値とその他の頂点 データを受け取り、ピクセル・データを生成する。走査変換ブロック394 は、基 本図形レジスター396 と、走査変換エンジン398 とを含む。基本図形レジスター 396 は、各三角パラメータにたいする方程式パラメータを蓄える。基本図形レジ スターは、多数組の方程式を蓄えるためのレジスターを含み、それによって、走 査変換エンジンが、生地データを待ちながら立ち往生することがないようにする 。 走査変換エンジン398 は、多角形を変換する。この場合、多角形は三角形であ る。走査変換ブロック394 は、歩行辺縁にたいする、また、色彩、深みなどを評 価するための挿入器を含む。色、深みを備えたピクセル・アドレス、および、自 然化処理包括情報は、ピクセル・エンジンに転送され、処理される。 走査変換エンジン398 は、生地アドレスを生地フィルター・エンジン400 に渡 す。エンジンは生地データを求める。生地フィルター・エンジン400 は、変換さ れた多角形のピクセルの色とアルファー・データを求める。図に示した生地フィ ルター・エンジンは、変換された三角形のZ 勾配と方向、および、生地要求の中 心に基づいてフィルター・カーネルを計算する(1点のS とT 座標が生地にマッ プされる)。濾過は、パイプライン方式によって、各サイクルごとに新しいピク セルが生成されるように二段階で実施される。フィルター・カーネルは、異方性 フィルターであってもよいし、等方性フィルターであってもよい。異方性が要求 されないばあいは、フィルター・カーネルは、3直線内挿法の場合よりももっと ずっと鮮鋭な生地を与える陰性片葉を用いてもよい。生地フィルター・エンジン 400 はさらに、陰影にたいする効果を計算するために、Z 比較作業を扱う。 生地キャッシュ402 は、脱圧画像データのブロックを蓄える。一つの実行例で は、生地キャッシュ402 は、16個の、8 x 8 ピクセル・ブロックの生地データを 蓄える。このデータは、16個の生地要素が、クロック・サイクルごとにアクセス されるようにまとめられる。 脱圧エンジン404 は、生地データを脱圧し、これを、生地キャッシュ402 に転 送する。本実施態様においては、脱圧エンジンは、二つの脱圧器を含む。一つは 、 生地のような連続階調映像にたいして、不連続なコサイン変換(DCT)準拠アル ゴリスムを実行するもので、もう一つは、デスクトップ・ピクセル・データ用に 脱落のないアルゴリスムを実行する。DCT 準拠アルゴリスムは、二つの、平行な 脱圧ブロックによって実行され、しかも、このブロックは各々クロック・サイク ルごとに8ピクセル要素(すなわち2ピクセル)を生成できる。 圧縮キャッシュ416 は、脱圧エンジン404 が圧縮データを脱圧し、生地キャッ シュ402 に転送するまでは、その圧縮データを蓄えるのに使用される。 走査変換エンジン398 は、ピクセル・データをピクセル・エンジン406 に転送 する。ピクセル・エンジン406 は、混合、および、深み保存を含むピクセル・レ ベルの計算を実行する。ピクセル・エンジンはさらに陰影に必要なZ 比較作業を 扱う。最適性能を発揮するためには、ピクセル・エンジンは、各クロック・サイ クルごとに1ピクセルずつ作業することが好ましい。 ピクセル・エンジン406 は、ラスター化バッファーへのピクセル・データの転 送を制御する。ここに示した実施態様では、ラスター化バッファーは、ピクセル ・バッファー408 と断片バッファー410 を含む。ピクセル・バッファー408 は、 2 重バッファー処理をサポートするために2個のバッファーを含む。このピクセ ル・バッファーを実地に用いた場合、各ピクセル入力部は、色成分(RGB)当た り8ビット、アルファー成分用に8ビット、Z バッファー用に24ビット、ステン シル・バッファー用に8ビット、断片バッファー用に9ビット・ポインターを蓄 える。これは、ピクセル当たり合計73ビットになる。一方のピクセル・バッフ ァーがピクセル・エンジン406 で使用されている時、他方は、自然化処理エンジ ン412 によって使用される。 断片バッファー410 は、ピクセル断片と呼ばれる、部分的にカバーされるピク セルの断片を蓄える。このような断片は、多角形の辺縁があるピクセルを横切る 場合、または、多角形が透過性を持つピクセルのあるためである。断片バッファ ーは、第9A図に示した実行例では単一バッファー処理で実行される。断片のフリ ー・リストの保持は次のように行なわれる。すなわち、断片が解消されるにつれ て、それらはフリー・リストに加えられ、断片が生成されるにつれて、その断片 は、フリー・リストの記入例を利用する。また、別法として、断片バッファーは 2重バッファー処理方式であってもよい。それによって、一方の断片バッファー が自然化処理エンジンによって解消されている間に、他方が、平行的にピクセル ・エンジンによって満たされることが可能になる。 一つの実施態様では、断片記録は、ピクセル・バッファー書き込み、プラス、 4 x 4 マスクと同じデータを含む。9ビット・ポインターは、結合書き込みリス トを形成するために用いられ、残された値は、リストの終末を示すために使われ る。この実施態様では、断片バッファー410 は、合計512 個の書き込みを含むが 、この大きさは変動してもよい。 自然化処理エンジン412 は、1個以上の多角形によって悪影響を被るピクセル における色とアルファー成分を求める。このようなことは、複数の多角形が、そ のピクセル領域をほんの部分的にしかカバーしない時(すなわち、多角形辺縁が そのピクセルを横切る時)、または、多角形が透過性を持つときに起こる。自然 化処理エンジン412 は、解消されたピクセル・データを圧縮エンジン414 に転送 する。この実施態様では、圧縮エンジン414 は、二つの圧縮器を含む。すなわち 、一つは、連続階調画像用のDCT 準拠のものであり、他方は、デスクトップ・ピ クセル・データ用の脱落のないタイプのものである。DCT 準拠アルゴリスムは、 クロック・サイクル当たり8ピクセル要素を圧縮できる圧縮器によって実行され る。圧縮エンジン414 は、得られた変換gスプライトを圧縮し、この圧縮データ をコマンド・メモリーおよびコントロール380 に転送し、これは、共有メモリー 216に保存される(第4図)。タイラーも、圧縮データをキャッシュに換える圧 縮キャッシュ416 を持つ。 第10および11図は、ピクセル生成過程において、メモリーから画像データにア クセスするに当たって、二つの別様の実施態様を示したものである。ピクセル生 成中にメモリーから画像データにアクセスしなければならない場合がいくつかあ る。そのような例としては、例えば、生地マッピング作業中に生地マップにアク セスすること、影つけ作業中に影マップにアクセスすること、および、マルチパ ス混合作業中に、色、および・または、アルファー・データにアクセスすること が挙げられる。簡単のために、われわれは、メモリー中の画像データを「生地」 または、「生地データ」と呼ぶ。しかしながら、ここに述べる方法ならびに装置 は、他の型で、そこにおいてピクセル生成中に、メモリーから画像データにアク セスするものにも応用できることを了解しなければならない。 第10および11図に示した実行例は、タイラーにたいし生地キャッシュを効率よ くロードし、利用するための別法を紹介するものである。この方法の大きな利点 は、生地データが、装置の性能を損なうことなく、メモリー中に大きい潜時をも って、しかも、圧縮フォーマットの形でも保存されるということである。 メモリーからの生地データは、「ブロック」と呼ばれる単位ごとにアクセスさ れ、キャッシュに変えられる。このブロックは、通常、効率的なフェッチや、キ ャッシュ化に適当な小さな方形領域である。通常のブロックの大きさは、8 x 8 サンプルである。例えば、生地マップの場合では、通常のブロックは、8 x 8 テ クセルである。 第10図は、一つの実施態様において、このような生地データのブロックにアク セスする様を示す機能的ブロック・ダイアグラムである。この実施態様は、生地 データ請求を含むラスター化装置417 からのピクセル・データを、生地参照デー タ・キュー418 に蓄えることによって潜時問題を解決している。このキューは、 潜時を吸収するに十分な入力部を含んでいるために(もしそれがなければ生地ブ ロックにアクセスする際に、また、恐らく脱圧する際に潜時が生じるであろう) 、変換工程はフル・スピードで進行することができる。例えば、一つの生地ブロ ックをフェッチするのに100 サイクルを要し、タイラーが、クロック・サイクル 当たり1ピクセルを生成できるとするならば、生地参照データ・キューは少なく とも100 個の入力部を含むことになる。 第10図に示した装置においてデータの流れは、下記のように進行する。先ず、 幾何学的基本図形が、ブロック416 に示すようにラスター化のためにセットアッ プされる。セットアップ処理としては、例えば、三角形のような幾何学的基本図 形にたいして頂点を読み取ること、および、その三角形表面を横切って色、深み と辺縁の微分を求めること、が挙げられる。この計算によって得られるパラメー タを次にラスター化装置417 に入力する。 ラスター化装置417 は、各基本図形にたいして方程式パラメータ・データを読 み取り、ピクセル・データを生成する。ラスター化装置は、生地座標とフィルタ ー・データを含むピクセル・データを生成し、このデータを、生地参照データ・ キュー418 に蓄える。生地フェッチ・ブロック420 は、キュー418 に蓄えられる 生地参照データを読み取り、かつ、メモリー419 から適当な生地ブロックをフェ ッチする。 本実行例の生地参照データ・キュー418 に蓄えられるピクセル・データは下記 を含む。すなわち、計算された、ピクセルの行き先アドレス(X、Y)、深みデー タ(Z)、被覆マスク、色と透過性データ、生地請求の中心座標(S、T)、およ び、生地フィルター・データである。深み、被覆データは、ピクセルの高度な自 然化処理を望む場合にのみ、生地参照データ・キュウーにおいて要求される。も し被遮蔽表面除去処理や自然化処理をラスター化装置内で実行するならば、深み データや、被覆データは、データ・キュー418 内に保存する必要はない。生地フ ィルター・データは、例えば、MIP マッピング用の一定レベルのディテール・パ ラメータを含んでいてもよいし、あるいは、さらに高度な生地濾過のための異方 性フィルター・データを含んでいてもよい。 生地ブロック・フェッチ420 は、データ・キューに蓄えられる生地参照データ を読み取り、メモリー419 から対応する生地データを取り出す。生地マップ・ア クセスの場合、生地ブロック・フェッチ部は、生地請求の(S、T)中心と生地フ ィルター・データを、生地濾過作業を満足に実行するのに必要なブロックのアド レスに変換する。画像データ・ブロックは、もっとも最近使用したキャッシュ(L RU)、または、その他の適当なキャッシュ交換アルゴリスムを用いてフェッチす ることができる。メモリー・アクセスの回数を抑えるために、生地ブロック・フ ェッチ部は、生地キャッシュ421 にすでに蓄えられている生地ブロックを追跡し ており、同じブロックを1回よりも多く請求するのを避ける。この能力によって 、高品質の生地濾過を実行するのに必要な帯域幅を大幅に下げることができる。 なぜなら、生地ブロックを取り出す際の潜時が、画像を計算する時の1回だけし か起こらないからである。 生地ブロック・フェッチ部は、タイラーの生地フィルター部でまだ必要とされ ている生地ブロックの書き込みすぎを防止するために、抑制機構を備える。この ような抑制機構を実行する一つのやり方は、各生地ブロックと参照カウントを関 連させ、生地フィルターが、特定の生地ブロックを用いたかどうかを追随してお くことである。この参照カウントは、ブロックにたいする生地請求を、生地フェ ッチ部が受け取る度ごとに増加し、そのブロックが生地フィルター部によって使 用される度ごとに減少する。従って、生地ブロック・フェッチ部は、相当する参 照カウントがゼロのブロック同士を交換すればよい。 抑制機構を実行するまた別の方法として、生地フェッチ部からの生地ブロック 出力のために、一次的保存用のバッファーを割り当てることがある。この方法で は、画像ブロックは、最初に、一次保存バッファーに書き込まれる。生地フェッ チ部が、この一次保存バッファーへの画像ブロックの書き込みを完了した後で、 この画像ブロックは生地キャッシュに転送される。画像ブロックは、生地フィル ター部422 に始めに要求された時に、生地キャッシュと交換される。 生地マッピング作業の場合、生地フィルター・ブロック422 は、生地キャッシ ュ421 から生地サンプルと、さらに、生地参照データ・キュー418 に蓄えられて いるピクセル・データを読み取り、その生地サンプル・データからピクセル色彩 値および恐らくアルファー値を計算する。 生地マッピング作業の他にも、この方法は、影つけや、マルチパス混合作業に も同様に適用できる。例えば、生地参照データ・キューを用いて、メモリーの中 にある影深みマップを取り出すことができる。また別法として、生地参照データ ・キューは、マルチパス照明や、影つけ作業で使用された色、および・または、 アルファー・データの回収に利用できる。生地マッピング、影つけ、および、マ ルチパス作業についてはさらに詳細に以下に述べる。 前記の方法でピクセル・データを保存するといくつかの利点が得られる。一つ の大きな利点は、画像データを、あまり特別でない(比較的大きなアクセス時間 のものでもよい)メモリーに保存することができることである。これは、全体コ ストを下げる。さらに、生地を含む画像データを、圧縮フォーマットの形で保存 でき、従って、生地濾過のような高度なピクセル作業を実行できるほどに高速で アクセスすることができることである。このため、本装置は、生地データにアク セスするに当たって、既知の方法に比べて、低コストでより向上した性能を発揮 することができる。 この方法のもう一つの利点は、生地参照データ・キューが、メモリーからどの 画像ブロックにアクセスしなければならないかを正確に予測することができるこ と、である。そのため、本装置は、メモリー・アクセスのために必要以上の潜時 を生じさせない。一旦画像データ・ブロックが生地キャッシュの中に入ったなら ば、生地フィルター部は、請求画像ブロックを生地キャッシュに書き込むのに十 分なメモリー帯域幅と生地フェッチ出力がある限り、ラスター化装置一杯の高速 で走る。 生地参照を、生地請求中心でキュー化すること、および、そのデータを濾過す ること、これらによって、キューは、同じ生地フィルター重量のままでテキセル をキュー化した場合よりも、はるかに小さくて済む。 第11図は、もう一つの実施例において、メモリーから画像データにアクセスす る手順を示す機能的ブロック・ダイアグラムである。この方法では、幾何学的基 本図形は、キュー化され、前ラスター化装置において、ピクセル生成工程で生じ た生地ブロック・フェッチの潜時をマスクするように処理される。一例を挙げて 説明すると、この概念が具体的に明らかになるであろう。もし平均的な基本図形 が、ラスター化するのに25サイクルを要し、かつ、メモリーから生地ブロックを フェッチするのに100 クロック・サイクルを要するとするならば、この基本図形 キューは、少なくとも4基本図形長となる。後ラスター化装置の単純型としての 前ラスター化装置は、メモリーからアクセスするのに必要な画像データ・ブロッ クを決める回路を含む。一旦生地データがフェッチされたならば、後ラスター化 装置は、メモリーからブロックをフェッチする際に生ずる潜時をも生ずることな く、生地データを用いてピクセル・データを生成することができる。 この実行例全体を通ずるデータの流れは下記のようになる。前記の実行例同様 、幾何学的基本図形は、セットアップ・ブロック425 で処理され、ラスター化さ れる。しかしながら、この特定の実行例では、セットアップ・ブロック425 は、 前例よりももっとたくさんの基本図形を蓄えることのできる大きな基本図形キュ ーを含む。前ラスター化装置426 は速やかにこれら基本図形を、一連の生地ブロ ック・リストに変換し、それによって、基本図形のカバーするすべてのピクセル にたいして、生地濾過要求を、それらブロックが、後ラスター化装置が要求する で あろう順番通りに満たしていく。前ラスター化装置は、後ラスター化装置427 の 、または、さきの別の実行例のラスター化装置417 の、単純型である。この方法 では、前ラスター化装置は、生地データ・アドレスを計算し、かつ、生地請求を 決めるだけでよい。 前ラスター化装置も生地ブロック・キャッシュのモデルを保持し、キャッシュ 交換アルゴリスム、例えば、もっとも最近使用したキャッシュ(LRU)方式を実行 し、生地ブロック・キャッシュの大きさを越えないようにする。キャッシュ交換 アルゴリスムの一部として、前ラスター化装置は、生地ブロック・フェッチ部へ の単一の生地ブロックにたいする繰り返し請求をただ一つの請求に圧縮する。 生地ブロック・フェッチ・キュー428 は、生地ブロック請求を蓄える入力部を 備える。生地ブロック・フェッチ部429 は、生地ブロック・フェッチ・キューか らの生地請求を読み取り、メモリー430 から適当なブロックを取り出す。 後ラスター化装置は、セットアップ・ブロック425 でキュー化された基本図形 をラスター化し、あるピクセル位置にたいするピクセル・データを生成する。も しも画像データを、ピクセル生成工程中に、メモリーからアクセスする必要があ るならば、後ラスター化装置は、必要な生地ブロックが生地ブロック・キャッシ ュ431 に転送されるほどの速さで、この基本図形をラスター化する。後ラスター 化装置が、セットアップ・ブロックでキュー化された基本図形をラスター化し終 えると、基本図形は除去され、インプット・データ・ストリームからの別の基本 図形と交換される。このセットアップ・ブロックは、キューが常に基本図形で満 たされるように保ち、それによって、前ラスター化装置も、後ラスター化装置も 、ピクセル生成工程において立ち往生することないようにする。 前述の別様実施態様の場合と同様に、生地ブロック・フェッチは、後ラスター 化装置によってまだ必要とされている生地ブロックの超過取扱いを予防するため の抑制機構を含むことが好ましい。前述の2 個の抑制機構は、この実施態様でも 使用できる。特に、参照カウントは、画像ブロックが何時請求され、そして、使 用されるかを追随するのに用いることができる。その場合、参照カウントは、ブ ロックにたいする生地請求を、前ラスター化装置が受け取る度ごとに増加し、後 ラスター化装置が使用する度ごとに減少する。従って、生地ブロック・フェッチ 部は、生地キャッシュのブロック同士を、その参照カウントが0の場合にのみ交 換すればよい。 また、別法として、バッファーを、生地フェッチ・ブロックによる生地ブロッ ク出力の一次的保存のために割り当ててもよい。生地フェッチ・ブロックが、こ の一次バッファーへのブロックの書き込みを完了すると、この画像ブロックは、 後ラスター化装置427 に請求されると、生地ブロック・キャッシュ431 に転送さ れる。後ラスター化装置427 が始めに一次バッファー中の生地ブロックを請求す ると、ブロックは、生地ブロック・キャッシュ431 に転送される。 この方法にはいくつか利点がある。先ず、生地データを、あまり特殊化されて いないメモリーに保存しても、高度な生地濾過をサポートするのに十分な速度で アクセスすることができる。それに関連する重要な利点として、生地データは、 圧縮フォーマットで保存することができ、かつ、ピクセル生成工程で使用の際に 脱圧されるということである。 この方法のもう一つの利点は、メモリーにたいする要求が予測できるために、 メモリー・アクセスによる潜時を、場面を変換する各生地ブロックごとにただ一 度だけしか生じさせないで済むということである。一旦、最初の生地ブロックが 生地キャッシュの中に納められたならば、後ラスター化装置は、メモリー帯域幅 があり、キャッシュの流れを保持するための生地フェッチ出力がある限り、最高 速度で走ることができる。 第9B図は、第10図に示した装置の実装をさらに詳細に図示したものである。第 9B図のセットアップ・ブロック381 は、第10図のセットアップ・ブロック416 に 相当する。第9A図のセットアップ・ブロック382 と違って、この別種実行例のセ ットアップ・ブロック381 は、生地読み取り請求を生成しない。代わりに、走査 変換ブロック395 が、生地参照データを含むピクセル・データを生成する。この データは、生地参照データ・キュー399 に貯えられる。 第9B図の走査変換ブロック395 は、第10図のラスター化装置のある特異な実行 例である。このものは、Z 値、カバー・マスク、色・透過性データ、および、生 地座標で表わした生地請求中心を計算する。いくつかの生地マッピング作業では 、このブロックは、さらにレベル・ディテール・データや、異方性フィルター・ デ ータも計算する。生地フィルター・エンジン401 は、生地請求と、恐らく生地参 照データ・キュー399 に保存されている生地フィルター・データを読み取り、生 地キャッシュの中の適当な生地サンプルにアクセスする。この生地データから、 生地フィルター・エンジンは、生地がどの程度、ピクセル色・アルファー値に関 与するかを計算する。生地フィルター・エンジンは、生地参照データ・キュー39 9 の中の色とアルファーを、生地の関与度と結合し、ピクセル値を生成し、これ をピクセル・エンジン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図に示した同類と同じように動作する。テクスチャキャッシュ制御 待ち時間を短縮した環境においてラスター化を行い、テクスチャ取り込み操作 をおこなう2つの方法を上記に説明した。次にテクスチャキャッシュ制御の特徴 を詳細に説明する。 テクスチャキャッシュ制御方式では、ラスタライザはテクスチャマップ取り込 み制御の待ち時間が短いにも関わらずテクスチャマッピング中に最高速度で機能 することができる。タイラーにおいて、この待ち時間は、共有メモリ(例えばRA MBUS)からの未圧縮データを読み込むのに要する時間と、テクスチャマップのブ ロックを復元するのに要する時間を加算したものである。共有メモリからgスプ ライトブロックを取り込み、可能であればこれを復元し、さらにgスプライト空 間のピクセルデータを表示空間(具体的には画面座標)に変換するgスプライト エンジンに応用される。 テクスチャキャッシュ制御方式は、時間内にオフセットされるテクセル(また はgスプライトピクセル)要求の同一のストリームを2つ作成することを基本的 に前提としている。最初の(早いほうの)ストリームは何れのテクスチャデータ も戻されることのない事前取り込み要求で、また第2の(遅いほう)ストリーム はテクセルデータを戻すための実際の要求である。この2つのストリームの時間 差を利用することにより、テクスチャデータの読み込みや復元の際の待ち時間が 表面に表れなくなる。 上記の時間分割要求を発生させる2つの方法は、(1)ともに単一のプリミテ ィブFIFO(図11及び9C)からデータを読み出す一対のラスタライザと、(2 )ピクセルFIFO(図10及び9B)がその後に続く単一のラスタライザである。 (1)の方法では、第1のラスタライザはプリミティブFIFOの入力側またはそ の近辺の位置からプリミティブを読みとってプリミティブのラスター化を行うの で、テクスチャ要求を作成することができるが、テクセルを受信したりピクセル を作成することはない。第2のラスタライザはFIFO出力からプリミティブを取り 除いて後で同一の要求を作成し、テクスチャキャッシュコントローラからテクセ ルを受信し、ピクセルを作成する。各プリミティブ当たりのピクセル数と組合わ さったプリミティブキューの長さにより、2つの要求ストリームの潜在的時間差 が決まる。 (2)の方法では、単一のラスタライザがプリミティブの処理を行ってテクス チャ要求を作成し、部分的に完全なピクセルデータをピクセルFIFOに出力する。 この一部のピクセルデータには、一旦テクスチャ要求が受諾された後でピクセル の計算を完了させるのに必要なデータすべてが含まれる。ピクセルFIFOの出力側 には、部分ピクセルが全てあり、これを元に同一のテクスチャ要求のストリーム が作成され、テクセルを受信し、完全ピクセルを作成する。ピクセルキューの長 さにより、2つの要求ストリームの潜在的時間差が決まる。テクスチャキャッシュ制御 テクスチャキャッシュ制御には、仮想キャッシュと物理的キャッシュの2つの 概念キャッシュがある。仮想キャッシュは最初の(事前取り込み)要求ストリー ムに関連しており、キャッシュエントリに直接伴うデータは有していない(この キャッシュへの要求によりデータが戻ることはない)。物理的キャッシュは第2 の(実際の)要求ストリームに関連しており、各キャッシュエントリに伴う実際 のテクスチャデータを有している(従ってデータは要求元に戻る)。これらのキ ャッシュのエントリ数は同一である。 仮想キャッシュは物理的キャッシュの後の内容の制御と追跡を行う。従って、 その要求ストリームの何れの位置でも、物理的キャッシュが(後に)その要求ス トリームの中の同じ相対位置で有するのと同じ一対のキャッシュキーとエントリ を有している。 要求を受けると(新規の「キー」)、仮想キャッシュがその現在のキーの集合 に対して比較を行う。要求されたキーが仮想キャッシュになければ、キャッシュ 置換操作が行われる。仮想キャッシュ置換操作では、1)(LRU またはその他のア ルゴリズムによって)置換するエントリを選択し、2)そのエントリに対するキ ーを置換し、3)(メモリと)復元システムを起動してそのキーに関連するデータ の取り込みと復元を行う。図9B及び9Cに示す特定の方法では、復元サブシス テムはコマンド及びメモリコントロール380、圧縮キャッシュ416、復元エ ンジン404から構成される。 復元サブシステムの出力は、後に物理的キャッシュのエントリ(例えばテクス チャキャッシュ402)の内容となるテクスチャデータのブロックである。図9 B及びCに示すタイラーにおいて、復元サブシステムが行う処理は順序が保たれ ているマルチエントリパイプラインで実行される。 ちなみに要求されたキーがすでに仮想キャッシュに存在していた場合、関連デ ータは第2の要求ストリームから要求があった時には物理的キャッシュに存在し ているので何も実行されない。 物理的キャッシュに要求があると、同様のキーの比較を行って要求されたデー タがすでにキャッシュに存在しているか確認する。同一のキーが見つかると、関 連データが戻される。同一のキーがない場合は、復元サブシステムが出力する次 のデータが確実に所望のデータとなる。なお、この新規データに置換される物理 的キャッシュは、仮想キャッシュコントローラで計算されたキャッシュエントリ の「目標」インデックスに基づき仮想キャッシュから命令を受け、要求されたデ ータと共に復元サブシステムを通過する。 この方式を適切に機能させるには、復元サブシステムと物理的キャッシュとの 間のインタフェースに対してフロー制御を行う必要がある。復元されたデータを すぐに物理的キャッシュの中の目的のエントリーに上書きすることが可能な場合 、そのキャッシュエントリの以前の内容に関連するもの全てが完全にそろってい ないことが考えられる。(ちなみに、物理的キャッシュコントローラも復元サブ システムがデータを出力するまで待機しなければならない。) 前のエントリの内容を上書きする前に新しいエントリが要求されるまで待機す ることによって、このフロー制御は行われる。テクスチャキャッシュへの新規デ ータ書き込みは、それが必要となる最後の瞬間まで常に延期される。 この置換は必要となるときまで延期されるので、物理的キャッシュへのデータ 書き込みに要する時間により、待ち時間は第2の要求ストリームを制御する処理 に加算される。この待ち時間を減小させる2つの方法は次の通りである。 最初の方法では、物理的キャッシュのバッファデータを2倍にする。これによ り、復元サブシステムはその倍増バッファ側に各エントリのデータを即座に書き 込み、また物理的キャッシュコントローラはバッファスワップ(おそらく高速) を行ってデータをそのキャッシュ側にマップさせることが可能になる。書き込ま れるエントリに空きがなく、まだスワップされていない場合は、復元サブシステ ムは待機するのみである。ちなみに、仮想キャッシュコントローラが使用するキ ャッシュ置換アルゴリズムは同じエントリに繰り返し書き込みを行う傾向がある ので、キャッシュエントリへの書き込みを「広げる」必要がある。 第2の方法では、複数の「書き込み済み」エントリの他に1つまたは複数の「 追加」エントリを物理的キャッシュに設ける。書き込み済みエントリの数は、存 在するキャッシュキーの数と同じであり、仮想キャッシュのエントリ数と一致す る。追加エントリの数は、アンマップされた(すなわち現在データの書き込まれ ていない)エントリの数を表している。このようなエントリの総数は、物理的キ ャッシュのデータエントリの総数となる。 第2の方法では、キャッシュエント リは全て(キーに関連して)何度もアンマップまたはマップされる。アンマップ されたエントリの集合は、復元サブシステムがデータの完全ブロックを書き込む エントリのFIFOを形成している。分離FIFO構造は、このようなアンマップされた エントリに関連する目標インデックスのために維持される。物理的キャッシュへ の要求があったが一致するキーがない場合は、アンマップされたエントリのキュ ーの最初のエントリが目標となるインデックスにマップされてそのキーに対応さ せられる。置換されたエントリはアンマップされ、アンマップ状態のキューの最 後に配置される(空)。キャッシュキー生成 この方式は同一の要求ストリームが2つ生成されることを基本的に前提として いる。しかしながら、このような要求に対応する特定のキーは同一である必要は ない。 最初の(早いほうの)要求ストリームを形成するキャッシュキーは、テクスチ ャデータの読み出しとその後の復元を制御するのに使用される。このようなキー は、要求されたデータ(メモリアドレス等)に直接関連していなければならない 。 第二の(遅いほうの)要求ストリームを形成するキャッシュキーは、最初のス トリームの内容と正確に一致する必要はない。両者の間に他と異なる1対1のマ ッピング関係が成立していることのみ必要となる。これは第2のストリームのキ ーが既存のキャッシュエントリのマッチングのためだけに使用され、データ取り 込み操作には使用されないためである。ここにおいては、新しいデータが物理的 キャッシュにマップされたときに物理的キャッシュのキーとキャッシュエントリ の間の関係が成立し、また対応するエントリのインデックスが仮想キャッシュに よって計算されて復元サブシステムを通過するということが重要である。 このことは、ストリームのキーが他と異なっていさえすれば「正確」である必 要はないため、第2の要求ストリームキーを生成する処理の制御を簡素化するの に利用できる。 図12Aは画像処理ボード174上のgスプライトエンジン436を示すブロ ック図である。gスプライトエンジン436は収集したgスプライトから出力さ れるグラフィックスを生成する。gスプライトエンジン436はタイラーメモリ インタフェースユニットとのインタフェースを確立して、共有メモリの中のgス プライトデータ構造にアクセスする。gスプライトはgスプライトエンジンによ って変換され(回転、縮小拡大など)、合成バッファに送られて他のgスプライ トから成るピクセルと合成される。 インタフェースコントロール438は、タイラーを介してgスプライトエンジ ンと共有メモリとの間にインタフェースを確立するのに使用される。このブロッ クはFIFOを有しており、メモリからのアクセスがgスプライトエンジンで分散さ れる前にバッファする。 ディスプレイコントロール440はプロセッサは映像表示の更新制御に使用さ れる。これは、映像表示のリフレッシュを制御し、またgスプライトアクセスを 制御するのに必要なタイミング信号を生成する映像タイミングジェネレータを有 している。また、このブロックはgスプライト表示データ構造をトラバースして 、所定の32走査線帯に対して読み出す必要のあるgスプライトを決定する。 gスプライトヘッダ442レジスタは、画像プロセッサアドレスジェネレータ 454とgスプライトフィルタエンジン456が使用するGスプライトヘッダー を保存して、各gスプライトでの変換を決定する。またgスプライトヘッダデコ ーダ444もこのレジスタを使用して、各帯域でgスプライトを与えるに必要な ブロック(この場合、8x8圧縮ブロック)を決定する。 gスプライトヘッダデコーダ444は、各gスプライトからのブロックが32 走査線帯で可視状態になるブロックを決定し、gスプライト読み出しキュー44 6に転送されるブロック読み出し要求を発生させる。このぶろっくも、gスプラ イトエッジ等式パラメータを使用してgスプライトを現在の帯域にクリツップす る。この処理を以下に詳しく説明する。 gスプライト読み出しキュー446はgスプライトブロックの読み出し要求を バッファする。本実施例では、このキューは16個のブロックの要求を記憶して いる。 gスプライトデータアドレスジェネレータは要求されたgスプライトブロック のメモリのアドレスを決定し、gスプライト読み出し要求をインタフェース制御 ブロックに送信する。gスプライトデータアドレスジェネレータ448はメモリ 管理ユニットを有している。 共有メモリ216(図4A)から検索した圧縮データは、圧縮キャッシュ45 8に一時的に保存できる。 復元エンジン450には2つのデコンプレッサを備えており、一方は3次元の gスプライトや画像等の連続したトーンの画像に対してDCTに基づいたアルゴ リズムを実行し、他方はデスクトップピクセルデータに対してロスのないアルゴ リズムを実行する。DCTに基いたアルゴリズムは2つの平行圧縮ブロックが実 行し、両ブロックとも各クロック周期ごとに8個のピクセル要素(すなわち2ピ クセル)を生成することができる。 gスプライトキャッシュ452は、8x8の16ブロックに対して復元された gスプライトデータ(RGB∝)を保存する。データは16個のgスプライトピ クセルが各クロック周期ごとにアクセスされるよう構成される。 画像プロセッサアドレスジェネレータ454は、特定の疑似変換に基づいて各 gスプライトをスキャンし、また各ピクセルのフィルタパラメータを計算するの に使用される。gスプライトキャッシュアドレスはgスプライトキャッシュ45 2のgスプライトデータにアクセスし、それをgスプライトフィルタエンジン4 56に送るために生成される。画像プロセッサアドレスジェネレータ454も合 成バッファを制御する。 gスプライトフィルタエンジン456は、フィルタパラメータに基づいてピク セル位置のピクセルのカラーとアルファを計算する。このデータは合成バッファ に転送されて合成される。このブロック456は、ピクセル位置でのgスプライ ト s-t座標に基づいて4または16ピクセルフィルタ核を計算する。例えば、フ ィルタは双線形またはさらに優れた余弦の和の関数でよい。16ピクセルフィル タ核は、双線形補間法よりも細かなフィルタリングが可能な負ローブを有するこ とができる。gスプライトフィルタエンジン456はクロック周期ごとに合成さ れる4つの新しいピクセルを生成する。これらのピクセルは2x2パターンで配 列される。 gスプライトエンジン436はタイラー200と合成バッファ210とのイン タフェースを確立する。制御信号は映像タイミングとDAC 212へのデータ転送 を制御する。 図12Bはgスプライトエンジン437の他の構成を示すブロック図である。 これには、プリラスタライザ449とラスタライザ454の両者が含まれている ので、gスプライトエンジンはgスプライトピクセルデータブロックの検索や復 元で待ち時間を生じさせることなくgスプライト空間からのピクセルデータを画 面空間に変換することができる。この構成で2つのラスタライザを用いる方法は 図11及び9Cを参照して上記に説明したとおりである。 gスプライトエンジン437におけるブロックの操作は、2つのラスタライザ を使用してテクスチャデータのブロックを取り込む方法を採用している点以外は 、図12Aで説明したものとほぼ同じである。この構成(図12B)では、gス プライトヘッダデコーダ444がgスプライトヘッダレジスタ442を読み出し 、gスプライトを現在の表示帯にクリップし、さらにgスプライトキュー447 にgスプライトを移してラスター化を行う。データアドレスジェネレータまたは 「プリラスタライザ」449はgスプライトヘッダの所定の疑似変換に基づいて 各gスプライトをスキャンし、gスプライトキャッシュコントロール451に対 して読み出し要求を発する。テクスチャキャッシュコントロールに関連して上記 に 説明した方法を用いれば、gスプライトキャッシュコントロール451によって 必要なgスプライトデータブロックはgスプライトエンジン437に、また特に 画像プロセッサブロックが必要とするときはgスプライトキャッシュ452に確 実に存在するようになる。このコントロールは復元エンジン450を介しての圧 縮キャッシュ458からgスプライトキャッシュ452へのgスプライトデータ ブロックの流れを管理する。読み出しキュー453は共有メモリシステムへのg スプライトデータブロックの要求をバッファする。またインタフェースコントロ ール438は読み出しキュー453の要求を読み出し、共有メモリへのアクセス を制御し、gスプライトデータブロックを圧縮キャッシュに入れる。 gスプライトエンジンの復元サブシステムは圧縮キャッシュ458と復元エン ジン450を有している。キャッシュコントロール451は、テクスチャキャッ シュコントロールに関連して上記に説明したこの復元サブシステムを介してgス プライトブロックの流れを制御する。 画像プロセッサアドレスジェネレータ(ラスタライザ)454はgスプライト ヘッダの所定の疑似変換に基づいて各gスプライトをスキャンし、各ピクセルの フィルタパラメータを計算する。また、gスプライトデータのgスプライトキャ ッシュアドレスも生成し、これをgスプライトフィルタエンジン456で使用で きるようにgスプライトキャッシュのキャッシュアドレスマップへ送る。キャッ シュ構成の一例では、キャッシュアドレスマップはアクティブとなる14ピクセ ルブロックと復元エンジンから書き込みされる2つのブロックを選択する。 gスプライトフィルタエンジン456はgスプライト空間のピクセル位置にあ るカラー及びアルファデータを画面空間にマップする。この方法では、2x2ま たは4x4のフィルタ核を用いて、画面空間のピクセル位置にあるピクセル値( カラーまたはカラーとアルファの両者)を計算する。合成バッファコントロール 457はピクセル値、この場合は1クロック周期当たり4ピクセルを合成バッフ ァに送る。合成バッファコントロール457は合成バッファからのレディライン を監視し、gスプライトエンジン437が合成バッファをオーバーランさせない ようにする。ラスタライザ454は合成バッファコントロール457を制御する 。 図13は画像処理ボード174の合成バッファ480を示すブロック図である 。 合成バッファ480は、gスプライトエンジンからのgスプライトデータを合成 してDAC 212へ転送するデジタルビデオデータを生成するのに使用する専用メ モリ機器である。合成バッファは一度に32本の走査線で動作する。1つの32 走査線帯でgスプライトを合成する間に、前の32本の走査線が表示される。 合成ロジック482は走査線バッファに書き込むピクセル値を計算する。これ は、現在走査線バッファに保存されているピクセル値と合成バッファに書き込ま れているピクセル値とを混合させることで実行される。この操作は以下に詳しく 説明する。一構成例では、合成ロジックが各クロック周期ごとに4つの平行ピク セル操作を実行する。 メモリコントロール484はアドレスの制御とメモリバンクのサイクリングに 使用される。アドレス情報は、通常のDRAMを使用するときのように行と列のフォ ーマットで送られる。 アルファバッファ486は1344x32ピクセルのそれぞれに対して8ビッ トの数値を有している。メモリは、連続する4つのピクセルが各クロック周期ご とに読み出しまたは書き込みされるように構成されている。アルファバッファは 、32走査線帯の切り替えの間にバッファを迅速にクリアする高速クリア機構も 有している。 2つの独立した走査線バッファ488が使用される。走査線バッファは1344 x32ピクセルのそれぞれに対して3種類の8ビットカラー値を有している。メ モリは、連続する4つのピクセルが各クロック周期ごとに読み出しまたは書き込 みされるように構成されている。一方のバッファは帯域のピクセルデータをDAC に転送するのに使用し、他方は次の帯域のピクセルを合成するのに使用する。帯 域が一旦終了すると、その機能はスワップされる。 マルチプレクサは2つの走査線バッファ488のうちの何れかからのデータを選 択し、ピクセル表示データをDAC に送信する。マルチプレクサは32本の走査線 ごとにバッファの切り替えを行う。 合成バッファ480はgスプライトエンジン204とのインタフェースを確立 し、画像データをDAC 212へ転送する。 図14は画像処理ボード174上のDAC 514を示すブロック図である。DAC 514は、現在市場に一般的に出回っているRAMDACに共通する基本機能を実行す る。DAC は内部制御レジスタの読み書きを行ったり、映像制御信号を次々と送信 するロジックを有している。その他の機能ブロックについては、以下に説明する 。 ピクセルデータルーチングブロック516は合成バッファからのピクセルデー タのルーチングを制御する。通常の操作モードでは、このデータはピクセル速度 で3つのチャネルのそれぞれのColor LUT 518に送られる。このブロックもDS P からデータを再び読み出して診断することが可能である。 ステレオ画像スプリッタ520は、ヘッド装備ディスプレイシステムを用いて 立体表示される2つの映像信号を支援する。このモードでは、2つの映像チャネ ル(522,524)が合成バッファから交互配置されており、DAC 514によ って分割されなければならない。ステレオ画像スプリッタ520はDAC 514で この機能を実行する。通常の単一チャネルモードでは、LUT データが第1DAC に 直接送られる。 その他、単一の映像出力を生成するようDAC 514を構成することも可能であ る。DAC は、単一の映像出力と共に、ライン交互配置フォーマットを使用して立 体表示を作成することが可能である。この場合、一方の目に対する走査線に他方 の目に対する走査線が続く。結果として生成された映像ストリームは640x9 60等のフォーマットを有しており、例えばこれは640x480の画像を表し ている。 クロックジェネレータ526はビデオクロックとオーディオクロックを生成す る。これらのクロックは2つの位相固定クロックジェネレータによって生成され 、同期ずれを除去する。クロックジェネレータもMedia Channel からの制御信号 に従い、画像処理ボードを外部同期ソースに同期させることが可能である。 画像処理システムの構造と操作を上記に説明したが、次にシステムの構成部分 と特徴について詳細に説明する。まず、上記に説明した概念を実行するためにシ ステムで使用されるデータ構造を説明する。チャンキング RAM に大容量のフレームバッファとZ-バッファを使用してカラー、深さ、各ピ クセルのその他の情報を記憶する従来のグラフィックシステムとは異なり、この システムはある1画面の中の対象を「チャンク」と呼ばれる画像領域に分割し、 対象の配列をこのようなチャンクに別個に配置する。実施例において、対象はg スプライトで表示される。gスプライトはチャンクに下位分割され、チャンクは 別個に表示される。この説明は幾つかの特定の実施例について言及しているが、 チャンキングは本発明の範囲から逸脱せずに様々に応用することができる。 チャンキングの概念を、図例を挙げて説明する。図15Aに示すように、境界 ボックス548と呼ばれるボックスで囲まれているグラフィック画面の対象54 6は、gスプライト552という画像領域に表示される。境界ボックスを回転、 拡大縮小、拡張、その他変換(例えば疑似変換)して、画面領域にgスプライト を作成してもよい。境界ボックスが一度作成され、境界ボックスが32ピクセル 境界(すなわちチャンク境界)554に収まらないのであれば、境界ボックスを 対象の周囲でXおよびY方向に拡張して32ピクセルチャンクサイズの整数倍に なるようにする。図15Bの対象550から分かるように、図15Aに示す対象 546を囲む境界ボックスは図15Bの32x32ピクセル境界に拡張される。 gスプライトは再現される前に32x32ピクセル「チャンク」556に分割さ れる。しかし、チャンクサイズはこれよりも小さいまたは大きいものを用いるこ ともできるし、また他の形状のチャンクも使用できる。しかし、矩形、より好ま しくは四角形のチャンクを図示する。 図15Cに示すように、グラフィック画面581は重なり合った対象(560 ,562)を複数有している。これらの対象は境界ボックスで囲まれており、g スプライト(564,566)に割り当てられる。図15Cの境界ボックスは3 2ピクセル倍にすでに拡張(及び回転、縮小拡大、その他変換)されており、3 2x32チャンク568が生成される。しかし、図15Cから分かるように、g スプライトとそれに対応する32x32ピクセルチャンク境界570は32ピク セル画面境界に正確に配列されないので、チャンクを行っている間にさらにgス プライトを操作してgスプライトが画面空間に収まるようにしなければならない 。 再現されるgスプライトをチャンキングによって作成する一つの方法としては 、それぞれの対象の配置を含む小さな個々のgスプライトを複数作成して再現す るのではなく、複数の対象を組み合わせてより大きな合成gスプライトを作成す る 方法がある。gスプライトを組み合わせると再現の際の処理時間が短くなり、ま た組み合わせた対象がグラフィック画面の中で頻繁に変わらないのであればこの 方法は非常に好ましい。gスプライトを作成する別の方法としては、複雑な配置 の対象の構成部分を処理の対象とし、これらの複雑な配置の構成部分を複数のg スプライトに分割するというものがある。このように分割を行うと処理時間が長 くなってしまうおそれがあるが、頻繁に変化する特定の複雑な対象の出力解像度 を向上させることができる。対象によっては、これら技術を組み合わせて使用し てもよい。 例として、腕を様々なサイズの複数のスパイクで覆っているビデオゲームのキ ャラクターを挙げる。この場合、腕は頻繁に動くものとする。キャラクターの体 、頭、その他の部分は頻繁には動かないので、これらは組み合わせてより大きな 合成gスプライトを構成することができる。しかし、スパイクで覆われており、 複雑な配置となり、また頻繁に動くキャラクターの腕は、出力解像度を向上させ るために複数のgスプライトに分割される。この場合、組み合わせと分割の両方 を用いる。このようなキャラクターを図示するのは容易ではなく、また実用的で はないので、より単純な対象である「コーヒーカップ」を用いて組み合わせと分 割を図示する。 図16Aは「コーヒーカップ」を表している。この「コーヒーカップ」は実質 的に複数の別個の対象から構成されている。例えば、「コーヒーカップ」は実際 にカップ容器と、カップ取っ手と、ソーサーと、カップから立ち上る湯気とで構 成されているように見える。図16Aに示すように、一つの方法は個々の対象を 組み合わせてより大きなgスプライト(すなわち、「コーヒーカップ」)にする ものである。もう一つの方法は、図16Bに示すように、「コーヒーカップ」を 複数の小さな対象(例えばカップ容器、カップ取っ手、ソーサー、湯気)に分割 してそれぞれ小さなgスプライトを作るものである。また図16Bは複雑な配置 の対象を分割する方法も示している。 図16Aに示すように「コーヒーカップ」574を一つの単純な対象とすると 、対象の各構成部分(例えばカップ容器、カップ取っ手、ソーサー、湯気)を組 み合わせて一つの大きなgスプライトを作成することができる。この場合、境界 ボ ックス576で対象の周辺を囲み、対象を画面空間に変換して一つの大きなgス プライトを作成する。画面空間の32x32ピクセル境界内に収まるgスプライ トを作成するために、境界ボックスを回転、拡大縮小、拡張、その他の変換させ てもよい。その後、gスプライトは複数の32x32ピクセルチャンク578に 分割される。 gスプライトをチャンクに分割する一つの方法は、対象に含まれる配列を全て つなぎ合わせてチャンクに配列を置くというものである。別の方法では、問題の チャンクを使用する配列全てを記録しているチャンクをつなぎ合わせる。図に示 す実施例では後者の方法を使用しているが、前者やその他の方法も使用できる。 図16Aから分かるように、複数のチャンクが空の状態になる(すなわち、何れ の対象配列もチャンクを使用していない)。後で説明するが、これらのチャンク は再現が行われている間は無視される。 次に、「コーヒーカップ」を一つの複雑な対象とした場合、図16Bに示すよ うに対象は処理されて複数の小さなgスプライトを作成するより小さな対象構成 部分に分割される。例えば、対象の「コーヒーカップ」は、取っ手のないカップ 容器579と、カップ取っ手580と、ソーサー581と、湯気582という下 位対象から構成される。各下位対象はそれぞれ583−586に示すように境界 ボックスで囲まれて、4つのgスプライトを形成する。4つのgスプライトを含 む「コーヒーカップ」も、587で示すように境界ボックスで囲まれる。画面空 間の32x32ピクセル境界に収まるgスプライトを作成するために、各境界ボ ックスを回転、縮小拡大、拡張、その他変換(例えば、疑似変換)させてもよい 。次に各gスプライトは32x32ピクセルチャンクに分割する。境界ボックス 587もチャンクに分割させて、再現の際に無視される空のチャンク588を有 するようにさせる。しかし、この境界ボックスのチャンクは図16Bに図示され ていない。 チャンキングにより、グラフィック画像は単一のフレームとして再現されるこ とはないが、後にフレームまたは表示空間に統合される一連のチャンクとして再 現される。現在描かれている画像の32x32ピクセルチャンクを交差する単一 のgスプライト内の対象のみが再現される。チャンキングにより、フレーム及び Zバッファはメモリの小さな物理的サイズとなって(すなわち、上記に説明した 従来のグラフィックシステムよりも||かに小さなメモリを使用する)、使用され るメモリの使用頻度が上がり、メモリの帯域幅が増大する。また、チャンクサイ ズが小さいと、さらに高度な再現技術を使用することができる。このような高度 な再現技術は、フレームとZバッファが大きいと効率的に応用することができな い。 チャンクの再現はタイラーで実行される。しかし、再現は他のハードウェア構 成要素上、またはソフトウェアを使用しても実行できる。タイラーチップのVL SIメモリは、現在再現されているフレームの(32x32ピクセル)小さなチ ャンクを保存するのに使用される。オンチップVLSIメモリは、外部RAMよ りも非常に高速でメモリ帯域幅も広い。しかし、チャンキング処理が行われるた めに、フレームバッファ及びZバッファ全体を保存する大量のメモリは不要にな る。タイラー内の内部メモリは現在のチャンクの処理のみを行い、それに続く各 チャンクを処理するために繰り返し使用される。そのため、使用可能な内部メモ リはグラフィック再現中に頻繁に使用される。 また、内部VSLIメモリを使用すると、オフチップ通信や、従来のフレーム 及びZバッファに必要な大容量外部メモリに対する読み出しや書き込み操作によ るオーバーヘッドが原因で通常発生するピンドライバ遅延を除去することができ る。また、図に示す本実施例では次のチャンクが計算される前に32x32ピク セルチャンク全体が完全に再現されるので、チャンクサイズが小さいと、外部メ モリの大部分に保存されるフレーム及びZバッファ全体よりもチャンクでのほう がより高度な非偽信号(例えばフラグメントバッファ)及びテクスチャリング方 法を実行することができる。さらにチャンクサイズが小さい場合、後で詳細に説 明する画像圧縮技術を使用する際に便利である。 交差するポリゴンを全てチャンク及び変換したフラグメントに書き込んだ後、 カラーや不透明度を含むピクセルデータはタイラーチップに圧縮されて、外部メ モリに転送される。 図17A及び17Bはグラフィック画面のチャンクへの分割方法のあらましを 詳細に示している。まず、1つ以上の境界ボックスが各対象に対して作成される 。 (592)(図17A)。対象の配列が複雑な場合(例えば細かい碁盤目状になって いるなど)(594)、複数の境界ボックスが作成されて(複数のgスプライトを 作成するために)対象の複雑な各構成部分を囲む(596)。対象の配列が複雑 でない場合は、単一の境界ボックスを使用して対象を囲み、gスプライトを作成 することができる(598)しかし、対象が複雑であると、単一の境界ボックス が、対象の複雑な構成部分を囲むための複数の境界ボックスも囲んでしまう。単 一または複数の境界ボックスが32ピクセルの整数倍でないならば(600)、 このような境界ボックスを32ピクセルの整数倍になるようXまたはY方向(ま たは両方向)に対称に拡張する。次に、対象(配列が複雑なときは対象構成部分 )を境界ボックスの中でセンタリングする(602)。これを図15B及び15 Cのgスプライトで示す。拡張は対称に行うのが好ましいが、必ずしもそうする 必要はない。拡張が対称であると、単一のgスプライトの中のチャンク間の処理 のバランスが良くなる。 再び図17において、gスプライトは32x32ピクセルチャンクに分割され る(604)(図17B)。明らかなように、チャンクは表示空間の固定位置にある のではなく、チャンクされた対象の位置によってはアドレス呼び出しが可能な可 変位置に置かれる。gスプライトをチャンクに分割した後、チャンクの処理を行 う。チャンクの再現が完了すると(606)、処理は終了する。チャンクの再現 が完了しない場合、まず次のチャンクが空なのか確認した後このチャンクの処理 を始める(608)。チャンクが空の場合、処理は行われず、次のチャンクの確 認が行われる。チャンクが空でない場合は、チャンクを使用している対象全てが 処理されるまでチャンクの再現(610)をタイラーで続ける。この処理は、各 gスプライトの全チャンクと全gスプライトの処理が完了するまで続けられる。 gスプライトのサイズは画面の総領域のパーセンテージで表される。背景のg スプライトは非常に大きいが、通常画面の他の構成部分は画面の総領域よりも小 さい。チャンキングの性能はgスプライトのプリミティブの画面空間サイズによ って変わる。そのため、gスプライトの作成に使用する対象データ入力ストリー ムを適切に調整(例えば待ち行列に入れる)する必要がある。対象データ入力ス トリームを適切に調整すると、対象の処理をより高い帯域幅で実行することがで き、またシステムのスループットも上昇する。 このシステムはコマンドストリームキャッシュを使って対象データ入力ストリ ームをキャッシュしている。コマンドストリームキャッシュを使用してgスプラ イトの全内容をキャッシュし、また全てのチャンクとそれに対応するキャッシュ に保存されているgスプライトの配列を繰り返し使用することができる。 またキャッシュは選択キャッシングにも使用できる。例えば、配列プリミティ ブが所定数のチャンクを使用するときに、これらのプリミティブが自動的にキャ ッシュされるよう閾値を決める場合である。キャッシュの使用が可能であれば、 仮想チャンキングを行うことができる。仮想チャンキングでは、それぞれが仮想 チャンクであるN x M チャンクの領域に相当するチャンクバケットを作成する。 仮想チャンキングにより、内容と配列サイズに合った仮想チャンクの適応サイズ 設定を行うことができる。 キャッシュは修正画面グラフキャッシングにも使用できる。画面の静止部分を キャッシングして参照するのではなく、キャッシングを行って間接手段を通じて 画面の動的部分を参照する。例えば、やや配列の複雑なカッコウ時計を含むgス プライトについて考えてみる。時計そのものは非常に複雑であるが、唯一動く部 分は鳥、2つのドア、2本の針である。さらに、各配列は固定されており変化す ることはない。従って、時計を再現すると、6本の木は静止状態で、また6つの 部分が変換される(すなわち、時計、鳥、2つのドア、2本の針)。キャッシュ の容量が十分大きければ、画面グラフ全体をコマンドストリームに変換する。再 現の際には、現在の変換部分はキャッシュされたコマンドストリーム上にパッチ され、その後コマンドストリームはgスプライトの全チャンクに対して発せられ る。コマンドストリームのパッチ部分のサイズは再現しても変わらない。さらに 順応性のある方法としては、キャッシュした静止画面グラフに呼び出しコマンド を挿入するというものがある。再現の際は、動的部分が可変サイズのメモリに書 き込まれ、キャッシュされる。このような動的部分のアドレスは、静止コマンド ストリームの対応する呼び出しコマンドにパッチされる。この方法は、動的コマ ンドのサイズを各再現ごとに変えることができるため、順応性に優れている。従 って、この場合はメモリにキャッシュされたコールバック方法が効果的である。 カッコウ時計の例では、6つの変換部分を書き込んで場合によっては鳥の配列を コールバックするので、ドアが閉じている場合に鳥部分は空になる。この方法は 、バス帯域幅に対しては非常にコンパクトで、画面グラフを迅速に指定方向に移 動することが可能になる。 キャッシュメモリに制限があっても、配列や属性によっては何度再現してもキ ャッシュされた状態を保つことが可能なものもある。例えば、カーレーシングゲ ームの場合、車体配列をキャッシュすると、全体的に時間を大幅に節約すること ができる。同様に、一般の属性状態(または下位状態)は複数のgスプライトま たは単一のgスプライトを再現する際に何度も利用される。上記に述べたように 、チャンキングでキャッシュを使用すると、時間が大幅に節約される。しかし、 gスプライトの各使用チャンクに対してコマンドストリームを迅速に作成するこ とにより、コマンドストリームキャッシュなしで適切なチャンキング性能を実現 することができる。 図9A〜9Cに示すタイラー手段では、複数のチャンクを平行プロセッサで同 時に使用して計算ロードを共有するのではなく、チャンクを順次使用して1つの プロセッサ上でフレーム全体を再現する。あまり好ましくはないが、チャンクの 逐次または並行処理を組み合わせて行うことも可能である。チャンクを完全平行 処理する場合、画面上を移動する対象に対してはそれが移動したときに固定チャ ンキング操作を行うことが必要になる。しかし図に示す本発明の実施例において は、チャンクを逐次処理しているので、対象はgスプライトのチャンク境界に固 定される。従って対象が画面上を移動してもチャンキングを行う必要はない。ま たチャンクを平行処理再現しても、チャンクの逐次再現する場合のように、高度 な非偽信号及びテクスチャリング方法を各チャンクに応用することはできない。 32x32ピクセルチャンク全体は次のチャンクが計算される前に再現されて即 座に圧縮されるので、チャンクサイズと順次再現は画像圧縮技術にとって非常に 重要である。 画像の圧縮は、少ないデータで画像を表示し、保存コスト及びまたは送信時間 とコストを減らすために行う。適切な方法で画像を再構成できる場合、画像表示 に必要なデータが少ないほどコストをより下げることができる。また、元の画像 を正確に再生するのではなく、元の画像に近づけることでさらに効果的な圧縮を 行うことができる。圧縮量が多くなると、最終画像も一層元の画像に近づく(「 損失の多い圧縮」)。 チャンキングの処理そのものは圧縮技術である。対象は複数の32x32ピク セルチャンクから作成される1つ以上のgスプライトを使って元の画像に接近さ せられる。実際の対象はgスプライトを使って元の画像に近づけ、再現されたg スプライトから再構成される。元の対象の再構成は、対象をgスプライトに分割 してチャンキングすることでどれほど効果的に元の画像に近づけたかによって変 わる(例えば、上記の複雑な対象配列分割技術)。 各32x32チャンクも画像圧縮技術を使って圧縮される。圧縮された32x 32ピクセルチャンクは、使用可能な内部メモリの小さな領域の中であまり多く のスペースを占領することはない。32x32ピクセルチャンクは、離散形余弦 変換(DCT)を使用する画像圧縮技術で共通して使用されるサイズである16 個の8x8ピクセルチャンクに分割される。 ある方法では、タイラーの圧縮及び復元エンジン、及びgスプライトエンジン の復元エンジンは損失の多い圧縮/復元形式と損失の少ない圧縮/復元形式の両 方をサポートしている。損失の多い形式には、RGBからYUVへの損失の少な いカラー変換、DCT、均一または知覚量子化、エントロピーコーディング(実 行長さ及びハフマンコーディング)がある。損失の少ない形式には、RGBから YUVへのカラー変換、予測段階、損失の多い形式でも実行されるエントロピー コーディングがある。 メモリの必要性を大きく減らしてチャンキングによってグラフィック画像を処 理するために、図示の実施例では小さなZバッファを使用している(例えば4キ ロバイト(kb))。特に、この方法でのZバッファは4kbよりもわずかに小さ いが、精度のビット数を変化させることが可能である。しかし、他の大きなサイ ズまたは小さなサイズのZバッファも使用できる。小さな4kbのZバッファを 使用すると、1024ピクセルのみがZバッファで一度に再現される。4kbの Zバッファを使用して任意サイズの画面(例えばgスプライトで構成される画面 )を再現するためには、所定サイズの32x32ピクセルのチャンクに分割され る (通常、1画面にはgスプライトが複数あるが、各gスプライトともチャンクに 分割される。)この方法では、画像プリプロセッサが適切な配列をgスプライト の各チャンクに送ってZバッファで再現を行う。 チャンクの機能の例として、図18Aに示す8個の対象とそれに対応する配列 を挙げる。簡単に説明するために、8個の対象612〜619をA〜Dの4つの 値のいずれかを有する単一の属性620(例えばカラー)で定義する。図18B に示すように、8個の対象はグラフィック画面で重なり合う。各gスプライトと その生成については無視し、図示の関係上、分離した4つのチャンクのみについ て説明する。この分離した4つのチャンク621〜624を図18Bに示す。分 離した4つのチャンクは、図19Aに示すように配列1〜8と属性A〜Dに接し ている。チャンク1630(図19A)は配列1,2,5と属性Bに接しており 、チャンク2639は属性AからDに接しているが何れの配列にも接していない 。またチャンク3632は配列2,4,7,8と属性A,B,Dに、チャンク4 634は配列4,6と属性A,Cに接している。(図18B及び19Aに示すチ ャンクを使って)画像の事前処理によって作成した部分画面グラフの例を図19 Bに示す。各チャンクの属性(例えばA〜D,Xで示すカラーなど)は円638 で表し、また属性(例えば1〜8で示す様々な形状など)は四角形640で表し ている。文字Xは属性のデフォルト値を示している。中間ノードは、プリミティ ブ配列に対して実行する属性演算を有している。画面グラフのリーフノードはチ ャンクに使用されるプリミティブ配列を有しており、またチャンクが描く配列を 取り囲む境界ボリュームも有することがある(境界ボリュームを有するリーフノ ードについては以下に説明する)。 チャンキングを行う一つの方法では、各チャンクを繰り返し使用して完全配列 を毎回送信する。さらに最適な別な方法では、現在のチャンクで可視状態の配列 のみを送信する(ちなみに、この最適な方法では不明瞭または目で確認できない 配列は省いている)。該システムで使用されている32x32ピクセルブロック のgスプライトをチャンクする実際の方法は、上記2つの極端な方法の中間に位 置するものでバケットチャンキングと呼ばれている。しかし、これら2つの方法 に含まれるあるいは中間に位置するような他の方法を用いて、チャンクを作成し 、 チャンキングを行うことも可能である。 バケットチャンキングは2つのパスで構成される。まず第1のパスは画面グラ フを移動させながら、現在の変換部分を表示空間に維持させ、最終的には各チャ ンクの記述コマンドストリームを表示空間に構築する。表示空間はNxMのチャ ンクバケットに分割され、このチャンクバケットは最終的にはそれぞれのチャン クに対応する配列のリストをそれぞれ有するようになる。配列プリミティブノー ドがあると、現在の変換が境界ボリュームに適用されて2Dの「フットプリント 」が表示空間に生成される。足跡に接する各チャンクごとに、配列(及び累積属 性状態)が該当するバケットに付加される。この最初のパスの終了時には、各バ ケットとも該当するチャンクを再現するのに必要なデータを有しているはずであ る。ちなみに、このチャンキング方法は算出されたフットプリントの品質に左右 され、対象の領域があまり正確でなければ生成されるフットプリントはより大き くなる。従って、周囲を囲まれた配列に接していないチャンクとなる。対象の領 域が正確であると生成されるフットプリントは小さくなるので、ほとんどのチャ ンクが周囲を囲まれた配列に接することになる。 第1のパスの例として、図19Aに示す配列1〜8、属性A〜D,Xによって 描かれる互いに重なり合う対象を含む4つのチャンクの部分集合について考察す る。パス1の中で画面グラフを移動させる一つの方法として、各チャンクの現在 の状態を維持し、所定のチャンクに収まらない配列を省くというものがある。こ れにより、各チャンクのどの配列の属性内容も最新のものに更新される。図19 Bの画面グラフでこの方法を用いると、パス1の後でチャンクバケットに以下の ようなコマンドストリームができる。 チャンク1バケット:X,A,B,1,2,5,A,X,C,D,C,X チャンク2バケット:X,A,B,A,X,C,D,C,X チャンク3バケット:X,A,B,2,7,8,A,4,X,D,3,C,X チャンク4バケット:X,A,B,A,4,X,C,6,D,C,X また、現在の属性状態を維持し、容認された各配列を送信する前にこの状態を 送る方法もある。これにより、チャンクバケットに以下のコマンドストリームが できる。 チャンク1バケット:B,1,B,2,B,5 チャンク2バケット:<空き> チャンク3バケット:B,2,B,7,B,8,A,4,D,3 チャンク4バケット:A,4,C,6 第2の方法は第1の方法を改良したものである。ちなみに属性Bは配列2及び 5の前に指定された第2及び3の不要な時間である。この動作は、配列7及び8 のBに対するチャンク3でも行われる。実際には、現在の属性状態がどの属性も 各配列に対して再指定されることを表しているので、状況はここに説明する以上 に悪くなってしまう。つまり、テクスチャ変換マトリクスが全画面グラフに対し て変化しなくても、全チャンクの各配列を送る前にマトリクスが送信されてしま う。 従ってこの方法では属性を維持して、属性を優先させ、さらに属性を構成する 。拡散カラーは優先属性である。画像グラフを作成する画像プリプロセッサ(例 えば、画像プリプロセッサ24等で実行される画像事前処理ソフトウェア)で定 義されるように、赤(青(立方体))に使用される属性から赤の立方体ができる。こ れは、最も近い属性を対象に結びつける画像プリプロセッサグラフィックインタ フェースとは対称的である。最も近い属性を赤(青(立体))の対象に結びつけると 、青の立方体ができる。 最も遠い属性を優先属性として使用すると、属性維持が非常に簡素化する。画 面グラフの移動中に、属性ノードに遭遇すると、画面グラフの中のそのノードよ りも下にあるその属性タイプのノード全てを無視することができる。これは最上 位の属性が他よりも優先されるためである。 局部変換は構成属性である。従って、現在の値は前の値と新しい値によって定 義される。構成属性には、画面グラフが移動して前の数値を保存する際にある種 のスタックが必要になる。 バケットチャッキング方法では以下の構造を用いる: ・ 現在の値を有する属性ノード。 ・ 移動コンテクスト。これは、各優先属性に対して現在の属性値を示すポイン タを有する構造である。 ・ それぞれコマンドストリームバッファと広域移動コンテクストとして同種の バケットコンテクスト構造を有するバケットのグリッド。 ・ それぞれ移動コンテクストによって参照可能なデフォルト属性値のリスト。 初期化するために、コンテクストはデフォルト状態になるので、属性は全てデフ ォルトコンテクストを表す。デフォルト値は、各チャンクに再現コマンドを送る 前にひとまとめにダンプされるのではなく、ゆっくりとロードされる。 次に所定の属性ノードの処理方法を説明する。 配列ノードを扱う処理により、現在の移動状態が各バケットの属性状態と同期す る。 移動中にスタックを維持するいうことを除けば、構成属性は優先属性と同様の 働きをする。これは、スタック値を保存するためのノードを使用することで可能 となる。この方法には以下の構造が必要となる。 ・以前の値と新しい値の組み合わせを有する現在の属性ノード。 ・移動コンテクスト。これは、全ての構成属性のために、現在の属性ノードを 示すポインタを有する構造である。 ・それぞれ移動コンテクストによって参照されるデフォルト属性値のリスト。 ・それぞれコマンドストリームバッファと広域移動コンテクストと同じタイプ のバケットコンテクスト構造を有するバケットのグリッド。 構造属性の初期化は優先属性の初期化と同様と思われる。 構造属性の処理を行うと、移動範囲の中にある現在のノードよりも前に新しい 値と全ての数値の組み合わせが作成される。ちなみに値のスタックを作成する場 合は、以前の値を保存し復元する必要がある。 配列処理部は優先属性の場合と同じである。 バケットチャンキングの第2のパスは、バケットのグリッドを反復させて対応 するコマンドストリームを発する。空でない全てのバケットについては、そのバ ケットに保存されている情報から該当するチャンクが再現される。ちなみに、画 面の中に空のバケットがある場合もあり、これはgスプライトの全てのチャンク が再現されるわけではないことを意味している。活性の高いgスプライトは、透 明な背景上の不透明な対象から構成され、多数のチャンクが空である必要がある 。 上記の属性状態を維持する方法は、チャンクした状態で配列を再現するのに特 に適している。チャンクすることにより配列の集合が、最初に指定されたのとは 異なる順序で再現される。例えば、チャンクの再現において、再現システムはチ ャンクと交差しない配列の集合を省く。従って、チャンクした配列の再現のレベ ルが低い状態では、多くても次の2つの状態レベルを維持するのがよい。1)タ イラーまたは他の再現ハードウェアとの互換性があり配列の再現が可能なフォー マットでの広域状態、及び2)配列の集合にのみ適用されるその集合内の小域状 態オーバーレイ。この方法では、配列の各集合は他の集合とは別に再現可能であ り、また配列の集合の再現に副次的作用は生じない。画像圧縮 上記に述べたように、チャンクサイズと逐次再現は画像圧縮技術にとって重要 な事である。それは、32x32ピクセルチャンク全体が、次のチャンクの計算 が行われる前に完全に再現され、即座に圧縮することが可能なためである。タイ ラーは損失の多い圧縮形式と損失の少ない圧縮形式の両方をサポートして、チャ ンクの圧縮を行う。損失の多い圧縮形式及び損失の少ない圧縮形式は共に8x8 ピクセルから成る独立ブロックのチャンクを圧縮するので、圧縮された各32x 32ピクセルチャンクは16個の圧縮ブロックから構成されることになる。 画像の圧縮を行うと、必要なメモリサイズが小さくなり、また必要なメモリ帯 域幅も大幅に減少する。この設計ではキャッシングと、事前取り込み戦略と、チ ャンクとを組み合わせて利用することにより、圧縮とブロックアクセスで生じる 待ち時間とオーバーヘッドを減少させている。画像全体は32x32ピクセルバ ッファで計算されるので、gスプライト画像圧縮は最小オーバーヘッドで行われ る。圧縮アーキテクチュアの概念的レイアウトを図20に示す。 変換エンジン660(図20)はモデル及び表示変換、クリッピング、ライテ ィング等を計算し、この情報をタイラー662に送信する。タイラーは変換情報 を処理すると、テクスチャメモリ664からテクスチャデータを読み出す。テク スチャブロックが必要となるので、テクスチャデータは圧縮形式で保存されてい る。テクスチャブロックはタイラー復元エンジン666で復元され、タイラーの オンチップテクスチャキャッシュにキャッシュされる。タイラーはピクセルデー タを解像すると、解像されたデータをタイラー圧縮エンジン668に送る。ここ で解像されたデータは圧縮され、さらに圧縮されたデータはgスプライトメモリ 670に保存される。gスプライトエンジン672は圧縮されたgスプライトデ ータが必要になると、gスプライト復元エンジン674を使ってgスプライトメ モリ664からのgスプライトデータを復元し、オンチップgスプライトキャッ シュにデータをキャッシュする。実際のハードウェアでは、テクスチャメモリ6 64とgスプライトメモリ670は同一である(すなわち圧縮データは様々なエ ンジンが共有する単一のメモリに保存される)。使用する圧縮方法及び復元方法 に互換性があれば、共通の共有メモリは不要である。またgスプライトデータは データベースやその他の画像源676から取り込んで、テクスチャメモリ664 及びgスプライトメモリ670に保存することも可能である。 本発明の一実施例では、損失の多いピクセルブロック圧縮及び復元と損失の無 いピクセルブロック圧縮及び復元の両方をサポートしている。 損失の多い画像圧縮形式には、損失の多い第1段階と損失の無い第2段階の2 つの段階がある。損失の多い圧縮形式は、赤、緑、青(R,G,B)彩度値から 輝度(Y)及びクロミナンス(U及びV、またCr及びCbとも言う)値への任 意のカラー空間変換で始まる。損失の多い段階では、直接余弦変換(DCT)と 所定の周波数成分を減少させる量子化が行われる。 第2段階は、ハフマンコーディング及び実行長さエンコーディング(RLE) から成る損失の無い圧縮形式である。ハフマンコーディングの代わりに、演算コ ーディングなどの他のコーディング方法も使用できる。 損失の多い復元方法では、デコーディング、圧縮データの逆量子化、逆DCT 、YUVからRGBへの任意のカラー空間変換が行われる。 損失の無い圧縮形式では、RGBからYUVへの損失の無い任意のカラー空間 変換、予測段階、損失の無いエンコーディング段階より構成される。このエンコ ーディング段階は、損失の多い圧縮形式のエントロピーコーディング段階と同じ であってもよい。この損失の無い復元方法は、デコーディング、各カラー成分を 逆予測する段階、YUVからRGBへの任意のカラー空間変換から成り立ってい る。損失の多い圧縮/復元 タイラーの圧縮エンジン414(図9A〜C)における損失の多い圧縮方法の 一つは、次の4または5つの手順で行われる。 1. RGBデータ入力をYUVのような輝度クロミナンス系統へ変換する(任 意)。 2. 各カラー成分をそれぞれ別個に順方向2次元離散余弦変換(DCT)させ る。 3. 2次元DCT係数をおおよその頻度の増加順に並べる。 4. DCT係数を量子化する:均一の除数または頻度依存除数で除算する。 5.求めた係数を固定コード表を有するハフマンエンコーディングによってエン コードする。 損失の無い復元は以下の4または5つの手順で行われる。 1.圧縮データ入力を固定コード表を使用するハフマンデコーディングによって デコードする。 2.圧縮データを逆量子化する:圧縮の量子化手順で使用した均一の乗数または 頻度依存乗数で乗算する。 3.データの線形配列を適切なDCT係数の2次元順序に並べる。 4.各カラー成分に対して逆の2次元DCTをそれぞれ別個に実行する。 5.該当する任意の段階が圧縮処理に含まれる場合、YUVのような輝度クロミ ナンス系統のカラーをRGBカラーに変換する。 カラー空間変換 カラー空間変換は、輝度座標Yとカラー座標U及びVに基づいてRGBカラー を輝度カラー系統に変換する。この輝度クロミナンス系統は標準のカラー空間で はない。カラー座標は輝度の圧縮に必要なビットのほんの一部のみを必要とする ため、この系統を使用すると圧縮の度合いが向上する。損失の無い可逆変換は各 ピクセルに対して別個に実行され、アルファ値を変えることはない。RGBからYUV(圧縮の場合) 正数のRGB値から正数のYUV値への変換では、次のような変換式を使用す る。 Y =(4R + 4G + 4B)/ 3 - 512 U = R - G V =(4B - 2R - 2G)/ 3 YUVからRGB(復元の場合) 正数のYUV値から正数のRGB値への変換では、次のような変換式を使用する 。 R =(((Y + 512) - V) / 2 + U + 1)/ 2 G =(((Y + 512) - V) / 2 - U + 1)/ 2 B =((Y +512) / 2 + V + 1)/ 2 離散余弦変換 画像とテクスチャは、3原色の振幅と不透明度の振幅を含むピクセルである。 ピクセルの位置は画像またはテクスチャマップ中の空間位置に相当する。この形 式の画像やテクスチャは空間領域の中にある。画像やテクスチャの場合、離散余 弦変換(DCT)でDCTの基底係数を乗じる係数を計算する。画像やテクスチ ャにDCTを実行すると、画像やテクスチャを同等に表す係数の集合が求まる。 この形式の画像やテクスチャは頻度領域の中に存在する。 DCTでは、8x8ピクセルブロックのカラーと不透明度の振幅が空間領域と 度数領域との間でマッピングされる。頻度領域では、隣接する係数はあまり互い に関連することなく、また圧縮処理で圧縮効率を落とすことなく各関数をそれぞ れ別個に処理する。順方向DCTでは空間領域から頻度領域へのマッピングが行 われ、逆に逆DCTでは頻度領域から空間領域へのマッピングが行われる。順方 向または逆DCTを適切に行う一つの方法として、1990年サンディエゴ、Ac ademic Press Inc.発行、Rao,K.R.及びP.Yip.著"Discrete Cosine Transfo rm"の図A.1.1及びA.1.2に記載されている方法がある。 2次元DCTにより、各カラー成分を表す頻度領域の係数2次元配列が生成さ れる。ジグザグ状配列で係数が再配列されるので、線形配列の低い位置でDCT 頻度が低くなる傾向がある。この配列において、係数がゼロになる確率は(線形 インデックスによる)線形配列での位置の上昇関数である。この配列により、知 覚量子化及びLODフィルタリングが簡素化され、実行長さエンコーディング( RLE)も大幅に向上する。 量子化 量子化を行うと、係数を正数で除算することでジグザグ配列のDCT係数が有 することのできる互いに異なる値の数が減少する。圧縮タイプパラメータの値に よっても異なるが、量子化は均一的または知覚的量子化となる。どちらの場合も DC頻度の係数が変わるが(インデックス=0)、そのままこの係数を送信する 。 量子化処理は、画像または画像の一部の量子化因子の指定から始まる。この場 合、量子化因子は32x32ピクセルチャンクに対して指定される。量子化イン デックス(Qインデックス)はチャンクで使用するための該当する量子化因子( Q因子)を指定する。次の表はQインデックスとQ因子との関係を表している。 量子化因子 各カラー面はチャンクQインデックスの異なる数値を有している。15のQイ ンデックスは4096のQ因子を選択し、これにより量子化及び逆量子化の際に ゼロが生成される。量子化処理では、Q因子で各係数を除算し、さらに四捨五入 して正数にする。逆量子化処理では、各係数をQ因子で乗算する。量子化及び逆 量子化によってDC頻度成分が変化することはない。ブロック量子化因子 Qインデックス及びQ因子はブロック(8x8ピクセル)ごとに変化させるこ とが可能である。あるブロックのQインデックスは、チャンクのQインデックス をブロック圧縮タイプに埋め込まれている数値でインクリメントすることで求め られる。 ブロックQインデックス = チャンクQ インデックス+(ブロック圧縮タイ プ−3)これはチャンクQ インデックスを1、2、3または4インクリメントす るものである。考えられ得る最大のQインデックス数値は15なので、インクリ メントした結果15を越える数値は15に設定される。 量子化の種類が知覚量子化である場合、Qインデックス及びQ因子は係数ごと に(配列インデックスごとに)変化させることも可能である。 均一量子化の場合は、係数QインデックスはブロックQインデックスに等しい ので、該当するQ因子はブロック中の各係数を乗算(逆量子化)または除算(量 子化)する。 知覚量子化の場合、係数Qインデックスは線形配列のインデックスの数値(0 ...63)によって変化する。以下の表は配列インデックス数値の関数として 求めた係数Qインデックスを示している。 係数Qインデックス 配列インデックス ブロックQインデックス インデックス<12 ブロックQインデックス+1 12≦インデックス<28 ブロックQインデックス+2 28≦インデックス<52 ブロックQインデックス+3 52≦インデックス エントロピーコーディング ハフマン/RLEコーディングは量子化されたDCT係数を以下の方法で処理 する。 1.(DCT係数は互いに関連していないため)ゼロ以外の係数を存在しうる最 低ビットで別個にエンコードする。 2.(ジグザグ配列であるため)特に線形配列の最後にあるゼロの数値で連続す る種類の係数を最適にエンコードする。 ハフマン/RLEコーディング処理を適切に行う方法としては、既知のJPEG 静止画像圧縮標準のAC係数で使用されるハフマン/RLEコーディング処理が ある。 ブロックにランダムアクセスするために、この方法ではDC頻度係数(インデ ックス=0)をエンコードしないが、数値を変えずにこれを送信する。 アルゴリズムは、以下を表す一連の可変長コード語を計算する。 1.次のゼロ以外の係数の前の一続きのゼロの1から15までの長さ。 2.次のゼロ以外の係数の符号と仮数を指定するのに必要な追加ビット数。 コード語の後にゼロ以外の係数の符号と仮数が書き込まれる。ある1つの指定コ ードは、ブロックの残りの係数が全てゼロであることを表す。 エンコーディング 全ブロックをエンコードする場合、ISO International Standard 10918 の付録K 、セクションK.3.2に記載されている代表的なAC係数のハフマン表 を使用する。これには、輝度(Y)AC係数の表K.5とクロミナンス(U及びV )AC係数の表K.6が示されている。 デコーディング 全ブロックをデコードする場合、エンコード処理として同一の一定表を使用す る。従って、データを書き込んだハフマン表を保存したり移動させる必要なはい 。損失の無い圧縮/復元 タイラーの圧縮エンジン414では、次の2つの段階で損失の無い圧縮が行わ れる。 1.入力されたRGBデータからYUVのような輝度クロミナンス系統への変換 (任意)。 2.各カラー成分に対して微分予測計算を行う。固定コード表を使用するハフマ ンエンコーディングにより、求めた係数をエンコードする。 タイラーの復元エンジン404,450及びgスプライトエンジンでは、次のよ うな2または3つの段階で損失の無い復元が行われる。 1.固定コード表を使用するハフマンデコーディングにより、入力される圧縮デ ータをデコードする。 2.各カラー成分に対して逆の微分予測(再構成)計算を行う。 3.圧縮処理にYUVのような輝度クロミナンス系統のカラーをRGBカラーに 変換する任意の作業が含まれる場合、この変換作業を行う。カラー空間変換 カラー空間変換は、RGBカラーを輝度座標Yとカラー座標U及びVに基づく 輝度カラー系統に逆に変換する。これはYUV系統以上に圧縮の度合いを上げる ことのできる他と異なるカラー空間である。ハフマン/RLEエンコーダへの入 力数が少なく、さらなる圧縮が可能となるためである。各ピクセルはそれぞれ別 個にカラー空間変換され、またこの変換によってアルファの値が変化することは ない。RGBからYUV(圧縮の場合) 正数のRGB値から正数のYUV値へ変換する場合、次のような変換式を使用 する。 Y = G U = R - G V = B - GYUV からRGB(復元の場合) 正数のYUV値から正数のRGB値へ変換する場合、次のような変換式を使用 する。 R = Y + U G = Y B = Y + V カラー空間変換の実行中、アルファ情報は変化しない。 カラー空間変換を回避することも可能である。gスプライト制御データ構造で フラグを用いて、カラー変換を回避することをデコンプレッサに知らせる。 カラー空間変換後に予測が行われる。予測は、大部分のソース画像、特に空き スペースと水平及び垂直線を多く含む画像のエントロピーを減少させる損失の少 ない可逆過程である。 圧縮の予測過程及び復元の逆予測過程においては、以下のような値が使用され る。 1.p(x,y)は、コンプレッサに入力され、また復元エンジンから出力され るピクセル値である。 2.d(x,y)は、圧縮エンジンの次段のコーダへ入力され、また復元エンジ ンのコーダの反対側から出力される差分値である。 予測は次のように計算される。 x = 0,y = 0のとき、d(x,y) = p(x,y) x = 0,y > 0のとき、d(x,y) = p(x,y) - p(x,y-1) x > 0 のとき、d(x,y) = p(x,y) - p(x-1,y) 復元エンジンでの逆予測は次のように計算される。 x = 0,y = 0のとき、p(x,y) = d(x,y) x = 0,y > 0のとき、p(x,y) = p(x,y-1) + d(x,y) x > 0 のとき、p(x,y) = p(x-1,y) + d(x,y) ハフマン/RLEコーディング及びデコーディングは、本実施例の損失の多い 圧縮/復元形式で行われるものと同一である。 上記の圧縮方法では、8x8ピクセルの独立ブロックの画像を圧縮する。従っ て上記のチャンキングアーキテクチュアでは、圧縮された各32x32ピクセル チャンクはこのような16個のブロックで構成される。32x32ピクセルチャ ンクの圧縮を容易にするために、偽信号防止エンジン412はピクセルデータを 8x8ピクセルブロックに変換する。8x8ピクセルブロックは、第1のバッフ ァで保存を行いまた第2のバッファが圧縮されるように、8x8ピクセルブロッ クをバッファする。コントロール及びパラメータ 上記に述べたように、タイラー(図9A〜9C)は一度にgスプライトを1つ のチャンクに再現する。このようなチャンクはピクセルブロックで構成されてい る(この場合、16個の8x8ピクセルブロック)。テクスチャマッピング、陰 影付け、その他のマルチパス再現操作の場合、タイラーはgスプライトまたはテ クスチャのブロックをメモリから取り込む。フレームを構成するために、gスプ ライトエンジン(図12A〜B)はgスプライトを取り込み、ピクセルを画面空 間に変換し、合成バッファでピクセルを合成する。 gスプライト、チャンク、ブロックの処理を制御するコントロールパラメータ は複数存在する。gスプライト表示リストは表示画像を構成するgスプライトの リストを保存している。以下に説明するように、gスプライトヘッダブロックは 、gスプライトの幅や高さを含むgスプライトの属性、及び画面空間平行四辺形 で定義されている疑似変換を多数保存している。gスプライトヘッダブロックも 、その関連するチャンクのリストを有している。一つの実施例では、このリスト はポインタやハンドルとしてコントロールブロックをチャンクしている。 チャンクコントロールブロックは、チャンク毎及びブロック毎のパラメータを 有している。チャンク毎のパラメータは、YUVカラー変換バイパスと、デフォ ルトQ因子と、知覚量子化フラグと、ピクセル形式と、ピクセルデータが線形メ モリのメモリ割当ユニット(MAU)で管理されるメモリの中に存在するか否か を表す情報とで構成されている。MAUはチャンクメモリを割り当てるのに使用 される一つの共有メモリである。MAUが管理するメモリにはMAUのリストが 保存されており、各MAUは次のMAUを示すポインタを有している。例えばあ る具体例においては、チャンクコントロールブロックは各gスプライト毎に連続 するMAUの中に保存される。 ブロック毎のパラメータは、圧縮タイプと、ブロックが保存されるMAUの数 と、ブロックのピクセルデータの第1番目のバイトを示すブロックポインタとで 構成される。具体的なブロックの形式は、32ビットピクセル(8ビットはRG B及びアルファ用)をエンコードする8x8x4ピクセル配列である。 上記のコントロールパラメータを使ってgスプライトのピクセルを有する座標 (X,Y)を検索する手順は以下の通りである。 1)32でY及びXを除算し、チャンクの列と行をそれぞれ得る。 2)(チャンク列)*(チャンクの中のスプライトの幅)+チャンク行を計算 して、チャンク数を得る。 3)(チャンク数)*(チャンクヘッダブロックのサイズ)を計算して、チャ ンクコントロールブロックのオフセットを求める。 4)(Y<4:3>*4+X<4:3>)*3を計算して、チャンクコントロ ール内のブロックのオフセットを求める。 5)ブロックポインタを復元したキャッシュロジックに送り、ブロックを受信 する。 6)(Y<2:0>*8)+X<2:0>を計算して、ブロック内のピクセル のオフセットを求める。 ここにおいて、チャンクのオフセットはチャンクを選択するのに使用される。 また、ブロックオフセットはブロックポインタの選択で用いられる。 ブロックポインタはピクセルを含むブロックを選択し、またピクセルのオフセッ トはピクセルを選択する。 ピクセルデータの圧縮ブロックの中にある所定のピクセルに対応するブロック にアクセスするために、タイラー及びgスプライトエンジンのキャッシュコント ロールが以下の操作を行う。 1)チャンクコントロールブロックにあるブロックポインタ値を検索し、MA Uのサイズで除算することにより、MAUアドレスを求める。 2)そのブロックに対応するチャンクコントロールブロックに割り当てられて いるMAUの数を検索する。 3)チャンクコントロールブロックの次のブロックポインタアドレスを検索す る。 4)割り当てられているMAUの数 * MAUサイズ +((ブロックポイ ンタ)変更MAUサイズ)+(次のブロックポインタ)変更(MAUサイズ)の 2の補数 5)ブロックアドレス及び圧縮ブロックの長さを圧縮キャッシュロジックに送 る。 圧縮キャッシュは第1のMAUを読み出し、転送長さが十分でなければMAU の中のポインタを使用して次のMAUの先頭にアクセスする。この処理は転送長 さが十分になるまで続けられる。 MIPマップテクスチャ操作をサポートするために、タイラーは他のインデク シングレベルをサポートしている。MIPマップレベルのインデクシングを行う 一つの方法では、次のような手順を行う。 1)所定のスプライトに対して、以下の計算を行ってMIPチャンクレベルオ フセットの表を作成する。 MIPチャンクオフセット[0]= 0 \\詳細レベル0のオフセット MIPマップの各レベルの場合: 2)LODパラメータを使用してMIPチャンクオフセットを求める。 ル内にある所望のチャンクを求めることもできる。 gスプライト 上記にgスプライトの概念を説明した。簡単にもう一度説明すると、表示ボリ ューム中の1つ以上の対象はgスプライトに割り当てられる。gスプライトは別 個に再現されるので、これによりgスプライトを異なる解像度で再現させ、また 様々な速度で更新させることができる。再現オーバーヘッドを低減させるために 、システムは対象をもう一度再現するのではなく、gスプライトを疑似変換させ ることにより、対象の動きを近似的に作り出すことができる。画面を構成するg スプライトを表示させるために、システムは画面の中で対象を表すgスプライト を合成する。次に、上記及び他の特徴について詳しく説明する。 上記に述べたように、配列をgスプライトに割り当てることによりシステムが 起動する。gスプライトは物理的な出力機器の座標で示される2次元領域である 。以下に述べる例では、gスプライトの形は矩形であるが、他の形を使用するこ とも可能である。gスプライトはgスプライトエンジンで疑似変換させることが できる(すなわち、拡大縮小、回転、反転、及び/または切り取りが可能である −何れの変換も2x2マトリクスを使用した変換と移動である)。2次元変換の 1適用例としては、3次元移動のシミュレーションがある。gスプライトの例と して、同一のgスプライトの画像が様々に変換されて複数回画面に表示させるこ とが可能である。この例はgスプライト画像の矩形下位集合や画像全体に適用で きる。また、カラー成分をベースにして適用させることも可能である。例えば、 アルファをあるgスプライトから得て、カラーを別のgスプライトから得ること もできる。 一般に、画像プロセッサは1つの対象を単一のgスプライトに割り当てるが、 複数の対象を1つのgスプライトに割り当てることも可能である。画像プリプロ セッサは互いに影響を及ぼす対象や他と関連性を持たない対象を単一のgスプラ イトの中で組み合わせる。また、メモリと処理制限に基づいて対象を統合する。 例えば、画像プロセッサは、それぞれ独立しているが重なり合っているgスプラ イトを出力機器のリフレッシュ速度が要する時間内で合成することはできない。 この場合、システムはこのような重なり合っている対象を単一のgスプライトに 統合する。 対象をgスプライトに割り当てた後、画像プロセッサはフレームのgスプライ トを再現する。別個に対象を再現すると、システムは再現オーバーヘッドを減少 させることができる。これは、各フレームの画面で各対象を再現し直す必要がな いためである。この特徴についてさらに詳細に説明する。 対象を画面に表示させるために、画像プロセッサは画面の対象を含むgスプラ イトを合成する。合成とは、gスプライトの層からのカラーデータを組み合わせ る処理のことをいう。半透明性をサポートするために、画像プロセッサは合成し て表示を行う際に変換したgスプライトピクセルのアルファ値も考慮に入れる。 図21A及び21Bは、一実施例においてのgスプライトの処理方法を示すフ ローチャートである。図に示す実施例では、gスプライトの処理は2フレーム期 間にわたって行われる。最初のフレーム期間において、画面の対象はgスプライ トに割り当てられ再現される。また次のフレーム期間において、gスプライトは 変換され、さらに合成される。 まず、画像プリプロセッサは潜在的に可視状態 の対象を確認する。図21Aはこの過程を一連の手順として示している。フレー ム毎に、画像プロセッサは対象(696,698)のリストを移動させ、画面す なわち表示空間において潜在的に見ることのできる対象を確認することで、潜在 的に可視状態の対象を決定する。 次に、画像プリプロセッサはgスプライトの割当、再割当、割当解除を行う。 gスプライトの割当とは、一般的にシステムでgスプライトを表わすためにデー タ構造を作成することをいう。対象が潜在的に可視状態でなく(700)、シス テムがその対象に対してgスプライトを割り当てていない場合は(702)、他 の処理を行う必要はない。潜在的に対象を目で見ることができ(702)、シス テムがその対象に対してすでにgスプライトを割り当てている場合は(702) 、画像プロセッサがその対象に対するgスプライトの割当を解除する(704) 。 画像プリプロセッサは、システムがまだgスプライトを割り当てていない潜在 的に可視状態の対象に対して新しいgスプライトデータ構造を割り当てる(70 6,708)。この場合、画像プリプロセッサはgスプライトデータ構造を作成 し、その対象に対応す画像データを待ち行列に入れて再現を行う(710)。再 現を実行するために「待ち行列に入れる」というのは、3次元表示させる対象の リストを追加することを表している(710)。また画像プロセッサはgスプラ イトの疑似変換も計算する(714)。本実施例では、疑似変換には2つの目的 がある。第1に、疑似変換を行って画面上での動きに対応する対象の動きを近似 的に作り出すことができる。第2に、疑似変換により、gスプライトをgスプラ イト空間から出力機器座標に変換することができる。gスプライト空間とは、対 象をチャンクに下位分割させるのに使用する座標系を意味している。対象をチャ ンクに下位分割する際に使用する座標系は、2次元空間に変換された対象を効率 よくチャンク領域で扱うことができるように最適化することが可能である。 対象を潜在的に目で見ることができ(700)、システムがその対象に対して すでにgスプライトを割り当てている場合は(706)、図に示す画像プリプロ セッサは疑似変換式の計算を行う(714)。以下に詳細に説明するが、疑似変 換式を利用して対象の動きを擬似的に作り出すことが可能である。画像プロセッ サはこの近似的に作り出した動きの精度を評価し、ひずみが多い場合は(716 )、画像プリプロセッサがその対象に対してgスプライトの再割当を行う(70 8)。この場合、次に画像プリプロセッサはgスプライトに再現する配列を待ち 行列に入れて(すなわち3次元リストに入れる)再現を行い(710)、gスプ ライトを表示リストに追加する(718)。 しかし、疑似変換式を用いて対象の動きを正確に擬似的に作り出すことができ る場合は(716のひずみが所定の許容範囲内にある)、対象を再現し直す必要 はなく、画像プリプロセッサはその対象に対応するgスプライトを表示リストに 入れる(718)。 次のフレーム期間に、画像プロセッサは表示画像を生成する。点線で分けられ ている手順(718)及び(720)はフレーム期間を示している。画像プロセ ッサは表示リストを移動させて、リストのgスプライトを物理的出力機器の座標 に変換する(720)。一般に、出力座標への変換には、曲げや回転、拡大縮小 を施したgスプライトからのピクセルデータを出力機器のピクセル位置にスキャ ンする過程が含まれている。次に画像プロセッサはこの変換または「スキャン」 したgスプライトデータを合成する(722)。最後に、画像プロセッサはピク セルデータをアナログ値に変換し、画像を表示する。 図5A及び5Bはチャンキングアーキテクチャで配列を再現する過程を示すフ ローチャートである。重要なことであるが、上記に述べたgスプライトの概念は チャンキングアーキテクチャにのみに限定されるものではない。図5A及びそれ に関する上記の説明では、画像プリプロセッサが画面の配列からgスプライト構 造を確定する方法について詳しく述べている。手順(240〜244)及びそれ に関する説明を参照すること。特に、対象は単一のgスプライト、または必要に 応じて幾つかのgスプライトにに統合及び再現させることが可能である。例えば 、タイラー、gスプライトエンジン、合成バッファが必要なフレームリフレッシ ュ速度でフレームのgスプライトに現在の対象の割当を処理することができない 場合、データをDSPまたはホストプロセッサに再び送信し、対象を統合してg スプライトに複数の対象を再現することが可能である。 図6は、一実施例におけるgスプライトの処理に関して更なる知見を与えるも のである。図6に示されると共に上述した如く、イメージプロセッサは、gスプ ライト(280)の深度順番も決定する。 イメージプロセッサがgスプライトを割当てるとき、それはgスプライトを表 すデータ構造を生成する。このgスプライトデータ構造は、gスプライトの種々 の属性を記憶すると共に関連するイメージデータがメモリの何処に在るかを追跡 し続ける為のヘッダ、を含んでいる。このデータ構造は、gスプライトのサイズ を記憶し、gスプライトのエッジに対するエッジ式を表し、2-D 変換データおよ び他のイメージ属性を保持する為の種々のフィールドを含んでいる。 ビュースペースに対するgスプライトの配置形態を決定した後、イメージプロ セッサはどのgスプライトをレンダリングするかを決定する。シーンにおける全 ての対象物をレンダリングする代わりに、システムは他のフレームからレンダリ ングされたgスプライトを再使用することができる。また、フレーム毎の対象物 の位置の変化は、レンダリングされたgスプライトのアファイン変換(affine tr ansformation)を行うことにより近似され得る。図6に示される如く、イメージ プロセッサはgスプライトをループ(282-286)して、gスプライト変換を計算す る(284)。尚、以下においては、gスプライトの更新およびgスプライトのワー プ(warping)に関して詳述する。 イメージプロセッサシステムは、レンダリングされて対象物を表す2-D gスプ ライトに関してアファイン変換を行うことにより3-D 対象物の動きを近似するこ とができる。尚、本明細書においては、レンダリングされたイメージに関するア ファイン変換を“ワープ(warping)”と称すると共に、この処理の結果として得 られるgスプライトを“ワープされたgスプライト(warped gsprite)”と称する 。ひとつの実施形態においては、対象物の3-D レンダリングをシミュレートする 処理は、1)特性点の幾何的運動を近似するアファイン変換行列を算出する段階と 、2)段階1 における近似の精度を測定する段階と、3)もし精度が十分であれば、 時間t0におけるgスプライトのアファイン変換を行うことにより後の時点t にお けるそれの位置を近似する段階と、を含んでいる。 図22は、3-D 運動をシミュレートするアファイン変換を行う処理を示すフロ ー図である。詳細に述べると、図22は最初のステップ744 で“特性点選択”を 示している。以下の検討内容から明らかとなる如く、イメージ処理の間に特性点 は選択されず、幾何モデルのオーサー(author)により指定されるのが通常である 。 対象物の動きをシミュレートするために使用されたアファイン変換は、特性点 を用いて計算される。特性点は、対象物の位置もしくは時的に変化する他の重要 なイメージ特性を表すべく選択された点である。此処では、3-D モデルの世界座 標系とスクリーン空間に変換されたモデルのスクリーン座標系とにおける特性点 に言及することから、これらの点を記述すべく使用する語句を明確にすることは 有用であろう。此処では、スクリーン空間における特性点を“視認特性点(viewi ng characteristic points)”と称し、且つ、世界座標系における特性点を“モ デル特性点(modeling characteristic points)”と称する。 対象物点の全体を考慮するのではなく特性点の内で代表的なものを選択するこ とにより、アファイン変換の計算は相当に簡略化される。対象物の3-D 運動を正 確に近似する為に必要とされる特性点の個数は、モデルに依存して変化する。も し対象物が剛体であれば、対象物全体を囲繞する境界枠から特性点を選択するこ とができる。また、もし境界枠を定義する点を同一の変換法により変換すれば、 境界枠点は対象物ジオメトリの変換に従う。 また、より複雑な動きを行う対象物に対しては、正確な近似を行う上では更に 多くの特性点が必要とされよう。例えば、対象物は、個々の位置を近似する境界 枠を夫々有する多数の剛体に部分分割することが可能である。もし対象物が、独 立した移動変換(moving transformatoins)を有する階層構造の剛体から成ってい れば、移動するサブ対象物の境界枠を結合したものから特性点を導くことができ る。 別の代替例としては、モデルのオーサーがモデルの特性点を指定することも可 能である。この様にすれば、対象物の3-D 移動を近似すべく使用された特性点を オーサーが詳細に指定することが可能となる。以下に更に記述する様に、アファ イン変換の精度は多くの距離(metrics)のいずれかに依って確認することが出来 る。オーサーが特性点を指定し得る様にすることで、アファイン変換の精度を評 価すべく使用されるひとつのもしくは複数の距離に対して適切な点をオーサーが 指定し得る様になる。 特性点の組が与えられたとき、アファイン変換を計算することにより時間t0か ら時間t へのgスプライトの位置変化を近似することができる。この段階は図2 2のステップ(746)に示されている。 アファイン変換は、時間t0および時間t における視認特性点から計算される。 特性点が選択された方法に依存し乍ら、モデル特性点は対象物上もしくはその境 界枠上の点を表す。これらのモデル特性点の位置は、モデル変換(modeling tran sform)に係る時間によって変化する。また、視認特性点を見出す為には、モデル 特性点に視認変換が乗ぜられる。更に、以下の論議は、2-D gスプライトを変換 する上で用いられるアファイン変換行列を計算する処理を明確化する上で有用で あろう。 アファイン変換行列のフォーマットは次の如きものである: 近似の精度を確認するためのひとつの距離は、位置距離(position metric)で ある。位置距離とは、アファイン変換行列を乗じた、時間t における特性点と時 間t0における特性点の位置との間の差を指している。位置距離の為の概略式は次 の如きものである: 位置距離の場合、スクリーン空間内の特性点の位置が最も適切である、と言う のも、スクリーン上の位置の差は、変換されたgスプライトが対応3-D モデルの 動きを如何に正確に近似しているかを表すからである。但し、他の距離に対して は、近似の精度をモデル特性点に関して計算することも可能である。位置距離の 例として、スクリーン空間の点を直接的に考察する。ここで、V(t)を視認変換と するとともにT(t)をモデル変換とし、 をスクリーン空間の点とする。アファイン変換行列を計算するには、標準的な最 小2乗法による解法を使用することが可能である。線形システム を解けば、標準的な最小2乗法による解法は位置距離を最小化する解を与える。 3個の特性点が在る場合は、アファイン変換行列を直接的に解くことが可能で ある。例えば、境界枠の軸心の3個の点を使用するのであれば、時間に依存する 以下のアファイン変換行列に対して解は閉じた形の表現となる: である。 一般的な場合、アファイン変換行列を解く上では正規方程式(normal equation s)もしくは特異値分解(singular value decomposition)などの最小2乗法を用い ることが可能である。一般化した問題は以下の様になる: アファイン変換行列を解く為には、Nx 3行列の擬逆行列(pseudoinverse)を 計算せねばならない。また、任意の個数の特性点に対しては、最小2乗法を用い て擬逆行列を解くことになる。ひとつの実施例においては、正規方程式法を用い る。 時間t における特性点の転置行列とすれば、 である。 正規方程式法で解くためには、式の両辺に適合行列(fitting matrix)の転置行 列を乗じ、次に、得られた正方行列を反転する。正規方程式の典型的な欠点は、 得られた行列が特異になりもしくは丸め誤差により不安定になり易い、というこ とである。もし特性点が縮退すれば、行列は特異となる。行列の特定の形態にお いては、各項を正規化することにより丸め誤差を調節することが可能である。 得られた行列には丁度5個の項がある。3x3 行列は次に反転されて、アファイン 変換が得られる。代わりに、x 座標の項の和とy 座標の項の和は特性点の図心に 対応することから、座標形を変更して図心を0,0 に平行移動することにより、こ れらの項は消去することができる。得られる行列は2x2 であり、容易に反転され る。 アファイン変換行列を計算した後、近似の精度をひとつ以上の距離を用いてチ ェックする。図22の判定ステップ(748)は、ひとつ以上の距離をチェックする ステップを示すと共に、ロジックが距離に基づいて如何にして分岐するかを概略 的に示している。上述の如く、位置距離は、アファイン変換の精度を如何にチェ ックするかのひとつの例である。アファイン変換が位置距離を満足するか否かを 測定すべく、計算されたアファイン変換を用いて変換された時間t0における視認 特性点を、時間t における視認特性点と比較する。 別の試みは、3-D モデルの内部回転を距離として使用することである。この場 合、計算されたアファイン変換を用いて変換された時間t0におけるモデル特性点 は、時間t におけるモデル特性点と比較される。 更に別のこころみは、明暗距離(lighting metric)を使用することである。内 部回転に対する距離と同様に、モデル特性点を用いて近似の精度をチェックする のである。 上述の距離に加え、他の種々の代替物が在る。これらの距離を計算する為に、 特性点に沿って適切な特性データが保持され得る。また、所望の精度に依り、ひ とつの距離もしくは各種の距離を組合せて使用することが可能である。 もし、変換されたgスプライトを表す特性点が十分に正確であれば、変換され たgスプライトを、再レンダリングされたgスプライトの代わりに使用すること が出来る。2-D 変換を計算する為に、時間t0に対するgスプライトにアファイン 変換行列を乗ずる(750)。gスプライトのレンダリングと対照的に、この計算で は処理時間が極めて短い。従って、2-D 変換による3-D 移動のシミュレートは、 イメージをレンダリングするに必要な処理量を相当に減少させるものである。 近似の精度に基づき、システムはイメージデータのフレームに対し、そのレン ダリング能力の範囲内に納めるに必要な程度までレンダリングの総量を減少する ことができる。この概念を概略的に示すべく、図22は、2-D 変換が十分に正確 でなければgスプライトが再レンダリングされることを示している。しかし乍ら 、以下に更に詳述する如く、距離に基づいてgスプライトを受け入れもしくは排 除することは必ずしも望ましいことではない。正確に述べれば、或るシーンにお ける多くのgスプライトに対する近似が如何に正確かを決定してから、可能な限 り多くのgスプライトを再レンダリングすることが有用であることが多いからで あ る。 gスプライトの色ワープ(color warping): 更なる最適化として、レンダリングシステムはフレーム毎の明暗変化をサンプ リングすると共にgスプライトのカラー値を改変してこれらの変化を近似するこ とが出来る。この試みは、1)フレーム間の明暗変化をサンプリングし、2)gスプ ライトのカラー値を改変して明暗変化を近似する(即ち、色ワープを計算する) 方法を決定し、かつ、3)もし十分に正確であればgスプライトに関して色ワープ を行って明暗変化を近似する、という基本的な3つの段階を含んでいる。もし、 明暗式の評価の後に、明暗が所定量以上変化したことをプリプロセッサが決定し たのであれば、それはタイラ(tiler)に対して対象物の再レンダリングを指示す る。 第1段階において、レンダリングシステムはgスプライトと組合わされた対象 物に対する明暗変化をサンプリングする。それは、対象物がgスプライトにレン ダリングされた最初のフレームと、レンダリングシステムがgスプライトの色ワ ープを行って色調変化を近似せんとする次フレームとの間の明暗変化をサンプリ ングする。ここで、明暗変化をサンプリングするためのひとつの手法は、最初の フレームと次フレームとに対する法線による特性点における明暗式をサンプリン グし、これらのフレームの各々におけるサンプリング結果を比較することである 。好適には、特性点を対象物上に分布させ、gスプライトに跨がる明暗変化を正 確にサンプリングせねばならない。特性点の詳細な個数および位置は変更可能で あり、一般的には、モデル特有のものとなる。 明暗式の一例は: であり、 Iaλは周囲の明るさ、 kaは周囲の反射係数、 Odλは対象物の拡散色、 fattは、光エネルギが光源から離間するにつれて如何に減少するかを記述する 、光源の減衰率、 Ipλは点光源からの光、 kdは、物質毎に変化する、0と1の間の定数である拡散反射係数、 Osλは、対象物の反射色、 ksは、0乃至1に亙る、物質の鏡面反射係数、 (N・ L)は、表面法線N と光源L の方向との間の内積、 (R・ V)は、反射方向R と視点V との間の内積、 上添字n は、物質の鏡面反射「べき指数」であり、通常は1乃至数百まで変化 し、 λは、この下添字を有する項は波長に依存することを示している。明暗式を簡 略化する為のひとつの仮定は、対象物に対する光の相互作用をRGB カラーモデル が十分に表現し得る、ということである。この仮定に基づき、明暗モデルをR、G およびB の色要素の各々に適用することが可能となる。 上記の明暗式は、対象物の表面上の点における明暗を計算する方法のひとつを 例示しているに過ぎない。明暗式は、例えば、光減衰率もしくは鏡面反射を無視 することにより、簡略化され得る。3-D グラフィックレンダリングの分野におい ては、グラフィック対象物の表面上の明暗を表現すべく使用される他の習用の明 暗式が種々存在する。従って、グラフィック対象物と結合された特性点における 明暗をサンプリングする上では、多数の異なる明暗式の内の任意のものを使用し 得る。一般的に、プリプロセッサは明暗式を計算し、(おそらくはRGB 成分の各 々に対する)結果的な明暗値I の光度がフレーム毎に如何に変化するかを決定す る。 フレーム毎の明暗の変化を評価する為に、イメージプリプロセッサは最初のフ レームおよび次フレームにおける特性点に対する明暗式を計算するが、これは、 特性点における直交面、各フレームに対する光源方向、そしておそらくは、特定 の明暗式に伴う他のデータ、を用いて計算される。 システムは、gスプライトにより表される対象物上の特性点もしくは対象物の 有界体積上の特性点における明暗変化をサンプリングすることが出来る。明暗の 変化をサンプリングする為のひとつの試みは、対象物の有界体積の表面上の明暗 変化をサンプリングすることである。例えば、システムは、対象物もしくは対象 物の一部の境界球体上の法線における明暗変化をサンプリングすることが可能で ある。境界球体はプリプロセッサに対し、対象物の“空間”内で移動しつつある 局部的光源により生じ得る重要な変動の追跡を許容する。もし、イメージプリプ ロセッサが、対象物の図心に位置せしめられたベクトルセットを単純に使用した とすれば、局部的な光源の動きは大きな局部的照度変化を引起こさないが、全体 として対象物の明暗に大きな影響を与えることもある。これらの状況においては 、境界球体の表面における明暗変化のサンプリングを行えば対象物に対する明暗 変化を一層正確に捕捉することも可能であるが、それは対象物の表面上の特性点 において選択的に見た場合には達成され得ないものである。 更なる代替例として、対象物の特性点もしくは境界球体の表面における法線を 組合せて使用し、明暗変化をサンプリングすることも可能である。この試みによ れば明暗変化を一層効率的に追跡することが可能である、と言うのも、それは対 象物上の特性点と、対象物に対する有界体積の表面とにおける明暗変化を追跡す るからである。 システムは明暗変化に基づき、これらの明暗変化を近似すべくgスプライトの カラー値を改変する方法を決定する。gスプライトに関して行われる幾何的変換 と同様に、システムはgスプライトのカラー値をワープして明暗変化を近似する 方法を計算する。カラーワープを計算するひとつの方法は、上述の最小2乗適合 法を使用することである。この段階の結果は、定数、線形もしくは高次のワープ となり、これは、gスプライトに跨がるピクセルにおけるカラー値を改変(例え ば縮尺率を乗じ、且つ/または、オフセットを加算)すべく用いられる。 カラーワープは、gスプライトに跨がって適用される乗数もしくは乗数配列を 含んでいる。最も単純な場合、カラーワープは単純に、gスプライト内の全ての ピクセルに適用される一定縮尺率たり得る。より正確なアプローチは、線形もし くは高次のワープを使用して明暗変化を近似することである。好適には、乗数は ベクトルによる値とし、カラー要素を独立して換算し得るようにする。色付き光 源からの変化を正確に表現する為に、各カラー要素は独立して換算せねばならな い。 乗数に加え、gスプライト内のカラー値に加算されたオフセット値もまた、特 性点における明暗変化に基づいて計算され得る。 乗数およびオフセット値を計算するひとつの手法は、各特性点における明暗式 の変化を表す乗数およびオフセットに関し、特性点が対象物の表面、有界体積の 表面、または、両者に位置しているかを解くことである。プリプロセッサは乗数 、オフセット、または両者を計算し得るが、これは、サンプリング段階の間に観 察された各特性点の明暗式の同一なもしくは実質的に同一な変化を引起こす乗数 もしくはオフセット、または乗数とオフセットの組合せを選択することにより計 算される。これらの乗数および/またはオフセットが一旦計算されれば、gスプ ライト内のカラー値に適用される乗数およびオフセットを計算する方法が多数存 在する。ひとつの方法は、乗数を平均することにより、gスプライトに対する単 一の縮尺率を導くことである。別の方法は、オフセットを平均することにより、 gスプライトに対する単一のオフセットを導くことである。更に別の方法は、乗 数およびオフセットに関して独立的に最小2乗適合法を行い、乗数およびオフセ ットが対象物の表面上の位置により如何に変化するかを表す式を導くことである 。この式は、gスプライト内のピクセル位置に対して独立した乗数および/また はオフセットを補間計算するハードウェアにて実現され得る。例えばgスプライ ト・エンジンは、各ピクセル位置に対する乗数および/またはオフセットを補間 する補間器を備えたラスタライザ(rasterizer)を含み得るが、この補間は、カラ ー値に乗数を乗じ、または、カラー値もしくは換算カラー値(即ち、ピクセル位 置に対して計算された対応乗数により換算された値)にオフセットを加算する前 に行われる。 システムは幾何ワープの精度を評価するのと同時に、カラーワープの精度も評 価するが、これは、カラーワープにより計算されたカラー値を、通常のレンダリ ング処理を用いて現在のフレームに対して計算された対応カラー値と比較するこ とで行われる。もし、これらのカラー値が所定の許容差と異なるのであれば、g スプライトを再レンダリングせねばならない。 レンダリングの総量を減少することに加え、gスプライトのワープは移送遅延 (transport delay)をも減少し得る。この点、遠近視点(viewpoint perspective) が急激に変化するアプリケーションにおいては、急激に変化しつつある視認図は 移送遅延の故に表示することが困難である。尚、移送遅延とは、視点の変化を引 起こす受信入力と、その新たな視点に対する適切なイメージの最終的な表示との 間に生ずる遅延のことを指している。図23は如何にして移送遅延が減少され得 るかの例を示している。水平軸心に沿った箇所は、フレーム遅延に対応する時的 な経過を表している。 この例においては、サンプリング入力とディスプレイ装置への表示出力との間 には3フレームの遅延がある。最初に、入力は第1のフレーム774 でサンプリン グされる。次に、システムはアファイン変換を計算すると共にgスプライト内に 対象物をレンダリングする(776)。最後に、フレームに対してレンダリングされ たイメージデータは合成されてディスプレイ装置778 にスキャン出力される。こ れらの段階の各々を実行するに必要とされる時間は、必ずしも、フレーム周期に より測定された全体的なフレーム遅延ではないが、概念を示す為にフレーム段階 の増加を用いている。図示される様に、入力と、対応イメージデータ表示との間 には3フレームの遅延がある。 移送遅延を減少する為に、次のイメージからの視点データは現在のイメージの レンダリング段階776 で適用され得る。これは、次のイメージに対する入力段階 782 から、現在のイメージのgスプライト変換およびレンダリングを行う段階77 6 への矢印により示されている。図23に示される如く、イメージデータの次の フレームに対する処理段階(782、784、780)は段階(776、778)の近傍に示されて いる。図示された様に、処理は情報ルート的に生ずる。現在のフレーム対するg スプライト変換が計算されると共にレンダリングが行われる一方、次フレームに 対する入力がサンプリングされる。而して、レンダリングされたgスプライトは 、次のイメージの視点に対する位置をシミュレートすべくワープされる。この試 みによればユーザに関する移送遅延効果は減少される、と言うのも、それにより システムは遠近視点における急激な変化を一層迅速に調節し得る様になるからで ある。 この関連で移送遅延を減少するのに加え、次のイメージデータを使用すること により他の関連でも移送遅延を減少することができる。 上記で概略的に述べた如く、gスプライトを独立的にレンダリングすることに は多くの利点がある。各gスプライトは種々の更新速度を有していることから、 特定のフレーム内で更新されるgスプライトの個数も変化する。幾つかのgスプ ライトはフレーム毎に更新が必要である一方、他のgスプライトの更新頻度は更 に少ないこともある。もし特定のフレーム内で多数のgスプライトが更新される べきであれば、レンダリング総量は劇的に増大してシステムが過負荷になり得る 。この問題に対処すべく、システムは優先キューを作り、多数のフレームへレン ダリングを配分してgスプライトを一層効率的に処理することを可能としている 。 この優先キューを作らなければ、特定フレーム内でレンダリングが予定される gスプライトの数は変化してしまう。gスプライトに対する更新速度は、それが シーンのフォアグラウンドであるかバックグラウンドであるかに依って変化し得 る。上述のアファインワープに対するサポートにより、アファイン変換による位 置における変化をシミュレートすることでシステムはgスプライトの再レンダリ ングを回避することができる。 優先キューを履行する為にシステムは、レンダリングされたgスプライトの再 使用により生ずる歪み量に基づいてレンダリングの優先付けを行う。この歪みは 、ひとつ以上のエラー閾値に基づいて計算される。また、gスプライトの歪みを 定量化する為にシステムは、gスプライトがそのエラー閾値に如何に近いかまた は如何に遠いかを測定する。エラー閾値は各gスプライト毎に変化すると共に、 ひとつ以上の要因に基づいている。レンダリングを行う前にgスプライトの相対 的品質を示すべく、gスプライトの歪み順番リストが保持される。その場合、シ ステム資源を考慮して、可及的に多数のgスプライトがフレーム内で再レンダリ ングされる。gスプライトの再レンダリングの順番は、最も歪みの多いgスプラ イトから始め、歪みの少ないgスプライトへと行われる。この様にして処理を行 えばgスプライトのレンダリングによるフレーム過負荷の可能性が排除されるが 、これは、gスプライトの精度に対してシーンの複雑さ及び動きをバランスさせ る為の効率的なメカニズムを提供する代わりに行われる。 上述した特徴に加え、gスプライトのレンダリングによりシステムはシーン内 の対象物の解像度を変更することができる。これにより、システムはシーンにお けるgスプライトの重要性に基づいてそれらに処理およびメモリ資源を割当てる 。 gスプライトに対する負担は、それが占有するメモリと、それをレンダリング する為に必要な処理とに関して測定することが可能である。もし、gスプライト イメージが一定の解像度すなわちスクリーン解像度で記憶かつレンダリングされ るのであれば、gスプライトにより蒙る負担はそのスクリーンの大きさにより決 定される。 処理およびメモリ資源の割当ては、スクリーン上における対象物の単なる占有 サイズではなく、その種類および位置に基づくことが重要である。シーンのフォ アグラウンドにおいて有効対象物は、バックグラウンドにおけるものよりもシー ンに対して重要であるのが通常である。しかし乍ら、もしgスプライトがサイズ に基づいて資源を割当てられたなら、バックグラウンドのスクリーンは一層大き いことから処理およびメモリ負担は一層大きくなる。 システムは、スクリーンの解像度をgスプライトの解像度から切り離し、gス プライトの負担をその最終的なスクリーン範囲から独立させて設定することも可 能である。また、システムはこれを達成する上で、gスプライトの解像度を適切 に選択し、次に、gスプライトを適切なサイズに換算する。 倍率もしくは縮尺率は、イメージのスクリーン上での大きさおよびgスプライ トの解像度から導くことができる。典型的には、グラフィックスアプリケーショ ンがスクリーンの大きさを与える。また、グラフィックスアプリケーションが解 像度を指定する。代わりに、利用し得る資源とシーン内のgスプライトの相対的 重要度とに基づいてイメージプリプロセッサがgスプライト解像度を決定するこ とも可能である。 作動時にイメージプロセッサは出力装置座標内の領域にgスプライトをレンダ リングするが、この領域は、視認空間内でgスプライトが実際に占有するものよ りも小さい。gスプライトがレンダリングされる領域のサイズは、解像度および スクリーンの大きさから導かれる。レンダリングされたgスプライトは次に、ス クリーンの大きさにより定義される実際のサイズに換算される。gスプライトは 小さな領域を有することから、レンダリングの為に消費するメモリおよび資源は 一層少ない。更に、図示された実施例においては、解像度が変化するgスプライ トもまた共通のグラフィック情報経路内で処理される。 この試みをサポートするひとつの方法は、gスプライトデータ構造内に倍率も しくは縮尺率を記憶することである。次にこの縮尺率は、gスプライトが他のg スプライトと合成されて表示イメージを生成する前の換算に使用され得る。イメ ージプリプロセッサはgスプライトの換算を行い得る。より詳細には、上述の内 容を実行する上では、DSP がgスプライトを換算する。 gスプライトが低い解像度に換算され得る様に、それはひとつのサイズにレン ダリングされてから小さな表示領域に換算され得る。この技術は、シーン内でサ イズが小さくなっていく対象物に適用され得る。フレーム毎に対象物をレンダリ ングする代わり、システムは対象物を表すgスプライトを換算することができる 。この試みは、gスプライトデータ構造内に縮尺率も記憶することで行われる。 上記では、イメージ処理システムによるgスプライト処理を記述すると共に、 gスプライト変換が如何にして計算されてイメージ処理システム内で適用される のかを記述した。以下には、ピクセルデータを変換、合成および表示する方法を 詳述する。 この実施例においては、DSP 176 はgスプライトデータ構造を設定すると共に 、それらをイメージ処理ボード174 上の共有メモリ内に記憶する。DSP 176 は、 タイラを通してメモリマップインタフェースによりgスプライト・エンジン・レ ジスタに読み書きを行う。gスプライトエンジン内のレジスタは、現在の表示リ ストへのポインタを含んでいる。また、gスプライトエンジン436 を更に詳細に 読むことにより、図12に関する処が提供される。 gスプライトエンジン204 への主要入力はgスプライト表示リストである。図 24は、表示リスト800 の一例を示している。これを実現する上で、表示リスト 800 は、その各々がバンドマスク802 を伴うSCB(スプライト制御ブロック)ハン ドル804 と称されるgスプライト制御ブロックアドレスの配列を備えている。リ スト800 内の最初のワードは、リスト内のgスプライトの個数を含んでいる。バ ンドマスク内でビットがセットされていれば、このバンド内にgスプライトが存 在していることが示される。此処では特定の実施例が与えられているが、表示リ ストは別の手法に依っても実現され得る。例えば、リストは各バンドに対する別 個のリストから成り、各バンドリストが当該バンドに影響するgスプライトを列 挙することも可能である。上述の如く、表示リスト内のgスプライトは深度の順 番で記憶され、この場合は前から後への順序で記憶される。 gスプライト制御ブロック(SCB)806は、gスプライトをスキャンして装置座標 を出力する情報を含んでいる。矩形のgスプライトはアファイン変換のもとでは スクリーン空間内に平行四辺形としてマッピングされる。 gスプライトのエッジ式は次の形態を有している:A0x + B0y + C0=F0; A1x + B1y + C1=F1; -A0x + B0y + C2=F2; -A1x - B1y + C3=F3。これらの式の各右辺 は、夫々の辺部でゼロである。DSP 176 は、gスプライトに対するアファイン変 換から係数の値を決定する。アファイン変換の後、gスプライトの形状は平行四 辺形であることから、係数A およびB の2組のみの記憶が必要とされる。C 項は 全く必要とされない、と言うのも、gスプライトエンジンが必要とするのは始点 におけるF の値と、スクリーン空間X およびY 内でのステップによりF の値が如 何に変化するのかの記述であり、それは係数A およびB により与えられるからで ある。出力装置座標への記憶gスプライトデータのマッピングをサポートする為 に係数の符号が設定されるが、それは、平行四辺形内の点の座標がエッジ式で評 価されたときに結果が正の数になる如く行われる。 詳細には、SCB が含むのは:A0、B0;A1 、B1; F0、F1、F2、F3; 最左点 xs,y s;最右点 xf,yf; Gスプライトの頂部への最左点の勾配;底部への最左点の勾配 ;および、平行四辺形の幅および高さである。 スキャンの開始点は平行四辺形の最左点であり、スキャンはスクリーン空間内 で左から右へ向かって列毎に移動する。gスプライトを各32スキャンライン・ス クリーンバンドにクリップする為に、SCB は始点(最左点)から頂部および底部 への勾配dx/dy を含むことから、特定のスクリーンバンド上の最左点が決定され 得る。 平行四辺形のエッジ式はDSP 176 上で正規化されるが、これは、平行四辺形の ひとつの辺にて「F=0 」となり、対向辺にては「F=gスプライトの幅もしくは高 さ」となる如く行われる。従って、平行四辺形の辺0 および1 に対するF の値は 、 特定のスクリーン位置X、Y における特定のgスプライトイメージサンプルS 、T を直接的に調べるために使用することが可能である。スクリーンX 、Y からg スプライトS 、T へのマッピングがgスプライトイメージサンプル上に直接的に 落とされることは稀であることから、gスプライトエンジンは直近の4個の(も しくは16個の)gスプライトイメージサンプルを補間して出力サンプルを求め る。 SCB 806 は、元のgスプライトのサイズ(水平および垂直ストライド)と、ス キャンすべきサブgスプライトのサイズおよび位置(幅、高さ、出発S およびT )とを含む。それはまた、イメージ塊が如何に圧縮されると共にこのイメージ塊 内でどのピクセルフォーマットが使用されたのかを記述するフラグも含み得る。 切片技術においては、gスプライト(gsprite)は、32x32ピクセ ルチャンクに分けられる。再生のためにグスパイトをチャンクにする必要はない 。しかしながら、切片技術は、上述したように、多くの利点を有している。切片 技術を支援するために、SCBは、圧縮チャンクの第1語用の共有記憶領域にお けるアドレスを表示する圧縮チャンクの二次元配列ポインタ(チャンクハンドル )を有している。チャンクメモリーは、512ビットブロックで処理される。各 ポインタすなわちクハンドルは、18ビットであり、全部で16MBのアドレス 指定可能メモリとなるものである。各チャンクを圧縮するのに必要なメモリー量 は可変であるため、各512ビットブロックは、次のブロックのための18ビッ トポインタを含んでいる。もはや不要となったブロックは、解放されたブロック のリンクされたリストに追記されるので、これらブロックは、別のチャンクで使 用可能である。 gスプライトに割り当てられた対象物をチャンクに分割すると、グスパイトデ ータ構造は更新され、gスプライトの画像データを含むチャンクに対する参照が 含まれるようになる。 gスプライトデータは、別のgスプライトで例示できる。第20図で示した例 では、一つのgスプライトが別のgスプライトからの画像データを例示している 。ここで、SCBの第1チャンクハンドル(808)が別のgスプライトのSC B810を指している。別つの方法では、チャンクハンドルは、チャンクが記憶 さ れている記憶領域中の位置を指す。第25図は、2個のチャンクgスプライトに よる6個のチャンクがディスプレイの水平バンドにマップする態様の事例である 。第25図は、画像データをgスプライトスペースから物理的出力装置スペース まで走査に使用される出発点836と終了点834を示している。gスプライト 画像データがどのようにして出力装置スペースにマップされるかを以下に詳細に 説明する。 フレーム中のgスプライトの関連変化を再生および計算した後、画像プロセッ サは、表示を行う。第21図で示すように、画像プロセッサは、gスプライトを 物理的出力座標に変換してgスプライトを合成する。ピクセルデータを合成後、 画像プロセッサは、これをディスプレイに転送する。 本実施例では、gスプライトエンジンは、表示リスト中で読み、gスプライト画 像を出力装置座標にマップする。gスプライトエンジンがgスプライトデータを 変換し、ついで表示のためにピクセルデータを合成バッファに送る。合成バッフ ァは、好ましくは、複式としてピクセルデータを別のバッファで合成している間 に合成ピクセルデータをブッファから変換出来るようにする。 さらに具体的には、gスプライトエンジンは、共有記憶領域からのgスプライ トAYUVフォーマット画像データを読み、圧縮解除変換して、ついでこれをフ ィルタしてARGBフォーマットに変換する。さらにこのデータは、ビデオレー ト(例えば、75Hz)で合成バッファに送られる。合成バッファは、圧縮解除 されたARGBピクセルを1334x32フレームバッファに合成する。 第26図は、gスプライトエンジンが画像データを処理する態様を示している 。フレーム同期信号を858受信時、gスプライトエンジンは、各バンドを通し てフレームをループ処理し、バンド(862)中で各gスプライトを走査する。 バンドにおいてgスプライトを走査後に次のバンド(860)に移動する。gス プライトエンジンは、ビュウスペースの各バンドでの走査を繰り返す。 リアルタイムアプリケーションでは、gスプライトエンジンは、フレームレー トにより指定された時間内に走査を完了しなければならないので、gスプライト エンジンは、バンドごとにすべてのgスプライトを処理できなくても良い。 このような場合を回避する手だてとして、gスプライトエンジンは、自由処理 時間に各バンドについての各フレームをホストに戻す。この情報を利用して画像 プロセッサは、必要に応じて対象物を集合させていずれの個々のバンドがオーバ ーロードになるのを防いでいる。 gスプライトスペースからのピクセルを走査するにおいて、gスプライトエン ジンは、ピクセルデータを出力装置座標(866)へ変換する。従来の多数の走 査技法のいずれをもgスプライトを走査して装置座標を出力するに使用可能であ る。逆方向および順方向のいずれのマッピングも可能である。gスプライトエン ジンは、本実施例では、逆方向マッピング法を利用している。 SCBのエッジ方程式データを使用して、gスプライトエンジンは、gスプラ イトをクリップして各バンドにおける走査の開始する位置を決定する。例えば、 第25図は、gスプライトのエッジが第3バンド(830,832)にクロスす るかを示している。交差点がこの個々のバンドにおけるgスプライトの開始点と 終了点となる。一つの走査法では、開始点からジグザグなパターンで走査する。 バンドの開始点は、出力装置座標における交差点に最近接するピクセルを出すこ とにより見つける。開始点が演算でされれば、gスプライトエンジンは、gスプ ライトの外側にでる、すなわちバンドの外にでるまで増加方向にステップアップ する。次いで1行右へステップしてもgスプライトの外側にでる、すなわちバン ドの外にでるまでステップダウンする。各ステップで、gスプライトのピクセル データを補間し、ピクセル位置のピクセル値を得る。各位置でのピクセル値を演 算した時に合成バッファにピクセルデータを送り合成をする。 第27図は、gスプライトエンジンと合成バッファが画像データのバンドを処 理する態様を示している。この図では、“バンド”なる語は、ピクセルデータの バンドを処理するために割り付けられた時間の量(バンド周期)に関するもので ある。第27図に示すように、gスプライトエンジン204は、バンド888の バッファ210を満たし、これにより合成画像データがディスプレイ892まで 走査される。複式バッファを利用することで、これらステップが引き続くバンド にわたりオーバラップされる。gスプライトエンジン204が一つのバンド89 0の合成バッファを満たしている間に合成バッファは、別のバンドの合成画像デ ータをDCA212,892に転送する。次のバンド周期で現在合成されたばか りのバントがディスプレイ894表示される。ディスプレイ上の各バンドにつき 、この処理を繰り返す。この複式バッファのによりピクセルを変換合成する行程 は、バンドを表示する行程と同時に行うことができる。 gスプライトとは、リアルタイムで合成でき、出力装置で表示される画像を発 生させる。合成バッファは、二つの32走査線バッファを有し、その一つは、合 成に使用され、もう一つは、表示のためのビデオデータを発生させるために使用 される。この二つのバッファは、交互にやり取りされて一つの走査領域が表示さ れている間に次の走査領域が合成される。 gスプライトデータは、合成すべき各ピクセルにつき一次カラーデータとα データとを合成バッファに転送する。32走査線αバッファは、合成に使用され る走査線バッファと関連させる。gスプライトデータは、前後の順に処理される ので、αバッファは、各ピクセルの不透明さを蓄積して、正しいアンチエーリア シングおよび透過を可能とする。 走査線カラーバッファは、0.0(全ビットが休止)に初期化され、しかして αバッファが1.0(全バッファがセット)に初期化される。各ピクセルにつき 、走査線バッファにロードされたカラーが計算される。すなわちcolor(new) = c olor(dst) + color(src)*alpha(src)*alpha(dst)。αバッファに記憶されたα値 は、alpha(new) = alpha(dst)*(1 minus alpha(src))により計算される。好まし くは、カラールックアップテーブル(LUT)は、256x10ビットである。 残りのビット(10vs8)は、提供されたより正確なγ補正に使用しうる。タイル張り 上述したように、画像プロセッサ(第1図)は、走査−変換を行い、さらに隠 れた表面を除去し、アンチエーリエシング、透過度計算、組織化、陰付けが行わ れる。本章では、走査変換、隠れた表面の削除およびアンチエーリアシングの透 明度の演算を詳細に説明する。 第4B図は、幾何学的プリミティブからの再生画像を発生する画像プロセッサ 462の部分を示すブロック図である。本実施例では、画像プロセッサ462は 、ラスタライザ464,ピクセルエンジン466、アンチエーリアシングエンジ ン468、ピクセルバッファ470含むラスタ化バッファおよびフラグメントバ ッ ファ472を含む。“ラスタライザ”は、例えば、多角形などの幾何学的プリミ ティブからピクセル値を決定する画像処プロセッサの部分に関するものである。 ラスタライザ464は、プリミティブデータを読みとり、ピクセル位置に関連し たピクセル値を出力する。このピクセルデータには、カラー、αおよび深さ(観 察点からの距離)を含む。ピクセルが多角形のみに完全にカバーされない場合は 、ラスタライザは、ピクセルフラグメントデータを発生する。 多角形の変換時、ラスタライザは、ピクセルデータをピクセルエンジンに転送 して処理する。ピクセルエンジン468は、ラスタライザからのピクセルデータ を読みとり、どのピクセルデータをピクセルバッファやセグメントバッファに記 憶させるかを判断する。ピクセルバッファ472は、二次元配列であり、配列の 要素は、ピクセル位置に相当し、カラー、αおよび深さデータを記憶するメモリ を含んでいる。フラグメントバッファ470は、フラグメントデータを記憶し、 ピクセルの部分的カバーを与える。 ピクセルエンジン466は、ラスタライザで発生された深さ値を利用して隠れた 表面の除去を行い、またアンチエーリアシングと透明処理のためのピクセルフラ グメントおよび不透明ピクセルを保持する。所与のピクセル位置に対して、最近 接の完全カバーされた不透明ピクセルがあれば、これを保持する。この点に関し て、“完全カバー”は、走査され、ラスタライザにより変換された多角形に完全 にカバーされるピクセルを意味している。またピクセルエンジンは、透明度(1 >α)を有するピクセルとピクセルフラグメントを最近接不透明ピクセルの前方 に保持する。ピクセルエンジンは、ピクセルバッファにるピクセル位置に関して の最近接不透明ピクセルを記憶し、フラグメントバッファには、最近接不透明ピ クセル前方にあるピクセル位置におけるフラグメントすなわち不透明ピクセルを フラグメントバッファに記憶する。 ピクセルエンジンがピクセルデータを発生後、アンチエーリアシングエンジン 468は、ピクセルおよびフラグメントバッファ内のピクセルデータを解析する 。第4B図に示した画像プロセッサのデザインは、ピクセルデータの複式バッフ ァとフラグメントデータの単一バッファの構成となっている。ピクセルエンジン は、ピクセルデータをピクセルバッファの一つで発生し、フラグメントバッファ にフ ラグメント情報を追加し、この間にアンチエーリアシングエンジンは、別のピク セルバッファかのピクセルデータおよびフラグメントバッファからのフラグメン トバッファを解析する。各フラグメントが解析されると、フラグメントエントリ が、新たなピクセルデータにより使用されるフラグメントフリーリストに記入さ れる。 ピクセルデータを発生および解析するプロセスを概略したが、実施例を詳細に 説明する。 第4B図のコンポーネントは、タイラーを充足するものである。タイラーは、 プリミティブデータならびに共有記憶領域システム216(第4A図)からの再 生指示を読みとり、再生画像データを発生し、共有記憶領域に圧縮画像データを 記憶する。上述したように、システム中の基本3−Dグラフィックプリミティブ は、三角形である。三角形は、常に平面でかつ凸であるので、三角形再生は、グ ラフィック発生に使用するハードウェアにおいて数々単純化を与えるものである 。しかしながら、こり代わりに、n片の多角形を使用することもできる。 タイラー200のコンポーネントについては上述した。次ぎにタイラー内のデ ータの流れを説明する。 タイラーは、DSPからの入力を受けるので、DSP176(第4図)の機能 の再生から始める。上述したように、DSP176は、フロントエンド幾何学を 実施し、3−Dグラフィックに要される照明計算を行う。DSP176は、モデ ル、窓表示域変換、クリッピング、照明などを行う。再生コマンドは、主メモリ バッファに記憶され、PCLバス上で画像処理ボードにDMA(直接メモリアク セス)される。再生コマンドは、次いで共有記憶領域216(第4A図)にDS Pで必要とされまで一時的に記憶される。再生コマンドは、画像処理動作を行う 準備が整った時に、タイラー200(第4A図)により読みとられる。 第28A図と第28B図のフロウチャートに示すように、セットアップブロッ クは、共有記憶領域から読みとられたプリミティブ再生指示を処理する。頂点入 力プロセッサは、入力ストリーム(914)(第28A図)を分析し、頂点制御 レジスタ(916)にプリミティブ三角形処理に必要な情報を記憶する。 二つの頂点制御レジスタが、それぞれ3づつ、6個の頂点を記憶する。二つの 頂点制御レジスタは、三角形情報を複式バッファ処理を可能としてセットアップ エンジンが常に処理する三角形情報をを有するようにする。 セットアップエンジンは、次いでエッジ、カラーおよび三角形表面を横断する組 織座標補間を決定する線形方程式(918)を計算する。これらの線形方程式は 、どの組織ブロックが三角形の再生に必要かを判断するものである。エッジ方程 式は、走査変換ブロック(920)に通され、走査変換エンジンが必要とするま で走査変換ブロック以内のプリミティブレジスタに記憶される。プリミティブレ ジスタは、エッジ方程式の多数セットを記憶可能である。 セットアップエンジンは、組織アドレスを、組織チャンク用のリクエストを一 時的に記憶する組織リードキュー(922)に転送する。組織アドレスレジスタ は、次いで、要求された組織チャンク(924)のメモリ中のアドレスを決定し 、組織読み取りリクエストを、走査変換ブロックにより使用される組織データ( 928)を取り出すコマンド記憶制御ブロック(926)(第28B図)に送る 。 組織データは、画像フォーマットと同じ形式でも良い圧縮画像フォーマットで 共有記憶領域(216)(第4A図)に記憶される。圧縮フォーマットは、個々 の8x8ピクセルブロックでなされる。8x8ブロックは、メモリ管理費用を低 減するためのメモリ管理の目的で、32x32ブロックにグループ化される。 組織ブロックが必要となった時に、これらは、タイラーに取り込まれ、圧縮解 除エンジン(930)により圧縮を解除され、オンチップ組織キャッシュ(93 2)でキャッシュされる。各ブロックがただ一つのカラー成分を記憶可能であっ たとしても、総じて328x8ピクセルブロックがキャッシュ可能である。組織 データは、RGBおよびαフォーマットでキャッシュされる。 走査変換エンジンは、プリミティブレジスタ(934)からエッジ方程式を読 み取り、三角形エッジ情報を変換する。走査変換エンジンは、三角形のエッジを 歩行し、カラー、深さ、透明度などを補間する補間器を含む。 走査変換エンジンは、組織アドレスを組織フィルタエンジン(936)に転送す る。組織フィルターエンジンは、再生しようとしている多角形用の組織データを 計算する。組織フィルタエンジンは、Z−スロープ、三角形の原点、sおよびt 座標の基づくフィルタの殻を演算する。組織フィルタエンジンに付随する組織キ ャッシュは、16の8x8ピクセルブロック用データを記憶する。組織キャッシ ュは、圧縮解除エンジンにも連通している。この圧縮解除エンジンは、組織デー タ(圧縮状態で記憶されている)を圧縮解除して組織フィルタエンジンによる使 用に具する。 組織フィルタリングが完了すると、組織フィルタエンジンは、情報を走査変換 エンジン(938)に戻し、さらなる処理のために走査変換エンジンにより使用 可能である。組織処理の過程で、走査変換エンジンは、三角形エッジデータ(9 40)を変換し、カラーおよび深さ情報を含む個々のピクセルアドレスがピクセ ルエンジンに転送され処理(942)される。 第28A図および第28B図に図示の方法は、第10図と第11図に関連して 説明した代替方法に関して変化する。第28C図および第28D図は、第10図 と第9B図に争闘する画像データをアクセスする方法を示している。同様に、第 28E図と第28F図は、第11図と第9C図に相当する画像データをアクセス する方法を示している。 第28C図と第28D図を参照して、この方法の実行は、第9B図のセットア ップブロック381で始まる。頂点入力プロセッサ384は、入力データストリ ーム(947)を処理する。次に、頂点制御レジスタ386は、入力データスト リーム(948)からの三角形データを一時記憶する。セットアップエンジン3 88は、次いでエッジ方程式(949)を計算し、この結果を走査変換ブロック 395(950)に転送する。 走査変換ブロック395は、プリミティブレジスタ(951)に記憶されたエ ッジ方程式を読み取り、三角形データ(952)を走査変換する。走査変換エン ジン398は、次にピクセルアドレス、カラーおよびαデータならびにカバレッ ジデータを含むピクセルデータを組織参照データーキュー399(953)(第 28D図)におけるエントリに書き込む。組織マッピング動作の場合において、 このエントリは、組織参照データすなわち組織の中心点の座標を含む。エントリ は、またレベルデータや異方性フィルタデータを含んでも良い。 組織参照データから、組織キャッシュ制御装置391は、どの組織ブロックを 取り出すかを判断し、適正の組織ブロックがメモリ(954)から取り出される ようにする。組織アドレスキャッシュ制御装置391は、組織読み取りリクエス トをコマンドメモリシステム380(955)に転送する。組織読み取りキュー 393は、組織ブロック用の読み取りリクエストを共有記憶領域システムに一時 記憶する。メモリ制御装置380は、共有記憶領域からの組織データを取りだし 、圧縮されていれば、圧縮ブロックを圧縮キャッシュ402(957,958) に配置する。第10図に関して上述したように、組織キャッシュ中のブロックの 交換は、キャッシュ交換アルゴリズムに従って進行する。 組織キャッシュ中の画像データを要求する組織マッピングあるいは別のピクセ ル動作を実行するために、組織フィルタエンジン401は、組織キャッシュ40 2に中の画像データにアクセスし、組織の寄与を計算し、この寄与を組織参照デ ータキュー399(955)からのカラーデータとおよび多分αデータとも組み 合わせる。組織フィルタエンジン401は、ピクセルデータをピクセルエンジン 406に転送し、これによりピクセルエンジンは隠れた表面の除去を行い、ラス タ化バッファへのピクセルデータの記憶の制御をする。 第28E図と第28D図は、第11図の方法に相当するメモリからの画像デー タのアクセスする方法を示している。この代替方法の実施においは、セットアッ プブロック283のプリミティブを消去することから開始される。頂点入力プロ セッサ384は、入力データストリームを解析し、頂点制御レジスタ387(9 61,962)の三角形データを待ち行列に入れる。組織マッピング動作におけ ると同様に、画像データブロックをメモリからアクセスする必要があれば、プリ レジスタライザ389は、頂点制御レジスタ386で待ち行列となっているプリ ミティブを走査変化して共有記憶領域963中の組織データブロックの読み取り リクエストを発生させる。 プリラスタライザがセットアップブロックで待ち行列となっているプリミティ ブを走査すると、組織読み取りリクエストが組織キャッシュ制御装置391(9 64)に転送される。組織キャッシュ制御装置391は、適正組織ブロック(9 65)を決定し、読み取りリクエストを組織読み取りキュー393を介してコマ ンドメモリ制御ブロック389(989)(第28F図)に転送する。メモリ制 御ブロックは、要求された組織データを取りだし、圧縮状態であれば、圧縮キャ ッシュ416(990)にこの組織データを記憶する。圧縮解除エンジンは、圧 縮キャッシュ416内の組織ブロックを圧縮解除して圧縮解除したデータを組織 キャッシュ402(991,992)に書き込む。組織キャッシュ制御装置は、 圧縮キャッシュ416から圧縮解除エンジン404から組織キャッシュ402へ の組織ブロックのフロウを管理しする。 走査変換ブロック397は、セットアップブロックで待ち行列となっている幾 何学的プリミティブを読み取る。走査変換ブロック397は、組織キャッシュブ ロック402で要求された組織データが利用可能であれば即座にピクセル発生動 作を実行する。これらピクセル動作の過程で、走査変換エンジン398は、プリ ミティブレジスタ(993)からエッジ方程式を読み取り、組織アドレスを組織 フィルタエンジン403(994)に転送する。組織フィルタエンジンは、組織 キャッシュ402中に記憶された適正画像データにアクセスし、次いでフィルタ されたデータを走査変換ブロック397(995)に戻す。走査制御変換ブロッ ク397は、三角形データを変換し、変換された三角形データおよぴフィルター されたデータ(996)から出力ピクセルデータを演算する。次いでこの出力ピ クセルデータをピクセルエンジン406に送る。 ピクセルエンジン406は、隠れた表面の除去とブレンド動作とをむピクセル レベル計算を実行する。隠れた表面の除去を実行するため、ピクセルエンジン4 06は、入力してくるピクセル(完全にカバーされたピクセルあるいはピクセル フラグメント)のための深さ値とピクセルあるいはフラグメントバッファ中の相 当位置でのピクセルと比較する。陰影動作では、ピクセルエンジン406は、深 さ比較動作を実行し、シャドウマップ中の位置での光源に最近接する第1と第2 プリミティブを決定し、必要に応じて第1と第2の最近接プリミティブを更新す る。ピクセルレベル計算の実行後に、ピクセルエンジンは、ピクセルあるいはフ ラグメントバッファに適正データを記憶する。 タイラーは、非不透明ピクセルを取り扱う高品質アンチアリエーシングアルゴ リズムを実行する。ピクセルバッファは、チャンク中のピクセル位置に関する最 先端非透明ピクセル用のピクセルデータを記憶する。フラグメントバッファは、 半透明のピクセル用の、および相当する位置におけるピクセルバッファ中のピク セルより観察点に近い部分的にカバーされたピクセル用のピクセルフラグメント を記憶する。一つのピクセル位置に関して一つ以上のフラグメントがフラグメン トリスト構造を利用して記憶することが出来る。解析と称されるプロセスにおい て、アンチアリエーシングエンジンは、フラグメントリストを処理してピクセル 位置に関するカラーとα値とを演算する。 発生するフラグメント数を減らすために、ピクセルエンジンは、発生中のフラ グメントと現在バッファに記憶されているしているフラグメントを比較するピク セルフラグメントとをマージする方法を実施する。新と旧のフラグメントの寄与 (カラーと深さ)が既設定の許容範囲で同等ならば、フラグメントは、フライ上 で組み合わされ、さらに別のフラグメントが発生することがない。 組み合わされたフラグメントが完全にカバー(完全カバレッジマスクと不透明 αとともに)されたものと判断されたら、フラグメントは、カラーバッファに書 き込まれ、フラグメント位置が現在のチャンク内の引き続く多角形に使用される まで解放される。 チャンクのすべての多角形が際されたならば、ピクセルバッファがスワップさ れる。一方アンチアリエーシングエンジンがフラグメントバッファとピクセルバ ッファの一つとのピクセルデータを解析している間に、ピクセルエンジンは、次 のチャンクのピクセルデータを別のピクセルバッファに書き込み、また残りの解 放位置をフラグメントバッファに書き込む。一般に、ピクセル解析は、ピクセル および位置相当フラグメントバッファ中におけるピクセルデータに基づくピクセ ル位置の単一のカラー値(および多分αも値も)を計算する段階を含んでいる。 これらについて以下に詳細に説明する。 第9A図から第9Cに図示の図タイラーの実行動作において、ピクセルエンジ ンは、単一のフラグメントバッファと一対のピクセルバッファとをアクセスする 。32x32ピクセルバッファは、ピクセルエンジンとアンチアリエーシングン との間の複式バッファのために提供されている。ピクセルバッファエントリは、 以下のデータを包含する。 ここでR、G、Bは、赤、緑および青のカラーコンポーネントであり、αは、 ピクセルのの半透明度を示すα成分であり、Zは、眼点からのピクセルの深さを 示す深さ成分である。x、yアドレスは、固定され暗にピクセルバッファアドレ スを意味する。一カラー成分(すなわち赤、緑、青)ごとに8ビットが用いられ 、8ビットがα成分に用いられ、26ビットがZ値、ステンシル値および優先値 を与えるために用いられる。26ビットのうち、24ビットまでが、Z値として 用いられ、3ビットまでがステンシル面として用いられ、3ビットまでが優先値 として用いられる。第9図に関して上述したように、バッファは、また9ビット のフラグメントバッファポインタを含んでいる。 優先値は、プリミティブごとに固定され、Z比較動作中記憶されたZ値と比較 して入力してくるピクセルZ値をマージすべくタイル張りエンジンにより用いら れる優先関係を利用して地形の頂上のロードなどの共通平面上の対象物の解析を 支援する。 フラグメントバッファは、エッジがて所与のピクセルとクロスする多角形の、 あるいは半透明度を持った多角形のピクセルフラグメントについての情報を記憶 するのに使用される。フラグメントバッファの各エントリは、カラー、α、Zお よび表面と関連するカバレッジデータを提供する。 多フラグメントバッファエントリは、多角形が同じピクセル位置で部分カバレ ッジを有している場合のための単一ピクセルと関連づけられる(リンクされたリ ストメカニズムを介して)。フラグメントバッファは、複式ポートであり、アン チアリエーシングエンジンとピクセルエンジンの双方により並行に動作可能であ る。フラグメントバッフアの実施の一つにおいて、フラグメントバッファは、フ ラグメント記録の一次元配列であり、総じて512のフラグメント記録エントリ を含む。フラグメントバッファのメモリ管理は、リンクされたリスト構造を用い て実行される。各フラグメントバッファエントリは、以下のデータを含んでいる 。 ここでR、G、Bは、赤、緑、青のカラー成分であり、αは、ピクセルの半透 明度を示すα値であり、Zは、眼点からのピクセルの深さを示すZ値であり、M は、部分的にカバーされたピクセル用の4x4ピクセルカバレッジビットマスク であり、Pは、次のフラグメントバッファエントリに対するポインタであり、S は、フラグメントステンシルを示すために用いられる。8ビットがカラー成分( すなわち赤、緑、青)ごとに用いられ、8ビットがα成分ごとに利用され、26 ビットがZ値+ステンシルと優先度とを記憶するために用いられ、9ビットがフ ラグメントポインタのために用いられる。 ピクセルカバレッジマスクは、各エッジのカバレッジマスク値を決定し、これ らをビット方向にANDをとることにより演算される。カバレッジマスクの演算 は、2段階のプロセスで行われる。第1段階で、カバレッジマスク中のサブピク セルのいくつがオンになるかを判断し、第2段階でどの特定ビットが有効である かを決定する。 第1段階は、いくつのカバレッジマスクビットがオンとされようとしているか を決定すべくエッジによりカバーされるピクセルエリアに使用される。このエリ アは、エッジスロープとピクセル中心からの距離で索引されるテーブルルックア ップにより演算される。第2段階は、エッジスロープを利用してサンプルビット がオンとなる順序を決定する。ビット順序のセットが、“カバレッジ順序”テー ブルと称される既演算テーブルに記憶させる。各カバレッジ順序テーブルエント リは、スロープ値の範囲に関して正しいサンプルビットの特定順序からなる。エ ッジスロープは、スロープ範囲のセットに対してテストされ、このスロープ値の を含む範囲と関連する索引がカバレッジ順序テーブルへの索引として使用される 。 カバレッジマスクの演算方法は、Schilling,A.の“サブピクセルマスク付き の新単純有効アンチアリエーシング”Computer Graphics 第25巻、No.4、 1991年7月、第133頁から第141頁。 隠れた表面の除去およびフラグメントマージング ピクセルエンジンが、入力してくるピクセルデータについて深さ比較動作を行 うことにより隠れた表面の除去を行うことを上述した。またピクセルフラグメン トがマージされ、フラグメントメモリを解放することも上述した。フラグメント マージングは、記憶要求を低減し、所与のシーンをアンチアリエースし、フラグ メント解析の速度を上げ最終画像を生成する。隠れた表面の除去の実施方法につ き説明する。これには、入力してきたフラグメントが記憶されたフラグメントの 既決定カラーと深さの許容範囲内にある場合に入力してきたピクセルフラグメン トを記憶されたピクセルフラグメントとマージする方法も含んでいる。 第4B図は、ラスタライザ464、ピクセルエンジン466,ピンセルおよび フラグメントバッファ470,471とを含むタイラー462内のコンポーネン トを図示するブロック図である。ピクセルおよびフラグメントバッファは、選定 したピクセルデータを記憶するためのラスタ化バッファとなる。ラスタライザが 幾何学的プリミティブを横断する際にピクセルデータの事例を発生する。ピクセ ルエンジンは、Zバッファ動作を制御し、さらに入力してくるピクセルフラグメ ントが、相当するピクセル位置でフラグメントバッファに記憶されたピクセルフ ラグメントとマージ可能かどうかを判定する。第9A図から第9C図に図示のタ イラーならびに上述の関連説明は、タイラーの具体的実施方法に関するさらなる 詳細を与えるものである。以下に説明するピクセルフラグメントのマージングの 方法並びにハードウェアは、これらタイラーの設計および同様な代替設計におい て実施できるものである。 上述のしたごとく、タイラー内の走査変換ブロック(ラスタライザ)は、1) 完全にカバーされた不透明ピクセル、2)完全にカバーされた半透明ピクセル、 3)部分的にカバーされた不透明ピクセル、4)部分的にカバーされた半透明ピ クセル表示するピクセルデータの事例を発生させる。 ピクセルバッファは、最先端の完全にカバーされた不透明ピクセルのカラーお よび深さ(Z)を記憶する。またピクセルバッファは、充分にカバーされていな いカバレッジマスクあるいは、充分に不透明でないαを有するフラグメントを含 むフラグメントリストに対するポインタを記憶する。フラグメントリスト中のヘ ッドすなわちだい1フラグメントは、もっとも最近処理されたピクセルフラグメ ントである。この特定の実施方法では、ピクセルエンジンは、入力してくるピク セルフラグメントともっとも最近のピクセルフラグメントとをマージする。多角 形の再生には、ある量の特殊なコヒーレンスがあるので、所与のピクセル位置に 関して発生したもっとも最近のフラグメントとのマージングは、マージの成功度 を増大させる。 各ピクセル位置に対するフラグメントリストは、分類してない形式で保持され ている。またヘッドフラグメントは、特定ピクセル位置で発生したもっとも最近 のフラグメントである。ヘッドフラグメントの背後のピクセルフラグメントは、 分類されていないが、フラグメント解析段階の最適化を支援するために付加的演 算時間が得られるのであれば、分類が可能である。 別の代替実施方法において、ピクセルエンジンは、フラグメントマージ基準合 致するピクセルフラグメントをフラグメントリストで検索するために付加的ロジ ックを含んでいる。この方法は、検索ロジックのオーバーヘットがより高いマー ジ候補を認識する際のインクリメンタルな改良を正当化しな理由で好ましくない 。これは特に、マージプロセスで消費される付加的クロックサイクルがアニメー ションのフレームを再生するに必要な時間を増大するリアルタイムシステムでは 特にそうである。 別の実施方法では、ピクセルエンジンは、ピクセルフラグメントの深さ分類リ ストを保持し、かつ所与のピクセル位置での観察点に最近接するフラグメントと のマージを試みる。この最後の方法は、しかしながら、好ましくない。なぜなら 成功しうるマージ候補すなわち、入力してくるフラグメントに対して所定許容範 囲内のZ値とカラー値を有するフラグメントを見つけることが出来そうもないか らである。これは、付加的なフラグメントメモリの供給単純化する潜在的利益を 有している。もしマージされたピクセルが完全にカバーされ、不透明であれば、 マージされたピクセルは、ピクセル位置に関して、記憶された別のピクセルフラ グメントより観察点により近いので、そのピクセル位置での全ピクセルフラグメ ントは、解放することが出来る。 第29図は、タイラー内の隠された表面の除去とフラグメントマージングの実 施方法を示すフロウチャートである。処理は、まずピクセル位置でのカラー、Z およびカバレッジマスク(968)を有するピクセルデータの新事例の発生で始 まる。もしこの位置でのピクセルバッファZがピクセルデータの新しい事例(完 全にあるいは部分的にカバーされたピクセル)(970)のZより近ければ、ピ クセルデータの新しい事例は、完全に不明瞭であり、破棄される(972)。ラ スタライザが被再生プリミティブの現在のセットに対してすべてのピクセルを発 生するまで、処理がさらに次のピクセルデータの事例で続けられる。 ピクセルデータの新事例のZよりピクセルバッファZが近くなければ(すなわ ちピクセルデータの新事例のZが観察点により近い)、ピクセルエンジンは、入 力してくるピクセル(974)に対するカバレッジマスクを吟味する。入力して くるピクセルの対するカバレッジマスクが充分な場合は、ピクセルエンジンは、 ピクセルバッファーカラーとZを新しいカラーとZ(976)とに入れ換える。 この場合に新たなピクセルデータがフラグメントリストに追加されず、メモリが 節約される。 もしピクセルデータの新事例のカバレッジマスクが充分でなければ、ピクセル エンジンは、マージテストを行い、新しいカラーとZがヘッドフラグメントのカ ラーとZ(978)の所定の許容範囲内であるか否かを判定する。このマージテ ストは、入力してくるピクセルのα(半透明度)がヘッドフラグメント中の所定 の許容範囲内にあるか否かを判断することも含めることができる。もし新しいフ ラグメントカラーとZが所定の許容範囲にない場合は、新しいピクセルフラグメ ントは、フラグメントリスト(980)のヘッドでフラグメントバッファに加え られる。 もし新しいフラグメントカラーとZが所定の許容範囲にあり、新しいカバレッ ジマスクが充分でない場合は、入力してきたピクセルフラグメントは、フラグメ ントリスト(982)のヘッドフラグメントにマージされる。ピクセルエンジン は、ヘッドカバレッジマスクと新しいカバレッジマスクについてOR演算を行っ てピクセルフラグメントをマージし、結果をヘッドカバレッジにの残す。 カバレッジマスクの組み合わせ後、マージされたヘッドカバレッジマスクが吟 味され、それが完全カバーされたピクセル(984)を示すものか否かを確認す る。もしマージされたヘッドカバレッジマスクが完全でなければ、次のピクセル データ(966)の事例で処理を継続する。もしマージされたヘッドカバレッジ マスクが完全であれば、マージされたヘッドカバレッジマスクは、完全ピクセル カバレッジを与える。よって、ヘッドフラグメントに使用される記憶装置は、解 放され(986)、ヘッドフラグメントカラー、Zおよびカバレッジマスクは、 新しいヘッドフラグメントカラー、Zおよびカバレッジマスク(976)と入れ 換えられる。 ピクセルエンジンが、ピクセルバッファのエントリを新しい完全にカバーされ たピクセルに入れ換える場合には、ピクセルエンジンは、深さ値がこの完全にカ バーされたピクセル(988)より大きな相当するフラグメントリストにおける 全てのピクセルフラグメントを解放する。これは、入力してくる完全にカバーさ れた不透明ピクセルが、同じピクセル位置でのピクセルバッファエントリより大 きな深さ値を有している場合に起こる。またこれは、マージされたフラグメント が完全にカバーされた不透明のものであり、かつ同じピクセル位置でのピクセル バッファエントリより低いZを有している場合におこる。この場合には、ピクセ ルエンジンは、フラグメントリストを縦断して、新しい完全にカバーされたピク セルのZをリスト中のフラグメントのZと比較して、新しい完全にカバーされた ピクセルのZより大きいZを有する各フラグメントを解放する。あるいは、Zバ ッファは、パッキングプロセスに対して省略可能であり、フラグメントリストの 走査の必要性をなくし、リアルタイム性能を改良する。 第29図に図示の方法は、所与のスクリーンをアンチアリエースするメモリ記 憶要求を低減し、使用されないピクセルフラグメントを破棄することにより最終 グラフィック画像を発生するためのフラグメント解析の速度を高めている。カラ ーとZの許容範囲を調節することにより、破棄された発生フラグメントの数を、 ユーザの必要性に依存するアンチアリエーシング精度に対してバランスさせるこ とが出できる。もしカラーとZがピクセルセンタにもっとも近い多角形のエッジ で評価されれば、より狭いカラーとZの許容範囲が使用され、これでまたメモリ の節約となる。 第30図は、入力してくるピクセルフラグメントに対するマージテストを実行 に使用されるフラグメントマージ回路の一例を示すブロック図である。この例で は、ピクセルエンジンは、入力してくるカラー(R、G、B)、αおよび深さの 各値を入力してくるピクセルの位置に関するもっとも最近のピクセルフラグメン トのカラー、αおよび深さの各値と比較する。“new”と表示されているカラ ー、αおよび深さの各成分は、入力してくるすなわち新しく発生しされたピクセ ルデータの事例を示し、“prev”と表示された成分は、ピクセル位置でのも っとも最近のピクセルフラグメントである。 ピクセルエンジンがフラグメントリストを縦断してカラーおよび深さの許容範 囲内のピクセルフラグメントを発見する場合の代替実施例において、“prev ”と表示された成分は、マージテストを使用して解析されるピクセル位置用のフ ラグメントリストにおけるピクセルフラグメントおのおのを示すもののである。 マージテストブロック1000から1008は、新しいピクセルフラグメント と前のピクセルフラグメントとの深さ、カラーおよびαの各成分を比較し、もし 新しい値と前の値が所定の許容範囲にある場合は、新しいピクセルフラグメント は、マージ候補であることを示すビットを出力する。ピクセルエンジンは、次い でビット方向のAND(1010)をとって各マージテストに合格したか否かを 判定する。もしそうであれば、ピクセルエンジンは、新しいピクセルフラグメン トと前のピクセルフラグメントとをマージする。ピクセルエンジンは、新しいカ バレッジマスクと前のカバレッジマスクとのORをとって前のフラグメントに対 する新しいカバレッジマスクを演算する。もしいずれかのマージテストに合格し ない場合は、ピクセルエンジンは、新しいピクセルフラグメントをフラグメント リストのヘッドに追加する。この新しいフラグメントは、リンクされたリストの 一部となり、フラグメントリストの前のヘッドを指すことになる。 図31は、組み合わせテストモジュール1012をさらに詳細に図示するブロ ック図である。組み合わせテストモジュールは、新規値と前回値の差の絶対値を 計算する1014。組み合わせテストモジュールの比較器1016はティラーレ ジスタ(tiler register)1018に格納された基準値との差を比較し、新規値と 前回値が所定の許容範囲内にあるか否かを示す論理値を発生する。組み合わせテ ストモジュールから出力された論理値は図30に示すようにビット式のANDブ ロック1010に入力される。ビット式のANDの出力は各色調値、アルファ値 及び深さ値が所定の許容範囲内にあるか否かを示す。もし、示すなら、上記のよ うに、ピクセルエンジンは入って来る先頭のピクセルフラグメントを組み合わせ る(merge)。 上述のように、ピクセルフラグメントを組み合わせる方法に対する数多くの適 用し得る変数がある。他の方法としては、ピクセルエンジンはフラグメントリス トを調べて1)リストの末尾に達するまでか、又は2)組み合わせテストを満足 する格納されたピクセルフラグメントを見つけるまで各ピクセルフラグメントに 組み合わせテストを行う。さらに他の方法としては、ピクセルエンジンは、例え ば、入って来る各フラグメントで挿入ソート(insersion sort)を実行することに よりピクセルフラグメントをソートされた形式に保持することができる。ピクセ ルエンジンは、入って来るピクセルフラグメントを、観察点(view point)に最 も近いピクセルフラグメントと(最も低いz値と)のみ組み合わせを試みること ができるか、又はピクセルの位置として格納された数個のピクセルフラグメント で組み合わせを試みることができる。ピクセルメモリのオーバーフローを防止するための画像領域の細分割 幾何学的なプリミティブをラスタライズ(rasterize)するとき、ティラー(tile r)はピクセルデータをピクセル及びフラグメントバッファ内に格納する。また、 ティラーはこのピクセルデータを処理ステップで解像する。ティラーはこのピク セルデータを格納するために固定サイズのメモリを使用するので、メモリ容量が 不足する可能性がる。この問題に取り組むために、ティラーはメモリ容量をモニ タして、可能なら、その時点でフラグメントメモリをオーバーフローさせていな い画像部分のサイズを小さくする。 一実施例において、ティラーは、たくさんの32×32ピクセルチャンク(chu nk)を処理することによってグラフィック出力画像を構築する。図32は、ピク セル及びフラグメントバッファの一部分を図示する図である。この例に示される ように、ティラーは関連する512個のエントリフラグメントバッファ(112 0)を使用する32×32ピクセルバッファ(1118)を解像する。この具体 例においては、フラグメントバッファは、32×32ピクセル出力バッファを形 成するために後処理ステージで結合される512個のピクセルフラグメントまで 格納することができる。32×32出力ピクセルバッファを生成するために51 2個のピクセルフラグメントを使用する際に、微細に碁盤目状に配列された対象 物(object)又はかなりの半透明を含む対象物をラスタライズするときフラグメン トメモリを使い尽くす可能性が明確に存在する。これらの場合、更なるフラグメ ントメモリは、部分的にカバーされるか半透明なピクセルのピクセルフラグメン トデータを格納する必要がある。512個のピクセルエントリを有するフラグメ ントバッファは1024(32×32=1024)個のピクセルを格納する32 ×32出力バッファと同数のピクセルの1/2だけを格納する。 このメモリの限界の問題を緩和するために、ティラーにおけるピクセルメモリ のフォーマットは階層的分解の2レベルを支持するように構成される。図33は 、この階層的分解を図示する図である。フラグメントメモリが32×32ピクセ ルバッファを処理するときに使い尽くされると、ティラーは、ピクセルフラグメ ントバッファをフラッシュ(flush)すると共に、四つの16×16ピクセルサブ バッファの組(1122)に対してプリミティブの入力の流れを再処理する。1 6×16ピクセルバッファを512個のフラグメントエントリメモリシステムで 処理すると、所望の出力ピクセルより2倍のフラグメントエントリを得ることが でき、部分的にカバーされるか又は半透明の数多くのピクセルで巨大な数のケー スを取り扱うことになる。 フラグメントメモリが16×16ピクセルサブバッファのいずれかを処理する ときに使い尽くされると、ティラーはピクセル及びフラグメントバッファをフラ ッシュすると共に四つの8×8ピクセルサブバッファのセットに対してプリミテ ィブの入力の流れを再処理する(1124)。16×16ピクセルサブバッファ の夫々は四つの8×8ピクセルサブバッファに分割されて全部で16の8×8サ ブバッファになる。8×8ピクセルバッファを512個のフラグメントエントリ メモリシステムで処理すると、所望の出力ピクセルより8倍のピクセルエントリ を得ることができ、最も考え得る複合グラフィック対象物を取り扱うことになる 。8×8サブバッファの付随的な利益はそれらがピクセルデータを圧縮するのに 使用される圧縮エンジンが必要とするフォーマットにあり、更なるピクセルバッ ファの分解を圧縮の前に必要としないことである。 各ピクセルサブバッファ(即ち、16×16又は8×8のもの)は連続的に処 理されるときに、それらのピクセルは解像されて圧縮エンジンに送出される。テ ィラーは完全な32×32ピクセルバッファの解像、圧縮の順に16×16及び 8×8サブバッファを処理するので、すべてのサブバッファの処理が完了すると 、追加処理を要求することなく、圧縮されたフォーマットでシステムメモリに格 納 された完全な32×32ピクセルバッファが形成される。 バッファ分解処理は要求(demanding)ケース(例えば、かなりの半透明、影 、及び一つ以上の光源による照明によって微細に碁盤目状の対象物を重ねること )を処理の途中で反復的に取り扱うのに適用される。この方法を以下に説明する 。 図34A及び図34Bは、ティラーにおけるバッファの分解方法を図示するフ ロー図である。DSPは、描出(rendering)コマンド、及びチャンク(chunk)と 呼ばれる画像領域の間でソートされるポリゴン(polygon)を含む入力データの 流れを発生する。そして、DSPは入力データの流れを処理のためにティラーに 送出する。その入力データの流れ中の描出コマンドに応じて、ティラー内のラス タライザは入力データの流れの中のポリゴンをラスタライズしてピクセルデータ を発生する(1130,1132,1136)。 この特別な例において、フロ ー図は、ポリゴンが直列に処理されることを図示している。しかしながら、プリ ミティブを描出するにはたくさんの方法がある。プリミティブをラスタライズす る手法は分解処理にとって決定的(crytical)ではない。 ラスタライザがピクセルデータを生成するとき、フラグメントバッファの容量 をモニタする。この具体例においては、ラスタライザはフラグメントメモリに加 えられる各エントリのバッファカウンタをインクリメントさせ、ピクセルデータ を発生するときのカウンタの値をチェックする(1138,1142)。バッフ ァカウンタの値が512に達すると、フラグメントメモリはいっぱいになる。こ の点において、ティラーは現在のチャンクサイズをチェックしてピクセルデータ をどのように細分割するかを決定する(1144,1150)。 ここに記載され図示されている特定の具体例においては、メモリ分解はフラグ メントメモリがその容量、即ち512個のピクセルフラグメントに達するときに 開始される。しかしながら、フラグメントメモリが容量いっぱいになる前に分解 を開始することもできる。 チャンクサイズが32×32ピクセルであるときは(1144)、ティラーは チャンクサイズを四つの16×16ピクセルチャンクに分割する(1146)。 そして、ティラーはピクセル及びフラグメントバッファをクリアして(1146 )現在のチャンクの入力の流れを四つの16×16サブチャンクにラスタライズ す るのを開始する(1158)。この具体例において、DSPは、チャンクの入力 の流れを再び送出する。サブチャンク間で再ソートされたポリゴンよりむしろ、 ティラーは各サブチャンクに対して繰り返しポリゴンの入力の流れを処理し、各 サブチャンク以外にあるポリゴンを拒否する。他の方法として、DSPは入力デ ータの流れを再処理して、各サブチャンク領域間の流れの中のポリゴンをソート する。この他の方法は、各サブチャンクのポリゴンの数を減少させるが、DSP 中の処理経費(processing overhead)を増大させる。 ティラーは、同様の方法で16×16サブチャンクを処理する(1150,1 152)。現在のチャンクサイズが16×16ピクセルであれば、ティラーはチ ャンクを8×8ピクセルに分割してピクセル及びフラグメントバッファをクリア する(1152)。この具体例において、ティラーはチャンクを8×8ブロック より小さくには再分割しない。この場合512個の要素であるフラグメントメモ リの容量は、画像チャンクを8×8ブロックに細分割することによって微細に碁 盤目状及び/又は半透明の対象物を取り扱うのに十分であるべきである。しかし ながら、ここに記載されているティラーは一つの可能性がある方法であり、画像 のサイズを細分割する必要性は、シーン(scene)の複雑性、サポートされたア ンティエーリアシング(anti-aliasing)及び半透明性の形成、フラグメントバ ッファのメモリ容量のような要因によって変化する。 バッファカウンタが8×8ピクセルブロックに対して512に達すると、ティ ラーは更に8×8ピクセルチャンクと関連するピクセルフラグメントを解像して バッファスワップを行う(1154)。8×8チャンクが解像された後で、ティ ラーはさらに8×8ピクセルチャンクがあるか否かをチェックする(1156) 。更に8×8ピクセルチャンクがあれば、続いて次の8×8サブチャンクのポリ ゴン処理を再び開始する(1158)。 他に8×8チャンクが残っていなければ、ティラーは更に16×16ピクセル チャンクがあるか否かをチェックする(1148)。16×16ピクセルチャン クが残っていれば、ティラーは残った16×16ピクセルサブチャンクに対して ポリゴン処理を再び開始する(1158)。他に16×16ピクセルチャンクが なければ、ティラーは次のチャンクに対して入力データの流れを作り(1160 )、 その中でのポリゴン処理に進む(1158)。 チャンク又はサブチャンクの入力データの流れを処理しているときにフラグメ ントバッファの容量が超過しないなら、ティラーはピクセル及びフラグメントバ ッファでの画像データの解像に進む(1132, 1134)。ティラーが現在 のチャンクでの入力データの流れの処理を完了していれば、チャンク又はサブチ ャンクの解像フェーズを開始する。例えば、チャンクサイズが32×32ピクセ ルであれば(1162)、32×32ピクセルチャンクが解像され、バッファが スワップされる(1164)。そして、続いて次のチャンクを取得する(116 0)(図34A)。 チャンクサイズが16×16ピクセルであれば(1166)、16×16ピク セルチャンクが解像され、バッファがスワップされる(1168)。ティラーは 16×16チャンクが更に残っているか否かのチェックに進む(1148)。も し、残っていれば、次のサブチャンクのポリゴンを再び送出することによりポリ ゴン処理を再び開始し、残っていなければ、次のチャンクの入力の流れを取り込 んで、そのチャンクのポリゴン処理を開始する(1160)。 チャンクサイズが16×16ピクセルでなければ、それは、デフォルトによっ て8×8ピクセルである。ティラーは次いで8×8ピクセルチャンクを解像し、 バッファをスワップする(1154)。そして、ティラーは残りの8×8サブチ ャンク、更に残りの16×16サブチャンクを処理する。残りのサブチャンクの 処理を完了した後、ティラーは次のチャンクに進む。処理は、入力データの流れ の中にチャンクが無くなったときに最終的に終了する。 チャンクの処理の間、データは、各チャンクが発生するピクセルフラグメント の最大数を決定するために集められる。各チャンクを処理した後における512 個のフラグメントバッファの中で自由(free)なエントリの数もまた集められる。 このデータは、対象物を再処理するときにバッファの分解がいつ自動的に実行さ れるべきかを決定するのに使用される。例えば、複雑な対象物がゲームの経過中 に何回も再描画されているとき、複雑な対象物処理は、ピクセル情報の入力の流 れを連続的に再処理するのを避けるために集められたピクセルバッファデータに 基づいてバッファの分解を自動的に行う。 16×16又は8×8サブバッファへのバッファの分解もまた、既知の複雑な (即ち、微細な碁盤目状等)ピクセルチャンクがティラーに送られたときに要求 されてもよい。これは、ピクセルチャンクがすでに複雑であると知られていると きバッファの分解、ピクセルフラグメントバッファのフラッシュ、及び入力の流 れの再処理が必要か否かの決定を不要にすると共に、集中処理を必要とする。 オーバーフローが検出されたときにスキャン変換処理を再開始する方法として 他に少なくとも二つの方法がある。一つの方法では、ピクセルエンジンが、オー バーフローが検出されたときにスキャン変換ブロックが停止するするように指示 し、処理されるべきサブチャンク以外のピクセル位置のピクセルメモリのすべて のフラグメントリストをクリアしてもよい。これを達成するために、ピクセルエ ンジンは、サブチャンク以外のピクセル位置のピクセルバッファにおけるフラグ メントリストのポインタを読み取って、これらのピクセル位置に関連するフラグ メントバッファ内のフラグメントを自由にすることによりサブチャンク以外でフ ラグメントリストを参照する。スキャン変換ブロックは、終了したところの現在 のチャンクの幾何学的なプリミティブのセットを続けてラスタライズする。 二 つ目の方法では、スキャン変換ブロックはすべてのフラグメントメモリをクリア した後で起動する。この場合、スキャン変換ブロックは起動後チャンクのプリミ ティブのセットの最初において幾何学的なプリミティブのラスタライズを開始す る。 途中のバッファの分解は、かなり複雑な特性(例えば、多光源、微細な碁盤目 、半透明、等)を有するグラフィック対象物を処理するときでも、小さなピクセ ル出力バッファ、小容量のフラグメントバッファメモリを使用してグラフィック 対象物の処理の間フラグメントデータメモリのオーバーフローを低減する手法を 提供する。 我々は特定の実施例に関して分解を説明しているが、本発明は種々の他の手法 で実行され得ることを理解すべきである。上述したような特定な方法で画像領域 を分割する必要はない。むしろ、画像領域は異なるサイズの細領域に分かすされ る。チャンキング(chunking)アーキテクチャは画像の細分割には特によく適合す るが、フルフレームバッファはより小さい領域に分解されてフラグメントメモリ の要求を低減する。メモリ消費をたどって調査するのに使用される特定なタイプ の論理又はソフトウェアもまた変形することができる。結局、本発明の範囲には 多くの使用しうる他の方法が含まれる。 ピクセルの後処理 画像プロセッサは、ピクセル位置のフラグメントデータを発生した後で、この フラグメントデータをソートかつ解像してその位置で色調を計算する。上記のよ うに、画像プロセッサは部分的にカバーされたピクセルのフラグメントを発生し かつ保持する。一つ以上のポリゴンのエッジがピクセルと交差するとき、又はポ リゴンが半透明のとき、ピクセルはポリゴンにより部分的にカバーされる。フラ グメントデータを保持してアンティエーリアシングと半透明を実行するには十分 なメモリ容量を必要とする。描出されるポリゴンの数が増加すると、ピクセルデ ータ及びフラグメントを格納するメモリの容量もまた増加する。 増加したメモリ要求に加えて、フラグメントを解像するのに要求される処理量 も多くなる。Zバッファへのアプローチにおいて、フラグメントデータは深くソ ートされる。一般的に、プリミティブのデータは、描出のため到来するときに深 さの順にソートされる。プリミティブのデータが任意の深さの順に到来するので 、画像プロセッサはフラグメントを発生した後でそれをソートしなければならな い。ソートされたデータは、ピクセル位置で色調と可能であればアルファを決定 するために処理される。各ピクセル位置で、いくつかのフラグメントが色調に寄 与する。アルファが計算されるなら、フラグメントの数及び処理の複雑さもまた 増加する。 上記のように強調された理由によって、進んだアンティエーリアシング及び半 透明性を支持するためのメモリ及び処理要求は不可欠である。一方では、複雑な アンティエーリアシング及び半透明性の計算を支持することと、他方では、メモ リ要求を低減することの間には矛盾がある。システムのコストを低減するために 、メモリの使用を最小限にすべきだが、進んだアンティエーリアシング及び半透 明性は通常更なるメモリを必要とする。これらの進んだ構成をメモリの要求を最 小にしつつリアルタイムのシステムで保持することは困難でさえある。 一実施例において、我々のシステムは一度に一つのチャンクのプリミティブを 描出し、その結果メモリを減らして後処理ステップでフラグメントを解像する。 ピクセルデータが一つのチャンクで発生する間に、他のチャンクのピクセルデー タを解像することができる。フラグメントのソート及びピクセルの解像に影響を 与える数多くの利益がチャンキングの概念からもたらされる。画像プロセッサが チャンク内のピクセルを解像した後ではラスタライズ処理の間に発生したたくさ んのデータは保持されるべきではないので、メモリの要求は十分に減らされる。 画像プロセッサはチャンクを解像した後で解像された色調部分を保持すればよい 。 直列にチャンクを描出することの他の利点は、ピクセルフラグメントメモリが メモリアクセスの経費(overhead)を低減するのに設けられ得ることである。典型 的なグラフィックシステムは外部メモリを使用して色調、深さ及びフラグメント バッファを設ける。この外部メモリを有機的に構成してリアルタイム画像処理の 厳密なバンド幅の要求を満たすことはかなり困難である。32×32ピクセル領 域のようなチャンクの描出を支持するのに必要なピクセルフラグメントメモリは 外部メモリに設けられるべきではなく、それに代えて、ラスタライズ及びアンテ ィエーリアシング機能を実行する同じハードウェア上に設けることができる。例 えば、上記の具体例において、フラグメント及びピクセルバッファは単一の集積 回路チップ上に設けることができる。 チップメモリを使用すると外部メモリに関連するバンド幅の問題を簡素化する ことができる。チップメモリは多段メモリを効率的に使用することができる。例 えば、1段をピクセルバッファに使用し、他段をフラグメントの記録に使用する ことができる。 チップメモリの他の利点は、多ポートメモリの装備を低価格かつ容易に行うこ とができることである。ピクセル及びフラグメントバッファの性能は、多ポート メモリを使用することにより増大することができ、その結果同時読み込み及び/ 又は書き込みがピクセル処理速度当たり1クロック(one clock per pixel proce ssing rate)を達成することができる。チャンクが別々に描出されるときはフラ グメントバッファがかなり小さいので、それはチップ上に装備される。メモリの 小サイズ及びチップ上のメモリの存在の双方は、多ポートメモリの使用を実現可 能にしかつコストを有効に働かせる。一方、外部多ポートメモリはビット当たり コスト高、チップ間の接続の故に高価である。 チャンキングに関する他の重要な利点は、フレームの一部のピクセルを、他の 部分のピクセルが解像されている間に発生することができることである。このよ うに、本アプローチは、全部のフレームのピクセルを発生してそれらのピクセル を解像するのではなく、ピクセルの発生と共に解像をオーバーラップさせること ができ、その結果システムの搬送遅れを低減することができる。 本システムの一実施例において、画像プロセッサは後処理ステップでフラグメ ントを解像する。ピクセルエンジンが画像の一部のピクセルデータを発生してい る間に、アンティエーリアシングエンジンが画像の他の部分のフラグメントを解 像する。上記のように、ピクセルデータは二重に緩衝記憶されている。即ち、ア ンティエーリアシングエンジンが一のバッファをアクセスしている間にピクセル エンジンは他のバッファをアクセスすることができる。ピクセルエンジンがチャ ンクのピクセルを発生した後で、ティラーはバッファスワップを実行する。ピク セルエンジンは次のチャンクのピクセルを発生すると共に、アンティエーリアシ ングエンジンは前のチャンクのピクセルを解像する。 ピクセルデータを二重に緩衝記憶することもできるが、好ましい実施例におい ては、フラグメントバッファに二つのポートが設け、そのバッファをピクセルエ ンジン及びアンティエーリアシングエンジンが同時にアクセスしてもよい。ピク セルエンジンは一つのポートを介してフラグメントデータをフラグメントバッフ ァに書き込み、アンティエーリアシングエンジンは他のポートを介してフラグメ ントデータを書き込む。 本実施例において、二重に緩衝記憶されると共に二つのポートが設けられたメ モリシステムにより、画像プロセッサは画像データの発生及びピクセルの解像を オーバーラップさせることができる。 ピクセルプロセッサは解像処理を完了する前に深さ順にフラグメントデータを ソートする。一般的に、画像プロセッサはピクセルを発生するとき、また描出さ れるべき画像の部分のピクセルを発生した後でピクセルデータをソートすること ができる。例えば、ピクセルエンジンは、フラグメントデータをフラグメントバ ッファに書き込むときに挿入ソートを実行することができる。加えて、ピクセル エンジンは、画像のすべて又は一部のピクセルデータを発生するのを完了した後 でフラグメントデータをソートすることができる。ピクセルエンジンはまた、入 って来るピクセルデータを拒否する場合は、フラグメントをソートすることがで きる。ピクセルエンジンは、入って来るピクセルデータを拒否するときは、フラ グメントバッファに書き込みを行うべきではないので、入って来る次のピクセル が到来する前にフラグメントのソートを実行することができる。我々は後者のア プローチをフラグメントの「バックグラウンドソーティング」と呼んでいる。 挿入ソートは、入って来るフラグメントをフラグメントバッファの他のフラグ メントに深さに関してソートすることに関係している。潜在的に挿入ソートは画 像データを発生する処理を減速するから、潜在的にリアルタイムシステムには好 ましくない。入って来るフラグメントの適切な挿入ポイントを見付けるためにフ ラグメントバッファを探すと、望ましくない経費を発生し、加えて、ハードウェ ア手段に関して、追加のハードウェアを必要とすると共にピクセルエンジンの設 計を複雑にする。 挿入ソートの他の方法として、画像プロセッサが画像の一部のピクセルの発生 を完了した後でフラグメントをソートしてもよい。いくつかのシステムは一旦画 像データの全フレームを描出する。そのようなシステムにおいて、観察スペース (view spase)で各ピクセル位置毎にフラグメントをソートすると、特に、リア ルタイムシステムにおいて、実質的な処理時間を必要とすると共に望ましくない 遅延を生ずる。ソートに必要な時間はピクセル当たりのフラグメントの数に応じ て、かつすでに実行されている挿入ソートの程度に応じて変わる。だから、ソー ト動作は他のピクセル動作が生じるのを妨げ、性能を低下させる。 観察スペースの一部を一度に描出することにより、画像の一部のフラグメント を、次の部分をラスタライズしながら、ソートすることができる。本質的に、ア ンティエーリアシングエンジンは、次のチャンクのフラグメントを発生している ときに一つのチャンクのフラグメントをソートする。 ピクセルの発生及び解像が上記のようにオーバーラップしていたとしても、ピ クセルエンジンが画像の部分のピクセルを発生するときに画像の一部のフラグメ ントのソートを、実行することは有益である。ピクセルフラグメントをバックグ ラウンドソーティングすると、ピクセルエンジンが一組のプリミティブのピクセ ルの発生を完了した後におけるフラグメントのソート経費を低減する。 一実施例において、バックグラウンドソーティングは同時に実行され、ピクセ ル動作がフラグメントのソートに必要な呼出時間を低減、場合によっては無くす 。その設計は、たくさんのピクセルが部分的にカバーされ、それ故フラグメント バッファを使用できなくするという効果もたらす。バックグラウンドソーティン グは、この予備のバンド幅を使用してフラグメントバッファの一組のフラグメン トのソートを実行する。 ソートの後で、画像プロセッサは、ピクセル位置のフラグメントを解像してそ のピクセル位置の色調を決定する。アルファが考慮されていなければ、画像プロ セッサはピクセル位置の深さがソートされたリストにおけるフラグメントの色調 及び適用範囲データに基づいて色調の蓄積を計算する。アルファが適用範囲デー タに加えて考慮されるなら、画像プロセッサは、ピクセル位置における深さがソ ートされたリストのフラグメントの色調、適用範囲、及びアルファに基づいて色 調の蓄積を計算する。 一般的に、画像プロセッサは、可視スペース全体、又はその時の可視スペース の一部のみに対応するピクセル位置のフラグメントを解像する。上記の実施例に おいて、画像プロセッサは、チャンクと呼ばれる観察スペースの一部のピクセル 位置を解像する。フラグメントの解像は、フラグメントが発生すると共にソート された後で生じる。 フラグメントの解像は、ピクセルのすべてのフラグメントが単一の色調値とア ルファ値を計算するのに結合される間における処理である。この単一の色調とア ルファは色調バッファの中に書き込まれる(次いで圧縮され、GSPRITEに 格納される)。 解像された色調の計算は、続く層をそれによって基準化(scale)する適用範囲 情報を計算かつ維持しつつ正しく基準化された色調の分布を各層から蓄積するこ とを含む。この蓄積は、前から後ろ、又は後ろから前への深さの順に実行するこ とができる。前から後ろへのアプローチでは、後ろから前へとは反対に、スペー スの適用範囲のデータは続く層の適用範囲を決定するのに使用される。適用範囲 とは異なって、アルファデータがすべてのピクセル領域に等しく適用される。 前から後ろのものでは、ソートされたフラグメントの記録に対する色調とアル ファを計算する式は以下のようになる。 アルファ(Alpha)は最大値(逆アルファ)に初期化され、色調(Color)は0に初 期化される。 Anew=Aold-Aold*Ain); Cnew=Cold+(Cin*(Aold*Ain)); 後ろから前へのものでは、ソートされたフラグメントの記録に対する色調とア ルファを計算する式は以下のようになる。 アルファ及び色は0に初期化される。 Anew=Ain+((1-Ain)*Aold); Cnew=(Cin*Ain)+((1-Ain)*Cold); ハードウェア手段には、解像処理はハードウェアの集中度が少ない(less hard ware intensive)ので前から後ろが好ましい。 フラグメントを深さ、色調、適用範囲のみで(アルファなしで)フラグメント を蓄積する擬似コードの例は以下のように記述される。 NUM_CVG_BITSは適用範囲マスクのビットの数であり、MAX_ALPHAはアルファの 最大値である。 フラグメントを深さ、色調、適用範囲、及びアルファによって蓄積するには、 アルファ値を計算して各サブサンプルのために保持する必要がある。これは、各 フラグメントに対する適用範囲マスクとアルファ値の結合による。一般的に、蓄 積の間にある層で蓄積されたアルファが前の層のアルファ値のすべての機能であ ると言える。適用範囲マスクによって、各サブサンプルは「前の」アルファ値の 異なる組を潜在的に有する。なぜならば、適用範囲ビットが明確である層はその サブサンプルに寄与していない。 アルファと適用範囲によってフラグメントを解像する一つのアプローチはある 層の各サブピクセル(subpixel)の色調を計算し、サブピクセル位置からの寄与度 (contribution)を加えてトータル色調寄与度を決定することである。このアルフ ァのスケールにサブピクセルの色調が乗算されてサブピクセルの色調寄与度を決 定する。ある層の色はサブピクセルからの色調寄与度を合計することにより決定 される。 サブピクセルの色調及びアルファを個別に蓄積する一例は以下の通りである。 四つのサブピクセル位置を使用する例はフラグメントの解像を説明するのに都 合がよい。本例においては、夫々が適用範囲マスク、アルファ及び色調値を有す る三つのフラグメントを考える。最初の状態は下表に示されている。本例におい ては、我々は前から後ろへのアプローチを使用する色調及びアルファを蓄積する 。最初のアルファは十分に半透明を意味する1に設定される。各層のデータは次 の通りである。フラグメント0、アルファ=0.5、適用範囲マスク(cm)= 0011、及び色調=C0;フラグメント1、アルファ=0.3、cm=100 0、及び色調=C1;フラグメント2、アルファ=0.8、cm=0101、及 び色調=C2.各フラグメントのデータは下表で与えられている。 アルファ値 は1に初期化され、アルファの適用範囲のアレイは下記のように示される。 色調を計算するために、各サブピクセル位置の色調値には新しいアルファ及び 適用範囲のアレイからのアルファが乗算される。サブピクセル位置の結果は四つ (サブピクセル位置の数によってわり算されたもの)に分割される。最後に、サ ブピクセル位置のすべてからの寄与度は蓄積された色調を算出するために合計さ れる。 公式Alpha'=Alpha*(Max _alpha-new _alpha)を使用して、画像プロセッサは 新しいアルファを各ピクセル位置に対して個別に計算し、それを下表のアルファ の適用範囲のアレイに格納する。 フラグメント1の寄与度は下表に記載されている。 新しいアルファの適用範囲は次の通りである。 フラグメント2の寄与度は下表に記載されている。 フラグメント2の後のフラグメントのアルファの適用範囲のアレイは次の通り である。 この方法は、アルファの計算及び色寄与度のフラグメント毎の2*NUM _CVG _ BITSの乗算(4×4の場合、2*16=48)を必要とする。適用範囲のマスク におけるビット数が2**nのサイズ(典型的には事実)とすると、(1/NUM_CV G _BITS)の基準化にはズレがある。 図35は、4×4のサブピクセル領域(1224)に分割されたピクセルに対 して上記のアプローチのハードウェア手段を図示する概略図である。解像ハード ウェアはアルファ色調蓄積器(ACA)(1226)と呼ばれる16個の同じ処 理記憶ユニットの組を含み、各ACAはピクセルのうちの一つのサブピクセル領 域専用である。各ピクセル位置のフラグメントリストの処理の間、各フラグメン トの適用範囲マスクは解像ハードウェアの処理マスクとして使用される。ACA は、アルファの基準化、色調蓄積、及びアルファ蓄積の乗算を実行する。(1/NUM _CVG _BITS)の基準化には上記のようにズレがある。一旦すべてのフラグメン トが所定のピクセル位置に対して処理されると、出力部は階層上に16個のサブ ピクセルのすべてを色調及びアルファ値を結合する(1228)。出力用のプロ セッサは入って来る二つの値を結合して、2で割る。ハードウェアをパイプライ ンして、ピクセル解像処理はフラグメントのエントリ毎の単一のハードウェアの フロックのみを使用する。 他の技術は同様に各層で蓄積された同じアルファを有するサブピクセルを処理 することによってハードウェア要求を低減する。この技術は、サブサンプルが蓄 積されたユニークアルファ値を有する状態が徐々に生じるということに基いてい る。最初は、サブサンプルのアルファのすべては0(透明)に設定されている。 最初のフラグメントの蓄積は多くとも一つの特有のアルファ値を加えることがで き、最初のアルファ値を保持しているサブサンプルの1グループと同じ新しいア ルファ値を有する他のグループをもたらす。次のフラグメント蓄積はたった四つ の特有のアルファ値をもたらす。全体としては、「n」個のフラグメントの蓄積 の後で可能性があるユニークサブサンプルのアルファ値の数は2**n(又は、 さらに正確には、MIN(2**n(NUM_CVG _BITS))である。 他の技術は色調の基準化を実行することによって要求される蓄積と、サブサン プル毎よりもむしろサブサンプル内の各特有のアルファ値の蓄積の数を低減する 特性を使用している。この技術によって、せいぜい一つの蓄積が、第1のフラグ メントとして、第2のフラグメントとして二つ、第3のフラグメントとして三つ 、等、ピクセルのサブサンプルの数まで生じる(例えば、4×4のサブサンプル のアレイによって、最悪の場合はフラグメント毎に16個の蓄積が生じる)。 この技術は、フラグメントの蓄積の間特有のアルファ値の組とそれらの関連す る適用範囲のマスクを維持することを基礎としている。その内容は最小数の色の 蓄積を蓄積する。 アルファと適用範囲のマスクは、これらのエントリのあるサブセットがある時 間で実際に効力がある(又は「使用中」)NUM _CVG _BITS要素のアレイに格納 される。「使用中」のエントリは特有のアルファ値の現在のセットを保持するも のである。使用中のエントリビットインデックスにおけるアレイの要素が使用中 であることがビットセットで示されるNUM _CVG _BITSビットのマスクによって 識別される。{ユニークアルファ、適用範囲のアレイ}の対における適用範囲の アレイ中の第1のビットセットはその対が格納されているアレイ要素を規定する という慣例が使用されている。アレイを三つのフラグメントの蓄積によって(三 つのサブサンプルを使用して)初期化されると共に更新する手法として次の例を 挙げる。 最初のアルファの適用範囲のアレイは以下のように記載される。 使用中のマスクは、アレイのマスクに格納されている位置を特定する0001 である。対応するアレイは以下の通りである。 フラグメント0の後で、アルファの適用範囲のマスクは以下のように表される 。 使用中のマスクは0101であり、アレイのマスクは以下の通りである。 設定された使用中のマスクの要素では、アレイのマスクは新しいフラグメント に対して適用範囲のマスクとANDがとられ、アルファ値に変化があるか否かを 判別する。新しいアルファがあれば、アレイのマスクの新しい値は、(アレイの マスク)AND(NOT適用範囲のマスク)で計算される。アレイのマスクに新 しい値があれば、それを適切な位置に格納する。 フラグメント1の後で、アルファの適用範囲のマスクは以下のように表される 。 使用中のマスクは1101であり、アレイのマスクは以下の通りである。 フラグメント2の後で、アルファの適用範囲のマスクは以下のように表される 。 使用中のマスクは1111であり、アレイのマスクは以下の通りである。 ある時点におけるユニークアルファ値の数は使用中のマスクのセットビットの 数に等しい。完全解は二つのステップを含む。第1のステップは、一つの蓄積が 適用範囲/アルファのアレイにおける「使用中」エントリ毎に要求される必要な 色調の蓄積を実行することである。第2のステップは新しいフラグメントの値と 共に適用範囲/アルファのアレイを更新することである。 この技術の(4×4サブサンプルに対する)完全な手段は以下の通りである。 フラグメントリストをスキャンし、かつ最も近いフラグメントを抽出す る(適用範囲,色調,アルファ); 三番目の乗算はサブサンプルの数によっては若干簡素化される場合があること に注意されたい。16個のサンプルに対して、第3の乗算は0.4に固定された 少数(point value)を含み、この乗数は8×4である(ここで、他の乗数は8× 8であろう)。また、2**nのサイズの適用範囲のマスクには、上記した分割 は単にズレであることに注意されたい。 この技術は最低の場合下式による蓄積全部を必要とする。 典型的な場合はこれを大きく下回る。最低の場合は新しいフラグメントの適用 範囲が各「使用中」のアレイ要素に設定値及び未設定値の双方を有するからであ る。 一つの有効な最適化は十分に不透明なアルファ値を有する適用範囲のマスクの 位置をたどって調査することである。これは、フラグメントが不透明でない半透 明値によらずに幾何学的な適用範囲の一部によって発生している場合に有効であ る。これらのフラグメントは通常は十分に不透明な半透明値を有する。この最適 化は、追加的なマスク値、即ち OpaqueAlphaMask を保持することにより実行さ れる。この OpaqueAlphaMask はアルファが十分に不透明であるフラグメントの 適用範囲のマスクにおいてO−リング (O-Ring) によって設定される(これは、 フラグメントの寄与率を蓄積した後で実施される)。対応するサブサンプルに対 して更なる色調の寄与率が生じ得ないので、このマスクは続くフラグメントのマ スク内のビットを 無視するのに使用される。 実行し得る他の最適化は同じアルファ値と位置を統合することである。しかし 、これは装備がかなり高価になり、0でもなくMAX _ALPHA でもない同じアルフ ァ値が発生するだろう。 上記した例及び擬似コードは前から後ろへのソートを使用する。同じ計算を後 ろから前へ深さに関してソートすることは同じように可能である。また、上記の 計算は、アルファ成分が予め乗算されていない色調成分を使用する。同じ技術が 、若干異なる算術計算(及び同じ制御フロー)によって予め乗算された色調成分 に 適用される。 図36は、アンティエーリアシングエンジンにおけるハードウェアの最適化さ れたフラグメント解像サブシステムの具体例を図示するブロック図である。この サブシステムへの入力は、深さに関してソートされたフラグメントの記録の流れ である。ここに示されているように、フラグメントの記録はRGB色調値、アル ファ値、及び適用範囲のマスク(Cov mask)を含む。この特別なフラグメント解 像サブシステムは、前から後ろへの順にフラグメントの記録処理を行うと共に、 各フラグメントの層を処理するときにピクセル位置の色調値を蓄積する。このサ ブシステムは、共通のアルファを有するユニークピクセル領域をたどる調査を保 持するので色調値を蓄積する必要があるハードウェアを最小にし、その結果、フ ラグメント解像サブシステムが、個別に各サブピクセル領域に対してというより むしろ各ユニークピクセル領域に対して一旦色調を基準化すると共に蓄積するよ うになる。 上記の疑似コードに関して記載したように、フラグメント解像システムは、フ ラグメントの記録のリストを解像する前に、使用中のマスク1236、適用範囲 のマスクのアレイ1230、蓄積されたアルファ値のアレイ1230を初期化す る。使用中のマスクの要素1236は、共通の蓄積されたアルファを有する一つ 以上のサブピクセル領域を夫々含む複数のピクセル領域を表示する。適用範囲の マスクはピクセル領域によってカバーされるサブピクセル位置を与える。蓄積さ れたアルファのアレイは共通のアルファを有しかつ対応するピクセル領域の蓄積 されたユニークアルファ値を格納する。この特別な適用範囲のアレイ1236は 蓄積されたアルファ値及び適用範囲のマスクを格納する。 使用中のマスク、適用範囲のマスクのアレイ、及び適用範囲のアレイのアルフ ァを初期化した後で、サブシステムはフラグメントの記録を開始し、観察部分に 最も近いフラグメントの記録を始める。ティラー上のアンティエーリアシングエ ンジン412の一つの手段において、スキャン変換ブロック395及びテクスチ ャフィルタエンジン401がチャンクのラステライズを完了した後、アンティエ ーリアシングエンジンは後処理ステージでフラグメントリストをソートする。ア ンティエーリアシングエンジンはフラグメントリストの各フラグメントの読み込 みを先頭から始めて、かつインデックス及び深さに関してソートされたアレイの 中へのエントリを所々で行う。このアレイ中の各インデックスは、リスト中のピ クセルのフラグメントのRGB、アルファ及び適用範囲データを格納するフラグ メントバッファ位置を示している。ピクセルのフラグメントを読み込むとき、ア ンティエーリアシングエンジンは、アレイのエントリがピクセルのフラグメント 及び対応する深さ値に対して深さに関してソートされたインデックスのアレイか らなるように挿入ソートを実行する。一旦リストがソートされると、フラグメン ト解像サブシステムは、ソートされたアレイの中の各エントリをこれらのエント リがアレイの中に格納されている順に読み込むことによって深さに関してソート されたフラグメントを検索して、その結果、フラグメント解像サブシステムが深 さに関してソートされる順にリスト中のピクセルフラグメントのRGB色調値、 アルファ及び適用範囲マスクを検索する。 リスト中の各フラグメントの記録を処理するときに、サブシステムは共通のア ルファを有するピクセル領域をたどって調査する。サブシステムは、リスト中の フラグメントの記録が共通のアルファを有する各ピクセル領域にオーバーラップ するか否かを判別する。もし、オーバーラップするなら、サブシステムは現在の フラグメントとオーバーラップする現在のピクセル領域の一部の蓄積された色調 を計算する。現在のピクセル領域にオーバーラップがあると、サブシステムはま た、このオーバーラップによって生じる一つ以上の新しいピクセル領域を決定し て、それらをたどって調査する。 現在のフラグメント(1232)に対して、サブシステムは使用中のマスクの 各要素を介してループ化する。適用範囲アレイループ制御装置1234は使用中 のマスク(1236)を維持すると共に、各フラグメントの記録を処理する際に 必要になる更新を行う。使用中のエントリを介してループ化が行われるとき、適 用範囲アレイループ制御装置は新規な適用範囲制御装置1238と接続してその 動作を制御する。新規な適用範囲制御装置1238は、現在のフラグメントが現 在のピクセル領域にオーバーラップするときに必要になる適用範囲のマスクのア レイ及びアルファ1230の更新を行う。 新規な適用範囲制御装置1238は、使用中のマスク中の現在のエントリに関 連する適用範囲のアレイのアルファから格納且つ蓄積されたアルファ(Aold )を読み込み、色調を基準化するのに使用さると共に続くフラグメントの層、A next(1−A*Aold)のアルファを計算するのに使用されるアルファ基 準化ファクタ(A*Aold)を計算する。この新規な適用範囲制御装置123 8は、アルファスケールファク(A*Aold)を、現在のフラグメントの色調 データを基準化するのに使用されるスケール及び蓄積制御装置1246に搬送す る。新規な適用範囲制御装置1238はまた、続くフラグメントの層、Anex t(1−A*Aold)のアルファを計算して、それを適用範囲のアレイ123 0中の対応する適用範囲のアレイのマスクに沿って格納する。 共通の蓄積されたアルファを有する各ピクセル領域に対して、フラグメント解 像サブシステムは、現在のフラグメントがフラグメント及びピクセル領域の適用 範囲マスクの挿入を見つけることにより現在のピクセル領域をオーバーラップす るか否かを決定する。 現在のフラグメントが現在のピクセル領域とオーバーラップするなら、サブシ ステムは、1)ピクセル領域のオーバーラップ部分の蓄積した色調を計算し、か つ2)使用中のマスク及びこの使用中のエレメントの対応する適用範囲のアレイ のマスクびアルファ(適用範囲のアレイのアルファ)を更新する。 スケール及び蓄積制御装置1246は現在のフラグメントによってカバーされ た各ユニークピクセル領域の蓄積された色調を計算する。この基準化及び蓄積制 御装置は、適用範囲スケーラ(scaler)1240、色調スケーラ1242、及び 色調蓄積器1244を含む。適用範囲スケーラ1240は適用範囲基準化ファク タ(現在のフラグメント/全サブピクセル位置でオーバーラップする現在のピク セル領域のサブピクセル位置の数*A*Aold)を計算する。色調スケーラ1 242は現在のフラグメント(1232)の色調値(RGB)を読み込むと共に 、それらに適用範囲スケーラ1240からの適用範囲基準化ファクタを乗算する 。最後に、色調蓄積器1244は更新され蓄積された色調値を計算するために基 準化された色調に蓄積された色調を加える。 現在のフラグメントが現在のピクセル領域にオーバーラップするとき、適用範 囲アレイループ制御装置1234は新しいピクセル領域に対応してエントリを含 むように使用中のマスク1236を更新する。これは、単に現状の使用中の要素 をオーバーライトするか、新しいものを生成することによって行ってもよい。適 用範囲ループ制御装置はまた、適用範囲のアレイのマスク1230を新しいピク セル領域の適用範囲に更新すると共にこの新しいピクセル領域の蓄積されたアル ファを設定するように新規な適用範囲制御装置に指令する。新規な適用範囲制御 装置1238は新しいピクセル領域に対応する新しいアルファの適用範囲のアレ イをAnextに設定する。 現在のフラグメントのみがピクセル領域の一部を(そのすべてをオーバーラッ プするというよりむしろ)カバーするとき、新規な適用範囲制御装置1238は 二つの新しいピクセル領域、即ち、1)現在のフラグメントがオーバーラップす るピクセル領域の一部と、2)現在のフラグメントによって不透明でなくなるピ クセル領域の一部を生成する。この場合、サブシステムは、不透明でない部分の 適用範囲を計算すると共に、それに対してアルファを設定して、元のピクセル領 域と同じままにする。これを達成するために、適用範囲アレイループ制御装置1 234は使用中のマスク1236を更新すると共に、新規な適用範囲制御装置1 238に適用範囲のアレイのマスク1230を更新するように指示する。この第 2のピクセル領域に対応する適用範囲のアレイのアルファのエントリは、現在の フラグメントによっては変化しないので現在のピクセル領域(Aold)と同じ ままである。 上記のように記載されたアプローチを繰り返すと、サブシステムは現在のフラ グメントの使用中の各エントリを介してループ化して、各ピクセル領域中の現在 のフラグメントの効果がある場合はあ、それを計算する。そして、リストが空欄 になるまで、リスト中の続くフラグメントの処理を繰り返す。 クランプ及び調節ブロック1248は蓄積された色調を適切な範囲(これは、 適用範囲スケーラブロックで丸められる必要があり、その結果8ビットの範囲を 超える色調とアルファをもたらす)にクランプすると共に、1を示す8ビット2 進数によって値を基準化することにより導入される誤差を調節する。この方法に よる誤差の調節は、値1が実際には16進法値「FF]で表されるのである状況 で必要である場合がある。換言すれば、0から1のアルファの範囲は00からF Fの8ビット数の範囲で表される。それ故、数xにFFを乗算するときは、結果 はxである。この調節は、FFの乗算結果が適切にxに丸められる。 ピクセルバッファへのフィードバック経路1250は解像されたピクセル値が ピクセルバッファに再び格納されるモードを支持するために存在し、その結果、 解像されたデータのチャンクをティラーから分配されたメモリに送出することな く、解像されたピクセルデータ上にマルチパスを描出させる。 フラグメント解像サブシステムがフィードバックモードにないとき、クランプ 及び調節ブロック1248は、図36に示すように解像されたピクセルデータを データ経路1252を経由してブロックステージ(staging)のバッファに送出 する。これらのブロックステージ(staging)バッファは、解像されたピクセルデ ータをそれが8×8ピクセルブロックで圧縮される前に緩衝記憶するのに使用さ れる。テクスチュアマッピング このイメージ処理装置は多くの進歩したテクスチュアマッピング特徴を有して いる。テクスチュアマッピングのためのそれの支持はテクスチュアデータの異方 性フィルタリングを含む。この装置はリアルタイムでテクスチュアデータの異方 性フィルタリングを実行できる。 我々は、異方性フィルタリングに対する我々の解決法のための基礎を形成する 幾つかの概念を記載することにより始めて、且つそれから実行をもっと詳細に記 載する。 テクスチュアマッピングはイメージを表面にマッピングすることに帰する。対 象物の表面における複雑な詳細は多角形又は他の幾何学的プリミティブを用いて 模型を作ることは非常に難しく、且つそうすることは対象物の計算機費用を大幅 に増大し得る。テクスチュアマッピングがイメージ処理装置に対象物の表面上に 細かい詳細を充分に表現することを可能にする。テクスチュアマップはディジタ ルイメージであり、それを我々は「ソースイメージ」とも呼ぼう。このテクスチ ュアマップは形が典型的に矩形であり且つそれ自信の(u,v)座標空間を有す る。テクスチュアマップの個別の要素は「テクセル(Texel)」と呼ばれる。テク スチュアマッピングにおいては、テクスチュアすなわち「ソースイメージ」がタ ーゲットイメージへマッピングされる。 ディジタルイメージとして、ソースイメージとターゲットイメージとが、普通 は整数(Integer)座標を有する点の格子上の、分離した点においてサンプリング される。ソースイメージにおいては、テクセルが前記の(u,v)座標系内の整 数座標に置かれる。同様に、ターゲットイメージにおいては、画素が(x,y) 座標系内の整数座標に置かれる。 幾何学的変換がいかにしてソースイメージからの点をターゲットイメージへマ ッピングするかを詳述する。この変換の逆がいかにしてターゲット内の点をソー スイメージへマッピングし返すかを詳述する。イメージ処理機は、テクセルのソ ースアレイ内のどこから画素濃度がこなくてはならないかを決めるためにこの逆 変換を用い得る。ソースイメージ内のこの点での濃度はその時付近のテクセルデ ータに基づいて決められ得る。ソースイメージ内へマッピングし返されたターゲ ット内の点は、テクセルの整数座標上に正確に落ちる必要はない。この点におけ る濃度を見つけるために、イメージデータが付近のテクセルから計算される。 ソースイメージ濃度が分離した値で知られるのみであるから、付近のテクセル からの値は補間され且つ結果のデータがそれから低域通過フィルタを通される。 一般に、その解決法は次のように生じる。最初に、ターゲットイメージからソー スイメージ内へ点がマッピングされる。それから、テクセルデータがソースイメ ージ内へマッピングされた点での濃度を復元するために補間される。最後に、分 離したターゲットイメージ内で正確に再サンプリングされるべき領域を高すぎる 領域へ変換するソースイメージ内の空間周波数を除去するために、低域通過フィ ルタが適用される。この低域通過フィルタは仮装する高周波数又は再サンプリン グの故にターゲット内の低周波数の波としての「別名」を除去するので、この低 域通過フィルタはしばしばアンチエイリアス化フィルタと呼ばれる。我々は以下 にもっと詳細にこの概念を記載する。 図37はターゲットイメージの表面1302上の画素1300がテクスチュアマップ1304 の表面へいかにマッピングするかを図解する一例である。この例においては、タ ーゲットイメージからの画素が正方形1306として表現されている。テクスチュア マップ1304上へのこの画素1300の後向きマッピングは届け先表面1302の曲率によ り画素がそれにマッピングできるもっと複雑な形状を近似する四辺形1308である 。テクスチュアへ画素1300をマッピングした後に濃度値がその四辺形内のテクセ ルサンプルから計算される。例えば一つの解決法において、画素の濃度値がその 四辺形内のテクセルの重み付けされた合計を取ることにより計算される。 補間及び低域通過フィルタ機能の双方が、ターゲット内の分離した点へマッピ ングするソース内の各逆変換点を取り囲む点の重み付けされた平均を取ることに より実行される単一フィルタ内へ結合され得る。我々はフィルタのフットプリン トとしてその重み付けされた平均に寄与する点の領域を参照する。一般に、その フットプリントは各ターゲット点に対するソース内で異なる形状を有する。その フットプリントが各点に対して変わり得るので、そのフットプリントの正しい形 状とそのフットプリントの内側の点へ適用するための重み付け係数とを見つける ことは難しい。幾つかの慣習的な装置は、それらの装置がフィルタの寸法に変わ ることを許容するけれども、すべての点においてフィルタに対して同じ形状を使 用する近似を行う。この解決法は、しかしながら、最終イメージ内の歪みへ導き 得る。 我々は等方性フィルタとして可変寸法の正方形か又は円形かいずれかのフット プリントを発生するフィルタにたよる。円形は全部の方向において同じ長さを有 するので、円形が真に等方性である。我々はまた正方形が水平方向と垂直方向と に等しい寸法を有するので、正方形が本質的に等方性であるとみなす。 等方性のフィルタリングはむしろ粗い近似を用いるので、等方性のフィルタリ ングは歪みを発生し得る。実際のフットプリントが高度に延長されたソースイメ ージの範囲において、たとえ寸法が調節できるとしても、正方形又は円形のよう な本質的に等方性形状はフットプリントに対してよくない代用品である。等方性 フィルタは一つの形状のみを有するので、等方性フィルタは延長されたフットプ リント内のテクセルを正確に捕捉できない。例えば、正方形フィルタは一方向に おいて延長された四辺形フットプリントからテクセル値を正確にサンプリングで きない。実際のフットプリントの外側のテクセルをサンプリングすることがブラ ーリングを起こし得る。これに反して、フットプリント内のテクセルをサンプリ ングしないことが、最終イメージにエイリアシングによりきらめかせ得る。 MIP(multum in parvo;小型で内容豊富)マッピングと呼ばれる解決方法に おいては、多くのテクスチュアマップが異なる分解能で記憶される。例えば、一 つのテクスチュアが 512×512 テクセルに有る場合に、この装置は又 256×256 ,128×128,64×64,等でテクスチュアを記憶する。イメージ処理装置はそのテ クスチュア内へマッピングされた画素のフットプリント上で等方性フィルタに対 して最良に適合を見つけるために変化する分解能におけるこれらのテクスチュア マップを使用できる。このイメージ処理機は、最初にフットプリントがフィルタ の寸法に対して寸法が最も近い二つのテクスチュアを見つける。それからこのイ メージ処理機は、二つの中間値を計算するために最も近くにフットプリントと合 致する二つのテクスチュアに対して補間を実行する。最後に、このイメージ処理 機は、この画素に対する値を見つけるために二つの中間値の間を補間する。 MIPマッピングが等方性フィルタに対する改善された結果を与え得るけれど も、MIPマッピングはまだ特にフットプリントが一方向に延長される歪みを発 生する。各点において実際のフットプリントに対するもっと正確なフィルタは、 幾何学的変換の反転により形状が歪まされた本質的に等方性の再サンプリングフ ィルタにより巻きつかれた本質的に等方性の復元フィルタの縦続接続により作り だされ得る。この歪みはフィルタの高度の異方性を発生し得る。変換がもう一つ の方向におけるよりも一方向においてもっと非常にイメージを収縮する場合には 、逆変換がターゲット内の最大収縮の方向に沿ってソース内のフットプリントを 拡張すなわち延長する。エッジに近い遠近関係から平らな表面を見た場合にこれ が起こり得る。等方性フィルタリングにおいては、フィルタが拡大されたフット プリント内のテクセル値を正しくサンプリングできないので、最終イメージはこ の例においては歪まされて現れるだろう。 我々の異方性フィルタリング方法の一実施例は、次の二つのステップを含んで いる。すなわち、1) フィルタフットプリントの最大延長の近似方向を見つける ステップ、及び、2) 実際のフットプリントともっと正確に整合する混成フィル タを作りだすために復元フィルタの出力に対してその方向に沿って再サンプリン グフィルタを適合するステップ、である。 最大延長の方向はターゲットイメージからテクスチュアマップまでのフィルタ の後向きマッピングから引き出され得る。例えば遠近法マッピングにおいて(そ こでは対象物が消失点に向かって次第に消える)ターゲットイメージからテクス チュアまでのn×n画素フットプリントのマッピングが四辺形である。異方性の 線が最大延長の方向を有し且つソースイメージ内へマッピングし返されたターゲ ットからの点を通過する線として定義される。 この実施例においては、イメージ処理機が最大延長の方向を見つけるためにテ クスチュアに対してフィルタフットプリントを後向きマッピングする。イメージ 処理機はそれから最大延長の方向に沿って補間フィルタ(上記に略述した復元フ ィルタ)を掃引する。ターゲットイメージに対する画素値を計算するために、イ メージ処理機は補間フィルタの出力へ再サンプリングフィルタを適用する。 一つの実施においては、再サンプリングフィルタが異方性の線に沿って適合さ れた一次元ディジタルフィルタである。それ故に、我々は特定の一次元フィルタ に対して我々の発明の範囲を制限しようとしない。 この実施においては、補間フィルタは二次元等方性フィルタである。再サンプ リングフィルタについてのように、我々は補間フィルタの特定の種類に対して我 々の発明の範囲を制限しようとしない。二次元等方性フィルタは一つの可能な実 施にすぎない。この補間フィルタが付近のテクセルデータからこれらの値を補間 することにより異方性の線に沿った位置における値を与える。補間フィルタがソ ースイメージへ加えられる分離した位置が、増分で垂直にか又は水平にかのいず れかでステップすることにより及び各位置において異方性の線における値を補間 することにより決められ得る。例えば、異方性の線が水平よりももっと垂直であ る場合には、一つの解決法はテクスチュアの(u,v)座標系における垂直すな わちV方向にステップすることであろう。同様に、異方性の線が垂直よりももっ と水平である場合には、もう一つの解決法はテクスチュアの(u,v)座標系に おける水平すなわちU方向にステップことであろう。 異方性の線に沿ってステップするための一つの可能な方法は、ほぼ最低延長の 長さで平均に間をあけられた、この線に沿った分離した位置で補間フィルタを適 用することである。特に、異方性の線に沿ったサンプリング位置が、画素中心が テクスチュアマップ内へマッピングする点に置かれた中心サンプルを有する最小 延長の長さとほぼ等しい距離で均等に間をあけられ得る。一旦これらのサンプル 位置が計算されると、等方性フィルタが各位置に反復的に適用され得る。例えば 、等方性フィルタが、最小延長の長さに依存するフィルタの寸法により、各サン プルに対する付近のテクスチュアサンプルへの補間を実行するためにサンプル位 置に適用され得る。この方法を実行するための一つの特定の方法は、異方性の線 に沿った各分離した点での3線型補間を実行することである。 デジタルフィルタへ補間フィルタの出力を適用した後で、結果の画素値は異方 性の線に沿った補間フィルタの出力の重み付けされた平均である。我々はここに フィルタの特定の種類を記載しているが、復元及び再サンプリング機能を近似す るために用いられるフィルタの種類は変わり得る。 図38A〜Dは異方性フィルタリングの過程の一例を図解している。図38A〜D はテクスチュアマップ内のテクセル(1400a〜d)を図解し且ついかにして異方 性フィルタが発生され得るかを示している。第1ステップは、ターゲットイメー ジ内の画素位置に対するフィルタフットプリント上で、逆変換を実行することに よりソースイメージ内のフィルタフットプリントを計算することである。この例 においては、テクスチュア1400a内のフィルタフットプリントは、四辺形1402と して図解されている。 次のステップは、ソースイメージ内へマッピングされた点で逆変換マトリック スを近似することである。図38Bに示されたこの例においては、この近似が平行 四辺形1404により表現されている。この平行四辺形が四辺形形状フットプリント を近似する。一般に、この近似が逆幾何学的変換のためのヤコビ行列を計算する ことより見出され得る。我々は図示の目的のためにこの例を単純化したしたけれ ども、逆変換がもっと複雑な場合にも同じ概念が拡張され得る。これが以下に与 えられた付加的な詳細から明らかになるだろう。 再び図38における例を参照して、復元及び再サンプリングフィルタの寸法がヤ コビ行列から引き出され得る。図38Bにおいては、我々は平行四辺形1404として ヤコビ行列を表現している。この平行四辺形の長さが再サンプリングフィルタの 寸法を決めるために用いられ得る。この例においては長さが最大延長の方向1406 に沿って測定され、その方向を我々は異方性の方向とも呼ぶ。同様に、四辺形の 高さは復元フィルタの寸法を決めるために用いられ得る。この高さは最小延長の 方向1408である。 図38Cは平行四辺形を近似する矩形1406を示している。この矩形の寸法は平行 四辺形の高さと長さとに対応している。こお矩形が実際のフィルタフットプリン トの異方性を近似するために用いられる「棒状」フィルタを表現している。 図38Dはいかにしてこの「棒状」フィルタが計算され得るかを図解している。 復元フィルタのフットプリントは正方形1408により表現されている。この例にお いては、復元フィルタは正方形フットプリントを有し且つ従って本質的に等方性 フィルタである。図38D中の線1410により表現される異方性の線に沿った値を計 算するために、値が異方性の線1410の線を取り囲むテクセル(1400d)から補間 される。その復元フィルタは、それ故に、上に記載された補間フィルタである。 このフィルタの出力はその時、再サンプリングフィルタを表現する一次元フィル タへ加えられる。異方性の線1410が再サンプリングフィルタの配向を表現してい る。復元フィルタとして計算される値は、ターゲットイメージのための画素値を 計算するために合計される異方性の線に沿って通される。 上記の解決法は種々の方法で実行され得る。上記の解決法はハードウエア又は ソフトウエアで実行され得る。リアルタイム異方性フィルタリングを支持するた めに、この方法はハードウエアで好適に実行され得る。この解決法の一実施例は タイラー(Tiler)チップ上で実行される。 図9A〜Cに図解されたタイラーにおいては、異方性フィルタリングが走査変 換ブロックとテクスチュアフィルタエンジンとで支持される。走査変換ブロック がソースイメージ内の点での逆幾何学的変換の偏導関数のヤコビ行列を取ること により、再サンプリング及び復元フィルタのための制御パラメータを計算する。 そのヤコビ行列が逆変換に対する最良局部アフィン近似の線型部分を表現してい る。もっと詳細に言えば、それは所望のソース点の周りに集中された逆変換の二 次元でのテイラー数列の一次部分である。 テクスチュア座標からスクリーン座標へのアフィン変換の線型部分は、2×2 ヤコビ行列Jを有し、スクリーン座標からテクスチュア座標への逆変換はヤコビ 行列J-1を有する。行列J-1の2行ベクトルの長さは単位寸法の画素に対する平 行四辺形の2辺の長さである。逆ヤコビ行列における2行ベクトルの成分が平行 四辺形の2辺の長さを決定する。 この変換は走査変換ブロックが各プリミティブを走査するように走査変換ブロ ックが評価する属性エッジの式の形を取る。以下の式が典型的である。 Fs/w=As/wX+Bs/wy ここで、画素位置(x,y)において; 1) Fs/wは均質座標(w)により分割されたテクスチュア座標(s)の値で ある。 2) As/wはx座標に対する均質座標(w)により分割されたテクスチュア座 標(s)の勾配の値である。 3) Bs/wはy座標に対する均質座標(w)により分割されたテクスチュア座 標(s)の勾配の値である。F,A及びBはプリミティブの走査開始点に対して 全部正規化されている。走査変換ブロックはl/w,s/w及びt/w に対するエッジの 式を評価する。 逆ヤコビ行列素子が平行四辺形の辺の長さと面積とを与える。近似する矩形の 面積と矩形の長辺とが同じであり、矩形の短辺は(s,t)座標系におけるx及 びy軸の間の角のsin により乗算された平行四辺形の短辺である。 逆ヤコビ行列に対する導関数は、各テクスチュア座標(s,t)におけるエッ ジの式のFs,As及びBsから直接引き出す。 ヤコビ行列を見出した後に、その走査変換ブロックが2行ベクトルの長い方を 見出す。このベクトルの方向が最大延長の線の方向すなわち異方性の線の方向を 表現する。この行ベクトルの長さの他方のベクトルの長さに対する比率は異方性 の比率と呼ばれる。一次元異方性フィルタの長さはこの比率から決められる。異 方性比率により分割された長い方のベクトルの長さが復元フィルタの幅を制御す る。 長い方の辺が主軸となり且つテクスチュア座標においてステップする(クロッ クする)場合に増大されるべきスクリーン座標を決めるために用いられ得る。そ れは増分の大きさの決定のためにも用いられ得る。 ステップ寸法DsDc及びDtDcはテクスチュアフィルタエンジンへの基本的入力で あり、そのテクスチュアフィルタエンジンがサンプリングとフィルタリングとを 実行する。これらのステップが(多くとも)7度による正しくない配向を発生し 、それは等辺平行四辺形の場合に起こる。 この実施においては、短い方のベクトルの長さは、異方性比率がプリセットさ れた制限を越えない限り、復元フィルタの幅を普通は近似する。この制限を越え た場合には、異方性比率はその計算中にこのプリセットされた制限により置き換 えられる。この方法において比率を制限することが、フィルタが値を計算するた めのテクセル点の予め決められた数よりも多く用いるのを防止する。かくして、 その比率上の制限がいかに長く復元フィルタが出力値を計算することを必要とす るかについての境界を置く。 いずれかのベクトルの長さが1よりも小さい場合に、もう一つの制限する場合 が生じる。この場合においては、ベクトルの実際の長さが1の長さにより置き換 えられる。フィルタ長さが補間を実行するために決して短すぎないことをこれが 保証する。 走査変換ブロックがそのフィルタに対する制御パラメータを計算した後に、走 査変換ブロックはそれから画素値を計算する。一次元デジタルフィルタが補間フ ィルタからの出力の重み付けされた平均を計算する。その補間フィルタが、異方 性の線に隣接するソースイメージから、テクセルデータを補間することによりこ の出力を計算する。 この補間フィルタの寸法は最大延長の方向と垂直な方向で測定されたフットプ リント幅を近似するために調節され得る。変換が収縮するイメージの範囲内に生 じるフットプリントが大きい場合には、ソースイメージの多くの点が単一出力点 を発生するためにフィルタ重み付け係数により乗算されねばならず、それが非常 に遅いすなわち費用のかかる実施となる。 上に紹介したように、現存する等方性フィルタリング装置がMIPマッピング を用いることにり計算時間を低減する。MIPマッピングはソースイメージに基 づいてイメージピラミッドを形成することに帰し、且つその時ソースイメージ上 で等方性フィルタに対する最良の適合を見出すために、このピラミッド内のイメ ージを用いる。このピラミッドの各レベルがサンプリング濃度でそれの下のレベ ルと比較して各寸法で2の係数だけ低減される。このピラミッドの底は元のソー スイメージである。低減されたサンプリング濃度のイメージを補間することが、 フットプリントが低減された濃度へ元のサンプリング濃度の比率により、補間装 置のフットプリントに対して拡大される等方性フィルタによって元のイメージを フィルタリングするのと類似の効果を発生する。かくして、フットプリントの二 つの拡大の力が補間するためのピラミッドの正しいレベルを選択することにより 達成され得る。拡大のあらゆる比率が所望の比率をひとまとめにする二つのピラ ミッドレベルの補間の結果を混合することにより得ることができる。 一実施例においては、等方性フィルタの寸法がMIPマッピング解決法を用い ることにより、最小延長の長さともっと詳細に適合するように修正され得る。ヤ コビ行列を解析することにより決められた等方性フィルタ寸法は、ひとまとめに するピラミッドレベルと混合係数とを選択するために用いられ得る。一つの実施 において、基本ピラミッドレベルはフィルタ寸法の底2の対数の整数部分であり 、且つ混合係数は少数部分である。 特定の例が上述の特定の実施の動作を図解するのを助ける。所望の等方性寸法 が3である場合は、log23は1.583 と等しい。この結果の整数部分は1であり、 それがそれぞれ2及び4の濃度低減によりレベル1及び2を選択する。レベル0 は低減無しよる元のソースイメージである。混合係数は0.585 である。 一つの実施において、テクスチュアフィルタエンジンが混合を延期する。最初 に、テクスチュアフィルタエンジンが、各レベルにおいて所望の点に集中された 異方性比率と比例する長さの1−Dフィルタを適用する。それからテクスチュア フィルタエンジンが各レベルからの出力を混合する。 代わりの実施においては、テクスチュアフィルタエンジンが異方性の線に沿っ てステップし、且つこの線に沿って分散するサンプルにおいて3線型補間を実行 する。テクスチュアフィルタエンジンが、それから各サンプルにおいて3線型補 間の結果に対して一次元フィルタを適用する。 補間フィルタの寸法を制御することに加えて、再サンプリングフィルタの寸法 もまた制御され得る。一つの実施においては、テクスチュアフィルタエンジンが 種々の寸法の1−D再サンプリングフィルタのための係数の表を用い、且つ表内 の特定された寸法の間の寸法のフィルタを作るために、それらの間で混合する。 高速ハードウエアに対して特に有効な実施は2の累乗としてフィルタ長さを選択 することであり、且つ三角あるいは台形形状を有するようなフィルタインパルス 外形を選択することである。個別のフィルタはこの時非常に単純な係数を有し、 且つ乗算の成果はハードウエアにおける少しだけの加算とシフトへ低減されされ る。 以下は2の最初の4累乗に対するこれらのフィルタに対する係数の表である。 この例においては、異方性比率の2を底とするlog がレベル及び混合係数を選 ぶために用いられている。レベルが4を越えると、テクスチュアフィルタエンジ ンが最後のフィルタを用い、且つ混合しない。この例においては、全部のフィル タが1の利得を有し、全部のそれらの係数が1へ加えることを意味している。1 ,2,4及び8による乗算はシフト動作により実行される。3,5及び6による 乗算は一回の加算に1回のシフト動作を加えることより実行され得る。最後に、 7による乗算は一回の減算と複数のシフト動作とにより実行され得る。2の累乗 による除算はシフトするだけである。15による除算は、2を底とする1.00010001 による乗算とそれに続く4位置のシフト(16による除算)によりきわめてよく近 似され得る。乗算は二つの加算のみである。 上述の解決法が合成フィルタの制御に二つの自由度を可能にする。上述の実施 例においては、自由度は最小及び最大延長の方向におけるフィルタの大きさであ る。この解決法が、大いに非線形なマッピングの結果であり得る各点での真のフ ットプリントを計算する費用無しに、非常に少ないえイリアシング及びブラーリ ングを有するイメージを発生する。この解決法が異方性の線に沿って実際のフッ トプリントフィルタを掃引する連続フィルタを近似する。その解決法が異方性の 線に沿った「棒状形状」フィルタを生じるので、その解決法が円形又は正方形よ りも実際のフットプリントの非常に良好な適合を達成する。我々は、リアルタイ ム図形レンダリング装置にこの方法を実施した。それ故に、この方法がまだリア ルタイム速度を維持しながら、異方性フィルタリングによる高品質テクスチュア マッピングを支持し、すなわち10Hzより大きい速度で且つ特に表示装置のリフレ ッシュ速度(例えば75Hz)でイメージデータの新しいフレームを計算する。 図39はテクスチュアフィルタエンジン(401,図9B)の一実行を図解するブロ ック線図である。このテクスチュアフィルタエンジンが画素待ち行列(図9Bにお けるテクスチュア基準データ待ち行列399 ;Pixel Queue)からテクスチュア基準 データの事例を読み取り、且つアルファ及びカラー値(アルファ、及びRGBカ ラー係数)又はこれらの事例に対するシャドウ係数を計算する。この実行がテク スチュアフィルタリングとシャドウフィルタリングとの双方を支持する。テクス チュアマッピング動作に対して、テクスチュアフィルタエンジンがテクスチュア カラーとアルファとを計算し、且つアルファとカラー係数とを計算するためにテ クスチュアカラーをフィルタリングする。シャドウイング動作に対して、テクス チュアフィルタエンジンが深さ比較を実行し、且つシャドウ減衰係数(s)を計 算するために結果の値をフィルタリングする。 画素待ち行列が(図9B内の走査変換ブロック395 ような)ラスター化装置からテ クスチュア基準データを受け取り、且つテクスチュアフィルタエンジン401 に対 する先入れ先出しバッファとして働く。この「サンプル有効」データが、テクス チュアキャッシュ (Texture Cache)から引き出されたテクスチュア又はシャドウ マップ素子の集合内のどのサンプルが現在のフィルタリング動作に対して有効で あるかを特定する。 テクスチュアマッピング動作に対して、テクスチュア基準データはテクスチュ ア(s,t)内へマッピングされた画素位置の座標を含んでいる。3線型MIP マッピングを支持するために、入力は二つの最も近いMIPマップレベル ((hi, lo)と詳細なレベル(LOD)に対する(s,t)座標を含む。「積算スケール 」データがカラー成分補間装置の出力端子へ加えられる重み付け係数を制御する ために用いられる。「延長制御(Extend Control)」データはテクスチュア延長 モードを制御するデータビットである。テクスチュア延長モードはテクスチュア 要求がテクスチュアマップ範囲の外側にある場合に、クランプ、ラップ又は反射 動作のいずれかを実行するためにテクスチュアフィルタエンジンに指令する。 シャドウイング動作に対して、入力はサンプルインデックス、シャドウマップ 内へマッピングされた画素位置の(s,t)座標、及び所定の画素位置に対する 光源からの幾何学的プリミテブの深さを表現するベータを含んでいる。このサン プルインデックスは、シャドウフィルタがシャドウマップ素子すなわち「サンプ ル」上で動作する特定の方法に関係している。この特定の実施では、テクスチュ アフィルタエンジンがクロックサイクル当たり8サンプルに動作する。シャドウ フィルタリングの場合には、これらのサンプルが4×2グリッドに対応する。例 えば、シャドウフィルタは4×4モード(4×2+4×2=4×4)に対するサ ンプルの2集合と8×8モードに対する8集合との全部に動作する。4×4モー ドの場合には、シャドウフィルタが4×4の全体フットプリント内の上側左、上 側右、下側左、及び下側右の3×3ブロックへ各々1個に、3×3フィルタを4 回適用する。第1クロックサイクルにおいては、それが上側の4×2グリッドを 処理し、且つ第2クロックにおいてはそれは下側の4×2グリッドを4×4ブロ ックにおいて処理する。このサンプルインデックスは現在処理されている8サン プルの集合を確認するために用いられるインデックスである。このサンプルイン デックスは、4×4の場合に対しては2クロックサイクルを通して、また8×8 の場合に対して8クロックサイクルを通してステップし、且つどの4×2部分集 合が現在処理されているかを確認する。 図41に示されるように、テクスチュアフィルタエンジンがキー発生器1310、分 数制御器1312、カラー成分補間装置1314、シャドウフィルタ積算機1316、及び積 算機及び後処理機1318を含んでいる。 テクスチュアマッピング動作において、キー発生器1310が(s,t)座標とL ODとを読み取り、且つテクスチュアキャッシュから対応するテクスチュアデー タを引き出すためにキャッシュキーを発生する。テクスチュアキャッシュがテク スチュア要求に応じてアルファとRGB成分とを返す。分数制御器1312が入力と して(s,t)座標を受け取り、且つカラー成分補間装置1314において2線型の 動作と3線型補間装置との双方又はいずれか一方を制御する。カラー成分補間装 置1314が補間さたアルファとRGB成分とを計算するためにテクセルサンプルを 補間する。積算機及び後処理機1318がそれからアルファとRGB成分とをスケー リングし、スケーリングされた成分を積算し、且つ現在処理されている画素位置 に対応するアルファとカラー係数とを出力する。これらのアルファとカラー係数 とはテクスチュア変調(Textur Modulation)過程への入力として、画素エンジン へのカラーとアルファ値入力となる。 異方性テクスチュアマッピングにおいて、カラー成分補間装置1314が異方性の 線に沿って進み、且つ各ステップにおいて3線型補間を実行する。積算機1318が 一次元フィルタとして働き、アルファとカラー成分とをスケーリングし、且つそ れからスケーリングされた成分を積算する。一つの特定の実施例においては、積 算機1318が異方性の比率に基づいた台形又は三角形フィルタリングを用いてアル ファ及びカラー成分をスケーリングする。両方の場合に、フィルタのエッジにお けるロールオフを近似するために再サンプリングフィルタの遠い縁での成分を積 算機がスケーリングする。台形フィルタリングを達成するために、スケールファ クタはフィルタのエッジにおける線型ロールオフに対応し、且つフィルタのエッ ジの間のステップにおいて一定である。 一つの特定の実行において、異方性の線に沿ってステップすためのスケールフ ァクタが次のように計算される。1対1から2対1までの異方性比率に対して、 この積算機は異方性ウォーカーの各ステップにおいて0.5 の重み付け係数を適用 する。2対1及びそれより大きい異方性比率に対しては、積算機はステップn< (異方性−1)/2に対して1/異方性による成分を重み付けし、且つ(異方性 −1)/2より大きいか又はそれに等しいnに対して 0.5(異方性−2n)/異 方性による成分を重み付けする。この特定の例における異方性比率は逆ヤコビ行 列に対して最もよく適合する矩形の短辺に対する長辺の比である。逆ヤコビ行列 は視野空間座標からテクスチュア座標(すなち(x,y)座標から(s,t)座 標)への幾何学的変換の偏導関数のマトリックスである。異方性の線は逆ヤコビ 行列の長い方の列ベクトルの方向における(s,t)座標を通る線である。 シャドウイング動作に対して、キー発生器1310がシャドウマップ内へマッピン グされた画素位置の(s,t)座標を読み取り、且つキャッシュキーを発生する 。テクスチュアキャッシュが、シャドウフィルタ積算機1316へシャドウマップ素 子(シェイデル;shadel)を返す。シャドウフィルタが入力としてシャドウインデ ックスとベータとを受け取り、且つシャドウマスクを発生するためにフィルタフ ットプリント内の深さ値と光空間内の画素データの現在の例の深さを比較する。 シャドウフィルタ積算機がシャドウマスク内の素子を合計し、且つサンプルの数 によりその合計を割り算する。この実行において、テクスチュアフィルタエンジ ンが深さ比較ステップの結果に対して台形フィルタを適用することにより、フィ ルタフットプリントのエッジにおいて円滑なロールオフを達成する。台形フィル タを実行するために、シャドウ積算フィルタがそれぞれ4×4又は8×8フィル タフットプリントに対して4回3×3又は7×7ボックスフィルタを適用するこ とにより、4個の予備シャドウ係数を計算し、且つカラー成分補間装置1314のう ちの一つへその4個の予備係数を送る。このカラー成分補間装置1314が最終シャ ドウ係数を計算するためにそれらの予備係数に2線型補間を実行する。 上に紹介したように、キー発生器1310が画素待ち行列から(s,t)座標を読 み取り、且つテクスチュアキャッシュからテクスチュアデータを引き出すために キャッシュキーを発生する。図40はもっと詳細にこのキー発生器を図解するブロ ック線図である。hi and lo MIPマップ(二つの最も近いMIPマップ)内の (s,t)座標に基づいて、キー発生器がそのhi and lo MIPマップ内のテク スチュアサンプル位置を計算する(1340)。このキー発生器がそれからこれらの サンプルからキャッシュキーを計算する(1342)。このキー発生器がキャッシュ キー、(s,t)座標、及びhi and lo MIPマップレベルに対するLODを、 要求されたテクスチュアサンプルを返すテクスチュアキャッシュへ転送する。勿 論、1個だけの詳細なテクスチュアマップレベルが用いられる場合には、このキ ー発生器は1個のテクスチュアマップに対してのみキーを発生する。 図39における分数制御器1312がテクスチュア又はシャドウマップ内のサンプル 間及び3線型補間のためのMIPマップレベル間の補間を制御する。2線型補間 を支持するために、分数制御器がテクスチュア又はシャドウマップ内のサンプル 間の重み付けを制御する。3線型補間を支持するために、分数制御器が二つの最 も近いMIPマップレベル内へマッピングされた点に対して4個の最も近いサン プルの間で補間すること(2線型補間)を補間装置に指令し、且つそれから二つ のMIPマップレベルからの結果を混合するために線型補間を指令する。この分 数制御器は入力としてhi and lo MIPマップレベルに対するLOD及び(s, t)座標を受け取り、且つ各MIPレベルにおけるサンプル間とMIPマップレ ベル間の補間を制御する。 カラー成分補間装置1314はアルファ及びRGBカラー成分のための補間装置を 含んでいる。図41はもっと詳細に4個の補間装置のうちの一つを図解しているブ ロック線図である。この補間装置は一つの成分に対するカラー成分補間を取り扱 い、且つシャドウ係数に2線型補間を実行する。他のカラー成分補間装置はカラ ー成分のみを取り扱う。 このカラー成分補間装置はテクスチュアキャッシュからテクセル又はシャドウ マップ素子を受け取り、且つそれらをマルチプレクサ(MUX)のバンク1350へ加え る。マルチプレクサのバンク1350へ入力する場合に、サンプル有効データがどの サンプルが有効であるか、すなわち現在のテクスチュア又はシャドウイング動作 に用いられるべきサンプルを確認する。サンプル有効制御信号に基づいて、それ らのマルチプレクサが入ってくるサンプルか又はテクスチュア背景カラー1352か のいずれかを選択する。シャドウイング動作に対しては、カラー成分補間装置13 14がシャドウフィルタ積算機1316へシャドウ素子を送る。3つのカラーチャネル が単一の24ビット幅シャドウマップ素子を形成するために用いられ、且つアルフ ァチャネルがシャドウイング動作において無視される。テクスチュアマッピング 動作に対しては、カラー成分補間装置が線型補間装置(Linear Interpolator)の 段1354,1356及び1358へテクスチュアサンプルを転送する。 3線型補間においては、カラー成分補間装置が3段の線型補間装置を用い、2 段は各MIPマップレベル(1354,1356)におけるサンプルの間の補間のためで あり、且つもう一つは各MIPレベル(1358)からの結果を混合するためである 。カラー成分補間装置が4個のフィルタフットプリントから計算されたシャドウ 係数を結合するために2線型補間を実行する。図43に示されたように、この2線 型補間を実行するために、最後の2段(1356及び1358)が用いられる。マルチプ レクサの第2バンク1360が4個のシャドウ係数と線型補間装置の第1段1354の出 力との間で選択する。テクスチュアマッピングとシャドウ動作との双方において 、カラー成分補間装置が積算機及び後処理機1318へそれらの補間装置段の出力を 転送する。 シャドウフィルタ積算機1316が画素待ち行列からサンプルインデックス及び光 深さ値(ベータ)を受け取り、シャドウマスクを発生するためにその光深さ値を テクスチュアキャッシュから返されたシャドウマップ素子と比較し、且つ予備シ ャドウ係数を計算するためにそのシャドウマスクをフィルタリングする。図44は もっと詳細にシャドウフィルタ積算機を図解するブロック線図である。シャドウ フィルタ積算機内の深さ比較器がフィルタフットプリント内のシャドウ素子の深 さを比較し、且つシャドウマスクを発生する。この特殊の場合において、シャド ウマスクはフィルタフットプリントの4×2部分に対応するブール値による8ビ ットである。 フットプリント制御器1372が画素待ち行列からサンプルインデックス値に基づ いて全体フットプリントの現在の4×2部分を選択する。フットプリント制御器 がクロックサイクルとフィルタリングモード(2×2,4×4又は8×8)とに 基づいて4個のシャドウ寄与ブロックの各々へフットプリントマスクを転送する 。そのフットプリントマスクが8シャドウマスク素子のうちのどれが、4×4及 び8×8モードにおいて、4個のボックスフィルタの各々に対して現在のクロッ クサイクルにおいて有効であるかを示す。2×2モードにおいては、シャドウフ ィルタ積算機が4個の最も近いサンプルの各々がシャドウ内にあるか無いかのい ずれかを示す4個のブール値を出力する。 シャドウフィルタ積算機がフィルタフットプリント内のサンプルへ4ボックス フィルタ(例えば、3×3又は7×7)を適用する。シャドウマスクのどの素子 が現在のクロックサイクルに対して有効であるかを決め且つそれからそれらの有 効な素子を合計するために、シャドウ寄与ブロックの各々がフットプリントマス クとシャドウマスクとを結合する。全体のフィルタフットプリントに対するシャ ドウマスク内の有効な素子を積算した後に、シャドウ寄与ブロックが予備シャド ウ係数を計算するためにサンプルの数によりその合計を除算し、それらがカラー 補間装置内の2線型補間段へ転送される。カラー補間装置がそれから最終シャド ウ係数を計算するために4個の予備シャドウ係数の間を補間する。 積算機及び後処理機1318がカラー成分補間装置1314からアルファ及びカラー成 分を受け取り、且つテクスチュア基準データの各例に対してカラーとアルファ係 数とを計算する。シャドウイング動作に対して、テクスチュアフィルタエンジン はシャドウ減衰係数を計算するために1チャネル(アルファ又はRGB)を使用 する。シャドウフィルタリング論理は別々にも実施され得る。図43はもっと詳細 に積算機及び後処理機を図解するブロック線図である。図示のように、各カラー 成分(アルファ及びRGB)はスケール及び積算機を有している。各成分に対す るスケール及び積算機1380は入力として積算スケールとカラー成分とを受け取り 、且つ応答して、カラー成分をスケーリングし且つそれを成分合計ブロック1382 内の積算された成分値へ加える。例えば、異方性フィルタリングにおいて、テク スチュアフィルタエンジンが異方性の線に沿って進む時に、スケール及び積算機 ブロック1380が復元フィルタ(3線型補間装置)の出力を重み付けする。最後の ステップの後に、アルファ及びRGB成分のためのスケール及び積算機が最終カ ラー成分係数を出力する。 シャドウイング動作に対して、スケール及び積算機ブロックは多数動作を迂回 するが、周囲オフセットを加える。この周囲オフセットが全体的にシャドウ内の 平坦な対象物がまだ見えることを保証する。例えば、1のシャドウ係数が全体に 照明されたことを意味し、0のシャドウ係数が全体にシャドウ内であることを意 味している。カラーが0の係数により乗算された場合には、対象物がその画素位 置では見えなくなる。かくして、オフセットが加えられ、且つシャドウ係数が、 オフセットシャドウ係数がオフセット値から1までに配列するように1へ留めら れる。 シャドウ後処理機1384は全部で3個のカラーチャネルに対して、及び(条件付 きで)アルファチャネルに対して、スカラーシャドウ減衰「s」の模写を行う。 シャドウイメージを計算することのためにシャドウ減衰の条件付き補数化(s= 1−s)もある。シャドウイメージは、シャドウ係数のアレイあるいはgスプラ イト(gsprite)をシャドウイングするために用い得るシャドウ係数の補数のアレ イである。 最後に、マルチプレクサ段1386が、シャドウイング動作のためのシャドウ係数 か、又はテクスチュアマッピング動作のためのRGB及びアルファ成分のいずれ かを選択する。要するに、テクスチュアフィルタエンジン401 がシャドウイング 動作とテクスチュア化動作との双方を実行する。テクスチュアフィルタエンジン がテクスチュア変調段へテクスチュアマッピング動作の結果を送る。テクスチュ ア変調は典型的に、補間されたカラー又は走査変換ブロックにおいて計算された カラー値によりテクスチュアフィルタからのRGBカラー値を乗算することを含 んでいる。それに加えて半透明性を有する図式的対象物に対して、テクスチュア 変調は走査変換ブロックからの補間されたアルファ値によりテクスチュアフィル タからのアルファ値を乗算することも含み得る。この実行に依存して、テクスチ ュア変調はテクスチュアフィルタエンジン (図9Bにおける素子401)又は画素エン ジン(図9Bにおける素子406)において実行され得る。それはまた走査変換ブロッ ク(図9Aにおける素子394 又は図9Cにおける素子397)においても実行され得る。 一つの実行においては、テクスチュアフィルタエンジン401 が補間された値を、 構成される値を計算するためにフィルタリングされた値と結合する。画素エンジ ン406 がその時構成された値を記憶するか又は対応するRGB成分又は対応する 画素位置に対する画素か又は断片バッファ内に記憶されたアルファ成分と結合す るかどうかを決定する。 シャドウイング動作の場合においては、シャドウ係数が画素又は断片バッファ 内の対応する画素位置におけるRGB及びアルファ値へ、又は現在の通路の間に 発生され且つ待ち行列内でバッファされた、補間されたRGB又はアルファ値へ 加えられ得る。例えば、対象物がそれに関連するテクスチュアを有さない場合に は、テクスチュアフィルタエンジン401 内のテクスチュア変調器が、積算機及び 後処理機からのシャドウ減衰係数により、見つけられたイメージを表現し且つテ クスチュア標準データ待ち行列391(図9B)内に記憶された、補間され且つ未解決 のRGB及びアルファ値を乗算できる。 我々は幾つかの実施例を参照してイメージ処理装置、それの構造、及び関連す る方法の種々の態様を記載してきた。我々は詳細に幾つかの実施例を記載してき たが、我々はこれらの特定の実施例に我々の発明を制限するつもりはない。例え ば、我々の新奇な構造は、手作業装置からワークステーションへ配列されるコン ピュータ装置、ゲームプラットフーム、セットトップボックス、図形処理ハード ウエア、図形処理ソフトウエア、及びビデオ編集装置を、含むけれどもそれに制 限されない種々のハードウエア設備へ適用され得る。我々の装置と方法との変形 はハードウエア又はソフトウエアあるいはそれら双方の組み合わせで実行され得 る。 我々の発明の原理が置かれ得る多くの可能な態様の範囲において、我々は上述 された詳細な実施例が図解のためのみであり、且つ我々の発明の範囲を制限する ものとして取られるべきではないことを強調する。むしろ、我々は引き続く請求 項及びそれらの請求項と等価な請求項の範囲と精神との中に入り得るような全部 の態様を我々の発明として請求する。
───────────────────────────────────────────────────── フロントページの続き (31)優先権主張番号 08/671,412 (32)優先日 1996年6月27日 (33)優先権主張国 米国(US) (31)優先権主張番号 08/671,506 (32)優先日 1996年6月27日 (33)優先権主張国 米国(US) (31)優先権主張番号 08/672,347 (32)優先日 1996年6月27日 (33)優先権主張国 米国(US) (31)優先権主張番号 08/672,425 (32)優先日 1996年6月27日 (33)優先権主張国 米国(US) (31)優先権主張番号 08/672,694 (32)優先日 1996年6月27日 (33)優先権主張国 米国(US) (81)指定国 EP(AT,BE,CH,DE, DK,ES,FI,FR,GB,GR,IE,IT,L U,MC,NL,PT,SE),OA(BF,BJ,CF ,CG,CI,CM,GA,GN,ML,MR,NE, SN,TD,TG),AP(KE,LS,MW,SD,S Z,UG),UA(AM,AZ,BY,KG,KZ,MD ,RU,TJ,TM),AL,AM,AT,AU,AZ ,BB,BG,BR,BY,CA,CH,CN,CZ, DE,DK,EE,ES,FI,GB,GE,HU,I L,IS,JP,KE,KG,KP,KR,KZ,LK ,LR,LS,LT,LU,LV,MD,MG,MK, MN,MW,MX,NO,NZ,PL,PT,RO,R U,SD,SE,SG,SI,SK,TJ,TM,TR ,TT,UA,UG,UZ,VN (72)発明者 トルボーグ ジョン ジー ジュニア アメリカ合衆国 ワシントン州 98052 レドマンド エヌ イー フィフティース ウェイ 16407 (72)発明者 ケンワーシー マーク エル アメリカ合衆国 ワシントン州 98019− 7806 デュヴァル エヌ イー ワンハン ドレッド セヴンティー セカンド スト リート 30330 (72)発明者 トール マイケル アレン アメリカ合衆国 ワシントン州 98008 ベールヴ ワンハンドレッド シックステ ィース プレイス エヌ イー 2898 (72)発明者 グリフィン ケント イー アメリカ合衆国 ワシントン州 98008 ベールヴ ワンハンドレッド シックステ ィセヴンス プレイス エヌ イー 2511 (72)発明者 レングイェル ジェローム エドワード アメリカ合衆国 ワシントン州 98108 シアトル エヌ フォーティセカンド ス トリート 1808 (72)発明者 ガブリエル スティーヴン エイ アメリカ合衆国 ワシントン州 98052− 3256 レドマンド エヌ イー ナインテ ィース ストリート 17756 アパートメ ント エヌ−372 (72)発明者 ヴェルス ジェイムス イー アメリカ合衆国 ワシントン州 98072 ウッディン ヴィル ワンハンドレッド セヴンティファースト レイン エヌ イ ー 14029 (72)発明者 チャウヴィン ジョセフ ダブリュー アメリカ合衆国 ワシントン州 98029 イサッカ エス イー サーティエイス プレイス 24205 (72)発明者 グッド ハワード アメリカ合衆国 ワシントン州 98105 シアトル エヌ イー フォーティサード ストリート 711 (72)発明者 パウエル ウィリアム チャンバース ザ サード アメリカ合衆国 ワシントン州 98122 シアトル シックスティーンス アヴェニ ュー 817 【要約の続き】 る。テクスチュアアクセシシングの待ち時間はテクスチ ュア標準か又はテクスチュアデータがメモリから引き出 される時に、部分的にレンダリングされた画素データを 緩衝するための「画素待ち行列」かのいずれかを用い て、あるいはテクスチュア要求を発生するための前置ラ スター化装置と、その前置ラスター化装置により発生さ れたテクスチュア要求の結果として引き出されたテクス チュアを完全に用いてプリミティブをラスター化するた めの後ラスター化装置とを用いて、低減される。この装 置は、テクスチュアすなわちMIPマッピングされたテ クスチュア内へマッピングされた画素位置に対して計算 された異方性の線に沿ってテクスチュアデータを反復的 にサンプリングすることにより、テクスチュアデータの 異方性フィルタリングを支持する。

Claims (1)

  1. 【特許請求の範囲】 1.スクリーンの位置には固定されずに潜在的可視対象物を与えるべき光景もし くは観視空間の二次元領域内の潜在的可視対象物を識別し、 その二次元領域を複数の映像部分もしくは映像塊に分割し、 潜在的対象物の対象図形を複数の映像部分もしくは映像塊に類別し、 光景内のすくなくとも一つの対象物について前記識別、分割および類別の各 過程を反復し、 与えた第1映像層を形成するために、二次元領域の少くとも二つの映像部分 もしくは映像塊について連続的に与えた対象図形を含む光景を与えるとともに、 第2映像層を形成するために、光景内の少くとも一つの対象物について連続的に 与える過程を反復し、 映像層の各部分を表示映像に合成し、 以上の各過程を反復して後続の映像群を表示する 各過程を備えて、物理的出力装置の枠もしくはその他の観視空間に表示するた めの映像群を発生させる方法。 2.与えられた映像を形成するために、光景の各映像塊に対する対象図形を連続 的に与える請求の範囲1記載の方法。 3.前記少くとも二つの映像塊に対する対象図形を共通深度のバッファに与える 請求の範囲1記載の方法。 4.光景が複数の対象物を含み、対象図形を複数の映像部分もしくは映像塊に類 別する過程が複数の対象物のそれぞれの図形素材を割当てる過程を備えた請求の 範囲1記載の方法。 5.少くとも二つの映像塊を連続的に与える過程が、複数対象物を連続的に与え る過程を備え、複数対象物のそれぞれを連続的に与える過程が、二次元映像領域 のそれぞれに対して個別の映像層を形成するために、対応する二次元映像領域の 映像塊に複数対象物の図形素材を連続的に与える過程を含む請求の範囲4記載の 方法。 6.観視空間の可変で対向可能の部分に映像塊が在る請求の範囲1記載の方法。 7.分割する過程が、二次元領域を観視空間の非固定位置にある映像塊に分割す る過程を備えた請求の範囲1記載の方法。 8.映像塊が観視空間の方形領域である請求の範囲1記載の方法。 9.少くとも二つの映像塊に対する対象図形を連続的に与える過程が、 一つの映像塊に対する図形素材を面走査して画素データを発生させ、ついで 、その一つの映像塊に対する画素データを分解し、 後続の映像塊に対してその面走査および分解の各過程を反復する 各過程を含む請求の範囲1記載の方法。 10.面走査過程を第1映像塊に対して実施する一方、分解過程を第2映像塊に対 して実施する請求の範囲9記載の方法。 11.与えられた映像データを蓄積するメモリ、 観視空間に対象図形を変換する動作が可能であり、変換した対象図形を観視 空間の複数部分もしくは複数塊に類別する動作が可能な映像前処理器、および、 観視空間の画素位置に対する画素値を計算するために、複数映像塊に対して 変換した対象図形を連続的に与える動作が可能な、複数の映像塊に対して変換し た対象図形を受取るための映像前処理器および前記メモリ内の複数の映像塊に対 する画素値を蓄積するためのメモリと連絡のある映像処理器 を備えて、光景内の対象図形を観視空間に連続的に与えるための図形付与方式 。 12.映像処理器が面走査器および面走査バッファを含み、面走査器が、複数映像 塊に対して一時に一映像塊ずつの画素データを発生させる動作が可能であって、 一映像塊に対する画素データを面走査バッファに蓄積する動作が可能な請求の範 囲11記載の方式。 13.映像処理器が、画素データを受信するために面走査器と連絡があり、面走査 バッファ内に選択した画素データを蓄積するために面走査バッファと連絡があり 、面走査器から発生した画素データと面走査バッファ内に蓄積した選択画素デー タとの間で深さ比較動作を行ない得る画素機関を含む請求の範囲12記載の方式 。 14.選択した画素データが、処理した映像塊について画素位置に対する画素断片 記録を含み、画素断片記録が、色、深さおよび区域の各データを含むとともに、 さらに、処理した映像塊における画素位置について画素断片を分解して画素値を 計算するために面走査バッファと連絡がある非折り返し歪み機関を含む請求の範 囲13記載の方式。 15.面走査バッファが二重に緩衝され、非折り返し歪み機関が第1映像塊に対す る画素断片記録を分解する動作が可能である一方、面走査器が第2映像塊に対す る画素データを発生させる請求の範囲14記載の方式。 16.映像前処理器が光景内の対象物の図形を複数の映像塊に類別する動作が可能 なプログラムされたデータ処理器である請求の範囲11記載の方式。 17.プログラムされたデータ処理器が、対象物の境界ボックスを観視空間座標に 変換する動作が可能であり、変換された境界ボックスを少くとも二つの映像塊に 分割する動作が可能であり、対象物の図形素材を対象物に対応する少くとも二つ の映像塊に割当てる動作が可能である請求の範囲16記載の方式。 18.観視容積内の図形素材を観視空間内の少くとも二つの対応する映像塊に割当 て、 計算周期に含まれた少なくとも二つの対応する映像塊に図形素材を連続的に 与え、 第1映像塊に対応する図形素材の第1組を面走査して、第1映像塊における 画素位置に対する色、区域および深さの各データを有する画素断片を含む画素デ ータを発生させ、第1映像塊に対する画素データを分解して、第1映像塊におけ る画素位置に対する色彩値を計算し、第1映像塊について分解した画素データを 蓄積し、少くとも二つの後続映像塊に対して以上の面走査、分解および蓄積の各 過程を反復し、さらに、 分解した画素データをまとめて表示映像を発生させる 各過程を備えて、観視容積内の図形素材が観視空間に対する表示映像を計算レ ートで発生させるようにされた実時間で図形を与えるパイプラインに映像データ を与える方法。 19.映像データがアルファ・データも含み、分解した画素データがアルファ値を 含む請求の範囲18記載の方法。 20.計算レートが物理的出力装置のフレーム更新レートにほぼ等しく、50Hzよ り大きいフレーム更新レートを有する物理的出力装置に表示映像を表示する過程 をさらに含んだ請求の範囲18記載の方法。 21.画素データが画素位置に対応する断片記録を含み、断片記録が色、深さ、ア ルファおよび区域の各データを含み、面走査過程が断片バッファに断片記録を蓄 積する過程を含み、分解過程が断片バッファ内の深さを類別した断片記録を分解 する過程を含む請求の範囲18記載の方法。 22.計算レートで観視空間に映像を発生させる方式において、 現下の映像に対する観視容積内の対象物を少くとも二つのグスプライトに割 当て、 第1グスプライトに第1三次元対象物を与えるようにして少くとも二つのグ スプライトに対象物を互いに無関係に与え、 少くとも二つのグスプライトを合成して計算レートで現下の映像を発生させ 、 後続の計算機関に第1三次元対象物の動きを模するための密接な変換を計算 し、さらに、 以上の各過程を反復して後続の計算期間に後続の映像を発生させ、 表現経費を減らすために後続の計算期間に第1グスプライトを再表現するよ りもその密接な変換を用いて第1グスプライトに密接な変換を施す 各過程を備えて映像群を発生させる方法。 23.第1対象物の特性点を用いて密接な変換を計算し、 密接な変換を用いた第1グラスプライトの密接な変換が予定の許容誤差範囲 内にあるか否かを判定し、 その密接な変換が予定の許容誤差範囲内にあれば、第1対象物の動きを模す るために密接な変換を第1グスプライトに施す 各過程をさらに含む請求の範囲22記載の方法。 24.第1計算期間における第1対象物の特性点を第2計算期間における第1対象 物の特性点と比較し、 特性点の変化が予定許容範囲内にあれば、第1対象物を再表現する 各過程を含む請求の範囲22記載の方法。 25.先行計算期間に変化するレートで表現したグスプライトを更新する過程を表 現過程に含めた請求の範囲22記載の方法。 26.グスプライト・メモリ いずれの対象物が観視容積と交差するかを判定し、観視容積と交差する対象 物をグスプライトに割当て、グスプライトを変換するのに用いる密接な変換を計 算してグスプライトが表わす対象物の動きを模するために、対象物の入力記載位 置および観視点を受取る映像前処理器、および、 対象物を各グスプライトに与え、グスプライトをグスプライト・メモリに蓄 積し、グスプライト・メモリからグスプライトを読出すとともにそのグスプライ トを密接な変換による物理的出力装置座標に変換し、さらに、物理的出力装置に 表示するために表現したグスプライトを合成するために、映像前処理器に結合し た映像処理器 を備えて、グスプライトを用いた表示映像を発生させるための映像処理方式。 27.映像前処理器が計算機方式においてプログラムしたプロセッサを備えた請求 の範囲26記載の方式。 28.映像前処理器がプログラムしたディジタル信号プロセッサを備えた請求の範 囲26記載の方式。 29.映像前処理器が計算機方式においてプログラムしたプロセッサおよびそのプ ログラムしたプロセッサに結合してプログラムしたディジタル信号プロセッサを 備えた請求の範囲26記載の方式。 30.映像処理器が対象物をグスプライトに与えて、そのグスプライトをグスプラ イト・メモリに蓄積する請求の範囲26記載の方式。 31.映像処理器がグスプライト・メモリからグスプライトを読出してそのグスプ ライトを物理的出力装置座標に変換するためのグスプライト機関を含む請求の範 囲26記載の方式。 32.映像処理器が物理的出力装置に表示するためにグスプライトを合成するため のグスプライト機関に結合した合成用バッファを含む請求の範囲31記載の方式 。 33.色彩データおよびnを整数としたn画素領域に対応する画素区域データを含 む深さ類別断片記録を蓄積するための断片バッファ、 色彩データを受信して、その色彩データを各副画素領域毎に個別に集積して 蓄積するために断片バッファに結合して、n副画素領域に対応する色彩集積器、 および、 色彩集積器のそれぞれから集積した色彩を加算して画素の色彩値を計算する 論理回路 を備えた画素分解回路。 34.断片記録用に集積した色彩を計算するために乗算動作を行うための回路を色 彩集積器が含む請求の範囲33記載の画素分解回路。 35.断片記録がアルファ・データを含み、色彩集積器が、アルファ・スケールを 計算するための第1乗算動作、集積した色彩を計算するための第2乗算動作およ び集積したアルファを計算するための第3乗算動作を行なう回路を含む請求の範 囲33記載の画素分解回路。 36.副画素位置のそれぞれから集積した色彩を計るための論理回路をさらに含む 請求の範囲33記載の画素分解回路。 37.集積した色彩を加算するための論理回路に、画素当り1クロック周期の割合 で色彩値を計算するためのパイプラインを設けた請求の範囲33記載の画素分解 回路。 38.色彩データとnを整数としたn副画素領域に対応する画素区域データとを含 む断片記録を順次に処理し、 n副画素領域に対して色彩を個別に集積し、 n副画素領域に対して集積した色彩を蓄積し、さらに、 n副画素領域に対して集積した色彩を結びつけて画素位置に対する色彩値を 計算する 各過程を備えて画素データを分解するための方法。 39.n副画素領域について集積したアルファを蓄積し、 n副画素領域に対して個別に断片記録からアルファ・データを集積する各過 程をさらに含んで、断片記録がさらにアルファ・データを含む請求の範囲38記 載の方法。 40.n副画素領域に対して集積した色彩を1/nに計る請求の範囲38記載の方 法。 41.受持ち区域が存在する副画素領域に対して色彩を集積するような処理マスク として、断片記録に対し区域マスクを用いる過程を含んで、断片記録に対応する 区域マスクを区域データに含めた請求の範囲38記載の方法。 42.それぞれ色彩データ、アルファ値およびn副画素領域のいずれをその断片記 録が受持っているかを示す画素区域データを含んだ、深さ類別断片記録を蓄積す る断片バッファ、 画素区域データを解析し、共通に集積したアルファ値を有する副画素群を含 む独特の画素領域を識別し、画素領域に対して共通に集積したアルファ値を蓄積 するための、断片バッファと連通した新規の区域制御回路、および、 共通に集積したアルファ値を有する独特の画素領域に対して集積した色彩を 計算するための色彩尺度および色彩集積回路を有する、色彩、アルファおよび画 素区域の各データを受信するための断片バッファに結合した新規の区域制御回路 および断片バッファに連通した尺度および集積制御回路 を備えて、nを整数としたn副画素領域を有する画素位置に対する画素データ を分解するための画素分解回路。 43.尺度および集積制御回路が、区域尺度係数をm/nとし、mを画素領域にお ける副画素の個数として、画素領域に対して集積したアルファ、断片記録のアル ファおよび区域尺度係数を乗算するための区域尺度器を含む請求の範囲42記載 の画素分解回路。 44.区域マスクと独特の画素領域を表わして対応する集積したアルファ値との配 列を含む区域配列をさらに含み、新たな区域制御回路が、新たな断片記録の画素 区域データを区域マスクと比較して、新たな断片記録が独特の画素領域と如何に 重複しているかを判定し、新たな独特の画素領域を計算するための回路を含む請 求の範囲42記載の画素分解回路。 45.新たな区域制御回路が、不透明な副画素領域を識別し、不透明な副画素マス ク内の不透明な副画素領域の位置を蓄積し、不透明な副画素マスクを使用して、 他の断片からの色彩データもしくはアルファ・データを無視するための回路を含 む、請求の範囲42記載の画素分解回路。 46.それぞれ色彩データ、アルファ値およびn副画素領域中のいずれをその断片 記録が受持つかを識別する画素区域データを含む断片記録の深さを類別したリス トから現下の断片記録を読取り、 それぞれ共通に集積したアルファを有する若干の副画素領域を有する若干の 独特の画素領域を識別するために現下の断片区域データを解析し、 若干の独特の画素領域のそれぞれについて、現下の断片に対する色彩データ に、区域尺度係数をm/nとし、mを画素領域における副画素領域の個数として 、画素領域に対し共通に集積したアルファ、現下の断片のアルファ値および区域 尺度係数を乗算することにより、現下の断片に対する色彩データを計測し、 計測した色彩データを画素位置に対して集積した色彩データを加算し、さら に、 深さを類別したリスト中の後続断片に対して解析、計測および加算の各過程 を反復する 各過程を備えて、nを整数としたn副画素領域を有する画素位置に対する画素 データを分解するための方法。 47.図形素材を面走査して深さ、色彩および区域の各データを有する画素断片を 発生させ、 映像内の画素位置にそれぞれ対応する、断片バッファ内で選択した画素断片 のリストを蓄積し、 第1の画素位置で発生した第1の画素断片について、対応するリスト内で選 択した画素断片が予定の色彩許容範囲内にあるか否かを判定するとともに、選択 した画素断片が予定の深さ許容範囲内にあるか否かを判定し、 発生した画素断片を予定の色彩許容範囲内および予定の深度許容範囲内で選 択した第1画素断片と併合し、さらに、併合した画素断片を対応するリスト構造 内に蓄積する 各過程を備えて画素断片を併合する方法。 48.対応するリスト内で選択した断片が対応するリストに最近付加した断片であ り、判定過程が最近付加した断片が予定の色彩許容範囲内にあるか否かの判定の みを備えた請求の範囲47記載の方法。 49.図形素材を面走査して深さおよび色彩の各データを有して十分にカバーされ た画素群を発生させ、さらに、十分にカバーされて選ばれた画素群を画素バッフ ァに蓄積する 各過程を備えた請求の範囲47記載の方法。 50.図形素材を面走査して深さおよび色彩の各データを有して十分にカバーされ た画素群を含む画素データを発生させ、 十分にカバーされて発生した画素群に深度比較動作を行なって十分にカバー されて選ばれた画素群を識別し、さらに、 画素バッファ内に十分にカバーされて選ばれた画素群を蓄積する各過程を備 えた請求の範囲47記載の方法。 51.図形素材を面走査して、深さおよび色彩の各データを有して十分にカバーさ れた画素群を含む画素データを発生させ、 十分にカバーされて発生した画素群に深さ比較動作を行なって十分にカバー されて選ばれた画素群を識別し、 十分にカバーされて選ばれた画素群を画素バッファ内に蓄積し、発生した画 素断片と対応して十分にカバーされて画素バッファ内で選ばれた画素群との間の 深さ比較動作を行なって、選択された画素断片を識別するとともに断片バッファ に蓄積する 各過程をさらに含んだ請求の範囲47記載の方法。 52.区域データが区域マスクを含み、併合過程が 発生した画素断片の区域マスクを予定の色彩許容範囲内および予定の深度許 容範囲内で選ばれた第1の画素断片と組合わせ、 組合わせた区域マスクを併合した画素断片に蓄積する 各過程を備えた請求の範囲47記載の方法。 53.併合した画素断片が併合過程の結果として十分にカバーされた画素になって いるか否かを判定し、なっている場合には、 併合した画素断片の色彩および深度を画素バッファの対応した位置に蓄積す る 各過程をさらに含んだ請求の範囲52記載の方法。 54.画素バッファ内で選択した画素断片のリスト群を分解し、 面走査および分解の各過程を反復して表示映像を発生させ、 表示映像および後続映像群を10Hzより大きいレートで発生させる各過程を さらに含んだ請求の範囲47記載の方法。 55.面走査バッファ、 図形素材を受信する動作が可能であって、図形素材を面走査して色彩、深度 および区域の各データを含む画素断片を形成する面走査器、および、 画素断片を受信するために面走査器と連通して、画素断片を面走査バッファ に蓄積すべきか否かを判定するための深さ比較動作を行なう動作が可能であり、 蓄積された画素断片を読出すために面走査バッファに連通して、面走査器によっ て発生した画素断片を少くとも面走査バッファに蓄積した第1画素断片と比較し て、発生した画素断片が色彩許容範囲内にあるか否かを判定する動作が可能であ るとともに、発生した画素断片を面走査バッファに蓄積した画素断片の一つと併 合する動作が可能な画素機関 を備えて、図形素材データに観視空間用映像を発生させる方式。 56.面走査バッファが、観視空間において十分にカバーされた画素位置に対する 色彩および深度の各データを蓄積するように動作し得る画素バッファと、観視空 間において部分的にカバーされた画素位置に対する色彩、深度および区域の各デ ータを蓄積するように動作し得る断片バッファとを含んだ請求の範囲55記載の 方式。 57.断片バッファが、観視空間における画素位置の一つに対応する画素断片のリ ストを蓄積するように動作し得る請求の範囲56記載の方式。 58.画素機関が深度比較動作を行なうための比較器回路を含んだ請求の範囲55 記載の方式。 59.画素機関が、発生した画素断片が色彩許容範囲内にあるか否かを判定するた めに、面走査器によって発生した画素断片を面走査バッファに蓄積した少くとも 第1画素断片と比較するための比較器回路を含んだ請求の範囲55記載の方式。 60.発生した画素断片が色彩許容範囲内にあるか否かを判定するために、面走査 器によって発生した画素断片を面走査バッファに蓄積した少くとも第1画素断片 と比較するための第1比較器回路と、発生した画素断片が深度許容範囲内にある か否かを判定するために、面走査器によって発生した画素断片を面走査バッファ に蓄積した少なくとも第1画素断片と比較するための第2比較器回路とを画素機 関に含めた請求の範囲55記載の方式。 61.画素機関が、映像における各画素位置に対して面走査バッファに蓄積した最 近の断片を維持するように動作し得るとともに、発生した断片の画素位置に対応 する画素位置に対して面走査バッファに蓄積した最近の断片のみを併合するよう に動作し得る請求の範囲55記載の方式。 62.観視空間における画素位置に対する色彩および深度の各データを有する画素 記録を蓄積するように動作し得る画素バッファと、部分的にカバーされた画素位 置に対する色彩、区域および深度の各データを含む、画素位置に対応した断片記 録のリストを蓄積するように動作し得る断片バッファとを含んだ面走査バッファ 、 図形素材を受信するように動作し得るとともに、色彩、深度および区域の各 データを含む画素データを形成するために、図形素材を面走査するように動作し 得る面走査器、並びに、 画素データを受信するために面走査器と連通して、画素データを画素記録も しくは断片記録として面走査バッファに蓄積すべきか否かを判定するために深度 比較動作を行なうように動作し得、蓄積した断片記録を読出すために面走査バッ ファと連通して、面走査器によって発生した部分的にカバーされた画素位置に対 する色彩データを、その色彩データが色彩許容範囲内にあるか否かを判定するた めに断片バッファに蓄積した少くとも第1断片記録と比較するたように動作し得 るとともに、色彩データを断片バッファに蓄積した断片記録の一つと併合するよ うに動作し得る画素機関を備えて、観視空間用映像を図形素材データに発生させ るための方式。 63.映像処理方式において、 描図したフィルタ足跡を計算するために逆変数を用いてフィルタ足跡を根源 映像に描図し、 異方性の線に沿いフィルタを反復的に適用して根源映像からの画素値を標本 化し、 反復的濾波過程の出力を濾波して行き先映像に対する画素値を計算する各過 程を備えて、行き先映像から根源映像までの点の描図が逆変換によって行なわれ る場合に行き先映像まで根源映像を構造描図する方法。 64.フィルタが補間フィルタであり、そのフィルタを適用する過程が、描図した フィルタ足跡の最大延長の方向に沿い補間フィルタを適用して根源映像からの画 素値の補間を備えている請求の範囲63記載の方法。 65.処理過程が、補間フィルタの出力への再標本化フィルタの適用とその再標本 化フィルタの出力の総計による行き先映像用画素値の計算とを備えた請求の範囲 64記載の方法。 66.再標本化フィルタが一次元フィルタである請求の範囲65記載の方法。 67.描図したフィルタ足跡を近似するための逆変換用のジャコビ・マトリックス の計算を含んだ請求の範囲63記載の方法。 68.最大延長の方向をジャコビ・マトリッスクにおけるベクトルから判定する請 求の範囲67記載の方法。 69.フィルタ足跡を描図する過程が、根源映像に描図した点における逆変換の導 関数の計算を含んでいる請求の範囲63記載の方法。 70.描図したフィルタ足跡を近似するための根源映像内の点における逆変換の部 分導関数のジャコビ・マトリックスの計算を含んでいる請求の範囲63記載の方 法。 71.補間フィルタの足跡が二次元であり、描図したフィルタ足跡を適応させるた めに、補間フィルタの足跡の大きさを調整する過程を含んでいる請求の範囲64 記載の方法。 72.補間フィルタの足跡の大きさを調整するための根源映像のMIP描図の使用 を調整過程に含めた請求の範囲71記載の方法。 73.フィルタが補間フィルタであり、 描図したフィルタ足跡を近似するために根源映像に描図した点で、第1およ び第2のベクトルを含んだ逆変換のジャコビ・マトリックスを計算し、 第1もしくは第2のベクトルの方向から最大延長の方向を判定し、 補間フィルタの出力に再標本化フィルタを適用するとともに、その再標本化 フィルタの出力を総計して、行き先映像用画素値を計算する各過程をさらに含ん だ請求の範囲63記載の方法。 74.第1および第2のベクトルのいずれかの長さから補間フィルタの大きさを判 定するとともに、根源映像に対する補間フィルタの大きさを調整するために根源 映像のMIP描図を用いる過程を含んだ請求の範囲73記載の方法。 75.第1もしくは第2のベクトルの長さから再標本化フィルタの大きさを判定す るとともに、第1もしくは第2のベクトルの長さに基づいて補間フィルタの大き さを調整する過程を含んだ請求の範囲73記載の方法。 76.構造メモリ、 指令と、その指令を説明し、図形素材から逆変換データを計算し、図形素材 から構造宛名を計算し、さらに、構造宛名に対応した構造メモリに構造データを 回収するための図形素材とを受取るための設定プロセッサ、並びに、 その設定プロセッサおよび構造メモリと連通して、逆変換データおよび構造 宛名を受信し、構造中に描図した点を介して異方性の線を計算するために、異方 性の線に沿って標本化した画素値の加重総和を計算するためのフィルタを含んだ 構造フィルタ を備えて、図形素材の表面に構造の構造描図を施すための方式。 77.逆変換データが、根源映像に描図した図形素材の表面上の点の逆変換を表わ すマトリックスであり、構造フィルタ機関が、そのマトリックスから異方性の線 の方向を判定するための回路を含んでいる請求の範囲76記載の方式。 78.根源映像から画素値を標本化するための補間フィルタ回路をフィルタに含め た請求の範囲76記載の方式。 79.フィルタが二次元補間フィルタである請求の範囲78記載の方式。 80.異方性の線に沿って画素値を標本化するための補間フィルタおよびその補間 フィルタの出力に適用した一次元ディジタル・フィルタをフィルタに含めた請求 の範囲76記載の方式。 81.図形表現方式において、 画素断片を発生させるために、大きさS1の第1映像領域について図形素材 の第1組を面走査し、 断片入力として画素断片を断片バッファに蓄積し、 断片バッファにおける断片入力の個数が予定値を超えたか否かを判定し、 断片入力の個数が予定値を超えたとの判定に応じ、第1映像領域を少なくと も二つの大きさS2の映像領域に分割し、 対応する第1画素断片を発生させるために、大きさS2の第1映像領域に対 する図形素材の第1組の第1副組を面走査する過程、対応する第1画素断片を分 解する過程および大きさS2の後続映像領域に対して面走査と分解との各過程を 反復する過程を含めて、大きさS2の少なくとも二つの映像領域を連続的に表現 する 各過程を備えて図形素材を表現する方法。 82.第1映像領域の大きさS1を評価するとともに、第1映像領域の大きさに基 づいて大きさS2を判定し、さらに、 大きさS1の第1映像領域を大きさS2の映像領域に分割する 各過程を分割過程に含めた請求の範囲81記載の方法。 83.それぞれ、第1映像領域の大きさS1の1/4の大きさの4映像領域への大 きさS1の第1映像領域の階層的分割を分割過程に含めた請求の範囲81記載の 方法。 84.図形素材の大きさS1の映像領域群への類別をさらに含めた請求の範囲81 記載の方法。 85.断片入力が予定値を超えたという判定に応じて断片バッファを空にする過程 をさらに含めた請求の範囲81記載の方法。 86.断片入力が予定値を超えたという判定に応じて断片バッファを空にし、さら に、 大きさS2の第1映像領域に対する図形素材の第1組の第1副組を面走査す る過程に、図形素材の第1組を読取って、大きさS2の第1映像領域に突出しな い素材をすべて排除する過程を含める 各過程をさらに含めた請求の範囲81記載の方法。 87.断片入力の個数が予定値を超えたという判定に応じて断片バッファを空にし 、 図形素材の第1組を少なくとも二つの大きさS2の映像領域に類別して、図 形素材の第1組の対応した少なくとも二つの副組を形成し、さらに、 大きさS2の第1映像領域に対する図形素材の第1組の第1副組を面走査す る過程に、図形素材の第1組の対応する副組の一つの面走査を含めた請求の範囲 81記載の方法。 88.断片バッファにおける断片バッファ入力の個数の足跡を保持するために断片 バッファ・カウンタを歩進させ、さらに、 判定の過程に断片バッファ・カウンタの計数値の評価を含めた請求の範囲8 1記載の方法。 89.画素断片の対応した第1組を断片バッファに蓄積し、 画素断片の対応した第1組が断片バッファに付加されるに従って、断片バッ ファの断片入力の個数が予定値を超えたか否かを判定し、 図形素材の第1組の第1副組を面走査している間に、断片バッファの断片入 力の個数が予定値を超えたとの判定に応じ、大きさS2の映像領域を少なくとも 二つの大きさS3の映像領域に分割する 各過程をさらに含んだ請求の範囲81記載の方法。 90.画素断片が色彩、区域および深度の各データを含む請求の範囲81記載の方 法。 91.画素断片が色彩、区域、不透明性および深度の各データを含む請求の範囲8 1記載の方法。 92.断片メモリ、 図形素材を読取るように動作し得るとともに、大きさS1の映像領域および 大きさS2の映像領域について画素データを発生させるように動作し得る面走査 器、 その面走査器と連通して、画素データを受信するように動作し得るとともに 、選ばれた画素データの断片メモリへの伝送を制御するように動作し得、断片メ モリと連通して、選ばれた画素データを断片メモリに蓄積するように動作し得る 画素機関、および、 断片メモリと連通して、断片メモリのメモリ使用が予定値に達したか否かを 判定するように動作し得、面走査器に連通して、断片メモリのメモリ使用が予定 値に達した場合に、副領域の一つに対して図形素材の副組を面走査器に面走査さ せる緩衝制御回路 を備えて、表示映像を図形素材に計算させるための装置。 93.大きさS1を有する画素メモリをさらに含むとともに、大きさS2の副領域を 含み、選ばれた画素データの断片および画素メモリへの伝送を制御するように動 作し得るとともに、断片および画素メモリと連通して、選ばれた画素データを画 素もしくは断片のメモリに蓄積し、さらに、 面走査器と連通して、断片メモリのメモリ使用が予定値に達した場合に、大 きさS2の映像領域に対する図形素材の副組を面走査器に、画素メモリの対応し た副領域まで面走査させる 請求の範囲92記載の装置。 94.大きさS1の映像領域に対し、大きさS1の映像領域の副領域である大きさS2 の映像副領域に対し、さらに、大きさS2の映像領域の副領域である大きさS3 の映像副領域に対し、画素データを発生させるように面走査器が動作し得る、請 求の範囲92記載の装置。 95.画素メモリが、大きさS1を有するとともに、大きさS2およびS3の副領域 を有し、面走査器が、大きさS1,S2もしくはS3の映像領域に対する画素データ を画素メモリの対応する領域まで発生させるように動作し得る請求の範囲94記 載の装置。 96.断片メモリのメモリ使用が予定値に達した場合に、画素メモリを階層的に副 分割するように面走査器が動作し得る請求の範囲95記載の装置。 97.素材を蓄積するように動作し得る素材列、 その素材列と連通し、その根源列から素材を受信して構造データ要求に変換 するように動作し得る予備面走査器、 予備面走査器と連通し、構造データ要求を蓄積するように動作し得る構造要 求列、 構造隠し場、 構造要求列と連通し、メモリから構造データを回収して、構造隠し場に蓄積 するように動作し得る構造獲得ユニット、 素材列と連通して、素材列から素材を受取るように動作し得、構造隠し場と 連通して、構造隠し場から回収した構造データを用いて素材を面走査するように 動作し得る予後面走査器 を備えて、図形表現系における構造データに接近するための装置。 98.構造データ要求が構造ブロックのリストを備えた請求の範囲97記載の装置 。 99.予備面走査器が、構造隠し場における構造ブロックの置換を制御して、構造 隠し場のメモリ容量の超過を防ぐように動作し得る請求の範囲97記載の装置。 100.メモリからの回収した各構造ブロックに対する単一の要求にまで構造デー タ要求を圧縮するように予備面走査器が動作し得る請求の範囲97記載の装置。 101.予後面走査器が素材のそれぞれの面走査を完了した後に、素材列から素材 を除去するように予後面走査器が動作し得る請求の範囲97記載の装置。 102.メモリと連通し、圧縮し、圧縮された構造データを受取り、圧縮された構 造データを減圧し、減圧した構造データを構造隠し場に伝送するように動作し得 る減圧機関をさらに含んだ請求の範囲97記載の装置。 103.メモリおよび減圧ユニットと連通し、減圧ユニットが圧縮された構造デー タの圧縮されたブロックを減圧するにつれて、メモリから回収した圧縮された構 造データを一時的に蓄積するように動作し得る圧縮された隠し場をさらに含んで いる請求の範囲102記載の装置。 104.個別の余弦波変換型の圧縮を用いて圧縮した構造ブロックに減圧を施すよ うに減圧ユニットが動作し得る請求の範囲102記載の装置。 105.ハフマン・ランレングス符号化を含む無損失型の圧縮を用いて圧縮した構 造ブロックに減圧を施すように減圧ユニットが動作し得る請求の範囲102記載 の装置。 106.図形素材の列を作り、 列を作った図形素材を構造基準に変換し、 構造基準の列を作り、 構造データ・ブロックをメモリから獲得し、 構造隠し場に構造データ・ブロックを隠し、 列を作った図形素材を面走査して出力画素データを発生させ、その面走査 過程に、構造隠し場内で構造ブロックが利用可能になるにつれて、構造データ・ ブロックのアクセスを含める 各過程を備えて、図形表現系で行なわれる表現動作の期間中に構造データをメ モリからアクセスする方法。 107.メモリから獲得した圧縮された構造ブロックの減圧をさらに含めた請求の 範囲106記載の方法。 108.図形素材データを受信して、構造要求を含んだ画素データを発生させるよ うに動作し得る面走査器、 面走査器と連通して、画素データを受信するように動作し得る構造基準デ ータ列、 構造基準データ列と連通し、構造要求をメモリ内の構造ブロックのアドレ スに変換して、構造ブロックをメモリから獲得するように動作し得る構造獲得ユ ニット、 構造獲得ユニットと連通して、構造ブロックを蓄積するように動作し得る 構造隠し場、並びに、 構造隠し場および構造基準データ列と連通して、構造基準データ列から画 素データを読出すとともに、構造隠し場から構造標本を読出して出力画素を発生 させるように動作し得る構造フィルタ機関 を備えて、図形表現系で構造データをアクセスするための装置。 109.メモリと連通して、圧縮された構造データのブロックを減圧するように動 作し得る減圧ユニットをさらに含んだ請求の範囲108記載の装置。 110.減圧ユニットが二つの並列減圧ブロックを含む請求の範囲109記載の装 置。 111.減圧ユニットが個別の余弦波変換型の減圧を行なうように動作し得る請求 の範囲109記載の装置。 112.減圧ユニットが無損失ランレングス復号もしくはハフマン復号を行なうよ うに動作し得る請求の範囲111記載の装置。 113.構造獲得ユニットが構造隠し場に蓄積した構造ブロックの置換を制御する よ うに動作し得るので、構造隠し場のメモリ容量が超過しない請求の範囲108記 載の装置。 114.構造要求が構造標本区域の中心を構造地図の座標系に備えている請求の範 囲108記載の装置。 115.構造基準データ列が、補間した色彩、行き先画素に対するアドレスおよび 構造基準データを含んだ画素データを蓄積するように動作し得る請求の範囲10 8記載の装置。 116.図形素材を面走査して、それぞれ、画素アドレス、色彩データおよび構造 要求を含んだ画素要素を発生させ、 画素要素の列を作り、 要素列から構造要求を読出し、 構造要求をメモリに蓄積した構造ブロックのアドレスに変換し、 メモリに蓄積した構造ブロックを獲得し、 構造隠し場に構造ブロックを隠し、 列中の付加的画素要素に対して読出し、変換および獲得の各過程を反復し 、 画素要素を列から回収し、構造標本データを構造隠し場から回収し、さら に、構造標本データを画素要素に対する色彩デートと結び付けることにより出力 画素を発生させ、さらに、 発生過程を反復して付加的出力画素を発生させる 各過程を備えて、図形表現系で行なわれる表現動作の期間中に構造データをメ モリからアクセスする方法。 117.圧縮された構造ブロックをメモリから回収し、 圧縮された構造ブロックを減圧し、さらに、 減圧した構造ブロックを構造隠し場に蓄積する 各過程を獲得過程に含めた請求の範囲116記載の方法。 118.獲得過程が、圧縮された構造ブロックを隠す過程をさらに含んだ請求の範 囲117記載の方法。 119.圧縮された構造ブロックが個別の余弦波変換圧縮を用いて圧縮される請求 の範囲117記載の方法。 120.圧縮された構造ブロックがハフマンおよびランレングスの各符号化を用い て圧縮される請求の範囲117記載の方法。 121.構造隠し場にすでに蓄積された構造ブロックに対する要求の発生を避ける ために、メモリに隠した構造ブロックの足跡の維持を含んでいる請求の範囲11 6記載の方法。
JP50860497A 1995-08-04 1996-08-02 グラフィックオブジェクトを画像チャンクにレンダリングして、画像層を表示画像に組み合わせる方法及びシステム Expired - Lifetime JP4540753B2 (ja)

Applications Claiming Priority (15)

Application Number Priority Date Filing Date Title
US51155395A 1995-08-04 1995-08-04
US08/511,553 1995-08-04
US56011495A 1995-11-17 1995-11-17
US08/560,114 1995-11-17
US08/672,425 US5990904A (en) 1995-08-04 1996-06-27 Method and system for merging pixel fragments in a graphics rendering system
US08/671,412 1996-06-27
US08/671,412 US5867166A (en) 1995-08-04 1996-06-27 Method and system for generating images using Gsprites
US08/672,694 US5949428A (en) 1995-08-04 1996-06-27 Method and apparatus for resolving pixel data in a graphics rendering system
US08/671,506 US5852443A (en) 1995-08-04 1996-06-27 Method and system for memory decomposition in a graphics rendering system
US08/672,347 1996-06-27
US08/672,347 US6005582A (en) 1995-08-04 1996-06-27 Method and system for texture mapping images with anisotropic filtering
US08/672,425 1996-06-27
US08/671,506 1996-06-27
US08/672,694 1996-06-27
PCT/US1996/012780 WO1997006512A2 (en) 1995-08-04 1996-08-02 Method and system for rendering graphical objects to image chunks and combining image layers into a display image

Related Child Applications (2)

Application Number Title Priority Date Filing Date
JP2003286311A Division JP4521167B2 (ja) 1995-08-04 2003-08-04 グラフィックオブジェクトを画像チャンクにレンダリングして、画像層を表示画像に組み合わせる方法及びシステム
JP2003286313A Division JP3968063B2 (ja) 1995-08-04 2003-08-04 グラフィックオブジェクトを画像チャンクにレンダリングして、画像層を表示画像に組み合わせる方法及びシステム

Publications (3)

Publication Number Publication Date
JPH11511277A true JPH11511277A (ja) 1999-09-28
JPH11511277A5 JPH11511277A5 (ja) 2004-09-09
JP4540753B2 JP4540753B2 (ja) 2010-09-08

Family

ID=27569819

Family Applications (3)

Application Number Title Priority Date Filing Date
JP50860497A Expired - Lifetime JP4540753B2 (ja) 1995-08-04 1996-08-02 グラフィックオブジェクトを画像チャンクにレンダリングして、画像層を表示画像に組み合わせる方法及びシステム
JP2003286311A Expired - Lifetime JP4521167B2 (ja) 1995-08-04 2003-08-04 グラフィックオブジェクトを画像チャンクにレンダリングして、画像層を表示画像に組み合わせる方法及びシステム
JP2003286313A Expired - Lifetime JP3968063B2 (ja) 1995-08-04 2003-08-04 グラフィックオブジェクトを画像チャンクにレンダリングして、画像層を表示画像に組み合わせる方法及びシステム

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2003286311A Expired - Lifetime JP4521167B2 (ja) 1995-08-04 2003-08-04 グラフィックオブジェクトを画像チャンクにレンダリングして、画像層を表示画像に組み合わせる方法及びシステム
JP2003286313A Expired - Lifetime JP3968063B2 (ja) 1995-08-04 2003-08-04 グラフィックオブジェクトを画像チャンクにレンダリングして、画像層を表示画像に組み合わせる方法及びシステム

Country Status (6)

Country Link
EP (1) EP0850462B1 (ja)
JP (3) JP4540753B2 (ja)
AU (1) AU6766096A (ja)
CA (1) CA2229027A1 (ja)
DE (1) DE69636599T2 (ja)
WO (1) WO1997006512A2 (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004272928A (ja) * 1998-08-20 2004-09-30 Apple Computer Inc 進歩したディファード・シェーディング・グラフィクス・パイプライン・プロセッサ
JP2006523886A (ja) * 2003-04-15 2006-10-19 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ コンピュータグラフィックプロセッサおよびコンピュータグラフィック画像を生成する方法
JP2006293627A (ja) * 2005-04-08 2006-10-26 Toshiba Corp 描画方法及び描画装置
KR100966956B1 (ko) * 2002-09-06 2010-06-30 소니 컴퓨터 엔터테인먼트 인코포레이티드 이미지 프로세싱 방법 및 장치
JP2011022673A (ja) * 2009-07-13 2011-02-03 Canon Inc 情報処理装置、情報処理方法及びプログラム
JP2011221851A (ja) * 2010-04-12 2011-11-04 Nintendo Co Ltd 画像表示プログラム、画像表示システム、画像表示方法および画像表示装置
WO2012173304A1 (ko) * 2011-06-14 2012-12-20 주식회사 넥서스칩스 저해상도 그래픽 영상을 고해상도 그래픽 영상으로 실시간 변환하는 그래픽 영상 처리 장치 및 방법
JP2015046181A (ja) * 2010-09-30 2015-03-12 インテル・コーポレーション ハードウェアベースの人間存在検出
KR20180103037A (ko) * 2018-09-11 2018-09-18 스노우 주식회사 레이어드 마스크와 룩업테이블을 이용한 이미지 처리 방법 및 시스템
JP2018534607A (ja) * 2015-09-21 2018-11-22 クアルコム,インコーポレイテッド プリフェッチを用いた効率的な表示処理

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6204859B1 (en) * 1997-10-15 2001-03-20 Digital Equipment Corporation Method and apparatus for compositing colors of images with memory constraints for storing pixel data
GB2343603B (en) 1998-11-06 2003-04-02 Videologic Ltd Shading 3-dimensional computer generated images
AU1178200A (en) 1998-11-12 2000-06-05 Sony Computer Entertainment Inc. Image generation method and image generation device
US6393145B2 (en) * 1999-01-12 2002-05-21 Microsoft Corporation Methods apparatus and data structures for enhancing the resolution of images to be rendered on patterned display devices
AUPP923799A0 (en) 1999-03-16 1999-04-15 Canon Kabushiki Kaisha Method for optimising compilation of compositing expressions
AU744463B2 (en) * 1999-03-16 2002-02-21 Canon Kabushiki Kaisha Method for compiling compositiing expressions for optimised rendering
WO2001001352A1 (en) * 1999-06-28 2001-01-04 Clearspeed Technology Limited Method and apparatus for rendering in parallel a z-buffer with transparency
US6636224B1 (en) * 1999-08-31 2003-10-21 Microsoft Corporation Method, system, and computer program product for overlapping graphics data collection and transmission using a single processor
EP1287494B1 (en) 2000-06-08 2007-03-14 Imagination Technologies Limited Tiling and compression for rendering 3d images
KR100561837B1 (ko) * 2001-07-09 2006-03-16 삼성전자주식회사 삼차원 환경에서 이미지 기반의 랜더링의 정보를 표현하기위한 방법
WO2003010718A1 (en) * 2001-07-20 2003-02-06 Koninklijke Philips Electronics N.V. Computer graphics system and method of rendering polygons
RU2237283C2 (ru) * 2001-11-27 2004-09-27 Самсунг Электроникс Ко., Лтд. Устройство и способ представления трехмерного объекта на основе изображений с глубиной
RU2237284C2 (ru) * 2001-11-27 2004-09-27 Самсунг Электроникс Ко., Лтд. Способ генерирования структуры узлов, предназначенных для представления трехмерных объектов с использованием изображений с глубиной
US8063916B2 (en) 2003-10-22 2011-11-22 Broadcom Corporation Graphics layer reduction for video composition
KR101136688B1 (ko) * 2004-09-09 2012-04-18 퀄컴 인코포레이티드 이방성 필터링을 이용한 싱글-패스 리샘플링 시스템 및방법
GB0426170D0 (en) 2004-11-29 2004-12-29 Falanx Microsystems As Processing of computer graphics
JP4555207B2 (ja) 2005-10-18 2010-09-29 Necディスプレイソリューションズ株式会社 画質改善装置および画質改善方法
GB0524804D0 (en) 2005-12-05 2006-01-11 Falanx Microsystems As Method of and apparatus for processing graphics
JP4827659B2 (ja) * 2006-08-25 2011-11-30 キヤノン株式会社 画像処理装置、画像処理方法、及びコンピュータプログラム
US9418450B2 (en) 2006-08-31 2016-08-16 Ati Technologies Ulc Texture compression techniques
US9965886B2 (en) 2006-12-04 2018-05-08 Arm Norway As Method of and apparatus for processing graphics
GB2445008B (en) * 2006-12-20 2008-12-31 Sony Comp Entertainment Europe Image compression and/or decompression
US7944453B1 (en) 2007-06-07 2011-05-17 Nvidia Corporation Extrapolation texture filtering for nonresident mipmaps
US7948500B2 (en) * 2007-06-07 2011-05-24 Nvidia Corporation Extrapolation of nonresident mipmap data using resident mipmap data
US8044971B2 (en) 2008-01-31 2011-10-25 Arm Norway As Methods of and apparatus for processing computer graphics
GB0900700D0 (en) 2009-01-15 2009-03-04 Advanced Risc Mach Ltd Methods of and apparatus for processing graphics
KR101609266B1 (ko) * 2009-10-20 2016-04-21 삼성전자주식회사 타일 기반의 랜더링 장치 및 방법
US20130009964A1 (en) * 2010-07-14 2013-01-10 Dale Paas Methods and apparatus to perform animation smoothing
JP5664052B2 (ja) * 2010-09-15 2015-02-04 富士通セミコンダクター株式会社 グラフィック処理装置、及び、グラフィック処理プログラム
US8463073B2 (en) * 2010-11-29 2013-06-11 Microsoft Corporation Robust recovery of transform invariant low-rank textures
JP5559222B2 (ja) * 2012-03-01 2014-07-23 クゥアルコム・インコーポレイテッド 異方性フィルタリングを用いたシングルパス画像ワーピングシステム及び方法
JP5907780B2 (ja) * 2012-04-02 2016-04-26 富士フイルム株式会社 超音波診断装置
CN102930568B (zh) * 2012-09-25 2015-01-14 哈尔滨工业大学 一种静止背景中匀速运动目标的离散退化图像构造方法
US9317948B2 (en) 2012-11-16 2016-04-19 Arm Limited Method of and apparatus for processing graphics
US9582848B2 (en) 2012-12-28 2017-02-28 Apple Inc. Sprite Graphics rendering system
KR101451813B1 (ko) * 2013-02-07 2014-10-16 주식회사 로커스 입체영상 제작 시 탑-뷰 매트릭스를 이용한 이미지 처리 방법 및 이를 이용하는 이미지 처리 장치
US10204391B2 (en) 2013-06-04 2019-02-12 Arm Limited Method of and apparatus for processing graphics
KR102095702B1 (ko) * 2013-09-27 2020-04-14 에스케이플래닛 주식회사 이동 단말을 위한 애니메이션 재생 장치 및 방법
KR102101834B1 (ko) * 2013-10-08 2020-04-17 삼성전자 주식회사 영상 처리 장치 및 방법
US9355464B2 (en) 2014-05-30 2016-05-31 Apple Inc. Dynamic generation of texture atlases
FR3028990B1 (fr) 2014-11-21 2018-01-19 Institut National Des Sciences Appliquees De Lyon Procedes de compression et de decompression de donnees representatives d’un objet tridimensionnel numerique et support d'enregistrement d'informations contenant ces donnees
KR101617606B1 (ko) 2015-05-21 2016-05-03 (주) 비비비 영상 생성 장치 및 방법
RU2638014C2 (ru) * 2015-09-28 2017-12-08 Общество С Ограниченной Ответственностью "Яндекс" Способ и вычислительное устройство для создания симплифицированных границ графических объектов
GB2553744B (en) 2016-04-29 2018-09-05 Advanced Risc Mach Ltd Graphics processing systems
CN107452041B (zh) * 2016-05-31 2020-07-31 阿里巴巴集团控股有限公司 图片的生成方法及装置
CN106708623B (zh) * 2016-11-23 2021-04-27 腾讯科技(深圳)有限公司 一种对象资源处理方法、装置及系统
CN108492342B (zh) * 2018-03-22 2022-05-03 网易(杭州)网络有限公司 合并碎图的方法、装置、处理器、存储介质和终端
CN108830916A (zh) * 2018-06-27 2018-11-16 河南职业技术学院 一种包含大量角色的三维动画制作方法及系统
CN111192351B (zh) * 2018-11-14 2023-06-02 芯原微电子(上海)股份有限公司 边缘抗锯齿的图形处理方法、系统、存储介质及装置
US10810700B2 (en) * 2019-03-05 2020-10-20 Aspeed Technology Inc. Method of adjusting texture coordinates based on control regions in a panoramic image
CN110765891B (zh) * 2019-09-30 2022-05-17 万翼科技有限公司 工程图纸识别方法、电子设备及相关产品
CN112802165B (zh) * 2020-12-31 2024-07-30 珠海剑心互动娱乐有限公司 游戏场景积雪渲染方法、装置及介质
US11605364B2 (en) * 2021-05-19 2023-03-14 Cypress Semiconductor Corporation Line-based rendering for graphics rendering systems, methods, and devices
CN115908642A (zh) * 2021-09-30 2023-04-04 北京字跳网络技术有限公司 一种图像编辑方法及装置
CN114253724B (zh) * 2021-12-15 2023-10-13 中煤科工重庆设计研究院(集团)有限公司 一种bim模型渲染方法及系统
US20230206394A1 (en) * 2021-12-29 2023-06-29 Nvidia Corporation Generating image blending weights
WO2023196163A1 (en) 2022-04-04 2023-10-12 Onxmaps, Inc. Methods and systems for compressing digital elevation model data
CN117251081A (zh) * 2022-08-31 2023-12-19 腾讯科技(深圳)有限公司 拾取对象的检测方法、装置、计算机设备和存储介质
CN115278264B (zh) * 2022-09-26 2023-02-28 杭州雄迈集成电路技术股份有限公司 一种图像放大和osd叠加编码方法和系统
CN115766963B (zh) * 2022-11-11 2024-10-08 辽宁师范大学 一种基于自适应预测编码的加密图像可逆信息隐藏方法
CN116070464B (zh) * 2023-03-07 2023-06-06 四川宏华电气有限责任公司 一种虚拟现实的钻井井场仿真系统

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004272928A (ja) * 1998-08-20 2004-09-30 Apple Computer Inc 進歩したディファード・シェーディング・グラフィクス・パイプライン・プロセッサ
KR100966956B1 (ko) * 2002-09-06 2010-06-30 소니 컴퓨터 엔터테인먼트 인코포레이티드 이미지 프로세싱 방법 및 장치
JP2006523886A (ja) * 2003-04-15 2006-10-19 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ コンピュータグラフィックプロセッサおよびコンピュータグラフィック画像を生成する方法
JP2006293627A (ja) * 2005-04-08 2006-10-26 Toshiba Corp 描画方法及び描画装置
JP2011022673A (ja) * 2009-07-13 2011-02-03 Canon Inc 情報処理装置、情報処理方法及びプログラム
JP2011221851A (ja) * 2010-04-12 2011-11-04 Nintendo Co Ltd 画像表示プログラム、画像表示システム、画像表示方法および画像表示装置
JP2015046181A (ja) * 2010-09-30 2015-03-12 インテル・コーポレーション ハードウェアベースの人間存在検出
WO2012173304A1 (ko) * 2011-06-14 2012-12-20 주식회사 넥서스칩스 저해상도 그래픽 영상을 고해상도 그래픽 영상으로 실시간 변환하는 그래픽 영상 처리 장치 및 방법
JP2018534607A (ja) * 2015-09-21 2018-11-22 クアルコム,インコーポレイテッド プリフェッチを用いた効率的な表示処理
KR20180103037A (ko) * 2018-09-11 2018-09-18 스노우 주식회사 레이어드 마스크와 룩업테이블을 이용한 이미지 처리 방법 및 시스템

Also Published As

Publication number Publication date
WO1997006512A3 (en) 1997-06-19
WO1997006512A2 (en) 1997-02-20
JP2004102998A (ja) 2004-04-02
CA2229027A1 (en) 1997-02-20
JP4540753B2 (ja) 2010-09-08
DE69636599D1 (de) 2006-11-16
EP0850462A2 (en) 1998-07-01
AU6766096A (en) 1997-03-05
JP4521167B2 (ja) 2010-08-11
EP0850462B1 (en) 2006-10-04
JP2004046886A (ja) 2004-02-12
JP3968063B2 (ja) 2007-08-29
DE69636599T2 (de) 2007-08-23

Similar Documents

Publication Publication Date Title
JPH11511277A (ja) グラフィック対象物をチャンク映像に変換し、かつ、映像層を結合して表示画像に換える方法、および、装置
US5870097A (en) Method and system for improving shadowing in a graphics rendering system
US5867166A (en) Method and system for generating images using Gsprites
US6326964B1 (en) Method for sorting 3D object geometry among image chunks for rendering in a layered graphics rendering system
US5977977A (en) Method and system for multi-pass rendering
US5880737A (en) Method and system for accessing texture data in environments with high latency in a graphics rendering system
US5886701A (en) Graphics rendering device and method for operating same
US6008820A (en) Processor for controlling the display of rendered image layers and method for controlling same
US6292194B1 (en) Image compression method to reduce pixel and texture memory requirements in graphics applications
US5949428A (en) Method and apparatus for resolving pixel data in a graphics rendering system
KR100478767B1 (ko) 그래픽 렌더링 방법, 컴퓨터 그래픽 파이프라인용 상태 감시 장치 및 3차원 그래픽 렌더링용 계산처리 시스템
US5990904A (en) Method and system for merging pixel fragments in a graphics rendering system
US5852443A (en) Method and system for memory decomposition in a graphics rendering system
US5808617A (en) Method and system for depth complexity reduction in a graphics rendering system
US6426755B1 (en) Graphics system using sample tags for blur
US5856829A (en) Inverse Z-buffer and video display system having list-based control mechanism for time-deferred instructing of 3D rendering engine that also responds to supervisory immediate commands
US6184891B1 (en) Fog simulation for partially transparent objects
US6392655B1 (en) Fine grain multi-pass for multiple texture rendering
US20080211810A1 (en) Graphic rendering method and system comprising a graphic module
EP1434172A2 (en) Method and system for generating a display image using Gsprites.
US20080150950A1 (en) Method of and apparatus for processing graphics
WO1996027857A1 (en) Hardware architecture for image generation and manipulation
JP2001118082A (ja) 描画演算処理装置
Weyrich et al. A hardware architecture for surface splatting
Nielsen et al. Fast texture-based form factor calculations for radiosity using graphics hardware

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060905

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20061205

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070305

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20070305

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070703

A72 Notification of change in name of applicant

Free format text: JAPANESE INTERMEDIATE CODE: A721

Effective date: 20071002

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20071122

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20071206

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090619

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100428

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100623

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130702

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term