JP4683760B2 - 再構成可能なピクセルフォーマットを有する組み込みフレームバッファを有するグラフィックスシステム - Google Patents
再構成可能なピクセルフォーマットを有する組み込みフレームバッファを有するグラフィックスシステム Download PDFInfo
- Publication number
- JP4683760B2 JP4683760B2 JP2001133574A JP2001133574A JP4683760B2 JP 4683760 B2 JP4683760 B2 JP 4683760B2 JP 2001133574 A JP2001133574 A JP 2001133574A JP 2001133574 A JP2001133574 A JP 2001133574A JP 4683760 B2 JP4683760 B2 JP 4683760B2
- Authority
- JP
- Japan
- Prior art keywords
- format
- bits
- frame buffer
- graphics
- data
- 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 - Fee Related
Links
Images
Landscapes
- Digital Computer Display Output (AREA)
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
- Image Processing (AREA)
Description
【発明の属する技術分野】
本発明は、コンピュータグラフィックスに関し、より特定的には、家庭用ビデオゲームプラットフォームのような対話式グラフィックスシステムに関する。さらにより特定的には、本発明は、再構成可能な組み込みフレームバッファを有するグラフィックスシステムであって、当該組み込みフレームバッファは、記憶するデータについての特定のピクセルフォーマットをフレーム毎に選択可能にするという利点がある、グラフィックスシステムに関する。
【0002】
【従来の技術】
我々の多くは、非常に現実感のある恐竜や宇宙人、アニメ化されたおもちゃといった空想的な生物を含む映像を目にしたことがある。このようなアニメーションは、コンピュータグラフィックスによって可能となっている。このような技術を用いて、コンピュータグラフィックス製作者は、各物体がどのように見えるか、および時間の経過に伴ってどのような外見上の変化が生じるかを特定することができる。そして、コンピュータが、物体をモデル化し、テレビやコンピュータ画面などのディスプレイに表示する。表示画像の各部分の着色や形状が、その光景に存在する個々の物体の位置や向き、各物体に対する照明方向、各物体の面の質感、その他様々な要素に基づいて確実にうまく行なわれるために必要な数多くのタスクは、コンピュータが引き受ける。
【0003】
コンピュータグラフィックスの生成は複雑なため、ほんの数年前まで、コンピュータで作成した3次元グラフィックスの活用は、高価で専門化されたフライトシミュレータやハイエンドグラフイックスワークステーション、スーパーコンピュータにほぼ限定されていた。人々は、コンピュータシステムによって生成された画像を、映画や制作費の高いテレビ広告において目にすることはあっても、グラフィックス生成を行なうコンピュータに実際に接することはできなかった。このような状況が変化したのは、ニンテンドウ64(登録商標)やパーソナルコンピュータで利用可能な各種の3Dグラフィックスカードなど、比較的安価な3Dグラフィックスプラットフォームの出現によるものである。今や、自宅や勤務先でも、比較的安価なコンピュータグラフィックスシステム上において、迫力のある3Dアニメーションやシミュレーションと対話的に接することが可能となっている。
【0004】
【発明が解決しようとする課題】
グラフィックス設計者がこれまで直面した課題の1つとして、様々なデータフォーマットを記憶して効率的かつ有利に処理可能な、強力だが安価なシステムを提供することがあった。グラフィックスシステムに用いられるグラフィックスチップは、グラフィックスパイプラインによって描画されたデータをそのまま記憶するためのローカルメモリまたはオンチップメモリを備えていた。グラフィックスチップによってデータが生成されると、データはローカルメモリから外部メモリに転送され、たとえばビデオインターフェース部が表示装置上に表示するために用いることができるようになる。この外部メモリは、典型的にはグラフィックスシステムのメインメモリの一部であり、外部フレームバッファ(XFB)と呼ばれる。ローカルメモリから外部フレームバッファへのデータ処理パスは、コピーパイプラインとも呼ばれる。
【0005】
ローカルメモリや外部メモリバッファは、グラフィックスシステムにおいて様々な機能を達成するための様々なデータフォーマットを有することが可能である。グラフィックスシステム設計者がこれまで直面した課題の1つとして、当該システム上で実行するアプリケーションによって有利で効率的にデータを利用できるようにするためには、ローカルメモリと外部フレームバッファとにおいて対応するデータフォーマットをどれにするかということがあった。この課題についての様々な解決策が提案されている。たとえば、グラフィックスシステムに様々なデータフォーマットを利用させて、システムの全体的な動作の改善または最大活用化を図ろうとした。このようなメモリやデータフォーマットに関連して、これまで何らかの努力が行なわれてきた一方で、さらなる改善が望まれる。特に、家庭用ビデオゲームシステムなどの高性能低コストのグラフィックスシステムに対して、さらなる改善が望まれる。
【0006】
【課題を解決するための手段および発明の効果】
本発明は、この課題に対処する方法として、グラフィックスシステムにおける組み込みフレームバッファに関して用いられる手法および機構を提供するものである。本発明は、対話型3Dビデオゲームプレイ用に設計されたシステム内で用いると特に有利である組み込みフレームバッファに対して、ピクセルフォーマットの組み合わせを提供する。本発明により、組み込みフレームバッファを再構成可能となり、たとえばアンチエイリアシングモードやデフリッカモード、YUV(すなわち、輝度/色度)モードなど様々なモードにおいて効率的に用いることができるようになる。これによって、システムの柔軟性が増し、様々なアプリケーションに対応できるようになる。たとえば、組み込みフレームバッファが与えられているグラフィックスハードウェアに対するコマンドを用いることによって、各モードにおいて望まれるピクセルフォーマットを選択することができる。
【0007】
本発明によれば、コピーパイプラインは、外部フレームバッファ内のデータを記憶する前に、組み込みフレームバッファからのデータをさらに処理するために用いられるという利点を有する。たとえば、コピーパイプラインは、データを有用な様々なフォーマットに変換するために用いることができ、それによって、たとえば、データを記憶するのに必要なメモリ量を減らしたり、および/またはグラフィックスシステムによって行なわれる今後の処理において用いられるデータを望ましいフォーマットで提供したりする。また、コピーパイプラインは、表示品質を向上したり、および/または表示特性を修正したりするように、フレームをさらに処理するために用いることもできる。
【0008】
本発明によって提供される局面によれば、グラフィックスプロセッサは、ピクセルデータを生成するためのピクセル処理回路と、ピクセルデータを受け取る組み込みフレームバッファとを含み、組み込みフレームバッファは、以下のいずれかのフォーマットで受け取ったピクセルデータを記憶するように、選択的に再構成可能である。
・RGBカラーおよびデプス(Z)、
・スーパーサンプルされたRGBカラーおよびデプス(Z)、および
・YUV(輝度/色度)。
【0009】
本発明の好ましい実施例によれば、RGBカラーおよびデプスは、48ビットフォーマットであって、24カラービットと、24デプス(Z)ビットとを含む。組み込みフレームバッファは、24カラービットが、赤8ビット、青8ビット、緑8ビット(RGB8)、または赤6ビット、緑6ビット、青6ビット、アルファ6ビット(RGBA6)を選択的に含むように、さらに構成可能である。好ましくは、スーパーサンプルされたRGBカラーおよびデプスは、96ビットフォーマットであり、各ピクセルについて3つのスーパーサンプル位置における16ビットカラーと16ビットデプスデータを含む。16ビットスーパーサンプルカラーデータは、好ましくは、赤5ビット、緑6ビット、青5ビット(R5G6B5)を含む。YUVフォーマットは、好ましくはYUVの比率が4:2:0のフォーマットである。組み込みフレームバッファ(EFB)は、ダイナミックランダムアクセスメモリ(DRAM)であってもよい。本発明の一実施例では、EFBは、たとえばモーゼス社によって提供されるような1TSRAMであり、SRAMとして機能するDRAMである。
【0010】
本発明の他の局面によれば、グラフィックスシステムにおいて組み込みフレームバッファを用いる方法が提供される。この方法は、カラーとZとを含むポイントサンプルされたピクセルデータ、カラーとZとを含むスーパーサンプルされたピクセルデータ、およびYUVフォーマットデータを記憶するように選択的に構成可能な組み込みフレームバッファを提供し、かつ、1つ以上のAPIコマンドなどインターフェースをグラフィックスシステムに提供して、プログラマがフレーム毎に組み込みフレームバッファについての特定の構成を確立できるようにする。
【0011】
【発明の実施の形態】
図1は、対話式3Dコンピュータグラフィックスシステム50の例を示す。システム50は、興味をそそる立体音響を伴う対話式3Dビデオゲームをプレイするのに用いることができる。また、これは、他の様々な用途に応用できる。
【0012】
本例において、システム50は、デジタル表現や3次元世界モデルを、対話的にリアルタイムで処理することができる。システム50は、世界のすべてまたは一部を、任意の視点から表示することができる。たとえば、システム50は、手持ちコントローラ52aおよび52bなどの入力装置からのリアルタイム入力に応答して、視点を対話的に変化させることができる。これにより、ゲームプレイヤは、世界の内部または外部の者から見た世界を見ることができる。システム50は、リアルタイム3D対話式表示を要求しないような用途(たとえば、2D表示生成および/または非対話式表示)に用いることもできるが、上質の3D画像を非常に高速に表示する能力は、現実感の高いおもしろいゲームプレイなどの視覚的な対話を生成するのに用いることができる。
【0013】
システム50を用いてビデオゲームなどのアプリケーションをプレイするためには、ユーザは、まず、ケーブル58を用いて、メインユニット54をユーザのカラーテレビ56などの表示装置に接続する。メインユニット54は、カラーテレビ56を制御するためのビデオ信号および音声信号を生成する。ビデオ信号は、テレビ画面59に表示される画像を制御するものであり、音声信号は、テレビのステレオスピーカ61Lおよび61Rを介して、音として再生される。
【0014】
また、ユーザは、メインユニット54を電源に接続する必要がある。この電源は、家庭の壁にある電気コンセントに差し込む従来のACアダプタ(図示せず)であってもよく、家庭用電流を、メインユニット54に電力供給するのに適切な、より低いDC電圧信号に変換する。他の態様として、電池を用いることも可能である。
【0015】
ユーザは、ハンドコントローラ52aおよび52bを用いて、メインユニット54を制御してもよい。たとえば、操作部60を用いて、テレビ56に表示されるキャラクタが3次元世界内で移動すべき方向(上または下、左または右、近または遠)を指定することができる。また、操作部60は、他の用途のための入力を与える(たとえば、メニュー選択、ポインタ/カーソル制御など)。コントローラ52は、様々な形態を取り得る。本例においては、図示された各コントローラ52は、ジョイスティック、押しボタン、および/または方向スイッチなどの操作部60を含む。コントローラ52のメインユニット54への接続は、ケーブルであってもよいし、電磁波(たとえば、電波または赤外線波)を介した無線であってもよい。
【0016】
ゲームなどのアプリケーションをプレイするためには、ユーザは、プレイしたいと思う当該ビデオゲームなどのアプリケーションを記憶する適切な記憶媒体62を選択して、当該記憶媒体をメインユニット54内のスロット64に挿入する。記憶媒体62は、たとえば、特に符号化されたおよび/または暗号化された光学および/または磁気ディスクであってもよい。ユーザは、電源スイッチ66を操作して、メインユニット54をオンして、記憶媒体62に記憶されたソフトウェアに基づいてビデオゲームなどのアプリケーションの実行を開始してもよい。ユーザは、コントローラ52を操作して、メインユニット54に入力を与えてもよい。たとえば、操作部60を操作すると、ゲームなどのアプリケーションが開始されてもよい。他の操作部60を動かすと、動くキャラクタを異なる方向へ移動させたり、3D世界内でのユーザの視点を変化させたりすることができる。記憶媒体62内に記憶された特定のソフトウェアに基づいて、コントローラ52上の様々な制御部60は、異なる時に異なる機能を実行することができる。
【0017】
<システム全体の電子回路例>
図2は、システム50の構成要素例のブロック図を示す。主な構成要素は以下のものを含む。
・メインプロセッサ(CPU)110、
・メインメモリ112、および
・グラフィックス&音声プロセッサ114
【0018】
本例においては、メインプロセッサ110(たとえば、拡張されたIBMPowerPC750)は、グラフィックス&音声プロセッサ114を介して手持ちコントローラ108(および/または他の入力装置)からの入力を受ける。メインプロセッサ110は、ユーザ入力に対話的に応答して、たとえば外部記憶媒体62から光学ディスクドライブなどの大容量記憶アクセス装置106を介して供給されるビデオゲームなどのプログラムを実行する。一例として、ビデオゲームプレイの場合、メインプロセッサ110は、様々な対話的な制御機能に加えて、衝突検出や動画処理を行うことができる。
【0019】
本例において、メインプロセッサ110は、3Dグラフィックスコマンドおよび音声コマンドを生成して、グラフィックス&音声プロセッサ114に送る。グラフィックス&音声プロセッサ114は、これらのコマンドを処理して、興味をそそる視覚的な画像をディスプレイ59に生成したり、興味をそそる立体音響をステレオスピーカ61Rおよび61Lなどの適切な音発生装置に生成したりする。
【0020】
本例のシステム50が含むビデオエンコーダ120は、グラフィックス&音声プロセッサ114から画像信号を受信して、当該画像信号を、コンピュータモニタや家庭用カラーテレビ56などの標準的な表示装置に表示するのに適切なアナログおよび/またはデジタルビデオ信号に変換する。また、システム50が含む音声コーデック(圧縮器/伸長器)122は、デジタル化された音声信号の圧縮および伸長を行い、また、必要に応じて、デジタルまたはアナログ音声信号形式への変換を行なってもよい。音声コーデック122は、音声入力をバッファ124を介して受信して、グラフィックス&音声プロセッサ114に与えて、処理を行なうことができる(たとえば、プロセッサが生成した他の音声信号とミキシングするおよび/または大容量記憶アクセス装置106のストリーミング音声出力を介して受信する)。本例のグラフィックス&音声プロセッサ114は、音声関連情報を音声タスク用に利用可能な音声メモリ126に記憶することができる。グラフィックス&音声プロセッサ114は、処理結果の音声出力信号を音声コーデック112に与えて、スピーカ61Lおよび61Rによって再生できるように、(たとえば、バッファ増幅器128Lおよび128Rを介して)伸長やアナログ信号への変換が行われる。
【0021】
グラフィックス&音声プロセッサ114は、システム50内にある様々な付加的な装置と通信を行うことが可能である。たとえば、パラレルデジタルバス130が、大容量記憶アクセス装置106および/または他の構成要素との通信に用いられてもよい。シリアル周辺機器バス132が、様々な周辺機器などの機器との通信に用いられてもよく、それらの機器としては、たとえば、以下のものを含む。
・プログラム可能な読み出し専用メモリおよび/またはリアルタイムクロック134、
・モデム136などのネットワークインターフェース(インターネットなどのデジタルネットワークのような、プログラム命令および/またはデータをダウンロードしたりアップロードしたりすることが可能な電気通信ネットワーク138に対して、システム50を接続するようなものであってもよい)、および
・フラッシュメモリ140。
【0022】
別の外部シリアルバス142が、付加的な拡張メモリ144(たとえば、メモリカード)などの装置との通信に用いられてもよい。コネクタが、様々な装置をバス130、132、および142を接続するために用いられてもよい。
【0023】
<グラフィックス&音声プロセッサの例>
図3は、グラフィックス&音声プロセッサ114の例のブロック図である。一例として、グラフィックス&音声プロセッサ114は、単一チップASIC(特定用途向けIC)であってもよい。本例において、グラフィックス&音声プロセッサ114は、以下のものを含む。
・プロセッサインターフェース150、
・メモリインターフェース/コントローラ152、
・3Dグラフィックスプロセッサ154、
・音声デジタル信号プロセッサ(DSP)156、
・音声メモリインターフェース158
・音声インターフェース&ミキサ160
・周辺機器コントローラ162、および
・ディスプレイコントローラ164。
【0024】
3Dグラフィックスプロセッサ154は、グラフィック処理タスクを行う。音声デジタル信号プロセッサ156は、音声処理タスクを行う。ディスプレイコントローラ164は、画像情報をメインメモリ112からアクセスして、それをビデオエンコーダ120に与えて、表示装置56に表示させる。音声インターフェース&ミキサ160は、音声コーデック122とインターフェースし、また、別のソースからの音声(たとえば、大容量記憶アクセス装置106からのストリーミング音声、音声DSP156の出力、および音声コーデック122を介して受信した外部音声入力)をミキシングすることも可能である。プロセッサインターフェース150は、メインプロセッサ110およびグラフィックス&音声プロセッサ114間のデータおよび制御インターフェースを提供する。
【0025】
メモリインターフェース152は、グラフィックス&音声プロセッサ114およびメモリ112間のデータおよび制御に関するインターフェースを提供する。本例において、メインプロセッサ110は、グラフィックス&音声プロセッサ114の一部であるプロセッサインターフェース150およびメモリインターフェース152を介して、メインメモリ112にアクセスする。周辺機器コントローラ162は、グラフィックス&音声プロセッサ114および上述の様々な周辺機器間におけるデータおよび制御に関するインターフェースを提供する。音声メモリインターフェース158は、音声メモリ126とのインターフェースを提供する。
【0026】
<グラフィックスパイプラインの例>
図4は、3Dグラフィックスプロセッサ154の例のより詳細な図である。3Dグラフィックスプロセッサ154は、特に、コマンドプロセッサ200と、3Dグラッフィックスパイプライン180とを含む。メインプロセッサ110は、データのストリーム(たとえば、グラフィックスコマンドストリームやデータリスト)をコマンドプロセッサ200に伝達する。メインプロセッサ110は、メモリの待ち時間を最小限にするための2レベルキャッシュ115を有し、また、グラフィックス&音声プロセッサ114向けの未キャッシュのデータストリームのためのライトギャザリングバッファ111も有する。ライトギャザリングバッファ111は、部分キャッシュラインを集めて完全キャッシュラインとし、このデータを1キャッシュラインずつグラフィックス&音声プロセッサ114に送出して、バスが最大限に利用できるようにする。
【0027】
コマンドプロセッサ200は、メインプロセッサ110から表示コマンドを受信し、これを解析して、処理に必要な付加データを共通メモリ112から取得する。コマンドプロセッサ200は、頂点コマンドのストリームをグラフィックスパイプライン180に与えて、2Dおよび/または3D処理および描画を行う。グラフィックスパイプライン180は、これらのコマンドに基づいて画像を生成する。生成された画像情報は、メインメモリ112に転送されて、表示制御部/ビデオインターフェース部164によってアクセスできるようにしてもよく、それによって、ディスプレイ56にパイプライン180のフレームバッファ出力が表示される。
【0028】
図5は、グラフィックスプロセッサ154の論理フロー図である。メインプロセッサ110は、グラフィックスコマンドストリーム210と、表示リスト212と、頂点アレイ214とをメインメモリ112に記憶してもよく、バスインターフェース150を介してポインタをコマンドプロセッサ200に渡す。メインプロセッサ110は、メインメモリ110内に割り当てた1つ以上のグラフィックス先入れ先出し(FIFO)バッファ210にグラフィックスコマンドを記憶する。コマンドプロセッサ200は、以下のものを取り出す。
・グラフィックスコマンドを受信およびバッファリングして、同期/フロー制御およびロードバランシングを行なうオンチップFIFOメモリバッファ216を介して、メインメモリ112からのコマンドストリーム、
・オンチップ呼び出しFIFOメモリバッファ218を介して、メインメモリ112からの表示リスト212、および
・コマンドストリームからの、および/または頂点キャッシュ220を介してメインメモリ112内の頂点アレイ214からの頂点属性。
【0029】
コマンドプロセッサ200は、コマンド処理動作200aを行って、属性型を浮動小数点形式に変換し、その結果の完全な頂点ポリゴンデータをグラフィックスパイプライン180に渡して、描画/ラスタライズする。プログラム可能なメモリ調停回路130(図4参照)は、グラフィックスパイプライン180、コマンドプロセッサ200、および表示制御部/ビデオインターフェース部164の間で共通のメインメモリ112に対するアクセスを調停する。
【0030】
図4に示すように、グラフィックスパイプライン180は、以下のものを含んでもよい。
・変換部300、
・セットアップ/ラスタライザ400、
・テクスチャ部500、
・テクスチャ環境部600、および
・ピクセルエンジン部700。
【0031】
変換部300は、2Dおよび3D変換などの様々な処理300aを行う(図5参照)。変換部300は、変換処理300aに用いられるマトリックスを記憶する1以上のマトリックスメモリ300bを含んでもよい。変換部300は、頂点毎に入力される形状を、オブジェクト空間から画面空間へ変換し、入力されるテクスチャ座標を変換して投影テクスチャ座標を計算する(300c)。変換部300は、ポリゴンクリッピング/カリング(300d)を行ってもよい。また、変換部300bによって行われるライティング処理300eによって、一実施例においては、8個の独立した光に対するライティング計算が頂点毎に行われる。また、変換部300は、エンボス型のバンプマッピング効果を出すためのテクスチャ座標生成(300c)や、ポリゴンクリッピング/カリング処理(300d)を行うこともできる。
【0032】
セットアップ/ラスタライザ400は、セットアップ部を含む。セットアップ部は、頂点データを変換部300から受信して三角形セットアップ情報を1以上のラスタライザ(400b)に送信して、エッジラスタライズ、テクスチャ座標ラスタライズ、およびカラーラスタライズを行う。
【0033】
テクスチャ部500(オンチップテクスチャメモリ(TMEM)502を含んでもよい)、テクスチャリング関連の様々なタスクを行う。タスクには、たとえば、以下のものが含まれる。
・メインメモリ112からテクスチャ504を取り出す、
・たとえばマルチテクスチャ処理、ポストキャッシュテクスチャ伸展、テクスチャフィルタリング、エンボス、投影テクスチャを用いたシャドウおよびライティング、ならびにアルファ透明およびデプスを用いたBLITを含む、テクスチャ処理(500a)、
・バンプマッピング、疑似テクスチャ、テクスチャタイリング効果のためのテクスチャ座標変換量を計算するバンプマップ処理(500b)、および
・間接テクスチャ処理(500c)。
【0034】
テクスチャ部500は、透過されたテクスチャ値をテクスチャ環境部600に出力して、テクスチャ環境処理を行なう(600a)。テクスチャ環境部600は、ポリゴンとテクスチャカラー/アルファ/デプスをブレンドし、テクスチャフォグ処理(600b)をも行って、インバースレンジに基づくフォグ効果を達成する。テクスチャ環境部600は、複数の段階を提供して、たとえばカラー/アルファ・モジュレーション、エンボス、ディテールテクスチャリング、テクスチャスワッピング、クランピング、およびデプスブレンディングに基づいて、他の興味をそそる様々な環境関連の機能を行うことができる。
【0035】
ピクセルエンジン700は、デプス(z)比較(700a)およびピクセルブレンディング(700b)を行う。本例において、ピクセルエンジン700は、組み込み(オンチップ)フレームバッファメモリ702にデータを記憶する。グラフィックスパイプライン180は、1以上の組み込みDRAMメモリ702を含んでもよく、フレームバッファの内容および/またはテクスチャ情報をローカルに記憶する。現在有効な描画モードによっては、Z比較700a’は、グラフィックスパイプラインの早い段階において行われることもできる(たとえば、アルファスレッショルディングが不要であれば、z比較は早い段階で行うことができる。)。
【0036】
ピクセルエンジン700は、コピー処理700cを含む。これは、オンチップフレームバッファの内容をメインメモリに周期的に書き込むものであり、表示/ビデオインターフェース部164がアクセスできるようにする。このコピー処理700cを用いて、組み込みフレームバッファ702の内容からテクスチャまでを、メインメモリ112にコピーすることもでき、動的なテクスチャ合成効果が得られる。アンチエイリアシングやその他のフィルタリングは、コピーアウト処理中に行うことができる。(最終的にはメインメモリ112に記憶される)グラフィックスパイプライン180のフレームバッファ出力は、フレーム毎に、表示/ビデオインターフェース部164によって読み出される。表示制御部/ビデオインターフェース164は、ディジタルRGBピクセル値を与えて、ディスプレイ102に表示する。
【0037】
<組み込みフレームバッファの構成例>
図4に一般的に示すように、組み込みフレームバッファ702は、データをグラフィックスパイプライン180から受け取る。グラフィックスパイプラインは、RGB(A)フォーマットのプリミティブを描画する。これにより、以下で詳細に説明するように、組み込みフレームバッファ702は、ピクセルデータを様々なRGB(A)フォーマットで記憶するように構成することができる。図4からわかるように、プロセッサインターフェース150は、グラフィックスパイプライン180にデータを供給するためだけでなく、メインプロセッサ(CPU)110がデータを直接組み込みフレームバッファにロードすることができるようにするためにも用いることができる。このCPUによる組み込みフレームバッファの直接ロードにより、RGB型フォーマット以外のピクセルフォーマットも組み込みフレームバッファに送ることができ、これによって、システムの柔軟性が増し、様々なアプリケーションに対応できるようになる。特に、プロセッサインターフェース150は、メインプロセッサ110がYUVフォーマット(すなわち、輝度/色度フォーマット)のピクセルデータを、たとえば光ディスクなどの他の記憶媒体から組み込みフレームバッファにロードすることができるようにする。組み込みフレームバッファに入ると、YUVフォーマットデータは、コピーパイプラインを用いることによって、様々なテクスチャフォーマットでメインメモリにコピーアウトでき、後続の描画処理中に、テクスチャ環境部(TEV)によってテクスチャとして用いられる。よって、本発明によれば、組み込みフレームバッファは、様々なRGB(A)フォーマットおよびYUVフォーマットに再構成可能である。このようなフォーマットのそれぞれについて、以下詳細に説明する。
【0038】
<組み込みフレームバッファ用のRGB(A)フォーマットの例>
この例においては、組み込みフレームバッファ(EFB)は、約2MBのメモリ容量を有する。フレームバッファの最大ピクセル幅および高さは、各ピクセルのサイズによって決定される。本発明によれば、図6に示すように、2つの異なるRGBピクセルサイズを、組み込みフレームバッファ702内のデータに対して用いることができる。これらのサイズは、
・48ビットのカラーおよびZ、ならびに
・96ビットのスーパーサンプルされたカラーおよびZ
である。
【0039】
<48ビットピクセルサイズの構成>
組み込みフレームバッファ(EFB)用の48ビットフォーマットは、好ましくはアンチエイリアシングを行なわない場合に用いられ、以下の特徴を有する。
・24ビットのカラー(アルファのない8/8/8、または6ビットのアルファありで6/6/6)
・24ビットのZ
【0040】
このアンチエイリアシングを行なわないモードにおいて、48ビットフォーマットは、本例では、640x528の最大解像度に対応する。よって、幅は、0〜640の間でなければならず、EFBのストライドは640ピクセルに固定される。このアンチエイリアシングを行なわないモードは、各ピクセルにつき単一のポイントサンプルに基づいている。上に示すように、各ピクセルのポイントサンプルは、24ビットのカラー値と24ビットのZ値が与えられる。カラー値は、アルファを用いない場合は赤緑青それぞれ8ビットを有してもよく、赤緑青アルファそれぞれ6ビットを有してもよい。
【0041】
<96ビットピクセルサイズの構成>
96ビットのスーパーサンプリングピクセルフォーマットは、好ましくはアンチエイリアシングを行なう場合に用いられ、以下の特徴を有する。
・3サンプル分の16ビットのカラー(赤5ビット、緑6ビット、青5ビット、アルファなし)
・3サンプル分の16ビットZ
【0042】
この96ビットフォーマットは、640x264の最大解像度に対応する。幅は、好ましくは0〜640の間であり、EFBの性能は640ピクセルに固定される。
【0043】
本例においては、96ビットは、アンチエイリアシングを行なう場合に用いられる。しかしながら、このフォーマットは、アンチエイリアシング以外でも、各ピクセルにつき3つのスーパーサンプルが望ましいような機能を達成するために用いてもよい。言い換えると、48ビットの構成においては、各ピクセルにつき単一のポイントサンプルを用いるのに対して、96ビットフォーマットは、各ピクセルにつき3つのサンプル(スーパーサンプル)を記憶する機能を提供する。
【0044】
以上からわかるように、48ビットと96ビットとの間では、固有のトレードオフがある。96ビットのアンチエイリアシングフォーマットは、ポリゴンの輪郭や交点の画質を向上させるが、性能やZの品質は犠牲となる。96ビットスーパーサンプリングEFBフォーマットは、48ビットポイントサンプルピクセルの2倍のメモリが必要となる。他のモードでは、Zバッファリング精度は24ビットなのに対し、このモードでは16ビットに減少する。また、本例において、アンチエイリアシングは、最大フィル速度が800Mピクセル/秒から400Mピクセル/秒に減少する。しかしながら、テクスチャ環境部(TEV)において1段階以上が行なわれている場合には、この減少はわからなくなる。というのは、本例においては、2つのTEV段階によっても、フィル速度は400Mピクセル/秒に減少するからである。
【0045】
実施例において、アンチエイリアシング起動中の描画速度は、組み込みフレームバッファ702の帯域制限により、2ピクセル/クロックに減少する。しかしながら、本実施例においては、2つ以上のテクスチャがオンされている場合、ピクセルクワッドがピクセルエンジン700に送られる速度は、2クロックにつき1ピクセルと同等かまたはそれ以下に落ち込む。この場合、アンチエイリアシングがオンされていることは、フィル速度に影響を与えない。よって、特定の光景の形状が限定されている場合には、アンチエイリアシングは、描画性能に悪い影響を与えない。その一方で、特定の光景のフィルが限定されている場合には、ポイントサンプルモードを用いる場合と異なり、アンチエイリアシングを起動することよって生じる悪影響を描画モードがかなり受けることがある。同一のアプリケーションは、異なる光景や異なる画像に対して、それらの形状が限定されているか、フィルが限定されているかに基づいて、または特定の光景や画像について要求される画質に基づいて、アンチエイリアシングを起動および停止させることができる。たとえばアンチエイリアシングを起動および停止させるために、フレームバッファ内のピクセルフォーマットをフレーム毎に動的に変化させることができることにより、アプリケーションプログラマが画質と速度性能とのいずれを取るかを決めることができるという高い柔軟性が提供される。
【0046】
<96ビット構成を用いたアンチエイリアシング>
本発明の関連して用いられる、特定の好ましいアンチエイリアシング方法および機構は、共通して所有する同時係属出願番号09/726,226、出願日2000年11月28日、名称「グラフィックスシステムにおけるアンチエイリアシングのための方法および装置」に開示されており、本願にすべて援用されている。このアンチエイリアシングの簡単な説明を以下に示し、これにより、組み込みフレームバッファ用の96ビットピクセルフォーマットをより完全に理解されるようになるであろう。
【0047】
アンチエイリアシングの実施例によれば、アンチエイリアシングは、2つの主な局面に分かれて行なわれる。第1局面では、ピクセル毎に3つのスーパーサンプルと96ビットピクセルEFBフォーマットとを用いて、データを組み込みフレームバッファにロードする。第2局面では、組み込みフレームバッファからデータを読み出し(コピーアウト)して、そのデータに対して、コピーパイプラインによってさらに処理が行なわれる。96ビットフォーマットは、アンチエイリアシングの第1局面を達成する際に特に利点を有するが、他の適切な目的のためにも用いることもできる。
【0048】
96ビットフォーマットを用いた本アンチエイリアシング例において、アンチエイリアシングの第1局面が生じるのは、ラスタライザが組み込みフレームバッファ(EFB)702にエッジラスタライズを行なったときである。好ましくは、本ラスタライザは、エッジ&zラスタライザであって、x、y、zおよびカバレージマスク値を、現在描画している三角形などのプリミティブに含まれる各可視ピクセルクワッド内にある、プログラム可能なスーパーサンプル位置に生成するラスタライザである。ピクセルクワッドは、各ピクセル内に3つのプログラム可能なサブピクセル位置を有する。ピクセルクワッドは、2x2構成の4ピクセルを含む。クワッドの各ピクセル内には、3つのスーパーサンプル位置が、プログラム可能に選択および指定される。好ましくは、プログラマは、グローバルレジスタに書き込むことによって、サブサンプル位置を設定できる。本実施例においては、各ピクセルの各スーパーサンプル位置はプログラム可能であるので、各クワッドについての特定のサンプル位置は、特定の用途に応じて変更可能である。一方、他の実施例においては、特に最適なマルチサンプル位置の値を固定して(たとえば、ハードウェアに設定)、アプリケーションプログラマが煩わされないようにすることも可能である。よって、本実施例においては、位置はプログラム可能であるが、物理的に組み込まれた別のパターンをプログラム可能性と引き換えに用いることも可能である。いずれのパターンが選ばれても、フレーム内の一定の隣接ピクセルに渡って繰り返される。
【0049】
あるフレームに関してすべてのプリミティブが描画されると、組み込みフレームバッファは、フレーム全体についてのスーパーサンプルされたピクセル情報を含むことになる。各ピクセルに対して3つのスーパーサンプルが与えられることから、各サンプルは、16ビットのカラー値と、16ビットのz値を含み、各ピクセルは、組み込みフレームバッファ内において96ビットで表現される。そして、組み込みフレームバッファは、コピーパイプラインによって利用可能となり、アンチエイリアシングの第2局面が実行できるようになる。この第2局面については、コピーパイプラインに関連して以下で詳細に述べる。アンチエイリアシングについては、上記の同時係属出願にさらに詳述されている。
【0050】
<YUV組み込みフレームバッファ構成>
図7は、YUV(輝度/色度)フォーマットのピクセルデータを記憶するように設計された組み込みフレームバッファ702のさらなる構成を示す。本フレームバッファは、たとえば、システムが対応しているMPEG規格(たとえば、MPEG2)において動き補償を可能にする。このYUV構成において、カラーバッファは、好ましくは分割されて、YUV4:2:0フレームについてのY(720x576)、U(360x288)、V(360x288)の画像平面を記憶する。カラーバッファのこの分割は、好ましくは以下のように割り当てる。
・1024x640 8ビットY画像、
・528x320 8ビットU画像、
・528x320 8ビットV画像
【0051】
画像の好ましい位置は、図7に示す。YUVデータは、好ましくは、メインプロセッサによって、たとえば光ディスクなどの外部から提供される媒体から、またはグラフィックスパイプライン以外の適切なソースから、組み込みフレームバッファに記憶される。なお、グラッフィクスパイプラインは、単一成分のY、U、またはV画像を描画することはできるが、3つの成分からなるYUVピクセルを描画することはできない。以下に詳述するように、組み込みフレームバッファ内のYUVデータを、コピーパイプラインによってさらに処理して、表示するか、またはグラフィックスパイプラインによって将来使われるときのためにテクスチャデータに変換することができる。
【0052】
<ピクセルフォーマットコマンドの例>
上述のように、組み込みフレームバッファ702は、RGB(A)ピクセルフォーマット(48ビットおよび96ビット)およびYUVフォーマットという2つのフォーマットに対応して、選択的に構成可能である。望ましいピクセルフォーマットは、APIを用いて、フレーム毎に設定できるのが好ましい。この目的のためのAPI関数は以下の通りである。
【0053】
<GXSetPixelFormat>
引数:
GXPixelFormats Format //フレームバッファにピクセルフォーマットを設定
GXZCmprFormats ZCmpr //16ビットzに圧縮フォーマットを設定
GXBool //テクスチャの前にZ比較
【0054】
この関数は、組み込みフレームバッファのフォーマットを設定する。この関数は、いずれの描画動作も実行される前に、呼び出される。ピクセルフォーマットは、本実施例のフレームの中ほどでは変更できない。16ビットZ値(マルチサンプルまたはアンチエイリアシングモード)は、非圧縮も圧縮も可能である。圧縮された値は、精度および範囲が向上する。Ztopフラグを用いて、テクスチャマッピングまえのデプス比較(テクスチャ前Z)を行うこともできる。これにより、テクスチャ帯域幅が向上する。なぜならば、取り出したりフィルタリングすべきテクセルが減少するからである。
【0055】
<ピクセルエンジンおよび組み込みフレームバッファ間のインターフェース>
ピクセルエンジン700および組み込みフレームバッファ702間のインターフェースの例を図8に示す。好ましくは、図8に示すように、4つ組み込みフレームバッファのコピー(702a、702b、702c、および703d)があり、そのうちの2つはカラー用、2つはZ用である。本例において、ピクセルエンジンからの組み込みフレームバッファに対する読み出しおよび書き込みアクセスによって、96ビットのデータまたは96クワッドのカラーおよびZが転送される。各バッファの中心には、4つのアドレス/制御および読み出しバスがある。ZチャンネルAおよびBは、書き込みポート703aを共用するのが好ましく、カラーチャンネルAおよびBは、書き込みポート703bを共用するのが好ましい。組み込みフレームバッファは、好ましくは、最大フィル速度が毎秒800Mピクセルで、1クロック当たり4ピクセルをブレンドするのに充分な帯域を有する。組み込みフレームバッファの最大サイズは、640x528x24bカラーおよび24bZである。組み込みフレームバッファは、シングルバッファであり、完成した画像を表示するためにフレームバッファに転送するように設計されている。ダブルバッファリングされた表示は、このようにして達成される。図8に示すアドレス/制御読み出し書き込みバスは、以下の表によって定義される。
【表1】
【0056】
<コピーアウト処理およびパイプラインの例>
コピーアウト処理は、本例においてはコピーパイプラインと呼ばれるものを通じて実現される。本処理が用いられるのは、組み込みフレームバッファ(EFB)からのピクセルデータをさらに処理して、ビデオインターフェースによって表示される表示データとして、またはグラフィックスパイプライン(図1参照)によって後に利用する際のテクスチャデータとして、メインメモリ112の外部フレームバッファ(XFB)113に、選択されたフォーマットでフレームデータを書き込むためである。EFB内のRGB(A)またはYUV420データは、メインメモリのYUV422、フィールド、またはフレームにコピーアウトできる。YUV422は、走査線順にコピーアウトされる。走査線間にはメモリバイトのスキップを許可するストライドがある。Y8は、最下位アドレスであり、続いてU8、Y8、そしてV8となる。YUVフォーマットでのコピーは、メインメモリで使用されるメモリ量を1/3に削減する。
【0057】
コピーパイプラインの一般的なブロック図は、いずれの2つのRGB(A)ピクセル構成においてもEFBからのデータ処理に主に関連するので、図9に示されている。図9に示すように、このようなコピーパイプラインは、アンチエイリアス/デフリッカ部622、ガンマ補正部623、RGBからYUVへの変換部624、およびYスケール部626を含む。
【0058】
EFB全体の構成(すなわち、RGB(A)およびYUV)についてのコピーアウトパイプラインのより完全なブロック図は、図13に示されている。図12は、システムの様々な構成要素間でデータが通ることが可能な様々なパスを示す。図13に示すように、本例においては、フィルタリング処理に必要なバッファリング量を減らすために、コピー矩形は32x32タイルに分割されている。このタイルは、2つのタイルバッファ625aょび625bを用いてダブルバッファリングされる。これによって、一方のタイルはフィルされ、他方のタイルは読み出され、処理されて、メインメモリに送られる。好ましくは、矩形は分割されてY方向の複数のタイルとなり、それに続いてX方向の複数のタイルとなる。1つのタイル内において、ある範囲の4ピクセルが、1周期毎に処理される。ピクセルクワッドは、Y順に処理され、次にX順に処理される。
【0059】
より特定的には図13を参照して、特定のコピーパイプライン処理は、組み込みフレームバッファ内のデータの特定の構造、またはプログラマが望むコピーアウト処理結果に依存する。上述のように、カラーバッファは、RGB8、RGBA6、R5G6B5(アンチエイリアシング)、またはYUV420データを含んでもよく、また、Zバッファは、24ビットZまたは3x16ビットZ(アンチエイリアシング)を含んでもよい。図18は、本例における様々なフォーマットについての好ましい変換マトリックスを示す。
【0060】
組み込みフレームバッファが上述のRGB(A)フォーマットのいずれかの対応して構成され、またそのフォーマットのデータを含む場合には、コピーパイプラインは、アンチエイリアシング/デフリッカリング処理を行う。この処理は、好ましくは、図13のブロック628に示す、プログラム可能な7タップの垂直フィルタを用いて行われる。以下に詳細に説明するように、このフィルタは、複数のピクセルからのポイントサンプルまたはスーパーサンプルされた(アンチエイリアシング)ピクセルデータをブレンドし、その結果得られたピクセルカラーを出力する。ブレンドが行われると、ブロック623に示すようなガンマ補正が行われる。その後、特定のアプリケーションが要求するのであれば追加の変換を行うこともでき、RGBデータはYUV444フォーマットに変換される(ブロック641)。もしデータがブロック644においてYUV444に変換されたのであれば、ブロック644においてまた別の変換を行うこともでき、YUV444はYUV422に変換される。コピーパイプラインが表示に使われるのであれば、このYUV422への変換は、データをメインメモリの表示フォーマット、すなわち本例においてはYUV422にするために行うことができる。その後、タイルデータは、上述のタイルバッファ625aおよび625bにバッファされる。その後、タイルを表示しようとする場合には、Yスケーリングがブロック626において行われ、スケールされたデータがYUV422フォーマットでメインメモリにコピーアウトされ(ブロック642)、ビデオインターフェースによって用いられる。一方、データをテクスチャのために用いようとする場合には、Yスケーリングは行わない。その代わりに、ブロック640において、所望するテクスチャにタイルデータをフォーマットして、後続のグラフィックスパイプライン処理に用いることができるテクスチャタイルとして、メインメモリに送る。本例において取り得るテクスチャフォーマットの例は、図18に示されており、テクスチャコピーコマンドおよびレジスタビット定義に関連して以下に列挙されている。
【0061】
組み込みフレームバッファが上述のYUV420フォーマットに対応して構成され、またそのフォーマットのデータを保持している場合には、コピーパイプラインは、図13下部に示す処理とはやや異なる処理を行う。特定的には、カラーバッファからのYUV420データは、まずYUV444フォーマットに変換される(ブロック646)。その後、ブロック648において、YUV444からRGBへの追加の変換を行うことも可能である。それ以降は、データパスは、RGB(A)構成に関して上述したのと同様である。すなわち、タイルは、必要に応じて、ブロック644においてYUV422に変換され(もしYUV444に既に変換されていれば)、その後、バッファされ、そして、スケールして表示データとしてメインメモリに送られるか、もしくは所望のテクスチャフォーマットに変換されてメインメモリにテクスチャタイルとして記憶される。図19は、テクスチャタイル(たとえば、1〜4)がメインメモリにどのように記憶されるかを示す。
【0062】
テクスチャは、GXCopyTex関数を用いて組み込みフレームバッファ(EFB)をメインメモリにコピーすることによって作成される。これは、動的なシャドウマップ、環境マップ、動きぼかし効果を生み出す場合に役に立つ。
【0063】
圧縮テクスチャ(GX_TF_CMPR)を除くすべての非カラーインデックステクスチャタイプは、コピー中に作成可能である。テクスチャコピー処理は、テクスチャを正確にタイリングおよびフォーマットするので、ハードウェアから直接読み出すことができる。低レベル詳細(LOD)テクスチャを作成するために、必要に応じて、ボックスフィルタをEFB内の画像に適用することもできる。以下の表に、テクスチャコピーフォーマットおよび変換についての解説を示す。
【表2】
【0064】
通常は、ソースおよび宛先矩形は同一のサイズである。しかしながら、合成して大きなテクスチャを作るような小テクスチャをコピーする場合は、ソースおよび宛先矩形は、異なってもよい。フォーマットGX_TF_AF8は、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ビットカラーの最小桁のビット(LSB)は切り捨てられる。カラーテクスチャが、GX_PF_RGB565_Z16などの低解像度のピクセルフォーマットからGX_TF_RGB8などの高解像度のピクセルフォーマット変換される場合には、各ピクセルの最上位ビット(MSB)は、各テクセル内のLSBに複製される。この変換処理により、推定誤差は均等に分散され、各テクセルが最小値または最大値を示すことが可能となる。通常は、アルファを含むフォーマットGX_PF_RGBA6_Z24のテクスチャをEFBからコピーするだけである。アルファを含むテクスチャをアルファなしでEFBからコピーする場合は、アルファは、最大値に設定される。GX_TF_Z24X8フォーマットは、24ビットZバッファを32ビットテクスチャ(GX_TF_RGBA8と同等)にコピーして用いることが可能である。テクスチャをコピーするためには、アプリケーションは、好ましくは、まず、コピーすべきテクスチャと同じサイズのバッファをメインメモリ内に割り当てる。このサイズは、たとえばGXGetTexBufferSize関数を用いて決定することができる。この関数は、計算時において、テクスチャパディングやテクスチャタイプを考慮するのが望ましい。
【0065】
以上の説明からわかるように、本発明に係るコピーアウト処理によって、様々なデータフォーマットが使用可能となり、また、様々な変換/処理が可能となり、それにより、高い柔軟性と機能性を提供できる。YUVフォーマットに対応し、テクスチャとしてコピーアウトできることによって、コピーパイプラインを、たとえば、メインプロセッサが動き補償を行うのを補助するために用いることができる。上述のコピーアウト処理は、データを組み込みフレームバッファから外部フレームバッファに表示用またはテクスチャとして効率的に移動したり処理したりするために用いられるだけでなく、たとえば、YUVカラー空間を用いるMPEGデータに基づいてテクスチャコピー機能を用いることにより、ストリーミングビデオをポリゴンに重畳することもできるようになる。
上述の各コピーパイプライン処理を、以下に詳述する。
【0066】
<コピーアウト中のアンチエイリアシングの例>
既に簡単に述べたように、アンチエイリアシングが所望され、かつ組み込みフレームバッファが96ビットアンチエイリアシングピクセルデータ(たとえば、R5G6B5およびZ16))に対応して構成されている場合、アンチエイリアシングの第2段階がコピーアウト中に行われる。特定的には、アンチエイリアシングの第2段階は、組み込みフレームバッファ(EFB)702から外部フレームバッファ(XFB)113にコピーアウト中に、アンチエイリアシング/デフリッカ部622によって行われる。
【0067】
コピーパイプラインのアンチエイリアシング/デフリッカリング部622は、好ましくは、プログラム可能な重み(W0〜W6)を各スーパーサンプルについて有する7タップ垂直フィルタ628(図14参照)を用いる。垂直フィルタが対応するのは、好ましくは、3垂直ピクセル領域である。よって、アンチエイリアシングモードにおける現在のピクセルNについてのカラーを決定する場合、現在のピクセルのすぐ上のピクセル内のスーパーサンプル(N−1)と、現在のピクセルのすぐ下のピクセル内のスーパーサンプル(N+1)とが用いられるのが好ましい。好ましくは、2つの周辺ピクセルそれぞれのうち現在のピクセルから最も遠いサンプルは、フィルタリング処理には用いられない。よって、3つのピクセルは、フィルタ用に9つのサンプルを有するものの、本実施例のブレンディング処理には、9つのサンプルのうちの7つしか使われない。処理結果の垂直フィルタ出力によって、単一の画面ピクセルカラー値(N’)が与えられ、最終的に外部フレームバッファにコピーされて、表示装置56に表示される。
【0068】
フルラインバッファの使用を避けるため、コピー処理は、好ましくは、アンチエイリアシング(AA)バッファリングを用いる。ここでは、幅(X軸))が32ピクセルのストリップで、コピーが行われる。本例のAAバッファリングにおけるストリップバッファのデータパスを、図15のブロック図に示す。
【0069】
アンチエイリアシング/デフリッカリング技術および機構に関する詳細については、上記の共通して所有する同時係属出願に記載されている。本発明は、組み込みフレームバッファおよびコピーアウト処理全体に向けられたものであり、特定のアンチエイリアシング処理を用いるわけではないので、アンチエイリアシングに関するこれ以上の詳細は記載しない。
【0070】
<コピーアウト中のデフリッカフィルタリングの例>
アンチエイリアシングを行わないモードにおいても同じ垂直フィルタをコピーアウト中に用いて、ポイントサンプルされたピクセルを用いたデフリッカリング機能を達成することができる。このモードにおいては、サンプルパターンはプログラム可能ではない。図16に示すように、ハードウェアは、サンプル位置としてピクセルの中央のみを用いる。各ポイントサンプルの重み付け係数(W0〜W6)は、アンチエイリアシングフィルタと同様、プログラム可能である。よって、垂直フィルタ628aは、デフリッカモードでは、現在のピクセルから3つの入力(中央のみ)と、2つの垂直方向にある周辺ピクセルそれぞれから2つの入力(中央のみ)を用いることによって、フィルタリング処理のために7つの値を得る。プログラム可能な重み付け係数は、7つのサンプルに適用され、その結果は最終的なピクセルカラー(N’)を得るために足し合わされる。好ましくは、デフリッカリングフィルタとAAフィルタとは共用される。AAデータパスで用いられる4つのストリップバッファ(図15参照)が、クワッドストリップを記憶するためにも用いられる。デフリッカバッファリングにおけるデータパスのブロック図の例を、図17に示す。デフリッカリングに関するこれ以上の詳細は、上記の同時係属出願に記載されている。
【0071】
<コピーアウト中のRGBからYUVへの変換例>
輝度/色度(YUV)フォーマットは、RGBと同一の画質ピクセルを記憶するが、メモリは2/3しか必要としない。したがって、外部フレームバッファ(XFB)が使用するメインメモリ量を減らすために、コピー処理中に、EFB内のRGB(A)フォーマットは、XFB内のYUVフォーマットに変換される。この変換は、RGB−YUV部624によって行われる。変換処理は、図10に図示されている。RGBデータは、まずYUV444フォーマットに変換され、その後、YUV422にダウンサンプルされて、表示データとしてXFBに記憶される。
【0072】
<コピーアウト中の垂直(Y)スケーリング>
コピーパイプライン内のYスケール部626は、描画された画像を垂直方向に任意にスケーリング可能である。水平スケーリングは、好ましくはビデオ表示中に行われる。Yスケール係数は、APIで定義され、コピーすべき線数を決定し、また、適切なXFBサイズを計算するために用いることができる。本実施例に係る好ましい垂直スケーリングのブロック図を図11に示す。垂直スケーリングは、2つの隣接するストリップ間の8ビットの線形補間(lerp)を用いて行われる。線形補間係数は、1.0から開始する。走査線が出力されると、固定点(1.8)値が線形補間係数に加算される。線形補間係数からの繰り上がりによって、新しい走査線が用いられることが知らされる。2つのストリップバッファ626aおよび626bを用いて、2つの部分走査線が互いに上位にあるように保持する。バッファA(626a)は、すべての入力ストリップを偶数のy値で保持し、バッファB(626b)は、すべて奇数のy値ストリップを保持する。
【0073】
ガンマ補正部623は、カラー輝度値の線型変化に対する目(時にはモニタ)の非線型応答を補正するために用いられる。ガンマとしては、3つの選択肢が与えられる(たとえば、1.0、1.7、および2.2)。デフォルトのガンマは、好ましくは1.0であり、たとえばAPIのGXInitコマンドに設定される。
【0074】
<コピーアウト中に利用可能な変換処理の例>
<RGBからYCrCb(4:4:4)への変換>
この変換は、必要とされる外部フレームバッファの量を1/3に削減するために用いられる。この変換には、以下の式が用いられる。
Y= 0.257R+0.504G+0.098B+16
Cb=−0.148R−0.291G+0.439B+128
Cr= 0.439R−0.368G−0.071B+128
1周期につき、走査線内の4ピクセルが変換される。
【0075】
<YCrCb(4:4:4)からYCrCb(4:2:2)>
YUV444からYUV422への変換は、図20に図示されている。この変換には、以下の式が用いられる。
c’(0,0)=1/4*c(0,0)+1/2*c(0,0)+1/4*c(1,0)
c’(2,0)=1/4*c(1,0)+1/2*c(2,0)+1/4*c(3,0)
c’(4,0)=1/4*c(3,0)+1/2*c(4,0)+1/4*c(5,0)
c’(m,n)=1/4*c(m−1,n)+1/2*c(m,n)+1/4*c(m+1,n)
【0076】
<YCrCb(4:2:0)からYCrCb(4:4:4)>
この変換は、図21および22に示すように、2つの部に分かれて行なわれる。第1部では、図21に示すように、YUV420フォーマットからYUV422フォーマットに変換する。この変換は、以下の式を用いる。
c’(0,0)=3/4*c(0,0.5)+1/4*c(0,0.5)
c’(2,0)=3/4*c(2,0.5)+1/4*c(2,0.5)
c’(4,0)=3/4*c(4,0.5)+1/4*c(4,0.5)
c’(0,1)=3/4*c(0,0.5)+1/4*c(0,2.5)
c’(2,1)=3/4*c(2,0.5)+1/4*c(2,2.5)
c’(4,1)=3/4*c(4,0.5)+1/4*c(4,2.5)
c’(0,2)=3/4*c(0,2.5)+1/4*c(0,0.5)
c’(2,2)=3/4*c(2,2.5)+1/4*c(2,0.5)
c’(4,2)=3/4*c(4,2.5)+1/4*c(4,0.5)
c’(m,n)=3/4*c(m,n−0.5)+1/4*c(m,n+1.5) n=奇数
c’(m,n)=3/4*c(m,n+0.5)+1/4*c(m,n−1.5) n=偶数
【0077】
YUV420からYUV444への変換の第2部では、図22に示すように、YUV422を1つ上の部分からアップサンプルしてYUV444とする。この変換は、以下の式を用いる。
c’(0,0)=c(0,0)
c’(1,0)=1/2*c(0,0)+1/2*c(2,0)
c’(2,0)=c(2,0)
c’(3,0)=1/2*c(2,0)+1/2*c(4,0)
c’(m,n)=c(m,n) mは奇数
c(m,n)=1/2*c(m−1,n)+1/2c(m+1,n) mは偶数
【0078】
<YcbCr(4:4:4)からRGBへの変換>
MPEG2は、YCbCr(YUV)カラースペースにおいて動作する。この変換は、コピーアウト中にYUVデータをRGBデータに変換するために用いることができる。以下の式は、この変換のために用いられる。
R=1.164(Y−16)+1.596(Cr−128)
G=1.164(Y−16)−0.813(Cr−128)−0.391(Cb−128)
B=1.164(Y−16)+2.018(Cb−128)
【0079】
1周期につき、走査線内の4ピクセルが変換される。
【0080】
<コピーアウトコマンドの例>
表示コピー動作のEFBソースおよび宛先は、以下のAPI関数の例を用いて指定される。
【0081】
<GXCopyFBToDisplay>
引数:
u16 SrcLeft //ソース矩形の左上座標
u16 SrcTop
u16 SrcWidth //ソース矩形のピクセル幅
u16 SrcHeight //ソース矩形のピクセル高
Void*DstBase //メモリ内の宛先バッファアドレス
u16 DstStrid //宛先バッファの32Bの倍数のストライド
GXBool Clear //Zフレームバッファのカラーをクリア可能
【0082】
この関数は、組み込みフレームバッファ(EFB)の内容をメインメモリ内の表示バッファ113にコピーするものである。「コピーアウト」という用語は、単にすべての情報を転送するという意味ではなく、むしろ、組み込みフレームバッファの内容を読み出して、さらに処理し(たとえば、フィルタリングする、再サンプリングする、スケーリングするなど)、結果得られたデータを他へ(たとえば、外部のポイントサンプル型のフレームバッファへ)送るという意味である。矩形の原点は、SrcLeft(X)およびSrcTop(Y)によって規定される。Clearフラグによって、カラーおよびzバッファをクリアして、現在のクリアカラーおよびz値とすることができる。組み込みフレームバッファのクリアは、コピー処理と同時に生じる。
【0083】
以下の関数例は、コピー処理の制御を設定するのに用いることができる。
【0084】
<GXSetCopyControl>
引数:
GXFbClamps ClampFlags; //フレームバッファフィルタリングのために、フラグをクランプ。
GXTexFormats TexFormat; //テクスチャ(すなわち、宛先)ピクセルのフォーマット。
GXFbInterlace Interlaced; //表示バッファはインターレース(YUV422)。
GXGamma Gamma; //表示バッファピクセルに対するガンマ補正。
u16 VertScale; //垂直 1/スケール値(1.8フォーマット)。
GXBool MipFilter; //ミップマップフィルタを適用(テクスチャコピーのみ)。
【0085】
この関数は、組み込みフレームバッファから表示バッファへコピー中に使用される制御を設定する。これらの制御をいったん設定すると、複数のコマンドが発行できる。
【0086】
以下は、データを組み込みフレームバッファからテクスチャとしてコピーアウトするためのAPIコマンドの例である。
【0087】
<GXCopyFBToTexture>
引数:
u16 SrcLeft //ソース矩形の左上座標。
u16 SrcTop;
u16 SrcWidth; //ソースのピクセル幅。
u16 SrcHeight; //ソース矩形のピクセル高。
void* DstBase; //メモリ内の宛先バッファのアドレス(32Bに調整)。
u16 DstStride; //32Bの倍数で示される、宛先バッファのストライド。
GXBool Clear; //カラーおよびzフレームバッファのクリアを許可。
【0088】
この関数は、グラフィックスパイプラインによって後で使えるようにテクスチャ画像を生成する目的で、組み込みフレームバッファの内容を、メインメモリ内のテクスチャ画像バッファにコピーするものである。
【0089】
以下に、上述のAPIコマンドの例を用いて指定することが可能なパラメータの例を挙げる。
【0090】
<GXFbClamps:>
GX_CLAMP_TOP, //フィルタリングのために、画像の上端をクランプ
GX_CLAMP_BOTTOM, //フィルタリングのために、画像の下端をクランプ
<GXFbInterlace:>
GX_INTLC_OFF //インターレースはオフ。
GX_INTLC_EVEN //偶数線をインターレース。
GX_INTLC_ODD //奇数線をインターレース。
<GXZCmprFormats:>
GX_ZC_LINEAR, //リニア16ビットz。圧縮なし。
GX_ZC_14E2 //14e2浮動小数点フォーマット。
GX_ZC_13E3 //13e3浮動小数点フォーマット。
<GXGamma:>
GX_GM_1_0 //ガンマ 1.0
GX_GM_1_7 //ガンマ 1.7
GX_GM_2_2 //ガンマ 2.2
GXTexFormats:
GX_TF_I4 //輝度4ビット
GX_TF_I8 //輝度8ビット
GX_TF_IA4 //輝度アルファ8ビット(44)
GX_TF_IA8 //輝度アルファ16ビット(88)
GX_TF_C4 //カラーインデックス4ビット
GX_TF_C8 //カラーインデックス8ビット
GX_TF_CA //カラーインデックス+アルファ8ビット(44)
GX_TF_C6A2 //カラーインデックス+アルファ8ビット(62)
GX_TF_CA8 //カラーインデックス+アルファ16ビット(88)
GX_TF_R5G6B5 //RGB16ビット(565)
GX_TF_RGB5A1 //RGB16ビット(5551)
GX_TF_RGBA8 //RGB32ビット(8888)
GX_TF_CMPR //4ビット/テクセルに圧縮。RGB8A1.GXPixelFormats:
GX_PF_RGB8_Z24
GX_PF_RGBA6_Z24
GX_PF_RGB565_Z16
GX_PF_Z24 //Zバッファコピーに使用される(診断のみ)
GX_PF_Y8
GX_PF_U8
GX_PF_V8
GX_PF_YUV420 //YUVコピーに使用される。
【0091】
<ピクセルエンジンレジスタの例>
図23〜25は、コピーアウト処理に関連してピクセルエンジンによって使用されるレジスタの例を示す。具体的には、図23は、制御レジスタの例を示す。このレジスタ例におけるビット定義は、以下の通りである
【表3】
【0092】
0〜2ビットは、コピー動作のピクセルタイプを指定する。この制御レジスタに書き込みを行なうと、エッジラスタライザ(RAS0)からピクセルエンジン(PE)までの間のグラフィックスパイプ段階がフラッシュされる。この処理は、本例においては、最低90周期行なうことが可能である。このレジスタへの書き込みは、テクスチャをコピーするのとテクスチャを用いるプリミティブを描画するのとを同期させるために用いることもできる。
【0093】
図24は、テクスチャコピー動作におけるレジスタの例を示す。このレジスタ例におけるビット定義は、以下の通りである。
【表4】
【0094】
8:7 ガンマ(arc_formatがRGBフォーマットのいずれかである場合のみ)
00: ガンマ = 1.0
01: ガンマ = 1.7
10: ガンマ = 2.2
11: 予約
9: mip_map_filter
0: フィルタリングなし(1:1)
1: ボックスフィルタリング(2:1)
11: clr (rgb_aaの場合は、0に設定要)
0: Zおよびカラーefbをクリアしない
1: Zおよびカラーefbをクリア
13:12 intlc
00: プログレッシブ
01: 予約
10: インターレース(偶数線)
11: インターレース(奇数線)
16:15 ccv_mode
0x: ピクセルタイプとテクスチャフォーマットとに基づく自動カラー変換
10: カラー変換オフ(rgbからyuv)
11: カラー変換オン(rgbからyuv)
【0095】
本動作で可能なピクセルタイプは、RGB8、RGBA6、RGB_AA(アンチエイリアシング(R5G6B5))、YUV8、およびYUV420である。3〜6ビットが、コピーコマンドによってテクスチャバッファに記憶されたテクスチャのフォーマットを規定する。本例において、テクスチャフォーマッティングは、図13に示すテクスチャフォーマット部において行なわれる。本例において、ピクセルタイプがYUV420の場合は、Clrは対応しておらず、0に設定されなければならない。ガンマ補正も、ピクセルタイプがYUV420の場合には対応していない。
【0096】
図25は、表示コピー動作におけるレジスタの例を示す。このレジスタ例におけるビット定義は、以下の通りである。
【表5】
【0097】
本動作で可能なピクセルタイプは、RGB8、RGBA6、RGB_AA(アンチエイリアシング)、およびYUV420である。ピクセルタイプがYUV420の場合は、Clrは対応しておらず、0に設定されなければならない。ガンマ補正も、ピクセルタイプがYUV420の場合には対応していない。
【0098】
<互換可能な他の実施例>
上述のシステム構成要素50のうちのあるものは、上述の家庭用ビデオゲームコンソール以外であっても実施できる。たとえば、システム50のために書き込まれているグラフィックスアプリケーションなどのソフトウェアを、システム50をエミュレートするかまたはそれと互換性のある他の構成を用いたプラットフォーム上で実行することができる。他のプラットフォームが、システム50のハードウェアおよびソフトウェア資源の一部または全部をうまくエミュレート、模倣、および/または提供できるのであれば、当該他のプラットフォームは、ソフトウェアをうまく実行することができるであろう。
【0099】
一例として、エミュレータは、システム50のハードウェアおよび/またはソフトウェア構成(プラットフォーム)とは異なるハードウェアおよび/またはソフトウェア構成(プラットフォーム)を提供してもよい。エミュレータシステムは、アプリケーションソフトウェアを書き込む対象であるシステムのハードウェアおよび/またはソフトウェア構成要素の一部またはすべてをエミュレートするハードウェアおよび/またはソフトウェア構成要素を含んでいてもよい。たとえば、エミュレータシステムは、パーソナルコンピュータなどの汎用デジタルコンピュータを備えることができ、これによって、システム50のハードウェアおよび/またはファームウェアを模倣するソフトウェアエミュレータプログラムが実行される。
【0100】
汎用デジタルコンピュータの中には(たとえば、IBMまたはマッキントッシュ製パーソナルコンピュータおよびその互換機)、現在、DirectX3Dやその他の標準グラフィックスコマンドAPIに対応したグラフィックスパイプラインを提供する3Dグラフィックスカードが搭載されているものもある。これらには、また、標準的なサウンドコマンドに基づいて高品質の立体音響を提供する立体音響サウンドカードも搭載されている場合もある。エミュレータソフトウェアを実行させるこのようなマルチメディアハードウェアを搭載したコンピュータは、システム50のグラフィックス性能およびサウンド性能を近似するに充分な性能を有している場合がある。エミュレータソフトウェアは、パーソナルコンピュータプラットフォーム上のハードウェア資源を制御して、ゲームプログラマがゲームソフトウェアを書き込む対象である家庭用ビデオゲームゲームコンソールプラットフォームの処理性能、3Dグラフィックス性能、サウンド性能、周辺性能などを模倣する。
【0101】
図26は、エミュレーション処理全体の例を示しており、この処理は、ホストプラットフォーム1201と、エミュレータ構成要素1303と、記憶媒体62上に与えられているバイナリ画像を実行可能なゲームソフトウェアとを用いる。ホスト1201は、汎用または専用デジタルコンピューティング装置であってもよく、たとえばパーソナルコンピュータやビデオゲームコンソールなど、充分な計算能力を備えたプラットフォームが挙げられる。エミュレータ1303は、ホストプラットフォーム1201上で実行されるソフトウェアおよび/またはハードウェアであってもよく、コマンドやデータなどの記憶媒体62からの情報をリアルタイムで変換して、ホスト1201が処理可能な形式にすることができる。たとえば、エミュレータ1303は、システム50が実行しようとする「ソース」バイナリ画像プログラム命令を記憶媒体62から取り出して、実行可能な形式またはホスト1201によって処理可能な形式に当該プログラム命令を変換する。
【0102】
一例として、IBMのPowerPCなどの特定のプロセッサを用いたプラットフォーム上で実行するためにソフトウェアが書き込まれており、ホスト1201は、異なる(たとえば、インテルの)プロセッサを用いたパーソナルコンピュータである場合、エミュレータ1303は、バイナリ画像プログラム命令の1つまたはシーケンスを記憶媒体1305から取り出して、これらのプログラム命令を、インテルのバイナリ画像プログラム命令に相当するものに変換する。また、エミュレータ1303は、グラフィックス音声プロセッサ114によって処理されるグラフィックスコマンドや音声コマンドを取り出しおよび/または生成し、ハードウェアおよび/またはソフトウェアグラフィックスおよびホスト1201で利用可能な音声処理資源によって処理可能な形式に、これらコマンドを変換する。一例として、エミュレータ1303は、これらのコマンドを、ホスト1201の特定のグラフィックスおよび/またはサウンドハードウェアによって処理可能なコマンドに変換する(たとえば、DirectX、オープンGLおよび/またはサウンドAPIを用いる)。
【0103】
上述のビデオゲームシステムの機能の一部または全部を提供するために用いられるエミュレータ1303には、エミュレータを用いて実行される様々なオプションや画面モードの選択を簡略化または自動化するグラフィックユーザインターフェース(GUI)が与えられてもよい。一例として、そのようなエミュレータ1303は、ソフトウェアが本来対象としていたホストプラットフォームに比較して、拡張された機能をさらに含んでいてもよい。
【0104】
図27は、エミュレータ1303と共に用いられるのに適したエミュレーションホストシステム1201を示す。システム1201は、処理部1203と、システムメモリ1205とを含む。システムバス1207は、システムメモリ1205から処理部1203までを含む様々なシステム構成要素を結合する。システム1207は、メモリバスまたはメモリコントローラ、周辺機器バス、ローカルバスなど、様々なバスアーキテクチャのいずれかを用いたものを含む、数種のバス構成のいずれであってもよい。システムメモリ1207は、読み出し専用メモリ(ROM)1252と、ランダムアクセスメモリ(RAM)1254とを含む。ベーシック入出力システム(BIOS)1256は、パーソナルコンピュータシステム1201内の要素間において情報を転送するのを助ける基本ルーチンを含んでおり、ROM1252に記憶される。システム1201は、様々なドライブや、関連したコンピュータが読み取り可能な媒体をさらに含む。ハードディスクドライブ1209は、(典型的には固定された)磁気ハードディスク1211からの読み出しやそれに対する書き込みを行う。付加的な(選択可能な)磁気ディスクドライブ1213は、着脱可能な「フロッピー」などの磁気ディスク1215からの読み出しやそれに対する書き込みを行う。随意のディスクドライブ1217は、CDROMなどの随意の媒体のような着脱可能な光ディスク1219からの読み出しや、構成によってはそれに対する書き込みも行う。ハードディスクドライブ1209および光ディスクドライブ1217は、それぞれ、ハードディスクドライブインターフェース1221および光ドライブインターフェース1225によって、システムバス1207に接続している。ドライブやそれに関連するコンピュータが読み出し可能な媒体によって、コンピュータが読み出し可能な命令、データ構造、プログラムモジュール、ゲームプログラムなどのパーソナルコンピュータシステム1201のためのデータが不揮発的に記憶される。他の構成においては、コンピュータが読み出し可能な他の種類の媒体が用いられていてもよく、コンピュータによってアクセス可能なデータを記憶できる媒体(たとえば、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)など)であってもよい。
【0105】
エミュレータ1303を含む多くのプログラムモジュールは、ハードディスク1211、着脱可能な磁気ディスク1215、光学ディスク1219、および/またはシステムメモリ1205のROM1252および/またはRAM1254に記憶されてもよい。そのようなプログラムモジュールは、グラフィックスやサウンドAPIを提供するオペレーティングシステム、1つ以上のアプリケーションプログラム、他のプログラムモジュール、プログラムデータ、ゲームデータを含んでもよい。ユーザは、コマンドや情報を、キーボード1227、ポインティングデバイス1229、マイク、ジョイスティック、ゲームコントローラ、衛星アンテナ、スキャナなどの入力装置を通じて、パーソナルコンピュータシステム1201に対して入力する。このような入力装置は、システムバス1207に結合されたシリアルポートインターフェース1231を介して処理部1203に接続されることが可能であるが、パラレルポートや、ゲームポートファイアワイヤーバス、またはユニバーサルシリアルバス(USB)などの他のインターフェースによって接続されてもよい。モニタ1233などの表示装置も、ビデオアダプタ1235などのインターフェースを介して、システムバス1207に接続される。
【0106】
また、システム1201は、インターネットのようなネットワーク1152上での通信を確立するための、モデム1154などのネットワークインターフェース手段を含んでもよい。モデム1154は、内蔵であっても外付けであってもよく、シリアルポートインターフェース1231を介してシステムバス123に接続される。また、、ローカルエリアネットワーク1158を介して(または、ワイドエリアネットワーク1152、ダイアルアップなどの他の通信路、または他の通信手段を介してもよい)、システム1201が遠隔コンピューティング装置1150(たとえば、他のシステム1201)と通信できるように、ネットワークインターフェース1156が与えられてもよい。システム1201は、典型的には、プリンタなどの標準周辺機器のような、他の周辺出力装置を含む。
【0107】
一例において、ビデオアダプタ1235は、Microsoft製DirextX7.0などのバージョンのような標準3Dグラフィックスアプリケーションプログラマインターフェースに基づいて出される3Dグラフィックスコマンドに応答して、高速3Dグラフィックス描画を提供するグラフィックスパイプラインチップセットを含んでいてもよい。立体音響スピーカセット1237も、システムバス1207に対して、従来の「サウンドカード」のような音声生成インターフェースを介して接続されている。そのようなインターフェースは、バス1207から与えられたサウンドコマンドに基づいて高品質な立体音響を生成するための支援をハードウェアや組み込みソフトウェアに対して行う。このようなハードウェアの機能によって、システム1201は、記憶媒体62に記憶されたソフトウェアを実行するのに充分なグラフィックスおよび音響の速度性能を提供することができる。
【0108】
本発明は、現時点において最も現実的で最適な実施例と思われるものに関連して説明してきたが、本発明は、開示された実施例に限定されるものではなく、添付の請求項の範囲に含まれる様々な変形例や相当する仕組みを含むことを意図していると解釈されるべきである。
【図面の簡単な説明】
【図1】対話式コンピュータグラフィックスシステムの一例の概略図である。
【図2】図1のコンピュータグラフィックスシステムの例のブロック図である。
【図3】図2に示すグラフィックス&音声プロセッサの例のブロック図である。
【図4】図3に示す3Dグラフィックスプロセッサの例のブロック図である。
【図5】図4のグラフィックス&音声プロセッサの論理フロー図の例である。
【図6】組み込みフレームバッファの例およびそこで用いられる2つのRGBベースのフォーマットを示す。
【図7】YUVフォーマットのデータを記憶するために再構成された、図6のフレームバッファの例を示す。
【図8】ピクセルエンジンおよび組み込みフレームバッファ間のインターフェースの例を示す。
【図9】コピーパイプラインのブロック図の例を示す。
【図10】RGBフォーマットからYUVフォーマットへの変換例を示す。
【図11】垂直スケーリングに用いられるデータパスのブロック図の例である。
【図12】グラフィックスシステムのブロック図であって、データがシステムの様々な構成要素間をどのように移動するかを示す。
【図13】図9のコピーパイプラインのより詳細なブロック図を示す。
【図14】本発明の好ましい実施例による、アンチエイリアシングに用いられる7タップ垂直フィルタの例を示す。
【図15】本発明の好ましい実施例による、アンチエイリアシングバッファリングのブロック図を示す。
【図16】デフリッカリングに用いられる図14の垂直フィルタを示す。
【図17】本発明の好ましい実施例によって用いられるデフリッカリングバッファリングのブロック図を示す。
【図18】本発明の好ましい実施例による、変換マトリックスを示す。
【図19】メインメモリ内に記憶されているテクスチャタイルを示す。
【図20】YUV444フォーマットからYUV422フォーマットへのダウンサンプリング変換を示す。
【図21】YUV420フォーマットからYUV444フォーマットへのデータ変換に用いられる2つの変換を示す。
【図22】YUV420フォーマットからYUV444フォーマットへのデータ変換に用いられる2つの変換を示す。
【図23】現在のピクセルフォーマットを規定するために用いられる制御レジスタの例を示す。
【図24】テクスチャコピーコマンドに関連して用いられるレジスタの例を示す。
【図25】表示コピーコマンドに関連して用いられるレジスタの例を示す。
【図26】他の代替可能な実施例を示す。
【図27】他の代替可能な実施例を示す。
Claims (17)
- グラフィックスプロセッサであって、
画像処理回路と、
組み込みフレームバッファとを含み、
前記組み込みフレームバッファは、
ポイントサンプルされたフォーマット、
スーパーサンプルされたフォーマットおよび
YUVフォーマットのうち、
いずれかのフォーマットの受信データに対して選択的に構成可能であり、
前記ポイントサンプルされたフォーマットは、1ピクセルにつき、カラーデータ用の第1ビット数、およびデプスデータ用の第2ビット数を有し、
前記スーパーサンプルされたフォーマットは、1ピクセルにつき複数のスーパーサンプル位置の各々について、前記第1ビット数より少ないカラーデータ用のビット数、および
前記第2ビット数より少ないデプスデータ用のビット数を有する、グラフィックスプロセッサ。 - 前記ポイントサンプルされたフォーマットは、48ビットフォーマットであり、前記スーパーサンプルされたフォーマットは、96ビットフォーマットである、請求項1に記載のグラフィックスプロセッサ。
- 前記48ビットフォーマットは、前記第1ビット数が24ビットであり、かつ、前記第2ビット数が24ビットであるフォーマットである、請求項2に記載のグラフィックスプロセッサ。
- 前記第1ビット数が、24ビットである場合に、前記第1ビット数が、赤8ビット、青8ビットおよび緑8ビット(RGB8)、または赤6ビット、緑6ビット、青6ビットおよびアルファ6ビット(RGBA6)を選択的に含むように、前記組み込みフレームバッファをさらに構成可能とする、請求項3に記載のグラフィックスプロセッサ。
- 前記スーパーサンプルされたフォーマットが96ビットフォーマットである場合、前記スーパーサンプルされたフォーマットは、1ピクセルにつき3つのスーパーサンプル位置についての、カラーデータおよびデプスデータを含む、請求項2ないし4のいずれかに記載のグラフィックスプロセッサ。
- 前記スーパーサンプルされたフォーマットにおいて、前記カラーデータは、16ビットであり、前記デプスデータは、16ビットである、請求項5に記載のグラフィックスプロセッサ。
- 前記スーパーサンプルされたフォーマットにおいて、前記カラーデータは、赤5ビット、緑6ビット、および青5ビット(R5G6B5)を含む、請求項6に記載のグラフィックスプロセッサ。
- 前記YUVフォーマットは、YUVが4:2:0となるフォーマットである、請求項1ないし7のいずれかに記載のグラフィックスプロセッサ。
- 前記組み込みフレームバッファは、ダイナミックランダムアクセスメモリ(DRAM)である、請求項1ないし8のいずれかに記載のグラフィックスプロセッサ。
- 前記組み込みフレームバッファは、アンチエイリアシングが行われる場合に、前記スーパーサンプルされたフォーマットの受信データに対して構成され、前記組み込みフレームバッファは、アンチエイリアシングが行われない場合に、前記ポイントサンプルされたフォーマットの受信データに対して構成される、請求項1ないし9のいずれかに記載のグラフィックスプロセッサ。
- 前記YUV4:2:0の構成において、前記組み込みフレームバッファのカラーバッファは、YUV4:2:0フレームに関して720x576のY、360x288のU、および360x288のVの画像平面を記憶するために分割されている、請求項8に記載のグラフィックスプロセッサ。
- 前記カラーバッファの分割によって、
1024x640 8ビットY画像と、
528x320 8ビットU画像と、
528x320 8ビットV画像とが割り当てられる、請求項11に記載のグラフィックスプロセッサ。 - グラフィックスシステムであって、
画像処理回路と、
組み込みフレームバッファとを含み、
前記組み込みフレームバッファは、
ポイントサンプルされたフォーマット、
スーパーサンプルされたフォーマットおよび
YUVフォーマットのうち、
いずれかのフォーマットの受信データに対して選択的に構成可能であり、
前記ポイントサンプルされたフォーマットは、1ピクセルにつき、カラーデータ用の第1ビット数、およびデプスデータ用の第2ビット数を有し、
前記スーパーサンプルされたフォーマットは、1ピクセルにつき複数のスーパーサンプル位置の各々について、前記第1ビット数より少ないカラーデータ用のビット数、および
前記第2ビット数より少ないデプスデータ用のビット数を有する、グラフィックスシステム。 - プログラマが組み込みフレームバッファを選択的に構成することができるようなグラフィックスに対するインターフェースをさらに含む、請求項13に記載のグラフィックスシステム。
- ピクセル処理回路と、外部の宛先へ転送する前にピクセルデータを記憶する組み込みフレームバッファを備える、グラフィックスチップであって、
前記組み込みフレームバッファは、
ポイントサンプルされたフォーマット、
スーパーサンプルされたフォーマットおよび
YUVフォーマットのうち、
いずれかのフォーマットの受信データに対して選択的に構成可能であり、
前記ポイントサンプルされたフォーマットは、1ピクセルにつき、カラーデータ用の第1ビット数、およびデプスデータ用の第2ビット数を有し、
前記スーパーサンプルされたフォーマットは、1ピクセルにつき複数のスーパーサンプル位置の各々について、前記第1ビット数より少ないカラーデータ用のビット数、および
前記第2ビット数より少ないデプスデータ用のビット数を有する、グラフィックスチップ。 - 画像処理回路と、組み込みフレームバッファとを含むグラフィックスシステムにおいて、組み込みフレームバッファを制御するための方法であって、
前記グラフィックスシステムに接続する制御用プロセッサが、
ポイントサンプルされたフォーマット、
スーパーサンプルされたフォーマットおよび
YUVフォーマットのうち、
いずれかのフォーマットの受信データに対して選択的に構成可能な前記組み込みフレー
ムバッファを提供するステップを含み、
ここで、前記ポイントサンプルされたフォーマットは、1ピクセルにつき、カラーデータ用の第1ビット数、およびデプスデータ用の第2ビット数を有し、
前記スーパーサンプルされたフォーマットは、1ピクセルにつき複数のスーパーサンプル位置の各々について、前記第1ビット数より少ないカラーデータ用のビット数、および
前記第2ビット数より少ないデプスデータ用のビット数を有する、方法。 - 前記制御用プロセッサが、前記組み込みフレームバッファの構成を制御するグラフィックスシステムへのインターフェースを提供するステップをさらに包含し、
前記インターフェースが前記組み込みフレームバッファを選択的に構成できるようにすることをさらに含む、請求項16に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US22691000P | 2000-08-23 | 2000-08-23 | |
US60/226910 | 2000-08-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002230580A JP2002230580A (ja) | 2002-08-16 |
JP4683760B2 true JP4683760B2 (ja) | 2011-05-18 |
Family
ID=22850942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001133574A Expired - Fee Related JP4683760B2 (ja) | 2000-08-23 | 2001-04-27 | 再構成可能なピクセルフォーマットを有する組み込みフレームバッファを有するグラフィックスシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4683760B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4817792B2 (ja) * | 2004-11-02 | 2011-11-16 | マイクロソフト コーポレーション | テクスチャベースのピクセルパッキング |
US8285037B2 (en) * | 2005-02-28 | 2012-10-09 | Nxp B.V. | Compression format and apparatus using the new compression format for temporarily storing image data in a frame memory |
CN102301397A (zh) * | 2008-12-01 | 2011-12-28 | 北方电讯网络有限公司 | 用于提供计算机生成的三维虚拟环境的视频表示的方法和设备 |
JP4818450B1 (ja) | 2010-06-30 | 2011-11-16 | 株式会社東芝 | グラフィクスプロセッシングユニットおよび情報処理装置 |
KR101701294B1 (ko) * | 2015-05-29 | 2017-02-01 | 라인 가부시키가이샤 | 이미지 뷰 바인딩의 최적화를 위한 시스템 및 방법 |
KR101823818B1 (ko) | 2017-01-24 | 2018-01-30 | 라인업 주식회사 | 이미지 뷰 바인딩의 최적화를 위한 시스템 및 방법 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09325759A (ja) * | 1995-11-22 | 1997-12-16 | Nintendo Co Ltd | 高速高効率3dグラフィックス及びデジタル音声信号処理を提供するコプロセッサを備える高性能低コストビデオゲームシステム |
JPH1026966A (ja) * | 1994-06-02 | 1998-01-27 | Accelerix Ltd | シングルチップフレームバッファおよびグラフィックアクセラレータ |
JPH1049125A (ja) * | 1996-04-19 | 1998-02-20 | Seiko Epson Corp | オーバレイパスウェイを実現するシステム及び方法 |
JPH10124023A (ja) * | 1996-10-17 | 1998-05-15 | Internatl Business Mach Corp <Ibm> | 圧縮フレーム・バッファによりグラフィックス画像データを二重バッファするためのシステムおよび方法 |
WO1999041706A1 (en) * | 1998-02-17 | 1999-08-19 | Sun Microsystems, Inc. | Graphics system with variable resolution super-sampling |
WO1999054847A1 (fr) * | 1998-04-17 | 1999-10-28 | Hitachi, Ltd. | Processeur d'images en trois dimensions |
JPH11316708A (ja) * | 1997-11-18 | 1999-11-16 | St Microelectronics Inc | データシーケンスの圧縮及び伸長におけるメモリ帯域幅を最小とさせるためのピクチャメモリマッピング |
JPH11352951A (ja) * | 1998-06-04 | 1999-12-24 | Sharp Corp | 表示システム |
JP2000181438A (ja) * | 1998-12-11 | 2000-06-30 | Nec Corp | 画像表示処理装置 |
-
2001
- 2001-04-27 JP JP2001133574A patent/JP4683760B2/ja not_active Expired - Fee Related
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1026966A (ja) * | 1994-06-02 | 1998-01-27 | Accelerix Ltd | シングルチップフレームバッファおよびグラフィックアクセラレータ |
JPH09325759A (ja) * | 1995-11-22 | 1997-12-16 | Nintendo Co Ltd | 高速高効率3dグラフィックス及びデジタル音声信号処理を提供するコプロセッサを備える高性能低コストビデオゲームシステム |
JPH1049125A (ja) * | 1996-04-19 | 1998-02-20 | Seiko Epson Corp | オーバレイパスウェイを実現するシステム及び方法 |
JPH10124023A (ja) * | 1996-10-17 | 1998-05-15 | Internatl Business Mach Corp <Ibm> | 圧縮フレーム・バッファによりグラフィックス画像データを二重バッファするためのシステムおよび方法 |
JPH11316708A (ja) * | 1997-11-18 | 1999-11-16 | St Microelectronics Inc | データシーケンスの圧縮及び伸長におけるメモリ帯域幅を最小とさせるためのピクチャメモリマッピング |
WO1999041706A1 (en) * | 1998-02-17 | 1999-08-19 | Sun Microsystems, Inc. | Graphics system with variable resolution super-sampling |
WO1999054847A1 (fr) * | 1998-04-17 | 1999-10-28 | Hitachi, Ltd. | Processeur d'images en trois dimensions |
JPH11352951A (ja) * | 1998-06-04 | 1999-12-24 | Sharp Corp | 表示システム |
JP2000181438A (ja) * | 1998-12-11 | 2000-06-30 | Nec Corp | 画像表示処理装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2002230580A (ja) | 2002-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4719363B2 (ja) | 内部フレームバッファと主メモリ間でのコピーアウト変換を有するグラフィクスシステム | |
US7576748B2 (en) | Graphics system with embedded frame butter having reconfigurable pixel formats | |
US6937245B1 (en) | Graphics system with embedded frame buffer having reconfigurable pixel formats | |
JP4698052B2 (ja) | グラフィクスシステムのエイリアス補正方法および装置 | |
JP4731028B2 (ja) | グラフィクスシステム用再循環シェードツリーブレンダ | |
JP4790150B2 (ja) | 低価格のグラフィックスシステムにおけるシャドウマッピング | |
US6580430B1 (en) | Method and apparatus for providing improved fog effects in a graphics system | |
JP4863574B2 (ja) | Zテクスチャリングを用いるイメージ生成方法 | |
JP4680412B2 (ja) | 描画モードに基づいて隠面処理の順番を動的に再構成する方法および装置 | |
US6618048B1 (en) | 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components | |
JP4846120B2 (ja) | スケルトンアニメーションのステッチングハードウェアを有するグラフィクス装置 | |
JP4678963B2 (ja) | グラフィクスシステムにおいて直接および間接テクスチャを処理するための方法および装置 | |
JPH09325759A (ja) | 高速高効率3dグラフィックス及びデジタル音声信号処理を提供するコプロセッサを備える高性能低コストビデオゲームシステム | |
US7212215B2 (en) | Apparatus and method for rendering an antialiased image | |
JP4683760B2 (ja) | 再構成可能なピクセルフォーマットを有する組み込みフレームバッファを有するグラフィックスシステム | |
JP2001134779A (ja) | 三次元ビデオグラフィックスシステムにおける非写実的な漫画的な輪郭線提供方法およびその装置 | |
JP3548642B2 (ja) | 画像情報生成装置及び方法、画像情報処理装置及び方法、並びに記録媒体 | |
EP1182617A2 (en) | Graphics system with reconfigurable embedded frame buffer and copy out conversions between embedded frame buffer and main memory | |
JP4740476B2 (ja) | グラフィックスシステム内におけるn個のアルファ演算の論理結合を提供する方法および装置 | |
JP4740490B2 (ja) | グラフィックスレンダリングシステムにおいて視覚的に重要なz成分の精度を最大化しz近傍クリッピングを回避するためのz近傍範囲におけるz値のクランピング | |
JP4698894B2 (ja) | グラフィックスシステムにおけるテクスチャタイリングのための方法、装置およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080424 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100712 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100809 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101006 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101108 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101112 |
|
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: 20110114 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110208 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140218 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4683760 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |