(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-02-02
(45)【発行日】2022-02-10
(54)【発明の名称】エッジをアンチエイリアスするグラフィックス処理方法、システム、記憶媒体及び装置
(51)【国際特許分類】
G06T 15/50 20110101AFI20220203BHJP
【FI】
G06T15/50 300
(21)【出願番号】P 2019205948
(22)【出願日】2019-11-14
【審査請求日】2021-03-12
(31)【優先権主張番号】201811354719.X
(32)【優先日】2018-11-14
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】519371507
【氏名又は名称】芯原微電子(上海)股▲ふん▼有限公司
(73)【特許権者】
【識別番号】510102188
【氏名又は名称】ベリシリコン ホールディングス カンパニー, リミテッド
【住所又は居所原語表記】P.O. Box 309, Ugland House, Grand Cayman KY1-1104, Cayman Islands
(74)【代理人】
【識別番号】100131381
【氏名又は名称】黒田 雄一
(72)【発明者】
【氏名】陳 勇軍
(72)【発明者】
【氏名】張 慧明
(72)【発明者】
【氏名】邁克 蔡
(72)【発明者】
【氏名】王 平
【審査官】松永 隆志
(56)【参考文献】
【文献】特表2017-517056(JP,A)
【文献】特開2007-133466(JP,A)
【文献】特開2005-346605(JP,A)
【文献】特開2004-046886(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 15/50
(57)【特許請求の範囲】
【請求項1】
エッジをアンチエイリアスするグラフィックス処理方法であって、
画素について水平及び垂直に2倍のサンプリング処理を行い、ラスタライズを実行して、4つのサンプリング点を取得するとともに、前記4つのサンプリング点が三角形により全て覆われているか否かを判断し、前記4つのサンプリング点が三角形により全て覆われている場合には、画素の中心点位置における深度値のみを演算し、前記画素の中心点位置における深度値を前記4つのサンプリング点に複製するとともに、前記4つのサンプリング点が属する画素の一倍画素フラグを第1の値とし、前記4つのサンプリング点が三角形により全ては覆われていない場合には、前記4つのサンプリング点の深度値をそれぞれ演算し、前記4つのサンプリング点が属する画素の一倍画素フラグを第2の値とするステップと、
画素について深度値テストを行い、画素の4つのサンプリング点が三角形により全て覆われているか否かを判断し、4つのサンプリング点が三角形により全て覆われている場合には、第1の所定の規則に基づき、画素の中心における深度値の比較のみを行って、4つのサンプリング点の深度値を比較により得られた中心の深度値に置き換え、4つのサンプリング点が三角形により全ては覆われていない場合には、第2の所定の規則に基づいて、各サンプリング点の深度値を比較し、比較により得られた4つのサンプリング点の深度値をキャッシュに記憶するとともに、最後に外部記憶装置に書き込むステップと、
画素について最終色処理を行い、前記4つのサンプリング点が三角形により全て覆われているか否かを判断し、三角形により全て覆われている場合には、画素の中心点位置の色を前記4つのサンプリング点に複製し、三角形により全ては覆われていない場合には、前記画素における4つのサンプリング点の色を混合するステップ、を含むことを特徴とするエッジをアンチエイリアスするグラフィックス処理方法。
【請求項2】
画素について深度値テストを行ったあとに、更に、画素の色演算を行うとともに、画素のプログラマブルシェーディング処理を行うことを特徴とする請求項1に記載のエッジをアンチエイリアスするグラフィックス処理方法。
【請求項3】
更に、データをディスプレイに対応するフォーマットに変換し、外部記憶装置に伝送することを特徴とする請求項1に記載のエッジをアンチエイリアスするグラフィックス処理方法。
【請求項4】
画素について最終色処理を行う前に、更に、テクスチャマッピングを行うことを特徴とする請求項1に記載のエッジをアンチエイリアスするグラフィックス処理方法。
【請求項5】
画素について最終色処理を行う前に、更に、画素について深度値テストを行って、4つのサンプリング点が三角形により全て覆われているか否かを判断し、4つのサンプリング点が三角形により全て覆われている場合には、第1の所定の規則に基づき、画素の中心における深度値の比較のみを行って、4つのサンプリング点の深度値を比較により得られた中心の深度値に置き換え、4つのサンプリング点が三角形により全ては覆われていない場合には、第2の所定の規則に基づいて、各サンプリング点の深度値を比較し、比較により得られた4つのサンプリング点の深度値をキャッシュに記憶するとともに、最後に外部記憶装置に書き込むことを特徴とする請求項1に記載のエッジをアンチエイリアスするグラフィックス処理方法。
【請求項6】
深度値テストを行う際に、深度値がキャッシュに記憶されていない場合には、外部記憶装置からデータを読み取る必要があり、画素群に含まれる画素の一倍画素フラグが全て第1の値である場合には、前記画素群を解凍し、前記画素群のビット数の大きさに基づいて64B又は32Bのデータを返し、前記データを256B又は128Bに展開してキャッシュに記憶し、画素群に含まれる画素の一倍画素フラグが全て第1の値とは限らない場合には、前記画素群を解凍し、前記画素群のビット数の大きさに基づいて256B又は128Bのデータを返すことを特徴とする請求項1に記載のエッジをアンチエイリアスするグラフィックス処理方法。
【請求項7】
前記画素群の状態は1桁の十六進表記で表し、0は4倍サンプリング画素の圧縮失敗を示し、1は4倍サンプリング画素のリセット値を示し、2、4、6、8、0xA、0xC、0xEは4倍サンプリング画素の7種類の圧縮結果を示し、3は一倍画素32Bの圧縮結果を示し、5は一倍画素の圧縮失敗を示し、0xFは一倍画素のリセット値を示すことを特徴とする請求項6に記載のエッジをアンチエイリアスするグラフィックス処理方法。
【請求項8】
エッジをアンチエイリアスするグラフィックス処理システムであって、
深度演算モジュール、深度値テストモジュール及び画素処理モジュールを含み、
前記深度演算モジュールは、画素について水平及び垂直に2倍のサンプリング処理を行い、ラスタライズを実行して、4つのサンプリング点を取得するとともに、前記4つのサンプリング点が三角形により全て覆われているか否かを判断し、前記4つのサンプリング点が三角形により全て覆われている場合には、画素の中心点位置における深度値のみを演算し、前記画素の中心点位置における深度値を前記4つのサンプリング点に複製するとともに、前記4つのサンプリング点が属する画素の一倍画素フラグを第1の値とし、前記4つのサンプリング点が三角形により全ては覆われていない場合には、前記4つのサンプリング点の深度値をそれぞれ演算し、前記4つのサンプリング点が属する画素の一倍画素フラグを第2の値とし、
前記深度値テストモジュールは、画素について深度値テストを行い、画素の4つのサンプリング点が三角形により全て覆われているか否かを判断し、4つのサンプリング点が三角形により全て覆われている場合には、第1の所定の規則に基づき、画素の中心における深度値の比較のみを行って、4つのサンプリング点の深度値を比較により得られた中心の深度値に置き換え、4つのサンプリング点が三角形により全ては覆われていない場合には、第2の所定の規則に基づいて、各サンプリング点の深度値を比較し、比較により得られた4つのサンプリング点の深度値をキャッシュに記憶し、
前記画素処理モジュールは、画素について最終色処理を行い、前記4つのサンプリング点が三角形により全て覆われているか否かを判断し、三角形により全て覆われている場合には、画素の中心点位置の色を前記4つのサンプリング点に複製し、三角形により全ては覆われていない場合には、前記画素における4つのサンプリング点の色を混合することを特徴とするシステム。
【請求項9】
更に、色演算モジュール、プログラマブルシェーディング処理モジュール、表示フォーマット変換モジュール、及び記憶・アクセス・制御モジュールを含み、
前記色演算モジュールは画素について色演算を行い、
プログラマブルシェーディング処理モジュールは、画素についてプログラマブルシェーディング処理を行い、
前記表示フォーマット変換モジュールは、データをディスプレイに対応するフォーマットに変換し、
前記記憶・アクセス・制御モジュールは、深度値をキャッシュして、最後に外部記憶装置に記憶することを特徴とする請求項8に記載のエッジをアンチエイリアスするグラフィックスシステム。
【請求項10】
コンピュータプログラムが記憶されているコンピュータで読み取り可能な記憶媒体であって、
当該プログラムは、プロセッサにより実行される際に、請求項1~7のいずれか1項に記載のエッジをアンチエイリアスするグラフィックス処理方法を実現することを特徴とする記憶媒体。
【請求項11】
エッジをアンチエイリアスするグラフィックス処理装置であって、
プロセッサとメモリを含み、
前記メモリはコンピュータプログラムを記憶し、
前記プロセッサは前記メモリに接続され、前記エッジをアンチエイリアスするグラフィックス処理装置が請求項1~7のいずれか1項に記載のエッジをアンチエイリアスするグラフィックス処理方法を実行するように、前記メモリに記憶されているコンピュータプログラムを実行することを特徴とする装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像処理の技術分野に関し、特に、エッジをアンチエイリアスするグラフィックス処理方法、システム、記憶媒体及び装置に関する。
【背景技術】
【0002】
3次元グラフィックスでは、各領域が画素により構成され、各瞬間がフレームにより構成される。技術的限界から、3次元世界の全てのものを十分にサンプリングして表現することはできておらず、移行エッジにエイリアスやちらつき等の歪みが生じる結果、画質に深刻な影響が及んでいる。
【0003】
従来の3次元GPU(Graphics Processing Unit)では、解像度を理由として、画素自体が大きさを有することから、三角形のエッジの画素にエイリアス効果が出現する。エイリアス効果を解消するために、従来のマルチサンプリングアンチエイリアス(MSAA:Multi Sampling Anti-Aliasing)では、各画素に対するサンプリングレートを高めることで問題を解決している。1つの画素における一部のサンプリング点のみが現時点の三角形の内部に存在する場合、この画素点の色に対する現時点の三角形の貢献度は、サンプリング点のカバー率に比例する。そのため、三角形の境界部分の色を、隣接する三角形に対応する画素の色と比率に応じて混合した結果とすることで、三角形のエッジにおけるエイリアス効果が解消される。マルチサンプリングでは、単一のサンプリング点ではなく複数のサンプリング点を用いることで三角形のカバー範囲を決定する。この場合、各画素の中心におけるサンプリング点を使用する代わりに4つのサンプルを使用し、これらを用いて画素のカバー率を決定する。これは、カラーバッファの大きさも各画素のサブサンプルの増加に伴って増加したことを意味する。しかし、こうした方法の欠点として、画素のサンプリングを4倍とするアンチエイリアスの場合には、各画素につき4回のサンプリングが必要となるため、GPUにおける多くの処理ユニットが外部の記憶装置との間でデータの読み書きを4倍行わねばならない。また、パイプラインでの演算にも4倍の処理量が必要となる。組み込み型のGPUの場合、通常は外部記憶装置のアクセス帯域幅に限界があることから、読み書き帯域幅が4倍になると、記憶及びアクセスがGPU性能のボトルネックとなり、GPUの性能を低下させてしまう。また、パイプラインで4倍の演算が必要になるため、GPUのスループットが低下し、消費電力が増加する。
【0004】
各画素の描画は、当該画素が完全に多角形の内部に位置するか否かによって決定される。当該画素が多角形の内部に位置する場合には当該画素をレンダリングするが、位置しない場合にはレンダリングしない。しかし、これが正確でないことは言うまでもない。一部の画素はちょうどエッジ上に位置する。そのため、ある画素における多角形の内部に位置する領域の大きさに基づき当該画素のレンダリングを決定すれば、得られる効果はより良好となるはずである。最終的に、画素の色は多角形の色とその外部の色との混合色となる。この場合には性能の消耗が懸念されるが、実際のところその通りである。しかし、各画素についてマルチサンプリングを行うことで、最終結果を近似及び推定可能となる。
【0005】
マルチサンプリングアンチエイリアスでは、各画素についてマルチサンプリングを実施したあと、これらのサンプリング結果を混合することで当該画素の最終値を決定する。サンプリング点は、画素内部の異なる部位に位置する。言うまでもなく、大多数のサンプリング点は多角形の内部に位置するが、多角形のエッジに位置する画素については、一部のサンプリング点が多角形の外部に位置する。各画素について4回のサンプリングを行う場合、ラスタライズの頻度はマルチサンプリングを行わないときの4倍となる。各画素に対しフラグメントシェーダは1回実行されるが、出力結果は4つのサンプリング点のうち多角形の内部に位置する数で決定される。
【0006】
一方、ファストサンプリングアンチエイリアス(FSAA:Fast Sample Anti-Alias)によれば、システムの帯域幅やオーバーヘッドが節約されるが、画像が真にアップサンプリング処理されるわけではなく、濾波器により拡大・縮小処理されるため、アンチエイリアスの効果が理想的とはいえない。特に、複数の物体のエッジが交錯している場合には、画質の問題や物体の位置ズレが生じやすい。
【0007】
このように、3次元GPUにおけるチップメモリの読み書き帯域幅や画素処理量が増加し、GPU性能が低下することが課題となっている。
【発明の概要】
【発明が解決しようとする課題】
【0008】
上述した従来技術の欠点に鑑みて、本発明は、従来技術では大部分の画素について4回の深度値演算とテスト及び色処理を必要とすることから、処理効率が低下するとの課題を解決するためのエッジをアンチエイリアスするグラフィックス処理方法、システム、記憶媒体及び装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記の目的及びその他関連の目的を実現するために、本発明は、エッジをアンチエイリアスするグラフィックス処理方法を提供する。当該方法は、画素について水平及び垂直に2倍のサンプリング処理を行い、ラスタライズを実行して、4つのサンプリング点を取得するとともに、前記4つのサンプリング点が三角形により全て覆われているか否かを判断し、前記4つのサンプリング点が三角形により全て覆われている場合には、画素の中心点位置における深度値のみを演算し、前記画素の中心点位置における深度値を前記4つのサンプリング点に複製するとともに、前記4つのサンプリング点が属する画素の一倍画素フラグを第1の値とし、前記4つのサンプリング点が三角形により全ては覆われていない場合には、前記4つのサンプリング点の深度値をそれぞれ演算し、前記4つのサンプリング点が属する画素の一倍画素フラグを第2の値とするステップと、画素について深度値テストを行い、画素の4つのサンプリング点が三角形により全て覆われているか否かを判断し、4つのサンプリング点が三角形により全て覆われている場合には、第1の所定の規則に基づき、画素の中心における深度値の比較のみを行って、4つのサンプリング点の深度値を比較により得られた中心の深度値に置き換え、4つのサンプリング点が三角形により全ては覆われていない場合には、第2の所定の規則に基づいて、各サンプリング点の深度値を比較し、比較により得られた4つのサンプリング点の深度値をキャッシュに記憶するとともに、最後に外部記憶装置に書き込むステップと、画素について最終色処理を行い、前記4つのサンプリング点が三角形により全て覆われているか否かを判断し、三角形により全て覆われている場合には、画素の中心点位置の色を前記4つのサンプリング点に複製し、三角形により全ては覆われていない場合には、前記画素における4つのサンプリング点の色を混合するステップ、を含む。
【0010】
本発明の一実施例において、画素について深度値テストを行ったあとに、更に、画素の色演算を行うとともに、画素のプログラマブルシェーディング処理を行う。
【0011】
本発明の一実施例において、更に、データをディスプレイに対応するフォーマットに変換し、外部記憶装置に伝送する。
【0012】
本発明の一実施例において、画素について最終色処理を行う前に、更に、テクスチャマッピングを行う。
【0013】
本発明の一実施例において、画素について最終色処理を行う前に、更に、画素について深度値テストを行って、4つのサンプリング点が三角形により全て覆われているか否かを判断し、4つのサンプリング点が三角形により全て覆われている場合には、第1の所定の規則に基づき、画素の中心における深度値の比較のみを行って、4つのサンプリング点の深度値を比較により得られた中心の深度値に置き換え、4つのサンプリング点が三角形により全ては覆われていない場合には、第2の所定の規則に基づいて、各サンプリング点の深度値を比較し、比較により得られた4つのサンプリング点の深度値をキャッシュに記憶するとともに、最後に外部記憶装置に書き込む。
【0014】
本発明の一実施例において、深度値テストを行う際に、深度値がキャッシュに記憶されていない場合には、外部記憶装置からデータを読み取る必要があり、画素群に含まれる画素の一倍画素フラグが全て第1の値である場合には、前記画素群を解凍し、前記画素群のビット数の大きさに基づいて64B又は32Bのデータを返し、前記データを256B又は128Bに展開してキャッシュに記憶し、画素群に含まれる画素の一倍画素フラグが全て第1の値とは限らない場合には、前記画素群を解凍し、前記画素群のビット数の大きさに基づいて256B又は128Bのデータを返す。
【0015】
本発明の一実施例において、前記画素群の状態は1桁の十六進表記で表し、0は4倍サンプリング画素の圧縮失敗を示し、1は4倍サンプリング画素のリセット値を示し、2、4、6、8、0xA、0xC、0xEは4倍サンプリング画素の7種類の圧縮結果を示し、3は一倍画素32Bの圧縮結果を示し、5は一倍画素の圧縮失敗を示し、0xFは一倍画素のリセット値を示す。
【0016】
上記の目的を実現するために、本発明は、更に、エッジをアンチエイリアスするグラフィックス処理システムを提供する。当該システムは、深度演算モジュール、深度値テストモジュール及び画素処理モジュールを含む。前記深度演算モジュールは、画素について水平及び垂直に2倍のサンプリング処理を行い、ラスタライズを実行して、4つのサンプリング点を取得するとともに、前記4つのサンプリング点が三角形により全て覆われているか否かを判断する。前記4つのサンプリング点が三角形により全て覆われている場合には、画素の中心点位置における深度値のみを演算し、前記画素の中心点位置における深度値を前記4つのサンプリング点に複製するとともに、前記4つのサンプリング点が属する画素の一倍画素フラグを第1の値とする。また、前記4つのサンプリング点が三角形により全ては覆われていない場合には、前記4つのサンプリング点の深度値をそれぞれ演算し、前記4つのサンプリング点が属する画素の一倍画素フラグを第2の値とする。前記深度値テストモジュールは、画素について深度値テストを行い、画素の4つのサンプリング点が三角形により全て覆われているか否かを判断する。4つのサンプリング点が三角形により全て覆われている場合には、第1の所定の規則に基づき、画素の中心における深度値の比較のみを行って、4つのサンプリング点の深度値を比較により得られた中心の深度値に置き換える。また、4つのサンプリング点が三角形により全ては覆われていない場合には、第2の所定の規則に基づいて、各サンプリング点の深度値を比較し、比較により得られた4つのサンプリング点の深度値をキャッシュに記憶する。前記画素処理モジュールは、画素について最終色処理を行い、前記4つのサンプリング点が三角形により全て覆われているか否かを判断し、三角形により全て覆われている場合には、画素の中心点位置の色を前記4つのサンプリング点に複製し、三角形により全ては覆われていない場合には、前記画素における4つのサンプリング点の色を混合する。
【0017】
本発明の一実施例では、更に、色演算モジュール、プログラマブルシェーディング処理モジュール、表示フォーマット変換モジュール、及び記憶・アクセス・制御モジュールを含む。前記色演算モジュールは画素について色演算を行い、プログラマブルシェーディング処理モジュールは、画素についてプログラマブルシェーディング処理を行い、前記表示フォーマット変換モジュールは、データをディスプレイに対応するフォーマットに変換し、前記記憶・アクセス・制御モジュールは、深度値をキャッシュして、最後に外部記憶装置に記憶する。
【0018】
上記の目的を実現するために、本発明は、更に、コンピュータプログラムが記憶されているコンピュータで読み取り可能な記憶媒体を提供する。当該プログラムは、プロセッサにより実行される際に、上記いずれかのエッジをアンチエイリアスするグラフィックス処理方法を実現する。
【0019】
最後に、本発明は、エッジをアンチエイリアスするグラフィックス処理装置を更に提供する。当該装置は、プロセッサとメモリを含み、前記メモリはコンピュータプログラムを記憶し、前記プロセッサは前記メモリに接続され、前記エッジをアンチエイリアスするグラフィックス処理装置が上記いずれかのエッジをアンチエイリアスするグラフィックス処理方法を実行するように、前記メモリに記憶されているコンピュータプログラムを実行する。
【発明の効果】
【0020】
上述したように、本発明におけるエッジをアンチエイリアスするグラフィックス処理方法、システム、記憶媒体及び装置は、以下の有益な効果を有する。即ち、グラフィックス処理において外部の記憶データを読み取る際の帯域幅が節約される。また、大部分の画素は、深度値の演算・テスト、及び色等の属性の処理を1回のみ行えばよいため、処理を要するデータ量が大幅に減少する。
【図面の簡単な説明】
【0021】
【
図1】
図1は、本発明のエッジをアンチエイリアスするグラフィックス処理方法の一実施例におけるフローチャートを示す。
【
図2】
図2は、本発明のエッジをアンチエイリアスするグラフィックス処理システムの一実施例における構造を示す。
【
図3】
図3は、本発明のエッジをアンチエイリアスするグラフィックス処理システムの他の実施例における構造を示す。
【
図4】
図4は、本発明のエッジをアンチエイリアスするグラフィックス処理システムの更なる実施例における構造を示す。
【
図5】
図5は、本発明のエッジをアンチエイリアスするグラフィックス処理装置の一実施例における構造を示す。
【発明を実施するための形態】
【0022】
以下に、特定の具体的実施例によって本発明の実施形態を説明する。当業者は、本明細書に開示の内容から容易に本発明のその他の利点と効果を理解可能である。本発明は、その他の異なる具体的実施形態で実施又は応用してもよい。また、本明細書の各詳細事項は、異なる観点及び応用に基づいて、本発明の精神を逸脱しないことを前提に各種の補足又は変更を加えてもよい。なお、以下の実施例及び実施例における特徴は、互いに矛盾しないことを前提に組み合わせてもよい。
【0023】
なお、以下の実施例で提供する図面は本発明の基本思想を概略的に説明するものである。よって、図面には本発明に関連するモジュールのみを示しており、実際に実施する際のモジュールの数、形状及びサイズで記載しているわけではない。実際に実施する際の各モジュールの形態、数量及び比率は任意に変えてもよく、且つ、モジュールの配置形態がより複雑になる場合もある。
【0024】
本発明におけるエッジをアンチエイリアスするグラフィックス処理方法、システム、記憶媒体及び装置は、画素における4つのサンプリング点が三角形により全て覆われているか否かを判断することで、グラフィックス処理において外部の記憶データを読み取る際の帯域幅を更に節約する。大部分の画素は、深度値の演算・テスト、及び色等の属性の処理を1回のみ行えばよいため、処理を要するデータ量が大幅に減少する。これにより、画素の処理は15~50%減少し、且つ、帯域幅の消費については20~50%低減する。本発明は、GPUの圧縮アルゴリズムと連動させることで、更にシステムの帯域幅を節約可能となる。
【0025】
図1に示すように、一実施例において、本発明におけるエッジをアンチエイリアスするグラフィックス処理方法は、以下のステップを含む。
【0026】
ステップS11:画素について水平及び垂直に2倍のサンプリング処理を行い、ラスタライズを実行して、4つのサンプリング点を取得するとともに、前記4つのサンプリング点が三角形により全て覆われているか否かを判断する。前記4つのサンプリング点が三角形により全て覆われている場合には、画素の中心点位置における深度値のみを演算し、前記画素の中心点位置における深度値を前記4つのサンプリング点に複製するとともに、前記4つのサンプリング点が属する画素の一倍画素フラグを第1の値とする。また、前記4つのサンプリング点が三角形により全ては覆われていない場合には、前記4つのサンプリング点の深度値をそれぞれ演算し、前記4つのサンプリング点が属する画素の一倍画素フラグを第2の値とする。
【0027】
本発明の一実施例では、上記の画素について水平及び垂直方向の双方に2倍のサンプリング処理を実施する。ラスタライズとは、幾何データに一連の変換を加えたあと、最終的に画素に変換することで表示デバイスに表示する過程である。ラスタライズの本質は、座標変換と幾何的離散化である。前記画素について水平及び垂直に2倍のサンプリング処理を行い、ラスタライズを実行したあと、4つのサンプリング点を取得するとともに、前記の同一の画素からサンプリングして得た4つのサンプリング点が同一の三角形により全て覆われているか否かを判断する。前記4つのサンプリング点が三角形により全て覆われている場合には、画素の中心点位置における深度値のみを演算し、前記画素の中心点位置における深度値を前記4つのサンプリング点に複製する。前記画素の中心点位置における深度値は、前記画素の物理的中心点位置における深度値である。また、前記画素は一倍画素フラグを有する。前記4つのサンプリング点が三角形により全て覆われている場合には、前記一倍画素フラグの値を第1の値とする。具体的に、前記第1の値は1である。また、判断の結果、前記同一の画素からサンプリングして得た4つのサンプリング点が三角形により全ては覆われていない場合には、前記4つのサンプリング点の深度値をそれぞれ演算し、前記4つのサンプリング点が属する画素の一倍画素フラグを第2の値とする。具体的に、前記第2の値は0である。
【0028】
ステップS12:画素について深度値テストを行い、画素の4つのサンプリング点が三角形により全て覆われているか否かを判断する。4つのサンプリング点が三角形により全て覆われている場合には、第1の所定の規則に基づき、画素の中心における深度値の比較のみを行って、4つのサンプリング点の深度値を比較により得られた中心の深度値に置き換える。また、4つのサンプリング点が三角形により全ては覆われていない場合には、第2の所定の規則に基づいて、各サンプリング点の深度値を比較し、比較により得られた4つのサンプリング点の深度値をキャッシュに記憶するとともに、最後に外部記憶装置に書き込む。
【0029】
本発明の一実施例では、画素について深度値テストを行い、前記4つのサンプリング点が三角形により全て覆われているか、前記4つのサンプリング点が属する画素の一倍画素フラグの値が第1の値である場合、画素の中心における深度値の比較のみを行う。そして、比較に合格した場合には、4つのサンプリング点の深度値を比較により得られた中心における深度値に置き換える。一方、4つのサンプリング点が三角形により全ては覆われていないか、前記4つのサンプリング点が属する画素の一倍画素フラグの値が第2の値である場合には、各サンプリング点の深度値を比較する。そして、比較に合格した場合には、比較により得られた4つのサンプリング点の深度値をキャッシュに記憶し、最後に外部記憶装置に書き込む。
【0030】
本発明の一実施例では、深度値の読取要求をキャッシュに送信する。深度値のデータがすでにキャッシュに存在する場合には、パイプライン後段に送信して深度値を比較する。また、存在しない場合には、256B/128Bのデータ読取要求を記憶・アクセス・制御ユニットに送信する。すると、記憶・アクセス・制御ユニットは、まず、対応する画素群(キャッシュ行)の状態を検査する。前記画素群は複数の画素を含む。
【0031】
本発明の一実施例において、前記画素群の状態は1桁の十六進表記で表す。0は4倍サンプリング画素の圧縮失敗を示し、1は4倍サンプリング画素のリセット値を示す。また、2、4、6、8、0xA、0xC、0xEは4倍サンプリング画素の7種類の圧縮結果を示す。3は一倍画素32Bの圧縮結果、5は一倍画素の圧縮失敗、0xFは一倍画素のリセット値を示す。
【0032】
本発明の一実施例では、深度値テストを行う際に、深度値がキャッシュに記憶されていない場合、外部記憶装置からデータを読み取る必要がある。画素群に含まれる画素の一倍画素フラグが全て第1の値である場合には、前記画素群を解凍し、前記画素群のビット数の大きさに基づいて64B又は32Bのデータを返す。そして、前記データを256B又は128Bに展開してからキャッシュに記憶し、前記画素群の一倍画素フラグを第1の値とする。また、画素群に含まれる画素の一倍画素フラグが全て第1の値とは限らない場合には、前記画素群を解凍し、前記画素群のビット数の大きさに基づいて256B又は128Bのデータを返し、画素群の一倍画素フラグを第2の値とする。
【0033】
前記深度値データはキャッシュに戻されたあと、読み取られてパイプラインの後段に送られ、深度値の比較が行われる。また、比較結果に基づいて深度値と当該画素の一倍画素フラグが更新される。更新された深度値はキャッシュに書き込まれる。前記画素群における各画素の一倍画素フラグが全て第1の値である場合には、前記画素群の一倍画素フラグを前記画素の一倍画素フラグに更新する。即ち、前記画素群の一倍画素フラグを第1の値とする。いずれかのキャッシュ行が置き換えられた場合には、記憶・アクセス・制御ユニットが当該画素群の一倍画素フラグを検査する。そして、第1の値である場合には、64B又は32Bのデータを読み取って圧縮したあと、外部記憶装置に書き出す。また、第2の値である場合には、256B又は128Bのデータを読み取って圧縮したあと、外部記憶装置に書き出す。
【0034】
本発明の一実施例では、画素について深度値テストを行ったあと、更に、画素の色演算を行うとともに、画素のプログラマブルシェーディング処理を行う。前記色演算とは前記画素の色を演算することであり、前記画素のプログラマブルシェーディング処理とは、前記画素をシェーディング処理することである。
【0035】
本発明の一実施例では、画素の色演算及び画素のプログラマブルシェーディング処理を行ったあと、画素について最終色処理を行う前に、更にテクスチャマッピングを行う。データをテクスチャマッピングユニットに送信して処理し、テクスチャマッピングを行う際に、記憶・アクセス・制御ユニットが外部からデータを読み取る必要がある場合には、まず、記憶・アクセス・制御ユニットが読み取り対象のデータに対応する画素群の状態を検査する必要がある。そして、当該画素群の一倍画素フラグが第1の値である場合には、記憶・アクセス・制御ユニットが前記画素群を解凍したあと、各画素のビット数に基づいて64B又は32Bのデータをテクスチャマッピングユニットに返す。テクスチャマッピングユニットは、データを256B又は128Bに展開してキャッシュに記憶し、最後に外部記憶装置に書き込む。また、当該画素群の一倍画素フラグが第2の値である場合には、記憶・アクセス・制御ユニットが前記画素群を解凍したあと、各画素のビット数に基づいて256B又は128Bのデータをテクスチャマッピングユニットに返す。
【0036】
ステップS13:画素について最終色処理を行い、前記4つのサンプリング点が三角形により全て覆われているか否かを判断する。三角形により全て覆われている場合には、画素の中心点位置の色を前記4つのサンプリング点に複製し、三角形により全ては覆われていない場合には、前記画素における4つのサンプリング点の色を混合する。
【0037】
本発明の一実施例では、画素のプログラマブルシェーディング処理を行ったあと、画素について最終色処理を行う前に、更に、画素について深度値テストを行って、4つのサンプリング点が三角形により全て覆われているか否かを判断する。4つのサンプリング点が三角形により全て覆われている場合には、第1の所定の規則に基づき、画素の中心における深度値の比較のみを行って、4つのサンプリング点の深度値を比較により得られた中心の深度値に置き換える。また、4つのサンプリング点が三角形により全ては覆われていない場合には、第2の所定の規則に基づいて、各サンプリング点の深度値を比較し、比較により得られた4つのサンプリング点の深度値をキャッシュに記憶するとともに、最後に外部記憶装置に書き込む。深度値テストを行う際に、深度値がキャッシュに記憶されていない場合には、外部記憶装置からデータを読み取る必要がある。画素群に含まれる画素の一倍画素フラグが全て第1の値である場合には、前記画素群を解凍し、前記画素群のビット数の大きさに基づいて64B又は32Bのデータを返す。そして、前記データを256B又は128Bに展開してからキャッシュに記憶し、前記画素群の一倍画素フラグを第1の値とする。また、画素群に含まれる画素の一倍画素フラグが全て第1の値とは限らない場合には、前記画素群を解凍し、前記画素群のビット数の大きさに基づいて256B又は128Bのデータを返し、画素群の一倍画素フラグを第2の値とする。
【0038】
前記深度値データはキャッシュに戻されたあと、読み取られてパイプラインの後段に送られ、深度値の比較が行われる。また、比較結果に基づいて深度値と当該画素の一倍画素フラグが更新される。更新された深度値はキャッシュに書き込まれる。前記画素群における各画素の一倍画素フラグが全て第1の値である場合には、前記画素群の一倍画素フラグを前記画素の一倍画素フラグに更新する。即ち、前記画素群の一倍画素フラグを第1の値とする。いずれかのキャッシュ行が置き換えられた場合には、記憶・アクセス・制御ユニットが当該画素群の一倍画素フラグを検査する。そして、第1の値である場合には、64B又は32Bのデータを読み取って圧縮したあと、外部記憶装置に書き出す。また、第2の値である場合には、256B又は128Bのデータを読み取って圧縮したあと、外部記憶装置に書き出す。
【0039】
本発明の一実施例において、画素につき最終色処理を行う際には、目的の画素の色値を読み取る必要があるか否かを判断し、読み取る必要がある場合には、前記画素の色値の読取要求をキャッシュに送信する。そして、前記色値がすでにキャッシュに存在する場合には、パイプラインに送信して色の混合操作を行う。また、存在しない場合には、256B又は128Bの色値読取要求を記憶・アクセス・制御ユニットに送信する。すると、前記記憶・アクセス・制御ユニットは、まず、前記画素に対応する画素群に含まれる全ての画素の一倍画素フラグが第1の値であるか否かを検査する。そして、当該画素群における全ての画素の一倍画素フラグが第1の値である場合、記憶・アクセス・制御ユニットは前記画素群を解凍したあと、各画素のビット数に基づいて64B又は32Bのデータを画素処理ユニットに返す。画素処理ユニットは、前記データを256B又は128Bに展開してからキャッシュに記憶し、当該画素群の一倍画素フラグを第1の値とする。また、画素群に含まれる画素の一倍画素フラグが全て第1の値とは限らない場合には、前記画素群を解凍し、前記画素群のビット数の大きさに基づいて256B又は128Bのデータを返し、画素群の一倍画素フラグを第2の値とする。データはキャッシュに戻されたあと、読み取られてパイプラインの後段に送られ、色の混合処理が行われる。パイプラインの後段では画素について最終色処理を行い、前記4つのサンプリング点が三角形により全て覆われているか否かを判断する。三角形により全て覆われている場合には、画素の中心点位置の色を前記4つのサンプリング点に複製し、三角形により全ては覆われていない場合には、前記画素における4つのサンプリング点の色を混合する。或いは、前記4つのサンプリング点が属する画素の一倍画素フラグが第1の値か否かを判断し、第1の値である場合には、画素の中心点位置の色を前記4つのサンプリング点に複製する。また、第2の値である場合には、前記画素における4つのサンプリング点の色を混合処理する。そして、画素の色処理のあと、キャッシュへ書き込みを行う。また、いずれかのキャッシュ行が置き換えられた場合には、記憶・アクセス・制御ユニットが当該キャッシュ行の一倍画素フラグが第1の値であるか否かを検査する。そして、第1の値である場合には、64B又は32Bのデータを読み取って圧縮したあと、外部記憶装置に記憶する。また、第2の値である場合には、256B又は128Bのデータを読み取って圧縮したあと、外部記憶装置に記憶する。
【0040】
本発明の一実施例では、更に、データをディスプレイに対応するフォーマットに変換し、外部記憶装置に伝送する。内部のデータ配列のフォーマットはディスプレイで表示可能な線形フォーマットとは異なるため、表示フォーマット変換ユニットは、処理済みのデータを再び読み取って、ディスプレイに対応するフォーマットに変換してから外部記憶装置に記憶する必要がある。表示フォーマット変換ユニットは、256B又は128Bの読取要求を記憶・アクセス・制御ユニットに送信する。すると、記憶・アクセス・制御ユニットは、まず、対応する画素群の一倍画素フラグを検査する。当該画素群の一倍画素フラグが第1の値である場合、記憶・アクセス・制御ユニットは、解凍後に各画素のビット数に基づいて64B又は32Bのデータを表示フォーマット変換ユニットに返す。表示フォーマット変換ユニットは、データを256B又は128Bに展開してキャッシュに書き込む。一方、第1の値でない場合、記憶・アクセス・制御ユニットは、解凍後に256B又は128Bのデータを表示フォーマット変換ユニットに返す。本発明の一実施例において、256Bのデータに対応する画素群は、8×8(深度値32bpp)、16×8(16bpp)、8×16(16bpp)、16×16(8bpp)及び8×4(64bpp)である。また、128Bのデータに対応する画素群は、8×4(32bpp)、4×8(32bpp)、8×8(16bpp)、8×16(8bpp)、16×8(8bpp)及び4×4(64bpp)である。
【0041】
図2に示すように、一実施例において、本発明のエッジをアンチエイリアスするグラフィックス処理システムは、深度演算モジュール21、深度値テストモジュール22及び画素処理モジュール23を含む。
【0042】
前記深度演算モジュール21は、画素について水平及び垂直に2倍のサンプリング処理を行い、ラスタライズを実行して、4つのサンプリング点を取得するとともに、前記4つのサンプリング点が三角形により全て覆われているか否かを判断する。前記4つのサンプリング点が三角形により全て覆われている場合には、画素の中心点位置における深度値のみを演算し、前記画素の中心点位置における深度値を前記4つのサンプリング点に複製するとともに、前記4つのサンプリング点が属する画素の一倍画素フラグを第1の値とする。また、前記4つのサンプリング点が三角形により全ては覆われていない場合には、前記4つのサンプリング点の深度値をそれぞれ演算し、前記4つのサンプリング点が属する画素の一倍画素フラグを第2の値とする。
【0043】
前記深度値テストモジュール22は、画素について深度値テストを行い、画素の4つのサンプリング点が三角形により全て覆われているか否かを判断する。4つのサンプリング点が三角形により全て覆われている場合には、第1の所定の規則に基づき、画素の中心における深度値の比較のみを行って、4つのサンプリング点の深度値を比較により得られた中心の深度値に置き換える。また、4つのサンプリング点が三角形により全ては覆われていない場合には、第2の所定の規則に基づいて、各サンプリング点の深度値を比較し、比較により得られた4つのサンプリング点の深度値をキャッシュに記憶するとともに、最後に外部記憶装置に書き込む。
【0044】
前記画素処理モジュール23は、画素について最終色処理を行い、前記4つのサンプリング点が三角形により全て覆われているか否かを判断する。三角形により全て覆われている場合には、画素の中心点位置の色を前記4つのサンプリング点に複製し、三角形により全ては覆われていない場合には、前記画素における4つのサンプリング点の色を混合する。
【0045】
図3に示すように、一実施例において、本発明のエッジをアンチエイリアスするグラフィックス処理システムは、深度演算モジュール21、深度値テストモジュール22及び画素処理モジュール23のほかに、色演算モジュール24、プログラマブルシェーディング処理モジュール25、表示フォーマット変換モジュール26及び記憶・アクセス・制御モジュール27を更に含む。
【0046】
前記色演算モジュール24は、前記画素の色を演算する。
【0047】
前記プログラマブルシェーディング処理モジュール25は、前記画素をシェーディング処理する。
【0048】
前記表示フォーマット変換モジュール26は、データをディスプレイに対応するフォーマットに変換して外部記憶装置に伝送する。
【0049】
前記記憶・アクセス・制御モジュール27は、各モジュールの読取命令を受け付け、外部記憶装置に対しデータの読み取り及び伝送を行う。
【0050】
その他のモジュールの機能は上記実施例と同様のため、ここでは改めて詳述しない。
図4に示すように、一実施例において、本発明におけるエッジをアンチエイリアスするグラフィックス処理システムは、深度演算モジュール21、深度値テストモジュール22、画素処理モジュール23、色演算モジュール24、プログラマブルシェーディング処理モジュール25、表示フォーマット変換モジュール26及び記憶・アクセス・制御モジュール27のほかに、命令・頂点処理モジュール28、ラスタライズモジュール29及びテクスチャマッピングモジュール30を更に含む。
【0051】
前記命令・頂点処理モジュール28は、エッジをアンチエイリアスするグラフィックス処理命令の起動と、三角形の頂点情報の読み取りを行う。
【0052】
前記ラスタライズモジュール29は、画素について水平及び垂直に2倍のサンプリング処理を行ったあと、ラスタライズを行って4つのサンプリング点を取得する。
【0053】
前記テクスチャマッピングモジュール30は、データをテクスチャマッピング処理する。
【0054】
その他のモジュールの機能は上記実施例と同様のため、ここでは改めて詳述しない。
【0055】
なお、上記システムにおける各モジュールの区分は論理機能に基づく区分であって、実際に実現する際には、全部或いは一部を1つの物理的実体に集積してもよいし、物理的に切り離してもよい。且つ、これらのモジュールは、全てをソフトウエアとして処理デバイスで呼び出す形式で実現してもよいし、全てをハードウエア形式で実現してもよいし、一部のモジュールを処理デバイスによりソフトウエアを呼び出す形式で実現してもよいし、一部のモジュールをハードウエア形式で実現してもよい。例えば、xモジュールは単独で設置した処理デバイスとしてもよいし、上記装置のいずれかのチップに集積して実現してもよい。また、プログラムコードの形式で上記装置のメモリに記憶してもよいし、上記装置のいずれかの処理デバイスにより上記xモジュールの機能を呼び出して実行してもよい。その他のモジュールの実現についてもこれと同様である。また、これらのモジュールの全部又は一部を一体的に集積してもよいし、単独で実現してもよい。ここでいう処理デバイスは、信号処理能力を有する集積回路とすればよい。実現過程において、上記方法の各ステップ又は上記各モジュールは、処理デバイスにおけるハードウエアの集積論理回路又はソフトウエア形式の命令により完了してもよい。
【0056】
例えば、上記のモジュールは、上記方法を実施する1又は複数の集積回路として配置すればよく、例えば、1又は複数の特定用途向け集積回路(Application Specific Integrated Circuit、ASICと略称)、又は、1又は複数のマイクロプロセッサ(Digital Singnal Processor、DSPと略称)、又は、1又は複数のフィールドプログラマブルゲートアレイ(Field Programmable Gate Array、FPGAと略称)等とすればよい。また、上記いずれかのモジュールを処理デバイスによりプログラムコードを呼び出す形式で実現する場合、当該処理デバイスは、例えば中央処理装置(Central Processing Unit、CPUと略称)やその他のプログラムコードを呼び出し可能なプロセッサといった汎用のプロセッサとすればよい。また、これらのモジュールは一体的に集積し、システムオンチップ(system-on-a-chip、SOCと略称)の形式で実現してもよい。
【0057】
本発明の一実施例において、本発明は、コンピュータプログラムが記憶されたコンピュータで読み取り可能な記憶媒体を更に含む。当該プログラムは、プロセッサにより実行される際に、上記いずれかのエッジをアンチエイリアスするグラフィックス処理方法を実現する。
【0058】
当業者であれば理解可能なように、上記各方法を実現する実施例の全部又は一部のステップは、コンピュータプログラムに関するハードウエアで遂行可能である。前記コンピュータプログラムは、コンピュータで読み取り可能な記憶媒体に記憶可能である。当該プログラムは、実行時に上記各方法の実施例を含むステップを実行する。また、前記記憶媒体、ROM、RAM、磁気ディスク又は光ディスク等のプログラムコードを記憶可能な各種媒体を含む。
【0059】
図5に示すように、一実施例において、本発明におけるエッジをアンチエイリアスするグラフィックス処理装置は、プロセッサ51とメモリ52を含む。前記メモリ52は、コンピュータプログラムを記憶する。前記プロセッサ51は前記メモリ52に接続されており、前記エッジをアンチエイリアスするグラフィックス処理装置がいずれかの前記エッジをアンチエイリアスするグラフィックス処理方法を実行するよう、前記メモリ52に記憶されているコンピュータプログラムを実行する。
【0060】
具体的に、前記メモリ52は、ROM、RAM、磁気ディスク、USB、メモリーカード又は光ディスク等のプログラムコードを記憶可能な各種媒体を含む。
【0061】
好ましくは、前記プロセッサ51は、中央処理装置(Central Processing Unit、CPUと略称)、ネットワークプロセッサ(Network Processor、NPと略称)等を含む汎用のプロセッサとしてもよいし、デジタルシグナルプロセッサ(Digital Signal Processor、DSPと略称)、特定用途向け集積回路(Application Specific Integrated Circuit、ASICと略称)、フィールドプログラマブルゲートアレイ(Field Programmable Gate Array、FPGAと略称)、又は、その他のプログラマブルロジックデバイス、ディスクリートゲート、又はトランジスタの論理デバイス、ディスクリートハードウエアユニットとしてもよい。
【0062】
上述したように、本発明のエッジをアンチエイリアスするグラフィックス処理方法、システム、記憶媒体及び装置によれば、グラフィックス処理における外部記憶データの読み取り帯域幅が節約される。また、大部分の画素は、深度値の演算・テスト及び色等の属性の処理を1回のみ行えばよいため、処理を要するデータ量が大幅に減少する。従って、本発明によれば、従来技術における様々な欠点が効果的に解消され、高度な産業上の利用価値を有する。
【0063】
なお、上記実施例は本発明の原理と効果を例示的に説明したものにすぎず、本発明を限定するものではない。本技術を熟知する者であれば、本発明の精神及び範疇を逸脱しないことを前提に、上記実施例を補足又は変形可能である。よって、当業者が本発明に開示される精神及び技術思想を逸脱することなく遂行するあらゆる等価の補足又は変更は、いずれも本発明の特許請求の範囲に含まれる。
【符号の説明】
【0064】
21 深度演算モジュール
22 深度値テストモジュール
23 画素処理モジュール
24 色演算モジュール
25 プログラマブルシェーディング処理モジュール
26 表示フォーマット変換モジュール
27 記憶・アクセス・制御モジュール
28 命令・頂点処理モジュール
29 ラスタライズモジュール
30 テクスチャマッピングモジュール
51 プロセッサ
52 メモリ