(57)【特許請求の範囲】
【請求項１】
三次元座標及びカラーデータを有する複数のポリゴンデータをデジタル画像として二次元の表示画面に表示する画像処理装置であって、前記ポリゴンデータを前記表示画面を構成するピクセル毎のピクセルデータとするレンダリング部と前記ピクセルデータに基づいて各ピクセルの前記表示画面に表示される色を決定するブレンディング部とを備える画像処理装置、におけるアンチエイリアシング方法において、
前記レンダリング部が、各ポリゴンの描画部位が前記１ピクセル内で占める領域をサブピクセル単位で表したサブピクセルマスクを生成して前記ピクセルデータに付加し、
前記ブレンディング部が、一組の前記サブピクセルマスクと対応する前記カラーデータを複数組にした、データセット群に基づいて、前記各ピクセルの表示色を決定し、
前記ピクセル単位の表示カラーの決定は、
前記データセット群から、一のピクセルを構成するサブピクセルの数よりも少ないn個の最終カラーデータと、当該最終カラーデータがピクセル内に占める領域を表す、一のピクセルを構成するサブピクセルの数よりも少ないn個の最終サブピクセルマスクのデータセット群を決定し、
決定された当該n個の最終カラーデータと当該n個の最終サブピクセルマスクのデータセット群を合成して行われる
ことを特徴とするアンチエイリアシング方法。
【請求項２】
請求項１において、
前記それぞれn個の最終カラーデータと最終サブピクセルマスクの決定処理は、
対象としているピクセルに対して有効な複数の前記ピクセルデータの中の一に含まれる一組の入力カラーデータと入力サブピクセルマスクの値と、前記ブレンディング部が備えるバッファに格納されるn組のバッファカラーデータとバッファマスクのそれぞれの値との間で、所定の処理を行い新たにn組のカラーデータとサブピクセルマスクを生成する第一のステップと、
前記n組のバッファカラーデータとバッファマスクのそれぞれの値を、前記第一のステップで新たに生成された前記n組のカラーデータとサブピクセルマスクの値に置き換える第二のステップと、
前記第一のステップ及び前記第二のステップを、対象としているピクセルに対して有効な前記ピクセルデータがなくなるまで繰り返す第三のステップと、
前記第三のステップが終了した時点の前記n組のバッファカラーデータとバッファマスクの値を、前記それぞれn個の最終カラーデータと最終サブピクセルマスクの値とする第四のステップを有する
ことを特徴とするアンチエイリアシング方法。
【請求項３】
請求項２において、
前記第一のステップは、
前記n個のバッファカラーデータのそれぞれの値と前記入力カラーデータの値を合成して、新たにn個の新規カラーデータを生成するカラー合成処理のステップと、
前記n個のバッファマスクのそれぞれと前記入力サブピクセルマスクを論理演算して、新たに２n個の新規サブピクセルマスクを生成するマスク合成処理のステップと、
前記n個のバッファカラーデータと前記n個の新規カラーデータを合わせた２n個のカラーデータと、前記２n個の新規サブピクセルマスクからなる新規２n組のカラーデータとサブピクセルマスクのデータセット群から、カラーデータがピクセル内に占める領域の広い順番にn組のデータセット群を決定する統合・選択処理のステップを有する
ことを特徴とするアンチエイリアシング方法。
【請求項４】
請求項３において、
前記マスク合成処理のステップは、
前記バッファマスクと前記入力サブピクセルマスクの論理積と、前記バッファマスクと前記入力サブピクセルマスクの反転の論理積をとることによって、一の前記バッファマスクに対して二の新規サブピクセルマスクを生成する
ことを特徴とするアンチエイリアシング方法。
【請求項５】
請求項３において、
前記統合・選択処理のステップは、
前記マスク合成処理のステップで生成された２n個のサブピクセルマスクのうち、対応するカラーデータが同一のものが合った場合には、それらのサブピクセルマスクの論理和をとって一のサブピクセルマスクにまとめる統合処理のステップと、
前記統合処理のステップの後に残ったサブピクセルマスクのうち、ピクセル内を占める領域の広いサブピクセルマスクから順番にn個のサブピクセルマスクとそれに対応するカラーデータを選ぶ選択処理のステップを有する
ことを特徴とするアンチエイリアシング方法。
【請求項６】
三次元座標及びカラーデータを有する複数のポリゴンデータをデジタル画像として二次元の表示画面に表示する画像処理装置において、
各ポリゴンの描画部位が前記表示画面を構成する各ピクセル内で占める領域をサブピクセル単位で表したサブピクセルマスクを生成するサブピクセルマスク生成部と、
１組の前記サブピクセルマスクと対応する前記カラーデータを複数組にしたデータセット群に基づいて、前記ピクセル単位に前記表示画面に表示されるカラーを決定するブレンディング部を有し、
前記ブレンディング部は、
前記データセット群から、一のピクセルを構成するサブピクセルの数よりも少ないn個の最終カラーデータと、当該最終カラーデータがピクセル内に占める領域を表すn個の最終サブピクセルマスクを決定し、
当該それぞれn個の最終カラーデータと最終サブピクセルマスクを合成する
ことを特徴とする画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、アンチエイリアシング方法及びこれを用いた画像処理装置に関し、特に大きな処理スピードの低下や装置規模の増大を起こすことなく、高品質な画像表示を可能とするアンチエイリアシング方法に関する。
【０００２】
【従来の技術】
近年、ゲーム装置などのコンピュータグラフィックス技術を用いた画像処理装置において、三次元座標を持つ図形をCRTなどの表示素子（ピクセル）の羅列からなる二次元画面に、高品質かつ高速に表現し、仮想現実感を高めることが望まれている。
【０００３】
かかる画像処理装置において、表示対象となる三次元空間内の図形はポリゴン（多角形面）の集積と考えられ、そのポリゴンがもつ属性データ（以下、ポリゴンデータと呼ぶ）を用いて最終的な二次元の画像を生成、表示する。
【０００４】
通常、ポリゴンデータは、ポリゴンの頂点データであり、各頂点の所定の三次元空間における三次元座標、頂点カラー、テクスチャマップ座標アドレス、頂点透明度及び頂点の法線ベクトル等を有する。
【０００５】
図１４に画像処理装置の概略構成図を示す。以下、画像が画面に表示されるまでの一般的な処理の流れを説明する。図１４において、CPU１は画像処理装置の全体の機能を制御しており、ゲームシーケンスの管理などを行う。RAM７には、CPU１で使用するプログラム、データ及びディスプレイリスト等が格納される。
【０００６】
前記ポリゴンデータは、ジオメトリ演算部２に入力され、ここで座標変換、透視変換などの処理が施されて、表示画面に対応した二次元データに変換される。変換されたポリゴンデータは、ポリゴンバッファ８に格納される。
【０００７】
次に、陰面処理部３において、前記ポリゴンデータを用いて陰面消去の処理（以下、陰面処理と呼ぶ）が行われる。二次元の画面上において、同じ場所に複数のポリゴンが重なっている場合には、視点から実際にどのポリゴンが見えるのかを判定する必要がある。陰面処理では、かかる判定を行い、各ポリゴンの表示される範囲を決定する。
【０００８】
続くレンダリング部４では、陰面処理の結果を受けてポリゴンデータをピクセル単位のデータへ変換する。この処理をレンダリングと呼ぶ。ピクセル単位に変換されたデータ（以下、ピクセルデータと呼ぶ）に対し、テクスチャ部５及び陰影付け部６において、それぞれテクスチャマッピング及び陰影付けの処理を行う。テクスチャバッファ９には、テクスチャデータが格納されており、ピクセルのテクスチャマップ座標アドレスに対応するデータを供給し、ピクセル毎にテクスチャマッピングが行われる。
【０００９】
ここまでの過程で、各ポリゴンについて、表示カラーなどピクセル単位でのデータが決定される。これらのデータを用いてブレンディング部１０では、最終的に画面に表示されるカラーをピクセル単位で確定する。すなわち、複数のポリゴンが一つのピクセルを共有している場合（当該ピクセルに複数の有効なピクセルデータがある場合）でピクセルが半透明な時などには、それぞれのピクセルが持つα値からカラーデータを合成し、そのピクセルの最終的な表示カラーを決定している。
【００１０】
ピクセル単位で生成された画像データは、フレームバッファ１１に書き込まれる。フレームバッファ１１は、それらのデータをフレーム画像として表示装置に送り、最終的な画像が表示される。
【００１１】
以上説明したような処理工程を経て、画像がCRT等に表示されているが、このようなデジタル化された画像は、ピクセルの集合（矩形の集合）により画像を表現しているため、元来、エイリアシングという問題を含んでいる。この様子を、図１５に示している。
【００１２】
図１５は、図中(a)に示される図形を表現しようとする場合の例を示している。内部的には(a)に示されるように理論上の正しい形状の情報を有していても、それをピクセルの集合として表現した場合に、三角形ポリゴンのエッジなど斜めの直線は、(b)に示すように階段状の表示となってしまう。これは、内部的には（理論上は）１ピクセル内でもカラーが変化しているピクセルの全体を、一つのカラーで表現しているためで、デジタル画像がピクセルの集合で表現される限り、本質的には解消できない問題である。
【００１３】
特に、そのための処理を施さずに、従来行われていた様に、ピクセルのカラーを、その中の一つの代表点（例えばピクセルの中心点）が内部的にもつカラーとして処理している場合には、前述した階段状の表示が顕著となる。
【００１４】
しかしながら、かかる問題は、ピクセルの表示カラーを、そのピクセルが元々内部的にもつ複数のカラーデータの合成とすることにより、実質上（視覚的に）問題にならない程度に解消することができる。このための処理がアンチエイリアシングと呼ばれている。図１５において、(c)の図形が、アンチエイリアシング処理された場合の表示画像の一例である。
【００１５】
このようなアンチエイリアシング処理を行うことが、現実感の高い、高品質な画像生成のための一つの重要な要素となる。
【００１６】
【発明が解決しようとする課題】
したがって、ゲーム装置などの画像処理装置においては、高精細モニタを使用せずに擬似的に高画像が得られるアンチエイリアシング機能が不可欠である。
【００１７】
しかしながら、アンチエイリアシング処理は、一つのピクセルのカラーを決定するにあたり、そのピクセルに関与する複数のカラー、及びそれらカラーのピクセル内での位置情報などを生成し、かつそれらを用いて一定の計算を行う必要がある。そのため、アンチエイリアシング処理は、一般に重たい処理であり、高品質を得るためには、処理時間や装置規模の増加を避け得ないとされてきた。
【００１８】
かかる課題を解決するために、これまでも様々な工夫がされているが、いずれの手法においても問題点が存在している。パーソナルコンピュータなどで一般的に使用されている半透明エッジの手法は、ポリゴンのエッジが存在するピクセルにおいて、そのポリゴンが占める割合から透明度を決定しカラーの合成を行う手法である。
【００１９】
この手法は、処理スピードや装置規模の面では優れているが、ポリゴンをそのエッジ部ですべて半透明として扱うため、上記で説明した陰面処理部３における陰面処理がエッジ部で正確に行われないこととなり、画面の破綻するケースが多く、また背景色が残るなど品質の面で問題がある。
【００２０】
また、別の従来手法としてオーバサンプリング方式がある。この手法は、画面に表示する解像度より高い解像度で処理を行い、表示の直前で平均化して表示解像度にするものである。すなわち、表示するピクセルのサイズより小さいサイズの矩形（サブピクセル）単位で、上記で説明したフレームバッファ１１までの全処理を行う方式である。
【００２１】
この方法は、考え方がシンプルであり、上記で説明したような標準的な処理過程を殆ど変更する必要がなく、またかなり高い品質が期待できるが、データの処理量がサブピクセルの数に比例して増大するので、処理時間、装置規模の増加を避けられない。
【００２２】
上記で説明した手法のほかにもいくつかの方法が考えられてきたが、ゲーム装置として実用的な範囲で、処理スピード、画像品質及び装置規模のすべてにバランスのとれた手法はない。
【００２３】
したがって、本発明の目的は、かかる問題を鑑み、大きな処理スピードの低下や装置規模の増大を起こすことなく、高品質な画像表示を可能とするアンチエイリアシング方法及び、これを用いた画像処理装置を提供することにある。
【００２４】
【課題を解決するための手段】
上記の目的を達成するために、本発明の一つの側面は、ピクセルデータにピクセル内でポリゴンが占める領域を表すサブピクセルマスクの情報を包含させ、前記ピクセルデータに含まれる前記サブピクセルマスクとカラーデータのデータセット群に基づいて、ピクセル単位に表示カラーを決定するアンチエイリアシング方法である。従って、本発明によれば、サブピクセル単位の高品質なアンチエイリアシング処理が可能となる。
【００２５】
更に、上記の発明において、その好ましい態様は、前記ピクセル単位の表示カラーの決定が、サブピクセルの数よりも少ない複数の、カラーデータとサブピクセルマスクのデータセット群を合成して行われることを特徴とする。
【００２６】
更に、一態様として、前記表示カラーを決定する複数のカラーデータとサブピクセルマスクは、カラーデータとサブピクセルマスクに対する所定の処理が、対象としているピクセルに対して有効な前記ピクセルデータがなくなるまで繰り返されることによって得られることを特徴としている。
【００２７】
また、一態様として、前記サブピクセルマスクが、表示画面を構成する走査線毎に、走査線に稜線が交差する複数のポリゴンを、走査線のX軸方向にポリゴンの特定位置を基準にソートし、前記ソートされたポリゴンを更にポリゴンのZ座標値を基準にソートすることにより行われる陰面処理をサブピクセル単位で行い、前記サブピクセル単位の陰面処理の結果をピクセル単位のデータにする過程で、生成されることを特徴とする。
【００２８】
上記の目的を達成するために、本発明の別の側面は、サブピクセルマスクを生成し、その情報をピクセルデータに付加させるサブピクセルマスク生成部と、前記ピクセルデータに含まれる前記サブピクセルマスクとカラーデータのデータセット群を処理し、ピクセル単位に表示カラーを決定するブレンディング部を有することを特徴とする画像処理装置である。従って、本発明によれば、サブピクセル単位の高品質なアンチエイリアシング処理が可能となる。
【００２９】
更に、上記の発明において、その好ましい態様は、前記画像処理装置が、サブピクセル数より少ない数のカラーバッファ及びマスクバッファを有することを特徴とする。
【００３０】
また、一態様として、前記サブピクセルマスク生成部は、表示画面を構成する走査線毎に、走査線に稜線が交差する複数のポリゴンを、走査線のX軸方向にポリゴンの特定位置を基準にソートし、前記ソートされたポリゴンを更にポリゴンのZ座標値を基準にソートすることにより行われる陰面処理をサブピクセル単位で行う陰面処理部と、前記陰面処理部の処理結果をピクセル単位のデータにするレンダリング部を有すること特徴とする。
【００３１】
更に、一態様として、前記陰面処理部が、Yソータと、サブライン分割部と、一の走査線内に存在するサブラインの数と同数のXソータと、前記Xソータと同数のZソータで構成されており、前記レンダリング部が、サブライン待ち合わせ・ピクセル化処理部を有することを特徴とする。
【００３２】
本発明の更なる目的及び、特徴は、以下に説明する発明の実施の形態から明らかになる。
【００３３】
【発明の実施の形態】
以下添付図に従い本発明の実施の形態を説明する。しかしながら、かかる実施の形態例が、本発明の技術的範囲を限定するものではない。なお、図において、同一又は類似のものには同一の参照番号又は、参照記号を付して説明する。
【００３４】
本発明が適用される画像処理装置における全体の主要な処理工程は、従来のものと同一であるため、以下の説明においても図１４を使用する。また、本発明の特徴となる点を有する工程以外の説明については、前記した従来技術の説明と同等であるのでここでは省略する。
【００３５】
本発明が適用される画像処理装置は、図１４において、陰面処理部３及びレンダリング部４と、ブレンディング部１０にその特徴を有している。
まず、第一の特徴である陰面処理及びレンダリングの部分について以下に説明する。
【００３６】
図１は、本装置の図１４における陰面処理部３及びレンダリング部４を説明するためのブロック図である。従来どおり、ポリゴンデータは、ジオメトリ演算部２で二次元空間に変換され、陰面処理部３へ送られてくる。
【００３７】
ここで陰面処理が行われるが、本装置においては、陰面処理に必要なポリゴンのソート方式として、先に本発明者により出願された特願平10-132106号に記載のスキャンライン三次元ソート方式を用いている。
【００３８】
かかるソート方式の概要は、以下のとおりである。まず、表示画面の走査線（スキャンライン）毎に、そのスキャンライン上に存在するポリゴンのリストを生成し、ポリゴンの稜線とスキャンラインの交点からそのスキャンライン上のポリゴンの存在範囲（左右のエッジ）を算出する。次に、その結果から、スキャンライン毎に、リストアップされたポリゴンを、X軸方向にポリゴンの特定位置を基準にソートする。さらに、前記ソートされた順番にポリゴンの左右のエッジとZ座標値（視点からの距離）を取り出して比較し、X軸方向に順次、描画されるべきポリゴンとその範囲（描画部位）を決定し、次工程へ出力していく。この様に、スキャンライン三次元ソート方式は、スキャンライン毎に陰面処理を行い、順次描画部位を決めていく方式である。
【００３９】
この方式によれば、ピクセル単位の情報をスキャンライン単位で処理して画像の生成を行えるため、品質に比して処理を高速にすることができ、更にフレームバッファ（図１４におけるフレームバッファ１１）の小型化が可能となる。
【００４０】
本装置では、前記スキャンライン三次元ソート方式による陰面処理をサブピクセル単位で行い、各ポリゴンのピクセル単位でのサブピクセルマスクを効率よく生成することを特徴としている。ここで作成したサブピクセルマスクが後で説明するブレンディング部１０のブレンディング処理で使用され、サブピクセル単位でのアンチエイリアシングを可能としている。
【００４１】
本装置の陰面処理部３及びレンダリング部４は、図１に示すとおり、タイルジェネレータ（Yソータ）３１、サブライン分割部３２、Xソータ３３、Zソータ３４、及びサブライン待ち合わせ・ピクセル化処理部４０で構成されている。また、本装置においては、実施例として４×４のサブピクセルを使用している。図２乃至図６は、本工程における処理の内容を説明するための図である。
【００４２】
ジオメトリ演算部２で二次元空間に変換されたポリゴンデータに対して、まずタイルジェネレータ（Yソータ）３１において、前記スキャンライン三次元ソート方式によるYソートの処理が行われる。この処理は、スキャンライン（表示スクリーン面の描画するライン）毎にポリゴンを分割し、リストアップする処理である。
【００４３】
図２は、重なり合う二つのポリゴン▲１▼と▲２▼があった場合の例で、ポリゴン▲１▼がスキャンラインによってライン分割されている様子を表している。図中、ポリゴン▲２▼のライン分割の様子は図示を省いている。この段階においては、各ポリゴンが分割されただけであり、表示画面上の重なり合うポリゴンの前後関係は考慮されていない。
【００４４】
次にサブライン分割部３２において、ライン分割されたポリゴンデータがサブラインにより更に分割される。図３の中にサブライン分割の様子を示している。この例では、ピクセルの１／４のサイズのサブピクセルを想定しているため、ピクセルの高さ方向に四等分するサブライン（図３のサブライン１〜４）によりポリゴンを分割している。
【００４５】
なお、この段階においても重なり合うポリゴンの前後関係は決まっていない。よって、図中ポリゴン▲１▼とポリゴン▲２▼が重なり合っている部分においても、サブライン分割されたポリゴン▲２▼の領域が存在している。図３では、この部分について、後述するZソートの結果を表現している。
【００４６】
サブラインに分割されたポリゴンデータは、サブライン１〜４について同時に処理するために並列に配置された4つのXソータ３３によりXソートされる。Xソートとは、サブライン上に存在するポリゴンを、そのX軸方向の位置によりソートし、ポリゴン同士の位置関係、特に重なり合う状態を明確にする処理である。
【００４７】
ソートの方法は、従来のスキャンライン三次元ソート方式と同様であり、各ポリゴンの左端のX値（座標）を用いるが、このX値はサブピクセルの単位、すなわち先に説明したように４×４のサブピクセルを使用しているので０．２５ピクセルの単位で持つ。図４は、図３におけるA部の拡大図であり、１ピクセル内の様子を示している。
【００４８】
引き続きZソータ３４により、４つのサブライン毎に並列にZソートの処理を行う。Zソートとは、同じ領域を占めるポリゴンを視点からの距離（Z値）でソートし、表示画面上に描画される部位や描画の順番を決定するための処理である。
【００４９】
この処理も従来のスキャンライン三次元ソート方式と同様であり、Xソートされたサブライン分割ポリゴンをZ値によりソートしつつ、X軸エッジを描画部位に分割して出力する。その際もX軸の分割はサブピクセル単位で行う。図３がポリゴン▲１▼、▲２▼について処理した結果を表している。図５のAは、図３におけるB部の拡大図であり、３つ分のピクセルの範囲で処理結果の一例を示している。ここまでの処理でサブピクセル単位での陰面処理が完了したこととなる。
【００５０】
次にサブライン待ち合わせ・ピクセル化処理部４０において、サブライン毎に出力された描画部位のデータを同一のポリゴン毎に統合し、かつ１つのスキャンラインに存在する４つのサブラインについて、前記データを統合する。一例として図５のBに、図５のAにおけるポリゴン▲２▼について統合した結果を示している。図５のAに示すポリゴン▲２▼の各サブラインでの描画部位▲２▼−１乃至▲２▼−４が統合されて、図５のBにおける描画部位▲２▼−５を形成している。
【００５１】
次に、その結果をX軸方向にピクセル単位で再分割して、その結果を基にポリゴンデータをピクセル単位のデータ（ピクセルデータ）に変換して出力する。図５のBでは、描画部位▲２▼−５がピクセルa、b、cに分割され、どのピクセルにもポリゴン▲２▼の描画部位が含まれているため、ピクセルa、b、cの全てについてポリゴン▲２▼が存在するという情報が得られる。それに基づいて、ポリゴン▲２▼のポリゴンデータがピクセル単位のデータ（ピクセルデータ）に変換されて出力される。
【００５２】
また、前記のピクセル単位に再分割する処理の際に、ポリゴンの描画部位がピクセル内に占める領域が、サブピクセルの単位で明らかになる。図５のBにおいては、ピクセルa、b、cのそれぞれにおいて、ポリゴン▲２▼が描画されるべき部分が見て取れる。この、各ポリゴンの描画部位が１ピクセル内で占める領域をサブピクセルの単位で表した情報を、サブピクセルマスクといい、この情報がサブライン待ち合わせ・ピクセル化処理部４０において同時に生成される。生成されたサブピクセルマスクは、ピクセル単位に再分割した結果を用いて得られる前記のピクセル単位のデータ（ピクセルデータ）に属性として付加され、一緒に出力される。
【００５３】
図５のBに示す例の場合は、ピクセルa、b、cのそれぞれに対して、ポリゴン▲２▼について図６に示すサブピクセルマスクA、B、Cが生成されることになる。ここで生成されたサブピクセルマスクを含むピクセル毎の各ポリゴンデータ（ピクセルデータ）が次工程（図１若しくは図１４のテクスチャ部５）へ送られる。
【００５４】
以上、説明したような方法で、アンチエイリアシングに必要なサブピクセルマスクが生成されるが、陰面処理に前記スキャンライン三次元ソート方式を用いることにより、X軸方向の処理単位をサブピクセル単位に細かくしても処理スピードを落とすことはない。一方、Y軸方向には、処理単位を細かくした分の装置規模あるいは処理時間の増加が必要であるため、本実施例では4回路の並列処理を採用した。
【００５５】
したがって、本実施例で用いた４×４のサブピクセル単位で陰面処理を行う場合、従来方式では、１６倍の処理時間もしくは装置規模を必要とするのに対し、本実施例では4倍の装置規模で実現できることとなり、効率的なアンチエイリアシングに効果がある。また、表示する画像の内容などにより、X軸方向に偏重したアンチエイリアシングを行う場合（８×４などのサブピクセルを使用する場合）には、より効果的な方法であるといえる。
【００５６】
次に、第二の特徴であるブレンディング部１０について、以下に説明する。
上記で説明したレンダリングの処理を終え、ピクセル単位に変換されたデータに対し、図１４のテクスチャ部５及び陰影付け部６において、それぞれピクセル単位でテクスチャマッピング及び陰影付けの処理が行われ、ピクセル毎に各ポリゴンのカラーが決定される。そのピクセル毎の各ポリゴンのカラーデータと対応するサブピクセルマスクを含む情報（ピクセルデータ）がブレンディング部１０のブロックへ送られてくる。
【００５７】
本装置におけるブレンディング回路は、上記で説明した陰面処理及びレンダリングの工程で生成されるサブピクセルマスクを利用し、かつサブピクセル数より少ない数のカラーバッファと処理回路をもって処理することにより、効率よく品質の高いアンチエイリアシングを行おうとするものである。
【００５８】
図７に本装置におけるブレンディング部１０のブロック図を示す。本ブロックは、４つのカラーバッファ１０１−１乃至１０１−４、マスクバッファ１０２−１乃至１０２−４、カラー合成回路１０３−１乃至１０３−４、及びマスク合成回路１０４−１乃至１０４−４と、統合・選択回路１０５と、重み付け平均回路１０６から構成されている。
【００５９】
以下、図７に基づいて図８乃至図１１を参照しながら、本ブレンディング部の各回路の機能と動作について説明する。図８はマスク合成回路１０４で行われる論理演算を説明するための図であり、図９は統合・選択回路１０５内部のブロック図である。また、図１０は本ブレンディング部の動作を示すフロー図であり、図１１はサブピクセルマスクが処理される過程を例示した図である。
【００６０】
カラーバッファ１０１は、ピクセルのカラーデータを保存するバッファーで、カラーはR,G,B,ar,ag,ab（赤、緑、青、とそれぞれの透明度）のパラメータで表現される。このバッファの数が、１ピクセル内に共存できるポリゴンエッジ数（一つのピクセル内にそのエッジが存在するようなポリゴンの数）となる。言い換えれば、このバッファの数分のカラーデータを合成して、ピクセルの最終的なカラーを決定することになる。本装置では４セットのカラーバッファを用意しているため、４つのカラーデータでピクセルのカラーを合成する。
【００６１】
カラーバッファ１０１に格納されるカラーデータの値は、各ピクセルの処理の初期段階では、４つとも全てar=1.0, ag=1.0, ab=1.0に初期化されている。R,G,Bの値についてはどんな値でもよい。（図１０のステップS１）その後、１つのピクセルデータが本ブレンディング部に入力される毎に、後述する統合・選択回路１０５から出力される４つのカラーデータの値に置き換えられる（図１０のステップS３）。
【００６２】
最終的に当該ピクセルに対して、有効なピクセルデータがなくなった時点で、カラーバッファ１０１に格納されている４つのカラーデータを、重み付け平均回路１０６へ出力する。このカラーデータが前述したピクセルの最終的なカラーを決定するための４つのカラーデータとなる（図１０のステップS５）。
【００６３】
次に、マスクバッファ１０２は、サブピクセルマスクを保存するためのバッファで、カラーバッファ１０１と１対１に対応しており、保存されているサブピクセルマスクは、常に、対応するカラーバッファ１０１に保存されているカラーがピクセル内を占める領域を示している。従って、本装置においては４セットのマスクバッファが用意されている。
【００６４】
マスクバッファ１０２に格納されるサブピクセルマスクの値は、各ピクセルの処理の初期段階では、１０２−１のみが0xffff（１ピクセル内にある１６のサブピクセルの値が全て「１」の状態）、他の３つが0x0000（１ピクセル内にある１６のサブピクセルの値が全て「０」の状態）に初期化されている。（図１０のステップS１）その後、前記カラーバッファ１０１と同様に、１つのピクセルデータが本ブレンディング部に入力される毎に、後述する統合・選択回路１０５から出力される４つのサブピクセルマスクの値に置き換えられる（図１０のステップS３）。
【００６５】
最終的に当該ピクセルに対して、有効なピクセルデータがなくなった時点で、マスクバッファ１０２に格納されている４つのサブピクセルマスクを、前記カラーバッファ１０１に最終的に格納されている４つのカラーデータと対をなす形で、重み付け平均回路１０６へ出力する。この４つのサブピクセルマスクが前述したピクセルの最終的なカラーを決定するための４つのカラーデータの重み付けに使用される（図１０のステップS５）。
【００６６】
次に図７において、カラー合成回路１０３、マスク合成回路１０４、及び統合・選択回路１０５で構成される部分は、前記カラーバッファ１０１と前記マスクバッファ１０２に格納されている４組のカラーデータとサブピクセルマスクのセットと、本ブレンディング部に入力されてくる１つのピクセルデータ（１組のカラーデータとサブピクセルマスクのセット）に対し、合成、統合及び選択の処理を行い、新たに４組のカラーデータとサブピクセルマスクのセットを生成する部分である（図１０のステップS２）。
【００６７】
そのうち、カラー合成回路１０３は、カラーバッファ１０１に保存されているカラーデータの値と、入力されたピクセルデータのカラーデータの値から半透明合成を行う回路である。４つのカラー合成回路（１０３−１〜４）において、カラーバッファ１０１に保存されている４つのカラーデータのそれぞれと入力されたカラーデータの間で４つの合成処理がなされ、結果として４つの新規カラーデータを生成し、統合・選択回路１０５へ出力する（図１０のステップS２１及びS２２）。
【００６８】
マスク合成回路１０４は、マスクバッファ１０２に保存されているサブピクセルマスクと入力されたサブピクセルマスクから新しいサブピクセルマスクの生成を行う回路である。４つのマスク合成回路１０４回路（１０４−１〜４）において、マスクバッファ１０２に保存されている４つのサブピクセルマスクのそれぞれと、入力されたサブピクセルマスクとの間で下記に説明する論理演算がなされ、１つの回路において新たに２つの新規サブピクセルマスクが生成される。その結果として合計８つの新規サブピクセルマスクを統合・選択回路１０５へ出力する（図１０のステップS２１及びS２３）。
【００６９】
各マスク合成回路１０４で行われる上記論理演算について、図８及び図１１を参照して説明する。ここで行われる論理演算は、図８に示すとおり、マスクバッファ１０２に保存されているサブピクセルマスク（図中（a））と入力されたサブピクセルマスク（図中（b））との論理積（図中（c））、及びマスクバッファ１０２に保存されているサブピクセルマスクと入力されたサブピクセルマスクの反転との論理積（図中（d））をとることで行い、結果として２つの新規サブピクセルマスク（図中（c）と（d））を生成する。
【００７０】
生成された２つのサブピクセルマスクのうち前者は、カラーバッファ１０１のカラーと入力されたカラーとがブレンドされた領域（以下、ブレンドマスクと呼ぶ）を表し、後者は、カラーバッファ１０１のカラーがブレンドされずに残った領域（以下、非ブレンドマスクと呼ぶ）を表す。
【００７１】
図１１にサブピクセルマスクに着目した場合の本ブレンディング部における処理の一例を示している。この例では、マスクバッファ１０２に４つのサブピクセルマスクM０１〜M０４が格納されている状態に、サブピクセルマスクM００が入力された場合を想定している。図中、左上の部分には、マスク合成回路１０４−１において、マスクバッファ１０２−１のサブピクセルマスクM０１と入力サブピクセルマスクM００との間で上記で説明した論理演算がなされ、結果として２つのサブピクセルマスクM１１とM１２が生成されることを表している。以下、同様に４つの回路において、結果としてM１１〜M１８の８つのサブピクセルマスクが生成される様子を例示している。
【００７２】
ここで生成された４つのブレンドマスクと前記カラー合成回路１０３で生成された４つの新規カラーデータとが対となり、また前記４つの非ブレンドマスクとカラーバッファ１０１に保存されている４つのカラーデータとが対となって、合計８つのカラーデータとサブピクセルマスクのセットが次に説明する統合・選択回路１０５に入力される（図１０のステップS２４）。
【００７３】
次に、統合・選択回路１０５は、本回路に入力される前記８つのカラーデータとサブピクセルマスクに対し、統合及び比較の処理を施し、４つのカラーデータとサブピクセルマスクのセットを選択する回路である。さらに、選択された４つのカラーデータとサブピクセルマスクのセットを前記カラーバッファ１０１と前記マスクバッファ１０２へ出力する（図１０のステップS２５）。
【００７４】
統合・選択回路１０５は、さらに同一色統合回路２０１、カウント回路２０２、及び選択回路２０３で構成されており、そのブロック図を図９に示す。以下、図９に基づいて、各回路について説明する。
【００７５】
図中、同一色統合回路２０１は、前記入力される８つのカラーデータとサブピクセルマスクのセットの８つのカラーデータを比較し、同じカラーデータがあれば、それらに対応するサブピクセルマスクの合成（論理和をとる処理）を行い、１つのカラーデータとサブピクセルマスクのセットに統合する回路である。その結果、残ったカラーデータとサブピクセルマスクのセットを次工程へ出力する。
【００７６】
例えば、８つのカラーデータのうち３つが同じカラーデータであれば、３つのカラーデータとサブピクセルマスクのセットが１つのカラーデータとサブピクセルマスクのセットになるため、結果として６つのカラーデータとサブピクセルマスクのセットが出力される（図１０のステップS２５１）。
【００７７】
次に、カウント回路２０２は、前記同一色統合回路２０１から出力されるカラーデータとサブピクセルマスクのセットに対し、各サブピクセルマスクの有効なサブピクセル数をカウントして、その数を次の選択回路２０３へ出力する回路である。有効なサブピクセル数とは、サブピクセルマスク内で「１」の値を持つサブピクセルの数であり（本装置の場合は最大１６）、その数が大きいということは、そのサブピクセルマスクに対応するカラーがピクセル内で占める領域が広いということである。すなわち、そのカラーの寄与度が高いということを意味する。
【００７８】
次に、選択回路２０３は、前記同一色統合回路２０１から出力されるカラーデータとサブピクセルマスクのセットを、前記カウント回路２０２から出力されたサブピクセル数で比較し、その数が大きいものから順番に４つを選択する回路である。そして、選択された４つのカラーデータとサブピクセルマスクのセットを前記カラーバッファ１０１及びマスクバッファ１０２へ出力する。（図１０のステップS２５２）上記で説明した様に、ここで出力された４つのカラーデータとサブピクセルマスクの値によってカラーバッファ１０１及びマスクバッファ１０２の値が書き換えられる（図１０のステップS３）。
【００７９】
再度図１１をもちいて、本回路における処理の一例を説明する。なお、この例では、統合・選択回路１０５に入力される８つのカラーデータに同一のものがない場合を想定している。図中M１１〜M１８が、統合・選択回路１０５に入力される８つのサブピクセルマスクであり、それぞれのサブピクセルマスクの右上に記した数字が前記カウント回路２０２でカウントされた有効なサブピクセル数である。選択回路２０３では、その数が大きいM１１、M１２、M１４、およびM１５を選出し、マスクバッファ１０２への出力サブピクセルマスクM２１〜M２４としている。
【００８０】
以上、説明してきたカラー合成回路１０３から選択回路２０３までの回路で行われる処理（図１０のステップS２）と、その出力値によるカラーバッファ１０１及びマスクバッファ１０２の値の書き換えの処理（図１０のステップS３）が、１つのピクセルデータが本ブレンディング部に入力される毎に行われ、当該ピクセルに対して有効なピクセルデータがなくなるまで繰り返される（図１０のステップS４）。
【００８１】
次に図７に戻って、重み付け平均回路１０６は、入力される４つのカラーデータとサブピクセルマスクのセットから、各カラーが占める面積（対応するサブピクセルマスクの有効なサブピクセル数）に応じた重み付けで各カラーデータのブレンドを行い、ピクセルのカラーを決定する回路である。上記で説明した様に、最終的に当該ピクセルに対して有効なピクセルデータがなくなった時点（図１０のステップS４の終了時点）で、カラーバッファ１０１及びマスクバッファ１０２から出力される４つのカラーデータとサブピクセルマスクのセットが入力され、当該ピクセルの最終的なカラーを決定する。（図１０のステップS６）決定されたカラーがフレームバッファ１１へ書き込まれる（図１０のステップS７）。
【００８２】
これまでに説明してきた本ブレンディング回路の各回路で行われる処理が、有効な全てのピクセルに対して行われることで、画面に表示される１つのフレーム画像が生成される。
【００８３】
以上、説明したようなブレンディング回路を用いることにより、サブピクセル単位の高品質なアンチエイリアシングが可能となる。また、複数のカラーバッファと処理回路を持つことで処理スピードをピクセル単位の処理と同等に保つことができる。
【００８４】
さらに、カラーバッファと処理回路を４つに制限したことで、高品質を得るための装置規模の増大を小さく押さえることができるとともに、実質上オーバサンプリング方式の場合と比べて遜色のない品質が得られる。生成される画像の一例として、図１２にアンチエイリアシング処理を施さない場合の画像、図１３に本実施例の処理を施した場合の画像を示す。
【００８５】
本実施例で想定した４×４のサブピクセルを使用する場合、サブピクセル単位のアンチエイリアシングを行うためには、通常１６倍（４×４）の回路規模を必要とするが、本実施例の装置では前述のとおり４倍の回路規模で同等の品質を実現しており、４倍（１６／４）の効率であるといえる。さらに、サブピクセルの数が１６×１６の場合において本装置を用いれば、６４倍（１６×１６／４）の効率を得ることができるように、本発明はサブピクセルの数が多ければ多いほど効率的である。
【００８６】
なお、本実施例の装置では、回路規模の増大とアンチエイリアシング効果との関係から４つのカラーバッファ及びマスクバッファと処理回路から構成される装置としたが、本発明はそれらの数を４つに限定するものではなく、あくまでサブピクセル数より少ない個数で構成される装置であればよい。
【００８７】
以上、説明してきた様に本実施例の装置は、従来の回路構成を大幅に変更させることなく、陰面処理及びレンダリング工程とブレンディング工程の一部を変えることにより、高品質なアンチエイリアシング処理を可能にするものである。
【００８８】
なお、上記図面を参照しての実施の形態は、本発明の理解のためであって、本発明の保護の範囲は、これに限定されない。本発明の保護の範囲は、特許請求の範囲に定まり、特許請求の範囲の記載と均等の範囲も本発明の保護の範囲に含まれるものである。
【００８９】
【発明の効果】
以上図面に従い、実施の形態を説明した様に、本発明においては、アンチエイリアシング処理に、ピクセル毎のサブピクセルマスクが利用され、ピクセルのカラーを決定するブレンディングの処理がサブピクセル数より少ない数の回路で並列処理される。また、サブピクセルマスクは、スキャンライン三次元ソート方式による陰面処理を利用して生成される。また、更にテクスチャマッピングや陰影付けの処理については、従来どおりのピクセル単位の処理がなされる。
【００９０】
したがって、本発明においては、サブピクセル単位の高品質なアンチエイリアシング処理が、大きな処理時間の増加や装置規模の改造・拡大をすることなく、効率的に行えるという効果がある。
【図面の簡単な説明】
【図１】本発明の実施例に係る画像処理装置の陰面処理部３及びレンダリング部４のブロック図である。
【図２】ポリゴン▲１▼及び▲２▼の表示イメージ例であり、Yソートを説明するための図である。
【図３】サブライン分割及びZソートを説明するための図である。
【図４】図３におけるA部の拡大図であり、サブピクセルを説明するための図である。
【図５】図３におけるB部の拡大図であり、サブピクセル単位での陰面処理を説明するための図である。
【図６】サブピクセルマスクの一例を示す図である。
【図７】本発明の実施例に係る画像処理装置のブレンディング部１０のブロック図である。
【図８】図７におけるマスク合成回路１０４で行われる論理演算を説明するための図である。
【図９】図７における統合・選択回路１０５内部のブロック図である。
【図１０】本発明の実施例に係る画像処理装置におけるブレンディング部１０の動作を示すフロー図である。
【図１１】サブピクセルマスクがブレンディング部１０で処理される過程を例示した図である。
【図１２】アンチエイリアシング処理を施さなかった場合の画像の表示例である。
【図１３】本発明の実施例に係るアンチエイリアシング処理を施した場合の画像の表示例である。
【図１４】画像処理装置の概要構成ブロック図である。
【図１５】エイリアシングを説明するための図である。
【符号の説明】
１  CPU
２  ジオメトリ演算部
３  陰面処理部
３１  タイルジェネレータ（Yソータ）
３２  サブライン分割部
３３  Xソータ
３４  Zソータ
４  レンダリング部
４０  サブライン待ち合わせ・ピクセル化処理部
５  テクスチャ部
６  陰影付け部
７  RAM
８  ポリゴンバッファ
９  テクスチャバッファ
１０  ブレンディング部
１０１  カラーバッファ
１０２  マスクバッファ
１０３  カラー合成回路
１０４  マスク合成回路
１０５  統合・選択回路
２０１  同一色統合回路
２０２  カウント回路
２０３  選択回路
１０６  重み付け平均回路
１１  フレームバッファ
【図１】
0004332934.tif 000002
【図２】
0004332934.tif 000003
【図３】
0004332934.tif 000004
【図４】
0004332934.tif 000005
【図５】
0004332934.tif 000006
【図６】
0004332934.tif 000007
【図７】
0004332934.tif 000008
【図８】
0004332934.tif 000009
【図９】
0004332934.tif 000010
【図１０】
0004332934.tif 000011
【図１１】
0004332934.tif 000012
【図１２】
0004332934.tif 000013
【図１３】
0004332934.tif 000014
【図１４】
0004332934.tif 000015
【図１５】
0004332934.tif 000016