JP3696584B2 - 描画処理方法及び装置、半導体デバイス、描画処理プログラム及び記録媒体 - Google Patents
描画処理方法及び装置、半導体デバイス、描画処理プログラム及び記録媒体 Download PDFInfo
- Publication number
- JP3696584B2 JP3696584B2 JP2002276218A JP2002276218A JP3696584B2 JP 3696584 B2 JP3696584 B2 JP 3696584B2 JP 2002276218 A JP2002276218 A JP 2002276218A JP 2002276218 A JP2002276218 A JP 2002276218A JP 3696584 B2 JP3696584 B2 JP 3696584B2
- Authority
- JP
- Japan
- Prior art keywords
- pixel
- buffer
- area
- attribute
- subpixel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000003672 processing method Methods 0.000 title claims description 33
- 239000004065 semiconductor Substances 0.000 title claims description 11
- 239000000872 buffer Substances 0.000 claims description 288
- 238000000034 method Methods 0.000 claims description 86
- 238000012545 processing Methods 0.000 claims description 53
- 230000008569 process Effects 0.000 claims description 38
- 238000012795 verification Methods 0.000 claims description 14
- 230000010354 integration Effects 0.000 claims description 8
- 239000002131 composite material Substances 0.000 description 83
- 238000010586 diagram Methods 0.000 description 41
- 238000009877 rendering Methods 0.000 description 25
- 239000000203 mixture Substances 0.000 description 19
- 238000005070 sampling Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 239000003086 colorant Substances 0.000 description 11
- 238000012935 Averaging Methods 0.000 description 9
- 238000009825 accumulation Methods 0.000 description 8
- 230000015572 biosynthetic process Effects 0.000 description 8
- 238000003786 synthesis reaction Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 239000013598 vector Substances 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 230000002194 synthesizing effect Effects 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Description
【発明の属する技術分野】
本発明は、例えばアンチエイリアシング(Antialiasing)を少ないリソースで且つ色等の破綻なく実現するための画像描画の仕組みに関する。
【0002】
【従来の技術】
近年、ゲームコンソール装置のようなリアルタイム性の画像処理を行うシステムでは、プロセッサ、メモリ等のハードウエアの高集積化、処理クロックの高速化が飛躍的に進んでいる。その結果、従来は不可能であった、精細で多様性に富み、且つリアリティ性の高い画像をリアルタイムに生成することも最近は可能になっている。
その一方で、画像を表示する2次元スクリーンとして一般的に使用されているテレビジョンモニタ装置等は、近年の高画質化に追従しきれていない。例えば、標準テレビジョン放送方式であるNTSC規格のテレビジョンモニタ装置では、1フレーム(2フィールド)当たり640×448ドット程度の低い解像度での表示が上限となっている。
【0003】
このような低解像度の2次元スクリーンで画像表示を行う場合に、例えば画面の斜め方向に画像のエッジが来ると、そのエッジ部分には、画像の構成単位となるピクセルに沿った階段状のギザギザ、いわゆるジャギーが目立つようになる。このようなジャギーは、本来は滑らかであるべき画像のエッジ部分が画面上のピクセルという離散的な値にマッピングされるために生ずる虚像であり、一般的には「エイリアス」と呼ばれている。
したがって、比較的低解像度の2次元スクリーンへ出力する画像を処理するシステムでは、エイリアスを除去し、或いはエイリアスを目立たなくする処理、すなわち「アンチエイリアシング」を行うことにより、ジャギーの無い滑らかな画像を生成するようにしているのが一般的である。
【0004】
現在、アンチエイリアシングの手法としては、以下のような、シーンアンチエイリアシングとエッジアンチエイリアシングが知られている。
(1)シーンアンチエイリアシング
シーンアンチエイリアシングでは、1ピクセルを細分化したサブピクセル単位でサンプリングポイントを変更し、そのサブピクセル単位のサンプリングにより得られた複数枚の画像を平均化することで、1画面分全体についてのアンチエイリアシングを実現する。
サブピクセル単位のサンプリングポイントの変更方法には、オーダード法とストキャスティック(ジッタリング)法と呼ばれるものがある。オーダード法は、予め決められたサブピクセル位置をサンプリングする方法であり、ストキャスティック法は、サンプリングポイントを確率的に決定してサンプリングを行う方法である。ストキャスティック法は、オーダード法に比べて少ないサンプリングポイントで高品位な画像が得られる利点がある。
【0005】
オーダード法とストキャスティック法により実現されるシーンアンチエイリアシングは、また、描画効率の観点からは、もとの数倍の高解像度の画像を平均化してもとの解像度の画像へ縮小することでシーンアンチエイリアシングを実現する方法と、アキュムレーションバッファメモリ(以下、「単にアキュムレーションバッファ」と略称する)を用いた方法とに分けることができる。
高解像度の画像を平均化する方法としては、全ポリゴンをもとの数倍の高解像度で、描画用のバッファメモリ(以下、「描画バッファ」と略称する)に描画し、表示の際に、描画バッファに描画されている画像をもとの大きさの画像へ縮小表示することでシーンアンチエイリアシングを実現する。この方法は、アンチエイリアシングのためのデータ投入回数が1ポリゴンにつき1回で済み、また、処理にローカリティがあるため、処理効率を上げることができ、シーンアンチエイリアシングとしては高速な処理が可能となっている。
一方、アキュムレーションバッファを用いた方法では、少なくとも1画面分の容量を持つ描画バッファと、アキュムレーションバッファと呼ばれる別の描画バッファとを用意し、描画バッファに1画面分の全ポリゴンを描画し終えたならば、サンプリングポイントを変えて再度全ポリゴンを描画し、描画バッファ上の値とサンプリングポイント変更後の値とを、順次アキュムレーションバッファで加算して平均化を行うことにより、シーンアンチエイリアシングを実現する。このアキュムレーションバッファを用いた方法では、描画用バッファとアキュムレーションバッファの2面分のバッファを用いて、サンプリングポイントを変えた複数回の全面描画と平均化の処理を実現できることになる。
【0006】
(2)エッジアンチエイリアシング
2次元スクリーンの画面上に表示された画像は、近傍ピクセル間で輝度若しくは色調が著しく異なる場合に、最も低解像度の影響を受け易くなる。コンピュータグラフィック画像では、ポリゴンのエッジ部分で異なる属性が隣接していることが多く、輝度若しくは色調の境界となっていることが多い。つまり、こういった個所では、解像度の低さがエイリアスとなって目に付き易くなる。一方で、ポリゴンのエッジ以外の部分は、例えば適度なテクスチャをマッピングしたり、フィルタリングを行うことでエイリアスの発生を回避することが容易である。
したがって、エイリアスを目立たなくさせるには、ポリゴンのエッジ部分についてのみアンチエイリアシングを施せばよいことになる。エッジアンチエイリアシングでは、例えばポリゴンのエッジ部分のみサンプリングを増加させ、それら各サンプリングにより得られた値を平均化することにより、当該エッジ部分のアンチエイリアシングを実現している。また、エッジアンチエイリアシングは、エッジ部分についてのみ処理を行えば良いため、シーンアンチエイリアシングよりも効率的な処理が可能となっている。
このようなことから、リアルタイム性が要求される画像処理のシステム、特に、低コスト化への要求が強い民生用のシステムでは、エッジアンチエイリアシングを採用しているものが多い。
【0007】
なお、上記のようなエッジアンチエイリアシングをより簡略に実現する手法も存在する。すなわち、ポリゴン描画時に、エッジ部のポリゴンが当該エッジ部のピクセル内で占めるピクセル占有率を算出し、それを半透明係数であるα値としてピクセルのもとの色と線形補間することによりα値の平均化を行う手法である。この手法は、「αブレンディング」とも呼ばれ、ピクセル占有率を算出する機構以外は通常のアーキテクチャを適用できるため、多くの画像処理のシステムにおいて、採用されている。
【0008】
【発明が解決しようとする課題】
上述したシーンアンチエイリアシングとエッジアンチエイリアシングには、それぞれ、以下のような問題がある。
(1)シーンアンチエイリアシングの場合
高解像度の画像を平均化してシーンアンチエイリアシングを実現する方法では、2次元スクリーン画面に表示するデータを格納する表示用のバッファメモリ(以下、「表示バッファ」と略称する)に対して複数倍の容量の描画バッファを用意しなければならない。例えば、1ピクセルを4×4の16サブピクセルに分割して16倍のオーバーサンプリングを行う場合、描画バッファは、表示バッファに対して16倍の容量が必要になる。
また、この方法では、1フレーム分の表示時間内に、複数枚の画像を描画バッファに書き込んだり、書き込んだ複数枚の画像を平均化する等の処理が必要となる。
つまり、この方法では、アンチエイリアシングだけのために、多大なメモリ領域が必要となり、且つ、高速なメモリアクセスが必要となるため、ゲームコンソール装置のようなコストパフォーマンスに厳しい画像処理のシステムに適用する場合は、コスト的に不利となる。
アキュムレーションバッファを用いてシーンアンチエイリアシングを行う方法では、サンプリングポイントの変更と加算による平均化の処理が時系列的に行われるため、描画時間がリニアに増加する。したがって、この方法もまた、高解像度のシーンアンチエイリアシングには不向きである。
【0009】
(2)エッジアンチエイリアシングの場合
エッジアンチエイリアシングはシーンアンチエイリアシングよりもリアルタイム性が要求される画像処理のシステムに向いている。その中でも特に、ピクセル占有率に応じた線形補間を行う方法は、通常のアーキテクチャの多くを流用できるため、相対的に有利である。しかしながら、この方法では、1ピクセルに対して複数の色を保持しない仕様となるため、例えば1ピクセル内に2以上のポリゴンのエッジが存在するようなときに破綻をきたし、正常なピクセルが得られなくなる等の欠点がある。また、αブレンディングを用いた方法では、後方からの描画が必要になる等の制限がある。
【0010】
本発明は、このような背景のもとになされたもので、低コストでリアルタイムに高品質の描画処理を実現する仕組みを提供することを、その課題とする。
【0011】
【課題を解決するための手段】
上記課題を解決するため、本発明は、描画処理方法、描画処理装置、半導体デバイス、描画処理プログラム及び記録媒体を提供する。
本発明の描画処理方法は、ディスプレイの表示領域に対応するピクセル描画領域を有するバッファと、前記ディスプレイへの表示対象となるピクセルを前記ピクセル描画領域に描画するプロセッサとを有するコンピュータ製品において、前記プロセッサが、描画すべき新規ピクセルがあるときに、その新規ピクセルと前記バッファに描画されているピクセルとを含む複数のピクセルの特徴を相互に比較し、その特徴が最も近似するピクセルの組合せを検出する処理、及び、検出した組合せのピクセル特徴を統合する処理を実行することを特徴とする方法である。
【0012】
本発明の他の描画処理方法は、上記の描画処理方法において、ピクセルの特徴が近似するかどうかの要素として、ピクセル属性を用いたものである。すなわち、ディスプレイの表示領域に対応するピクセル描画領域を有する第1バッファと、ピクセル特徴を表すピクセル属性が登録される第2バッファと、前記ディスプレイへの表示対象となるピクセルのピクセル属性を前記第2バッファに登録するとともに登録されたピクセル属性に従って当該ピクセルを前記ピクセル描画領域に描画するプロセッサとを有するコンピュータ製品において、
前記プロセッサが、描画すべき新規ピクセルがあるときにその新規ピクセルのピクセル属性を登録するための空領域が前記第2バッファに存在するかどうかを検証する処理、前記空領域が前記第2バッファに存在しないときは当該新規ピクセルのピクセル属性及び既登録の1又は複数のピクセル属性を相互に比較してピクセル属性が最も近似する複数のピクセルを検出する処理、検出した複数のピクセルのピクセル属性を統合する処理を実行することを特徴とする方法である。
【0013】
「ピクセル属性」としては、例えば、カラー値、輝度、所定位置例えばディスプレイの表示画面の視点(仮想視点)からの奥行きを表すZ値、透過係数であるα値、ベクトルの値、法線、テクスチャ歪値のようなものが挙げられる。このピクセル属性が近似しているかどうかは、1次元的な比較では、輝度、Z値などの比較対象となる2値の差分の相対値で判定することができる。
2次元的な比較では色差など、3次元的な比較ではカラー値の差などをさらに要素に加え、例えば以下のような基準で近似性を判定することができる。
・比較するベクトル内積の絶対値が相対的に小さい組合せは近似する
・要素の平均に対する差分の絶対値が相対的に小さい組合せは近似する
・要素の二乗平均に対する差分の絶対値が小さい組合せは近似する
・各要素の差分の絶対値が相対的に小さい組合せは近似する
輝度や色差は、RGB=YCbCrなどの公知の算出式により算出してもよく、カラー値そのものが輝度・色差でもっているようにしてもよい。
「統合」の手法としては、比較する2つのピクセルのピクセル属性の平均化、どちらか一方のピクセル属性の採用等が挙げられる。同じピクセル属性のピクセルの数に差がある場合は、ピクセル数が相対的に多いピクセルのピクセル属性を統合の相手として採用するようにしてもよい。この場合、好ましくは、ピクセル数をピクセル属性毎に検出ことが必要となる。
【0014】
この方法のバリエーションとして、以下の手順が付加される。
・統合されたピクセル属性がいずれも既登録である場合は既登録領域の少なくとも一つに前記新規ピクセルのピクセル属性又は統合されたピクセル属性を登録する。
・前記新規ピクセルの描画時に、前記第1バッファ内に描画を要しないピクセル描画領域が残るときは、前記第2バッファへのピクセル属性の新たな登録を阻止する。あるいは、前記新規ピクセルの描画時に、前記第2バッファに空領域が存在し且つ前記第1バッファ内に描画を要しないピクセル描画領域が残るときは、当該第1バッファにおける当該残った領域以外のピクセル描画領域のピクセル属性を統合する。
・前記ピクセル属性に、上記のZ値を含めておき、前記プロセッサが、前記検証に先立ち、前記新規ピクセルのZ値と既登録のZ値とを比較して、相対的に後方に位置することになる、新規ピクセルを含むピクセルを検出し、検出したピクセルが前記表示画面に表示されないようにする隠面消去処理を実行する。
・前記プロセッサが、そのZ値が最も近似する複数のピクセルの他のピクセル属性を、各々のピクセル数に応じた分配比率で一つの統合ピクセル属性に統合することにより前記統合する処理を実行する。
【0015】
本発明の他の描画処理方法は、ディスプレイの表示領域に対応するピクセル描画領域を有する第1バッファと、ピクセル属性が登録される第2バッファと、前記ディスプレイへの表示対象となるピクセルのピクセル属性を前記第2バッファに登録するとともに登録されたピクセル属性に従って当該ピクセルを前記ピクセル描画領域に描画するプロセッサとを有するコンピュータ製品において、前記プロセッサが、描画すべき新規ピクセルがあるときに、その新規ピクセルのピクセル属性と異なるピクセル属性が前記第2バッファに登録されているかどうかを検証し、ピクセル属性が登録されているときは、これらのピクセル属性同士を統合する処理を実行することを特徴とする方法である。
【0016】
本発明の他の描画処理方法は、ディスプレイの1ピクセル毎の表示領域に対応した複数のサブピクセル描画領域を有し、個々のサブピクセル描画領域にはオーバーサンプリングにより得られたサブピクセルが描画されるサブピクセルバッファと、所定位置からの奥行きを表すZ値を含むサブピクセルのピクセル属性を登録するためのピクセルバッファと、前記ディスプレイへの表示対象となるサブピクセルのピクセル属性を前記ピクセルバッファに登録するとともに登録されたピクセル属性に従って当該サブピクセルを前記サブピクセル描画領域に描画するプロセッサとを有するコンピュータ製品において、前記プロセッサが、描画すべき新規サブピクセルがあるときに、その新規サブピクセルのZ値と前記Zバッファ内のすべてのZ値とを比較して、相対的に後方に位置することになる、前記新規サブピクセルを含むサブピクセルを検出するとともに、検出したサブピクセルを描画するためのサブピクセル描画領域についてはその部分をマスクしたサブピクセルマスクを生成する処理、前記生成したサブピクセルマスクにおいて描画すべきサブピクセルがあるときはそのサブピクセルについてのピクセル属性を登録するための空領域が存在するかどうかを検証する処理、前記空領域が存在しないときは新規サブピクセルのピクセル属性と既登録のものとを相互に比較してピクセル属性が最も近似する複数のサブピクセルを検出する処理、検出した複数のサブピクセルのピクセル属性を統合する処理を実行し、前記ピクセルバッファにおけるピクセル属性の登録領域の増加を抑制することを特徴とする方法である。
【0017】
この描画処理方法のバリエーションとしては、以下の手順が付加される。
・前記新規サブピクセルの描画時に、前記サブピクセルバッファ内に描画を要しないピクセル描画領域が残るときは、前記ピクセルバッファへのピクセル属性の新たな登録を阻止する。あるいは、前記新規サブピクセルの描画時に、前記ピクセルバッファに空領域が存在し且つ前記サブピクセルバッファ内に描画を要しないピクセル描画領域が残るときは、当該サブピクセルバッファにおける当該残った領域以外のピクセル描画領域のピクセル属性を統合する。
・前記最も近似する複数のサブピクセルのピクセル属性がいずれも既登録である場合、前記プロセッサは、これらのピクセル属性を、同じピクセル属性をもつピクセルの数に応じた分配比率で一つの統合ピクセル属性に統合するとともに、統合対象となった複数のピクセル属性のいずれか一つの登録領域に前記統合ピクセル属性を上書きし、他の登録領域に前記新規サブピクセルのピクセル属性を登録する処理を実行する。なお、いずれかのサブピクセルのピクセル属性を一つの代表ピクセル属性として選定することで統合ピクセル属性を得るようにしてもよい。
・前記ピクセルバッファにおける登録可能領域数は、それ処理対象となるサブピクセルのビット深度で定まる要素領域数を限度とする。「ビット深度」は、画像の色数を表す尺度である。
【0018】
本発明の描画処理装置は、ディスプレイの表示領域に対応するピクセル描画領域を有する第1バッファと、ピクセル特徴を表すピクセル属性が登録される第2バッファと、前記ディスプレイへの表示対象となるピクセルのピクセル属性を前記第2バッファに登録するとともに登録されたピクセル属性に従って当該ピクセルを前記ピクセル描画領域に描画するプロセッサとを有し、
前記プロセッサが、描画すべき新規ピクセルがあるときにその新規ピクセルのピクセル属性を登録するための空領域が前記第2バッファに存在するかどうかを検証し、前記空領域が前記第2バッファに存在しないときは当該新規ピクセルのピクセル属性及び既登録の1又は複数のピクセル属性を相互に比較して、ピクセル属性が最も近似する複数のピクセルを検出し、検出したピクセルのピクセル属性を統合するように動作する装置である。
【0019】
1つのピクセルを複数のサブピクセルの集合で表現する描画処理装置の場合、前記ピクセル描画領域は、前記ディスプレイの1ピクセルの表示領域に対して複数のサブピクセル描画領域に分割されており、個々のサブピクセル描画領域にはオーバーサンプリングにより得られたサブピクセルが描画されるにようになされており、前記ピクセル属性は、所定位置からの奥行きを表すZ値を含むものであり、前記第2バッファには、少なくとも前記Z値を登録するためのZバッファが形成されるようにする。
この描画装置において、前記プロセッサは、前記新規ピクセルのZ値及び前記Zバッファに登録されているすべてのZ値を相互に比較して、相対的に後方に位置することになる、新規サブピクセルを含むサブピクセルを描画するためのサブピクセル描画領域を検出し、検出したサブピクセル描画領域についてはその部分をマスクしたデータを生成するように動作する。
ピクセル属性の登録領域の増加を抑制する観点からは、前記プロセッサが、前記新規ピクセルを構成する全サブピクセルについて生成した前記データを論理和演算することにより得られたサブピクセルマスクを前記ピクセル描画領域への上書き対象データとするように動作するようにする。
【0020】
なお、本発明の描画処理装置において、リアルタイム性を向上させる観点からは、一方のバンクがピクセル描画用の描画バッファとなるときは他方のバンクが描画済みのピクセルを前記ディスプレイに表示するための表示バッファに切り替わる2バンク構成のフレームバッファを有し、前記第1バッファ及び第2バッファが前記描画バッファに一時的に形成されるように構成する。
【0021】
本発明の半導体デバイスは、ディスプレイの表示領域に対応するピクセル描画領域を有する第1バッファと、ピクセル特徴を表すピクセル属性が登録される第2バッファとを内蔵し又はこれらのバッファにアクセス可能に構成され、前記ディスプレイへの表示対象となるピクセルのピクセル属性を前記第2バッファに登録するとともに登録されたピクセル属性に従って当該ピクセルを前記ピクセル描画領域に描画するプロセッサを搭載した半導体デバイスであって、
前記プロセッサが、描画すべき新規ピクセルがあるときにその新規ピクセルのピクセル属性を登録するための空領域が前記第2バッファに存在するかどうかを検証し、前記空領域が前記第2バッファに存在しないときは当該新規ピクセルのピクセル属性及び既登録の1又は複数のピクセル属性を相互に比較してピクセル属性が最も近似する複数のピクセルを検出し、検出した複数のピクセルのピクセル属性を統合するように動作するものである。前記プロセッサは、デバイス外部に存在する他の処理手段との協働により前記動作を行うものであってもよい。
【0022】
本発明の描画処理プログラムは、記憶装置を備えディスプレイが接続されるコンピュータが読み取り可能な描画処理プログラムであって、前記記憶装置に前記ディスプレイの表示領域に対応するピクセル描画領域を有する第1バッファと、ピクセル属性が登録される第2バッファとを形成させ、さらに、前記コンピュータが搭載するプロセッサに、前記ディスプレイへの表示対象となるピクセルのピクセル属性を前記第2バッファに登録するとともに登録されたピクセル属性に従って当該ピクセルを前記ピクセル描画領域に描画する描画機能を付与するとともに、前記プロセッサを、描画すべき新規ピクセルがあるときにその新規ピクセルのピクセル属性を登録するための空領域が前記第2バッファに存在するかどうかを検証し、前記空領域が前記第2バッファに存在しないときは当該新規ピクセルのピクセル属性及び既登録の1又は複数のピクセル属性を相互に比較してピクセル属性が最も近似する複数のピクセルを検出し、検出した複数のピクセルのピクセル属性を統合するように動作させるための描画処理プログラムである。この描画処理プログラムは、通常は、コンピュータ読み取り可能な記録媒体に記録されて製品化される。
【0023】
【発明の実施の形態】
以下、本発明を、オーバーサンプリング画像のアンチエイリアシングを少ないリソースで実現する描画処理方法に適用した場合の実施の形態を説明する。
この描画処理方法は、上述した描画バッファへのアクセスが可能なプロセッサを有する画像処理の装置、システム、その部品となる半導体デバイスにより実施することができる。便宜上、ピクセル属性が、ピクセルのカラー値(輝度を含む)と、仮想視点からの奥行きを表すZ値であるものとして説明する。
【0024】
まず、この描画処理方法を実施する上で必要となる描画バッファの構成要素例について説明する。
描画バッファには、ピクセル毎に、一つのサブピクセルバッファと、このサブピクセルバッファのビット深度に対応した要素領域数分のカラーバッファ及びZバッファをルックアップテーブル(以下、この実施形態において「LUT」と称する)として格納したピクセルバッファが形成される。
「ビット深度」は、上述したとおり、画像の色数を表す尺度であり、例えばビットマップ画像の場合、2色は1ビット(= 2^1)、16色は4ビット(= 2^4)、256色 は8ビット(= 2^8)、16777216色は24ビット(= 2^24)で表される。
【0025】
サブピクセルバッファは、ディスプレイの表示領域、すなわち表示バッファの1ピクセル分の表示領域に対して複数のサブピクセル描画領域に分割されており、個々のサブピクセル描画領域にはオーバーサンプリングにより得られたサブピクセル(マスク部分を含む)が描画される。
カラーバッファには、サブピクセルバッファのサブピクセル描画領域に描画されるサブピクセルのカラー値が登録される。
Zバッファには、サブピクセルバッファのサブピクセル描画領域に描画されるサブピクセルのZ値が、カラーバッファに登録されているカラー値と対応付けられて登録される。
【0026】
図1は、上記のような描画バッファの説明図であり、単純な例として、1ピクセルについて4×4の16倍のオーバーサンプリングを行う場合の構成要素を示したものである。
図1(a)は、深度1ビット16ワードのサブピクセルバッファ、図1(b)はそのサブピクセルバッファに対応するピクセルバッファである。
深度1ビットの場合、サブピクセルバッファの各々のサブピクセル描画領域に描画されるデータは、"0"又は"1"の2値で表される。また、LUTのうち、上段の要素領域(0)には、サブピクセルバッファのうちでビット"0"が描画される領域2に対応したサブピクセルのカラー値(C(0))とZ値(Z(0))とが登録される。また、破線で示されている下段の要素領域(1)には、サブピクセルバッファのうち"1"が描画された領域3に対応したサブピクセルのカラー値であるC(1)とZ値であるZ(1)とが登録される。LUTのカラー値とZ値をそれぞれ32ビットで表す場合、1ピクセル分のデータサイズは、144ビットで足りる。
【0027】
図1(c)は、深度2ビット16ワードのサブピクセルバッファ、図1(d)はそのサブピクセルバッファに対応するピクセルバッファである。
深度が2ビットの場合、サブピクセルバッファの各々のサブピクセル描画領域に描画されるビットは、"00"、"01"、"10"、"11"の4値で表される。また、LUTのうち、最上段の要素領域(00)には、サブピクセルバッファのうちビット"00"が描画される領域4に対応したサブピクセルのカラー値(C(0))及びZ値(Z(0))が登録され、2段目の要素領域(01)には、ビット"01"が描画される領域5に対応したサブピクセルのカラー値(C(1))及びZ値(Z(1))が登録され、3段目の要素領域(10)には、ビット"10"が描画される領域6に対応したサブピクセルのカラー値(C(2))及びZ値(Z(2))が登録され、最下段の要素領域(11)には、ビット"11"が描画される領域7に対応したサブピクセルのカラー値(C(3))及びZ値(Z(3))が登録される。LUTのカラー値とZ値をそれぞれ32ビットで表す場合、1ピクセル分のデータサイズは288ビットで足りる。
【0028】
次に、上記の描画バッファにアクセスすることにより本発明の特徴的な描画処理方法を行うときのプロセッサの動作手順を図2を参照して説明する。プロセッサによる以下の動作は、プロセッサが、コンピュータ読み取り可能な記録媒体に記録されている所定のコンピュータプログラムを読み込むことにより可能になるものである。
【0029】
<ステップS11>描画すべき新規サブピクセルがあるかどうかを判定する。具体的には、外部から、ディスプレイに表示させるべきポリゴンその他の画像が投入されたかどうかを判定する。新規サブピクセルがない場合は、描画処理は休止状態となる。
<ステップS12>新規サブピクセルがあるときは(ステップS11:Yes)、その新規サブピクセルのZ値とZバッファ内のすべてのZ値とを比較して、ディスプレイの表示画面から見て相対的に後方に位置することになるサブピクセルを検出する。また、検出したサブピクセルを描画するためのサブピクセル描画領域についてはその部分をマスクしたサブピクセルマスクを生成する。
<ステップS13>生成したサブピクセルマスクにおいて描画すべきサブピクセルがあるときはそのサブピクセルについてのカラー値又はZ値、あるいはこれらのすべてを登録するための空領域がカラーバッファ、Zバッファに存在するかどうかを検証する。
【0030】
<ステップS14> 空領域が存在しないときは(ステップS13:No)、登録不能な新規サブピクセルについてのカラー値及びZ値と、既登録のカラー値及びZ値とを相互に比較して、カラー値、Z値、あるいはその双方が最も近似する複数のサブピクセルを検出する。
近似するかどうかの基準としては、以下のいずれかを用いる。
(1)カラー値から輝度を算出し、比較するピクセルの輝度差分が小さい(輝度が最も似ている)ピクセルの組合せを選ぶ。
(2)R(赤)、G(緑)、B(青)各値の差分の絶対値の和が少ないサブピクセルの組合せを選ぶ。その際、必要に応じて、R、G、Bの各値に重み付けを行う。
(3)上記の色輝度のほかに色差を算出し、これらが似ているサブピクセルの組合せを選ぶ。
(4)Z値の差分の絶対値が小さい近傍データを選ぶ。このZ値の差分を用いた基準では、視点からの奥行き方向において手前側からのポリゴン投入順に限定すれば、当該視点からの奥行き方向の距離を考慮した統合が可能となるので、後の扱いが容易となる利点がある。
【0031】
<ステップS15> 検出した複数のサブピクセルのカラー値同士、Z値同士、あるいはその双方を統合する。
<ステップS16> ピクセル属性を登録するための空領域を形成するかどうか(可能かどうか)を判定する。すなわち、新規サブピクセルのピクセル属性と既登録のピクセル属性とを統合する場合は、カラーバッファとZバッファに空領域を形成することができない(する必要がない)のに対して、統合されたカラー値、Z値がいずれも既登録である場合は、カラーバッファとZバッファにおける既登録の領域の少なくとも一つを空領域にすることが可能となる。
<ステップS17> 空領域を形成できるときは(ステップS16:Yes)、カラーバッファとZバッファに空領域を形成し、ピクセル属性の新規登録を可能にする。
<ステップS18> 空領域に新規ピクセルのカラー値、Z値を登録し、サブピクセルバッファへの描画を可能にする。
以上の処理手順を、ポリゴンその他の画像が投入される度に繰り返し、その際のカラーバッファ又はZバッファにおける登録領域の増加を抑制する。
【0032】
このような描画処理方法により、例えば互いに重なり合わない多数のポリゴンの境界を含むサブピクセルのように、1ピクセル内に多数のポリゴンの色が投入された場合であっても、破綻の無い色をディスプレイに表示させることができ、また、例えばポリゴン同士が互いに重なっていたとしても遠方の色が混合されて色が破綻してしまうようなことがなくなる。従来のような描画方向の制限も無い。
しかも、カラーバッファ及びZバッファの容量が少なくてもほぼ正確な色が再現されるため、予め用意しておくこれらのバッファの容量を大幅に削減することが可能になる。これにより、従来の種々のアンチエイリアシングのような高速なメモリアクセスが不要となり、低コスト且つ現実的なリソースで、リアルタイムに高品位なアンチエイリアシングを実現することが可能になる。
【0033】
なお、図2では、相対的に後方に位置することになるサブピクセルを描画するためのサブピクセル描画領域についてはその部分をマスクする隠面消去処理を行うようにしているが、この隠面消去処理は、本発明の描画処理方法では不可欠なものではない。この隠面消去処理を行わない場合は、上記のステップS12の処理をパスさせる。
また、図2は、高解像度のオーバーサンプリング画像を描画する場合の手順を示したものであるが、本発明の描画処理方法は、カラー値、Z値を含むポリゴン属性を新規に登録できない場合のピクセルバッファの登録領域の増加を抑制する点に主眼があるので、オーバーサンプリングを行わない通常のピクセル単位での描画処理にも同様に適用できるものである。
【0034】
[描画処理装置]
次に、本発明の描画処理方法の実施、特にオーバーサンプリングによる高解像度画像の描画処理方法の実施に適した描画処理装置の例を説明する。
描画処理装置は、コンピュータプログラムによってその動作が規定されるレンダリングプロセッサ、ジオメトリプロセッサ及びメインプロセッサ(CPU)と、メモリその他のハードウエア資源との協働により実現することができる。
【0035】
図3は、この画像処理装置の構成図である。図3に示されるように、描画処理装置は、データバスを介して接続されるジオメトリプロセッサ50、メモリ51、レンダリングプロセッサ52、CPU56、ドライブユニット57及び通信ユニット58と、レンダリングプロセッサ52の処理結果をディスプレイ55に表示するためのディスプレイコントローラ54を有している。レンダリングプロセッサ52には、テクスチャ属性(カラー値等)が記録されているテクスチャメモリ53が内蔵ないし付属されている。
【0036】
メモリ51には、描画(表示)対象となるポリゴン等の図形情報、例えば、頂点座標値、各頂点のR(赤)、G(緑)、B(青)のカラー値、マップ座標値、ベクトル値等の頂点情報及び頂点連結情報等が格納されている。図形情報は、CPU56の制御のもとで、ドライブユニット57が、それに装着されたCD−ROM、DVD−ROM、半導体メモリ等の各種記録媒体から読み取ったり、通信ユニット58が有線或いは無線による通信媒体、伝送媒体等を介して取り込んだものである。
テクスチャメモリ53に記録されるテクスチャ属性は、例えばCD−ROM、DVD−ROM、半導体メモリ等の各種記録媒体、有線或いは無線による通信媒体、あるいは、伝送媒体等を介して取り込まれたものである。
【0037】
ジオメトリプロセッサ50は、CPU56の制御のもとで、メモリ51から上記の図形情報を読み出し、その図形情報に対してアフィン変換、スクリーン座標への投影変換、頂点に対する光源処理等のジオメトリ処理を行う半導体デバイスの一つである。ジオメトリ処理の結果データは、レンダリングプロセッサ52へ供給される。
【0038】
レンダリングプロセッサ52は、本発明の描画処理用の半導体デバイスの一例となるもので、ジオメトリプロセッサ50から送られてきたジオメトリ処理の結果データをピクセル化し、各ピクセルをディスプレイ55のスクリーン座標に対応させて配置して、ディスプレイ55の2次元スクリーンに表示するためのスクリーンデータを生成する。このような処理をレンダリング処理という。
このレンダリング処理を実現するため、レンダリングプロセッサ52には、通常はその内部に記録されているコンピュータプログラムとの協働により、ポリゴンセットアップユニット61、ラスタライザユニット62、カラーコンポジットユニット65、サブピクセルコンポジットユニット66、フレームバッファ67、及び、ブレンドユニット71の機能部品を構築する。
【0039】
ポリゴンセットアップユニット61は、ジオメトリプロセッサ50から送られてくるジオメトリ処理の結果データの取り込みと、そのバッファリングとを行い、例えばストリップ状又はファン状のポリゴンメッシュ構造のデータを独立のポリゴンに変換し、これをラスタライザユニット62に送出する。ポリゴンセットアップユニット61は、また、エリア選択(area culling)及びバック選択(back culling)等を行い、不要なポリゴンを廃棄する。このようにして、後段のラスタライザユニット62で行われる処理の効率を上げている。
【0040】
ラスタライザユニット62は、ポリゴンを公知のDDA(Digital Differential Analyzer)等を用いて分析するもので、オーバーサンプリング画像を扱う場合は、サブピクセルラスタライザ63とピクセルラスタライザ64とを含んで構成される。
サブピクセルラスタライザ63は、スクリーンの描画領域を公知のオーバーサンプリング手法により求め、1ピクセル分の複数のサブピクセル描画領域を一つのサブピクセルマスクとしてまとめる。
ピクセルラスタライザ64は、Z値、カラー値及びテクスチャメモリ53からテクスチャカラー値を参照するためのテクスチャUV座標(テクスチャの参照アドレス)等を含むピクセル属性を、ピクセル単位で求める。
カラー値は、カラーコンポジットユニット65へ送られ、Z値及びサブピクセルマスクは、サブピクセルコンポジットユニット66へ供給される。
【0041】
カラーコンポジットユニット65は、ピクセルラスタライザ64より取得したカラー値と、テクスチャUV座標に応じてテクスチャメモリ53から供給されたテクスチャ属性(カラー値)とを合成し、描画ピクセルカラー値を生成する。この描画ピクセルカラー値は、サブピクセルコンポジットユニット66へ供給される。
【0042】
サブピクセルコンポジットユニット66は、新規に投入されたピクセルのサブピクセルマスク及びそれ以前の描画処理によってサブピクセルバッファ68に保存されているサブピクセルマスク、新規に投入されたピクセルの個々のサブピクセルのカラー値、Z値及びそれ以前の描画処理によってカラーバッファ69、Zバッファ70に登録されているカラー値、Z値に基づき、必要に応じて、ピクセル属性(カラー値、Z値等)が最も近似する複数のサブピクセルの検出と、検出したサブピクセルのピクセル属性の統合とを行う。より具体的には、N種類のカラー値を少なくともN−1種類のカラー値に統合して、統合ピクセル属性の一例となる合成カラー値を生成するとともに、合成カラー値に対応した一つの代表Z値の選出等を行う。
このサブピクセルコンポジットユニット66からは、結局、カラー値、若しくは合成カラー値、代表Z値及びサブピクセルマスクが出力される。これらのデータは、フレームバッファ67に供給され、適宜、サブピクセルコンポジットユニット66によって参照ないし更新される。
【0043】
フレームバッファ67は、バンクAとバンクBからなる2バンク構成のバッファメモリである。一方のバンク、例えばバンクAが上述した描画バッファとして機能している間、他方のバンクであるバンクBは描画されたデータをディスプレイ55に表示させる際に用いられる表示バッファとして機能する。このようにして、描画及びそれに続く表示の処理速度の向上を図っている。
図1において示したサブピクセルバッファ68、カラーバッファ69及びZバッファ70は、描画バッファとして機能するバンクの方に一時的に形成される。但し、カラーバッファ69及びZバッファ70については、描画バッファに一時的に形成されるようにせず、別途設けたメモリ領域に半恒常的に形成されるようにしてもよい。
サブピクセルバッファ68には、サブピクセルマスクが随時更新できる形態で記録される。カラーバッファ69とZバッファ70は、上述したように、LUTとして形成される。ここでは、説明を簡単にするため、サブピクセルバッファ68のビット深度が1ビットであるものとするが、ビット深度は、この例に限定されるものではない。1ビット深度の場合、カラーバッファ69は、図1(b)に示したように、LUTの要素領域(0)、(1)に対応する2つのカラーバッファ69(0)、69(1)に分けられ、同じく、Zバッファ70はLUTの要素領域(0)、(1)に対応する2つのZバッファ70(0)、70(1)に分けられる。
【0044】
ブレンドユニット71は、サブピクセルバッファ68とカラーバッファ69から読み出されたデータを用い、下記式のようにピクセルカラー値を合成し、これをディスプレイコントローラ54に出力する。
Ccmp=(C(0)*num(0)+C(1)*num(1))/num(0)+num(1)
但し、Ccmpは合成後のピクセルカラー値、C(0)は、カラーバッファ69(0)に格納されていたカラー値、C(1)はカラーバッファ69(1)に格納されていたカラー値、num(0)は、C(0)に対応するカラー値で表現されるサブピクセルの個数、num(1)は、C(1)に対応するカラー値で表現されるサブピクセルの個数である。
【0045】
ディスプレイコントローラ54は、ディスプレイ55の水平同期信号、垂直同期信号等を生成すると共に、そのディスプレイ55の表示タイミングに従い、フレームバッファ67からサブピクセルのカラー値を順次取り出し、必要に応じて、そのカラー値をブレンドユニット71で合成させた後、ディスプレイ55の2次元スクリーン上に、2次元画像として表示させる。
【0046】
[サブピクセルコンポジットユニットの構成]
ここで、レンダリングプロセッサ52の中心的な機能を受け持つサブピクセルコンポジットユニット66の具体的な構成及びその概略動作を説明する。
以後の説明では、便宜上、各種データを次のように、省略する。
「Min」:新規に投入されたサブピクセルマスク
「Zin」:新規に投入されたサブピクセルのZ値
「Cin」:新規に投入されたサブピクセルのカラー値
「Mbuf」:サブピクセルバッファ68に格納され若しくは読み出されたサブピクセルマスク
「Mow」:サブピクセルバッファ68に上書きされるサブピクセルマスク
「C(0)」:カラーバッファ69(0)に格納され若しくはそこから読み出されたカラー値
「C(1)」:カラーバッファ69(1)に格納され若しくはそこから読み出されたカラー値
「Z(0)」:Zバッファ70(0)に格納され若しくはそこから読み出されたZ値「Z(1)」:Zバッファ70(1)に格納され若しくはそこから読み出されたZ値
【0047】
サブピクセルコンポジットユニット66は、図4に示されるように、隠面消去ブロック75と、マスクコンポジット・Z選出ブロック76と、カラーコンポジットブロック77とを含んで構成される。これらのブロック75〜77は、ユニット内の半導体を含むハードウエア部品とソフトウエアとの協働により形成される。
【0048】
隠面消去ブロック75は、Zバッファ70から読み出したすべてのZ値の比較を行うことにより、Zバッファ70に格納されているZ値に対応したサブピクセル描画領域の中で、視点からみて相対的に後方となる領域を求め、それらの領域のビット値と、投入サブピクセルマスクの中で描画すべき領域のビット値との論理積演算を行うとともに、すべてのサブピクセルについての論理積演算結果を論理和演算することにより、隠面消去処理を行う。この隠面消去処理により得られたデータをMowとして出力する。
より具体的には、Zinと、Zバッファ70から読み出されたZ(0)、Z(1)とを比較し、Minの中で、ディスプレイ55の表面、すなわち仮想視点から見えることになるサブピクセル描画領域の集合をMowとして出力する。
この隠面消去ブロック75からは、Zin、Z(0)、Z(1)と、サブピクセルバッファ68から読み出されたMbufと、上記のMowとが出力され、これらがマスクコンポジット・Z選出ブロック76に供給される。
【0049】
マスクコンポジット・Z選出ブロック76は、隠面消去ブロック75から供給されたMbuf及びMowに基づいて、仮想視点から見えることになるサブピクセル描画領域数を特定するとともに、特定したサブピクセル描画領域に描画されるサブピクセルのピクセル属性の種類数をピクセル単位で求める。
例えばピクセル属性が1種類しかなかった場合、マスクコンポジット・Z選出ブロック76は、そのピクセル属性におけるZ値をLUTの一方の要素領域(例えば要素領域(1))に登録すると共に、仮想視点から見えることになるサブピクセルについてのMbufをサブピクセルバッファ68に上書きする。このとき、LUTの他方の要素領域(この場合は要素領域(0))はディセーブル状態としておく。
ピクセル属性が2種類であった場合、マスクコンポジット・Z選出ブロック76は、これらのピクセル属性における2つのZ値の何れか一方を選択してLUTの要素領域(1)に登録するか、若しくは、それら2つのZ値をLUTの要素領域(0)と要素領域(1)にそれぞれ振り分けて登録し、仮想視点から見えることになるサブピクセルについてのMbufをサブピクセルバッファ68に上書きする。
ピクセル属性が3種類であった場合、マスクコンポジット・Z選出ブロック76は、これらのピクセル属性における3つのZ値のうちで近似する2つのZ値、すなわちZin、Z(0)、Z(1)の中で差分が相対的に小さい2つのZ値を選出し、さらに選出された2つのZ値のうちで、それぞれ対応する描画領域数が多い方の1つのZ値を代表Z値として選出し、選出された代表Z値をLUTの一方の要素領域(例えば要素領域(1))に登録し、一方、最も近似する2つのZ値を除いた残りの1つのZ値をLUTの他方の要素領域(この場合は要素領域(0))に登録する。
また、近似する2つのZ値にそれぞれ対応するサブピクセル描画領域のビット値の論理和演算を行い、その論理和演算後のビット値と仮想視点から見えることになるサブピクセルのビット値とを含むMbufをサブピクセルバッファ68に上書きする。
【0050】
マスクコンポジット・Z選出ブロック76は、また、ピクセル属性の種類数に応じてLUTの各要素領域へ登録する代表Z値の選出に使用した選出コントロール信号BSを、後段のカラーコンポジットブロック77においてカラー値を選出する際の選出コントロール信号として出力する。さらに、最も近似する2つのZ値の選出を行った時に、これらの2つのZ値にそれぞれ対応するサブピクセル描画領域の数に応じた信号を、カラーコンポジットブロック77でカラー値を合成する際の合成比率コントロール信号BRとして出力する。
【0051】
カラーコンポジットブロック77は、新規ピクセルのカラー値Cinと、LUTから読み出したカラー値C(0)、C(1)の中から、選出コントロール信号BSに応じたカラー値を選出し、必要に応じてカラー値の統合(カラー合成)を行う。
例えばピクセル属性が1種類であったときは、選出コントロール信号BSに基づいて、そのピクセル属性に対応するカラー値をLUTの一方の要素領域(例えば要素領域(1))に登録する。ピクセル属性が2種類であったときは、選出コントロール信号BSに基づいて、その2種類のピクセル属性に対応する2つのカラー値を1つのカラー値に統合してLUTの一方の要素領域(例えば要素領域(1))に登録するか、若しくは、それら2つのカラー値をLUTの要素領域(0)、(1)に振り分けて登録する。ピクセル属性が3種類であったときは、選出コントロール信号BSに基づいてCin、C(0)、C(1)の中から近似する2つのカラー値を選出し、選出したカラー値を合成比率コントロール信号BRに応じて1つのカラー値に統合して、LUTの何れか一方の要素領域(例えば要素領域(1))に登録し、また、残りの1つのカラー値をLUTの他方の要素領域(この場合は要素領域(0))に登録する。
【0052】
このように、サブピクセルコンポジットユニット66では、投入されたサブピクセルのピクセル属性の種類が、既登録のLUTの要素領域数を超えることになるか否かを常に検証し、ピクセル属性の種類が既登録のLUTの要素領域数を超えるときには、2つのピクセル属性をデータを1つに統合することにより、描画のために登録するピクセル属性の種類が、ビット深度で定まるLUTの要素領域数に収まるようにして、メモリ容量の増加を抑制している。
【0053】
次に、上記の隠面消去ブロック75、マスクコンポジット・Z選出ブロック76、及び、カラーコンポジットブロック77の詳細構成例を説明する。
【0054】
図5は、隠面消去ブロック75の詳細構成図である。図5において、比較部81は、イネーブル状態となっているZバッファ70、例えばZバッファ70(1)から読み出したZ(1)と、投入されたZinとを比較し、ZinがZ(1)よりも仮想視点に近いときは"1"、ZinがZ(1)よりも仮想視点から遠いときは"0"の選出コントロール信号を選出部85に出力する。同様に、比較部82は、イネーブル状態となっている他方のZバッファ70(0)から読み出したZ(0)とZinとを比較し、ZinがZ(0)よりも仮想視点に近いときは"1"、ZinがZ(0)よりも仮想視点から遠いときには"0"の選出コントロール信号を選出部84に出力する。
なお、対応するLUTの要素領域(0)、(1)が空領域になっている場合、比較部82、81は、Z(0)、Z(1)を仮想視点から遠い値であるとして上記の比較を行う。その結果、比較部82、81からは、"1"の選出コントロール信号が出力される。
【0055】
選出部85には、1ピクセル分のサブピクセルマスクの各描画領域の個数に対応する16個の"0"からなるデータ(ALL"0")と、サブピクセルバッファ68から読み出されたMbufとが供給され、これらのいずれかを比較部81から出力される選出コントロール信号のビット値に応じて切り換えて論理積演算部(AND)86に出力する。本例では、選出コントロール信号のビット値が"0"であるときはALL"0"が出力され、選出コントロール信号のビット値が"1"であるときは、Mbufが出力されるようにする。
【0056】
選出部84には、All"0"と、Mbufを反転部83で論理反転した反転データとが供給され、これらのいずれかを、比較部82からの選出コントロール信号のビット値に応じて切り換えて論理積演算部(AND)87に出力する。本例では、選出コントロール信号のビット値が"0"であるときはAll"0"が出力され、選出コントロール信号のビット値が"1"であるときは、反転データが出力されるようにする。
【0057】
論理積演算部86は、選出部85から出力されるMbuf又はAll"0"と、Minとの論理積演算結果を論理和演算部88に出力する。論理積演算部87は、選出部84から出力されるMbufの反転データ又はAll"0"と、Minとの論理積演算結果を論理和演算部88に出力する。論理和演算部88は、論理積演算部86、87の出力データの論理和演算を行い、その演算結果のデータを新たなMowとして、マスクコンポジット・Z選出ブロック76に供給する。
なお、隠面消去ブロック75からは、Mowのほか、Mbuf、Zin、Z(0)、Z(1)も、マスクコンポジット・Z選出ブロック76に供給される。
【0058】
図6は、マスクコンポジット・Z選出ブロック76の詳細構成図である。
図6において、Mbufは、論理積演算部93に供給されるとともに、反転部90で反転された後に論理積演算部92に供給される。また、隠面消去ブロック75から送られてきたMowは、ビットカウント部96に供給されると共に、反転部91で反転された後に論理積演算部92、93に供給される。
なお、反転部90、91は、サブピクセルバッファ68の各描画領域がディセーブル状態となっているときに、各描画領域に対応する値として、特に論理0を出力するように構成されている。
【0059】
論理積演算部92は、隠面消去ブロック75からのMbufの反転データとMowの反転データとの論理積演算結果をビットカウント部94へ供給する。論理積演算部93は、上記のMbufと、Mowの反転データとの論理積演算結果をビットカウント部95へ供給する。
なお、論理積演算部93は、サブピクセルバッファ68のサブピクセル描画領域がディセーブル状態となっているとき、各領域に対応する値として特に"0"を出力するように構成されている。
【0060】
ビットカウント部94〜96は、それぞれ入力されたデータに含まれる"1"の個数をカウントするとともに、この"1"のカウント値と入力データ(Mbuf、Mow)とを検証部97へ供給する。
検証部97は、ビットカウント部94〜96から送られてきた"1"のカウント値に基づいて、1ピクセル内に存在するピクセル属性の種類を検証する。そして、ピクセル属性の種類数とそれに対応するカウント値を示す信号を、ニアペア選出部101とニア選出部103へ供給する。
検証部97は、また、ビットカウント部94〜96を介して送られてきた上記入力データと各カウント値、及び、ピクセル属性の種類数とそれに対応するカウント値を示す信号を選出部98へ供給する。
一方、隠面消去ブロック75から送られてきたZin、Z(0)、Z(1)は、選出部102に供給されると共に、ニアペア選出部101に供給される。
【0061】
ニアペア選出部101は、検証部97から送られてきたピクセル属性の種類数及びそれに対応するカウント値を示す信号と、隠面消去ブロック75から送られてきた各Z値とに基づいて、選出部102と選出部98、及びカラーコンポジットブロック77の選出動作を制御するための選出コントロール信号BSを生成する。ニア選出部103は、検証部97から送られてきたピクセル属性の種類数及びそれに対応するカウント値を示す信号と、ニアペア選出部101で選出された2つのZ値とに基づいて一つの代表Z値を選出する。
【0062】
ニアペア選出部101及びニア選出部103は、以下のように動作する。
ピクセル属性が1種類であったとき、ニアペア選出部101は、そのピクセル属性に対応する一つのZ値を選出部102から出力させるようにする。このZ値は、その後、LUTの例えば要素領域(1)に登録される。なお、このときのLUTの要素領域(0)は、ディセーブル状態としておく。
ピクセル属性が2種類であったとき、ニアペア選出部101は、その2種類のピクセル属性に対応する2つのZ値を選出部104へ供給するように、選出部102の選出動作を制御する。このとき、ニア選出部103は、検証部97から送られてきた信号に基づき、2つのZ値のうち描画領域数の多い方の一つのZ値、すなわち、上記カウント値の多い方に対応するZ値を代表Z値として選出するように、選出部104の選出動作を制御する。選出部104から出力された代表Z値は、その後、LUTの一方の要素領域(例えば要素領域(1))に登録される。
ピクセル属性が3種類であったとき、ニアペア選出部101は、その3種類のピクセル属性に対応する3つのZ値、すなわちZin、Z(0)、Z(1)のうちで近似する2つのZ値を選出部104へ供給するとともに、Zin、Z(0)、Z(1)のうちで最も離れているZ値を出力するように、選出部102の選出動作を制御する。このとき、ニア選出部103は、上記近似する2つのZ値のうち領域数(カウント値)の多い方に対応するZ値を代表Z値として出力されるように、選出部104の選出動作を制御する。選出部104から出力された代表Z値と、Zin、Z(0)、Z(1)のうちで最も離れているZ値として選出部102から出力されたZ値は、それぞれ要素領域(0)、(1)に振り分けられて登録される。
【0063】
選出部98では、ニアペア選出部101からの選出コントロール信号BSと検証部97より供給されたピクセル属性の種類数及びカウント値とに基づいて、上記入力データの選出を行うことにより、隠面消去後のサブピクセル描画領域がLUTの要素領域(0)、(1)の何れに対応するのかを決定し、LUTの要素領域(0)、(1)毎に決定した隠面消去後のサブピクセル描画領域数及びピクセル属性の種類数を示す信号をレート決定部100へ出力し、また、上記入力データそのものを論理和演算部99へ出力する。
【0064】
論理和演算部99は、選出部98から供給されたデータの論理和演算を行い、演算結果のデータを新たなMbufとして出力する。
レート決定部100では、選出部98から供給されたピクセル属性の種類数と隠面消去後のサブピクセル描画領域数とに基づいて、カラーコンポジットブロック77で合成カラー値を生成する際の合成比率を表す合成比率コントロール信号BRを生成し、これをカラーコンポジットブロック77に供給する。
【0065】
図7は、カラーコンポジットブロック77の詳細構成例である。図7において、選出部105は、カラーコンポジットユニット65から送られてきたCinと、カラーバッファ69から読み出されたC(0)、C(1)の中から、選出コントロール信号BSに応じたカラー値を選出する。
カラー値が1種類のとき、選出部105は、そのカラー値を合成部106へ出力するが、合成部106は、そのカラー値をそのままLUTの要素領域(1)であるカラーバッファ69(1)へ供給する。カラー値が2種類のとき、選出部105は、2種類のカラー値の一方を合成部106へ出力する。合成部106は、合成比率コントロール信号BRに基づいて、カラー値をLUTの例えば要素領域(1)に対応付けられたカラーバッファ69(1)へ登録するとともに他方のカラー値を、LUTの要素領域(0)に対応付けられたカラーバッファ69(0)に登録する。
カラー値が3種類のとき、選出部105は、ニアペア選出部101で3種類の中から近似するとして選出された2つのZ値に対応するカラー値をCin、C(0)、C(1)の中から選出し、選出したカラー値を合成部106へ供給する。合成部106は、合成比率コントロール信号BRに基づいて、その2種類のカラー値を1つの合成カラー値に統合して、LUTの要素領域(1)に対応付けられたカラーバッファ69(1)へ登録する。3つのカラー値のうちの残りのカラー値は、LUTの要素領域(0)に対応付けられたカラーバッファ69(0)へ登録される。
【0066】
[描画処理装置の動作例]
次に、上記のように構成される描画処理装置の具体的動作例を、図8〜図15を参照して説明する。ここでは、説明を簡単にするために、図1に示したようにサブピクセルバッファ68が深度1ビット×16ワードで、LUTの要素領域数が2個の場合を例に挙げて説明する。以降の説明では、図8に示すように、ピクセル毎のサブピクセルバッファの16個のサブピクセル描画領域が、それぞれp(1、1)〜p(4、4)のアドレスによって特定されるものとする。
【0067】
図9(a)は1ピクセル分の各サブピクセル描画領域がすべて空領域になっている初期状態でのサブピクセルバッファ110、図9(b)は要素領域(0)、(1)の何れも空領域となる初期状態のLUT111、図9(c)はサブピクセル描画領域の状態を示した図である。図9(a)、(c)に示されるように、サブピクセルバッファ110の各サブピクセル描画領域に付される符号は、以下の意味をもつものとする。
「10」:隠面消去(HSR)後にLUTの要素領域(0)に対応したサブピクセルが描画される領域
「11」:隠面消去(HSR)後にLUTの要素領域(1)に対応したサブピクセルが描画される領域
「12」:隠面消去(HSR)後の空領域
「13」:ビット値が"1"となるサブピクセル描画領域
「14」:ビット値が"0"となるサブピクセル描画領域
「15」:隠面消去後にビット値が"1"となるサブピクセル描画領域
「16」:隠面消去後にビット値が"0"となるサブピクセル描画領域
「2」:カラー合成後にLUTの要素領域(0)に対応するビット値として"0"が格納される領域
「3」:カラー合成後にLUTの要素領域(1)に対応するビット値として"1"が格納される領域
「8」:ディセーブル状態となっている空領域(イネーブル状態で"0"が格納されている領域2と区別するための参照符号)
【0068】
図9(a),(c)に示される初期状態のときに、図10上段に示すようなポリゴン20のエッジ部分を含むピクセルから図10中段に示すような16ビットのサブピクセルマスク21が投入されたとする。このサブピクセルマスク21のうち、サブピクセルが描画される領域、すなわち、ポリゴン20と重なる部分のZ値はZ0で、カラー値はC0であるものとする。
この新規に投入されたサブピクセルマスク21は、図11(a)の左図に示されるように、ポリゴン20内部の領域13のp(1、1)〜p(1、3)、p(2、1)、p(2、2)、p(3、1)が"1"で、他の領域14のp(1、4)、p(2、3)、p(2、4)、p(3、2)、p(3、3)、p(3、4)、p(4、1)〜p(4、4)が"0" となる。このときの、サブピクセルマスク21は、16進数で表すと”0x0137”になる。
【0069】
このとき、隠面消去ブロック75にはZinとしてZ0、CinとしてC0が供給されるが、先に描画されているサブピクセルがないため、隠面消去ブロック75からは、図11(a)右図に示されるように、投入サブピクセルマスク112と同様のビットパターンでHSR後のサブピクセルマスク113が出力される。
【0070】
また、マスクコンポジット・Z選出ブロック76は、図11(b)左図のように、サブピクセルマスク113と同様のビットパターンのサブピクセルマスク114をサブピクセルバッファ68に上書きする。その結果、サブピクセルバッファ68におけるサブピクセル描画領域116は、図11(c)左図に示されるように、領域3のp(1、1)〜p(1、3)、p(2、1)、p(2、2)、p(3、1)が"1"、残りの領域8のp(1、4)、p(2、3)、p(2、4)、p(3、2)、p(3、3)、p(3、4)、p(4、1)〜p(4、4)が空領域となる。
マスクコンポジット・Z選出ブロック76及びカラーコンポジットブロック77は、図11(c)右図に示すように、LUT117の要素領域(1)にサブピクセル描画領域116の領域3に対応したデータとしてC0とZ0を登録する。
【0071】
次に、サブピクセル描画領域116及びLUT117が図11(c)の状態のときに、図12(a)左図のように、領域14のp(1、1)〜p(1、4)、p(2、1)〜p(2、4)、p(3、1)、p(3、3)、p(3、4)、p(4、3)、p(4、4)が"0"で、領域13のp(3、2)、p(4、1)、p(4、2)のビット値が"1"となるサブピクセルマスク118が新たに投入されたとする。投入されたサブピクセルマスク118の領域13に対応するZ値はZ1で、カラー値はC1であり、Z1のサブピクセル数は、Z0のサブピクセル数よりも少ないものとする。
【0072】
このようなサブピクセルマスク118が投入されると、隠面消去ブロック75の比較部81にはZ1が供給され、比較部82にはZ1とLUT117の要素領域(1)から読み出されたZ0とが供給されるが、LUT117の要素領域(0)が未だ空領域であること、及び、新たなサブピクセルマスク118における領域13("1")のビットパターンが、それ以前のサブピクセル描画領域116が"1"になっているビットパターンとが重ならないことから、隠面消去ブロック75からは、図12(a)右図に示すように、サブピクセルマスク118と同じビットパターンで、隠面消去(HSR)後のサブピクセルマスク119が出力される。
【0073】
マスクコンポジット・Z選出ブロック76は、図12(b)左図に示すように、空領域である要素領域(0)に対応する領域10がサブピクセルバッファ120に残るため、領域11と領域12との統合を行い、領域11、12のp(1、1)〜p(1、3)、p(2、1)、p(2、2)、p(3、1)、p(3、2)、p(4、1)、p(4、2)をLUTの要素領域(1)に登録されたピクセル属性のサブピクセルを描画するサブピクセル描画領域として扱う。
一方、領域10のp(1、4)、p(2、3)、p(2、4)、p(3、3)、p(3、4)、p(4、3)、p(4、4)は、隠面消去後のLUTの要素領域(0)に登録された値となるが、要素領域(0)は空領域になっているので、これらの領域10における描画は行われない。
【0074】
その結果、サブピクセルバッファ68のサブピクセル描画領域122は、図12(c)左図に示すように、p(1、1)〜p(1、3)、p(2、1)、p(2、2)、p(3、1)、p(3、2)、p(4、1)、p(4、2)の領域3に"1"が描画され、残りのp(1、4)、p(2、3)、p(2、4)、p(3、3)、p(3、4)、p(4、3)、p(4、4)の領域8が空領域となる。
カラーコンポジットブロック77は、C0とC1とを統合して1つの合成カラー値Cr0を生成する。すなわち、下記式に示すように、隠面消去後のZ0の描画領域数「6」に対応してC0を6倍した値と、隠面消去後のZ1の描画領域数「3」に対応してC1を3倍した値とを加算して領域数で平均することにより、Cr0を算出する。
Cr0=(C0*6+C1*3)/9
このときの代表Z値は、Z0の方がZ1よりも領域数が多いため、Z0が選出される。その結果、LUT123は、図12(c)右図に示すように、要素領域(1)にサブピクセルバッファ122の領域3に対応したCr0とZ0が格納される。LUT123の要素領域(0)は、未だ空領域となっている。
【0075】
次に、サブピクセル描画領域122及びLUT123が図12(c)の状態となっているときに、図13(a)左図のように、領域13のp(1、4)、p(2、3)、p(2、4)、p(3、3)、p(3、4)、p(4、3)、p(4、4)が"1"で、領域14のp(1、1)〜p(1、3)、p(2、1)、p(2、2)、p(3、1)、p(3、2)、p(4、1)、p(4、2)が"0"となるサブピクセルマスク124が新規に投入されたとする。領域13に対応するZ値はZ2であり、カラー値はC2であるものとする。
【0076】
このようなサブピクセルマスク124が投入されると、隠面消去ブロック75の比較部81には、ZinとしてZ2が供給され、比較部82には、Z2と、LUT123の要素領域(1)から読み出されたZ0とが供給される。しかし、この時点でLUT123の要素領域(0)は空領域であるため、隠面消去ブロック75からは、図13(a)右図に示すように、サブピクセルマスク124と同じビットパターンで、隠面消去後のサブピクセルマスク125がマスクコンポジット・Z選出ブロック76に供給される。
【0077】
マスクコンポジット・Z選出ブロック76は、図13(b)左図に示すように、サブピクセルバッファ68のサブピクセル描画領域126のうち、領域11のp(1、1)〜p(1、3)、p(2、1)、p(2、2)、p(3、1)、p(3、2)、p(4、1)、p(4、2)がLUTの要素領域(1)に対応したピクセル属性のサブピクセル、領域12のp(1、4)、p(2、3)、p(2、4)、p(3、3)、p(3、4)、p(4、3)、p(4、4)がLUTの要素領域(0)に対応したピクセル属性のサブピクセルの描画領域となる。
このマスクコンポジット・Z選出ブロック76からは、Z0に対応するp(1、1)〜p(1、3)、p(2、1)、p(2、2)、p(3、1)、p(3、2)、p(4、1)、p(4、2)の"1"と、Z1に対応するp(1、4)、p(2、3)、p(2、4)、p(3、3)、p(3、4)、p(4、3)、p(4、4)の"0"とにより構成されるデータが、サブピクセルバッファ68に上書きされるサブピクセルマスク(Mbuf)として出力される。その結果、サブピクセルバッファ68は、図13(c)左図に示すサブピクセル描画領域128のように、領域3のp(1、1)〜p(1、3)、p(2、1)、p(2、2)、p(3、1)、p(3、2)、p(4、1)、p(4、2)に"1"が描画され、残りの領域2のp(1、4)、p(2、3)、p(2、4)、p(3、3)、p(3、4)、p(4、3)、p(4、4)が"0"となる。
【0078】
カラーコンポジットブロック77は、新規に投入されたカラー値であるC2をカラーバッファ69(0)へ送る。これにより、図13(c)右図に示すように、カラー合成後のLUT129は、要素領域(1)にサブピクセルバッファ128の各描画領域3に対応した合成カラー値であるCr0とそのときの代表Z値であるZ0が格納され、一方、要素領域(0)にはサブピクセルバッファ128の領域2に対応したカラー値であるC2と、そのときの代表Z値であるZ2が登録される。
【0079】
次に、サブピクセル描画領域128及びLUT129が図13(c)の状態のときに、図14(a)左図に示すように、領域13のp(2、1)、p(3、1)、p(3、2)、p(4、1)、p(4、2)が"1"で、領域14のp(1、1)〜p(1、4)、p(2、2)〜p(2、4)、p(3、3)、p(3、4)、p(4、3)、p(4、4)が"0"となっているサブピクセルマスク130が新規に投入されたとする。このように、描画対象となるサブピクセルが前のものと重なるようになってくると、エイリアスの影響を考慮する必要が出てくる。そこで、この場合の動作を、より詳しく説明する。
なお、図14(a)の領域13に対応するZ値はZ3、カラー値はC3であり、Z3と、LUTに格納されているZ0、Z2との関係は、Z3<Z2≪Z0であるとする。
【0080】
サブピクセルマスク130が投入されると、隠面消去ブロック75の比較部82には、領域13に対応するZ3と、LUT123の要素領域(0)から読み出されたZ2が供給される。Z3<Z2であり、Z3の方が仮想視点から近い値を示すため、比較部81からは、"1"の選択コントロール信号が出力される。また、比較部81には、Z3と、LUT123の要素領域(1)から読み出されたZ0とが供給される。Z3≪Z0であり、Z3の方が仮想視点から近い値を示すため、比較部81からも、"1"の選択コントロール信号が出力される。したがって、隠面消去ブロック75からは、サブピクセルマスク130と同じビットパターンのものが、隠面消去後のサブピクセルマスク131としてマスクコンポジット・Z選出ブロック76に供給される。
【0081】
マスクコンポジット・Z選出ブロック76では、ビットカウント部94〜96のうち、ビットカウント部94ではp(1、4)、p(2、3)、p(2、4)、p(3、3)、p(3、4)、p(4、3)、p(4、4)に対応した7個の"1"をカウントし、ビットカウント部95ではp(1、1)〜p(1、3)、p(2、2)に対応した4個の"1"をカウントし、ビットカウント部96ではp(2、1)、p(3、1)、p(3、2)、p(4、1)、p(4、2)に対応した5個の"1"をカウントする。検証部97は、ビットカウント部94〜96から供給されたカウント値に基づいて、ピクセル属性の種類が「3」であると判定し、その旨を表すデータとそれに対応するカウント値の信号を、ニアペア選出部101とニア選出部103へ供給する。
【0082】
ニアペア選出部101には、Z3と、LUT129の要素領域(0)、(1)から読み出されたZ0、Z2が入力されており、これらの3つのZ値のうち、最も近似する2つのZ値としてZ3とZ2とを選定し、これらを選出部104とニア選出部103へ送り、残りの最も遠いZ値であるZ0を、LUTの要素領域(1)へ登録(上書き)する。ニア選出部103は、Z3、Z2のうち、領域数の多いZ2を選出するように、選出部104の選出動作を制御する。このZ2は、LUTの要素領域(0)へ登録(上書き)される。
【0083】
選出部98は、ニアペア選出部101が選出しなかったZ0に対応したp(1、1)〜p(1、3)、p(2、2)の部分のデータをLUTの要素領域(1)に対応させて"1"とし、ニアペア選出部101が選出したZ3に対応したp(2、1)、p(3、1)、p(3、2)、p(4、1)、p(4、2)の領域と、ニアペア選出部103が選出したZ2に対応する、残りのp(1、4)、p(2、3)、p(2、4)、p(3、3)、p(3、4)、p(4、3)、p(4、4)の描画領域の値をLUTの要素領域(0)に対応させて"0"とする。その結果、図14(b)左図に示すように、サブピクセルバッファ132の領域11のp(1、1)〜p(1、3)、p(2、2)がLUTの要素領域(1)に対応したピクセル属性のサブピクセルとして扱われる。一方、領域12のp(2、1)、p(3、1)、p(3、2)、p(4、1)、p(4、2)が隠面消去後のZ3に対応した領域、領域10の(1、4)、p(2、3)、p(2、4)、p(3、 3)、p(3、4)、p(4、3)、p(4、4)が隠面消去後のZ2に対応した領域となり、それぞれLUTの要素領域(0)に対応したピクセル属性のサブピクセルとして扱われる。
【0084】
論理和演算部99からは、Z2及びZ3に対応する領域が"0"で、残りの領域が"1"のサブピクセルマスク(Mbuf)が出力される。すなわち、この時のサブピクセルバッファ68は、図14(c)左図に示すサブピクセル描画領域134のように、p(1、1)〜p(1、3)、p(2、2)の領域3に"1"が描画され、残りのp(1、4)、p(2、1)、p(2、3)、p(2、4)、p(3、1)〜p(3、4)、p(4、1)〜p(4、4)の領域2に"0"が描画された状態となる。
【0085】
カラーコンポジットブロック77は、ニアペア選出部101から出力された選出コントロール信号BSに基づき、Z2及びZ3に対応するカラー値であるC2とC3が合成部106に送られ、一方、Z0に対応するカラー値となっている合成カラー値Cr0がそのまま出力される。合成部106は、下記式に示すように、カウント値「7」に対応してC2を7倍した値と、カウント値「5」に対応してC3を5倍した値とを加算して平均する演算式により、新たな合成カラー値であるCr1を求める。
Cr1=(C2*7+C3*5)/12
カラー合成後のLUT135は、図14(c)右図に示すように、要素領域(1)にサブピクセルバッファ134の各描画領域3に対応したCr0とZ0が登録され、一方、要素領域(0)にサブピクセルバッファ134の領域2に対応したCr1とZ2が登録される。
【0086】
次に、サブピクセル描画領域134及びLUT135が図14(c)の状態のときに、図15(a)左図に示すように、領域13のp(1、2)、p(1、3)、p(2、2)、p(2、3)、p(3、2)、p(3、3)、p(4、2)、p(4、3)が"1"となり、領域14のp(1、1)、p(2、1)、p(3、1)、p(4、1)、p(1、4)、p(2、4)、p(3、4)、p(4、4)が"0"となっているサブピクセルマスク136が投入されたとする。領域13に対応するZ値はZ4であり、カラー値はC4であるものとする。Z4と、Z0、Z2との関係は、Z2≪Z4<Z0であり、Z4の領域数がZ0の領域数よりも多いものとする。
【0087】
このサブピクセルマスク136が投入されると、隠面消去ブロック75の比較部82には、領域13に対応するZ4と、LUT135の要素領域(0)から読み出されたZ2が供給される。Z2≪Z4であり、Z2の方が視点から近い値を示す。また、比較部81には、Z2と、LUT135の要素領域(1)から読み出されたZ0とが供給されるが、Z4<Z0であり、Z4の方が視点から近い値を示す。そのため、隠面消去ブロック75からは、図15(a)右図に示すように、領域15のp(1、2)、p(1、3)、p(2、2)が"1"で、領域16のp(1、1)、p(2、1)、p(3、1)、p(4、1)、p(2、3)、p(3、2)、p(3、3)、p(4、2)、p(4、3)、p(1、4)、p(2、4)、p(3、4)、p(4、4)が"0"のサブピクセルマスクが、隠面消去後のサブピクセルマスク137としてマスクコンポジット・Z選出ブロック76に供給される。
【0088】
マスクコンポジット・Z選出ブロック76では、ビットカウント部94〜96に、それぞれ"1"を含むデータが供給される。すなわち、ビットカウント部94ではp(2、1)、p(3、1)、p(4、1)、p(1、4)、p(2、3)、p(2、4)、p(3、2)、p(3、3)、p(3、4、p(4、2)、p(4、3)、p(4、4)に対応した12個のビット"1"をカウントし、ビットカウント部95ではp(1、1)に対応した1個のビット"1"をカウントし、ビットカウント部96ではp(1、2)、p(1、3)、p(2、2)、の3個のビット"1"をカウントする。
検証部97では、ビットカウント部94〜96から供給されたカウント値に基づいて、1つのピクセルに割り当てられたピクセル属性の種類が「3」であると判定し、その旨を表すデータとそれに対応するカウント値の信号を、ニアペア選出部101とニア選出部103へ供給する。
【0089】
ニアペア選出部101と選出部102には、Z4と、LUT135の要素領域(0)、(1)から読み出されたZ0、Z2とが入力されている。ニアペア選出部101は、これらの3種類のZ値のうち、近似する2つのZ0とZ4を選出部104とニア選出部103へ送り、残りの最も遠いZ2をZバッファの要素領域(0)へ登録させるための選出コントロール信号を、選出部102へ供給する。
ニア選出部103では、選出部102から送られてきたZ0、Z4のうち、対応する領域数の多いZ4を選出するように、選出部104の選出動作を制御する。選出部104から出力されたZ4は、LUTの要素領域(1)へ登録(上書き)される。
【0090】
選出部98は、ニアペア選出部101からの選出コントロール信号BSと検証部97からのデータの種類及びカウント値に基づいて、ニアペア選出部101が近しい値として選出したZ0及びZ4にそれぞれ対応する領域と、それら以外のZ2に対応する領域とを分け、Z0及びZ4の領域をLUTの要素領域(1)に対応させて"1"とし、一方、Z2の領域をLUTの要素領域(0)に対応させて"0"にして、論理和演算部99へ出力する。選出部98は、また、隠面消去後の描画領域数の値を、データの種類である「3」と共にレート決定部100へ出力する。
【0091】
この時点で、図15(b)左図に示すように、サブピクセル描画領域138の領域11のp(1、1)が隠面消去後のZ0、領域12のp(1、2)、p(1、3)、p(2、2)が隠面消去後のZ4にそれぞれ対応し、これらの領域11、12がLUTの要素領域(1)に対応したピクセル属性のサブピクセル描画領域となる。
また、サブピクセル描画領域138の領域10のp(1、4)、p(2、1)、p(2、3)、p(2、4)、p(3、1)〜p(3、4)、p(4、1)〜p(4、4)は、隠面消去後のZ2に対応してLUTの要素領域(0)に対応したピクセル属性となる。
【0092】
マスクコンポジット・Z選出ブロック76からは、Z0及びZ4に対応する領域が"1"で、残りの領域が"0"となされたデータがMbufとして出力される。
この時のサブピクセル描画領域は、図15(c)左図に示すサブピクセル描画領域140のように、領域3のp(1、1)、p(1、2)、p(1、3)、p(2、2)が"1"で、残りの領域2のp(1、4)、p(2、1)、p(2、3)、p(2、4)、p(3、1)〜p(3、4)、p(4、1)〜p(4、4)が"0"のサブピクセルマスクが上書きされる。
【0093】
カラーコンポジットブロック77は、マスクコンポジット・Z選出ブロック76からの選出コントロール信号BSに基づき、Z0及びZ4に対応するカラー値であるCr0とC4が合成部106へ送られ、一方、Z2に対応するカラー値となっている合成カラー値Cr1がそのまま出力される。このときの合成部106では、下記式に示すように、隠面消去後のZ0の領域数「1」に対応してCr0を1倍した値と、同じく隠面消去後のZ4の領域数「3」に対応してC4を3倍した値とを加算して平均する演算式により、新たな合成カラー値であるCr2を求める。
Cr2=(Cr0*1+C4*3)/4
カラー合成後のLUT141は、図15(c)右図に示すように、要素領域(1)にサブピクセルバッファ140の領域3に対応したCr2とZ4が登録され、一方、要素領域(0)にサブピクセルバッファ140の領域2に対応したCr1とZ2が格登録される。
【0094】
次に、サブピクセル描画領域140及びLUT141が図15(c)の状態のときに、図16(a)左図に示すように、領域13のp(1、1)、p(1、3)、p(2、2)、p(2、4)、p(3、1)、p(3、3)、p(4、2)、p(4、4)が"1"で、領域14のp(1、2)、p(1、4)、p(2、1)、p(2、3)、p(3、2)、p(3、4)、p(4、1)、p(4、3)が"0"のサブピクセルマスク142が投入されたとする。領域13に対応するZ値はZ5、カラー値はC5であるものとする。また、Z5≪Z2<Z4である。
【0095】
サブピクセルマスク142が投入されると、隠面消去ブロック75の比較部82には、サブピクセルマスク142の領域13に対応するZ5と、LUT141の要素領域(0)から読み出されたZ2とが供給される。Z5≪Z2であり、Z5の方が視点から近い値を示す。また、比較部81には、Z5と、LUT141の要素領域(1)から読み出されたZ4とが供給される。Z5<Z4であり、Z5の方が視点から近い値を示す。したがって、隠面消去ブロック75からは、図16(a)右図に示すように、サブピクセルマスク142と同じビットパターンとなる隠面消去後のサブピクセルマスク143が出力される。
【0096】
マスクコンポジット・Z選出ブロック76では、ビットカウント部94〜96のそれぞれに、"1"を含むデータが供給される。すなわち、ビットカウント部94ではp(1、4)、p(2、1)、p(2、3)、p(3、2)、p(3、4)、p(4、1)、p(4、3)に対応した7個の"1"をカウントし、ビットカウント部95ではp(1、2)に対応した1個の"1"をカウントし、ビットカウント部96ではp(1、1)、p(1、3)、p(2、2)、p(2、4)、p(3、1)、p(3、3)、p(4、2)、p(4、4)に対応した8個の"1"をカウントする。検証部97は、ビットカウント部94〜96から供給されたカウント値に基づいて、1つのピクセルに割り当てられたピクセル属性の種類が「3」と判定し、その旨を表すデータとそれに対応するカウント値の信号を、ニアペア選出部101とニア選出部103へ供給する。
【0097】
ニアペア選出部101と選出部102には、Z5と、LUT141の要素領域(0)、(1)から読み出されたZ2、Z4とが供給されている。ニアペア選出部101は、Z5、Z2及びZ4のうち、近似するZ2とZ4を選出部104とニア選出部103へ送り、残りの最も遠いZ5をLUTの要素領域(0)へ供給させるための選出コントロール信号BSを、選出部102へ供給する。ニア選出部103では、選出部102から送られてきたZ2、Z4のうち、対応する領域数が相対的に多いZ2を選出するように、選出部104の選出動作を制御する。選出部104から出力されたZ2は、LUTの要素領域(1)に登録(上書き)される。
選出部98は、選出コントロール信号BSと検証部97からのピクセル属性の種類数「3」及びカウント値に基づいて、ニアペア選出部101が近似するZ値として選出したZ2及びZ4にそれぞれ対応する領域と、Z5に対応する描画領域とを分けると共に、Z2及びZ4の領域をLUTの要素領域(1)に対応させて"1"とし、一方、Z5の領域をLUTの要素領域(0)に対応させて"0"にする。
【0098】
すなわち、この時点では、図16(b)左図に示すように、サブピクセルマスク144における領域11のp(1、2)が、隠面消去後のZ4に対応した領域となり、領域10のp(1、4)、p(2、1)、p(2、3)、p(3、2)、p(3、4)、p(4、1)、p(4、3)が隠面消去後のZ2に対応した領域となり、これらの領域10、11のp(1、2)、p(1、4)、p(2、1)、p(2、3)、p(3、2)、p(3、4)、p(4、1)、p(4、3)がLUTの要素領域(1)に対応した領域となる。また、領域12のp(1、1)、p(1、3)、p(2、2)、p(2、4)、p(3、1)、p(3、3)、p(4、2)、p(4、4)が隠面消去後のZ5に対応した領域(新たなピクセル書き込み可能な空領域)となり、これら領域12がLUTの要素領域(0)に対応した領域とされる。
【0099】
論理和演算部99からは、Z2及びZ4に対応する領域が"1"で、残りの領域が"0"のサブピクセルマスク(Mbuf)が出力される。すなわち、この時のサブピクセルバッファ68は、図16(c)左図に示すサブピクセルバッファ146のように、領域3のp(1、2)、p(1、4)、p(2、1)、p(2、3)、p(3、2)、p(3、4)、p(4、1)、p(4、3)に"1"が描画され、残りの領域2のp(1、1)、p(1、3)、p(2、2)、p(2、4)、p(3、1)、p(3、3)、p(4、2)、p(4、4)に"0"が格納された状態となる。
【0100】
カラーコンポジットブロック77は、選出コントロール信号BSに基づき、Z2及びZ4に対応するカラー値であるCr1とCr2が合成部106へ送られ、一方、Z5に対応するカラー値C5がそのまま出力される。合成部106は、下記式に示すように、隠面消去後のZ2の領域数「7」に対応してCr1を7倍した値と、隠面消去後のZ4にの描画領域数「1」に対応してCr2を1倍した値とを加算して平均する演算式により、新たな合成カラー値であるCr3を算出する。
Cr3=(Cr1*7+Cr2*1)/8
これにより、図16(c)左図に示すように、サブピクセルバッファ146は、領域3のp(1、2)、p(1、4)、p(2、1)、p(2、3)、p(3、2)、p(3、4)、p(4、1)、p(4、3)に"1"が描画され、領域2のp(1、1)、p(1、3)、p(2、2)、p(2、4)、p(3、1)、p(3、3)、p(4、2)、p(4、4)に"0"が格納される。また、カラー合成後のLUT147は、図16(c)右図に示すように、要素領域(1)にサブピクセルバッファ146の領域3に対応したCr3とZ2の値が登録され、一方、要素領域(0)にサブピクセルバッファ146の領域2に対応したC5とZ5が登録される。
【0101】
[他の例]
次に、本発明の特徴的な描画処理を汎用のコンピュータと描画処理プログラムとの協働により実施する場合の例を図17及び図18を参照して説明する。
図17は、このコンピュータの主要部の構成例であり、図18は、描画処理プログラムとの協働によって、当該コンピュータのCPU223が実行する処理の手順図である。
【0102】
図17において、記憶部226は、例えばハードディスク及びそのドライブからなる。記憶部226には、オペレーティングシステムプログラムと、例えばCD−ROM、DVD−ROM等の記録媒体から取り込まれたり、通信回線を介して取り込まれた本発明の描画処理プログラム227と、ポリゴン描画のための図形情報、ポリゴンの色及び仮想視点からの奥行き方向の距離を表すZ値等のピクセル属性、模様等を決定するためのテクスチャ等の各種のデータ228等が記憶されている。
【0103】
通信部221は、例えば、アナログ公衆電話回線に接続するためのモデム、ケーブルテレビジョン網に接続するためのケーブルモデム、ISDN(総合ディジタル通信網)に接続するためのターミナルアダプタ、ADSL(Asymmetric Digital Subscriber Line)に接続するためのモデム等のように、外部システムないし装置とデータ通信を行うための通信デバイスである。通信IF部222は、通信部221と内部バス(BUS)との間でデータの受け渡しを可能とするためのプロトコル変換等を行うインターフェイスデバイスである。入力部233は、例えばキーボードやマウス、タッチパッド等の入力装置であり、ユーザIF部232は、入力部233からの信号を内部に供給するためのインターフェイスデバイスである。ドライブ部235は、CD−ROMやDVD−ROM等のディスク媒体251から描画処理プログラム等の各種のプログラム及び/又はデータを読み出し可能等ライブ装置である。ドライブIF部234は、ドライブ部235からの信号を内部に供給するためのインターフェイスデバイスである。表示部237は、例えばCRT(陰極線管)や液晶等の表示デバイスであり、表示ドライブ部236は表示部237を表示駆動させるドライブデバイスである。
【0104】
CPU223は、記憶部226に記憶されているオペレーティングシステムその他のプログラム227に基づいて当該パーソナルコンピュータの全動作を制御する。ROM224は、例えばフラッシュメモリ等の書き換え可能な不揮発性メモリからなり、当該コンピュータのBIOS(Basic Input/Output System)及び各種の初期設定値が記憶されている。RAM225は、記憶部226のハードディスクから読み出されたプログラムの一部及びデータが適宜ロードされ、また、サブピクセルバッファ、ピクセルバッファ(カラーバッファ、Zバッファ)を有する描画バッファとして用いられる。
【0105】
CPU223は、記憶部226のハードディスクから読み出されてRAM225にロードされた描画処理プログラム227を実行することにより、図18の手順で、前述した描画処理と同様の動作を行う。
【0106】
<ステップS21>RAM225上の描画バッファに新規ピクセル(サブピクセル)を投入してサブピクセルマスクを求める。
<ステップS22>描画バッファ内のピクセルバッファ内のすべてのZ値と投入ピクセルのZ値を比較し、サブピクセルバッファのサブピクセル描画領域と投入ピクセルによるサブピクセルマスクの領域のうちで後方となる個所のデータを論理積演算し、さらに、サブピクセルバッファの全領域について得られた論理積演算結果を論理和演算したものを上書き用のサブピクセルマスクとして生成する。ここまでの処理は、図4の隠面消去ブロック75における隠面消去処理に対応している。
【0107】
<ステップS23>隠面消去処理後のサブピクセルマスクを、サブピクセルバッファに上書きし、そのサブピクセルバッファにおいて描画すべきサブピクセルのピクセル属性の種類がピクセルバッファの要素領域数を超えるかどうか検証する。このステップS23の処理において、要素領域数を越える場合、CPU223は、処理をステップS24へ進め、一方、要素領域数を越えない場合にはステップS28へ処理を進める。
【0108】
<ステップS24>ピクセルバッファのピクセル属性と投入されたサブピクセルのピクセル属性の中で最も近似するものを検出する。最も近似するピクセル属性の検出は、前述したように、Z値の比較の他、カラー輝度の比較、R、G、B各値の比較等がある。処理を簡略化する観点からは、Z値の比較を行い、例えばZ値の差分(絶対値)の少ない組合せを特定する。
【0109】
<ステップS25>最も近似するサブピクセルに対応するカラー値を1つに統合する。ここで、最も近似するとして検出された一方のサブピクセルのカラー値をCA、他方のサブピクセルのカラー値をCBとし、また、一方のカラー値のサブピクセル数をNA、他方のカラー値のサブピクセル数をNBとした場合、CPU223は、合成カラー値NCを下記の演算式により求める。
NC=(CA×NA+CB×NB)/(NA+NB)
【0110】
<ステップS26>合成カラー値に付加してピクセルバッファに登録する1つの代表Z値を選出する。ここでは、サブピクセル数が多い方のカラー値に対応するZ値を代表Z値として選出する。
<ステップS27>カラー合成に際しては、ピクセルバッファの2つの要素領域に一時的にカラー値を格納し、それら一時的に格納されたカラー値を統合した後に、何れか一方の要素領域にその合成カラー値を登録した後、他方の要素領域を空領域に戻す。なお、投入ピクセルのカラー値と要素領域から読み出したカラー値とを合成する場合、CPU223は、投入ピクセルに一旦合成カラー値を代入した後に要素領域を空領域に戻す。
<ステップS28>ピクセルバッファの空領域を選択し、合成カラー値と代表Z値とを登録する。
【0111】
このように、本発明では、描画すべき新規ピクセルがあるときにその新規ピクセルのピクセル属性を登録するための空領域がピクセルバッファに存在するかどうかを検証し、空領域が存在しないときは当該新規ピクセルのピクセル属性及び既登録の1又は複数のピクセル属性を相互に比較してピクセル属性が最も近似する複数のピクセル同士を統合するようにしたので、高解像度の画像を描画する場合であっても、予め用意しておくピクセルバッファの必要容量を小さくしつつ、色破綻を最小限に抑えた略々正確な色を安定的に再現することができる。そのため、少ないリソースで良質のアンチエイリアシングを実現することができるようになる。
また、従来のアンチエイリアシングのように高速メモリアクセスを行う必要がなく、しかも描画方向の制約もないので、低コストの描画処理が可能になる。
【0112】
なお、上述した説明は、本発明の実施の一例である。このため、本発明は上述した実施形態に限定されることなく、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能である。
例えば、本実施形態では、ピクセル属性同士を比較して、ピクセルが近似しているかどうかを判定する場合の例を示したが、ピクセル属性以外の要素により、ピクセルが近似しているかどうかを判定することも可能である。例えば、バッファに描画されているピクセル同士を比較の対象としたり、ピクセルの数が多いか少ないかのみを判定の要素とすることも可能である。ピクセルの統合に際しても、新規ピクセル(あるいは新規サブピクセル)と既に描画されているピクセルとを単純に比較し、描画されるときに最も多くなるピクセルを統合の相手とすることも可能である。
ピクセル属性を採用する場合であっても、本実施形態では、カラー値とZ値とを採用した場合の例を示したが、α値、輝度値、ベクトル値、法線、テクスチャ歪値を採用した場合も、ほぼ同様の手順で本発明を実施することができるものである。また、カラー値等を他の方法で求め、α値等だけ本発明の手法によって求めることも可能である。
【0113】
【発明の効果】
以上の説明から明らかなように、本発明によれば、低コストでリアルタイムに高品質の描画処理を実現する仕組みを提供することができる。
【図面の簡単な説明】
【図1】 (a)は深度1ビット16ワードのサブピクセルバッファの1ピクセル分の記憶領域、(b)はピクセルバッファ(LUT)の一構成例を示す図である。(c)は深度2ビットで16ワードのサブピクセルバッファの1ピクセル分の記憶領域、(d)はピクセルバッファ(LUT)の一構成例を示す図である。
【図2】 描画処理方法の手順説明図である。
【図3】 本実施の形態の描画処理をハードウェアにより実現する場合の概略構成例を示すブロック図である。
【図4】 サブピクセルコンポジットユニットの概略構成例を示すブロック図である。
【図5】 サブピクセルコンポジットユニット内の隠面消去ブロックの一構成例を示すブロック回路図である。
【図6】 サブピクセルコンポジットユニット内のマスクコンポジット・Z選出ブロックの一構成例を示すブロック回路図である。
【図7】 サブピクセルコンポジットユニット内のカラーコンポジットブロックの一構成例を示すブロック回路図である。
【図8】 サブピクセルマスクとサブピクセルバッファの各領域の説明に用いる図である。
【図9】 初期状態のサブピクセルバッファの1ピクセル分の記憶領域とピクセルバッファ(LUT)を示す図である。
【図10】 一例のポリゴンとそのポリゴンのエッジ部分を含むピクセルから生成されるサブピクセルマスクの説明に用いる図である。
【図11】 図10のポリゴンのピクセルから生成されたサブピクセルマスクが投入されたときのサブピクセルバッファとLUTの状態とサブピクセルコンポジットユニットの動作説明に用いる図である。
【図12】 図11のカラー合成後に新たにサブピクセルマスクが投入されたときのサブピクセルバッファとLUTの状態とサブピクセルコンポジットユニットの動作説明に用いる図である。
【図13】 図12のカラー合成後に新たにサブピクセルマスクが投入されたときのサブピクセルバッファとLUTの状態とサブピクセルコンポジットユニットの動作説明に用いる図である。
【図14】 図13のカラー合成後に新たにサブピクセルマスクが投入されたときのサブピクセルバッファとLUTの状態とサブピクセルコンポジットユニットの動作説明に用いる図である。
【図15】 図14のカラー合成後に新たにサブピクセルマスクが投入されたときのサブピクセルバッファとLUTの状態とサブピクセルコンポジットユニットの動作説明に用いる図である。
【図16】 図15のカラー合成後に新たにサブピクセルマスクが投入されたときのサブピクセルバッファとLUTの状態とサブピクセルコンポジットユニットの動作説明に用いる図である。
【図17】 本実施の形態の描画処理をソフトウェアにより実現する場合の構成例を示すブロック図である。
【図18】 本実施の形態のグラフィック描画処理プログラムを、コンピュータのCPUが実行する場合の処理の流れを示すフローチャートである。
【符号の説明】
50…ジオメトリプロセッサ、51…メモリ、52…レンダリングプロセッサ、53…テクスチャメモリ、54…ディスプレイコントローラ、55…ディスプレイ、56…CPU、57…ドライブユニット、58…通信ユニット、61…ポリゴンセットアップユニット、62…ラスタライザユニット、63…サブピクセルラスタライザ、64…ピクセルラスタライザ、65…カラーコンポジットユニット、66…サブピクセルコンポジットユニット、67…フレームバッファ、68…サブピクセルバッファ、69…カラーバッファ、70…Zバッファ、71…ブレンドユニット、75…隠面消去ブロック、76…マスクコンポジット・Z選出ブロック、77…カラーコンポジットブロック
Claims (24)
- ディスプレイの表示領域に対応するピクセル描画領域を有するバッファと、前記ディスプレイへの表示対象となるピクセルを前記ピクセル描画領域に描画するプロセッサとを有するコンピュータ製品において、
前記プロセッサが、
描画すべき新規ピクセルがあるときに、その新規ピクセルと前記バッファに描画されているピクセルとを含む複数のピクセルの特徴を相互に比較し、その特徴が最も近似するピクセルの組合せを検出する処理、
検出した組合せのピクセルの特徴を統合する処理を実行することを特徴とする、
描画処理方法。 - ディスプレイの表示領域に対応するピクセル描画領域を有する第1バッファと、ピクセルの特徴を表すピクセル属性が登録される第2バッファと、前記ディスプレイへの表示対象となるピクセルのピクセル属性を前記第2バッファに登録するとともに登録されたピクセル属性に従って当該ピクセルを前記ピクセル描画領域に描画するプロセッサとを有するコンピュータ製品において、
前記プロセッサが、
描画すべき新規ピクセルがあるときにその新規ピクセルのピクセル属性を登録するための空領域が前記第2バッファに存在するかどうかを検証する処理、
前記空領域が前記第2バッファに存在しないときは当該新規ピクセルのピクセル属性及び既登録の1又は複数のピクセル属性を相互に比較してピクセル属性が最も近似する複数のピクセルを検出する処理、
検出した複数のピクセルのピクセル属性を統合する処理を実行することを特徴とする、
描画処理方法。 - 統合されたピクセル属性がいずれも既登録である場合は既登録領域の少なくとも一つに前記新規ピクセルのピクセル属性又は統合されたピクセル属性を登録することを特徴とする、
請求項2記載の描画処理方法。 - 前記新規ピクセルの描画時に、前記第1バッファ内に描画を要しないピクセル描画領域が残るときは、前記第2バッファへのピクセル属性の新たな登録を阻止することを特徴とする、
請求項2記載の描画処理方法。 - 前記新規ピクセルの描画時に、前記第2バッファに空領域が存在し且つ前記第1バッファ内に描画を要しないピクセル描画領域が残るときは、当該第1バッファにおける当該残った領域以外のピクセル描画領域のピクセル属性を統合することを特徴とする、
請求項2記載の描画処理方法。 - 前記ピクセル属性に、所定位置からの奥行きを表すZ値を含めておき、前記プロセッサが、前記検証に先立ち、前記新規ピクセルのZ値と既登録のZ値とを比較して、前記ディスプレイの表示画面から見て相対的に後方に位置することになるピクセルを検出し、検出したピクセルが前記表示画面に表示されないようにする隠面消去処理を実行することを特徴とする、
請求項2記載の描画処理方法。 - 前記ピクセル属性に、所定位置からの奥行きを表すZ値を含めておき、前記プロセッサが、そのZ値が最も近似する複数のピクセルの他のピクセル属性を、各々のピクセル数に応じた分配比率で一つの統合ピクセル属性に統合することにより前記統合する処理を実行することを特徴とする、
請求項2記載の描画処理方法。 - 前記プロセッサは、前記統合ピクセル属性を、前記第2バッファに登録されている統合前のピクセル属性の一つに上書きすることを特徴とする、
請求項5記載の描画処理方法。 - 前記プロセッサは、Z値が最も近似する複数のピクセルのうち描画数が多い方のピクセルのZ値を一つの代表Z値として選出し、選出した代表Z値を前記統合ピクセル属性の登録領域と対応付けられたZ値の登録領域に登録することを特徴とする、
請求項8記載の描画処理方法。 - ディスプレイの表示領域に対応するピクセル描画領域を有する第1バッファと、ピクセルの特徴を表すピクセル属性が登録される第2バッファと、前記ディスプレイへの表示対象となるピクセルのピクセル属性を前記第2バッファに登録するとともに登録されたピクセル属性に従って当該ピクセルを前記ピクセル描画領域に描画するプロセッサとを有するコンピュータ製品において、
前記プロセッサが、
描画すべき新規ピクセルがあるときに、その新規ピクセルのピクセル属性と異なるピクセル属性が前記第2バッファに登録されているかどうかを検証し、ピクセル属性が登録されているときは、これらのピクセル属性を統合する処理を実行することを特徴とする、
描画処理方法。 - ディスプレイの1ピクセル毎の表示領域に対応した複数のサブピクセル描画領域を有し、個々のサブピクセル描画領域にはオーバーサンプリングにより得られたサブピクセルが描画されるサブピクセルバッファと、サブピクセルの所定位置からの奥行きを表すZ値を含むピクセル特徴を表すピクセル属性を登録するためのピクセルバッファと、前記ディスプレイへの表示対象となるサブピクセルのピクセル属性を前記ピクセルバッファに登録するとともに登録されたピクセル属性に従って当該サブピクセルを前記サブピクセル描画領域に描画するプロセッサとを有するコンピュータ製品において、
前記プロセッサが、
描画すべき新規サブピクセルがあるときに、その新規サブピクセルのZ値と前記ピクセルバッファに登録されているZ値とを比較して、前記ディスプレイの表示画面から見て相対的に後方に位置することになる、前記新規サブピクセルを含むサブピクセルを検出するとともに、検出したサブピクセルを描画するためのサブピクセル描画領域についてはその部分をマスクしたサブピクセルマスクを生成する処理、
前記生成したサブピクセルマスクにおいて描画すべきサブピクセルがあるときはそのサブピクセルについてのピクセル属性を登録するための空領域が存在するかどうかを検証する処理、
前記空領域が存在しないときは新規サブピクセルのピクセル属性と既登録のものとを相互に比較してピクセル属性が最も近似する複数のサブピクセルを検出する処理、
検出した複数のサブピクセルのピクセル属性を統合する処理を実行し、
前記ピクセルバッファにおけるピクセル属性の登録領域の増加を抑制することを特徴とする、
描画処理方法。 - 前記新規サブピクセルの描画時に、前記サブピクセルバッファ内に描画を要しないピクセル描画領域が残るときは、前記ピクセルバッファへのピクセル属性の新たな登録を阻止することを特徴とする、
請求項11記載の描画処理方法。 - 前記新規サブピクセルの描画時に、前記ピクセルバッファに空領域が存在し且つ前記サブピクセルバッファ内に描画を要しないピクセル描画領域が残るときは、当該サブピクセルバッファにおける当該残った領域以外のピクセル描画領域のピクセル属性を統合することを特徴とする、
請求項11記載の描画処理方法。 - 前記最も近似する複数のサブピクセルのピクセル属性がいずれも既登録である場合、
前記プロセッサは、これらのピクセル属性を、同じピクセル属性をもつピクセルの数に応じた分配比率で一つの統合ピクセル属性に統合するとともに、統合対象となった複数のピクセル属性のいずれか一つの登録領域に前記統合ピクセル属性を上書きし、他の登録領域に前記新規サブピクセルのピクセル属性を登録する処理を実行することを特徴とする、
請求項11記載の描画処理方法。 - 前記ピクセル属性の登録可能領域数を、それぞれ、処理対象となるサブピクセルのビット深度で定まる要素領域数を限度とすることを特徴とする、
請求項11記載の描画処理方法。 - ディスプレイの表示領域に対応するピクセル描画領域を有する第1バッファと、ピクセル特徴を表すピクセル属性が登録される第2バッファと、前記ディスプレイへの表示対象となるピクセルのピクセル属性を前記第2バッファに登録するとともに登録されたピクセル属性に従って当該ピクセルを前記ピクセル描画領域に描画するプロセッサとを有し、
前記プロセッサが、描画すべき新規ピクセルがあるときにその新規ピクセルのピクセル属性を登録するための空領域が前記第2バッファに存在するかどうかを検証し、前記空領域が前記第2バッファに存在しないときは当該新規ピクセルのピクセル属性及び既登録の1又は複数のピクセル属性を相互に比較して、ピクセル属性が最も近似する複数のピクセルを検出し、検出したピクセルのピクセル属性を統合するように動作する、
描画処理装置。 - 前記ピクセル描画領域は、前記ディスプレイの1ピクセルの表示領域に対して複数のサブピクセル描画領域に分割されており、
個々のサブピクセル描画領域にはオーバーサンプリングにより得られたサブピクセルが描画されるにようになされており、
前記ピクセル属性は、所定位置からの奥行きを表すZ値を含むものであり、
前記第2バッファには、少なくとも前記Z値を登録するためのZバッファが形成されている、
請求項16記載の描画処理装置。 - 前記プロセッサは、前記新規ピクセルのZ値及び前記Zバッファに登録されているすべてのZ値を相互に比較して相対的に後方に位置することになる、新規サブピクセルを含むサブピクセルを描画するためのサブピクセル描画領域を検出し、検出したサブピクセル描画領域についてはその部分をマスクしたデータを生成するように動作する、
請求項17記載の描画処理装置。 - 前記プロセッサは、前記新規ピクセルを構成する全サブピクセルについて生成した前記データを論理和演算することにより得られたサブピクセルマスクを前記ピクセル描画領域への上書き対象データとするように動作する、
請求項18記載の描画処理装置。 - 一方のバンクがピクセル描画用の描画バッファとなるときは他方のバンクが描画済みのピクセルを前記ディスプレイに表示するための表示バッファに切り替わる2バンク構成のフレームバッファを有し、
前記第1バッファ及び第2バッファが前記描画バッファに一時的に形成されるように構成されている、
請求項16記載の描画処理装置。 - ディスプレイの表示領域に対応するピクセル描画領域を有する第1バッファと、ピクセル特徴を表すピクセル属性が登録される第2バッファとを内蔵し又はこれらのバッファにアクセス可能に構成され、
前記ディスプレイへの表示対象となるピクセルのピクセル属性を前記第2バッファに登録するとともに登録されたピクセル属性に従って当該ピクセルを前記ピクセル描画領域に描画するプロセッサを搭載した半導体デバイスであって、
前記プロセッサが、
描画すべき新規ピクセルがあるときにその新規ピクセルのピクセル属性を登録するための空領域が前記第2バッファに存在するかどうかを検証し、
前記空領域が前記第2バッファに存在しないときは当該新規ピクセルのピクセル属性及び既登録の1又は複数のピクセル属性を相互に比較してピクセル属性が最も近似する複数のピクセルを検出し、
検出した複数のピクセルのピクセル属性を統合するように動作する、
半導体デバイス。 - 前記プロセッサが、デバイス外部に存在する他の処理手段との協働により前記動作を行う、
請求項21記載の半導体デバイス。 - 記憶装置を備えディスプレイが接続されるコンピュータが読み取り可能な描画処理プログラムであって、
前記記憶装置に前記ディスプレイの表示領域に対応するピクセル描画領域を有する第1バッファと、ピクセル特徴を表すピクセル属性が登録される第2バッファとを形成させ、さらに、前記コンピュータが搭載するプロセッサに、前記ディスプレイへの表示対象となるピクセルのピクセル属性を前記第2バッファに登録するとともに登録されたピクセル属性に従って当該ピクセルを前記ピクセル描画領域に描画する描画機能を付与するとともに、
前記プロセッサを、
描画すべき新規ピクセルがあるときにその新規ピクセルのピクセル属性を登録するための空領域が前記第2バッファに存在するかどうかを検証し、
前記空領域が前記第2バッファに存在しないときは当該新規ピクセルのピクセル属性及び既登録の1又は複数のピクセル属性を相互に比較してピクセル属性が最も近似する複数のピクセルを検出し、
検出した複数のピクセルのピクセル属性を統合する
ように動作させるための、描画処理プログラム。 - 請求項23記載の描画処理プログラムを記録してなる、コンピュータ読み取り可能な記録媒体。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002276218A JP3696584B2 (ja) | 2001-09-26 | 2002-09-20 | 描画処理方法及び装置、半導体デバイス、描画処理プログラム及び記録媒体 |
EP02021196A EP1298595A3 (en) | 2001-09-26 | 2002-09-24 | Pixel rendering |
US10/256,047 US20030059114A1 (en) | 2001-09-26 | 2002-09-25 | Rendering processing method and device, semiconductor device, rendering process program and recording medium |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001-294507 | 2001-09-26 | ||
JP2001294507 | 2001-09-26 | ||
JP2002276218A JP3696584B2 (ja) | 2001-09-26 | 2002-09-20 | 描画処理方法及び装置、半導体デバイス、描画処理プログラム及び記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003173453A JP2003173453A (ja) | 2003-06-20 |
JP3696584B2 true JP3696584B2 (ja) | 2005-09-21 |
Family
ID=26622968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002276218A Expired - Fee Related JP3696584B2 (ja) | 2001-09-26 | 2002-09-20 | 描画処理方法及び装置、半導体デバイス、描画処理プログラム及び記録媒体 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20030059114A1 (ja) |
EP (1) | EP1298595A3 (ja) |
JP (1) | JP3696584B2 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8223157B1 (en) * | 2003-12-31 | 2012-07-17 | Ziilabs Inc., Ltd. | Stochastic super sampling or automatic accumulation buffering |
JP4669334B2 (ja) * | 2005-07-06 | 2011-04-13 | 株式会社ディジタルメディアプロフェッショナル | エッジ・マルチサンプリングハイブリッドアンチエイリアス |
US8294731B2 (en) * | 2005-11-15 | 2012-10-23 | Advanced Micro Devices, Inc. | Buffer management in vector graphics hardware |
KR100803216B1 (ko) * | 2006-09-28 | 2008-02-14 | 삼성전자주식회사 | 3차원 그래픽 데이터를 저작하는 방법 및 장치 |
WO2013021525A1 (ja) * | 2011-08-11 | 2013-02-14 | パナソニック株式会社 | 画像処理装置、画像処理方法、プログラム、及び集積回路 |
AU2012258407A1 (en) * | 2012-11-27 | 2014-06-12 | Canon Kabushiki Kaisha | Method, system and apparatus for determining area of a pixel covered by a scalable definition for a character |
CN103886808B (zh) * | 2014-02-21 | 2016-02-24 | 北京京东方光电科技有限公司 | 显示方法和显示装置 |
CN113298918B (zh) * | 2020-02-24 | 2022-12-27 | 广东博智林机器人有限公司 | 一种重叠区域的异色显示方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03138783A (ja) * | 1989-10-25 | 1991-06-13 | Victor Co Of Japan Ltd | 陰面消去回路 |
US5696539A (en) * | 1993-12-08 | 1997-12-09 | Hewlett-Packard Company | Method for matching colors of data displayed on connected computer systems |
JPH08221593A (ja) * | 1995-02-14 | 1996-08-30 | Hitachi Ltd | 図形表示装置 |
US5818456A (en) * | 1996-04-30 | 1998-10-06 | Evans & Sutherland Computer Corporation | Computer graphics system with adaptive pixel multisampler |
US6204859B1 (en) * | 1997-10-15 | 2001-03-20 | Digital Equipment Corporation | Method and apparatus for compositing colors of images with memory constraints for storing pixel data |
US6720964B1 (en) * | 1998-08-27 | 2004-04-13 | Ati International Srl | Method and apparatus for processing portions of primitives that are being rendered |
US6633297B2 (en) * | 2000-08-18 | 2003-10-14 | Hewlett-Packard Development Company, L.P. | System and method for producing an antialiased image using a merge buffer |
US6567099B1 (en) * | 2000-11-15 | 2003-05-20 | Sony Corporation | Method and system for dynamically allocating a frame buffer for efficient anti-aliasing |
-
2002
- 2002-09-20 JP JP2002276218A patent/JP3696584B2/ja not_active Expired - Fee Related
- 2002-09-24 EP EP02021196A patent/EP1298595A3/en not_active Withdrawn
- 2002-09-25 US US10/256,047 patent/US20030059114A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JP2003173453A (ja) | 2003-06-20 |
EP1298595A2 (en) | 2003-04-02 |
EP1298595A3 (en) | 2005-04-27 |
US20030059114A1 (en) | 2003-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7348996B2 (en) | Method of and system for pixel sampling | |
US6876360B2 (en) | Image generation method and device used thereof | |
US7253820B2 (en) | Method and system for dynamically allocating a frame buffer for efficient anti-aliasing | |
JP3761085B2 (ja) | 画像処理装置及びその構成部品、レンダリング処理方法 | |
US7616202B1 (en) | Compaction of z-only samples | |
JP2005122361A (ja) | 画像処理装置及び方法、コンピュータプログラム、記録媒体 | |
JP2001005989A (ja) | アンチエイリアシング方法及びこれを用いた画像処理装置 | |
JP3529759B2 (ja) | 画像処理プログラム、画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体、プログラム実行装置、画像処理装置、及び画像処理方法 | |
US6925204B2 (en) | Image processing method and image processing apparatus using the same | |
EP1480171B1 (en) | Method and system for supersampling rasterization of image data | |
JP3696584B2 (ja) | 描画処理方法及び装置、半導体デバイス、描画処理プログラム及び記録媒体 | |
US6441818B1 (en) | Image processing apparatus and method of same | |
US7495672B2 (en) | Low-cost supersampling rasterization | |
KR20080100854A (ko) | 렌더링 처리 방법, 렌더링 처리 장치, 및 렌더링 처리 프로그램이 기록된 컴퓨터 판독가능 기록 매체 | |
US20030020712A1 (en) | Rendering process | |
JP4148377B2 (ja) | 画像生成装置、画像生成方法、画像生成プログラム記録媒体、画像合成装置、画像合成方法、および画像合成プログラム記録媒体 | |
EP1431920B1 (en) | Low-cost supersampling rasterization | |
US6937251B2 (en) | Method and system for improving color quality of three-dimensional rendered images | |
JP3626709B2 (ja) | アンチエイリアス処理装置 | |
JP2007133466A (ja) | 擬似アンチエリアス描画装置およびそれを実現する集積回路 | |
JP2002251630A (ja) | コンピュータに実行させるための描画処理プログラム、コンピュータに実行させるための描画処理プログラムを記録した記録媒体、プログラム実行装置、描画装置及び方法 | |
JPH11339069A (ja) | 画像合成装置および画像合成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050622 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050628 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050629 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080708 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090708 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090708 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100708 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110708 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110708 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120708 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120708 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130708 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |