(57)【特許請求の範囲】
【請求項１】
ディスプレイの表示領域に対応するピクセル描画領域を有するバッファと、前記ディスプレイへの表示対象となるピクセルを前記ピクセル描画領域に描画するプロセッサとを有するコンピュータ製品において、
前記プロセッサが、
描画すべき新規ピクセルがあるときに、その新規ピクセルと前記バッファに描画されているピクセルとを含む複数のピクセルの特徴を相互に比較し、その特徴が最も近似するピクセルの組合せを検出する処理、
検出した組合せのピクセルの特徴を統合する処理を実行することを特徴とする、
描画処理方法。
【請求項２】
ディスプレイの表示領域に対応するピクセル描画領域を有する第１バッファと、ピクセルの特徴を表すピクセル属性が登録される第２バッファと、前記ディスプレイへの表示対象となるピクセルのピクセル属性を前記第２バッファに登録するとともに登録されたピクセル属性に従って当該ピクセルを前記ピクセル描画領域に描画するプロセッサとを有するコンピュータ製品において、
前記プロセッサが、
描画すべき新規ピクセルがあるときにその新規ピクセルのピクセル属性を登録するための空領域が前記第２バッファに存在するかどうかを検証する処理、
前記空領域が前記第２バッファに存在しないときは当該新規ピクセルのピクセル属性及び既登録の１又は複数のピクセル属性を相互に比較してピクセル属性が最も近似する複数のピクセルを検出する処理、
検出した複数のピクセルのピクセル属性を統合する処理を実行することを特徴とする、
描画処理方法。
【請求項３】
統合されたピクセル属性がいずれも既登録である場合は既登録領域の少なくとも一つに前記新規ピクセルのピクセル属性又は統合されたピクセル属性を登録することを特徴とする、
請求項２記載の描画処理方法。
【請求項４】
前記新規ピクセルの描画時に、前記第１バッファ内に描画を要しないピクセル描画領域が残るときは、前記第２バッファへのピクセル属性の新たな登録を阻止することを特徴とする、
請求項２記載の描画処理方法。
【請求項５】
前記新規ピクセルの描画時に、前記第２バッファに空領域が存在し且つ前記第１バッファ内に描画を要しないピクセル描画領域が残るときは、当該第１バッファにおける当該残った領域以外のピクセル描画領域のピクセル属性を統合することを特徴とする、
請求項２記載の描画処理方法。
【請求項６】
前記ピクセル属性に、所定位置からの奥行きを表すＺ値を含めておき、前記プロセッサが、前記検証に先立ち、前記新規ピクセルのＺ値と既登録のＺ値とを比較して、前記ディスプレイの表示画面から見て相対的に後方に位置することになるピクセルを検出し、検出したピクセルが前記表示画面に表示されないようにする隠面消去処理を実行することを特徴とする、
請求項２記載の描画処理方法。
【請求項７】
前記ピクセル属性に、所定位置からの奥行きを表すＺ値を含めておき、前記プロセッサが、そのＺ値が最も近似する複数のピクセルの他のピクセル属性を、各々のピクセル数に応じた分配比率で一つの統合ピクセル属性に統合することにより前記統合する処理を実行することを特徴とする、
請求項２記載の描画処理方法。
【請求項８】
前記プロセッサは、前記統合ピクセル属性を、前記第２バッファに登録されている統合前のピクセル属性の一つに上書きすることを特徴とする、
請求項５記載の描画処理方法。
【請求項９】
前記プロセッサは、Ｚ値が最も近似する複数のピクセルのうち描画数が多い方のピクセルのＺ値を一つの代表Ｚ値として選出し、選出した代表Ｚ値を前記統合ピクセル属性の登録領域と対応付けられたＺ値の登録領域に登録することを特徴とする、
請求項８記載の描画処理方法。
【請求項１０】
ディスプレイの表示領域に対応するピクセル描画領域を有する第１バッファと、ピクセルの特徴を表すピクセル属性が登録される第２バッファと、前記ディスプレイへの表示対象となるピクセルのピクセル属性を前記第２バッファに登録するとともに登録されたピクセル属性に従って当該ピクセルを前記ピクセル描画領域に描画するプロセッサとを有するコンピュータ製品において、
前記プロセッサが、
描画すべき新規ピクセルがあるときに、その新規ピクセルのピクセル属性と異なるピクセル属性が前記第２バッファに登録されているかどうかを検証し、ピクセル属性が登録されているときは、これらのピクセル属性を統合する処理を実行することを特徴とする、
描画処理方法。
【請求項１１】
ディスプレイの１ピクセル毎の表示領域に対応した複数のサブピクセル描画領域を有し、個々のサブピクセル描画領域にはオーバーサンプリングにより得られたサブピクセルが描画されるサブピクセルバッファと、サブピクセルの所定位置からの奥行きを表すＺ値を含むピクセル特徴を表すピクセル属性を登録するためのピクセルバッファと、前記ディスプレイへの表示対象となるサブピクセルのピクセル属性を前記ピクセルバッファに登録するとともに登録されたピクセル属性に従って当該サブピクセルを前記サブピクセル描画領域に描画するプロセッサとを有するコンピュータ製品において、
前記プロセッサが、
描画すべき新規サブピクセルがあるときに、その新規サブピクセルのＺ値と前記ピクセルバッファに登録されているＺ値とを比較して、前記ディスプレイの表示画面から見て相対的に後方に位置することになる、前記新規サブピクセルを含むサブピクセルを検出するとともに、検出したサブピクセルを描画するためのサブピクセル描画領域についてはその部分をマスクしたサブピクセルマスクを生成する処理、
前記生成したサブピクセルマスクにおいて描画すべきサブピクセルがあるときはそのサブピクセルについてのピクセル属性を登録するための空領域が存在するかどうかを検証する処理、
前記空領域が存在しないときは新規サブピクセルのピクセル属性と既登録のものとを相互に比較してピクセル属性が最も近似する複数のサブピクセルを検出する処理、
検出した複数のサブピクセルのピクセル属性を統合する処理を実行し、
前記ピクセルバッファにおけるピクセル属性の登録領域の増加を抑制することを特徴とする、
描画処理方法。
【請求項１２】
前記新規サブピクセルの描画時に、前記サブピクセルバッファ内に描画を要しないピクセル描画領域が残るときは、前記ピクセルバッファへのピクセル属性の新たな登録を阻止することを特徴とする、
請求項１１記載の描画処理方法。
【請求項１３】
前記新規サブピクセルの描画時に、前記ピクセルバッファに空領域が存在し且つ前記サブピクセルバッファ内に描画を要しないピクセル描画領域が残るときは、当該サブピクセルバッファにおける当該残った領域以外のピクセル描画領域のピクセル属性を統合することを特徴とする、
請求項１１記載の描画処理方法。
【請求項１４】
前記最も近似する複数のサブピクセルのピクセル属性がいずれも既登録である場合、
前記プロセッサは、これらのピクセル属性を、同じピクセル属性をもつピクセルの数に応じた分配比率で一つの統合ピクセル属性に統合するとともに、統合対象となった複数のピクセル属性のいずれか一つの登録領域に前記統合ピクセル属性を上書きし、他の登録領域に前記新規サブピクセルのピクセル属性を登録する処理を実行することを特徴とする、
請求項１１記載の描画処理方法。
【請求項１５】
前記ピクセル属性の登録可能領域数を、それぞれ、処理対象となるサブピクセルのビット深度で定まる要素領域数を限度とすることを特徴とする、
請求項１１記載の描画処理方法。
【請求項１６】
ディスプレイの表示領域に対応するピクセル描画領域を有する第１バッファと、ピクセル特徴を表すピクセル属性が登録される第２バッファと、前記ディスプレイへの表示対象となるピクセルのピクセル属性を前記第２バッファに登録するとともに登録されたピクセル属性に従って当該ピクセルを前記ピクセル描画領域に描画するプロセッサとを有し、
前記プロセッサが、描画すべき新規ピクセルがあるときにその新規ピクセルのピクセル属性を登録するための空領域が前記第２バッファに存在するかどうかを検証し、前記空領域が前記第２バッファに存在しないときは当該新規ピクセルのピクセル属性及び既登録の１又は複数のピクセル属性を相互に比較して、ピクセル属性が最も近似する複数のピクセルを検出し、検出したピクセルのピクセル属性を統合するように動作する、
描画処理装置。
【請求項１７】
前記ピクセル描画領域は、前記ディスプレイの１ピクセルの表示領域に対して複数のサブピクセル描画領域に分割されており、
個々のサブピクセル描画領域にはオーバーサンプリングにより得られたサブピクセルが描画されるにようになされており、
前記ピクセル属性は、所定位置からの奥行きを表すＺ値を含むものであり、
前記第２バッファには、少なくとも前記Ｚ値を登録するためのＺバッファが形成されている、
請求項１６記載の描画処理装置。
【請求項１８】
前記プロセッサは、前記新規ピクセルのＺ値及び前記Ｚバッファに登録されているすべてのＺ値を相互に比較して相対的に後方に位置することになる、新規サブピクセルを含むサブピクセルを描画するためのサブピクセル描画領域を検出し、検出したサブピクセル描画領域についてはその部分をマスクしたデータを生成するように動作する、
請求項１７記載の描画処理装置。
【請求項１９】
前記プロセッサは、前記新規ピクセルを構成する全サブピクセルについて生成した前記データを論理和演算することにより得られたサブピクセルマスクを前記ピクセル描画領域への上書き対象データとするように動作する、
請求項１８記載の描画処理装置。
【請求項２０】
一方のバンクがピクセル描画用の描画バッファとなるときは他方のバンクが描画済みのピクセルを前記ディスプレイに表示するための表示バッファに切り替わる２バンク構成のフレームバッファを有し、
前記第１バッファ及び第２バッファが前記描画バッファに一時的に形成されるように構成されている、
請求項１６記載の描画処理装置。
【請求項２１】
ディスプレイの表示領域に対応するピクセル描画領域を有する第１バッファと、ピクセル特徴を表すピクセル属性が登録される第２バッファとを内蔵し又はこれらのバッファにアクセス可能に構成され、
前記ディスプレイへの表示対象となるピクセルのピクセル属性を前記第２バッファに登録するとともに登録されたピクセル属性に従って当該ピクセルを前記ピクセル描画領域に描画するプロセッサを搭載した半導体デバイスであって、
前記プロセッサが、
描画すべき新規ピクセルがあるときにその新規ピクセルのピクセル属性を登録するための空領域が前記第２バッファに存在するかどうかを検証し、
前記空領域が前記第２バッファに存在しないときは当該新規ピクセルのピクセル属性及び既登録の１又は複数のピクセル属性を相互に比較してピクセル属性が最も近似する複数のピクセルを検出し、
検出した複数のピクセルのピクセル属性を統合するように動作する、
半導体デバイス。
【請求項２２】
前記プロセッサが、デバイス外部に存在する他の処理手段との協働により前記動作を行う、
請求項２１記載の半導体デバイス。
【請求項２３】
記憶装置を備えディスプレイが接続されるコンピュータが読み取り可能な描画処理プログラムであって、
前記記憶装置に前記ディスプレイの表示領域に対応するピクセル描画領域を有する第１バッファと、ピクセル特徴を表すピクセル属性が登録される第２バッファとを形成させ、さらに、前記コンピュータが搭載するプロセッサに、前記ディスプレイへの表示対象となるピクセルのピクセル属性を前記第２バッファに登録するとともに登録されたピクセル属性に従って当該ピクセルを前記ピクセル描画領域に描画する描画機能を付与するとともに、
前記プロセッサを、
描画すべき新規ピクセルがあるときにその新規ピクセルのピクセル属性を登録するための空領域が前記第２バッファに存在するかどうかを検証し、
前記空領域が前記第２バッファに存在しないときは当該新規ピクセルのピクセル属性及び既登録の１又は複数のピクセル属性を相互に比較してピクセル属性が最も近似する複数のピクセルを検出し、
検出した複数のピクセルのピクセル属性を統合する
ように動作させるための、描画処理プログラム。
【請求項２４】
請求項２３記載の描画処理プログラムを記録してなる、コンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばアンチエイリアシング（Antialiasing）を少ないリソースで且つ色等の破綻なく実現するための画像描画の仕組みに関する。
【０００２】
【従来の技術】
近年、ゲームコンソール装置のようなリアルタイム性の画像処理を行うシステムでは、プロセッサ、メモリ等のハードウエアの高集積化、処理クロックの高速化が飛躍的に進んでいる。その結果、従来は不可能であった、精細で多様性に富み、且つリアリティ性の高い画像をリアルタイムに生成することも最近は可能になっている。
その一方で、画像を表示する２次元スクリーンとして一般的に使用されているテレビジョンモニタ装置等は、近年の高画質化に追従しきれていない。例えば、標準テレビジョン放送方式であるＮＴＳＣ規格のテレビジョンモニタ装置では、１フレーム（２フィールド）当たり６４０×４４８ドット程度の低い解像度での表示が上限となっている。
【０００３】
このような低解像度の２次元スクリーンで画像表示を行う場合に、例えば画面の斜め方向に画像のエッジが来ると、そのエッジ部分には、画像の構成単位となるピクセルに沿った階段状のギザギザ、いわゆるジャギーが目立つようになる。このようなジャギーは、本来は滑らかであるべき画像のエッジ部分が画面上のピクセルという離散的な値にマッピングされるために生ずる虚像であり、一般的には「エイリアス」と呼ばれている。
したがって、比較的低解像度の２次元スクリーンへ出力する画像を処理するシステムでは、エイリアスを除去し、或いはエイリアスを目立たなくする処理、すなわち「アンチエイリアシング」を行うことにより、ジャギーの無い滑らかな画像を生成するようにしているのが一般的である。
【０００４】
現在、アンチエイリアシングの手法としては、以下のような、シーンアンチエイリアシングとエッジアンチエイリアシングが知られている。
（１）シーンアンチエイリアシング
シーンアンチエイリアシングでは、１ピクセルを細分化したサブピクセル単位でサンプリングポイントを変更し、そのサブピクセル単位のサンプリングにより得られた複数枚の画像を平均化することで、１画面分全体についてのアンチエイリアシングを実現する。
サブピクセル単位のサンプリングポイントの変更方法には、オーダード法とストキャスティック（ジッタリング）法と呼ばれるものがある。オーダード法は、予め決められたサブピクセル位置をサンプリングする方法であり、ストキャスティック法は、サンプリングポイントを確率的に決定してサンプリングを行う方法である。ストキャスティック法は、オーダード法に比べて少ないサンプリングポイントで高品位な画像が得られる利点がある。
【０００５】
オーダード法とストキャスティック法により実現されるシーンアンチエイリアシングは、また、描画効率の観点からは、もとの数倍の高解像度の画像を平均化してもとの解像度の画像へ縮小することでシーンアンチエイリアシングを実現する方法と、アキュムレーションバッファメモリ（以下、「単にアキュムレーションバッファ」と略称する）を用いた方法とに分けることができる。
高解像度の画像を平均化する方法としては、全ポリゴンをもとの数倍の高解像度で、描画用のバッファメモリ（以下、「描画バッファ」と略称する）に描画し、表示の際に、描画バッファに描画されている画像をもとの大きさの画像へ縮小表示することでシーンアンチエイリアシングを実現する。この方法は、アンチエイリアシングのためのデータ投入回数が１ポリゴンにつき１回で済み、また、処理にローカリティがあるため、処理効率を上げることができ、シーンアンチエイリアシングとしては高速な処理が可能となっている。
一方、アキュムレーションバッファを用いた方法では、少なくとも１画面分の容量を持つ描画バッファと、アキュムレーションバッファと呼ばれる別の描画バッファとを用意し、描画バッファに１画面分の全ポリゴンを描画し終えたならば、サンプリングポイントを変えて再度全ポリゴンを描画し、描画バッファ上の値とサンプリングポイント変更後の値とを、順次アキュムレーションバッファで加算して平均化を行うことにより、シーンアンチエイリアシングを実現する。このアキュムレーションバッファを用いた方法では、描画用バッファとアキュムレーションバッファの２面分のバッファを用いて、サンプリングポイントを変えた複数回の全面描画と平均化の処理を実現できることになる。
【０００６】
（２）エッジアンチエイリアシング
２次元スクリーンの画面上に表示された画像は、近傍ピクセル間で輝度若しくは色調が著しく異なる場合に、最も低解像度の影響を受け易くなる。コンピュータグラフィック画像では、ポリゴンのエッジ部分で異なる属性が隣接していることが多く、輝度若しくは色調の境界となっていることが多い。つまり、こういった個所では、解像度の低さがエイリアスとなって目に付き易くなる。一方で、ポリゴンのエッジ以外の部分は、例えば適度なテクスチャをマッピングしたり、フィルタリングを行うことでエイリアスの発生を回避することが容易である。
したがって、エイリアスを目立たなくさせるには、ポリゴンのエッジ部分についてのみアンチエイリアシングを施せばよいことになる。エッジアンチエイリアシングでは、例えばポリゴンのエッジ部分のみサンプリングを増加させ、それら各サンプリングにより得られた値を平均化することにより、当該エッジ部分のアンチエイリアシングを実現している。また、エッジアンチエイリアシングは、エッジ部分についてのみ処理を行えば良いため、シーンアンチエイリアシングよりも効率的な処理が可能となっている。
このようなことから、リアルタイム性が要求される画像処理のシステム、特に、低コスト化への要求が強い民生用のシステムでは、エッジアンチエイリアシングを採用しているものが多い。
【０００７】
なお、上記のようなエッジアンチエイリアシングをより簡略に実現する手法も存在する。すなわち、ポリゴン描画時に、エッジ部のポリゴンが当該エッジ部のピクセル内で占めるピクセル占有率を算出し、それを半透明係数であるα値としてピクセルのもとの色と線形補間することによりα値の平均化を行う手法である。この手法は、「αブレンディング」とも呼ばれ、ピクセル占有率を算出する機構以外は通常のアーキテクチャを適用できるため、多くの画像処理のシステムにおいて、採用されている。
【０００８】
【発明が解決しようとする課題】
上述したシーンアンチエイリアシングとエッジアンチエイリアシングには、それぞれ、以下のような問題がある。
（１）シーンアンチエイリアシングの場合
高解像度の画像を平均化してシーンアンチエイリアシングを実現する方法では、２次元スクリーン画面に表示するデータを格納する表示用のバッファメモリ（以下、「表示バッファ」と略称する）に対して複数倍の容量の描画バッファを用意しなければならない。例えば、１ピクセルを４×４の１６サブピクセルに分割して１６倍のオーバーサンプリングを行う場合、描画バッファは、表示バッファに対して１６倍の容量が必要になる。
また、この方法では、１フレーム分の表示時間内に、複数枚の画像を描画バッファに書き込んだり、書き込んだ複数枚の画像を平均化する等の処理が必要となる。
つまり、この方法では、アンチエイリアシングだけのために、多大なメモリ領域が必要となり、且つ、高速なメモリアクセスが必要となるため、ゲームコンソール装置のようなコストパフォーマンスに厳しい画像処理のシステムに適用する場合は、コスト的に不利となる。
アキュムレーションバッファを用いてシーンアンチエイリアシングを行う方法では、サンプリングポイントの変更と加算による平均化の処理が時系列的に行われるため、描画時間がリニアに増加する。したがって、この方法もまた、高解像度のシーンアンチエイリアシングには不向きである。
【０００９】
（２）エッジアンチエイリアシングの場合
エッジアンチエイリアシングはシーンアンチエイリアシングよりもリアルタイム性が要求される画像処理のシステムに向いている。その中でも特に、ピクセル占有率に応じた線形補間を行う方法は、通常のアーキテクチャの多くを流用できるため、相対的に有利である。しかしながら、この方法では、１ピクセルに対して複数の色を保持しない仕様となるため、例えば１ピクセル内に２以上のポリゴンのエッジが存在するようなときに破綻をきたし、正常なピクセルが得られなくなる等の欠点がある。また、αブレンディングを用いた方法では、後方からの描画が必要になる等の制限がある。
【００１０】
本発明は、このような背景のもとになされたもので、低コストでリアルタイムに高品質の描画処理を実現する仕組みを提供することを、その課題とする。
【００１１】
【課題を解決するための手段】
上記課題を解決するため、本発明は、描画処理方法、描画処理装置、半導体デバイス、描画処理プログラム及び記録媒体を提供する。
本発明の描画処理方法は、ディスプレイの表示領域に対応するピクセル描画領域を有するバッファと、前記ディスプレイへの表示対象となるピクセルを前記ピクセル描画領域に描画するプロセッサとを有するコンピュータ製品において、前記プロセッサが、描画すべき新規ピクセルがあるときに、その新規ピクセルと前記バッファに描画されているピクセルとを含む複数のピクセルの特徴を相互に比較し、その特徴が最も近似するピクセルの組合せを検出する処理、及び、検出した組合せのピクセル特徴を統合する処理を実行することを特徴とする方法である。
【００１２】
本発明の他の描画処理方法は、上記の描画処理方法において、ピクセルの特徴が近似するかどうかの要素として、ピクセル属性を用いたものである。すなわち、ディスプレイの表示領域に対応するピクセル描画領域を有する第１バッファと、ピクセル特徴を表すピクセル属性が登録される第２バッファと、前記ディスプレイへの表示対象となるピクセルのピクセル属性を前記第２バッファに登録するとともに登録されたピクセル属性に従って当該ピクセルを前記ピクセル描画領域に描画するプロセッサとを有するコンピュータ製品において、
前記プロセッサが、描画すべき新規ピクセルがあるときにその新規ピクセルのピクセル属性を登録するための空領域が前記第２バッファに存在するかどうかを検証する処理、前記空領域が前記第２バッファに存在しないときは当該新規ピクセルのピクセル属性及び既登録の１又は複数のピクセル属性を相互に比較してピクセル属性が最も近似する複数のピクセルを検出する処理、検出した複数のピクセルのピクセル属性を統合する処理を実行することを特徴とする方法である。
【００１３】
「ピクセル属性」としては、例えば、カラー値、輝度、所定位置例えばディスプレイの表示画面の視点（仮想視点）からの奥行きを表すＺ値、透過係数であるα値、ベクトルの値、法線、テクスチャ歪値のようなものが挙げられる。このピクセル属性が近似しているかどうかは、１次元的な比較では、輝度、Ｚ値などの比較対象となる２値の差分の相対値で判定することができる。
２次元的な比較では色差など、３次元的な比較ではカラー値の差などをさらに要素に加え、例えば以下のような基準で近似性を判定することができる。
・比較するベクトル内積の絶対値が相対的に小さい組合せは近似する
・要素の平均に対する差分の絶対値が相対的に小さい組合せは近似する
・要素の二乗平均に対する差分の絶対値が小さい組合せは近似する
・各要素の差分の絶対値が相対的に小さい組合せは近似する
輝度や色差は、ＲＧＢ＝ＹＣｂＣｒなどの公知の算出式により算出してもよく、カラー値そのものが輝度・色差でもっているようにしてもよい。
「統合」の手法としては、比較する２つのピクセルのピクセル属性の平均化、どちらか一方のピクセル属性の採用等が挙げられる。同じピクセル属性のピクセルの数に差がある場合は、ピクセル数が相対的に多いピクセルのピクセル属性を統合の相手として採用するようにしてもよい。この場合、好ましくは、ピクセル数をピクセル属性毎に検出ことが必要となる。
【００１４】
この方法のバリエーションとして、以下の手順が付加される。
・統合されたピクセル属性がいずれも既登録である場合は既登録領域の少なくとも一つに前記新規ピクセルのピクセル属性又は統合されたピクセル属性を登録する。
・前記新規ピクセルの描画時に、前記第１バッファ内に描画を要しないピクセル描画領域が残るときは、前記第２バッファへのピクセル属性の新たな登録を阻止する。あるいは、前記新規ピクセルの描画時に、前記第２バッファに空領域が存在し且つ前記第１バッファ内に描画を要しないピクセル描画領域が残るときは、当該第１バッファにおける当該残った領域以外のピクセル描画領域のピクセル属性を統合する。
・前記ピクセル属性に、上記のＺ値を含めておき、前記プロセッサが、前記検証に先立ち、前記新規ピクセルのＺ値と既登録のＺ値とを比較して、相対的に後方に位置することになる、新規ピクセルを含むピクセルを検出し、検出したピクセルが前記表示画面に表示されないようにする隠面消去処理を実行する。
・前記プロセッサが、そのＺ値が最も近似する複数のピクセルの他のピクセル属性を、各々のピクセル数に応じた分配比率で一つの統合ピクセル属性に統合することにより前記統合する処理を実行する。
【００１５】
本発明の他の描画処理方法は、ディスプレイの表示領域に対応するピクセル描画領域を有する第１バッファと、ピクセル属性が登録される第２バッファと、前記ディスプレイへの表示対象となるピクセルのピクセル属性を前記第２バッファに登録するとともに登録されたピクセル属性に従って当該ピクセルを前記ピクセル描画領域に描画するプロセッサとを有するコンピュータ製品において、前記プロセッサが、描画すべき新規ピクセルがあるときに、その新規ピクセルのピクセル属性と異なるピクセル属性が前記第２バッファに登録されているかどうかを検証し、ピクセル属性が登録されているときは、これらのピクセル属性同士を統合する処理を実行することを特徴とする方法である。
【００１６】
本発明の他の描画処理方法は、ディスプレイの１ピクセル毎の表示領域に対応した複数のサブピクセル描画領域を有し、個々のサブピクセル描画領域にはオーバーサンプリングにより得られたサブピクセルが描画されるサブピクセルバッファと、所定位置からの奥行きを表すＺ値を含むサブピクセルのピクセル属性を登録するためのピクセルバッファと、前記ディスプレイへの表示対象となるサブピクセルのピクセル属性を前記ピクセルバッファに登録するとともに登録されたピクセル属性に従って当該サブピクセルを前記サブピクセル描画領域に描画するプロセッサとを有するコンピュータ製品において、前記プロセッサが、描画すべき新規サブピクセルがあるときに、その新規サブピクセルのＺ値と前記Ｚバッファ内のすべてのＺ値とを比較して、相対的に後方に位置することになる、前記新規サブピクセルを含むサブピクセルを検出するとともに、検出したサブピクセルを描画するためのサブピクセル描画領域についてはその部分をマスクしたサブピクセルマスクを生成する処理、前記生成したサブピクセルマスクにおいて描画すべきサブピクセルがあるときはそのサブピクセルについてのピクセル属性を登録するための空領域が存在するかどうかを検証する処理、前記空領域が存在しないときは新規サブピクセルのピクセル属性と既登録のものとを相互に比較してピクセル属性が最も近似する複数のサブピクセルを検出する処理、検出した複数のサブピクセルのピクセル属性を統合する処理を実行し、前記ピクセルバッファにおけるピクセル属性の登録領域の増加を抑制することを特徴とする方法である。
【００１７】
この描画処理方法のバリエーションとしては、以下の手順が付加される。
・前記新規サブピクセルの描画時に、前記サブピクセルバッファ内に描画を要しないピクセル描画領域が残るときは、前記ピクセルバッファへのピクセル属性の新たな登録を阻止する。あるいは、前記新規サブピクセルの描画時に、前記ピクセルバッファに空領域が存在し且つ前記サブピクセルバッファ内に描画を要しないピクセル描画領域が残るときは、当該サブピクセルバッファにおける当該残った領域以外のピクセル描画領域のピクセル属性を統合する。
・前記最も近似する複数のサブピクセルのピクセル属性がいずれも既登録である場合、前記プロセッサは、これらのピクセル属性を、同じピクセル属性をもつピクセルの数に応じた分配比率で一つの統合ピクセル属性に統合するとともに、統合対象となった複数のピクセル属性のいずれか一つの登録領域に前記統合ピクセル属性を上書きし、他の登録領域に前記新規サブピクセルのピクセル属性を登録する処理を実行する。なお、いずれかのサブピクセルのピクセル属性を一つの代表ピクセル属性として選定することで統合ピクセル属性を得るようにしてもよい。
・前記ピクセルバッファにおける登録可能領域数は、それ処理対象となるサブピクセルのビット深度で定まる要素領域数を限度とする。「ビット深度」は、画像の色数を表す尺度である。
【００１８】
本発明の描画処理装置は、ディスプレイの表示領域に対応するピクセル描画領域を有する第１バッファと、ピクセル特徴を表すピクセル属性が登録される第２バッファと、前記ディスプレイへの表示対象となるピクセルのピクセル属性を前記第２バッファに登録するとともに登録されたピクセル属性に従って当該ピクセルを前記ピクセル描画領域に描画するプロセッサとを有し、
前記プロセッサが、描画すべき新規ピクセルがあるときにその新規ピクセルのピクセル属性を登録するための空領域が前記第２バッファに存在するかどうかを検証し、前記空領域が前記第２バッファに存在しないときは当該新規ピクセルのピクセル属性及び既登録の１又は複数のピクセル属性を相互に比較して、ピクセル属性が最も近似する複数のピクセルを検出し、検出したピクセルのピクセル属性を統合するように動作する装置である。
【００１９】
１つのピクセルを複数のサブピクセルの集合で表現する描画処理装置の場合、前記ピクセル描画領域は、前記ディスプレイの１ピクセルの表示領域に対して複数のサブピクセル描画領域に分割されており、個々のサブピクセル描画領域にはオーバーサンプリングにより得られたサブピクセルが描画されるにようになされており、前記ピクセル属性は、所定位置からの奥行きを表すＺ値を含むものであり、前記第２バッファには、少なくとも前記Ｚ値を登録するためのＺバッファが形成されるようにする。
この描画装置において、前記プロセッサは、前記新規ピクセルのＺ値及び前記Ｚバッファに登録されているすべてのＺ値を相互に比較して、相対的に後方に位置することになる、新規サブピクセルを含むサブピクセルを描画するためのサブピクセル描画領域を検出し、検出したサブピクセル描画領域についてはその部分をマスクしたデータを生成するように動作する。
ピクセル属性の登録領域の増加を抑制する観点からは、前記プロセッサが、前記新規ピクセルを構成する全サブピクセルについて生成した前記データを論理和演算することにより得られたサブピクセルマスクを前記ピクセル描画領域への上書き対象データとするように動作するようにする。
【００２０】
なお、本発明の描画処理装置において、リアルタイム性を向上させる観点からは、一方のバンクがピクセル描画用の描画バッファとなるときは他方のバンクが描画済みのピクセルを前記ディスプレイに表示するための表示バッファに切り替わる２バンク構成のフレームバッファを有し、前記第１バッファ及び第２バッファが前記描画バッファに一時的に形成されるように構成する。
【００２１】
本発明の半導体デバイスは、ディスプレイの表示領域に対応するピクセル描画領域を有する第１バッファと、ピクセル特徴を表すピクセル属性が登録される第２バッファとを内蔵し又はこれらのバッファにアクセス可能に構成され、前記ディスプレイへの表示対象となるピクセルのピクセル属性を前記第２バッファに登録するとともに登録されたピクセル属性に従って当該ピクセルを前記ピクセル描画領域に描画するプロセッサを搭載した半導体デバイスであって、
前記プロセッサが、描画すべき新規ピクセルがあるときにその新規ピクセルのピクセル属性を登録するための空領域が前記第２バッファに存在するかどうかを検証し、前記空領域が前記第２バッファに存在しないときは当該新規ピクセルのピクセル属性及び既登録の１又は複数のピクセル属性を相互に比較してピクセル属性が最も近似する複数のピクセルを検出し、検出した複数のピクセルのピクセル属性を統合するように動作するものである。前記プロセッサは、デバイス外部に存在する他の処理手段との協働により前記動作を行うものであってもよい。
【００２２】
本発明の描画処理プログラムは、記憶装置を備えディスプレイが接続されるコンピュータが読み取り可能な描画処理プログラムであって、前記記憶装置に前記ディスプレイの表示領域に対応するピクセル描画領域を有する第１バッファと、ピクセル属性が登録される第２バッファとを形成させ、さらに、前記コンピュータが搭載するプロセッサに、前記ディスプレイへの表示対象となるピクセルのピクセル属性を前記第２バッファに登録するとともに登録されたピクセル属性に従って当該ピクセルを前記ピクセル描画領域に描画する描画機能を付与するとともに、前記プロセッサを、描画すべき新規ピクセルがあるときにその新規ピクセルのピクセル属性を登録するための空領域が前記第２バッファに存在するかどうかを検証し、前記空領域が前記第２バッファに存在しないときは当該新規ピクセルのピクセル属性及び既登録の１又は複数のピクセル属性を相互に比較してピクセル属性が最も近似する複数のピクセルを検出し、検出した複数のピクセルのピクセル属性を統合するように動作させるための描画処理プログラムである。この描画処理プログラムは、通常は、コンピュータ読み取り可能な記録媒体に記録されて製品化される。
【００２３】
【発明の実施の形態】
以下、本発明を、オーバーサンプリング画像のアンチエイリアシングを少ないリソースで実現する描画処理方法に適用した場合の実施の形態を説明する。
この描画処理方法は、上述した描画バッファへのアクセスが可能なプロセッサを有する画像処理の装置、システム、その部品となる半導体デバイスにより実施することができる。便宜上、ピクセル属性が、ピクセルのカラー値（輝度を含む）と、仮想視点からの奥行きを表すＺ値であるものとして説明する。
【００２４】
まず、この描画処理方法を実施する上で必要となる描画バッファの構成要素例について説明する。
描画バッファには、ピクセル毎に、一つのサブピクセルバッファと、このサブピクセルバッファのビット深度に対応した要素領域数分のカラーバッファ及びＺバッファをルックアップテーブル（以下、この実施形態において「ＬＵＴ」と称する）として格納したピクセルバッファが形成される。
「ビット深度」は、上述したとおり、画像の色数を表す尺度であり、例えばビットマップ画像の場合、2色は1ビット（= 2^1)、16色は4ビット(= 2^4)、256色 は8ビット(= 2^8)、16777216色は24ビット(= 2^24)で表される。
【００２５】
サブピクセルバッファは、ディスプレイの表示領域、すなわち表示バッファの１ピクセル分の表示領域に対して複数のサブピクセル描画領域に分割されており、個々のサブピクセル描画領域にはオーバーサンプリングにより得られたサブピクセル（マスク部分を含む）が描画される。
カラーバッファには、サブピクセルバッファのサブピクセル描画領域に描画されるサブピクセルのカラー値が登録される。
Ｚバッファには、サブピクセルバッファのサブピクセル描画領域に描画されるサブピクセルのＺ値が、カラーバッファに登録されているカラー値と対応付けられて登録される。
【００２６】
図１は、上記のような描画バッファの説明図であり、単純な例として、１ピクセルについて４×４の１６倍のオーバーサンプリングを行う場合の構成要素を示したものである。
図１（ａ）は、深度１ビット１６ワードのサブピクセルバッファ、図１（ｂ）はそのサブピクセルバッファに対応するピクセルバッファである。
深度１ビットの場合、サブピクセルバッファの各々のサブピクセル描画領域に描画されるデータは、"0"又は"1"の２値で表される。また、ＬＵＴのうち、上段の要素領域(0)には、サブピクセルバッファのうちでビット"0"が描画される領域２に対応したサブピクセルのカラー値（Ｃ(0)）とＺ値（Ｚ(0)）とが登録される。また、破線で示されている下段の要素領域(1)には、サブピクセルバッファのうち"1"が描画された領域３に対応したサブピクセルのカラー値であるＣ(1)とＺ値であるＺ(1)とが登録される。ＬＵＴのカラー値とＺ値をそれぞれ３２ビットで表す場合、１ピクセル分のデータサイズは、１４４ビットで足りる。
【００２７】
図１（ｃ）は、深度２ビット１６ワードのサブピクセルバッファ、図１（ｄ）はそのサブピクセルバッファに対応するピクセルバッファである。
深度が２ビットの場合、サブピクセルバッファの各々のサブピクセル描画領域に描画されるビットは、"00"、"01"、"10"、"11"の４値で表される。また、ＬＵＴのうち、最上段の要素領域(00)には、サブピクセルバッファのうちビット"00"が描画される領域４に対応したサブピクセルのカラー値（Ｃ(0)）及びＺ値（Ｚ(0)）が登録され、２段目の要素領域(01)には、ビット"01"が描画される領域５に対応したサブピクセルのカラー値（Ｃ(1)）及びＺ値（Ｚ(1)）が登録され、３段目の要素領域(10)には、ビット"10"が描画される領域６に対応したサブピクセルのカラー値（Ｃ(2)）及びＺ値（Ｚ(2)）が登録され、最下段の要素領域(11)には、ビット"11"が描画される領域７に対応したサブピクセルのカラー値（Ｃ(3)）及びＺ値（Ｚ(3)）が登録される。ＬＵＴのカラー値とＺ値をそれぞれ３２ビットで表す場合、１ピクセル分のデータサイズは２８８ビットで足りる。
【００２８】
次に、上記の描画バッファにアクセスすることにより本発明の特徴的な描画処理方法を行うときのプロセッサの動作手順を図２を参照して説明する。プロセッサによる以下の動作は、プロセッサが、コンピュータ読み取り可能な記録媒体に記録されている所定のコンピュータプログラムを読み込むことにより可能になるものである。
【００２９】
＜ステップＳ１１＞描画すべき新規サブピクセルがあるかどうかを判定する。具体的には、外部から、ディスプレイに表示させるべきポリゴンその他の画像が投入されたかどうかを判定する。新規サブピクセルがない場合は、描画処理は休止状態となる。
＜ステップＳ１２＞新規サブピクセルがあるときは（ステップＳ１１：Yes）、その新規サブピクセルのＺ値とＺバッファ内のすべてのＺ値とを比較して、ディスプレイの表示画面から見て相対的に後方に位置することになるサブピクセルを検出する。また、検出したサブピクセルを描画するためのサブピクセル描画領域についてはその部分をマスクしたサブピクセルマスクを生成する。
＜ステップＳ１３＞生成したサブピクセルマスクにおいて描画すべきサブピクセルがあるときはそのサブピクセルについてのカラー値又はＺ値、あるいはこれらのすべてを登録するための空領域がカラーバッファ、Ｚバッファに存在するかどうかを検証する。
【００３０】
＜ステップＳ１４＞  空領域が存在しないときは（ステップＳ１３：No）、登録不能な新規サブピクセルについてのカラー値及びＺ値と、既登録のカラー値及びＺ値とを相互に比較して、カラー値、Ｚ値、あるいはその双方が最も近似する複数のサブピクセルを検出する。
近似するかどうかの基準としては、以下のいずれかを用いる。
（１）カラー値から輝度を算出し、比較するピクセルの輝度差分が小さい（輝度が最も似ている）ピクセルの組合せを選ぶ。
（２）Ｒ（赤）、Ｇ（緑）、Ｂ（青）各値の差分の絶対値の和が少ないサブピクセルの組合せを選ぶ。その際、必要に応じて、Ｒ、Ｇ、Ｂの各値に重み付けを行う。
（３）上記の色輝度のほかに色差を算出し、これらが似ているサブピクセルの組合せを選ぶ。
（４）Ｚ値の差分の絶対値が小さい近傍データを選ぶ。このＺ値の差分を用いた基準では、視点からの奥行き方向において手前側からのポリゴン投入順に限定すれば、当該視点からの奥行き方向の距離を考慮した統合が可能となるので、後の扱いが容易となる利点がある。
【００３１】
＜ステップＳ１５＞  検出した複数のサブピクセルのカラー値同士、Ｚ値同士、あるいはその双方を統合する。
＜ステップＳ１６＞  ピクセル属性を登録するための空領域を形成するかどうか（可能かどうか）を判定する。すなわち、新規サブピクセルのピクセル属性と既登録のピクセル属性とを統合する場合は、カラーバッファとＺバッファに空領域を形成することができない（する必要がない）のに対して、統合されたカラー値、Ｚ値がいずれも既登録である場合は、カラーバッファとＺバッファにおける既登録の領域の少なくとも一つを空領域にすることが可能となる。
＜ステップＳ１７＞  空領域を形成できるときは（ステップＳ１６：Yes）、カラーバッファとＺバッファに空領域を形成し、ピクセル属性の新規登録を可能にする。
＜ステップＳ１８＞  空領域に新規ピクセルのカラー値、Ｚ値を登録し、サブピクセルバッファへの描画を可能にする。
以上の処理手順を、ポリゴンその他の画像が投入される度に繰り返し、その際のカラーバッファ又はＺバッファにおける登録領域の増加を抑制する。
【００３２】
このような描画処理方法により、例えば互いに重なり合わない多数のポリゴンの境界を含むサブピクセルのように、１ピクセル内に多数のポリゴンの色が投入された場合であっても、破綻の無い色をディスプレイに表示させることができ、また、例えばポリゴン同士が互いに重なっていたとしても遠方の色が混合されて色が破綻してしまうようなことがなくなる。従来のような描画方向の制限も無い。
しかも、カラーバッファ及びＺバッファの容量が少なくてもほぼ正確な色が再現されるため、予め用意しておくこれらのバッファの容量を大幅に削減することが可能になる。これにより、従来の種々のアンチエイリアシングのような高速なメモリアクセスが不要となり、低コスト且つ現実的なリソースで、リアルタイムに高品位なアンチエイリアシングを実現することが可能になる。
【００３３】
なお、図２では、相対的に後方に位置することになるサブピクセルを描画するためのサブピクセル描画領域についてはその部分をマスクする隠面消去処理を行うようにしているが、この隠面消去処理は、本発明の描画処理方法では不可欠なものではない。この隠面消去処理を行わない場合は、上記のステップＳ１２の処理をパスさせる。
また、図２は、高解像度のオーバーサンプリング画像を描画する場合の手順を示したものであるが、本発明の描画処理方法は、カラー値、Ｚ値を含むポリゴン属性を新規に登録できない場合のピクセルバッファの登録領域の増加を抑制する点に主眼があるので、オーバーサンプリングを行わない通常のピクセル単位での描画処理にも同様に適用できるものである。
【００３４】
［描画処理装置］
次に、本発明の描画処理方法の実施、特にオーバーサンプリングによる高解像度画像の描画処理方法の実施に適した描画処理装置の例を説明する。
描画処理装置は、コンピュータプログラムによってその動作が規定されるレンダリングプロセッサ、ジオメトリプロセッサ及びメインプロセッサ（ＣＰＵ）と、メモリその他のハードウエア資源との協働により実現することができる。
【００３５】
図３は、この画像処理装置の構成図である。図３に示されるように、描画処理装置は、データバスを介して接続されるジオメトリプロセッサ５０、メモリ５１、レンダリングプロセッサ５２、ＣＰＵ５６、ドライブユニット５７及び通信ユニット５８と、レンダリングプロセッサ５２の処理結果をディスプレイ５５に表示するためのディスプレイコントローラ５４を有している。レンダリングプロセッサ５２には、テクスチャ属性（カラー値等）が記録されているテクスチャメモリ５３が内蔵ないし付属されている。
【００３６】
メモリ５１には、描画（表示）対象となるポリゴン等の図形情報、例えば、頂点座標値、各頂点のＲ（赤）、Ｇ（緑）、Ｂ（青）のカラー値、マップ座標値、ベクトル値等の頂点情報及び頂点連結情報等が格納されている。図形情報は、ＣＰＵ５６の制御のもとで、ドライブユニット５７が、それに装着されたＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等の各種記録媒体から読み取ったり、通信ユニット５８が有線或いは無線による通信媒体、伝送媒体等を介して取り込んだものである。
テクスチャメモリ５３に記録されるテクスチャ属性は、例えばＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等の各種記録媒体、有線或いは無線による通信媒体、あるいは、伝送媒体等を介して取り込まれたものである。
【００３７】
ジオメトリプロセッサ５０は、ＣＰＵ５６の制御のもとで、メモリ５１から上記の図形情報を読み出し、その図形情報に対してアフィン変換、スクリーン座標への投影変換、頂点に対する光源処理等のジオメトリ処理を行う半導体デバイスの一つである。ジオメトリ処理の結果データは、レンダリングプロセッサ５２へ供給される。
【００３８】
レンダリングプロセッサ５２は、本発明の描画処理用の半導体デバイスの一例となるもので、ジオメトリプロセッサ５０から送られてきたジオメトリ処理の結果データをピクセル化し、各ピクセルをディスプレイ５５のスクリーン座標に対応させて配置して、ディスプレイ５５の２次元スクリーンに表示するためのスクリーンデータを生成する。このような処理をレンダリング処理という。
このレンダリング処理を実現するため、レンダリングプロセッサ５２には、通常はその内部に記録されているコンピュータプログラムとの協働により、ポリゴンセットアップユニット６１、ラスタライザユニット６２、カラーコンポジットユニット６５、サブピクセルコンポジットユニット６６、フレームバッファ６７、及び、ブレンドユニット７１の機能部品を構築する。
【００３９】
ポリゴンセットアップユニット６１は、ジオメトリプロセッサ５０から送られてくるジオメトリ処理の結果データの取り込みと、そのバッファリングとを行い、例えばストリップ状又はファン状のポリゴンメッシュ構造のデータを独立のポリゴンに変換し、これをラスタライザユニット６２に送出する。ポリゴンセットアップユニット６１は、また、エリア選択（area culling）及びバック選択（back culling）等を行い、不要なポリゴンを廃棄する。このようにして、後段のラスタライザユニット６２で行われる処理の効率を上げている。
【００４０】
ラスタライザユニット６２は、ポリゴンを公知のＤＤＡ（Digital Differential Analyzer）等を用いて分析するもので、オーバーサンプリング画像を扱う場合は、サブピクセルラスタライザ６３とピクセルラスタライザ６４とを含んで構成される。
サブピクセルラスタライザ６３は、スクリーンの描画領域を公知のオーバーサンプリング手法により求め、１ピクセル分の複数のサブピクセル描画領域を一つのサブピクセルマスクとしてまとめる。
ピクセルラスタライザ６４は、Ｚ値、カラー値及びテクスチャメモリ５３からテクスチャカラー値を参照するためのテクスチャＵＶ座標（テクスチャの参照アドレス）等を含むピクセル属性を、ピクセル単位で求める。
カラー値は、カラーコンポジットユニット６５へ送られ、Ｚ値及びサブピクセルマスクは、サブピクセルコンポジットユニット６６へ供給される。
【００４１】
カラーコンポジットユニット６５は、ピクセルラスタライザ６４より取得したカラー値と、テクスチャＵＶ座標に応じてテクスチャメモリ５３から供給されたテクスチャ属性（カラー値）とを合成し、描画ピクセルカラー値を生成する。この描画ピクセルカラー値は、サブピクセルコンポジットユニット６６へ供給される。
【００４２】
サブピクセルコンポジットユニット６６は、新規に投入されたピクセルのサブピクセルマスク及びそれ以前の描画処理によってサブピクセルバッファ６８に保存されているサブピクセルマスク、新規に投入されたピクセルの個々のサブピクセルのカラー値、Ｚ値及びそれ以前の描画処理によってカラーバッファ６９、Ｚバッファ７０に登録されているカラー値、Ｚ値に基づき、必要に応じて、ピクセル属性（カラー値、Ｚ値等）が最も近似する複数のサブピクセルの検出と、検出したサブピクセルのピクセル属性の統合とを行う。より具体的には、Ｎ種類のカラー値を少なくともＮ−１種類のカラー値に統合して、統合ピクセル属性の一例となる合成カラー値を生成するとともに、合成カラー値に対応した一つの代表Ｚ値の選出等を行う。
このサブピクセルコンポジットユニット６６からは、結局、カラー値、若しくは合成カラー値、代表Ｚ値及びサブピクセルマスクが出力される。これらのデータは、フレームバッファ６７に供給され、適宜、サブピクセルコンポジットユニット６６によって参照ないし更新される。
【００４３】
フレームバッファ６７は、バンクＡとバンクＢからなる２バンク構成のバッファメモリである。一方のバンク、例えばバンクＡが上述した描画バッファとして機能している間、他方のバンクであるバンクＢは描画されたデータをディスプレイ５５に表示させる際に用いられる表示バッファとして機能する。このようにして、描画及びそれに続く表示の処理速度の向上を図っている。
図１において示したサブピクセルバッファ６８、カラーバッファ６９及びＺバッファ７０は、描画バッファとして機能するバンクの方に一時的に形成される。但し、カラーバッファ６９及びＺバッファ７０については、描画バッファに一時的に形成されるようにせず、別途設けたメモリ領域に半恒常的に形成されるようにしてもよい。
サブピクセルバッファ６８には、サブピクセルマスクが随時更新できる形態で記録される。カラーバッファ６９とＺバッファ７０は、上述したように、ＬＵＴとして形成される。ここでは、説明を簡単にするため、サブピクセルバッファ６８のビット深度が１ビットであるものとするが、ビット深度は、この例に限定されるものではない。１ビット深度の場合、カラーバッファ６９は、図１（ｂ）に示したように、ＬＵＴの要素領域(0)、(1)に対応する２つのカラーバッファ６９(0)、６９(1)に分けられ、同じく、Ｚバッファ７０はＬＵＴの要素領域(0)、(1)に対応する２つのＺバッファ７０(0)、７０(1)に分けられる。
【００４４】
ブレンドユニット７１は、サブピクセルバッファ６８とカラーバッファ６９から読み出されたデータを用い、下記式のようにピクセルカラー値を合成し、これをディスプレイコントローラ５４に出力する。
Ｃcmp＝（Ｃ(0)*num(0)＋Ｃ(1)*num(1)）／num(0)＋num(1)
但し、Ｃcmpは合成後のピクセルカラー値、Ｃ(0)は、カラーバッファ６９(0)に格納されていたカラー値、Ｃ(1)はカラーバッファ６９(1)に格納されていたカラー値、num(0)は、Ｃ(0)に対応するカラー値で表現されるサブピクセルの個数、num(1)は、Ｃ(1)に対応するカラー値で表現されるサブピクセルの個数である。
【００４５】
ディスプレイコントローラ５４は、ディスプレイ５５の水平同期信号、垂直同期信号等を生成すると共に、そのディスプレイ５５の表示タイミングに従い、フレームバッファ６７からサブピクセルのカラー値を順次取り出し、必要に応じて、そのカラー値をブレンドユニット７１で合成させた後、ディスプレイ５５の２次元スクリーン上に、２次元画像として表示させる。
【００４６】
［サブピクセルコンポジットユニットの構成］
ここで、レンダリングプロセッサ５２の中心的な機能を受け持つサブピクセルコンポジットユニット６６の具体的な構成及びその概略動作を説明する。
以後の説明では、便宜上、各種データを次のように、省略する。
「Ｍin」：新規に投入されたサブピクセルマスク
「Ｚin」：新規に投入されたサブピクセルのＺ値
「Ｃin」：新規に投入されたサブピクセルのカラー値
「Ｍbuf」：サブピクセルバッファ６８に格納され若しくは読み出されたサブピクセルマスク
「Ｍow」：サブピクセルバッファ６８に上書きされるサブピクセルマスク
「Ｃ(0)」：カラーバッファ６９(0)に格納され若しくはそこから読み出されたカラー値
「Ｃ(1)」：カラーバッファ６９(1)に格納され若しくはそこから読み出されたカラー値
「Ｚ(0)」：Ｚバッファ７０(0)に格納され若しくはそこから読み出されたＺ値「Ｚ(1)」：Ｚバッファ７０(1)に格納され若しくはそこから読み出されたＺ値
【００４７】
サブピクセルコンポジットユニット６６は、図４に示されるように、隠面消去ブロック７５と、マスクコンポジット・Ｚ選出ブロック７６と、カラーコンポジットブロック７７とを含んで構成される。これらのブロック７５〜７７は、ユニット内の半導体を含むハードウエア部品とソフトウエアとの協働により形成される。
【００４８】
隠面消去ブロック７５は、Ｚバッファ７０から読み出したすべてのＺ値の比較を行うことにより、Ｚバッファ７０に格納されているＺ値に対応したサブピクセル描画領域の中で、視点からみて相対的に後方となる領域を求め、それらの領域のビット値と、投入サブピクセルマスクの中で描画すべき領域のビット値との論理積演算を行うとともに、すべてのサブピクセルについての論理積演算結果を論理和演算することにより、隠面消去処理を行う。この隠面消去処理により得られたデータをＭowとして出力する。
より具体的には、Ｚinと、Ｚバッファ７０から読み出されたＺ(0)、Ｚ(1)とを比較し、Ｍinの中で、ディスプレイ５５の表面、すなわち仮想視点から見えることになるサブピクセル描画領域の集合をＭowとして出力する。
この隠面消去ブロック７５からは、Ｚin、Ｚ(0)、Ｚ(1)と、サブピクセルバッファ６８から読み出されたＭbufと、上記のＭowとが出力され、これらがマスクコンポジット・Ｚ選出ブロック７６に供給される。
【００４９】
マスクコンポジット・Ｚ選出ブロック７６は、隠面消去ブロック７５から供給されたＭbuf及びＭowに基づいて、仮想視点から見えることになるサブピクセル描画領域数を特定するとともに、特定したサブピクセル描画領域に描画されるサブピクセルのピクセル属性の種類数をピクセル単位で求める。
例えばピクセル属性が１種類しかなかった場合、マスクコンポジット・Ｚ選出ブロック７６は、そのピクセル属性におけるＺ値をＬＵＴの一方の要素領域（例えば要素領域(1)）に登録すると共に、仮想視点から見えることになるサブピクセルについてのＭbufをサブピクセルバッファ６８に上書きする。このとき、ＬＵＴの他方の要素領域（この場合は要素領域(0)）はディセーブル状態としておく。
ピクセル属性が２種類であった場合、マスクコンポジット・Ｚ選出ブロック７６は、これらのピクセル属性における２つのＺ値の何れか一方を選択してＬＵＴの要素領域(1)に登録するか、若しくは、それら２つのＺ値をＬＵＴの要素領域(0)と要素領域(1)にそれぞれ振り分けて登録し、仮想視点から見えることになるサブピクセルについてのＭbufをサブピクセルバッファ６８に上書きする。
ピクセル属性が３種類であった場合、マスクコンポジット・Ｚ選出ブロック７６は、これらのピクセル属性における３つのＺ値のうちで近似する２つのＺ値、すなわちＺin、Ｚ(0)、Ｚ(1)の中で差分が相対的に小さい２つのＺ値を選出し、さらに選出された２つのＺ値のうちで、それぞれ対応する描画領域数が多い方の１つのＺ値を代表Ｚ値として選出し、選出された代表Ｚ値をＬＵＴの一方の要素領域（例えば要素領域(1)）に登録し、一方、最も近似する２つのＺ値を除いた残りの１つのＺ値をＬＵＴの他方の要素領域（この場合は要素領域(0)）に登録する。
また、近似する２つのＺ値にそれぞれ対応するサブピクセル描画領域のビット値の論理和演算を行い、その論理和演算後のビット値と仮想視点から見えることになるサブピクセルのビット値とを含むＭbufをサブピクセルバッファ６８に上書きする。
【００５０】
マスクコンポジット・Ｚ選出ブロック７６は、また、ピクセル属性の種類数に応じてＬＵＴの各要素領域へ登録する代表Ｚ値の選出に使用した選出コントロール信号ＢＳを、後段のカラーコンポジットブロック７７においてカラー値を選出する際の選出コントロール信号として出力する。さらに、最も近似する２つのＺ値の選出を行った時に、これらの２つのＺ値にそれぞれ対応するサブピクセル描画領域の数に応じた信号を、カラーコンポジットブロック７７でカラー値を合成する際の合成比率コントロール信号ＢＲとして出力する。
【００５１】
カラーコンポジットブロック７７は、新規ピクセルのカラー値Ｃinと、ＬＵＴから読み出したカラー値Ｃ(0)、Ｃ(1)の中から、選出コントロール信号ＢＳに応じたカラー値を選出し、必要に応じてカラー値の統合（カラー合成）を行う。
例えばピクセル属性が１種類であったときは、選出コントロール信号ＢＳに基づいて、そのピクセル属性に対応するカラー値をＬＵＴの一方の要素領域（例えば要素領域(1)）に登録する。ピクセル属性が２種類であったときは、選出コントロール信号ＢＳに基づいて、その２種類のピクセル属性に対応する２つのカラー値を１つのカラー値に統合してＬＵＴの一方の要素領域（例えば要素領域(1)）に登録するか、若しくは、それら２つのカラー値をＬＵＴの要素領域(0)、(1)に振り分けて登録する。ピクセル属性が３種類であったときは、選出コントロール信号ＢＳに基づいてＣin、Ｃ(0)、Ｃ(1)の中から近似する２つのカラー値を選出し、選出したカラー値を合成比率コントロール信号ＢＲに応じて１つのカラー値に統合して、ＬＵＴの何れか一方の要素領域（例えば要素領域(1)）に登録し、また、残りの１つのカラー値をＬＵＴの他方の要素領域（この場合は要素領域(0)）に登録する。
【００５２】
このように、サブピクセルコンポジットユニット６６では、投入されたサブピクセルのピクセル属性の種類が、既登録のＬＵＴの要素領域数を超えることになるか否かを常に検証し、ピクセル属性の種類が既登録のＬＵＴの要素領域数を超えるときには、２つのピクセル属性をデータを１つに統合することにより、描画のために登録するピクセル属性の種類が、ビット深度で定まるＬＵＴの要素領域数に収まるようにして、メモリ容量の増加を抑制している。
【００５３】
次に、上記の隠面消去ブロック７５、マスクコンポジット・Ｚ選出ブロック７６、及び、カラーコンポジットブロック７７の詳細構成例を説明する。
【００５４】
図５は、隠面消去ブロック７５の詳細構成図である。図５において、比較部８１は、イネーブル状態となっているＺバッファ７０、例えばＺバッファ７０(1)から読み出したＺ(1)と、投入されたＺinとを比較し、ＺinがＺ(1)よりも仮想視点に近いときは"１"、ＺinがＺ(1)よりも仮想視点から遠いときは"0"の選出コントロール信号を選出部８５に出力する。同様に、比較部８２は、イネーブル状態となっている他方のＺバッファ７０(0)から読み出したＺ(0)とＺinとを比較し、ＺinがＺ(0)よりも仮想視点に近いときは"１"、ＺinがＺ(0)よりも仮想視点から遠いときには"0"の選出コントロール信号を選出部８４に出力する。
なお、対応するＬＵＴの要素領域(0)、(1)が空領域になっている場合、比較部８２、８１は、Ｚ(0)、Ｚ(1)を仮想視点から遠い値であるとして上記の比較を行う。その結果、比較部８２、８１からは、"1"の選出コントロール信号が出力される。
【００５５】
選出部８５には、１ピクセル分のサブピクセルマスクの各描画領域の個数に対応する１６個の"0"からなるデータ（ALL"0"）と、サブピクセルバッファ６８から読み出されたＭbufとが供給され、これらのいずれかを比較部８１から出力される選出コントロール信号のビット値に応じて切り換えて論理積演算部（AND）８６に出力する。本例では、選出コントロール信号のビット値が"0"であるときはALL"0"が出力され、選出コントロール信号のビット値が"1"であるときは、Ｍbufが出力されるようにする。
【００５６】
選出部８４には、All"0"と、Ｍbufを反転部８３で論理反転した反転データとが供給され、これらのいずれかを、比較部８２からの選出コントロール信号のビット値に応じて切り換えて論理積演算部（AND）８７に出力する。本例では、選出コントロール信号のビット値が"0"であるときはAll"0"が出力され、選出コントロール信号のビット値が"1"であるときは、反転データが出力されるようにする。
【００５７】
論理積演算部８６は、選出部８５から出力されるＭbuf又はAll"0"と、Ｍinとの論理積演算結果を論理和演算部８８に出力する。論理積演算部８７は、選出部８４から出力されるＭbufの反転データ又はAll"0"と、Ｍinとの論理積演算結果を論理和演算部８８に出力する。論理和演算部８８は、論理積演算部８６、８７の出力データの論理和演算を行い、その演算結果のデータを新たなＭowとして、マスクコンポジット・Ｚ選出ブロック７６に供給する。
なお、隠面消去ブロック７５からは、Ｍowのほか、Ｍbuf、Ｚin、Ｚ(0)、Ｚ(1)も、マスクコンポジット・Ｚ選出ブロック７６に供給される。
【００５８】
図６は、マスクコンポジット・Ｚ選出ブロック７６の詳細構成図である。
図６において、Ｍbufは、論理積演算部９３に供給されるとともに、反転部９０で反転された後に論理積演算部９２に供給される。また、隠面消去ブロック７５から送られてきたＭowは、ビットカウント部９６に供給されると共に、反転部９１で反転された後に論理積演算部９２、９３に供給される。
なお、反転部９０、９１は、サブピクセルバッファ６８の各描画領域がディセーブル状態となっているときに、各描画領域に対応する値として、特に論理０を出力するように構成されている。
【００５９】
論理積演算部９２は、隠面消去ブロック７５からのＭbufの反転データとＭowの反転データとの論理積演算結果をビットカウント部９４へ供給する。論理積演算部９３は、上記のＭbufと、Ｍowの反転データとの論理積演算結果をビットカウント部９５へ供給する。
なお、論理積演算部９３は、サブピクセルバッファ６８のサブピクセル描画領域がディセーブル状態となっているとき、各領域に対応する値として特に"0"を出力するように構成されている。
【００６０】
ビットカウント部９４〜９６は、それぞれ入力されたデータに含まれる"1"の個数をカウントするとともに、この"1"のカウント値と入力データ（Ｍbuf、Ｍow）とを検証部９７へ供給する。
検証部９７は、ビットカウント部９４〜９６から送られてきた"1"のカウント値に基づいて、１ピクセル内に存在するピクセル属性の種類を検証する。そして、ピクセル属性の種類数とそれに対応するカウント値を示す信号を、ニアペア選出部１０１とニア選出部１０３へ供給する。
検証部９７は、また、ビットカウント部９４〜９６を介して送られてきた上記入力データと各カウント値、及び、ピクセル属性の種類数とそれに対応するカウント値を示す信号を選出部９８へ供給する。
一方、隠面消去ブロック７５から送られてきたＺin、Ｚ(0)、Ｚ(1)は、選出部１０２に供給されると共に、ニアペア選出部１０１に供給される。
【００６１】
ニアペア選出部１０１は、検証部９７から送られてきたピクセル属性の種類数及びそれに対応するカウント値を示す信号と、隠面消去ブロック７５から送られてきた各Ｚ値とに基づいて、選出部１０２と選出部９８、及びカラーコンポジットブロック７７の選出動作を制御するための選出コントロール信号ＢＳを生成する。ニア選出部１０３は、検証部９７から送られてきたピクセル属性の種類数及びそれに対応するカウント値を示す信号と、ニアペア選出部１０１で選出された２つのＺ値とに基づいて一つの代表Ｚ値を選出する。
【００６２】
ニアペア選出部１０１及びニア選出部１０３は、以下のように動作する。
ピクセル属性が１種類であったとき、ニアペア選出部１０１は、そのピクセル属性に対応する一つのＺ値を選出部１０２から出力させるようにする。このＺ値は、その後、ＬＵＴの例えば要素領域(1)に登録される。なお、このときのＬＵＴの要素領域(0)は、ディセーブル状態としておく。
ピクセル属性が２種類であったとき、ニアペア選出部１０１は、その２種類のピクセル属性に対応する２つのＺ値を選出部１０４へ供給するように、選出部１０２の選出動作を制御する。このとき、ニア選出部１０３は、検証部９７から送られてきた信号に基づき、２つのＺ値のうち描画領域数の多い方の一つのＺ値、すなわち、上記カウント値の多い方に対応するＺ値を代表Ｚ値として選出するように、選出部１０４の選出動作を制御する。選出部１０４から出力された代表Ｚ値は、その後、ＬＵＴの一方の要素領域（例えば要素領域(1)）に登録される。
ピクセル属性が３種類であったとき、ニアペア選出部１０１は、その３種類のピクセル属性に対応する３つのＺ値、すなわちＺin、Ｚ(0)、Ｚ(1)のうちで近似する２つのＺ値を選出部１０４へ供給するとともに、Ｚin、Ｚ(0)、Ｚ(1)のうちで最も離れているＺ値を出力するように、選出部１０２の選出動作を制御する。このとき、ニア選出部１０３は、上記近似する２つのＺ値のうち領域数（カウント値）の多い方に対応するＺ値を代表Ｚ値として出力されるように、選出部１０４の選出動作を制御する。選出部１０４から出力された代表Ｚ値と、Ｚin、Ｚ(0)、Ｚ(1)のうちで最も離れているＺ値として選出部１０２から出力されたＺ値は、それぞれ要素領域(0)、(1)に振り分けられて登録される。
【００６３】
選出部９８では、ニアペア選出部１０１からの選出コントロール信号ＢＳと検証部９７より供給されたピクセル属性の種類数及びカウント値とに基づいて、上記入力データの選出を行うことにより、隠面消去後のサブピクセル描画領域がＬＵＴの要素領域(0)、(1)の何れに対応するのかを決定し、ＬＵＴの要素領域(0)、(1)毎に決定した隠面消去後のサブピクセル描画領域数及びピクセル属性の種類数を示す信号をレート決定部１００へ出力し、また、上記入力データそのものを論理和演算部９９へ出力する。
【００６４】
論理和演算部９９は、選出部９８から供給されたデータの論理和演算を行い、演算結果のデータを新たなＭbufとして出力する。
レート決定部１００では、選出部９８から供給されたピクセル属性の種類数と隠面消去後のサブピクセル描画領域数とに基づいて、カラーコンポジットブロック７７で合成カラー値を生成する際の合成比率を表す合成比率コントロール信号ＢＲを生成し、これをカラーコンポジットブロック７７に供給する。
【００６５】
図７は、カラーコンポジットブロック７７の詳細構成例である。図７において、選出部１０５は、カラーコンポジットユニット６５から送られてきたＣinと、カラーバッファ６９から読み出されたＣ(0)、Ｃ(1)の中から、選出コントロール信号ＢＳに応じたカラー値を選出する。
カラー値が１種類のとき、選出部１０５は、そのカラー値を合成部１０６へ出力するが、合成部１０６は、そのカラー値をそのままＬＵＴの要素領域(1)であるカラーバッファ６９(1)へ供給する。カラー値が２種類のとき、選出部１０５は、２種類のカラー値の一方を合成部１０６へ出力する。合成部１０６は、合成比率コントロール信号ＢＲに基づいて、カラー値をＬＵＴの例えば要素領域(1)に対応付けられたカラーバッファ６９(1)へ登録するとともに他方のカラー値を、ＬＵＴの要素領域(0)に対応付けられたカラーバッファ６９(0)に登録する。
カラー値が３種類のとき、選出部１０５は、ニアペア選出部１０１で３種類の中から近似するとして選出された２つのＺ値に対応するカラー値をＣin、Ｃ(0)、Ｃ(1)の中から選出し、選出したカラー値を合成部１０６へ供給する。合成部１０６は、合成比率コントロール信号ＢＲに基づいて、その２種類のカラー値を１つの合成カラー値に統合して、ＬＵＴの要素領域(1)に対応付けられたカラーバッファ６９(1)へ登録する。３つのカラー値のうちの残りのカラー値は、ＬＵＴの要素領域(0)に対応付けられたカラーバッファ６９(0)へ登録される。
【００６６】
［描画処理装置の動作例］
次に、上記のように構成される描画処理装置の具体的動作例を、図８〜図１５を参照して説明する。ここでは、説明を簡単にするために、図１に示したようにサブピクセルバッファ６８が深度１ビット×１６ワードで、ＬＵＴの要素領域数が２個の場合を例に挙げて説明する。以降の説明では、図８に示すように、ピクセル毎のサブピクセルバッファの１６個のサブピクセル描画領域が、それぞれｐ(1、1)〜ｐ(4、4)のアドレスによって特定されるものとする。
【００６７】
図９（ａ）は１ピクセル分の各サブピクセル描画領域がすべて空領域になっている初期状態でのサブピクセルバッファ１１０、図９（ｂ）は要素領域(0)、(1)の何れも空領域となる初期状態のＬＵＴ１１１、図９（ｃ）はサブピクセル描画領域の状態を示した図である。図９（ａ）、（ｃ）に示されるように、サブピクセルバッファ１１０の各サブピクセル描画領域に付される符号は、以下の意味をもつものとする。
「１０」：隠面消去（ＨＳＲ）後にＬＵＴの要素領域(0)に対応したサブピクセルが描画される領域
「１１」：隠面消去（ＨＳＲ）後にＬＵＴの要素領域(1)に対応したサブピクセルが描画される領域
「１２」：隠面消去（ＨＳＲ）後の空領域
「１３」：ビット値が"1"となるサブピクセル描画領域
「１４」：ビット値が"0"となるサブピクセル描画領域
「１５」：隠面消去後にビット値が"1"となるサブピクセル描画領域
「１６」：隠面消去後にビット値が"0"となるサブピクセル描画領域
「２」：カラー合成後にＬＵＴの要素領域(0)に対応するビット値として"0"が格納される領域
「３」：カラー合成後にＬＵＴの要素領域(1)に対応するビット値として"1"が格納される領域
「８」：ディセーブル状態となっている空領域（イネーブル状態で"0"が格納されている領域２と区別するための参照符号）
【００６８】
図９（ａ），（ｃ）に示される初期状態のときに、図１０上段に示すようなポリゴン２０のエッジ部分を含むピクセルから図１０中段に示すような１６ビットのサブピクセルマスク２１が投入されたとする。このサブピクセルマスク２１のうち、サブピクセルが描画される領域、すなわち、ポリゴン２０と重なる部分のＺ値はＺ０で、カラー値はＣ０であるものとする。
この新規に投入されたサブピクセルマスク２１は、図１１（ａ）の左図に示されるように、ポリゴン２０内部の領域１３のｐ(1、1)〜ｐ(1、3)、ｐ(2、1)、ｐ(2、2)、ｐ(3、1)が"1"で、他の領域１４のｐ(1、4)、ｐ(2、3)、ｐ(2、4)、ｐ(3、2)、ｐ(3、3)、ｐ(3、4)、ｐ(4、1)〜ｐ(4、4)が"0"  となる。このときの、サブピクセルマスク２１は、１６進数で表すと”０ｘ０１３７”になる。
【００６９】
このとき、隠面消去ブロック７５にはＺinとしてＺ０、ＣinとしてＣ０が供給されるが、先に描画されているサブピクセルがないため、隠面消去ブロック７５からは、図１１（ａ）右図に示されるように、投入サブピクセルマスク１１２と同様のビットパターンでＨＳＲ後のサブピクセルマスク１１３が出力される。
【００７０】
また、マスクコンポジット・Ｚ選出ブロック７６は、図１１（ｂ）左図のように、サブピクセルマスク１１３と同様のビットパターンのサブピクセルマスク１１４をサブピクセルバッファ６８に上書きする。その結果、サブピクセルバッファ６８におけるサブピクセル描画領域１１６は、図１１（ｃ）左図に示されるように、領域３のｐ(1、1)〜ｐ(1、3)、ｐ(2、1)、ｐ(2、2)、ｐ(3、1)が"1"、残りの領域８のｐ(1、4)、ｐ(2、3)、ｐ(2、4)、ｐ(3、2)、ｐ(3、3)、ｐ(3、4)、ｐ(4、1)〜ｐ(4、4)が空領域となる。
マスクコンポジット・Ｚ選出ブロック７６及びカラーコンポジットブロック７７は、図１１（ｃ）右図に示すように、ＬＵＴ１１７の要素領域(1)にサブピクセル描画領域１１６の領域３に対応したデータとしてＣ０とＺ０を登録する。
【００７１】
次に、サブピクセル描画領域１１６及びＬＵＴ１１７が図１１（ｃ）の状態のときに、図１２（ａ）左図のように、領域１４のｐ(1、1)〜ｐ(1、4)、ｐ(2、1)〜ｐ(2、4)、ｐ(3、1)、ｐ(3、3)、ｐ(3、4)、ｐ(4、3)、ｐ(4、4)が"0"で、領域１３のｐ(3、2)、ｐ(4、1)、ｐ(4、2)のビット値が"1"となるサブピクセルマスク１１８が新たに投入されたとする。投入されたサブピクセルマスク１１８の領域１３に対応するＺ値はＺ１で、カラー値はＣ１であり、Ｚ１のサブピクセル数は、Ｚ０のサブピクセル数よりも少ないものとする。
【００７２】
このようなサブピクセルマスク１１８が投入されると、隠面消去ブロック７５の比較部８１にはＺ１が供給され、比較部８２にはＺ１とＬＵＴ１１７の要素領域(1)から読み出されたＺ０とが供給されるが、ＬＵＴ１１７の要素領域(0)が未だ空領域であること、及び、新たなサブピクセルマスク１１８における領域１３（"1"）のビットパターンが、それ以前のサブピクセル描画領域１１６が"1"になっているビットパターンとが重ならないことから、隠面消去ブロック７５からは、図１２（ａ）右図に示すように、サブピクセルマスク１１８と同じビットパターンで、隠面消去（ＨＳＲ）後のサブピクセルマスク１１９が出力される。
【００７３】
マスクコンポジット・Ｚ選出ブロック７６は、図１２（ｂ）左図に示すように、空領域である要素領域(0)に対応する領域１０がサブピクセルバッファ１２０に残るため、領域１１と領域１２との統合を行い、領域１１、１２のｐ(1、1)〜ｐ(1、3)、ｐ(2、1)、ｐ(2、2)、ｐ(3、1)、ｐ(3、2)、ｐ(4、1)、ｐ(4、2)をＬＵＴの要素領域(1)に登録されたピクセル属性のサブピクセルを描画するサブピクセル描画領域として扱う。
一方、領域１０のｐ(1、4)、ｐ(2、3)、ｐ(2、4)、ｐ(3、3)、ｐ(3、4)、ｐ(4、3)、p(4、4)は、隠面消去後のＬＵＴの要素領域(0)に登録された値となるが、要素領域(0)は空領域になっているので、これらの領域１０における描画は行われない。
【００７４】
その結果、サブピクセルバッファ６８のサブピクセル描画領域１２２は、図１２（ｃ）左図に示すように、ｐ(1、1)〜ｐ(1、3)、ｐ(2、1)、ｐ(2、2)、ｐ(3、1)、ｐ(3、2)、ｐ(4、1)、ｐ(4、2)の領域３に"1"が描画され、残りのｐ(1、4)、ｐ(2、3)、ｐ(2、4)、ｐ(3、3)、ｐ(3、4)、ｐ(4、3)、ｐ(4、4)の領域８が空領域となる。
カラーコンポジットブロック７７は、Ｃ０とＣ１とを統合して１つの合成カラー値Ｃr0を生成する。すなわち、下記式に示すように、隠面消去後のＺ０の描画領域数「６」に対応してＣ０を６倍した値と、隠面消去後のＺ１の描画領域数「３」に対応してＣ１を３倍した値とを加算して領域数で平均することにより、Ｃr0を算出する。
Ｃr0＝（Ｃ０＊６＋Ｃ１＊３）／９
このときの代表Ｚ値は、Ｚ０の方がＺ１よりも領域数が多いため、Ｚ０が選出される。その結果、ＬＵＴ１２３は、図１２（ｃ）右図に示すように、要素領域(1)にサブピクセルバッファ１２２の領域３に対応したＣr0とＺ０が格納される。ＬＵＴ１２３の要素領域(0)は、未だ空領域となっている。
【００７５】
次に、サブピクセル描画領域１２２及びＬＵＴ１２３が図１２（ｃ）の状態となっているときに、図１３（ａ）左図のように、領域１３のｐ(1、4)、ｐ(2、3)、ｐ(2、4)、ｐ(3、3)、ｐ(3、4)、ｐ(4、3)、ｐ(4、4)が"1"で、領域１４のｐ(1、1)〜ｐ(1、3)、ｐ(2、1)、ｐ(2、2)、ｐ(3、1)、ｐ(3、2)、ｐ(4、1)、ｐ(4、2)が"0"となるサブピクセルマスク１２４が新規に投入されたとする。領域１３に対応するＺ値はＺ２であり、カラー値はＣ２であるものとする。
【００７６】
このようなサブピクセルマスク１２４が投入されると、隠面消去ブロック７５の比較部８１には、ＺinとしてＺ２が供給され、比較部８２には、Ｚ２と、ＬＵＴ１２３の要素領域(1)から読み出されたＺ０とが供給される。しかし、この時点でＬＵＴ１２３の要素領域(0)は空領域であるため、隠面消去ブロック７５からは、図１３（ａ）右図に示すように、サブピクセルマスク１２４と同じビットパターンで、隠面消去後のサブピクセルマスク１２５がマスクコンポジット・Ｚ選出ブロック７６に供給される。
【００７７】
マスクコンポジット・Ｚ選出ブロック７６は、図１３（ｂ）左図に示すように、サブピクセルバッファ６８のサブピクセル描画領域１２６のうち、領域１１のｐ(1、1)〜ｐ(1、3)、ｐ(2、1)、ｐ(2、2)、ｐ(3、1)、ｐ(3、2)、ｐ(4、1)、ｐ(4、2)がＬＵＴの要素領域(1)に対応したピクセル属性のサブピクセル、領域１２のｐ(1、4)、ｐ(2、3)、ｐ(2、4)、ｐ(3、3)、ｐ(3、4)、ｐ(4、3)、ｐ(4、4)がＬＵＴの要素領域(0)に対応したピクセル属性のサブピクセルの描画領域となる。
このマスクコンポジット・Ｚ選出ブロック７６からは、Ｚ０に対応するｐ(1、1)〜ｐ(1、3)、ｐ(2、1)、ｐ(2、2)、ｐ(3、1)、ｐ(3、2)、ｐ(4、1)、ｐ(4、2)の"1"と、Ｚ１に対応するｐ(1、4)、ｐ(2、3)、ｐ(2、4)、ｐ(3、3)、ｐ(3、4)、ｐ(4、3)、ｐ(4、4)の"0"とにより構成されるデータが、サブピクセルバッファ６８に上書きされるサブピクセルマスク（Ｍbuf）として出力される。その結果、サブピクセルバッファ６８は、図１３（ｃ）左図に示すサブピクセル描画領域１２８のように、領域３のｐ(1、1)〜ｐ(1、3)、ｐ(2、1)、ｐ(2、2)、ｐ(3、1)、ｐ(3、2)、ｐ(4、1)、ｐ(4、2)に"1"が描画され、残りの領域２のｐ(1、4)、ｐ(2、3)、ｐ(2、4)、ｐ(3、3)、ｐ(3、4)、ｐ(4、3)、ｐ(4、4)が"0"となる。
【００７８】
カラーコンポジットブロック７７は、新規に投入されたカラー値であるＣ２をカラーバッファ６９(0)へ送る。これにより、図１３（ｃ）右図に示すように、カラー合成後のＬＵＴ１２９は、要素領域(1)にサブピクセルバッファ１２８の各描画領域３に対応した合成カラー値であるＣr0とそのときの代表Ｚ値であるＺ０が格納され、一方、要素領域(0)にはサブピクセルバッファ１２８の領域２に対応したカラー値であるＣ２と、そのときの代表Ｚ値であるＺ２が登録される。
【００７９】
次に、サブピクセル描画領域１２８及びＬＵＴ１２９が図１３（ｃ）の状態のときに、図１４（ａ）左図に示すように、領域１３のｐ(2、1)、ｐ(3、1)、ｐ(3、2)、ｐ(4、1)、ｐ(4、2)が"1"で、領域１４のｐ(1、1)〜ｐ(1、4)、ｐ(2、2)〜ｐ(2、4)、ｐ(3、3)、ｐ(3、4)、ｐ(4、3)、ｐ(4、4)が"0"となっているサブピクセルマスク１３０が新規に投入されたとする。このように、描画対象となるサブピクセルが前のものと重なるようになってくると、エイリアスの影響を考慮する必要が出てくる。そこで、この場合の動作を、より詳しく説明する。
なお、図１４（ａ）の領域１３に対応するＺ値はＺ３、カラー値はＣ３であり、Ｚ３と、ＬＵＴに格納されているＺ０、Ｚ２との関係は、Ｚ３＜Ｚ２≪Ｚ０であるとする。
【００８０】
サブピクセルマスク１３０が投入されると、隠面消去ブロック７５の比較部８２には、領域１３に対応するＺ３と、ＬＵＴ１２３の要素領域(0)から読み出されたＺ２が供給される。Ｚ３＜Ｚ２であり、Ｚ３の方が仮想視点から近い値を示すため、比較部８１からは、"1"の選択コントロール信号が出力される。また、比較部８１には、Ｚ３と、ＬＵＴ１２３の要素領域(1)から読み出されたＺ０とが供給される。Ｚ３≪Ｚ０であり、Ｚ３の方が仮想視点から近い値を示すため、比較部８１からも、"1"の選択コントロール信号が出力される。したがって、隠面消去ブロック７５からは、サブピクセルマスク１３０と同じビットパターンのものが、隠面消去後のサブピクセルマスク１３１としてマスクコンポジット・Ｚ選出ブロック７６に供給される。
【００８１】
マスクコンポジット・Ｚ選出ブロック７６では、ビットカウント部９４〜９６のうち、ビットカウント部９４ではｐ(1、4)、ｐ(2、3)、ｐ(2、4)、ｐ(3、3)、ｐ(3、4)、ｐ(4、3)、ｐ(4、4)に対応した７個の"1"をカウントし、ビットカウント部９５ではｐ(1、1)〜ｐ(1、3)、ｐ(2、2)に対応した４個の"1"をカウントし、ビットカウント部９６ではｐ(2、1)、ｐ(3、1)、ｐ(3、2)、ｐ(4、1)、ｐ(4、2)に対応した５個の"1"をカウントする。検証部９７は、ビットカウント部９４〜９６から供給されたカウント値に基づいて、ピクセル属性の種類が「３」であると判定し、その旨を表すデータとそれに対応するカウント値の信号を、ニアペア選出部１０１とニア選出部１０３へ供給する。
【００８２】
ニアペア選出部１０１には、Ｚ３と、ＬＵＴ１２９の要素領域(0)、(1)から読み出されたＺ０、Ｚ２が入力されており、これらの３つのＺ値のうち、最も近似する２つのＺ値としてＺ３とＺ２とを選定し、これらを選出部１０４とニア選出部１０３へ送り、残りの最も遠いＺ値であるＺ０を、ＬＵＴの要素領域(1)へ登録（上書き）する。ニア選出部１０３は、Ｚ３、Ｚ２のうち、領域数の多いＺ２を選出するように、選出部１０４の選出動作を制御する。このＺ２は、ＬＵＴの要素領域(0)へ登録（上書き）される。
【００８３】
選出部９８は、ニアペア選出部１０１が選出しなかったＺ０に対応したｐ(1、1)〜ｐ(1、3)、ｐ(2、2)の部分のデータをＬＵＴの要素領域(1)に対応させて"1"とし、ニアペア選出部１０１が選出したＺ３に対応したｐ(2、1)、ｐ(3、1)、ｐ(3、2)、ｐ(4、1)、ｐ(4、2)の領域と、ニアペア選出部１０３が選出したＺ２に対応する、残りのｐ(1、4)、ｐ(2、3)、ｐ(2、4)、ｐ(3、3)、ｐ(3、4)、ｐ(4、3)、ｐ(4、4)の描画領域の値をＬＵＴの要素領域(0)に対応させて"0"とする。その結果、図１４（ｂ）左図に示すように、サブピクセルバッファ１３２の領域１１のｐ(1、1)〜ｐ(1、3)、ｐ(2、2)がＬＵＴの要素領域(1)に対応したピクセル属性のサブピクセルとして扱われる。一方、領域１２のｐ(2、1)、ｐ(3、1)、ｐ(3、2)、ｐ(4、1)、ｐ(4、2)が隠面消去後のＺ３に対応した領域、領域１０の(1、4)、ｐ(2、3)、ｐ(2、4)、ｐ(3、 3)、ｐ(3、4)、ｐ(4、3)、ｐ(4、4)が隠面消去後のＺ２に対応した領域となり、それぞれＬＵＴの要素領域(0)に対応したピクセル属性のサブピクセルとして扱われる。
【００８４】
論理和演算部９９からは、Ｚ２及びＺ３に対応する領域が"0"で、残りの領域が"1"のサブピクセルマスク（Ｍbuf）が出力される。すなわち、この時のサブピクセルバッファ６８は、図１４（ｃ）左図に示すサブピクセル描画領域１３４のように、ｐ(1、1)〜ｐ(1、3)、ｐ(2、2)の領域３に"1"が描画され、残りのｐ(1、4)、ｐ(2、1)、ｐ(2、3)、ｐ(2、4)、ｐ(3、1)〜ｐ(3、4)、ｐ(4、1)〜ｐ(4、4)の領域２に"0"が描画された状態となる。
【００８５】
カラーコンポジットブロック７７は、ニアペア選出部１０１から出力された選出コントロール信号ＢＳに基づき、Ｚ２及びＺ３に対応するカラー値であるＣ２とＣ３が合成部１０６に送られ、一方、Ｚ０に対応するカラー値となっている合成カラー値Ｃr0がそのまま出力される。合成部１０６は、下記式に示すように、カウント値「７」に対応してＣ２を７倍した値と、カウント値「５」に対応してＣ３を５倍した値とを加算して平均する演算式により、新たな合成カラー値であるＣr1を求める。
Ｃr1＝（Ｃ２＊７＋Ｃ３＊５）／１２
カラー合成後のＬＵＴ１３５は、図１４（ｃ）右図に示すように、要素領域(1)にサブピクセルバッファ１３４の各描画領域３に対応したＣr0とＺ０が登録され、一方、要素領域(0)にサブピクセルバッファ１３４の領域２に対応したＣr1とＺ２が登録される。
【００８６】
次に、サブピクセル描画領域１３４及びＬＵＴ１３５が図１４（ｃ）の状態のときに、図１５（ａ）左図に示すように、領域１３のｐ(1、2)、ｐ(1、3)、ｐ(2、2)、ｐ(2、3)、ｐ(3、2)、ｐ(3、3)、ｐ(4、2)、ｐ(4、3)が"1"となり、領域１４のｐ(1、1)、ｐ(2、1)、ｐ(3、1)、ｐ(4、1)、ｐ(1、4)、ｐ(2、4)、ｐ(3、4)、ｐ(4、4)が"0"となっているサブピクセルマスク１３６が投入されたとする。領域１３に対応するＺ値はＺ４であり、カラー値はＣ４であるものとする。Ｚ４と、Ｚ０、Ｚ２との関係は、Ｚ２≪Ｚ４＜Ｚ０であり、Ｚ４の領域数がＺ０の領域数よりも多いものとする。
【００８７】
このサブピクセルマスク１３６が投入されると、隠面消去ブロック７５の比較部８２には、領域１３に対応するＺ４と、ＬＵＴ１３５の要素領域(0)から読み出されたＺ２が供給される。Ｚ２≪Ｚ４であり、Ｚ２の方が視点から近い値を示す。また、比較部８１には、Ｚ２と、ＬＵＴ１３５の要素領域(1)から読み出されたＺ０とが供給されるが、Ｚ４＜Ｚ０であり、Ｚ４の方が視点から近い値を示す。そのため、隠面消去ブロック７５からは、図１５（ａ）右図に示すように、領域１５のｐ(1、2)、ｐ(1、3)、ｐ(2、2)が"1"で、領域１６のｐ(1、1)、ｐ(2、1)、ｐ(3、1)、ｐ(4、1)、ｐ(2、3)、ｐ(3、2)、ｐ(3、3)、ｐ(4、2)、ｐ(4、3)、ｐ(1、4)、ｐ(2、4)、ｐ(3、4)、ｐ(4、4)が"0"のサブピクセルマスクが、隠面消去後のサブピクセルマスク１３７としてマスクコンポジット・Ｚ選出ブロック７６に供給される。
【００８８】
マスクコンポジット・Ｚ選出ブロック７６では、ビットカウント部９４〜９６に、それぞれ"1"を含むデータが供給される。すなわち、ビットカウント部９４ではｐ(2、1)、ｐ(3、1)、ｐ(4、1)、ｐ(1、4)、ｐ(2、3)、ｐ(2、4)、ｐ(3、2)、ｐ(3、3)、ｐ(3、4、ｐ(4、2)、ｐ(4、3)、ｐ(4、4)に対応した１２個のビット"1"をカウントし、ビットカウント部９５ではｐ(1、1)に対応した１個のビット"1"をカウントし、ビットカウント部９６ではｐ(1、2)、ｐ(1、3)、ｐ(2、2)、の３個のビット"1"をカウントする。
検証部９７では、ビットカウント部９４〜９６から供給されたカウント値に基づいて、１つのピクセルに割り当てられたピクセル属性の種類が「３」であると判定し、その旨を表すデータとそれに対応するカウント値の信号を、ニアペア選出部１０１とニア選出部１０３へ供給する。
【００８９】
ニアペア選出部１０１と選出部１０２には、Ｚ４と、ＬＵＴ１３５の要素領域(0)、(1)から読み出されたＺ０、Ｚ２とが入力されている。ニアペア選出部１０１は、これらの３種類のＺ値のうち、近似する２つのＺ０とＺ４を選出部１０４とニア選出部１０３へ送り、残りの最も遠いＺ２をＺバッファの要素領域(0)へ登録させるための選出コントロール信号を、選出部１０２へ供給する。
ニア選出部１０３では、選出部１０２から送られてきたＺ０、Ｚ４のうち、対応する領域数の多いＺ４を選出するように、選出部１０４の選出動作を制御する。選出部１０４から出力されたＺ４は、ＬＵＴの要素領域(1)へ登録（上書き）される。
【００９０】
選出部９８は、ニアペア選出部１０１からの選出コントロール信号ＢＳと検証部９７からのデータの種類及びカウント値に基づいて、ニアペア選出部１０１が近しい値として選出したＺ０及びＺ４にそれぞれ対応する領域と、それら以外のＺ２に対応する領域とを分け、Ｚ０及びＺ４の領域をＬＵＴの要素領域(1)に対応させて"1"とし、一方、Ｚ２の領域をＬＵＴの要素領域(0)に対応させて"0"にして、論理和演算部９９へ出力する。選出部９８は、また、隠面消去後の描画領域数の値を、データの種類である「３」と共にレート決定部１００へ出力する。
【００９１】
この時点で、図１５（ｂ）左図に示すように、サブピクセル描画領域１３８の領域１１のｐ(1、1)が隠面消去後のＺ０、領域１２のｐ(1、2)、ｐ(1、3)、ｐ(2、2)が隠面消去後のＺ４にそれぞれ対応し、これらの領域１１、１２がＬＵＴの要素領域(1)に対応したピクセル属性のサブピクセル描画領域となる。
また、サブピクセル描画領域１３８の領域１０のｐ(1、4)、ｐ(2、1)、ｐ(2、3)、ｐ(2、4)、ｐ(3、1)〜ｐ(3、4)、ｐ(4、1)〜ｐ(4、4)は、隠面消去後のＺ２に対応してＬＵＴの要素領域(0)に対応したピクセル属性となる。
【００９２】
マスクコンポジット・Ｚ選出ブロック７６からは、Ｚ０及びＺ４に対応する領域が"1"で、残りの領域が"0"となされたデータがＭbufとして出力される。
この時のサブピクセル描画領域は、図１５（ｃ）左図に示すサブピクセル描画領域１４０のように、領域３のｐ(1、1)、ｐ(1、2)、ｐ(1、3)、ｐ(2、2)が"1"で、残りの領域２のｐ(1、4)、ｐ(2、1)、ｐ(2、3)、ｐ(2、4)、ｐ(3、1)〜ｐ(3、4)、ｐ(4、1)〜ｐ(4、4)が"0"のサブピクセルマスクが上書きされる。
【００９３】
カラーコンポジットブロック７７は、マスクコンポジット・Ｚ選出ブロック７６からの選出コントロール信号ＢＳに基づき、Ｚ０及びＺ４に対応するカラー値であるＣr0とＣ４が合成部１０６へ送られ、一方、Ｚ２に対応するカラー値となっている合成カラー値Ｃr1がそのまま出力される。このときの合成部１０６では、下記式に示すように、隠面消去後のＺ０の領域数「１」に対応してＣr0を１倍した値と、同じく隠面消去後のＺ４の領域数「３」に対応してＣ４を３倍した値とを加算して平均する演算式により、新たな合成カラー値であるＣr2を求める。
Ｃr2＝（Ｃr0＊１＋Ｃ４＊３）／４
カラー合成後のＬＵＴ１４１は、図１５（ｃ）右図に示すように、要素領域(1)にサブピクセルバッファ１４０の領域３に対応したＣr2とＺ４が登録され、一方、要素領域(0)にサブピクセルバッファ１４０の領域２に対応したＣr1とＺ２が格登録される。
【００９４】
次に、サブピクセル描画領域１４０及びＬＵＴ１４１が図１５（ｃ）の状態のときに、図１６（ａ）左図に示すように、領域１３のｐ(1、1)、ｐ(1、3)、ｐ(2、2)、ｐ(2、4)、ｐ(3、1)、ｐ(3、3)、ｐ(4、2)、ｐ(4、4)が"1"で、領域１４のｐ(1、2)、ｐ(1、4)、ｐ(2、1)、ｐ(2、3)、ｐ(3、2)、ｐ(3、4)、ｐ(4、1)、ｐ(4、3)が"0"のサブピクセルマスク１４２が投入されたとする。領域１３に対応するＺ値はＺ５、カラー値はＣ５であるものとする。また、Ｚ５≪Ｚ２＜Ｚ４である。
【００９５】
サブピクセルマスク１４２が投入されると、隠面消去ブロック７５の比較部８２には、サブピクセルマスク１４２の領域１３に対応するＺ５と、ＬＵＴ１４１の要素領域(0)から読み出されたＺ２とが供給される。Ｚ５≪Ｚ２であり、Ｚ５の方が視点から近い値を示す。また、比較部８１には、Ｚ５と、ＬＵＴ１４１の要素領域(1)から読み出されたＺ４とが供給される。Ｚ５＜Ｚ４であり、Ｚ５の方が視点から近い値を示す。したがって、隠面消去ブロック７５からは、図１６（ａ）右図に示すように、サブピクセルマスク１４２と同じビットパターンとなる隠面消去後のサブピクセルマスク１４３が出力される。
【００９６】
マスクコンポジット・Ｚ選出ブロック７６では、ビットカウント部９４〜９６のそれぞれに、"1"を含むデータが供給される。すなわち、ビットカウント部９４ではｐ(1、4)、ｐ(2、1)、ｐ(2、3)、ｐ(3、2)、ｐ(3、4)、ｐ(4、1)、ｐ(4、3)に対応した７個の"1"をカウントし、ビットカウント部９５ではｐ(1、2)に対応した１個の"1"をカウントし、ビットカウント部９６ではｐ(1、1)、ｐ(1、3)、ｐ(2、2)、ｐ(2、4)、ｐ(3、1)、ｐ(3、3)、ｐ(4、2)、ｐ(4、4)に対応した８個の"1"をカウントする。検証部９７は、ビットカウント部９４〜９６から供給されたカウント値に基づいて、１つのピクセルに割り当てられたピクセル属性の種類が「３」と判定し、その旨を表すデータとそれに対応するカウント値の信号を、ニアペア選出部１０１とニア選出部１０３へ供給する。
【００９７】
ニアペア選出部１０１と選出部１０２には、Ｚ５と、ＬＵＴ１４１の要素領域(0)、(1)から読み出されたＺ２、Ｚ４とが供給されている。ニアペア選出部１０１は、Ｚ５、Ｚ２及びＺ４のうち、近似するＺ２とＺ４を選出部１０４とニア選出部１０３へ送り、残りの最も遠いＺ５をＬＵＴの要素領域(0)へ供給させるための選出コントロール信号ＢＳを、選出部１０２へ供給する。ニア選出部１０３では、選出部１０２から送られてきたＺ２、Ｚ４のうち、対応する領域数が相対的に多いＺ２を選出するように、選出部１０４の選出動作を制御する。選出部１０４から出力されたＺ２は、ＬＵＴの要素領域(1)に登録（上書き）される。
選出部９８は、選出コントロール信号ＢＳと検証部９７からのピクセル属性の種類数「３」及びカウント値に基づいて、ニアペア選出部１０１が近似するＺ値として選出したＺ２及びＺ４にそれぞれ対応する領域と、Ｚ５に対応する描画領域とを分けると共に、Ｚ２及びＺ４の領域をＬＵＴの要素領域(1)に対応させて"1"とし、一方、Ｚ５の領域をＬＵＴの要素領域(0)に対応させて"0"にする。
【００９８】
すなわち、この時点では、図１６（ｂ）左図に示すように、サブピクセルマスク１４４における領域１１のｐ(1、2)が、隠面消去後のＺ４に対応した領域となり、領域１０のｐ(1、4)、ｐ(2、1)、ｐ(2、3)、ｐ(3、2)、ｐ(3、4)、ｐ(4、1)、ｐ(4、3)が隠面消去後のＺ２に対応した領域となり、これらの領域１０、１１のｐ(1、2)、ｐ(1、4)、ｐ(2、1)、ｐ(2、3)、ｐ(3、2)、ｐ(3、4)、ｐ(4、1)、ｐ(4、3)がＬＵＴの要素領域(1)に対応した領域となる。また、領域１２のｐ(1、1)、ｐ(1、3)、ｐ(2、2)、ｐ(2、4)、ｐ(3、1)、ｐ(3、3)、ｐ(4、2)、ｐ(4、4)が隠面消去後のＺ５に対応した領域（新たなピクセル書き込み可能な空領域）となり、これら領域１２がＬＵＴの要素領域(0)に対応した領域とされる。
【００９９】
論理和演算部９９からは、Ｚ２及びＺ４に対応する領域が"1"で、残りの領域が"0"のサブピクセルマスク（Ｍbuf）が出力される。すなわち、この時のサブピクセルバッファ６８は、図１６（ｃ）左図に示すサブピクセルバッファ１４６のように、領域３のｐ(1、2)、ｐ(1、4)、ｐ(2、1)、ｐ(2、3)、ｐ(3、2)、ｐ(3、4)、ｐ(4、1)、ｐ(4、3)に"1"が描画され、残りの領域２のｐ(1、1)、ｐ(1、3)、ｐ(2、2)、ｐ(2、4)、ｐ(3、1)、ｐ(3、3)、ｐ(4、2)、ｐ(4、4)に"0"が格納された状態となる。
【０１００】
カラーコンポジットブロック７７は、選出コントロール信号ＢＳに基づき、Ｚ２及びＺ４に対応するカラー値であるＣr1とＣr2が合成部１０６へ送られ、一方、Ｚ５に対応するカラー値Ｃ５がそのまま出力される。合成部１０６は、下記式に示すように、隠面消去後のＺ２の領域数「７」に対応してＣr1を７倍した値と、隠面消去後のＺ４にの描画領域数「１」に対応してＣr2を１倍した値とを加算して平均する演算式により、新たな合成カラー値であるＣr3を算出する。
Ｃr3＝（Ｃr1＊７＋Ｃr2＊１）／８
これにより、図１６（ｃ）左図に示すように、サブピクセルバッファ１４６は、領域３のｐ(1、2)、ｐ(1、4)、ｐ(2、1)、ｐ(2、3)、ｐ(3、2)、ｐ(3、4)、ｐ(4、1)、ｐ(4、3)に"1"が描画され、領域２のｐ(1、1)、ｐ(1、3)、ｐ(2、2)、ｐ(2、4)、ｐ(3、1）、ｐ(3、3)、ｐ(4、2)、ｐ(4、4)に"0"が格納される。また、カラー合成後のＬＵＴ１４７は、図１６（ｃ）右図に示すように、要素領域(1)にサブピクセルバッファ１４６の領域３に対応したＣr3とＺ２の値が登録され、一方、要素領域(0)にサブピクセルバッファ１４６の領域２に対応したＣ５とＺ５が登録される。
【０１０１】
［他の例］
次に、本発明の特徴的な描画処理を汎用のコンピュータと描画処理プログラムとの協働により実施する場合の例を図１７及び図１８を参照して説明する。
図１７は、このコンピュータの主要部の構成例であり、図１８は、描画処理プログラムとの協働によって、当該コンピュータのＣＰＵ２２３が実行する処理の手順図である。
【０１０２】
図１７において、記憶部２２６は、例えばハードディスク及びそのドライブからなる。記憶部２２６には、オペレーティングシステムプログラムと、例えばＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の記録媒体から取り込まれたり、通信回線を介して取り込まれた本発明の描画処理プログラム２２７と、ポリゴン描画のための図形情報、ポリゴンの色及び仮想視点からの奥行き方向の距離を表すＺ値等のピクセル属性、模様等を決定するためのテクスチャ等の各種のデータ２２８等が記憶されている。
【０１０３】
通信部２２１は、例えば、アナログ公衆電話回線に接続するためのモデム、ケーブルテレビジョン網に接続するためのケーブルモデム、ＩＳＤＮ（総合ディジタル通信網）に接続するためのターミナルアダプタ、ＡＤＳＬ（Asymmetric Digital Subscriber Line）に接続するためのモデム等のように、外部システムないし装置とデータ通信を行うための通信デバイスである。通信ＩＦ部２２２は、通信部２２１と内部バス（ＢＵＳ）との間でデータの受け渡しを可能とするためのプロトコル変換等を行うインターフェイスデバイスである。入力部２３３は、例えばキーボードやマウス、タッチパッド等の入力装置であり、ユーザＩＦ部２３２は、入力部２３３からの信号を内部に供給するためのインターフェイスデバイスである。ドライブ部２３５は、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等のディスク媒体２５１から描画処理プログラム等の各種のプログラム及び／又はデータを読み出し可能等ライブ装置である。ドライブＩＦ部２３４は、ドライブ部２３５からの信号を内部に供給するためのインターフェイスデバイスである。表示部２３７は、例えばＣＲＴ（陰極線管）や液晶等の表示デバイスであり、表示ドライブ部２３６は表示部２３７を表示駆動させるドライブデバイスである。
【０１０４】
ＣＰＵ２２３は、記憶部２２６に記憶されているオペレーティングシステムその他のプログラム２２７に基づいて当該パーソナルコンピュータの全動作を制御する。ＲＯＭ２２４は、例えばフラッシュメモリ等の書き換え可能な不揮発性メモリからなり、当該コンピュータのＢＩＯＳ（Basic Input/Output System）及び各種の初期設定値が記憶されている。ＲＡＭ２２５は、記憶部２２６のハードディスクから読み出されたプログラムの一部及びデータが適宜ロードされ、また、サブピクセルバッファ、ピクセルバッファ（カラーバッファ、Ｚバッファ）を有する描画バッファとして用いられる。
【０１０５】
ＣＰＵ２２３は、記憶部２２６のハードディスクから読み出されてＲＡＭ２２５にロードされた描画処理プログラム２２７を実行することにより、図１８の手順で、前述した描画処理と同様の動作を行う。
【０１０６】
＜ステップＳ２１＞ＲＡＭ２２５上の描画バッファに新規ピクセル（サブピクセル）を投入してサブピクセルマスクを求める。
＜ステップＳ２２＞描画バッファ内のピクセルバッファ内のすべてのＺ値と投入ピクセルのＺ値を比較し、サブピクセルバッファのサブピクセル描画領域と投入ピクセルによるサブピクセルマスクの領域のうちで後方となる個所のデータを論理積演算し、さらに、サブピクセルバッファの全領域について得られた論理積演算結果を論理和演算したものを上書き用のサブピクセルマスクとして生成する。ここまでの処理は、図４の隠面消去ブロック７５における隠面消去処理に対応している。
【０１０７】
＜ステップＳ２３＞隠面消去処理後のサブピクセルマスクを、サブピクセルバッファに上書きし、そのサブピクセルバッファにおいて描画すべきサブピクセルのピクセル属性の種類がピクセルバッファの要素領域数を超えるかどうか検証する。このステップＳ２３の処理において、要素領域数を越える場合、ＣＰＵ２２３は、処理をステップＳ２４へ進め、一方、要素領域数を越えない場合にはステップＳ２８へ処理を進める。
【０１０８】
＜ステップＳ２４＞ピクセルバッファのピクセル属性と投入されたサブピクセルのピクセル属性の中で最も近似するものを検出する。最も近似するピクセル属性の検出は、前述したように、Ｚ値の比較の他、カラー輝度の比較、Ｒ、Ｇ、Ｂ各値の比較等がある。処理を簡略化する観点からは、Ｚ値の比較を行い、例えばＺ値の差分（絶対値）の少ない組合せを特定する。
【０１０９】
＜ステップＳ２５＞最も近似するサブピクセルに対応するカラー値を１つに統合する。ここで、最も近似するとして検出された一方のサブピクセルのカラー値をＣＡ、他方のサブピクセルのカラー値をＣＢとし、また、一方のカラー値のサブピクセル数をＮＡ、他方のカラー値のサブピクセル数をＮＢとした場合、ＣＰＵ２２３は、合成カラー値ＮＣを下記の演算式により求める。
ＮＣ＝（ＣＡ×ＮＡ＋ＣＢ×ＮＢ）／（ＮＡ＋ＮＢ）
【０１１０】
＜ステップＳ２６＞合成カラー値に付加してピクセルバッファに登録する１つの代表Ｚ値を選出する。ここでは、サブピクセル数が多い方のカラー値に対応するＺ値を代表Ｚ値として選出する。
＜ステップＳ２７＞カラー合成に際しては、ピクセルバッファの２つの要素領域に一時的にカラー値を格納し、それら一時的に格納されたカラー値を統合した後に、何れか一方の要素領域にその合成カラー値を登録した後、他方の要素領域を空領域に戻す。なお、投入ピクセルのカラー値と要素領域から読み出したカラー値とを合成する場合、ＣＰＵ２２３は、投入ピクセルに一旦合成カラー値を代入した後に要素領域を空領域に戻す。
＜ステップＳ２８＞ピクセルバッファの空領域を選択し、合成カラー値と代表Ｚ値とを登録する。
【０１１１】
このように、本発明では、描画すべき新規ピクセルがあるときにその新規ピクセルのピクセル属性を登録するための空領域がピクセルバッファに存在するかどうかを検証し、空領域が存在しないときは当該新規ピクセルのピクセル属性及び既登録の１又は複数のピクセル属性を相互に比較してピクセル属性が最も近似する複数のピクセル同士を統合するようにしたので、高解像度の画像を描画する場合であっても、予め用意しておくピクセルバッファの必要容量を小さくしつつ、色破綻を最小限に抑えた略々正確な色を安定的に再現することができる。そのため、少ないリソースで良質のアンチエイリアシングを実現することができるようになる。
また、従来のアンチエイリアシングのように高速メモリアクセスを行う必要がなく、しかも描画方向の制約もないので、低コストの描画処理が可能になる。
【０１１２】
なお、上述した説明は、本発明の実施の一例である。このため、本発明は上述した実施形態に限定されることなく、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能である。
例えば、本実施形態では、ピクセル属性同士を比較して、ピクセルが近似しているかどうかを判定する場合の例を示したが、ピクセル属性以外の要素により、ピクセルが近似しているかどうかを判定することも可能である。例えば、バッファに描画されているピクセル同士を比較の対象としたり、ピクセルの数が多いか少ないかのみを判定の要素とすることも可能である。ピクセルの統合に際しても、新規ピクセル（あるいは新規サブピクセル）と既に描画されているピクセルとを単純に比較し、描画されるときに最も多くなるピクセルを統合の相手とすることも可能である。
ピクセル属性を採用する場合であっても、本実施形態では、カラー値とＺ値とを採用した場合の例を示したが、α値、輝度値、ベクトル値、法線、テクスチャ歪値を採用した場合も、ほぼ同様の手順で本発明を実施することができるものである。また、カラー値等を他の方法で求め、α値等だけ本発明の手法によって求めることも可能である。
【０１１３】
【発明の効果】
以上の説明から明らかなように、本発明によれば、低コストでリアルタイムに高品質の描画処理を実現する仕組みを提供することができる。
【図面の簡単な説明】
【図１】  (a)は深度１ビット１６ワードのサブピクセルバッファの１ピクセル分の記憶領域、(b)はピクセルバッファ（ＬＵＴ）の一構成例を示す図である。(c)は深度２ビットで１６ワードのサブピクセルバッファの１ピクセル分の記憶領域、(d)はピクセルバッファ（ＬＵＴ）の一構成例を示す図である。
【図２】  描画処理方法の手順説明図である。
【図３】  本実施の形態の描画処理をハードウェアにより実現する場合の概略構成例を示すブロック図である。
【図４】  サブピクセルコンポジットユニットの概略構成例を示すブロック図である。
【図５】  サブピクセルコンポジットユニット内の隠面消去ブロックの一構成例を示すブロック回路図である。
【図６】  サブピクセルコンポジットユニット内のマスクコンポジット・Ｚ選出ブロックの一構成例を示すブロック回路図である。
【図７】  サブピクセルコンポジットユニット内のカラーコンポジットブロックの一構成例を示すブロック回路図である。
【図８】  サブピクセルマスクとサブピクセルバッファの各領域の説明に用いる図である。
【図９】  初期状態のサブピクセルバッファの１ピクセル分の記憶領域とピクセルバッファ（ＬＵＴ）を示す図である。
【図１０】  一例のポリゴンとそのポリゴンのエッジ部分を含むピクセルから生成されるサブピクセルマスクの説明に用いる図である。
【図１１】  図１０のポリゴンのピクセルから生成されたサブピクセルマスクが投入されたときのサブピクセルバッファとＬＵＴの状態とサブピクセルコンポジットユニットの動作説明に用いる図である。
【図１２】  図１１のカラー合成後に新たにサブピクセルマスクが投入されたときのサブピクセルバッファとＬＵＴの状態とサブピクセルコンポジットユニットの動作説明に用いる図である。
【図１３】  図１２のカラー合成後に新たにサブピクセルマスクが投入されたときのサブピクセルバッファとＬＵＴの状態とサブピクセルコンポジットユニットの動作説明に用いる図である。
【図１４】  図１３のカラー合成後に新たにサブピクセルマスクが投入されたときのサブピクセルバッファとＬＵＴの状態とサブピクセルコンポジットユニットの動作説明に用いる図である。
【図１５】  図１４のカラー合成後に新たにサブピクセルマスクが投入されたときのサブピクセルバッファとＬＵＴの状態とサブピクセルコンポジットユニットの動作説明に用いる図である。
【図１６】  図１５のカラー合成後に新たにサブピクセルマスクが投入されたときのサブピクセルバッファとＬＵＴの状態とサブピクセルコンポジットユニットの動作説明に用いる図である。
【図１７】  本実施の形態の描画処理をソフトウェアにより実現する場合の構成例を示すブロック図である。
【図１８】  本実施の形態のグラフィック描画処理プログラムを、コンピュータのＣＰＵが実行する場合の処理の流れを示すフローチャートである。
【符号の説明】
５０…ジオメトリプロセッサ、５１…メモリ、５２…レンダリングプロセッサ、５３…テクスチャメモリ、５４…ディスプレイコントローラ、５５…ディスプレイ、５６…ＣＰＵ、５７…ドライブユニット、５８…通信ユニット、６１…ポリゴンセットアップユニット、６２…ラスタライザユニット、６３…サブピクセルラスタライザ、６４…ピクセルラスタライザ、６５…カラーコンポジットユニット、６６…サブピクセルコンポジットユニット、６７…フレームバッファ、６８…サブピクセルバッファ、６９…カラーバッファ、７０…Ｚバッファ、７１…ブレンドユニット、７５…隠面消去ブロック、７６…マスクコンポジット・Ｚ選出ブロック、７７…カラーコンポジットブロック
【図１】
0003696584.tif 000002
【図２】
0003696584.tif 000003
【図３】
0003696584.tif 000004
【図４】
0003696584.tif 000005
【図５】
0003696584.tif 000006
【図６】
0003696584.tif 000007
【図７】
0003696584.tif 000008
【図８】
0003696584.tif 000009
【図９】
0003696584.tif 000010
【図１０】
0003696584.tif 000011
【図１１】
0003696584.tif 000012
【図１２】
0003696584.tif 000013
【図１３】
0003696584.tif 000014
【図１４】
0003696584.tif 000015
【図１５】
0003696584.tif 000016
【図１６】
0003696584.tif 000017
【図１７】
0003696584.tif 000018
【図１８】
0003696584.tif 000019