JP4719363B2 - 内部フレームバッファと主メモリ間でのコピーアウト変換を有するグラフィクスシステム - Google Patents
内部フレームバッファと主メモリ間でのコピーアウト変換を有するグラフィクスシステム Download PDFInfo
- Publication number
- JP4719363B2 JP4719363B2 JP2001051371A JP2001051371A JP4719363B2 JP 4719363 B2 JP4719363 B2 JP 4719363B2 JP 2001051371 A JP2001051371 A JP 2001051371A JP 2001051371 A JP2001051371 A JP 2001051371A JP 4719363 B2 JP4719363 B2 JP 4719363B2
- Authority
- JP
- Japan
- Prior art keywords
- graphics
- data
- texture
- format
- copy
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/363—Graphics controllers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/02—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/391—Resolution modifying circuits, e.g. variable screen formats
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/393—Arrangements for updating the contents of the bit-mapped memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2320/00—Control of display operating conditions
- G09G2320/02—Improving the quality of display appearance
- G09G2320/0247—Flicker reduction other than flicker reduction circuits used for single beam cathode-ray tubes
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2320/00—Control of display operating conditions
- G09G2320/02—Improving the quality of display appearance
- G09G2320/0271—Adjustment of the gradation levels within the range of the gradation scale, e.g. by redistribution or clipping
- G09G2320/0276—Adjustment of the gradation levels within the range of the gradation scale, e.g. by redistribution or clipping for the purpose of adaptation to the characteristics of a display device, i.e. gamma correction
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/04—Changes in size, position or resolution of an image
- G09G2340/0407—Resolution change, inclusive of the use of different resolutions for different screen areas
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/127—Updating a frame memory using a transfer of data from a source area to a destination area
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/399—Control of the bit-mapped memory using two or more bit-mapped memories, the operations of which are switched in time, e.g. ping-pong buffers
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
- Image Input (AREA)
- Image Processing (AREA)
Description
【発明の分野】
この発明はコンピュータグラフィクスに関し、特にたとえば、家庭用ビデオゲームプラットフォームのようなインタラクティブなグラフィクスシステムに関する。より特定的には、この発明は、再構成可能な内部(embeded)フレームバッファと主メモリとの間でイメージデータを転送するときに種々の変換および他の処理動作を実行できるコピーパイプラインを有するグラフィクスシステムに関する。このコピーパイプラインは、選択的にさらなる処理を行いかつイメージデータを主メモリ中の表示バッファもしくはテクスチャバッファへ選択的に転送するために使用される。
【0002】
【発明の背景および発明の概要】
多くの人々はかなりリアルな恐竜,エイリアン,生き生きとしたおもちゃおよび他の空想的な動物を含む映画をかつて見たことがある。そのようなアニメーションはコンピュータグラフィクスによって可能とされた。そのような技術を用いて、コンピュータグラフィクスのアーティストは、各オブジェクトがどのように見えるべきかや時間の経過とともに外見上どのように変化すべきかを特定し、コンピュータは、そのオブジェクトをモデル化してテレビジョンやコンピュータスクリーンのようなディスプレイに表示する。コンピュータは、表示される映像の各部分を、場面中の各オブジェクトの位置や向き,各オブジェクトを照らすように見える照明の方向,各オブジェクトの表面テクスチャ,および他の要素に正確に基づいて、色付けしまた形作るために必要な多くのタスクを実行する。
【0003】
コンピュータグラフィクスの生成は複雑であるので、ここ数年前のコンピュータによって生成された3次元(3D)グラフィクスは、ほとんど高価な特殊なフライトシミュレータ,ハイエンドグラフィクスワークステーションおよびスーパーコンピュータに限られていた。大衆は映画や高価なテレビコマーシャルにおいてこれらのコンピュータシステムによって生成された映像のいくつかを見たが、大部分の人はグラフィクスを生成しているコンピュータに対して実際に相互作用をさせることはできない。たとえば、Nintendo64(登録商標)や今や利用可能であるパソコン用の種々の3Dグラフィクスカードのような比較的安価な3Dグラフィクスプラットフォームの利用によって、このすべてが変わった。今や、家庭や会社の比較的安価なコンピュータグラフィクスシステム上でエキサイティングな3Dアニメーションやシミュレーションに対して相互作用を及ぼすことができる。
【0004】
グラフィクスシステム設計者が過去に直面した問題は、種々のデータフォーマットでストアできかつしたがって効率的で有利な態様で処理できる強力で安価なシステムを提供することである。グラフィクスシステムに使用されるグラフィクスチップは、グラフィクスパイプラインによってレンダリングされたままのデータをストアするための局所またはオンチップメモリを有する。グラフィクスチップによってデータが発生されたとき、そのデータは、局所メモリから、表示装置上にデータを表示するためにたとえばビデオインタフェースユニットによってデータが使用され得る外部メモリへ転送される。この外部メモリは、典型的には、グラフィクスシステムの主メモリの一部であり、外部フレームバッファ(XFB)と呼ばれる。局所メモリと外部フレームバッファとの間のデータの処理経路はコピーパイプラインと呼ばれることがある。
【0005】
局所メモリおよび外部フレームバッファは、グラフィクスシステムにおける種々の機能性を達成するために多様なデータフォーマットを有する。グラフィクスシステム設計者が過去に直面した1つの問題は、そのシステム上で動くアプリケーションによる有利でかつ効率的な使用を可能にするために局所メモリおよび外部フレームバッファにおいてどのようなデータフォーマットをサポートするかを決定することである。グラフィクスシステム設計者が過去に直面した他の問題は、システムの速度,柔軟性および全体動作を最大にする有用かつ効率的な方法をみつけることである。たとえば、1つの問題は、そのシステム中のどのコンポーネントが或る処理もしくは機能を行うために使用されるべきであるか、そしてそのような処理はどのタイミングで行われるべきであるかを決定することである。他の問題は、典型的にはグラフィクスチップの局所メモリからシステムの主メモリへデータを転送するために使用されるコピーパイプラインのような処理パイプラインの最もよい利点を如何に採用するかということである。
【0006】
これらの問題に対する種々のソリューションが提案されている。たとえば、グラフィクスシステムは多様なデータフォーマットを使用し、システムの全体動作を改善しもしくは最大にするための試みにおいて、グラフィクス処理動作中の種々の点でそのようなフォーマット間での変換を行っていた。このようなメモリに関連して過去にいくつかの仕事がなされたけれども、データフォーマットや変換のさらなる改善が望まれている。特に、家庭用ビデオゲームシステムのような高性能かつ低価格のグラフィクスシステムのために一層の改善が要請されている。
【0007】
この発明は、内部フレームバッファからグラフィクスシステム中の主メモリへのデータのコピーアウトに関連して使用するための技術および構成を提供することによって、この問題に向けられる。この発明は、内部フレームバッファから主メモリのような外部の宛先へのデータの転送中に「オンザフライ」によって行われるように、データのさらなる処理および/またはデータフォーマット変換を有利に可能ならしめるコピーアウトパイプラインを提供する。この発明は、さらに、コピーアウト動作において有利に使用されるように、種々のピクセルデータフォーマットを可能ならしめるコピーパイプラインを提供する。さらに、この発明のコピーパイプラインは、内部フレームバッファからのデータを、表示用の特別なフォーマットで、またはグラフィクスパイプライン動作におけるテクスチャとしての後続の使用のための多様なテクスチャフォーマットで、主メモリへコピーできるようにする。この発明のコピーパイプラインは、インタラクティブ3Dビデオゲームをプレイするために設計されたシステムにおいて用いられるとき特に有利である。この発明によれば、内部フレームバッファは、エイリアス補正(anti-aliasing)モード、デフリッカ(deflicker)モードおよびYUV(すなわち、輝度/クロマ)モードを含む多様なモードで再構成されかつ効率的に使用され得て、それによって多様なアプリケーションをサポートするようにシステムの柔軟性を増大する。各モードのための所望のピクセルフォーマットは、たとえば、内部フレームバッファが設けられているグラフィクスハードウェアへのコマンドを使用することによって選択され得る。コピーパイプラインは内部フレームバッファによってサポートされている任意のフォーマットにおけるデータを処理しかつ選択的にさらに変換することができる。
【0008】
この発明によれば、コピーパイプラインは、データを外部のフレームバッファへストアする前に、内部フレームバッファからのデータをさらに処理するために有利に使用される。コピーパイプラインは、たとえば、データをストアするために必要なメモリの量を減じるためにおよび/またはグラフィクスシステムによるさらなる処理における使用のために、所望のフォーマットでデータを提供するように、たとえば、多様な有用なフォーマット間でデータを変換するために使用され得る。コピーパイプラインはまた、表示品質を改善しおよび/または表示特性を変更する態様で、そのフレームデータをさらに処理するために使用され得る。
【0009】
この発明によって提供される1つの局面によれば、グラフィクスシステムは、内部フレームバッファと、その内部フレームバッファから外部の記憶場所へデータを転送するコピーパイプラインを含み、そのコピーパイプラインはデータを外部の記憶場所へ書き込む前に或るフォーマットから他のフォーマットへ変換する。外部の記憶場所は、グラフィクスシステムの主メモリ中の表示バッファまたはテクスチャバッファであってよい。コピーパイプラインは、データが表示バッファへ転送されるならばデータを表示フォーマットに変換し、データがテクスチャバッファへ転送されるならばテクスチャフォーマットに変換する。グラフィクスパイプラインは、後続するレンダリングプロセス中テクスチャバッファのデータを使用するように動作可能である。コピーパイプラインは内部フレームバッファから種々のRGBカラーフォーマットまたはYUVカラーフォーマットでデータを選択的に読み出し、表示フォーマットまたは多様なテクスチャフォーマットのいずれかで主メモリにデータを書き込む。
【0010】
この発明の他の局面によれば、グラフィクスチップから外部の宛先へデータを転送する方法が提供される。この方法は、グラフィクスチップの内部フレームバッファにイメージデータをストアするステップ、内部フレームバッファから外部の宛先へデータを転送するためのコピーアウト動作を開始させるステップ、コピーアウト動作中データを或るフォーマットから他のフォーマットへ変換するステップ、および変換したデータを外部の宛先へ書き込むステップを含む。この方法は、データをテクスチャフォーマットに変換しかつテクスチャバッファへそのテクスチャフォーマットデータを書き込むか、あるいはデータを表示フォーマットに変換しかつその表示フォーマットデータを表示バッファへ書き込む。コピーパイプラインはまた、コピーアウトプロセス中でかつ主メモリへデータを書き込む前に、スケーリング(scaling),ガンマ補正および/またはエイリアス補正動作を選択的に行うように動作可能である。変換ステップは、RGBカラーフォーマットから他のRGBカラーフォーマットへの変換、YUVカラーフォーマットから他のYUVカラーフォーマットへの変換、RGBカラーフォーマットからYUVカラーフォーマットへの変換、およびYUVカラーフォーマットからRGBカラーフォーマットへの変換の少なくとも1つを実行するステップを含む。
【0011】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【0012】
【実施例】
図1は対話型(インタラクティブ)3Dコンピュータグラフィクスシステム50の一例を示す。システム50は対話型3Dビデオゲームをステレオ音声とともにプレイするのに用いられ得る。これはまた多様な他のアプリケーションにも用いられ得る。
【0013】
この実施例において、システム50は3次元世界のディジタル表現ないしモデルをインタラクティブにかつリアルタイムに処理することができる。システム50は、任意の視点から、その世界の一部または全部を表示することができる。たとえば、システム50は、手持ちコントローラ52aおよび52bまたは他の入力デバイスからのリアルタイム入力に応答して、視点をインタラクティブに変化できる。このことによって、ゲームプレーヤは、その世界内もしくは外の誰かの目を通してその世界を見ることができる。システム50は、リアルタイム3Dインタラクティブ表示を必要としないアプリケーション(たとえば2D表示の発生やおよび/またはノンインタラクティブ表示)に使用できるが、高品質の3D映像を非常に速く表示する能力は、非常にリアルでエキサイティングなゲームプレイや他のグラフィクスインタラクションを創造するのに使用され得る。
【0014】
システム50を用いてビデオゲームまたは他のアプリケーションをプレイするために、ユーザはまず、主ユニット54を、カラーテレビ56または他の表示装置に、両者の間にケーブル58を接続することによって、接続する。主ユニット54はカラーテレビ56を制御するためのビデオ信号およびオーディオ信号を発生する。ビデオ信号はテレビジョン画面59上に表示されている映像を制御するものであり、オーディオ信号はテレビのステレオスピーカ61Lおよび61Rを通して音声として再生される。
【0015】
ユーザはまた主ユニット54を電源につなぐ必要がある。この電源は従来のACアダプタ(図示せず)であってよく、そのACアダプタは家庭用の標準的な壁ソケットに差し込まれ、家庭用電源を、主ユニット54を駆動するのに適した低いDC電圧信号に変換する。他の実施例ではバッテリが用いられてもよい。
【0016】
ユーザは主ユニット54を制御するために手持ちコントローラ52aおよび52bを用いる。コントロール60は、たとえば、3D世界内においてテレビ56に表示されているキャラクタが移動すべき方向(上または下、左または右、近づいてまたは遠ざかって)を指示するために使用され得る。コントロール60は、また他のアプリケーションのための入力(たとえばメニュー選択,ポインタ/カーソル制御,その他)を与える。コントローラ52は多様な形態をとり得る。この実施例においては、図示されるコントローラ52は、各々ジョイスティック,押しボタンおよび/または方向スイッチのようなコントロール60を含む。コントローラ52は、ケーブルによって、もしくは電磁波(たとえば電波または赤外線)を介してワイヤレスで、主ユニット54に接続され得る。
【0017】
ゲームのようなアプリケーションをプレイするために、ユーザはビデオゲームもしくはプレイしたいと思う他のアプリケーションをストアしている適宜の記憶媒体62を選択し、その記憶媒体を主ユニット54のスロット64に差し込む。記憶媒体62は、たとえば、特別にエンコードされおよび/または記号化された光学的ならびに/もしくは磁気的ディスクであってよい。ユーザは主ユニット54をオンするために電源スイッチ66を操作し、主ユニットがその記憶媒体62にストアされているソフトウェアに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザは主ユニットに入力を与えるためにコントローラ52を操作する。たとえば、コントロール60を操作することによってゲームもしくは他のアプリケーションをスタートさせる。他のコントロール60を動かすことによって、動画キャラクタを異なる方向に移動させ、または3D世界におけるユーザの視点を変化させる。記憶媒体62にストアされている具体的なソフトウェアによって、コントローラ52上の種々のコントロール60は異なる時間で異なる機能を達成することができる。
全体システムの例
図2はシステム50の例示的なコンポーネントのブロック図であり、重要なコンポーネントは、
・主プロセサ(CPU)110,
・主メモリ112,および
・グラフィクス/オーディオプロセサ114を含む。
【0018】
この実施例において、主プロセサ110(たとえばIBMパワーPC750の改良版)は、手持ちコントローラ52(および/または他の入力デバイス)からの入力をグラフィクス/オーディオプロセサ114を通して受ける。主プロセサ110はユーザ入力にインタラクティブに応答し、光ディスクドライブのような大容量記憶媒体アクセス装置106を介して、たとえば外部記憶媒体62から供給されるビデオゲームもしくは他のプログラムを実行する。一例として、ビデオゲームプレイの状況では、主プロセサ110は、多様なインタラクティブ制御機能に加えて、衝突検出および動画処理を実行する。
【0019】
この実施例では、主プロセサ110は3Dグラフィクス/オーディオコマンドを発生し、それらをグラフィクス/オーディオプロセサ114に送る。グラフィクス/オーディオプロセサ114はこれらのコマンドを処理し、ディスプレイ59上での可視映像を生成し、ステレオスピーカ61Rおよび61Lもしくは他の適宜の音声発生デバイス上でのステレオ音声を生成する。
【0020】
実施例のシステム50はビデオエンコーダ120を含み、このビデオエンコーダは、グラフィクス/オーディオプロセサ114からの映像信号を受けて、その映像信号をコンピュータモニタや家庭用テレビ56のような標準的な表示装置上での表示に適したアナログおよび/またはディジタルビデオ信号に変換する。システム100はまたオーディオコーデック(圧縮器/伸長器)122を含み、このオーディオコーデックはディジタル化されたオーディオ信号を圧縮しかつ伸長するとともに、必要に応じてディジタルオーディオ信号のフォーマットとアナログオーディオ信号のフォーマットとの間で変換を行う。オーディオコーデック122はバッファ124を介してオーディオ入力を受けることができ、処理(たとえば、プロセサが生成したおよび/または大容量記憶媒体アクセス装置106のストリームオーディオ出力を介して受信した他のオーディオ信号とのミキシング)するために、そのオーディオ入力をグラフィクス/オーディオプロセサ114に与える。この実施例におけるグラフィクス/オーディオプロセサ114は、オーディオタスクに利用可能なオーディオメモリ126にオーディオ関連情報をストアすることができる。グラフィクス/オーディオプロセサ114は、結果的に得られるオーディオ出力信号を、圧縮およびアナログ信号への変換のために、オーディオコーデック122に与え、したがってそのオーディオ出力信号が(たとえばバッファアンプ128Lおよび128Rを介して)スピーカ61Lおよび61Rによって再生され得る。
【0021】
グラフィクス/オーディオプロセサ114はシステム100内に存在するであろう種々の付加的なデバイスと通信する能力を有する。たとえば、パラレルディジタルバス130は大容量記憶媒体アクセス装置106および/または他のコンポーネントと通信するために用いられる。シリアル周辺バス132は多様な周辺機器または、たとえば、
・PROMおよび/またはRTC(リアルタイムクロック)134,
・モデム136もしくは他のネットワークインタフェース(それはシステム100を、プログラム命令および/またはデータがダウンロードもしくはアップロードされ得るインターネットあるいは他のディジタルネットワークのようなテレコミュニケーションネットワーク138に接続する),および
・フラッシュメモリ140
を含む他のデバイスと通信する。
別の外部シリアルバス142は、付加的な拡張メモリ144(たとえばメモリカード)もしくは他のデバイスと通信するために使用され得る。コネクタが種々のデバイスをバス130,132および142に接続するために使用され得る。
グラフィクス/オーディオプロセサの例
図3は実施例のグラフィクス/オーディオプロセサ114を示すブロック図である。或る実施例においては、グラフィクス/オーディオプロセサ114はシングルチップASICであってよい。この実施例においては、グラフィクス/オーディオプロセサ114は、
・プロセサインタフェース150,
・メモリインタフェース/コントローラ152,
・3Dグラフィクスプロセサ154,
・オーディオディジタル信号プロセサ(DSP)156,
・オーディオメモリインタフェース158,
・オーディオインタフェース/ミキサ160,
・周辺コントローラ162,および
・表示コントローラ164
を含む。
【0022】
3Dグラフィクスプロセサ154はグラフィクス処理タスクを実行する。オーディオディジタル信号プロセサ156はオーディオ処理タスクを実行する。表示コントローラ164は主メモリ112からの映像情報にアクセスし、表示装置102上での表示のためにその映像情報をビデオエンコーダ120に与える。オーディオインタフェース/ミキサ160はオーディオコーデック122をインタフェースし、また異なるソースからのオーディオ(たとえば、大容量記憶媒体アクセス装置106からのオーディオストリーム,オーディオDSP156の出力,およびオーディオコーデック122を通して受ける外部オーディオ入力)をミックスすることができる。プロセサインタフェース150は主プロセサ110およびグラフィクス/オーディオプロセサ114の間のデータおよび制御インタフェースを提供する。
【0023】
メモリインタフェース152はグラフィクス/オーディオプロセサ114とメモリ112との間のデータおよび制御インタフェースを提供する。この実施例においては、主プロセサ110は、プロセサインタフェース150およびグラフィクス/オーディオプロセサ114の一部であるメモリインタフェース152を介して、主メモリ112にアクセスする。周辺コントローラ162はグラフィクス/オーディオプロセサ114と上で述べた種々の周辺機器との間のデータおよび制御インタフェースを提供する。オーディオメモリインタフェース158はオーディオメモリ126とのインタフェースを提供する。
グラフィクスパイプラインの例
図4は図3の3Dグラフィクスプロセサ154をより詳細に示すグラフィクス処理システムを示す。この3Dグラフィクスプロセサ154は、とりわけ、コマンドプロセサ200および3Dグラフィクスパイプライン180を含む。主プロセサ110はデータストリーム(たとえばグラフィクスコマンドストリームおよび表示リスト)をコマンドプロセサ200に通信する。主プロセサ110はメモリレイテンシを最小化するために2レベルキャッシュ112を有し、さらにまたグラフィクス/オーディオプロセサ114に向けられたキャッシュされていないデータストリームのための書込収集(write-gathering)バッファ111を有する。この書込収集バッファ11は部分キャッシュラインを全キャッシュラインに集め、バスの最大使用時に、グラフィクス/オーディオプロセサ114からのデータを1つのキャッシュラインに送る。
【0024】
コマンドプロセサ200は主プロセサ110からの表示コマンドを受け、それらを解剖し、メモリコントローラ152を介して共用メモリ112からのそのコマンドを処理するに必要な付加的なデータを入手する。コマンドプロセサ200は、2Dおよび/または3D処理およびレンダリングのために、頂点コマンドのストリームをグラフィクスパイプライン180に与える。グラフィクスパイプライン180はこれらのコマンドに基づいて映像を生成する。結果として得られた映像情報は、表示コントローラ/ビデオインタフェースユニット164によるアクセスのために主メモリ120に転送され得て、この映像情報は表示装置56上にパイプライン180のフレームバッファ出力を表示する。
【0025】
図5はグラフィクスプロセサ154を用いて実行される処理を図解的に示すブロック論理フロー図である。主プロセサ10は、グラフィクスコマンドストリーム210,表示リスト212および頂点アレイ214を主メモリ112にストアし、ポインタをバスインタフェース150を介してコマンドプロセサ200に送る。主プロセサ110は主メモリ110内に割り付けられた1つ以上のグラフィクスFIFOバッファ210にグラフィクスコマンドをストアする。このコマンドプロセサ200は、
・同期/フロー制御および負荷バランスのためにグラフィクスコマンドを受けかつバッファするオンチップFIFOメモリバッファ216を介して主メモリ112からのコマンドストリーム,
・オンチップコールFIFOメモリバッファ218を介して主メモリ112からの表示リスト212,および
・コマンドストリームからおよび/または主メモリ112の頂点アレイ214からの頂点アトリビュートを頂点キャッシュ220を介して
取り込む。
【0026】
コマンドプロセサ200はコマンド処理動作200aを実行し、そのコマンド処理動作200aはアトリビュート形式を浮動小数点フォーマットに変換し、結果的に得られた完全頂点ポリゴンデータをレンダリング/ラスタライゼーションのためにグラフィクスパイプライン180に与える。プログラマブルメモリ調停回路130(グラフィクスメモリ要求調停回路:図4)は、グラフィクスパイプライン180,コマンドプロセサ200および表示コントローラ/ビデオインタフェースユニット164の間での共用主メモリ112へのアクセスを調停する。
【0027】
図4は、グラフィクスパイプライン180が
・変換ユニット300,
・セットアップ/ラスタライザ400,
・テクスチャユニット500,
・テクスチャ環境ユニット600,および
・ピクセルエンジン700
を含むことを示す。
【0028】
変換ユニット300は多様な2Dおよび3D変換および他の動作300a(図5)を実行する。変換ユニット300は変換処理300aに用いられるマトリクスをストアするための1つ以上のマトリクスメモリ300bを含む。変換ユニット300は、入来する頂点毎のジオメトリをオブジェクト空間からスクリーン空間へ変換し、そして入来するテクスチャ座標を変換しかつ投影テクスチャ座標(300c)を計算する。変換ユニット300はまたポリゴンクリッピング/カリング(clipping/culling)300dを実行する。変換ユニット300bによってまた達成される照明処理300eが、この実施例では8つまでの独立した照明について、頂点毎に照明計算を行う。変換ユニット300は、エンボス(embossed)タイプのバンプマッピング効果およびポリゴンクリッピング/カリング動作(300d)のために、テクスチャ座標を発生する(300c)。
【0029】
セットアップ/ラスタライザ400はセットアップユニットを含み、このセットアップユニットは、変換ユニット300からの頂点データを受け、三角形セットアップ情報を、エッジラスタライゼーション,テクスチャ座標ラスタライゼーションおよびカラーラスタライゼーションを実行する1つ以上のラスタライザユニット(400b)に送る。
【0030】
テクスチャユニット500は、オンチップテクスチャメモリ(TMEM)502を含んでもよく、たとえば、
・主メモリ112からのテクスチャ504の抽出、
・たとえばマルチテクスチャ処理,ポストキャッシュテクスチャ伸長,テクスチャフィルタリング,エンボシング,投影テクスチャの使用を通しての陰影付け,およびアルファトランスパーレンシおよびデプスを用いるBLITを含むテクスチャ処理(500a)、
・バンプマッピング,偽(pseudo)テクスチャおよびテクスチャタイル(tiling)効果(500b)のためのテクスチャ座標置換を計算するバンプマップ処理、および
・間接テクスチャ処理(500c)
を含むテクスチャリングに関連する種々のタスクを実行する。
【0031】
テクスチャユニット500はテクスチャ環境処理(600a)のためにフィルタされたテクスチャ値をテクスチャ環境ユニット600に出力する。テクスチャ環境ユニット600は、ポリゴンおよびテクスチャカラー/アルファ/デプスをブレンドし、また逆レンジベース(reverse range based)のフォグ効果を達成するために、テクスチャフォグ処理(600b)を実行する。テクスチャ環境ユニット600はたとえばカラー/アルファ変調,エンボシング,詳細テクスチャ,テクスチャスワッピング,クランピングおよびデプスブレンディングに基づく多様な他の環境関連機能を実行する多段階を提供する。
【0032】
ピクセルエンジン700はデプス(z)比較(700a)およびピクセルブレンディング(700b)を実行する。この実施例では、ピクセルエンジン700はデータを埋め込み(オンチップ)フレームバッファメモリ702にストアする。グラフィクスパイプライン180は、フレームバッファおよび/またはテクスチャ情報をローカルにストアするために1つ以上の埋め込みDRAMメモリ702を含む。z比較700aは、現在有効なレンダリングモードに依存して、グラフィクスパイプライン180におけるより早い段階で実行される(たとえば、z比較は、もしアルファブレンディングが要求されていないならば早くに実行され得る)。このピクセルエンジン700は表示コントローラ/ビデオインタフェースユニット164による主メモリ112へのアクセスのために、オンチップフレームバッファ702を周期的に書き込むコピー動作700cを含む。このコピー動作700cはまた動的テクスチャ合成効果のために、埋め込みフレームバッファ702の内容を主メモリ112中のテクスチャにコピーするために使用され得る。エイリアス補正および他のフィルタリングがコピー動作中に実行され得る。最終的に主メモリ112にストアされるグラフィクスパイプライン180のフレームバッファ出力は、表示コントローラ/ビデオインタフェースユニット164によってフレーム毎に読み出される。表示コントローラ/ビデオインタフェース164は表示装置56上での表示のためにディジタルRGBピクセル値を与える。
内部フレームバッファのための構成例
図4において概略的に示すように、内部フレームバッファ702はグラフィクスパイプライン180からのデータを受ける。このグラフィクスパイプラインはRGB(A)フォーマットでプリミティブをレンダリングする。したがって、以下により詳細に示すように、内部フレームバッファ702は種々のRGB(A)フォーマットでピクセルデータをストアするように構成され得る。図4からわかるように、プロセサインタフェース150は、グラフィクスパイプライン180へデータを供給するためだけではなく、主プロセサ(CPU)110がデータを内部フレームバッファに直接ロードするのを可能にするために使用され得る。このCPUによる内部フレームバッファの直接ローディングによって、RGB形式のフォーマット以外のピクセルフォーマットを内部フレームバッファに送ることができ、それによって多様なアプリケーションをサポートするようにシステムの柔軟性を増大する。特に、プロセサインタフェース150は、たとえば光ディスクまたは他の記憶媒体からYUVフォーマット(すなわち輝度/クロマフォーマット)のピクセルデータを内部フレームバッファへロードすることができる。YUVフォーマットのデータが内部フレームバッファ内にあると、そのデータは、後のレンダリングプロセス中において、テクスチャ環境ユニット(TEV)によるテクスチャとしての使用のために、コピーパイプラインを用いて、種々のテクスチャフォーマットで主メモリにコピーアウトされ得る。そのために、この発明によれば、内部フレームバッファは、種々のRGB(A)フォーマットとYUVフォーマットとの間で再構成できる。これらのフォーマットの各々を以下に詳細に説明する。
内部フレームバッファのためのRGB(A)フォーマットの例
この例において、内部フレームバッファ(EFB)は約2MBのメモリ容量を有する。最大ピクセル幅およびフレームバッファの高さは各ピクセルのサイズによって決定される。この発明によれば、そして図6に示すように、内部フレームバッファ702内のデータのために使用され得る2つの異なるRGBピクセルサイズがある。これらのサイズは
・48ビットカラーおよびZ、ならびに
・96ビットスーパーサンプリングカラーおよびZ
である。
48ビットのピクセルサイズ構成
内部フレームバッファ(EFB)のための48ビットフォーマットは、好ましくは、エイリアス補正をしないものであり、
・24ビットカラー(アルファなしの8/8/8、または6ビットのアルファ付きの6/6/6/6)
・24ビットのZ
を有する。
【0033】
エイリアス補正をしないこのモードにおいては、48ビットフォーマットは、この例においては、640×528の最大解像度をサポートし得る。そのために、幅は0−640の間であるべきで、EFBのストライド(stride)は640ピクセルに固定される。このエイリアス補正なしのモードは各ピクセル内における1つの点サンプル(point sample)に基づく。上で示したように、各ピクセルの点サンプルは24ビットのカラー値および24ビットのZ値によって与えられる。このカラー値は、アルファを用いないときには赤,緑および青の値の各々毎に8ビットを有し、もしくは赤,緑,青およびアルファ毎に6ビットを有する。
96ビットピクセルサイズ構成
96ビットの超サンプリング(super-sampling)ピクセルフォーマットは好ましくはエイリアス補正のために使用され、
・16ビットカラーの3サンプル(5ビットの赤,6ビットの緑,5ビットの青,アルファなし)
・16ビットのZ(デプス)3サンプル
を有する。
【0034】
この96ビットフォーマットは640×264の最大解像度をサポートし得る。幅は好ましくは0−640の間であり、ストライドは640に固定される。
【0035】
この例において、96ビットフォーマットはエイリアス補正のために使用される。しかしながら、このフォーマットは、ピクセル毎に3つの超サンプルを要するエイリアス補正以外の機能を達成するために使用されてもよい。換言すれば、96ビットフォーマットは、48ビット構成において使用されるピクセル毎の点サンプルに対して、ピクセル毎に3つのサンプル(超サンプル)をストアする能力を提供する。
【0036】
上から明らかなように、48ビットピクセルフォーマットと96ビットピクセルフォーマットとの間には固有のトレードオフがある。96ビットのエイリアス補正フォーマットによればポリゴンエッジと交点上の画像品質をよくすることができるが、性能とZ品質とを犠牲にする。96ビット超サンプリングEFBフォーマットは48ビット点サンプリングピクセルの2倍のメモリを必要とする。このモードはまたZバッファ精度を、他のフォーマットの24ビットではなく、16ビットに減じる。この例でいえば、エイリアス補正は、ピークのフィルレート(fill rate)を800Mピクセル/sから400Mピクセル/sへ減じる。しかしながら、テクスチャ環境ユニット(TEV)において1つ以上のステージを採用するなら、この減少は隠され、この例でいえば、2つのTEVステージがまたフィルレートを400Mピクセル/sに減じる。
【0037】
或る実施例において、内部フレームバッファ702のバンド幅による制限のために、エイリアス補正付きのレンダリングレートは2ピクセル/クロックへ低下する。しかしながら、2つまたはそれ以上のテクスチャがオンされるなら、ピクセルクォードラプレットがピクセルエンジン700へ送られるレートが、この具体的な実施例においては、2クロック毎に、1つもしくはそれより少ないピクセルクォードラプレットに低下する。この場合は、エイリアス補正をオンしてもフィルレートには影響は与えない。そのために、具体的なシーンがジオメトリで制限されると、エイリアス補正はレンダリング性能に逆に影響を与えない。他方、具体的なシーンがフィルレートで制限されると、点サンプルモードを用いる場合に対して、エイリアス補正を活性化することによって、レンダリング性能は実質的に影響を受ける。そのシーンまたはイメージがジオメトリによる制限を受けるのかあるいはフィルレートによる制限を受けるのかによって、もしくは具体的なシーンやイメージにおいて要求される画像品質に依存して、同じアプリケーションが、異なるシーンや異なるイメージについてエイリアス補正を活性化したりしなかったりすることができる。たとえば、フレーム毎のエイリアス補正の活性化/不活性化のためにフレームバッファにおけるピクセルフォーマットを動的に変更する能力は、画像品質と速度性能との間のトレードオフを作るためにアプリケーションプログラマに非常に大きな柔軟性を与える。
96ビット構成を用いるエイリアス補正
この発明に関連して使用するための具体的なかつ好ましいエイリアス補正方法および装置が同じ出願人の出願に係る同時係属中の「グラフィクスシステムにおけるエイリアス補正方法および装置」(特願平2001−94538)に開示されていて、この開示がそれを参照することによって全体としてここで取り入れられる。内部フレームバッファのための96ビットピクセルフォーマットのより完全な理解を与えるために、以下に、このエイリアス補正の簡単な説明を行う。
【0038】
エイリアス補正の実施例によれば、エイリアス補正は2つの主たるフェーズで行われる。最初のフェーズでは、データはピクセル毎に3つの超サンプルおよび96ビットのピクセルEFBフォーマットを用いる内部フレームバッファにロードされる。第2フェーズにおいて、データは、この内部フレームバッファから読み出され(もしくはコピーされ)、コピーパイプラインによってさらに処理される。96ビットフォーマットは、特に、エイリアス補正の第1フェーズを達成するために有利である。しかしながら、それは同じように任意の他の適宜の目的のために使用され得る。
【0039】
96ビットフォーマットを用いるこの実施例のエイリアス補正においては、第1エイリアス補正フェーズは、ラスタライザが内部フレームバッファ(EFB)702へのエッジラスタライゼーションを行っているときに生じる。好ましくは、このラスタライザはエッジおよびzラスタライザであり、それは、レンダリングされている現在の三角形もしくは他のプリミティブに含まれる可視ピクセルクォードラプレット内におけるプログラマブルな超サンプリング位置のためのx,y,zおよびカバーマスク値を発生する。このピクセルクォードラプレットは各ピクセル内において3つのプログラマブルなサブピクセル位置を有する。ピクセルクォードラプレットは2×2構成において4つのピクセルを含む。クォードラプレット中の各ピクセル内において、3つの超サンプリング位置がプログラマブルに選択されかつ特定される。好ましくは、プログラマは、グローバルレジスタを書き込むことによって、サブサンプル位置を設定できる。各ピクセル中の超サンプリングの各々の位置がこの実施例においてはプログラマブルであるため、具体的なアプリケーションについての必要に応じて各クォードラプレットのための具体的なサンプリング位置を変更することができる。他方、別の実施例においては、具体的に最適化されたマルチサンプル位置の値が(たとえばハードウェアに設定することによって)固定され、そのために、アプリケーションプログラマはそれを気にする必要がない。したがって、実施例においては位置はプログラマブルであるが、このプログラマブルな能力に代えて結線された随意的なパターンが用いられてもよい。パターンを選択するものは、フレーム中の或る数の隣接ピクセルにまたがって繰り返され得る。
【0040】
すべてのプリミティブが1フレームについてレンダリングされると、内部フレームバッファは1つの全フレームについての超サンプリングピクセルの情報を含む。各ピクセルについて3つの超サンプルが与えられ、各サンプルが16ビットのカラー値と16ビットのz値とを含むということによって、各ピクセルは内部フレームバッファ中において96ビットで表される。内部フレームバッファは、次いで、コピーパイプラインによる使用のために準備され、そこでは、エイリアス補正の第2フェーズが実行可能である。この第2フェーズはコピーパイプラインに関連して以下により詳細に説明する。エイリアス補正についてのさらなる詳細は上で述べた同時係属中の出願を参照されたい。
YUV内部フレームバッファ構成
図7は、内部フレームバッファ702のための別の構成を示し、このバッファ702は、たとえば、システムによってサポートされるべきMPEG規格(たとえばMPEG2)の下での動き補償を可能ならしめるYUV(輝度/クロマ)フォーマットにおけるピクセルデータをストアするように設計されている。このYUV構成においては、カラーバッファは、好ましくは、YUV4:2:0フレームのためのY(720×576),U(360×288)およびV(360×288)のイメージパネルをストアするように仕切られる。このカラーバッファの仕切りは
・1024×640 8ビットのYイメージ;
・528×320 8ビットのUイメージ;および
・528×320 8ビットのVイメージ
を割り付ける。
【0041】
イメージの好ましい割り付けが図7に示される。YUVデータは好ましくは、光ディスクやその類似物のような外部へ供給される媒体からもしくはグラフィクスパイプライン以外の任意の他の適宜のソースから、主プロセサによって内部フレームバッファにロードされる。しかしながら、グラフィクスパイプラインは1つの成分YまたはUまたはVイメージを与えるが、3つのYUVピクセルを引き出すことはできない。以下に詳細に説明するように、内部フレームバッファ中のYUVデータは、そのデータを表示するためにもしくはそのデータをグラフィクスパイプラインによる後続の使用のためにテクスチャデータに変換するために、コピーパイプラインによってさらに処理され得る。
ピクセルフォーマットコマンドの例
上で説明したように、内部フレームバッファ702は2つのRGB(A)ピクセルフォーマット(48ビットおよび96ビット)ならびにYUVフォーマットをサポートするように選択的に構成され得る。所望のピクセルフォーマットが、好ましくは、API(Application Program Interface)を用いるフレーム毎に設定される。この目的のAPI関数を表1に示す。
【0042】
【表1】
【0043】
この関数は内部フレームバッファのフォーマットを設定する。その関数は任意の引き出し動作を行う前にコールされる。ピクセルフォーマットは、この実施例においては、フレームの中程で変更され得る。16ビットのZ値(マルチサンプルまたはエイリアス補正モードで)は圧縮されなくても圧縮されてもよい。圧縮された値はよりよい精細度および範囲を与える。Ztopフラグがテクスチャマッピングの前に(Z-before-texture)、デプス比較を行うために使用される。これは、ごく僅かのテクセルが取り出されかつフィルタリングされるだけであるので、テクスチャバンド幅を改善する。
ピクセルエンジンと内部フレームバッファとの間のインタフェース
ピクセルエンジン700と内部フレームバッファ702との間の例示的なインタフェースが図8に示される。好ましくは、図8に示すように、そのうちの2つがカラー用であり2つがZ用である内部フレームバッファの4つのコピー(702a,702b,702cおよび702d)がある。この例において、ピクセルエンジンからの内部フレームバッファへの読出または書込アクセスは96ビットのデータまたはカラーおよびZの4つのクォードラプレットを転送する。バッファの各々のコアへの4つのアドレス/制御および読出バスがある。ZチャネルAおよびBは、好ましくは、書込ポート703aを共用し、カラーチャネルAおよびBは好ましくは、別の書込ポート703bを共用する。内部フレームバッファは、好ましくは、800Mピクセル/秒のピークフィルレートのためにクロック毎に4つのピクセルをブレンドするように十分なバンド幅を有する。内部フレームバッファの最大サイズは640×528×24ビットカラーおよび24ビットZである。内部フレームバッファは1つのバッファであり、最終イメージを表示のために外部フレームバッファへ転送するようにされている。二重にバッファされた表示がこの態様で達成される。図7に示すアドレス/制御,読出および書込バスは次の表2に詳細に定義される。
【0044】
【表2】
【0045】
コピーアウト動作およびパイプラインの例
コピーパイプラインと呼ばれるものを通してこの実施例中において実現されるコピーアウト動作は、内部フレームバッファ(EFB)からのピクセルデータをさらに処理するために、そしてビデオインタフェースによる表示のための表示データとしてもしくはグラフィクスパイプライン(図12参照)による後の使用のためのテクスチャデータとして、フレームデータを最終的に、主メモリ112の外部フレームバッファ(XFB)へ選択したフォーマットで書き込むために使用される。内部フレームバッファ中のRGB(A)またはYUV420のデータが主メモリYUV422へフィールド毎にまたはフレーム毎にコピーされ得る。YUV422データは、走査線順次にコピーアウトされる。走査線間でメモリバイトをスキップさせるのを許容するストライドがある。Y8は最下位アドレスであり、それに続いてU8,Y8およびV8がある。YUVフォーマットにおけるコピーによって、主メモリにおいて使用されるメモリ量を1/3まで減じる。
【0046】
コピーパイプラインの概略ブロック図が図9に示され、この図9では、このコピーパイプラインは2つのRGB(A)ピクセル構成のどちらかのときEFBからのデータの処理に主として関連するものとして示される。図9に示すように、コピーパイプラインのこの局面は、エイリアス補正/デフリッカ部622,ガンマ補正部623,RGB−YUV変換部624およびYスケーリング部626を含む。
【0047】
すべてのEFB構成(すなわち、RGB(A)およびYUV)のためのコピーパイプラインのより完全なブロック図が図13に示される。図12はシステムの種々のコンポーネント間でデータが取り出される種々の経路を示す。図13に示すように、この実施例におけるフィルタリング動作のために必要なバッファリング量を低減するために、コピー矩形(rectangle)が32×32のタイルに分解される。これらのタイルは2つのタイルバッファ625aおよび625bを用いることによって二重にバッファリングされ、そのために、1つのタイルが充填(フィル)されているとき他のタイルが読み出されかつ主メモリへ送られるように処理される。矩形は、好ましくは、Y方向のタイルに分解され、それに続いてX方向のタイルに分解される。1つのタイル内の1つのスパンにおける4つのピクセルが1つのサイクルで処理される。このピクセルクォードラプレットはYからXへ続く順序で処理される。
【0048】
より具体的に図13を参照して、具体的なコピーパイプライン動作は、内部フレームバッファ中におけるデータの具体的な構造やそのコピーアウト動作の結果を必要とするプログラマに依存する。上で述べたように、カラーバッファはRGB8,RGBA6,R5G6B5(エイリアス補正)もしくはYUV420のデータを含み、Zバッファは24ビットのZもしくは3×16ビットのZ(エイリアス補正)を含む。図18はこの実施例において利用可能な種々のデータフォーマットのための好ましい変換マトリクスを示す。
【0049】
内部フレームバッファが上で述べたRGB(A)フォーマットのいずれかにおけるデータのためにかつそれを含むように構成されるならば、コピーパイプラインは、好ましくは、図13においてブロック628によって図示するプログラマブルな7タップの垂直フィルタを用いるエイリアス補正/デフリッカ動作を行う。より詳細には後に説明するが、このフィルタは多数のピクセルからの点サンプリングされたもしくは超サンプリングされた(エイリアス補正)ピクセルデータをブレンドし、それの結果として得られたピクセルカラーを出力する。ブレンドが行われると、ブロック623によって図解されるように、ガンマ補正が行われる。次いで、具体的なアプリケーションのために必要ならば、RGBデータをYUV444フォーマットへ変換する(ブロック641)ために随意的な変換が行われ得る。もし、データがブロック641でYUV444へ変換されると、次いで、YUV444からYUV422へ変換するためにブロック644において他の随意的な変換が行われる。コピーパイプラインが表示のために使用されているならば、YUV422へのこの変換は、この実施例ではYUV422である主メモリ表示フォーマットへそのデータをするために行われる。タイルデータは、次いで、上で説明したタイルバッファ625aおよび625bでバッファリングされる。そして、そのタイルが表示のためのものであれば、Yスケーリングがブロック626で行われ、スケーリングされたデータが、ビデオインタフェースによる使用のためのYUV422フォーマットで主メモリへコピーアウトされる(ブロック642)。他方、データがテクスチャとして使用されるものであれば、Yスケーリングは行われない。代わりに、タイルデータはブロック640で所望のテクスチャにフォーマット化され、グラフィクスパイプラインにおける後続する動作における使用のために、テクスチャタイルとして主メモリへ送られる。この実施例における可能なテクスチャフォーマットが図18に示され、テクスチャコピーコマンドおよびレジスタビット定義に関連して以下にリストアップされる。
【0050】
もし、内部フレームバッファが上で説明したYUV420フォーマットのデータのためでありかつそのデータを保持するように構成されるなら、パイプラインは図13の下部によって示されるような僅かに異なる動作を有する。特に、カラーバッファからのYUV420のデータは、まず、YUV444フォーマットへ変換される(ブロック646)。YUV444からRGBへの随意的な変換が、次いでブロック648で行われ得る。データ経路はRGB(A)構成に関連して上で説明したと同じである。すなわち、タイルは、ブロック644で、YUV422に随意的に変換され(もし先にYUV444へ変換されているなら)、次いで、バッファリングされ、そしてスケーリングされるかまたは表示データとして主メモリへ送られ、もしくは所望のテクスチャフォーマットへ変換されて主メモリ中にテクスチャタイルとしてストアされる。図19は主メモリへテクスチャタイル(たとえば、タイル1−4)が如何にしてストアされるかの例を示す。
【0051】
テクスチャは内部フレームバッファ(EFB)をGXCopyTex 関数を用いる主メモリへコピーすることによって作られる。これは、動的な影マップ、環境マップ、動きブルー(blur)効果等を作り出すときに有用である。
【0052】
圧縮テクスチャ(GX_TF_CMPR) を除くすべての非カラーインデックステクスチャ形式がこのコピー中に作り出され得る。テクスチャコピー動作は正しいタイルおよびテクスチャフォーマットを作り、そのためにハードウェアによって直接読み出され得る。随意的に、下部詳細レベル(LOD:level of detail)テクスチャを作り出すためにEFBにおけるイメージにボックスフィルタが適用され得る。このボックスフィルタはEFBデータからミップマップ(mipmap)を作り出すために使用され得る。テクスチャコピーフォーマットおよび変換ノートの例を次の表3に示す。
【0053】
【表3】
【0054】
通常、ソースおよび宛先矩形は同じサイズを有する。しかしながら、より大きなテクスチャへ組み立てられる小さいテクスチャをコピーするときには、ソースおよび宛先矩形は異なってよい。フォーマットGX_TF_A8が、具体的に、EFBからのアルファチャネルをGX_TF_I8のフォーマット化されたテクスチャへコピーするために使用される。GX_TF_I8はEFBの輝度をGX_TF_I8テクスチャへコピーする。テクスチャを読み出すとき、GX_TF_A8およびGX_TF_I8は同じである。GX_PF_RGB8_Z24 のピクセルフォーマットからGX_TF_RGB565のような低解像度カラーフォーマットへカラーテクスチャが変換されるとき、8ビットカラーの最下位ビット(LSBs)が圧縮される。GX_PF_RGB565_Z16 のような低解像度ピクセルフォーマットからGX_TF_RGB8のような高解像度テクスチャフォーマットへカラーテクスチャが変換されるとき、各ピクセルの最上位ビット(MSBs)が各テクセルの最下位ビットに折り返される。この変換プロセスが見込みエラーを均等に分散し、そして、各テクセルが最小もしくは最大値を表すことができるようにする。概略的にいえば、EFBからのアルファを含むテクスチャをフォーマットGX_PF_RGBA6_Z24 でコピーするだけである。EFBからのアルファを含むテクスチャをアルファなしでコピーすると、アルファはその最大値に設定される。GX_TF_Z24X8 フォーマットは24ビットのZバッファを32ビットのテクスチャ(GX_TF_RGB8と等価なフォーマット)にコピーするために使用される。テクスチャをコピーするために、アプリケーションは、好ましくは、まず、主メモリ中のバッファにコピーされるべきテクスチャのサイズを割り付ける。このサイズは、たとえばGXGetTexBufferSize関数を用いることによって決定できる。この関数は、好ましくは、それの計算においてテクスチャパッド(padding)およびテクスチャ形式を考慮に入れる。
【0055】
上の説明からわかるように、この発明に従ったコピーアウトプロセスによって、使用されるべき種々のデータフォーマットおよび行われるべき種々の変換/操作を可能とし、それによって非常な柔軟性および機能性が与えられる。YUVフォーマットをサポートしかつテクスチャとしてのコピーアウトを可能にすることによって、コピーパイプラインは、たとえば、動き補償を行う際に主プロセサを助けるために使用され得る。上で述べたようなコピーアウトプロセスは、内部フレームバッファからのデータを表示のためにもしくはテクスチャとして外部フレームバッファへ効率的に移動させかつ処理するために用いられるだけでなく、YUVカラー空間を使用するMPEGデータに基づくテクスチャコピーの特徴を使用することによって、ポリゴン上に重畳されるべき映像をストリーミングすることができる。
【0056】
上で述べたコピーパイプライン動作の各々がより一層詳細に以下に説明される。
コピーアウト中の例示的なエイリアス補正
上で簡単に説明したように、エイリアス補正が必要な場合には、内部フレームバッファは96ビットのエイリアス補正付きピクセルデータ(たとえば、R5G6B6およびZ16 )のために構成され、エイリアス補正の第2ステージがコピーアウト中に行われ得る。特に、エイリアス補正の第2ステージは、内部フレームバッファ(EFB)702から外部フレームバッファ(XFB)113へのコピーアウト中に、エイリアス補正/デフリッカ部622によって行われる。
【0057】
コピーパイプラインのエイリアス補正/デフリッカ部622は、好ましくは、各超サンプル毎にプログラマブルな重み(W0−W6)を有する7タップの垂直フィルタ628(図14を参照)を適用する。垂直フィルタのためのサポートは、好ましくは、3垂直ピクセル領域である。したがって、エイリアス補正モードにおける現在のピクセルNのためのカラーを決定するとき、現在のピクセルの直上のピクセル(N−1)における超サンプルおよび現在のピクセルの直下のピクセル(N+1)における超サンプルならびに現在のピクセルにおける超サンプルが好ましくは用いられる。好ましくは、2つの周囲のピクセルの各々内において現在のピクセルから最も遠いサンプルはそのフィルタリング動作においては用いられない。そのために、フィルタリングのための3ピクセルのサポートは9つのサンプルを持つが、その9つのサンプルの7個だけが実施例におけるブレンド動作において使用される。結果的に得られた垂直フィルタリング出力は外部フレームバッファへの最終的なコピーおよび表示装置56上での表示のために、1画面のピクセルカラー値(N′)を与える。
【0058】
フルラインバッファの使用を回避するために、コピー動作は、好ましくは、エイリアス補正(AA)バッファリングを使用し、そこでは、コピーが32ピクセル幅(X軸)のストリップ中で行われる。この例示のAAバッファリングにおけるストリップバッファのためのデータ経路が図15のブロック図中に示される。
【0059】
エイリアス補正/デフリッカ防止技術およびその構成に関する付加的な詳細は先に挙げた同時係属中の出願にある。この発明は内部フレームバッファおよび全体のコピー動作に向けられており、したがって、具体的なエイリアス補正動作には関係なく、ここではエイリアス補正に関するこれ以上の詳細は省略する。
コピーアウト中の例示的なデフリッカフィルタリング
同じ垂直フィルタが、点サンプルピクセルを用いるデフリッカ機能を達成するために、非エイリアス補正モードにおけるコピーアウト中に使用され得る。このモードにおいては、サンプルリングパターンはプログラマブルではない。図16に示すように、ハードウェアは、ピクセルの中心だけをサンプル位置として使用する。各点サンプル毎の重み係数(W0−W6)はエイリアス補正フィルタリングと同じようにプログラマブルである。したがって、デフリッカモードにおける垂直フィルタ628aは現在のピクセルからの3つの入力(中心だけ)および2つの垂直隣接ピクセルの各々からの2つの入力(中心のみ)を使用する。プログラマブルな重み係数が7サンプルに加えられ、そして、結果が最終ピクセルカラー(N′)を得るために加えられる。好ましくは、デフリッカフィルタおよびAAフィルタは共用される。AAデータ経路(図15参照)において用いられる4つのストリップバッファがまたクォードラプレットストリップをストアするために使用される。デフリッカバッファリングのためのデータ経路の例示的なブロック図が図17に示される。このデフリッカに関するさらなる詳細は上記同時係属中の出願において与えられる。
コピーアウト中のRGBからYUV変換の例
輝度/クロマ(YUV)フォーマットはRGBと同じ可視品質のピクセルをストアするが、メモリの2/3だけを必要とする。したがって、コピー動作中、外部フレームバッファ(XFB)のために使用される主メモリの量を減じるために、EFBにおけるRGB(A)フォーマットがXFBにおいてYUVフォーマットに変換される。この変換はRGB−YUV部624によって行われる。変換動作の図解が図10に示され、そこでは、RGBデータが最初にYUV444フォーマットに変換され、次いで、表示データとしてXFBへのストアのためにYUV422フォーマットにダウンサンプリングされる。
コピーアウト中の垂直(Y)スケーリング
コピーパイプラインにおけるYスケール部626はレンダリングイメージの垂直方向における任意のスケーリングを可能にする。水平スケーリングは好ましくは映像表示中に行われる。YスケーリングファクタはAPIにおいて定義され、コピーされる走査線の数を決定し、適当なXFBのサイズを計算するために使用され得る。この発明に従った好ましい垂直スケーリングのためのブロック図が図11に示される。垂直スケーリングは2つの垂直隣接ストリップ間の8ビットラープ(lerp)を使用することによって行う。このラープ係数は1.0で始まる。走査線が出力された後、固定小数点値(1.8)がそのラープ係数に加算される。ラープ係数のキャリーが新たな走査線を使用すべきことを伝達する。2つのストリップバッファ626aおよび626bが互いの上端にある2つの部分的な走査線を確保するために使用される。バッファA(626a)は偶数y値を有するすべての入来ストリップを保持し、バッファB(626b)はすべての奇数y値ストリップを保持する。
コピーアウト中のガンマ補正
ガンマ補正部623は、目の(および時々モニタの)非直線応答を補正するために使用され、カラーの輝度値における変化を直線的にする。ガンマの3つの選択肢が与えられる(1.0,1.7および2.2のような)。デフォルトのガンマは好ましくは1.0であり、それは、たとえば、APIのGXInitコマンドに設定される。
コピーアウト中に使用可能な変換動作の例
RGBからYCrCb(4:4:4)変換
この変換は必要な外部フレームバッファの量を1/3までに減じるために使用される。数1がこの変換のために使用される。
【0060】
【数1】
【0061】
1つの走査線の4つのピクセルが1サイクルで変換される。
【0062】
YCrCb(4:4:4)からYCrCb(4:2:2)
YUV444からYUV422への変換の例が図20に示される。この変換のために数2が使用される。
【0063】
【数2】
【0064】
YCrCb(4:2:0)からYCrCb(4:4:4)
この変換は図21および図22に示される2つの部分で行われる。図21に示す最初の部分ではYUV420フォーマットからYUV422フォーマットへ変換する。この変換が使用するのは数3である。
【0065】
【数3】
【0066】
このYUV420−YUV440変換の第2部分は、図22に示すように、1つ上の部分からのYUV422データをYUV444にアップサンプリングする。この変換は数4を使用する。
【0067】
【数4】
【0068】
YCbCr(4:4:4)からRGBへの変換
MPEG2はYCbCr(YUV)カラー空間において動作する。この変換は、コピーアウト中にYUVデータをRGBデータへ変換するために使用される。
数5がこの変換に使用される。
【0069】
【数5】
【0070】
1つの走査線中の4つのピクセルが1サイクルで変換される。
コピーアウトコマンドの例
表示コピー動作のEFBソースおよび宛先は表4に例示するAPI関数を使用することによって特定される。
【0071】
【表4】
【0072】
この関数は内部フレームバッファ(EFB)の内容を主メモリ中の表示バッファ113へコピーする。「コピーアウト(copy out)」なる用語は、すべての情報を単純に転送する意味ではなく、内部フレームバッファの内容が読み出され、さらに処理され(フィルタリング、再サンプリング、スケーリングなどされ)、その結果的に得られたデータが次いでどこか(たとえば、外部の点サンプル形式のフレームバッファ)へ送られることを意味する。矩形の原点がSrcLeft(X)およびSrcTop(Y) によって定義される。クリアフラグはカラーおよびzバッファの現在のカラーおよびz値へのクリアを可能にする。内部フレームバッファのクリアは好ましくは、コピー動作と同時に生じる。
【0073】
このコピー動作のための制御を設定するために表5で示す関数が使用される。
【0074】
【表5】
【0075】
この関数は内部フレームバッファから表示バッファへのコピー中に使用される制御を設定する。これらの制御は1回設定され、その後多数のコピーコマンドが発行され得る。
【0076】
内部フレームバッファからのテクスチャとしてのデータのコピーのための例示的なAPIコマンドが表6に示される。
【0077】
【表6】
【0078】
この関数は、グラフィクスパイプラインによる後続の使用のためのテクスチャイメージを発生するために、内部フレームバッファを主メモリ中のテクスチャイメージバッファへコピーする。
【0079】
上の例示的なAPIコマンドを使用して指定され得る例示的なパラメータのリストが表7〜表12に示される。
【0080】
【表7】
【0081】
【表8】
【0082】
【表9】
【0083】
【表10】
【0084】
【表11】
【0085】
【表12】
【0086】
ピクセルエンジンレジスタの例
図23−図25はコピーアウト動作に関連してピクセルエンジンによって使用される例示的なレジスタを示す。特に、図23は制御レジスタを示す。この制御レジスタのビット定義は表13に示す通りである。
【0087】
【表13】
【0088】
ビット0−2はコピー動作のためのピクセル形式を指定する。この制御レジスタへの書き込みによって、エッジラスタライザ(RAS0)とピクセルエンジン(PE)との間のグラフィクスパイプラインステージがフラッシュされる。この実施例において、これは最小90サイクルを要する。この実施例への書き込みはまたコピーテクスチャをそのテクスチャを用いるプリミティブのレンダリングと同期化するために使用される。
【0089】
図24はテクスチャ動作へのコピーのための例示的なレジスタを示す。このレジスタのビット定義は表14に示す通りである。
【0090】
【表14】
【0091】
この動作に許容されているピクセル形式はRGB8,RGBA6,RGB_AA(すなわち、エイリアス補正(R5G6B5)),YUV8およびYUV420である。ビット3−6はテクスチャバッファ中にコピーコマンドによってストアされるテクスチャのフォーマットを決定する。この実施例において、このテクスチャフォーマッティングは図13に示すテクスチャフォーマット部640において行われる。この実施例では、Clrはピクセル形式YUV420のためにはサポートされておらず、0に設定されるべきである。この実施例において、ガンマ補正もまたピクセル形式YUV420のためにはサポートされていない。
【0092】
図25は表示動作へのコピーのための例示的なレジスタを示す。このレジスタのビット定義は表15に示す。
【0093】
【表15】
【0094】
この動作のために許容されているピクセル形式は、RGB8,RGBA6,RGB_AA(エイリアス補正)およびYUV420である。Clrはピクセル形式YUV420のためにはサポートされておらず、0に設定されるべきである。この実施例においては、ガンマ補正もまたピクセル形式YUV420のためにはサポートされていない。
互換性のある他の実施例
上述のシステム50は上で述べた家庭用ビデオゲームコンソールの構成以外としても実現できる。たとえば、或るものは、システム50をエミュレートする異なる構成を有するプラットフォームもしくはそれと同等のものにおいて、システム50のために書かれたグラフィクスアプリケーションや他のソフトウェアを実行させることができる。もし、他のプラットフォームがシステム50のいくつかのもしくはすべてのハードウェアおよびソフトウェアリソースをエミュレートしシミュレートしおよび/または提供することができれば、その他のプラットフォームはそのソフトウェアを成功裏に実行することができる。
【0095】
一例として、エミュレータがシステム50のハードウェアおよび/またはソフトウェア構成(プラットフォーム)とは異なるハードウェアおよび/またはソフトウェア構成(プラットフォーム)を提供できる。そのエミュレータシステムは、それのためにアプリケーションソフトウェアが書かれているシステムのいくつかのもしくはすべてのハードウェアおよび/またはソフトウェアコンポーネンツをエミュレートしもしくはシミュレートするソフトウェアおよび/またはハードウェアコンポーネンツを含む。たとえば、エミュレータシステムはパソコンのような汎用ディジタルコンピュータを含み、それはシステム50のハードウェアおよび/またはファームウェアをシミュレートするソフトウェアエミュレータプログラムを実行する。上述のオーディオシステムのDSP処理がパソコンによってエミュレートされ得る。
【0096】
或る汎用ディジタルコンピュータ(たとえばIBMやマッキントッシュのパソコンおよびそれらの同等物)は、ダイレクトX(DirectX)または他の標準的な3DグラフィクスコマンドAPIsに従った3Dグラフィクスパイプラインを提供する3Dグラフィクスカードを備える。それらはまた、音声コマンドの標準的なセットに基づいて高品質のステレオ音声を提供するステレオ音声カードを備える。エミュレータソフトウェアを実行するそのようなマルチメディアのハードウェアを備えるパソコンは、システム50のグラフィクスおよび音声性能とほぼ等しい十分な性能を有する。エミュレータソフトウェアはパソコンプラットフォーム上のハードウェアリソースを制御して、それのためにゲームプログラマがゲームソフトウェアを書いた家庭用ビデオゲームコンソールプラットフォームの処理,3Dグラフィクス,音声,周辺および他の能力をシミュレートする。
【0097】
図26はホストプラットフォーム1201,エミュレータコンポーネント1303および記憶媒体62上のゲームソフトウェア実行可能バイナリ映像を用いる全体のエミュレーション処理を図解する。ホスト1201は、たとえばパソコン,ビデオゲームコンソールあるいは十分な計算力を有する任意の他のプラットフォームのような汎用または特定目的ディジタル計算装置である。エミュレータ1303はそのホストプラットフォーム1201上で走るソフトウェアおよび/またはハードウェアであり、記憶媒体62からのコマンド,データおよび他の情報のそのホスト1201によって実行可能な形態へのリアルタイム変換を行う。たとえば、エミュレータ1303は記憶媒体62からシステム50によって実行されるように意図された「ソース」であるバイナリ映像プログラム命令を取り込み、これらのプログラム命令をホスト1201によって実行されもしくは処理され得るターゲットとなる形態に変換する。
【0098】
一例として、ソフトウェアがIBMパワーPCまたは他の特定のプロセサを用いるプラットフォーム上での実行のために書かれかつホスト1201が異なる(たとえばインテル)プロセサを用いるパソコンである場合、エミュレータ1203は記憶媒体1305からの1つのもしくは一連のバイナリ映像プログラム命令を取り込み、これらのプログラム命令を1つまたはそれ以上の同等のインテルのバイナリ映像プログラム命令に変換する。エミュレータ1203はまたグラフィクス/オーディオプロセサ114によって処理されるように意図されたグラフィクスコマンドおよびオーディオコマンドを取り込みかつ/あるいは生成し、そしてホスト1201上で利用可能なハードウェアおよび/またはソフトウェアグラフィクス/オーディオ処理リソースによって処理され得る形態にこれらのコマンドを変換する。一例として、エミュレータ1303はホスト1201の特別なグラフィクスおよび/または音声ハードウェア(たとえば標準的なダイレクトX,オープンGLおよび/または音声APIs)によって処理され得るコマンドにこれらのコマンドを変換する。
【0099】
上で述べたビデオゲームシステムのいくつかのもしくはすべての特徴を与えるために用いられるエミュレータ1303は、また、エミュレータを使ってゲームを走らせている種々のオプションおよびスクリーンモードの選択を簡単化しもしくは自動化するグラフィックユーザインタフェース(GUI)を備える。一例において、そのようなエミュレータ1303はさらにそのソフトウェアが本来的に目的とされたホストプラットフォームに比べてより増強された機能性を含むこともできる。
【0100】
図27はエミュレータ1303で用いるに適したエミュレーションホストシステム1201を図解的に示す。このシステム1201は処理ユニット1203およびシステムメモリ1205を含む。システムバス1207がシステムメモリ1205を含む種々のシステムコンポーネンツを処理ユニット1203に結合する。システムバス1207は多様なバスアーキテクチャのいずれかを用いるメモリバスもしくはメモリコントローラ,周辺バスおよびローカルバスを含むいくつかのタイプのバス構造の任意のものである。システムメモリ1207はROM1252およびRAM1254を含む。起動中においてのようにパソコンシステム1201中のエレメント(要素)間に情報を伝送する手助けをする基本ルーチンを含む基本入力/出力システム(BIOS)1256がROM1252中にストアされる。システム1201はさらに種々のドライブおよび関連のコンピュータ読出可能な媒体を含む。ハードディスクドライブ1209が(典型的には固定の)磁気ハードディスク1211から読み出しそれへ書き込む。付加的な(たぶんオプションとしての)磁気ディスクドライブ1213が着脱可能な「フロッピィ」または他の磁気ディスク1251から読み出しかつそれへ書き込む。光ディスクドライブ1217はCD−ROMあるいは他の光学媒体のような着脱自在な光ディスク1219から読み出しかつそれへ書き込む。ハードディスクドライブ1209および光ディスクドライブ1217は、ハードディスクドライブインタフェース1221および光ディスクドライブインタフェース1225によって、システムバス1207にそれぞれ接続される。これらのドライブおよびその関連するコンピュータ読出可能な媒体は、パソコンシステム1201のためのコンピュータ読出可能な命令,データ構造,プログラムモジュール,ゲームプログラムおよび他のデータの不揮発性の記憶媒体を提供する。他の構成では、コンピュータによってアクセス可能なデータをストアすることができる他のタイプのコンピュータ読出可能な媒体(たとえば磁気カセット,フラッシュメモリカード,ディジタルビデオディスク,ベルヌーイカートリッジ,RAM,ROMあるいはその他のもの)がまた使用できる。
【0101】
エミュレータ1303を含む多数のプログラムモジュールがハードディスク1211,着脱可能な磁気ディスク1215,光ディスク1219および/またはシステムメモリ1205のROM1252および/またはRAM1254にストアされ得る。このようなプログラムモジュールはグラフィクス/音声APIs,1つ以上のアプリケーションプログラム,他のプログラムモジュール,プログラムデータおよびゲームデータを提供するオペレーティングシステム(OS)を含む。ユーザは、キーボード1227,ポインティングデバイス1229,マイクロフォン,ジョイスティック,ゲームコントローラ,衛星アンテナ(satellite dish),スキャナあるいはその他のもののような入力デバイスを通して、パソコンシステム1201にコマンドおよび情報を入力することができる。これらのそして他の入力デバイスは、システムバス1207に結合されたシリアルポートインタフェース1231を通して処理ユニット1203に接続され得るが、パラレルポート,ゲームポートファイヤワイヤバス(Fire Wire)もしくはユニバーサルシリアルバス(USB)のような他のインタフェースによって接続されてもよい。モニタまたは他のタイプの表示デバイスがまたビデオアダプタ1235のようなインタフェースを介してシステムバス1207に接続される。
【0102】
システム1201はモデム1154またはインターネットのようなネットワーク1152を通しての通信を確立するための他のネットワークインタフェース手段を含む。内部もしくは外付けであってよいモデム1154はシリアルポートインタフェース1231を介してシステムバス123に接続される。システム1201がローカルエリアネットワーク1158を介して遠隔コンピュータ装置1150(たとえば他のシステム1201)と通信するのを許容するために、ネットワークインタフェース1156がまた設けられてもよい(もしくはそのような通信はダイヤルアップもしくは他の通信手段のようなワイドエリアネットワーク1152もしくは他の通信経路を介してもよい)。システム1201はプリンタのような周辺出力装置および他の標準的な周辺装置を含む。
【0103】
一例では、ビデオアダプタ1235は、マイクロソフト(Microsoft)のダイレクトX7.0、または他のバージョンのような標準的な3Dグラフィクスアプリケーションプログラマインタフェースに基づいて発行された3Dグラフィクスコマンドに応答して、高速の3Dグラフィクスレンダリングを提供する3Dグラフィクスパイプラインチップセットを含んでもよい。1組のスピーカ1237はまた、バス1207によって与えられる音声コマンドに基づいて高品質ステレオ音声を生成するハードウェアおよび埋め込みソフトウェアを提供する従来の「音声カード」のような音声生成インタフェースを介して、システムバス1207に接続される。これらのハードウェア能力によって記憶媒体1305中にストアされているソフトウェアを再生するためにシステム1201に十分なグラフィクスおよび音声の速度性能を与えることができる。
【0104】
最も現実的かつ好ましい実施例であると現在考えられているものに関連してこの発明が説明されたが、この発明は開示された実施例に限定されるものではなく、逆に、特許請求の範囲内に含まれる種々の変形例や等価的な構成をカバーするように意図されていることを理解されたい。
【図面の簡単な説明】
【図1】図1はインタラクティブコンピュータグラフィクスシステムの実施例を示す全体図である。
【図2】図2は図1実施例のコンピュータグラフィクスシステムのブロック図である。
【図3】図3は図2に示す実施例のグラフィクス/オーディオプロセサのブロック図である。
【図4】図4は図3に示す実施例の3Dグラフィクスプロセサのブロック図である。
【図5】図4のグラフィクス/オーディオプロセサの例示的な論理フロー図である。
【図6】図6は例示的な内部フレームバッファおよびここで使用する2つのRGBベースのフォーマットを示す。
【図7】図7はYUVフォーマットデータをストアするために図6を再構成した例示的なフレームバッファを示す。
【図8】図8はピクセルエンジンと内部フレームバッファとの間の例示的なインタフェースを示す。
【図9】図9はコピーパイプラインの例示的なブロック図を示す。
【図10】図10はRGBフォーマットからYUVフォーマットへの例示的な変換を図解する。
【図11】図11は垂直スケーリングのために使用されるデータ経路の例示的なブロック図を示す。
【図12】図12はシステムの種々のコンポーネント間でデータがどのように移動するかを示すグラフィクスシステムのブロック図である。
【図13】図13は図9のコピーパイプラインのより詳細なブロック図を示す。
【図14】図14はこの発明の好ましい実施例に従ったエイリアス補正のために使用される例示的な7タップの垂直フィルタを示す。
【図15】図15はこの発明の好ましい実施例に従って使用されるエイリアス補正バッファリングのブロック図を示す。
【図16】図16はデフリッカのために使用される図14の垂直フィルタを示す。
【図17】図17はこの発明の好ましい実施例に従って使用されるデフリッカバッファリングのブロック図である。
【図18】図18はこの発明の好ましい実施例に従った変換マトリクスを示す。
【図19】図19は主メモリ中にストアされているテクスチャタイルを示す。
【図20】図20はYUV444フォーマットからYUV422フォーマットへのダウンサンプリング変換を図解する。
【図21】図21はYUV422フォーマットからYUV444フォーマットへデータを変換するために使用される2変換の1つを図解する。
【図22】図22はYUV422フォーマットからYUV444フォーマットへデータを変換するために使用される2変換の他の1つを図解する。
【図23】図23は現在のピクセルフォーマットを定義する際に使用するための例示的な制御レジスタを示す。
【図24】図24はテクスチャコピーコマンドに関連して使用される例示的なレジスタを示す。
【図25】図25は表示コピーコマンドに関連して使用される例示的なレジスタを示す。
【図26】図26は他の互換性のある一実施例を示す図解図である。
【図27】図27は他の互換性のある他の実施例を示す図解図である。
【符号の説明】
50 …インタラクティブ3Dコンピュータグラフィクスシステム
54 …主ユニット
56 …表示装置
110 …主プロセサ
112 …主メモリ
113 …外部フレームバッファ
114 …グラフィクス/オーディオプロセサ
164 …ビデオインタフェース
500 …テクスチャユニット
502 …テクスチャメモリ
600 …テクスチャ環境ユニット
622 …エイリアス補正/デフリッカ部
623 …ガンマ補正部
624 …RGB−YUV変換部
625 …Yスケーリング部
700 …ピクセルエンジン
702 …内部フレームバッファ
Claims (11)
- 主プロセサ、関連する主メモリおよびグラフィックスパイプライン回路および内部フレームバッファを有するグラフィックスプロセサを含み、前記主メモリはグラフィックスパイプライン回路と同じグラフィックスプロセサ上には内蔵されていない外部メモリである、グラフィックスシステムであって、
内部フレームバッファからのデータを読み出して外部主メモリへ転送する間にピクセルデータを或る画像フォーマットから他の画像フォーマットへ選択的に変換するコピーアウトパイプラインを備え、
コピーアウトパイプラインはデータを主メモリ内の表示バッファまたはテクスチャバッファに選択的に転送するように動作可能であり、
コピーアウトパイプラインは、データを表示バッファに転送するときには表示フォーマットに変換し、データをテクスチャバッファに転送するときにはテクスチャフォーマットに変換する、グラフィックスシステム。 - グラフィックスプロセサはさらにグラフィックスパイプラインを含み、そのグラフィックスパイプラインは後続するレンダリングプロセスにおいて主メモリのテクスチャバッファへコピーしたデータを使用するように動作可能である、請求項1記載のグラフィクスシステム。
- 内部フレームバッファはピクセルデータをRGBカラーフォーマットもしくはYUVカラーフォーマットに選択的に変換する、請求項1記載のグラフィクスシステム。
- コピーアウトパイプラインは、主メモリ中の外部フレームバッファへのピクセルデータのコピーの間に、内部フレームバッファからのデータをYUV表示フォーマットまたはRGBテクスチャフォーマットに選択的に変換する、請求項1記載のグラフィクスシステム。
- コピーアウトパイプラインは、それが前記表示バッファへピクセルデータを転送しているときに、そのピクセルデータをYUV表示フォーマットへ変換する、請求項4記載のグラフィックスシステム。
- 前記コピーアウトパイプラインは、エイリアス補正モードまたはデフリッカモードのどちらかで動作可能なピクセルフィルタ部、ピクセルカラー値に所定の補正値を与えるガンマ補正部、およびRGB‐YUVフォーマット変換部を含む、請求項1記載のグラフィックスシステム。
- 前記ピクセルフィルタ部は7タップの垂直フィルタを含む、請求項6記載のグラフィックスシステム。
- 前記コピーアウトパイプラインは、それがピクセルデータを表示バッファへ転送するとき、ピクセルデータの垂直スケーリングを行うYスケーリング部を含む、請求項1記載のグラフィックスシステム。
- 前記コピーアウトパイプラインは、ピクセルデータを所定のテクスチャデータフォーマットへ変換し、変換したデータを複数のテクスチャタイルに形成する、請求項1記載のグラフィックスシステム。
- 内部フレームバッファ中のピクセルデータの選択されたサブ領域はレンダリングされたグラフィックオブジェクト上のテクスチャとして重畳するストリーミングビデオ画像を作るためのMPEGデータを含む、請求項1記載のグラフィックスシステム。
- 主プロセサと、グラフィックス処理パイプラインの少なくとも一部と同じ半導体チップ基板上に組み込まれた内部フレームバッファを有するパイプライングラフィックスプロセサと、前記グラフィックス処理パイプラインを含む半導体チップとは別の1つまたはそれ以上の半導体チップ上に形成されている主メモリ内に存在する外部テクスチャバッファとを含むグラフィックスシステムにおける、内部フレームバッファからのピクセルデータを前記外部テクスチャバッファへコピーするピクセルデータコピーアウトプロセスにおいて、コピーアウトプロセスは、ピクセルデータの前記内部フレームバッファから前記外部テクスチャバッファへの転送中に所定のピクセルデータ変換および/またはフィルタリング動作を実行し、
内部フレームバッファ中のピクセルのサブ領域をピクセルデータコピー動作のためのソースとして選択し、
主メモリの外部テクスチャバッファにおける宛先をピクセルデータコピー動作のために選択し、そして
ピクセルデータの前記内部フレームバッファから前記外部テクスチャバッファへの転送動作中に、表示データフォーマットからのピクセルの選択された矩形サブ領域を複数のテクスチャデータフォーマットの1つに変換することによって、外部テクスチャバッファ内でテクスチャタイルを作る、方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US22703000P | 2000-08-23 | 2000-08-23 | |
US60/227030 | 2000-08-23 | ||
US09/722663 | 2000-11-28 | ||
US09/722,663 US7184059B1 (en) | 2000-08-23 | 2000-11-28 | Graphics system with copy out conversions between embedded frame buffer and main memory |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002063594A JP2002063594A (ja) | 2002-02-28 |
JP4719363B2 true JP4719363B2 (ja) | 2011-07-06 |
Family
ID=26921088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001051371A Expired - Lifetime JP4719363B2 (ja) | 2000-08-23 | 2001-02-27 | 内部フレームバッファと主メモリ間でのコピーアウト変換を有するグラフィクスシステム |
Country Status (2)
Country | Link |
---|---|
US (2) | US7184059B1 (ja) |
JP (1) | JP4719363B2 (ja) |
Families Citing this family (70)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7749089B1 (en) | 1999-02-26 | 2010-07-06 | Creative Kingdoms, Llc | Multi-media interactive play system |
US7878905B2 (en) | 2000-02-22 | 2011-02-01 | Creative Kingdoms, Llc | Multi-layered interactive play experience |
US6761637B2 (en) | 2000-02-22 | 2004-07-13 | Creative Kingdoms, Llc | Method of game play using RFID tracking device |
US7445550B2 (en) | 2000-02-22 | 2008-11-04 | Creative Kingdoms, Llc | Magical wand and interactive play experience |
US7538772B1 (en) * | 2000-08-23 | 2009-05-26 | Nintendo Co., Ltd. | Graphics processing system with enhanced memory controller |
US7066781B2 (en) | 2000-10-20 | 2006-06-27 | Denise Chapman Weston | Children's toy with wireless tag/transponder |
US6967566B2 (en) | 2002-04-05 | 2005-11-22 | Creative Kingdoms, Llc | Live-action interactive adventure game |
US20070066396A1 (en) | 2002-04-05 | 2007-03-22 | Denise Chapman Weston | Retail methods for providing an interactive product to a consumer |
US7009655B2 (en) * | 2002-07-23 | 2006-03-07 | Mediostream, Inc. | Method and system for direct recording of video information onto a disk medium |
US7674184B2 (en) | 2002-08-01 | 2010-03-09 | Creative Kingdoms, Llc | Interactive water attraction and quest game |
US9446319B2 (en) | 2003-03-25 | 2016-09-20 | Mq Gaming, Llc | Interactive gaming toy |
CN100416649C (zh) * | 2003-04-01 | 2008-09-03 | 松下电器产业株式会社 | 视频合成电路 |
US7366975B1 (en) * | 2003-04-05 | 2008-04-29 | Apple Inc | Method and apparatus for allowing a media client to obtain media data from a media server |
GB2403115B (en) * | 2003-06-17 | 2006-02-08 | Imagination Tech Ltd | Texturing 3-dimensional computer graphic images |
US7511714B1 (en) * | 2003-11-10 | 2009-03-31 | Nvidia Corporation | Video format conversion using 3D graphics pipeline of a GPU |
JP2006094415A (ja) * | 2004-09-27 | 2006-04-06 | Toshiba Corp | 映像装置及び映像ストリーミング方法 |
US8427496B1 (en) | 2005-05-13 | 2013-04-23 | Nvidia Corporation | Method and system for implementing compression across a graphics bus interconnect |
US8313379B2 (en) * | 2005-08-22 | 2012-11-20 | Nintendo Co., Ltd. | Video game system with wireless modular handheld controller |
JP4805633B2 (ja) | 2005-08-22 | 2011-11-02 | 任天堂株式会社 | ゲーム用操作装置 |
US7942745B2 (en) * | 2005-08-22 | 2011-05-17 | Nintendo Co., Ltd. | Game operating device |
US7927216B2 (en) | 2005-09-15 | 2011-04-19 | Nintendo Co., Ltd. | Video game system with wireless modular handheld controller |
US8870655B2 (en) | 2005-08-24 | 2014-10-28 | Nintendo Co., Ltd. | Wireless game controllers |
JP4262726B2 (ja) | 2005-08-24 | 2009-05-13 | 任天堂株式会社 | ゲームコントローラおよびゲームシステム |
US8308563B2 (en) * | 2005-08-30 | 2012-11-13 | Nintendo Co., Ltd. | Game system and storage medium having game program stored thereon |
US8157651B2 (en) | 2005-09-12 | 2012-04-17 | Nintendo Co., Ltd. | Information processing program |
US20070126747A1 (en) * | 2005-12-02 | 2007-06-07 | Dijia Wu | Interleaved video frame buffer structure |
US7728841B1 (en) * | 2005-12-19 | 2010-06-01 | Nvidia Corporation | Coherent shader output for multiple targets |
JP4530419B2 (ja) * | 2006-03-09 | 2010-08-25 | 任天堂株式会社 | 座標算出装置および座標算出プログラム |
JP4151982B2 (ja) | 2006-03-10 | 2008-09-17 | 任天堂株式会社 | 動き判別装置および動き判別プログラム |
JP4684147B2 (ja) * | 2006-03-28 | 2011-05-18 | 任天堂株式会社 | 傾き算出装置、傾き算出プログラム、ゲーム装置およびゲームプログラム |
US8004535B2 (en) * | 2006-06-01 | 2011-08-23 | Qualcomm Incorporated | Apparatus and method for selectively double buffering portions of displayable content |
US7834873B2 (en) * | 2006-08-25 | 2010-11-16 | Intel Corporation | Display processing line buffers incorporating pipeline overlap |
US8139058B2 (en) * | 2006-11-03 | 2012-03-20 | Vivante Corporation | Hierarchical tile-based rasterization algorithm |
CN101563913B (zh) * | 2006-12-22 | 2011-10-19 | 诺基亚公司 | 消除闪光灯图像中的赝像 |
JP5127242B2 (ja) | 2007-01-19 | 2013-01-23 | 任天堂株式会社 | 加速度データ処理プログラムおよびゲームプログラム |
US7746355B1 (en) * | 2007-01-24 | 2010-06-29 | Vivante Corporation | Method for distributed clipping outside of view volume |
US8823705B2 (en) * | 2007-04-11 | 2014-09-02 | Panasonic Corporation | Image generating apparatus and image generating method for generating images by rendering a polygon |
US8463997B2 (en) * | 2007-08-16 | 2013-06-11 | Samsung Electronics Co., Ltd. | Apparatus and method of caching frame |
US8013862B2 (en) * | 2007-11-16 | 2011-09-06 | Microsoft Corporation | Texture codec |
US8253728B1 (en) | 2008-02-25 | 2012-08-28 | Lucasfilm Entertainment Company Ltd. | Reconstituting 3D scenes for retakes |
US20090305782A1 (en) * | 2008-06-10 | 2009-12-10 | Oberg Gregory Keith | Double render processing for handheld video game device |
US9218792B2 (en) | 2008-12-11 | 2015-12-22 | Nvidia Corporation | Variable scaling of image data for aspect ratio conversion |
US8860781B2 (en) * | 2009-06-30 | 2014-10-14 | Qualcomm Incorporated | Texture compression in a video decoder for efficient 2D-3D rendering |
US20110063305A1 (en) * | 2009-09-16 | 2011-03-17 | Nvidia Corporation | Co-processing techniques on heterogeneous graphics processing units |
KR20110064722A (ko) * | 2009-12-08 | 2011-06-15 | 한국전자통신연구원 | 영상 처리 정보와 컬러 정보의 동시 전송을 위한 코딩 장치 및 방법 |
US9053562B1 (en) | 2010-06-24 | 2015-06-09 | Gregory S. Rabin | Two dimensional to three dimensional moving image converter |
JP4818450B1 (ja) * | 2010-06-30 | 2011-11-16 | 株式会社東芝 | グラフィクスプロセッシングユニットおよび情報処理装置 |
US8447134B1 (en) * | 2010-12-20 | 2013-05-21 | Ambarella, Inc. | Image warp caching |
US9460546B1 (en) | 2011-03-30 | 2016-10-04 | Nvidia Corporation | Hierarchical structure for accelerating ray tracing operations in scene rendering |
US9142043B1 (en) | 2011-06-24 | 2015-09-22 | Nvidia Corporation | System and method for improved sample test efficiency in image rendering |
US8970584B1 (en) | 2011-06-24 | 2015-03-03 | Nvidia Corporation | Bounding box-based techniques for improved sample test efficiency in image rendering |
US9153068B2 (en) | 2011-06-24 | 2015-10-06 | Nvidia Corporation | Clipless time and lens bounds for improved sample test efficiency in image rendering |
US9269183B1 (en) | 2011-07-31 | 2016-02-23 | Nvidia Corporation | Combined clipless time and lens bounds for improved sample test efficiency in image rendering |
US9305394B2 (en) | 2012-01-27 | 2016-04-05 | Nvidia Corporation | System and process for improved sampling for parallel light transport simulation |
US9171394B2 (en) | 2012-07-19 | 2015-10-27 | Nvidia Corporation | Light transport consistent scene simplification within graphics display system |
US9159158B2 (en) | 2012-07-19 | 2015-10-13 | Nvidia Corporation | Surface classification for point-based rendering within graphics display system |
US9607407B2 (en) | 2012-12-31 | 2017-03-28 | Nvidia Corporation | Variable-width differential memory compression |
US9591309B2 (en) | 2012-12-31 | 2017-03-07 | Nvidia Corporation | Progressive lossy memory compression |
US9992021B1 (en) | 2013-03-14 | 2018-06-05 | GoTenna, Inc. | System and method for private and point-to-point communication between computing devices |
US9723216B2 (en) | 2014-02-13 | 2017-08-01 | Nvidia Corporation | Method and system for generating an image including optically zoomed and digitally zoomed regions |
BR102014007666B1 (pt) * | 2014-03-28 | 2023-01-10 | Samsung Eletrônica Da Amazônia Ltda | Método para autenticação de transações móveis usando criptografia de vídeo e método para criptografia de vídeo |
US9760968B2 (en) | 2014-05-09 | 2017-09-12 | Samsung Electronics Co., Ltd. | Reduction of graphical processing through coverage testing |
US9842428B2 (en) | 2014-06-27 | 2017-12-12 | Samsung Electronics Co., Ltd. | Dynamically optimized deferred rendering pipeline |
CN105389776B (zh) | 2014-09-02 | 2019-05-03 | 辉达公司 | 图像缩放技术 |
KR101701294B1 (ko) * | 2015-05-29 | 2017-02-01 | 라인 가부시키가이샤 | 이미지 뷰 바인딩의 최적화를 위한 시스템 및 방법 |
KR102261962B1 (ko) | 2015-07-21 | 2021-06-07 | 삼성전자주식회사 | 디스플레이 구동 장치, 이를 포함하는 디스플레이 장치 및 시스템 |
US10559112B2 (en) * | 2016-03-11 | 2020-02-11 | Intel Corporation | Hybrid mechanism for efficient rendering of graphics images in computing environments |
KR101823818B1 (ko) | 2017-01-24 | 2018-01-30 | 라인업 주식회사 | 이미지 뷰 바인딩의 최적화를 위한 시스템 및 방법 |
US10209909B1 (en) * | 2017-07-28 | 2019-02-19 | EMC IP Holding Company LLC | Storage element cloning in presence of data storage pre-mapper |
CN113689707B (zh) * | 2021-07-20 | 2022-09-06 | 浙江大华技术股份有限公司 | 视频数据处理方法、装置以及计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11505644A (ja) * | 1995-03-06 | 1999-05-21 | セイコーエプソン株式会社 | 画像生成及び操作用装置 |
JP2000020044A (ja) * | 1998-07-03 | 2000-01-21 | Hitachi Ltd | 画像処理装置 |
Family Cites Families (127)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4218760A (en) * | 1976-09-13 | 1980-08-19 | Lexicon | Electronic dictionary with plug-in module intelligence |
US4275413A (en) | 1978-03-30 | 1981-06-23 | Takashi Sakamoto | Linear interpolator for color correction |
US4357624A (en) | 1979-05-15 | 1982-11-02 | Combined Logic Company | Interactive video production system |
US4491836A (en) | 1980-02-29 | 1985-01-01 | Calma Company | Graphics display system and method including two-dimensional cache |
US4425559A (en) | 1980-06-02 | 1984-01-10 | Atari, Inc. | Method and apparatus for generating line segments and polygonal areas on a raster-type display |
US4388620A (en) | 1981-01-05 | 1983-06-14 | Atari, Inc. | Method and apparatus for generating elliptical images on a raster-type video display |
US4463380A (en) | 1981-09-25 | 1984-07-31 | Vought Corporation | Image processing system |
US4570233A (en) | 1982-07-01 | 1986-02-11 | The Singer Company | Modular digital image generator |
US4600919A (en) | 1982-08-03 | 1986-07-15 | New York Institute Of Technology | Three dimensional animation |
US4615013A (en) | 1983-08-02 | 1986-09-30 | The Singer Company | Method and apparatus for texture generation |
GB8322438D0 (en) | 1983-08-19 | 1983-10-12 | Marconi Avionics | Display systems |
US4586038A (en) | 1983-12-12 | 1986-04-29 | General Electric Company | True-perspective texture/shading processor |
US4808988A (en) | 1984-04-13 | 1989-02-28 | Megatek Corporation | Digital vector generator for a graphic display system |
US4725831A (en) | 1984-04-27 | 1988-02-16 | Xtar Corporation | High-speed video graphics system and method for generating solid polygons on a raster display |
US4829452A (en) | 1984-07-05 | 1989-05-09 | Xerox Corporation | Small angle image rotation using block transfers |
US4658247A (en) | 1984-07-30 | 1987-04-14 | Cornell Research Foundation, Inc. | Pipelined, line buffered real-time color graphics display system |
US4695943A (en) | 1984-09-27 | 1987-09-22 | Honeywell Information Systems Inc. | Multiprocessor shared pipeline cache memory with split cycle and concurrent utilization |
EP0184547B1 (en) | 1984-12-07 | 1991-11-21 | Dainippon Screen Mfg. Co., Ltd. | Processing method of image data and system therefor |
US4625289A (en) | 1985-01-09 | 1986-11-25 | Evans & Sutherland Computer Corp. | Computer graphics system of general surface rendering by exhaustive sampling |
US4710876A (en) | 1985-06-05 | 1987-12-01 | General Electric Company | System and method for the display of surface structures contained within the interior region of a solid body |
US4897806A (en) | 1985-06-19 | 1990-01-30 | Pixar | Pseudo-random point sampling techniques in computer graphics |
US5239624A (en) | 1985-06-19 | 1993-08-24 | Pixar | Pseudo-random point sampling techniques in computer graphics |
FR2586838B1 (fr) | 1985-08-30 | 1989-07-28 | Labo Electronique Physique | Processeur d'elimination de faces cachees pour la synthese d'images a trois dimensions |
US4974177A (en) | 1985-10-04 | 1990-11-27 | Daikin Industries Ltd. | Mapping circuit of a CRT display device |
US4692880A (en) | 1985-11-15 | 1987-09-08 | General Electric Company | Memory efficient cell texturing for advanced video object generator |
JPS62192878A (ja) | 1986-02-20 | 1987-08-24 | Nippon Gakki Seizo Kk | 多角形の塗りつぶし方法 |
US4862392A (en) | 1986-03-07 | 1989-08-29 | Star Technologies, Inc. | Geometry processor for graphics display system |
JPS62231380A (ja) | 1986-03-31 | 1987-10-09 | Namuko:Kk | 画像合成装置 |
US5504917A (en) | 1986-04-14 | 1996-04-02 | National Instruments Corporation | Method and apparatus for providing picture generation and control features in a graphical data flow environment |
US4785395A (en) | 1986-06-27 | 1988-11-15 | Honeywell Bull Inc. | Multiprocessor coherent cache system including two level shared cache with separately allocated processor storage locations and inter-level duplicate entry replacement |
US4768148A (en) | 1986-06-27 | 1988-08-30 | Honeywell Bull Inc. | Read in process memory apparatus |
US4817175A (en) | 1986-08-26 | 1989-03-28 | Schlumberger Systems And Services, Inc. | Video stream processing system |
US4855934A (en) | 1986-10-03 | 1989-08-08 | Evans & Sutherland Computer Corporation | System for texturing computer graphics images |
US4918625A (en) | 1986-12-19 | 1990-04-17 | Cae-Link Corporation | Method and apparatus for processing translucent objects |
US4965750A (en) | 1987-03-31 | 1990-10-23 | Hitachi, Ltd. | Graphic processor suitable for graphic data transfer and conversion processes |
US4833601A (en) | 1987-05-28 | 1989-05-23 | Bull Hn Information Systems Inc. | Cache resiliency in processing a variety of address faults |
US4935879A (en) | 1987-08-05 | 1990-06-19 | Daikin Industries, Ltd. | Texture mapping apparatus and method |
US4965751A (en) | 1987-08-18 | 1990-10-23 | Hewlett-Packard Company | Graphics system with programmable tile size and multiplexed pixel data and partial pixel addresses based on tile size |
US5170468A (en) | 1987-08-18 | 1992-12-08 | Hewlett-Packard Company | Graphics system with shadow ram update to the color map |
US4866637A (en) | 1987-10-30 | 1989-09-12 | International Business Machines Corporation | Pipelined lighting model processing system for a graphics workstation's shading function |
US5144291A (en) | 1987-11-02 | 1992-09-01 | Matsushita Electric Industrial Co., Ltd. | Means for eliminating hidden surface |
US4888712A (en) | 1987-11-04 | 1989-12-19 | Schlumberger Systems, Inc. | Guardband clipping method and apparatus for 3-D graphics display system |
US4945500A (en) | 1987-11-04 | 1990-07-31 | Schlumberger Technologies, Inc. | Triangle processor for 3-D graphics display system |
US4901064A (en) | 1987-11-04 | 1990-02-13 | Schlumberger Technologies, Inc. | Normal vector shading for 3-D graphics display system |
US5361386A (en) | 1987-12-04 | 1994-11-01 | Evans & Sutherland Computer Corp. | System for polygon interpolation using instantaneous values in a variable |
CA1309198C (en) | 1987-12-10 | 1992-10-20 | Carlo J. Evangelisti | Parallel rendering of smoothly shaded color triangles with anti-aliased edges for a three dimensional color display |
US4974176A (en) | 1987-12-18 | 1990-11-27 | General Electric Company | Microtexture for close-in detail |
GB2214037A (en) | 1987-12-18 | 1989-08-23 | Ibm | Solid modelling system |
US5136664A (en) | 1988-02-23 | 1992-08-04 | Bersack Bret B | Pixel rendering |
JPH0693181B2 (ja) | 1988-03-18 | 1994-11-16 | 株式会社日立製作所 | 表示装置 |
DE68918886T2 (de) | 1988-04-08 | 1995-06-01 | Dainippon Screen Mfg. Co., Ltd., Kyoto | Verfahren zur Gewinnung der Aussenlinie eines Objektes in einem Bild. |
US4907174A (en) | 1988-06-02 | 1990-03-06 | Sun Microsystems, Inc. | Z-buffer allocated for window identification |
US5097427A (en) | 1988-07-06 | 1992-03-17 | Hewlett-Packard Company | Texture mapping for computer graphics display controller system |
US5315692A (en) | 1988-07-22 | 1994-05-24 | Hughes Training, Inc. | Multiple object pipeline display system |
US5003496A (en) | 1988-08-26 | 1991-03-26 | Eastman Kodak Company | Page memory control in a raster image processor |
US4989138A (en) | 1988-09-02 | 1991-01-29 | Tektronix, Inc. | Single bus graphics data processing pipeline with decentralized bus arbitration |
JPH0727581B2 (ja) | 1988-09-09 | 1995-03-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 図形処理装置 |
US5016183A (en) | 1988-09-13 | 1991-05-14 | Computer Design, Inc. | Textile design system and method |
US5018076A (en) | 1988-09-16 | 1991-05-21 | Chips And Technologies, Inc. | Method and circuitry for dual panel displays |
JP2685548B2 (ja) | 1988-11-28 | 1997-12-03 | 株式会社日立製作所 | ディジタル画像データの回転方法およびその装置 |
GB8828342D0 (en) | 1988-12-05 | 1989-01-05 | Rediffusion Simulation Ltd | Image generator |
US5062057A (en) | 1988-12-09 | 1991-10-29 | E-Machines Incorporated | Computer display controller with reconfigurable frame buffer memory |
US5255353A (en) | 1989-02-28 | 1993-10-19 | Ricoh Company, Ltd. | Three-dimensional shadow processor for an image forming apparatus |
US5204944A (en) | 1989-07-28 | 1993-04-20 | The Trustees Of Columbia University In The City Of New York | Separable image warping methods and systems using spatial lookup tables |
EP0423653B1 (en) | 1989-10-13 | 1997-08-06 | Matsushita Electric Industrial Co., Ltd. | Method and apparatus for compensating for color in color images |
JPH0776991B2 (ja) | 1989-10-24 | 1995-08-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Nurbsデータ変換方法及び装置 |
US5056044A (en) | 1989-12-21 | 1991-10-08 | Hewlett-Packard Company | Graphics frame buffer with programmable tile size |
JP3005007B2 (ja) | 1989-12-21 | 2000-01-31 | キヤノン株式会社 | 画像符号化装置 |
GB2240017A (en) | 1990-01-15 | 1991-07-17 | Philips Electronic Associated | New, interpolated texture values are fed back to texture memories |
GB2240015A (en) | 1990-01-15 | 1991-07-17 | Philips Electronic Associated | Texture memory addressing |
US5224208A (en) | 1990-03-16 | 1993-06-29 | Hewlett-Packard Company | Gradient calculation for texture mapping |
US5179638A (en) | 1990-04-26 | 1993-01-12 | Honeywell Inc. | Method and apparatus for generating a texture mapped perspective view |
US5163126A (en) | 1990-05-10 | 1992-11-10 | International Business Machines Corporation | Method for adaptively providing near phong grade shading for patterns in a graphics display system |
CA2071539C (en) | 1990-05-12 | 2001-07-17 | Graham John Olive | Image generator |
EP0464907B1 (en) | 1990-06-29 | 1996-10-09 | Philips Electronics Uk Limited | Generating an image |
US5241658A (en) | 1990-08-21 | 1993-08-31 | Apple Computer, Inc. | Apparatus for storing information in and deriving information from a frame buffer |
JP2725915B2 (ja) | 1990-11-15 | 1998-03-11 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 三角形描画装置及び方法 |
US5268995A (en) | 1990-11-21 | 1993-12-07 | Motorola, Inc. | Method for executing graphics Z-compare and pixel merge instructions in a data processor |
US5268996A (en) | 1990-12-20 | 1993-12-07 | General Electric Company | Computer image generation method for determination of total pixel illumination due to plural light sources |
US5307450A (en) | 1991-02-19 | 1994-04-26 | Silicon Graphics, Inc. | Z-subdivision for improved texture mapping |
JPH07122908B2 (ja) | 1991-03-12 | 1995-12-25 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 3次元のソリッド物体を表す表示可能情報を生成する装置と方法 |
US5421028A (en) | 1991-03-15 | 1995-05-30 | Hewlett-Packard Company | Processing commands and data in a common pipeline path in a high-speed computer graphics system |
US5415549A (en) | 1991-03-21 | 1995-05-16 | Atari Games Corporation | Method for coloring a polygon on a video display |
JP3316592B2 (ja) | 1991-06-17 | 2002-08-19 | サン・マイクロシステムズ・インコーポレーテッド | 二重バッファ・出力ディスプレー・システム、および、第1のフレーム・バッファおよび第2のフレーム・バッファ相互間の切り換えを行う方法 |
EP0739513B1 (en) | 1991-08-13 | 1999-10-27 | The Board Of Regents Of The University Of Washington | Method of transmitting of data |
TW225595B (ja) | 1991-09-03 | 1994-06-21 | Gen Electric | |
US5404445A (en) | 1991-10-31 | 1995-04-04 | Toshiba America Information Systems, Inc. | External interface for a high performance graphics adapter allowing for graphics compatibility |
US5353424A (en) | 1991-11-19 | 1994-10-04 | Digital Equipment Corporation | Fast tag compare and bank select in set associative cache |
US5345541A (en) | 1991-12-20 | 1994-09-06 | Apple Computer, Inc. | Method and apparatus for approximating a value between two endpoint values in a three-dimensional image rendering device |
US5377313A (en) | 1992-01-29 | 1994-12-27 | International Business Machines Corporation | Computer graphics display method and system with shadow generation |
JP2760731B2 (ja) | 1992-04-30 | 1998-06-04 | 株式会社東芝 | グラフィックス互換性を可能にする高性能グラフィックスアダプタ用外部インターフェース回路 |
US5469535A (en) | 1992-05-04 | 1995-11-21 | Midway Manufacturing Company | Three-dimensional, texture mapping display system |
GB2267203B (en) | 1992-05-15 | 1997-03-19 | Fujitsu Ltd | Three-dimensional graphics drawing apparatus, and a memory apparatus to be used in texture mapping |
US5366376A (en) | 1992-05-22 | 1994-11-22 | Atari Games Corporation | Driver training system and method with performance data feedback |
US5473736A (en) | 1992-06-08 | 1995-12-05 | Chroma Graphics | Method and apparatus for ordering and remapping colors in images of real two- and three-dimensional objects |
US5432900A (en) | 1992-06-19 | 1995-07-11 | Intel Corporation | Integrated graphics and video computer display system |
JPH0628485A (ja) | 1992-07-09 | 1994-02-04 | Toshiba Corp | テクスチャーアドレス生成器、テクスチャーパターン生成器、テクスチャー描画装置及びテクスチャーアドレス生成方法 |
US5475803A (en) | 1992-07-10 | 1995-12-12 | Lsi Logic Corporation | Method for 2-D affine transformation of images |
GB2270243B (en) | 1992-08-26 | 1996-02-28 | Namco Ltd | Image synthesizing system |
US5431471A (en) * | 1992-09-16 | 1995-07-11 | Mi-Jack Products, Inc. | Side fitting connection apparatus for lifting trailers and containers |
US5432895A (en) | 1992-10-01 | 1995-07-11 | University Corporation For Atmospheric Research | Virtual reality imaging system |
GB2271259A (en) | 1992-10-02 | 1994-04-06 | Canon Res Ct Europe Ltd | Processing image data |
US5559954A (en) | 1993-02-24 | 1996-09-24 | Intel Corporation | Method & apparatus for displaying pixels from a multi-format frame buffer |
US5392393A (en) | 1993-06-04 | 1995-02-21 | Sun Microsystems, Inc. | Architecture for a high performance three dimensional graphics accelerator |
US5408650A (en) | 1993-06-29 | 1995-04-18 | Digital Equipment Corporation | Memory analysis system for dynamically displaying memory allocation and de-allocation events associated with an application program |
US5490240A (en) | 1993-07-09 | 1996-02-06 | Silicon Graphics, Inc. | System and method of generating interactive computer graphic images incorporating three dimensional textures |
DE69408473T2 (de) | 1993-10-15 | 1998-08-27 | Evans & Sutherland Computer Co | Direktes rendering von texturierten höhenfeldern |
JPH07146952A (ja) | 1993-11-22 | 1995-06-06 | Konami Kk | 3次元画像処理装置 |
US5557712A (en) | 1994-02-16 | 1996-09-17 | Apple Computer, Inc. | Color map tables smoothing in a color computer graphics system avoiding objectionable color shifts |
US5548709A (en) | 1994-03-07 | 1996-08-20 | Silicon Graphics, Inc. | Apparatus and method for integrating texture memory and interpolation logic in a computer system |
US5487146A (en) | 1994-03-08 | 1996-01-23 | Texas Instruments Incorporated | Plural memory access address generation employing guide table entries forming linked list |
US5506604A (en) * | 1994-04-06 | 1996-04-09 | Cirrus Logic, Inc. | Apparatus, systems and methods for processing video data in conjunction with a multi-format frame buffer |
US5461712A (en) | 1994-04-18 | 1995-10-24 | International Business Machines Corporation | Quadrant-based two-dimensional memory manager |
US5664162A (en) * | 1994-05-23 | 1997-09-02 | Cirrus Logic, Inc. | Graphics accelerator with dual memory controllers |
US5600763A (en) | 1994-07-21 | 1997-02-04 | Apple Computer, Inc. | Error-bounded antialiased rendering of complex scenes |
US5553228A (en) | 1994-09-19 | 1996-09-03 | International Business Machines Corporation | Accelerated interface between processors and hardware adapters |
US5593350A (en) | 1994-11-04 | 1997-01-14 | Thrustmaster, Inc. | Video game card having interrupt resistant behavior |
US5561752A (en) | 1994-12-22 | 1996-10-01 | Apple Computer, Inc. | Multipass graphics rendering method and apparatus with re-traverse flag |
US5777623A (en) * | 1996-02-15 | 1998-07-07 | Canon Kabushiki Kaisha | Apparatus and method for performing perspectively correct interpolation in computer graphics in a variable direction along a line of pixels |
US5977960A (en) * | 1996-09-10 | 1999-11-02 | S3 Incorporated | Apparatus, systems and methods for controlling data overlay in multimedia data processing and display systems using mask techniques |
US5987567A (en) * | 1996-09-30 | 1999-11-16 | Apple Computer, Inc. | System and method for caching texture map information |
US6026478A (en) * | 1997-08-01 | 2000-02-15 | Micron Technology, Inc. | Split embedded DRAM processor |
JP3681528B2 (ja) * | 1997-12-22 | 2005-08-10 | 株式会社ルネサステクノロジ | グラフィックプロセッサ及びデータ処理システム |
US6650327B1 (en) * | 1998-06-16 | 2003-11-18 | Silicon Graphics, Inc. | Display system having floating point rasterization and floating point framebuffering |
US6747642B1 (en) * | 1999-01-29 | 2004-06-08 | Nintendo Co., Ltd. | Method and apparatus for providing non-photorealistic cartoon outlining within a 3D videographics system |
US6532018B1 (en) * | 1999-04-19 | 2003-03-11 | Microsoft Corporation | Combined floating-point logic core and frame buffer |
US6426753B1 (en) * | 1999-07-01 | 2002-07-30 | Microsoft Corporation | Cache memory for high latency and out-of-order return of texture data |
-
2000
- 2000-11-28 US US09/722,663 patent/US7184059B1/en not_active Expired - Lifetime
-
2001
- 2001-02-27 JP JP2001051371A patent/JP4719363B2/ja not_active Expired - Lifetime
-
2006
- 2006-11-27 US US11/604,374 patent/US7317459B2/en not_active Expired - Lifetime
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11505644A (ja) * | 1995-03-06 | 1999-05-21 | セイコーエプソン株式会社 | 画像生成及び操作用装置 |
JP2000020044A (ja) * | 1998-07-03 | 2000-01-21 | Hitachi Ltd | 画像処理装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2002063594A (ja) | 2002-02-28 |
US7184059B1 (en) | 2007-02-27 |
US20070070083A1 (en) | 2007-03-29 |
US7317459B2 (en) | 2008-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4719363B2 (ja) | 内部フレームバッファと主メモリ間でのコピーアウト変換を有するグラフィクスシステム | |
US6937245B1 (en) | Graphics system with embedded frame buffer having reconfigurable pixel formats | |
US7576748B2 (en) | Graphics system with embedded frame butter having reconfigurable pixel formats | |
JP4698052B2 (ja) | グラフィクスシステムのエイリアス補正方法および装置 | |
JP4731028B2 (ja) | グラフィクスシステム用再循環シェードツリーブレンダ | |
JP4698893B2 (ja) | 改良されたフォグ効果を提供するための方法、グラフィックスシステム、およびプログラム | |
JP4790150B2 (ja) | 低価格のグラフィックスシステムにおけるシャドウマッピング | |
JP4863574B2 (ja) | Zテクスチャリングを用いるイメージ生成方法 | |
JP4678963B2 (ja) | グラフィクスシステムにおいて直接および間接テクスチャを処理するための方法および装置 | |
JP4691273B2 (ja) | グラフィクス処理システムおよびエンボス型バンプマッピングを行う方法 | |
JP4808858B2 (ja) | グラフィクスパイプラインおよびそれの同期化方法 | |
US6707458B1 (en) | Method and apparatus for texture tiling in a graphics system | |
JP2002269583A (ja) | 描画モードに基づいて隠面処理の順番を動的に再構成する方法および装置 | |
JPH08161525A (ja) | 画像情報生成方法及び画像情報処理装置、並びに記録媒体 | |
JPH09325759A (ja) | 高速高効率3dグラフィックス及びデジタル音声信号処理を提供するコプロセッサを備える高性能低コストビデオゲームシステム | |
JP4672072B2 (ja) | 三次元ビデオグラフィックスシステムにおける非写実的な漫画的な輪郭線提供方法およびその装置 | |
US20020101435A1 (en) | Apparatus and method for rendering antialiased image | |
JP4683760B2 (ja) | 再構成可能なピクセルフォーマットを有する組み込みフレームバッファを有するグラフィックスシステム | |
JP2001143100A (ja) | 三次元ビデオグラフィックスシステムにおける深度ぼかし効果提供方法および装置 | |
EP1182617A2 (en) | Graphics system with reconfigurable embedded frame buffer and copy out conversions between embedded frame buffer and main memory | |
JP4740476B2 (ja) | グラフィックスシステム内におけるn個のアルファ演算の論理結合を提供する方法および装置 | |
JP4698894B2 (ja) | グラフィックスシステムにおけるテクスチャタイリングのための方法、装置およびプログラム | |
JP2003058905A (ja) | グラフィックスレンダリングシステムにおいて視覚的に重要なz成分の精度を最大化しz近傍クリッピングを回避するためのz近傍範囲におけるz値のクランピング |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080212 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100628 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100706 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100906 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20101109 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110209 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20110218 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110308 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110404 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4719363 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140408 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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |