(57)【要約】      （修正有）【課題】グラフィックス処理において外部の記憶データを読み取る際の帯域幅を節約することができるグラフィックス処理方法、システム、記憶媒体及び装置を提供する。【解決手段】グラフィックス処理方法は、画素について水平及び垂直に２倍のサンプリング処理を行い、ラスタライズを実行して、４つのサンプリング点を取得するとともに、４つのサンプリング点が三角形により全て覆われているか否かを判断するステップと、画素について深度値テストを行い、画素の４つのサンプリング点が三角形により全て覆われているか否かを判断するステップと、画素について最終色処理を行い、４つのサンプリング点が三角形により全て覆われているか否かを判断し、三角形により全て覆われている場合には、画素の中心点位置の色を４つのサンプリング点に複製し、三角形により全ては覆われていない場合には、画素における４つのサンプリング点の色を混合するステップ、を含む。【選択図】図１
2020087458.tif 000002
【特許請求の範囲】
【請求項１】
エッジをアンチエイリアスするグラフィックス処理方法であって、
画素について水平及び垂直に２倍のサンプリング処理を行い、ラスタライズを実行して、４つのサンプリング点を取得するとともに、前記４つのサンプリング点が三角形により全て覆われているか否かを判断し、前記４つのサンプリング点が三角形により全て覆われている場合には、画素の中心点位置における深度値のみを演算し、前記画素の中心点位置における深度値を前記４つのサンプリング点に複製するとともに、前記４つのサンプリング点が属する画素の一倍画素フラグを第１の値とし、前記４つのサンプリング点が三角形により全ては覆われていない場合には、前記４つのサンプリング点の深度値をそれぞれ演算し、前記４つのサンプリング点が属する画素の一倍画素フラグを第２の値とするステップと、
画素について深度値テストを行い、画素の４つのサンプリング点が三角形により全て覆われているか否かを判断し、４つのサンプリング点が三角形により全て覆われている場合には、第１の所定の規則に基づき、画素の中心における深度値の比較のみを行って、４つのサンプリング点の深度値を比較により得られた中心の深度値に置き換え、４つのサンプリング点が三角形により全ては覆われていない場合には、第２の所定の規則に基づいて、各サンプリング点の深度値を比較し、比較により得られた４つのサンプリング点の深度値をキャッシュに記憶するとともに、最後に外部記憶装置に書き込むステップと、
画素について最終色処理を行い、前記４つのサンプリング点が三角形により全て覆われているか否かを判断し、三角形により全て覆われている場合には、画素の中心点位置の色を前記４つのサンプリング点に複製し、三角形により全ては覆われていない場合には、前記画素における４つのサンプリング点の色を混合するステップ、を含むことを特徴とするエッジをアンチエイリアスするグラフィックス処理方法。
【請求項２】
画素について深度値テストを行ったあとに、更に、画素の色演算を行うとともに、画素のプログラマブルシェーディング処理を行うことを特徴とする請求項１に記載のエッジをアンチエイリアスするグラフィックス処理方法。
【請求項３】
更に、データをディスプレイに対応するフォーマットに変換し、外部記憶装置に伝送することを特徴とする請求項１に記載のエッジをアンチエイリアスするグラフィックス処理方法。
【請求項４】
画素について最終色処理を行う前に、更に、テクスチャマッピングを行うことを特徴とする請求項１に記載のエッジをアンチエイリアスするグラフィックス処理方法。
【請求項５】
画素について最終色処理を行う前に、更に、画素について深度値テストを行って、４つのサンプリング点が三角形により全て覆われているか否かを判断し、４つのサンプリング点が三角形により全て覆われている場合には、第１の所定の規則に基づき、画素の中心における深度値の比較のみを行って、４つのサンプリング点の深度値を比較により得られた中心の深度値に置き換え、４つのサンプリング点が三角形により全ては覆われていない場合には、第２の所定の規則に基づいて、各サンプリング点の深度値を比較し、比較により得られた４つのサンプリング点の深度値をキャッシュに記憶するとともに、最後に外部記憶装置に書き込むことを特徴とする請求項１に記載のエッジをアンチエイリアスするグラフィックス処理方法。
【請求項６】
深度値テストを行う際に、深度値がキャッシュに記憶されていない場合には、外部記憶装置からデータを読み取る必要があり、画素群に含まれる画素の一倍画素フラグが全て第１の値である場合には、前記画素群を解凍し、前記画素群のビット数の大きさに基づいて６４Ｂ又は３２Ｂのデータを返し、前記データを２５６Ｂ又は１２８Ｂに展開してキャッシュに記憶し、画素群に含まれる画素の一倍画素フラグが全て第１の値とは限らない場合には、前記画素群を解凍し、前記画素群のビット数の大きさに基づいて２５６Ｂ又は１２８Ｂのデータを返すことを特徴とする請求項１に記載のエッジをアンチエイリアスするグラフィックス処理方法。
【請求項７】
前記画素群の状態は１桁の十六進表記で表し、０は４倍サンプリング画素の圧縮失敗を示し、１は４倍サンプリング画素のリセット値を示し、２、４、６、８、０ｘＡ、０ｘＣ、０ｘＥは４倍サンプリング画素の７種類の圧縮結果を示し、３は一倍画素３２Ｂの圧縮結果を示し、５は一倍画素の圧縮失敗を示し、０ｘＦは一倍画素のリセット値を示すことを特徴とする請求項６に記載のエッジをアンチエイリアスするグラフィックス処理方法。
【請求項８】
エッジをアンチエイリアスするグラフィックス処理システムであって、
深度演算モジュール、深度値テストモジュール及び画素処理モジュールを含み、
前記深度演算モジュールは、画素について水平及び垂直に２倍のサンプリング処理を行い、ラスタライズを実行して、４つのサンプリング点を取得するとともに、前記４つのサンプリング点が三角形により全て覆われているか否かを判断し、前記４つのサンプリング点が三角形により全て覆われている場合には、画素の中心点位置における深度値のみを演算し、前記画素の中心点位置における深度値を前記４つのサンプリング点に複製するとともに、前記４つのサンプリング点が属する画素の一倍画素フラグを第１の値とし、前記４つのサンプリング点が三角形により全ては覆われていない場合には、前記４つのサンプリング点の深度値をそれぞれ演算し、前記４つのサンプリング点が属する画素の一倍画素フラグを第２の値とし、
前記深度値テストモジュールは、画素について深度値テストを行い、画素の４つのサンプリング点が三角形により全て覆われているか否かを判断し、４つのサンプリング点が三角形により全て覆われている場合には、第１の所定の規則に基づき、画素の中心における深度値の比較のみを行って、４つのサンプリング点の深度値を比較により得られた中心の深度値に置き換え、４つのサンプリング点が三角形により全ては覆われていない場合には、第２の所定の規則に基づいて、各サンプリング点の深度値を比較し、比較により得られた４つのサンプリング点の深度値をキャッシュに記憶し、
前記画素処理モジュールは、画素について最終色処理を行い、前記４つのサンプリング点が三角形により全て覆われているか否かを判断し、三角形により全て覆われている場合には、画素の中心点位置の色を前記４つのサンプリング点に複製し、三角形により全ては覆われていない場合には、前記画素における４つのサンプリング点の色を混合することを特徴とするシステム。
【請求項９】
更に、色演算モジュール、プログラマブルシェーディング処理モジュール、表示フォーマット変換モジュール、及び記憶・アクセス・制御モジュールを含み、
前記色演算モジュールは画素について色演算を行い、
プログラマブルシェーディング処理モジュールは、画素についてプログラマブルシェーディング処理を行い、
前記表示フォーマット変換モジュールは、データをディスプレイに対応するフォーマットに変換し、
前記記憶・アクセス・制御モジュールは、深度値をキャッシュして、最後に外部記憶装置に記憶することを特徴とする請求項８に記載のエッジをアンチエイリアスするグラフィックスシステム。
【請求項１０】
コンピュータプログラムが記憶されているコンピュータで読み取り可能な記憶媒体であって、
当該プログラムは、プロセッサにより実行される際に、請求項１〜７のいずれか１項に記載のエッジをアンチエイリアスするグラフィックス処理方法を実現することを特徴とする記憶媒体。
【請求項１１】
エッジをアンチエイリアスするグラフィックス処理装置であって、
プロセッサとメモリを含み、
前記メモリはコンピュータプログラムを記憶し、
前記プロセッサは前記メモリに接続され、前記エッジをアンチエイリアスするグラフィックス処理装置が請求項１〜７のいずれか１項に記載のエッジをアンチエイリアスするグラフィックス処理方法を実行するように、前記メモリに記憶されているコンピュータプログラムを実行することを特徴とする装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理の技術分野に関し、特に、エッジをアンチエイリアスするグラフィックス処理方法、システム、記憶媒体及び装置に関する。
【背景技術】
【０００２】
３次元グラフィックスでは、各領域が画素により構成され、各瞬間がフレームにより構成される。技術的限界から、３次元世界の全てのものを十分にサンプリングして表現することはできておらず、移行エッジにエイリアスやちらつき等の歪みが生じる結果、画質に深刻な影響が及んでいる。
【０００３】
従来の３次元ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）では、解像度を理由として、画素自体が大きさを有することから、三角形のエッジの画素にエイリアス効果が出現する。エイリアス効果を解消するために、従来のマルチサンプリングアンチエイリアス（ＭＳＡＡ：Ｍｕｌｔｉ  Ｓａｍｐｌｉｎｇ  Ａｎｔｉ−Ａｌｉａｓｉｎｇ）では、各画素に対するサンプリングレートを高めることで問題を解決している。１つの画素における一部のサンプリング点のみが現時点の三角形の内部に存在する場合、この画素点の色に対する現時点の三角形の貢献度は、サンプリング点のカバー率に比例する。そのため、三角形の境界部分の色を、隣接する三角形に対応する画素の色と比率に応じて混合した結果とすることで、三角形のエッジにおけるエイリアス効果が解消される。マルチサンプリングでは、単一のサンプリング点ではなく複数のサンプリング点を用いることで三角形のカバー範囲を決定する。この場合、各画素の中心におけるサンプリング点を使用する代わりに４つのサンプルを使用し、これらを用いて画素のカバー率を決定する。これは、カラーバッファの大きさも各画素のサブサンプルの増加に伴って増加したことを意味する。しかし、こうした方法の欠点として、画素のサンプリングを４倍とするアンチエイリアスの場合には、各画素につき４回のサンプリングが必要となるため、ＧＰＵにおける多くの処理ユニットが外部の記憶装置との間でデータの読み書きを４倍行わねばならない。また、パイプラインでの演算にも４倍の処理量が必要となる。組み込み型のＧＰＵの場合、通常は外部記憶装置のアクセス帯域幅に限界があることから、読み書き帯域幅が４倍になると、記憶及びアクセスがＧＰＵ性能のボトルネックとなり、ＧＰＵの性能を低下させてしまう。また、パイプラインで４倍の演算が必要になるため、ＧＰＵのスループットが低下し、消費電力が増加する。
【０００４】
各画素の描画は、当該画素が完全に多角形の内部に位置するか否かによって決定される。当該画素が多角形の内部に位置する場合には当該画素をレンダリングするが、位置しない場合にはレンダリングしない。しかし、これが正確でないことは言うまでもない。一部の画素はちょうどエッジ上に位置する。そのため、ある画素における多角形の内部に位置する領域の大きさに基づき当該画素のレンダリングを決定すれば、得られる効果はより良好となるはずである。最終的に、画素の色は多角形の色とその外部の色との混合色となる。この場合には性能の消耗が懸念されるが、実際のところその通りである。しかし、各画素についてマルチサンプリングを行うことで、最終結果を近似及び推定可能となる。
【０００５】
マルチサンプリングアンチエイリアスでは、各画素についてマルチサンプリングを実施したあと、これらのサンプリング結果を混合することで当該画素の最終値を決定する。サンプリング点は、画素内部の異なる部位に位置する。言うまでもなく、大多数のサンプリング点は多角形の内部に位置するが、多角形のエッジに位置する画素については、一部のサンプリング点が多角形の外部に位置する。各画素について４回のサンプリングを行う場合、ラスタライズの頻度はマルチサンプリングを行わないときの４倍となる。各画素に対しフラグメントシェーダは１回実行されるが、出力結果は４つのサンプリング点のうち多角形の内部に位置する数で決定される。
【０００６】
一方、ファストサンプリングアンチエイリアス（ＦＳＡＡ：Ｆａｓｔ  Ｓａｍｐｌｅ  Ａｎｔｉ−Ａｌｉａｓ）によれば、システムの帯域幅やオーバーヘッドが節約されるが、画像が真にアップサンプリング処理されるわけではなく、濾波器により拡大・縮小処理されるため、アンチエイリアスの効果が理想的とはいえない。特に、複数の物体のエッジが交錯している場合には、画質の問題や物体の位置ズレが生じやすい。
【０００７】
このように、３次元ＧＰＵにおけるチップメモリの読み書き帯域幅や画素処理量が増加し、ＧＰＵ性能が低下することが課題となっている。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述した従来技術の欠点に鑑みて、本発明は、従来技術では大部分の画素について４回の深度値演算とテスト及び色処理を必要とすることから、処理効率が低下するとの課題を解決するためのエッジをアンチエイリアスするグラフィックス処理方法、システム、記憶媒体及び装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の目的及びその他関連の目的を実現するために、本発明は、エッジをアンチエイリアスするグラフィックス処理方法を提供する。当該方法は、画素について水平及び垂直に２倍のサンプリング処理を行い、ラスタライズを実行して、４つのサンプリング点を取得するとともに、前記４つのサンプリング点が三角形により全て覆われているか否かを判断し、前記４つのサンプリング点が三角形により全て覆われている場合には、画素の中心点位置における深度値のみを演算し、前記画素の中心点位置における深度値を前記４つのサンプリング点に複製するとともに、前記４つのサンプリング点が属する画素の一倍画素フラグを第１の値とし、前記４つのサンプリング点が三角形により全ては覆われていない場合には、前記４つのサンプリング点の深度値をそれぞれ演算し、前記４つのサンプリング点が属する画素の一倍画素フラグを第２の値とするステップと、画素について深度値テストを行い、画素の４つのサンプリング点が三角形により全て覆われているか否かを判断し、４つのサンプリング点が三角形により全て覆われている場合には、第１の所定の規則に基づき、画素の中心における深度値の比較のみを行って、４つのサンプリング点の深度値を比較により得られた中心の深度値に置き換え、４つのサンプリング点が三角形により全ては覆われていない場合には、第２の所定の規則に基づいて、各サンプリング点の深度値を比較し、比較により得られた４つのサンプリング点の深度値をキャッシュに記憶するとともに、最後に外部記憶装置に書き込むステップと、画素について最終色処理を行い、前記４つのサンプリング点が三角形により全て覆われているか否かを判断し、三角形により全て覆われている場合には、画素の中心点位置の色を前記４つのサンプリング点に複製し、三角形により全ては覆われていない場合には、前記画素における４つのサンプリング点の色を混合するステップ、を含む。
【００１０】
本発明の一実施例において、画素について深度値テストを行ったあとに、更に、画素の色演算を行うとともに、画素のプログラマブルシェーディング処理を行う。
【００１１】
本発明の一実施例において、更に、データをディスプレイに対応するフォーマットに変換し、外部記憶装置に伝送する。
【００１２】
本発明の一実施例において、画素について最終色処理を行う前に、更に、テクスチャマッピングを行う。
【００１３】
本発明の一実施例において、画素について最終色処理を行う前に、更に、画素について深度値テストを行って、４つのサンプリング点が三角形により全て覆われているか否かを判断し、４つのサンプリング点が三角形により全て覆われている場合には、第１の所定の規則に基づき、画素の中心における深度値の比較のみを行って、４つのサンプリング点の深度値を比較により得られた中心の深度値に置き換え、４つのサンプリング点が三角形により全ては覆われていない場合には、第２の所定の規則に基づいて、各サンプリング点の深度値を比較し、比較により得られた４つのサンプリング点の深度値をキャッシュに記憶するとともに、最後に外部記憶装置に書き込む。
【００１４】
本発明の一実施例において、深度値テストを行う際に、深度値がキャッシュに記憶されていない場合には、外部記憶装置からデータを読み取る必要があり、画素群に含まれる画素の一倍画素フラグが全て第１の値である場合には、前記画素群を解凍し、前記画素群のビット数の大きさに基づいて６４Ｂ又は３２Ｂのデータを返し、前記データを２５６Ｂ又は１２８Ｂに展開してキャッシュに記憶し、画素群に含まれる画素の一倍画素フラグが全て第１の値とは限らない場合には、前記画素群を解凍し、前記画素群のビット数の大きさに基づいて２５６Ｂ又は１２８Ｂのデータを返す。
【００１５】
本発明の一実施例において、前記画素群の状態は１桁の十六進表記で表し、０は４倍サンプリング画素の圧縮失敗を示し、１は４倍サンプリング画素のリセット値を示し、２、４、６、８、０ｘＡ、０ｘＣ、０ｘＥは４倍サンプリング画素の７種類の圧縮結果を示し、３は一倍画素３２Ｂの圧縮結果を示し、５は一倍画素の圧縮失敗を示し、０ｘＦは一倍画素のリセット値を示す。
【００１６】
上記の目的を実現するために、本発明は、更に、エッジをアンチエイリアスするグラフィックス処理システムを提供する。当該システムは、深度演算モジュール、深度値テストモジュール及び画素処理モジュールを含む。前記深度演算モジュールは、画素について水平及び垂直に２倍のサンプリング処理を行い、ラスタライズを実行して、４つのサンプリング点を取得するとともに、前記４つのサンプリング点が三角形により全て覆われているか否かを判断する。前記４つのサンプリング点が三角形により全て覆われている場合には、画素の中心点位置における深度値のみを演算し、前記画素の中心点位置における深度値を前記４つのサンプリング点に複製するとともに、前記４つのサンプリング点が属する画素の一倍画素フラグを第１の値とする。また、前記４つのサンプリング点が三角形により全ては覆われていない場合には、前記４つのサンプリング点の深度値をそれぞれ演算し、前記４つのサンプリング点が属する画素の一倍画素フラグを第２の値とする。前記深度値テストモジュールは、画素について深度値テストを行い、画素の４つのサンプリング点が三角形により全て覆われているか否かを判断する。４つのサンプリング点が三角形により全て覆われている場合には、第１の所定の規則に基づき、画素の中心における深度値の比較のみを行って、４つのサンプリング点の深度値を比較により得られた中心の深度値に置き換える。また、４つのサンプリング点が三角形により全ては覆われていない場合には、第２の所定の規則に基づいて、各サンプリング点の深度値を比較し、比較により得られた４つのサンプリング点の深度値をキャッシュに記憶する。前記画素処理モジュールは、画素について最終色処理を行い、前記４つのサンプリング点が三角形により全て覆われているか否かを判断し、三角形により全て覆われている場合には、画素の中心点位置の色を前記４つのサンプリング点に複製し、三角形により全ては覆われていない場合には、前記画素における４つのサンプリング点の色を混合する。
【００１７】
本発明の一実施例では、更に、色演算モジュール、プログラマブルシェーディング処理モジュール、表示フォーマット変換モジュール、及び記憶・アクセス・制御モジュールを含む。前記色演算モジュールは画素について色演算を行い、プログラマブルシェーディング処理モジュールは、画素についてプログラマブルシェーディング処理を行い、前記表示フォーマット変換モジュールは、データをディスプレイに対応するフォーマットに変換し、前記記憶・アクセス・制御モジュールは、深度値をキャッシュして、最後に外部記憶装置に記憶する。
【００１８】
上記の目的を実現するために、本発明は、更に、コンピュータプログラムが記憶されているコンピュータで読み取り可能な記憶媒体を提供する。当該プログラムは、プロセッサにより実行される際に、上記いずれかのエッジをアンチエイリアスするグラフィックス処理方法を実現する。
【００１９】
最後に、本発明は、エッジをアンチエイリアスするグラフィックス処理装置を更に提供する。当該装置は、プロセッサとメモリを含み、前記メモリはコンピュータプログラムを記憶し、前記プロセッサは前記メモリに接続され、前記エッジをアンチエイリアスするグラフィックス処理装置が上記いずれかのエッジをアンチエイリアスするグラフィックス処理方法を実行するように、前記メモリに記憶されているコンピュータプログラムを実行する。
【発明の効果】
【００２０】
上述したように、本発明におけるエッジをアンチエイリアスするグラフィックス処理方法、システム、記憶媒体及び装置は、以下の有益な効果を有する。即ち、グラフィックス処理において外部の記憶データを読み取る際の帯域幅が節約される。また、大部分の画素は、深度値の演算・テスト、及び色等の属性の処理を１回のみ行えばよいため、処理を要するデータ量が大幅に減少する。
【図面の簡単な説明】
【００２１】
【図１】図１は、本発明のエッジをアンチエイリアスするグラフィックス処理方法の一実施例におけるフローチャートを示す。
【図２】図２は、本発明のエッジをアンチエイリアスするグラフィックス処理システムの一実施例における構造を示す。
【図３】図３は、本発明のエッジをアンチエイリアスするグラフィックス処理システムの他の実施例における構造を示す。
【図４】図４は、本発明のエッジをアンチエイリアスするグラフィックス処理システムの更なる実施例における構造を示す。
【図５】図５は、本発明のエッジをアンチエイリアスするグラフィックス処理装置の一実施例における構造を示す。
【発明を実施するための形態】
【００２２】
以下に、特定の具体的実施例によって本発明の実施形態を説明する。当業者は、本明細書に開示の内容から容易に本発明のその他の利点と効果を理解可能である。本発明は、その他の異なる具体的実施形態で実施又は応用してもよい。また、本明細書の各詳細事項は、異なる観点及び応用に基づいて、本発明の精神を逸脱しないことを前提に各種の補足又は変更を加えてもよい。なお、以下の実施例及び実施例における特徴は、互いに矛盾しないことを前提に組み合わせてもよい。
【００２３】
なお、以下の実施例で提供する図面は本発明の基本思想を概略的に説明するものである。よって、図面には本発明に関連するモジュールのみを示しており、実際に実施する際のモジュールの数、形状及びサイズで記載しているわけではない。実際に実施する際の各モジュールの形態、数量及び比率は任意に変えてもよく、且つ、モジュールの配置形態がより複雑になる場合もある。
【００２４】
本発明におけるエッジをアンチエイリアスするグラフィックス処理方法、システム、記憶媒体及び装置は、画素における４つのサンプリング点が三角形により全て覆われているか否かを判断することで、グラフィックス処理において外部の記憶データを読み取る際の帯域幅を更に節約する。大部分の画素は、深度値の演算・テスト、及び色等の属性の処理を１回のみ行えばよいため、処理を要するデータ量が大幅に減少する。これにより、画素の処理は１５〜５０％減少し、且つ、帯域幅の消費については２０〜５０％低減する。本発明は、ＧＰＵの圧縮アルゴリズムと連動させることで、更にシステムの帯域幅を節約可能となる。
【００２５】
図１に示すように、一実施例において、本発明におけるエッジをアンチエイリアスするグラフィックス処理方法は、以下のステップを含む。
【００２６】
ステップＳ１１：画素について水平及び垂直に２倍のサンプリング処理を行い、ラスタライズを実行して、４つのサンプリング点を取得するとともに、前記４つのサンプリング点が三角形により全て覆われているか否かを判断する。前記４つのサンプリング点が三角形により全て覆われている場合には、画素の中心点位置における深度値のみを演算し、前記画素の中心点位置における深度値を前記４つのサンプリング点に複製するとともに、前記４つのサンプリング点が属する画素の一倍画素フラグを第１の値とする。また、前記４つのサンプリング点が三角形により全ては覆われていない場合には、前記４つのサンプリング点の深度値をそれぞれ演算し、前記４つのサンプリング点が属する画素の一倍画素フラグを第２の値とする。
【００２７】
本発明の一実施例では、上記の画素について水平及び垂直方向の双方に２倍のサンプリング処理を実施する。ラスタライズとは、幾何データに一連の変換を加えたあと、最終的に画素に変換することで表示デバイスに表示する過程である。ラスタライズの本質は、座標変換と幾何的離散化である。前記画素について水平及び垂直に２倍のサンプリング処理を行い、ラスタライズを実行したあと、４つのサンプリング点を取得するとともに、前記の同一の画素からサンプリングして得た４つのサンプリング点が同一の三角形により全て覆われているか否かを判断する。前記４つのサンプリング点が三角形により全て覆われている場合には、画素の中心点位置における深度値のみを演算し、前記画素の中心点位置における深度値を前記４つのサンプリング点に複製する。前記画素の中心点位置における深度値は、前記画素の物理的中心点位置における深度値である。また、前記画素は一倍画素フラグを有する。前記４つのサンプリング点が三角形により全て覆われている場合には、前記一倍画素フラグの値を第１の値とする。具体的に、前記第１の値は１である。また、判断の結果、前記同一の画素からサンプリングして得た４つのサンプリング点が三角形により全ては覆われていない場合には、前記４つのサンプリング点の深度値をそれぞれ演算し、前記４つのサンプリング点が属する画素の一倍画素フラグを第２の値とする。具体的に、前記第２の値は０である。
【００２８】
ステップＳ１２：画素について深度値テストを行い、画素の４つのサンプリング点が三角形により全て覆われているか否かを判断する。４つのサンプリング点が三角形により全て覆われている場合には、第１の所定の規則に基づき、画素の中心における深度値の比較のみを行って、４つのサンプリング点の深度値を比較により得られた中心の深度値に置き換える。また、４つのサンプリング点が三角形により全ては覆われていない場合には、第２の所定の規則に基づいて、各サンプリング点の深度値を比較し、比較により得られた４つのサンプリング点の深度値をキャッシュに記憶するとともに、最後に外部記憶装置に書き込む。
【００２９】
本発明の一実施例では、画素について深度値テストを行い、前記４つのサンプリング点が三角形により全て覆われているか、前記４つのサンプリング点が属する画素の一倍画素フラグの値が第１の値である場合、画素の中心における深度値の比較のみを行う。そして、比較に合格した場合には、４つのサンプリング点の深度値を比較により得られた中心における深度値に置き換える。一方、４つのサンプリング点が三角形により全ては覆われていないか、前記４つのサンプリング点が属する画素の一倍画素フラグの値が第２の値である場合には、各サンプリング点の深度値を比較する。そして、比較に合格した場合には、比較により得られた４つのサンプリング点の深度値をキャッシュに記憶し、最後に外部記憶装置に書き込む。
【００３０】
本発明の一実施例では、深度値の読取要求をキャッシュに送信する。深度値のデータがすでにキャッシュに存在する場合には、パイプライン後段に送信して深度値を比較する。また、存在しない場合には、２５６Ｂ／１２８Ｂのデータ読取要求を記憶・アクセス・制御ユニットに送信する。すると、記憶・アクセス・制御ユニットは、まず、対応する画素群（キャッシュ行）の状態を検査する。前記画素群は複数の画素を含む。
【００３１】
本発明の一実施例において、前記画素群の状態は１桁の十六進表記で表す。０は４倍サンプリング画素の圧縮失敗を示し、１は４倍サンプリング画素のリセット値を示す。また、２、４、６、８、０ｘＡ、０ｘＣ、０ｘＥは４倍サンプリング画素の７種類の圧縮結果を示す。３は一倍画素３２Ｂの圧縮結果、５は一倍画素の圧縮失敗、０ｘＦは一倍画素のリセット値を示す。
【００３２】
本発明の一実施例では、深度値テストを行う際に、深度値がキャッシュに記憶されていない場合、外部記憶装置からデータを読み取る必要がある。画素群に含まれる画素の一倍画素フラグが全て第１の値である場合には、前記画素群を解凍し、前記画素群のビット数の大きさに基づいて６４Ｂ又は３２Ｂのデータを返す。そして、前記データを２５６Ｂ又は１２８Ｂに展開してからキャッシュに記憶し、前記画素群の一倍画素フラグを第１の値とする。また、画素群に含まれる画素の一倍画素フラグが全て第１の値とは限らない場合には、前記画素群を解凍し、前記画素群のビット数の大きさに基づいて２５６Ｂ又は１２８Ｂのデータを返し、画素群の一倍画素フラグを第２の値とする。
【００３３】
前記深度値データはキャッシュに戻されたあと、読み取られてパイプラインの後段に送られ、深度値の比較が行われる。また、比較結果に基づいて深度値と当該画素の一倍画素フラグが更新される。更新された深度値はキャッシュに書き込まれる。前記画素群における各画素の一倍画素フラグが全て第１の値である場合には、前記画素群の一倍画素フラグを前記画素の一倍画素フラグに更新する。即ち、前記画素群の一倍画素フラグを第１の値とする。いずれかのキャッシュ行が置き換えられた場合には、記憶・アクセス・制御ユニットが当該画素群の一倍画素フラグを検査する。そして、第１の値である場合には、６４Ｂ又は３２Ｂのデータを読み取って圧縮したあと、外部記憶装置に書き出す。また、第２の値である場合には、２５６Ｂ又は１２８Ｂのデータを読み取って圧縮したあと、外部記憶装置に書き出す。
【００３４】
本発明の一実施例では、画素について深度値テストを行ったあと、更に、画素の色演算を行うとともに、画素のプログラマブルシェーディング処理を行う。前記色演算とは前記画素の色を演算することであり、前記画素のプログラマブルシェーディング処理とは、前記画素をシェーディング処理することである。
【００３５】
本発明の一実施例では、画素の色演算及び画素のプログラマブルシェーディング処理を行ったあと、画素について最終色処理を行う前に、更にテクスチャマッピングを行う。データをテクスチャマッピングユニットに送信して処理し、テクスチャマッピングを行う際に、記憶・アクセス・制御ユニットが外部からデータを読み取る必要がある場合には、まず、記憶・アクセス・制御ユニットが読み取り対象のデータに対応する画素群の状態を検査する必要がある。そして、当該画素群の一倍画素フラグが第１の値である場合には、記憶・アクセス・制御ユニットが前記画素群を解凍したあと、各画素のビット数に基づいて６４Ｂ又は３２Ｂのデータをテクスチャマッピングユニットに返す。テクスチャマッピングユニットは、データを２５６Ｂ又は１２８Ｂに展開してキャッシュに記憶し、最後に外部記憶装置に書き込む。また、当該画素群の一倍画素フラグが第２の値である場合には、記憶・アクセス・制御ユニットが前記画素群を解凍したあと、各画素のビット数に基づいて２５６Ｂ又は１２８Ｂのデータをテクスチャマッピングユニットに返す。
【００３６】
ステップＳ１３：画素について最終色処理を行い、前記４つのサンプリング点が三角形により全て覆われているか否かを判断する。三角形により全て覆われている場合には、画素の中心点位置の色を前記４つのサンプリング点に複製し、三角形により全ては覆われていない場合には、前記画素における４つのサンプリング点の色を混合する。
【００３７】
本発明の一実施例では、画素のプログラマブルシェーディング処理を行ったあと、画素について最終色処理を行う前に、更に、画素について深度値テストを行って、４つのサンプリング点が三角形により全て覆われているか否かを判断する。４つのサンプリング点が三角形により全て覆われている場合には、第１の所定の規則に基づき、画素の中心における深度値の比較のみを行って、４つのサンプリング点の深度値を比較により得られた中心の深度値に置き換える。また、４つのサンプリング点が三角形により全ては覆われていない場合には、第２の所定の規則に基づいて、各サンプリング点の深度値を比較し、比較により得られた４つのサンプリング点の深度値をキャッシュに記憶するとともに、最後に外部記憶装置に書き込む。深度値テストを行う際に、深度値がキャッシュに記憶されていない場合には、外部記憶装置からデータを読み取る必要がある。画素群に含まれる画素の一倍画素フラグが全て第１の値である場合には、前記画素群を解凍し、前記画素群のビット数の大きさに基づいて６４Ｂ又は３２Ｂのデータを返す。そして、前記データを２５６Ｂ又は１２８Ｂに展開してからキャッシュに記憶し、前記画素群の一倍画素フラグを第１の値とする。また、画素群に含まれる画素の一倍画素フラグが全て第１の値とは限らない場合には、前記画素群を解凍し、前記画素群のビット数の大きさに基づいて２５６Ｂ又は１２８Ｂのデータを返し、画素群の一倍画素フラグを第２の値とする。
【００３８】
前記深度値データはキャッシュに戻されたあと、読み取られてパイプラインの後段に送られ、深度値の比較が行われる。また、比較結果に基づいて深度値と当該画素の一倍画素フラグが更新される。更新された深度値はキャッシュに書き込まれる。前記画素群における各画素の一倍画素フラグが全て第１の値である場合には、前記画素群の一倍画素フラグを前記画素の一倍画素フラグに更新する。即ち、前記画素群の一倍画素フラグを第１の値とする。いずれかのキャッシュ行が置き換えられた場合には、記憶・アクセス・制御ユニットが当該画素群の一倍画素フラグを検査する。そして、第１の値である場合には、６４Ｂ又は３２Ｂのデータを読み取って圧縮したあと、外部記憶装置に書き出す。また、第２の値である場合には、２５６Ｂ又は１２８Ｂのデータを読み取って圧縮したあと、外部記憶装置に書き出す。
【００３９】
本発明の一実施例において、画素につき最終色処理を行う際には、目的の画素の色値を読み取る必要があるか否かを判断し、読み取る必要がある場合には、前記画素の色値の読取要求をキャッシュに送信する。そして、前記色値がすでにキャッシュに存在する場合には、パイプラインに送信して色の混合操作を行う。また、存在しない場合には、２５６Ｂ又は１２８Ｂの色値読取要求を記憶・アクセス・制御ユニットに送信する。すると、前記記憶・アクセス・制御ユニットは、まず、前記画素に対応する画素群に含まれる全ての画素の一倍画素フラグが第１の値であるか否かを検査する。そして、当該画素群における全ての画素の一倍画素フラグが第１の値である場合、記憶・アクセス・制御ユニットは前記画素群を解凍したあと、各画素のビット数に基づいて６４Ｂ又は３２Ｂのデータを画素処理ユニットに返す。画素処理ユニットは、前記データを２５６Ｂ又は１２８Ｂに展開してからキャッシュに記憶し、当該画素群の一倍画素フラグを第１の値とする。また、画素群に含まれる画素の一倍画素フラグが全て第１の値とは限らない場合には、前記画素群を解凍し、前記画素群のビット数の大きさに基づいて２５６Ｂ又は１２８Ｂのデータを返し、画素群の一倍画素フラグを第２の値とする。データはキャッシュに戻されたあと、読み取られてパイプラインの後段に送られ、色の混合処理が行われる。パイプラインの後段では画素について最終色処理を行い、前記４つのサンプリング点が三角形により全て覆われているか否かを判断する。三角形により全て覆われている場合には、画素の中心点位置の色を前記４つのサンプリング点に複製し、三角形により全ては覆われていない場合には、前記画素における４つのサンプリング点の色を混合する。或いは、前記４つのサンプリング点が属する画素の一倍画素フラグが第１の値か否かを判断し、第１の値である場合には、画素の中心点位置の色を前記４つのサンプリング点に複製する。また、第２の値である場合には、前記画素における４つのサンプリング点の色を混合処理する。そして、画素の色処理のあと、キャッシュへ書き込みを行う。また、いずれかのキャッシュ行が置き換えられた場合には、記憶・アクセス・制御ユニットが当該キャッシュ行の一倍画素フラグが第１の値であるか否かを検査する。そして、第１の値である場合には、６４Ｂ又は３２Ｂのデータを読み取って圧縮したあと、外部記憶装置に記憶する。また、第２の値である場合には、２５６Ｂ又は１２８Ｂのデータを読み取って圧縮したあと、外部記憶装置に記憶する。
【００４０】
本発明の一実施例では、更に、データをディスプレイに対応するフォーマットに変換し、外部記憶装置に伝送する。内部のデータ配列のフォーマットはディスプレイで表示可能な線形フォーマットとは異なるため、表示フォーマット変換ユニットは、処理済みのデータを再び読み取って、ディスプレイに対応するフォーマットに変換してから外部記憶装置に記憶する必要がある。表示フォーマット変換ユニットは、２５６Ｂ又は１２８Ｂの読取要求を記憶・アクセス・制御ユニットに送信する。すると、記憶・アクセス・制御ユニットは、まず、対応する画素群の一倍画素フラグを検査する。当該画素群の一倍画素フラグが第１の値である場合、記憶・アクセス・制御ユニットは、解凍後に各画素のビット数に基づいて６４Ｂ又は３２Ｂのデータを表示フォーマット変換ユニットに返す。表示フォーマット変換ユニットは、データを２５６Ｂ又は１２８Ｂに展開してキャッシュに書き込む。一方、第１の値でない場合、記憶・アクセス・制御ユニットは、解凍後に２５６Ｂ又は１２８Ｂのデータを表示フォーマット変換ユニットに返す。本発明の一実施例において、２５６Ｂのデータに対応する画素群は、８×８（深度値３２ｂｐｐ）、１６×８（１６ｂｐｐ）、８×１６（１６ｂｐｐ）、１６×１６（８ｂｐｐ）及び８×４（６４ｂｐｐ）である。また、１２８Ｂのデータに対応する画素群は、８×４（３２ｂｐｐ）、４×８（３２ｂｐｐ）、８×８（１６ｂｐｐ）、８×１６（８ｂｐｐ）、１６×８（８ｂｐｐ）及び４×４（６４ｂｐｐ）である。
【００４１】
図２に示すように、一実施例において、本発明のエッジをアンチエイリアスするグラフィックス処理システムは、深度演算モジュール２１、深度値テストモジュール２２及び画素処理モジュール２３を含む。
【００４２】
前記深度演算モジュール２１は、画素について水平及び垂直に２倍のサンプリング処理を行い、ラスタライズを実行して、４つのサンプリング点を取得するとともに、前記４つのサンプリング点が三角形により全て覆われているか否かを判断する。前記４つのサンプリング点が三角形により全て覆われている場合には、画素の中心点位置における深度値のみを演算し、前記画素の中心点位置における深度値を前記４つのサンプリング点に複製するとともに、前記４つのサンプリング点が属する画素の一倍画素フラグを第１の値とする。また、前記４つのサンプリング点が三角形により全ては覆われていない場合には、前記４つのサンプリング点の深度値をそれぞれ演算し、前記４つのサンプリング点が属する画素の一倍画素フラグを第２の値とする。
【００４３】
前記深度値テストモジュール２２は、画素について深度値テストを行い、画素の４つのサンプリング点が三角形により全て覆われているか否かを判断する。４つのサンプリング点が三角形により全て覆われている場合には、第１の所定の規則に基づき、画素の中心における深度値の比較のみを行って、４つのサンプリング点の深度値を比較により得られた中心の深度値に置き換える。また、４つのサンプリング点が三角形により全ては覆われていない場合には、第２の所定の規則に基づいて、各サンプリング点の深度値を比較し、比較により得られた４つのサンプリング点の深度値をキャッシュに記憶するとともに、最後に外部記憶装置に書き込む。
【００４４】
前記画素処理モジュール２３は、画素について最終色処理を行い、前記４つのサンプリング点が三角形により全て覆われているか否かを判断する。三角形により全て覆われている場合には、画素の中心点位置の色を前記４つのサンプリング点に複製し、三角形により全ては覆われていない場合には、前記画素における４つのサンプリング点の色を混合する。
【００４５】
図３に示すように、一実施例において、本発明のエッジをアンチエイリアスするグラフィックス処理システムは、深度演算モジュール２１、深度値テストモジュール２２及び画素処理モジュール２３のほかに、色演算モジュール２４、プログラマブルシェーディング処理モジュール２５、表示フォーマット変換モジュール２６及び記憶・アクセス・制御モジュール２７を更に含む。
【００４６】
前記色演算モジュール２４は、前記画素の色を演算する。
【００４７】
前記プログラマブルシェーディング処理モジュール２５は、前記画素をシェーディング処理する。
【００４８】
前記表示フォーマット変換モジュール２６は、データをディスプレイに対応するフォーマットに変換して外部記憶装置に伝送する。
【００４９】
前記記憶・アクセス・制御モジュール２７は、各モジュールの読取命令を受け付け、外部記憶装置に対しデータの読み取り及び伝送を行う。
【００５０】
その他のモジュールの機能は上記実施例と同様のため、ここでは改めて詳述しない。
図４に示すように、一実施例において、本発明におけるエッジをアンチエイリアスするグラフィックス処理システムは、深度演算モジュール２１、深度値テストモジュール２２、画素処理モジュール２３、色演算モジュール２４、プログラマブルシェーディング処理モジュール２５、表示フォーマット変換モジュール２６及び記憶・アクセス・制御モジュール２７のほかに、命令・頂点処理モジュール２８、ラスタライズモジュール２９及びテクスチャマッピングモジュール３０を更に含む。
【００５１】
前記命令・頂点処理モジュール２８は、エッジをアンチエイリアスするグラフィックス処理命令の起動と、三角形の頂点情報の読み取りを行う。
【００５２】
前記ラスタライズモジュール２９は、画素について水平及び垂直に２倍のサンプリング処理を行ったあと、ラスタライズを行って４つのサンプリング点を取得する。
【００５３】
前記テクスチャマッピングモジュール３０は、データをテクスチャマッピング処理する。
【００５４】
その他のモジュールの機能は上記実施例と同様のため、ここでは改めて詳述しない。
【００５５】
なお、上記システムにおける各モジュールの区分は論理機能に基づく区分であって、実際に実現する際には、全部或いは一部を１つの物理的実体に集積してもよいし、物理的に切り離してもよい。且つ、これらのモジュールは、全てをソフトウエアとして処理デバイスで呼び出す形式で実現してもよいし、全てをハードウエア形式で実現してもよいし、一部のモジュールを処理デバイスによりソフトウエアを呼び出す形式で実現してもよいし、一部のモジュールをハードウエア形式で実現してもよい。例えば、ｘモジュールは単独で設置した処理デバイスとしてもよいし、上記装置のいずれかのチップに集積して実現してもよい。また、プログラムコードの形式で上記装置のメモリに記憶してもよいし、上記装置のいずれかの処理デバイスにより上記ｘモジュールの機能を呼び出して実行してもよい。その他のモジュールの実現についてもこれと同様である。また、これらのモジュールの全部又は一部を一体的に集積してもよいし、単独で実現してもよい。ここでいう処理デバイスは、信号処理能力を有する集積回路とすればよい。実現過程において、上記方法の各ステップ又は上記各モジュールは、処理デバイスにおけるハードウエアの集積論理回路又はソフトウエア形式の命令により完了してもよい。
【００５６】
例えば、上記のモジュールは、上記方法を実施する１又は複数の集積回路として配置すればよく、例えば、１又は複数の特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ、ＡＳＩＣと略称）、又は、１又は複数のマイクロプロセッサ（Ｄｉｇｉｔａｌ  Ｓｉｎｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ、ＤＳＰと略称）、又は、１又は複数のフィールドプログラマブルゲートアレイ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ、ＦＰＧＡと略称）等とすればよい。また、上記いずれかのモジュールを処理デバイスによりプログラムコードを呼び出す形式で実現する場合、当該処理デバイスは、例えば中央処理装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、ＣＰＵと略称）やその他のプログラムコードを呼び出し可能なプロセッサといった汎用のプロセッサとすればよい。また、これらのモジュールは一体的に集積し、システムオンチップ（ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ、ＳＯＣと略称）の形式で実現してもよい。
【００５７】
本発明の一実施例において、本発明は、コンピュータプログラムが記憶されたコンピュータで読み取り可能な記憶媒体を更に含む。当該プログラムは、プロセッサにより実行される際に、上記いずれかのエッジをアンチエイリアスするグラフィックス処理方法を実現する。
【００５８】
当業者であれば理解可能なように、上記各方法を実現する実施例の全部又は一部のステップは、コンピュータプログラムに関するハードウエアで遂行可能である。前記コンピュータプログラムは、コンピュータで読み取り可能な記憶媒体に記憶可能である。当該プログラムは、実行時に上記各方法の実施例を含むステップを実行する。また、前記記憶媒体、ＲＯＭ、ＲＡＭ、磁気ディスク又は光ディスク等のプログラムコードを記憶可能な各種媒体を含む。
【００５９】
図５に示すように、一実施例において、本発明におけるエッジをアンチエイリアスするグラフィックス処理装置は、プロセッサ５１とメモリ５２を含む。前記メモリ５２は、コンピュータプログラムを記憶する。前記プロセッサ５１は前記メモリ５２に接続されており、前記エッジをアンチエイリアスするグラフィックス処理装置がいずれかの前記エッジをアンチエイリアスするグラフィックス処理方法を実行するよう、前記メモリ５２に記憶されているコンピュータプログラムを実行する。
【００６０】
具体的に、前記メモリ５２は、ＲＯＭ、ＲＡＭ、磁気ディスク、ＵＳＢ、メモリーカード又は光ディスク等のプログラムコードを記憶可能な各種媒体を含む。
【００６１】
好ましくは、前記プロセッサ５１は、中央処理装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、ＣＰＵと略称）、ネットワークプロセッサ（Ｎｅｔｗｏｒｋ  Ｐｒｏｃｅｓｓｏｒ、ＮＰと略称）等を含む汎用のプロセッサとしてもよいし、デジタルシグナルプロセッサ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ、ＤＳＰと略称）、特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ、ＡＳＩＣと略称）、フィールドプログラマブルゲートアレイ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ、ＦＰＧＡと略称）、又は、その他のプログラマブルロジックデバイス、ディスクリートゲート、又はトランジスタの論理デバイス、ディスクリートハードウエアユニットとしてもよい。
【００６２】
上述したように、本発明のエッジをアンチエイリアスするグラフィックス処理方法、システム、記憶媒体及び装置によれば、グラフィックス処理における外部記憶データの読み取り帯域幅が節約される。また、大部分の画素は、深度値の演算・テスト及び色等の属性の処理を１回のみ行えばよいため、処理を要するデータ量が大幅に減少する。従って、本発明によれば、従来技術における様々な欠点が効果的に解消され、高度な産業上の利用価値を有する。
【００６３】
なお、上記実施例は本発明の原理と効果を例示的に説明したものにすぎず、本発明を限定するものではない。本技術を熟知する者であれば、本発明の精神及び範疇を逸脱しないことを前提に、上記実施例を補足又は変形可能である。よって、当業者が本発明に開示される精神及び技術思想を逸脱することなく遂行するあらゆる等価の補足又は変更は、いずれも本発明の特許請求の範囲に含まれる。
【符号の説明】
【００６４】
２１    深度演算モジュール
２２    深度値テストモジュール
２３    画素処理モジュール
２４    色演算モジュール
２５    プログラマブルシェーディング処理モジュール
２６    表示フォーマット変換モジュール
２７    記憶・アクセス・制御モジュール
２８    命令・頂点処理モジュール
２９    ラスタライズモジュール
３０    テクスチャマッピングモジュール
５１    プロセッサ
５２    メモリ
【図１】
2020087458.tif 000003
【図２】
2020087458.tif 000004
【図３】
2020087458.tif 000005
【図４】
2020087458.tif 000006
【図５】
2020087458.tif 000007