JPH01191985A - 画像処理方法 - Google Patents

画像処理方法

Info

Publication number
JPH01191985A
JPH01191985A JP63307075A JP30707588A JPH01191985A JP H01191985 A JPH01191985 A JP H01191985A JP 63307075 A JP63307075 A JP 63307075A JP 30707588 A JP30707588 A JP 30707588A JP H01191985 A JPH01191985 A JP H01191985A
Authority
JP
Japan
Prior art keywords
pixel
processor
triangle
block
frame buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP63307075A
Other languages
English (en)
Inventor
Carlo J Evangelisti
カルロ・ジヨン・エヴアンジエリステイ
Leon Lumelsky
レオン・レムエルスキ
Mark J Pavicic
マーク・ジヨゼフ・パヴィーチ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH01191985A publication Critical patent/JPH01191985A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/00Three-dimensional [3D] image rendering
    • G06T15/50Lighting effects
    • G06T15/503Blending, e.g. for anti-aliasing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は、一般にビデオ表示の分野に関し、具体的には
、2次元表示画面に投映される3次元カラー画像の表示
が著しく改善されるという、ビデオ・データの計算方法
に関する。さらに具体的に言うと、本発明は、きわめて
効率のよい改善されたやり方で陰影付けとアンチエイリ
アシングが行なわれるという、上記の方法に関する。
B、従来技術 ビデオ・データ処理の応用分野での第1に考慮すべき問
題は、必要なきわめて大量のデータに対する処理の実行
にかかる時間である。現代の表示装置がますます精巧に
なるにつれて、ますます複数なデータがますます大量に
必要となってくる。
たとえば、100OX100O画素、すなわち100万
画素の値という大きさをもつ、代表的なロー・エンド表
示装置が使用可能になってきている。さらに具体的に言
うと、カラー・グラフィックスの分野では、各画素は、
赤、緑、青の強度値を表わす複数のかなりの数のビット
(24ビツトのことが多い)で表わされ、複雑なビデオ
・データ処理の応用分野ではそれらのビットを処理しな
ければならない。単一のホスト・プロセッサですべての
図形計算を扱わなければならない場合、その実行に通常
は許容できないほど長時間かかる。
コンピュータ技術分野では、ある開面に大量の計算が必
要な場合、ある計算を並列に実行することによっである
量の時間が節約できることが比較的周知である。ビデオ
・データ処理では、これは複数のプロセッサを用いて画
像の異なる部分を同時に処理することによって行なえる
。一つの解決策は、画像の各画素ごとに1個、簡単なプ
ロセッサを複数個設けることである。専用の制御プロセ
ッサが複数の各画素プロセッサにデータと特殊命令を出
す。同様に、このような画素プロセッサを様々な形で一
列に配列して、全タスク走査画像を同時に、−時に一列
ずつ、またはアレイの部分集合すなわちサブアレイとし
て処理することも知られている。
このようなシステムは従来技術で知られているものの、
複数の画素プロセッサにデータとコマンドを供給し、続
いて生成されたデータをフレーム・バッファに記憶させ
るのにシステム・オーバーヘッドがかかるため、広く使
われてはいない。また、こうした応用例では、フレーム
・バッファ自体が非常に複雑になる。したがって、下記
の刊行物で例示されるような従来技術のマルチプロセッ
サ・システムでは、非常に簡単な画素処理しか行なわれ
ていなかった。
i)H,フックス(Fuchs)、■、プールトン(P
oulton) 、A、ペイス(Paeth) 、A。
ベル(Bell) 、r画素平面のスマート・メモリに
基づくロスタ・グラフィックス・システム(Devel
oping Pixel Planes、 ASmar
t Memory Ba5ed Roster Gra
phicsSystem ) J、1982年度国際V
LSI先端研究会議(1982conference 
onAdvanced Re5earch  in V
LSI) )M I T )1982年1月17日、1
)1)、 137−146゜ 1i)J、H,クラーク(c1ark) 、M、 R,
/1ンナ(Hannah )、「高性能スマート画像メ
モリにおける分散処理(DistributedPro
cessing in a High Perform
ance SmartImage Memory) J
 Nラムダ(Lambda) N 1980年第4四半
期号、T)p、40−45゜上記のように、このような
1画素当たりプロセ・フサ1個のビデオ・アーキテクチ
ャでこれまで使用可能だった処理の種類はもちろんきわ
めて限られており、具体的に言えば、実行できる処理の
複雑さが限られていた。カラー・グラフィックスの分野
では、1画素当たり必要なデータの量の点で操作処理が
きわめて複雑になり、しばしば黒白処理やグレイスケー
ル処理に比べてかなり複雑な計算が必要となる。カラー
・グラフィックスで企図されている種類の適用業務は複
雑であり、画素ごとに処理を実行するのに必要な時間が
大量に必要なため、限られていた。その上、処理が複雑
なため、1画素当たりプロセッサ1個のデイスプレィ・
アーキテクチャ、たとえばSIMD画素プロセッサ・ア
ーキテクチャに類似のもので、3次元画素の陰影付けや
アンチエイリアシングなどの処理を実施することは、実
現可能と考えられていなかった。
ビデオ・デイスプレィでは、3次元画像を2次元表面に
投映するとき、像を構成する多角形内に均一に陰影付け
した領域を実現し、こうした多角形の交差縁部をアンチ
エイリアシングして画質を向上させることは、常に複雑
な問題であった。陰影付は及びアンチエイリアシングの
基本的幾何間° 係は、後でさらに詳しく述べるように
以前から知られている。しかし、SIMDアーキテクチ
ャでこのような画質の向上した画像を実現することは、
複雑な計算を実行しなければならないため、実現可能で
ないと考えられてきた。したがって、このような画像の
品質向上は順次的に画素ごとにホスト・プロセッサまた
は画像プロセッサで行なうと好都合である。
こうしたカラー画像では、三角形が、3次元表面をモデ
ル化するための基本形である。長方形も使われてきたが
、三角形は透視図に変形してもその平面性を保つという
重要な利点がある。3次元表面をレンダリングするには
、三角形を2次元表面である画像平面に投映する。三角
形を後から前へ描いて、隠れた表面を(既知のアルゴリ
ズムにより)除去する。最適の表示を得るには、各三角
形にスムースに陰影を付け、アンチエイリアシングした
縁部を設けることが望ましい。このことは周知である。
スムースに陰影を付けると、連続した表面という効果が
生まれ、縁部をアンチエイリアシングすると、ぎざぎざ
ではなく?lらかな境界が得られ、表示される画像の連
続性の効果がさらに高まる。従来の順次システムは、こ
うした画像を、許容できる速度で生成することができな
かった。本明細書に開示される発明は、経済的なSIM
D画素処理アーキテクチャで並列性をフルに活用し、各
プロセッサで同じに実行される新規なプログラムを実現
することによって、この状況を大幅に改善するものであ
る。このプログラムは必要データ修正構造を含み、各プ
ロセッサが画素アレイ中のそれ自体の画素を修正して、
スムースな陰影が付きアンチエイリアシングされた3次
元画素を表示画面に生成させることができる。
以下の参照文献は、本明細書の「実施例」の部で開示し
考察する参照文献に追加するものであり、本発明の主題
に対する米国特許商標子での従来技術の調査によって発
見したものである。それらの関連性について次に説明す
る。
H,グラール(Gourard )の論文、「曲面の連
続陰影付け(continuous Shading 
of CuredSurfaces)J、 I E E
 E :7ンピユータ紀要、Vo l。
201No、6.1971年6月、pI)、823−6
29は、周知の陰影付けの方法を開示しているが、こう
した処理をSIMDアーキテクチャでアンチエイリアシ
ングと並列に実施するという本発明の方法を開示も示唆
もしていない。
B、J、シャバター(Schachter )編の著書
「コンビ二−タ画像の生成(computer Ima
geGeneration ) JはX J、Wi l
 ey&5ons。
