JP4698052B2 - グラフィクスシステムのエイリアス補正方法および装置 - Google Patents
グラフィクスシステムのエイリアス補正方法および装置 Download PDFInfo
- Publication number
- JP4698052B2 JP4698052B2 JP2001094538A JP2001094538A JP4698052B2 JP 4698052 B2 JP4698052 B2 JP 4698052B2 JP 2001094538 A JP2001094538 A JP 2001094538A JP 2001094538 A JP2001094538 A JP 2001094538A JP 4698052 B2 JP4698052 B2 JP 4698052B2
- Authority
- JP
- Japan
- Prior art keywords
- pixel
- color
- sampling
- graphics
- frame buffer
- 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
- 238000000034 method Methods 0.000 title claims description 67
- 238000012937 correction Methods 0.000 claims description 110
- 239000000872 buffer Substances 0.000 claims description 101
- 238000005070 sampling Methods 0.000 claims description 77
- 230000015654 memory Effects 0.000 claims description 70
- 239000000203 mixture Substances 0.000 claims description 33
- 230000006870 function Effects 0.000 claims description 20
- 239000012634 fragment Substances 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 16
- 238000002156 mixing Methods 0.000 claims description 13
- 238000012952 Resampling Methods 0.000 claims description 6
- 238000012546 transfer Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 22
- 238000001914 filtration Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 12
- 230000000694 effects Effects 0.000 description 12
- 238000009877 rendering Methods 0.000 description 12
- 238000006243 chemical reaction Methods 0.000 description 11
- 230000002093 peripheral effect Effects 0.000 description 9
- 230000003139 buffering effect Effects 0.000 description 8
- 230000002452 interceptive effect Effects 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 8
- 230000005236 sound signal Effects 0.000 description 6
- 230000000007 visual effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 238000005286 illumination Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000002411 adverse Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000004049 embossing Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241000086550 Dinosauria Species 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 206010047571 Visual impairment Diseases 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000013213 extrapolation Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000009182 swimming Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/20—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
- A63F2300/203—Image generating hardware
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
- Image Processing (AREA)
Description
【発明の分野】
この発明はコンピュータグラフィクスに関し、より特定的には家庭用ビデオゲームプラットフォームのようなインタラクティブなグラフィクスシステムに関する。より詳細にいうと、この発明は、コンピュータグラフィクス表示からギザギザしたエッジを除去するためのエイリアス補正技術に関する。さらに特定的には、この発明は、グラフィクスシステムにおけるフルスクリーンエイリアス補正(full-scene anti aliasing)およびデフリッカリング(de-flickering)のための改良された方法および装置に関する。
【0002】
【発明の背景】
多くの人々はかなりリアルな恐竜,エイリアン,生き生きとしたおもちゃおよび他の空想的な動物を含む映画をかつて見たことがある。そのようなアニメーションはコンピュータグラフィクスによって可能とされた。そのような技術を用いて、コンピュータグラフィクスのアーティストは、各オブジェクトがどのように見えるべきかや時間の経過とともに外見上どのように変化すべきかを特定し、コンピュータは、そのオブジェクトをモデル化してテレビジョンやコンピュータスクリーンのようなディスプレイに表示する。コンピュータは、表示される映像の各部分を、場面中の各オブジェクトの位置や向き,各オブジェクトを照らすように見える照明の方向,各オブジェクトの表面テクスチャ,および他の要素に正確に基づいて、色付けしまた形作るために必要な多くのタスクを実行する。
【0003】
コンピュータグラフィクスの生成は複雑であるので、ここ数年前のコンピュータによって生成された3次元(3D)グラフィクスは、ほとんど高価な特殊なフライトシミュレータ,ハイエンドグラフィクスワークステーションおよびスーパーコンピュータに限られていた。大衆は映画や高価なテレビコマーシャルにおいてこれらのコンピュータシステムによって生成された映像のいくつかを見たが、大部分の人はグラフィクスを生成しているコンピュータに対して実際に相互作用をさせることはできない。たとえば、Nintendo64(登録商標)や今や利用可能であるパソコン用の種々の3Dグラフィクスカードのような比較的安価な3Dグラフィクスプラットフォームの利用によって、このすべてが変わった。今や、家庭や会社の比較的安価なコンピュータグラフィクスシステム上でエキサイティングな3Dアニメーションやシミュレーションに対して相互作用を及ぼすことができる。
【0004】
グラフィクスシステムの設計者が過去に直面した問題は、表示したイメージ中のエイリアシングに関連する悪い視覚上の効果を如何に回避するかということである。最新のコンピュータグラフィクス表示装置は、ピクセルと呼ばれるカラードットのアレイを表示することによってイメージを作る。家庭用カラーテレビ受像機やコンピュータモニタはこの方法で動作する。この種のピクセル関連表示装置上でグラフィクスイメージを表示するとき、グラフィクスシステムおよび表示装置の固有の特性のために、階段効果が結果的に生じる。表示されたディジタルイメージは非常に小さいピクセルのアレイもしくはグリッドからなっているので、イメージ中のオブジェクトのエッジがギザギザしてあるいは階段状に見えてしまう。たとえば、スムーズなエッジがピクセルグリッドのために、階段状のまたはギザギザした線として見える。人々はこの階段状のもしくはギザギザしたエッジの効果を「ジャギー(jaggies) 」もしくは「ステアケーシング(staircasing) 」と呼ぶが、その技術的な名称は「エイリアシング(aliasing)」である。
【0005】
エイリアシングはサンプリングに基づくシステムの固有の特徴である。レンダリングしたプリミティブのエッジや交点に沿ってジャギーが存在するとあまり面白くないイメージが結果的に生じる。さらに、テクスチャの「スイミング(swimming)」もしくは「フリッカリング(flickering)」のようなエイリアシングの他の視覚上の攪乱効果がレンダリングされたシーン全体に亘って生じる。これらのイライラする側面効果はアニメーション中において非常にしばしば気にかかる。
【0006】
このエイリアシング問題を解決するために過去において多くの仕事がなされた。比較的高価なグラフィクスシステムは、エイリアシングの視覚効果を減じもしくは除去する「アンチエイリアシング(anti-aliasing: エイリアス補正)」を用いる。1つの共通のエイリアス補正技術は超サンプリング/ポストフィルタリングの方法に基づく。この方法を用いると、グラフィクスシステムは表示装置が表示できるサンプルより多いサンプル(サブピクセル)を有するサンプリングイメージを発生する。グラフィクスシステムは高解像度のサンプリングイメージをフィルタリングし、表示装置の解像度に合わせてそのイメージを再サンプリングする。サンプリング期間中、グラフィクスシステムは、表示装置上へそれを表示する前に、サンプリングイメージの解像度を故意に粗雑にする。或る例では、グラフィクスシステムは、スクリーン上に表示されるべきピクセルについて或る数のサブピクセルを発生し、そのサブピクセルをブレンドして対応するスクリーンピクセルを作る。
【0007】
このようなエイリアス補正技術は、ジャグジーを減じることによってイメージの見かけを改善する。イメージがディスクリートなピクセルからなっていたとしても、ピクセルを不鮮明にしたりブレンドすることはエッジをスムーズにする。なぜなら、その方法が、ピクセルカラーパターンにおける一層緩やかな変化を与えるからである。結果として、見る者の目はエイリアシングが生じたエッジに比べてよりスムーズでより正確なものとしてエッジを知覚する。不鮮明にすることがエッジをより一層正確でかつリアルに見せるということは正確には直感的ではなく、これは正確には共通的に用いられるエイリアス補正技術が如何に動作するかということである。
【0008】
しかしながら、残念なことに、上で述べた超サンプリング(super-sampling)によるエイリアス補正方法は、かなりの量のメモリや他のリソースを必要とする。たとえば、スクリーンピクセル毎にn個のサブピクセルをストアすることは、さもなければ必要がないサイズのn倍のメモリを必要とする。さらに、スクリーンピクセル毎にn個のサブピクセルを発生することは、グラフィクスパイプラインがたくさんの余分な仕事をしなければならないということである。また、ブレンド演算は非常に煩雑で、付加的な回路や他の処理リソースを必要とする。結果として、エイリアス補正に対する超サンプリングによる方法は、典型的には、ハイエンドワークステーションのような過去の高価なグラフィクスシステムにおいては見られたが、ビデオゲームプラットフォームのような安価なシステムにおいて使用するためには「高価」すぎた(要求される処理およびメモリリソースについて)。
【0009】
他のエイリアス補正技術が過去に用いられていて、その技術は、計算の複雑さやメモリ要求を減じるように適用範囲(coverage)値を用いる。そのような技術は、アメリカ特許第5,742,277号に開示されている。この技術は、フレームバッファからのシルエットエッジ上に落ちるシルエットエッジピクセルについてカラー値を抽出することによって、シルエットエッジをエイリアス補正する方法を提供し、その抽出したカラー値がシルエットエッジピクセル内に落ちる1つまたはそれ以上の前面ポリゴンを表す。この技術は、シルエットエッジピクセルに最も近い隣接ピクセルのカラーに基づいてシルエットエッジピクセルの背面カラーを予測する。予測した背面カラーは1つまたはそれ以上の前面ポリゴンによって占有されないシルエットエッジピクセルの一部のカラーを表す。シルエットエッジピクセルの出力カラーは抽出したカラーと予測した背面カラーとの間を補間することによって決定される。このエイリアス補正技術はレンダリングしたシーンにおけるジャグジーを減じることができるが、所要の予測ステップが精度に関して明らかな欠点を持つ。
【0010】
他のエイリアス補正方法がアメリカ特許第6,072,500号および第5,684,939号に開示されている。この先行技術では、エイリアス補正した表示データを発生する方法は、複数の超サンプルを含むピクセルの現在の状態を表示するピクセルメモリをストアし、このピクセルメモリは複数のフィールドを有する領域マスクを含み、各フィールドは超サンプルの独特のものに関連付けられていて、そしてピクセルパケットを受信し、このピクセルパケットはピクセル中のポリゴン適用範囲を示し、そしてイメージメモリ中に第2のカラー値をストアし、この第2のカラー値は第1のカラー値の関数であり、現在のピクセル状態とピクセルパケットとに基づいて新たなピクセル状態を判断し、新たなピクセル状態に基づいてピクセルメモリを更新し、もしその新たなピクセル状態が各超サンプルのカラー値が第2のカラー値かまたは第3のカラー値のいずれかであるとき、第2のカラー値を有する超サンプルに関連するフィールドの各々がイメージメモリを識別する識別子をストアし、そしてピクセルメモリに基づいてエイリアス補正した表示データを作成する。この技術の1つの欠点は、ピクセルメモリにストアされるべき領域マスクを有することであり、これがピクセルメモリのサイズやコストを相応的に増大させる。
【0011】
概略的にいうと、種々のフルシーンエイリアス補正(FSAA)技術が、成功の程度を変えながら、エイリアス補正問題を緩和するために開発されているが、より有効な方法のいくつか(たとえば従来の超サンプリングやピクセル毎のオブジェクト精度領域のサンプリングを含む)は、家庭用ビデオゲームプラットフォームのような低価格のグラフィクスシステム内において実現するためには、コンピュータ的でありすぎかつ効果である。低価格システムのために開発された他の技術は、部分的には有効ではあるが、精度の問題で苦しんでいる。したがって、過去に多くの仕事がなされたが、エイリアス補正におけるさらなる改良が望まれている。
【0012】
【発明の概要】
この発明は、グラフィクスシステムにおけるエイリアス補正のための改良された技術および装置を提供することによって、この問題を解決する。
【0013】
この発明の1つの局面によれば、内蔵フレームバッファを用いるエイリアス補正のための具体的な技術が開発された。たとえば、イメージデータ表現が内蔵フレームバッファから他の宛先へ転送される「コピーアウト」プロセス中のオンザフライでエイリアス補正を行う方法を発見した。そのような技術は、高効率でかつコスト的に有利なエイリアス補正方法を提供し、低価格システムにおいても実際に実現可能である。
【0014】
以前に必要とされていたより少ない数のマルチサンプルを用いて高品質のエイリアス補正を達成した。典型的なマルチサンプル方法では「n」サンプルと再構成のための1×1ボックスフィルタとを用いる。具体的なサンプリングパターン(すなわち、マルチサンプリング空間配置)と、いくつかのピクセルの間でいくつかのマルチサンプルを「共用する」具体的なフィルタ構成の組み合わせとを用いることによって、「n」サンプリングパターンおよび1つのピクセル領域にのみまたがって広がる再構成/エイリアス補正フィルタより一層良好なエイリアス補正を達成することができる。
【0015】
たとえば、ピクセル毎の3つのマルチサンプル、および1×2再構成フィルタ(すなわち、現在のピクセルの直上および直下の隣接ピクセル領域の半分に広がる垂直フィルタ)を用い、かつ特定のサンプリングパターンを用いることによって、垂直エッジ上の6サンプルエイリアス補正と等価なものを達成した。同じように、1.33×2再構成フィルタと異なるサンプリングパターンとを用いることによって、垂直エッジ上の6サンプルエイリアス補正および水平エッジ上の4サンプルエイリアス補正と等価なものを達成した。より直感的なレベルで、ピクセル間のサンプリングパターンを故意に変更する(ジッタリング:jittering)ことによって、エッジに沿ったノイズを犠牲にしてよりよいエイリアス補正を達成し、次いで、エイリアス補正の目的のためのピクセル間でいくつかのマルチサンプルを共用しながら、再構成フィルタの大きさを1×1より大きくして付加的なノイズを減じもしくは除去し、それによって、フレームバッファ中にピクセルベースでストアする場合に比べてより一層のマルチサンプリングの効果を達成できる。このような、フレームバッファ中にストアするマルチサンプルの数を増やす必要なしにエイリアス補正の品質における劇的な向上は、家庭用ビデオゲームプラットフォームやパーソナルコンピュータのグラフィクスカードのような低価格グラフィクスシステムのために特別な利点を有する。
【0016】
したがって、この発明の1つの局面によれば、内蔵フレームバッファに結合されたグラフィクス回路を含むグラフィクスシステムは、イメージのマルチサンプリングデータ表現をレンダリングし、そのレンダリングしたマルチサンプリングデータ表現を内蔵フレームバッファ中にストアする。次いで、エイリアス補正したイメージを提供するために、内蔵フレームバッファの内容を再サンプリングする。イメージを内蔵フレームバッファから他の位置へ転送するプロセス中にイメージ上にエイリアス補正フィルタを適用する。
【0017】
この発明の他の局面によれば、複数のピクセルを含むイメージを発生する形式のグラフィクスシステムにおいて実現されるエイリアス補正方法は、複数のピクセルの各々に関連する複数のサンプルを有するイメージのマルチサンプリングデータ表現を発生する。そして、表示用のエイリアス補正イメージを作るために、そのマルチサンプリングデータ表現を再サンプリングする。再サンプリングは、複数のサンプルの少なくとも1つを複数のイメージピクセル中へブレンドすることを含む(すなわち、複数の再構成スクリーンピクセル間でマルチサンプルのいくつかを共用する)。
【0018】
この発明によって提供されるさらに他の局面によれば、エイリアス補正方法においては、ピクセルアレイの各ピクセル中に複数の超サンプルを与える。ピクセルアレイの隣接ピクセル内における超サンプルの空間配置を変更し、アレイに、少なくとも2つの隣接ピクセルの超サンプルを含むピクセルアパーチャを有するエイリアス補正フィルタを適用する。
【0019】
この発明によって提供されるより詳細な局面によれば、エイリアス補正方法は、
・内蔵フレームバッファ内において、ピクセルアレイの各ピクセル中で複数の(たとえば、3つの)超サンプリング位置を規定し、その超サンプリング位置は対応するカラー値を有し、そして
・内蔵フレームバッファを他の宛先へコピーアウトする動作中に1組のピクセル超サンプリングカラー値をブレンドする垂直カラーデータブレンドフィルタを適用する。
【0020】
限定しない別の実施例の方法によれば、以下のものがこの発明の局面によって提供される追加的な特徴である。
【0021】
・プログラマブルな超サンプリング位置の適用範囲マスクが超サンプリングイメージを効率的に発生する。
【0022】
・内蔵フレームバッファから外部フレームバッファへのコピーアウト動作中に適用される1次元(たとえば、垂直)フィルタが超サンプリングイメージをブレンドするために使用され得る。
【0023】
・隣接フィルタからの超サンプルがエイリアス補正ブレンドに含まれ得る。
【0024】
・ブレンドにおける超サンプルの位置およびフィルタリングの重みがプログラマブルである。
【0025】
この発明の他の局面は、グラフィクスシステムにおいてフルシーンエイリアス補正および/またはインタレースの表示のデフリッカリングを与えるためのピクセルデータ処理装置は次のものを含む。
【0026】
・複数のピクセルについての超サンプリングピクセルデータを含むフレームバッファ、
・フレームバッファからの超サンプリングピクセルカラーデータを受けるように接続された複数のラインバッファ、および
・ラインバッファに結合されたマルチタップの選択可能な重み付けの(multi-tap selectable-weight)ブレンドフィルタ。ただし、このブレンドフィルタは、垂直配置のマルチピクセルフィルタサポート領域によって特徴付けられていて、そこでは、複数の垂直配置ピクセルからの1つまたはそれ以上のカラーデータサンプルがブレンドされてピクセルカラーを形成する。
【0027】
この発明の局面に従って提供されるエイリアス補正装置の他の例は次のものを含む。
【0028】
・ピクセルアレイの少なくとも1つのピクセル中において複数の超サンプリング位置を規定する少なくとも1つの記憶位置。この超サンプリング位置は対応するカラー値を有する。
【0029】
・少なくとも1つのピクセル中における複数の超サンプリング位置の各々毎に、複数の超サンプリング位置が、レンダリングしたプリミティブフラグメント(primitive fragments)によってカバーされるかどうかを特定する適用範囲マスク。
【0030】
・プログラマブルな重み付け関数に基づいて結果的に得られた超サンプリングカラー値の組をブレンドする1次元カラーデータブレンドフィルタ。
【0031】
1つの具体的な、限定的でない装置において、記憶位置はピクセル中の3つの超サンプリング位置を規定する。フィルタは、ピクセルに対応する超サンプリング値を、そのピクセルに隣接する少なくとも1つの別のピクセルに対応する超サンプリングカラー値でブレンドする。フィルタは、3つの垂直配置ピクセルに対応する超サンプリングカラー値をブレンドしてスクリーンピクセル出力を作成する。
【0032】
この発明の局面に従って提供される別の具体的なエイリアス補正技術は次のことによって動作する。
【0033】
・複数の隣接ピクセルの各々毎にそのピクセルに関連する超サンプリングカラーデータを得るために3つのサンプル位置を規定すること。
【0034】
・そのような位置に対応するサンプルをイネーブル/ディスエーブルするために適用範囲マスクを使用すること。その適用範囲マスクは、レンダリングしたプリミティブフラグメントによって占有される各ピクセルの対応する部分に少なくとも部分的に基づいている。
【0035】
・ピクセルの最終カラー値を与えるために位置から得られる結果的なカラーデータをブレンドすること。
【0036】
この発明の別の局面は、第1,第2,第3および第4および中心を有するピクセルクォードラプレットについて、エイリアス補正のための3つの超サンプリング位置の最適な組を規定する方法は、次のステップを含む。
【0037】
・クォードラプレット中心に関連する以下の座標(範囲1−12)でのピクセルクォードラプレットにおける第1ピクセルのための第1組の超サンプリング位置を規定し、(12,11)(4,7)(8,3)、
・クォードラプレット中心に関連する以下の座標(範囲1−12)におけるピクセルクォードラプレットの第2ピクセルのための第2組の超サンプリング位置を規定し、(3,11)(11,7)(7,3)、
・クォードラプレット中心に関連する次の座標(範囲1−12)におけるピクセルクォードラプレット中の第3ピクセルのための第3組の超サンプリング位置を規定し、(2,2)(10,6)(6,10)、そして
・クォードラプレット中心に関連する次の座標(範囲1−12)でのピクセルクォードラプレットにおける第4ピクセルのための第4組の超サンプリング位置を規定する、(9,2)(1,6)(5,6)。
【0038】
より詳細にいえば、この発明の好ましい実施例は、プログラマブルな位置での超サンプリング装置を実現しかつ選択可能な重み付けの垂直ピクセルサポート領域のブレンドフィルタを使用することによって、効率的なフルシーンエイリアス補正を提供する。2×2ピクセルグループ(クォードラプレット)のために、各超サンプリングピクセル内における3つのサンプルの位置が個別的に選択可能である。好ましくは、12ビットのマルチサンプル適用範囲マスクを使用して、プリミティブのフラグメントおよび任意の予め計算したzバッファによって占有される各ピクセルの部分に基づいてピクセルクォードラプレット内の12サンプルのどれをイネーブルするかを決定する。各超サンプリングピクセルは、3つの垂直配置ピクセルからの7つのサンプルを結合するピクセルブレンドフィルタ装置を用いて、ローカルメモリから外部フレームバッファへのコピーアウト動作中にフィルタリングされる。3つのサンプルが現在のピクセルから取られ、2つのサンプルが現在のピクセルの直上のピクセルから取られ、2つのサンプルが現在のピクセルの直下のピクセルから取られる。ピクセルについての最終カラーを決定するために、イネーブルされたサンプルに基づいて加重平均が計算される。ブレンドフィルタにおいて用いられている重み付け係数がまた個別的にプログラマブルである。インタレースされたビデオ表示のために細い1ピクセル高の水平ラインのデフリッカリングが、交互のラインにおけるピクセルからのカラーサンプルをブレンドするためのピクセルブレンドフィルタを使用することによって達成される。
【0039】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【0040】
【実施例】
図1は対話型(インタラクティブ)3Dコンピュータグラフィクスシステム50の一例を示す。システム50は対話型3Dビデオゲームをステレオ音声とともにプレイするのに用いられ得る。これはまた多様な他のアプリケーションにも用いられ得る。
【0041】
この実施例において、システム50は3次元世界のディジタル表現ないしモデルをインタラクティブにかつリアルタイムに処理することができる。システム50は、任意の視点から、その世界の一部または全部を表示することができる。たとえば、システム50は、手持ちコントローラ52aおよび52bまたは他の入力デバイスからのリアルタイム入力に応答して、視点をインタラクティブに変化できる。このことによって、ゲームプレーヤは、その世界内もしくは外の誰かの目を通してその世界を見ることができる。システム50は、リアルタイム3Dインタラクティブ表示を必要としないアプリケーション(たとえば2D表示の発生やおよび/またはノンインタラクティブ表示)に使用できるが、高品質の3D映像を非常に速く表示する能力は、非常にリアルでエキサイティングなゲームプレイや他のグラフィクスインタラクションを創造するのに使用され得る。
【0042】
システム50を用いてビデオゲームまたは他のアプリケーションをプレイするために、ユーザはまず、主ユニット54を、カラーテレビ56または他の表示装置に、両者の間にケーブル58を接続することによって、接続する。主ユニット54はカラーテレビ56を制御するためのビデオ信号およびオーディオ信号を発生する。ビデオ信号はテレビジョン画面59上に表示されている映像を制御するものであり、オーディオ信号はテレビのステレオスピーカ61Lおよび61Rを通して音声として再生される。
【0043】
ユーザはまた主ユニット54を電源につなぐ必要がある。この電源は従来のACアダプタ(図示せず)であってよく、そのACアダプタは家庭用の標準的な壁ソケットに差し込まれ、家庭用電源を、主ユニット54を駆動するのに適した低いDC電圧信号に変換する。他の実施例ではバッテリが用いられてもよい。
【0044】
ユーザは主ユニット54を制御するために手持ちコントローラ52aおよび52bを用いる。コントロール60は、たとえば、3D世界内においてテレビ56に表示されているキャラクタが移動すべき方向(上または下、左または右、近づいてまたは遠ざかって)を指示するために使用され得る。コントロール60は、また他のアプリケーションのための入力(たとえばメニュー選択,ポインタ/カーソル制御,その他)を与える。コントローラ52は多様な形態をとり得る。この実施例においては、図示されるコントローラ52は、各々ジョイスティック,押しボタンおよび/または方向スイッチのようなコントロール60を含む。コントローラ52は、ケーブルによって、もしくは電磁波(たとえば電波または赤外線)を介してワイヤレスで、主ユニット54に接続され得る。
【0045】
ゲームのようなアプリケーションをプレイするために、ユーザはビデオゲームもしくはプレイしたいと思う他のアプリケーションをストアしている適宜の記憶媒体62を選択し、その記憶媒体を主ユニット54のスロット64に差し込む。記憶媒体62は、たとえば、特別にエンコードされおよび/または記号化された光学的ならびに/もしくは磁気的ディスクであってよい。ユーザは主ユニット54をオンするために電源スイッチ66を操作し、主ユニットがその記憶媒体62にストアされているソフトウェアに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザは主ユニットに入力を与えるためにコントローラ52を操作する。たとえば、コントロール60を操作することによってゲームもしくは他のアプリケーションをスタートさせる。他のコントロール60を動かすことによって、動画キャラクタを異なる方向に移動させ、または3D世界におけるユーザの視点を変化させる。記憶媒体62にストアされている具体的なソフトウェアによって、コントローラ52上の種々のコントロール60は異なる時間で異なる機能を達成することができる。
全体システムの例
図2はシステム50の例示的なコンポーネントのブロック図であり、重要なコンポーネントは、
・主プロセサ(CPU)110、
・主メモリ112、および
・グラフィクス/オーディオプロセサ114
を含む。
【0046】
この実施例において、主プロセサ110(たとえばIBMパワーPC750の改良版)は、手持ちコントローラ52(および/または他の入力デバイス)からの入力をグラフィクス/オーディオプロセサ114を通して受ける。主プロセサ110はユーザ入力にインタラクティブに応答し、光ディスクドライブのような大容量記憶媒体アクセス装置106を介して、たとえば外部記憶媒体62から供給されるビデオゲームもしくは他のプログラムを実行する。一例として、ビデオゲームプレイの状況では、主プロセサ110は、多様なインタラクティブ制御機能に加えて、衝突検出および動画処理を実行する。
【0047】
この実施例では、主プロセサ110は3Dグラフィクス/オーディオコマンドを発生し、それらをグラフィクス/オーディオプロセサ114に送る。グラフィクス/オーディオプロセサ114はこれらのコマンドを処理し、ディスプレイ59上での可視映像を生成し、ステレオスピーカ61Rおよび61Lもしくは他の適宜の音声発生デバイス上でのステレオ音声を生成する。
【0048】
実施例のシステム50はビデオエンコーダ120を含み、このビデオエンコーダは、グラフィクス/オーディオプロセサ114からの映像信号を受けて、その映像信号をコンピュータモニタや家庭用テレビ56のような標準的な表示装置上での表示に適したアナログおよび/またはディジタルビデオ信号に変換する。システム100はまたオーディオコーデック(圧縮器/伸長器)122を含み、このオーディオコーデックはディジタル化されたオーディオ信号を圧縮しかつ伸長するとともに、必要に応じてディジタルオーディオ信号のフォーマットとアナログオーディオ信号のフォーマットとの間で変換を行う。オーディオコーデック122はバッファ124を介してオーディオ入力を受けることができ、処理(たとえば、プロセサが生成したおよび/または大容量記憶媒体アクセス装置106のストリームオーディオ出力を介して受信した他のオーディオ信号とのミキシング)するために、そのオーディオ入力をグラフィクス/オーディオプロセサ114に与える。この実施例におけるグラフィクス/オーディオプロセサ114は、オーディオタスクに利用可能なオーディオメモリ126にオーディオ関連情報をストアすることができる。グラフィクス/オーディオプロセサ114は、結果的に得られるオーディオ出力信号を、圧縮およびアナログ信号への変換のために、オーディオコーデック122に与え、したがってそのオーディオ出力信号が(たとえばバッファアンプ128Lおよび128Rを介して)スピーカ61Lおよび61Rによって再生され得る。
【0049】
グラフィクス/オーディオプロセサ114はシステム100内に存在するであろう種々の付加的なデバイスと通信する能力を有する。たとえば、パラレルディジタルバス130は大容量記憶媒体アクセス装置106および/または他のコンポーネントと通信するために用いられる。シリアル周辺バス132は多様な周辺機器または、たとえば、
・PROMおよび/またはRTC(リアルタイムクロック)134、
・モデム136もしくは他のネットワークインタフェース(それはシステム100を、プログラム命令および/またはデータがダウンロードもしくはアップロードされ得るインターネットあるいは他のディジタルネットワークのようなテレコミュニケーションネットワーク138に接続する)、および
・フラッシュメモリ140
を含む他のデバイスと通信する。
別の外部シリアルバス142は、付加的な拡張メモリ144(たとえばメモリカード)もしくは他のデバイスと通信するために使用され得る。コネクタが種々のデバイスをバス130,132および142に接続するために使用され得る。
グラフィクス/オーディオプロセサの例
図3は実施例のグラフィクス/オーディオプロセサ114を示すブロック図である。或る実施例においては、グラフィクス/オーディオプロセサ114はシングルチップASICであってよい。この実施例においては、グラフィクス/オーディオプロセサ114は、
・プロセサインタフェース150、
・メモリインタフェース/コントローラ152、
・3Dグラフィクスプロセサ154、
・オーディオディジタル信号プロセサ(DSP)156、
・オーディオメモリインタフェース158、
・オーディオインタフェース/ミキサ160,
・周辺コントローラ162、および
・表示コントローラ164
を含む。
【0050】
3Dグラフィクスプロセサ154はグラフィクス処理タスクを実行する。オーディオディジタル信号プロセサ156はオーディオ処理タスクを実行する。表示コントローラ164は主メモリ112からの映像情報にアクセスし、表示装置102上での表示のためにその映像情報をビデオエンコーダ120に与える。オーディオインタフェース/ミキサ160はオーディオコーデック122をインタフェースし、また異なるソースからのオーディオ(たとえば、大容量記憶媒体アクセス装置106からのオーディオストリーム,オーディオDSP156の出力,およびオーディオコーデック122を通して受ける外部オーディオ入力)をミックスすることができる。プロセサインタフェース150は主プロセサ110およびグラフィクス/オーディオプロセサ114の間のデータおよび制御インタフェースを提供する。
【0051】
メモリインタフェース152はグラフィクス/オーディオプロセサ114とメモリ112との間のデータおよび制御インタフェースを提供する。この実施例においては、主プロセサ110は、プロセサインタフェース150およびグラフィクス/オーディオプロセサ114の一部であるメモリインタフェース152を介して、主メモリ112にアクセスする。周辺コントローラ162はグラフィクス/オーディオプロセサ114と上で述べた種々の周辺機器との間のデータおよび制御インタフェースを提供する。オーディオメモリインタフェース158はオーディオメモリ126とのインタフェースを提供する。
グラフィクスパイプラインの例
図4は図3の3Dグラフィクスプロセサ154をより詳細に示すグラフィクス処理システムを示す。この3Dグラフィクスプロセサ154は、とりわけ、コマンドプロセサ200および3Dグラフィクスパイプライン180を含む。主プロセサ110はデータストリーム(たとえばグラフィクスコマンドストリームおよび表示リスト)をコマンドプロセサ200に通信する。主プロセサ110はメモリレイテンシを最小化するために2レベルキャッシュ112を有し、さらにまたグラフィクス/オーディオプロセサ114に向けられたキャッシュされていないデータストリームのための書込収集(write-gathering)バッファ111を有する。この書込収集バッファ11は部分キャッシュラインを全キャッシュラインに集め、バスの最大使用時に、グラフィクス/オーディオプロセサ114からのデータを1つのキャッシュラインに送る。
【0052】
コマンドプロセサ200は主プロセサ110からの表示コマンドを受け、それらを解剖し、メモリコントローラ152を介して共用メモリ112からのそのコマンドを処理するに必要な付加的なデータを入手する。コマンドプロセサ200は、2Dおよび/または3D処理およびレンダリングのために、頂点コマンドのストリームをグラフィクスパイプライン180に与える。グラフィクスパイプライン180はこれらのコマンドに基づいて映像を生成する。結果として得られた映像情報は、表示コントローラ/ビデオインタフェースユニット164によるアクセスのために主メモリ120に転送され得て、この映像情報は表示装置156上にパイプライン180のフレームバッファ出力を表示する。
【0053】
図5はグラフィクスプロセサ154を用いて実行される処理を図解的に示すブロック論理フロー図である。主プロセサ10は、グラフィクスコマンドストリーム210,表示リスト212および頂点アレイ214を主メモリ112にストアし、ポインタをバスインタフェース150を介してコマンドプロセサ200に送る。主プロセサ110は主メモリ110内に割り付けられた1つ以上のグラフィクスFIFOバッファ210にグラフィクスコマンドをストアする。このコマンドプロセサ200は、
・同期/フロー制御および負荷バランスのためにグラフィクスコマンドを受けかつバッファするオンチップFIFOメモリバッファ216を介して主メモリ112からのコマンドストリーム、
・オンチップコールFIFOメモリバッファ218を介して主メモリ112からの表示リスト212、および
・コマンドストリームからおよび/または主メモリ112の頂点アレイ214からの頂点アトリビュート
を頂点キャッシュ220を介して取り込む。
【0054】
コマンドプロセサ200はコマンド処理動作200aを実行し、そのコマンド処理動作200aはアトリビュート形式を浮動小数点フォーマットに変換し、結果的に得られた完全頂点ポリゴンデータをレンダリング/ラスタライゼーションのためにグラフィクスパイプライン180に与える。プログラマブルメモリ調停回路130(グラフィクスメモリ要求調停回路:図4)は、グラフィクスパイプライン180,コマンドプロセサ200および表示コントローラ/ビデオインタフェースユニット164の間での共用主メモリ112へのアクセスを調停する。
【0055】
図4は、グラフィクスパイプライン180が
・変換ユニット300、
・セットアップ/ラスタライザ400、
・テクスチャユニット500、
・テクスチャ環境ユニット600、および
・ピクセルエンジン700
を含むことを示す。
【0056】
変換ユニット300は多様な2Dおよび3D変換および他の動作300a(図5)を実行する。変換ユニット300は変換処理300aに用いられるマトリクスをストアするための1つ以上のマトリクスメモリ300bを含む。変換ユニット300は、入来する頂点毎のジオメトリをオブジェクト空間からスクリーン空間へ変換し、そして入来するテクスチャ座標を変換しかつ投影テクスチャ座標(300c)を計算する。変換ユニット300はまたポリゴンクリッピング/カリング(clipping/culling)300dを実行する。変換ユニット300bによってまた達成される照明処理300eが、この実施例では8つまでの独立した照明について、頂点毎に照明計算を行う。変換ユニット300は、エンボス(embossed)タイプのバンプマッピング効果およびポリゴンクリッピング/カリング動作(300d)のために、テクスチャ座標を発生する(300c)。
【0057】
セットアップ/ラスタライザ400はセットアップユニットを含み、このセットアップユニットは、変換ユニット300からの頂点データを受け、三角形セットアップ情報を、エッジラスタライゼーション,テクスチャ座標ラスタライゼーションおよびカラーラスタライゼーションを実行する1つ以上のラスタライザユニット(400b)に送る。
【0058】
テクスチャユニット500は、オンチップテクスチャメモリ(TMEM)502を含んでもよく、たとえば、
・主メモリ112からのテクスチャ504の検索、
・たとえばマルチテクスチャ処理,ポストキャッシュテクスチャ伸長,テクスチャフィルタリング,エンボシング,投影テクスチャの使用を通しての陰影付け,およびアルファトランスパーレンシおよびデプスを用いるBLITを含むテクスチャ処理(500a)、
・バンプマッピング,偽(pseudo)テクスチャおよびテクスチャタイル(tiling)効果(500b)のためのテクスチャ座標置換を計算するバンプマップ処理、および
・間接テクスチャ処理(500c)
を含むテクスチャリングに関連する種々のタスクを実行する。
【0059】
テクスチャユニット500はテクスチャ環境処理(600a)のためにフィルタされたテクスチャ値をテクスチャ環境ユニット600に出力する。テクスチャ環境ユニット600は、ポリゴンおよびテクスチャカラー/アルファ/デプスをブレンドし、また逆レンジベース(reverse range based)のフォグ効果を達成するために、テクスチャフォグ処理(600b)を実行する。テクスチャ環境ユニット600はたとえばカラー/アルファ変調,エンボシング,詳細テクスチャ,テクスチャスワッピング,クランピングおよびデプスブレンディングに基づく多様な他の環境関連機能を実行するマルチステージ(multi stages)を提供する。
【0060】
ピクセルエンジン700はデプス(z)比較(700a)およびピクセルブレンディング(700b)を実行する。この実施例では、ピクセルエンジン700はデータを埋め込み(オンチップ:内蔵)フレームバッファメモリ702にストアする。グラフィクスパイプライン180は、フレームバッファおよび/またはテクスチャ情報をローカルにストアするために1つ以上の内蔵DRAMメモリ702を含む。z比較700aは、現在有効なレンダリングモードに依存して、グラフィクスパイプライン180におけるより早いステージで実行される(たとえば、z比較は、もしアルファブレンディングが要求されていないならば早くに実行され得る)。このピクセルエンジン700は表示コントローラ/ビデオインタフェースユニット164による主メモリ112へのアクセスのために、オンチップフレームバッファ702を周期的に書き込むコピー動作700cを含む。このコピー動作700cはまた動的テクスチャ合成効果のために、埋め込みフレームバッファ702の内容を主メモリ112中のテクスチャにコピーするために使用され得る。エイリアス補正ないしアンチエイリアシング(anti-aliasing)および他のフィルタリングがコピーアウト動作中に実行され得る。最終的に主メモリ112にストアされるグラフィクスパイプライン180のフレームバッファ出力は、表示コントローラ/ビデオインタフェースユニット164によってフレーム毎に読み出される。表示コントローラ/ビデオインタフェース164は表示装置56上での表示のためにディジタルRGBピクセル値を与える。
エイリアス補正技術および装置の例
図6に示すように、エイリアス補正は実施例において2つの主要なフェーズで行われる。第1のフェーズはレンダリング中に生じ、超サンプリングした内蔵フレームバッファ(EFB)中にイメージをラスタライズする(ブロック550)。コピーアウト動作中に行われる第2のフェーズは、超サンプルをフィルタリング/ブレンドしてスクリーンピクセル出力カラーを作る(ブロック552)。コピーアウトされたイメージは、次いで、表示装置56上に表示される(ブロック554)。図7はこの発明の局面に従ったエイリアス補正のより詳細な概略ブロック図を提供する。このエイリアス補正は、現在の2×2ピクセルクォードラプレットについてピクセル毎に3つのマルチサンプリング位置を規定することによって開始する(ブロック552)。プログラマブルな制御レジスタが、1/12ピクセルを単位とするサンプルの位置を決定するために使用される(ブロック550a−1)。マルチサンプル適用範囲マスクが、次いで、プリミティブによって占有されるピクセルの一部に基づいてサンプルをイネーブル/ディスエーブルするために作られる(ブロック550b)。もし、先にz比較がイネーブルされていると、適用範囲マスクは、プリミティブのデプスによって影響を受ける(ブロック550b)。フレームが終了しかつすべてのプリミティブが内蔵フレームバッファ内にレンダリングされると、ローカルメモリ(EFB)から主メモリ(XFB)へのコピーアウト動作中(ブロック552)に、垂直配置の3つの隣接ピクセルからのイネーブルされたサンプルからのカラーデータが、プログラマブルな重み係数を用いてブレンドされる(ブロック552a)。エイリアス補正されたピクセルカラーは、次いで、ビデオインタフェース回路によって主メモリから表示される(ブロック554)。
【0061】
エイリアス補正の2つの基本的なフェーズ(ラスタライゼーションおよびフィルタリング)の各々を以下に詳細に説明する。
ラスタライズ/レンダリングフェーズ
第1エイリアス補正フェーズ(図6、ブロック550)は、ラスタライザ(400b)が内蔵フレームバッファ(EFB)702へのエッジラスタライゼーションを行っているときに生じる。好ましくは、このラスタライザは、エッジおよびzラスタライザであり、それは、現在の三角形もしくは他のプリミティブによって包含される各可視的ピクセルクォードラプレット内におけるプログラマブルな超サンプリング位置のためのx,y,zおよび適用範囲マスク値を発生する。プリミティブの情報は、好ましくは、容易なラスタライゼーションに適した形式でセットアップユニット400から受信する。このプロセスはイメージ中の各プリミティブ毎に繰り返す。
プログラマブルなサブピクセル位置を有するピクセルクォードラプレット
図8は実施例のプリミティブ(たとえば、三角形)612を重ねた例示的なピクセルクォードラプレット610を示す。このピクセルクォードラプレットは、2×2構成中に4つのピクセル(Pix00,Pix01,Pix10およびPix11)を含む。クォードラプレット610内の各ピクセル(たとえば、Pix00)中に、3つの超サンプリング位置(たとえば、S0,S1およびS2)がプログラマブルに選択されかつ特定される。この結果、ピクセルクォードラプレット610毎に、12の超サンプリング位置ができる。上で述べたグラフィクスパイプラインがクォードラプレット中のピクセルを処理する間、他の配置がまた可能である。
【0062】
如何に多くのピクセルが並列的に発生されるかに拘わらず、この実施例における各ピクセルPixは、複数の(たとえば、1つの具体例では3つの)サブピクセル(sub-pixel)を含む(図9参照)。実施例の構成において、ピクセルクォードラプレット中のこれらのサブピクセルの各々の位置はプログラマブルである。さらに、この実施例においては、数千のピクセルを含むピクセルアレイ中の各ピクセルクォードラプレットは、対応するプログラマブルな位置において、12のそのようなサブピクセルを含む。図9において最も明らかにわかるように、クォードラプレット610の各ピクセル内の3つのサンプリング位置Sは各隣接ピクセル毎に異なる。図9は各ピクセル中の3つのサンプリング位置の1つの例を示す。この発明の局面によれば、エッジに沿ったノイズを犠牲にしてよりよいエイリアス補正を達成するように、ピクセル間のサンプリングパターン(たとえば、隣接ピクセル中におけるマルチサンプリング位置の空間配置)を変更する(「ジッタ」)ことができる。そして、ノイズを減じるために、再構成フィルタの大きさを1×1より大きくすることができる。再構成フィルタを1×1より大きくするということは、異なるピクセル間でいくつかのマルチサンプルが共用されるということを意味し、すなわち、それらは表示のための1つのスクリーンピクセルより以上のエイリアス補正したスクリーンピクセル出力カラーを与える。したがって、実際にフレームバッファ中にストアするより以上にピクセル毎のマルチサンプルの効果を得ることができる。或る場合においては、サンプリングパターンを注意深く構成することによって、付加的なフィルタがノイズをすべてキャンセルできてしまう。
【0063】
プログラマは、グローバルレジスタを書き込むことによって、サブサンプリング位置を設定できる。この具体的な実施例においては、超サンプリング位置は、ピクセルクォードラプレットの中心から、xおよびyの距離(たとえば、ピクセルサイズに関連する単位、すなわち1/12ピクセル)として特定され得る。他の構成(たとえば、ピクセルクォードラプレットに基づかないもの)では、各ピクセル内でマルチサンプリング位置を特定するための異なる方法が使用可能である。各ピクセル中の超サンプルの各々の位置が実施例においてはプログラマブルであるので、各クォードラプレットのための具体的なサンプリング位置(S0−S1)は具体的なアプリケーションによって必要なように変更可能である。他方、別の実施例では、具体的に最適なマルチサンプリング位置の値が固定(たとえば、ハードウェア中にセット)され得て、そのために、アプリケーションのプログラマはそれについて心配する必要がない。したがって、実施例においてはサンプリング位置はプログラマブルであるけれども、ハードウェア結線した随意的なパターンがまたそのようなプログラマブル可能性に代えて使用できる。選択したパターンは、フレーム中の或る数の隣接ピクセルに亘って繰り返される。
【0064】
この実施例においてピクセルアレイ内のマルチサンプルの具体的な空間配置を特定する1つの便利な方法は、ピクセルクォードラプレットの中心に関連するピクセルクォードラプレット内のマルチサンプルの位置を特定することである。図10は、実施例において、クォードラプレット内の各ピクセルが12×12のグリッドにブレークダウンされたことを示す。各サンプルは、クォードラプレットの中心から特定したxおよびyの距離(1/12ピクセルの単位で)を有する。したがって、xsij,ysij(ここでj=0−2およびi=0−3)が、クォードラプレットについてピクセルi中のマルチサンプリングの位置jの位置(xおよびy座標)を特定する。
【0065】
図11はクォードラプレット内の各ピクセル毎に好ましい例示のサンプル位置が示されたクォードラプレットの拡大図を示す。この好ましいパターンが決定され、或るアプリケーションのために良好な結果をもたらす。特に、この好ましいサンプリングパターンは、各ピクセル中の3つのマルチサンプルおよび1×2再構成フィルタの垂直フィルタ係数(1/12,1/6,1/6,1/6,1/6,1/6,1/12)(図15および図17参照)を提供し、そのフィルタは、隣接ピクセル中のマルチサンプル位置のジッタリングを通して、図11のマルチサンプル配置パターン中へ故意に導入されたノイズをキャンセルする。「1×2」再構成フィルタによって、フィルタアパーチャが、水平方向(x)において1つのピクセルにまたがってかつ垂直方向(y)において2つのピクセルにまたがってそれぞれ広がる。すなわち、このフィルタの「アパーチャ(aperture)」は、現在のピクセルの直上のピクセルの半分の領域および現在のピクセルの直下のピクセルの半分の領域とともに、それの出力が発生されている現在のピクセルの全領域をカバーする。図11のパターンは上で述べた適宜に構成された再構成フィルタとともに用いられるべきで、もし、図11のパターンが対応のフィルタなしで用いられるならば、エイリアス補正をしないイメージより悪く見えてしまうことに注意されたい。
【0066】
したがって、この発明の局面によれば、(a) マルチサンプルの数および位置ならびに(b) エイリアス補正(再構成)フィルタのアパーチャおよび重み付け係数の間に関係がある。具体的なサンプリングパターンと具体的なフィルタとの結合が、ピクセル毎の或る数のマルチサンプルのための「n」サンプリングパターンおよび1×1フィルタだけに比べて、実質的によりよいエイリアス補正を与える。
【0067】
図11において、そしてクォードラプレットの中心からxおよびy(距離)スケールのために数字1−12が使用されるとすれば、好ましい位置は次のようである。
【0068】
【表1】
【0069】
3つのサンプル点が図11において各ピクセルの一番上からのそれらの相対的位置に基づいて0−2の番号が付けられていて、そのサンプルはクォードラプレットの中心からのそれらの距離yに基づいて番号が付けられる。この番号付けが以下に述べるフィルタリング動作中に考慮され、そこでは、各クォードラプレット中において最も大きいy値を有するピクセルをフィルタによって使用しない。
【0070】
ピクセル毎のマルチサンプルの異なる数および/または異なるフィルタアパーチャを使用できるように他のサンプリングパターンが用いられてもよい。この発明の具体的な実施例においては、ピクセル毎の3つのサンプルおよび1×2再構成フィルタを使用するように選択した。具体的なサンプリングパターンを使用することによって、垂直エッジ上の6サンプルエイリアス補正と等価なものを達成することができる。しかしながら、他の実施例においては、異なるサンプリングパターンとともに1.33×2再構成フィルタ(すなわち、発生されている現在のピクセルをまたがって水平ないしx方向に延びかつ現在のピクセルの左隣のピクセルの1/6および現在のピクセルの右隣のピクセルの1/6の領域をそれぞれカバーする水平および垂直再構成フィルタ)を用い、垂直エッジ上の6サンプルエイリアス補正および水平エッジ上の4サンプルエイリアス補正と等価なものを達成することができる。
【0071】
他の実施例においては、他のサンプリングパターンがピクセル毎に4サンプルを有する構成および1.5×1.5再構成フィルタ内で使用できる。サンプリングパターンは各ピクセル毎にフレームバッファ中にストアされている4超サンプルだけで、水平および垂直エッジ上の6サンプルのエイリアス補正と等価なものを達成することができる。フィルタリングは僅かに重要であるが、エイリアス補正の品質における効果は大きい。主観テストは4サンプルおよび6サンプルの間で知覚される品質における非常に大きな飛躍を示し、そして品質曲線は、次いで、6サンプル以降では全く平坦である(たとえば、大部分のユーザは6サンプルと16サンプルとの間の違いを言えない)。この技術は、したがって、(今日存在する低品質のエイリアス補正に対するものとして)4サンプルを使用する良好な品質のエイリアス補正を可能とし、良好な品質を達成するために、ピクセル毎の8マルチサンプルへ行く必要性を予測する。
【0072】
エイリアス補正の知覚された可視品質は一般的には主観的であり、結果的に得られたイメージを見ている各個人の好みに幾分依存するものであることを留意すべきである。しかしながら、有利なパターンおよび対応するフィルタ寸法によって多くの看者に対して向上した可視品質を提供できることがわかった。具体的なパターンの選択は、一般的には、カットアンドエラーの手法を用いて行われる。しかしながら、次のようにしてパターンを選択する場合には、例示的な一般的基準を用いることができる。(1)垂直エッジを水平方向に動かすとき1つの新しいサンプルがたとえばピクセルの1/6毎にヒットし、それによって全く平らなグレースケールのステップを与えるようにパターンを設定する。(2)水平エッジを垂直方向に動かすとき1つの新しいサンプルがたとえばピクセルの1/6毎にヒットしそれによって全く平らなグレースケールのステップを与えるようにパターンを設定する。(3)サンプルが可能な限り広げられ、そのためにパターンを離れたところから見たときクラスタリングが見えないようにパターンを設定する。
マルチサンプル/空間配置をプログラムする技術の例
図12は、詳細な実施例におけるクォードラプレット610中のマルチサンプルの位置の各々のxおよびy座標をストアするための例示的なグローバルレジスタ(LOC0−LOC3)616a,616b,616cおよび616dを示す。これらの位置は、たとえば、グラフィクスプロセサのためのアプリケーションプログラムインタフェース(API)のコマンドを使用して、クォードラプレット中のピクセルの各々についてプログラムされ得る。これらのグローバルレジスタ616a,616b,616cおよび616dは、ピクセルエンジンによってサンプル位置を特定するために使用される。次のものはこの目的のためにこれらの例示的なレジスタを設定するAPIコマンドないし関数の例である。
【0073】
【表2】
【0074】
この関数はエイリアス補正モードを設定する。アプリケーションはまたエイリアス補正のための適宜のピクセルフォーマットを設定する。このモードはプリミティブ毎ではなくフレーム毎である。SamplePts アレイはピクセルクォードラプレット毎のマルチサンプル点の位置を特定する。オフセットは1/12ピクセルの単位で与えられる。ピクセル毎に3点ある。サンプル点は次のように特定される。
【0075】
【表3】
【0076】
図12はまた、マルチサンプリングがイネーブルされるかどうかを特定するビット(ms _en) を含む例示のグローバルレジスタ(Mode)618を示す。このms_enビットはエイリアス補正のためにイネーブルされる。したがって、システムは、好ましくは、エイリアス補正モードの選択的な動作をイネーブルする。このレジスタ618はシステムの他のパラメータを特定するためにも使用され得る。たとえば、ntexビットは変換ユニットからセットアップユニットへパスされるテクスチャ座標セットの数や、テクスチャ座標のラスタライゼーションのためにセットアップユニットからラスタライゼーションユニットへパスされるテクスチャ座標セットの数を特定するために使用され得る。ncolビットは、変換ユニットからセットアップユニットへパスされるカラー値セットの数やカラーラスタライゼーションのためにセットアップユニットからラスタライザユニットへパスされるカラー値セットの数を特定するために使用され得る。reject_enビットは三角形が前面または背面であるかどうかに基づいて三角形をどのようにリジェクトするかを特定する(リジェクトせず,前面リジェクト,背面リジェクトまたは全リジェクト)。flat_enビットは、三角形がフラットシェーディングされることを特定するために使用される。n _tev ビットは現在規定されているテクスチャ環境(TEV)演算の数を特定するために使用され得る。
適用範囲マスク
図11に示すように適用範囲マスク614はピクセルクォードラプレット610について発生される。この適用範囲マスク614はラスタライズされているプリミティブフラグメント612の各々によってどの超サンプリング位置(S0−S2)がカバーされるかを特定する。この中で、「プリミティブフラグメント(primitive fragment)」は、エッジラスタライザ400bによって現在評価されているピクセルに交差する、レンダリングしている現在のプリミティブの一部をいう。エッジラスタライザ400bはプリミティブフラグメント612の各種エッジをラスタライズするプロセスにおいて適用範囲を決定する。この適用範囲マスク614はラスタライザ400bによって発生されている現在のプリミティブのためのエッジ等価(equation)データに従って設定される。
【0077】
実施例において、適用範囲マスク614は12ビット、すなわちクォードラプレット中の各ピクセルについて3ビットを含み、3ビットの各々はピクセル中の異なるサブピクセルに対応している。適用範囲マスクビットは、クォードラプレット610中の各超サンプリング位置の各々をプリミティブフラグメントがカバーしているかどうかに基づいて設定する。
【0078】
適用範囲マスク614は、超サンプルが現在のプリミティブフラグメントによってカバーされているかどうかに基づいて、プログラムされた超サンプリング位置に対応する超サンプルをイネーブル/ディスエーブルするために使用される。適用範囲マスクは、プリミティブフラグメントによって占有(カバー)される各ピクセルの超サンプリング位置や、プリミティブフラグメントによって占有(カバー)されていない超サンプリング位置を記録する。この情報は、実施例においては、以下に述べるZバッファリング動作における効率的な改良を実現するために使用される。適用範囲マスクは内蔵フレームバッファ中に種々のマルチサンプルを発生する際に手助けとなるが、それらは本質的なものではなく、適用範囲マスクによらない他の技術が他の実施例において使用可能である。
Zバッファリング
開示した実施例の内蔵フレームバッファ702は、z(デプス)バッファおよびカラーバッファを含む。実施例は、各超サンプリング位置Sのためのzバッファリングを行うかどうかを判断するために適用範囲マスク614を使用する。もし、超サンプリング位置Sがプリミティブフラグメントによってカバーされていなければ、フレームバッファ702内の対応するz値およびカラー値は結局更新されることはないのであるから、そのサブサンプルについてz比較を行う必要はない。もし、超サンプリング位置Sがプリミティブフラグメントによってカバーされていれば、次いで、そのサブサンプリング位置においてプリミティブフラグメントが隠されているのか見えるようにされているのかを判断するためにそのサブサンプルについてz比較動作700aが行われ、そしてブレンド演算700bが、もしそのz比較700aがピクセルフラグメントがそのサブサンプル位置で可視的であることを示しているなら、カラーを内蔵カラーフレームバッファへ条件付きでブレンドする。
【0079】
実施例における配線の数を減じるために、26.1のフォーマットを有する単一の28ビットクォードラプレットZ値およびフォーマットs26.5を有するZxおよびZyがz比較700aへ送られる。このクォードラプレットZ値は、ピクセルクォードラプレットの中心におけるピクセルZの値である。2つの32ビット加算器および2つの5×32ビット乗算器が、次式を計算することによって各サブサンプル位置毎の平面式(plane equation)を解決し、ピクセルクォードラプレット中の12サンプルについてクォードラプレットZ値およびラスタライザ400bから得られるスロープ情報を用いて外挿補間する。
【0080】
【数1】
Z(dx,dy)=Z+(Zx)(dx)+(Zy)(dy)
ここで、dxおよびdyはピクセル数および超サンプリング位置に基づくものであり、オーバフローを防止するようにクランプが行われる。
【0081】
上で述べたように、z比較700a′(図5参照)は現在有効なレンダリングモードに依存してグラフィクスパイプライン180におけるより早期のステージで行われ得る(たとえば、アルファテストが必要ないなら、Z比較が行われる)。このような場合において、Z比較700a′はZバッファリング(デプス比較および書き込み)を条件付きで、上で述べた平面式によって発生される外挿補間したZ値上で行う。この動作の結果として、多数のビットおよび適用範囲マスク614がZバッファリング動作のためにクリアされ、したがって、カラーフレームバッファの更新が生じるパイプライン中の後のステージへz比較の結果を適用範囲マスクが運ぶのが許容される。ピクセルクォードラプレットのx,y位置とともに結果的に得られた適用範囲マスクがテクスチャブロック500aによるさらなる処理への予備的なテクスチャ座標ラスタライゼーションプロセスへパスされる。もし、「テクスチャ前Z(Z before texture)」関数がイネーブルでなければ、Z比較ブロック700a(図5参照)がカラーのフレームバッファ702内への書き込みの前に、Z比較および書き込みを行い、そして適用範囲マスクはZ比較の結果によって変更されない(ただし、具体的なサブサンプリング位置についてZ比較が必要かどうかを判断するためにはもちろん使用される)。
コピーアウトおよび垂直フィルタリングの例
1つのシーンのすべてのプリミティブが処理されかつ超サンプリングイメージが内蔵フレームバッファ(EFB)中に上述の態様でレンダリングされると、エイリアス補正の第2フェーズ(図7、ブロック552参照)が以下に述べるように実行される。しかしながら、第2フェーズへ移る前に、例示の実施例のより一層良好な理解を与えるために、実施例の内蔵フレームバッファ(EFB)の簡単な説明を行う。
内蔵フレームバッファ構成
この実施例においては、内蔵フレームバッファ(EFB)は約2MBのメモリ容量を有する。フレームバッファの最大ピクセル幅および高さは各ピクセルのサイズによって決定される。この実施例においては、次のものを含むいくつかの異なるピクセルサイズがある。
【0082】
・48ビットカラーおよびz
・96ビット超サンプルカラーおよびZ
フォーマットは好ましくはAPIを用いて設定される。この目的のためのAPI関数の例を以下に示す。
【0083】
【表4】
【0084】
この関数はフレームバッファのフォーマットを設定する。この関数は任意の描画動作が行われる前にコールされる。ピクセルフォーマットはこの実施例においてフレームの途中では変更されない。16ビットのZ値(マルチサンプルエイリアス補正モード)は圧縮されなかったり圧縮されたりする。圧縮された値はよりよい精度および範囲を与える。Ztopフラグはテクスチャマッピング前のデプス比較(Z-before-texture)を行うために使用され得る。このことによって、より少ない数のテクセルが取り出されかつフィルタリングされればよいので、テクスチャバンド幅を改善することができる。
【0085】
内蔵フレームバッファ(EFB)のための48ビットフォーマットはエイリアス補正しないためのものであり、次のような特徴を有する。
【0086】
・24ビットカラー(アルファなしの8/8/8、もしくは6ビットアルファ付きの6/6/6/6)
・24ビットZ
このモードにおいて、フォーマットは640×528の最大解像度をサポートする。幅は0−640の間でなければならず、EFBストライド(stride)は640ピクセルに固定される。
【0087】
96ビット超サンプルフォーマットはエイリアス補正のために使用されかつ次のような特徴を有する。
【0088】
・16ビットカラーの3サンプル(赤の5ビット、緑の6ビット、青の5ビット、アルファなし)
・16ビットZ(デプス)の3サンプル
このフォーマットは640×264の最大解像度をサポートする。幅は好ましくは0−640の間であり、ストライドは640に固定される。
【0089】
上の説明からわかるように、エイリアス補正はポリゴンエッジや交点における可視品質を向上するが、それはコストパフォーマンスおよびZ品質をよくする。エイリアス補正は96ビットの超サンプリングEFBフォーマットを使用し、そのフォーマットは48ビット点サンプリングピクセルの2倍のメモリを必要とする。このモードはまた、他のフォーマットにおける24ビットではなく、Zバッファリングの精度を16ビットに減じる。エイリアス補正はまたピークフィルレートを800Mピクセル/秒から400ピクセル/秒へ減じる。しかしながら、テクスチャ環境ユニット(TEV)において1以上のステージが用いられていれば、この減少は見かけ上生じなく、この例では、2つのTEVステージを用いるとフィルレートを400Mピクセル/sに減じる。
【0090】
或る実施例において、活性化されたエイリアス補正付きのレンダリングレートは、内蔵フレームバッファ702のバンド幅による制限のために、2ピクセル/クロックに落ちてしまう。しかしながら、2またはそれ以上のテクスチャがオンされれば、ピクセルクォードラプレットがピクセルエンジン700へ送られるレートはこの実施例における2クロック毎の1ピクセルクォードラプレットより以下になるかもしくは等しくなる。この場合において、エイリアス補正をオンすることはフィルレートに影響を与えない。したがって、もし具体的なシーンがジオメトリの制限を受ければ、エイリアス補正はレンダリング性能に対して逆に影響を与えることはない。他方、もし具体的なシーンがフィルレートの制限を受けるなら、レンダリング性能は、点サンプリングモードを使用する場合に比べて、エイリアス補正を活性化することによって逆に影響を受ける。同じアプリケーションが、シーンもしくはイメージがジオメトリによる制限を受けるかによって、あるいはフィルレートによる制限を受けるかによって、もしくは具体的なシーンまたはイメージにおいて要求されているイメージ品質によって、異なるシーンや異なるイメージのためにエイリアス補正を活性化しかつ不活性化することができる。フレームベースのエイリアス補正の動的な活性化および不活性化の能力が、アプリケーションプログラマがイメージ品質と速度性能との間のトレードオフを作るのに大きな柔軟性を与える。
コピーアウト動作の例
エイリアス補正の第2フェーズは内蔵フレームバッファ(EFB)702から主メモリ112内の表示バッファ113(外部フレームバッファ(XFB))へのコピーアウト中に生じる。この実施例のためのコピーアウトパイプライン620が図14に示される。
【0091】
図14に示すように、コピーアウトパイプライン620は
・エイリアス補正/デフリッカ部622,
・RGB−YUV部,および
・内蔵フレームバッファ(EFB)702から外部フレームバッファ(XFB)113へのデータのコピープロセス中に使用され得るYスケーリング部
を含む。
【0092】
この発明はエイリアス補正に向けられているが、それの第2フェーズはエイリアス補正/デフリッカリング部622によって実行され、このコピーパイプラインにおける他の2つの部(セクション)の簡単な説明を、実施例のより完全な理解を与えるために以下に行う。
【0093】
輝度/クロマ(YUV)フォーマットはRGBと同じ可視品質のピクセルをストアするが、2/3のメモリがあればよい。したがって、コピー動作中においてEFBにおけるRGBフォーマットがXFBにおけるYUVフォーマットへ変換され、外部フレームバッファ(XFB)のために使用される主メモリの量を減じる。この変換はRGB−YUV部624によって行われる。
【0094】
コピーパイプライン620におけるYスケーリング部626はレンダリングされるイメージの垂直方向の任意のスケーリングをイネーブルする。水平スケーリングがビデオ表示中に行われる。Yスケール値はAPIによって規定され、コピーされるラインの数を決定し、適宜のXFBサイズを計算するために使用され得る。
【0095】
図14には図示しないが、コピーパイプライン620内には、たとえばエイリアス補正/デフリッカ部およびRGB−YUV部の間に、ガンマ補正部がまた設けられる。ガンマ補正部は、目(および時々モニタ)の非直線応答をカラー強度値における直線変化へ補正するために使用される。ガンマの3つの選択肢がある(1.0,1.7および2.2のような)。デフォルトのガンマは好ましくは1.0であり、APIにおけるGXInitコマンドに設定される。
【0096】
コピーアウトパイプライン620のエイリアス補正/デフリッカリング部622はプログラマブルな重み付け(W0−W6)を有する7タップの垂直フィルタ628を適用する。サブピクセルの重み付けされた領域サンプリングがエイリアス補正のために使用される。垂直フィルタのためのサポートは3つの垂直ピクセル領域である。このフィルタのための例示のサポート領域が図15に示される。エイリアス補正モードにおいて現在のピクセルNについてのカラーを決定するとき、現在のピクセルの直上のピクセル(N−1)における超サンプルおよび現在のピクセルの直下のピクセル(N+1)における超サンプルが、現在のピクセル(N)の超サンプルと同じように使用される。したがって、フラグメントの影響は1つのピクセルに限定されず、重み付けされた3ピクセル垂直フィルタを使用する他のピクセルへ影響する。
コピーアウトコマンドの例
コピー動作のEFBのソースおよび宛先は例示のAPI関数を使って特定される。
【0097】
【表5】
【0098】
この関数は内蔵フレームバッファ(EFB)の内容を主メモリ中の表示バッファ113へコピーする。ここで、「コピーアウト(copy out)」は、すべての情報の単なる転送ではなく、内蔵フレームバッファの内容を読み出し、さらに処理(フィルタリング,再サンプリング,スケーリング等)して、結果的に得られたデータをどこか(たとえば、外部の点サンプリング形式のフレームバッファ)へ送ることを意味する。矩形の原点はX=SrcLeft およびY=SrcTopである。クリアフラグはカラーおよびzバッファの現在のクリアカラーおよびz値へのクリアをイネーブルする。内蔵フレームバッファのクリアは好ましくは、コピー動作と同時に行われる。
【0099】
図15に示すように、実施例におけるエイリアス補正モードにおいて、ブレンドフィルタ628が現在のピクセルからの超サンプルのすべて、現在のピクセルの直上のピクセルからのいくつかの超サンプル、および現在のピクセルの直下のピクセルからのいくつかの超サンプルを使用する。好ましくは、2つの周囲のピクセル(すなわち、N−1およびN+1)の各々内において現在のピクセルから最も遠いサンプルはフィルタリング動作においては使用しない。このフィルタのための3つのピクセルのサポートは、9つのサンプルを有し、この9つのサンプルの7つだけが、図15に示すように、実施例におけるブレンド演算に使用される。
【0100】
例示のエイリアス補正フィルタは、カラーが発生されているサブピクセルのすべておよび現在のピクセルの直上および直下のピクセルのいくつかの付加的なサブピクセルを取り囲む1次元(すなわち、1×2もしくは垂直)フィルタリング「アパーチャ(aperture)」を与える。図16を参照されたい。実施例の回路はフリッカの減少のためにいずれにしても垂直方向にフィルタリングし、これは垂直エッジのためのエイリアス補正品質を2倍にする非常に安価な方法である。ノンインタレースの表示のためではあるが、大部分の看者はたぶん、よりよいエイリアス補正と引き換えにイメージの或る量のフィルタリングを犠牲にすることを望むであろう。結果的に得られた垂直フィルタ出力は外部フレームバッファ中へのコピーのために1つのスクリーンピクセルカラー値(RGB)を与え、表示装置56上で表示する。この垂直フィルタリング動作は、したがって、ローパスフィルタステージおよび表示装置56の解像度において再サンプリングする再サンプラとして作用する。この具体的な実施例では、現在のピクセルPixcの右および左に隣接するピクセルはスクリーンピクセル出力に寄与しない。しかしながら、他の実施例では、水平フィルタもしくは垂直フィルタと水平フィルタとの結合が使用され得る。例示の実施例では、水平再サンプリングは両方向における再サンプリングを提供する他の目的のために活性化される。
【0101】
図17は図15に示す機能を実現する垂直フィルタ構造の例を示す。
【0102】
この実施例において、各重み付け係数(W0−W6)は垂直フィルタリングされている7つのサンプルの各々に適用され、そして重み付けされたサンプルは一緒に加算(ブレンド)されて現在のスクリーンピクセルのための最終ピクセルカラー(N′)を得る。各重み付け係数(W0−W6)はこの実施例ではプログラマブルである。以下のものはこれらのプログラマブルな重み付け係数を設定するために使用可能なAPI関数の例である。
【0103】
【表6】
【0104】
この関数は内蔵フレームバッファからのコピーアウト中のエイリアス補正のために垂直フィルタリング係数を設定する。このフィルタ係数は1/64の倍数で与えられる6ビットの数である。フィルタ係数は、イメージが外部フレームバッファへコピーアウトされているとき垂直ラインに適用される。同じ係数が、それがコピーアウトされているとき(すなわち、エイリアス補正がイネーブルされていないとき)、イメージのデフリッカリングのために使用され得る。
【0105】
図12は図15のフィルタリング動作において使用するための7つの重み付け係数をストアする例示のレジスタ630aおよび630bを示す。重み付け係数はプログラマブルであるが、図11に示すマルチサンプリングの空間配置パターンで有用なエイリアス補正のためのこの垂直フィルタへの重み付けが以下に示される。
【0106】
【数2】
W0=1/12,W1=1/6,W2=1/6,W3=1/6,W4=1/6,W5=1/6およびW6=1/12
上で述べたように、異なるフィルタの重みおよび/または構成がピクセル毎のマルチサンプルの異なる数,異なるマルチサンプル空間配置,および異なる再構成フィルタアパーチャで使用可能である。
エイリアス補正バッファ
図17は、内蔵フレームバッファ702の内容を主メモリ115中の外部フレームバッファへコピーアウトするために使用されるエイリアス補正コピーアウトバッファリング動作を示す。この例において、内蔵フレームバッファ702は32ピクセル幅×32ピクセル高さであるタイル(tile)に組織化される。コピーアウトはタイルベースで行われる。しかしながら、図18のシェーディング領域で示すように、コピーアウト動作は上で述べた垂直エイリアス補正フィルタ関数を実行するために、直上隣接タイルからの1ピクセルおよび直下隣接タイルからの1ピクセルを必要とする。したがって、好ましい実施例では、コピーアウト動作は34ピクセル高さ×32ピクセル幅のタイルを読み出すことによって行う。(垂直スケーリング能力を併有する)実施例においては、垂直ズーミングを容易にするために、コピーはまずy方向で行い、次いでx方向で行う。
【0107】
フルラインバッファの使用を回避するために、コピー動作はエイリアス補正(AA)バッファリングを使用し、そこでは、コピーは、32ピクセル幅のストリップ(X軸)で行われる。この実施例のAAバッファリングにおけるストリップバッファのためのデータ経路が図19のブロック図に示される。各ストリップ毎に、2つの余分なピクセルが右および左に読み出され、合計のバッファサイズが36となる。2つのラインからのデータは以下の順で4つのバッファにストアされる。
【0108】
【表7】
【0109】
好ましい実施例におけるエイリアス補正に対する他の局面は、1パスでサポートされ得る最大スクリーン解像度を640ピクセル×288ピクセルに落とすことである。もし、より高い表示解像度が要求される場合には、内蔵フレームバッファ702のサイズによる制限のために、シーンを通して多くのパスが実行される必要がある。各パスの最後において、イメージが主メモリ中へコピーアウトされる。たとえば、外部フレームバッファからシーン全体を最終的に表示する前に、シーンの上半分を内蔵フレームバッファにレンダリングし、シーンの上半分を外部フレームバッファの上半分へコピーアウトし、シーンの下半分を内蔵フレームバッファにレンダリングし、そしてシーンの下半分を外部フレームバッファへコピーアウトすることによって、1つのシーンは2パスでレンダリングされ得る。そのようなマルチパス動作は、シングルパス動作より遅いが、オンチップ上で必要な内蔵フレームバッファの量を減じる。メモリは将来的にはより安価になるので、高解像度のイメージをシングルパスでレンダリングしかつコピーアウトするように、追加的な内蔵フレームバッファメモリ(たとえば4MB,8MBあるいはそれ以上)をチップ上へ組み込むことも可能である。
コピーアウト中のデフリッカリングフィルタの例
同じ垂直フィルタがエイリアス補正なし(non-anti-aliasing)モードにおけるコピーアウト中に点サンプリングピクセルを用いるデフリッカリング機能を達成するために使用できる。デフリッカリングは、典型的には、2つの問題を解決するために使用される。(1)インタレース表示のための細い1ピクセル高の水平ラインのフリッカを除去する(1ピクセル高さの水平ラインはTVのインタレースが他のフィールド毎にこのラインを表示するとき、30Hzでフリッカする)。(2)たとえばフレームバッファ中へ60Hzで480ラインをレンダリングし、インタレース表示のために240ラインにデフリッカリングすることによって簡単なエイリアス補正を提供する。これが基本的な2サンプル超サンプリングである。
【0110】
エイリアス補正なしモード(デフリッカリングモード)の実施例において、サンプリングパターンはプログラマブルではない。したがって、この例においては、ハードウェアはサンプリング位置としてピクセルの中心だけを使用する。そのために、プログラマブルな超サンプリング位置はこのモードでは無視される。デフリッカリングのためのブレンドフィルタ628aの例が図20に示される。重み付け係数(coeff0−coeff6)はプログラマブルであり、図15に示すエイリアス補正フィルタの重み付け(W0−W6)に対応する。図20に示すように、デフリッカリングモードにおける垂直フィルタ628aは現在のピクセルからの3つの入力(中心だけ)および2つの垂直隣接ピクセル(N−1およびN+1)の各々からの2つの入力(中心だけ)を使用し、それによってフィルタリング動作のために7つの値を得る。プログラマブルな重み付け係数(coeff0−coeff6)はその7つのサンプルに与えられ、結果が加算され、最終のピクセルカラー(N′)が得られる。デフリッカリングのための係数coeff0およびcoeff1は、好ましくは、同じ値に設定され、coeff2,coeff3およびcoeff4は好ましくは同じ値に設定され、そしてcoeff5およびcoeff6が好ましくは同じ値に設定される。これらの値はエイリアス補正フィルタ628について上で述べた係数W0−W6と同じ方法で規定することができる。N′をNと同じにするならば、coeff0,coeff1,coeff5およびcoeff6を0に設定し、残りの重み(coeff2,coeff3およびcoeff4)をそれらの合計で1に設定すればよい。このことによって、フィルタが、ピクセルNにおける1つのサンプルの値と同じであるN′の値を出力することができる。
【0111】
各ピクセル中の点サンプルの位置はこの発明の他の実施例においてはプログラマブルであることに注意されたい。換言すれば、この発明は、点サンプリング位置としてピクセルの中心を用いるものに限定されるものではない。この位置はハードウェアによって設定されもしくはプログラマブルであり、それによって超サンプリングもしくはエイリアス補正モードに関して上で述べたように、隣接ピクセル間の具体的なサンプリングパターンを構成するために1つのピクセルから次へ変更することができる。たとえば、点サンプリング位置についての具体的なパターンはクォードラプレットベースで設定され得て、さもなければ、この点サンプリングの実施例において達成されるエイリアス補正を改善する。エイリアス補正の実施例について上で詳細に説明したように、再構成フィルタ(デフリッカフィルタ)の大きさは、エイリアス補正改善の目的のために、1×1より垂直方向水平方向あるいは両方向において大きくすることができる。したがって、具体的な点サンプリング位置パターン(すなわち、ピクセル間のジッタリング)および隣接ピクセルからのいくつかの点サンプルを共用する具体的なフィルタ構成を使用することによって、この発明に従ってよりよいエイリアス補正を達成することができる。
【0112】
上で述べたように、デフリッカリングはオプションとして行われ、フレームをフィールドに変換する。好ましくは、デフリッカリングフィールドおよびAAフィールドは共用される。AAデータ経路(図18参照)で使用される4つのストリップバッファはクォードラプレットストリップをストアするためにまた使用される。デフリッカリングバッファのためのデータ経路の例示的なブロック図が図21に示される。このシフタ部632aは3つの別々のラインからの3つのRGBピクセルデータをAAフィルタに与える。これはプログラマブルな係数を有する3タップフィルタである。
互換性のある他の実施例
上述のシステム50は上で述べた家庭用ビデオゲームコンソールの構成以外としても実現できる。たとえば、或るものは、システム50をエミュレートする異なる構成を有するプラットフォームもしくはそれと同等のものにおいて、システム50のために書かれたグラフィクスアプリケーションや他のソフトウェアを実行させることができる。もし、他のプラットフォームがシステム50のいくつかのもしくはすべてのハードウェアおよびソフトウェアリソースをエミュレートしシミュレートしおよび/または提供することができれば、その他のプラットフォームはそのソフトウェアを成功裏に実行することができる。
【0113】
一例として、エミュレータがシステム50のハードウェアおよび/またはソフトウェア構成(プラットフォーム)とは異なるハードウェアおよび/またはソフトウェア構成(プラットフォーム)を提供できる。そのエミュレータシステムは、それのためにアプリケーションソフトウェアが書かれているシステムのいくつかのもしくはすべてのハードウェアおよび/またはソフトウェアコンポーネンツをエミュレートしもしくはシミュレートするソフトウェアおよび/またはハードウェアコンポーネンツを含む。たとえば、エミュレータシステムはパソコンのような汎用ディジタルコンピュータを含み、それはシステム50のハードウェアおよび/またはファームウェアをシミュレートするソフトウェアエミュレータプログラムを実行する。上述のオーディオシステムのDSP処理がパソコンによってエミュレートされ得る。
【0114】
或る汎用ディジタルコンピュータ(たとえばIBMやマッキントッシュのパソコンおよびそれらの同等物)は、ダイレクトX(DirectX)または他の標準的な3DグラフィクスコマンドAPIsに従った3Dグラフィクスパイプラインを提供する3Dグラフィクスカードを備える。それらはまた、音声コマンドの標準的なセットに基づいて高品質のステレオ音声を提供するステレオ音声カードを備える。エミュレータソフトウェアを実行するそのようなマルチメディアのハードウェアを備えるパソコンは、システム50のグラフィクスおよび音声性能とほぼ等しい十分な性能を有する。エミュレータソフトウェアはパソコンプラットフォーム上のハードウェアリソースを制御して、それのためにゲームプログラマがゲームソフトウェアを書いた家庭用ビデオゲームコンソールプラットフォームの処理,3Dグラフィクス,音声,周辺および他の能力をシミュレートする。
【0115】
図22はホストプラットフォーム1201,エミュレータコンポーネント1303および記憶媒体62上のゲームソフトウェア実行可能バイナリ映像を用いる全体のエミュレーション処理を図解する。ホスト1201は、たとえばパソコン,ビデオゲームコンソールあるいは十分な計算力を有する任意の他のプラットフォームのような汎用または特定目的ディジタル計算装置である。エミュレータ1303はそのホストプラットフォーム1201上で走るソフトウェアおよび/またはハードウェアであり、記憶媒体62からのコマンド,データおよび他の情報のそのホスト1201によって実行可能な形態へのリアルタイム変換を行う。たとえば、エミュレータ1303は記憶媒体62からシステム50によって実行されるように意図された「ソース」であるバイナリ映像プログラム命令を取り込み、これらのプログラム命令をホスト1201によって実行されもしくは処理され得るターゲットとなる形態に変換する。
【0116】
一例として、ソフトウェアがIBMパワーPCまたは他の特定のプロセサを用いるプラットフォーム上での実行のために書かれかつホスト1201が異なる(たとえばインテル)プロセサを用いるパソコンである場合、エミュレータ1203は記憶媒体1305からの1つのもしくは一連のバイナリ映像プログラム命令を取り込み、これらのプログラム命令を1つまたはそれ以上の同等のインテルのバイナリ映像プログラム命令に変換する。エミュレータ1203はまたグラフィクス/オーディオプロセサ114によって処理されるように意図されたグラフィクスコマンドおよびオーディオコマンドを取り込みかつ/あるいは生成し、そしてホスト1201上で利用可能なハードウェアおよび/またはソフトウェアグラフィクス/オーディオ処理リソースによって処理され得る形態にこれらのコマンドを変換する。一例として、エミュレータ1303はホスト1201の特別なグラフィクスおよび/または音声ハードウェア(たとえば標準的なダイレクトX,オープンGLおよび/または音声APIs)によって処理され得るコマンドにこれらのコマンドを変換する。
【0117】
上で述べたビデオゲームシステムのいくつかのもしくはすべての特徴を与えるために用いられるエミュレータ1303は、また、エミュレータを使ってゲームを走らせている種々のオプションおよびスクリーンモードの選択を簡単化しもしくは自動化するグラフィックユーザインタフェース(GUI)を備える。一例において、そのようなエミュレータ1303はさらにそのソフトウェアが本来的に目的とされたホストプラットフォームに比べてより増強された機能性を含むこともできる。
【0118】
図23はエミュレータ1303で用いるに適したエミュレーションホストシステム1201を図解的に示す。このシステム1201は処理ユニット1203およびシステムメモリ1205を含む。システムバス1207がシステムメモリ1205を含む種々のシステムコンポーネンツを処理ユニット1203に結合する。システムバス1207は多様なバスアーキテクチャのいずれかを用いるメモリバスもしくはメモリコントローラ,周辺バスおよびローカルバスを含むいくつかのタイプのバス構造の任意のものである。システムメモリ1207はROM1252およびRAM1254を含む。起動中においてのようにパソコンシステム1201中のエレメント(要素)間に情報を伝送する手助けをする基本ルーチンを含む基本入力/出力システム(BIOS)1256がROM1252中にストアされる。システム1201はさらに種々のドライブおよび関連のコンピュータ読出可能な媒体を含む。ハードディスクドライブ1209が(典型的には固定の)磁気ハードディスク1211から読み出しそれへ書き込む。付加的な(たぶんオプションとしての)磁気ディスクドライブ1213が着脱可能な「フロッピィ」または他の磁気ディスク1251から読み出しかつそれへ書き込む。光ディスクドライブ1217はCD−ROMあるいは他の光学媒体のような着脱自在な光ディスク1219から読み出しかつそれへ書き込む。ハードディスクドライブ1209および光ディスクドライブ1217は、ハードディスクドライブインタフェース1221および光ディスクドライブインタフェース1225によって、システムバス1207にそれぞれ接続される。これらのドライブおよびその関連するコンピュータ読出可能な媒体は、パソコンシステム1201のためのコンピュータ読出可能な命令,データ構造,プログラムモジュール,ゲームプログラムおよび他のデータの不揮発性の記憶媒体を提供する。他の構成では、コンピュータによってアクセス可能なデータをストアすることができる他のタイプのコンピュータ読出可能な媒体(たとえば磁気カセット,フラッシュメモリカード,ディジタルビデオディスク,ベルヌーイカートリッジ,RAM,ROMあるいはその他のもの)がまた使用できる。
【0119】
エミュレータ1303を含む多数のプログラムモジュールがハードディスク1211,着脱可能な磁気ディスク1215,光ディスク1219および/またはシステムメモリ1205のROM1252および/またはRAM1254にストアされ得る。このようなプログラムモジュールはグラフィクス/音声APIs,1つ以上のアプリケーションプログラム,他のプログラムモジュール,プログラムデータおよびゲームデータを提供するオペレーティングシステム(OS)を含む。ユーザは、キーボード1227,ポインティングデバイス1229,マイクロフォン,ジョイスティック,ゲームコントローラ,衛星アンテナ(satellite dish),スキャナあるいはその他のもののような入力デバイスを通して、パソコンシステム1201にコマンドおよび情報を入力することができる。これらのそして他の入力デバイスは、システムバス1207に結合されたシリアルポートインタフェース1231を通して処理ユニット1203に接続され得るが、パラレルポート,ゲームポートファイヤワイヤバス(Fire Wire)もしくはユニバーサルシリアルバス(USB)のような他のインタフェースによって接続されてもよい。モニタまたは他のタイプの表示デバイスがまたビデオアダプタ1235のようなインタフェースを介してシステムバス1207に接続される。
【0120】
システム1201はモデム1154またはインターネットのようなネットワーク1152を通しての通信を確立するための他のネットワークインタフェース手段を含む。内部もしくは外付けであってよいモデム1154はシリアルポートインタフェース1231を介してシステムバス123に接続される。システム1201がローカルエリアネットワーク1158を介して遠隔コンピュータ装置1150(たとえば他のシステム1201)と通信するのを許容するために、ネットワークインタフェース1156がまた設けられてもよい(もしくはそのような通信はダイヤルアップもしくは他の通信手段のようなワイドエリアネットワーク1152もしくは他の通信経路を介してもよい)。システム1201はプリンタのような周辺出力装置および他の標準的な周辺装置を含む。
【0121】
一例では、ビデオアダプタ1235は、マイクロソフト(Microsoft)のダイレクトX7.0、または他のバージョンのような標準的な3Dグラフィクスアプリケーションプログラマインタフェースに基づいて発行された3Dグラフィクスコマンドに応答して、高速の3Dグラフィクスレンダリングを提供する3Dグラフィクスパイプラインチップセットを含んでもよい。1組のスピーカ1237はまた、バス1207によって与えられる音声コマンドに基づいて高品質ステレオ音声を生成するハードウェアおよび埋め込みソフトウェアを提供する従来の「音声カード」のような音声生成インタフェースを介して、システムバス1207に接続される。これらのハードウェア能力によって記憶媒体1305中にストアされているソフトウェアを再生するためにシステム1201に十分なグラフィクスおよび音声の速度性能を与えることができる。
【0122】
最も現実的かつ好ましい実施例であると現在考えられているものに関連してこの発明が説明されたが、この発明は開示された実施例に限定されるものではなく、逆に、特許請求の範囲内に含まれる種々の変形例や等価的な構成をカバーするように意図されていることを理解されたい。
【図面の簡単な説明】
【図1】図1はインタラクティブコンピュータグラフィクスシステムの実施例を示す全体図である。
【図2】図2は図1実施例のコンピュータグラフィクスシステムのブロック図である。
【図3】図3は図2に示す実施例のグラフィクス/オーディオプロセサのブロック図である。
【図4】図4は図3に示す実施例の3Dグラフィクスプロセサのブロック図である。
【図5】図4のグラフィクス/オーディオプロセサの例示的な論理フロー図である。
【図6】図6は実施例のエイリアス補正プロセスを示す。
【図7】図7はこの発明のエイリアス補正方法を説明するフロー図である。
【図8】図8はプリミティブおよび超サンプルピクセルクォードラプレットの例を示す。
【図9】図9はクォードラプレットのための例示的なサンプリングパターンを示す。
【図10】図10は超サンプル位置が規定され得る12×12のサブピクセルグリッド中に各ピクセルが如何に分割されるかを示す。
【図11】図11は再構成フィルタのための好ましい超サンプリングパターンを示す。
【図12】図12はサンプリング位置およびフィルタ係数を設定するための例示的な制御レジスタを示す。
【図13】図13は図8に示す形式のピクセルクォードラプレットのための例示的な超サンプリング適用範囲マスクを示す。
【図14】図14は内蔵フレームバッファおよび外部フレームバッファ間における図3のグラフィクスプロセサのための例示的なコピーアウトパイプラインを示す。
【図15】図15はこの発明に従ったエイリアス補正のために使用される垂直フィルタブレンド用プログラマブル7タップフィルタを示す。
【図16】図16は例示的な垂直フィルタアパーチャを示す。
【図17】図17は例示的な垂直フィルタ構成を示す。
【図18】図18は例示的なエイリアス補正コピーアウトバッファ動作を示す。
【図19】図19はこの発明の好ましい実施例に従って使用されるエイリアス補正バッファのブロック図を示す。
【図20】図20はエイリアス補正なしモードにおいて使用されかつこの発明に従ってフリッカリングを低減する図15のフィルタを示す。
【図21】図21はこの発明の好ましい実施例に従って使用されるデフリッカリングバッファのブロック図を示す。
【図22】図22は別の互換性のある実施例を示す。
【図23】図23は別の互換性のある実施例を示す。
【符号の説明】
50 …インタラクティブ3Dコンピュータグラフィクスシステム
110 …主プロセサ
112 …主メモリ
114 …グラフィクス/オーディオプロセサ
180 …グラフィクスパイプライン
500 …テクスチャユニット
600 …テクスチャ環境ユニット
614 …適用範囲マスク
702 …内蔵フレームバッファ
Claims (14)
- 内蔵フレームバッファを含むグラフィクスチップにおけるエイリアス補正方法であって、
(a) 内蔵フレームバッファに超サンプリングイメージをストアし、
(b) そのストアしたイメージを内蔵フレームバッファからチップとは別の宛先へ転送し、そして
(c) イメージの転送プロセス中に、エイリアス補正したイメージを提供するためにイメージを再サンプリングする、方法。 - さらに、超サンプリングイメージを発生する際に使用するためのサンプリングパターンを規定し、そのサンプリングパターンはイメージの隣接ピクセル間で変化する、請求項1記載の方法。
- 再サンプリングは、1ピクセルより大きいピクセルアパーチャを有するブレンドフィルタを使用する、請求項2記載の方法。
- さらに、サンプリングパターンに基づいてピクセルアパーチャを規定する、請求項3記載の方法。
- グラフィクスシステムにおいて超サンプリングピクセルをエイリアス補正する方法であって、
(a) イメージの複数の隣接ピクセルの各々毎に内蔵フレームバッファ中に超サンプリング位置を規定し、
(b) 前記超サンプリング位置の各々にカラーデータを割り当て、そして
(c) ステップ(a) で規定した位置から得られる少なくとも2つのサンプルからのカラーデータをブレンドしてピクセル最終カラー値を与え、
ピクセルに関連するカラーデータがグラフィクスチップ中に内蔵されているRAMにストアされ、そしてステップ(c) は内蔵RAMからグラフィクスチップの外部のメモリへデータを転送する動作中に行われる、方法。 - ブレンドステップ(c) は1つまたはそれ以上のサンプルにブレンドの重みを割り当て、割り当てた重みに少なくとも部分的に基づいて、イネーブルしたサンプルをブレンドし、重みはAPIプログラム関数を介して割り当てられる、請求項5記載の方法。
- ブレンドステップ(c) は7つのサンプルについて重みを割り当て、割り当てた重みに少なくとも部分的に基づいて7つのサンプルをブレンドし、重みはAPIプログラム関数を介して割り当てられる、請求項5記載の方法。
- グラフィクスシステムにおいてフルシーンエイリアス補正をするための方法であって、
(a) 複数の隣接ピクセルの各々毎にピクセルに関連する3つの超サンプリングカラーデータ位置を規定し、
(b)第1のピクセルの直上の第2ピクセルの2つの超サンプリングカラー位置からのカラーデータおよび第1のピクセルの直下の第3ピクセルの2つの超サンプリングカラー位置からのカラーデータで、第1ピクセル内の3つの超サンプリングカラーデータ位置の各々に対応するカラーデータをブレンドし、そして
(c) ブレンドに対応するカラーを有する第1ピクセルを表示する、方法。 - ブレンドステップ(b) は少なくともカラーデータをブレンドするに際して用いた超サンプリングカラーデータ位置についてカラーブレンド重みを割り当てるステップ、および割り当てた重みに少なくとも部分的に基づいてブレンドしたカラーデータの加重平均を計算する、請求項8記載の方法。
- 各ピクセルが、プログラマブルに規定した位置によって識別される複数の超サンプリング部分に分割されるグラフィクスシステムにおいてピクセルをエイリアス補正する方法であって、
(a) 複数の隣接ピクセルの各々毎に複数の超サンプリング位置を規定し、そして
(b) ステップ(a) で規定した位置に対応する超サンプルのためのカラーデータを発生する適用範囲マスクを使用し、その適用範囲マスクはプリミティブフラグメントによって占有される各ピクセルの対応する部分に少なくとも部分的に基づいていて、さらに
(c) ステップ(a) で規定した位置から得られる少なくとも2つの選択した超サンプルからのカラーデータを、コピーアウト動作中に、ブレンドしてフィルタリングしたピクセルカラー値を与える、方法。 - 超サンプリングピクセルをエイリアス補正する装置であって、
ピクセルアレイの各ピクセル中の3つの超サンプリング位置をストアする内蔵フレームバッファを備え、各超サンプリング位置は対応するカラー値を有し、さらに
内蔵フレームバッファ中の情報が宛先に転送されている間に3つの超サンプリングカラー値を隣接ピクセルの超サンプリングカラー値とともにブレンドする1次元カラーデータブレンドフィルタを備える、装置。 - 内蔵フレームバッファは各ピクセル内において3つ以上の超サンプル位置をストアしない、請求項11記載の装置。
- フィルタは、各ピクセルに対応する超サンプリングカラー値を少なくとも1つの別の隣接ピクセルに対応する超サンプリングカラー値とともにブレンドする、請求項11記載の装置。
- フィルタは、垂直に配置された3つのピクセルに対応する超サンプリングカラー値をブレンドしてスクリーンピクセル出力を生成する、請求項11記載の装置。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US22690000P | 2000-08-23 | 2000-08-23 | |
US60/226900 | 2000-11-28 | ||
US09/726226 | 2000-11-28 | ||
US09/726,226 US6999100B1 (en) | 2000-08-23 | 2000-11-28 | Method and apparatus for anti-aliasing in a graphics system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002063597A JP2002063597A (ja) | 2002-02-28 |
JP4698052B2 true JP4698052B2 (ja) | 2011-06-08 |
Family
ID=27791392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001094538A Expired - Fee Related JP4698052B2 (ja) | 2000-08-23 | 2001-03-29 | グラフィクスシステムのエイリアス補正方法および装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6999100B1 (ja) |
JP (1) | JP4698052B2 (ja) |
Families Citing this family (93)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7538772B1 (en) * | 2000-08-23 | 2009-05-26 | Nintendo Co., Ltd. | Graphics processing system with enhanced memory controller |
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 |
US6922199B2 (en) | 2002-08-28 | 2005-07-26 | Micron Technology, Inc. | Full-scene anti-aliasing method and system |
JP4456003B2 (ja) * | 2002-12-20 | 2010-04-28 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | 低コスト・スーパーサンプリング・ラスタライゼーション |
EP1480171B1 (en) * | 2003-05-22 | 2016-11-02 | Telefonaktiebolaget LM Ericsson (publ) | Method and system for supersampling rasterization of image data |
EP1700271A1 (en) * | 2003-12-23 | 2006-09-13 | Koninklijke Philips Electronics N.V. | Computer graphics processor and method of rendering images |
US20050140688A1 (en) * | 2003-12-29 | 2005-06-30 | Kim Pallister | Method and mechanism for programmable filtering of texture map data in 3D graphics subsystems |
KR100823373B1 (ko) * | 2003-12-29 | 2008-04-17 | 인텔 코오퍼레이션 | 3차원 그래픽 서브시스템들에서의 텍스쳐 맵 데이터의프로그램 가능 필터링을 위한 방법 및 메카니즘 |
US20050275760A1 (en) * | 2004-03-02 | 2005-12-15 | Nvidia Corporation | Modifying a rasterized surface, such as by trimming |
US7554538B2 (en) * | 2004-04-02 | 2009-06-30 | Nvidia Corporation | Video processing, such as for hidden surface reduction or removal |
US8743142B1 (en) | 2004-05-14 | 2014-06-03 | Nvidia Corporation | Unified data fetch graphics processing system and method |
US7079156B1 (en) * | 2004-05-14 | 2006-07-18 | Nvidia Corporation | Method and system for implementing multiple high precision and low precision interpolators for a graphics pipeline |
US7538773B1 (en) | 2004-05-14 | 2009-05-26 | Nvidia Corporation | Method and system for implementing parameter clamping to a valid range in a raster stage of a graphics pipeline |
US8860722B2 (en) | 2004-05-14 | 2014-10-14 | Nvidia Corporation | Early Z scoreboard tracking system and method |
US8736628B1 (en) | 2004-05-14 | 2014-05-27 | Nvidia Corporation | Single thread graphics processing system and method |
US8687010B1 (en) | 2004-05-14 | 2014-04-01 | Nvidia Corporation | Arbitrary size texture palettes for use in graphics systems |
US8711155B2 (en) | 2004-05-14 | 2014-04-29 | Nvidia Corporation | Early kill removal graphics processing system and method |
US8411105B1 (en) | 2004-05-14 | 2013-04-02 | Nvidia Corporation | Method and system for computing pixel parameters |
US8416242B1 (en) | 2004-05-14 | 2013-04-09 | Nvidia Corporation | Method and system for interpolating level-of-detail in graphics processors |
US8736620B2 (en) | 2004-05-14 | 2014-05-27 | Nvidia Corporation | Kill bit graphics processing system and method |
US8432394B1 (en) | 2004-05-14 | 2013-04-30 | Nvidia Corporation | Method and system for implementing clamped z value interpolation in a raster stage of a graphics pipeline |
US7551322B2 (en) * | 2004-06-29 | 2009-06-23 | Intel Corporation | Image edge filtering |
US7595806B1 (en) | 2004-08-03 | 2009-09-29 | Nvidia Corporation | Method and system for implementing level of detail filtering in a cube mapping application |
JP4450853B2 (ja) * | 2004-09-16 | 2010-04-14 | エヌヴィディア コーポレイション | 負荷分散 |
US7173631B2 (en) | 2004-09-23 | 2007-02-06 | Qualcomm Incorporated | Flexible antialiasing in embedded devices |
US7333119B1 (en) * | 2004-11-02 | 2008-02-19 | Nvidia Corporation | System and method for virtual coverage anti-aliasing |
JP4817792B2 (ja) * | 2004-11-02 | 2011-11-16 | マイクロソフト コーポレーション | テクスチャベースのピクセルパッキング |
US7868901B1 (en) | 2004-11-02 | 2011-01-11 | Nvidia Corporation | Method and system for reducing memory bandwidth requirements in an anti-aliasing operation |
GB0426170D0 (en) * | 2004-11-29 | 2004-12-29 | Falanx Microsystems As | Processing of computer graphics |
KR100630734B1 (ko) * | 2005-01-13 | 2006-10-02 | 삼성전자주식회사 | 적응적 y/c 분리를 위한 디지털 영상 신호 처리 장치 및방법 |
US7530255B2 (en) * | 2005-01-18 | 2009-05-12 | Mine Safety Appliances Company | Devices, systems and methods for testing of gas detectors |
US7479965B1 (en) * | 2005-04-12 | 2009-01-20 | Nvidia Corporation | Optimized alpha blend for anti-aliased render |
JP4669334B2 (ja) * | 2005-07-06 | 2011-04-13 | 株式会社ディジタルメディアプロフェッショナル | エッジ・マルチサンプリングハイブリッドアンチエイリアス |
GB2431842B (en) * | 2005-10-28 | 2008-02-06 | Imagination Tech Ltd | Full screen anti-aliasing with dynamic filters |
EP1811458A1 (en) * | 2006-01-19 | 2007-07-25 | STMicroelectronics (Research & Development) Limited | A method of generating an image with antialiasing |
US8633927B2 (en) * | 2006-07-25 | 2014-01-21 | Nvidia Corporation | Re-render acceleration of frame with lighting change |
US8537168B1 (en) | 2006-11-02 | 2013-09-17 | Nvidia Corporation | Method and system for deferred coverage mask generation in a raster stage |
US8233004B1 (en) | 2006-11-06 | 2012-07-31 | Nvidia Corporation | Color-compression using automatic reduction of multi-sampled pixels |
US7692659B1 (en) | 2006-11-06 | 2010-04-06 | Nvidia Corporation | Color-compression using automatic reduction of multi-sampled pixels |
US7876332B1 (en) | 2006-12-20 | 2011-01-25 | Nvidia Corporation | Shader that conditionally updates a framebuffer in a computer graphics system |
US8547395B1 (en) | 2006-12-20 | 2013-10-01 | Nvidia Corporation | Writing coverage information to a framebuffer in a computer graphics system |
US7817165B1 (en) | 2006-12-20 | 2010-10-19 | Nvidia Corporation | Selecting real sample locations for ownership of virtual sample locations in a computer graphics system |
JP4987070B2 (ja) * | 2007-04-11 | 2012-07-25 | パナソニック株式会社 | 画像生成装置及び画像生成方法 |
US8081181B2 (en) * | 2007-06-20 | 2011-12-20 | Microsoft Corporation | Prefix sum pass to linearize A-buffer storage |
US20090033671A1 (en) * | 2007-08-02 | 2009-02-05 | Ati Technologies Ulc | Multi-sample rendering of 2d vector images |
US8044956B1 (en) * | 2007-08-03 | 2011-10-25 | Nvidia Corporation | Coverage adaptive multisampling |
US8441497B1 (en) | 2007-08-07 | 2013-05-14 | Nvidia Corporation | Interpolation of vertex attributes in a graphics processor |
US8004522B1 (en) | 2007-08-07 | 2011-08-23 | Nvidia Corporation | Using coverage information in computer graphics |
US8325203B1 (en) | 2007-08-15 | 2012-12-04 | Nvidia Corporation | Optimal caching for virtual coverage antialiasing |
US8736624B1 (en) | 2007-08-15 | 2014-05-27 | Nvidia Corporation | Conditional execution flag in graphics applications |
US9183607B1 (en) | 2007-08-15 | 2015-11-10 | Nvidia Corporation | Scoreboard cache coherence in a graphics pipeline |
US20090046105A1 (en) * | 2007-08-15 | 2009-02-19 | Bergland Tyson J | Conditional execute bit in a graphics processor unit pipeline |
US8599208B2 (en) * | 2007-08-15 | 2013-12-03 | Nvidia Corporation | Shared readable and writeable global values in a graphics processor unit pipeline |
US8314803B2 (en) | 2007-08-15 | 2012-11-20 | Nvidia Corporation | Buffering deserialized pixel data in a graphics processor unit pipeline |
US8521800B1 (en) | 2007-08-15 | 2013-08-27 | Nvidia Corporation | Interconnected arithmetic logic units |
US8775777B2 (en) * | 2007-08-15 | 2014-07-08 | Nvidia Corporation | Techniques for sourcing immediate values from a VLIW |
US8045819B1 (en) * | 2007-11-01 | 2011-10-25 | Altera Corporation | Efficient implementation of mirror-mode edge handling in image filtering |
US8264547B1 (en) * | 2007-11-30 | 2012-09-11 | Pixar | Display calibration method and apparatus for exposing errors in gamma mapping and image scaling |
DE102008005476B4 (de) * | 2008-01-23 | 2010-04-08 | Siemens Aktiengesellschaft | Verfahren zur Bildkompression medizinischer Schnittbilder mit 3D Graphikinformation |
US8044971B2 (en) * | 2008-01-31 | 2011-10-25 | Arm Norway As | Methods of and apparatus for processing computer graphics |
CN102016916B (zh) * | 2008-04-04 | 2014-08-13 | 先进微装置公司 | 用于抗混叠的过滤方法和装置 |
US8406553B2 (en) * | 2009-07-17 | 2013-03-26 | Microsoft Corporation | Poisson disk sample maps |
US8379972B1 (en) * | 2009-12-01 | 2013-02-19 | Adobe Systems Incorporated | Color decontamination for image compositing |
US8773448B2 (en) * | 2010-04-09 | 2014-07-08 | Intel Corporation | List texture |
US9053562B1 (en) | 2010-06-24 | 2015-06-09 | Gregory S. Rabin | Two dimensional to three dimensional moving image converter |
US8624911B1 (en) | 2011-01-05 | 2014-01-07 | Google Inc. | Texture-based polygon antialiasing |
US9460546B1 (en) | 2011-03-30 | 2016-10-04 | Nvidia Corporation | Hierarchical structure for accelerating ray tracing operations in scene rendering |
US9218678B2 (en) * | 2011-04-25 | 2015-12-22 | Intel Corporation | Multi-view rasterization using an analyticl visibility function |
US8970584B1 (en) | 2011-06-24 | 2015-03-03 | Nvidia Corporation | Bounding box-based techniques for improved sample test efficiency in image rendering |
US9147270B1 (en) | 2011-06-24 | 2015-09-29 | Nvidia Corporation | Bounding plane-based techniques for improved sample test efficiency in image rendering |
US9142043B1 (en) | 2011-06-24 | 2015-09-22 | Nvidia Corporation | System and method for improved sample test efficiency in image rendering |
US9269183B1 (en) | 2011-07-31 | 2016-02-23 | Nvidia Corporation | Combined clipless time and lens bounds for improved sample test efficiency in image rendering |
US9305394B2 (en) | 2012-01-27 | 2016-04-05 | Nvidia Corporation | System and process for improved sampling for parallel light transport simulation |
US9330475B2 (en) * | 2012-05-01 | 2016-05-03 | Qualcomm Incorporated | Color buffer and depth buffer compression |
EP2845186B1 (en) * | 2012-05-02 | 2017-11-15 | Intel Corporation | Energy-efficient anti-aliasing |
US9411595B2 (en) | 2012-05-31 | 2016-08-09 | Nvidia Corporation | Multi-threaded transactional memory coherence |
US9171394B2 (en) | 2012-07-19 | 2015-10-27 | Nvidia Corporation | Light transport consistent scene simplification within graphics display system |
US9159158B2 (en) | 2012-07-19 | 2015-10-13 | Nvidia Corporation | Surface classification for point-based rendering within graphics display system |
US9824009B2 (en) | 2012-12-21 | 2017-11-21 | Nvidia Corporation | Information coherency maintenance systems and methods |
US10102142B2 (en) | 2012-12-26 | 2018-10-16 | Nvidia Corporation | Virtual address based memory reordering |
US9317251B2 (en) | 2012-12-31 | 2016-04-19 | Nvidia Corporation | Efficient correction of normalizer shift amount errors in fused multiply add operations |
US9720842B2 (en) * | 2013-02-20 | 2017-08-01 | Nvidia Corporation | Adaptive multilevel binning to improve hierarchical caching |
JP6008125B2 (ja) * | 2013-02-22 | 2016-10-19 | 三菱電機株式会社 | ノイズ低減装置及びノイズ低減方法 |
US9992021B1 (en) | 2013-03-14 | 2018-06-05 | GoTenna, Inc. | System and method for private and point-to-point communication between computing devices |
US9076238B2 (en) | 2013-08-21 | 2015-07-07 | Seiko Epson Corporation | Intelligent weighted blending for ultrasound image stitching |
US9569385B2 (en) | 2013-09-09 | 2017-02-14 | Nvidia Corporation | Memory transaction ordering |
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 |
TWI536799B (zh) * | 2014-10-29 | 2016-06-01 | 虹光精密工業股份有限公司 | 智慧型複印設備 |
CN105574806B (zh) * | 2015-12-10 | 2019-03-15 | 上海兆芯集成电路有限公司 | 影像处理方法及其装置 |
GB2560306B (en) * | 2017-03-01 | 2020-07-08 | Sony Interactive Entertainment Inc | Image processing |
US10157493B2 (en) | 2017-04-01 | 2018-12-18 | Intel Corporation | Adaptive multisampling based on vertex attributes |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61223887A (ja) * | 1985-03-29 | 1986-10-04 | 松下電器産業株式会社 | 図形発生装置 |
JPH05268587A (ja) * | 1991-12-24 | 1993-10-15 | Sony Broadcast & Commun Ltd | 画像処理装置及び方法 |
JPH09179544A (ja) * | 1995-10-06 | 1997-07-11 | Nintendo Co Ltd | シルエットエッジのアンチエリアジング |
JPH09510309A (ja) * | 1994-03-07 | 1997-10-14 | シリコン・グラフィクス・インコーポレーテッド | 集積化したテクスチャメモリと補間論理回路 |
WO1999041706A1 (en) * | 1998-02-17 | 1999-08-19 | Sun Microsystems, Inc. | Graphics system with variable resolution super-sampling |
Family Cites Families (97)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4425559A (en) | 1980-06-02 | 1984-01-10 | Atari, Inc. | Method and apparatus for generating line segments and polygonal areas on a raster-type display |
US4388620A (en) | 1981-01-05 | 1983-06-14 | Atari, Inc. | Method and apparatus for generating elliptical images on a raster-type video display |
US4463380A (en) | 1981-09-25 | 1984-07-31 | Vought Corporation | Image processing system |
US4570233A (en) | 1982-07-01 | 1986-02-11 | The Singer Company | Modular digital image generator |
US4725831A (en) | 1984-04-27 | 1988-02-16 | Xtar Corporation | High-speed video graphics system and method for generating solid polygons on a raster display |
US4658247A (en) | 1984-07-30 | 1987-04-14 | Cornell Research Foundation, Inc. | Pipelined, line buffered real-time color graphics display system |
US4897806A (en) | 1985-06-19 | 1990-01-30 | Pixar | Pseudo-random point sampling techniques in computer graphics |
US5239624A (en) | 1985-06-19 | 1993-08-24 | Pixar | Pseudo-random point sampling techniques in computer graphics |
JPS62192878A (ja) | 1986-02-20 | 1987-08-24 | Nippon Gakki Seizo Kk | 多角形の塗りつぶし方法 |
US4862392A (en) | 1986-03-07 | 1989-08-29 | Star Technologies, Inc. | Geometry processor for graphics display system |
JPS62231380A (ja) | 1986-03-31 | 1987-10-09 | Namuko:Kk | 画像合成装置 |
US5504917A (en) | 1986-04-14 | 1996-04-02 | National Instruments Corporation | Method and apparatus for providing picture generation and control features in a graphical data flow environment |
US5170468A (en) | 1987-08-18 | 1992-12-08 | Hewlett-Packard Company | Graphics system with shadow ram update to the color map |
US4866637A (en) | 1987-10-30 | 1989-09-12 | International Business Machines Corporation | Pipelined lighting model processing system for a graphics workstation's shading function |
US4945500A (en) | 1987-11-04 | 1990-07-31 | Schlumberger Technologies, Inc. | Triangle processor for 3-D graphics display system |
US4901064A (en) | 1987-11-04 | 1990-02-13 | Schlumberger Technologies, Inc. | Normal vector shading for 3-D graphics display system |
US5361386A (en) | 1987-12-04 | 1994-11-01 | Evans & Sutherland Computer Corp. | System for polygon interpolation using instantaneous values in a variable |
CA1309198C (en) | 1987-12-10 | 1992-10-20 | Carlo J. Evangelisti | Parallel rendering of smoothly shaded color triangles with anti-aliased edges for a three dimensional color display |
US5136664A (en) | 1988-02-23 | 1992-08-04 | Bersack Bret B | Pixel rendering |
GB8828342D0 (en) | 1988-12-05 | 1989-01-05 | Rediffusion Simulation Ltd | Image generator |
WO1991011799A1 (fr) | 1990-02-05 | 1991-08-08 | Ricoh Co., Ltd. | Unite d'affichage d'images d'animation et memoire externe utilisee avec une telle unite |
EP0528837B1 (en) | 1990-05-12 | 1997-06-18 | THOMSON TRAINING & SIMULATION LIMITED | Image generator |
DE69122557T2 (de) | 1990-06-29 | 1997-04-24 | Philips Electronics Nv | Bilderzeugung |
US6020894A (en) | 1990-08-16 | 2000-02-01 | Canon Kabushiki Kaisha | Full-color desktop publishing system |
JP2725915B2 (ja) | 1990-11-15 | 1998-03-11 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 三角形描画装置及び方法 |
US5268996A (en) | 1990-12-20 | 1993-12-07 | General Electric Company | Computer image generation method for determination of total pixel illumination due to plural light sources |
US5774133A (en) | 1991-01-09 | 1998-06-30 | 3Dlabs Ltd. | Computer system with improved pixel processing capabilities |
US5421028A (en) | 1991-03-15 | 1995-05-30 | Hewlett-Packard Company | Processing commands and data in a common pipeline path in a high-speed computer graphics system |
TW225595B (ja) | 1991-09-03 | 1994-06-21 | Gen Electric | |
CA2070934C (en) | 1992-06-10 | 1998-05-05 | Benny Chi Wah Lau | Graphics display system |
US5432895A (en) | 1992-10-01 | 1995-07-11 | University Corporation For Atmospheric Research | Virtual reality imaging system |
US5859645A (en) | 1993-03-26 | 1999-01-12 | Loral Corporation | Method for point sampling in computer graphics systems |
US5392393A (en) | 1993-06-04 | 1995-02-21 | Sun Microsystems, Inc. | Architecture for a high performance three dimensional graphics accelerator |
US5878273A (en) | 1993-06-24 | 1999-03-02 | Discovision Associates | System for microprogrammable state machine in video parser disabling portion of processing stages responsive to sequence-- end token generating by token generator responsive to received data |
US5684939A (en) | 1993-07-09 | 1997-11-04 | Silicon Graphics, Inc. | Antialiased imaging with improved pixel supersampling |
JP3240821B2 (ja) | 1994-04-22 | 2001-12-25 | 株式会社日立製作所 | 高機能画像メモリlsi及びそれを用いた表示装置 |
US5768626A (en) | 1994-06-24 | 1998-06-16 | Intel Corporation | Method and apparatus for servicing a plurality of FIFO's in a capture gate array |
US5600763A (en) | 1994-07-21 | 1997-02-04 | Apple Computer, Inc. | Error-bounded antialiased rendering of complex scenes |
US5727192A (en) | 1995-03-24 | 1998-03-10 | 3Dlabs Inc. Ltd. | Serial rendering system with auto-synchronization on frame blanking |
US5594854A (en) | 1995-03-24 | 1997-01-14 | 3Dlabs Inc. Ltd. | Graphics subsystem with coarse subpixel correction |
US5798770A (en) | 1995-03-24 | 1998-08-25 | 3Dlabs Inc. Ltd. | Graphics rendering system with reconfigurable pipeline sequence |
US5764243A (en) | 1995-03-24 | 1998-06-09 | 3Dlabs Inc. Ltd. | Rendering architecture with selectable processing of multi-pixel spans |
US5777629A (en) | 1995-03-24 | 1998-07-07 | 3Dlabs Inc. Ltd. | Graphics subsystem with smart direct-memory-access operation |
US5701444A (en) | 1995-03-24 | 1997-12-23 | 3Dlabs Inc. Ltd. | Three-dimensional graphics subsystem with enhanced support for graphical user interface |
US5764228A (en) | 1995-03-24 | 1998-06-09 | 3Dlabs Inc., Ltd. | Graphics pre-processing and rendering system |
US5835096A (en) | 1995-03-24 | 1998-11-10 | 3D Labs | Rendering system using 3D texture-processing hardware for accelerated 2D rendering |
US6025853A (en) | 1995-03-24 | 2000-02-15 | 3Dlabs Inc. Ltd. | Integrated graphics subsystem with message-passing architecture |
US5805868A (en) | 1995-03-24 | 1998-09-08 | 3Dlabs Inc. Ltd. | Graphics subsystem with fast clear capability |
US5815166A (en) | 1995-03-24 | 1998-09-29 | 3Dlabs Inc., Ltd. | Graphics subsystem with slaveable rasterizer |
US5687357A (en) | 1995-04-14 | 1997-11-11 | Nvidia Corporation | Register array for utilizing burst mode transfer on local bus |
US5651104A (en) | 1995-04-25 | 1997-07-22 | Evans & Sutherland Computer Corporation | Computer graphics system and process for adaptive supersampling |
US5721947A (en) | 1995-05-15 | 1998-02-24 | Nvidia Corporation | Apparatus adapted to be joined between the system I/O bus and I/O devices which translates addresses furnished directly by an application program |
US5758182A (en) | 1995-05-15 | 1998-05-26 | Nvidia Corporation | DMA controller translates virtual I/O device address received directly from application program command to physical i/o device address of I/O device on device bus |
US6005582A (en) | 1995-08-04 | 1999-12-21 | Microsoft Corporation | Method and system for texture mapping images with anisotropic filtering |
US5949428A (en) | 1995-08-04 | 1999-09-07 | Microsoft Corporation | Method and apparatus for resolving pixel data in a graphics rendering system |
US5886701A (en) | 1995-08-04 | 1999-03-23 | Microsoft Corporation | Graphics rendering device and method for operating same |
US5724561A (en) | 1995-11-03 | 1998-03-03 | 3Dfx Interactive, Incorporated | System and method for efficiently determining a fog blend value in processing graphical images |
US5818456A (en) | 1996-04-30 | 1998-10-06 | Evans & Sutherland Computer Corporation | Computer graphics system with adaptive pixel multisampler |
US5949440A (en) | 1996-04-30 | 1999-09-07 | Hewlett Packard Compnay | Method and apparatus for processing graphics primitives in multiple modes using reconfigurable hardware |
US5874969A (en) | 1996-07-01 | 1999-02-23 | Sun Microsystems, Inc. | Three-dimensional graphics accelerator which implements multiple logical buses using common data lines for improved bus communication |
US5821949A (en) | 1996-07-01 | 1998-10-13 | Sun Microsystems, Inc. | Three-dimensional graphics accelerator with direct data channels for improved performance |
US5877771A (en) | 1996-07-12 | 1999-03-02 | Silicon Graphics, Inc. | Method and apparatus for supersampling based on the local rate of change in texture |
US6028611A (en) | 1996-08-29 | 2000-02-22 | Apple Computer, Inc. | Modular digital image processing via an image processing chain |
JP3738924B2 (ja) | 1996-12-24 | 2006-01-25 | ソニー株式会社 | 描画装置および方法 |
US5940086A (en) | 1997-01-10 | 1999-08-17 | Hewlett Packard Company | System and method for dynamically allocating data among geometry accelerators in a computer graphics system |
US5990903A (en) | 1997-02-03 | 1999-11-23 | Micron Technologies, Inc. | Method and apparatus for performing chroma key, transparency and fog operations |
US5949424A (en) | 1997-02-28 | 1999-09-07 | Silicon Graphics, Inc. | Method, system, and computer program product for bump mapping in tangent space |
US6057852A (en) | 1997-04-30 | 2000-05-02 | Hewlett-Packard Company | Graphics accelerator with constant color identifier |
US6028608A (en) | 1997-05-09 | 2000-02-22 | Jenkins; Barry | System and method of perception-based image generation and encoding |
US5969726A (en) | 1997-05-30 | 1999-10-19 | Hewlett-Packard Co. | Caching and coherency control of multiple geometry accelerators in a computer graphics system |
US5920326A (en) | 1997-05-30 | 1999-07-06 | Hewlett Packard Company | Caching and coherency control of multiple geometry accelerators in a computer graphics system |
US6038031A (en) | 1997-07-28 | 2000-03-14 | 3Dlabs, Ltd | 3D graphics object copying with reduced edge artifacts |
JPH1153580A (ja) | 1997-07-31 | 1999-02-26 | Sony Corp | 3次元画像処理装置及びビデオ合成方法 |
US6037949A (en) | 1997-08-04 | 2000-03-14 | Pixar Animation Studios | Texture mapping and other uses of scalar fields on subdivision surfaces in computer graphics and animation |
JPH1176614A (ja) | 1997-09-11 | 1999-03-23 | Sega Enterp Ltd | コンピュータゲーム装置 |
US6002409A (en) | 1997-10-29 | 1999-12-14 | Cirrus Logic, Inc. | Arbitration for shared graphics processing resources |
JPH11161819A (ja) | 1997-11-27 | 1999-06-18 | Sega Enterp Ltd | 画像処理装置、画像処理方法、及び画像処理プログラムを記録した記録媒体 |
JPH11203500A (ja) | 1998-01-09 | 1999-07-30 | Sega Enterp Ltd | 画像処理装置及びそれに利用されるバンプマップデータを格納した記録媒体 |
US6130723A (en) * | 1998-01-15 | 2000-10-10 | Innovision Corporation | Method and system for improving image quality on an interlaced video display |
JPH11226257A (ja) | 1998-02-16 | 1999-08-24 | Sony Computer Entertainment Inc | 携帯用電子機器及びエンタテインメントシステム並びに記録媒体 |
US6496187B1 (en) * | 1998-02-17 | 2002-12-17 | Sun Microsystems, Inc. | Graphics system configured to perform parallel sample to pixel calculation |
JPH11259678A (ja) | 1998-03-12 | 1999-09-24 | Sega Enterp Ltd | 画像表示装置及びそれによる画像表示方法 |
JP4061697B2 (ja) | 1998-03-12 | 2008-03-19 | 株式会社セガ | 画像表示方法及びそれを実行する画像表示装置 |
US6064392A (en) | 1998-03-16 | 2000-05-16 | Oak Technology, Inc. | Method and apparatus for generating non-homogenous fog |
US6023738A (en) | 1998-03-30 | 2000-02-08 | Nvidia Corporation | Method and apparatus for accelerating the transfer of graphical images |
US6226012B1 (en) | 1998-04-02 | 2001-05-01 | Nvidia Corporation | Method and apparatus for accelerating the rendering of graphical images |
US6092124A (en) | 1998-04-17 | 2000-07-18 | Nvidia Corporation | Method and apparatus for accelerating the rendering of images |
US6492991B1 (en) | 1998-08-28 | 2002-12-10 | Ati International Srl | Method and apparatus for controlling compressed Z information in a video graphics system |
GB2341068B (en) | 1998-07-31 | 2002-11-06 | Sony Uk Ltd | Caching in digital video processing apparatus |
JP2000066985A (ja) | 1998-08-20 | 2000-03-03 | Sony Computer Entertainment Inc | エンタテインメントシステム及びデータ供給方法、データ処理装置及び方法、並びにデータ記憶制御装置及び方法 |
US6771264B1 (en) | 1998-08-20 | 2004-08-03 | Apple Computer, Inc. | Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor |
US6181352B1 (en) | 1999-03-22 | 2001-01-30 | Nvidia Corporation | Graphics pipeline selectively providing multiple pixels or multiple textures |
US6173367B1 (en) | 1999-05-19 | 2001-01-09 | Ati Technologies, Inc. | Method and apparatus for accessing graphics cache memory |
US6807311B1 (en) | 1999-07-08 | 2004-10-19 | Ati International Srl | Method and apparatus for compressing and storing image data |
US6476811B1 (en) | 1999-09-01 | 2002-11-05 | Ati International, Srl | Method and apparatus for compressing parameter values for pixels in a display frame |
US6198488B1 (en) | 1999-12-06 | 2001-03-06 | Nvidia | Transform, lighting and rasterization system embodied on a single semiconductor platform |
US6469707B1 (en) * | 2000-01-19 | 2002-10-22 | Nvidia Corporation | Method for efficiently rendering color information for a pixel in a computer system |
-
2000
- 2000-11-28 US US09/726,226 patent/US6999100B1/en not_active Expired - Lifetime
-
2001
- 2001-03-29 JP JP2001094538A patent/JP4698052B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61223887A (ja) * | 1985-03-29 | 1986-10-04 | 松下電器産業株式会社 | 図形発生装置 |
JPH05268587A (ja) * | 1991-12-24 | 1993-10-15 | Sony Broadcast & Commun Ltd | 画像処理装置及び方法 |
JPH09510309A (ja) * | 1994-03-07 | 1997-10-14 | シリコン・グラフィクス・インコーポレーテッド | 集積化したテクスチャメモリと補間論理回路 |
JPH09179544A (ja) * | 1995-10-06 | 1997-07-11 | Nintendo Co Ltd | シルエットエッジのアンチエリアジング |
WO1999041706A1 (en) * | 1998-02-17 | 1999-08-19 | Sun Microsystems, Inc. | Graphics system with variable resolution super-sampling |
Also Published As
Publication number | Publication date |
---|---|
US6999100B1 (en) | 2006-02-14 |
JP2002063597A (ja) | 2002-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4698052B2 (ja) | グラフィクスシステムのエイリアス補正方法および装置 | |
JP4719363B2 (ja) | 内部フレームバッファと主メモリ間でのコピーアウト変換を有するグラフィクスシステム | |
US7075545B2 (en) | Graphics system with embedded frame buffer having reconfigurable pixel formats | |
US7576748B2 (en) | Graphics system with embedded frame butter having reconfigurable pixel formats | |
JP4731028B2 (ja) | グラフィクスシステム用再循環シェードツリーブレンダ | |
JP4698893B2 (ja) | 改良されたフォグ効果を提供するための方法、グラフィックスシステム、およびプログラム | |
US6664958B1 (en) | Z-texturing | |
JP4522996B2 (ja) | テクスチャマッピングにおける適応リサンプリングのためのシステム | |
JP4846120B2 (ja) | スケルトンアニメーションのステッチングハードウェアを有するグラフィクス装置 | |
JP4678963B2 (ja) | グラフィクスシステムにおいて直接および間接テクスチャを処理するための方法および装置 | |
EP2705501A2 (en) | Texturing in graphics hardware | |
JP4917346B2 (ja) | ゲーム画像処理プログラムおよびゲーム画像処理装置 | |
JP2004005452A (ja) | 画像処理装置、画像処理方法、半導体デバイス、コンピュータプログラム、記録媒体 | |
EP1312047A2 (en) | Apparatus and method for rendering antialiased image | |
JP4801088B2 (ja) | 画素サンプリングの方法及び装置 | |
JP4683760B2 (ja) | 再構成可能なピクセルフォーマットを有する組み込みフレームバッファを有するグラフィックスシステム | |
US8212835B1 (en) | Systems and methods for smooth transitions to bi-cubic magnification | |
EP1081654A2 (en) | Method and apparatus for providing depth blur effects within a 3d videographics system | |
JP3548642B2 (ja) | 画像情報生成装置及び方法、画像情報処理装置及び方法、並びに記録媒体 | |
EP1182617A2 (en) | Graphics system with reconfigurable embedded frame buffer and copy out conversions between embedded frame buffer and main memory | |
JP3910259B2 (ja) | 画像処理装置および方法、並びにレンダリング装置および方法 | |
JP2003022453A (ja) | 描画処理方法及び装置、描画処理プログラムを記録した記録媒体、描画処理プログラム | |
JP4698894B2 (ja) | グラフィックスシステムにおけるテクスチャタイリングのための方法、装置およびプログラム | |
KR20010113671A (ko) | 디스플레이 효과 수행을 위한 선별적 여과 조절을이용하여 출력 픽셀을 생성하는 수퍼-샘플되는 샘플버퍼를 가지는 그래픽 시스템 | |
KR20020036775A (ko) | 아티팩트 감소를 위해 선별적 여과 조절을 이용하여 출력픽셀을 생성하는 수퍼-샘플되는 샘플 버퍼를 가지는그래픽 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20010529 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080318 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101026 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101220 |
|
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: 20110201 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110301 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4698052 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
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 |