説明

デプスエンジンの動的な再配置を用いたグラフィックシステム

【課題】デプスエンジンの動的な再配置を用いたグラフィックシステムを提供する。
【解決手段】グラフィックシステムは、グラフィック画像を処理するように構成された複数のユニットと、選択値に基づいて2つのユニットのうちの1つから選択されたデータを受信し、処理するように構成されたデプスエンジンとを備えるグラフィックプロセッサを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般にグラフィックシステムに関し、特に、デプスエンジンの動的な再配置を用いたグラフィックシステムに関する。
【背景技術】
【0002】
グラフィックシステムは、例えばビデオゲーム、グラフィック、コンピュータを使った設計デザイン(CAD)、シミュレーションツール、視覚化ツール、イメージング等のような様々なアプリケーションのために2次元(2−D)画像及び3次元(3−D)画像をレンダリングすることができる。3−D画像は、表面を持つことで立体感を与えられることができる。各表面は多角形に近く、一般的には三角形である。3−D画像を表すために用いられる三角形の数は、表面の複雑さ及び画像の望まれる解像度に依存する。三角形の数は、例えば100万個など非常に多い。各三角形は、3つの頂点によって定められる。各頂点は、例えば座標空間、明度、及びテクスチャ座標のような様々な特性に関連しうる。各特性は、3つ又は4つの構成要素を有しうる。例えば、座標空間は一般に、水平座標(x)、垂直座標(y)、及びデプス座標(z)によって与えられる。明度は一般に、赤、緑、及び青(r、g、b)値によって与えられる。テクスチャ座標は一般に、水平座標及び垂直座標(u及びv)によって与えられる。
【0003】
グラフィックシステムにおけるグラフィックプロセッサは、2−D画像及び3−D画像をレンダリングするために、様々なグラフィック動作を実行することができる。画像は、多くの三角形によって構成され、各三角形は、画像の要素、すなわち画素によって構成されることができる。グラフィックプロセッサは、三角形内の各画素の成分値を決定することによって、各三角形をレンダリングする。グラフィック動作は、ラスタリゼーション、テクスチャマッピング、シェーディング等を含みうる。
【発明の概要】
【0004】
グラフィックシステムは、グラフィック画像をレンダリングするために様々なグラフィック動作を実行する処理ユニットを備えたグラフィックプロセッサを含むことができる。
【0005】
1つの局面は、グラフィック画像を処理するように構成された複数のユニットと、選択値に基づいて、2つのユニットのうちの1つから選択されたデータを受け取り、処理するように構成されたデプスエンジンとを備える装置に関する。
【0006】
別の局面は、いくつかのグラフィック処理モジュールを用いてグラフィック画像を処理することと、選択値に基づいて、2つのユニットのうちの1つからデプスエンジンへ入力されるデータを選択的に切り替えることとを備える命令セットを格納する機械読取可能記憶媒体に関する。
【0007】
別の局面は、グラフィック画像を処理する複数の手段と、選択値に基づいて、2つのユニットのうちの1つから選択されたデータを受け取り、処理するデプステスト手段とを備える装置に関する。
【0008】
別の局面は、いくつかのグラフィック処理モジュールを用いてグラフィック画像を処理することと、選択値を受け取ることと、選択値に基づいて、2つのユニットのうちの1つからデプスエンジンへ入力されるデータを選択的に切り替えることとを備える方法に関する。
【図面の簡単な説明】
【0009】
【図1】図1は、無線通信デバイスを示す。
【図2】図2は、図1の無線通信デバイス内のグラフィックプロセッサの構成要素を示す。
【図3】図3は、2つのデプスエンジンを備えるグラフィックプロセッサの別の構成を示す。
【図4】図4は、デプスエンジンの動的な再配置を用いたグラフィックプロセッサの別の構成を示す。
【発明を実施するための形態】
【0010】
図1は、無線通信システムにおいて用いられうる無線通信デバイス100を示す。デバイス100は、セルラー電話、端末、ハンドセット、携帯情報端末(PDA)、ラップトップコンピュータ、ビデオゲーム機、又はその他いくつかのデバイスであることができる。デバイス100は、符号分割多元接続(CDMA)、例えばグローバル・システム・フォー・モバイル・コミュニケーション(GSM(登録商標))のような時分割多元接続、又はその他いくつかの無線通信規格を用いることができる。
【0011】
デバイス100は、受信経路及び送信経路を経由して双方向通信を提供することができる。1つ又は複数の基地局によって送信された信号が、受信経路上で、アンテナ112によって受信され、受信機(RCVR)114へ提供されることができる。受信機114は、受信した信号を調整及びデジタル化し、更なる処理のために、サンプルをデジタルセクション120へ提供する。送信経路上で、送信機(TMTR)116は、送信するデータをデジタルセクション120から受け取り、そのデータを処理及び調整し、アンテナ112経由で1つ又は複数の基地局へ送信される変調信号を生成する。
【0012】
デジタルセクション120は、1つ又は複数のデジタル信号プロセッサ(DSP)、マイクロプロセッサ、縮小命令セットコンピュータ(RISC)等を用いて実現されることができる。デジタルセクション120はまた、1つ又は複数の特定用途向け集積回路(ASIC)やその他いくつかのタイプの集積回路(IC)上に構成されることもできる。
【0013】
デジタルセクション120は、例えばモデムプロセッサ122、ビデオプロセッサ124、アプリケーションプロセッサ126、ディスプレイプロセッサ128、コントローラ/プロセッサ130、グラフィックプロセッサ140、及び外部バスインタフェース(EBI)160のような様々な処理ユニット及びインタフェースユニットを含むことができる。
【0014】
モデムプロセッサ122は、データ送受信のための、例えば符号化、変調、復調、及び復号等の処理を実行する。ビデオプロセッサ124は、例えばカムコーダ、ビデオ再生、及びビデオ会議のようなビデオアプリケーションに関するビデオコンテンツ(例えば静止画像、ビデオ動画、動画文書)の処理を実行する。アプリケーションプロセッサ126は、例えばマルチウェイコール、ウェブ閲覧、メディアプレーヤ、及びユーザインタフェースのような様々なアプリケーションに関する処理を実行する。ディスプレイプロセッサ128は、ディスプレイユニット180へのビデオ、グラフィック、及びテキストの表示を容易にするための処理を実行する。コントローラ/プロセッサ130は、デジタルセクション120内の様々な処理ユニット及びインタフェースユニットの動作を指示する。
【0015】
キャッシュメモリシステム150は、グラフィックプロセッサ140のためのデータ及び/又は命令を格納することができる。EBI160は、デジタルセクション120(例えばキャッシュ)とメインメモリ170との間のデータの伝送を容易にする。
【0016】
グラフィックプロセッサ140は、グラフィックアプリケーションのための処理を実行することができ、本明細書で説明されるように実現されうる。一般に、グラフィックプロセッサ140は、グラフィック動作の任意のセットについて、任意の数の処理ユニット又はモジュールを含むことができる。グラフィックプロセッサ140及びその構成要素(図2乃至4を用いて以下で説明される)は、例えばASIC、デジタル信号プロセッサデバイス(DSPD)、プログラマブル論理デバイス(PLD)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、及びその他の電子ユニットのような様々なハードウェアユニットで実現されうる。
【0017】
グラフィックプロセッサ140のある部分は、ファームウェア及び/又はソフトウェアで実現されうる。例えば、制御ユニットは、本明細書で説明される機能を実行するファームウェアモジュール及び/又はソフトウェアモジュール(例えば手順、関数等)を用いて実現されうる。ファームウェアコード及び/又はソフトウェアコードは、メモリ(例えば図1のメモリ170)内に格納され、プロセッサ(例えばプロセッサ130)によって実行されることができる。メモリは、プロセッサ内に、あるいはプロセッサに外付けで実装されうる。
【0018】
グラフィックプロセッサ140は、例えばオープン・グラフィック・ライブラリ(オープンGL)、ダイレクト3D等のようなソフトウェアインタフェースを実現することができる。オープンGLは、公的に入手可能な、2004年10月22日付の“The OpenGL(R) Graphics System: A Specification”第2版と題された文書で説明される。
【0019】
図2は、図1の無線デバイス100内のグラフィックプロセッサ140の1つの構成140Aのいくつかの構成要素又は処理ユニットを示す。図2は、GPU(グラフィック処理ユニット)の前半部を表しうる。各処理ユニットは、専用ハードウェア、プロセッサ、又はこれらの組み合わせを用いて実現されるエンジンであることができる。例えば、図2に示すエンジンは、専用ハードウェアを用いて実現されうるが、一方、フラグメントシェーダ214は、プログラマブル中央処理装置(CPU)又は内蔵プロセッサを用いて実現されうる。
【0020】
他の構成において、処理ユニット200乃至216は、望まれる最適性能に依存して、様々な順序で位置することができる。例えば、電力を節約するためには、図2に示すように、不可視の画素が早く破棄されるように、パイプラインにおいて、ステンシルテスト及びデプステストを早期に実行することが望ましい。別の例では、図3に示すように、ステンシル及びデプスエンジン206が、テクスチャマッピングエンジン212の後に位置することができる。
【0021】
図2において、2−D画像及び3D画像をレンダリングするための様々な処理ユニット200乃至216が、パイプライン内に位置する。グラフィックプロセッサ140Aのその他の構成は、図2に示すユニットの代わりに、又はそれらに加えて、他のユニットを含むことができる。
【0022】
コマンドエンジン200は、実行されるべきグラフィック動作を指定する、到来するレンダリングコマンド又はレンダリング命令を受信し、復号することができる。三角形位置及びzセットアップエンジン202は、後続するラスタリゼーション処理のために必要なパラメータを計算することができる。例えば、三角形位置及びzセットアップエンジン202は、各三角形の3点に関する一次方程式の係数、デプス(z)勾配に関する係数、等を計算することができる。三角形位置及びzセットアップエンジン202は、早期セットアップと称されることができ、ビューポイント変換と早期アセンブリ、シザーウインドウに対する早期拒否、及び背面の除外(backing culling)を行う。
【0023】
ラスタリゼーションエンジン204(又はスキャン変換器)は、各三角形又はラインを画素に分解し、各画素のスクリーン座標を生成する。
【0024】
デプスエンジン206は、画素が表示されるべきか破棄されるべきかを判定するために、各画素にステンシルテストを実行することができる。ステンシルバッファは、レンダリングされている画像内の各画素の位置に関するカレントステンシル値を格納することができる。デプスエンジン206は、各画素の格納されたステンシル値を基準値と比較し、その比較に基づいて画素を保持するか、又は破棄する(例えば、パスフラグ又はフェイルフラグを生成する)ことができる。
【0025】
デプスエンジン206はまた、もし適用可能であれば、画素が表示されるべきか破棄されるべきかを判定するために、各画素に(zテストとも称される)デプステストを実行することもできる。zバッファは、レンダリングされている画像内の各画素の位置に関するカレントz値を格納する。デプスエンジン206は、各画素のz値(カレントz値)を、zバッファ内の対応するz値(格納されたz値)と比較し、その比較に基づいてパスフラグ又はフェイルフラグを生成し、画素を表示し、zバッファを更新することができる。あるいは、もしカレントz値が格納されたz値よりも近ければ、ステンシルバッファを更新することができる。デプスエンジン206は、もしカレントz値が、格納されたz値よりも遥かに後方にあれば、画素を破棄することができる。この早期のデプス/ステンシルテスト及び動作は、起こりうる不可視の画素/プリミティブを拒否する。
【0026】
属性セットアップエンジン208は、後続する画素属性の補間のためのパラメータを計算することができる。例えば、属性セットアップエンジン208は、属性補間に関する一次方程式の係数を計算することができる。画素補間エンジン210は、各三角形内の各画素の属性成分値を、画素スクリーン座標に基づいて計算し、属性セットアップエンジン208からの情報を用いることができる。属性セットアップエンジン208及び画素補間エンジン210は、全ての可視プリミティブの画素にわたって補間するために、属性補間器内で結合されることができる。
【0027】
テクスチャマッピングエンジン(又はテクスチャエンジン)212は、もしイネーブルされれば、各三角形にテクスチャを適用するために、テクスチャマッピングを実行することができる。テクスチャ画像は、テクスチャバッファ内に格納されることができる。各三角形の3つの頂点は、テクスチャ画像内の3つの(u、v)座標に関連付けられ、三角形の各画素はその後、テクスチャ画像内の特定のテクスチャ座標に関連付けられることができる。テクスチャは、各画素の色を、その画素のテクスチャ座標によって示される位置で、テクスチャ画像の色を用いて修正することによって達成されうる。
【0028】
各画素は、例えば色、デプス、テクスチャ等のような情報に関連付けられる。「フラグメント」とは、画素及びその関連情報である。フラグメントシェーダ214は、命令のシーケンスを備えるソフトウェアプログラムを各フラグメントに適用することができる。フラグメントシェーダ214は、z値を修正することができる。フラグメントシェーダ214は、画素を破棄するか、及びテスト結果をデプスエンジン206へ送るかに関するテストを生成することができる。フラグメントシェーダ214はまた、テクスチャ要求をテクスチャマッピングエンジン212へ送ることもできる。
【0029】
フラグメントエンジン216は、最後の画素レンダリングを完了し、例えば(もしイネーブルされれば)アルファテスト、フォグブレンディング、アルファブレンディング、論理動作、及びディザリング動作のような機能を各フラグメントに実行し、結果を色バッファへ提供することができる。もしアルファテストがイネーブルされれば、フラグメントエンジン216は、画素を表示するかを判定しうるデプスエンジン206へ、アルファテストの結果を送ることができる。
【0030】
図2のように、早期のステージでデプステストを実行すると、電力及び帯域幅を節約することができる。グラフィックプロセッサ140Aは、属性セットアップ、画素補間、テクスチャフェッチング、及び不可視の画素へのシェーダプログラムの適用を実行するために、計算電力及びメモリ帯域幅を消費する必要がない。
【0031】
しかし、いくつかのシェーダプログラムは、デプス値を修正する。図3は、フラグメントシェーダ214の後にデプステスト300を実行し、早期のデプスエンジン206をディセーブルするグラフィックプロセッサ140Bを示す。パイプライン内に2つの同一のデプスエンジン206、300を有することは、設計に冗長をもたらす。これは、電力及びマイクロチップ領域にとって良くない。
【0032】
図4は、1つのデプスエンジン400を備えるグラフィックプロセッサ140Cを設計することによる、この問題の解決策を示す。デプスエンジン400は、グラフィックアプリケーションに基づいて、早期zテスト位置又はシェーダの後に動的に再配置される、あるいは切り替えられることができる。グラフィックアプリケーションは、早期デプス(z)テストか、シェーダz値修正後のデプステストかの何れかを行うことができる。グラフィックプロセッサ140C又はデジタルセクション120内のソフトウェアは、予めシェーダプログラムを知っていることができる。
【0033】
図4の「早期z」入力は、早期zであるか早期zでないかを示す1ビットの2進値(1又は0)であることができる。もし「早期z」が選択されれば、第1のマルチプレクサ402は、ラスタリゼーションエンジン204からのデータをデプスエンジン400へ渡し、第2のマルチプレクサ404は、デプスエンジン400からのデータを属性セットアップエンジン208へ渡す。図4のマルチプレクサ402、404及び406は、例えばスイッチ等のような他の構成要素によって実現されることができる。
【0034】
もし「早期z」が選択されなければ、第2のマルチプレクサ404は、ラスタリゼーションエンジン204からのデータを属性セットアップエンジン208へ渡し、第1のマルチプレクサ402は、フラグメントシェーダ214からのデータをデプスエンジン400へ渡す。第3のマルチプレクサは、デプスエンジン400からのデータを、例えばフラグメントエンジン216のような別の構成要素へ渡すことができる。
【0035】
図4のグラフィックプロセッサ140Cは、早期Zの場合と、シェーダ修正されたZの場合との両方をサポートする柔軟性を有する。グラフィックプロセッサ140Cは、図3と比べて、2つの同一のデプスエンジンを備える必要がない。
【0036】
本明細書で説明されたグラフィックシステムは、無線通信、計算、ネットワーク、個人電子機器等に用いることができる。上述した実施形態への様々な変形例が、当業者には容易に明らかになるであろう。本明細書で定義された一般原理は、本開示の精神又は範囲を逸脱することなく他の実施形態に適用することができる。従って、本開示は、本明細書に示す実施形態を限定することは意図されておらず、本明細書に開示された原理及び新規特徴と整合の取れた最も広い範囲と一致するように意図されている。