ニューヨーク(1983年)は、グラールが実施したよ
うな陰影付けを記載している。本発明は、線形補間を行
なうが、走査線上の点に対して行なうのではない。これ
は、三角形に関する情報を並列画素プロセッサ・アーキ
テクチャに与えて、三角形上の点に対して行なう。本発
明は、並列処理を利用して円滑化の計算を迅速かつ簡単
に行なう方法を提供する。シャバターは、アンチエイリ
アシングの問題を記載しているが、SIMD画素プロセ
ッサ・アーキテクチャで並列性を使用して諸効果を除去
する方法は開示していない。
米国特許第3602702号は、3次元の陰影つき多角
形を2次元表面で表わし、隠れた表面を除去する方法を
開示している。本発明は、三角形1個ごとに1回供給さ
れる情報を使用する並列プロセッサを設けることにより
、陰影付は及びアンチエイリアシングを計算する新規な
方法を含んでいる。本明細書に開示する処理は、2次元
の三角形で実施され、3次元情報が後述の速度データ中
で捕捉されている。
米国特許第3E365408号は、画面上の境界で区切
られた領域をその領域に対する強度関数と共に表示する
システムを記載している。本発明は、変化率データを用
いて2次元にした後でそのような画像のアンチエイリア
シングを行なう迅速な方法を含んでいる。この円滑化方
法は、簡単な計算でわずかなコストでアンチエイリアシ
ングと同時に行なわれる。
米国特許第4343037号は、透視図の変形を実施す
るパイプライン式プロセッサを開示している。本システ
ムでは、3次元画像はすでにフL/ −ム・バッファ中
で2次元画像として表わされている。さらに、本システ
ムは、並列処理によってフレーム・バッファ内で縁部を
アンチエイリアシングし、円滑化がわずかな追加コスト
で行なわれる。
このことは上記特許では示唆されていない。
米国特許第4156237号及び420B719号は、
特にビデオ・デイスプレィ用の並列またはパイプライン
式アーキテクチャを広く開示しているが、その他の点で
は、2次元カラー・デイスプレィ上に投映された3次元
カラー三角形に対して同時に陰影付は及びアンチエイリ
アシング処理を行なえるように構成されたSIMDコン
ピュータ・アーキテクチャとほとんど関係がない。
C9発明が解決しようとする問題点 本発明の主目的は、SIMD並列処理アーキテクチャの
並列実行能力を利用した、3次元ビデオ・デイスプレィ
用の、アンチエイリアシングした縁部をもつスムースに
陰影を付けたカラー三角形を迅速に生成する新規な方法
を提供することにある。
本発明の第2の目的は、SIMDアーキテクチャの各プ
ロセッサで同じ並列アルゴリズムを使用し、°各プロセ
ッサごとに独自のデータを使って必要な画素修正をデイ
スプレィ中で生成するという、上記の方法を提供するこ
とにある。
本発明の第3の目的は、SIMDアーキテクチャのすべ
てのプロセッサをM×Nアレイに編成し、各プロセッサ
がフレーム・バッファまたは表示画面あるいはその両方
で物理的に関連するM×Nアレイに関係する異なる画素
を修正し、それによってフレーム・バッファに対する並
列更新を行なえるようにするという、上記の方法を提供
することにある。
本発明の第4の目的は、単一座標プロセッサが処理中の
画像の一部分に関する一般画像データを計算し、個々の
画素プロセッサがこのデータを利用して実際の画素画像
データを生成し、それをフレーム・データに記憶し表示
するという、上記の方法を提供することにある。
D9問題点を解決するための手段 本発明の目的は、SIMDコンピュータ・アーキテクチ
ャをホスト・プロセッサ及び座標プロセッサと共に使用
して、高品質のアンチエイリアシングし陰影を付けたカ
ラー画像をビデオ表示システムのフレーム・バッファに
入れることによって実現できる。この方法は、2次元表
示画面に表示すべきスムースに陰影を付は縁部をアンチ
エイリアシングした3次元カラー三角形を生成するため
の重要な図形プリミティブを表現するための並列アルゴ
リズムを含んでいる。SIMDアーキテクチャと上記ア
ルゴリズムを利用して、非常に時間のかかる計算を並列
実行できるように分解する。単一座標プロセッサが、各
三角形を取り囲むある境界ボックス内のすべての画素ブ
ロックについて基本的に同一の全境界ボックス・レコー
ドを計算し伝送する。個々の画素データがM×N個の画
素プロセッサのグループによって生成され、各ステップ
が境界ボックス内のM×N個の画素ブロックの処理に対
応する一連のステップでフレーム・バッファに記憶され
る。
この方法を用いると、本当は共通の命令シーケンスで同
じ処理を実行しているにもかかわらず、すべてのプロセ
ッサが異なる機能を実施しているように見せることがで
きる。この方法によれば、ホスト・プロセッサはフレー
ム・バッファ中及ヒ表示画面上で各三角形の位置を定義
する物理的X1y% Zデータ及びカラーを提供する。
座標プロセッサが、点が三角形を横切るとき、各三角形
ごとにy軸及びy軸に沿った三角形の3辺のうち任意の
辺までの距離の時間変化率、及びy軸及びy軸に沿った
各3原色、赤、青、緑の強度変化率を計算する。
座標プロセッサはまた、三角形を完全に取り囲む境界ボ
ックスを構成する複数のM×N個の画素構成ブロックそ
れぞれの原点の座標を計算する。
このボックス内には、SIMDプロセッサ・システム中
の少なくともM×N個の独立したプロセッサがある。各
三角形について必要なすべての変化率データが計算され
ると、システム制御装置はM×Nアレイのプロセッサ(
画素プロセッサ)に、陰影付は及びアンチエイリアシン
グができるように適当に修正された、フレーム・バッフ
ァ内の関係するM×N画素の各構成ブロックごとに新し
い値を順次計算させる。このことは、特定のプロ・ツク
内のすべての画素を並列に処理し、特定の三角形の境界
ボックスを構成するすべてのブロックが処理されるまで
それらの処理を繰り返し、デイスプレィを構成するすべ
ての三角形が処理されるまで処理を続行することにより
実施される。
特定の三角形に関係するすべてのブロックについてのす
べての計算は、同じ計算された距離及びカラー変化率の
値を使って行なわれ、変化率の値は、1)三角形の完全
に外側、2)三角形の完全に内側、または3)三角形の
3辺のそれぞれに隣接するアンチエイリアシング用境界
領域内など、特定の画素の位置によって重み付けされる
この方法は、フレーム・バッファ中の画素の現カラー強
度値を、上記の条件1)が成立することがわかった場合
、変更せず、上記の条件2)が成立することがわかった
場合、陰影付は要件のみに基づいて画素の値を変更し、
上記の条件3)が成立することがわかった場合、陰影付
は要件とアンチエイリアシング要件の両方に基づいて画
素の値を変更することを含んでいる。
この方法はさらに、各画素プロセッサ中で実行されて、
−度その値が計算されると、特定の画素について条件1
)、2)、3)のどれが成立するのかを示す、画素位置
の値を計算するための手順を含んでいる。   ゛ この手順は、シミュレートされた表示画面中に見る人か
ら最も離れた対象物を表わす、表示画面内の三角形から
始まる。
E、実施例 本明細書で開示する発明は、SIMDコンピュータ・ア
ーキテクチャをM×N個の画素プロセッサ・アレイとし
て使って、高品質の3次元カラー画像を、2次元表示を
生成するための、関連するビデオ表示アーキテクチャの
フレーム・バッファに入れることのできる手段を含んで
いる。この全体システムは、ホスト・プロセッサが基本
ビデオ・データを供給するという、ビデオ表示装置が接
続されたホスト・プロセッサを含んでいる。この基本ビ
デオ・データは、通常それと関連づけられる個々の3次
元三角形に関する表示情報を含む。座標プロセッサも含
まれるが、これは独立型ブロモ・ソサでもよく、またそ
の機能をホストで機能モジュールとして実行してもよい
。座標プロセッサは、ビデオ・データに関する処理の初
期設定を実行し、SIMDアーキテクチャとして構成さ
れたM×N画素プロセッサ・マトリックスに供給される
データの処理を制御する。この方法は、M×N画素プロ
セッサ・マトリックス内で実行できる、重要な図形プリ
ミティブすなわち縁部をアンチエイリアシングしスムー
スに陰影を付けたカラー3次元三角形を表現するための
並列アルゴリズムを含んでいる。
全体システムを第1図に示す。このシステムは、FJA
標プコプロセッサ数の画素プロセッサを制御するSIM
Dアーキテクチャを含んでいる。SIMDアーキテクチ
ャの構成及び動作は、当技術分野で周知である。特定の
アーキテクチャが、本出願人に係る特願昭61−584
55号明細書に記載されている。本構成の重要な特徴は
、複数のマルチビット画素に並列にアクセスし処理でき
ることである。第2の特徴は、画素プロセッサがある画
素の異なるセグメントに対して独立した複数の処理を実
行できることである。本明細書に記載する方法はSIM
Dアーキテクチャの特徴を持たないシステムでも実施で
きるが、画素及び処理の並列性がない場合は、システム
性能が大幅に低下する。
ここで、この種の陰影付は及びアンチエイリアシングを
得る方法は、関係するある種の幾何処理を記載した従来
技術の論文を参照した後記の説明で明らかになるように
、コンピュータ画像生成の分野では周知であるので、陰
影付は及びアンチエイリアシングの幾何関係が、それ自
体新規なものであると主張してはいないことを了解され
たい。
新規だと考えられるのは、特定の三角形を解析し、その
三角形を完全に取り囲むことが知られている、複数の大
きさM×N画素の構成ブロックから構成される境界ボッ
クスでその三角形を取り囲むというここに開示する方法
である。SIMDアーキテクチャがM×N個のプロセッ
サで構成されると仮定すると、上記の各プロセッサは、
上記の各構成ブロック中の特定の画素にアクセスしてそ
れを解析できるという点で、フレーム・バッファに一藪
的に接続可能である。さらに、フレーム・バッファ全体
は、複数の上記構成ブロックに編成されており、いくつ
かの連続する部分集合だけが特定の境界ボックスに含ま
れることを了解されたい。
こうしたM×N個の画素プロセッサのアレイという基本
的構成概念をフレーム・バッファに対して適用して、独
特の並列アルゴリズムを考案した。
座標プロセッサは、処理中の特定の三角形に関するある
種のデータを事前計算し、この情報をすべての画素プロ
セッサに並列に送り、各プロセッサは構成ボックス内で
のそれ自体の位置関係に基づいてこのデータを使って、
最初フレーム・バッファに記憶されていたカラー情報を
再計算またはグレードアップし、その結果、適当な陰影
付は及びアンチエイリアシングが行なわれる。
本発明のさらに別の実施態様によれば、並列アJl/ 
コIJ X、ムで利用できるようにアンチエイリアシン
グ係数を計算する新規な方法が開示される。この方法に
よると、プロセッサは、アンチエイリアシング係数がそ
の計算に対してどんな効果を持つかを個別に決定し、そ
のような効果が必要な場合、それをその計算に自動的に
含めることができるようにする。
次に本発明の細部について述べる。全体プロセスを第1
図に概略的に示す。ホスト・プロセッサ1は、既知であ
る最初の1組の計算を実行し、その結果を座標プロセッ
サに渡すことによってこのプロセスを開始する。そうし
た結果の一部が座標プロセッサ2から画素プロセッサに
渡される。次に、座標プロセッサ2の制御下で一連の反
復が開始される。各反復の開始時に、座標プロセッサは
1組の値を画素プロセッサ3に供給する。画素プロセッ
サはそれらの値を使って三角形の画素を計算し、その三
角形画素を現在フレーム・バッファに記憶されている画
素と組み合わせる。この処理の始めに、現在フレーム・
バッファ4に記憶されている画素は、陰影付けとアンチ
エイリアシングを考慮に入れず、ホスト・プロセッサが
そこに入れた画素を表わしている。三角形全体が一時に
1構成ブロツクずつ処理されるまで、画素プロセッサ3
内で反復が繰り返される。
M×N個の画素プロセッサ3がある場合、各反復中に上
記のように1つのM×N画素ブロックが処理される。三
角形をカバーする簡単な方法は、その境界ボックス内の
すべての構成ブロックを処理する方法である。このこと
を第2図に示す。それよりも効率のよい方法は、完全に
または部分的に三角形内にある構成ブロックだけを処理
する方法である。ここで開示する実施例では、これは行
なわず、たとえばすべての構成ブロックを処理する。た
だし、反復を実行する前に、座標プロセッサが、処理中
に対象三角形の完全に外側にあった構成ブロックを評価
するために必要な計算を行なうのは、比較的整軸なこと
であると思われる。いずれにせよ、座標プロセッサ2は
処理すべきブロックの順序及び選択を決定する。
次に、各画素プロセッサが実施する処理についてごく簡
単に説明する。詳しい説明は後で行なう。
各反復中に、各画素プロセッサは次の1次式を使って6
つの変数を評価する。
V=Vb+ f”vx+j”vy ただし、vbは特定の構成ブロックの左下の画素の変数
の値、vXはXに対するVの変化、vyはyに対するV
の変化、(11j)は、構成ブロック内の特定の画素の
相対位置を定義する指標である。6つの変数とは、三角
形の線から画素までの距離ddl、dd2、dd3、及
びカラーr1gvbである。X及びyに対する変化率は
、反復開始前に1回だけ与えられる。ただし、精度を維
持するために、各反復の開始時に各構成ブロックの左下
の画素の値を与えてもよい。
距離変数を第3図に示す。ddL dd2、dd3は、
三角形の3辺から特定の画素までの距離である。負の距
離は、画素が辺の”外側“°にあることを意味する。正
の距離は、画素が辺の”内側”にあることを意味する。
画素が三角形の3つの辺すべての内側にある場合、その
画素は三角形の内側にある。dx及びdyの定義を第3
図の挿入図に示す。
したがって要点を繰り返すと、次のデータが座標プロセ
ッサから画素プロセッサに供給される。
画素プロセッサの反復ごとに(1構成ブロツクごとに) rlgz bs d l、d2、d3 各三角形ごとに1回(境界ボックスごとに)rXlgX
s bx)dlxs d2xs d3x:rylgVl
bys dty、d2ys d3y。
このデータがプロセス全体でどのように使われるかにつ
いては、後でもっと詳しく説明する。
本発明によればアンチエイリアシングの計算がどのよう
に行なわれるかを理解するために、第4図を参照する。
3つの距離dd1、dd2、dd3を用いて、アンチエ
イリアシング係数(a)を計算する。(a)は、三角形
の縁部でのアンチエイリアシングを扱い、三角形画素を
フレーム・バッファの内容とどのように組み合わせるか
を決定するのに役立つ。(a)の計算方法は多数ある。
ここでは簡単な方法について述べる。三角形を縁部が面
取りされた3次元の物体として処理するという考えであ
る。面取り部は、図に示すように三角形を定義する太い
主線内の3本の細線で定義される。(a)は、画素中心
での三角形の高さとして定義される。面取り部の幅wk
は、d x k及びdYkの関数である。この場合、w
k=max (1dxk l、I dyk I)とし、
内側領域内の三角形の高さを1と定義する。そうすると
三角形の外側の高さは0、面取り部内の高さは0と1の
間の値である。
各縁部k(1,2,3)ごとに、各画素プロセッサはそ
の縁部を含む線からの距離ddkを使って値akを得る
。akは次のように定義される。
ddk≦0ならばak=o、 0<ddk<Wkならばa k = d k / w 
k %ddk≧wkならばak=1゜ 3つの縁部すべてを考慮すると、 a=min(al、a2、a3)第4図に、その位置が
三角形の外側、2三角形の内側、及び1つまたは複数の
面取り縁部の内側にある画素のいくつかの例を示す。
例: Lは完全に三角形の内側にある。(a)=IMは完全に
三角形の外側にある。(a)==ONは三角形の1つの
縁部にある。O<(a)<IPは三角形の2つの縁部に
ある。O<(a)< 1最後のステップは、三角形の画
素の値をフレーム・バッファの内容と組み合わせること
である。
これを第5図に非常に概略的に示す。旧画素値は”旧画
素“と記したブロック内にあり、値rotgo1boを
含む。本システムで計算した新しい値は”新画素”と記
したブロック内にあり、rrlgg、bbを含む。これ
らの値を具体的に計算する方法については、後で詳しく
述べる。これらの値が図のように画素プロセッサによっ
て組み合わされ、この組合せ機能は、本手順でその特定
の画素について計算したアンチエイリアシング係数によ
って制御される。この計算の新しい結果がフレーム・バ
ッファに戻されるが、これは°゛新しい結果゛′と記し
たブロックで示され、r nz g nz 1) nヲ
含む。
以上、本発明の全体手順について一般的に説明してきた
が、次に第6図ないし第23図を参照しながら処理の詳
細について述べる。以下の説明は特に好ましい実施例に
関するものであり、前記の一般的説明とは細かい点で異
なることがあることに留意されたい。
カラー・デイスプレィで周知のように、画素は3原色、
赤、緑、青で表わされる。さらに、通常のフレーム・バ
ッファ記憶システムでは、特定の画素値は3原色の合成
であり、ディジタル・コードで強度値を表わす。したが
って、この説明を通じて、3原色からなる特定の画素値
を単にrgbで示すことにする。
座標プロセッサに送られる前のホスト中の表示全体を構
成する個々の三角形について、いくつかの仮定を行なう
。参照文献[1コ並びに[5コのP、30に記載されて
いる形で各三角形の各頂点にrgbが割り当てられてい
るものと仮定する。
これらの陰影付け′値は、各頂点のrlgll)の強度
である。陰影付は値は、座標プロセッサ及び個々の画素
プロセッサにより三角形中の各点に対して線形補間され
る。
3次元表面は、当技術分野で周知であり、参照文献[3
コの第8章に記載されているように、2次元表面に投映
されているものと仮定する。また、三角形は参照文献[
4コ並びに[3コのP、558に記載されているように
(Z値によって)奥行で分類されるものと仮定する。背
景に最も近い三角形が最初に処理すべく座標プロセッサ
に送られる。背景のすぐ次にある三角形は、画素プロセ
ッサによって背景でアンチエイリアシングされる。
その後の三角形が、以前に処理された縁部の一部分をカ
バーすることがある。もちろんその場合、後で説明する
ように、修正されたrgb強度値がフレーム・バッファ
内の画素位置に記憶される。
さらに、三角形はわずかに拡大されて座標プロセッサが
受は取っているものと仮定する。そうすると、”面取り
部”が重なり合うことができる。
前述のように、面取り部は三角形内側の細い帯域であり
、そこで画素がアンチエイリアシングされる。アンチエ
イリアシング用の値(a)を決定スる際のこれらの面取
り部の使い方については後で述べる。この実施例では、
三角形が最初に拡大されるので、まず三角形の縁部が背
景内の縁部でアンチエイリアシングされる。後で、その
縁部が前景内の三角形の縁部でアンチエイリアシングさ
れる。こうして、見る人に近接する三角形の縁部が2つ
の陰影付き画素でアンチエイリアシングされた。
ホストが三角形をCPUに送る前に実施される拡大の量
は、この実施例に示した同じ幾何関係を使う。各三角形
の拡大は、その当該の面取り幅による。
本明細書で開示する基本発明の他の実施例では面取り部
のオーバーラツプを含まないことも充分にあり得る。ど
ちらでも、画素プロセッサを並列に稼山させるという基
本構造に影響はない。
第6図に、ホスト・プロセッサが三角形の記述をそのメ
モリから制御プロセッサに渡す、システム図を示す。制
御プロセッサは、ホストから受は取った三角形データか
ら計算したデータ・テーブルをそのRAMに記憶する。
制御プロセッサは次にデータを画素プロセッサに渡す。
画素プロセッサは、参照文献[2コに開示されているよ
うな”単一命令複数゛データ”(SIMD)アーキテク
チャ式システムとして稼働する。以前の考察から明らか
なように、すべての画素プロセッサは、特定のM×N構
成ブロック中の位置が独特であるために処理するデータ
の値はもちろん異なるが、まったく同じプログラムを実
行する。
ここで、本実施例では、SIMDアーキテクチャで16
個の画素プロセッサ(たとえば4×4個)があるものと
仮定されていることに留意されたい。
ただし、これは表現の都合上選んだものにすぎない。希
望するシステム性能に応じて任意のM×Nの値を使うこ
とができる。
図の16個の画素プロセッサは、それぞれフレーム・バ
ッファの1716にアクセスできる。言い換えれば、各
プロセッサはフレーム・バッファに記憶されている画素
の1/16の部分ごとに選択的にアクセスできる。この
アクセスの編成を、システム設計に含めることができる
。本発明では、フレーム・バッファは1組のブロックに
編成される。本明細書ではこれらのブロックを構成ブロ
ックと呼ぶが、各ブロックは4重4画素である。すなわ
ち、このシステム設計に基づく各画素プロセッサは、フ
レーム・バッファ全体を構成する各構成ブロック中の特
定の画素にアクセスでき、その画素はもちろん各ブロッ
ク中で同じ相対位置にある。
フレーム・バッファの出力は、必要とされるどんな再生
速度ででも表示装置を駆動し、本発明には含まれない。
第7図に、画素プロセッサの編成、及びそのフレーム・
バッファを構成する各構成ブロック内の画素の所定の相
対位置との関係を図式的に示す。
すなわち各構成ブロックで、画素プロセッサ1は4×4
7レイの左上の画素に接続され、画素プロセッサlθは
右下の画素に接続されている。もちろん、選択手段(図
示せず)により、画素プロセッサが任意の処理サイクル
中に単一の構成ブロック内のrzgzbの3重の値のみ
に接続されるようにする。
第8図に、ホスト内に記憶されている表示全体を構成す
る各三角形を記述する三角形の幾何レコードを示す。図
かられかるように、各三角形は1組の3頂点で表わされ
る。各点はxyアドレス座標及びカラー強度値rgbで
識別できる。これらのレコードはホストから座標プロセ
ッサに送られる。
前述のように、三角形の各隅はそのxyX座標カラーに
よって定義される。このカラーは、参照文献C1コに記
載されているようにグラードの陰影付けに使われる。ま
た、三角形はこの段階では奥行で分類されているものと
仮定する。これらの三角形幾何レコードが座標プロセッ
サで処理されて、データ・レコードを生成し、それが個
々の画素プロセッサに送られる。
第9図に、境界ボックス及び境界ボックスを構成するい
くつかの構成ブロックと共にフレーム・バッファ内に配
置した三角形を(概略的に)示す。
図の上端の表は、座標プロセッサによって生成され、所
与の境界ボックスとして処理の進行を識別する目的で保
存されるデータ・レコードを示す。
その構成ブロックが処理される。これは、三角形の幾何
計算ではなく座標プロセッサのレコード保存を表わした
ものにすぎないことを理解されたい。
また、境界ボックスは三角形の左下隅のちょうど上にあ
り、すなわち左下隅と一致し、かつ三角形の右上隅のか
なり外側かつ上にあることを理解されたい。境界ボック
スは、必ず完全に三角形のナベでの点の外側にくる。た
だし、必要要件として、それが三角形を完全に取り囲み
、かつフレーム・バッファ中で所定の方式でアドレス可
能な完全な4×4構成ブロツクから構成しなければなら
ない。
第9図の上端の表を再度参照すると、座標aX1ayは
境界ボックス内の最初の構成ブロックの原点を定義し、
座標bxsbyは境界ボックス内の最後の構成ブロック
の原点の座標を含むことに留意されたい。°°列°“及
び”行”と記したフィールドは、境界ボックス内の構成
ブロックの列数及び行数を示す。このデータをカウンタ
と一緒に使って、所与の三角形を完全に評価するために
数の計算の反復回数を制御する。
第10図に、座標プロセッサからすべての画素プロセッ
サに渡される三角形レコードを示す。このデータは、三
角形の境界ボックス中の各構成ブロックが処理されると
きに使われる。wl、w2、w3以外のすべてのデータ
は変化率データである。
wl、w2、w3は面取りの幅を示すが、その使い方に
ついては後で説明する。
図の上端の表に示すように、X座標及びX座標に対する
3つの距離の変化率を示す。それは、dlxldly;
d2xs d2y;d3x1d3yである。これらは点
がX方向及びy方向に単位距離だけ移動するときの三角
形の3辺までの距離の変化率を表わす。このレコードは
、カラー・データ変更速度の3つの項目、たとえばrX
l r y;g ×N g ’! : b ×N b 
Vをも含む。この6つの値は、やはり画素がX軸または
y軸に沿って単位距離だけ移動するときの3原色の強度
変化率を表わす。下記の例は、この図に参照したこれら
のいくつかの変数の計算方法を示したものである。この
計算方法は当技術分野では周知であり、引用した参照文
献に十分に記載されている。
例: dlx =b −a    (画素をX方向に移動する
場合の縁部1に対する距離の変化) d2y :d −c    (画素をX方向に移動する
場合の縁部2に対する距離の変化) rx = rb −ra   (画素をX方向に移動す
る場合の赤色の強度変化) gy = gc −ga   (画素をX方向に移動す
る場合の緑色の強度変化) 第11図に、構成ブロック・レコードとその各要素の意
味を示す。図の下側に、境界ボックス内の三角形及び構
成ブロックを示す。また、境界ボックスは、理想的な場
合三角形の3隅に接するが、大部分の場合はそうではな
いことにも留意されたい。図の上側に、構成ブロックの
隅の画素に対する計算したrgb強度及び三角形の縁部
までの距離を示す。16個の画素プロセッサが、それぞ
れ4×4ブロツク中の画素の1つを処理する。隅にない
画素を処理する画素プロセッサは、三角形の変化率デー
タを使って距離及びrgbの値を計算し、原点画素に対
する関係についての知識からその特定の距離及びrgb
の値を計算し、こうしてフレーム・バッファ中で更新す
べき、陰影のついたアンチエイリアシングされた値を計
算する。
第12図に、本発明の第1の好ましい実施例のff1t
i?プロセツサ・ルーチンの流れ図を示す。この流れ図
は、必要な特定の機能に関する限り自明である。この流
れ図の各ブロックで指定されている特定の処理の詳細に
ついては後の図を参照されたい。
ブロック10は、連続する三角形データのホスト・プロ
セッサからの受取りを意味し、三角形がすべて処理され
るまで、以前の三角形が完全に評価されたとき新しい三
角形にホストからアクセスする。ブロック12ないし2
oで、三角形レコード・データが計算され、すべての個
別画素プロセッサに送られる。このデータは、単一の三
角形または境界ボックスに関する画素プロセッサのすべ
ての反復に対して同じである。
ブロック22は、連続する各構成ブロックに対するデー
タを計算するときの画素プロセッサの連続反復を制御す
る。もちろん、第9図に示したデー゛りがこの目的に利
用される。ブロック24ないし30で、各構成ブロック
に独特であり、画素プロセッサの各反復時に更新しなけ
ればならないデータを計算する。このデータを第11図
に示す。
以上要点を繰り返すと、各三角形についてその三角形の
境界ボックス内の複数の構成ブロックが処理される。こ
うして、座標プロセッサから個別の画素プロセッサにデ
ータが送られる。ブロック20で、その三角形に関する
一般データが一度に送られ、画素プロセッサの各反復時
に、図のブロック30に示すように新しい構成ブロック
・データが送られる。すなわち、必要なすべてのデータ
が画素プロセッサに送られる。画素プロセッサでフレー
ム・バッファが読み書きされ、アンチエイリアシングし
、陰影を付けたrgb値が以前にフレーム・バッファ中
にあった値で置き換えられ、またはその値と組み合わさ
れる。
第10図にフレーム・バッファの原点に対して示した距
離及びrgbの値を計算する。これらの値を座標プロセ
ッサ手順の内部ループで使って、境界ボックス中の各構
成ブロックに関する距離及びrgbを計算する。後でわ
かるように、構成ブロックに関する値を計算するための
式は、基準としてフレーム・バッファの原点からの距1
11びrgbの値を使う。同様に、所与の画素に関して
計算を行なうための画素プロセッサ中の式は、特定の構
成ブロックの原点に関する既知の値を使う。
したがって、三角形(境界ボックス)について1回、距
離及びrgb強度の変化率を計算し、それを座標プロセ
ッサの計算で各構成ブロックに使用し、後で個々の画素
プロセッサ内で各画素の計算に使用する。
第12図の計算ブロックの大部分は、示されたブロック
で実施される特定の機能について詳しく記載した他の図
に対する参照を示していることに留意されたい。またこ
の流れ図のいくつかのブロックでは、特定の”ブロック
”内である処理を実施することを参照している。これは
もちろん、特定の境界ボックス内にあると判定された構
成ブロックを参照している。
第13図に、面取り幅wkの計算を実施するのに必要な
数学的演算を示す。この図で、ブロック1はルーチンへ
の入口を示し、ブロック2は3つの面取り部に対する3
つの計算を示し、ブロック3は出口を示す。面取り部の
意味はそれが距離の変化率の関数であることである。す
なわち、X座標及びX座標に沿った変化率が比較され、
大きい方が選ばれる。
第14図は、画素プロセッサ・ルーチンの流れ図である
。SIMDアーキテクチャの16個のプロセッサ(M×
N)すべてで並列に実行されるのがこのルーチンであり
、かつ第12図に示すように座標プロセッサによって行
なわれる事前処理と共に本発明の真髄である。16個の
画素プロセッサのブロックが新しい構成ブロックに対す
るデータを計算するとき、各反復の始めから終わりまで
各画素プロセッサ中で実行されるのがこのルーチンであ
る。このルーチンの以前の時点で計算されたアンチエイ
リアシング係数はゼロであると決定され、画素が三角形
の外側にあり、フレーム・バッファ内の記憶された値に
変化がないことを示しているが、SIMDアーキテクチ
ャで当然必要なプログラムの完全な並列性を維持するた
めに、この方法は依然として完全に実行される。
ここで図を参照すると、ブロック1は手順の反復を示し
、ブロック2は完全な画像を構成するすべての三角形が
もう処理されたかどうか判定するためのテストが行なわ
れることを示す。そうでない場合、システムはブロック
3に進む。
ブロック3で、画素プロセッサは座標プロセッサから、
完全な三角形または境界ボックスで一定であるデータを
得る。これらのデータは、第10図に示すように、rg
bの変化率、距離の変化率、及び面取り幅である。次に
手順はブロック4へ進み、そこで特定の三角形に対する
境界ボックス内にまだ他にも構成ブロックがあるかどう
か判定するためのテストが行なわれる。最後の構成ブロ
ックが処理された場合、手順は分岐してブロック2に戻
り、そうでない場合はブロック5に進む。
ブロック5では、処理中の特定の構成ブロックに特有の
データを座標プロセッサから読み取る。
こうしたデータとしては、構成ブロックの原点から三角
形の縁部までの距離、及びカラー強度値rgbがある。
このデータが、第11図に関して先に述べた構成ブロッ
ク・レコードである。次に手順はブロック6に進み、そ
こでアンチエイリアシング係数(a)が計算される。こ
の計算の詳細は第15図で説明する。
ブロック7では、第16図に詳しく示すように、図では
rrlgglbbとして示されている陰影付きカラー強
度の値を計算する。
ここで、システムは、計算した陰影付きの値またはフレ
ーム・バッファからの元の値、あるいはその2つの一部
分がフレーム・バッファに書き戻されるかかどうか判定
を行なうことに留意されたい。そのために、ブロック8
.9.10を呼び出す。
ブロック8では、フレーム・バッファから元のカラー強
度r Ox g Olb Oの値を読み取る。ブロック
9では、第17図に詳しく述べるようにアンチエイリア
シング係数を使って新しいカラー強度値r n1gn1
bnを計算する。
ブロック10で、新しいカラー強度値をフレーム・バッ
ファの当該の画素位置に記憶させる。
これで画素プロセッサ・ルーチンは終了し、手順はブロ
ック4に戻って、そこで特定の三角形に対して未処理の
構成ブロックが残っているかどうか判定するためのテス
トが行なわれる。
第15図に、アンチエイリアシング係数(a)の計算方
法を示す。計算ブロック2に示すiとjの値は特定の各
画素プロセッサに特有であり、その画素プロセッサがこ
のブロックでその特定画素に作用していることを決定す
る。したがって、構成ブロックの左下隅すなわち原点に
ある画素を計算する画素プロセッサは、値i =O1J
 =0を持つことになる。逆に、構成ブロックの右上隅
の画素を処理する画素プロセッサは値i=:L j=3
を持つ。
関数″determa″は第18図にさらに詳しく示さ
れている。この関数は3つのアンチエイリアシング係数
a1、a2、a3を決定するため、3回呼び出される。
各場合に、当然のことながら、ddkとwkの適当な値
が利用される。
最後に、その特定の画素に対するアンチエイリアシング
係数(a)を、al、a2、a3の最小値として決定す
る。この値は第14図の計算ブロック9で使用される。
次に、第15図のブロック2に示した変数の簡単な定義
を示す。
dl、d2、d3  − 座標プロセッサから読み取っ
た、構成ブロックの原点から 三角形の3つの縁部までの距 離 is J      −構成ブロック中での画素の位置
を指定する、各画素プロセラ サに特有の指標、上記に説明 したとおり0−3の値をとる。
ddl、dd2、dd3− 画素から三角形の縁部まで
の計算した距離 ”determa”   −各縁部に対する距離及び面
取り幅に基づく(a)を戻す関 数 (a)       −アンチエイリアシング係数w1
、v2、v3  − 各三角形ごとに座標プロセッサか
ら1回読み取られる面取 り幅、(wk) 第16図に、第14図のブロック7の陰影付きカラー強
度値の計算方法を示す。第15図に関して先に述べたよ
うに、i及びjは特定の画素プロセッサに特有の指標で
あり、それらを使って特定の画素プロセッサが構成ブロ
ック内のそれ自体の特定の画素位置に対して調整を行な
うことができる。自明のようにこの図の計算ブロック2
で使われる値r1g11)はブロック5で座標プロセッ
サから画素プロセッサに送られたものである。値r×N
 r 7% g Xz g YN b XX k) Y
はブロック3で画素プロセッサ及び座標プロセッサに送
られたものである。
次に、第16図のブロック2に示した変数の簡単な定義
を示す。
rs lE% b    −各構成ブロックに対する座
標プロセッサから読み取ったカ ラー強度値 ’rSJ      −第15図と同じ指標で、O−3
の値をとる r×、ry、gx、  −x軸及びy軸に沿ったカラー
gys bx、by     変化率の値で、各三角形
(境界ボックス)ごとに1回座標 プロセッサから読み取られる 第17図に、画素プロセッサ手順の終わりに特定の画素
位置でフレーム・バッファに戻される新しいカラー強度
値r ns g nz b nを生成するのに利用され
るアンチエイリアシング係数(a)を示す。第17図の
計算ブロック2のすべての変数はすでに定義済みである
。アンチエイリアシング係数(a)は第15図に概略を
示した手順で計算され、陰影付きカラー強度値rr、g
g1bbは第16図に詳しく示した手順で計算されてお
り、旧カラー強度値rO1go、boはフレーム・バッ
ファの当該画素位置からアクセスされる。
第17図の手順に対してもう一言指摘しておくと、前述
のようにアンチエイリアシング係数(a)は1.0また
は分数であり、新カラーは新しい(n)計算した陰影付
きの値、古い(0)値はフレーム・バッファ中の値また
はそれぞれの分数である。(a)が1の場合、今計算し
た画素に対すル新しい画素値は変更されずにフレーム・
バッファに入れられ、それが0の場合は、その画素が三
角形の外側にあることが知られ、フレーム・バッファ中
の旧値は変更されないままになる。最後に、(a)が分
数の場合、その分数が図に示した手順に従ってアンチエ
イリアシングを行なうのに使われる。
第18図に、処理中の画素に関する特定の三角形の縁部
に対するアンチエイリアシング係数(a)が1か0かそ
れとも分数かを決定するのに必要な計算を指定する。図
から明らかなように、処理中のある画素に関する三角形
の3つの縁部それぞれについて3つのアンチエイリアシ
ング係数al、a2、a3を決定する際に、この手順に
従う。ブロック2で、距離の変化率ddkが0と比較さ
れる。それがO未満の場合、システムはブロック3に進
み、手順はその特定のアンチエイリアシング係数に対し
て0の値を戻す。そうでない場合は手順はブロック4に
進み、そこで値ddkが幅wkと比較される。ddkが
wkよりも大きい場合、システムはブロック5に進み、
手順はその特定のddkの値に対して値1を戻す。dd
kがwkより小さい場合、システムはブロック6に分岐
し、そこで指定された比ddk/wkがその縁部に対す
るアンチエイリアシング係数の値として戻される。どの
経路を取るかにかかわらず、この関数は実行に同じ時間
がかかる。このため、SIMDアーキテクチャで必要と
されるように、画素プロセッサはすべて並列に実行する
ことができる。
第19A図及び第19B図は、第10図に関して先に述
べたように画素がX方向及びy方向に1単位移動すると
きの三角形の3つの縁部までの距離の変化率及びカラー
の変化率を計算する際に必要な幾何関係及び三角法の概
略図である。さらに具体的に言うと、第19A図は距離
dkx1dkyを使った計算方法を記述し、第19B図
はカラー強度の変化率の3つの値、たとえばrXl r
Vの計算方法を記述している。各図の上半分には座標プ
ロセッサの計算の概略図を示し、下半分には各画素プロ
セッサ中で行なわれる指標+zJの評価の概略図を示す
。これら各図について1組の簡単な幾何関係式も後で例
として示す。
第19A図は、座標プロセッサ及び画素プロセッサ中で
必要なデータを計算するのに使われる幾何構造を示した
ものである。座標プロセッサ中では、構成ブロックの原
点から縁部までの距離を計算する。画素プロセッサ中で
は画素から縁部までの距離を計算する。どちらの場合に
も、変化率の値がわかっている必要がある。それらの値
は座標プロセッサで計算され、値dxk及びd7k(た
だしに=1−3)として示される。どちらの場合にも、
原点からの距離がわかっている必要がある。これらの値
は座標プロセッサで計算される。座標プロセッサはdd
lに対する式を使って構成ブロックの原点から4部1な
どへの距離を計算する。画素プロセッサは同じ式を使っ
て、適当な指標+1 Jを用いてその特定の画素から縁
部までの距離を見つける。
ある点がある三角形中にある場合、各線からその点まで
の距離はすべて各点を時計回りの方向に選んだかそれと
も反時計回りの方向に選んだかに応じて、正または負に
なることに留意されたい。
したがって、点が点1から点2に移動し、最初の距離が
負である場合、方向を逆にして点1から点3に移動する
と正の距離が得られることになる。
その場合、3つの距離がすべて正であれば、ある点が三
角形内にあることを示す。したがって画素プロセッサ中
でddlが負の場合、ddl、dd2、dd3に−1を
掛ける。こうすると、三角形中のある点について、ナベ
での距離が正になる。
本実施例では、指標変数11jは幅2ビットである。画
素プロセッサ中には乗算器はないものと仮定するが、加
算によって乗算を迅速に実行することができる。こうす
ると、画素プロセッサに必要なハードウェアが簡単にな
る。またこの実施例では、i及びjは距離またはカラー
の計算に対する”低次°゛の効果を受は持つ。たとえば
i’dxを計算するレジスタは幅が広くなくてよい。d
l値はddlに対する最終値の高次効果を含んでいる。
第20図ないし第23図に関して簡単に説明する本発明
の第2の実施例では、画素プロセッサは乗算器を備えて
いるものと仮定する。その場合、i及びjは4×4の構
成ブロックだけでなく境界ボックス全体にわたる指標を
カバーしなければならないので、かなり幅広い量になる
。後で示すように、dlは各三角形ごとに1回送られ、
新しいiとjが各ブロックごとに送られる。この第2の
実施例では、座標プロセッサから個々の画素ブロセッサ
に送られるデータの合計量が減少する。
座標プロセッサ中での計算 ΔX:X2−x。
Δ’I= y2−Y+ L=((ΔX)2+(Δy)2)l/2=線分の長さし ”XXYから縁部(1)までの距離 dd1=d1+1−dx+j−dy 二次の所から縁部までの指標付きの距離1) 座標プロ
セッサ中の構成ブロックの原点、11jは境界ブロック
の 原点から指標付け 2) 構成ブロック内の特定の画素、11jは構成ブロ
ックの隅(原点)か ら指標付は 第19B図は、座標プロセッサから画素ブロモ・フサ中
の処理を介して進む陰影付き赤色値(rr)を最終的に
計算するための式を示す。距離の計算の場合と同様に、
変化率データと原点からの赤色値rが必要である。もち
ろん、青(b)と緑(g)についても同様の計算が行な
われる。
上記の座標プロセッサの計算をホストで行なって座標プ
ロセッサに送り、次いで座標プロセッサから画素プロセ
ッサに送ることもできることに留意されたい。ここでは
これらの計算は、わかりやすいように座標プロセッサ中
で実施されるものとして図示し説明してきた。
座標プロセッサ中での計算 D” (X2y3  V2X3)+ ()’+X3−X
+73)+(X+72−72X2) 中での計算 rr=r+rx°i+ry°y ただし、これは(1)構成ブロックの隅及び(2)構成
ブロックの特定の画素にある赤色の値である。
次に、本発明の第2の実施例について簡単に説明する。
というのは、それは、三角形の内容及びブロック・レコ
ードが変更されている点以外は第1の実施例と非常に類
似している。この実施例では、−度画素プ0ロセッサに
送られた三角形レコードに多くのデータが入れられ、新
しい構成ブロックが処理されるたびに再計算して送らな
ければならない構成ブロック・レコード中には少しのデ
ータが入れられる。
第20図は第10図とまったく同様の図で、三角形レコ
ードに含まれるデータが図の上端に示してあり、これら
のレコードの幾何的意味が下側に示しである。データ・
レコードの下側の行に示すデータ項目が三角形レコード
に追加される。それらの項目はdl、d2、d3、rs
gsbであり、それぞれ境界ボックスの隅から縁部まで
の距離、及び上記境界ボックスの隅すなわち原点でのカ
ラーのカラー強度rgbを表わす。
第21図に、新しい構成ブロックが処理されるごとに座
標プロセッサから画素プロセッサに送られる新しい構成
ブロック・レコードを示す。座標プロセッサからの指標
11c及び、jlcによって、処理中の特定の構成ブロ
ックの原点が境界ブロックの原点に対して位置決めされ
る。画素プロセッサ中で、それらの指標は、画素プロセ
ッサによって評価中の構成ブロック内の特定の画素に特
有のizP及びjtP(pは画素を表わす)に加えられ
る。すぐわかるように、第23図の新しい画素プロセッ
サ・ルーチンの流れ図で、画素プロセッサはこれらの新
しい指標から計算した×N V座標のデータを使って、
必要な距離d1、d2、d3及びカラーrgbの値を計
算することができる。
第21図には、例として三角形内の特定の構成ブロック
が示しであることに留意されたい。図の隣りの凡例に示
すように、この構成ブロックの原点に対してi c=8
及びj c=4である。
第22図は、第2の実施例の修正した座標プロセッサ・
ルーチンの流れ図である。これは、各三角形について先
に述べたように、記号6をつけたボックスで、境界ボッ
クスの隅すなわち原点からの距離が一度計算され、また
境界ボックスの隅すなわち原点からのカラー強度値rg
bも同様に座標プロセッサによって計算される点で、第
12図に示した第1の実施例の流れ図とは違っている。
これらの値は、”新しい゛三角形レコードとして画素プ
ロセッサに送られる。これを第22図のブロック3に示
す。この流れ図の残りの部分のブロック3から8までは
、ブロック7がわずかに異なり、三角形レコード中の追
加情報が画素プロセッサに送られる以外は、第12図と
同じである。
この手順のブロック9で、境界ボックス中の構成ブロッ
クを位置決めするic及びjcが、この内部ループの各
反復時に座標プロセッサによって計算され、°画素プロ
セッサに送られる。第12図のブロック26及び28で
は距離及びカラーを計算したが、この座標プロセッサ・
ルーチンではそれらのブロックが除かれている。ブロッ
ク10で、適当なic及びjcを含む新しい構成ブロッ
ク・データが画素プロセッサに送られ、システムは内部
ループのブロック8に戻る。
第23図は新しい画素プロセッサ・ルーチンを示したも
ので、したがって以前に詳しく説明した第14図と非常
に類似している。第22図に関して述べたように、第2
3図のブロックは、記号7をつけたちの以外がすべて第
14図と同しである。
すなわち、第23図の手順のブロック3で、境界ボック
スの原点に対して参照された三角形に対するrgb及び
dl、d2、d3の値を含めて修正された三角形データ
が座標プロセッサから読み取られる。
このルーチン中でのもう一つの相違点は画素プロセッサ
・ルーチンのブロック5にあり、そこでは特定の構成ブ
ロックの原点に対する距離及びカラーではなくて値ic
及びjcのみを座標プロセッサから読み取ればよい。以
前に説明したように、これらの新しい指標を使うと、ブ
ロック6でアンチエイリアシング係数を計算する目的で
値rgb及びdL d2、d3の適切な評価を適切に指
摘付けすることができる。第14図の以前に述べた手順
で実行されるのと同じ計算がブロック6から10までで
実行される。ただし、ddl、dd2、dd3に対する
値が、今度は個々の構成ブロックの原点からではなく、
境界ボックスの原点から指標付けされたdL d2、d
3を使って計算される。すぐわかるように、結果は同じ
になる。
これで、第22図及び第23図の流れ図に関して述べた
修正を伴う、本発明のこの好ましい実施例の説明を終わ
る。頭記の特許請求の範囲に述べる本発明の精神及び範
囲から逸脱することなく、手順の細部にその他の多数の
変更及び修正を加えることができる。すなわち、スムー
スな陰影を付はアンチエイリアシングしたカラー3次元
三角形を2次元表面上に表現するのに必要な複雑な手順
にこのようなSIMDアーキテクチャを使用できるよう
にする、SIMDアーキテクチャによる画素プロセッサ
・システムのすべてのプロセッサで実行できる、完全に
並列な手順が提供される。
参照文献 [11H,グラール(Gourard )、「曲面の連
続陰影付け(continuous Shading 
of CurvedSurfaces) J 、I E
 E Eコンピュータ紀要、C−20(6)、pp、6
23−628.1971年6月。
[2]M、J、フリン(Flynn)、「超高速計算シ
ステム(Very lligh 5peed Comp
utingSystems) J 、I E E E発
表要旨集(Proc。
of the  IEEE) 、54 :1901−9
、1966年。
[3]  J、 フオリー(Foley) 、A、 /
<ン・ダム(Van Dane)、「対話型コンピュー
タ・グラフィックスの基礎(Fundan+ental
s ofInteractive Computer 
Graphics) J )Addison−Wesl
ey 社、ニューヨーク、1982年。
[4]  M、E、ニューウェル(Newell) 、
RoG。
ニューウェル、T、L、サンナ+ (Sancha) 
1「陰影付きピクチャ問題に対する新しいアプローチ(
A New Approach to the 5ha
dedPicture  Problem)  J  
) Proc、  八CM  Hat。
Conf 、、pp、443.1972年。
[5]B、J、シ+バター(Schacter )  
(NIB )、「コンピュータ画像の生成(compu
terImage Generation) J 1J
ohn Wiley & 5ons社、ニューヨーク、
1983年。
[6]  G、B、)マス(Thomas )シュ1ア
)「計算と解析幾何(calculus and An
alyticGeometry) J 1Addiso
n−Wesley1マサチューセッツ州リーディングリ
−ディング。
好ましいプログラム実施例の説明 下記の資料は、SIMD環境で画素プロセッサの動作を
実行することのできるプログラムである。
このプログラムは、パスカル・プログラミング言語で書
かれている。通常通り、実際のプログラム・ステートメ
ントは左の欄にあり、特定の命令または命令サブセット
に関する様々な文章による“注釈”が右の欄にある。
このプログラムは、M×N  SIMD画素プロセッサ
・アレイの各プロセッサで、前述のような境界ボックス
の特定の構成ブロック中の関連するM×N個の画素それ
ぞれについて陰影付は機能及びアンチエイリアシング機
能を実行するために実行されるように意図されたもので
ある。このプログラムは、座標プロセッサが次の3部分
からなる1組のレジスタを介してM×N個の画素プロセ
ッサのそれぞれと通信するものと仮定する。
1) どんな種類のデータがデータ・レジスタにあり、
どんな動作が実施されるかを画素プロセッサに知らせる
oPレジスタ。
2) 座標プロセッサから読み取ったすべてのデータを
記憶する、XX7% Z及び22データ・レジスタ。z
zはフレーム・バッファ中のM×N個の画素アレイを指
す指標であり、たとえばその画素が現在処理中の特定の
境界ブロックの原点アドレス(第1の実施例)である。
各画素は3つのカラー値(rlgzb)からなる。別々
の画素記憶アレイがあり、各画素プロセッサがそれに接
続されている。この後者のアレイが全体でフレーム・バ
ッファを構成する。
3)  cpフラグとppフラグはそれぞれ座標プロセ
ッサと画素プロセッサの間を初期接続するための1ビツ
トのフラグである。座標プロセッサが画素プロセッサに
書込みを行なうとき、Cpフラグをセットし、読取りを
行なうときppフラグをクリアする。補足ルールが画素
プロセッサに適用される。
初期接続手順は、任意の通信システムでの通常の手順で
ある。その動作は簡単かつ周知であり、これ以上説明す
る必要はない。
プログラム°tri“は、画素プロセッサが上記のレジ
スタを介して座標プロセッサと通信するためのプログラ
ムである。このプログラムでは、座標プロセッサ及び画
素プロセッサは、実行される命令などの点で通常のプロ
セッサであると仮定する。以下の説明はプログラム“t
ri“の全体手順及び主な変数に関するものである。
(*−一−−−−−−−−−−−−−−*)Progr
am tri; (*−−−−−−−一−−−−−−−−1)var op、x、y、z、zz+         (八−ド
ウエア・レジスタ及びフラグ)cpflag、ppfl
ag        (A−ドウエア・レジスタ及びフ
ラグ)r X + gX + b X +      
 (最初に渡された増分値)rytgy+bY+ dlx、d2x、d3x。
