[go: up one dir, main page]

JP4713591B2 - 画素サンプリングによるアンチエイリアシングのための方法及びシステム - Google Patents

画素サンプリングによるアンチエイリアシングのための方法及びシステム Download PDF

Info

Publication number
JP4713591B2
JP4713591B2 JP2007531705A JP2007531705A JP4713591B2 JP 4713591 B2 JP4713591 B2 JP 4713591B2 JP 2007531705 A JP2007531705 A JP 2007531705A JP 2007531705 A JP2007531705 A JP 2007531705A JP 4713591 B2 JP4713591 B2 JP 4713591B2
Authority
JP
Japan
Prior art keywords
pixel
pixel sample
sample points
edge
pixels
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
Application number
JP2007531705A
Other languages
English (en)
Other versions
JP2008513862A (ja
JP2008513862A5 (ja
Inventor
トーマス アケニネ−メラー,
ヤコブ ストレム,
Original Assignee
テレフオンアクチーボラゲット エル エム エリクソン(パブル)
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by テレフオンアクチーボラゲット エル エム エリクソン(パブル) filed Critical テレフオンアクチーボラゲット エル エム エリクソン(パブル)
Publication of JP2008513862A publication Critical patent/JP2008513862A/ja
Publication of JP2008513862A5 publication Critical patent/JP2008513862A5/ja
Application granted granted Critical
Publication of JP4713591B2 publication Critical patent/JP4713591B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/503Blending, e.g. for anti-aliasing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/12Indexing scheme for image data processing or generation, in general involving antialiasing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Controls And Circuits For Display Device (AREA)

Description

背景
技術分野
本発明はグラフィック処理に関し、さらに詳しくは、発明を限定するもので無いが、アンチエイリアシング処理された高品質なグラフィック画像を、高フレームレートで、少ない計算コストで生成するための方法およびシステムに関する。
3次元グラフィックのリアルタイム描画は、ゲーム、マン‐マシンインタフェース、メッセージング、イー・コマースなどを含む移動端末において魅力的なアプリケーションである。通常、3次元描画は計算コストのかかる処理であり、許容できる性能を達成するために専用のハードウェアを構築しなければならないことが多い。従って、計算の複雑さを緩和し、ハードウエアアーキテクチャが使用する帯域を減らすための革新的な方法が、非常に重要となっている。Akenine-Moller、Tomas and Jacob Strom著の「Graphics for the Masses: A Hardware Architecture for Mobile Phones」、ACM Transactions on Graphics, vol. 22, no. 3, Proceedings of ACM SIGGRAPH 2003, pp. 801-808、2003年6月発行、に記載されているように、目と画素の平均角度は、パーソナルコンピュータ(PC)よりも移動電話の方が2〜4大きい。従って、移動装置における画像の品質は、理想的にはPCよりも高い方がよい。しかしながら、移動装置のリソースは、通常、より数が少ないと共に計算パワーも低い。
コンピュータグラフィックスの初期から、静止画または動画をディスプレイに表示する際のエイリアシングが問題であった。エイリアシングの例として、階段状効果があるが、これは、線を角度を付けて描いたときに表示端末において目につくものである。これらの階段状アーチファクトは、一般的に「ジャギー」と呼ばれている。3次元描画の間に、ポリゴンのエッジはしばしば目に付くエイリアシングアーチファクトを生成する。アンチエイリアシング技術を用いて、これらのアーチファクトを減らすことが望ましい。
エイリアシングによる画像のアーチファクトを削減するためのアプローチの1つは、スーパーサンプリングとして知られるものを利用することである。スーパーサンプリングアプローチでは、表示する1画素につき1以上のポイントでシーンをサンプルし、最終画像をサンプルから計算する。スーパーサンプリングの特殊例として、同様に1画素につき1以上のポイントでサンプルするマルチサンプリング技術があるが、フラグメントシェーダー(fragment shader)計算の結果(例えば、テキスチャと色)は、1ピクセルのサンプル間で共有される。マルチサンプリングアルゴリズムは、一般的に、シングルパスで1画素ごとに1サンプル以上を用い、サンプル間でグリッドセルの計算を共有する。
アンチエイリアシングへのスーパーサンプリングアプローチでは、画像は、画面に表示される最終的な解像度よりも高い解像度で描画され、1画素あたり1サンプル以上となる。各画素のサンプルは、例えば、画素の色を形成するために平均される。これは、表示する各画素について複数のサブ画素サンプルを描画し、各画素値をサブ画素サンプル値の加重加算合計として計算することにより行われる。例えば表示された各画素は、画素内部にある4つのサブ画素サンプルからなるグループの、フィルタを通された加重加算合計から構成されていても良い。
スーパーサンプリングアプローチの結果、グラフィックハードウェアは、表示される各画素について、4倍のサンプルを処理しなければならない。このアンチエイリアシング方法は、しばしば総当たり(brute-force)スーパーサンプリングと呼ばれている。総当たり(brute-force)スーパーサンプリングは、画像の品質を大きく改善することができるが、メモリと描画時間という面において大きなペナルティを伴う。例えば、目的の画像の幅と高さをw×hとする。2w×2hの解像度を総当たり(brute-force)スーパーサンプリングに用いたとすると、1画素あたり4つのサンプルが用いられ、4倍のメモリと4倍のラスタライズのための時間を必要とする。スーパーサンプリングは、高い画像品質を提供するが、計算負荷が大きいためにフレームレートが遅くなってしまう。
アンチエイリアシング処理された画素を生成するための計算負荷を減らすために、改良スーパーサンプリング手法は、1以上のサンプル位置の値が1以上の画素の最終値を計算するために用いられるように、サブ画素サンプル位置が配置されている状態で用いられる。この種のスーパーサンプリング手法は、しばしばサンプルシェアリング(sample sharing)手法と呼ばれる。サンプルを共有することにより、取得するサンプルを1画素につき4サンプルより少なくすることができる。マルチサンプリングは、計算の一部をある画素内のすべてのサンプルにより共有することができるため、必要帯域を更に削減するために用いられる。
米国サンタクララにあるNVIDIA CorporationのGeForce3(登録商標)グラフィックスプロセッシングユニットは、スーパーサンプリング及び画素間のサブサンプルの共有をサポートするハードウエアを供給している。このスーパーサンプリング手法は「Quincunx」と呼ばれ、サイコロの「5」の目の形状をしたサブ画素サンプルパターンを示している(つまり、5つのサブ画素サンプルが、最終画素の値を計算するために用いられる)。Quincunx手法では、そのサンプル位置のために、1画素につき2つのサンプルだけ計算すればよい。残りのサンプル値は周辺画素から得ることができる。中央のサブ画素サンプルは0.5の重みが付けられ、周辺のサブ画素サンプルはそれぞれ0.125の重みが付けられる。Quincunx手法に関する情報は、NVIDIA Corporationの「Technical Brief, HRAA: High-Resolution Antialiasing through Multixampling」に記載されている。
白黒スキームにおける黒と白の間にある中間調の数は、どれだけ多くの画素サンプルポイントを用いるかに応じて異なる。4つの画素サンプル位置を用いた場合、黒と白の間に、最大3つのグレーシェードができる。つまり、上述したQuincunx手法では、最大4つのグレーシェードを提供する。しかしながら、Quincunx手法のグレーシェードの有効数は、2まで下がることがある。Quincunx手法では、サンプルポイントは、垂直線、水平線、45°の斜め線を形成し、いくつかの線が傾いているために別の手法よりも性能が落ちる。
発明の要約
本発明は、アンチエイリアシング処理された高品質な画像を生成するための方法及び装置を、低計算コストで提供することを目的とする。本発明の一実施形態は、エイリアシングを低減する為の方法を目的とする。当該方法は、対応する複数の画素サンプル値を生成するために、複数の画素サンプルポイントで画像の画素をサンプリングする工程を有し、前記複数の画素サンプルポイントの少なくとも1つは、前記画素のエッジ上において、予め決められた位置から所定の範囲内で変位された位置にあり、前記予め決められた位置からの変位量は、擬似無作為に決められる。更に、当該方法は表示された画素値を生成するために、前記複数の画素サンプル値を合成する工程とを有する。本発明の一実施形態において、前記変は、ルックアップテーブルを用いて決められる
本発明の別の実施形態は、エイリアシングを低減する為のシステムを目的とし、画像を保持するためのサンプルバッファと、対応する複数の画素サンプル値を生成するために、複数の画素サンプルポイントで画素サンプリングを行うプロセッサとを有し、前記複数の画素サンプルポイントの少なくとも1つは、画素のエッジ上において、予め決められた位置から所定の範囲内で擬似無作為に決められた変位量、変位された位置にある。前記プロセッサは、少なくとも1つの表示された画素値を生成するために、複数の画素サンプル値を合成する。
本発明は、添付図面を参照して以下の例示的な詳細な説明を参照することにより、より完全に理解できるであろう。
発明の実施形態の詳細な説明
以下、図面を参照して、本発明の実施形態についてより詳しく説明する。しかしながら、本発明は異なる形態で実施することができ、ここで説明する実施形態に限定解釈されるべきものではない。本発明は、請求項及び請求項に同等な構成によってのみ限定されるべきである。
本発明の様々な実施形態は、非周期的な画素サンプリングパターンを提供することにより、アンチエイリアシングアーチファクトを低減するものである。非周期的な画素サンプリングパターンは、エイリアシングアーチファクトを有しがちな特定角度のエッジを形成しない。本発明の様々な実施形態は、近隣画素の反射ルールを実行する必要性を排除し、画素のエッジを共有する近隣画素により共有される画素エッジ上のサンプルを必要とするのみである。従って、他の画素がそのサンプルに依存する必要がない。
図1Aでは、8つの画素101a〜101hの画素サンプリングパターンを示している。図1Aに示す画素サンプリングパターンは、画素101a〜101hのエッジ上に位置する、9つの画素サンプルポイント104〜112を示している。説明を明瞭にするために、画素の水平エッジ上に位置する画素サンプルは示していない。図1Aの画素サンプリングパターンは、2画素毎に画素サンプリングパターンが繰り返されているため、周期性は2である。
図1Bは、本発明の実施形態における画素サンプリングパターンを示している。図1Bの画素サンプリングパターンは、画素101a’〜101h’のエッジ上に位置する、9つの画素サンプルポイント104’〜112’を示している。説明を明瞭にするために、画素の水平エッジ上に位置する画素サンプルは示していない。図1Bでは、画素サンプルポイント105’は、画素101a’と101b’が共有するエッジ上において、所定オフセット分、位置がずれており、他の画素サンプルポイント104’及び106’〜112’のいずれとも画素のエッジ上の垂直方向で同じ距離にならない。画素サンプルポイント105’の移動距離は、多くの方法またはアルゴリズムのいずれかにより決めることができる。1つの選択肢としては、画素サンプルポイント105’の移動距離をアンチエイリアシング手法を行う為の1以上の画素の為のテーブルからルックアップにより決めることができる。別の選択肢としては、オフセット量を擬似無作為に決めることができる。画素サンプルポイント105’が移動することにより、非周期的な画素サンプリングパターンが生成される。別の選択肢としては、画素のエッジを共有する隣接画素によって共有される画素のエッジ上にサンプルポイントがある場合、1以上の画素サンプルポイント104’〜112’を、画素のエッジ上で所定距離移動させても良い。
図2Aは、8つの画素201a〜201hの画素サンプリングパターンを示す。図2Aの画素サンプリングパターンは、画素201a〜201hのエッジ上に位置する9つの画素サンプルポイント204〜212を示している。説明を明瞭にするために、画素の水平エッジ上に位置する画素サンプルは示していない。図2Aの画素サンプリングパターンは、3画素毎に画素サンプリングパターンが繰り返されているため、周期性は3である。
図2Bは、画素サンプリングパターンの全てのサンプルが、画素のエッジ上で所定量オフセットしているか、または、画素のエッジ上の所定範囲内に位置する場合を示している。図2Bは、8つの画素201a’〜201h’の画素サンプリングパターンを示す。図2Bの画素サンプリングパターンは、画素201a’〜201d’および202a’〜202d’のエッジに位置する9つの画素サンプルポイント204’〜212’を示している。画素サンプルポイント204’〜212’それぞれは、画素のエッジの所定範囲内の所定位置に配置されている。1つの選択肢としては、画素サンプルポイント204’〜212’は、画素のエッジの所定範囲内に擬似無作為に位置される。別の選択肢としては、画素サンプルポイント204’〜212’は、画素サンプリングパターンが少なくとも2画素で反復しないように、ルックアップテーブルから読み出された所定オフセット位置に配置される。
図2Bは、画素サンプルポイント204’〜212’のそれぞれに関わる所定範囲を示しており、各所定範囲は、括弧により表されている。画素サンプルポイントを移動させることにより、ルックアップテーブルまたは移動量を生成するために用いられる擬似乱数発生器による制限内で、事実上、無限の周期の画素サンプリングパターンが生成されるため、ラインエッジ上の対象性をより崩し、アンチエイリアシング処理された画像の視覚的な品質を上げることができる。なお、画素サンプルポイント204’〜212’の所定範囲として画素のエッジ上の一部のみである場合について示しているが、ある特定の画素サンプルポイントが、画素のエッジ上のどの位置にあっても良いように、所定範囲を画素のエッジの全長としてもよい。また、画素サンプルポイントは厳密に画素のエッジ上にある必要は無く、画素のエッジの近辺、例えば、画素のエッジから、画素幅の1/3までの距離にあっても良い。また、追加的な画素サンプルポイントが各画素内にあっても良い。
図3A及び図3Bは、画素サンプルポイント303〜306が、画素301のエッジに位置し、画素サンプルポイント307〜310が画素302のエッジに位置する場合の、スーパーサンプリング手法を示す図である。この例では、画素301と画素302が互いに隣接している場合に、表示メモリにおいて、画素301と画素302は画素サンプルを共有することができる。図3A及び図3Bのスーパーサンプリング手法では、Quincunx手法と同様に、サンプルは画素301、302の角には無い。その代わりに、画素301、302の各エッジにつき1つの画素サンプルポイントが、回転された矩形構成で定義され、それぞれ0.25の重みを与えられる。なお、各サンプル点に他の重みを用いても構わない。
正確な画素サンプル位置を決定するための式を、図3A及び図3Bの下部にそれぞれ示している。図3A及び図3Bの式において、x0とy0は、それぞれ図3A及び図3Bに示すようにx軸(“x”)とy軸(“y”)との原点を示す。
図示するような画素サンプルポイント303〜310の配置は、比較的少ない数の画素サンプルポイントが必要である場合のサンプリングパターンを提供する。更に、このサンプリングパターンでは、各サンプルポイントは、画素の行及び列に1つずつ配置され、2つの画素サンプルが特定画素の同じ列または行を共有することはない。このことは、図3A及び図3Bにおいて、2つのポイントが同じ破線上に無いことで示している。また、このサンプリングパターンは画素サンプリングパターン構成の対称性を崩し、表示装置の非軸線のアンチエイリアシング効果を上げることができる。なお、非軸線とは、表示装置の水平軸または垂直軸のいずれとも平行にならない線のことである。アンチエイリアシング効果は、表示装置に対してほぼ垂直またはほぼ並行なラインについて、よりその効果が高い。例えば、表示装置上に描かれた、1以上の画素301、302を通過するポリゴンのほぼ水平に傾いたエッジを想定する。アンチエイリアシング処理された線を表すためにQuincunx手法を用いた場合、それぞれが画素の角である4つのサンプルポイントが用いられる。いくつかの画素については、ポリゴンのエッジは画素の上部のみを覆うが、2つの最上部の画素サンプル位置を覆うかも知れない。その結果、その画素の画素サンプル位置からの値を調べることにより、エッジにより画素の半分が覆われていても、決定されたその画素のアンチエイリアシング処理された値は0.25となる。従って、画素の表現は悪くなる。
もし、略水平ラインに傾いたポリゴンのエッジが画素301、302の上部の微小な一部を覆う場合に、図3A及び図3Bの方法を用いて同じ状況が起きるとすると、ポリゴンのエッジは画素サンプル位置を両方とも覆うことはないが、サンプル位置の場所によっては、画素301、302の上部水平エッジ上にあるサンプル位置のみを覆う。
図4は、Quincunx手法の場合と同様に、画素401の画素サンプルポイント403〜406が画素の角に置かれていない場合の画素サンプリングパターンを示す。画素サンプルポイント403〜406により表される画素サンプル構成を、「Quad A」と呼ぶ。同様に、画素サンプルポイント406〜409により表される画素サンプル構成を示す画素402を「Quad B」と呼ぶ。
Quad AとQuad Bが隣り合わせに並んだ構成を調べると、Quad Bの鏡像の画素サンプルポイント406〜409は、Quad Aの右垂直エッジ410(つまり、Quad Bの左垂直エッジ)で反射した時にQuad Aが対応する画素サンプルポイン403〜406であることは明らかである。画素サンプルポイント403〜406と406〜409の鏡像を取ることにより、2画素間の画素サンプルポイント406を共有することが可能になると共に、画素サンプリング構成の対称性を崩すことができ、よりよいアンチエイリアシング結果を達成することができる。1行につき1サンプル、1列につき1サンプルだけが存在する。例えばQuincunx手法では、最上行に2サンプル存在する。
図5は、左上の画素501が、Quad A構成の4つの画素サンプルポイント510〜513を含む場合のアンチエイリアシング手法を示す。画素501の右にある画素502も、Quad B構成の4つの画素サンプルポイント513〜516を含み、左端の画素501の右エッジについて反射している。さらに、第3画素503も、Quad A構成の4つの画素サンプルポイント516〜519を含む。図5から分かるように、画素501〜503は、各画素ペア501と502、502と503の間で、1つの画素サンプルポイント513及び516を共有している。画素504〜506を含む下の行の画素は、画素サンプルポイント511、520〜522からなるQuad B構成の画素504から始まる。画素サンプルポイント511は、画素504と上の画素の行にある画素501により共有されている。隣り合わせのQuad A(つまり、上の画素501)とQuad B(つまり、下の画素504)の構成を調べると、Quad Bの画素サンプルポイント511、520〜522は、Quad Aの対応するポイント510〜513が画素501の下の水平エッジ530(つまり、画素504の上の水平エッジ)で反射した鏡像を形成している。
画素505は、Quad A構成の4つの画素サンプルポイント515、522〜524を含む。画素505は画素502と1つの画素サンプルポイント515を共有し、画素504と1つの画素サンプルポイント522を共有する。右端の画素506についても同様であり、隣の画素503、505と、2つの画素サンプルポイント517、524を共有する。
鏡映手法を用いれば、画素501〜506の最終値を決定する際に、一番上の行及び左端の画素501〜504を除く全ての画素について、2つの新しい画素サンプル位置の値だけを計算すればよい。画素の計算が左から右へ、また、上から下の順番で行われる場合、画素501については、画素サンプルポイント510〜513の値を算出する。画素502については、画素サンプルポイント514〜516の値を算出すれば良く、画素サンプルポイント513の値は、画素501の時にすでに算出されているため、改めて算出する必要はない。画素503については、画素サンプルポイント517〜519の値を算出すれば良く、画素サンプルポイント516の値は、画素502の時にすでに算出されているため、改めて算出する必要はない。画素504については、画素サンプルポイント520〜522の値を算出すれば良く、画素サンプルポイント511の値は、画素501の時にすでに算出されているため、改めて算出する必要はない。画素505については、画素サンプルポイント523〜524の値を算出すれば良く、画素サンプルポイント515及び522の値は、それぞれ画素502及び504の時にすでに算出されているため、改めて算出する必要はない。同様に、画素506については、画素サンプルポイント525〜526の値を算出すれば良く、画素サンプルポイント517及び524の値は、それぞれ画素503及び505の時にすでに算出されているため、改めて算出する必要はない。画素が右から左、下から上へ走査される別の選択肢では、右端の列及び一番下の行を除き、全ての画素について2つのサンプルのみを必要とする。別の例では、メモリをより効率的に使用するために、1行おきに走査方向を変える。このように、走査手法により幾何プリミティブ内にある全ての画素が走査されるのであれば、どのように幾何プリミティブの画素を走査しても構わないことは、当業者には明らかであろう。
図6A及び図6Bは、スーパーサンプリング手法を示す図であり、画素サンプルポイント303’〜306’が画素301’のエッジに配され、画素サンプルポイント307’〜310’が画素302’のエッジに配されている。これにより、画素301’と画素302’とが隣り合わせに配置された場合に、表示メモリにおいて、画素301’と画素302’が画素サンプルを共有することができる。図6A及び図6Bに示すスーパーサンプリング手法では、1以上の画素サンプルポイント303’〜306’を画素301’と画素302’のエッジ上の範囲内の所定位置に配置することができる。図6A及び図6Bは、画素サンプルポイント303’〜310’のそれぞれの所定範囲を括弧で示している。各括弧は画素エッジの一部の上にあるように表されているた、画素サンプルポイントは画素エッジのどの部分に配置されても良いことは理解されるであろう。図6A及び図6Bに示す実施形態では、1つの画素サンプル位置は、画素301、302の各エッジについて定義され、それぞれ0.25の重み付けをされている。図6Aに示す正確な画素サンプル位置を決定するための式の例は以下の通りである:
303’=(x0+2/3+offset(x0, y0, 0), y0+1)
304’=(x0+y0+2/3+offset(x0, y0, 1))
305’=(x0+1/3+offset(x0, y0, 2), y0)
306’=(x0+1, y0+1/3+offset(x0, y0, 3))
また、図6Bの式の例は以下の通りである:
307’=(x0+1/3+offset(x0, y0, 0), y0+1)
308’=(x0+y0+1/3+offset(x0, y0, 1))
309’=(x0+2/3+offset(x0, y0, 2), y0)
310’=(x0+1, y0+2/3+offset(x0, y0, 3))
ただし、offset( )関数は、所定範囲における移動値を生成するための関数を示し、x0及びy0は、図6A及び図6Bに示されるように、x軸(“x”)及びy軸(“y”)の原点をそれぞれ示す。別の実施形態では、画素サンプル位置を決定するための式において定数を追加する必要はなく、この情報はルックアップテーブル内または擬似乱数関数において、予め符号化することができる。例えば、画素サンプル位置303’の式は、
303’=(x0+offset(x0, y0, 0), y0+1)
のようであっても良い。
1以上の画素サンプルポイント303’〜310’の位置が移動された(オフセットされた)ことにより、特に27°近辺での直線エッジ上のアンチエイリアシング効果を高めるために、サンプリングパターンの周期性を崩すことができる。画素サンプルポイントの移動が行われなかったサンプルパターンでは、27°のエッジは、画素サンプルポイントが27°回転した正方形を示すために、好ましくない結果をもたらす可能性がある。本発明の様々な実施形態における移動を行うことで、この対象性を崩すことができるため、より良い結果をもたらすことができる。
別の選択肢において、画素サンプルポイント303’〜310’それぞれを、画素サンプリングパターンが少なくとも全ての画素について繰り返されないように、ルックアップテーブルから読み出された所定オフセット位置に配置しても良い。別の選択肢では、画素サンプルポイント303’〜310’それぞれを、擬似乱数発生器を用いて配置しても良い。更に別の選択肢では、サンプリングパターンは、画素のエッジ上または近くに配置された画素サンプルポイントに加えて、画素内に配置された1以上の画素サンプルポイントを含むようにしても良い。
図7は、左端の画素401’の画素サンプルポイント403’〜406’が、画素401’のエッジ上の所定位置に配置された画素サンプリングパターンを示す。画素サンプルポイント407’〜409’は、画素402’のエッジ上に配置されている。画素サンプルポイント403’〜409’の少なくとも1つの位置を、画素401’と402’のそれぞれのエッジ上の所定範囲内の所定位置に配置するようにしても良い。図7は、画素サンプルポイント403’〜409’それぞれの所定範囲を示しており、各所定範囲は括弧で示している。なお、括弧は、画素のエッジ上の一部にあるように示されているが、画素サンプルポイントは画素のエッジ上のどの部分に配置しても構わない。
図8は、左上画素501’が4つの画素サンプルポイント510’〜513’を含む場合のアンチエイリアシング手法を示す。画素501’の右側にある画素502’も4つの画素サンプルポイント513’〜516’を含む。更に、第3の画素503’も4つの画素サンプルポイント516’〜519’を含む。図8から分かるように、画素501’〜503’は、画素のペア501’と502’、502’と503’の間でそれぞれ1つの画素サンプルポイント513’516’を共有している。画素の下の行は画素504’から始まり、画素サンプルポイント511’、520’〜522’の構成を有する。画素サンプルポイント511’は、画素504’と、その上の行の画素501’により共有されている。
画素505’は、4つの画素サンプルポイント515’、522’〜524’を含む。画素505’は、1つの画素サンプルポイント515’をその上の行の画素502’と共有し、1つの画素サンプルポイント522’を画素504’と共有している。右端の画素506’についても同様であり、2つの画素サンプルポイント517’及び524’を近隣の画素503’及び505’とそれぞれ共有している。画素サンプルポイント510’〜525’の少なくとも1つは、画素501’〜506’の少なくとも1つのそれぞれのエッジ上の所定範囲内の所定位置に配置される。別の選択肢では、画素サンプルポイントはルックアップテーブルから読み出された所定オフセット位置に配置される。別の選択肢では、画素サンプルポイントは、画素エッジの所定範囲内で擬似無作為に配置される。
画素501’〜506’の最終値を決定する際に、最上部及び左端の画素501’〜504’を除く全ての画素について、新しい画素サンプル値を2つだけ計算すればよい。別の選択肢では、右端の列及び最下行を除く全ての画素について、新しい2つのサンプル値だけが必要である。画像の画素におけるサンプル位置は、左から右へ行を走査することにより得られる。別の選択肢では、メモリをより効率的に使用するために、1行おきに走査方向を変える。なお、スーパーサンプリング手法と共に、どのような走査手法を用いても構わない。
図9Aは、高品質アンチエイリアシング処理された画像を生成するための方法を示すフローチャートであり、画像を生成するために1以上の幾何プリミティブがサンプルされる。アプリケーション段階では(ステップ610)、プロセッサ(例えば、中央処理装置(CPU))がアプリケーションプログラム(例えば、コンピューターゲーム)を実行し、ディスプレイ上で2D表示に変換される幾何プリミティブ(例えば、三角形のポリゴン)を生成する。
次に、幾何段階において(ステップ620)、プロセッサまたはグラフィカル処理装置(GPU)は、照明、切り抜き、変形、投影など、ディスプレイ上のオブジェクトの見かけに影響を与える異なる視覚効果を計算する。典型的な幾何プリミティブは、コンピュータグラフィックスの3Dオブジェクトを生成する時に使用されるため、典型的には幾何プリミティブの頂点の画素座標が計算される。
ラスタライザ段階では(ステップ630)、三角形がサンプルバッファに書き込まれる。1以上の幾何プリミティブへのテクスチャ座標の遠近的に正しい挿入は、確実に正しい投影がなされるように用いられる。ラスタライザ段階は、プロセッサ及び/またはGPUにより行われる。加えて、プロセッサまたはGPUは、例えば、1以上の色や、別のテクスチャ座標セット、フォグなどを書き加えることができる。プロセッサまたはGPUは、また、Z−バッファテストを行い、最終画素が正しい色を得たことを確かめるようにしても良い。フィルタリング段階では(ステップ640)、サンプルバッファは、カラーバッファに保持された画素の色を生成するためにフィルタリングされる。この後、カラーバッファの内容は画面に表示される。
図9Bは、図9Aのステップ630をより詳しく表すフローチャートである。ステップ631において、第1の幾何プリミティブの為の幾何プリミティブセットアップが行われ、本発明の様々な実施形態に基づく画素サンプルパターンの第1のサンプルポイントを幾何プリミティブにおいて探し、ステップ632に進む。ステップ632において、幾何プリミティブの境界内においてサンプルポイントが見つかったかどうかを判断する。幾何プリミティブ内でサンプルポイントが見つからなかった場合、ステップ633に進み、他に描画する幾何プリミティブが存在するかを判断する。他に描画する幾何プリミティブが存在する場合、ステップ634に進む。ステップ634において、次の幾何プリミティブを取り出してステップ631に戻り、幾何プリミティブのセットアップを行う。ステップ633で他に描画する幾何プリミティブが存在しないと判断されると、ステップ630の処理を終えてステップ640に進み、フィルターを生成するためにサンプルのフィルタリングを実行する。
ステップ632において、幾何プリミティブ内にサンプルポイントがあると判断された場合にはステップ635に進み、幾何プリミティブにおいてサンプルを見ることができるかに関する可視チェックを行う。ステップ636では、サンプルを見ることができるかどうかを判断する。サンプルを見ることができなければ、ステップ637に進み、幾何プリミティブ内で次のサンプルポイントを探すために幾何プリミティブを走査し、ステップ632に進む。
ステップ636において、サンプルポイントを見ることができると判断した場合には、ステップ638でサンプルの色の計算を行い、ステップ639でサンプルの色と奥行きを、例えばサンプルバッファなどの1以上のバッファに格納する。そして処理はステップ637に戻り、幾何プリミティブ内で、次のサンプルポイントを見つけるために幾何プリミティブを走査する。
図10A〜図10Dは、画素801、802、811、812のそれぞれについて、3つの画素サンプルポイントを含むマルチサンプリング手法の変形例を示す。画素サンプルポイント803〜808、813〜818は、画素801、802、811、812の境界に配置されている。画素の境界は、サンプル共有の為の鏡映面としての役割を持ち、これにより表示メモリにおいて異なる画素801、802、811、812間でサンプルを共有することができる。
画素サンプルポイント803〜808、813〜818の少なくとも1つは、各画素801、802、811、812の角に配置されている。「角に」は、サンプルが画素の交差する2つの境界のほぼ角に有ることを意味し、例えば、角から、角で終焉している短い画素エッジの長さの1/3以下の距離にあることを意味している。しかしながら、角サンプルは、角サンプルが最大4つの画素値の計算に用いられるのであれば、実際の角からわずかにずれていても良い。
図10A〜図10Dに示すマルチサンプリング手法において、第1画素サンプルポイントは画素801、802、811、812の2つの境界の角に定義される。第2及び第3画素サンプルポイントは、第1画素サンプルがある画素の角と交差しない、画素801、802、811、812の別の境界に定義される。図10A〜図10Dにおいて、各画素801、802、811、812の第2及び第3画素サンプルは、2つの角の間の境界の中心に配置される。画素801において、画素サンプルポイント804、805はそれぞれ2つの角の間の境界の中心の中心に配置される。画素802において、画素サンプルポイント806、807はそれぞれ2つの角の間の境界の中心の中心に配置される。画素811において、画素サンプルポイント813、815はそれぞれ2つの角の間の境界の中心の中心に配置される。画素812において、画素サンプルポイント816、817はそれぞれ2つの角の間の境界の中心の中心に配置される。画素サンプルポイント803、808、814、818は、画素801、802、811、812の角にそれぞれ配置される。しかしながら、第2及び第3画素サンプルポイントは、サンプルが2つの近隣画素の値の計算に用いられるのであれば、境界上のどの位置に配置しても構わない。また、図10A〜図10Dにおいて、第2及び第3画素サンプルポイント804、805、806,807、813、815、816、817は、それぞれの画素801、802、811、812の境界上の角から同じ距離に配置されている。別の選択肢では、角からの距離は、各画素サンプルポイント804、805、806,807、813、815、816、817によって異なっていても良い。画素サンプルポイントは、各々1/3の重み(つまり、重みの合計が1となるように)を与えられている。使用できる他の重みの分配としては、第1画素サンプルに0.2、第2及び第3画素サンプルにそれぞれ0.4を与える。合計が1となるのであれば、他の重みを分配しても構わない。
図10Aから図10Dでは、各画素801、802、811、812上にグリッドを重畳して表し、角に可能な画素サンプルポイントを定義し、グリッドは、角サンプルポイントが存在する、画素801、802、811、812の画素の角と交差しない境界と交差する。各画素801、802、811、812の正確なサンプルポイントパターンを決定するための式の例は、それぞれ図10A〜図10Dに示している。図10A〜図10Dに示すように、図10A〜図10Dの式において、x0及びy0はx軸(“x”)とy軸(“y”)との原点をそれぞれ表す。
図11は、左端の画素901が、角にある1つの画素サンプルポイント903と、画素901の別の境界にある2つの画素サンプルポイント904〜905を含む場合の、マルチサンプリング手法を示す。以下の文において、この画素サンプル構成をパターンAと呼ぶ。また、画素サンプルポイント905〜907を持つ画素サンプル構成を示す第2の画素902をパターンBと呼ぶ。隣り合わせに配されたパターンAとパターンBの構成を調べると、パターンBの画素サンプルポイント905〜907は、パターンAの対応するポイント903〜905の鏡像であることが明らかである。パターンAは画素901の右垂直境界908で反射し、画素902のパターンBを構成する。従って、パターンBはパターンAの鏡像である。
パターンAとパターンBの画素サンプルポイントは、それぞれの下部水平境界909で反射してもよい。パターンAが、画素901の下部水平境界で反射したときのパターンAの鏡像である画素サンプル構成を示す第3画素911を、パターンCと呼ぶ。パターンCは画素サンプルポイント904、923〜924を有し、画素サンプルポイントの1つ(即ち、サンプルポイント904をパターンAと共有する。パターンBが、下部水平境界909で反射したときのパターンBの鏡像である画素サンプル構成を示す第4画素912を、パターンDと呼ぶ。パターンDは画素サンプルポイント906、924〜925を有し、画素サンプルポイントの1つ(即ち、サンプルポイント906)をパターンBと共有し、画素サンプルポイントの1つ(即ち、サンプルポイント924)をパターンCと共有する。
画素サンプルポイント903〜905の位置を垂直境界908について反射することにより、画素サンプルポイント905を2つの画素901、902により共有することができると共に、構成の対称性を崩し、アンチエイリアシング処理結果を向上させることができる。図11に示すマルチサンプリング手法では、画素の行及び画素の列毎に、1つのサンプルがある。これに対し、Quincunx手法では、一番上の行では2つのサンプルがある。
図12は、3×3画素構成の9画素1001〜1009におけるアンチエイリアシング手法を示す図である。左上端画素1001は、パターンA構成の3つの画素サンプルポイント1010〜1012を含む。第2画素1002は、パターンB構成の3つの画素サンプルポイント1012〜1014を含み、左上端画素1001の右側の境界で反射している。更に、画素1003はパターンA構成の3つの画素サンプルポイント1014〜1016を含む。図12から分かるように、上の行の画素1001〜1003は、画素ペア1001と1002、1002と1003がそれぞれ1つの画素サンプルポイント1012、1014を共有している。
画素の2行目は、画素サンプルポイント1011、1017〜1018のパターンC構成を示す画素1004から始まる。画素サンプルポイント1011は画素1004と画素1001により共有される。2行目の画素1005は、パターンD構成の3つの画素サンプルポイント1013、1018〜1019を含む。画素1005は、1つの画素サンプルポイント1013を画素1002と共有し、1つの画素サンプルポイント1018を画素1004と共有する。2行目の画素1006についても同様に3つの画素サンプルポイント1015、1019〜1020を有し、2つの画素サンプルポイント1015、1019を近隣画素1003、1005と共有する。
画素の3行目は、画素サンプルポイント1017、1021〜1022のパターンA構成を示す画素1007から始まる。画素サンプルポイント1017は画素1007と第4の1004により共有される。画素1008は、パターンB構成の3つの画素サンプルポイント1019、1022〜1023を含む。画素1008は、1つの画素サンプルポイント1019を画素1005と共有し、1つの画素サンプルポイント1022を左の画素1007と共有する。3行目の画素1009についても同様に3つの画素サンプルポイント1019、1024〜1025を有し、1つの画素サンプルポイント1019を近隣画素1006と共有する。
図12を調べることにより、最上行及び左端列を除いて、画素の角に配置された全ての画素サンプルポイントが4つの画素により共有されることは明らかである。従って、角の画素サンプルのほとんど(比較的大きな画素のグリッドについて)は、4画素に付き1回計算すればよく、画素当たりの計算コストが0.25となる。2つの画素により共有される角の画素の境界と交差しない境界上に配置された画素サンプルポイント1011、1012、1013、1015、1018、1021、1022、1023、1024は、2つの近隣画素について1回計算をすればよい。従って、これらの境界画素の計算コストは、1画素当たり0.5である。
従って、鏡映手法を用いることにより、最上部及び左端画素1001〜1004、1007を除く全ての画素は、画素1001〜1009の最終値を決定するために、平均で1.25(0.25+0.5+0.5=1.25)の新しい画素サンプルポイント値の計算を必要とする。別の選択肢では、右端列及び最下行の画素を除く全ての画素が、1.25サンプルのみを必要とする。最も知られたマルチサンプリング構成では、画素の最終値を決定するために、少なくとも2つの画素サンプルを計算しなければならない。
画素におけるサンプル位置は、左から右へラインを走査することにより得ることができる。他の選択肢では、メモリをより有効に利用するために、走査方向を1行おきに変える。なお、マルチサンプリング手法と共に、どのような走査手法を用いても構わない。
図13A〜図13Dはマルチサンプリング手法を示す。図13A〜図13Dに示すマルチサンプリング手法は、各画素801’、802’、811’、812’それぞれについて3つの画素サンプルを含むものとして示している。画素サンプルポイント803’〜808’、813’〜818’は、画素801’、802’、811’、812’の境界に配置されている。画素サンプルポイント801’、808’、814’、818’はそれぞれ画素801’、802’、811’、812’の角に配置されている。図13A〜図13Dのマルチサンプリング手法によれば、1以上の画素サンプルポイント804’、805’、806’、807’、813’、815’、816’、817’が、画素801’、802’、811’、812’のエッジ上の範囲内の所定位置に配置されている。図13A〜図13Dは、各画素サンプルポイント804’、805’、806’、807’、813’、815’、816’、817’の所定範囲を示し、各所定範囲を括弧で表している。「角に」は、サンプルが画素の交差する2つの境界のほぼ角に有ることを意味している。しかしながら、角サンプルは、角サンプルが最大4つの画素値の計算に用いられるのであれば、実際の角からずれていても良い。例えば、サンプルポイントが角の近くにあっても良く、そのようなサンプルポイントは、画素幅の1/3以下の距離に位置する。更に別の選択肢では、サンプリングパターンは、画素のエッジの近くまたは角に位置する画素サンプルポイントの他に、画素内にある1以上の画素サンプルポイントを含んでいても良い。
図13A〜図13Dのマルチサンプリング手法において、第1画素サンプルポイント803’、808’、814’、818’はそれぞれ、画素801’、802’、811’、812’の2つの境界の角に定義される。第2及び第3画素サンプルポイント804’、805’、806’、807’、813’、815’、816’、817’は、角画素サンプルと交差しない、画素801’、802”、811’、812’の別の境界に定義される。図13A〜図13Dにおいて、各画素801’、802”、811’、812’の第2及び第3画素サンプルポイント804’、805’、806’、807’、813’、815’、816’、817’は、2つの角の間の境界の中心に配置される。しかしながら、第2及び第3画素サンプルポイント804’、805’、806’、807’、813’、815’、816’、817’は、サンプルが2つの近隣画素の値の計算に用いられるのであれば、境界上のどの位置に配置しても構わない。画素サンプルは、各々1/3の重み(つまり、重みの合計が1となるように)を与えられている。従って、別の重みの分配例では、第1画素サンプルに0.2、第2及び第3画素サンプルにそれぞれ0.4を与える。
図13Aに示す各画素の正確な画素サンプルポイントパターンを決定するための式の例は以下の通りである:
803’=(x0, y0+1)
804’=(x0+0.5+offset(x0, y0, 0), y0)
805’=(x0+1, y0+0.5+offset(x0, y0, 1))
図13Bについては以下の通りである:
806’=(x0, y0+0.5+offset(x0, y0, 0))
807’=(x0+0.5+offset(x0, y0, 1), y0)
808’=(x0+1, y0+1)
図13Cについては以下の通りである:
813’=(x0+0.5+offset(x0, y0, 0), y0+1)
814’-(x0, y0)
815’=(x0+1, y0+0.5+offset(x0, y0, 1))
図13Dについては以下の通りである:
816’=(x0, y0+0.5+offset(x0, y0, 0)
817’=(x0+0.5+offset(x0, y0, 1), y0+1)
818’=(x0+1, y0)
なお、offset( )関数は、所定範囲における移動値を生成するための関数を示し、x0及びy0は、図13A〜図13Dに示されるように、x軸(“x”)及びy軸(“y”)の原点をそれぞれ示す。別の実施形態では、画素サンプル位置を決めるために定数0.5を式に含ませる必要は無く、これは、この情報をルックアップテーブルまたは擬似乱数関数に含ませることができるからである。例えば、画素サンプル位置804’の式を、
804’=(x0+offset(x0, y0, 0), y0)
としても良い。
移動(オフセット)した画素サンプルポイント803’〜808’、813’〜818’の位置は、構成の対称性を崩し、アンチエイリアシング効果を向上させることができる。ある選択肢においては、各画素サンプルポイント804’〜807’、813’、815’〜817’を、画素サンプリングパターンが少なくとも各画素において繰り返されないように、ルックアップテーブルから読み出した所定のオフセット位置に配置しても良い。別の選択肢では、画素サンプルポイント804’〜807’、813’、815’〜817’を、擬似乱数発生器を用いて配置しても良い。
図14は、左端画素901’が角にある1つの画素サンプルポイント903’と、画素901’の境界上の範囲内の所定位置にある2つの画素サンプルポイント904’〜905’とを含む場合のマルチサンプリング手法を示す。第2画素902’は、角にある画素サンプルポイント907’と、画素902’の境界上の範囲内の所定位置にある2つの画素サンプルポイント905’と906’とを有する。第3画素911’は、角にある画素サンプルポイント923’と、画素911’の境界上の範囲内の所定位置にある2つの画素サンプルポイント904’と924’とを有する。第4画素912’は、角にある画素サンプルポイント’925と、画素912’の境界上の範囲内の所定位置にある2つの画素サンプルポイント906’と924’とを有する。図14は、画素サンプルポイント904’、905’、906’、924’それぞれの所定範囲を示し、各所定範囲は括弧で表している。各括弧は画素エッジ上の一部にあるように表されているが、画素サンプルポイントは画素エッジ上のどの部分に配置されても良いことは理解されよう。図14に示すように、画素サンプルポイント904’、923’〜924’は画素サンプルパターンを構成し、画素サンプルポイント904’は画素901’と911’により共有されている。画素サンプルポイント906’、924’〜925’は画素サンプルパターンを構成し、画素サンプルポイント906’は画素902’と912’により共有され、画素サンプルポイント924’は画素911’と912’により共有されている。各画素サンプルポイントの所定位置は、例えば、ルックアップテーブルを参照したり、擬似無作為に決定しても良い。
選択された画素サンプル位置の移動またはオフセット配置により、画素サンプリング構成の対称性を崩し、よりよいアンチエイリアシング効果を達成することができる。更に、画素の行及び画素の列毎に、1つのサンプルがあるだけである。これに対し、例えばQuincunxでは、一番上の行の画素では2つのサンプルがある。
図15は、3×3画素構成の9画素1001’〜1009’におけるアンチエイリアシング手法を示す図である。画素1001’は、3つの画素サンプルポイント1010’〜1012’を含む。画素1001’の右にある画素1002’は、3つの画素サンプルポイント1012’〜1014’を含む。更に、画素1003’は3つの画素サンプルポイント1014’〜1016’を含む。図15から分かるように、上の行の画素1001’〜1003’は、画素ペア1001’と1002’、1002’と1003’がそれぞれ1つの画素サンプルポイント1012’、1014’を共有している。
画素の2行目は、画素サンプルポイント1011’、1017’〜1018’の構成を示す画素1004’から始まる。画素サンプルポイント1011’は画素1004’と画素1001’により共有される。2行目の画素1005’は、3つの画素サンプルポイント1013’、1018’〜1019’を含む。画素1005’は、1つの画素サンプルポイント1013’を画素1002’と共有し、1つの画素サンプルポイント1018’を画素1004’と共有する。2行目の画素1006’についても同様に3つの画素サンプルポイント1015’、1019’〜1020’を有し、2つの画素サンプルポイント1015’、1019’を近隣画素1003’、1005’と共有する。
画素の3行目は、画素サンプルポイント1017’、1021’〜1022’の構成を示す画素1007’から始まる。画素サンプルポイント1017’は画素1007’と画素1004’により共有される。画素1008’は、3つの画素サンプルポイント1019’、1022’〜1023’を含む。画素1008’は、1つの画素サンプルポイント1019’を画素1005’と共有し、1つの画素サンプルポイント1022’を画素1007’と共有する。3行目の画素1009’についても同様に3つの画素サンプルポイント1019’、1024’〜1025’を有し、1つの画素サンプルポイント1019’を近隣画素1006’と共有する。1以上の画素サンプルポイント1011’、1012’、1013’、1015’、1016’、1018’、1020’、1021’、1022’、1023’、1024’、1025’を、画素1001’〜1009’の境界上の範囲内の所定位置に配置しても良い。図15は、画素サンプルポイント1011’、1012’、1013’、1015’、1016’、1018’、1020’、1021’、1022’、1023’、1024’、1025’それぞれの所定範囲を示し、各所定範囲は括弧で示している。各括弧は画素エッジ上の一部分にあるように表されているが、画素サンプルポイントは画素エッジ上のどの部分に配置されても良いことは理解されるであろう。各画素サンプルポイントの所定位置は、例えば、擬似無作為に、またはルックアップテーブルを参照して決定しても良い。
図15を調べることにより、最上行及び左端列を除いて、画素の角に配置された全ての画素サンプルポイントが4つの画素により共有されることは明らかである。従って、角の画素サンプルのほとんど(比較的大きな画素のグリッドについて)は、4画素につき1回計算すればよく、画素当たりの計算コストは0.25となる。2つの画素により共有される、角の画素の境界と交差しない境界上に配置された画素サンプルポイント1011’、1012’、1013’、1015’、1016’、1018’、1020’、1021’、1022’、1023’、1024’、1025’は、2つの近隣画素について1回計算をすればよい。従って、これらの境界画素の計算コストは、1画素当たり0.5である。
従って、最上部及び左端画素1001’〜1004’、1007’を除く全ての画素は、画素1001’〜1009’の最終値を決定するために、平均で1.25(0.25+0.5+0.5=1.25)の新しい画素サンプルポイント値の計算を必要とする。別の選択肢では、右端列及び最下行の画素を除く全ての画素が、1.25サンプルのみを必要とする。最も知られたマルチサンプリング構成では、画素の最終値を決定するために、少なくとも2つの画素サンプルを計算しなければならない。
画素におけるサンプルポイントは、左から右へラインを走査することにより得ることができる。他の選択肢では、メモリをより有効に利用するために、走査方向を1行おきに変える。本発明の原則から離れない限り、どのような走査手法を用いても構わないことは理解されるであろう。
図15に示すマルチサンプリング手法を用いることにより、画素の最終値を計算するために最大3回、表示メモリにアクセスするだけでよい。しかしながら、画素値の1つまたはいくつか続く計算において必要とされるサンプルを一時的に保持する為の、オンチップキャッシュメモリなどの小型の高速メモリを追加することにより、表示メモリにアクセスする必要回数を、最小で1.25に下げることができる。このアプローチをQuincunx手法に用いると、画素の最終値を計算するために、最小2回、メモリにアクセスする必要がある。更に、1つのサンプル(即ち、第1画素の値の計算と、次の画素の値の計算に用いられるサンプル)を保持するために、更に小さい追加メモリを用いることができる。
図14を再び参照すると、表示メモリから画素サンプル903’〜905’を取得することにより、画素901’の最終値を計算することができる。そして、画素サンプル905’は、追加メモリに一時的に保持される。画素902’の最終値を計算するためには、表示メモリから画素サンプル906’〜907’を取得するだけで良く、画素サンプル905’は追加メモリから得ることができる。その結果、例えば、移動端末の176×176画素グリッドといった、大きなピクセルのグリッドの画素ほとんどを計算するために、表示メモリに2回アクセスするだけでよい。Quincunx手法を用いると、画素の最終値を計算するために、表示メモリに3回、追加メモリに2回アクセスする必要がある。
図16は、画素サンプルパターンを有するスーパーサンプリング手法に基づいて、ポリゴンなどの1以上の幾何プリミティブを描画するためのシステムを示す図である。中央処理装置(CPU)701は、データバス703を介してメモリ702に接続している。メモリ702はシステム上で実行されるアプリケーションプログラム(例えば、コンピュータゲームまたはコンピュータ支援設計(CAD)プログラム)を保持する。CPU701はメモリ702の指示を取り出して、所定タスクを行うためにその指示を実行する。ここでは、CPU701のタスクは、ディスプレイ705上に描くオブジェクトに関する情報をグラフィックス処理装置(GPU)704に提供することである。
GPU704は、プロセッサの形態、例えば、デジタル信号プロセッサ(DSP)や特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ハードワイヤードロジック(hard-wired logic)などであっても良い。別の選択肢としては、CPU701上で実行されても良い。GPU704もまたバス703に接続されているが、CPU701とGPU704間で大量の情報を転送する必要がある場合には、別の高速バス706を介してCPU701に接続してもよい。これにより、別の高速バス706によるデータ転送が、通常のバス703上のデータトラフィックを妨げることはない。
表示メモリ707もバス703に接続され、ディスプレイ705上に描く画像(つまり、フレーム)に関する、GPU704から送られる情報を格納する。更に詳しくは、表示メモリはサンプルバッファ707aとカラーバッファ707bとを含む。サンプルバッファ707aは、最終カラーバッファ707b内にある画素のほぼ2倍のサンプルを持つ。カラーバッファ707bは、画像の描画が完了した後、画面上に表示する画素の色を保持する。CPU701とGPU704間の相互接続と同様に、表示メモリ707は、別の高速バスによりGPU704に直接接続しても良い。GPU704と表示メモリ707は、通常、動画を生成するために用いられるため、これら2つのユニットのリンクは、通常、できるだけ速くすることが求められると共に、バス703の通常のトラフィックを妨げないことが求められる。
表示メモリ707は、共有バス703または別の高速バス709を介してビデオデジタル−アナログ変換器(VDAC)708に接続され、VDAC708は、カラーバッファ707bから情報を読み出して、アナログ信号(例えば、赤、緑、青(RGB)の複合信号)に変換し、変換されたアナログ信号は、ディスプレイ705上に各画素を描くためにディスプレイ705に供給される。GPU704は、カラーバッファ707bに保持された画素を生成するために、ここで説明した画素サンプリングパターンを用いてスーパーサンプリングまたはマルチサンプリング手順を実行する。
上述した詳細な説明は実施形態の例を示すもので、画素サンプルポイントの位置はテーブルルックアップまたは擬似無作為方法を用いて決定するものとしたが、本発明の原則に基づいて、画素サンプルポイントを配置する他の方法を用いても構わないことは理解されるであろう。
上述した詳細な説明は本発明の実施形態である。本発明の範囲は、この説明により制限されるべきものではない。例えば、本発明は、サンプルを画素のエッジに配置するどのサンプル手法とも共に用いることができることは理解されるであろう。また、本発明の種々の説明した実施形態におけるスーパーサンプリング手法は、コンピュータ及び移動端末を含む多くの装置において含むことができる。本発明の範囲は、代わりに、以下の請求項及び同等のものによって定義される。
図1Aは、アンチエイリアシングのための画素サンプリングパターンの一例を示す図である。 図1Bは、アンチエイリアシングのための画素サンプリングパターンを示す図である。 図2Aは、アンチエイリアシングのための画素サンプリングパターンの他の例を示す図である。 図2Bは、アンチエイリアシングのための画素サンプリングパターンを示す図である。 図3A及び図3Bは、画素サンプルパターンにおける画素サンプル位置の計算を示す図である。 図4は、画素サンプルパターンの鏡映工程を示す図である。 図5は、別の画素サンプルパターンの別の鏡映工程を示す図である。 図6A及図6Bは、画素サンプルパターンを示す図である。 図7は、画素サンプルパターンを示す図である。 図8は、画素サンプルパターンを示す図である。 図9A及び図9Bは、アンチエイリアシング処理された画像を生成するための方法を示す図である。 図10Aから図10Dは、各画素について3画素サンプルを含むマルチサンプリング手法の変形例を示す図である。 図11は、他のマルチサンプリング手法を示す図である。 図12は、3×3画素構成の9画素におけるアンチエイリアシング手法を示す図である。 図13Aから図13Dは、マルチサンプリング手法を示す図である。 図14は、マルチサンプリング手法を示す図である。 図15は、3×3画素構成におけるアンチエイリアシング手法を示す図である。 図16は、アンチエイリアシング処理された画像を生成するためのグラフィックシステムを示す概略ブロック図である。

Claims (28)

  1. エイリアシングを低減する為の方法であって、
    対応する複数の画素サンプル値を生成するために、画素の1以上のエッジ上にある複数の画素サンプルポイントで画像の画素をサンプリングする工程と、
    表示された画素値を生成するために、前記複数の画素サンプル値を合成する工程とを有し、
    前記画素の第1のエッジ上にある前記複数の画素サンプルポイントの少なくとも1つは、前記画素の第1のエッジ上において、予め決められた位置から所定の範囲内で変位された位置にあり、前記予め決められた位置からの変位は、擬似無作為に決められることを特徴とする方法。
  2. 前記擬似無作為に決められた変は、擬似乱数発生器を用いて決められることを特徴とする請求項1に記載の方法。
  3. 前記複数の画素サンプルポイントの少なくとも1つは、隣接画素の少なくとも1つの画素サンプルポイントと共有されることを特徴とする請求項1に記載の方法。
  4. 前記複数の画素サンプル値を合成する工程は、前記複数の画素サンプル値の平均を決定することを特徴とする請求項1に記載の方法。
  5. 前記複数の画素サンプル値は、複数の色値を有することを特徴とする請求項1に記載の方法。
  6. 前記表示された画素値は、色値を含むことを特徴とする請求項1に記載の方法。
  7. 記変は、0を含むことを特徴とする請求項1に記載の方法。
  8. 前記複数の画素サンプルポイントは、略非周期的なサンプルパターンであることを特徴とする請求項1に記載の方法。
  9. 前記複数の画素サンプルポイントは、4つの画素サンプルポイントから成ることを特徴とする請求項1に記載の方法。
  10. 前記複数の画素サンプルポイントは、3つの画素サンプルポイントから成ることを特徴とする請求項1に記載の方法。
  11. 前記複数の画素サンプルポイントは、
    画素の角に位置する第1の画素サンプルポイントと、
    画素の第1のエッジ上に位置する第2の画素サンプルポイントと、
    画素の第2のエッジ上に位置する第3の画素サンプルポイントと
    を含むことを特徴とする請求項1に記載の方法。
  12. 前記第3の画素サンプルポイントが、前記画素の第2のエッジ上において、予め決められた位置から所定の範囲内で擬似無作為に決められた変位量、変位した位置にあることを特徴とする請求項11に記載の方法。
  13. エイリアシングを低減する為のシステムであって、
    画像を保持するためのサンプルバッファと、
    対応する複数の画素サンプル値を生成するために、画素の1以上のエッジ上にある複数の画素サンプルポイントで画素サンプリングを行うプロセッサとを有し、
    前記画素の第1のエッジ上にある前記複数の画素サンプルポイントの少なくとも1つは、前記画素の第1のエッジ上において、予め決められた位置から所定の範囲内で擬似無作為に決められた変位量、変位された位置にあり、
    前記プロセッサは、少なくとも1つの表示された画素値を生成するために、複数の画素サンプル値を合成することを特徴とするシステム。
  14. 前記少なくとも1つの表示された画素値を保持するためのカラーメモリを更に有することを特徴とする請求項13に記載のシステム。
  15. 前記プロセッサは、中央処理装置(CPU)とグラフィック処理回路(GPU)とから成るグループから選択されることを特徴とする請求項13に記載のシステム。
  16. 前記プロセッサは、前記複数の画素サンプル値の平均を決定することにより前記複数の画素サンプル値を合成することを特徴とする請求項13に記載のシステム。
  17. 前記複数の画素サンプル値は、複数の色値を有することを特徴とする請求項13に記載のシステム。
  18. 前記少なくとも1つの表示された画素値は、色値を含むことを特徴とする請求項13に記載のシステム。
  19. 記変を決定するための擬似乱数発生器を更に有することを特徴とする請求項13に記載のシステム。
  20. 記変は、0を含むことを特徴とする請求項13に記載のシステム。
  21. 前記複数の画素サンプルポイントの少なくとも1つは、前記画像の隣接した画素の少なくとも1つの画素サンプルポイントに対応することを特徴とする請求項13に記載のシステム。
  22. 前記複数の画素サンプルポイントは、略非周期的なサンプルパターンであることを特徴とする請求項13に記載のシステム。
  23. 前記複数の画素サンプルポイントは、4つの画素サンプルポイントから成ることを特徴とする請求項13に記載のシステム。
  24. 前記複数の画素サンプルポイントは、3つの画素サンプルポイントから成ることを特徴とする請求項13に記載のシステム。
  25. 前記複数の画素サンプルポイントは、
    画素の角に位置する第1の画素サンプルポイントと、
    画素の第1のエッジ上に位置する第2の画素サンプルポイントと、
    画素の第2のエッジ上に位置する第3の画素サンプルポイントと
    を含むことを特徴とする請求項13に記載のシステム。
  26. 前記第3の画素サンプルポイントが、前記画素の第2のエッジ上において、予め決められた位置から所定の範囲内で擬似無作為に決められた変位量、変位した位置にあることを特徴とする請求項25に記載のシステム。
  27. コンピュータに、請求項1乃至12のいずれか1項に記載の方法の各工程を実行させるためのプログラム。
  28. 請求項27に記載のプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
JP2007531705A 2004-09-20 2005-09-19 画素サンプリングによるアンチエイリアシングのための方法及びシステム Expired - Fee Related JP4713591B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US61152204P 2004-09-20 2004-09-20
US60/611,522 2004-09-20
US11/087,269 US7348996B2 (en) 2004-09-20 2005-03-23 Method of and system for pixel sampling
US11/087,269 2005-03-23
PCT/EP2005/010085 WO2006032435A1 (en) 2004-09-20 2005-09-19 Method and system for anti-aliasing by pixel sampling

Publications (3)

Publication Number Publication Date
JP2008513862A JP2008513862A (ja) 2008-05-01
JP2008513862A5 JP2008513862A5 (ja) 2008-10-23
JP4713591B2 true JP4713591B2 (ja) 2011-06-29

Family

ID=35539669

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007531705A Expired - Fee Related JP4713591B2 (ja) 2004-09-20 2005-09-19 画素サンプリングによるアンチエイリアシングのための方法及びシステム

Country Status (7)

Country Link
US (1) US7348996B2 (ja)
EP (1) EP1792281B1 (ja)
JP (1) JP4713591B2 (ja)
KR (1) KR101143781B1 (ja)
CN (1) CN103325136A (ja)
AT (1) ATE513276T1 (ja)
WO (1) WO2006032435A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8851999B2 (en) 2002-12-10 2014-10-07 Ol2, Inc. System and method for improving the graphics performance of hosted applications
US8845434B2 (en) 2002-12-10 2014-09-30 Ol2, Inc. System and method for improving the graphics performance of hosted applications
US8840477B2 (en) 2002-12-10 2014-09-23 Ol2, Inc. System and method for improving the graphics performance of hosted applications
US8961316B2 (en) 2002-12-10 2015-02-24 Ol2, Inc. System and method for improving the graphics performance of hosted applications
US8422559B2 (en) * 2007-10-10 2013-04-16 Mediatek Inc. Matching-pixel sub-sampling motion estimation method for video compression
US8059909B2 (en) * 2008-04-29 2011-11-15 Sony Corporation Adaptive generation of irregular spatial sub-sampling for images
US20090322781A1 (en) * 2008-06-30 2009-12-31 Mikhail Letavin Anti-aliasing techniques for image processing
EP2141652A1 (en) * 2008-07-03 2010-01-06 Telefonaktiebolaget LM Ericsson (PUBL) Method and device for processing digital images
US20100013854A1 (en) * 2008-07-18 2010-01-21 Microsoft Corporation Gpu bezier path rasterization
US9375635B2 (en) 2009-03-23 2016-06-28 Sony Interactive Entertainment America Llc System and method for improving the graphics performance of hosted applications
JP4824105B2 (ja) * 2009-08-11 2011-11-30 株式会社フジヤマ 液体貯留装置
KR101606797B1 (ko) * 2009-10-28 2016-03-29 삼성디스플레이 주식회사 입체 영상 표시 장치 및 영상 표시 방법
KR101661166B1 (ko) * 2010-06-14 2016-09-29 연세대학교 산학협력단 3차원 영상 시스템에서 광선 추적 방법 및 장치
WO2013040261A1 (en) * 2011-09-14 2013-03-21 Onlive, Inc. System and method for improving the graphics performance of hosted applications
CN103763535B (zh) * 2014-01-29 2017-02-15 上海集成电路研发中心有限公司 超级采样的像素阵列、图像传感器、像素单元
US10147203B2 (en) 2014-09-10 2018-12-04 Nvidia Corporation Enhanced anti-aliasing by varying sample patterns spatially and/or temporally
US10096086B2 (en) 2014-09-10 2018-10-09 Nvidia Corporation Enhanced anti-aliasing by varying sample patterns spatially and/or temporally
KR102251444B1 (ko) 2014-10-21 2021-05-13 삼성전자주식회사 그래픽 프로세싱 유닛, 이를 포함하는 그래픽 프로세싱 시스템, 및 이를 이용한 안티 에일리어싱 방법
KR102635452B1 (ko) 2016-01-18 2024-02-13 어드밴스드 마이크로 디바이시즈, 인코포레이티드 컴퓨팅 시스템에서 안티-에일리어싱 동작 수행
US11076151B2 (en) 2019-09-30 2021-07-27 Ati Technologies Ulc Hierarchical histogram calculation with application to palette table derivation
US11915337B2 (en) 2020-03-13 2024-02-27 Advanced Micro Devices, Inc. Single pass downsampler
CN112102435B (zh) * 2020-09-24 2023-08-01 安徽文香科技股份有限公司 一种几何图形绘制的方法、装置、设备及存储介质
EP4272202A4 (en) * 2020-12-29 2024-08-14 Qualcomm Incorporated METHODS AND APPARATUS FOR ADAPTIVE DOWNSAMPLING FOR MURA EFFECT CORRECTIONS
US12204723B2 (en) * 2023-11-30 2025-01-21 Google Llc Mitigating display diffraction flares for under-display sensing

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5239624A (en) * 1985-06-19 1993-08-24 Pixar Pseudo-random point sampling techniques in computer graphics
JP3151079B2 (ja) * 1993-04-05 2001-04-03 日本電信電話株式会社 アニメーションのエイリアシング除去方法
JP4125789B2 (ja) * 1996-11-04 2008-07-30 インテル・コーポレーション コンピュータ画像システムにおいてポリゴンのエッジをアンチエイリアシングするための方法および装置
US6483504B1 (en) * 1998-02-17 2002-11-19 Sun Microsystems, Inc. Graphics system having a super sampled-sample buffer with efficient storage of sample position information
US6947057B2 (en) * 2000-01-11 2005-09-20 Sun Microsystems, Inc. Rendering lines with sample weighting
US20020140706A1 (en) * 2001-03-30 2002-10-03 Peterson James R. Multi-sample method and system for rendering antialiased images
US7145577B2 (en) * 2001-08-31 2006-12-05 Micron Technology, Inc. System and method for multi-sampling primitives to reduce aliasing
US6870542B2 (en) * 2002-06-28 2005-03-22 Nvidia Corporation System and method for filtering graphics data on scanout to a monitor
US6922199B2 (en) * 2002-08-28 2005-07-26 Micron Technology, Inc. Full-scene anti-aliasing method and system
EP1431920B1 (en) 2002-12-20 2009-03-11 Telefonaktiebolaget LM Ericsson (publ) Low-cost supersampling rasterization
JP4456003B2 (ja) * 2002-12-20 2010-04-28 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 低コスト・スーパーサンプリング・ラスタライゼーション

Also Published As

Publication number Publication date
JP2008513862A (ja) 2008-05-01
KR20070054660A (ko) 2007-05-29
EP1792281B1 (en) 2011-06-15
EP1792281A1 (en) 2007-06-06
US7348996B2 (en) 2008-03-25
ATE513276T1 (de) 2011-07-15
KR101143781B1 (ko) 2012-05-11
WO2006032435A1 (en) 2006-03-30
US20060061592A1 (en) 2006-03-23
CN103325136A (zh) 2013-09-25

Similar Documents

Publication Publication Date Title
JP4713591B2 (ja) 画素サンプリングによるアンチエイリアシングのための方法及びシステム
US6967663B1 (en) Antialiasing using hybrid supersampling-multisampling
JP3761085B2 (ja) 画像処理装置及びその構成部品、レンダリング処理方法
US6982723B1 (en) Method and apparatus for eliminating unwanted steps at edges in graphic representations in the line raster
US7876332B1 (en) Shader that conditionally updates a framebuffer in a computer graphics system
JP4327105B2 (ja) 描画方法、画像生成装置、および電子情報機器
TW201539374A (zh) 用於高解析度顯示緩衝器之有效構造之方法
CN1809840B (zh) 创建采样图案的方法和设备
US8547395B1 (en) Writing coverage information to a framebuffer in a computer graphics system
JP4456003B2 (ja) 低コスト・スーパーサンプリング・ラスタライゼーション
US7511717B1 (en) Antialiasing using hybrid supersampling-multisampling
US7817165B1 (en) Selecting real sample locations for ownership of virtual sample locations in a computer graphics system
CN100353382C (zh) 低成本超级采样光栅化
JP4801088B2 (ja) 画素サンプリングの方法及び装置
JP3872056B2 (ja) 描画方法
JP2011028641A (ja) 画像処理装置及び画像処理方法
JPH10222690A (ja) 3次元画像生成方法および装置とこの方法および装置を用いた3次元画像処理装置
JP2009134773A (ja) 描画方法、画像生成装置、および電子情報機器
HK1113845A (en) Method and system for anti-aliasing by pixel sampling

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080905

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080905

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101004

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101222

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110120

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110304

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110324

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees