(57)【要約】【課題】ハードウェア構成を拡大することなく、データの伝送効率を向上させる。【解決手段】画像処理装置は、スクリーンの各ピクセルを複数のサブピクセルに分割し、面分によって構成される三次元オブジェクトを、サブピクセル単位の分解能で処理する。また、スクリーンへの面分の射影にピクセルの少なくとも一部が含まれる場合、当該ピクセルに対応する面分上の点のＺ値と、面分のＺ値の傾きとを出力するラスタライズ処理部と、ラスタライズ処理部が出力した、ピクセルに対応する面分上の点のＺ値とＺ値の傾きとを用いて、サブピクセルに対応する面分上の点のＺ値を算出するＺ値算出部と、Ｚ値算出部が算出したサブピクセルに対応する面分上の点のＺ値を用いて、サブピクセル単位でＺテストを行うＺテスト処理部とを有する。【選択図】図１
2014174867.tif 000002
【特許請求の範囲】
【請求項１】
スクリーンの各ピクセルを複数のサブピクセルに分割し、面分によって構成される三次元オブジェクトを、前記サブピクセル単位の分解能で処理する画像処理装置であって、
前記スクリーンへの前記面分の射影にピクセルの少なくとも一部が含まれる場合、当該ピクセルに対応する面分上の点のＺ値と、前記面分のＺ値の傾きとを出力するラスタライズ処理部と、
前記ラスタライズ処理部が出力した、前記ピクセルに対応する面分上の点のＺ値と前記Ｚ値の傾きとを用いて、前記サブピクセルに対応する面分上の点のＺ値を算出するＺ値算出部と、
前記Ｚ値算出部が算出した前記サブピクセルに対応する面分上の点のＺ値を用いて、サブピクセル単位でＺテストを行うＺテスト処理部と、
を有する画像処理装置。
【請求項２】
前記スクリーンに対応するＸＹ平面において、前記ピクセルの座標と前記サブピクセルの座標との相対座標が予め定められており、
前記面分のＺ値の傾きは、Ｚ値のＸ軸方向の傾きと、Ｚ値のＹ軸方向の傾きとを含み、
前記Ｚ値算出部は、前記ピクセルに対応する面分上の点のＺ値と、前記面分のＺ値のＸ軸方向の傾きと、前記面分のＺ値のＹ軸方向の傾きと、前記相対座標とに基づいて、前記サブピクセルに対応する面分上の点のＺ値を算出する
請求項１に記載の画像処理装置。
【請求項３】
前記Ｚテスト処理部によって、前記サブピクセルに対応する面分上の点のＺ値がＺバッファに保持されているＺ値よりも視点側に存在すると判断された場合、当該サブピクセルの表示データを生成する表示データ生成部
をさらに有する請求項１又は２に記載の画像処理装置。
【請求項４】
スクリーンの各ピクセルを複数のサブピクセルに分割し、面分によって構成される三次元オブジェクトを、前記サブピクセル単位の分解能で処理する画像処理方法であって、
前記スクリーンへの前記面分の射影にピクセルの少なくとも一部が含まれる場合、当該ピクセルに対応する面分上の点のＺ値と、前記面分のＺ値の傾きとを出力し、
出力された、前記ピクセルに対応する面分上の点のＺ値と前記Ｚ値の傾きとを用いて、前記サブピクセルに対応する面分上の点のＺ値を算出し、
前記サブピクセルに対応する面分上の点のＺ値を用いて、サブピクセル単位でＺテストを行う、
画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
ある対象を表示装置に表示する場合、対象の輪郭にジャギー（斜めの線に入る段階状のギザギザをいう。「エイリアシング」とも呼ぶ）が生じることがある。このジャギーを軽減するために、様々なアンチエイリアシング技術が提案されている。
【０００３】
例えば、３次元面が交差する境界線上で発生するエイリアスを軽減するためのコンピュータグラフィッスアンチエイリアス技術が開示されている（特許文献１を参照）。この技術は、グリッド内における面の交差判定のためのｚスロープの生成と面交差情報のバッファリングの手段、またシルエットラインアンチエイリアス処理との回路実装上整合性を得ることをそれぞれ課題とし、それら手段によって、僅かなバッファ容量で高速にアンチエイリアスを行うことができるようにするとしている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１５２７４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
フルシーンアンチエイリアシングの一種であるＭＳＡＡ（Multi Sample Anti-Aliasing）やスーパーサンプルアンチエイリアシングといった手法では、スクリーン（表示装置、ディスプレイ、モニタ等とも呼ぶ）におけるピクセル（画素）を複数のサブピクセルに分割し、スクリーンの解像度よりも高い分解能のデータを扱う。そして、例えば、Ｚ比較（Ｚテスト、デプステスト、深度テスト等とも呼ぶ）では、サブピクセルごとにＺ値を比較する。すなわち、ＭＳＡＡやスーパーサンプルアンチエイリアシングを行う場合は、これらを行わない場合よりも、サブピクセルに分割した分、描画パイプラインに転送されるデータ量は大きくなる。よって、描画パイプラインの伝送容量が一定であれば、ＭＳＡＡやスーパーサンプルアンチエイリアシングを行う場合は、データ転送にかかる時間が増大するという問題があった。また、伝送速度を上げるためには伝送容量を増やす必要があるため、ハードウェア構成（すなわち、信号線の幅）が大型化してしまうという問題があった。
【０００６】
本発明は、上記のような問題に鑑みてなされたものであり、画像処理装置において、ハードウェア構成を拡大することなく、データの伝送効率を向上させることを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る画像処理装置は、スクリーンの各ピクセルを複数のサブピクセルに分割し、面分によって構成される三次元オブジェクトを、サブピクセル単位の分解能で処理する。また、スクリーンへの面分の射影にピクセルの少なくとも一部が含まれる場合、当該ピクセルに対応する面分上の点のＺ値と、面分のＺ値の傾きとを出力するラスタライズ処理部と、ラスタライズ処理部が出力した、ピクセルに対応する面分上の点のＺ値とＺ値の傾きとを用いて、サブピクセルに対応する面分上の点のＺ値を算出するＺ値算出部と、Ｚ値算出部が算出したサブピクセルに対応する面分上の点のＺ値を用いて、サブピクセル単位でＺテストを行うＺテスト処理部とを有する。
【０００８】
このように、ラスタライズ処理部は、サブピクセルの数だけＺ値を出力するのではなく、ピクセルに対応する面分上の点のＺ値とＺ値の傾きを出力する。よって、サブピクセルの数だけＺ値を転送するよりも、ラスタライズ処理部が転送するデータ量は小さくなる。一方、Ｚテスト処理部がＺテストを行う前に、Ｚ値算出部がサブピクセルのＺ値を算出するため、サブピクセル単位でＺテストが可能になっている。すなわち、ハードウェア構成を拡大することなく、データの伝送効率を向上させることができる。
【０００９】
また、表示装置に対応するＸＹ平面において、ピクセルの座標とサブピクセルの座標との相対座標が予め定め、面分のＺ値の傾きは、Ｚ値のＸ軸方向の傾きと、Ｚ値のＹ軸方向の傾きとを含むようにし、Ｚ値算出部は、ピクセルに対応する面分上の点のＺ値と、面分のＺ値のＸ軸方向の傾きと、面分のＺ値のＹ軸方向の傾きと、相対座標とに基づいて、サブピクセルに対応する面分上の点のＺ値を算出するようにしてもよい。具体的には、これらのデータに基づいて、サブピクセルのＺ値を求めることができる。
【００１０】
さらに、Ｚテスト処理部によって、サブピクセルに対応する面分上の点のＺ値がＺバッファに保持されているＺ値よりも視点側に存在すると判断された場合、当該サブピクセルの表示データを生成する表示データ生成部を含むようにしてもよい。このようにすれば、サブピクセルの表示データは、Ｚテストにおいて視点側に存在すると判断された場合に生成されるため、効率がよい。
【００１１】
なお、本発明に係る上記構成要素は、可能な限り組み合わせて実施することができる。また、本発明に係る画像処理装置の処理を行う画像処理方法であってもよい。
【発明の効果】
【００１２】
画像処理装置のハードウェア構成を拡大することなく、データの伝送効率を向上させることができる。
【図面の簡単な説明】
【００１３】
【図１】システム構成の一例を示す機能ブロック図である。
【図２】ピクセル構成の一例を説明するための図である。
【図３】グラフィックプロセッサの処理を説明するための図である。
【図４】フィルタ処理を説明するための図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して、本発明を実施するための形態について説明する。なお、以下に示す実施の形態の構成は例示であり、本発明は実施の形態の構成に限定されない。
【００１５】
＜システム構成＞
図１は、実施の形態に係るグラフィックスプロセッサを含むシステム構成の一例を示す機能ブロック図である。本実施の形態に係るシステムは、ＣＰＵ（Central Processing Unit）１と、いわゆるＧＰＵ（Graphics Processing Unit）等のグラフィックスプロセッ
サ２と、テクスチャバッファ３と、Ｚバッファ４１と、カラーバッファ４２とを含む。
【００１６】
ＣＰＵ１は、３Ｄ（3 Dimensions，三次元）オブジェクト（「３Ｄモデル」とも呼ぶ）を表示するための、頂点列（「頂点群」とも呼ぶ）を示す情報等を出力する。また、テクスチャバッファ３は、３Ｄオブジェクトの面にマッピングする画像であるテクスチャを保持する。Ｚバッファ４１、カラーバッファ４２は、それぞれスクリーンの画素（ピクセル）ごとに、Ｚ値（深度）情報、色情報を保持する。そして、カラーバッファ４２に一画面分のデータが書き出されると、カラーバッファ４２が保持しているデータで、スクリーンが更新される。なお、Ｚバッファ４１及びカラーバッファ４２は、「フレームバッファ」
とも呼ばれる。
【００１７】
また、ＭＳＡＡ（Multi Sample Anti-Aliasing）やスーパーサンプルアンチエイリアシングを行う場合、Ｚバッファ４１及びカラーバッファ４２は、スクリーンの解像度よりも高い分解能でデータを保持する。すなわち、Ｚバッファ４１及びカラーバッファ４２は、スクリーン上の１ピクセルよりも詳細なサブピクセルのデータを保持するマルチサンプルバッファといえる。この場合、グラフィックスプロセッサ２は、高解像度のデータをマルチサンプルバッファであるＺバッファ４１及びカラーバッファ４２に格納する。そして、カラーバッファ４２に格納されたデータは、フィルタ処理によりスクリーンの解像度に変換され、図示していないフレームバッファに格納される。その後、フレームバッファに格納されたデータが、スクリーンに表示される。
【００１８】
ここで、ＭＳＡＡ又はスーパーサンプルアンチエイリアシングに用いられるピクセルの構成を説明する。図２は、複数のサブピクセルに分割された、スクリーン上の１ピクセルの例を示す図である。図２の例では、スクリーン上のピクセル１００が、４つのサブピクセル１０２（１０２ａ〜１０２ｄ）に分割されている。サブピクセルの境界は、破線で示されている。また、ピクセルに対応する点として、ピクセルの中央を、ピクセルセンター１０１と呼ぶ。サブピクセルに対応する点として、サブピクセルの中央を、サンプルポイント１０３（１０３ａ〜１０３ｄ）と呼ぶ。なお、図２の例では、ピクセルセンター１０１を基準として、ＸＹ平面における左上、右上、左下、右下の領域に、それぞれサブピクセル１０２ａ〜１０２ｄ、サンプルポイント１０３ａ〜１０３ｄが存在する。図２の例では、ＸＹ平面におけるピクセルの座標及びサブピクセルの座標として、ピクセル及びサブピクセルの中心の座標（すなわち、ピクセルセンター及びサンプルポイント）が用いられているが、このような基準の座標は、中心の座標以外であってもよい。例えば、ピクセル及びサブピクセルの左上の座標を基準の座標としてもよい。
【００１９】
スクリーン座標におけるピクセルの１辺の長さを１とすると、ピクセルセンター１０１とサンプルポイント１０３とのＸ軸方向の差Ｘｓは０．２５、Ｙ軸方向の差Ｙｓは０．２５である。このとき、ピクセルセンター１０１の座標を（Ｘ101，Ｙ101）とすると、サンプルポイント１０３ａの座標は（Ｘ101−０．２５，Ｙ101−０．２５）、サンプルポイント１０３ｂの座標は（Ｘ101＋０．２５，Ｙ101−０．２５）、サンプルポイント１０３ｃの座標は（Ｘ101−０．２５，Ｙ101＋０．２５）、サンプルポイント１０３ｄの座標は（Ｘ101＋０．２５，Ｙ101＋０．２５）と算出できる。なお、Ｙ軸は図２における下方向が正であるものとする。また、サブピクセルの数は４には限定されず、９や１６の他、２以上の数であれば採用することができる。本実施の形態では、ピクセルの分割数を４としてＭＳＡＡを行うものとする。
【００２０】
また、グラフィックスプロセッサ２は、頂点処理部２１と、基本図形生成部２２と、ラスタライザ２３と、フラグメント処理部２４と、Ｚ値算出部２５１と、Ｚテスト処理部２５２と、表示データ生成部２６と、ブレンド処理部２７とを有する。なお、Ｚ値算出部２５１及びＺテスト処理部２５２を、「フラグメントテストユニット」とも呼ぶ。
【００２１】
頂点処理部２１は、ＣＰＵ１から頂点列の情報を取得する。頂点列の情報は、複数の頂点の情報を含む。また、頂点の情報は、座標の情報と、頂点の属性値とを含む。座標の情報は、Ｘ座標、Ｙ座標、Ｚ座標の各座標値を含み、頂点の属性値は、頂点の色又はマッピングするテクスチャのアドレス等を示す情報（attributeとも呼ぶ）を含む。また、頂点
処理部２１は、３Ｄオブジェクトの位置や向き、視点の位置や向き等に基づいて、取得した頂点座標をスクリーン座標に変換する。そして、頂点処理部２１は、変換後の頂点座標（Ｘ，Ｙ，Ｚ）及び頂点の属性値を、順次描画パイプラインに出力する。
【００２２】
なお、頂点処理部２１は、例えばＤＳＰ（Digital Signal Processor）等のプロセッサであってもよく、プログラマブルであってもよい。また、頂点処理部２１は、頂点シェーダ（Vertex Shader）と呼ばれることもある。
【００２３】
基本図形生成部２２は、座標変換後の頂点列のデータを用いて、基本図形（プリミティブ）を生成する。例えば、基本図形生成部２２は、取得した頂点列の順に従い、連続する３頂点をエッジで接続して、基本図形である三角形（いわゆるポリゴン）を生成する。基本図形生成部２２は、プリミティブアセンブルとも呼ばれる。
【００２４】
また、後述するラスタライズの前処理として、基本図形生成部２２は、生成した三角形の各エッジの傾きや、生成した三角形のＺ値の傾き（すなわち、Ｘ軸方向及びＹ軸方向についてのＺ値の変位量）を算出する。なお、Ｘ軸方向についてのＺ値の変位量をΔＺｘ、Ｙ軸方向についてのＺ値の変位量をΔＺｙとする。例えば、ΔＺｘは、Ｘ軸方向に単位量変位したときのＺ値の変位量を表し、ΔＺｙは、Ｙ軸方向に単位量変位したときのＺ値の変位量を表す。本実施の形態では、単位量を０．２５とし、図２のピクセルセンター１０１とサンプルポイント１０３との間のＺ値の変位量を、傾きΔＺｘ、ΔＺｙとして算出するものとする。Ｚ値の傾きは、後述するラスタライズにおいて頂点間の内挿演算に用いられるデータである。すなわち、Ｚ値の傾きは、本実施の形態やＭＳＡＡに限らず算出され、ラスタライザ２３に渡されるデータである。基本図形生成部２２は、生成した三角形の頂点座標（Ｘ，Ｙ，Ｚ）及び頂点の属性値のほか、三角形のエッジの傾きや、Ｚ値の傾き等のデータを、描画パイプラインに出力する。
【００２５】
ラスタライザ２３は、スクリーン上に射影された三角形の領域内（便宜上、単に「三角形の内部」とも呼ぶ）に存在する画素データ列（フラグメント（Fragment）列）を生成する。ここでは、画素（ピクセル）の表示データを生成するための属性値であるフラグメントを生成する。まず、ラスタライザ２３は、少なくともエッジの境界付近に存在するサブピクセルについて、当該サブピクセルが三角形の内部に存在するか（すなわち、当該サブピクセルが三角形の内点であるか）内外判定を行う。内外判定は、例えば、三角形のエッジを表すベクトルと、サンプルポイントとの外積を用いて行うことができる。より詳細には、予め向きが定められているエッジと、サンプルポイントとの外積により、サンプルポイントがエッジ（及びその延長線）で分割される領域のどちら側に存在するか判断できる。よって、３つのエッジの各々とサンプルポイントとの外積を求めれば、サンプルポイントが、３つのエッジで囲まれる領域の内側に存在するか否か判定できる。
【００２６】
ここでは、三角形の内点であると判定されたサブピクセルを含むピクセルを、三角形の内部に含まれるピクセルとして扱う。そして、ラスタライザ２３は、三角形内部に存在するピクセルの属性値（varyingとも呼ぶ）を生成する。当該属性値は、ピクセルの色を決
定するためのデータである。また、三角形に含まれるピクセルの属性値は、例えば、頂点属性の情報を用いて内挿演算することにより求められる。
【００２７】
また、ラスタライザ２３は、フラグメント情報として、各ピクセルについて、スクリーン上の左右方向及び上下方向の位置を表すｘ座標及びｙ座標、奥行き方向の位置を表すｚ座標、ピクセルの属性値を出力する。さらに、本実施の形態では、ラスタライザ２３は、サブピクセル情報として、Ｚ値の傾き（ΔＺｘ、ΔＺｙ）、及びカバーマスクを出力する。カバーマスクとは、各サブピクセルを描画するか否かを示すフラグである。カバーマスクは、例えば、サブピクセル分のビット数が用意される。本実施の形態では、４つ（２＊２）のカバーマスクが用意される。そして、カバーマスクには、各サブピクセルに対応して１（Pass）又は０（Fail）が設定される。ラスタライザ２３は、例えば、三角形内部に存在すると判定したサブピクセルのカバーマスクに１を設定する。
【００２８】
図３を用いて、ラスタライザ２３の処理を説明する。図３は、横方向（Ｘ軸方向）に４つ、縦方向（Ｙ軸方向）に３つ、合計１２個のピクセルを表している。また、各ピクセルは、４つのサブピクセルに分割されている。斜めに描かれた太線は、三角形のエッジを表しており、エッジの右下側の領域が三角形の内部に相当するものとする。ラスタライザ２３は、各サブピクセルの中心であるサンプルポイントの座標を用いて、各サブピクセルが三角形の内側に存在するか判断する。図３では、三角形の内側に存在するサブピクセルに斜線のハッチングを施している。そして、１つでもサブピクセルが三角形の内側に存在するピクセルについて、フラグメント情報（ピクセルセンターの座標及びピクセルの属性値）と、サブピクセル情報（三角形のＺ値の傾き及び各サブピクセルのカバーマスク）が出力される。図３は１つの三角形の一部を表しているため、三角形のＺ値の傾きは、すべてのピクセルで同じ値が設定される。また、カバーマスクは、例えば右上のピクセルの場合、右下のサブピクセルに対応するカバーマスクに１が設定され、その他３つのサブピクセルに対応するカバーマスクにはそれぞれ０が設定される。
【００２９】
ラスタライザ２３が描画パイプラインに出力するデータを概括的に表すと、次のようになる。
フラグメント情報＝（Ｘ101，Ｙ101，Ｚ101，属性値）
サブピクセル情報＝（ΔＺｘ，ΔＺｙ，カバーマスク［２＊２］）
このようなデータが、ピクセルごとに出力される。
【００３０】
なお、サブピクセルは１ピクセル内という微小領域に存在するため、Ｚ値の傾き（ΔＺｘ，ΔＺｙ）が取り得る値は、Ｚ値がとり得る値と比較して十分に小さいことが期待できる。よって、座標値（Ｚ値）のために確保するビット幅（ビット数）よりも、Ｚ値の傾きのために確保するビット幅を小さくしてもよい。例えば、Ｚ値のビット幅及びデータ型を、３２ビットｆｌｏａｔ、Ｚ値の傾きのビット幅及びデータ型を、２４ビットｆｌｏａｔとしてもよい。
【００３１】
フラグメント処理部２４は、各ピクセルの属性値を用いてカラー値を算出する。カラー値は、例えば、各原色の輝度を示すＲ（Red）、Ｇ（Green）、Ｂ（Blue）、及び透明度を示すＡ（Alpha）の各パラメータによって表される。本実施の形態では、例えば、各パラ
メータに８ビットを用いる３２ビットカラーを採用する。なお、８ビットカラー、１６ビットカラー、４８ビットカラー、その他を採用してもよい。なお、ＭＳＡＡでは、ピクセルごとに１つのカラー値が用いられる。また、テクスチャをマッピングする場合は、フラグメント処理部２４はテクスチャバッファ３からテクスチャのアドレスを取得し、カラー値の代わりに各画素に表示するテクスチャのアドレスを出力するようにしてもよい。
【００３２】
フラグメント処理部２４が描画パイプラインに出力するデータを概括的に表すと、次のようになる。
フラグメント情報＝（Ｘ101，Ｙ101，Ｚ101，ＲＧＢＡ）
サブピクセル情報＝（ΔＺｘ，ΔＺｙ，カバーマスク［２＊２］）
このようなデータが、ピクセルごとに出力される。
【００３３】
なお、フラグメント処理部２４は、例えばＤＳＰ等のプロセッサであってもよく、プログラマブルであってもよい。また、フラグメント処理部２４は、フラグメントシェーダと呼ばれることもある。
【００３４】
フラグメントテストユニットは、Ｚバッファ４１に格納されているデータを用いて、サブピクセルごとにＺ比較（Ｚテスト）を行う。本実施の形態では、まず、Ｚ値算出部２５１が、ピクセルセンター１０１のＺ値（Ｚ101）、並びにＺ値の傾きΔＺｘ及びΔＺｙを
用いて、各サブピクセルのＺ値（Ｚａ〜Ｚｄ）を算出する。
【００３５】
サブピクセルのＺ値は、例えば、次のような式により求められる。
Ｚａ＝Ｚ101−ΔＺｘ−ΔＺｙ
Ｚｂ＝Ｚ101＋ΔＺｘ−ΔＺｙ
Ｚｃ＝Ｚ101−ΔＺｘ＋ΔＺｙ
Ｚｄ＝Ｚ101＋ΔＺｘ＋ΔＺｙ
【００３６】
なお、本実施の形態では、Ｘ軸方向に０．２５変位したときのＺ値の変位量をΔＺｘとし、Ｙ軸方向に０．２５変位したときのＺ値の変位量をΔＺｙとしている。また、図２に示したようにピクセルセンター１０１とサンプルポイント１０３とのＸ軸方向の差Ｘｓは０．２５、Ｙ軸方向の差Ｙｓは０．２５であるため、Ｚａ〜Ｚｄは上記の式により求められる。
【００３７】
ここで、Ｘ軸方向に１変位したときのＺ値の変位量をΔＺｘとし、Ｙ軸方向に１変位したときのＺ値の変位量をΔＺｙとしておいてもよい。この場合は、Ｚａ〜Ｚｄの値は次のような式で求められる。
Ｚａ＝Ｚ101−０．２５＊ΔＺｘ−０．２５＊ΔＺｙ
Ｚｂ＝Ｚ101＋０．２５＊ΔＺｘ−０．２５＊ΔＺｙ
Ｚｃ＝Ｚ101−０．２５＊ΔＺｘ＋０．２５＊ΔＺｙ
Ｚｄ＝Ｚ101＋０．２５＊ΔＺｘ＋０．２５＊ΔＺｙ
すなわち、サブピクセルのＺ値は、ピクセルセンターのＺ値と、三角形のＺ値のＸ軸方向の傾きと、三角形のＺ値のＹ軸方向の傾きと、ピクセルセンター及びサンプルポイントの相対座標とに基づいて算出することができる。
【００３８】
そして、Ｚテスト処理部２５２は、Ｚバッファ４１に格納されているデータを用いて、サブピクセルごとにＺ比較（Ｚテスト）を行う。すなわち、Ｚテスト処理部２５２は、サブピクセルのＸＹ平面における座標に対応するＺ値をＺバッファ４１から取得し、サブピクセルのＺ値と比較する。Ｚバッファ４１は、例えばマルチサンプルバッファであり、１画面分の表示データを生成する過程で処理対象となったオブジェクト（三角形）のうち、最も手前（すなわち視点側）に存在する三角形のＺ座標（深度）をサブピクセルごとに保持している。採用されている座標系が右手座標系の場合と左手座標系の場合とでは、Ｚ軸方向の正負が逆になるが、いずれの場合であってもＺ値の大小比較により三角形が視点側に存在するか否か判断できる。
【００３９】
処理対象のサブピクセルについて、三角形がＺバッファ４１の値よりも視点側に存在すると判断された場合、Ｚテスト処理部２５２は、「１（Pass）」をカバーマスクの値とＡＮＤ演算し、結果の値を新たなカバーマスクとして出力する。一方、三角形がＺバッファ４１の値よりも奥に存在すると判断された場合、Ｚテスト処理部２５２は、「０（Fail）」を、カバーマスクの値とＡＮＤ演算し、結果の値を新たなカバーマスクとして出力する。すなわち、Ｚテスト処理部２５２が出力するカバーマスクには、当該サブピクセルが三角形の内部に存在し、且つ三角形が他のオブジェクトよりも視点側に存在する場合に「１（Pass）」が設定され、それ以外の場合に「０（Fail）」が設定される。
【００４０】
Ｚテスト処理部２５は、少なくとも１つのサブピクセルについてカバーマスクが「１（Pass）」の場合、当該サブピクセルを含むピクセルについてフラグメント情報とサブピクセル情報とを出力する。カバーマスクがすべて「０（Fail）」のピクセルについては、フラグメント情報及びサブピクセル情報は廃棄される。
【００４１】
なお、Ｚテスト処理部２５２によるＺ比較は、カバーマスクが「１（Pass）」のサブピクセル（すなわち、三角形内部のサブピクセル）について行うようにしてもよい。また、
Ｚ値算出部２５１によるＺ値の算出も、カバーマスクが「１（Pass）」のサブピクセルについて行うようにしてもよい。
【００４２】
図３の例では、少なくとも斜線のハッチングが施されたサブピクセル（すなわち、三角形の内部に存在するサブピクセル）の各々について、サンプルポイントのＺ値とＺバッファ４１に保持されているＺ値とを比較する。サンプルポイントのＺ値の方が視点側に存在すると判断された場合、サブピクセルに対応するカバーマスクには「１（Pass）」が設定される。これは、カラーバッファ４２の当該サブピクセルに、処理対象の三角形を書き込むべきことを意味している。一方、Ｚバッファ４１に保持されているＺ値の方が、視点側に存在すると判断された場合、サブピクセルに対応するカバーマスクには「０（Fail）」が設定される。これは、当該サブピクセルにおいて、処理対象の三角形は他のオブジェクトに隠れるためスクリーンに描画されないことを意味する。このようにして、陰面消去が行われる。
【００４３】
Ｚテスト処理部２５２が描画パイプラインに出力するデータを概括的に表すと、次のようになる。ここでは、Ｚ値の情報は出力されない。
フラグメント情報＝（Ｘ101，Ｙ101，ＲＧＢＡ）
サブピクセル情報＝（カバーマスク［２＊２］）
【００４４】
表示データ生成部２６は、サブピクセル情報のカバーマスクを参照し、カバーマスクが「１（Pass）」のサブピクセル（すなわち、三角形内部のサブピクセルであって、且つＺ比較において三角形が視点側に存在すると判断されたサブピクセル）について、サブピクセルの表示データを生成する。本実施の形態では、１ピクセルにつき最大で４つのサブピクセルの表示データが生成される。生成されるサブピクセルの表示データは、サブピクセルのＸ座標、Ｙ座標、カラー値を含む。
【００４５】
生成されるサブピクセルの表示データを概括的に表すと、次のようになる。
サブピクセル１０２ａ＝（Ｘ101−０．２５，Ｙ101−０．２５，ＲＧＢＡ）
サブピクセル１０２ｂ＝（Ｘ101＋０．２５，Ｙ101−０．２５，ＲＧＢＡ）
サブピクセル１０２ｃ＝（Ｘ101−０．２５，Ｙ101＋０．２５，ＲＧＢＡ）
サブピクセル１０２ｄ＝（Ｘ101＋０．２５，Ｙ101＋０．２５，ＲＧＢＡ）
【００４６】
Ｘ101及びＹ101は、ピクセルセンター１０１のＸ座標及びＹ座標である。図２を用いて説明したように、サブピクセル１０２のＸ座標及びＹ座標は、ピクセルセンター１０１のＸ座標及びＹ座標との相対座標が予め定められており、各座標は上記のように求められる。また、本実施の形態ではＭＳＡＡを採用しているため、各サブピクセル１０２のＲＧＢＡには、すべてピクセルセンターのＲＧＢＡが設定される。なお、スーパーサンプルアンチエイリアシングを採用する場合は、サブピクセルごとに独立したカラー値を設定する。表示データ生成部２６は、生成されたサブピクセル１０２（１０２ａ〜１０２ｄ）の表示データを描画パイプラインに出力する。
【００４７】
ブレンド処理部２７は、サブピクセルごとに透明度（Ａ）に基づいて描画色のブレンド処理を行う。ブレンド処理は、サブピクセルの透明度に応じて、奥に存在するオブジェクトの色を透過して表示するための処理である。そして、ブレンド処理部２７は、サブピクセルごとに描画色を示すデータを、カラーバッファ４２（マルチサンプルバッファ）に出力する。
【００４８】
その後、全てのオブジェクトが描画されると、カラーバッファ４２に格納されたデータは、スクリーンの解像度に応じてフィルタ処理される。フィルタ処理後のカラーバッファに保持されるデータは、スクリーンの解像度で保持される。本実施の形態では、例えば、
１つのピクセルに含まれる４つのサブピクセルのカラー値を平均することにより、マルチサンプルバッファに保持されたデータを４分の１に縮小する。図４は、図３に示したカラーバッファ４２（マルチサンプルバッファ）のデータをフィルタ処理した後のデータを概括的に表している。図３のマルチサンプルバッファにおいて、三角形の内側の描画対象部分（太線の右下部分）は、単一のカラー値で塗りつぶされており、三角形の外側の描画されていない領域（太線の左上部分）は、各カラー値が０であるとする。このとき、図３の左下のピクセルは、下側２つのサブピクセルがカラー値を有しており、上側２つのサブピクセルの各カラー値は０である。よって、フィルタ処理後のカラーバッファを示す図４において、左下のピクセルは、図３の４つのサブピクセルの平均を取ることによって、下側２つのサブピクセルのカラー値の５０％の値となっている。このように表示すれば、スクリーン全体でジャギーが軽減される。
【００４９】
本実施の形態では、ラスタライザ２３が、ピクセルセンターの座標、及び三次元オブジェクトの面分のＺ値の傾き（ΔＺｘ、ΔＺｙ）等を、描画パイプラインに転送する。ＭＳＡＡでは、一般的に１つのピクセルを４以上のサブピクセルに分割する。ここで、描画パイプラインに４つのＺ値を転送するよりも、ピクセルセンターの座標（Ｚ値）及びＺ値の傾きを転送する方が、データ量は小さくなる。すなわち、描画パイプラインに必要な信号線の伝送容量が小さくて済み、小さなハードウェア構成でグラフィックスプロセッサを実現することができる。なお、本実施の形態では、Ｚ値算出部２５１がサブピクセルのＺ値を算出し、表示データ生成部２６がサブピクセルの表示データを生成する。このような処理を行っても、パイプライン処理全体としては大きな処理の遅延にはつながらない。よって、本実施の形態では、ハードウェア構成を拡大することなく、データの転送効率を向上させることができる。
【００５０】
また、本実施の形態では、Ｚ値のために確保するビット幅よりも、Ｚ値の傾きのために確保するビット幅を小さくしてもよい。４つのＺ値を転送するよりも、ピクセルセンターのＺ値及びＺ値の傾き（Ｚ，ΔＺｘ，ΔＺｙ）を転送する方が信号線の幅が小さくなることに加え、Ｚ値の傾きのために確保するビット幅を小さくすれば、さらに信号線の幅（ゲート規模）を削減することができる。すなわち、ハードウェア構成を拡大することなく、データの転送効率を向上させることができる。
【００５１】
なお、本実施の形態では、ＭＳＡＡを行うものとして説明したが、本発明は、スーパーサンプリングアンチエイリアシング等、ピクセルを複数のサブピクセルに分割し、スクリーンの解像度よりも高い分解能で描画データを扱う技術に適用することができる。
【００５２】
また、図２に示したスクリーン座標におけるピクセルのサイズは任意のスケールを採用することができる。例えば、ピクセルの１辺の長さを４とすれば、サンプルポイントとピクセルセンターとの距離は、Ｘ軸方向に１、Ｙ軸方向に１となる。すなわち、サブピクセル１０２ａ〜１０２ｄの座標は、次のように求められる。
サブピクセル１０２ａ（Ｘ101−１，Ｙ101−１）
サブピクセル１０２ｂ（Ｘ101＋１，Ｙ101−１）
サブピクセル１０２ｃ（Ｘ101−１，Ｙ101＋１）
サブピクセル１０２ｄ（Ｘ101＋１，Ｙ101＋１）
このようにすれば、表示データ生成部２６がサブピクセルの座標を求める際の演算は、より単純なものとなる。
【００５３】
なお、上記実施の形態で説明した処理は、結果が変わらない限りにおいて、実行する順序を入れ替えてもよい。また、本実施の形態に係るグラフィックプロセッサ２は、同様の処理を行うグラフィックアクセラレータや、ＬＳＩ（Large Scale Integration）の部分
であるＩＰ（Intellectual Property）コア等の画像処理装置であってもよい。また、機
能ブロック図で示したグラフィックスプロセッサ等の画像処理装置は、例えば、集積回路のようなデジタル回路を設計するための、様々なハードウェア記述言語を利用して設計することができる。
【００５４】
また、上記実施の形態で説明した処理をプログラムによって実行することもできる。プログラムは、コンピュータが読み取り可能な記録媒体に記録されていてもよい。ここで、コンピュータが読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータから読み取ることができる記録媒体をいう。このような記録媒体のうち、コンピュータから取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、光ディスク、フラッシュメモリ、磁気テープ等がある。また、コンピュータに固定された記録媒体としてＨＤＤ（Hard disk drive）、ＳＳＤ（Solid State Drive）、ＲＯＭ（Read Only Memory）等がある。
【符号の説明】
【００５５】
１    ＣＰＵ
２    グラフィックスプロセッサ
２１    頂点処理部
２２    基本図形生成部
２３    ラスタライザ
２４    フラグメント処理部
２５１    Ｚ値算出部
２５２    Ｚテスト処理部
２６    表示データ生成部
２７    ブレンド処理部
３    テクスチャバッファ
４１    Ｚバッファ
４２    カラーバッファ
【図１】
2014174867.tif 000003
【図２】
2014174867.tif 000004
【図３】
2014174867.tif 000005
【図４】
2014174867.tif 000006