dly、d2y、d3y (各反復ごとに次の6つの値が供給される)di、d2
.d3.      (点と三角形の各辺との距離)r
9gJ+ (座標プロセッサから読み取った赤、緑、青の三角形カ
ラーの値) 1、j+        (既知の画素プロセッサ指標
)opcode  (座標プロセッサからのopを保持
する): integer ; fb:array(0,,2,0,、max)of i
nteger; (=:−−−−−−−−−−−−−−−−:)begi
n          (主プログラムの)vaiti
n; (zzはフレーム・バッファのアクセスに対してラッチ
する必要がある) opcode : =op ; (cp=座標プロセッサ) (pp=画素プロセッサ) case opcode of (以下は三角形ごとに1回行なう) 1:  readcp (rx、gx、bx);2: 
 readcp (ry、gy、by);3:  rc
adcp (dlx、d2x、d3x);4:  re
adcp (dly、d2y、d3y);(以下は反復
のたびに行なう) 5:  begin readcp (dl、d2.d
3);6:  begin readcp (r、g、
);compute; endi otherwise;           (何もし
ない)end;  (主プログラムの) (*−−−−−−−−−−−−−−−−:)(*−−−
−−−−−−−一−−−−−:)procedure 
 compute;(*−一一−−−−−−−−−−−
−−*)var ddl、dd2.dd3.        (時間変数
)w l + w 2 + w 3 + at、a2.a3゜ rr 、 gg 、 bb 、          (
時間変数)a、         (アンチエイリアシ
ング値)ro 、 go 、 bo 、       
   (旧fbカラー値)rn 、 gn 、 bn 
         (新fbカラー値)’ !nteg
