(57)【特許請求の範囲】
【請求項１】
主プロセサ、関連する主メモリおよびグラフィックスパイプライン回路および内部フレームバッファを有するグラフィックスプロセサを含み、前記主メモリはグラフィックスパイプライン回路と同じグラフィックスプロセサ上には内蔵されていない外部メモリである、グラフィックスシステムであって、
内部フレームバッファからのデータを読み出して外部主メモリへ転送する間にピクセルデータを或る画像フォーマットから他の画像フォーマットへ選択的に変換するコピーアウトパイプラインを備え、
コピーアウトパイプラインはデータを主メモリ内の表示バッファまたはテクスチャバッファに選択的に転送するように動作可能であり、
コピーアウトパイプラインは、データを表示バッファに転送するときには表示フォーマットに変換し、データをテクスチャバッファに転送するときにはテクスチャフォーマットに変換する、グラフィックスシステム。
【請求項２】
グラフィックスプロセサはさらにグラフィックスパイプラインを含み、そのグラフィックスパイプラインは後続するレンダリングプロセスにおいて主メモリのテクスチャバッファへコピーしたデータを使用するように動作可能である、請求項１記載のグラフィクスシステム。
【請求項３】
内部フレームバッファはピクセルデータをＲＧＢカラーフォーマットもしくはＹＵＶカラーフォーマットに選択的に変換する、請求項１記載のグラフィクスシステム。
【請求項４】
コピーアウトパイプラインは、主メモリ中の外部フレームバッファへのピクセルデータのコピーの間に、内部フレームバッファからのデータをＹＵＶ表示フォーマットまたはＲＧＢテクスチャフォーマットに選択的に変換する、請求項１記載のグラフィクスシステム。
【請求項５】
コピーアウトパイプラインは、それが前記表示バッファへピクセルデータを転送しているときに、そのピクセルデータをＹＵＶ表示フォーマットへ変換する、請求項４記載のグラフィックスシステム。
【請求項６】
前記コピーアウトパイプラインは、エイリアス補正モードまたはデフリッカモードのどちらかで動作可能なピクセルフィルタ部、ピクセルカラー値に所定の補正値を与えるガンマ補正部、およびＲＧＢ‐ＹＵＶフォーマット変換部を含む、請求項１記載のグラフィックスシステム。
【請求項７】
前記ピクセルフィルタ部は７タップの垂直フィルタを含む、請求項６記載のグラフィックスシステム。
【請求項８】
前記コピーアウトパイプラインは、それがピクセルデータを表示バッファへ転送するとき、ピクセルデータの垂直スケーリングを行うＹスケーリング部を含む、請求項１記載のグラフィックスシステム。
【請求項９】
前記コピーアウトパイプラインは、ピクセルデータを所定のテクスチャデータフォーマットへ変換し、変換したデータを複数のテクスチャタイルに形成する、請求項１記載のグラフィックスシステム。
【請求項１０】
内部フレームバッファ中のピクセルデータの選択されたサブ領域はレンダリングされたグラフィックオブジェクト上のテクスチャとして重畳するストリーミングビデオ画像を作るためのＭＰＥＧデータを含む、請求項１記載のグラフィックスシステム。
【請求項１１】
主プロセサと、グラフィックス処理パイプラインの少なくとも一部と同じ半導体チップ基板上に組み込まれた内部フレームバッファを有するパイプライングラフィックスプロセサと、前記グラフィックス処理パイプラインを含む半導体チップとは別の１つまたはそれ以上の半導体チップ上に形成されている主メモリ内に存在する外部テクスチャバッファとを含むグラフィックスシステムにおける、内部フレームバッファからのピクセルデータを前記外部テクスチャバッファへコピーするピクセルデータコピーアウトプロセスにおいて、コピーアウトプロセスは、ピクセルデータの前記内部フレームバッファから前記外部テクスチャバッファへの転送中に所定のピクセルデータ変換および／またはフィルタリング動作を実行し、
内部フレームバッファ中のピクセルのサブ領域をピクセルデータコピー動作のためのソースとして選択し、
主メモリの外部テクスチャバッファにおける宛先をピクセルデータコピー動作のために選択し、そして
ピクセルデータの前記内部フレームバッファから前記外部テクスチャバッファへの転送動作中に、表示データフォーマットからのピクセルの選択された矩形サブ領域を複数のテクスチャデータフォーマットの１つに変換することによって、外部テクスチャバッファ内でテクスチャタイルを作る、方法。
【発明の詳細な説明】
【０００１】
【発明の分野】
この発明はコンピュータグラフィクスに関し、特にたとえば、家庭用ビデオゲームプラットフォームのようなインタラクティブなグラフィクスシステムに関する。より特定的には、この発明は、再構成可能な内部(embeded)フレームバッファと主メモリとの間でイメージデータを転送するときに種々の変換および他の処理動作を実行できるコピーパイプラインを有するグラフィクスシステムに関する。このコピーパイプラインは、選択的にさらなる処理を行いかつイメージデータを主メモリ中の表示バッファもしくはテクスチャバッファへ選択的に転送するために使用される。
【０００２】
【発明の背景および発明の概要】
多くの人々はかなりリアルな恐竜，エイリアン，生き生きとしたおもちゃおよび他の空想的な動物を含む映画をかつて見たことがある。そのようなアニメーションはコンピュータグラフィクスによって可能とされた。そのような技術を用いて、コンピュータグラフィクスのアーティストは、各オブジェクトがどのように見えるべきかや時間の経過とともに外見上どのように変化すべきかを特定し、コンピュータは、そのオブジェクトをモデル化してテレビジョンやコンピュータスクリーンのようなディスプレイに表示する。コンピュータは、表示される映像の各部分を、場面中の各オブジェクトの位置や向き，各オブジェクトを照らすように見える照明の方向，各オブジェクトの表面テクスチャ，および他の要素に正確に基づいて、色付けしまた形作るために必要な多くのタスクを実行する。
【０００３】
コンピュータグラフィクスの生成は複雑であるので、ここ数年前のコンピュータによって生成された３次元（３Ｄ）グラフィクスは、ほとんど高価な特殊なフライトシミュレータ，ハイエンドグラフィクスワークステーションおよびスーパーコンピュータに限られていた。大衆は映画や高価なテレビコマーシャルにおいてこれらのコンピュータシステムによって生成された映像のいくつかを見たが、大部分の人はグラフィクスを生成しているコンピュータに対して実際に相互作用をさせることはできない。たとえば、Nintendo64（登録商標）や今や利用可能であるパソコン用の種々の３Ｄグラフィクスカードのような比較的安価な３Ｄグラフィクスプラットフォームの利用によって、このすべてが変わった。今や、家庭や会社の比較的安価なコンピュータグラフィクスシステム上でエキサイティングな３Ｄアニメーションやシミュレーションに対して相互作用を及ぼすことができる。
【０００４】
グラフィクスシステム設計者が過去に直面した問題は、種々のデータフォーマットでストアできかつしたがって効率的で有利な態様で処理できる強力で安価なシステムを提供することである。グラフィクスシステムに使用されるグラフィクスチップは、グラフィクスパイプラインによってレンダリングされたままのデータをストアするための局所またはオンチップメモリを有する。グラフィクスチップによってデータが発生されたとき、そのデータは、局所メモリから、表示装置上にデータを表示するためにたとえばビデオインタフェースユニットによってデータが使用され得る外部メモリへ転送される。この外部メモリは、典型的には、グラフィクスシステムの主メモリの一部であり、外部フレームバッファ（ＸＦＢ）と呼ばれる。局所メモリと外部フレームバッファとの間のデータの処理経路はコピーパイプラインと呼ばれることがある。
【０００５】
局所メモリおよび外部フレームバッファは、グラフィクスシステムにおける種々の機能性を達成するために多様なデータフォーマットを有する。グラフィクスシステム設計者が過去に直面した１つの問題は、そのシステム上で動くアプリケーションによる有利でかつ効率的な使用を可能にするために局所メモリおよび外部フレームバッファにおいてどのようなデータフォーマットをサポートするかを決定することである。グラフィクスシステム設計者が過去に直面した他の問題は、システムの速度，柔軟性および全体動作を最大にする有用かつ効率的な方法をみつけることである。たとえば、１つの問題は、そのシステム中のどのコンポーネントが或る処理もしくは機能を行うために使用されるべきであるか、そしてそのような処理はどのタイミングで行われるべきであるかを決定することである。他の問題は、典型的にはグラフィクスチップの局所メモリからシステムの主メモリへデータを転送するために使用されるコピーパイプラインのような処理パイプラインの最もよい利点を如何に採用するかということである。
【０００６】
これらの問題に対する種々のソリューションが提案されている。たとえば、グラフィクスシステムは多様なデータフォーマットを使用し、システムの全体動作を改善しもしくは最大にするための試みにおいて、グラフィクス処理動作中の種々の点でそのようなフォーマット間での変換を行っていた。このようなメモリに関連して過去にいくつかの仕事がなされたけれども、データフォーマットや変換のさらなる改善が望まれている。特に、家庭用ビデオゲームシステムのような高性能かつ低価格のグラフィクスシステムのために一層の改善が要請されている。
【０００７】
この発明は、内部フレームバッファからグラフィクスシステム中の主メモリへのデータのコピーアウトに関連して使用するための技術および構成を提供することによって、この問題に向けられる。この発明は、内部フレームバッファから主メモリのような外部の宛先へのデータの転送中に「オンザフライ」によって行われるように、データのさらなる処理および／またはデータフォーマット変換を有利に可能ならしめるコピーアウトパイプラインを提供する。この発明は、さらに、コピーアウト動作において有利に使用されるように、種々のピクセルデータフォーマットを可能ならしめるコピーパイプラインを提供する。さらに、この発明のコピーパイプラインは、内部フレームバッファからのデータを、表示用の特別なフォーマットで、またはグラフィクスパイプライン動作におけるテクスチャとしての後続の使用のための多様なテクスチャフォーマットで、主メモリへコピーできるようにする。この発明のコピーパイプラインは、インタラクティブ３Ｄビデオゲームをプレイするために設計されたシステムにおいて用いられるとき特に有利である。この発明によれば、内部フレームバッファは、エイリアス補正(anti-aliasing)モード、デフリッカ(deflicker)モードおよびＹＵＶ（すなわち、輝度／クロマ）モードを含む多様なモードで再構成されかつ効率的に使用され得て、それによって多様なアプリケーションをサポートするようにシステムの柔軟性を増大する。各モードのための所望のピクセルフォーマットは、たとえば、内部フレームバッファが設けられているグラフィクスハードウェアへのコマンドを使用することによって選択され得る。コピーパイプラインは内部フレームバッファによってサポートされている任意のフォーマットにおけるデータを処理しかつ選択的にさらに変換することができる。
【０００８】
この発明によれば、コピーパイプラインは、データを外部のフレームバッファへストアする前に、内部フレームバッファからのデータをさらに処理するために有利に使用される。コピーパイプラインは、たとえば、データをストアするために必要なメモリの量を減じるためにおよび／またはグラフィクスシステムによるさらなる処理における使用のために、所望のフォーマットでデータを提供するように、たとえば、多様な有用なフォーマット間でデータを変換するために使用され得る。コピーパイプラインはまた、表示品質を改善しおよび／または表示特性を変更する態様で、そのフレームデータをさらに処理するために使用され得る。
【０００９】
この発明によって提供される１つの局面によれば、グラフィクスシステムは、内部フレームバッファと、その内部フレームバッファから外部の記憶場所へデータを転送するコピーパイプラインを含み、そのコピーパイプラインはデータを外部の記憶場所へ書き込む前に或るフォーマットから他のフォーマットへ変換する。外部の記憶場所は、グラフィクスシステムの主メモリ中の表示バッファまたはテクスチャバッファであってよい。コピーパイプラインは、データが表示バッファへ転送されるならばデータを表示フォーマットに変換し、データがテクスチャバッファへ転送されるならばテクスチャフォーマットに変換する。グラフィクスパイプラインは、後続するレンダリングプロセス中テクスチャバッファのデータを使用するように動作可能である。コピーパイプラインは内部フレームバッファから種々のＲＧＢカラーフォーマットまたはＹＵＶカラーフォーマットでデータを選択的に読み出し、表示フォーマットまたは多様なテクスチャフォーマットのいずれかで主メモリにデータを書き込む。
【００１０】
この発明の他の局面によれば、グラフィクスチップから外部の宛先へデータを転送する方法が提供される。この方法は、グラフィクスチップの内部フレームバッファにイメージデータをストアするステップ、内部フレームバッファから外部の宛先へデータを転送するためのコピーアウト動作を開始させるステップ、コピーアウト動作中データを或るフォーマットから他のフォーマットへ変換するステップ、および変換したデータを外部の宛先へ書き込むステップを含む。この方法は、データをテクスチャフォーマットに変換しかつテクスチャバッファへそのテクスチャフォーマットデータを書き込むか、あるいはデータを表示フォーマットに変換しかつその表示フォーマットデータを表示バッファへ書き込む。コピーパイプラインはまた、コピーアウトプロセス中でかつ主メモリへデータを書き込む前に、スケーリング(scaling)，ガンマ補正および／またはエイリアス補正動作を選択的に行うように動作可能である。変換ステップは、ＲＧＢカラーフォーマットから他のＲＧＢカラーフォーマットへの変換、ＹＵＶカラーフォーマットから他のＹＵＶカラーフォーマットへの変換、ＲＧＢカラーフォーマットからＹＵＶカラーフォーマットへの変換、およびＹＵＶカラーフォーマットからＲＧＢカラーフォーマットへの変換の少なくとも１つを実行するステップを含む。
【００１１】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【００１２】
【実施例】
図１は対話型（インタラクティブ）３Ｄコンピュータグラフィクスシステム５０の一例を示す。システム５０は対話型３Ｄビデオゲームをステレオ音声とともにプレイするのに用いられ得る。これはまた多様な他のアプリケーションにも用いられ得る。
【００１３】
この実施例において、システム５０は３次元世界のディジタル表現ないしモデルをインタラクティブにかつリアルタイムに処理することができる。システム５０は、任意の視点から、その世界の一部または全部を表示することができる。たとえば、システム５０は、手持ちコントローラ５２ａおよび５２ｂまたは他の入力デバイスからのリアルタイム入力に応答して、視点をインタラクティブに変化できる。このことによって、ゲームプレーヤは、その世界内もしくは外の誰かの目を通してその世界を見ることができる。システム５０は、リアルタイム３Ｄインタラクティブ表示を必要としないアプリケーション（たとえば２Ｄ表示の発生やおよび／またはノンインタラクティブ表示）に使用できるが、高品質の３Ｄ映像を非常に速く表示する能力は、非常にリアルでエキサイティングなゲームプレイや他のグラフィクスインタラクションを創造するのに使用され得る。
【００１４】
システム５０を用いてビデオゲームまたは他のアプリケーションをプレイするために、ユーザはまず、主ユニット５４を、カラーテレビ５６または他の表示装置に、両者の間にケーブル５８を接続することによって、接続する。主ユニット５４はカラーテレビ５６を制御するためのビデオ信号およびオーディオ信号を発生する。ビデオ信号はテレビジョン画面５９上に表示されている映像を制御するものであり、オーディオ信号はテレビのステレオスピーカ６１Ｌおよび６１Ｒを通して音声として再生される。
【００１５】
ユーザはまた主ユニット５４を電源につなぐ必要がある。この電源は従来のＡＣアダプタ（図示せず）であってよく、そのＡＣアダプタは家庭用の標準的な壁ソケットに差し込まれ、家庭用電源を、主ユニット５４を駆動するのに適した低いＤＣ電圧信号に変換する。他の実施例ではバッテリが用いられてもよい。
【００１６】
ユーザは主ユニット５４を制御するために手持ちコントローラ５２ａおよび５２ｂを用いる。コントロール６０は、たとえば、３Ｄ世界内においてテレビ５６に表示されているキャラクタが移動すべき方向（上または下、左または右、近づいてまたは遠ざかって）を指示するために使用され得る。コントロール６０は、また他のアプリケーションのための入力（たとえばメニュー選択，ポインタ／カーソル制御，その他）を与える。コントローラ５２は多様な形態をとり得る。この実施例においては、図示されるコントローラ５２は、各々ジョイスティック，押しボタンおよび／または方向スイッチのようなコントロール６０を含む。コントローラ５２は、ケーブルによって、もしくは電磁波（たとえば電波または赤外線）を介してワイヤレスで、主ユニット５４に接続され得る。
【００１７】
ゲームのようなアプリケーションをプレイするために、ユーザはビデオゲームもしくはプレイしたいと思う他のアプリケーションをストアしている適宜の記憶媒体６２を選択し、その記憶媒体を主ユニット５４のスロット６４に差し込む。記憶媒体６２は、たとえば、特別にエンコードされおよび／または記号化された光学的ならびに／もしくは磁気的ディスクであってよい。ユーザは主ユニット５４をオンするために電源スイッチ６６を操作し、主ユニットがその記憶媒体６２にストアされているソフトウェアに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザは主ユニットに入力を与えるためにコントローラ５２を操作する。たとえば、コントロール６０を操作することによってゲームもしくは他のアプリケーションをスタートさせる。他のコントロール６０を動かすことによって、動画キャラクタを異なる方向に移動させ、または３Ｄ世界におけるユーザの視点を変化させる。記憶媒体６２にストアされている具体的なソフトウェアによって、コントローラ５２上の種々のコントロール６０は異なる時間で異なる機能を達成することができる。
全体システムの例
図２はシステム５０の例示的なコンポーネントのブロック図であり、重要なコンポーネントは、
・主プロセサ（ＣＰＵ）１１０，
・主メモリ１１２，および
・グラフィクス／オーディオプロセサ１１４を含む。
【００１８】
この実施例において、主プロセサ１１０（たとえばＩＢＭパワーＰＣ７５０の改良版）は、手持ちコントローラ５２（および／または他の入力デバイス）からの入力をグラフィクス／オーディオプロセサ１１４を通して受ける。主プロセサ１１０はユーザ入力にインタラクティブに応答し、光ディスクドライブのような大容量記憶媒体アクセス装置１０６を介して、たとえば外部記憶媒体６２から供給されるビデオゲームもしくは他のプログラムを実行する。一例として、ビデオゲームプレイの状況では、主プロセサ１１０は、多様なインタラクティブ制御機能に加えて、衝突検出および動画処理を実行する。
【００１９】
この実施例では、主プロセサ１１０は３Ｄグラフィクス／オーディオコマンドを発生し、それらをグラフィクス／オーディオプロセサ１１４に送る。グラフィクス／オーディオプロセサ１１４はこれらのコマンドを処理し、ディスプレイ５９上での可視映像を生成し、ステレオスピーカ６１Ｒおよび６１Ｌもしくは他の適宜の音声発生デバイス上でのステレオ音声を生成する。
【００２０】
実施例のシステム５０はビデオエンコーダ１２０を含み、このビデオエンコーダは、グラフィクス／オーディオプロセサ１１４からの映像信号を受けて、その映像信号をコンピュータモニタや家庭用テレビ５６のような標準的な表示装置上での表示に適したアナログおよび／またはディジタルビデオ信号に変換する。システム１００はまたオーディオコーデック（圧縮器／伸長器）１２２を含み、このオーディオコーデックはディジタル化されたオーディオ信号を圧縮しかつ伸長するとともに、必要に応じてディジタルオーディオ信号のフォーマットとアナログオーディオ信号のフォーマットとの間で変換を行う。オーディオコーデック１２２はバッファ１２４を介してオーディオ入力を受けることができ、処理（たとえば、プロセサが生成したおよび／または大容量記憶媒体アクセス装置１０６のストリームオーディオ出力を介して受信した他のオーディオ信号とのミキシング）するために、そのオーディオ入力をグラフィクス／オーディオプロセサ１１４に与える。この実施例におけるグラフィクス／オーディオプロセサ１１４は、オーディオタスクに利用可能なオーディオメモリ１２６にオーディオ関連情報をストアすることができる。グラフィクス／オーディオプロセサ１１４は、結果的に得られるオーディオ出力信号を、圧縮およびアナログ信号への変換のために、オーディオコーデック１２２に与え、したがってそのオーディオ出力信号が（たとえばバッファアンプ１２８Ｌおよび１２８Ｒを介して）スピーカ６１Ｌおよび６１Ｒによって再生され得る。
【００２１】
グラフィクス／オーディオプロセサ１１４はシステム１００内に存在するであろう種々の付加的なデバイスと通信する能力を有する。たとえば、パラレルディジタルバス１３０は大容量記憶媒体アクセス装置１０６および／または他のコンポーネントと通信するために用いられる。シリアル周辺バス１３２は多様な周辺機器または、たとえば、
・ＰＲＯＭおよび／またはＲＴＣ（リアルタイムクロック）１３４，
・モデム１３６もしくは他のネットワークインタフェース（それはシステム１００を、プログラム命令および／またはデータがダウンロードもしくはアップロードされ得るインターネットあるいは他のディジタルネットワークのようなテレコミュニケーションネットワーク１３８に接続する），および
・フラッシュメモリ１４０
を含む他のデバイスと通信する。
別の外部シリアルバス１４２は、付加的な拡張メモリ１４４（たとえばメモリカード）もしくは他のデバイスと通信するために使用され得る。コネクタが種々のデバイスをバス１３０，１３２および１４２に接続するために使用され得る。
グラフィクス／オーディオプロセサの例
図３は実施例のグラフィクス／オーディオプロセサ１１４を示すブロック図である。或る実施例においては、グラフィクス／オーディオプロセサ１１４はシングルチップＡＳＩＣであってよい。この実施例においては、グラフィクス／オーディオプロセサ１１４は、
・プロセサインタフェース１５０，
・メモリインタフェース／コントローラ１５２，
・３Ｄグラフィクスプロセサ１５４，
・オーディオディジタル信号プロセサ（ＤＳＰ）１５６，
・オーディオメモリインタフェース１５８，
・オーディオインタフェース／ミキサ１６０，
・周辺コントローラ１６２，および
・表示コントローラ１６４
を含む。
【００２２】
３Ｄグラフィクスプロセサ１５４はグラフィクス処理タスクを実行する。オーディオディジタル信号プロセサ１５６はオーディオ処理タスクを実行する。表示コントローラ１６４は主メモリ１１２からの映像情報にアクセスし、表示装置１０２上での表示のためにその映像情報をビデオエンコーダ１２０に与える。オーディオインタフェース／ミキサ１６０はオーディオコーデック１２２をインタフェースし、また異なるソースからのオーディオ（たとえば、大容量記憶媒体アクセス装置１０６からのオーディオストリーム，オーディオＤＳＰ１５６の出力，およびオーディオコーデック１２２を通して受ける外部オーディオ入力）をミックスすることができる。プロセサインタフェース１５０は主プロセサ１１０およびグラフィクス／オーディオプロセサ１１４の間のデータおよび制御インタフェースを提供する。
【００２３】
メモリインタフェース１５２はグラフィクス／オーディオプロセサ１１４とメモリ１１２との間のデータおよび制御インタフェースを提供する。この実施例においては、主プロセサ１１０は、プロセサインタフェース１５０およびグラフィクス／オーディオプロセサ１１４の一部であるメモリインタフェース１５２を介して、主メモリ１１２にアクセスする。周辺コントローラ１６２はグラフィクス／オーディオプロセサ１１４と上で述べた種々の周辺機器との間のデータおよび制御インタフェースを提供する。オーディオメモリインタフェース１５８はオーディオメモリ１２６とのインタフェースを提供する。
グラフィクスパイプラインの例
図４は図３の３Ｄグラフィクスプロセサ１５４をより詳細に示すグラフィクス処理システムを示す。この３Ｄグラフィクスプロセサ１５４は、とりわけ、コマンドプロセサ２００および３Ｄグラフィクスパイプライン１８０を含む。主プロセサ１１０はデータストリーム（たとえばグラフィクスコマンドストリームおよび表示リスト）をコマンドプロセサ２００に通信する。主プロセサ１１０はメモリレイテンシを最小化するために２レベルキャッシュ１１２を有し、さらにまたグラフィクス／オーディオプロセサ１１４に向けられたキャッシュされていないデータストリームのための書込収集(write-gathering)バッファ１１１を有する。この書込収集バッファ１１は部分キャッシュラインを全キャッシュラインに集め、バスの最大使用時に、グラフィクス／オーディオプロセサ１１４からのデータを１つのキャッシュラインに送る。
【００２４】
コマンドプロセサ２００は主プロセサ１１０からの表示コマンドを受け、それらを解剖し、メモリコントローラ１５２を介して共用メモリ１１２からのそのコマンドを処理するに必要な付加的なデータを入手する。コマンドプロセサ２００は、２Ｄおよび／または３Ｄ処理およびレンダリングのために、頂点コマンドのストリームをグラフィクスパイプライン１８０に与える。グラフィクスパイプライン１８０はこれらのコマンドに基づいて映像を生成する。結果として得られた映像情報は、表示コントローラ／ビデオインタフェースユニット１６４によるアクセスのために主メモリ１２０に転送され得て、この映像情報は表示装置５６上にパイプライン１８０のフレームバッファ出力を表示する。
【００２５】
図５はグラフィクスプロセサ１５４を用いて実行される処理を図解的に示すブロック論理フロー図である。主プロセサ１０は、グラフィクスコマンドストリーム２１０，表示リスト２１２および頂点アレイ２１４を主メモリ１１２にストアし、ポインタをバスインタフェース１５０を介してコマンドプロセサ２００に送る。主プロセサ１１０は主メモリ１１０内に割り付けられた１つ以上のグラフィクスＦＩＦＯバッファ２１０にグラフィクスコマンドをストアする。このコマンドプロセサ２００は、
・同期／フロー制御および負荷バランスのためにグラフィクスコマンドを受けかつバッファするオンチップＦＩＦＯメモリバッファ２１６を介して主メモリ１１２からのコマンドストリーム，
・オンチップコールＦＩＦＯメモリバッファ２１８を介して主メモリ１１２からの表示リスト２１２，および
・コマンドストリームからおよび／または主メモリ１１２の頂点アレイ２１４からの頂点アトリビュートを頂点キャッシュ２２０を介して
取り込む。
【００２６】
コマンドプロセサ２００はコマンド処理動作２００ａを実行し、そのコマンド処理動作２００ａはアトリビュート形式を浮動小数点フォーマットに変換し、結果的に得られた完全頂点ポリゴンデータをレンダリング／ラスタライゼーションのためにグラフィクスパイプライン１８０に与える。プログラマブルメモリ調停回路１３０（グラフィクスメモリ要求調停回路：図４）は、グラフィクスパイプライン１８０，コマンドプロセサ２００および表示コントローラ／ビデオインタフェースユニット１６４の間での共用主メモリ１１２へのアクセスを調停する。
【００２７】
図４は、グラフィクスパイプライン１８０が
・変換ユニット３００，
・セットアップ／ラスタライザ４００，
・テクスチャユニット５００，
・テクスチャ環境ユニット６００，および
・ピクセルエンジン７００
を含むことを示す。
【００２８】
変換ユニット３００は多様な２Ｄおよび３Ｄ変換および他の動作３００ａ（図５）を実行する。変換ユニット３００は変換処理３００ａに用いられるマトリクスをストアするための１つ以上のマトリクスメモリ３００ｂを含む。変換ユニット３００は、入来する頂点毎のジオメトリをオブジェクト空間からスクリーン空間へ変換し、そして入来するテクスチャ座標を変換しかつ投影テクスチャ座標（３００ｃ）を計算する。変換ユニット３００はまたポリゴンクリッピング／カリング(clipping/culling)３００ｄを実行する。変換ユニット３００ｂによってまた達成される照明処理３００ｅが、この実施例では８つまでの独立した照明について、頂点毎に照明計算を行う。変換ユニット３００は、エンボス(embossed)タイプのバンプマッピング効果およびポリゴンクリッピング／カリング動作（３００ｄ）のために、テクスチャ座標を発生する（３００ｃ）。
【００２９】
セットアップ／ラスタライザ４００はセットアップユニットを含み、このセットアップユニットは、変換ユニット３００からの頂点データを受け、三角形セットアップ情報を、エッジラスタライゼーション，テクスチャ座標ラスタライゼーションおよびカラーラスタライゼーションを実行する１つ以上のラスタライザユニット（４００ｂ）に送る。
【００３０】
テクスチャユニット５００は、オンチップテクスチャメモリ（ＴＭＥＭ）５０２を含んでもよく、たとえば、
・主メモリ１１２からのテクスチャ５０４の抽出、
・たとえばマルチテクスチャ処理，ポストキャッシュテクスチャ伸長，テクスチャフィルタリング，エンボシング，投影テクスチャの使用を通しての陰影付け，およびアルファトランスパーレンシおよびデプスを用いるＢＬＩＴを含むテクスチャ処理（５００ａ）、
・バンプマッピング，偽(pseudo)テクスチャおよびテクスチャタイル(tiling)効果（５００ｂ）のためのテクスチャ座標置換を計算するバンプマップ処理、および
・間接テクスチャ処理（５００ｃ）
を含むテクスチャリングに関連する種々のタスクを実行する。
【００３１】
テクスチャユニット５００はテクスチャ環境処理（６００ａ）のためにフィルタされたテクスチャ値をテクスチャ環境ユニット６００に出力する。テクスチャ環境ユニット６００は、ポリゴンおよびテクスチャカラー／アルファ／デプスをブレンドし、また逆レンジベース(reverse range based)のフォグ効果を達成するために、テクスチャフォグ処理（６００ｂ）を実行する。テクスチャ環境ユニット６００はたとえばカラー／アルファ変調，エンボシング，詳細テクスチャ，テクスチャスワッピング，クランピングおよびデプスブレンディングに基づく多様な他の環境関連機能を実行する多段階を提供する。
【００３２】
ピクセルエンジン７００はデプス（ｚ）比較（７００ａ）およびピクセルブレンディング（７００ｂ）を実行する。この実施例では、ピクセルエンジン７００はデータを埋め込み（オンチップ）フレームバッファメモリ７０２にストアする。グラフィクスパイプライン１８０は、フレームバッファおよび／またはテクスチャ情報をローカルにストアするために１つ以上の埋め込みＤＲＡＭメモリ７０２を含む。ｚ比較７００ａは、現在有効なレンダリングモードに依存して、グラフィクスパイプライン１８０におけるより早い段階で実行される（たとえば、ｚ比較は、もしアルファブレンディングが要求されていないならば早くに実行され得る）。このピクセルエンジン７００は表示コントローラ／ビデオインタフェースユニット１６４による主メモリ１１２へのアクセスのために、オンチップフレームバッファ７０２を周期的に書き込むコピー動作７００ｃを含む。このコピー動作７００ｃはまた動的テクスチャ合成効果のために、埋め込みフレームバッファ７０２の内容を主メモリ１１２中のテクスチャにコピーするために使用され得る。エイリアス補正および他のフィルタリングがコピー動作中に実行され得る。最終的に主メモリ１１２にストアされるグラフィクスパイプライン１８０のフレームバッファ出力は、表示コントローラ／ビデオインタフェースユニット１６４によってフレーム毎に読み出される。表示コントローラ／ビデオインタフェース１６４は表示装置５６上での表示のためにディジタルＲＧＢピクセル値を与える。
内部フレームバッファのための構成例
図４において概略的に示すように、内部フレームバッファ７０２はグラフィクスパイプライン１８０からのデータを受ける。このグラフィクスパイプラインはＲＧＢ（Ａ）フォーマットでプリミティブをレンダリングする。したがって、以下により詳細に示すように、内部フレームバッファ７０２は種々のＲＧＢ（Ａ）フォーマットでピクセルデータをストアするように構成され得る。図４からわかるように、プロセサインタフェース１５０は、グラフィクスパイプライン１８０へデータを供給するためだけではなく、主プロセサ（ＣＰＵ）１１０がデータを内部フレームバッファに直接ロードするのを可能にするために使用され得る。このＣＰＵによる内部フレームバッファの直接ローディングによって、ＲＧＢ形式のフォーマット以外のピクセルフォーマットを内部フレームバッファに送ることができ、それによって多様なアプリケーションをサポートするようにシステムの柔軟性を増大する。特に、プロセサインタフェース１５０は、たとえば光ディスクまたは他の記憶媒体からＹＵＶフォーマット（すなわち輝度／クロマフォーマット）のピクセルデータを内部フレームバッファへロードすることができる。ＹＵＶフォーマットのデータが内部フレームバッファ内にあると、そのデータは、後のレンダリングプロセス中において、テクスチャ環境ユニット（ＴＥＶ）によるテクスチャとしての使用のために、コピーパイプラインを用いて、種々のテクスチャフォーマットで主メモリにコピーアウトされ得る。そのために、この発明によれば、内部フレームバッファは、種々のＲＧＢ（Ａ）フォーマットとＹＵＶフォーマットとの間で再構成できる。これらのフォーマットの各々を以下に詳細に説明する。
内部フレームバッファのためのＲＧＢ（Ａ）フォーマットの例
この例において、内部フレームバッファ（ＥＦＢ）は約２ＭＢのメモリ容量を有する。最大ピクセル幅およびフレームバッファの高さは各ピクセルのサイズによって決定される。この発明によれば、そして図６に示すように、内部フレームバッファ７０２内のデータのために使用され得る２つの異なるＲＧＢピクセルサイズがある。これらのサイズは
・４８ビットカラーおよびＺ、ならびに
・９６ビットスーパーサンプリングカラーおよびＺ
である。
４８ビットのピクセルサイズ構成
内部フレームバッファ（ＥＦＢ）のための４８ビットフォーマットは、好ましくは、エイリアス補正をしないものであり、
・２４ビットカラー（アルファなしの８／８／８、または６ビットのアルファ付きの６／６／６／６）
・２４ビットのＺ
を有する。
【００３３】
エイリアス補正をしないこのモードにおいては、４８ビットフォーマットは、この例においては、６４０×５２８の最大解像度をサポートし得る。そのために、幅は０−６４０の間であるべきで、ＥＦＢのストライド(stride)は６４０ピクセルに固定される。このエイリアス補正なしのモードは各ピクセル内における１つの点サンプル(point sample)に基づく。上で示したように、各ピクセルの点サンプルは２４ビットのカラー値および２４ビットのＺ値によって与えられる。このカラー値は、アルファを用いないときには赤，緑および青の値の各々毎に８ビットを有し、もしくは赤，緑，青およびアルファ毎に６ビットを有する。
９６ビットピクセルサイズ構成
９６ビットの超サンプリング(super-sampling)ピクセルフォーマットは好ましくはエイリアス補正のために使用され、
・１６ビットカラーの３サンプル（５ビットの赤，６ビットの緑，５ビットの青，アルファなし）
・１６ビットのＺ（デプス）３サンプル
を有する。
【００３４】
この９６ビットフォーマットは６４０×２６４の最大解像度をサポートし得る。幅は好ましくは０−６４０の間であり、ストライドは６４０に固定される。
【００３５】
この例において、９６ビットフォーマットはエイリアス補正のために使用される。しかしながら、このフォーマットは、ピクセル毎に３つの超サンプルを要するエイリアス補正以外の機能を達成するために使用されてもよい。換言すれば、９６ビットフォーマットは、４８ビット構成において使用されるピクセル毎の点サンプルに対して、ピクセル毎に３つのサンプル（超サンプル）をストアする能力を提供する。
【００３６】
上から明らかなように、４８ビットピクセルフォーマットと９６ビットピクセルフォーマットとの間には固有のトレードオフがある。９６ビットのエイリアス補正フォーマットによればポリゴンエッジと交点上の画像品質をよくすることができるが、性能とＺ品質とを犠牲にする。９６ビット超サンプリングＥＦＢフォーマットは４８ビット点サンプリングピクセルの２倍のメモリを必要とする。このモードはまたＺバッファ精度を、他のフォーマットの２４ビットではなく、１６ビットに減じる。この例でいえば、エイリアス補正は、ピークのフィルレート(fill rate)を８００Ｍピクセル／ｓから４００Ｍピクセル／ｓへ減じる。しかしながら、テクスチャ環境ユニット（ＴＥＶ）において１つ以上のステージを採用するなら、この減少は隠され、この例でいえば、２つのＴＥＶステージがまたフィルレートを４００Ｍピクセル／ｓに減じる。
【００３７】
或る実施例において、内部フレームバッファ７０２のバンド幅による制限のために、エイリアス補正付きのレンダリングレートは２ピクセル／クロックへ低下する。しかしながら、２つまたはそれ以上のテクスチャがオンされるなら、ピクセルクォードラプレットがピクセルエンジン７００へ送られるレートが、この具体的な実施例においては、２クロック毎に、１つもしくはそれより少ないピクセルクォードラプレットに低下する。この場合は、エイリアス補正をオンしてもフィルレートには影響は与えない。そのために、具体的なシーンがジオメトリで制限されると、エイリアス補正はレンダリング性能に逆に影響を与えない。他方、具体的なシーンがフィルレートで制限されると、点サンプルモードを用いる場合に対して、エイリアス補正を活性化することによって、レンダリング性能は実質的に影響を受ける。そのシーンまたはイメージがジオメトリによる制限を受けるのかあるいはフィルレートによる制限を受けるのかによって、もしくは具体的なシーンやイメージにおいて要求される画像品質に依存して、同じアプリケーションが、異なるシーンや異なるイメージについてエイリアス補正を活性化したりしなかったりすることができる。たとえば、フレーム毎のエイリアス補正の活性化／不活性化のためにフレームバッファにおけるピクセルフォーマットを動的に変更する能力は、画像品質と速度性能との間のトレードオフを作るためにアプリケーションプログラマに非常に大きな柔軟性を与える。
９６ビット構成を用いるエイリアス補正
この発明に関連して使用するための具体的なかつ好ましいエイリアス補正方法および装置が同じ出願人の出願に係る同時係属中の「グラフィクスシステムにおけるエイリアス補正方法および装置」（特願平２００１−９４５３８）に開示されていて、この開示がそれを参照することによって全体としてここで取り入れられる。内部フレームバッファのための９６ビットピクセルフォーマットのより完全な理解を与えるために、以下に、このエイリアス補正の簡単な説明を行う。
【００３８】
エイリアス補正の実施例によれば、エイリアス補正は２つの主たるフェーズで行われる。最初のフェーズでは、データはピクセル毎に３つの超サンプルおよび９６ビットのピクセルＥＦＢフォーマットを用いる内部フレームバッファにロードされる。第２フェーズにおいて、データは、この内部フレームバッファから読み出され（もしくはコピーされ）、コピーパイプラインによってさらに処理される。９６ビットフォーマットは、特に、エイリアス補正の第１フェーズを達成するために有利である。しかしながら、それは同じように任意の他の適宜の目的のために使用され得る。
【００３９】
９６ビットフォーマットを用いるこの実施例のエイリアス補正においては、第１エイリアス補正フェーズは、ラスタライザが内部フレームバッファ（ＥＦＢ）７０２へのエッジラスタライゼーションを行っているときに生じる。好ましくは、このラスタライザはエッジおよびｚラスタライザであり、それは、レンダリングされている現在の三角形もしくは他のプリミティブに含まれる可視ピクセルクォードラプレット内におけるプログラマブルな超サンプリング位置のためのｘ，ｙ，ｚおよびカバーマスク値を発生する。このピクセルクォードラプレットは各ピクセル内において３つのプログラマブルなサブピクセル位置を有する。ピクセルクォードラプレットは２×２構成において４つのピクセルを含む。クォードラプレット中の各ピクセル内において、３つの超サンプリング位置がプログラマブルに選択されかつ特定される。好ましくは、プログラマは、グローバルレジスタを書き込むことによって、サブサンプル位置を設定できる。各ピクセル中の超サンプリングの各々の位置がこの実施例においてはプログラマブルであるため、具体的なアプリケーションについての必要に応じて各クォードラプレットのための具体的なサンプリング位置を変更することができる。他方、別の実施例においては、具体的に最適化されたマルチサンプル位置の値が（たとえばハードウェアに設定することによって）固定され、そのために、アプリケーションプログラマはそれを気にする必要がない。したがって、実施例においては位置はプログラマブルであるが、このプログラマブルな能力に代えて結線された随意的なパターンが用いられてもよい。パターンを選択するものは、フレーム中の或る数の隣接ピクセルにまたがって繰り返され得る。
【００４０】
すべてのプリミティブが１フレームについてレンダリングされると、内部フレームバッファは１つの全フレームについての超サンプリングピクセルの情報を含む。各ピクセルについて３つの超サンプルが与えられ、各サンプルが１６ビットのカラー値と１６ビットのｚ値とを含むということによって、各ピクセルは内部フレームバッファ中において９６ビットで表される。内部フレームバッファは、次いで、コピーパイプラインによる使用のために準備され、そこでは、エイリアス補正の第２フェーズが実行可能である。この第２フェーズはコピーパイプラインに関連して以下により詳細に説明する。エイリアス補正についてのさらなる詳細は上で述べた同時係属中の出願を参照されたい。
ＹＵＶ内部フレームバッファ構成
図７は、内部フレームバッファ７０２のための別の構成を示し、このバッファ７０２は、たとえば、システムによってサポートされるべきＭＰＥＧ規格（たとえばＭＰＥＧ２）の下での動き補償を可能ならしめるＹＵＶ（輝度／クロマ）フォーマットにおけるピクセルデータをストアするように設計されている。このＹＵＶ構成においては、カラーバッファは、好ましくは、ＹＵＶ４：２：０フレームのためのＹ（７２０×５７６），Ｕ（３６０×２８８）およびＶ（３６０×２８８）のイメージパネルをストアするように仕切られる。このカラーバッファの仕切りは
・１０２４×６４０  ８ビットのＹイメージ；
・５２８×３２０  ８ビットのＵイメージ；および
・５２８×３２０  ８ビットのＶイメージ
を割り付ける。
【００４１】
イメージの好ましい割り付けが図７に示される。ＹＵＶデータは好ましくは、光ディスクやその類似物のような外部へ供給される媒体からもしくはグラフィクスパイプライン以外の任意の他の適宜のソースから、主プロセサによって内部フレームバッファにロードされる。しかしながら、グラフィクスパイプラインは１つの成分ＹまたはＵまたはＶイメージを与えるが、３つのＹＵＶピクセルを引き出すことはできない。以下に詳細に説明するように、内部フレームバッファ中のＹＵＶデータは、そのデータを表示するためにもしくはそのデータをグラフィクスパイプラインによる後続の使用のためにテクスチャデータに変換するために、コピーパイプラインによってさらに処理され得る。
ピクセルフォーマットコマンドの例
上で説明したように、内部フレームバッファ７０２は２つのＲＧＢ（Ａ）ピクセルフォーマット（４８ビットおよび９６ビット）ならびにＹＵＶフォーマットをサポートするように選択的に構成され得る。所望のピクセルフォーマットが、好ましくは、ＡＰＩ(Application Program Interface)を用いるフレーム毎に設定される。この目的のＡＰＩ関数を表１に示す。
【００４２】
【表１】
0004719363.tif 000002
【００４３】
この関数は内部フレームバッファのフォーマットを設定する。その関数は任意の引き出し動作を行う前にコールされる。ピクセルフォーマットは、この実施例においては、フレームの中程で変更され得る。１６ビットのＺ値（マルチサンプルまたはエイリアス補正モードで）は圧縮されなくても圧縮されてもよい。圧縮された値はよりよい精細度および範囲を与える。Ztopフラグがテクスチャマッピングの前に(Z-before-texture)、デプス比較を行うために使用される。これは、ごく僅かのテクセルが取り出されかつフィルタリングされるだけであるので、テクスチャバンド幅を改善する。
ピクセルエンジンと内部フレームバッファとの間のインタフェース
ピクセルエンジン７００と内部フレームバッファ７０２との間の例示的なインタフェースが図８に示される。好ましくは、図８に示すように、そのうちの２つがカラー用であり２つがＺ用である内部フレームバッファの４つのコピー（７０２ａ，７０２ｂ，７０２ｃおよび７０２ｄ）がある。この例において、ピクセルエンジンからの内部フレームバッファへの読出または書込アクセスは９６ビットのデータまたはカラーおよびＺの４つのクォードラプレットを転送する。バッファの各々のコアへの４つのアドレス／制御および読出バスがある。ＺチャネルＡおよびＢは、好ましくは、書込ポート７０３ａを共用し、カラーチャネルＡおよびＢは好ましくは、別の書込ポート７０３ｂを共用する。内部フレームバッファは、好ましくは、８００Ｍピクセル／秒のピークフィルレートのためにクロック毎に４つのピクセルをブレンドするように十分なバンド幅を有する。内部フレームバッファの最大サイズは６４０×５２８×２４ビットカラーおよび２４ビットＺである。内部フレームバッファは１つのバッファであり、最終イメージを表示のために外部フレームバッファへ転送するようにされている。二重にバッファされた表示がこの態様で達成される。図７に示すアドレス／制御，読出および書込バスは次の表２に詳細に定義される。
【００４４】
【表２】
0004719363.tif 000003
【００４５】
コピーアウト動作およびパイプラインの例
コピーパイプラインと呼ばれるものを通してこの実施例中において実現されるコピーアウト動作は、内部フレームバッファ（ＥＦＢ）からのピクセルデータをさらに処理するために、そしてビデオインタフェースによる表示のための表示データとしてもしくはグラフィクスパイプライン（図１２参照）による後の使用のためのテクスチャデータとして、フレームデータを最終的に、主メモリ１１２の外部フレームバッファ（ＸＦＢ）へ選択したフォーマットで書き込むために使用される。内部フレームバッファ中のＲＧＢ（Ａ）またはＹＵＶ４２０のデータが主メモリＹＵＶ４２２へフィールド毎にまたはフレーム毎にコピーされ得る。ＹＵＶ４２２データは、走査線順次にコピーアウトされる。走査線間でメモリバイトをスキップさせるのを許容するストライドがある。Ｙ８は最下位アドレスであり、それに続いてＵ８，Ｙ８およびＶ８がある。ＹＵＶフォーマットにおけるコピーによって、主メモリにおいて使用されるメモリ量を１／３まで減じる。
【００４６】
コピーパイプラインの概略ブロック図が図９に示され、この図９では、このコピーパイプラインは２つのＲＧＢ（Ａ）ピクセル構成のどちらかのときＥＦＢからのデータの処理に主として関連するものとして示される。図９に示すように、コピーパイプラインのこの局面は、エイリアス補正／デフリッカ部６２２，ガンマ補正部６２３，ＲＧＢ−ＹＵＶ変換部６２４およびＹスケーリング部６２６を含む。
【００４７】
すべてのＥＦＢ構成（すなわち、ＲＧＢ（Ａ）およびＹＵＶ）のためのコピーパイプラインのより完全なブロック図が図１３に示される。図１２はシステムの種々のコンポーネント間でデータが取り出される種々の経路を示す。図１３に示すように、この実施例におけるフィルタリング動作のために必要なバッファリング量を低減するために、コピー矩形(rectangle)が３２×３２のタイルに分解される。これらのタイルは２つのタイルバッファ６２５ａおよび６２５ｂを用いることによって二重にバッファリングされ、そのために、１つのタイルが充填（フィル）されているとき他のタイルが読み出されかつ主メモリへ送られるように処理される。矩形は、好ましくは、Ｙ方向のタイルに分解され、それに続いてＸ方向のタイルに分解される。１つのタイル内の１つのスパンにおける４つのピクセルが１つのサイクルで処理される。このピクセルクォードラプレットはＹからＸへ続く順序で処理される。
【００４８】
より具体的に図１３を参照して、具体的なコピーパイプライン動作は、内部フレームバッファ中におけるデータの具体的な構造やそのコピーアウト動作の結果を必要とするプログラマに依存する。上で述べたように、カラーバッファはＲＧＢ８，ＲＧＢＡ６，Ｒ５Ｇ６Ｂ５（エイリアス補正）もしくはＹＵＶ４２０のデータを含み、Ｚバッファは２４ビットのＺもしくは３×１６ビットのＺ（エイリアス補正）を含む。図１８はこの実施例において利用可能な種々のデータフォーマットのための好ましい変換マトリクスを示す。
【００４９】
内部フレームバッファが上で述べたＲＧＢ（Ａ）フォーマットのいずれかにおけるデータのためにかつそれを含むように構成されるならば、コピーパイプラインは、好ましくは、図１３においてブロック６２８によって図示するプログラマブルな７タップの垂直フィルタを用いるエイリアス補正／デフリッカ動作を行う。より詳細には後に説明するが、このフィルタは多数のピクセルからの点サンプリングされたもしくは超サンプリングされた（エイリアス補正）ピクセルデータをブレンドし、それの結果として得られたピクセルカラーを出力する。ブレンドが行われると、ブロック６２３によって図解されるように、ガンマ補正が行われる。次いで、具体的なアプリケーションのために必要ならば、ＲＧＢデータをＹＵＶ４４４フォーマットへ変換する（ブロック６４１）ために随意的な変換が行われ得る。もし、データがブロック６４１でＹＵＶ４４４へ変換されると、次いで、ＹＵＶ４４４からＹＵＶ４２２へ変換するためにブロック６４４において他の随意的な変換が行われる。コピーパイプラインが表示のために使用されているならば、ＹＵＶ４２２へのこの変換は、この実施例ではＹＵＶ４２２である主メモリ表示フォーマットへそのデータをするために行われる。タイルデータは、次いで、上で説明したタイルバッファ６２５ａおよび６２５ｂでバッファリングされる。そして、そのタイルが表示のためのものであれば、Ｙスケーリングがブロック６２６で行われ、スケーリングされたデータが、ビデオインタフェースによる使用のためのＹＵＶ４２２フォーマットで主メモリへコピーアウトされる（ブロック６４２）。他方、データがテクスチャとして使用されるものであれば、Ｙスケーリングは行われない。代わりに、タイルデータはブロック６４０で所望のテクスチャにフォーマット化され、グラフィクスパイプラインにおける後続する動作における使用のために、テクスチャタイルとして主メモリへ送られる。この実施例における可能なテクスチャフォーマットが図１８に示され、テクスチャコピーコマンドおよびレジスタビット定義に関連して以下にリストアップされる。
【００５０】
もし、内部フレームバッファが上で説明したＹＵＶ４２０フォーマットのデータのためでありかつそのデータを保持するように構成されるなら、パイプラインは図１３の下部によって示されるような僅かに異なる動作を有する。特に、カラーバッファからのＹＵＶ４２０のデータは、まず、ＹＵＶ４４４フォーマットへ変換される（ブロック６４６）。ＹＵＶ４４４からＲＧＢへの随意的な変換が、次いでブロック６４８で行われ得る。データ経路はＲＧＢ（Ａ）構成に関連して上で説明したと同じである。すなわち、タイルは、ブロック６４４で、ＹＵＶ４２２に随意的に変換され（もし先にＹＵＶ４４４へ変換されているなら）、次いで、バッファリングされ、そしてスケーリングされるかまたは表示データとして主メモリへ送られ、もしくは所望のテクスチャフォーマットへ変換されて主メモリ中にテクスチャタイルとしてストアされる。図１９は主メモリへテクスチャタイル（たとえば、タイル１−４）が如何にしてストアされるかの例を示す。
【００５１】
テクスチャは内部フレームバッファ（ＥＦＢ）をGXCopyTex 関数を用いる主メモリへコピーすることによって作られる。これは、動的な影マップ、環境マップ、動きブルー(blur)効果等を作り出すときに有用である。
【００５２】
圧縮テクスチャ(GX_TF_CMPR) を除くすべての非カラーインデックステクスチャ形式がこのコピー中に作り出され得る。テクスチャコピー動作は正しいタイルおよびテクスチャフォーマットを作り、そのためにハードウェアによって直接読み出され得る。随意的に、下部詳細レベル（ＬＯＤ:level of detail）テクスチャを作り出すためにＥＦＢにおけるイメージにボックスフィルタが適用され得る。このボックスフィルタはＥＦＢデータからミップマップ(mipmap)を作り出すために使用され得る。テクスチャコピーフォーマットおよび変換ノートの例を次の表３に示す。
【００５３】
【表３】
0004719363.tif 000004
【００５４】
通常、ソースおよび宛先矩形は同じサイズを有する。しかしながら、より大きなテクスチャへ組み立てられる小さいテクスチャをコピーするときには、ソースおよび宛先矩形は異なってよい。フォーマットGX_TF_A8が、具体的に、ＥＦＢからのアルファチャネルをGX_TF_I8のフォーマット化されたテクスチャへコピーするために使用される。GX_TF_I8はＥＦＢの輝度をGX_TF_I8テクスチャへコピーする。テクスチャを読み出すとき、GX_TF_A8およびGX_TF_I8は同じである。GX_PF_RGB8_Z24 のピクセルフォーマットからGX_TF_RGB565のような低解像度カラーフォーマットへカラーテクスチャが変換されるとき、８ビットカラーの最下位ビット（ＬＳＢｓ）が圧縮される。GX_PF_RGB565_Z16 のような低解像度ピクセルフォーマットからGX_TF_RGB8のような高解像度テクスチャフォーマットへカラーテクスチャが変換されるとき、各ピクセルの最上位ビット（ＭＳＢｓ）が各テクセルの最下位ビットに折り返される。この変換プロセスが見込みエラーを均等に分散し、そして、各テクセルが最小もしくは最大値を表すことができるようにする。概略的にいえば、ＥＦＢからのアルファを含むテクスチャをフォーマットGX_PF_RGBA6_Z24 でコピーするだけである。ＥＦＢからのアルファを含むテクスチャをアルファなしでコピーすると、アルファはその最大値に設定される。GX_TF_Z24X8 フォーマットは２４ビットのＺバッファを３２ビットのテクスチャ（GX_TF_RGB8と等価なフォーマット）にコピーするために使用される。テクスチャをコピーするために、アプリケーションは、好ましくは、まず、主メモリ中のバッファにコピーされるべきテクスチャのサイズを割り付ける。このサイズは、たとえばGXGetTexBufferSize関数を用いることによって決定できる。この関数は、好ましくは、それの計算においてテクスチャパッド(padding)およびテクスチャ形式を考慮に入れる。
【００５５】
上の説明からわかるように、この発明に従ったコピーアウトプロセスによって、使用されるべき種々のデータフォーマットおよび行われるべき種々の変換／操作を可能とし、それによって非常な柔軟性および機能性が与えられる。ＹＵＶフォーマットをサポートしかつテクスチャとしてのコピーアウトを可能にすることによって、コピーパイプラインは、たとえば、動き補償を行う際に主プロセサを助けるために使用され得る。上で述べたようなコピーアウトプロセスは、内部フレームバッファからのデータを表示のためにもしくはテクスチャとして外部フレームバッファへ効率的に移動させかつ処理するために用いられるだけでなく、ＹＵＶカラー空間を使用するＭＰＥＧデータに基づくテクスチャコピーの特徴を使用することによって、ポリゴン上に重畳されるべき映像をストリーミングすることができる。
【００５６】
上で述べたコピーパイプライン動作の各々がより一層詳細に以下に説明される。
コピーアウト中の例示的なエイリアス補正
上で簡単に説明したように、エイリアス補正が必要な場合には、内部フレームバッファは９６ビットのエイリアス補正付きピクセルデータ（たとえば、R5G6B6およびZ16 ）のために構成され、エイリアス補正の第２ステージがコピーアウト中に行われ得る。特に、エイリアス補正の第２ステージは、内部フレームバッファ（ＥＦＢ）７０２から外部フレームバッファ（ＸＦＢ）１１３へのコピーアウト中に、エイリアス補正／デフリッカ部６２２によって行われる。
【００５７】
コピーパイプラインのエイリアス補正／デフリッカ部６２２は、好ましくは、各超サンプル毎にプログラマブルな重み（Ｗ０−Ｗ６）を有する７タップの垂直フィルタ６２８（図１４を参照）を適用する。垂直フィルタのためのサポートは、好ましくは、３垂直ピクセル領域である。したがって、エイリアス補正モードにおける現在のピクセルＮのためのカラーを決定するとき、現在のピクセルの直上のピクセル（Ｎ−１）における超サンプルおよび現在のピクセルの直下のピクセル（Ｎ＋１）における超サンプルならびに現在のピクセルにおける超サンプルが好ましくは用いられる。好ましくは、２つの周囲のピクセルの各々内において現在のピクセルから最も遠いサンプルはそのフィルタリング動作においては用いられない。そのために、フィルタリングのための３ピクセルのサポートは９つのサンプルを持つが、その９つのサンプルの７個だけが実施例におけるブレンド動作において使用される。結果的に得られた垂直フィルタリング出力は外部フレームバッファへの最終的なコピーおよび表示装置５６上での表示のために、１画面のピクセルカラー値（Ｎ′）を与える。
【００５８】
フルラインバッファの使用を回避するために、コピー動作は、好ましくは、エイリアス補正（ＡＡ）バッファリングを使用し、そこでは、コピーが３２ピクセル幅（Ｘ軸）のストリップ中で行われる。この例示のＡＡバッファリングにおけるストリップバッファのためのデータ経路が図１５のブロック図中に示される。
【００５９】
エイリアス補正／デフリッカ防止技術およびその構成に関する付加的な詳細は先に挙げた同時係属中の出願にある。この発明は内部フレームバッファおよび全体のコピー動作に向けられており、したがって、具体的なエイリアス補正動作には関係なく、ここではエイリアス補正に関するこれ以上の詳細は省略する。
コピーアウト中の例示的なデフリッカフィルタリング
同じ垂直フィルタが、点サンプルピクセルを用いるデフリッカ機能を達成するために、非エイリアス補正モードにおけるコピーアウト中に使用され得る。このモードにおいては、サンプルリングパターンはプログラマブルではない。図１６に示すように、ハードウェアは、ピクセルの中心だけをサンプル位置として使用する。各点サンプル毎の重み係数（Ｗ０−Ｗ６）はエイリアス補正フィルタリングと同じようにプログラマブルである。したがって、デフリッカモードにおける垂直フィルタ６２８ａは現在のピクセルからの３つの入力（中心だけ）および２つの垂直隣接ピクセルの各々からの２つの入力（中心のみ）を使用する。プログラマブルな重み係数が７サンプルに加えられ、そして、結果が最終ピクセルカラー（Ｎ′）を得るために加えられる。好ましくは、デフリッカフィルタおよびＡＡフィルタは共用される。ＡＡデータ経路（図１５参照）において用いられる４つのストリップバッファがまたクォードラプレットストリップをストアするために使用される。デフリッカバッファリングのためのデータ経路の例示的なブロック図が図１７に示される。このデフリッカに関するさらなる詳細は上記同時係属中の出願において与えられる。
コピーアウト中のＲＧＢからＹＵＶ変換の例
輝度／クロマ（ＹＵＶ）フォーマットはＲＧＢと同じ可視品質のピクセルをストアするが、メモリの２／３だけを必要とする。したがって、コピー動作中、外部フレームバッファ（ＸＦＢ）のために使用される主メモリの量を減じるために、ＥＦＢにおけるＲＧＢ（Ａ）フォーマットがＸＦＢにおいてＹＵＶフォーマットに変換される。この変換はＲＧＢ−ＹＵＶ部６２４によって行われる。変換動作の図解が図１０に示され、そこでは、ＲＧＢデータが最初にＹＵＶ４４４フォーマットに変換され、次いで、表示データとしてＸＦＢへのストアのためにＹＵＶ４２２フォーマットにダウンサンプリングされる。
コピーアウト中の垂直（Ｙ）スケーリング
コピーパイプラインにおけるＹスケール部６２６はレンダリングイメージの垂直方向における任意のスケーリングを可能にする。水平スケーリングは好ましくは映像表示中に行われる。ＹスケーリングファクタはＡＰＩにおいて定義され、コピーされる走査線の数を決定し、適当なＸＦＢのサイズを計算するために使用され得る。この発明に従った好ましい垂直スケーリングのためのブロック図が図１１に示される。垂直スケーリングは２つの垂直隣接ストリップ間の８ビットラープ(lerp)を使用することによって行う。このラープ係数は１．０で始まる。走査線が出力された後、固定小数点値（１．８）がそのラープ係数に加算される。ラープ係数のキャリーが新たな走査線を使用すべきことを伝達する。２つのストリップバッファ６２６ａおよび６２６ｂが互いの上端にある２つの部分的な走査線を確保するために使用される。バッファＡ（６２６ａ）は偶数ｙ値を有するすべての入来ストリップを保持し、バッファＢ（６２６ｂ）はすべての奇数ｙ値ストリップを保持する。
コピーアウト中のガンマ補正
ガンマ補正部６２３は、目の（および時々モニタの）非直線応答を補正するために使用され、カラーの輝度値における変化を直線的にする。ガンマの３つの選択肢が与えられる（１．０，１．７および２．２のような）。デフォルトのガンマは好ましくは１．０であり、それは、たとえば、ＡＰＩのGXInitコマンドに設定される。
コピーアウト中に使用可能な変換動作の例
ＲＧＢからＹＣｒＣｂ（４：４：４）変換
この変換は必要な外部フレームバッファの量を１／３までに減じるために使用される。数１がこの変換のために使用される。
【００６０】
【数１】
0004719363.tif 000005
【００６１】
１つの走査線の４つのピクセルが１サイクルで変換される。
【００６２】
ＹＣｒＣｂ（４：４：４）からＹＣｒＣｂ（４：２：２）
ＹＵＶ４４４からＹＵＶ４２２への変換の例が図２０に示される。この変換のために数２が使用される。
【００６３】
【数２】
0004719363.tif 000006
【００６４】
ＹＣｒＣｂ（４：２：０）からＹＣｒＣｂ（４：４：４）
この変換は図２１および図２２に示される２つの部分で行われる。図２１に示す最初の部分ではＹＵＶ４２０フォーマットからＹＵＶ４２２フォーマットへ変換する。この変換が使用するのは数３である。
【００６５】
【数３】
0004719363.tif 000007
【００６６】
このＹＵＶ４２０−ＹＵＶ４４０変換の第２部分は、図２２に示すように、１つ上の部分からのＹＵＶ４２２データをＹＵＶ４４４にアップサンプリングする。この変換は数４を使用する。
【００６７】
【数４】
0004719363.tif 000008
【００６８】
ＹＣｂＣｒ（４：４：４）からＲＧＢへの変換
ＭＰＥＧ２はＹＣｂＣｒ（ＹＵＶ）カラー空間において動作する。この変換は、コピーアウト中にＹＵＶデータをＲＧＢデータへ変換するために使用される。
数５がこの変換に使用される。
【００６９】
【数５】
0004719363.tif 000009
【００７０】
１つの走査線中の４つのピクセルが１サイクルで変換される。
コピーアウトコマンドの例
表示コピー動作のＥＦＢソースおよび宛先は表４に例示するＡＰＩ関数を使用することによって特定される。
【００７１】
【表４】
0004719363.tif 000010
【００７２】
この関数は内部フレームバッファ（ＥＦＢ）の内容を主メモリ中の表示バッファ１１３へコピーする。「コピーアウト(copy out)」なる用語は、すべての情報を単純に転送する意味ではなく、内部フレームバッファの内容が読み出され、さらに処理され（フィルタリング、再サンプリング、スケーリングなどされ）、その結果的に得られたデータが次いでどこか（たとえば、外部の点サンプル形式のフレームバッファ）へ送られることを意味する。矩形の原点がSrcLeft(X)およびSrcTop(Y) によって定義される。クリアフラグはカラーおよびｚバッファの現在のカラーおよびｚ値へのクリアを可能にする。内部フレームバッファのクリアは好ましくは、コピー動作と同時に生じる。
【００７３】
このコピー動作のための制御を設定するために表５で示す関数が使用される。
【００７４】
【表５】
0004719363.tif 000011
【００７５】
この関数は内部フレームバッファから表示バッファへのコピー中に使用される制御を設定する。これらの制御は１回設定され、その後多数のコピーコマンドが発行され得る。
【００７６】
内部フレームバッファからのテクスチャとしてのデータのコピーのための例示的なＡＰＩコマンドが表６に示される。
【００７７】
【表６】
0004719363.tif 000012
【００７８】
この関数は、グラフィクスパイプラインによる後続の使用のためのテクスチャイメージを発生するために、内部フレームバッファを主メモリ中のテクスチャイメージバッファへコピーする。
【００７９】
上の例示的なＡＰＩコマンドを使用して指定され得る例示的なパラメータのリストが表７〜表１２に示される。
【００８０】
【表７】
0004719363.tif 000013
【００８１】
【表８】
0004719363.tif 000014
【００８２】
【表９】
0004719363.tif 000015
【００８３】
【表１０】
0004719363.tif 000016
【００８４】
【表１１】
0004719363.tif 000017
【００８５】
【表１２】
0004719363.tif 000018
【００８６】
ピクセルエンジンレジスタの例
図２３−図２５はコピーアウト動作に関連してピクセルエンジンによって使用される例示的なレジスタを示す。特に、図２３は制御レジスタを示す。この制御レジスタのビット定義は表１３に示す通りである。
【００８７】
【表１３】
0004719363.tif 000019
【００８８】
ビット０−２はコピー動作のためのピクセル形式を指定する。この制御レジスタへの書き込みによって、エッジラスタライザ（ＲＡＳ０）とピクセルエンジン（ＰＥ）との間のグラフィクスパイプラインステージがフラッシュされる。この実施例において、これは最小９０サイクルを要する。この実施例への書き込みはまたコピーテクスチャをそのテクスチャを用いるプリミティブのレンダリングと同期化するために使用される。
【００８９】
図２４はテクスチャ動作へのコピーのための例示的なレジスタを示す。このレジスタのビット定義は表１４に示す通りである。
【００９０】
【表１４】
0004719363.tif 000020
【００９１】
この動作に許容されているピクセル形式はＲＧＢ８，ＲＧＢＡ６，ＲＧＢ_ＡＡ（すなわち、エイリアス補正（Ｒ５Ｇ６Ｂ５）），ＹＵＶ８およびＹＵＶ４２０である。ビット３−６はテクスチャバッファ中にコピーコマンドによってストアされるテクスチャのフォーマットを決定する。この実施例において、このテクスチャフォーマッティングは図１３に示すテクスチャフォーマット部６４０において行われる。この実施例では、Ｃｌｒはピクセル形式ＹＵＶ４２０のためにはサポートされておらず、０に設定されるべきである。この実施例において、ガンマ補正もまたピクセル形式ＹＵＶ４２０のためにはサポートされていない。
【００９２】
図２５は表示動作へのコピーのための例示的なレジスタを示す。このレジスタのビット定義は表１５に示す。
【００９３】
【表１５】
0004719363.tif 000021
【００９４】
この動作のために許容されているピクセル形式は、ＲＧＢ８，ＲＧＢＡ６，ＲＧＢ_ＡＡ（エイリアス補正）およびＹＵＶ４２０である。Ｃｌｒはピクセル形式ＹＵＶ４２０のためにはサポートされておらず、０に設定されるべきである。この実施例においては、ガンマ補正もまたピクセル形式ＹＵＶ４２０のためにはサポートされていない。
互換性のある他の実施例
上述のシステム５０は上で述べた家庭用ビデオゲームコンソールの構成以外としても実現できる。たとえば、或るものは、システム５０をエミュレートする異なる構成を有するプラットフォームもしくはそれと同等のものにおいて、システム５０のために書かれたグラフィクスアプリケーションや他のソフトウェアを実行させることができる。もし、他のプラットフォームがシステム５０のいくつかのもしくはすべてのハードウェアおよびソフトウェアリソースをエミュレートしシミュレートしおよび／または提供することができれば、その他のプラットフォームはそのソフトウェアを成功裏に実行することができる。
【００９５】
一例として、エミュレータがシステム５０のハードウェアおよび／またはソフトウェア構成（プラットフォーム）とは異なるハードウェアおよび／またはソフトウェア構成（プラットフォーム）を提供できる。そのエミュレータシステムは、それのためにアプリケーションソフトウェアが書かれているシステムのいくつかのもしくはすべてのハードウェアおよび／またはソフトウェアコンポーネンツをエミュレートしもしくはシミュレートするソフトウェアおよび／またはハードウェアコンポーネンツを含む。たとえば、エミュレータシステムはパソコンのような汎用ディジタルコンピュータを含み、それはシステム５０のハードウェアおよび／またはファームウェアをシミュレートするソフトウェアエミュレータプログラムを実行する。上述のオーディオシステムのＤＳＰ処理がパソコンによってエミュレートされ得る。
【００９６】
或る汎用ディジタルコンピュータ（たとえばＩＢＭやマッキントッシュのパソコンおよびそれらの同等物）は、ダイレクトＸ(DirectX)または他の標準的な３ＤグラフィクスコマンドＡＰＩｓに従った３Ｄグラフィクスパイプラインを提供する３Ｄグラフィクスカードを備える。それらはまた、音声コマンドの標準的なセットに基づいて高品質のステレオ音声を提供するステレオ音声カードを備える。エミュレータソフトウェアを実行するそのようなマルチメディアのハードウェアを備えるパソコンは、システム５０のグラフィクスおよび音声性能とほぼ等しい十分な性能を有する。エミュレータソフトウェアはパソコンプラットフォーム上のハードウェアリソースを制御して、それのためにゲームプログラマがゲームソフトウェアを書いた家庭用ビデオゲームコンソールプラットフォームの処理，３Ｄグラフィクス，音声，周辺および他の能力をシミュレートする。
【００９７】
図２６はホストプラットフォーム１２０１，エミュレータコンポーネント１３０３および記憶媒体６２上のゲームソフトウェア実行可能バイナリ映像を用いる全体のエミュレーション処理を図解する。ホスト１２０１は、たとえばパソコン，ビデオゲームコンソールあるいは十分な計算力を有する任意の他のプラットフォームのような汎用または特定目的ディジタル計算装置である。エミュレータ１３０３はそのホストプラットフォーム１２０１上で走るソフトウェアおよび／またはハードウェアであり、記憶媒体６２からのコマンド，データおよび他の情報のそのホスト１２０１によって実行可能な形態へのリアルタイム変換を行う。たとえば、エミュレータ１３０３は記憶媒体６２からシステム５０によって実行されるように意図された「ソース」であるバイナリ映像プログラム命令を取り込み、これらのプログラム命令をホスト１２０１によって実行されもしくは処理され得るターゲットとなる形態に変換する。
【００９８】
一例として、ソフトウェアがＩＢＭパワーＰＣまたは他の特定のプロセサを用いるプラットフォーム上での実行のために書かれかつホスト１２０１が異なる（たとえばインテル）プロセサを用いるパソコンである場合、エミュレータ１２０３は記憶媒体１３０５からの１つのもしくは一連のバイナリ映像プログラム命令を取り込み、これらのプログラム命令を１つまたはそれ以上の同等のインテルのバイナリ映像プログラム命令に変換する。エミュレータ１２０３はまたグラフィクス／オーディオプロセサ１１４によって処理されるように意図されたグラフィクスコマンドおよびオーディオコマンドを取り込みかつ／あるいは生成し、そしてホスト１２０１上で利用可能なハードウェアおよび／またはソフトウェアグラフィクス／オーディオ処理リソースによって処理され得る形態にこれらのコマンドを変換する。一例として、エミュレータ１３０３はホスト１２０１の特別なグラフィクスおよび／または音声ハードウェア（たとえば標準的なダイレクトＸ，オープンＧＬおよび／または音声ＡＰＩｓ）によって処理され得るコマンドにこれらのコマンドを変換する。
【００９９】
上で述べたビデオゲームシステムのいくつかのもしくはすべての特徴を与えるために用いられるエミュレータ１３０３は、また、エミュレータを使ってゲームを走らせている種々のオプションおよびスクリーンモードの選択を簡単化しもしくは自動化するグラフィックユーザインタフェース（ＧＵＩ）を備える。一例において、そのようなエミュレータ１３０３はさらにそのソフトウェアが本来的に目的とされたホストプラットフォームに比べてより増強された機能性を含むこともできる。
【０１００】
図２７はエミュレータ１３０３で用いるに適したエミュレーションホストシステム１２０１を図解的に示す。このシステム１２０１は処理ユニット１２０３およびシステムメモリ１２０５を含む。システムバス１２０７がシステムメモリ１２０５を含む種々のシステムコンポーネンツを処理ユニット１２０３に結合する。システムバス１２０７は多様なバスアーキテクチャのいずれかを用いるメモリバスもしくはメモリコントローラ，周辺バスおよびローカルバスを含むいくつかのタイプのバス構造の任意のものである。システムメモリ１２０７はＲＯＭ１２５２およびＲＡＭ１２５４を含む。起動中においてのようにパソコンシステム１２０１中のエレメント（要素）間に情報を伝送する手助けをする基本ルーチンを含む基本入力／出力システム（ＢＩＯＳ）１２５６がＲＯＭ１２５２中にストアされる。システム１２０１はさらに種々のドライブおよび関連のコンピュータ読出可能な媒体を含む。ハードディスクドライブ１２０９が（典型的には固定の）磁気ハードディスク１２１１から読み出しそれへ書き込む。付加的な（たぶんオプションとしての）磁気ディスクドライブ１２１３が着脱可能な「フロッピィ」または他の磁気ディスク１２５１から読み出しかつそれへ書き込む。光ディスクドライブ１２１７はＣＤ−ＲＯＭあるいは他の光学媒体のような着脱自在な光ディスク１２１９から読み出しかつそれへ書き込む。ハードディスクドライブ１２０９および光ディスクドライブ１２１７は、ハードディスクドライブインタフェース１２２１および光ディスクドライブインタフェース１２２５によって、システムバス１２０７にそれぞれ接続される。これらのドライブおよびその関連するコンピュータ読出可能な媒体は、パソコンシステム１２０１のためのコンピュータ読出可能な命令，データ構造，プログラムモジュール，ゲームプログラムおよび他のデータの不揮発性の記憶媒体を提供する。他の構成では、コンピュータによってアクセス可能なデータをストアすることができる他のタイプのコンピュータ読出可能な媒体（たとえば磁気カセット，フラッシュメモリカード，ディジタルビデオディスク，ベルヌーイカートリッジ，ＲＡＭ，ＲＯＭあるいはその他のもの）がまた使用できる。
【０１０１】
エミュレータ１３０３を含む多数のプログラムモジュールがハードディスク１２１１，着脱可能な磁気ディスク１２１５，光ディスク１２１９および／またはシステムメモリ１２０５のＲＯＭ１２５２および／またはＲＡＭ１２５４にストアされ得る。このようなプログラムモジュールはグラフィクス／音声ＡＰＩｓ，１つ以上のアプリケーションプログラム，他のプログラムモジュール，プログラムデータおよびゲームデータを提供するオペレーティングシステム（ＯＳ）を含む。ユーザは、キーボード１２２７，ポインティングデバイス１２２９，マイクロフォン，ジョイスティック，ゲームコントローラ，衛星アンテナ(satellite dish)，スキャナあるいはその他のもののような入力デバイスを通して、パソコンシステム１２０１にコマンドおよび情報を入力することができる。これらのそして他の入力デバイスは、システムバス１２０７に結合されたシリアルポートインタフェース１２３１を通して処理ユニット１２０３に接続され得るが、パラレルポート，ゲームポートファイヤワイヤバス(Fire Wire)もしくはユニバーサルシリアルバス（ＵＳＢ）のような他のインタフェースによって接続されてもよい。モニタまたは他のタイプの表示デバイスがまたビデオアダプタ１２３５のようなインタフェースを介してシステムバス１２０７に接続される。
【０１０２】
システム１２０１はモデム１１５４またはインターネットのようなネットワーク１１５２を通しての通信を確立するための他のネットワークインタフェース手段を含む。内部もしくは外付けであってよいモデム１１５４はシリアルポートインタフェース１２３１を介してシステムバス１２３に接続される。システム１２０１がローカルエリアネットワーク１１５８を介して遠隔コンピュータ装置１１５０（たとえば他のシステム１２０１）と通信するのを許容するために、ネットワークインタフェース１１５６がまた設けられてもよい（もしくはそのような通信はダイヤルアップもしくは他の通信手段のようなワイドエリアネットワーク１１５２もしくは他の通信経路を介してもよい）。システム１２０１はプリンタのような周辺出力装置および他の標準的な周辺装置を含む。
【０１０３】
一例では、ビデオアダプタ１２３５は、マイクロソフト(Microsoft)のダイレクトＸ７．０、または他のバージョンのような標準的な３Ｄグラフィクスアプリケーションプログラマインタフェースに基づいて発行された３Ｄグラフィクスコマンドに応答して、高速の３Ｄグラフィクスレンダリングを提供する３Ｄグラフィクスパイプラインチップセットを含んでもよい。１組のスピーカ１２３７はまた、バス１２０７によって与えられる音声コマンドに基づいて高品質ステレオ音声を生成するハードウェアおよび埋め込みソフトウェアを提供する従来の「音声カード」のような音声生成インタフェースを介して、システムバス１２０７に接続される。これらのハードウェア能力によって記憶媒体１３０５中にストアされているソフトウェアを再生するためにシステム１２０１に十分なグラフィクスおよび音声の速度性能を与えることができる。
【０１０４】
最も現実的かつ好ましい実施例であると現在考えられているものに関連してこの発明が説明されたが、この発明は開示された実施例に限定されるものではなく、逆に、特許請求の範囲内に含まれる種々の変形例や等価的な構成をカバーするように意図されていることを理解されたい。
【図面の簡単な説明】
【図１】図１はインタラクティブコンピュータグラフィクスシステムの実施例を示す全体図である。
【図２】図２は図１実施例のコンピュータグラフィクスシステムのブロック図である。
【図３】図３は図２に示す実施例のグラフィクス／オーディオプロセサのブロック図である。
【図４】図４は図３に示す実施例の３Ｄグラフィクスプロセサのブロック図である。
【図５】図４のグラフィクス／オーディオプロセサの例示的な論理フロー図である。
【図６】図６は例示的な内部フレームバッファおよびここで使用する２つのＲＧＢベースのフォーマットを示す。
【図７】図７はＹＵＶフォーマットデータをストアするために図６を再構成した例示的なフレームバッファを示す。
【図８】図８はピクセルエンジンと内部フレームバッファとの間の例示的なインタフェースを示す。
【図９】図９はコピーパイプラインの例示的なブロック図を示す。
【図１０】図１０はＲＧＢフォーマットからＹＵＶフォーマットへの例示的な変換を図解する。
【図１１】図１１は垂直スケーリングのために使用されるデータ経路の例示的なブロック図を示す。
【図１２】図１２はシステムの種々のコンポーネント間でデータがどのように移動するかを示すグラフィクスシステムのブロック図である。
【図１３】図１３は図９のコピーパイプラインのより詳細なブロック図を示す。
【図１４】図１４はこの発明の好ましい実施例に従ったエイリアス補正のために使用される例示的な７タップの垂直フィルタを示す。
【図１５】図１５はこの発明の好ましい実施例に従って使用されるエイリアス補正バッファリングのブロック図を示す。
【図１６】図１６はデフリッカのために使用される図１４の垂直フィルタを示す。
【図１７】図１７はこの発明の好ましい実施例に従って使用されるデフリッカバッファリングのブロック図である。
【図１８】図１８はこの発明の好ましい実施例に従った変換マトリクスを示す。
【図１９】図１９は主メモリ中にストアされているテクスチャタイルを示す。
【図２０】図２０はＹＵＶ４４４フォーマットからＹＵＶ４２２フォーマットへのダウンサンプリング変換を図解する。
【図２１】図２１はＹＵＶ４２２フォーマットからＹＵＶ４４４フォーマットへデータを変換するために使用される２変換の１つを図解する。
【図２２】図２２はＹＵＶ４２２フォーマットからＹＵＶ４４４フォーマットへデータを変換するために使用される２変換の他の１つを図解する。
【図２３】図２３は現在のピクセルフォーマットを定義する際に使用するための例示的な制御レジスタを示す。
【図２４】図２４はテクスチャコピーコマンドに関連して使用される例示的なレジスタを示す。
【図２５】図２５は表示コピーコマンドに関連して使用される例示的なレジスタを示す。
【図２６】図２６は他の互換性のある一実施例を示す図解図である。
【図２７】図２７は他の互換性のある他の実施例を示す図解図である。
【符号の説明】
５０  …インタラクティブ３Ｄコンピュータグラフィクスシステム
５４  …主ユニット
５６  …表示装置
１１０  …主プロセサ
１１２  …主メモリ
１１３  …外部フレームバッファ
１１４  …グラフィクス／オーディオプロセサ
１６４  …ビデオインタフェース
５００  …テクスチャユニット
５０２  …テクスチャメモリ
６００  …テクスチャ環境ユニット
６２２  …エイリアス補正／デフリッカ部
６２３  …ガンマ補正部
６２４  …ＲＧＢ−ＹＵＶ変換部
６２５  …Ｙスケーリング部
７００  …ピクセルエンジン
７０２  …内部フレームバッファ
【図１】
0004719363.tif 000022
【図２】
0004719363.tif 000023
【図３】
0004719363.tif 000024
【図４】
0004719363.tif 000025
【図５】
0004719363.tif 000026
【図６】
0004719363.tif 000027
【図７】
0004719363.tif 000028
【図８】
0004719363.tif 000029
【図９】
0004719363.tif 000030
【図１０】
0004719363.tif 000031
【図１１】
0004719363.tif 000032
【図１２】
0004719363.tif 000033
【図１３】
0004719363.tif 000034
【図１４】
0004719363.tif 000035
【図１５】
0004719363.tif 000036
【図１６】
0004719363.tif 000037
【図１７】
0004719363.tif 000038
【図１８】
0004719363.tif 000039
【図１９】
0004719363.tif 000040
【図２０】
0004719363.tif 000041
【図２１】
0004719363.tif 000042
【図２２】
0004719363.tif 000043
【図２３】
0004719363.tif 000044
【図２４】
0004719363.tif 000045
【図２５】
0004719363.tif 000046
【図２６】
0004719363.tif 000047
【図２７】
0004719363.tif 000048