JPH1186007A - プリミティブにより覆われるピクセルの割合を求める方法 - Google Patents
プリミティブにより覆われるピクセルの割合を求める方法Info
- Publication number
- JPH1186007A JPH1186007A JP10180764A JP18076498A JPH1186007A JP H1186007 A JPH1186007 A JP H1186007A JP 10180764 A JP10180764 A JP 10180764A JP 18076498 A JP18076498 A JP 18076498A JP H1186007 A JPH1186007 A JP H1186007A
- Authority
- JP
- Japan
- Prior art keywords
- sub
- edge
- pixel
- primitive
- coordinate
- 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.)
- Pending
Links
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/12—Indexing scheme for image data processing or generation, in general involving antialiasing
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
(57)【要約】
【課題】 アンチエリアジング操作においてプリミテ
ィブがサブピクセルを覆う範囲を求めるための改良され
た方法および装置を提供する。 【解決手段】ピクセルを複数のサブ走査線に分け、サブ
走査線は1つのピクセルについて複数のサブピクセルを
定め、マルチポイントされた複数のサブピクセルはそれ
ぞれ1つのサブ走査線に対応する。サブ走査線の間をエ
ッジに沿って進行し、サブ走査線上のサブピクセルがプ
リミティブによりカバーされるか否かが判断されてプリ
ミティブによりカバーされるサブピクセルの数が求めら
れる。この数に基づいてプリミティブにより覆われるピ
クセルの割合を求める。
ィブがサブピクセルを覆う範囲を求めるための改良され
た方法および装置を提供する。 【解決手段】ピクセルを複数のサブ走査線に分け、サブ
走査線は1つのピクセルについて複数のサブピクセルを
定め、マルチポイントされた複数のサブピクセルはそれ
ぞれ1つのサブ走査線に対応する。サブ走査線の間をエ
ッジに沿って進行し、サブ走査線上のサブピクセルがプ
リミティブによりカバーされるか否かが判断されてプリ
ミティブによりカバーされるサブピクセルの数が求めら
れる。この数に基づいてプリミティブにより覆われるピ
クセルの割合を求める。
Description
【0001】
【発明の属する技術分野】本発明は、コンピュータシス
テムのフィールドに関し、より具体的にはコンピュータ
グラフィックス・システムのアンチエリアジング(anti-
aliasing、折り返し防止)のための方法および装置に関
する。
テムのフィールドに関し、より具体的にはコンピュータ
グラフィックス・システムのアンチエリアジング(anti-
aliasing、折り返し防止)のための方法および装置に関
する。
【0002】
【従来の技術】コンピュータグラフィックス・システム
は、2次元の表示画面上に2または3次元のオブジェク
トのグラフィック表示を表示するために通常使用され
る。従来のコンピュータグラフィックス・システムは、
表示画面を含むグラフィックス装置に、命令およびデー
タを提供するためのホストコンピュータを含む。コマン
ドおよびデータをグラフィックス装置に転送することに
より、ホストコンピュータは表示画面の画像の表示を制
御する。
は、2次元の表示画面上に2または3次元のオブジェク
トのグラフィック表示を表示するために通常使用され
る。従来のコンピュータグラフィックス・システムは、
表示画面を含むグラフィックス装置に、命令およびデー
タを提供するためのホストコンピュータを含む。コマン
ドおよびデータをグラフィックス装置に転送することに
より、ホストコンピュータは表示画面の画像の表示を制
御する。
【0003】通常のコンピュータグラフィックス・シス
テムでは、表示画面に表されるオブジェクトが、いくつ
かのプリミティブ(primitives)に分解される。プリミテ
ィブは、点、線、ベクトルおよびポリゴン(polygon)
(たとえば三角形)といったグラフィックス・ピクチャ
の基本構成要素である。通常、ホストコンピュータで動
くグラフィックス・ソフトウェアは、グラフィックス装
置と一緒に動作し、表示装置にグラフィックスのプリミ
ティブをレンダリング(描画)する。
テムでは、表示画面に表されるオブジェクトが、いくつ
かのプリミティブ(primitives)に分解される。プリミテ
ィブは、点、線、ベクトルおよびポリゴン(polygon)
(たとえば三角形)といったグラフィックス・ピクチャ
の基本構成要素である。通常、ホストコンピュータで動
くグラフィックス・ソフトウェアは、グラフィックス装
置と一緒に動作し、表示装置にグラフィックスのプリミ
ティブをレンダリング(描画)する。
【0004】2または3次元のオブジェクトをレンダリ
ングするため、ホストコンピュータは、レンダリングさ
れるべきオブジェクトを一括して定義するプリミティブ
・データの集合(コレクション、collection)を提供す
る。たとえば、三角形を定義するプリミティブ・データ
は、3次元オブジェクト空間のx、y、z座標を含み、
三角形のそれぞれの頂点について赤、緑、青(R,G,
B)のカラー値(color value)を含むことができる。グ
ラフィックス装置におけるレンダリングのハードウェア
は、プリミティブ・データを補間し、表示画面上のどの
ピクセルが三角形をレンダリングするのに使用されるか
を判断し、これらのピクセルのそれぞれについて赤、
緑、青のカラー値を決定する。
ングするため、ホストコンピュータは、レンダリングさ
れるべきオブジェクトを一括して定義するプリミティブ
・データの集合(コレクション、collection)を提供す
る。たとえば、三角形を定義するプリミティブ・データ
は、3次元オブジェクト空間のx、y、z座標を含み、
三角形のそれぞれの頂点について赤、緑、青(R,G,
B)のカラー値(color value)を含むことができる。グ
ラフィックス装置におけるレンダリングのハードウェア
は、プリミティブ・データを補間し、表示画面上のどの
ピクセルが三角形をレンダリングするのに使用されるか
を判断し、これらのピクセルのそれぞれについて赤、
緑、青のカラー値を決定する。
【0005】線、点、またはポリゴンのようなプリミテ
ィブデータを、ピクセルデータの対応する配列に変換す
る処理は、「走査変換(scan conversion)」として知ら
れる。グラフィックスシステムで使用される走査変換処
理は、非常に頻繁に、通常は作成または修正される各画
像について何千回も呼び出される。よって、走査変換処
理をできるだけ速く実行させることが望ましい。しか
し、実行スピードは、画像品質に対していくつかのトレ
ードオフをしばしば必要とする。
ィブデータを、ピクセルデータの対応する配列に変換す
る処理は、「走査変換(scan conversion)」として知ら
れる。グラフィックスシステムで使用される走査変換処
理は、非常に頻繁に、通常は作成または修正される各画
像について何千回も呼び出される。よって、走査変換処
理をできるだけ速く実行させることが望ましい。しか
し、実行スピードは、画像品質に対していくつかのトレ
ードオフをしばしば必要とする。
【0006】いくつかの走査変換方法が高速であるが、
レンダリングされるプリミティブがぎざぎざのエッジを
有するように現れる。ぎざぎざのエッジの現れは、プリ
ミティブのエッジにおけるピクセルについてのあまり最
適ではない色の選択から生じる。ピクセルデータへの変
換の結果としてのギザギザのエッジを有するプリミティ
ブは、しばしば「エリアジングされた(aliased)」と呼
ばれる。走査変換がぎざぎざのエッジを適切にしようと
しないモードで動作する場合を、エリアジングモードで
の操作、と言う。
レンダリングされるプリミティブがぎざぎざのエッジを
有するように現れる。ぎざぎざのエッジの現れは、プリ
ミティブのエッジにおけるピクセルについてのあまり最
適ではない色の選択から生じる。ピクセルデータへの変
換の結果としてのギザギザのエッジを有するプリミティ
ブは、しばしば「エリアジングされた(aliased)」と呼
ばれる。走査変換がぎざぎざのエッジを適切にしようと
しないモードで動作する場合を、エリアジングモードで
の操作、と言う。
【0007】たとえば、図1はエリアジング・モードの
走査変換操作によりレンダリングされたプリミティブを
例示する(すなわち三角形74)。エリアジング・モー
ドにプリミティブを与える、各ピクセルがオン(すなわ
ちプリミティブにより覆われる)であるか、オフ(プリ
ミティブにより覆われない)であるかについて、高速な
判断がなされる。基本的な判断は、図1の点1のよう
に、原点での各ピクセルの状態を判断することによりな
される。x、y座標空間における各ピクセルのアドレ
ス、すなわち原点は、ピクセルの左上方の角におけるグ
リッド(格子)のx、yの交差点での座標により定めら
れる。原点がプリミティブにより覆われる場合にはピク
セルはオンであり、覆われない場合はオフである。1つ
のカラーサンプルのみが単位ピクセルあたり取られるの
で、エリアジング・モードでのプリミティブのレンダリ
ングは高速に実行される。しかし、図1の例から明らか
なように、エリアジングされたプリミティブはしばしば
高速にレンダリングされるが、結果のプリミティブはし
ばしば品質が低下する。
走査変換操作によりレンダリングされたプリミティブを
例示する(すなわち三角形74)。エリアジング・モー
ドにプリミティブを与える、各ピクセルがオン(すなわ
ちプリミティブにより覆われる)であるか、オフ(プリ
ミティブにより覆われない)であるかについて、高速な
判断がなされる。基本的な判断は、図1の点1のよう
に、原点での各ピクセルの状態を判断することによりな
される。x、y座標空間における各ピクセルのアドレ
ス、すなわち原点は、ピクセルの左上方の角におけるグ
リッド(格子)のx、yの交差点での座標により定めら
れる。原点がプリミティブにより覆われる場合にはピク
セルはオンであり、覆われない場合はオフである。1つ
のカラーサンプルのみが単位ピクセルあたり取られるの
で、エリアジング・モードでのプリミティブのレンダリ
ングは高速に実行される。しかし、図1の例から明らか
なように、エリアジングされたプリミティブはしばしば
高速にレンダリングされるが、結果のプリミティブはし
ばしば品質が低下する。
【0008】平滑されたエッジの現れを有するプリミテ
ィブを提供する処理は、通常「アンチエリアジング(ant
i-aliasing)」と呼ばれる。アンチエリアジング・モー
ドで動作する走査変換アルゴリズムは、より多くの計算
が適切な色を選択するために各ピクセルにおいて実行さ
れるので、通常遅く、または相当大きいハードウェアを
必要とする。しかし、アンチエリアジングを使用してレ
ンダリングされたプリミティブは、より最適な色の選択
基準の結果として平滑されたエッジを有する。アンチエ
リアジングの1つの方法は、各ピクセルにおけるマルチ
ポイント・サンプリング(multi-point sampling)を使用
し、プリミティブのエッジにおけるピクセルについてよ
り適した色を選択する。より適した色の選択では、マル
チポイント・サンプリングが、任意の下にある形状も含
めて背景の色とプリミティブの色を混合し、プリミティ
ブのぎざぎざのエッジを滑らかにする。マルチポイント
・サンプリングでは、各ピクセルが、各ピクセル内の複
数のサブピクセルの位置で通常サンプルされ、プリミテ
ィブにより覆われるピクセル部分を判断する。その後、
ピクセルについて1つの混合色が、ピクセルにより覆わ
れるサブピクセルの数に基づいて決定される。
ィブを提供する処理は、通常「アンチエリアジング(ant
i-aliasing)」と呼ばれる。アンチエリアジング・モー
ドで動作する走査変換アルゴリズムは、より多くの計算
が適切な色を選択するために各ピクセルにおいて実行さ
れるので、通常遅く、または相当大きいハードウェアを
必要とする。しかし、アンチエリアジングを使用してレ
ンダリングされたプリミティブは、より最適な色の選択
基準の結果として平滑されたエッジを有する。アンチエ
リアジングの1つの方法は、各ピクセルにおけるマルチ
ポイント・サンプリング(multi-point sampling)を使用
し、プリミティブのエッジにおけるピクセルについてよ
り適した色を選択する。より適した色の選択では、マル
チポイント・サンプリングが、任意の下にある形状も含
めて背景の色とプリミティブの色を混合し、プリミティ
ブのぎざぎざのエッジを滑らかにする。マルチポイント
・サンプリングでは、各ピクセルが、各ピクセル内の複
数のサブピクセルの位置で通常サンプルされ、プリミテ
ィブにより覆われるピクセル部分を判断する。その後、
ピクセルについて1つの混合色が、ピクセルにより覆わ
れるサブピクセルの数に基づいて決定される。
【0009】たとえば、サブピクセルのサンプル位置の
50%が覆われるように、所与のピクセルにおいて赤の
プリミティブのエッジが黒の背景を覆う場合には、ピク
セルについての色は、赤50%および黒50%の混合と
して選択することができる。
50%が覆われるように、所与のピクセルにおいて赤の
プリミティブのエッジが黒の背景を覆う場合には、ピク
セルについての色は、赤50%および黒50%の混合と
して選択することができる。
【0010】マルチポイント・サンプリングを使用する
アンチエリアジングされた画像を提供するのに使用され
る技術が、「REALITYENGINE(商標)」グラフィックス
装置で提供され、Silicon Graphics Computer Systems
(U.S.A)から商品化されている。Silicon Graphics装置
は、プリミティブを表すプレーン式(plane equations)
を受けとり、各プレーン式の個々のパラメータについて
解く。プレーン式のパラメータは、参照テーブルにおけ
る位置をアクセスするのに使用され、参照テーブルはパ
ラメータ値のそれぞれの可能な組合せについてサブピク
セルのパターンを保管している。参照テーブルのサブピ
クセルのパターンは、各ピクセルのプレーン式により表
されるプリミティブにより覆われるサブピクセルを特定
するのに使用される。
アンチエリアジングされた画像を提供するのに使用され
る技術が、「REALITYENGINE(商標)」グラフィックス
装置で提供され、Silicon Graphics Computer Systems
(U.S.A)から商品化されている。Silicon Graphics装置
は、プリミティブを表すプレーン式(plane equations)
を受けとり、各プレーン式の個々のパラメータについて
解く。プレーン式のパラメータは、参照テーブルにおけ
る位置をアクセスするのに使用され、参照テーブルはパ
ラメータ値のそれぞれの可能な組合せについてサブピク
セルのパターンを保管している。参照テーブルのサブピ
クセルのパターンは、各ピクセルのプレーン式により表
されるプリミティブにより覆われるサブピクセルを特定
するのに使用される。
【0011】プレーン式を解くのに使用される数値計算
は複雑である。高パフォーマンスでプレーン式のパラメ
ータを解くためには、多くのピクセル・プロセッサが必
要である。数値計算および参照がハードウェアで実行さ
れるので、Silicon Graphicsシステムは比較的高速にサ
ブピクセルのデータを提供することができる。しかし、
上述した方法の欠点は、数値関数を実行するのに必要な
ハードウェアがゲート数の観点から高価であり、よって
グラフィックス回路のコストおよびサイズを増大させ
る。
は複雑である。高パフォーマンスでプレーン式のパラメ
ータを解くためには、多くのピクセル・プロセッサが必
要である。数値計算および参照がハードウェアで実行さ
れるので、Silicon Graphicsシステムは比較的高速にサ
ブピクセルのデータを提供することができる。しかし、
上述した方法の欠点は、数値関数を実行するのに必要な
ハードウェアがゲート数の観点から高価であり、よって
グラフィックス回路のコストおよびサイズを増大させ
る。
【0012】
【発明が解決しようとする課題】本発明の目的は、アン
チエリアジング操作で使用する、プリミティブのサブピ
クセルの被覆範囲を求めるための改良された方法および
装置を提供することである。
チエリアジング操作で使用する、プリミティブのサブピ
クセルの被覆範囲を求めるための改良された方法および
装置を提供することである。
【0013】
【課題を解決するための手段】本発明のある側面による
と、表示画面上に表示されるプリミティブにより覆われ
るグラフィックスシステムの表示画面上の少なくとも1
つのピクセルの割合を見積もる方法を提供する。方法
は、少なくとも1つのピクセルについて複数のサブサン
プル点を定める複数のサブ走査線に、少なくとも1つの
表示ピクセルを分け、複数のサブサンプル点のそれぞれ
が複数のサブ走査線の対応する1つに置かれるステップ
を含む。進行は、少なくとも1つのピクセルの複数のサ
ブ走査線の間で実行される。複数のサブ走査線のそれぞ
れ1つにおいて、複数のサブ走査線の1つの対応するサ
ブサンプル点がプリミティブにより覆われるかどうか判
断される。プリミティブにより覆われる少なくとも1つ
のピクセルの割合が、プリミティブにより覆われる少な
くとも1つのピクセルの複数のサブサンプル点の数に基
づいて見積もられる。
と、表示画面上に表示されるプリミティブにより覆われ
るグラフィックスシステムの表示画面上の少なくとも1
つのピクセルの割合を見積もる方法を提供する。方法
は、少なくとも1つのピクセルについて複数のサブサン
プル点を定める複数のサブ走査線に、少なくとも1つの
表示ピクセルを分け、複数のサブサンプル点のそれぞれ
が複数のサブ走査線の対応する1つに置かれるステップ
を含む。進行は、少なくとも1つのピクセルの複数のサ
ブ走査線の間で実行される。複数のサブ走査線のそれぞ
れ1つにおいて、複数のサブ走査線の1つの対応するサ
ブサンプル点がプリミティブにより覆われるかどうか判
断される。プリミティブにより覆われる少なくとも1つ
のピクセルの割合が、プリミティブにより覆われる少な
くとも1つのピクセルの複数のサブサンプル点の数に基
づいて見積もられる。
【0014】本発明の他の側面によれば、プリミティブ
をレンダリングするためのエリアジング・モードおよび
比較的平滑なエッジとともにプリミティブをレンダリン
グするためのアンチエリアジング・モードで動作するこ
とができるグラフィックスシステムにおいて、表示装置
上のプリミティブを表す表示装置上のピクセルについて
座標データを生成するためのエッジ・ステッパーが提供
される。エッジステッパーは、表示にレンダリングされ
るプリミティブの少なくとも1つのエッジについてエッ
ジ座標の第1と第2の対およびスロープ値を含むプリミ
ティブデータを受けとる。エッジステッパーは、第1の
終点の座標の1つをインクリメント値だけインクリメン
トするための加算器を含み、プリミティブがレンダリン
グされている少なくとも1つのエッジのエッジxおよび
エッジyの座標を提供する。インクリメント値は、表示
ピクセルのサイズより小さい。
をレンダリングするためのエリアジング・モードおよび
比較的平滑なエッジとともにプリミティブをレンダリン
グするためのアンチエリアジング・モードで動作するこ
とができるグラフィックスシステムにおいて、表示装置
上のプリミティブを表す表示装置上のピクセルについて
座標データを生成するためのエッジ・ステッパーが提供
される。エッジステッパーは、表示にレンダリングされ
るプリミティブの少なくとも1つのエッジについてエッ
ジ座標の第1と第2の対およびスロープ値を含むプリミ
ティブデータを受けとる。エッジステッパーは、第1の
終点の座標の1つをインクリメント値だけインクリメン
トするための加算器を含み、プリミティブがレンダリン
グされている少なくとも1つのエッジのエッジxおよび
エッジyの座標を提供する。インクリメント値は、表示
ピクセルのサイズより小さい。
【0015】本発明の他の側面によると、ホストプロセ
ッサに接続された表示装置上に画像を表示するためのグ
ラフィックス装置が提供され、表示装置は複数の走査線
から構成され、走査線のそれぞれは複数のピクセルから
構成される。グラフィックス装置はグラフィックス・ア
クセラレータ(幾何アクセラレータ)を含み、複数のグ
ラフィックスのプリミティブを表すホストプロセッサか
らデータを受けとるよう接続される。グラフィックス・
アクセラレータは、各プリミティブについてエッジ式を
生成し、エッジ式は、プリミティブの少なくとも1つの
エッジについて、プリミティブの少なくとも1つのエッ
ジの終点を特定する終点座標データおよび少なくとも1
つのエッジの変化率を特定するスロープデータを含む。
さらに、グラフィックス装置は走査変換器を含み、グラ
フィックス・アクセラレータからエッジ式を受けとっ
て、表示装置のピクセル座標にプレーン式を変換するよ
う接続される。走査変換器はエッジステッパーを含み、
エッジの終点の1つの座標の1つから、エッジの他の終
点まで進行し、エッジについてピクセル座標を生成す
る。この場合において、エッジステッパーの進行のサイ
ズは、表示ピクセルのサイズより小さい。
ッサに接続された表示装置上に画像を表示するためのグ
ラフィックス装置が提供され、表示装置は複数の走査線
から構成され、走査線のそれぞれは複数のピクセルから
構成される。グラフィックス装置はグラフィックス・ア
クセラレータ(幾何アクセラレータ)を含み、複数のグ
ラフィックスのプリミティブを表すホストプロセッサか
らデータを受けとるよう接続される。グラフィックス・
アクセラレータは、各プリミティブについてエッジ式を
生成し、エッジ式は、プリミティブの少なくとも1つの
エッジについて、プリミティブの少なくとも1つのエッ
ジの終点を特定する終点座標データおよび少なくとも1
つのエッジの変化率を特定するスロープデータを含む。
さらに、グラフィックス装置は走査変換器を含み、グラ
フィックス・アクセラレータからエッジ式を受けとっ
て、表示装置のピクセル座標にプレーン式を変換するよ
う接続される。走査変換器はエッジステッパーを含み、
エッジの終点の1つの座標の1つから、エッジの他の終
点まで進行し、エッジについてピクセル座標を生成す
る。この場合において、エッジステッパーの進行のサイ
ズは、表示ピクセルのサイズより小さい。
【0016】
【発明の実施の形態】本発明は、画像がレンダリングさ
れる表示画面に接続されるグラフィックス装置におい
て、プリミティブをアンチエリアジングするための改良
された方法および装置に関するものである。表示画面は
多数の走査線を含み、各走査線は多数の表示ピクセルを
含む。グラフィックス装置は、表示上のプリミティブを
描画すなわちレンダリングするためのソフトウェアおよ
びハードウェアのツールを含む。グラフィックス・ツー
ルは、各プリミティブについて開始エッジ座標およびス
ロープ(勾配)情報を生成する。エリアジング・モード
では、表示画面の走査線に沿って進み、プリミティブの
エッジに沿った表示ピクセルの座標を特定することによ
り、プリミティブがレンダリングされる。マルチポイン
ト・サンプリングを使用してプリミティブのアンチエリ
アジングを実行するため、本発明の1つの実施形態にお
いては、いくつかのサブ走査線が各ピクセルと交わるよ
う、複数の走査線から成る画像が複数のサブ走査線(sub
-scan line)に細分される。各ピクセルが複数のサンプ
ル点を含むように、各サブ走査線上にサンプル点が置か
れる。サンプル点は、どれくらいの表示ピクセルがプリ
ミティブにより覆われるかを判断するのに使用される。
プリミティブにより覆われるサンプル数を求めるため、
エッジの進行技術がプリミティブの各エッジに沿って進
むよう使用され、エッジについてサブ走査線の座標を生
成する。各エッジのサブ走査線の座標が生成されると、
各エッジのサブ走査線の座標がそのサブ走査線上のサン
プル点の座標に対して比べられ、サンプル点がプリミテ
ィブにより覆われるか否かを判断する。また各ピクセル
についてマスクが生成され、マスクの各ビットはサブ走
査線のサンプルの1つに対応し、対応するサブサンプル
がプリミティブにより覆われるかどうかを示す。結果と
してインクリメント(increment)・アルゴリズムを使用
することにより、進行のインクリメントおよびデクリメ
ントがソフトウェアの前もって生成されたパラメータに
基づいて行われ、従来技術で使用される複雑なハードウ
ェアを必要とせずに、ピクセルの被覆範囲の値を求める
ためピクセルのエッジの位置を求めることができる。
れる表示画面に接続されるグラフィックス装置におい
て、プリミティブをアンチエリアジングするための改良
された方法および装置に関するものである。表示画面は
多数の走査線を含み、各走査線は多数の表示ピクセルを
含む。グラフィックス装置は、表示上のプリミティブを
描画すなわちレンダリングするためのソフトウェアおよ
びハードウェアのツールを含む。グラフィックス・ツー
ルは、各プリミティブについて開始エッジ座標およびス
ロープ(勾配)情報を生成する。エリアジング・モード
では、表示画面の走査線に沿って進み、プリミティブの
エッジに沿った表示ピクセルの座標を特定することによ
り、プリミティブがレンダリングされる。マルチポイン
ト・サンプリングを使用してプリミティブのアンチエリ
アジングを実行するため、本発明の1つの実施形態にお
いては、いくつかのサブ走査線が各ピクセルと交わるよ
う、複数の走査線から成る画像が複数のサブ走査線(sub
-scan line)に細分される。各ピクセルが複数のサンプ
ル点を含むように、各サブ走査線上にサンプル点が置か
れる。サンプル点は、どれくらいの表示ピクセルがプリ
ミティブにより覆われるかを判断するのに使用される。
プリミティブにより覆われるサンプル数を求めるため、
エッジの進行技術がプリミティブの各エッジに沿って進
むよう使用され、エッジについてサブ走査線の座標を生
成する。各エッジのサブ走査線の座標が生成されると、
各エッジのサブ走査線の座標がそのサブ走査線上のサン
プル点の座標に対して比べられ、サンプル点がプリミテ
ィブにより覆われるか否かを判断する。また各ピクセル
についてマスクが生成され、マスクの各ビットはサブ走
査線のサンプルの1つに対応し、対応するサブサンプル
がプリミティブにより覆われるかどうかを示す。結果と
してインクリメント(increment)・アルゴリズムを使用
することにより、進行のインクリメントおよびデクリメ
ントがソフトウェアの前もって生成されたパラメータに
基づいて行われ、従来技術で使用される複雑なハードウ
ェアを必要とせずに、ピクセルの被覆範囲の値を求める
ためピクセルのエッジの位置を求めることができる。
【0017】本発明の概念を図を参照しつつ説明する。
図において同じ番号は同じ要素を示す。図2は、典型的
なコンピュータグラフィックス・システム10を示すブ
ロック図であり、本発明のアンチエリアジングの方法お
よび装置が使用される。コンピュータグラフィックス・
システム10は、ホストプロセッサ12、フロントエン
ド・サブシステム14およびフレームバッファ・サブシ
ステム20を含む。フロントエンド・サブシステム14
は、バス11を介してホストプロセッサ12からプリミ
ティブデータを受けとる。上述したように、各プリミテ
ィブは、通常x、y、z座標データ、R、G、Bカラー
データおよびプリミティブが3角形のときの頂点のよう
に、プリミティブのある部分についてのテクスチャ・デ
ータにより特定される。フロントエンド・サブシステム
14は、プリミティブデータを各プリミティブについて
のエッジ式に変換し、プリミティブの頂点のそれぞれの
座標およびプリミティブのエッジのスロープを特定し、
これらのエッジ式をフレームバッファ・サブシステム2
0に転送する。
図において同じ番号は同じ要素を示す。図2は、典型的
なコンピュータグラフィックス・システム10を示すブ
ロック図であり、本発明のアンチエリアジングの方法お
よび装置が使用される。コンピュータグラフィックス・
システム10は、ホストプロセッサ12、フロントエン
ド・サブシステム14およびフレームバッファ・サブシ
ステム20を含む。フロントエンド・サブシステム14
は、バス11を介してホストプロセッサ12からプリミ
ティブデータを受けとる。上述したように、各プリミテ
ィブは、通常x、y、z座標データ、R、G、Bカラー
データおよびプリミティブが3角形のときの頂点のよう
に、プリミティブのある部分についてのテクスチャ・デ
ータにより特定される。フロントエンド・サブシステム
14は、プリミティブデータを各プリミティブについて
のエッジ式に変換し、プリミティブの頂点のそれぞれの
座標およびプリミティブのエッジのスロープを特定し、
これらのエッジ式をフレームバッファ・サブシステム2
0に転送する。
【0018】フレームバッファ・サブシステム20は、
各プリミティブについてフロントエンド・サブシステム
14から受けとったエッジ式のデータを補間し、表示画
面座標におけるピクセルのアドレスを計算し、表示画面
上の各プリミティブを表すのに使用されるピクセルのカ
ラーデータを計算する。ピクセルのカラーデータは、
赤、緑および青のピクセルのカラー構成要素を特定する
ビットを含み、フレームバッファメモリ22に保管され
る。ピクセルのカラーデータは、フレームバッファメモ
リ22から、RAMDAC27(Random Access Memory
Digital to Analog Converter、ランダムアクセスメモ
リ・デジタルアナログ変換)に送られ、フレームバッフ
ァメモリ22に保管されたバイナリのカラーデータを表
示装置(示されていない)に表示するため、アナログの
赤、緑および青の信号に変換する。本発明が任意のアナ
ログ表示装置に制限されないこと、および任意の他の種
類の表示装置も代わりに使用できる(たとえば、デジタ
ル、モノクロ、またはグレースケール)ことは理解され
よう。
各プリミティブについてフロントエンド・サブシステム
14から受けとったエッジ式のデータを補間し、表示画
面座標におけるピクセルのアドレスを計算し、表示画面
上の各プリミティブを表すのに使用されるピクセルのカ
ラーデータを計算する。ピクセルのカラーデータは、
赤、緑および青のピクセルのカラー構成要素を特定する
ビットを含み、フレームバッファメモリ22に保管され
る。ピクセルのカラーデータは、フレームバッファメモ
リ22から、RAMDAC27(Random Access Memory
Digital to Analog Converter、ランダムアクセスメモ
リ・デジタルアナログ変換)に送られ、フレームバッフ
ァメモリ22に保管されたバイナリのカラーデータを表
示装置(示されていない)に表示するため、アナログの
赤、緑および青の信号に変換する。本発明が任意のアナ
ログ表示装置に制限されないこと、および任意の他の種
類の表示装置も代わりに使用できる(たとえば、デジタ
ル、モノクロ、またはグレースケール)ことは理解され
よう。
【0019】図2の例示的なシステムでは、フロントエ
ンド・サブシステム14がホストインターフェース16
および3次元(3D)幾何アクセラレータ18を含む。
ホスト・インターフェース16は、x、y、zの頂点座
標およびカラーのプリミティブデータを、ホストプロセ
ッサ12からバス11を介して受けとる。このデータ
は、その後ホストインターフェース16からバス16a
を介して幾何アクセラレータ18に提供される。幾何ア
クセラレータ18は、浮動小数点形式でエッジ式を生成
するのに加え、3次元変換、ライティング(lighting)、
クリッピング(clipping)および透視の分割操作(perspec
tive divide operations)など従来の幾何アクセラレー
タの機能を実行する。幾何アクセラレータが提供されな
いシステムでは、代わりにホストプロセッサによりエッ
ジ式が提供される。図2の実施形態では、エッジ式は幾
何アクセラレータ18により、バス18aを介してホス
トインターフェース16に提供され、ホストインターフ
ェース16はバス19を介してフレームバッファ・サブ
システム20にこのエッジ式のデータを転送する。
ンド・サブシステム14がホストインターフェース16
および3次元(3D)幾何アクセラレータ18を含む。
ホスト・インターフェース16は、x、y、zの頂点座
標およびカラーのプリミティブデータを、ホストプロセ
ッサ12からバス11を介して受けとる。このデータ
は、その後ホストインターフェース16からバス16a
を介して幾何アクセラレータ18に提供される。幾何ア
クセラレータ18は、浮動小数点形式でエッジ式を生成
するのに加え、3次元変換、ライティング(lighting)、
クリッピング(clipping)および透視の分割操作(perspec
tive divide operations)など従来の幾何アクセラレー
タの機能を実行する。幾何アクセラレータが提供されな
いシステムでは、代わりにホストプロセッサによりエッ
ジ式が提供される。図2の実施形態では、エッジ式は幾
何アクセラレータ18により、バス18aを介してホス
トインターフェース16に提供され、ホストインターフ
ェース16はバス19を介してフレームバッファ・サブ
システム20にこのエッジ式のデータを転送する。
【0020】図3を参照すると、幾何アクセラレータの
一部のブロック図が示され、変換ユニット30、エッジ
生成ユニット34および形式変換ユニット36を含む。
変換ユニット30は、各プリミティブの各端点について
の座標およびカラーデータを受けとる。たとえば3角形
のプリミティブは3つの頂点で表されるので、3つの頂
点座標により表される。変換ユニット30は変換行列を
含み、変換行列はプリミティブの頂点の入力座標を、表
示装置にプリミティブを表すための座標に幾何学的に変
換するのに使用される。図4を簡単に参照すると、変換
行列32の例が示され、行列の値a1〜a4...d1〜
d4であるいくつかの行と列を含む。行列の値は、すべ
ての座標[x、y、z、w]を表示装置の座標[x'、
y'、z'、w']に変換するのに使用される。ここで
x、yはそれぞれxおよびy軸に沿ったピクセル座標で
あり、zはz軸に沿ったピクセル座標であるのでピクセ
ルについて視覚的な深度の情報を与え、wはピクセルの
透視(遠近法)であり、すなわち表示のサイズを基準と
したプリミティブのサイズである。行列は装置依存であ
るので、行列の値は表示装置に表示することができるピ
クセル数に基づいて変化する。さらに、標準行列積の技
術を使用して適切な行列要素a1〜a4、b1〜b4、c1
〜c4、d1〜d4にSを掛けることにより、変換行列3
2はスケール値Sによりプリミティブをスケール(拡大
縮小)するのに使用することができる。この機能は多く
のグラフィックスシステムで与えられ、ズーム機能を提
供するために画像をスケールする。
一部のブロック図が示され、変換ユニット30、エッジ
生成ユニット34および形式変換ユニット36を含む。
変換ユニット30は、各プリミティブの各端点について
の座標およびカラーデータを受けとる。たとえば3角形
のプリミティブは3つの頂点で表されるので、3つの頂
点座標により表される。変換ユニット30は変換行列を
含み、変換行列はプリミティブの頂点の入力座標を、表
示装置にプリミティブを表すための座標に幾何学的に変
換するのに使用される。図4を簡単に参照すると、変換
行列32の例が示され、行列の値a1〜a4...d1〜
d4であるいくつかの行と列を含む。行列の値は、すべ
ての座標[x、y、z、w]を表示装置の座標[x'、
y'、z'、w']に変換するのに使用される。ここで
x、yはそれぞれxおよびy軸に沿ったピクセル座標で
あり、zはz軸に沿ったピクセル座標であるのでピクセ
ルについて視覚的な深度の情報を与え、wはピクセルの
透視(遠近法)であり、すなわち表示のサイズを基準と
したプリミティブのサイズである。行列は装置依存であ
るので、行列の値は表示装置に表示することができるピ
クセル数に基づいて変化する。さらに、標準行列積の技
術を使用して適切な行列要素a1〜a4、b1〜b4、c1
〜c4、d1〜d4にSを掛けることにより、変換行列3
2はスケール値Sによりプリミティブをスケール(拡大
縮小)するのに使用することができる。この機能は多く
のグラフィックスシステムで与えられ、ズーム機能を提
供するために画像をスケールする。
【0021】プリミティブのオブジェクト座標が表示装
置についての座標に変換されると、変換されたプリミテ
ィブデータは、エッジ生成ユニット34に送られる(図
3)。エッジ生成ユニット34は、受けとったプリミテ
ィブの頂点のデータを、プリミティブを表すエッジ式に
変換する。図5を簡単に参照すると、3角形について生
成されたいくつかのエッジ式の例が示されている。ホス
トインターフェース16から変換ユニット30が受けと
った頂点座標は、プリミティブの透視(すなわち表示サ
イズを基準としたプリミティブのサイズ)を生じさせる
スケールがまだ行われていない。よってグループ40の
式は、透視量「wrecip」(これは1/wに等しい)によ
り頂点v0、v1、v2のそれぞれのx、y、z座標をスケー
ルするのに使用される。透視によるスケールは、個々の
プリミティブのスケーリングを考慮する。対照的に、変
換マトリクスは表示の画像全体をスケールする。グルー
プ42の式は、エッジのデルタを計算するのに使用され
る。デルタは、エッジの全体の長さを特定する長さの情
報、およびエッジに沿ってカラーの変化を特定するカラ
ーデータの情報を含む。グループ44の式は、プリミテ
ィブのエッジのスロープを計算するのに使用される。
置についての座標に変換されると、変換されたプリミテ
ィブデータは、エッジ生成ユニット34に送られる(図
3)。エッジ生成ユニット34は、受けとったプリミテ
ィブの頂点のデータを、プリミティブを表すエッジ式に
変換する。図5を簡単に参照すると、3角形について生
成されたいくつかのエッジ式の例が示されている。ホス
トインターフェース16から変換ユニット30が受けと
った頂点座標は、プリミティブの透視(すなわち表示サ
イズを基準としたプリミティブのサイズ)を生じさせる
スケールがまだ行われていない。よってグループ40の
式は、透視量「wrecip」(これは1/wに等しい)によ
り頂点v0、v1、v2のそれぞれのx、y、z座標をスケー
ルするのに使用される。透視によるスケールは、個々の
プリミティブのスケーリングを考慮する。対照的に、変
換マトリクスは表示の画像全体をスケールする。グルー
プ42の式は、エッジのデルタを計算するのに使用され
る。デルタは、エッジの全体の長さを特定する長さの情
報、およびエッジに沿ってカラーの変化を特定するカラ
ーデータの情報を含む。グループ44の式は、プリミテ
ィブのエッジのスロープを計算するのに使用される。
【0022】エッジ式の生成の間、エッジの割り当ても
行われる。たとえば3角形を使用する場合、最も長いy
軸の範囲(スパン)を有するプリミティブのエッジがエ
ッジ1として選択され、最も小さいY座標においてエッ
ジ1と隣り合うエッジがエッジ2として選択され、残り
のエッジがエッジ3として選択される。エッジの割り当
てに基づいて方向値(direction value)が生成され、エ
ッジ1からエッジ2に進むx軸方向を示す。後に述べる
ように、この方向値は、プリミティブにより覆われるピ
クセルの座標を求めるため、フレームバッファ・サブシ
ステム20により本発明の1つの実施形態において使用
される。
行われる。たとえば3角形を使用する場合、最も長いy
軸の範囲(スパン)を有するプリミティブのエッジがエ
ッジ1として選択され、最も小さいY座標においてエッ
ジ1と隣り合うエッジがエッジ2として選択され、残り
のエッジがエッジ3として選択される。エッジの割り当
てに基づいて方向値(direction value)が生成され、エ
ッジ1からエッジ2に進むx軸方向を示す。後に述べる
ように、この方向値は、プリミティブにより覆われるピ
クセルの座標を求めるため、フレームバッファ・サブシ
ステム20により本発明の1つの実施形態において使用
される。
【0023】エッジ式およびエッジの割り当ては形式変
換ユニット36に送られ、浮動小数点から固定小数点へ
の変換を実行することによりエッジ式を再度形式化し、
後に式を使用する計算を簡単にする。上のエッジ式のデ
ータは、幾何アクセラレータ18(図2)からバス18
aを介してホストインターフェース16に送られる。そ
の後、ホストインターフェースはエッジ式のデータをフ
レームバッファ・サブシステム20へ転送する。
換ユニット36に送られ、浮動小数点から固定小数点へ
の変換を実行することによりエッジ式を再度形式化し、
後に式を使用する計算を簡単にする。上のエッジ式のデ
ータは、幾何アクセラレータ18(図2)からバス18
aを介してホストインターフェース16に送られる。そ
の後、ホストインターフェースはエッジ式のデータをフ
レームバッファ・サブシステム20へ転送する。
【0024】図2に示されるコンピュータグラフィック
ス・システムにおいて、フレームバッファ・サブシステ
ム20は2つのフレームバッファコントローラ24およ
び26を含み、それぞれがフレームバッファメモリ22
の一部(22a、22b)の表示を制御する。フレーム
バッファ・コントローラ24は、フレームバッファメモ
リの部分22aにおけるデータの内容および表示を制御
し、フレームバッファコントローラ26は、フレームバ
ッファメモリの部分22bにおけるデータの内容および
表示を制御する。2つのメモリコントローラが示される
が、たとえば他の実施形態においては、1つのメモリコ
ントローラを含み、または2つより多いメモリコントロ
ーラを使用することもできる。各フレームバッファ・コ
ントローラ24および26は、フレームバッファメモリ
22の異なるアドレスのプリミティブデータを取り扱う
が、コントローラの残りの機能は、実質的に全く同一で
ある。よって、1つのフレームバッファコントローラに
ついて、以下に詳細に説明する。
ス・システムにおいて、フレームバッファ・サブシステ
ム20は2つのフレームバッファコントローラ24およ
び26を含み、それぞれがフレームバッファメモリ22
の一部(22a、22b)の表示を制御する。フレーム
バッファ・コントローラ24は、フレームバッファメモ
リの部分22aにおけるデータの内容および表示を制御
し、フレームバッファコントローラ26は、フレームバ
ッファメモリの部分22bにおけるデータの内容および
表示を制御する。2つのメモリコントローラが示される
が、たとえば他の実施形態においては、1つのメモリコ
ントローラを含み、または2つより多いメモリコントロ
ーラを使用することもできる。各フレームバッファ・コ
ントローラ24および26は、フレームバッファメモリ
22の異なるアドレスのプリミティブデータを取り扱う
が、コントローラの残りの機能は、実質的に全く同一で
ある。よって、1つのフレームバッファコントローラに
ついて、以下に詳細に説明する。
【0025】図6を参照すると、本発明の1つの実施形
態によるフレームバッファコントローラ24の例示的な
配置が、2つの機能ユニットである走査変換ユニット5
0およびメモリコントローラ60を含めて示される。走
査変換ユニット50は、エッジ式の個々のピクセルデー
タへの変換(翻訳)を制御する。メモリコントローラ6
0は、走査変換ユニット50から受けとったピクセルデ
ータのフレームバッファメモリ22への書き込みを制御
する。さらにメモリコントローラ60は、プリミティブ
のマルチポイント・サンプリングと関連する走査変換ユ
ニット50からのデータを使用してアンチエリアジング
を実行するためのロジック57を含む。本発明の1つの
実施形態においては、メモリコントローラ60の実現
が、米国特許出願番号08/692350(1996年8月5日出願)
の「Anti-aliasing System and Method that Minimaize
Memory Requirements and Memory Accesses by Storin
g a Reduced Set of Subsample Information」において
説明されており、ここで参照により取り入れる。上の出
願で説明されているメモリコントローラはアンチエリア
ジング方法を記述し、アンチエリアジング方法がサブサ
ンプルの被覆範囲の情報を使用してカラーおよび感知し
た深度の情報(すなわちz要素)を、表示装置上にレン
ダリングされる各ピクセルについて求める。よって、上
の'350出願で説明されるアンチエリアジング方法で使用
されるサブサンプルの被覆範囲の情報を提供するのに、
本発明を使用することができる。しかし、ここで記述す
るサブサンプル情報を生成するための方法および装置
も、他の方法で実現されるメモリコントローラを用いて
使用することができ、よって本発明は上の'350出願のメ
モリコントローラを使用することに制限されない。
態によるフレームバッファコントローラ24の例示的な
配置が、2つの機能ユニットである走査変換ユニット5
0およびメモリコントローラ60を含めて示される。走
査変換ユニット50は、エッジ式の個々のピクセルデー
タへの変換(翻訳)を制御する。メモリコントローラ6
0は、走査変換ユニット50から受けとったピクセルデ
ータのフレームバッファメモリ22への書き込みを制御
する。さらにメモリコントローラ60は、プリミティブ
のマルチポイント・サンプリングと関連する走査変換ユ
ニット50からのデータを使用してアンチエリアジング
を実行するためのロジック57を含む。本発明の1つの
実施形態においては、メモリコントローラ60の実現
が、米国特許出願番号08/692350(1996年8月5日出願)
の「Anti-aliasing System and Method that Minimaize
Memory Requirements and Memory Accesses by Storin
g a Reduced Set of Subsample Information」において
説明されており、ここで参照により取り入れる。上の出
願で説明されているメモリコントローラはアンチエリア
ジング方法を記述し、アンチエリアジング方法がサブサ
ンプルの被覆範囲の情報を使用してカラーおよび感知し
た深度の情報(すなわちz要素)を、表示装置上にレン
ダリングされる各ピクセルについて求める。よって、上
の'350出願で説明されるアンチエリアジング方法で使用
されるサブサンプルの被覆範囲の情報を提供するのに、
本発明を使用することができる。しかし、ここで記述す
るサブサンプル情報を生成するための方法および装置
も、他の方法で実現されるメモリコントローラを用いて
使用することができ、よって本発明は上の'350出願のメ
モリコントローラを使用することに制限されない。
【0026】上述したように、走査変換ユニット50
は、ピクセル座標およびカラーデータをメモリコントロ
ーラ60に転送する。本発明のある側面によると、走査
変換ユニット50は、サブサンプル・マスクをもメモリ
コントローラに転送する。マスクのビットのそれぞれ
は、関連するピクセルの1つのサブサンプルに対応す
る。サブサンプル・マスクはアンチエリアジングの間に
使用され、ピクセルについて適切なカラー値を選択す
る。走査変換ユニット50がサブサンプル・マスクをど
のように求めるを説明する前に、マルチポイント・サン
プリングの操作の簡単な説明を最初に行う。
は、ピクセル座標およびカラーデータをメモリコントロ
ーラ60に転送する。本発明のある側面によると、走査
変換ユニット50は、サブサンプル・マスクをもメモリ
コントローラに転送する。マスクのビットのそれぞれ
は、関連するピクセルの1つのサブサンプルに対応す
る。サブサンプル・マスクはアンチエリアジングの間に
使用され、ピクセルについて適切なカラー値を選択す
る。走査変換ユニット50がサブサンプル・マスクをど
のように求めるを説明する前に、マルチポイント・サン
プリングの操作の簡単な説明を最初に行う。
【0027】図7を参照すると、表示画面70の一部が
示され、6行x6列のピクセルのグリッドを含む。グリ
ッド線は、表示のx、y、z座標システムにおけるxお
よびy座標の両方について整数値で示される。水平線x
のそれぞれが、表示のための走査線を表す。走査線0が
アドレス(0,0)にあり、走査線1がアドレス(0,
1)にある。本発明の1つの実施形態によると、いくつ
かのサブサンプルが各ピクセルに含まれ、ピクセル73
のサブ0〜サブ3とラベルされたいくつかのドットとし
て示される。x、y座標空間の各ピクセルのアドレス、
すなわち原点は、グリッドのxy交差点の座標で定義さ
れる。各ピクセルは、次のグリッドの交差点に対して増
加していくxおよびy方向に伸張するピクセル内のサブ
サンプルを含む。よって、ピクセル(1,0)は、グリ
ッド・ブロック75のサブサンプルを含む。
示され、6行x6列のピクセルのグリッドを含む。グリ
ッド線は、表示のx、y、z座標システムにおけるxお
よびy座標の両方について整数値で示される。水平線x
のそれぞれが、表示のための走査線を表す。走査線0が
アドレス(0,0)にあり、走査線1がアドレス(0,
1)にある。本発明の1つの実施形態によると、いくつ
かのサブサンプルが各ピクセルに含まれ、ピクセル73
のサブ0〜サブ3とラベルされたいくつかのドットとし
て示される。x、y座標空間の各ピクセルのアドレス、
すなわち原点は、グリッドのxy交差点の座標で定義さ
れる。各ピクセルは、次のグリッドの交差点に対して増
加していくxおよびy方向に伸張するピクセル内のサブ
サンプルを含む。よって、ピクセル(1,0)は、グリ
ッド・ブロック75のサブサンプルを含む。
【0028】図7のプリミティブは、第2の色の背景上
に第1の色で描かれた3角形74である。図1を参照し
て上述したように、3角形74がエリアジング・モード
でレンダリングされた場合、ピクセルの原点がプリミテ
ィブにより覆われる各ピクセルは、第1の色でレンダリ
ングされ、ピクセルの原点がプリミティブにより覆われ
ないピクセルは、第2の色でレンダリングされる。結果
としてエリアジングされたプリミティブは、ぎざぎざの
エッジでレンダリングされるので、あまり最適でない画
像を与える。
に第1の色で描かれた3角形74である。図1を参照し
て上述したように、3角形74がエリアジング・モード
でレンダリングされた場合、ピクセルの原点がプリミテ
ィブにより覆われる各ピクセルは、第1の色でレンダリ
ングされ、ピクセルの原点がプリミティブにより覆われ
ないピクセルは、第2の色でレンダリングされる。結果
としてエリアジングされたプリミティブは、ぎざぎざの
エッジでレンダリングされるので、あまり最適でない画
像を与える。
【0029】プリミティブのエッジを平滑にするため、
プリミティブはマルチポイント・サンプリングとして知
られるアンチエリアジング技術を使用してレンダリング
される。マルチポイント・サンプリングでは、各ピクセ
ルがピクセル内の複数の座標でサンプルされ、いくつか
のピクセルのサブサンプルを提供する。マルチポイント
・サンプリングの間にピクセルのそれぞれを表示するた
めの色を選択するとき、プリミティブにより覆われるピ
クセルのサブサンプル数が他の情報(カラーデータおよ
びz深度のような)と一緒に使用され、ピクセルの色を
決定する。図7の例では、x、y座標(1,0)のピク
セル75は、プリミティブにより覆われる2つのサブサ
ンプルを有する。よって、ピクセルの色は、プリミティ
ブの色50%および背景色の50%の混合になる。
プリミティブはマルチポイント・サンプリングとして知
られるアンチエリアジング技術を使用してレンダリング
される。マルチポイント・サンプリングでは、各ピクセ
ルがピクセル内の複数の座標でサンプルされ、いくつか
のピクセルのサブサンプルを提供する。マルチポイント
・サンプリングの間にピクセルのそれぞれを表示するた
めの色を選択するとき、プリミティブにより覆われるピ
クセルのサブサンプル数が他の情報(カラーデータおよ
びz深度のような)と一緒に使用され、ピクセルの色を
決定する。図7の例では、x、y座標(1,0)のピク
セル75は、プリミティブにより覆われる2つのサブサ
ンプルを有する。よって、ピクセルの色は、プリミティ
ブの色50%および背景色の50%の混合になる。
【0030】このようにマルチポイント・サンプリング
は、プリミティブのエッジにおける色を調整するのに使
用される情報を提供するので、アンチエリアジングにお
いて有効であり、それによりぎざぎざのエッジの現れを
少なくさせる。またマルチポイント・サンプリングは、
ピクセルのサイズより小さいオブジェクトの表示に有効
である。たとえば、オブジェクトがピクセルのサイズよ
り小さくてピクセルの1つのサンプル点を覆わない場
合、エリアジング・モードでは表示されない。マルチポ
イント・サンプリングは、ピクセル・グリッドにより定
義された表示ピクセル内のマルチポイントで画像をサン
プリングするので、サブピクセルサイズのオブジェクト
がサンプリングされ、ピクセルの色が表示に現れる。マ
ルチポイント・サンプリングの1つの構成要素は、各ピ
クセルにおいていくつのサブサンプルがプリミティブに
より覆われるかどうかを求めることである。サブサンプ
ル情報は走査変換の間に求められ、マスクの形でメモリ
コントローラに送られ、メモリコントローラはマスクに
従ってピクセルの色を調整する。
は、プリミティブのエッジにおける色を調整するのに使
用される情報を提供するので、アンチエリアジングにお
いて有効であり、それによりぎざぎざのエッジの現れを
少なくさせる。またマルチポイント・サンプリングは、
ピクセルのサイズより小さいオブジェクトの表示に有効
である。たとえば、オブジェクトがピクセルのサイズよ
り小さくてピクセルの1つのサンプル点を覆わない場
合、エリアジング・モードでは表示されない。マルチポ
イント・サンプリングは、ピクセル・グリッドにより定
義された表示ピクセル内のマルチポイントで画像をサン
プリングするので、サブピクセルサイズのオブジェクト
がサンプリングされ、ピクセルの色が表示に現れる。マ
ルチポイント・サンプリングの1つの構成要素は、各ピ
クセルにおいていくつのサブサンプルがプリミティブに
より覆われるかどうかを求めることである。サブサンプ
ル情報は走査変換の間に求められ、マスクの形でメモリ
コントローラに送られ、メモリコントローラはマスクに
従ってピクセルの色を調整する。
【0031】上述したようにマスクを求める従来の方法
は、複雑なハードウェアを使用して各ピクセルのプリミ
ティブの被覆範囲を求め、これによってマスクで示され
るサブサンプル数を求めていた。対照的に本発明の1つ
の実施形態では、ソフトウェアにおいて先行した複雑な
エッジパラメータの計算を実行し、改良された従来のハ
ードウェアと共にこれらのパラメータを使用することに
より、周知で現存するインクリメンタル(incremental)
走査変換方法が拡張されてマスク情報を提供する。本発
明の1つの実施形態によると、マスク情報は各走査線を
複数のサブ走査線に細分することにより生成され、サン
プル点はサブ走査線の境界に位置し、その後本発明のコ
レクション(収集)のハードウェアに加えシステムにす
でに提供されるハードウェアを使用して、ピクセル内の
サブサンプルの被覆範囲についての情報を収集する。
は、複雑なハードウェアを使用して各ピクセルのプリミ
ティブの被覆範囲を求め、これによってマスクで示され
るサブサンプル数を求めていた。対照的に本発明の1つ
の実施形態では、ソフトウェアにおいて先行した複雑な
エッジパラメータの計算を実行し、改良された従来のハ
ードウェアと共にこれらのパラメータを使用することに
より、周知で現存するインクリメンタル(incremental)
走査変換方法が拡張されてマスク情報を提供する。本発
明の1つの実施形態によると、マスク情報は各走査線を
複数のサブ走査線に細分することにより生成され、サン
プル点はサブ走査線の境界に位置し、その後本発明のコ
レクション(収集)のハードウェアに加えシステムにす
でに提供されるハードウェアを使用して、ピクセル内の
サブサンプルの被覆範囲についての情報を収集する。
【0032】図6に戻ってみると、本発明の1つの実施
形態による走査変換器50は、エッジステッパー(edge
stepper)52、コレクションロジック(collection logi
c)54およびスパンステッパー(span stepper)56を含
む。これらの構成要素のそれぞれの操作について、図7
に示される例示的な画像70の一部を参照しつつ以下に
述べる。通常、エッジステッパーおよびスパンステッパ
ーは、プリミティブにより覆われるピクセル座標を求め
るグラフィックス・ハードウェアで提供される。現存す
るエッジステッパーおよびスパンステッパーへ小さな修
正を加えるだけで、本発明の1つの実施形態のエッジス
テッパー52、コレクションユニット54およびスパン
ステッパー56が、アンチエリアジング操作の間におい
て、メモリコントローラ60が使用するためのマスク情
報を提供する。
形態による走査変換器50は、エッジステッパー(edge
stepper)52、コレクションロジック(collection logi
c)54およびスパンステッパー(span stepper)56を含
む。これらの構成要素のそれぞれの操作について、図7
に示される例示的な画像70の一部を参照しつつ以下に
述べる。通常、エッジステッパーおよびスパンステッパ
ーは、プリミティブにより覆われるピクセル座標を求め
るグラフィックス・ハードウェアで提供される。現存す
るエッジステッパーおよびスパンステッパーへ小さな修
正を加えるだけで、本発明の1つの実施形態のエッジス
テッパー52、コレクションユニット54およびスパン
ステッパー56が、アンチエリアジング操作の間におい
て、メモリコントローラ60が使用するためのマスク情
報を提供する。
【0033】エッジステッパー52は、グラフィックス
・アクセラレータ18からエッジ式(図5に示されるよ
うな)を受けとる。エッジ式を使用して、エッジステッ
パーはプリミティブのエッジに沿ってインクリメンタル
に進行し、前に計算されたエッジ点および前もって計算
されたエッジスロープのデータを用い、プリミティブの
エッジ座標を求める。本発明の1つの実施形態による
と、エッジステッパーは、エリアジング・モードまたは
アンチエリアジング・モードのどちらかで操作する。両
方のモードにおいて基本的な操作方法は同じであり、エ
ッジステッパーへの入力パラメータのみが異なる。エッ
ジ進行処理の導入説明として、従来のエリアジング・モ
ードにおけるエッジステッパー操作を最初に説明する。
その後、アンチエリアジング・モードの操作時に使用さ
れる入力パラメータの調整について説明する。
・アクセラレータ18からエッジ式(図5に示されるよ
うな)を受けとる。エッジ式を使用して、エッジステッ
パーはプリミティブのエッジに沿ってインクリメンタル
に進行し、前に計算されたエッジ点および前もって計算
されたエッジスロープのデータを用い、プリミティブの
エッジ座標を求める。本発明の1つの実施形態による
と、エッジステッパーは、エリアジング・モードまたは
アンチエリアジング・モードのどちらかで操作する。両
方のモードにおいて基本的な操作方法は同じであり、エ
ッジステッパーへの入力パラメータのみが異なる。エッ
ジ進行処理の導入説明として、従来のエリアジング・モ
ードにおけるエッジステッパー操作を最初に説明する。
その後、アンチエリアジング・モードの操作時に使用さ
れる入力パラメータの調整について説明する。
【0034】たとえば、図7におけるプリミティブ74
のエッジは、エッジ1、エッジ2およびエッジ3として
示される。上述したように、エッジステッパーは、プリ
ミティブについてエッジの開始と終了の情報およびスロ
ープの情報を受けとる。エッジステッパーはエッジのそ
れぞれに沿って進行し、それぞれのエッジにあるそれぞ
れのピクセルについて座標データを集める。エッジ1に
沿って進行する時、エッジステッパーはエッジ1の開始
(エッジ1が走査線と一番小さいy座標で交差する所、
すなわち図7のA点)からエッジ1の終点(すなわち頂
点v1)に到達するまで、エッジ1の次のピクセル座標
に向かって「ステップ(進行)」し、本質的に2つの間
を線を描き、画像70のどのピクセルがエッジ1に接触
するかを判断する。本発明のエリアジングおよびアンチ
エリアジング・モードの両方を実現するためのエッジス
テッパーの1つの例示的な実施形態のブロック図を図8
に示す。エッジ1に沿って進行するため、エッジステッ
パーのロジックは、グラフィックス・アクセラレータ1
8からエッジ式のデータの一部として受けとったスター
トy要素およびストップy要素を使用する。スタートy
要素は、エッジ1が最初に走査線を交差するyアドレス
である。ストップy要素は、頂点v1のy要素である。
図7の3角形のプリミティブの例では、スタートy値
(すなわち図7のA点のy要素)は1であり、ストップ
y値は3.5である。スタートy要素はマルチプレクサ
85を介して与えられ、レジスタ80にEdge1 Y<31:16>
として保管される。Edge1 Y要素は、エッジステッパー
52からコレクションロジック54に送られるY要素で
ある。Edge1 Y要素は加算器86に送られ、インクリメ
ント値がEdge1 Y要素に加算され、次のY要素(Next Y)
を与える。インクリメント値はマルチプレクサ82によ
り与えられ、エリアジング・ビットの状態に基づいて多
様な値のうちの1つを選択し、エッジステッパーがエリ
アジング・モードで動作するかアンチエリアジング・モ
ードで動作するかを示す。サブグリッド・アドレスにつ
いては、以下に詳細に説明する。グラフィックス装置が
エリアジングモードで動作する時はいつでも、各ピクセ
ルのy要素が走査線の境界上に位置合わせされるので、
+1がスタートy要素に加算され、次の走査線へインク
リメントする。残りの可能なインクリメント値(マルチ
プレクサ82への入力)は、以下に詳しく説明するよう
に、アンチエリアジング・モードでの操作を支援するた
めに提供される。よって、アンチエリアジング・モード
を支援するためのエッジステッパーのロジックの改良に
は、マルチプレクサ82および選択制御81および比較
器93が含まれ、後で説明を行う。
のエッジは、エッジ1、エッジ2およびエッジ3として
示される。上述したように、エッジステッパーは、プリ
ミティブについてエッジの開始と終了の情報およびスロ
ープの情報を受けとる。エッジステッパーはエッジのそ
れぞれに沿って進行し、それぞれのエッジにあるそれぞ
れのピクセルについて座標データを集める。エッジ1に
沿って進行する時、エッジステッパーはエッジ1の開始
(エッジ1が走査線と一番小さいy座標で交差する所、
すなわち図7のA点)からエッジ1の終点(すなわち頂
点v1)に到達するまで、エッジ1の次のピクセル座標
に向かって「ステップ(進行)」し、本質的に2つの間
を線を描き、画像70のどのピクセルがエッジ1に接触
するかを判断する。本発明のエリアジングおよびアンチ
エリアジング・モードの両方を実現するためのエッジス
テッパーの1つの例示的な実施形態のブロック図を図8
に示す。エッジ1に沿って進行するため、エッジステッ
パーのロジックは、グラフィックス・アクセラレータ1
8からエッジ式のデータの一部として受けとったスター
トy要素およびストップy要素を使用する。スタートy
要素は、エッジ1が最初に走査線を交差するyアドレス
である。ストップy要素は、頂点v1のy要素である。
図7の3角形のプリミティブの例では、スタートy値
(すなわち図7のA点のy要素)は1であり、ストップ
y値は3.5である。スタートy要素はマルチプレクサ
85を介して与えられ、レジスタ80にEdge1 Y<31:16>
として保管される。Edge1 Y要素は、エッジステッパー
52からコレクションロジック54に送られるY要素で
ある。Edge1 Y要素は加算器86に送られ、インクリメ
ント値がEdge1 Y要素に加算され、次のY要素(Next Y)
を与える。インクリメント値はマルチプレクサ82によ
り与えられ、エリアジング・ビットの状態に基づいて多
様な値のうちの1つを選択し、エッジステッパーがエリ
アジング・モードで動作するかアンチエリアジング・モ
ードで動作するかを示す。サブグリッド・アドレスにつ
いては、以下に詳細に説明する。グラフィックス装置が
エリアジングモードで動作する時はいつでも、各ピクセ
ルのy要素が走査線の境界上に位置合わせされるので、
+1がスタートy要素に加算され、次の走査線へインク
リメントする。残りの可能なインクリメント値(マルチ
プレクサ82への入力)は、以下に詳しく説明するよう
に、アンチエリアジング・モードでの操作を支援するた
めに提供される。よって、アンチエリアジング・モード
を支援するためのエッジステッパーのロジックの改良に
は、マルチプレクサ82および選択制御81および比較
器93が含まれ、後で説明を行う。
【0035】スタートyおよびストップy要素に加え、
スタートx要素がマルチプレクサ95を通して与えら
れ、レジスタ94に保管される。スロープx要素は、レ
ジスタ96に保管される。スタートxおよびスロープx
要素は、グラフィックス・アクセラレータ18からエッ
ジ式のデータの一部として受けとられる。スタートx要
素は、エッジ1が最初に走査線を交差するところのエッ
ジ1のx要素である。すなわち、スタートy座標に対応
するx座標である(図7における点Aのx要素)。スロ
ープxは、エッジ1のスロープである。図7の例では、
スタートx値は、xアドレス2.2であり、スロープx
は1.5である。
スタートx要素がマルチプレクサ95を通して与えら
れ、レジスタ94に保管される。スロープx要素は、レ
ジスタ96に保管される。スタートxおよびスロープx
要素は、グラフィックス・アクセラレータ18からエッ
ジ式のデータの一部として受けとられる。スタートx要
素は、エッジ1が最初に走査線を交差するところのエッ
ジ1のx要素である。すなわち、スタートy座標に対応
するx座標である(図7における点Aのx要素)。スロ
ープxは、エッジ1のスロープである。図7の例では、
スタートx値は、xアドレス2.2であり、スロープx
は1.5である。
【0036】エリアジング・モードにおけるエッジ進行
処理の第1サイクルの間に信号「新プリミティブ(New P
rimitive)」がアサートされた時、スタートy要素はマ
ルチプレクサ85を介して送られ、現行y値としてレジ
スタ80に保管される。「新プリミティブ」信号は、新
しいプリミティブがエッジステッパー・ユニットに転送
されるたびにアサートされる。スタートx要素は、「新
プリミティブ」信号がアサートされる時にマルチプレク
サ95を介して転送されてレジスタ94に保管され、カ
レントx値を与える。現行x値は加算器99に転送さ
れ、以下の述べる理由により、+1または−1を現行x
値に加算する。また現行x値は、マルチプレクサ100
に転送される。マルチプレクサ100は、Edge1 Status
bit(エッジ1の状態ビット)の状態に依存して(以下に
詳細に述べるように)、現行x値およびインクリメント
(またはデクリメント)されたx値の間で選択し、調整
された X<31:16>値を提供する。調整X値はマルチプレ
クサ97に転送され、シフトした調整X値またはシフト
されない調整X値が、エリアジング・ビット(Aliased B
it)の状態に依存して、Edge1 X<31:16>として選択され
る。Edge1 X<31:16>値は、エッジステッパー52からコ
レクションロジック54に送られる。同様に、現行Y<3
1:16>もマルチプレクサ83に送られ、エリアジング・
ビット(アンチエリアジング・モードでの操作を示す)
の状態に依存して、Edge1 Y<31:16>値としてシフトした
現行Y値またはシフトしない現行Y値のどちらかを選択
する。よってこの例では、エッジステッパーから送られ
る第1のEdge1 X,Edge1 Y要素の対は、(2,1)である。
処理の第1サイクルの間に信号「新プリミティブ(New P
rimitive)」がアサートされた時、スタートy要素はマ
ルチプレクサ85を介して送られ、現行y値としてレジ
スタ80に保管される。「新プリミティブ」信号は、新
しいプリミティブがエッジステッパー・ユニットに転送
されるたびにアサートされる。スタートx要素は、「新
プリミティブ」信号がアサートされる時にマルチプレク
サ95を介して転送されてレジスタ94に保管され、カ
レントx値を与える。現行x値は加算器99に転送さ
れ、以下の述べる理由により、+1または−1を現行x
値に加算する。また現行x値は、マルチプレクサ100
に転送される。マルチプレクサ100は、Edge1 Status
bit(エッジ1の状態ビット)の状態に依存して(以下に
詳細に述べるように)、現行x値およびインクリメント
(またはデクリメント)されたx値の間で選択し、調整
された X<31:16>値を提供する。調整X値はマルチプレ
クサ97に転送され、シフトした調整X値またはシフト
されない調整X値が、エリアジング・ビット(Aliased B
it)の状態に依存して、Edge1 X<31:16>として選択され
る。Edge1 X<31:16>値は、エッジステッパー52からコ
レクションロジック54に送られる。同様に、現行Y<3
1:16>もマルチプレクサ83に送られ、エリアジング・
ビット(アンチエリアジング・モードでの操作を示す)
の状態に依存して、Edge1 Y<31:16>値としてシフトした
現行Y値またはシフトしない現行Y値のどちらかを選択
する。よってこの例では、エッジステッパーから送られ
る第1のEdge1 X,Edge1 Y要素の対は、(2,1)である。
【0037】現行Y要素は+1だけインクリメントさ
れ、結果はフィードバックされてマルチプレクサ85を
通り、レジスタ80に保管される。同じサイクルにおい
て、スロープxが、乗算器91でマルチプレクサ82か
ら提供されたインクリメント値で乗算され、加算器98
で現行X要素に加算され、次のX要素(Next X)として出
力する。Next X要素は、マルチプレクサ95を介して送
られ、レジスタ94にロードされる。結果として第2の
座標の対(3,2)が、エッジ1について生成される。現行
Y要素が+1インクリメントされ、現行Xがスロープに
よりインクリメントされ、結果がレジスタ80および9
4にそれぞれロードされ、次のサイクルについてのEdge
1 X,Edge1 Y座標(5,3)を提供する。インクリメント処理
は、比較器92がNext Y値がストップyレジスタ90に
保管された値より大きいと判断するまで続く。Next Y値
がストップy値より大きい場合には、プリミティブのエ
ッジ進行が完了し、信号「プリミティブ終了(End Primi
tive)」がアサートされる。よって、エッジステッパー
52からコレクションロジック54へ送られる信号は、
Edge1 X,Edge1 Y および「プリミティブ終了」信号であ
る。
れ、結果はフィードバックされてマルチプレクサ85を
通り、レジスタ80に保管される。同じサイクルにおい
て、スロープxが、乗算器91でマルチプレクサ82か
ら提供されたインクリメント値で乗算され、加算器98
で現行X要素に加算され、次のX要素(Next X)として出
力する。Next X要素は、マルチプレクサ95を介して送
られ、レジスタ94にロードされる。結果として第2の
座標の対(3,2)が、エッジ1について生成される。現行
Y要素が+1インクリメントされ、現行Xがスロープに
よりインクリメントされ、結果がレジスタ80および9
4にそれぞれロードされ、次のサイクルについてのEdge
1 X,Edge1 Y座標(5,3)を提供する。インクリメント処理
は、比較器92がNext Y値がストップyレジスタ90に
保管された値より大きいと判断するまで続く。Next Y値
がストップy値より大きい場合には、プリミティブのエ
ッジ進行が完了し、信号「プリミティブ終了(End Primi
tive)」がアサートされる。よって、エッジステッパー
52からコレクションロジック54へ送られる信号は、
Edge1 X,Edge1 Y および「プリミティブ終了」信号であ
る。
【0038】1つの実施形態では、エッジ2および3
は、「曲がり」により接続された1つのエッジ(エッジ
2/3)として扱われる。エッジ2/3についてのエッ
ジ進行ロジックはエッジ1について与えられたものと同
様であるが、1つ例外がある。エッジ2/3の進行の間
において、進行は最初エッジ2のストップy値が発生す
るまでエッジ2に沿って行われ、その後進行はエッジ3
に沿って続く。よって図7の例を参照すると、エッジ進
行はエッジ2に沿って生じ、エッジ2のスタートxおよ
びスタートyの座標(0.8,1)(図7のB点により示され
る)から開始し、エッジ2の座標(0.6,2)を生成する。
y座標が第3の走査線に向けてインクリメントされる
と、図8の比較器92により行われる比較と同様に比較
が実行され、レジスタ90と同様のレジスタに保管され
たストップY値に対してNext Y(次のY)値を比較する。
エッジ2のY座標がエッジ2のストップY値より大きい
場合には、進行はエッジ3のスタートX座標においてエ
ッジ3に沿って始まる。図7の例では、走査線3につい
て生成される最初のエッジの座標が、(2.7,3)である
(図7のC点により示される)。エッジ3に沿った進行
は、エッジ1のエッジステッパーにより「プリミティブ
終了」信号がアサートされるまで続く。よって図8にお
けるロジックは、スタートxレジスタ94の前にマルチ
プレクサを加え(エッジ2のスタートxおよびエッジ3
のスタートxの間で選択するため)、ストップYレジス
タ90の前にマルチプレクサを加えることにより(エッ
ジ2のストップYおよびエッジ3のストップyに等しい
エッジ1のストップYの間で選択するため)、エッジ2
/3において改良することができる。さらに、エッジ2
のスロープおよびエッジ3のスロープの間で選択するた
め、レジスタ96の前にマルチプレクサが加えられる。
エッジ2/3座標は、エッジ1座標が各走査線について
生成されるのと同時に生成することができる。
は、「曲がり」により接続された1つのエッジ(エッジ
2/3)として扱われる。エッジ2/3についてのエッ
ジ進行ロジックはエッジ1について与えられたものと同
様であるが、1つ例外がある。エッジ2/3の進行の間
において、進行は最初エッジ2のストップy値が発生す
るまでエッジ2に沿って行われ、その後進行はエッジ3
に沿って続く。よって図7の例を参照すると、エッジ進
行はエッジ2に沿って生じ、エッジ2のスタートxおよ
びスタートyの座標(0.8,1)(図7のB点により示され
る)から開始し、エッジ2の座標(0.6,2)を生成する。
y座標が第3の走査線に向けてインクリメントされる
と、図8の比較器92により行われる比較と同様に比較
が実行され、レジスタ90と同様のレジスタに保管され
たストップY値に対してNext Y(次のY)値を比較する。
エッジ2のY座標がエッジ2のストップY値より大きい
場合には、進行はエッジ3のスタートX座標においてエ
ッジ3に沿って始まる。図7の例では、走査線3につい
て生成される最初のエッジの座標が、(2.7,3)である
(図7のC点により示される)。エッジ3に沿った進行
は、エッジ1のエッジステッパーにより「プリミティブ
終了」信号がアサートされるまで続く。よって図8にお
けるロジックは、スタートxレジスタ94の前にマルチ
プレクサを加え(エッジ2のスタートxおよびエッジ3
のスタートxの間で選択するため)、ストップYレジス
タ90の前にマルチプレクサを加えることにより(エッ
ジ2のストップYおよびエッジ3のストップyに等しい
エッジ1のストップYの間で選択するため)、エッジ2
/3において改良することができる。さらに、エッジ2
のスロープおよびエッジ3のスロープの間で選択するた
め、レジスタ96の前にマルチプレクサが加えられる。
エッジ2/3座標は、エッジ1座標が各走査線について
生成されるのと同時に生成することができる。
【0039】各走査線についてエッジ1およびエッジ2
/3座標の生成の後、エリアジングモードでは、座標は
スパンステッパー56(図6)に送られる。スパンステ
ッパー56は、プリミティブにより覆われる各走査線上
のエッジ1のx座標からエッジ2/3のx座標までx軸
に沿って進行し、エッジ1およびエッジ2/3の間のす
べてのピクセルのx、y座標を求め、結果としてその走
査線上における求められたすべてのピクセルがプリミテ
ィブにより覆われる。
/3座標の生成の後、エリアジングモードでは、座標は
スパンステッパー56(図6)に送られる。スパンステ
ッパー56は、プリミティブにより覆われる各走査線上
のエッジ1のx座標からエッジ2/3のx座標までx軸
に沿って進行し、エッジ1およびエッジ2/3の間のす
べてのピクセルのx、y座標を求め、結果としてその走
査線上における求められたすべてのピクセルがプリミテ
ィブにより覆われる。
【0040】図1は、エリアジング・モードにおけるプ
リミティブ74のレンダリングの例であり、ピクセル座
標が、上述したエッジ進行およびスパン進行の操作を使
用して生成された。スパン進行およびエッジ進行の間、
ピクセル座標のみが比較されて生成されるので、プリミ
ティブにより完全に覆われる場所を有するピクセルのみ
が「on」であり、残りのピクセルは「off」であ
る。さらに、エリアジング・モードではプリミティブの
エッジに沿った色の調整が何もなされないので、各ピク
セルは背景色またはプリミティブ色かのどちらかであ
る。よってエリアジング・モード操作は、高パフォーマ
ンスが望まれる時にプリミティブをレンダリングするの
に有効であるが、図1に示されるように、エリアジング
されたエッジは、しばしばぎざぎざであり、視覚的に不
快である。
リミティブ74のレンダリングの例であり、ピクセル座
標が、上述したエッジ進行およびスパン進行の操作を使
用して生成された。スパン進行およびエッジ進行の間、
ピクセル座標のみが比較されて生成されるので、プリミ
ティブにより完全に覆われる場所を有するピクセルのみ
が「on」であり、残りのピクセルは「off」であ
る。さらに、エリアジング・モードではプリミティブの
エッジに沿った色の調整が何もなされないので、各ピク
セルは背景色またはプリミティブ色かのどちらかであ
る。よってエリアジング・モード操作は、高パフォーマ
ンスが望まれる時にプリミティブをレンダリングするの
に有効であるが、図1に示されるように、エリアジング
されたエッジは、しばしばぎざぎざであり、視覚的に不
快である。
【0041】マルチポイント・サンプリングを使用する
アンチエリアジング方法は、一般に高品質画像を生成す
るが、各ピクセルにおける複数のサンプルが各ピクセル
の色を求める時に分析されるので、エリアジングされた
画像に比べてパフォーマンスが低下し、またはハードウ
ェア・コストが高くなる。上述したようにエッジ進行お
よび走査進行は、ピクセル座標情報をメモリコントロー
ラに提供するため、走査線の粒状度(ぎざぎざ、guranu
larity)についてエリアジング・モードで実行される。
しかし本発明の1つの実施形態では、アンチエリアジン
グ・モードにおいて、各ピクセルが多くのサブ走査線に
分けられ、エッジ進行はサブ走査線の粒状度について実
行される。サブサンプルは1または複数のサブ走査線上
に位置し、サブサンプルのそれぞれがプリミティブによ
り覆われるかどうかについての情報がアンチエリアジン
グ・モードの間、スパンステッパーによりメモリコント
ローラに送られる。本発明の1つの実施形態において
は、エリアジング・モードおよびアンチエリアジング・
モードの両方の操作において、エッジ進行およびスパン
進行のため同じハードウェアを使用することが有利であ
る。よってサブサンプル情報は、エッジステッパーおよ
びスパンステッパーのハードウェアへの最小限の変更で
提供することができる。
アンチエリアジング方法は、一般に高品質画像を生成す
るが、各ピクセルにおける複数のサンプルが各ピクセル
の色を求める時に分析されるので、エリアジングされた
画像に比べてパフォーマンスが低下し、またはハードウ
ェア・コストが高くなる。上述したようにエッジ進行お
よび走査進行は、ピクセル座標情報をメモリコントロー
ラに提供するため、走査線の粒状度(ぎざぎざ、guranu
larity)についてエリアジング・モードで実行される。
しかし本発明の1つの実施形態では、アンチエリアジン
グ・モードにおいて、各ピクセルが多くのサブ走査線に
分けられ、エッジ進行はサブ走査線の粒状度について実
行される。サブサンプルは1または複数のサブ走査線上
に位置し、サブサンプルのそれぞれがプリミティブによ
り覆われるかどうかについての情報がアンチエリアジン
グ・モードの間、スパンステッパーによりメモリコント
ローラに送られる。本発明の1つの実施形態において
は、エリアジング・モードおよびアンチエリアジング・
モードの両方の操作において、エッジ進行およびスパン
進行のため同じハードウェアを使用することが有利であ
る。よってサブサンプル情報は、エッジステッパーおよ
びスパンステッパーのハードウェアへの最小限の変更で
提供することができる。
【0042】本発明の1つの実施形態では、各走査線が
多くのサブ走査線に細分される前に、サブ走査線のそれ
ぞれが整数アドレスの境界に位置するように画像が前も
って定められた量だけ最初にスケールされる。このやり
方では、スパンおよびエッジステッパーがピクセルアド
レスの小数部を扱う必要がなく、ハードウェアを簡略化
する。しかし、この機能は有利であるが本発明はこの点
に制限されない。よってスケーリング(scaling)を使用
する必要はなく、サブ走査線の座標はピクセル座標の小
数部に対応することができる。よってスケーリングは、
ピクセル内のサンプル座標に関連するいくつかのサブ走
査線に走査線を分割するための、1つの実施形態にすぎ
ない。
多くのサブ走査線に細分される前に、サブ走査線のそれ
ぞれが整数アドレスの境界に位置するように画像が前も
って定められた量だけ最初にスケールされる。このやり
方では、スパンおよびエッジステッパーがピクセルアド
レスの小数部を扱う必要がなく、ハードウェアを簡略化
する。しかし、この機能は有利であるが本発明はこの点
に制限されない。よってスケーリング(scaling)を使用
する必要はなく、サブ走査線の座標はピクセル座標の小
数部に対応することができる。よってスケーリングは、
ピクセル内のサンプル座標に関連するいくつかのサブ走
査線に走査線を分割するための、1つの実施形態にすぎ
ない。
【0043】本発明のスケーリングの実施形態では、画
像のスケーリングは、グラフィクスアクセラレータ・チ
ップ18の変換ユニット30(図3)において、変換マ
トリクス32(図3)の値に所望のスケーリング値を掛
けることにより実行される。変換ユニット32はズーム
された画像を提供するためのスケーリング機能をすでに
含むので、このアンチエリアジングのサポートを提供す
るために変換ユニットへの追加機能は必要ない。スケー
リング値は、各ピクセルについて望まれるサンプル点に
より一部分決定される。本発明の1つの実施形態では、
8のスケーリング値が4個のサンプル点の場所を適応さ
せるために使用されるが、他のスケーリング値および代
わりのサンプル点の数を使用することもできる、スケー
リング点の数の選択は、サブ走査線のサンプルのそれぞ
れを処理するのに必要な計算時間および画像のエリアジ
ングされた表示に対するアンチエリアジングされた画像
の相対的な改良により影響される。本発明の1つの実施
形態では、ピクセルあたり4個のサンプル点の使用が、
良いパフォーマンスを維持する一方でエリアジングされ
た画像に比べて著しく改良された画像品質を提供するこ
とがわかった。
像のスケーリングは、グラフィクスアクセラレータ・チ
ップ18の変換ユニット30(図3)において、変換マ
トリクス32(図3)の値に所望のスケーリング値を掛
けることにより実行される。変換ユニット32はズーム
された画像を提供するためのスケーリング機能をすでに
含むので、このアンチエリアジングのサポートを提供す
るために変換ユニットへの追加機能は必要ない。スケー
リング値は、各ピクセルについて望まれるサンプル点に
より一部分決定される。本発明の1つの実施形態では、
8のスケーリング値が4個のサンプル点の場所を適応さ
せるために使用されるが、他のスケーリング値および代
わりのサンプル点の数を使用することもできる、スケー
リング点の数の選択は、サブ走査線のサンプルのそれぞ
れを処理するのに必要な計算時間および画像のエリアジ
ングされた表示に対するアンチエリアジングされた画像
の相対的な改良により影響される。本発明の1つの実施
形態では、ピクセルあたり4個のサンプル点の使用が、
良いパフォーマンスを維持する一方でエリアジングされ
た画像に比べて著しく改良された画像品質を提供するこ
とがわかった。
【0044】上に述べたように本発明の1つの実施形態
では、スケーリング・ファクタ(たとえば8)がサンプ
ル点の数(たとえば4)より大きい。このことは、ピク
セル内のサブサンプルの非定型な位置づけを容易にする
点で有利である。非定型配置は、サブサンプルが定型で
グリッド(格子)のようなパターンを形成しないよう
に、各ピクセルのサブサンプルがサブ走査線に沿った場
所に位置することができるということを意味する。サブ
走査線に沿って非定型の間隔にサブサンプルを置くこと
により、整列された構造により引き起こされる視覚的な
加工(artifact)が減少する。しかし本発明は、スケーリ
ングの時にサンプル数より大きいスケーリング・ファク
タを使用することに制限されない。最小限の視覚的加工
で出力画像を生成するため、スケーリング値およびサン
プル点の数を決定するために使用することができる1つ
の技術が、「Hardware Assisted Polygon Anti-Aliasin
g」、IEEE Computer Graphics & Applications,1991年
1月、Anthony C.Barkans著、に説明されており、ここ
で参照により取り入れる。
では、スケーリング・ファクタ(たとえば8)がサンプ
ル点の数(たとえば4)より大きい。このことは、ピク
セル内のサブサンプルの非定型な位置づけを容易にする
点で有利である。非定型配置は、サブサンプルが定型で
グリッド(格子)のようなパターンを形成しないよう
に、各ピクセルのサブサンプルがサブ走査線に沿った場
所に位置することができるということを意味する。サブ
走査線に沿って非定型の間隔にサブサンプルを置くこと
により、整列された構造により引き起こされる視覚的な
加工(artifact)が減少する。しかし本発明は、スケーリ
ングの時にサンプル数より大きいスケーリング・ファク
タを使用することに制限されない。最小限の視覚的加工
で出力画像を生成するため、スケーリング値およびサン
プル点の数を決定するために使用することができる1つ
の技術が、「Hardware Assisted Polygon Anti-Aliasin
g」、IEEE Computer Graphics & Applications,1991年
1月、Anthony C.Barkans著、に説明されており、ここ
で参照により取り入れる。
【0045】8による画像のスケーリングは、いくつか
の他の有利な点を提供する。スケーリング量が2の累乗
なので、スケーリングの乗算ステップがビットをシフト
することにより簡単に達成される。さらに8のスケーリ
ングサイズが選択されるので、サブ走査線アドレスを決
定するのに3ビットが使用される。以下に述べるよう
に、スパンおよびエッジステッパーのハードウェアが整
数のピクセル座標の16ビットをサポートできるレジス
タを含むように、本発明の1つの実施形態で使用される
xおよびyのアドレスのそれぞれが16ビットの整数部
分を含む。アンチエリアジングの間に、整数アドレスの
3ビットがサブ走査線のアドレスビットとして使用され
ると、yアドレスの13ビットが画像のピクセルをアド
レスするために残る。Xウィンドウのような多くのアプ
リケーションが8Kの画像ピクセルのアドレス範囲を必
要とするので、13ビット必要となる。8のスケーリン
グファクタの使用は、サブサンプル配置の柔軟性を最大
限にすることを考慮し、さらにアンチエリアジング操作
のためXウィンドウのようなアプリケーションを支援す
る。
の他の有利な点を提供する。スケーリング量が2の累乗
なので、スケーリングの乗算ステップがビットをシフト
することにより簡単に達成される。さらに8のスケーリ
ングサイズが選択されるので、サブ走査線アドレスを決
定するのに3ビットが使用される。以下に述べるよう
に、スパンおよびエッジステッパーのハードウェアが整
数のピクセル座標の16ビットをサポートできるレジス
タを含むように、本発明の1つの実施形態で使用される
xおよびyのアドレスのそれぞれが16ビットの整数部
分を含む。アンチエリアジングの間に、整数アドレスの
3ビットがサブ走査線のアドレスビットとして使用され
ると、yアドレスの13ビットが画像のピクセルをアド
レスするために残る。Xウィンドウのような多くのアプ
リケーションが8Kの画像ピクセルのアドレス範囲を必
要とするので、13ビット必要となる。8のスケーリン
グファクタの使用は、サブサンプル配置の柔軟性を最大
限にすることを考慮し、さらにアンチエリアジング操作
のためXウィンドウのようなアプリケーションを支援す
る。
【0046】本発明の1つの実施形態は4個のサブサン
プルに8のスケーリングファクタを使用するが、本発明
はこれらの値に制限されない。むしろ、他のスケーリン
グファクタおよびサブサンプルの他の数を代わりに使用
することができる。上述したように、スケール値の選択
は、使用可能なアドレススペースおよび計算の容易さに
依存する。サブサンプル数の選択は、所望の画像品質お
よび所望のパフォーマンスに基づいて決定される。
プルに8のスケーリングファクタを使用するが、本発明
はこれらの値に制限されない。むしろ、他のスケーリン
グファクタおよびサブサンプルの他の数を代わりに使用
することができる。上述したように、スケール値の選択
は、使用可能なアドレススペースおよび計算の容易さに
依存する。サブサンプル数の選択は、所望の画像品質お
よび所望のパフォーマンスに基づいて決定される。
【0047】図9を参照すると、例としてピクセル97
が示される。スケーリング前、ピクセルの走査線境界
は、走査線0および走査線1により定められる。ピクセ
ル97は8のファクタによりスケールされ、スケールさ
れたピクセル99を生成する。スケールされたピクセル
99において、サブサンプル・ピクセルが、サブ走査線
0,サブ走査線3,サブ走査線5およびサブ走査線7に
位置する。図9の例では、サブサンプルが次の場所に位
置される。すなわち、サブサンプル0=(0,0)、サブサ
ンプル1=(7,3)、サブサンプル2=(3,5)およびサブサ
ンプル3=(5,7)である。サブサンプルは、サブ走査線
に沿った他の点に代わりに位置することもできる。
が示される。スケーリング前、ピクセルの走査線境界
は、走査線0および走査線1により定められる。ピクセ
ル97は8のファクタによりスケールされ、スケールさ
れたピクセル99を生成する。スケールされたピクセル
99において、サブサンプル・ピクセルが、サブ走査線
0,サブ走査線3,サブ走査線5およびサブ走査線7に
位置する。図9の例では、サブサンプルが次の場所に位
置される。すなわち、サブサンプル0=(0,0)、サブサ
ンプル1=(7,3)、サブサンプル2=(3,5)およびサブサ
ンプル3=(5,7)である。サブサンプルは、サブ走査線
に沿った他の点に代わりに位置することもできる。
【0048】マルチポイント・サンプリングがエッジ進
行技術に関して述べられるが、上のスケーリング技術
は、アンチエリアジング操作の他の方法における算術計
算を簡単にするのに使用することもできる。その場合、
算術計算は画像に関連する情報の少なくとも1つについ
て演算し、また情報は小数部要素を含むことができる。
情報の例は、マルチポイント・サンプリングにおけるサ
ブサンプル点を含むことができ、またスロープおよびエ
ッジ式のパラメータも含むことができる。したがって、
画像のスケーリングは情報の小数部要素を取り除くのに
使用することができ、これにより複雑な浮動小数点計算
についての必要性を取り除くことができる。
行技術に関して述べられるが、上のスケーリング技術
は、アンチエリアジング操作の他の方法における算術計
算を簡単にするのに使用することもできる。その場合、
算術計算は画像に関連する情報の少なくとも1つについ
て演算し、また情報は小数部要素を含むことができる。
情報の例は、マルチポイント・サンプリングにおけるサ
ブサンプル点を含むことができ、またスロープおよびエ
ッジ式のパラメータも含むことができる。したがって、
画像のスケーリングは情報の小数部要素を取り除くのに
使用することができ、これにより複雑な浮動小数点計算
についての必要性を取り除くことができる。
【0049】エッジ進行は、エリアジングされた画像に
ついて図8を参照して説明したのと同様のやり方で、ア
ンチエリアジングされた画像についてスケールされたグ
リッドについて実行される。Y軸のアドレスの解釈の仕
方において、1つだけ異なる点がある。すなわち、Y軸
アドレスはアンチエリアジング・モードではサブ走査線
のアドレスであるのに対し、エリアジング・モードでは
走査線アドレスである。
ついて図8を参照して説明したのと同様のやり方で、ア
ンチエリアジングされた画像についてスケールされたグ
リッドについて実行される。Y軸のアドレスの解釈の仕
方において、1つだけ異なる点がある。すなわち、Y軸
アドレスはアンチエリアジング・モードではサブ走査線
のアドレスであるのに対し、エリアジング・モードでは
走査線アドレスである。
【0050】図10を参照すると、XまたはYアドレレ
ジスタの1つの実施形態が示され、16.16形式で保
管された32ビットから成る。16.16形式におい
て、上位16ビットが整数で、下位16ビットがアドレ
スの小数部分を表す。エリアジング・モードで動作する
時のXまたはYアドレスレジスタのビットの1つの例示
的な割り当てがレジスタ101として示されており、X
またはYアドレスレジスタの整数部分101aは、Xま
たはYアドレス情報の16ビットから成る。アンチエリ
アジング・モードで動作する場合のXまたはYアドレス
レジスタビットの例示的な割り当てはレジスタ103と
して示され、XまたはYアドレスの整数部分は13ビッ
トのXまたはYアドレス103aおよび3ビットのサブ
グリッド・アドレス103bを含み、3ビットのサブグ
リッド・アドレスは、ピクセルの8個のサブ走査線の1
つのアドレスを符号化する。エリアジング・モードにお
けるエッジ進行は、インクリメンタルな進行の基礎とし
てYアドレスレジスタビットの整数部分(図10に示さ
れる31:16)を使用し、アンチエリアジング・モードの
エッジ進行は、示されるように同じYビット<31:16>を
使用し、サブグリッドアドレスビット<18:16>が、アン
チエリアジング処理の部分を制御するのに使用される。
ジスタの1つの実施形態が示され、16.16形式で保
管された32ビットから成る。16.16形式におい
て、上位16ビットが整数で、下位16ビットがアドレ
スの小数部分を表す。エリアジング・モードで動作する
時のXまたはYアドレスレジスタのビットの1つの例示
的な割り当てがレジスタ101として示されており、X
またはYアドレスレジスタの整数部分101aは、Xま
たはYアドレス情報の16ビットから成る。アンチエリ
アジング・モードで動作する場合のXまたはYアドレス
レジスタビットの例示的な割り当てはレジスタ103と
して示され、XまたはYアドレスの整数部分は13ビッ
トのXまたはYアドレス103aおよび3ビットのサブ
グリッド・アドレス103bを含み、3ビットのサブグ
リッド・アドレスは、ピクセルの8個のサブ走査線の1
つのアドレスを符号化する。エリアジング・モードにお
けるエッジ進行は、インクリメンタルな進行の基礎とし
てYアドレスレジスタビットの整数部分(図10に示さ
れる31:16)を使用し、アンチエリアジング・モードの
エッジ進行は、示されるように同じYビット<31:16>を
使用し、サブグリッドアドレスビット<18:16>が、アン
チエリアジング処理の部分を制御するのに使用される。
【0051】8個の可能なサブグリッドのY値がある
が、例示的な実施形態では4個のサブサンプルのみが使
用される。結果として、サブサンプルがある4個のサブ
走査線のみが(図9に示されるように)、エッジ進行処
理の間に分析される。したがって、初期のYアドレスの
サブグリッドフィールド103bがサブ走査線に対応す
るサブグリッド値でない場合には、スタートするYアド
レスがインクリメントされてグリッド内の次のサブ走査
線で開始する。たとえば、Yサブグリッドアドレスフィ
ールド103が1である場合、進行についてのスタート
Yがグリッドのサンプル点を有する次のサブ走査線なの
で、+2だけインクリメントされて3になる。
が、例示的な実施形態では4個のサブサンプルのみが使
用される。結果として、サブサンプルがある4個のサブ
走査線のみが(図9に示されるように)、エッジ進行処
理の間に分析される。したがって、初期のYアドレスの
サブグリッドフィールド103bがサブ走査線に対応す
るサブグリッド値でない場合には、スタートするYアド
レスがインクリメントされてグリッド内の次のサブ走査
線で開始する。たとえば、Yサブグリッドアドレスフィ
ールド103が1である場合、進行についてのスタート
Yがグリッドのサンプル点を有する次のサブ走査線なの
で、+2だけインクリメントされて3になる。
【0052】図8を戻って参照すると、本発明の1つの
実施形態においてどのようにエッジ進行のハードウェア
がアンチエリアジングされたエッジ進行に使用されるか
が説明される。スタートy値は、マルチプレクサ85を
介して送られ、レジスタ80にロードされ、現行Y<31:
16>として保管される。現行Y<31:16>はマルチプレクサ
83に送られ、シフトされない現行Yまたはシフトされ
た現行Yが、エリアジングビットの状態に依存してEdge
1 Y値として提供される。図10で説明するように、ビ
ット<18:16>はアンチエリアジング・モードで使用さ
れ、進行するためサブ走査線の粒状度を提供する。よっ
てアンチエリアジング・モードでは、Y要素の整数部分
が現行Y値のビット<31:19>から形成され、エリアジン
グ・モードではY要素の整数部分が現行Y値の<28:16>
から形成される。
実施形態においてどのようにエッジ進行のハードウェア
がアンチエリアジングされたエッジ進行に使用されるか
が説明される。スタートy値は、マルチプレクサ85を
介して送られ、レジスタ80にロードされ、現行Y<31:
16>として保管される。現行Y<31:16>はマルチプレクサ
83に送られ、シフトされない現行Yまたはシフトされ
た現行Yが、エリアジングビットの状態に依存してEdge
1 Y値として提供される。図10で説明するように、ビ
ット<18:16>はアンチエリアジング・モードで使用さ
れ、進行するためサブ走査線の粒状度を提供する。よっ
てアンチエリアジング・モードでは、Y要素の整数部分
が現行Y値のビット<31:19>から形成され、エリアジン
グ・モードではY要素の整数部分が現行Y値の<28:16>
から形成される。
【0053】また、現行Y値は加算器86に送られる。
さらに、インクリメントも加算器86に送られる。イン
クリメント量は選択制御ロジック81により決められ、
エリアジング・ビット(上述したように、グラフィック
ス装置がエリアジング・モードで動作するかどうかを示
す)の状態に基づき、さらに初期のサブグリッドアドレ
スに基づく。前述したように、サブグリッドアドレスが
サンプル点を有するサブ走査線でない場合には、初期の
加算操作が所望のインクリメントを加算して次のサブ走
査線に行く。次のサブ走査線アドレスに達するために必
要なインクリメントが、現在のサブ走査線アドレスおよ
び次のサブ走査線アドレスへのデルタyに基づいて選択
される。たとえば、サブ走査線アドレスのy要素が
(0)、(3)、(5)および(7)である場合には、サブ走査線0
からサブ走査線1までのサブ走査線デルタは+3であ
り、サブ走査線1からサブ走査線2までは+2であり、
サブ走査線2からサブ走査線3までは+2であり、サブ
走査線3から次のピクセルのサブ走査線0までは+1で
ある。
さらに、インクリメントも加算器86に送られる。イン
クリメント量は選択制御ロジック81により決められ、
エリアジング・ビット(上述したように、グラフィック
ス装置がエリアジング・モードで動作するかどうかを示
す)の状態に基づき、さらに初期のサブグリッドアドレ
スに基づく。前述したように、サブグリッドアドレスが
サンプル点を有するサブ走査線でない場合には、初期の
加算操作が所望のインクリメントを加算して次のサブ走
査線に行く。次のサブ走査線アドレスに達するために必
要なインクリメントが、現在のサブ走査線アドレスおよ
び次のサブ走査線アドレスへのデルタyに基づいて選択
される。たとえば、サブ走査線アドレスのy要素が
(0)、(3)、(5)および(7)である場合には、サブ走査線0
からサブ走査線1までのサブ走査線デルタは+3であ
り、サブ走査線1からサブ走査線2までは+2であり、
サブ走査線2からサブ走査線3までは+2であり、サブ
走査線3から次のピクセルのサブ走査線0までは+1で
ある。
【0054】図9の例を使用してエッジ1に沿って進行
すると、スタートy値は1であり、ストップy値は8.
0より大きく(エッジがピクセル99を超えて伸長する
ので)、スタートx値は1であり、スロープx値は1で
ある。第1のサイクルの間、スタートy要素はマルチプ
レクサ85を介して送られてレジスタ80に保管され、
コレクションロジック54へEdge1 Yとして出力され
る。スタートx要素はマルチプレクサ95を介して送ら
れてレジスタ94に保管され、現行x値を提供する。現
行x値はマルチプレクサ100を介して送られ、調整X
値として提供され、現行Y要素に関して上述したのと同
様のやり方でシフトされ、コレクションロジック54に
送るため Edge1 X要素を提供する。
すると、スタートy値は1であり、ストップy値は8.
0より大きく(エッジがピクセル99を超えて伸長する
ので)、スタートx値は1であり、スロープx値は1で
ある。第1のサイクルの間、スタートy要素はマルチプ
レクサ85を介して送られてレジスタ80に保管され、
コレクションロジック54へEdge1 Yとして出力され
る。スタートx要素はマルチプレクサ95を介して送ら
れてレジスタ94に保管され、現行x値を提供する。現
行x値はマルチプレクサ100を介して送られ、調整X
値として提供され、現行Y要素に関して上述したのと同
様のやり方でシフトされ、コレクションロジック54に
送るため Edge1 X要素を提供する。
【0055】エッジ進行処理の次のサイクルの間、1の
現行Y要素が+2だけインクリメントされ、サブ走査線
3を得る。サブ走査線3のx座標は、マルチプレクサ9
1におけるスロープx値に+2のインクリメント値を掛
け、結果を加算器98における現行X値に加算すること
により決定される。加算器98からの結果はフィードバ
ックされてマルチプレクサ95を通り、レジスタ94に
保管され、(3,3)の次の処理サイクルのため(3,3)のEdge
1 YおよびEdge1 X 座標を最終的に提供する。次のサイ
クルの間、次のサブ走査線(y=5)を得るのに必要なイン
クリメント量は、+2である。処理は上述したように進
み、次の2サイクルにおいて(5,5)および(7,7)のエッジ
座標が生じる。
現行Y要素が+2だけインクリメントされ、サブ走査線
3を得る。サブ走査線3のx座標は、マルチプレクサ9
1におけるスロープx値に+2のインクリメント値を掛
け、結果を加算器98における現行X値に加算すること
により決定される。加算器98からの結果はフィードバ
ックされてマルチプレクサ95を通り、レジスタ94に
保管され、(3,3)の次の処理サイクルのため(3,3)のEdge
1 YおよびEdge1 X 座標を最終的に提供する。次のサイ
クルの間、次のサブ走査線(y=5)を得るのに必要なイン
クリメント量は、+2である。処理は上述したように進
み、次の2サイクルにおいて(5,5)および(7,7)のエッジ
座標が生じる。
【0056】比較器93は、加算器86からのNext Y
要素の上位13ビットを、レジスタ80からのEdge1 Y
値の上位13ビットに対して比較する。上述したよう
に、上位13ビットは、Yアドレスの走査線要素を表
す。走査線の境界が横断されるたび、この2つは等しく
ない。2つが等しくないとき、または「プリミティブ終
了」信号がアサートされるとき、New Y信号がアサート
され、新しい走査線の処理の開始を示すNew Y信号がコ
レクションロジック54に送られる。
要素の上位13ビットを、レジスタ80からのEdge1 Y
値の上位13ビットに対して比較する。上述したよう
に、上位13ビットは、Yアドレスの走査線要素を表
す。走査線の境界が横断されるたび、この2つは等しく
ない。2つが等しくないとき、または「プリミティブ終
了」信号がアサートされるとき、New Y信号がアサート
され、新しい走査線の処理の開始を示すNew Y信号がコ
レクションロジック54に送られる。
【0057】ピクセル99の分析の間、Edge1 X、Edge1
Y座標の対の4つのセットが生成されるが、この座標の
対の3つのみがサブ走査線上に位置する。しかしエッジ
がピクセルのサブ走査線のすべてにわたって広がる場合
には、4つのエッジのサブ走査線座標の全部が、各ピク
セルについて生成されることがわかる。それぞれのサブ
走査線座標のx、yの対が生成され、コレクションロジ
ック54に与えられる(図6)。さらに、各エッジのサ
ブ走査線座標x、yの対と一緒に、サブ走査線のyサブ
グリッドアドレスが送られる。以下により詳細に説明す
るように、yサブグリッドアドレスは、有効なサブ走査
線(すなわちサブ走査線0、3、5、または7)上にあ
るx、y座標の対と、有効でないサブ走査線上にある
x、y座標の対(すなわち、サブ走査線1、2、4、ま
たは6の上に位置している)とを区別するのに使用され
る。
Y座標の対の4つのセットが生成されるが、この座標の
対の3つのみがサブ走査線上に位置する。しかしエッジ
がピクセルのサブ走査線のすべてにわたって広がる場合
には、4つのエッジのサブ走査線座標の全部が、各ピク
セルについて生成されることがわかる。それぞれのサブ
走査線座標のx、yの対が生成され、コレクションロジ
ック54に与えられる(図6)。さらに、各エッジのサ
ブ走査線座標x、yの対と一緒に、サブ走査線のyサブ
グリッドアドレスが送られる。以下により詳細に説明す
るように、yサブグリッドアドレスは、有効なサブ走査
線(すなわちサブ走査線0、3、5、または7)上にあ
るx、y座標の対と、有効でないサブ走査線上にある
x、y座標の対(すなわち、サブ走査線1、2、4、ま
たは6の上に位置している)とを区別するのに使用され
る。
【0058】さらにエッジステッパー52は、サブ走査
線上のサブサンプルがプリミティブのエッジにより覆わ
れるかどうかを示す状態ビットを提供するため、状態ロ
ジック84を含む。状態ビットは、エッジがサブ走査線
を交差する時のエッジのx座標、それぞれのサブ走査線
上のサブサンプルのx座標、およびグラフィックス・ア
クセラレータ18から受けとった方向値に従って定めら
れる。
線上のサブサンプルがプリミティブのエッジにより覆わ
れるかどうかを示す状態ビットを提供するため、状態ロ
ジック84を含む。状態ビットは、エッジがサブ走査線
を交差する時のエッジのx座標、それぞれのサブ走査線
上のサブサンプルのx座標、およびグラフィックス・ア
クセラレータ18から受けとった方向値に従って定めら
れる。
【0059】上述したように、方向値は、エッジ1(最
大のY軸の範囲(スパン)を有するプリミティブのエッ
ジ)からエッジ2(最上のYの頂点をエッジ1と共有す
るエッジ)に行くのにどの方向が進行されるのかを示
す。たとえば、方向についての「1」値は、エッジ1が
左にあって左から右へ進行が行われることを示すことが
でき、「0」はエッジ1が右にあって右から左に進行が
行われることを示すことができる。方向値は、バス19
を介して走査変換ロジック50への信号としてを提供さ
れることができ、または代わりに走査変換ロジック50
のレジスタ(示されていない)に書き込まれることもで
きる。本発明の1つの実施形態では、方向信号は、グラ
フィックス・アクセラレータ18から走査変換ロジック
50へ転送されるCMDフィールドで符号化される。
大のY軸の範囲(スパン)を有するプリミティブのエッ
ジ)からエッジ2(最上のYの頂点をエッジ1と共有す
るエッジ)に行くのにどの方向が進行されるのかを示
す。たとえば、方向についての「1」値は、エッジ1が
左にあって左から右へ進行が行われることを示すことが
でき、「0」はエッジ1が右にあって右から左に進行が
行われることを示すことができる。方向値は、バス19
を介して走査変換ロジック50への信号としてを提供さ
れることができ、または代わりに走査変換ロジック50
のレジスタ(示されていない)に書き込まれることもで
きる。本発明の1つの実施形態では、方向信号は、グラ
フィックス・アクセラレータ18から走査変換ロジック
50へ転送されるCMDフィールドで符号化される。
【0060】エッジステッパーがサブ走査線に沿って進
行してx、yサブ走査線座標のデータを収集すると、状
態ビットは、覆われるサブ走査線上のサブサンプルが状
態ロジック84(図8)により生成されるかどうかを示
す。状態ロジック84は、接続された比較器89を含
み、レジスタ94から現行x座標を受けとる。また比較
器89は、マルチプレクサ87からの入力を受けとる。
マルチプレクサへのデータ入力は、各サブ走査線につい
てのサブサンプルのx座標である。上述したように、例
示した実施形態におけるサブサンプル座標は、(0,0)、
(7,3)、(3,5)および(5,7)である。マルチプレクサ87
の選択入力は、図10のサブグリッドアドレスビット<1
8:16>により制御され、これはサブ走査線のアドレスビ
ットに対応する。
行してx、yサブ走査線座標のデータを収集すると、状
態ビットは、覆われるサブ走査線上のサブサンプルが状
態ロジック84(図8)により生成されるかどうかを示
す。状態ロジック84は、接続された比較器89を含
み、レジスタ94から現行x座標を受けとる。また比較
器89は、マルチプレクサ87からの入力を受けとる。
マルチプレクサへのデータ入力は、各サブ走査線につい
てのサブサンプルのx座標である。上述したように、例
示した実施形態におけるサブサンプル座標は、(0,0)、
(7,3)、(3,5)および(5,7)である。マルチプレクサ87
の選択入力は、図10のサブグリッドアドレスビット<1
8:16>により制御され、これはサブ走査線のアドレスビ
ットに対応する。
【0061】また比較ロジック89は、入力として方向
信号を受けとる。方向信号が、進行方向が左から右を示
す場合には、比較ロジックはエッジのx座標がサブサン
プルのx座標より小さいすべてのサブ走査線について状
態線をアサートする(すべての有効なサブサンプルが、
エッジの右にあるので)。方向信号が、進行方向が右か
ら左を示す場合には、すべての有効なサブサンプルがエ
ッジの左にあるので、エッジのx座標がサブサンプルの
x座標より大きいすべてのサブ走査線について状態線を
アサートする。エッジ2/3についてのエッジ進行ロジ
ックは、エッジ1について図7で示されたものに非常に
似ている。しかし1つの異なることは、方向信号の反転
した値が状態ロジック84への入力であり、適切なサブ
サンプルピクセルがエッジ2/3について選択されるこ
とを確実にする。
信号を受けとる。方向信号が、進行方向が左から右を示
す場合には、比較ロジックはエッジのx座標がサブサン
プルのx座標より小さいすべてのサブ走査線について状
態線をアサートする(すべての有効なサブサンプルが、
エッジの右にあるので)。方向信号が、進行方向が右か
ら左を示す場合には、すべての有効なサブサンプルがエ
ッジの左にあるので、エッジのx座標がサブサンプルの
x座標より大きいすべてのサブ走査線について状態線を
アサートする。エッジ2/3についてのエッジ進行ロジ
ックは、エッジ1について図7で示されたものに非常に
似ている。しかし1つの異なることは、方向信号の反転
した値が状態ロジック84への入力であり、適切なサブ
サンプルピクセルがエッジ2/3について選択されるこ
とを確実にする。
【0062】Edge1(エッジ1)状態信号は、マルチプレ
クサ100を制御するのに使用される。現行x座標がサ
ブサンプルを覆わない場合には、Edge1状態信号がマル
チプレクサ100にコレクションロジックに送られるEd
ge1 X要素として修正された現行x値を選択させるよう
にする。修正されたx座標は、現行x座標を基準として
進行方向における次の連続した整数x座標である。よっ
て、状態ロジック84により実行される比較操作が、現
行x座標がサブ走査線上のサンプル点を覆わないことを
示す場合には、現行x座標は進行方向に依存して加算器
99により1だけインクリメントまたはデクリメントさ
れる。x座標のインクリメントまたはデクリメントは、
ピクセル幅より小さい幅を有するプリミティブの特定の
種類を識別するのを助けるよう提供される。エッジ1お
よびエッジ2の両方について現行x座標の調整の後、エ
ッジ1およびエッジ2/3の間の距離が0より小さいか
または等しいということが生じる可能性があることだけ
はここで言っておく。エッジ間が0より小さいまたは0
に等しい距離を有する影響については、後で説明する。
クサ100を制御するのに使用される。現行x座標がサ
ブサンプルを覆わない場合には、Edge1状態信号がマル
チプレクサ100にコレクションロジックに送られるEd
ge1 X要素として修正された現行x値を選択させるよう
にする。修正されたx座標は、現行x座標を基準として
進行方向における次の連続した整数x座標である。よっ
て、状態ロジック84により実行される比較操作が、現
行x座標がサブ走査線上のサンプル点を覆わないことを
示す場合には、現行x座標は進行方向に依存して加算器
99により1だけインクリメントまたはデクリメントさ
れる。x座標のインクリメントまたはデクリメントは、
ピクセル幅より小さい幅を有するプリミティブの特定の
種類を識別するのを助けるよう提供される。エッジ1お
よびエッジ2の両方について現行x座標の調整の後、エ
ッジ1およびエッジ2/3の間の距離が0より小さいか
または等しいということが生じる可能性があることだけ
はここで言っておく。エッジ間が0より小さいまたは0
に等しい距離を有する影響については、後で説明する。
【0063】こうして、Edge1 X, Edge1 Y, Edge23 X,
New Yおよび「プリミティブ終了」信号がすべて、エッ
ジステッパー52からコレクションロジック54へ送ら
れる。Edge1 X, Edge23 X およびEdge1 Y座標は、各サ
ブ走査線の計算の後に送られる。New Y信号は、所与の
走査線におけるすべてのサブ走査線が処理された時にア
サートされる。「プリミティブ終了」信号は、プリミテ
ィブの進行が完了した時にアサートされる。
New Yおよび「プリミティブ終了」信号がすべて、エッ
ジステッパー52からコレクションロジック54へ送ら
れる。Edge1 X, Edge23 X およびEdge1 Y座標は、各サ
ブ走査線の計算の後に送られる。New Y信号は、所与の
走査線におけるすべてのサブ走査線が処理された時にア
サートされる。「プリミティブ終了」信号は、プリミテ
ィブの進行が完了した時にアサートされる。
【0064】図11を参照すると、コレクションロジッ
クの1つの例示的な実施形態のブロック図が示され、制
御ユニット104、データパス106、Y座標バッファ
108、Edge1 X座標バッファ110、レングス(lengt
h)バッファ112を含み、エッジのそれぞれに対応する
色、zおよび他のデータを保管する複数の他のバッファ
114を含む。バッファ108、110、112、11
4のそれぞれが、4つのレジスタの2セットを含み、そ
れぞれの4つのレジスタセットは、エッジステッパーに
より最も最近処理されたピクセルについてのサブ走査線
エッジ座標データのコレクション(collection)を保管す
る。データがバッファの半分から読み出されている間に
データがバッファの他の半分への入力であることができ
るように、データはバッファのそれぞれの半分により交
互に受けとられる。
クの1つの例示的な実施形態のブロック図が示され、制
御ユニット104、データパス106、Y座標バッファ
108、Edge1 X座標バッファ110、レングス(lengt
h)バッファ112を含み、エッジのそれぞれに対応する
色、zおよび他のデータを保管する複数の他のバッファ
114を含む。バッファ108、110、112、11
4のそれぞれが、4つのレジスタの2セットを含み、そ
れぞれの4つのレジスタセットは、エッジステッパーに
より最も最近処理されたピクセルについてのサブ走査線
エッジ座標データのコレクション(collection)を保管す
る。データがバッファの半分から読み出されている間に
データがバッファの他の半分への入力であることができ
るように、データはバッファのそれぞれの半分により交
互に受けとられる。
【0065】制御ロジック104は、サブ走査線Y座
標、NewY信号、「プリミティブ終了」信号およびピク
セルデータについて実行される機能を特定するためのC
MDフィールドを受信する。たとえば、CMDフィール
ドは復号されてアンチエリアジングモードにおける操作
を示すモード状態ビットおよび進行方向を示す方向値を
提供することができる。制御ユニットは、書き込み制御
ユニット104aおよび読み込み制御ユニット104b
の2つの機能ユニットを含む。書き込み制御ロジック
は、受けとったEdge1 YおよびEdge1 X座標データの、バ
ッファ108および110への書き込みをそれぞれ制御
する。さらに以下に詳細に述べるように、書き込み制御
ロジックはEdge1 YおよびEdge1 X値に対応して、レング
スバッファ112へのレングス値の書き込みを制御す
る。
標、NewY信号、「プリミティブ終了」信号およびピク
セルデータについて実行される機能を特定するためのC
MDフィールドを受信する。たとえば、CMDフィール
ドは復号されてアンチエリアジングモードにおける操作
を示すモード状態ビットおよび進行方向を示す方向値を
提供することができる。制御ユニットは、書き込み制御
ユニット104aおよび読み込み制御ユニット104b
の2つの機能ユニットを含む。書き込み制御ロジック
は、受けとったEdge1 YおよびEdge1 X座標データの、バ
ッファ108および110への書き込みをそれぞれ制御
する。さらに以下に詳細に述べるように、書き込み制御
ロジックはEdge1 YおよびEdge1 X値に対応して、レング
スバッファ112へのレングス値の書き込みを制御す
る。
【0066】Edge1 XおよびEdge23 X要素は、データパ
ス106に送られる。データパスは、Edge1 XおよびEdg
e23 X座標を処理して収集されたレングス値を提供す
る。書き込み制御ロジックは、データパス106から収
集されたレングス値の引き続き起こるバッファ112へ
の書き込みを制御する。また書き込み制御ロジック10
4aは、VALID<3:0>信号および「新グループ(New Grou
p)」信号を、読み込み制御ロジック104bに提供す
る。「新グループ」信号は、New Y信号または「プリミ
ティブ終了」信号がエッジステッパー52によりアサー
トされる時に、アサートされる。VALID信号の各ビット
は4つのサブ走査線の1つに対応し、サブ走査線がプリ
ミティブにより接触されたかどうかを示す。本発明の1
つの実施形態では、VALID信号がyサブグリッドアドレ
スビット<18:16>から符号化される。
ス106に送られる。データパスは、Edge1 XおよびEdg
e23 X座標を処理して収集されたレングス値を提供す
る。書き込み制御ロジックは、データパス106から収
集されたレングス値の引き続き起こるバッファ112へ
の書き込みを制御する。また書き込み制御ロジック10
4aは、VALID<3:0>信号および「新グループ(New Grou
p)」信号を、読み込み制御ロジック104bに提供す
る。「新グループ」信号は、New Y信号または「プリミ
ティブ終了」信号がエッジステッパー52によりアサー
トされる時に、アサートされる。VALID信号の各ビット
は4つのサブ走査線の1つに対応し、サブ走査線がプリ
ミティブにより接触されたかどうかを示す。本発明の1
つの実施形態では、VALID信号がyサブグリッドアドレ
スビット<18:16>から符号化される。
【0067】読み込み制御ロジック104bは状態機械
(state machine)を含み、コマンド、座標、レングス(長
さ、length)およびマスクデータのスパンステッパー
(SS)への転送を制御する。特に読み込み制御ロジッ
クは、SS CMD<3:0>(制御ユニット104から)、SS Y<
31:15>(バッファ108から)、SS E1X<31:16>(バッ
ファ110から)、SS Length信号(バッファ112か
ら)およびバッファ114からの「色 Z/out信号」の、
スパンステッパー56への転送を制御する。このように
書き込み制御ロジック104aは、バッファ108、1
10、112および114のサブ走査線情報の累積を制
御し、読み込み制御ロジック104bはバッファ10
8、110、112および114からのスパンステッパ
ーロジック56(図6)へのデータ転送を制御する。さ
らに読み込み制御ロジック104bは、マスク<3:0>を
提供し、これはスパンステッパーに送られてピクセルに
より覆われるサブサンプルを特定する。mux選択信号
は、読み込み制御ユニット104bからデータパス10
6に送られ、以下に詳細に説明するように、SS Length
信号のスパンステッパーへの転送を制御する。
(state machine)を含み、コマンド、座標、レングス(長
さ、length)およびマスクデータのスパンステッパー
(SS)への転送を制御する。特に読み込み制御ロジッ
クは、SS CMD<3:0>(制御ユニット104から)、SS Y<
31:15>(バッファ108から)、SS E1X<31:16>(バッ
ファ110から)、SS Length信号(バッファ112か
ら)およびバッファ114からの「色 Z/out信号」の、
スパンステッパー56への転送を制御する。このように
書き込み制御ロジック104aは、バッファ108、1
10、112および114のサブ走査線情報の累積を制
御し、読み込み制御ロジック104bはバッファ10
8、110、112および114からのスパンステッパ
ーロジック56(図6)へのデータ転送を制御する。さ
らに読み込み制御ロジック104bは、マスク<3:0>を
提供し、これはスパンステッパーに送られてピクセルに
より覆われるサブサンプルを特定する。mux選択信号
は、読み込み制御ユニット104bからデータパス10
6に送られ、以下に詳細に説明するように、SS Length
信号のスパンステッパーへの転送を制御する。
【0068】同様にデータパス106は、コレクション
ユニット128および転送ユニット130を含む。コレ
クションユニット128は、Edge1 XおよびEdge23 X座
標データを、エッジステッパー52から受けとる。Edge
1 XおよびEdge23 Xは、処理されているYのサブ走査線
座標についてのエッジ1およびエッジ2/3の座標に対
応する。この座標情報を使用して、コレクションユニッ
ト128は、サブ走査線のレングスを各サブ走査線につ
いて求めることができる。サブ走査線のレングスは、収
集された(collected)レングス信号としてコレクション
ユニット128から提供され、レングスバッファ112
に保管される。
ユニット128および転送ユニット130を含む。コレ
クションユニット128は、Edge1 XおよびEdge23 X座
標データを、エッジステッパー52から受けとる。Edge
1 XおよびEdge23 Xは、処理されているYのサブ走査線
座標についてのエッジ1およびエッジ2/3の座標に対
応する。この座標情報を使用して、コレクションユニッ
ト128は、サブ走査線のレングスを各サブ走査線につ
いて求めることができる。サブ走査線のレングスは、収
集された(collected)レングス信号としてコレクション
ユニット128から提供され、レングスバッファ112
に保管される。
【0069】各サブ走査線のレングスを求めるのに加
え、さらにコレクションロジックは、処理されているサ
ブ走査線の「ブラステド領域(blasted region)」の開始
と終わりを求める。ブラステド領域は、プリミティブに
より覆われるサンプルのすべてを有するサブ走査線内の
ピクセルを識別する。プリミティブ150により覆われ
るサブサンプルのすべてを有するピクセルは、ピクセル
153および154を含み、これらをプリミティブの
「ブラステド(blasted)」領域と呼ぶ。
え、さらにコレクションロジックは、処理されているサ
ブ走査線の「ブラステド領域(blasted region)」の開始
と終わりを求める。ブラステド領域は、プリミティブに
より覆われるサンプルのすべてを有するサブ走査線内の
ピクセルを識別する。プリミティブ150により覆われ
るサブサンプルのすべてを有するピクセルは、ピクセル
153および154を含み、これらをプリミティブの
「ブラステド(blasted)」領域と呼ぶ。
【0070】ブラステド開始値は、ブラステド領域が始
まるピクセルのx、y座標に対応する。ブラステド・レ
ングス値は、ブラステド領域でサブ走査線に沿って進行
するピクセル数に対応する。コレクションユニットによ
る各サブ走査線の測定の間、プリミティブのエッジがサ
ブ走査線と交差するx座標が測定され、4つのサブ走査
線のセットについてそのx座標が進行方向において最も
遠いx座標であるかどうかを判断する。例として図12
のプリミティブ150を使用し、走査線2から開始する
4つのサブ走査線を使用すると、エッジがサブ走査線
0、1、2および3と交差するエッジ1のピクセルx座
標は、それぞれ5、4、5、5であり、サブ走査線1の
上の4のピクセルX座標は、図8における調整ロジック
により調整される。
まるピクセルのx、y座標に対応する。ブラステド・レ
ングス値は、ブラステド領域でサブ走査線に沿って進行
するピクセル数に対応する。コレクションユニットによ
る各サブ走査線の測定の間、プリミティブのエッジがサ
ブ走査線と交差するx座標が測定され、4つのサブ走査
線のセットについてそのx座標が進行方向において最も
遠いx座標であるかどうかを判断する。例として図12
のプリミティブ150を使用し、走査線2から開始する
4つのサブ走査線を使用すると、エッジがサブ走査線
0、1、2および3と交差するエッジ1のピクセルx座
標は、それぞれ5、4、5、5であり、サブ走査線1の
上の4のピクセルX座標は、図8における調整ロジック
により調整される。
【0071】エッジ1についてブラステド開始値を生成
する時、各有効なサブ走査線座標が書き込み制御ロジッ
ク104aから受けとられるので、その有効なサブ走査
線座標が、前に保管されたピクセルについてのサブ走査
線x座標と比較され、前のサブ走査線x座標より進行方
向において遠いかどうかを判断する。よって、ピクセル
(5,2)についてブラステド開始値を求める時、サブ走査
線0についてのピクセルx座標は5であり、サブ走査線
1についてのピクセルx座標は4.7であり、サブ走査
線2についてのピクセルx座標は5.5であり、サブ走
査線3についてのピクセルx座標は5.7である。よっ
て、4.7のピクセルx座標の端数が切り捨てられ、ブ
ラステド開始値として選択される。同様の操作がエッジ
2/3の座標を使用して続き、ブラステド終了値を求め
る。
する時、各有効なサブ走査線座標が書き込み制御ロジッ
ク104aから受けとられるので、その有効なサブ走査
線座標が、前に保管されたピクセルについてのサブ走査
線x座標と比較され、前のサブ走査線x座標より進行方
向において遠いかどうかを判断する。よって、ピクセル
(5,2)についてブラステド開始値を求める時、サブ走査
線0についてのピクセルx座標は5であり、サブ走査線
1についてのピクセルx座標は4.7であり、サブ走査
線2についてのピクセルx座標は5.5であり、サブ走
査線3についてのピクセルx座標は5.7である。よっ
て、4.7のピクセルx座標の端数が切り捨てられ、ブ
ラステド開始値として選択される。同様の操作がエッジ
2/3の座標を使用して続き、ブラステド終了値を求め
る。
【0072】同じx、y座標をメモリコントローラに4
回、異なるマスクビットセットで転送することは、アン
チエリアジングシステムのパフォーマンスに影響する。
ビットセットのすべてを有するマスクを提供することに
よりブラステド領域内にあるピクセルを特定すること
が、1回のみのメモリ転送がピクセルあたり行われるの
で、スパンステッパーおよびメモリコントローラの間の
転送数を減少させる。
回、異なるマスクビットセットで転送することは、アン
チエリアジングシステムのパフォーマンスに影響する。
ビットセットのすべてを有するマスクを提供することに
よりブラステド領域内にあるピクセルを特定すること
が、1回のみのメモリ転送がピクセルあたり行われるの
で、スパンステッパーおよびメモリコントローラの間の
転送数を減少させる。
【0073】図13を参照すると、収集されたレングス
値、ブラステド開始値およびブラステドレングス値を提
供するためのコレクションユニット128の操作を示す
流れ図が示される。収集されたレングス値は、各サブ走
査線について生成される。ブラステド開始およびブラス
テドレングス値は、サブ走査線のすべてが求められた後
で決定される。
値、ブラステド開始値およびブラステドレングス値を提
供するためのコレクションユニット128の操作を示す
流れ図が示される。収集されたレングス値は、各サブ走
査線について生成される。ブラステド開始およびブラス
テドレングス値は、サブ走査線のすべてが求められた後
で決定される。
【0074】たとえば、ステップ200では方向信号が
判断される。進行方向が右から左の場合には、ステップ
201aで始まる処理経路が選択される。処理方向が左
から右の場合には、201bで始まる処理経路が選択さ
れる。処理経路は著しく似ており、各経路で行われる比
較の種類に違いがある。よって、ステップ201aで始
まる処理経路のみについて説明する。ステップ201a
では、ブラステド開始値およびブラステド終了値が初期
化される。進行方向に依存して、ブラステド開始値はサ
ブ走査線のEdge1 X座標またはEdge23 X座標のどちらか
に設定され、ブラステド終了値はブラステド開始値の反
対として初期化される。ブラステド開始値がこの方法で
初期化されると、以下に明確に説明するように、初期化
されたブラステド開始値より大きい(または小さい)次
の座標を識別する(進行方向に依存する)。
判断される。進行方向が右から左の場合には、ステップ
201aで始まる処理経路が選択される。処理方向が左
から右の場合には、201bで始まる処理経路が選択さ
れる。処理経路は著しく似ており、各経路で行われる比
較の種類に違いがある。よって、ステップ201aで始
まる処理経路のみについて説明する。ステップ201a
では、ブラステド開始値およびブラステド終了値が初期
化される。進行方向に依存して、ブラステド開始値はサ
ブ走査線のEdge1 X座標またはEdge23 X座標のどちらか
に設定され、ブラステド終了値はブラステド開始値の反
対として初期化される。ブラステド開始値がこの方法で
初期化されると、以下に明確に説明するように、初期化
されたブラステド開始値より大きい(または小さい)次
の座標を識別する(進行方向に依存する)。
【0075】ステップ202aでは、コレクションユニ
ット128により、所与のサブ走査線についてのEdge1
XおよびEdge23 X座標が書き込み制御ロジック104a
から受けとられる。ステップ205では、Edge1 X座標
がブラステド開始値に対して比較される。図13のステ
ップを通る第1の経路では、比較はブラステド開始値に
対して行われ、次の経路においては、比較は処理中に更
新されたブラステド開始値に対して行われる。Edge1 X
座標がブラステド開始値より小さい場合には、進行方向
が右から左であり、Edge1 X値がステップ209でブラ
ステド開始値として保存される。ステップ203におい
て比較が行われ、Edge23 X座標が、右から左への進行方
向についてブラステド終了値より大きいかどうかの判断
がなされ、大きい場合にはステップ207においてEdge
23 X値がブラステド終了値として保管される。ステップ
211では、サブ走査線の全長がEdge23 X座標をEdge1
X座標から引き算することにより定められる。ステップ
213では、レングス値(ステップ211で計算され
た)が、収集されたレングスに割り当てられる。これ
は、コレクションユニット128から送られ、レングス
バッファ112に保管される。
ット128により、所与のサブ走査線についてのEdge1
XおよびEdge23 X座標が書き込み制御ロジック104a
から受けとられる。ステップ205では、Edge1 X座標
がブラステド開始値に対して比較される。図13のステ
ップを通る第1の経路では、比較はブラステド開始値に
対して行われ、次の経路においては、比較は処理中に更
新されたブラステド開始値に対して行われる。Edge1 X
座標がブラステド開始値より小さい場合には、進行方向
が右から左であり、Edge1 X値がステップ209でブラ
ステド開始値として保存される。ステップ203におい
て比較が行われ、Edge23 X座標が、右から左への進行方
向についてブラステド終了値より大きいかどうかの判断
がなされ、大きい場合にはステップ207においてEdge
23 X値がブラステド終了値として保管される。ステップ
211では、サブ走査線の全長がEdge23 X座標をEdge1
X座標から引き算することにより定められる。ステップ
213では、レングス値(ステップ211で計算され
た)が、収集されたレングスに割り当てられる。これ
は、コレクションユニット128から送られ、レングス
バッファ112に保管される。
【0076】NewY信号の状態がエッジステッパー52
から提供され、ステップ215でチェックされる。New
Y信号はアサートされ、Y入力座標が次のフル走査線に
進み、こうしてすべてのサブ走査線が所与の走査線につ
いて処理されたことを示し、またはプリミティブの処理
が終わったことを示す。ステップ215でNewY信号が
アサートされない場合には、処理はステップ202aに
おいて再開し、新しいEdge1 XおよびEdge23 X信号をエ
ッジステッパー52から受けとる。ステップ215でNe
wY信号がアサートされる場合には、ブラステドレング
ス値が、ブラステド開始をブラステド終了から引き算す
ることにより計算され、ブラステド開始およびブラステ
ドレングス値が、データパス106の転送ユニット13
0に送られる。
から提供され、ステップ215でチェックされる。New
Y信号はアサートされ、Y入力座標が次のフル走査線に
進み、こうしてすべてのサブ走査線が所与の走査線につ
いて処理されたことを示し、またはプリミティブの処理
が終わったことを示す。ステップ215でNewY信号が
アサートされない場合には、処理はステップ202aに
おいて再開し、新しいEdge1 XおよびEdge23 X信号をエ
ッジステッパー52から受けとる。ステップ215でNe
wY信号がアサートされる場合には、ブラステドレング
ス値が、ブラステド開始をブラステド終了から引き算す
ることにより計算され、ブラステド開始およびブラステ
ドレングス値が、データパス106の転送ユニット13
0に送られる。
【0077】サブ走査線のグループが図13で述べた処
理に従って処理されると、サブ走査線について収集され
たレングス値がバッファ110に累積される。すべての
サブ走査線が処理されると、すなわちNewY信号がアサ
ートされると、読み込み制御ロジック104bが、バッ
ファに保管された各サブ走査線についての保管されたEd
ge1 X,Edge1 Y,レングス、マスクおよびCMD値を、ス
パンステッパー56に送る処理を開始する。バッファ1
08、110に保管された各サブ走査線のEdge1 Xおよ
びEdge1 Y座標の対について、サブ走査線について発生
することができる3つのデータ転送が潜在的に存在す
る。すべてのデータ転送において、同じEdge1 XおよびE
dge1 Y値が転送されるが、マスク、CMDおよびレング
ス値は以下のように異なることができる。同じEdge1 X
座標が各転送についてスパンステッパーに送られるが、
このEdge1 X座標は、サブ走査線あたり第1の転送サイ
クルの間にメモリコントローラ60に転送されさえすれ
ばよいのが以下からわかる。
理に従って処理されると、サブ走査線について収集され
たレングス値がバッファ110に累積される。すべての
サブ走査線が処理されると、すなわちNewY信号がアサ
ートされると、読み込み制御ロジック104bが、バッ
ファに保管された各サブ走査線についての保管されたEd
ge1 X,Edge1 Y,レングス、マスクおよびCMD値を、ス
パンステッパー56に送る処理を開始する。バッファ1
08、110に保管された各サブ走査線のEdge1 Xおよ
びEdge1 Y座標の対について、サブ走査線について発生
することができる3つのデータ転送が潜在的に存在す
る。すべてのデータ転送において、同じEdge1 XおよびE
dge1 Y値が転送されるが、マスク、CMDおよびレング
ス値は以下のように異なることができる。同じEdge1 X
座標が各転送についてスパンステッパーに送られるが、
このEdge1 X座標は、サブ走査線あたり第1の転送サイ
クルの間にメモリコントローラ60に転送されさえすれ
ばよいのが以下からわかる。
【0078】3つのデータ転送は、ブラステド領域前の
サブ走査線上のピクセル、ブラステド領域内のピクセ
ル、およびブラステド領域を超えたピクセルを区別する
のに使用される。ブラステド領域前のピクセル数はレン
グス1として示され、ブラステド領域内のピクセル数は
レングス2またはブラステドレングスとして示され、ブ
ラステド領域を超えたピクセル数はレングス3として示
される。レングス1およびレングス3の値は、各サブ走
査線について異なることができる。たとえば図12を再
び参照すると、ブラステド領域前の場所(5,2)に1ピク
セルが存在するのでサブ走査線0は1のレングス1の値
を有する。ブラステド領域内には2つのピクセルが存在
するので、サブ走査線0は2のレングス2の値を有す
る。ブラステド領域を超えたサブ走査線0上にはピクセ
ルは存在しないので、サブ走査線0についてのレングス
3の値は0である。サブ走査線1についてのレングス
1、レングス2およびレングス3の値は、それぞれ0、
2、1である。サブ走査線2についてのレングス1、レ
ングス2およびレングス3の値は、それぞれ1、2、2
である。サブ走査線3についてのそれぞれの値は、1、
2、3である。レングス1、レングス2およびレングス
3の値は転送ユニット130(図11)により求めら
れ、SSレングスをスパンステッパー56へ転送するサ
ブ走査線の3つのデータ転送サイクルのそれぞれについ
て適切なレングス値を提供するのに使用される。
サブ走査線上のピクセル、ブラステド領域内のピクセ
ル、およびブラステド領域を超えたピクセルを区別する
のに使用される。ブラステド領域前のピクセル数はレン
グス1として示され、ブラステド領域内のピクセル数は
レングス2またはブラステドレングスとして示され、ブ
ラステド領域を超えたピクセル数はレングス3として示
される。レングス1およびレングス3の値は、各サブ走
査線について異なることができる。たとえば図12を再
び参照すると、ブラステド領域前の場所(5,2)に1ピク
セルが存在するのでサブ走査線0は1のレングス1の値
を有する。ブラステド領域内には2つのピクセルが存在
するので、サブ走査線0は2のレングス2の値を有す
る。ブラステド領域を超えたサブ走査線0上にはピクセ
ルは存在しないので、サブ走査線0についてのレングス
3の値は0である。サブ走査線1についてのレングス
1、レングス2およびレングス3の値は、それぞれ0、
2、1である。サブ走査線2についてのレングス1、レ
ングス2およびレングス3の値は、それぞれ1、2、2
である。サブ走査線3についてのそれぞれの値は、1、
2、3である。レングス1、レングス2およびレングス
3の値は転送ユニット130(図11)により求めら
れ、SSレングスをスパンステッパー56へ転送するサ
ブ走査線の3つのデータ転送サイクルのそれぞれについ
て適切なレングス値を提供するのに使用される。
【0079】図14を参照すると、転送ユニット130
のブロック図が示され、SS E1X値、ブラステド開始値お
よび方向信号に応答して、レングス1の値を求めるため
の第1の減算器220を含む。SS E1Xおよびレングス値
は、制御ユニット104の読み込み制御ロジック104
bからの読み込み制御信号により制御されるように、そ
れぞれのサブ走査線についてそれぞれバッファ110お
よび112から受けとる。第2の減算器222は、ブラ
ステドレングスおよびレングス1の値の合計を、バッフ
ァ112から受けとったレングス値(図13のステップ
211/212で計算されるようにサブ走査線の合計レ
ングスを示す)から引き算することによりレングス3を
計算する。レングス1およびレングス3の値は、テスト
ロジック224および226に転送されて値をテスト
し、0より小さいかまたは等しいかどうかを判断する。
もし0より小さいか等しい場合には、信号len_1_leq_0
およびlen3_leq_0がそれぞれアサートされて読み込み制
御ロジック104bに転送され、図16に関して述べる
ように、スパンステッパーにピクセルデータの転送を制
御するために使用される。バッファ112からのレング
ス値はテストロジック225に与えられてlength_leq_0
信号を生成し、0より小さいかまたは等しいかを示すた
め読み込み制御ロジック104bに送られる。またブラ
ステドレングス値はテスター227に送られ、blasted_
leq_0信号を生成し、読み込み制御ロジック104bに
送られ、以下に説明するようにスパンステッパーへのピ
クセルデータの転送を制御するために使用される。
のブロック図が示され、SS E1X値、ブラステド開始値お
よび方向信号に応答して、レングス1の値を求めるため
の第1の減算器220を含む。SS E1Xおよびレングス値
は、制御ユニット104の読み込み制御ロジック104
bからの読み込み制御信号により制御されるように、そ
れぞれのサブ走査線についてそれぞれバッファ110お
よび112から受けとる。第2の減算器222は、ブラ
ステドレングスおよびレングス1の値の合計を、バッフ
ァ112から受けとったレングス値(図13のステップ
211/212で計算されるようにサブ走査線の合計レ
ングスを示す)から引き算することによりレングス3を
計算する。レングス1およびレングス3の値は、テスト
ロジック224および226に転送されて値をテスト
し、0より小さいかまたは等しいかどうかを判断する。
もし0より小さいか等しい場合には、信号len_1_leq_0
およびlen3_leq_0がそれぞれアサートされて読み込み制
御ロジック104bに転送され、図16に関して述べる
ように、スパンステッパーにピクセルデータの転送を制
御するために使用される。バッファ112からのレング
ス値はテストロジック225に与えられてlength_leq_0
信号を生成し、0より小さいかまたは等しいかを示すた
め読み込み制御ロジック104bに送られる。またブラ
ステドレングス値はテスター227に送られ、blasted_
leq_0信号を生成し、読み込み制御ロジック104bに
送られ、以下に説明するようにスパンステッパーへのピ
クセルデータの転送を制御するために使用される。
【0080】レングス1、レングス3、レングスおよび
ブラステドレングス値は、マルチプレクサ228に送ら
れる。サブ走査線のどの部分が読み込み制御104bに
よってスパンステッパー56に送られているかに依存し
て、読み込み制御ロジック104bから受けとったmux
選択<2:0>信号に応答して制御ロジック229により、
適切なレングス値がSSレングスとしてスパンステッパ
ーに送られる。
ブラステドレングス値は、マルチプレクサ228に送ら
れる。サブ走査線のどの部分が読み込み制御104bに
よってスパンステッパー56に送られているかに依存し
て、読み込み制御ロジック104bから受けとったmux
選択<2:0>信号に応答して制御ロジック229により、
適切なレングス値がSSレングスとしてスパンステッパ
ーに送られる。
【0081】図15を参照すると、サブ走査線を処理す
るための読み込み制御ロジック104bのアンチエリア
ジングモードで動作する状態機械の操作を例示する流れ
図が示される。状態機械は4つの状態を含み、各状態は
サブ走査線の1つを処理するのに専用される。各状態
は、書き込み制御ロジック104aから受けとった両方
の対応するVALIDビットは、対応するx、y座標のプリ
ミティブによりサブ走査線が接触されたことを示す場
合、およびサブ走査線についてlength_leq_0信号がアサ
ートされない場合にのみ(すなわちサブ走査線の全体の
レングスが0より大きい場合)入力される。よって、ス
テップ230において、VALID<0>がチェックされ、サブ
走査線0が有効かどうか判断する。有効な場合には、ス
テップ232においてサブ走査線0が図16に関して述
べるように処理され、サブ走査線0についてのマスク信
号が0001として定められる。サブ走査線0が有効で
ない場合またはサブ走査線0が処理された後には、処理
はステップ234に進み、サブ走査線1についてVALID<
1>およびレングス値がチェックされ、サブ走査線1が有
効かどうか判断する。有効ならば、ステップ236にお
いてサブ走査線1が0010のマスク値とともに、図1
6で述べるように処理される。処理はステップ238、
240、242および244を介して、ピクセルのサブ
走査線のそれぞれを評価し終えるまで続き、サブ走査線
が有効な場合には、0100および1000のマスクが
サブ走査線2および3についてそれぞれ提供される。
るための読み込み制御ロジック104bのアンチエリア
ジングモードで動作する状態機械の操作を例示する流れ
図が示される。状態機械は4つの状態を含み、各状態は
サブ走査線の1つを処理するのに専用される。各状態
は、書き込み制御ロジック104aから受けとった両方
の対応するVALIDビットは、対応するx、y座標のプリ
ミティブによりサブ走査線が接触されたことを示す場
合、およびサブ走査線についてlength_leq_0信号がアサ
ートされない場合にのみ(すなわちサブ走査線の全体の
レングスが0より大きい場合)入力される。よって、ス
テップ230において、VALID<0>がチェックされ、サブ
走査線0が有効かどうか判断する。有効な場合には、ス
テップ232においてサブ走査線0が図16に関して述
べるように処理され、サブ走査線0についてのマスク信
号が0001として定められる。サブ走査線0が有効で
ない場合またはサブ走査線0が処理された後には、処理
はステップ234に進み、サブ走査線1についてVALID<
1>およびレングス値がチェックされ、サブ走査線1が有
効かどうか判断する。有効ならば、ステップ236にお
いてサブ走査線1が0010のマスク値とともに、図1
6で述べるように処理される。処理はステップ238、
240、242および244を介して、ピクセルのサブ
走査線のそれぞれを評価し終えるまで続き、サブ走査線
が有効な場合には、0100および1000のマスクが
サブ走査線2および3についてそれぞれ提供される。
【0082】図16を参照すると、読み込み制御104
bにおける図15の処理により各サブ走査線の処理が、
「新グループ」信号が書き込み制御ロジック104aに
よりアサートされる時に始まることを例示する流れ図が
示され、こうしてサブ走査線の新しいグループが処理さ
れる用意があることを示す。ステップ249においてbl
asted_leq_0信号の状態がチェックされ、サブ走査線の
セットについてブラステド領域があるかどうかを判断す
る。ブラステドレングスが0より小さいまたは等しい場
合には(すなわちブラステド領域が存在しない場合)、
処理はステップ254に進み、読み込み制御ロジックが
バッファ110からのSS E1X値、バッファ108からの
SS Y値、転送ユニット130からのSSレングス値(適切
なmux選択信号をアサートすることにより)、読み込み
制御104bの制御ロジックの処理状態(232、23
6、240または244)に対応するマスク、バッファ
114からの色/zデータおよびSS CMD信号をスパンス
テッパーに転送する。
bにおける図15の処理により各サブ走査線の処理が、
「新グループ」信号が書き込み制御ロジック104aに
よりアサートされる時に始まることを例示する流れ図が
示され、こうしてサブ走査線の新しいグループが処理さ
れる用意があることを示す。ステップ249においてbl
asted_leq_0信号の状態がチェックされ、サブ走査線の
セットについてブラステド領域があるかどうかを判断す
る。ブラステドレングスが0より小さいまたは等しい場
合には(すなわちブラステド領域が存在しない場合)、
処理はステップ254に進み、読み込み制御ロジックが
バッファ110からのSS E1X値、バッファ108からの
SS Y値、転送ユニット130からのSSレングス値(適切
なmux選択信号をアサートすることにより)、読み込み
制御104bの制御ロジックの処理状態(232、23
6、240または244)に対応するマスク、バッファ
114からの色/zデータおよびSS CMD信号をスパンス
テッパーに転送する。
【0083】しかしブラステド領域がある場合には、処
理は250に続き、データパス106から受けとったle
n1_leq_0信号をチェックする。len1_leq_0信号がレング
ス1が0に等しいことを示す場合には、レングス1につ
いて行われる必要な処理は存在しないので、処理はステ
ップ255に進む。しかしレングス1が0に等しくない
場合には、読み込み制御がバッファ110からのSS E1X
値、バッファ108からのSS Y値、転送ユニット130
からのSSレングス値(適切なmux選択信号をアサートす
ることにより)、読み込み制御104bの制御ロジック
の処理状態(232、236、240または244)に
対応するマスク、バッファ114からの色/zデータお
よびSS CMD信号をスパンステッパーに転送する。
理は250に続き、データパス106から受けとったle
n1_leq_0信号をチェックする。len1_leq_0信号がレング
ス1が0に等しいことを示す場合には、レングス1につ
いて行われる必要な処理は存在しないので、処理はステ
ップ255に進む。しかしレングス1が0に等しくない
場合には、読み込み制御がバッファ110からのSS E1X
値、バッファ108からのSS Y値、転送ユニット130
からのSSレングス値(適切なmux選択信号をアサートす
ることにより)、読み込み制御104bの制御ロジック
の処理状態(232、236、240または244)に
対応するマスク、バッファ114からの色/zデータお
よびSS CMD信号をスパンステッパーに転送する。
【0084】1つの実施形態においては、SS CMD信号
は、以下の表1に示される符号化を有する。
は、以下の表1に示される符号化を有する。
【0085】
【表1】
【0086】SS CMDは、メモリコントローラ60に転送
するためにスパンステッパーが適切なX座標アドレスを
選択するのを可能にする。以下に詳細に説明するよう
に、コレクションロジックによって提供されるSS E1X,
色Zおよびテクスチャ値より、むしろ前に累積されたE1
X、色、Zおよびテクスチャ値を直接使用することによ
り、SS CMD信号は、スパンステッパーが処理される必要
があるサブ走査線の次のピクセルを識別するのを支援す
る。
するためにスパンステッパーが適切なX座標アドレスを
選択するのを可能にする。以下に詳細に説明するよう
に、コレクションロジックによって提供されるSS E1X,
色Zおよびテクスチャ値より、むしろ前に累積されたE1
X、色、Zおよびテクスチャ値を直接使用することによ
り、SS CMD信号は、スパンステッパーが処理される必要
があるサブ走査線の次のピクセルを識別するのを支援す
る。
【0087】図16の流れ図において、図12の走査線
2、サブ走査線0の例を使用すると、レングス1の値が
0に等しくない場合には、ステップ252で読み込み制
御ロジックが、SS E1X、SS Y、SSレングス、マスクおよ
びSS CMDをスパンステッパーに転送することを制御す
る。SS CMD = AA_CMD_0は、送られた座標がブラステド
領域前にあることを示し、SSレングス値はレングス1に
等しくマスクは0001にセットされ、サブ走査線0が
図15の処理において状態0001で処理されているこ
とを示す。
2、サブ走査線0の例を使用すると、レングス1の値が
0に等しくない場合には、ステップ252で読み込み制
御ロジックが、SS E1X、SS Y、SSレングス、マスクおよ
びSS CMDをスパンステッパーに転送することを制御す
る。SS CMD = AA_CMD_0は、送られた座標がブラステド
領域前にあることを示し、SSレングス値はレングス1に
等しくマスクは0001にセットされ、サブ走査線0が
図15の処理において状態0001で処理されているこ
とを示す。
【0088】ステップ255では、マスクが0001に
等しいかどうか判断される。ブラステド領域がサブ走査
線0で処理される場合はマスクが0000に等しいの
で、マスク値を0001に対して比較することにより、
ブラステド領域がすでに処理されたかどうかを識別す
る。本発明の1つの実施形態によると、ブラステド領域
はサブ走査線のグループについて1回処理されればよ
く、ピクセルについての処理時間を減少させるのに有利
である。すでに処理された場合には、処理はステップ2
58に進む。ブラステド領域がまだ処理されていない場
合には、ステップ256において、SS E1X、SS Yおよび
SSレングス値(ブラステドレングスに等しい)が、スパ
ンステッパーに送られる。送られるマスク値は1111
にセットされ、こうしてピクセルのすべてのサブサンプ
ルが覆われることを示す。送られるSS CMDはAA_CMD_1で
あり、スパンステッパーがブラステド領域を横切って続
くことを示し、前にインクリメントされたX座標でスタ
ートし(すなわちレングス1の処理後のx座標)、その
点からx座標のインクリメントを続ける。
等しいかどうか判断される。ブラステド領域がサブ走査
線0で処理される場合はマスクが0000に等しいの
で、マスク値を0001に対して比較することにより、
ブラステド領域がすでに処理されたかどうかを識別す
る。本発明の1つの実施形態によると、ブラステド領域
はサブ走査線のグループについて1回処理されればよ
く、ピクセルについての処理時間を減少させるのに有利
である。すでに処理された場合には、処理はステップ2
58に進む。ブラステド領域がまだ処理されていない場
合には、ステップ256において、SS E1X、SS Yおよび
SSレングス値(ブラステドレングスに等しい)が、スパ
ンステッパーに送られる。送られるマスク値は1111
にセットされ、こうしてピクセルのすべてのサブサンプ
ルが覆われることを示す。送られるSS CMDはAA_CMD_1で
あり、スパンステッパーがブラステド領域を横切って続
くことを示し、前にインクリメントされたX座標でスタ
ートし(すなわちレングス1の処理後のx座標)、その
点からx座標のインクリメントを続ける。
【0089】処理はステップ258に進み、転送ユニッ
トからのlen3_leq_0信号がチェックされ、測定される
サブ走査線のレングス3にピクセルがあるかどうか判断
する。レングス3が0に等しくない場合には、ステップ
260でSS E1X、SS YおよびSSレングス値(レングス3
に等しい)がスパンステッパーに送られる。送られるマ
スク値は、図15の処理の処理状態に従ってセットさ
れ、図16のルーチンをコールする。送られるSS CMDは
AA_CMD_2であり、スパンステッパーがブラステド領域で
最後のピクセルのx座標においてスタートするx座標の
インクリメントを続ける。
トからのlen3_leq_0信号がチェックされ、測定される
サブ走査線のレングス3にピクセルがあるかどうか判断
する。レングス3が0に等しくない場合には、ステップ
260でSS E1X、SS YおよびSSレングス値(レングス3
に等しい)がスパンステッパーに送られる。送られるマ
スク値は、図15の処理の処理状態に従ってセットさ
れ、図16のルーチンをコールする。送られるSS CMDは
AA_CMD_2であり、スパンステッパーがブラステド領域で
最後のピクセルのx座標においてスタートするx座標の
インクリメントを続ける。
【0090】スパンステッパーに送られる他のコマンド
について、わかりやすくするために図16の流れ図で説
明しなかった。これらのコマンドは、レングス1でスタ
ートした後にブラステド領域をスキップするAA_CMD_3、
ブラステド領域を累積してスタートするAA_CMD_4、ブラ
ステド領域をとばして(スキップして)スタートするAA
_CMD_5を含む。AA_CMD_3はレングス1が処理された時に
送られ、ブラステド領域は先行する走査線についてすで
に処理されており、レングス3は0に等しくない。AA_C
MD_4はレングス1が0に等しい時におくられるが、処理
するブラステド領域は存在する。AA_CMD_5はレングス1
が0に等しい時に送られ、ブラステド領域は前のサブ走
査線によりすでに処理されている。スパンステッパーの
機能を増すのにさらに他のコマンドを含むことができ
る。
について、わかりやすくするために図16の流れ図で説
明しなかった。これらのコマンドは、レングス1でスタ
ートした後にブラステド領域をスキップするAA_CMD_3、
ブラステド領域を累積してスタートするAA_CMD_4、ブラ
ステド領域をとばして(スキップして)スタートするAA
_CMD_5を含む。AA_CMD_3はレングス1が処理された時に
送られ、ブラステド領域は先行する走査線についてすで
に処理されており、レングス3は0に等しくない。AA_C
MD_4はレングス1が0に等しい時におくられるが、処理
するブラステド領域は存在する。AA_CMD_5はレングス1
が0に等しい時に送られ、ブラステド領域は前のサブ走
査線によりすでに処理されている。スパンステッパーの
機能を増すのにさらに他のコマンドを含むことができ
る。
【0091】このように、コレクションロジックからス
パンステッパーへ転送されるデータのそれぞれのサイク
ルは、SS E1X、SS Y、SSレングス、マスクおよびSS CMD
の値を含む。スパンステッパー56はこれらの信号を使
用して、各ピクセルのアドレスがプリミティブにより覆
われるかどうかを判断する。それぞれのこのようなピク
セルのアドレスを判断するため、スパンステッパーはあ
るx座標から他の座標へと、サブ走査線の合計レングス
をサブ走査線に沿って連続的に進行する。スパンステッ
パーがピクセルが覆われると判断した場合には、そのピ
クセルについてのxおよびy座標がメモリコントローラ
60に送られる。送られるピクセルのy座標アドレス
は、そのピクセルについての走査線アドレスである。さ
らに、4ビットのマスクがメモリコントローラ60に送
られ、マスク値はコレクションロジックから送られるマ
スク信号に対応する。よって、4つのサブ走査線を有す
るピクセルについて、スパンステッパー56は同じx、
y座標をメモリコントローラに4回潜在的に送り、マス
クにおいて異なるビットが各x、y座標の転送について
セットされる。
パンステッパーへ転送されるデータのそれぞれのサイク
ルは、SS E1X、SS Y、SSレングス、マスクおよびSS CMD
の値を含む。スパンステッパー56はこれらの信号を使
用して、各ピクセルのアドレスがプリミティブにより覆
われるかどうかを判断する。それぞれのこのようなピク
セルのアドレスを判断するため、スパンステッパーはあ
るx座標から他の座標へと、サブ走査線の合計レングス
をサブ走査線に沿って連続的に進行する。スパンステッ
パーがピクセルが覆われると判断した場合には、そのピ
クセルについてのxおよびy座標がメモリコントローラ
60に送られる。送られるピクセルのy座標アドレス
は、そのピクセルについての走査線アドレスである。さ
らに、4ビットのマスクがメモリコントローラ60に送
られ、マスク値はコレクションロジックから送られるマ
スク信号に対応する。よって、4つのサブ走査線を有す
るピクセルについて、スパンステッパー56は同じx、
y座標をメモリコントローラに4回潜在的に送り、マス
クにおいて異なるビットが各x、y座標の転送について
セットされる。
【0092】上に述べたように、異なるマスクビットセ
ットと共に同じx、y座標を4回転送するのは、アンチ
エリアジングシステムのパフォーマンスに影響する。1
回のみのメモリ転送がピクセル単位に行われるので、ビ
ットセットのすべてを有するマスクを提供してブラステ
ド領域内にあるこれらのピクセルを特定することによ
り、スパンステッパーおよびメモリコントローラの間の
転送数が減少する。
ットと共に同じx、y座標を4回転送するのは、アンチ
エリアジングシステムのパフォーマンスに影響する。1
回のみのメモリ転送がピクセル単位に行われるので、ビ
ットセットのすべてを有するマスクを提供してブラステ
ド領域内にあるこれらのピクセルを特定することによ
り、スパンステッパーおよびメモリコントローラの間の
転送数が減少する。
【0093】マスクのすべての4ビットがブラステド領
域ではセットされるので、上の'350特許出願で述べられ
たように実現されるメモリコントローラ60を使用する
本発明の実施形態で使用されると、ブラステド領域の識
別はパフォーマンスの改善を与える。特許出願で述べら
れるように、メモリコントローラ60は、マスクに1ビ
ットセットのみを有するピクセルまたはマスクにビット
セットのすべてを有するピクセルを処理することができ
る。ピクセルが、マスクビットセットの2または3を有
するマスクを持つ場合には、ピクセル座標はスパンステ
ッパーロジックからメモリコントローラへ、2回または
3回転送される(セットされる各マスクビットセットに
ついて1回)。しかし、すべての4ビットがセットされ
る場合には、ピクセルはメモリコントローラへ1回転送
される必要性のみが存在する。ブラステド領域を特定す
る動作についての詳細は、以下に示す。
域ではセットされるので、上の'350特許出願で述べられ
たように実現されるメモリコントローラ60を使用する
本発明の実施形態で使用されると、ブラステド領域の識
別はパフォーマンスの改善を与える。特許出願で述べら
れるように、メモリコントローラ60は、マスクに1ビ
ットセットのみを有するピクセルまたはマスクにビット
セットのすべてを有するピクセルを処理することができ
る。ピクセルが、マスクビットセットの2または3を有
するマスクを持つ場合には、ピクセル座標はスパンステ
ッパーロジックからメモリコントローラへ、2回または
3回転送される(セットされる各マスクビットセットに
ついて1回)。しかし、すべての4ビットがセットされ
る場合には、ピクセルはメモリコントローラへ1回転送
される必要性のみが存在する。ブラステド領域を特定す
る動作についての詳細は、以下に示す。
【0094】図17を参照すると、スパンステッパーロ
ジック56のブロック図が示される。スパンステッパー
は所与の方向へ(エッジ1からエッジ2へ)、方向信号
で示されるようにx座標軸に沿って進行する。方向信号
は、マルチプレクサ261を制御するのに使用され、イ
ンクリメンタル/デクリメンタル値の信号について+1
または−1を提供する。SS CMD信号は、制御ユニット1
04(図11)から状態機械263に送られ、SS CMDを
以下の信号に復号する。すなわち、SS Y座標のレジスタ
266へのロードを制御するための「新しいデータをロ
ード(Load NewData)」、マスクのレジスタ264へのロ
ードを制御するための「新しいマスクをロード(Load Ne
w Mask)」、ブラステドカウントロジック270のイン
クリメントを制御するための信号「累積ブラステド(Acc
umulate Blasted)」、マルチプレクサ265でx座標の
選択を制御するのに使用される選択<1:0>信号が、状態
機械263により生成される。。
ジック56のブロック図が示される。スパンステッパー
は所与の方向へ(エッジ1からエッジ2へ)、方向信号
で示されるようにx座標軸に沿って進行する。方向信号
は、マルチプレクサ261を制御するのに使用され、イ
ンクリメンタル/デクリメンタル値の信号について+1
または−1を提供する。SS CMD信号は、制御ユニット1
04(図11)から状態機械263に送られ、SS CMDを
以下の信号に復号する。すなわち、SS Y座標のレジスタ
266へのロードを制御するための「新しいデータをロ
ード(Load NewData)」、マスクのレジスタ264へのロ
ードを制御するための「新しいマスクをロード(Load Ne
w Mask)」、ブラステドカウントロジック270のイン
クリメントを制御するための信号「累積ブラステド(Acc
umulate Blasted)」、マルチプレクサ265でx座標の
選択を制御するのに使用される選択<1:0>信号が、状態
機械263により生成される。。
【0095】スパンステッパーは、通常以下のように操
作する。SS E1X、SS YおよびSS CMD信号がスパンステッ
パーで受けとられる時、制御信号「新しいデータをロー
ド」、「新しいマスクをロード」、「累積ブラステ
ド」、選択<1:0>についての値が、状態機械263によ
り生成される。選択<1:0>信号は、マルチプレクサ26
5への4つのx座標入力の1つを選択し、マルチプレク
サは選択された入力をレジスタ262へ送り、メモリコ
ントローラ60へのピクセルX座標として提供される。
作する。SS E1X、SS YおよびSS CMD信号がスパンステッ
パーで受けとられる時、制御信号「新しいデータをロー
ド」、「新しいマスクをロード」、「累積ブラステ
ド」、選択<1:0>についての値が、状態機械263によ
り生成される。選択<1:0>信号は、マルチプレクサ26
5への4つのx座標入力の1つを選択し、マルチプレク
サは選択された入力をレジスタ262へ送り、メモリコ
ントローラ60へのピクセルX座標として提供される。
【0096】マルチプレクサ265への4つの入力は、
コレクションロジック54から受けとったSS E1X座標、
「ブラステド後のスタート(After Blasted Start) X座
標」、「継続(Continue) X座標」および「レングス3の
X座標」から受ける。表1を再び参照すると、SS CMDの
状態は,スパンステッパーがスパン進行のためスタート
する座標として使用するx座標を示す。たとえば、SS C
MDがAA_CMD_0と復号する場合には、スパン進行はレング
ス1のスタートで始まることを示し、SS E1X座標がマル
チプレクサ265により選択される。SS CMDがAA_CMD_1
と復号する場合には、スパン進行はブラステド領域を横
切ってレングス1の終わりからカウントすることを継続
するのを示し、「継続 X座標」がマルチプレクサ265
により選択される。また「継続 X座標」は、SS CMDがAA
_CMD_2と復号する場合にも選択され、カウントするのが
ブラステド領域の終わりからレングス3に向けて継続す
ることを示す。SS CMDがAA_CMD_3と復号する場合には、
レングス1の後でスパンステッパーが進行を開始するが
ブラステド領域はとばし、「ブラステド後のスタートX
座標」がマルチプレクサ265により選択される。SS C
MDがAA_CMD_5と復号する場合は、ブラステド領域は前に
処理されたのでブラステド領域の後にスパンステッパー
が進行を開始し、「レングス3のX座標」がマルチプレ
クサ265により選択される。
コレクションロジック54から受けとったSS E1X座標、
「ブラステド後のスタート(After Blasted Start) X座
標」、「継続(Continue) X座標」および「レングス3の
X座標」から受ける。表1を再び参照すると、SS CMDの
状態は,スパンステッパーがスパン進行のためスタート
する座標として使用するx座標を示す。たとえば、SS C
MDがAA_CMD_0と復号する場合には、スパン進行はレング
ス1のスタートで始まることを示し、SS E1X座標がマル
チプレクサ265により選択される。SS CMDがAA_CMD_1
と復号する場合には、スパン進行はブラステド領域を横
切ってレングス1の終わりからカウントすることを継続
するのを示し、「継続 X座標」がマルチプレクサ265
により選択される。また「継続 X座標」は、SS CMDがAA
_CMD_2と復号する場合にも選択され、カウントするのが
ブラステド領域の終わりからレングス3に向けて継続す
ることを示す。SS CMDがAA_CMD_3と復号する場合には、
レングス1の後でスパンステッパーが進行を開始するが
ブラステド領域はとばし、「ブラステド後のスタートX
座標」がマルチプレクサ265により選択される。SS C
MDがAA_CMD_5と復号する場合は、ブラステド領域は前に
処理されたのでブラステド領域の後にスパンステッパー
が進行を開始し、「レングス3のX座標」がマルチプレ
クサ265により選択される。
【0097】「ブラステド後のスタートX」および「レ
ングス3のX座標」がアドレス267および269によ
りそれぞれ提供される。アドレス267および269へ
の他の入力は、デルタX入力(Delta X input)である。
デルタX入力は、ブラステドカウンタ270により提供
され、ブラステド領域を横切るx座標の変化を示す。デ
ルタX値はマルチプレクサ260により初期化され、マ
ルチプレクサ261から受けとったインクリメント/デ
クリメント値を、初期化の目的のためレジスタ271へ
転送する。「累積ブラステド」信号がアサートされると
(すなわちSS CMDがAA_CMD_1またはAA_CMD_4に等しいと
き)、マルチプレクサ260は切り替わり、レジスタ2
71へ転送するため加算器259から出力を選択する。
加算器259は各サイクルについてデルタX値をインク
リメント(デクリメント)し、ブラステド領域の処理の
間のピクセルX座標が提供される。「累積ブラステド」
信号がデアサートされると、デルタX値はレジスタ27
1に保存され、ブラステド領域を横切って進行が進むに
時のx座標値の変化の大きさを表す。
ングス3のX座標」がアドレス267および269によ
りそれぞれ提供される。アドレス267および269へ
の他の入力は、デルタX入力(Delta X input)である。
デルタX入力は、ブラステドカウンタ270により提供
され、ブラステド領域を横切るx座標の変化を示す。デ
ルタX値はマルチプレクサ260により初期化され、マ
ルチプレクサ261から受けとったインクリメント/デ
クリメント値を、初期化の目的のためレジスタ271へ
転送する。「累積ブラステド」信号がアサートされると
(すなわちSS CMDがAA_CMD_1またはAA_CMD_4に等しいと
き)、マルチプレクサ260は切り替わり、レジスタ2
71へ転送するため加算器259から出力を選択する。
加算器259は各サイクルについてデルタX値をインク
リメント(デクリメント)し、ブラステド領域の処理の
間のピクセルX座標が提供される。「累積ブラステド」
信号がデアサートされると、デルタX値はレジスタ27
1に保存され、ブラステド領域を横切って進行が進むに
時のx座標値の変化の大きさを表す。
【0098】またブラステドカウンタ270と同様の累
積ロジックが、サブ走査線をまたがる色およびテクスチ
ャの全体の変化を追跡および保存するために提供するこ
ともできる。累積ロジックは、+/-1 値を加算器の入力
に与えるよりむしろ、代わりにソフトウェアでエッジ式
の一部として抽出されるデルタカラーおよびデルタテク
スチャに従ってインクリメントし、サブ走査線をまたが
る色またはテクスチャにおける全体の変化を判断する。
スパンステッパー56の操作は、図12の例のプリミテ
ィブ150の走査線2をまたがるスパン進行を基準に述
べる。第1のスパン進行サイクルの間、上に述べたよう
にSS E1X、SS Y座標は(5,2)であり、SSレングス値は1
であり、マスクは0001に等しく、SS CMDはSS E1X座
標にマルチプレクサ265を介しての転送を引き起こし
てレジスタ262にロードされ、ピクセルX座標として
出力される。ピクセルX座標は、加算器267および2
68に転送される。SSレングス値が1で、1つのピクセ
ルX座標が出力だったので、次のサイクルにおいてブラ
ステド領域152に対応するSS E1X、SS Y、マスク、SS
レングス、SS CMDが受けとられる。
積ロジックが、サブ走査線をまたがる色およびテクスチ
ャの全体の変化を追跡および保存するために提供するこ
ともできる。累積ロジックは、+/-1 値を加算器の入力
に与えるよりむしろ、代わりにソフトウェアでエッジ式
の一部として抽出されるデルタカラーおよびデルタテク
スチャに従ってインクリメントし、サブ走査線をまたが
る色またはテクスチャにおける全体の変化を判断する。
スパンステッパー56の操作は、図12の例のプリミテ
ィブ150の走査線2をまたがるスパン進行を基準に述
べる。第1のスパン進行サイクルの間、上に述べたよう
にSS E1X、SS Y座標は(5,2)であり、SSレングス値は1
であり、マスクは0001に等しく、SS CMDはSS E1X座
標にマルチプレクサ265を介しての転送を引き起こし
てレジスタ262にロードされ、ピクセルX座標として
出力される。ピクセルX座標は、加算器267および2
68に転送される。SSレングス値が1で、1つのピクセ
ルX座標が出力だったので、次のサイクルにおいてブラ
ステド領域152に対応するSS E1X、SS Y、マスク、SS
レングス、SS CMDが受けとられる。
【0099】図12のプリミティブの例を使用すると、
サブ走査線0のブラステド領域を処理するため受けとっ
たSS CMDはAA_CMD_1に等しい。AA_CMD_1コマンドは、
「新しいデータをロード」、「新しいマスクをロード」
および「累積ブラステド」信号のアサートを引き起こ
す。上述したように、SS CMDのAA_CMD_1値により、「継
続X座標」が進行のため選択される。「継続 X座標」
は、ピクセルX座標をデクリメントすることにより得ら
れ(進行方向が右から左なので、ピクセルX座標に−1
(マイナス1)を加算することにより)、レジスタ26
2に保管されてピクセルX座標(4,2)として出力され
る。レジスタ264に保管されるマスクは、図16のス
テップ256で述べたように、1111に等しい。「継
続 X座標」は、ブラステド領域の各ピクセルについて選
択されることを続ける。同時に、デルタX値がブラステ
ド領域を横切るx座標の変化の大きさをカウントする。
よって次のサイクルでは、ピクセルX、Y座標(3,2)
が、マスク1111と共に生成される。第2のピクセル
X、Y座標の対および関連するマスクがメモリコントロ
ーラに転送された後、ブラステド領域の進行は完了し、
保管されたデルタX値は2に等しい。
サブ走査線0のブラステド領域を処理するため受けとっ
たSS CMDはAA_CMD_1に等しい。AA_CMD_1コマンドは、
「新しいデータをロード」、「新しいマスクをロード」
および「累積ブラステド」信号のアサートを引き起こ
す。上述したように、SS CMDのAA_CMD_1値により、「継
続X座標」が進行のため選択される。「継続 X座標」
は、ピクセルX座標をデクリメントすることにより得ら
れ(進行方向が右から左なので、ピクセルX座標に−1
(マイナス1)を加算することにより)、レジスタ26
2に保管されてピクセルX座標(4,2)として出力され
る。レジスタ264に保管されるマスクは、図16のス
テップ256で述べたように、1111に等しい。「継
続 X座標」は、ブラステド領域の各ピクセルについて選
択されることを続ける。同時に、デルタX値がブラステ
ド領域を横切るx座標の変化の大きさをカウントする。
よって次のサイクルでは、ピクセルX、Y座標(3,2)
が、マスク1111と共に生成される。第2のピクセル
X、Y座標の対および関連するマスクがメモリコントロ
ーラに転送された後、ブラステド領域の進行は完了し、
保管されたデルタX値は2に等しい。
【0100】図12の例では、ブラステド領域152が
サブ走査線0について処理されたとき、サブ走査線0の
レングス3が0に等しいので、処理はサブ走査線1に続
く。サブ走査線1の処理の第1のサイクルの間、レング
ス1は0に等しく、処理はブラステド領域で始まる。し
かし、ブラステド領域はすでに処理されている。よっ
て、転送される第1の座標はSS E1X、SS Y、マスク、SS
レングス(レングス3の)およびSS CMD = AA_CMD_5で
あり、ブラステド領域をとばして開始することを示す。
選択<1:0>信号は、加算器から「レングス3のX座標」
を選択するようセットされる。よって、サブ走査線1に
ついてメモリコントローラに転送される第1のピクセル
X、Y座標は、(2,2)である。転送されるピクセルのマ
スクは、ステップ236において図15の処理の処理状
態により示され、この例については0010である。
サブ走査線0について処理されたとき、サブ走査線0の
レングス3が0に等しいので、処理はサブ走査線1に続
く。サブ走査線1の処理の第1のサイクルの間、レング
ス1は0に等しく、処理はブラステド領域で始まる。し
かし、ブラステド領域はすでに処理されている。よっ
て、転送される第1の座標はSS E1X、SS Y、マスク、SS
レングス(レングス3の)およびSS CMD = AA_CMD_5で
あり、ブラステド領域をとばして開始することを示す。
選択<1:0>信号は、加算器から「レングス3のX座標」
を選択するようセットされる。よって、サブ走査線1に
ついてメモリコントローラに転送される第1のピクセル
X、Y座標は、(2,2)である。転送されるピクセルのマ
スクは、ステップ236において図15の処理の処理状
態により示され、この例については0010である。
【0101】こうして本発明の1つの実施形態では、マ
スクは1ビットセットのみまたはビットセットのすべて
のどちらかと共に転送される。上で参照した特許出願に
記述されたメモリコントローラの実施形態では、個別の
サブピクセルまたは全体のピクセルのどちらかとしてピ
クセルデータを処理する容量を有しさえすればよいの
で、マスクビットは上述した方法で転送される。よって
ブラステド領域の特定は、スパンステッパーユニット5
6のパフォーマンスを改善し、またフルピクセルの更新
として扱うことができるピクセル座標が特定されて処理
のためメモリに高速に転送されることを可能にすること
により、メモリ全体のパフォーマンスを改善する。
スクは1ビットセットのみまたはビットセットのすべて
のどちらかと共に転送される。上で参照した特許出願に
記述されたメモリコントローラの実施形態では、個別の
サブピクセルまたは全体のピクセルのどちらかとしてピ
クセルデータを処理する容量を有しさえすればよいの
で、マスクビットは上述した方法で転送される。よって
ブラステド領域の特定は、スパンステッパーユニット5
6のパフォーマンスを改善し、またフルピクセルの更新
として扱うことができるピクセル座標が特定されて処理
のためメモリに高速に転送されることを可能にすること
により、メモリ全体のパフォーマンスを改善する。
【0102】しかし、本発明がフルの4ビットマスクま
たは1ビットマスクとしてサブサンプルの情報を転送す
ることに制限されないことに注意すべきである。この効
果は、本発明の1つの実施形態で使用されるメモリコン
トローラの制約にすぎない。1ビットより大きいがすべ
てのビットセットより小さいマスクデータの受けとりを
サポートできる他のメモリコントローラで使用される
と、各ピクセルについてのマスクはスパンステッパーロ
ジックから1つの転送で直接送られる。
たは1ビットマスクとしてサブサンプルの情報を転送す
ることに制限されないことに注意すべきである。この効
果は、本発明の1つの実施形態で使用されるメモリコン
トローラの制約にすぎない。1ビットより大きいがすべ
てのビットセットより小さいマスクデータの受けとりを
サポートできる他のメモリコントローラで使用される
と、各ピクセルについてのマスクはスパンステッパーロ
ジックから1つの転送で直接送られる。
【0103】よって、方法および装置は、現存のハード
ウェアに対するわずかな修正のみでサポートされるアン
チエリアジングを考慮して説明した。走査線を多くのサ
ブ走査線に細分することにより、およびサブ走査線の境
界に沿ってエッジ進行を実行することにより、サブサン
プルの情報が通常のハードウェアを使用する通常のエッ
ジ進行処理の間に、収集することができる。
ウェアに対するわずかな修正のみでサポートされるアン
チエリアジングを考慮して説明した。走査線を多くのサ
ブ走査線に細分することにより、およびサブ走査線の境
界に沿ってエッジ進行を実行することにより、サブサン
プルの情報が通常のハードウェアを使用する通常のエッ
ジ進行処理の間に、収集することができる。
【0104】本発明は例として次の実施態様を含む。 (1)表示画面上に表示されるプリミティブ(74)により
覆われるグラフィックス・システムの表示画面におい
て、少なくとも1つのピクセル(73)の割合を求める方法
であって、(a)前記少なくとも1つのピクセルについて
複数のサブサンプル点を定める複数のサブ走査線に前記
少なくとも1つのピクセルを分け、前記複数のサブサン
プル点のそれぞれが前記複数のサブ走査線の1つに対応
する位置に置かれるステップと、(b)前記少なくとも1
つのピクセルの前記複数のサブ走査線の間で進行するス
テップと、(c)前記複数のサブ走査線のそれぞれ1つに
おいて、前記複数のサブ走査線の1つの対応するサブサ
ンプル点が前記プリミティブにより覆われるかどうかを
判断するステップと、(d)前記プリミティブにより覆わ
れる前記少なくとも1つのピクセルの前記複数のサブサ
ンプル点の数に基づいて、前記プリミティブにより覆わ
れる前記少なくとも1つのピクセルの割合を見積もるス
テップと、を含むプリミティブにより覆われるピクセル
の割合を求める方法。
覆われるグラフィックス・システムの表示画面におい
て、少なくとも1つのピクセル(73)の割合を求める方法
であって、(a)前記少なくとも1つのピクセルについて
複数のサブサンプル点を定める複数のサブ走査線に前記
少なくとも1つのピクセルを分け、前記複数のサブサン
プル点のそれぞれが前記複数のサブ走査線の1つに対応
する位置に置かれるステップと、(b)前記少なくとも1
つのピクセルの前記複数のサブ走査線の間で進行するス
テップと、(c)前記複数のサブ走査線のそれぞれ1つに
おいて、前記複数のサブ走査線の1つの対応するサブサ
ンプル点が前記プリミティブにより覆われるかどうかを
判断するステップと、(d)前記プリミティブにより覆わ
れる前記少なくとも1つのピクセルの前記複数のサブサ
ンプル点の数に基づいて、前記プリミティブにより覆わ
れる前記少なくとも1つのピクセルの割合を見積もるス
テップと、を含むプリミティブにより覆われるピクセル
の割合を求める方法。
【0105】(2)上記(1)において、前記プリミテ
ィブが複数のエッジを含み、ステップ(c)が、前記プリ
ミティブの前記複数のエッジのそれぞれ1つについて、
前記プリミティブの前記複数のエッジの1つが前記複数
のサブ走査線の1つと交差する各交差点のxおよびy座
標を求めるステップと、前記各交差点のxおよびy座標
および前記複数のサブ走査線の1つに位置する前記サブ
サンプル点のxおよびy座標に応答して、前記複数のサ
ブ走査線の1つに位置する前記サブサンプル点が前記プ
リミティブにより覆われるかどうかを判断するステップ
と、を含む上記(1)の方法。
ィブが複数のエッジを含み、ステップ(c)が、前記プリ
ミティブの前記複数のエッジのそれぞれ1つについて、
前記プリミティブの前記複数のエッジの1つが前記複数
のサブ走査線の1つと交差する各交差点のxおよびy座
標を求めるステップと、前記各交差点のxおよびy座標
および前記複数のサブ走査線の1つに位置する前記サブ
サンプル点のxおよびy座標に応答して、前記複数のサ
ブ走査線の1つに位置する前記サブサンプル点が前記プ
リミティブにより覆われるかどうかを判断するステップ
と、を含む上記(1)の方法。
【0106】(3)上記(2)において、各交差点のx
およびy座標を判断するステップが、ソフトウェアにお
いて、前記プリミティブの各エッジについての開始座標
およびスロープを求めるステップと、前記複数のエッジ
の前記1つについて、開始座標で始まる前記複数のエッ
ジのそれぞれ1つに沿って進行するステップと、前記各
エッジのスロープに応答して前記複数のサブ走査線の1
つに対応する各y座標について前記エッジのそれぞれ1
つのx座標を求めるステップと、を含む。
およびy座標を判断するステップが、ソフトウェアにお
いて、前記プリミティブの各エッジについての開始座標
およびスロープを求めるステップと、前記複数のエッジ
の前記1つについて、開始座標で始まる前記複数のエッ
ジのそれぞれ1つに沿って進行するステップと、前記各
エッジのスロープに応答して前記複数のサブ走査線の1
つに対応する各y座標について前記エッジのそれぞれ1
つのx座標を求めるステップと、を含む。
【0107】(4)前記複数のサブ走査線について、前
記プリミティブ(150)により覆われる前記それぞれのサ
ブ走査線のそれぞれのサブサンプルのすべてを有するプ
リミティブにおけるピクセル(153、154)を特定するステ
ップと、1つの転送操作において、前記プリミティブに
より覆われる前記複数のサブサンプル点のすべてを有す
る前記ピクセルを、メモリコントローラに転送するステ
ップとを含む、上記(1)から(3)のいずれか1つの
方法。
記プリミティブ(150)により覆われる前記それぞれのサ
ブ走査線のそれぞれのサブサンプルのすべてを有するプ
リミティブにおけるピクセル(153、154)を特定するステ
ップと、1つの転送操作において、前記プリミティブに
より覆われる前記複数のサブサンプル点のすべてを有す
る前記ピクセルを、メモリコントローラに転送するステ
ップとを含む、上記(1)から(3)のいずれか1つの
方法。
【0108】(5)前記サブサンプルがピクセルにおい
て非定型のパターンを形成するように、前記サブ走査線
の前記サブサンプルの前記座標が選択される上記(1)
から(4)のいずれかに記載の方法。
て非定型のパターンを形成するように、前記サブ走査線
の前記サブサンプルの前記座標が選択される上記(1)
から(4)のいずれかに記載の方法。
【0109】(6)プリミティブをレンダリングするこ
とができるグラフィックス・システムにおいて、プリミ
ティブ(74)を表す表示装置上にピクセルを表示するた
め、座標データを生成するエッジステッパーであって、
レンダリングすべき前記プリミティブの少なくとも1つ
のエッジについて終点座標(V0、V1)の第1および第2の
対とスロープ値(44)を含むエッジ式データ(40、42、44)を
受け取り、レンダリングされている前記プリミティブの
前記少なくとも1つのエッジのエッジx座標およびエッ
ジy座標をそれぞれ提供するため、インクリメント値に
より前記第1の終点座標の1つをインクリメントする一
方がX座標演算および片方がY座標演算を行う1対の加
算器(86、98)であって、演算の1つのモードにおいてイ
ンクリメント値が表示ピクセルのサイズより小さい加算
器を備えるエッジステッパー。
とができるグラフィックス・システムにおいて、プリミ
ティブ(74)を表す表示装置上にピクセルを表示するた
め、座標データを生成するエッジステッパーであって、
レンダリングすべき前記プリミティブの少なくとも1つ
のエッジについて終点座標(V0、V1)の第1および第2の
対とスロープ値(44)を含むエッジ式データ(40、42、44)を
受け取り、レンダリングされている前記プリミティブの
前記少なくとも1つのエッジのエッジx座標およびエッ
ジy座標をそれぞれ提供するため、インクリメント値に
より前記第1の終点座標の1つをインクリメントする一
方がX座標演算および片方がY座標演算を行う1対の加
算器(86、98)であって、演算の1つのモードにおいてイ
ンクリメント値が表示ピクセルのサイズより小さい加算
器を備えるエッジステッパー。
【0110】(7)上記(6)において、インクリメン
ト値が、エリアジング・モードにおいてエッジステッパ
ーが動作する時はインクリメント値の第1のグループか
ら選択され、アンチエリアジング・モードでエッジステ
ッパーが動作する時はインクリメント値の第2のグルー
プから選択される上記(6)に記載のエッジステッパ
ー。
ト値が、エリアジング・モードにおいてエッジステッパ
ーが動作する時はインクリメント値の第1のグループか
ら選択され、アンチエリアジング・モードでエッジステ
ッパーが動作する時はインクリメント値の第2のグルー
プから選択される上記(6)に記載のエッジステッパ
ー。
【0111】(8)上記(7)において、エッジステッ
パーがアンチエリアジング・モードで動作する時は前記
プリミティブの各ピクセル(99)が複数のサブ走査線に分
けられ、インクリメント値の前記第2のグループが、前
記複数のサブ走査線の間を進行するためのインクリメン
トを含む、上記(7)に記載のエッジステッパー。
パーがアンチエリアジング・モードで動作する時は前記
プリミティブの各ピクセル(99)が複数のサブ走査線に分
けられ、インクリメント値の前記第2のグループが、前
記複数のサブ走査線の間を進行するためのインクリメン
トを含む、上記(7)に記載のエッジステッパー。
【0112】(9)上記(6)から(8)のいずれかに
おいて、前記プリミティブにより覆われる各ピクセルの
割合(126)を求めるための手段を備えるエッジステッパ
ー。
おいて、前記プリミティブにより覆われる各ピクセルの
割合(126)を求めるための手段を備えるエッジステッパ
ー。
【0113】(10)上記(9)において、プリミティ
ブにより覆われる各ピクセルの割合(126)を求めるため
の手段は、各エッジについて、前記プリミティブの反対
側のエッジに向かう方向を示すx方向を判断するための
手段(21)と、各サブ走査線についてエッジx座標および
エッジy座標を受けとり、前記サブサンプルが前記プリ
ミティブにより覆われるかどうかを、x方向に応答して
判断するため、前記エッジx座標およびエッジy座標
を、前記サブ走査線上に位置するサブサンプルの座標に
対して比較するよう接続される比較器(89)と、を備える
エッジステッパー。
ブにより覆われる各ピクセルの割合(126)を求めるため
の手段は、各エッジについて、前記プリミティブの反対
側のエッジに向かう方向を示すx方向を判断するための
手段(21)と、各サブ走査線についてエッジx座標および
エッジy座標を受けとり、前記サブサンプルが前記プリ
ミティブにより覆われるかどうかを、x方向に応答して
判断するため、前記エッジx座標およびエッジy座標
を、前記サブ走査線上に位置するサブサンプルの座標に
対して比較するよう接続される比較器(89)と、を備える
エッジステッパー。
【0114】
【発明の効果】インクリメント(デクリメント)・アル
ゴリズムを使用することにより、複雑なハードウェアを
必要とせずにピクセルのエッジの位置を求めてピクセル
の被覆範囲を求めることができる。
ゴリズムを使用することにより、複雑なハードウェアを
必要とせずにピクセルのエッジの位置を求めてピクセル
の被覆範囲を求めることができる。
【図1】プリミティブのエリアジングされたレンダリン
グの例を示す図。
グの例を示す図。
【図2】本発明が使用される例示的なグラフィックスシ
ステムのブロック図。
ステムのブロック図。
【図3】図2のグラフィックスシステムで使用するグラ
フィックス・アクセラレータのブロック図。
フィックス・アクセラレータのブロック図。
【図4】本発明のある実施形態におけるプリミティブの
スケーリングで使用される変換マトリクスの例を示す
図。
スケーリングで使用される変換マトリクスの例を示す
図。
【図5】図2のグラフィックス・アクセラレータにより
生成されるエッジ式の例。
生成されるエッジ式の例。
【図6】図2に示されたようなグラフィックスシステム
のフレームバッファコントローラのある実施形態のブロ
ック図。
のフレームバッファコントローラのある実施形態のブロ
ック図。
【図7】ピクセルグリッド上に描かれたプリミティブの
例を示す図。
例を示す図。
【図8】本発明に従って図6のフレームバッファコント
ローラのエッジステッパーユニットのある実施形態のブ
ロック図。
ローラのエッジステッパーユニットのある実施形態のブ
ロック図。
【図9】マルチポイント・サンプリングの間、サンプル
点を求めるため本発明のある実施形態で使用されるピク
セルのスケーリングの例を示す図。
点を求めるため本発明のある実施形態で使用されるピク
セルのスケーリングの例を示す図。
【図10】エリアジングおよび本発明に従ってアンチエ
リアジング操作の間、xおよびy座標アドレスの例示的
な割り当てを示す図。
リアジング操作の間、xおよびy座標アドレスの例示的
な割り当てを示す図。
【図11】本発明に従ってマルチポイントサンプルを収
集するために使用されるコレクションユニットのある実
施形態のブロック図。
集するために使用されるコレクションユニットのある実
施形態のブロック図。
【図12】図11のコレクションロジックの操作を説明
するためのピクセルグリッド上に描かれたプリミティブ
の例を示す図。
するためのピクセルグリッド上に描かれたプリミティブ
の例を示す図。
【図13】図11のコレクションロジックのデータパス
の転送ユニットの1つの方法を例示する流れ図。
の転送ユニットの1つの方法を例示する流れ図。
【図14】図11のコレクションロジックのデータパス
の転送ユニットの1つの実施形態のブロック図。
の転送ユニットの1つの実施形態のブロック図。
【図15】本発明に従ってスパンステッパーにサブ走査
線を転送するため、図11のコレクションユニットの読
み込み制御ロジックを操作する方法を例示した流れ図。
線を転送するため、図11のコレクションユニットの読
み込み制御ロジックを操作する方法を例示した流れ図。
【図16】図15の読み込み制御ロジックにおけるサブ
走査線を転送する方法を例示する流れ図。
走査線を転送する方法を例示する流れ図。
【図17】本発明に従って図6のフレームバッファコン
トローラで使用されるスパンステッパーのある実施形態
のブロック図。
トローラで使用されるスパンステッパーのある実施形態
のブロック図。
52 エッジステッパー 54 コレクションロジック 56 スパンステッパー 60 メモリコントローラ 73、153、154 ピクセル 74、150 プリミティブ
Claims (1)
- 【請求項1】表示画面上に表示されるプリミティブによ
り覆われるグラフィックス・システムの表示画面におい
て、少なくとも1つのピクセルの割合を求める方法であ
って、 前記少なくとも1つのピクセルについて複数のサブサン
プル点を定める複数のサブ走査線に前記少なくとも1つ
のピクセルを分け、前記複数のサブサンプル点のそれぞ
れを前記複数のサブ走査線の1つに対応する位置に置く
ステップと、 前記少なくとも1つのピクセルの前記複数のサブ走査線
の間で進行するステップと、 前記複数のサブ走査線のそれぞれ1つにおいて、前記複
数のサブ走査線の1つの対応するサブサンプル点が前記
プリミティブにより覆われるかどうかを判断するステッ
プと、 前記プリミティブにより覆われる前記少なくとも1つの
ピクセルの前記複数のサブサンプル点の数に基づいて、
前記プリミティブにより覆われる前記少なくとも1つの
ピクセルの割合を見積もるステップと、 を含むプリミティブにより覆われるピクセルの割合を求
める方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/887,441 US6057855A (en) | 1997-07-02 | 1997-07-02 | Method and apparatus for providing polygon pixel sub-sample information using incremental means |
US887,441 | 1997-07-02 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003055630A Division JP2003271987A (ja) | 1997-07-02 | 2003-03-03 | プリミティブにより覆われるピクセルの割合を求める方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH1186007A true JPH1186007A (ja) | 1999-03-30 |
Family
ID=25391134
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10180764A Pending JPH1186007A (ja) | 1997-07-02 | 1998-06-26 | プリミティブにより覆われるピクセルの割合を求める方法 |
JP2003055630A Pending JP2003271987A (ja) | 1997-07-02 | 2003-03-03 | プリミティブにより覆われるピクセルの割合を求める方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003055630A Pending JP2003271987A (ja) | 1997-07-02 | 2003-03-03 | プリミティブにより覆われるピクセルの割合を求める方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6057855A (ja) |
JP (2) | JPH1186007A (ja) |
DE (1) | DE19827726B4 (ja) |
GB (1) | GB2327178B (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006080115A1 (ja) * | 2005-01-25 | 2006-08-03 | Sony Computer Entertainment Inc. | 描画方法、画像生成装置、および電子情報機器 |
WO2006129902A1 (en) * | 2005-06-03 | 2006-12-07 | Polidigm Co., Ltd. | Fast anti-aliasing method |
CN1294538C (zh) * | 1999-07-15 | 2007-01-10 | 英特尔公司 | 改进的s缓冲抗混叠方法 |
JP2008522274A (ja) * | 2004-11-29 | 2008-06-26 | アーム・ノルウェー・アー・エス | コンピュータグラフィックスの処理 |
JP2009134773A (ja) * | 2009-03-25 | 2009-06-18 | Sony Computer Entertainment Inc | 描画方法、画像生成装置、および電子情報機器 |
Families Citing this family (121)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9098297B2 (en) * | 1997-05-08 | 2015-08-04 | Nvidia Corporation | Hardware accelerator for an object-oriented programming language |
EP0891075A3 (en) * | 1997-06-09 | 2002-03-06 | Seiko Epson Corporation | An image processing apparatus and method, and an image evaluation device and method |
US6137918A (en) * | 1998-03-23 | 2000-10-24 | Xerox Corporation | Memory efficient method and apparatus to enable tagging of thin antialiased lines |
US6167166A (en) * | 1998-03-23 | 2000-12-26 | Xerox Corporation | Method to enable the recognition and rendering of antialiased images |
US6646639B1 (en) | 1998-07-22 | 2003-11-11 | Nvidia Corporation | Modified method and apparatus for improved occlusion culling in graphics systems |
US6480205B1 (en) | 1998-07-22 | 2002-11-12 | Nvidia Corporation | Method and apparatus for occlusion culling in graphics systems |
US6377273B1 (en) * | 1998-11-04 | 2002-04-23 | Industrial Technology Research Institute | Fast area-coverage computing method for anti-aliasing in graphics |
US7209140B1 (en) | 1999-12-06 | 2007-04-24 | Nvidia Corporation | System, method and article of manufacture for a programmable vertex processing model with instruction set |
US6353439B1 (en) * | 1999-12-06 | 2002-03-05 | Nvidia Corporation | System, method and computer program product for a blending operation in a transform module of a computer graphics pipeline |
US6650325B1 (en) * | 1999-12-06 | 2003-11-18 | Nvidia Corporation | Method, apparatus and article of manufacture for boustrophedonic rasterization |
US6198488B1 (en) * | 1999-12-06 | 2001-03-06 | Nvidia | Transform, lighting and rasterization system embodied on a single semiconductor platform |
US6844880B1 (en) | 1999-12-06 | 2005-01-18 | Nvidia Corporation | System, method and computer program product for an improved programmable vertex processing model with instruction set |
US6765575B1 (en) | 1999-12-06 | 2004-07-20 | Nvidia Corporation | Clip-less rasterization using line equation-based traversal |
US6865301B1 (en) | 2000-02-28 | 2005-03-08 | Adobe Systems Incorporated | Reducing aliasing artifacts when shaping a digital image |
US7119809B1 (en) | 2000-05-15 | 2006-10-10 | S3 Graphics Co., Ltd. | Parallel architecture for graphics primitive decomposition |
US6809740B1 (en) * | 2000-07-26 | 2004-10-26 | Lexmark International, Inc. | Dithered quantization using neighborhood mask array to approximate interpolate |
US7061507B1 (en) * | 2000-11-12 | 2006-06-13 | Bitboys, Inc. | Antialiasing method and apparatus for video applications |
KR20030009364A (ko) * | 2000-12-20 | 2003-01-29 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 메뉴 생성방법과 기록매체용 기록장치 |
US6636232B2 (en) * | 2001-01-12 | 2003-10-21 | Hewlett-Packard Development Company, L.P. | Polygon anti-aliasing with any number of samples on an irregular sample grid using a hierarchical tiler |
US7006101B1 (en) | 2001-06-08 | 2006-02-28 | Nvidia Corporation | Graphics API with branching capabilities |
US6882685B2 (en) * | 2001-09-18 | 2005-04-19 | Microsoft Corporation | Block transform and quantization for image and video coding |
EP1466261B1 (en) | 2002-01-08 | 2018-03-07 | Seven Networks, LLC | Connection architecture for a mobile network |
CN1656465B (zh) | 2002-03-22 | 2010-05-26 | 迈克尔·F·迪林 | 用于由多个互连节点执行渲染计算来渲染图形的方法和系统 |
US7242713B2 (en) * | 2002-05-02 | 2007-07-10 | Microsoft Corporation | 2-D transforms for image and video coding |
KR101030825B1 (ko) * | 2002-12-20 | 2011-04-22 | 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘) | 샘플링 패턴을 이용하는 방법, 샘플링 패턴을 생성하는 방법, 안티 에일리어싱 시스템, 및 컴퓨터 판독 가능한 기록매체 |
US8468126B2 (en) | 2005-08-01 | 2013-06-18 | Seven Networks, Inc. | Publishing data in an information community |
US7853563B2 (en) | 2005-08-01 | 2010-12-14 | Seven Networks, Inc. | Universal data aggregation |
US6828068B2 (en) * | 2003-01-23 | 2004-12-07 | Photronics, Inc. | Binary half tone photomasks and microscopic three-dimensional devices and method of fabricating the same |
EP1447774B1 (en) * | 2003-02-13 | 2018-03-07 | ATI Technologies Inc. | Method and apparatus for sampling on a non-power-of-two pixel grid |
US7280120B2 (en) * | 2003-06-26 | 2007-10-09 | Canon Kabushiki Kaisha | Compositing with a sub-pixel mask in graphic object rendering |
AU2003903448A0 (en) * | 2003-06-26 | 2003-07-17 | Canon Kabushiki Kaisha | A method for tracking depths in a scanline based raster image processor |
AU2003903445A0 (en) * | 2003-06-26 | 2003-07-17 | Canon Kabushiki Kaisha | Optimising compositing calculations for a run of pixels |
AU2003903447A0 (en) * | 2003-06-26 | 2003-07-17 | Canon Kabushiki Kaisha | Rendering successive frames in a graphic object system |
AU2004202826B2 (en) * | 2003-06-26 | 2007-09-06 | Canon Kabushiki Kaisha | Antialiasing Compositing in Graphic Object Rendering |
US7487193B2 (en) * | 2004-05-14 | 2009-02-03 | Microsoft Corporation | Fast video codec transform implementations |
WO2006045102A2 (en) | 2004-10-20 | 2006-04-27 | Seven Networks, Inc. | Method and apparatus for intercepting events in a communication system |
US8010082B2 (en) | 2004-10-20 | 2011-08-30 | Seven Networks, Inc. | Flexible billing architecture |
US7706781B2 (en) | 2004-11-22 | 2010-04-27 | Seven Networks International Oy | Data security in a mobile e-mail service |
FI117152B (fi) | 2004-12-03 | 2006-06-30 | Seven Networks Internat Oy | Sähköpostiasetusten käyttöönotto matkaviestimelle |
US7752633B1 (en) * | 2005-03-14 | 2010-07-06 | Seven Networks, Inc. | Cross-platform event engine |
US8438633B1 (en) | 2005-04-21 | 2013-05-07 | Seven Networks, Inc. | Flexible real-time inbox access |
US7796742B1 (en) | 2005-04-21 | 2010-09-14 | Seven Networks, Inc. | Systems and methods for simplified provisioning |
WO2006136660A1 (en) | 2005-06-21 | 2006-12-28 | Seven Networks International Oy | Maintaining an ip connection in a mobile network |
JP4669334B2 (ja) * | 2005-07-06 | 2011-04-13 | 株式会社ディジタルメディアプロフェッショナル | エッジ・マルチサンプリングハイブリッドアンチエイリアス |
US7496416B2 (en) * | 2005-08-01 | 2009-02-24 | Luxology, Llc | Input/output curve editor |
US8069166B2 (en) | 2005-08-01 | 2011-11-29 | Seven Networks, Inc. | Managing user-to-user contact with inferred presence information |
US7616202B1 (en) * | 2005-08-12 | 2009-11-10 | Nvidia Corporation | Compaction of z-only samples |
US7689052B2 (en) * | 2005-10-07 | 2010-03-30 | Microsoft Corporation | Multimedia signal processing using fixed-point approximations of linear transforms |
US8269788B2 (en) * | 2005-11-15 | 2012-09-18 | Advanced Micro Devices Inc. | Vector graphics anti-aliasing |
US7769395B2 (en) | 2006-06-20 | 2010-08-03 | Seven Networks, Inc. | Location-based operations and messaging |
JP4855853B2 (ja) * | 2006-07-05 | 2012-01-18 | 富士通株式会社 | 解析装置、コンピュータの制御方法およびモデル作成プログラム |
JP4818053B2 (ja) | 2006-10-10 | 2011-11-16 | 株式会社東芝 | 高解像度化装置および方法 |
US8942289B2 (en) * | 2007-02-21 | 2015-01-27 | Microsoft Corporation | Computational complexity and precision control in transform-based digital media codec |
US8805425B2 (en) | 2007-06-01 | 2014-08-12 | Seven Networks, Inc. | Integrated messaging |
US8693494B2 (en) | 2007-06-01 | 2014-04-08 | Seven Networks, Inc. | Polling |
US8364181B2 (en) | 2007-12-10 | 2013-01-29 | Seven Networks, Inc. | Electronic-mail filtering for mobile devices |
US8793305B2 (en) | 2007-12-13 | 2014-07-29 | Seven Networks, Inc. | Content delivery to a mobile device from a content service |
US9002828B2 (en) | 2007-12-13 | 2015-04-07 | Seven Networks, Inc. | Predictive content delivery |
US8107921B2 (en) | 2008-01-11 | 2012-01-31 | Seven Networks, Inc. | Mobile virtual network operator |
US8862657B2 (en) | 2008-01-25 | 2014-10-14 | Seven Networks, Inc. | Policy based content service |
US20090193338A1 (en) | 2008-01-28 | 2009-07-30 | Trevor Fiatal | Reducing network and battery consumption during content delivery and playback |
US8115783B2 (en) * | 2008-01-31 | 2012-02-14 | Arm Norway As | Methods of and apparatus for processing computer graphics |
US8044971B2 (en) * | 2008-01-31 | 2011-10-25 | Arm Norway As | Methods of and apparatus for processing computer graphics |
US8787947B2 (en) | 2008-06-18 | 2014-07-22 | Seven Networks, Inc. | Application discovery on mobile devices |
US8078158B2 (en) | 2008-06-26 | 2011-12-13 | Seven Networks, Inc. | Provisioning applications for a mobile device |
JP4703695B2 (ja) * | 2008-08-28 | 2011-06-15 | シャープ株式会社 | データ作成装置、データ作成方法、データ作成用プログラム、描画装置、描画方法、および、描画用プログラム |
JP4698709B2 (ja) * | 2008-08-28 | 2011-06-08 | シャープ株式会社 | データ作成装置、データ作成方法、データ作成用プログラム、描画装置、描画方法、描画用プログラム、および、コンピュータ読取可能な記録媒体 |
US8909759B2 (en) | 2008-10-10 | 2014-12-09 | Seven Networks, Inc. | Bandwidth measurement |
GB0819570D0 (en) * | 2008-10-24 | 2008-12-03 | Advanced Risc Mach Ltd | Methods of and apparatus for processing computer graphics |
KR101025475B1 (ko) | 2009-06-17 | 2011-04-04 | 계명대학교 산학협력단 | 안티 에일리어싱 방법 및 장치 |
TW201209697A (en) | 2010-03-30 | 2012-03-01 | Michael Luna | 3D mobile user interface with configurable workspace management |
EP3651028A1 (en) | 2010-07-26 | 2020-05-13 | Seven Networks, LLC | Mobile network traffic coordination across multiple applications |
GB2495877B (en) | 2010-07-26 | 2013-10-02 | Seven Networks Inc | Distributed implementation of dynamic wireless traffic policy |
WO2012018556A2 (en) | 2010-07-26 | 2012-02-09 | Ari Backholm | Mobile application traffic optimization |
US8838783B2 (en) | 2010-07-26 | 2014-09-16 | Seven Networks, Inc. | Distributed caching for resource and mobile network traffic management |
US8326985B2 (en) | 2010-11-01 | 2012-12-04 | Seven Networks, Inc. | Distributed management of keep-alive message signaling for mobile network resource conservation and optimization |
US8484314B2 (en) | 2010-11-01 | 2013-07-09 | Seven Networks, Inc. | Distributed caching in a wireless network of content delivered for a mobile application over a long-held request |
US8166164B1 (en) | 2010-11-01 | 2012-04-24 | Seven Networks, Inc. | Application and network-based long poll request detection and cacheability assessment therefor |
CN103620576B (zh) | 2010-11-01 | 2016-11-09 | 七网络公司 | 适用于移动应用程序行为和网络条件的缓存 |
WO2012060995A2 (en) | 2010-11-01 | 2012-05-10 | Michael Luna | Distributed caching in a wireless network of content delivered for a mobile application over a long-held request |
US8843153B2 (en) | 2010-11-01 | 2014-09-23 | Seven Networks, Inc. | Mobile traffic categorization and policy for network use optimization while preserving user experience |
US9060032B2 (en) | 2010-11-01 | 2015-06-16 | Seven Networks, Inc. | Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic |
US8190701B2 (en) | 2010-11-01 | 2012-05-29 | Seven Networks, Inc. | Cache defeat detection and caching of content addressed by identifiers intended to defeat cache |
US9330196B2 (en) | 2010-11-01 | 2016-05-03 | Seven Networks, Llc | Wireless traffic management system cache optimization using http headers |
EP2636268B1 (en) | 2010-11-22 | 2019-02-27 | Seven Networks, LLC | Optimization of resource polling intervals to satisfy mobile device requests |
CN103404193B (zh) | 2010-11-22 | 2018-06-05 | 七网络有限责任公司 | 调校数据传输以优化为通过无线网络的传输建立的连接 |
CN102486870B (zh) * | 2010-12-01 | 2014-02-12 | 财团法人资讯工业策进会 | 绘图系统及其像素更新方法 |
WO2012094675A2 (en) | 2011-01-07 | 2012-07-12 | Seven Networks, Inc. | System and method for reduction of mobile network traffic used for domain name system (dns) queries |
US20120271903A1 (en) | 2011-04-19 | 2012-10-25 | Michael Luna | Shared resource and virtual resource management in a networked environment |
GB2493473B (en) | 2011-04-27 | 2013-06-19 | Seven Networks Inc | System and method for making requests on behalf of a mobile device based on atomic processes for mobile network traffic relief |
GB2505585B (en) | 2011-04-27 | 2015-08-12 | Seven Networks Inc | Detecting and preserving state for satisfying application requests in a distributed proxy and cache system |
US8984581B2 (en) | 2011-07-27 | 2015-03-17 | Seven Networks, Inc. | Monitoring mobile application activities for malicious traffic on a mobile device |
CN103108197A (zh) | 2011-11-14 | 2013-05-15 | 辉达公司 | 一种用于3d视频无线显示的优先级压缩方法和系统 |
US8918503B2 (en) | 2011-12-06 | 2014-12-23 | Seven Networks, Inc. | Optimization of mobile traffic directed to private networks and operator configurability thereof |
WO2013086225A1 (en) | 2011-12-06 | 2013-06-13 | Seven Networks, Inc. | A mobile device and method to utilize the failover mechanisms for fault tolerance provided for mobile traffic management and network/device resource conservation |
US9009250B2 (en) | 2011-12-07 | 2015-04-14 | Seven Networks, Inc. | Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation |
US9277443B2 (en) | 2011-12-07 | 2016-03-01 | Seven Networks, Llc | Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol |
US9832095B2 (en) | 2011-12-14 | 2017-11-28 | Seven Networks, Llc | Operation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic |
US8861354B2 (en) | 2011-12-14 | 2014-10-14 | Seven Networks, Inc. | Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization |
US9021021B2 (en) | 2011-12-14 | 2015-04-28 | Seven Networks, Inc. | Mobile network reporting and usage analytics system and method aggregated using a distributed traffic optimization system |
US8909202B2 (en) | 2012-01-05 | 2014-12-09 | Seven Networks, Inc. | Detection and management of user interactions with foreground applications on a mobile device in distributed caching |
US9633458B2 (en) * | 2012-01-23 | 2017-04-25 | Nvidia Corporation | Method and system for reducing a polygon bounding box |
US9829715B2 (en) | 2012-01-23 | 2017-11-28 | Nvidia Corporation | Eyewear device for transmitting signal and communication method thereof |
US9203864B2 (en) | 2012-02-02 | 2015-12-01 | Seven Networks, Llc | Dynamic categorization of applications for network access in a mobile network |
US9326189B2 (en) | 2012-02-03 | 2016-04-26 | Seven Networks, Llc | User as an end point for profiling and optimizing the delivery of content and data in a wireless network |
US8812695B2 (en) | 2012-04-09 | 2014-08-19 | Seven Networks, Inc. | Method and system for management of a virtual network connection without heartbeat messages |
US20130268656A1 (en) | 2012-04-10 | 2013-10-10 | Seven Networks, Inc. | Intelligent customer service/call center services enhanced using real-time and historical mobile application and traffic-related statistics collected by a distributed caching system in a mobile network |
US8775631B2 (en) | 2012-07-13 | 2014-07-08 | Seven Networks, Inc. | Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications |
US9105250B2 (en) | 2012-08-03 | 2015-08-11 | Nvidia Corporation | Coverage compaction |
US9578224B2 (en) | 2012-09-10 | 2017-02-21 | Nvidia Corporation | System and method for enhanced monoimaging |
US9002125B2 (en) | 2012-10-15 | 2015-04-07 | Nvidia Corporation | Z-plane compression with z-plane predictors |
US9161258B2 (en) | 2012-10-24 | 2015-10-13 | Seven Networks, Llc | Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion |
US20140177497A1 (en) | 2012-12-20 | 2014-06-26 | Seven Networks, Inc. | Management of mobile device radio state promotion and demotion |
US9271238B2 (en) | 2013-01-23 | 2016-02-23 | Seven Networks, Llc | Application or context aware fast dormancy |
US8874761B2 (en) | 2013-01-25 | 2014-10-28 | Seven Networks, Inc. | Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols |
US8750123B1 (en) | 2013-03-11 | 2014-06-10 | Seven Networks, Inc. | Mobile device equipped with mobile network congestion recognition to make intelligent decisions regarding connecting to an operator network |
US9466115B2 (en) * | 2013-03-15 | 2016-10-11 | Nvidia Corporation | Stencil then cover path rendering with shared edges |
US9633469B2 (en) * | 2013-03-15 | 2017-04-25 | Nvidia Corporation | Conservative rasterization of primitives using an error term |
US9065765B2 (en) | 2013-07-22 | 2015-06-23 | Seven Networks, Inc. | Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network |
US10935788B2 (en) | 2014-01-24 | 2021-03-02 | Nvidia Corporation | Hybrid virtual 3D rendering approach to stereovision |
US9906981B2 (en) | 2016-02-25 | 2018-02-27 | Nvidia Corporation | Method and system for dynamic regulation and control of Wi-Fi scans |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5381519A (en) * | 1987-12-04 | 1995-01-10 | Evans & Sutherland Computer Corp. | System for line interpolation for computer graphics displays |
EP0430501B1 (en) * | 1989-11-17 | 1999-02-03 | Digital Equipment Corporation | System and method for drawing antialiased polygons |
US5299308A (en) * | 1990-02-28 | 1994-03-29 | Ricoh Company, Ltd. | Graphic data processing apparatus for producing a tone for an edge pixel and reducing aliasing effects |
US5123085A (en) * | 1990-03-19 | 1992-06-16 | Sun Microsystems, Inc. | Method and apparatus for rendering anti-aliased polygons |
GB2245805A (en) * | 1990-06-29 | 1992-01-08 | Philips Electronic Associated | Generating an anti-aliased image |
KR100243174B1 (ko) * | 1993-12-28 | 2000-02-01 | 윤종용 | 서브픽셀 마스크 발생방법 및 장치 |
US5668940A (en) * | 1994-08-19 | 1997-09-16 | Martin Marietta Corporation | Method and apparatus for anti-aliasing polygon edges in a computer imaging system |
JP3609189B2 (ja) * | 1995-03-14 | 2005-01-12 | 株式会社リコー | アンチエイリアシング機能を有する画像生成装置 |
US5777629A (en) * | 1995-03-24 | 1998-07-07 | 3Dlabs Inc. Ltd. | Graphics subsystem with smart direct-memory-access operation |
JPH09102048A (ja) * | 1995-10-03 | 1997-04-15 | Matsushita Electric Ind Co Ltd | 画像処理装置 |
US5821949A (en) * | 1996-07-01 | 1998-10-13 | Sun Microsystems, Inc. | Three-dimensional graphics accelerator with direct data channels for improved performance |
-
1997
- 1997-07-02 US US08/887,441 patent/US6057855A/en not_active Expired - Fee Related
-
1998
- 1998-06-22 DE DE19827726A patent/DE19827726B4/de not_active Expired - Fee Related
- 1998-06-26 JP JP10180764A patent/JPH1186007A/ja active Pending
- 1998-07-01 GB GB9814268A patent/GB2327178B/en not_active Expired - Fee Related
-
2003
- 2003-03-03 JP JP2003055630A patent/JP2003271987A/ja active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1294538C (zh) * | 1999-07-15 | 2007-01-10 | 英特尔公司 | 改进的s缓冲抗混叠方法 |
JP2008522274A (ja) * | 2004-11-29 | 2008-06-26 | アーム・ノルウェー・アー・エス | コンピュータグラフィックスの処理 |
JP2011227933A (ja) * | 2004-11-29 | 2011-11-10 | Arm Norway As | コンピュータグラフィックスの処理 |
US8199146B2 (en) | 2004-11-29 | 2012-06-12 | Arm Norway As | Processing of computer graphics |
WO2006080115A1 (ja) * | 2005-01-25 | 2006-08-03 | Sony Computer Entertainment Inc. | 描画方法、画像生成装置、および電子情報機器 |
US7884825B2 (en) | 2005-01-25 | 2011-02-08 | Sony Computer Entertainment Inc. | Drawing method, image generating device, and electronic information apparatus |
WO2006129902A1 (en) * | 2005-06-03 | 2006-12-07 | Polidigm Co., Ltd. | Fast anti-aliasing method |
JP2009134773A (ja) * | 2009-03-25 | 2009-06-18 | Sony Computer Entertainment Inc | 描画方法、画像生成装置、および電子情報機器 |
Also Published As
Publication number | Publication date |
---|---|
DE19827726A1 (de) | 1999-01-07 |
GB2327178A (en) | 1999-01-13 |
US6057855A (en) | 2000-05-02 |
GB9814268D0 (en) | 1998-09-02 |
DE19827726B4 (de) | 2005-02-24 |
GB2327178B (en) | 2002-03-20 |
JP2003271987A (ja) | 2003-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH1186007A (ja) | プリミティブにより覆われるピクセルの割合を求める方法 | |
EP3129973B1 (en) | Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location | |
US6518974B2 (en) | Pixel engine | |
US6275235B1 (en) | High precision texture wrapping method and device | |
US6292192B1 (en) | System and method for the direct rendering of curve bounded objects | |
US6768491B2 (en) | Barycentric centroid sampling method and apparatus | |
JP3290954B2 (ja) | 高速透視図ボリュームレンダリングのための光線変換方法 | |
JP3675488B2 (ja) | 線形補間を用いて非同次2次遠近テクスチャマッピング座標を決定する回路 | |
JPH05307610A (ja) | テクスチャマッピング方法およびその装置 | |
WO2008036936A2 (en) | Sampling methods suited for graphics hardware acceleration | |
US5491769A (en) | Method and apparatus for variable minification of an image | |
WO1999052076A1 (en) | System and method of selecting level of detail in texture mapping | |
US7081903B2 (en) | Efficient movement of fragment stamp | |
US6181347B1 (en) | Selectable mode smoothing texture filter for computer graphics | |
JP3959862B2 (ja) | テクスチャマッピング方法及びその装置 | |
JP2957511B2 (ja) | グラフィック処理装置 | |
US7369136B1 (en) | Computing anisotropic texture mapping parameters | |
JP2006139727A (ja) | 3次元図形描画処理装置、画像表示装置、3次元図形描画処理方法、これをコンピュータに実行させるための制御プログラムおよび、これを記録したコンピュータ読み取り可能な可読記録媒体 | |
EP0574245A2 (en) | Method and apparatus for variable expansion and variable shrinkage of an image | |
JP2003504697A (ja) | 副標本化テクスチャ端縁部のアンチエイリアシング | |
JPH064679A (ja) | イメージ処理装置 | |
EP2202689A1 (en) | A processing unit | |
GB2368763A (en) | Determining coverage of a pixel by a primitive | |
US5936635A (en) | System and method of rendering polygons into a pixel grid | |
JPH08212357A (ja) | 補間装置および補間方法、並びに画像生成装置 |