er ; <=−−−−−−一−−−−−−−−−=)be+ri
 n (1つの三角形に対するアンチエイリアシング値(a)
を計算する) ddl:= di + i’dlx + j”dly;
  (この画素にdd2:” d2 ” i”d2x 
+ j”d2y;   対する距離をdd3:= d3
 + i”d3x + j”d3y;     計算す
る)wl:” max (dlx、 dly);  (
t r i内部の面取りv2:= wax (d2x、
 d2y);幅(wk)を計算する)w3:= max
 (d3x、 d3y);al:= determa 
(ddl、 wl);   (アンチエイリアa2:=
 determa (dd2. w2);  フラグを
決定する)a3:=determa (dd3. w3
)ia:= win (al、 a2. a3);  
 (三角形に対する(a)を計算する) (”新しいカラー値8を   (座標カラーを使って、
計算する) 円滑化された値を計 算する。後でそれを 使って、アンチエイ リアフラグしたカラー 値を計算する) rr” r ” !’rX ” J”ry;gg::g
 + i’gx +j’gy;bb:=  b  + 
 i’bx  +  j xby;readfb (r
o、 got bo);  (フレーム・バッファから
読み取る) rn:= a’rr + (1−a)’ro; ((a
 )の量によってgn:= a’gg+(1−a)’g
o;    アンチヱイリアフラグされた新しい カラーを計算する) bn:= a′:bb  + (1−a):bo;(混
合する2つのカラーは フレーム・バッファ及び 今計算した円滑化した画 素からのものである) writefb (rn、 gn、 bn);(フレー
ム・バッファに1)平均値、 2)フレーム・バッファからの旧値、または3)座標プ
ロセッサからの値を書き込む)end ; (:−−−−−−−−一−−−−−−−:)proce
dure waitin;     (ppはCpから
の(:−−−−−−一−−−−−−−−−:)    
   入力を待つ)egin epeat until  cpflag=1; (:−−−−一−−−−−−−−−−−:)(:−−−
−−一−−−−−−−−−−−−−−−−−−−一中)
procedure readcp  (a、  b、
  c:  integer;(cpから読み取る) <=−−−−−−−−−−一−−−−−−−−−−−−
−−−−=)egin a:=x; b::y; C”Z: cpf lag:=O nd function determa (dk、 wk:
 integer): integer;egin if dk<=0     ((a)として0,1また
はthen determa :=O分数の値を戻す)
else if dk<vk t’hen determa :=dk div vk
else determa := l;nd i <=−−−−−−−一−−−−−−−−−−−−−〜−
−一−=>(:−−−−−−−−−−−−−−−−−−
−−−−−−一−−:)procedure writ
ecp (a+ b、 c: integer)i(p
pがcpに書き込む) (:−−−−−−−−−−−−−−−−−−−−−−−
−−−−:)egin ppf lag:=l ; x:=a; y::b、 z:=c; end ; (*−−−−−−−−−−−−−−−−:)(*−−−
−−−〜−−−−−−−−−−−−−−−−−−−−=
)procedure  readfb  (a、b、
c:  integer);(ネーーーーーーーーーー
ーーーーー−一−−−−−−−−−−−−−−−−−−
−一主)begin a::fb  (0,zz); 
 b:=fb  (1,zz);c::fb  (2,
zz) end; (:−−−−−−−−−−−−−−−−−−−一−−−
−−−−−*)procedure writefb 
 (a、b、  C:  integer);(22を
使って、フレーム・ バッファに書き込む) <*−−−−−−−−−−−−−−−一−−−−−−−
−−−−−−−−−−−−−=>begin fb (
0,zz):=a; fb(1,zz)::b;fb(
2,zz):=c end ; (:−−−−−−−−−−−−−−−−−−−−−−−
−−−−−−−−−−−−−:)F0発明の効果 上記のように、本発明によれば、SIMD並列処理アー
キテクチャの並列実行能力を利用する3次元ビデオ表示
用の縁部をアンチエイリアシングしスムースな陰影を付
けたカラー三角形を迅速に生成するための方法が提供さ
れる。
【図面の簡単な説明】
第1図は、SIMDアーキテクチャを使った本発明の実
施を示す、概略的機能構成図である。 第2図は、必要なデータを順次計算するために特定の計
算をどのように分解して各プロセッサに経路指定するか
を説明する幾何関係図である。 第3図は、陰影付けの計算に使うカラー変化率データを
どのようにして決定するかを説明する幾何関係図である
。 第4図は、アンチエイリアシング用データをどのように
して生成するかを説明する幾何関係図である。 第5図は、再計算された陰影付は及びアンチエイリアシ
ング用ビデオ情報をもたらす、システム中でのデータ流
れを示す流れ図である。 第6図は、システム中のすべての主要機能要素及びその
相互関係を示す、第1図よりもやや詳しいシステム全体
の概略的機能構成図である。 第7図は、本発明を実施する際に利用される個々の画素
プロセッサとフレーム・バッファの指定セクションとの
間の機能的関係を示す図である。 第8図は、表示画面上の2個の三角形及びその表示画面
に現われるときの位置指定座標、並びに本発明の実施中
にホストから座標プロセッサに転送しなければならない
、表示を構成する各三角形を定義する座標のデータ形式
を示す図である。 第9図は、定期的に各画素プロセッサに送られ、画素プ
ロセッサ内で本方法の反復処理を制御するために使用さ
れる、境界ボックス内の個々のブロックの座標のデータ
形式及び関連図である。 第10図は、三角形の完成した境界ボックスで同一であ
る、定期的に座標プロセッサから各画素プロセッサに送
られる1組のデータの、単一”三角レコード”のデータ
形式及び関連図である。 第11図は、座標プロセッサから各画素プロセッサに送
られ、境界ボックス内の各構成ブロックごとに改訂され
るデータの、”ブロック・レコード”のデータ形式及び
関連図である。 第12図は、本発明の方法を実施する際に座標プロセッ
サ中で行なわれる一連の処理の流れ図である。 第13図は、第12図の”面取り幅計算”ブロックに含
まれる諸ステップの流れ図である。 第14図は、本発明の方法の実施に必要な一連の処理を
実施する際に、SIMDプロセッサの1個の画素プロセ
ッサ内で行なわれる処理の概略的流れ図である。 第15図は、第14図に示したアンチエイリアシング係
数を計算するためのサブルーチンの流れ図である。 第16図は、第14図に示した”陰影付きrgbII値
を計算するのに必要な処理を示す流れ図である。 第17図は、新しい赤、青、緑の値(rn1gn5bn
)を生成するのに必要な計算を示すサブルーチンの流れ
図である。 第18図は、第15図に示したアンチエイリアシング係
数を計算するためのサブルーチン内で利用される関数″
d e t e rma″を計算するのに利用されるサ
ブルーチンの流れ図である。 第19A図及び第19B図は、第12図で参照される座
標プロセッサが実行する幾何計算の説明図である。 第20図は、本発明の第2の実施例の、座標プロセッサ
から各画素プロセッサに送られる単一“三角形データ・
レコード°°のデータ形式及び説明図である。 第21図は、本発明の第2の実施例の、境界ボックス内
°の複数ブロックを処理する際に座標プロセッサから各
画素プロセッサに送られる”ブロック・レコード°“の
データ形式及び関連説明図である。 第22図は、本発明の第2の実施例を実施する際に座標
プロセッサ内で行なわれる処理の、第12図と同様の全
体流れ図である。 第23図は、第2の実施例に従って本発明の方法を実施
する際に各画素プロセッサ内で行なわれる処理の、第1
4図と同様の流れ図である。 出願人  インターナショナル・ビジネス・マシーンズ
・コーポレーション 代理人  弁理士  山  本  仁  朗(外1名) FIG、( FIG、2 祈愚紮 FIG、6 FIG、7 −〜         に FIG、 9 境界ホ・/り入 ムー し IGi8 CPψλらFPへの3角形レコード′ FIG、22

Claims (1)

  1. 【特許請求の範囲】 ホスト・プロセッサと、座標プロセッサと、SIMDア
    ーキテクチャに従って構成された複数の画素プロセッサ
    と、表示モニタ上に表示すべき画像データを記憶するた
    めのフレーム・バッファをもつ画像表示システムにおい
    て、滑らかに陰影付けされアンチエイリアシングされた
    3次元三角形を上記フレーム・バッファ中にレンダリン
    グするための方法であって、 このとき画像データのM×Nの連続する画素を上記フレ
    ーム・バッファ中にレンダリングするためのM×Nのプ
    ロセッサが存在し、 上記フレーム・バッファは、アドレス可能なM×Nの画
    素構成ブロックからなる複数の長方形アレイとして構成
    され、 上記M×Nのプロセッサの各プロセッサは、上記フレー
    ム・バッファ中の上記M×Nの画素構成ブロックからな
    る各アレイ中の空間的に関連付けられた特定の記憶位置
    に選択的に接続可能であり、上記画素プロセッサのすべ
    てを同時に動作させる並列手続を含み、該手続は次の段
    階を有する画像処理方法。 (a)レンダリングすべき特定の三角形を完全に取り囲
    む境界ボックスの座標を決定する段階。該境界ボックス
    は、M×Nの画素構成ブロックのc×rのアレイからな
    っている。 (b)最初の構成ブロックの起点と、上記境界ボックス
    に含まれている構成ブロックの行の数(r)と、列の数
    (c)を決定する段階。 (c)画素のM×Nの構成ブロック全体をレンダリング
    するべく完全に並列に動作するために上記M×Nの画素
    プロセッサのアレイを呼び出す段階。 (d)上記画素プロセッサによって計算された、新たに
    レンダリングされたM×Nの画素のアレイで上記フレー
    ム・バッファを更新する段階。 (e)特定の境界ボックスに含まれているそのようなす
    べての構成ブロックがレンダリングされてしまうまで画
    素の連続的なM×Nの構成ブロックをレンダリングする
    ために上記M×Nの画素プロセッサの動作を繰り返す段
    階。 (f)上記表示モニタを駆動するために上記フレーム・
    バッファのレンダリングされた内容を利用する段階。
JP63307075A 1987-12-10 1988-12-06 画像処理方法 Pending JPH01191985A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13093087A 1987-12-10 1987-12-10
US130930 1993-10-04

Publications (1)

Publication Number Publication Date
JPH01191985A true JPH01191985A (ja) 1989-08-02

Family

ID=22447040

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63307075A Pending JPH01191985A (ja) 1987-12-10 1988-12-06 画像処理方法

Country Status (5)

Country Link
US (1) US5392385A (ja)
EP (1) EP0319787B1 (ja)
JP (1) JPH01191985A (ja)
CA (1) CA1309198C (ja)
DE (1) DE3855377D1 (ja)

Families Citing this family (112)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100232931B1 (ko) * 1989-12-21 1999-12-01 이데이 노부유끼 컴퓨터 그래픽용 쉐이딩 방법 및 시스템
US5031117A (en) * 1990-02-13 1991-07-09 International Business Machines Corporation Prioritization scheme for enhancing the display of ray traced images
GB2251772B (en) * 1991-01-09 1994-08-10 Du Pont Pixel Systems Programmable computer graphics system with parallelized clipper operations
GB2253979B (en) * 1991-01-09 1995-01-11 Du Pont Pixel Systems Graphics accelerator system with line drawing and tracking operations
GB2251769B (en) * 1991-01-09 1994-08-17 Du Pont Pixel Systems Graphics accelerator system with rapid computation of outlines
US5774133A (en) * 1991-01-09 1998-06-30 3Dlabs Ltd. Computer system with improved pixel processing capabilities
GB2251770B (en) * 1991-01-09 1995-01-11 Du Pont Pixel Systems Graphics accelerator system with polygon traversal operation
JP3137245B2 (ja) * 1991-10-30 2001-02-19 ソニー株式会社 自由曲線作成方法及び自由曲面作成方法
US5388841A (en) 1992-01-30 1995-02-14 A/N Inc. External memory system having programmable graphics processor for use in a video game system or the like
US5808627A (en) * 1994-04-22 1998-09-15 Apple Computer, Inc. Method and apparatus for increasing the speed of rendering of objects in a display system
TW304254B (ja) * 1994-07-08 1997-05-01 Hitachi Ltd
US5668940A (en) * 1994-08-19 1997-09-16 Martin Marietta Corporation Method and apparatus for anti-aliasing polygon edges in a computer imaging system
US5852443A (en) * 1995-08-04 1998-12-22 Microsoft Corporation Method and system for memory decomposition in a graphics rendering system
US5949428A (en) * 1995-08-04 1999-09-07 Microsoft Corporation Method and apparatus for resolving pixel data in a graphics rendering system
US5864342A (en) 1995-08-04 1999-01-26 Microsoft Corporation Method and system for rendering graphical objects to image chunks
US5808617A (en) * 1995-08-04 1998-09-15 Microsoft Corporation Method and system for depth complexity reduction in a graphics rendering system
US5990904A (en) * 1995-08-04 1999-11-23 Microsoft Corporation Method and system for merging pixel fragments in a graphics rendering system
US5977977A (en) * 1995-08-04 1999-11-02 Microsoft Corporation Method and system for multi-pass rendering
US5886701A (en) * 1995-08-04 1999-03-23 Microsoft Corporation Graphics rendering device and method for operating same
US5870097A (en) * 1995-08-04 1999-02-09 Microsoft Corporation Method and system for improving shadowing in a graphics rendering system
US5754180A (en) * 1996-03-11 1998-05-19 Avid Technology, Inc. Computer system and process for defining and manipulating images using structured objects with variable edge characteristics
US5896882A (en) * 1996-06-27 1999-04-27 Northrop Grumman Corporation Pressure control valve
US5808623A (en) * 1996-10-07 1998-09-15 Adobe Systems Incorporated System and method for perspective transform in computer using multi-pass algorithm
JP3763136B2 (ja) * 1996-12-27 2006-04-05 ソニー株式会社 描画方法および描画装置
JP2957511B2 (ja) * 1997-03-28 1999-10-04 インターナショナル・ビジネス・マシーンズ・コーポレイション グラフィック処理装置
US6313840B1 (en) * 1997-04-18 2001-11-06 Adobe Systems Incorporated Smooth shading of objects on display devices
US7142224B2 (en) * 1997-07-10 2006-11-28 Yamaha Corporation Polygon drawing apparatus and method, and storage medium for implementing the same method
GB9716251D0 (en) 1997-08-01 1997-10-08 Philips Electronics Nv Attribute interpolation in 3d graphics
US6016152A (en) * 1997-08-01 2000-01-18 Avid Technology, Inc. Apparatus and method for non-uniform image scaling
US6351557B1 (en) 1998-04-03 2002-02-26 Avid Technology, Inc. Method and apparatus for color manipulation
US6501481B1 (en) 1998-07-28 2002-12-31 Koninklijke Philips Electronics N.V. Attribute interpolation in 3D graphics
US7768512B1 (en) * 1998-08-10 2010-08-03 Via Technologies, Inc. System and method for rasterizing primitives using direct interpolation
US6038652A (en) * 1998-09-30 2000-03-14 Intel Corporation Exception reporting on function generation in an SIMD processor
US8762691B2 (en) 1999-04-09 2014-06-24 Rambus Inc. Memory access consolidation for SIMD processing elements using transaction identifiers
JP5285828B2 (ja) 1999-04-09 2013-09-11 ラムバス・インコーポレーテッド 並列データ処理装置
US7526630B2 (en) * 1999-04-09 2009-04-28 Clearspeed Technology, Plc Parallel data processing apparatus
US20080162875A1 (en) * 1999-04-09 2008-07-03 Dave Stuttard Parallel Data Processing Apparatus
US20080007562A1 (en) * 1999-04-09 2008-01-10 Dave Stuttard Parallel data processing apparatus
US8171263B2 (en) * 1999-04-09 2012-05-01 Rambus Inc. Data processing apparatus comprising an array controller for separating an instruction stream processing instructions and data transfer instructions
US7966475B2 (en) 1999-04-09 2011-06-21 Rambus Inc. Parallel data processing apparatus
US20080008393A1 (en) * 1999-04-09 2008-01-10 Dave Stuttard Parallel data processing apparatus
US20070242074A1 (en) * 1999-04-09 2007-10-18 Dave Stuttard Parallel data processing apparatus
US8169440B2 (en) 1999-04-09 2012-05-01 Rambus Inc. Parallel data processing apparatus
US7802079B2 (en) 1999-04-09 2010-09-21 Clearspeed Technology Limited Parallel data processing apparatus
US8174530B2 (en) * 1999-04-09 2012-05-08 Rambus Inc. Parallel date processing apparatus
US20080162874A1 (en) * 1999-04-09 2008-07-03 Dave Stuttard Parallel data processing apparatus
US6847373B1 (en) 1999-04-16 2005-01-25 Avid Technology, Inc. Natural color matching in a video editing system
US6552731B1 (en) 1999-04-16 2003-04-22 Avid Technology, Inc. Multi-tone representation of a digital image on a digital nonlinear editing system
US6417891B1 (en) 1999-04-16 2002-07-09 Avid Technology, Inc. Color modification on a digital nonlinear editing system
US6571255B1 (en) 1999-04-16 2003-05-27 Robert Gonsalves Modification of media with common attributes on a digital nonlinear editing system
US6421053B1 (en) * 1999-05-24 2002-07-16 International Business Machines Corporation Block rendering method for a graphics subsystem
US6407736B1 (en) 1999-06-18 2002-06-18 Interval Research Corporation Deferred scanline conversion architecture
GB9921777D0 (en) 1999-09-16 1999-11-17 Koninkl Philips Electronics Nv Method and apparatus for handling translucency in 3d graphics
US6452600B1 (en) 1999-10-28 2002-09-17 Nintendo Co., Ltd. Graphics system interface
US6411301B1 (en) 1999-10-28 2002-06-25 Nintendo Co., Ltd. Graphics system interface
US6618048B1 (en) 1999-10-28 2003-09-09 Nintendo Co., Ltd. 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components
US6477271B1 (en) 2000-04-07 2002-11-05 Avid Technology, Inc. Secondary color modification of a digital image
US6857061B1 (en) 2000-04-07 2005-02-15 Nintendo Co., Ltd. Method and apparatus for obtaining a scalar value directly from a vector register
US6859862B1 (en) 2000-04-07 2005-02-22 Nintendo Co., Ltd. Method and apparatus for software management of on-chip cache
US6928187B2 (en) * 2000-04-07 2005-08-09 Avid Technology, Inc. Secondary color modification of a digital image
US7106347B1 (en) * 2000-05-31 2006-09-12 Intel Corporation Transforming pixel data and addresses
US7119813B1 (en) 2000-06-02 2006-10-10 Nintendo Co., Ltd. Variable bit field encoding
EP1287494B1 (en) 2000-06-08 2007-03-14 Imagination Technologies Limited Tiling and compression for rendering 3d images
US6980218B1 (en) 2000-08-23 2005-12-27 Nintendo Co., Ltd. Method and apparatus for efficient generation of texture coordinate displacements for implementing emboss-style bump mapping in a graphics rendering system
US6609977B1 (en) 2000-08-23 2003-08-26 Nintendo Co., Ltd. External interfaces for a 3D graphics system
US6999100B1 (en) 2000-08-23 2006-02-14 Nintendo Co., Ltd. Method and apparatus for anti-aliasing in a graphics system
US7538772B1 (en) 2000-08-23 2009-05-26 Nintendo Co., Ltd. Graphics processing system with enhanced memory controller
US6606689B1 (en) 2000-08-23 2003-08-12 Nintendo Co., Ltd. Method and apparatus for pre-caching data in audio memory
US7002591B1 (en) 2000-08-23 2006-02-21 Nintendo Co., Ltd. Method and apparatus for interleaved processing of direct and indirect texture coordinates in a graphics system
US6937245B1 (en) 2000-08-23 2005-08-30 Nintendo Co., Ltd. Graphics system with embedded frame buffer having reconfigurable pixel formats
US6636214B1 (en) 2000-08-23 2003-10-21 Nintendo Co., Ltd. Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode
US6825851B1 (en) 2000-08-23 2004-11-30 Nintendo Co., Ltd. Method and apparatus for environment-mapped bump-mapping in a graphics system
US7184059B1 (en) 2000-08-23 2007-02-27 Nintendo Co., Ltd. Graphics system with copy out conversions between embedded frame buffer and main memory
US7196710B1 (en) * 2000-08-23 2007-03-27 Nintendo Co., Ltd. Method and apparatus for buffering graphics data in a graphics system
US6639595B1 (en) 2000-08-23 2003-10-28 Nintendo Co., Ltd. Achromatic lighting in a graphics system and method
US6811489B1 (en) 2000-08-23 2004-11-02 Nintendo Co., Ltd. Controller interface for a graphics system
US6867781B1 (en) 2000-08-23 2005-03-15 Nintendo Co., Ltd. Graphics pipeline token synchronization
US6664962B1 (en) 2000-08-23 2003-12-16 Nintendo Co., Ltd. Shadow mapping in a low cost graphics system
US7034828B1 (en) 2000-08-23 2006-04-25 Nintendo Co., Ltd. Recirculating shade tree blender for a graphics system
US6580430B1 (en) 2000-08-23 2003-06-17 Nintendo Co., Ltd. Method and apparatus for providing improved fog effects in a graphics system
US6707458B1 (en) 2000-08-23 2004-03-16 Nintendo Co., Ltd. Method and apparatus for texture tiling in a graphics system
US7134960B1 (en) * 2000-08-23 2006-11-14 Nintendo Co., Ltd. External interfaces for a 3D graphics system
US6664958B1 (en) 2000-08-23 2003-12-16 Nintendo Co., Ltd. Z-texturing
US6700586B1 (en) 2000-08-23 2004-03-02 Nintendo Co., Ltd. Low cost graphics with stitching processing hardware support for skeletal animation
US6784894B2 (en) * 2000-08-24 2004-08-31 Sun Microsystems, Inc. Mapping time-sorted to direction-sorted triangle vertices
US7079133B2 (en) * 2000-11-16 2006-07-18 S3 Graphics Co., Ltd. Superscalar 3D graphics engine
US6697074B2 (en) 2000-11-28 2004-02-24 Nintendo Co., Ltd. Graphics system interface
US7003588B1 (en) 2001-08-22 2006-02-21 Nintendo Co., Ltd. Peripheral devices for a video game system
DE10242640A1 (de) 2002-09-13 2004-03-25 Sp3D Chip Design Gmbh Verfahren zur Festlegung von Gewichtungsfaktoren für die Farbberechnung eines Farbwerts von Texeln für einen Footprint
US7390092B2 (en) 2002-11-08 2008-06-24 Belliveau Richard S Image projection lighting devices with visible and infrared imaging
JP4079268B2 (ja) * 2003-07-03 2008-04-23 シャープ株式会社 文字表示装置、文字表示方法、文字表示プログラムおよび可読記録媒体
EP1745433A1 (en) * 2004-04-29 2007-01-24 Koninklijke Philips Electronics N.V. Image processing apparatus and method
US7649537B2 (en) * 2005-05-27 2010-01-19 Ati Technologies, Inc. Dynamic load balancing in multiple video processing unit (VPU) systems
US20060271717A1 (en) * 2005-05-27 2006-11-30 Raja Koduri Frame synchronization in multiple video processing unit (VPU) systems
US7613346B2 (en) * 2005-05-27 2009-11-03 Ati Technologies, Inc. Compositing in multiple video processing unit (VPU) systems
US8054314B2 (en) 2005-05-27 2011-11-08 Ati Technologies, Inc. Applying non-homogeneous properties to multiple video processing units (VPUs)
US7663635B2 (en) * 2005-05-27 2010-02-16 Ati Technologies, Inc. Multiple video processor unit (VPU) memory mapping
US8212838B2 (en) * 2005-05-27 2012-07-03 Ati Technologies, Inc. Antialiasing system and method
GB0524804D0 (en) 2005-12-05 2006-01-11 Falanx Microsystems As Method of and apparatus for processing graphics
US20070216685A1 (en) * 2006-03-15 2007-09-20 Microsoft Corporation Scene write-once vector and triangle rasterization
GB2439129B (en) * 2006-06-12 2008-11-12 Imagination Tech Ltd Parameter compaction in a tile based rendering system
US20080055321A1 (en) * 2006-08-31 2008-03-06 Ati Technologies Inc. Parallel physics simulation and graphics processing
US9965886B2 (en) * 2006-12-04 2018-05-08 Arm Norway As Method of and apparatus for processing graphics
US8260002B2 (en) * 2008-09-26 2012-09-04 Axis Ab Video analytics system, computer program product, and associated methodology for efficiently using SIMD operations
GB0900700D0 (en) * 2009-01-15 2009-03-04 Advanced Risc Mach Ltd Methods of and apparatus for processing graphics
US8643701B2 (en) 2009-11-18 2014-02-04 University Of Illinois At Urbana-Champaign System for executing 3D propagation for depth image-based rendering
US9300946B2 (en) 2011-07-08 2016-03-29 Personify, Inc. System and method for generating a depth map and fusing images from a camera array
US9251607B1 (en) * 2011-11-14 2016-02-02 Google Inc. Anti-aliasing techniques
US9317948B2 (en) 2012-11-16 2016-04-19 Arm Limited Method of and apparatus for processing graphics
US10204391B2 (en) 2013-06-04 2019-02-12 Arm Limited Method of and apparatus for processing graphics
CN105895030B (zh) * 2014-12-15 2019-08-09 恩智浦美国有限公司 用于持久性显示面板的控制器
GB2553744B (en) 2016-04-29 2018-09-05 Advanced Risc Mach Ltd Graphics processing systems

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5916071A (ja) * 1982-07-19 1984-01-27 Toshiba Corp 並列処理システム
JPS6186876A (ja) * 1984-10-03 1986-05-02 Fujitsu Ltd 三次元物体表示処理方式

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3602702A (en) * 1969-05-19 1971-08-31 Univ Utah Electronically generated perspective images
US3665408A (en) * 1970-05-26 1972-05-23 Univ Utah Electronically-generated perspective images
JPS5326534A (en) * 1976-08-25 1978-03-11 Hitachi Ltd Vi deo display device
US4208719A (en) * 1978-08-10 1980-06-17 The Singer Company Edge smoothing for real-time simulation of a polygon face object system as viewed by a moving observer
CA1141468A (en) * 1979-06-15 1983-02-15 Martin J.P. Bolton Visual display apparatus
NL8300872A (nl) * 1983-03-10 1984-10-01 Philips Nv Multiprocessor-rekenmachinesysteem voor het tot een gekleurde afbeelding verwerken van in een hierarchische datastruktuur gedefinieerde objekt-elementen.
US4658247A (en) * 1984-07-30 1987-04-14 Cornell Research Foundation, Inc. Pipelined, line buffered real-time color graphics display system
US4860248A (en) * 1985-04-30 1989-08-22 Ibm Corporation Pixel slice processor with frame buffers grouped according to pixel bit width
US4918625A (en) * 1986-12-19 1990-04-17 Cae-Link Corporation Method and apparatus for processing translucent objects
US4873515A (en) * 1987-10-16 1989-10-10 Evans & Sutherland Computer Corporation Computer graphics pixel processing system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5916071A (ja) * 1982-07-19 1984-01-27 Toshiba Corp 並列処理システム
JPS6186876A (ja) * 1984-10-03 1986-05-02 Fujitsu Ltd 三次元物体表示処理方式

Also Published As

Publication number Publication date
CA1309198C (en) 1992-10-20
DE3855377D1 (de) 1996-07-25
EP0319787A3 (en) 1991-07-31
EP0319787B1 (en) 1996-06-19
EP0319787A2 (en) 1989-06-14
US5392385A (en) 1995-02-21

Similar Documents

Publication Publication Date Title
JPH01191985A (ja) 画像処理方法
US5973705A (en) Geometry pipeline implemented on a SIMD machine
US6417858B1 (en) Processor for geometry transformations and lighting calculations
US6181352B1 (en) Graphics pipeline selectively providing multiple pixels or multiple textures
US5877769A (en) Image processing apparatus and method
JPH0683970A (ja) 三角形描画装置及び方法
JPH0683969A (ja) グラフィックス・プロセッサ及びグラフィックス・データ処理方法
JPH0776991B2 (ja) Nurbsデータ変換方法及び装置
JPH087792B2 (ja) グラフィックス・システムにおける拡張可能な複数のイメージ・バッファ
US5138699A (en) Hardware utilization of color interpolation capability in a color imaging system
JPH0916144A (ja) 二次元でインターリーブされるフレームバッファを備えた、三角形ラスタ化のためのシステム及び方法
CN102831577A (zh) 基于gpu的二维地震图像的快速缩放方法
EP0752685A1 (en) Method and apparatus for efficient rendering of three-dimensional scenes
US7064755B2 (en) System and method for implementing shadows using pre-computed textures
JPH10275460A (ja) メモリ装置及びこれを用いた画像処理装置
US4970499A (en) Apparatus and method for performing depth buffering in a three dimensional display
CN106530379A (zh) 用于执行路径描边的方法和设备
JP2006517705A (ja) コンピュータグラフィックスシステム及びコンピュータグラフィクイメージのレンダリング方法
KR100429092B1 (ko) 그래픽영상처리방법및장치
JPH0714029A (ja) 線描画装置及び方法
EP0600204A2 (en) Method and apparatus for rendering primitives with multiple processors
EP0486194A2 (en) Memory system
US7280108B2 (en) Bicubic surface rendering
JPH0651937A (ja) データ処理システム及びデータ制御方法
EP0485833A2 (en) A method for executing graphics color saturating arithmetic instructions in a data processor