【特許請求の範囲】
【請求項1】
グラフィック画像を処理するように構成された複数のユニットと、
選択値に基づいて、2つのユニットのうちの1つから選択されたデータを受け取り、処理するように構成されたデプスエンジンと
を備える装置。
【請求項2】
請求項1に記載の装置において、
前記デプスエンジンは、各画素を破棄するかを判定するために、前記各画素にステンシルテストを実行するように構成され、前記ステンシルテストは、各画素の格納されたステンシル値を基準値と比較することを備える装置。
【請求項3】
請求項1に記載の装置において、
前記デプスエンジンは、アルファテスト結果とフラグメントシェーダテスト結果とのうちの少なくとも1つを受け取り、各画素にステンシルテストを実行し、前記画素を表示するかを判定するように構成された装置。
【請求項4】
請求項1に記載の装置において、
前記デプスエンジンは、各画素を破棄するかを判定するために、前記画素にデプステストを実行するように構成され、前記デプステストは、各画素のカレントz値をバッファ内に格納された対応するz値と比較し、前記デプスエンジンは、前記比較に基づいて、前記画素を破棄するかを判定するように構成された装置。
【請求項5】
請求項1に記載の装置において、
前記デプスエンジンは、アルファテスト結果とフラグメントシェーダテスト結果とのうちの少なくとも1つを受け取り、各画素にデプステストを実行し、前記画素を表示するかを判定するように構成され、前記デプステストは、各画素のカレントz値を、バッファ内に格納された対応するz値と比較することを備える装置。
【請求項6】
請求項1に記載の装置において、
前記複数のユニットは、コマンドエンジンと、三角形位置及びzセットアップユニットと、ラスタリゼーションエンジンと、属性セットアップエンジンと、画素補間エンジンと、テクスチャエンジンと、フラグメントシェーダとのうちの少なくとも2つを備える装置。
【請求項7】
請求項1に記載の装置において、
前記2つのユニットが、ラスタリゼーションエンジンとフラグメントシェーダとを備える装置。
【請求項8】
請求項1に記載の装置において、
前記フラグメントシェーダは、z値を修正することと、画素を破棄することとのうちの少なくとも1つを実行するように構成された装置。
【請求項9】
請求項1に記載の装置において、
前記選択値を受け取り、第1のユニット又は第2のユニットから前記デプスエンジンへデータを選択的に渡す交換手段を更に備える装置。
【請求項10】
モバイル電話である請求項1に記載の装置。
【請求項11】
いくつかのグラフィック処理モジュールを用いてグラフィック画像を処理することと、
選択値に基づいて、2つのユニットのうちの1つからデプスエンジンへ入力されるデータを選択的に切り替えることと
を備える命令セットを格納する機械読取可能記憶媒体。
【請求項12】
請求項11に記載の機械読取可能記憶媒体であって、
前記2つのユニットが、ラスタリゼーションエンジンとフラグメントシェーダとを備える機械読取可能記憶媒体。
【請求項13】
グラフィック画像を処理する複数の手段と、
選択値に基づいて、2つのユニットのうちの1つから選択されたデータを受け取り、処理するデプステスト手段と
を備える装置。
【請求項14】
請求項13に記載の装置において、
前記2つのユニットが、ラスタリゼーションエンジンとフラグメントシェーダとを備える装置。
【請求項15】
いくつかのグラフィック処理モジュールを用いてグラフィック画像を処理することと、
選択値を受け取ることと、
前記選択値に基づいて、2つのユニットのうちの1つからデプスエンジンへ入力されるデータを選択的に切り替えることと
を備える方法。
【請求項16】
請求項15に記載の方法において、
各画素を破棄するかを判定するために、前記画素にステンシルテストを実行することを更に備え、前記ステンシルテストは、各画素の格納されたステンシル値を基準値と比較することを備える方法。
【請求項17】
請求項15に記載の方法において、
アルファテスト結果とフラグメントシェーダテスト結果とのうちの少なくとも1つを受け取ることと、
各画素にステンシルテストを実行することと、
前記画素を表示するかを判定することと
を更に備える方法。
【請求項18】
請求項15に記載の方法において、
各画素を破棄するかを判定するために、前記画素にデプステストを実行することを更に備え、前記デプステストは、各画素のカレントz値を、バッファ内に格納された対応するz値と比較することを備える方法。
【請求項19】
請求項15に記載の方法において、
アルファテスト結果とフラグメントシェーダテスト結果とのうちの少なくとも1つを受け取ることと、
各画素にデプステストを実行することであって、前記デプステストは、各画素のカレントz値を、バッファ内に格納された対応するz値と比較することを備えることと、
前記デプステストに基づいて、前記画素を表示するかを判定することと
を更に備える方法。
【請求項20】
請求項15に記載の方法において、
前記モジュールが、コマンドエンジンと、三角形位置及びzセットアップユニットと、ラスタリゼーションエンジンと、属性セットアップエンジンと、画素補間エンジンと、テクスチャエンジンと、フラグメントシェーダとのうちの少なくとも2つを備える方法。
【請求項21】
請求項15に記載の方法において、
前記2つのユニットが、ラスタリゼーションエンジンとフラグメントシェーダとを備える方法。
【請求項22】
請求項15に記載の方法において、
前記フラグメントシェーダは、z値を修正することと、画素を破棄することとのうちの少なくとも1つを実行するように構成された方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2012−53895(P2012−53895A)
【公開日】平成24年3月15日(2012.3.15)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−231781(P2011−231781)
【出願日】平成23年10月21日(2011.10.21)
【分割の表示】特願2009−511215(P2009−511215)の分割
【原出願日】平成19年5月15日(2007.5.15)
【出願人】(595020643)クゥアルコム・インコーポレイテッド (7,166)
【氏名又は名称原語表記】QUALCOMM INCORPORATED
【Fターム(参考)】