JPH0215384A - 補間およびデジタル微分解析の方法 - Google Patents

補間およびデジタル微分解析の方法

Info

Publication number
JPH0215384A
JPH0215384A JP7160589A JP7160589A JPH0215384A JP H0215384 A JPH0215384 A JP H0215384A JP 7160589 A JP7160589 A JP 7160589A JP 7160589 A JP7160589 A JP 7160589A JP H0215384 A JPH0215384 A JP H0215384A
Authority
JP
Japan
Prior art keywords
line
value
output
length
register
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
JP7160589A
Other languages
English (en)
Inventor
Neil F Trevett
ネイル フランシス トレヴェット
Malcolm E Wilson
マルコム エリック ウィルソン
Sarah E Lloyd
サラ ジェイン ロイド
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.)
3DLabs Ltd
Original Assignee
DuPont Pixel Systems Ltd
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
Priority claimed from GB8806879A external-priority patent/GB2215960A/en
Priority claimed from GB8806880A external-priority patent/GB2215961A/en
Application filed by DuPont Pixel Systems Ltd filed Critical DuPont Pixel Systems Ltd
Publication of JPH0215384A publication Critical patent/JPH0215384A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/17Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/00Three-dimensional [3D] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • G06T15/87Gouraud shading
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/20Function-generator circuits, e.g. circle generators line or curve smoothing circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Image Generation (AREA)
  • Complex Calculations (AREA)
  • Image Processing (AREA)

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、乗算器アキュムレータ(MAC)を用いた補
間(interpolation )およびデジタル微
分解析(digital differential 
analysis)の方法に関するものである。
[従来の技術] i)補間の重要性 コンピュータの分野においては、値を補間することが、
しばしば必要とされる。例えば、ビットマツプされた表
示モニタの上に1本の線を引くためには、始点と終点の
間に表示された幾つかのビクセルの間に目的の線を書き
入れなければならないことがある。その場合、線を形成
するピクセルを輝かせることにより、その線が書き込ま
れる。
もう一つの例は、表示された画像の与えられた領域に、
徐々に影をつけたい場合である。この操作のための従来
の方法は、与えられたビクセルの上の影の始点シエイド
(statingshade)と終点シエイド(end
ing 5hade)の間に、影の値(shasdin
gvalue)を挿入することであった。
これらの方法は決して面倒ではない。また、実際、可能
なアプリケーションの表面を補間アルゴリズムのために
引っかくだけのものである。
−数的な問題は次のようなものである。
与えられたステップの数(N)にわたって、初期値(V
)があるm (DALTA V)ずつ徐々に変化してい
くか、ということである。
補間を行うための従来の方法のひとつは、デジタル微分
アナライザ(以下、 DDAという)の使用である。1
つのよく知られた例は、線を引くためのDDAである。
典型的なシンプルなラインDDAは、ラインのX、X要
素を整数部と分数部に分ける!llきをする。それから
、DDへはX、X要素を分数単位で増加させる。分数部
が一杯になったときには、整数部が増加される。上記D
DAは整数要素を、その出力を形成するために使用する
。コンピュータの分野で使用されているように、要素の
ひとつは堅実に一つずつ増加し、他の要素は条件付きで
増加する。
ii)単純なりI)八 単純なりDAアルゴリズムは、第1図を参照してよりよ
く理解されるであろう。例えば、表示モニタ上において
、ライン102を始点104と終点106の間に描く場
合を仮定する。そして、点は格子の線が交差する場所(
モニタ上のピクセルに対応している)にのみプロットす
ることができると仮定する。線の初期値(v)はゼロ(
X要素の始点値)である。期待された変化(DALTA
 V)は5(X要素の終点値)であり、その値が変化(
N)するステップの数は7(X軸の方向での線の全長)
である。
次に示す例1−1に示した単純ベーシック言語DDAは
、このようなプロットをするために使用される。
例1−1 DDAプログラム X−0:Y−0:N−7:DELTA V−5Y−V+
、5 FOR1−I To N PLOT(TRUNC(X)、’TRUNC(Y)Y−
Y+DELTAV/N X−X+1 EXTX Pl、OT (TRtlNC(X) 、 TRUNC(
Y)ND 上の例から次のことが理解される。[lDAプログラム
はY値を単純に初期化し、そのラインのYスタート座標
値プラスまるめファクタ(roundingfacto
r) 0.5とする。そしてN回の反復サイクルにおい
て、XとY値の整数要素における点にプロットし、Y!
NIの座標をラインのスロープだけ増加させ(DELT
八V/へ) 、ラインのX要素を1だけ増加させる。最
後のプロットコマンドは、ラインの最後の点をプロット
するためのものである。
上記のプログラムによく似たプログラムとしてゴラウド
ーシェイディング(Goraud shading) 
に使用されるものがある。2つのプログラムの相違は、
X軸座標とY軸座標を変えるのと違い、シェイディング
の値(shading value)が与えられたステ
ップ数にわたって変わることである。同様に、シエイデ
ィング・プログラム(shadiB program)
では、最後のプロットコマンドは必要ない。
1ii)  プレセンハムのアルゴリズム(Brese
nham’ sAIgorithm) 上記のような単純[IDA操作(operration
)での問題点は、分割操作(division ope
ration)を必要とすることである。これにはCP
Uタイムの点で費用がかかる過ぎるため、従来は、単純
DDAはハードウェアの実現にふされしくないとみなさ
れていた。分割を避けるための従来の一般的な方法の1
つは、プレセンハムのアルゴリズムとして知られる、別
の種類の補間方法である。
プレセンハムのアルゴリズムは、おのおのの反復毎に、
座標値をプラス1またはマイナス1するよう設計されて
いる。残りの座標値が増加されるかどうかは、アルゴリ
ズムによって保持されているエラーターム(すなわち、
プレセンハムのエラーターム)の値による。理論的に完
全なラインの正確なパスと、アドレスされて書き込まれ
た(すなわち、点として輝いている)実際のピクセルと
の間の距離を記憶させるために、このエラータームが使
用される。プレセンハムのアルゴリズム・ラインブロッ
ティング・プログラムの一例、および、ODAの他の例
は、ウィリアム、M、ニュウマン、ロバート、F、スプ
ロール、マグロ−ヒルによる°°ゼインラクチイブ・コ
ンピュータ・グラフィクスの原理パ(第2版)にみるこ
とができる。
この文献は、本明細書の一部として引用される。
プレセンハムのアルゴリズムは、分割の問題を解決して
いるにもかかわらず、多くの従来のDD八へ間技術と同
じく、他の幾つかの問題にぶちあたる。
iv)非分数的スロープの問題 多くの従来から知られているDD八へログラミング技術
では(プレセンハムのアルゴリズムプログラムを含めて
)、補間された値が制限付きで1つずつ増加することの
み許されている。この問題は、X軸から45度より大き
なスロープをもつラインを考える時、よりはっきり理解
できる。これらの場合には、N(ステップの数)は、常
にDEL丁^V(値の意図された変化)より小さい。
この状況を伴った問題が第2図に示されている。
第2図は、X軸、Y軸の原点にあるスタート点から描か
れたライン202 と、X、Y座m4.7にある終点2
06を示す。この場合、Nは4に等しく(すナワチ、4
−7−(f−ス0 ’) 、DELTA Vは7(すな
わち、7マイナス0)に等しい。
当業者であれば、このような環境のもとでは、プレセン
ハムのアルゴリズムルーチンにおいては、Xとyとは常
に増加するということを理解するであろう。結果は、第
2図で点に示したように、45度のプロットである。こ
れは勿論、期待された結果ではない。
このような条件に適応するために、Y方向のDELTA
 Vステップにわたって、Xの値を補間するために、別
のコードが加えられなければならない。換言すれば、ス
ロープ方向が1以下の場合には、それに対応するために
プログラムを書キ換えなければならない。ラインの角度
に応じて、プレセンハムのアルゴリズムや他の従来のD
DAプログラムを使用しているプログラムは、1セツト
のコードもしくは他のコードを入力しなければならない
。プログラマ−やプログラムは、どのセクションが実行
されているか見守らなければならない。
不運なことに、上記の方法で線描の問題は解決するが、
ボウラウド・シエイディング(Gouraudshad
ing)のような−次元の問題は解決しない。例えば、
表示スクリーンの左手端から始まる8ビクセルにわたり
、60と155によって表される2つのシェイド(5a
de)の間を補間することを考えてみる。可変DELT
A Vは195 (255−Go) ニ等しく、Nは8
に等しい。Xは最初1に等しく、Yは最初6oに等しい
DELTA VをNで分割した結果は7.5であり、プ
レセンハムのアルゴリズム型のプログラムは各ビクセル
(すなわち、60,8L62,83,84,65,66
.67)に対して、各々のシエイド値を星゛にまたり増
加するのみである。この場合のスロープを反対にすると
、無意味な結果が得られる。このことは、NとXはビク
セルで定義され、これに対してYとDELTA Vはシ
ェイディング・コード(shadingcode)で定
義されることを考えれば理解しやすい。
■) ライン・クリッピング(Line C1C11p
pinおよびサブセット・ライン(Subset Li
ne)の問題プレセンハムのアルゴリズムと他の多くの
補間方法に関するもうひとつの問題点は、サブセットラ
インの問題であると言われている。簡単に言えば、2次
元ラスフグラフイックにおいて、ラインを消したり繰返
したりするに際して、ラインの正しいプロット位置を決
めることが困難なことである。例えば、ラインLlをス
クリーン上の始点ビクセルPIと終点ビクセルP2の間
に描くとする。そして、選ばれた補間アルゴリズムはビ
クセルグループGlをプロットすることにより(例えば
、最初の色を輝かせることにより)、ラインを描くもの
とする。ラインの一部を消したり、上書きすることが必
要であれば、ラインLの一部分をもう1度たどることが
必要となる(例えば、第2の色を輝かせて)。
この操作のためには、最初のビクセルグループP4の内
で始点ビクセルP4と終点ビクセルP5を選ぶことによ
り、新しいラインL2を描かなければならない。新しい
ラインL2はラインLlの一部分を消すために使用され
るのであるから、ラインL2を描くときにプロットされ
たビクセルのグループ(グループG2と呼ぶ)はG1の
なかのサブセットであることが重要である。
サブセットラインの問題はとるに足らない問題ではない
。もし上記の条件が満たされなければ、ラインは完全に
消されることができないし、余分なビクセルがプロット
され、その結果としてスクリーンを乱すことになる。一
般のプレセンハムのアルゴリズムは上記の条件を満足し
ていないことが理解される。著者らによフてこの問題を
迂回するためのある示唆が提示されている。1つの例は
、そこに記憶されているスクリーン上の可能なラインの
デジタイゼイションを行なうルックアップテーブルの使
用をすすめている。このような示唆は一般に非現実的で
あると考えられている。サブセットラインの問題は“ラ
スタ・グラフィックスのためのデータ・ストラクチュア
°°という本の中に詳細に述べられている。その木はり
、R,A、ケセナー、 F、J、ベータース、 M、L
、P、ライン リーロツクによって編集され、スプリン
グアー バーログによって出版されたものである。その
内容はそフくりそのまま、本明細書の引用文献として参
照するものとする。
この木はヨーログラフィックス セミナーズシリーズ(
Eurographics Sem1nars 5er
ies)の−部である。
サブセットラインの問題に関し、この木には゛準備的な
結果がでているにもかかわらず、これはやはり解決され
なければならない問題である。
良いアルゴリズムが存在するかどうかすら分かりではい
ない。勿論それが複雑であるからである。  (ベージ
7、バラグラフ1)と述べられている。
サブセットラインの問題は重要になっている。
特に、表示されたウィンドウの境界でラインを切る場合
、その場所が重要である。この問題を第3図に図示する
。スクリーンやウィンドウに表示されたラインをそのス
クリーンやウィンドウの外側の点から計算する場合、ラ
インは切り取られなければならない。
第3図において、ライン302はウィンドウ306の外
側にある点304から出発している。ライン302の一
部は、残りの部分が隠されている間、ウィンドウに表示
されなければならない。この問題を解決するために、従
来から2つの方法がとられている。
クリッピングの1つの方法は、クリップされていないサ
プラインの始点を計算し、プレセンハム型の補間を行う
ことである。この場合、補間はラインの実際の原点以外
の点から出発し、サブセットラインの問題に遭遇する。
このことは、元のラインに描かれたのとは少し違ったビ
クセルが、クリップされたラインに含まれる結果となる
。もし、クリップされないラインをたどることが必要な
場合、あるいはラインが別のウィンドウでクリップされ
た場合、プログラマ−は少しばかり違ったビクセルのセ
ットが選ばれているのを発見することになるだろう。
第2の従来の方法はサブセットラインの問題を迂回する
にあたり、ラインの始点からプレセンハム型の補間を行
ない、ウィンドウが出発する点を追跡しながら、非ウィ
ンドウ領域には書き込みを行わないで解決しようとする
ものである。この方法は正しい。しかし、ラインが非ウ
ィンドウ領域に書込まれていないことを確認するために
、余分なソフトウェアの経費と、計算時間を必要とする
。その上、ODAの総てを見えないビクセルのためにま
で行うために時間を費やす。
クリッピングと補間の技術、プレセンハムのアルゴリズ
ムを含めて、DDAとボウラウド・シエイディングにつ
いては、ウィリアム・エム・ニューマンおよびロバート
・エフ・スブロウル マワグロウヒル(第10版 19
84)による“°インテラクチイブ・コンピュータ・グ
ラフィックス” (第2版)に述べられている。
vi) プログラマ−のジレンマ プログラマ−は伝統的にジレンマに直面している。プロ
グラマ−は−n9的に単純なりDA型の方法の中から選
はなけれはならない。その方法は、費用のかかる分割を
必要とするほか、サブセットライン問題を生じ、Xとy
の増分のサイズを1に制限するプレセンハムのアルゴリ
ズムやそれに似た技術が必要とされる。
いかなる数のステップにもわたって、全ての範囲の値を
補間できる補間方法が望ましい。あらゆる範囲の値また
はあらゆる数のステップにわたり、DDA型方決方法い
て、ボウラウド・シェイディング演算(Gourad 
shading operation)を行ない得るこ
とが望ましい。補間された値を、各々のステップにおい
て、1よりも大きな数で増加させ得ることが望ましい。
ソフトウェアの分割を避けることか望ましい。その上、
別め°クリッピング境界でクリップされたラインに対し
て、選ばれたビクセルの正確な繰り返しを保証するため
に、速く、正確なラインクリッピングができることが特
に望ましい。
[発明の概要コ 本発明は、デジタル微分解析をハードウェア乗算器アキ
ュムレータ(MAC)を使用して行う方法を含むもので
ある。
[実施例] 以下、実施例に基いて本発明の詳細な説明する。
本発明は、ハードウェアー乗算器アキュムレータ(MA
G::ll1ultiplier accumulat
or)を使用して、デジタル微分解析を行う方法を含む
。この方法は、増加ステップの数が、ステップの存在す
る値の範囲よりも小さい時のプログラミングを可能にす
る。この方法はプレセンハムのアルゴリズムを使用した
クリッピングの方法と、他の従来の1)DA技術に以前
からあったいくつかの固有の問題を解決するものである
本発明の好適な実施例による基本ハードウェアーを第4
図と第5図に示す。第4図と第5図は乗算器アキュムレ
ータ(MAC)のブロック図を示す。
MAC400は2個の入力レジスタ402,404 、
乗算器アレイ406、加算器408 、3個の出力レジ
スタ410゜412、414を含んでいる。1.5P(
least 51gn1ficantproduct)
レジスタは、乗算の結果の分数部を記憶し累積する。M
SP(most 51gn1fic ant prod
uct)レジスタは、結果の整数部を記憶し累積するた
めに使用される。XTP(extended prod
uct)  レジスタは、オーバーフローしたものを記
憶し累積するために使用される。
MAC400は、出力レジスタ410,412,414
 をプリロードする機能をもち、少なくとも乗算モード
および乗算・累積モードで動作可能なことが好ましい。
好適な乗算器アキュムレータ(MAC)は、IDT72
1016x 16並列乗算器アキュムレータであり、カ
リフォルニア サンタモニカ インテグl/イテド デ
バイス テクノロジー 社から人手できる。TDT72
10の構造と動作は、同社の“旧GHPERFORMA
NCE CMO5DATA HΔND[1OOK ”に
書かれている。
第5図は、本発明の他の実施例を示す。本実施例は64
kXI69−ドオンリーメそり(ROM)ルックアップ
テーブル502を含んだハードウェアーである。ルック
アップテーブル502は、そのアドレス入力に現われる
全ての値の逆数を求めるために使用される。
次に、第6図を参照して本実施例の動作を説明する。ま
ず、MACの出力レジスタが最初にプリロードされる。
−木のラインを描く場合を考えてみよう。LSPレジス
タにはまず、初期まるめ値(例えば0.5)がロードさ
れる。一つの座標i+h (例えは、Y Itll )
の最初の値Vは、初め、MSPにロードされる。MAG
は入力がロードされる時には“乗算アキュムレートモー
ドに設定されなければならない。
次に、DELT八Vのへは、第1入力レジスタ402の
アドレス入力で記憶される。同時に、Nの値は、ROM
ルックアップテーブル502のアドレス入力で記憶され
、l/Nが現れ、第1入力レジスタ402.404で安
定するまで保持される。それらは、クロックに同期して
第1および第2入力レジスタ402.404にそれぞれ
入力される。
また、DELTA Vの値は、それが、MAG入力で安
定するとすぐに、クロックに同期して第1入力レジスタ
に入力される。そして、N値の逆数は、それが安定した
時、クロックに同期して第2入力レジスタに入力される
。MへG入力でのデータの安定性は、ROMアクセス時
間を考慮にいれた適切なりロッキング機構の採用により
容易に確保される。
乗算−アキュムレートモードに設定されているため、M
ACは1/NにDEL丁E Vを乗する。この結果は出
力レジスタ410,412,414の最初の内容に加え
られる。累積された値は、クロックに同期して出力レジ
スタ410.412.41.4に入力される。つぎに、
乗算の結果は再クロックされ、出力レジスタ値と共に累
積される。このプロセスは、補間がなされるべきステッ
プの総数だけ繰り返し続けられる。
このことは、単に、MAC出力レジスタ410,412
゜414をDELTA V値を変化させるべきステップ
の数に等しい回数だけクロックキングさせることが必要
になる。
X、Yの値を正しくプロットするために、ある値をプロ
ットするYが各クロックサイクル毎にMSP レジスタ
412に格納されいる間、Xは各クロックサイクル毎に
1ずつ増加する。Yが零以外の初期値を持つ時、初期設
定の間、MSPレジスタ412はその値(YO)にプリ
ロードされる。初期Y値をロードする機能は、ラインク
リッピング操作において、大きな意味がある。
ラインクリッピングを行う場合には、MACはラインの
生成と同様なプログラムが施される。初期の乗算・アキ
ュムレート動作において、第1入力レジスタ402につ
いては、ラインの見え得る部分に達するステップ数がロ
ードされていることを除いて(すなわちn*DELTA
 V) 、木質的な初期設定は同じである。
最初の乗算・アキュムレート動作は、あたかもnステッ
プが、16ビツトの小数のエラータームを含めて、この
設定を達成するために取入れられているかのように(す
なわち、その結果はn◆DELTAV/N)、出力レジ
スタをセットアツプする。かくして、最初の点がプロッ
トされる。
次に、標準のライン・トロウィング・ルーチーンとして
、第1入力レジスタにはDELTA Vがロードされる
。そして、通常ラインの終りに達するまで、或いは、ラ
インがウィンドウと交差するまで、そのアルゴリズヌは
進行する。MACはn*DELTA Vの初期計算に使
用される。
本発明方法の好適な実施例において、NとDELTA 
Vは16ビツト2進数として表される。ROMルックア
ップテーブル502は、各々のアドレス領域における各
々のアドレスの逆数で、できれば、無記号の分数表示で
プログラムされる。
言い替えれば、2は16進数8000をもたねばならな
い。アドレス4は、4000もたなければならない。ア
ドレス1と0は特別なケースであって、MACプログラ
ミング・アルゴリズム(第5図参照)が零の場合を考え
なければならない。MへC動作はただ一つの点、をプロ
ットする場合には必要とされない。それはソフトウェア
−で十分処理出来るからである。
都合の良い事に、マイナスのスロープの値は必要でない
。ゴウラウト・シェイディングにおいて、DDAは常に
数字的に低位のシェイドから出発し、上位にあがってゆ
く。ラインを描く場合、DDAは常に終点が結果的に正
のスロープになるようなところから進行する。−たびプ
ログラムされると、ルックアップテーブルRf)Mの出
力からは、アドレス入力で保持されているN値の逆数が
当然に生じる。
都合の良い事に、MACへの各入力は分離されたバス上
にあり、従って、二つの入力は一緒にまたは別個にロー
ドされる。同様に、出力レジスタは、入力レジスタとは
別個にクロックされる。そのため、ラインを描いたりラ
インをシエイト(5hade)するために、−度だけク
ロックされればよく、また、与えられた領域に対してク
リップするために、入力レジスタは二度だけクロックさ
れればよい。
結 論 本発明を実施することにより、当業者は多くの改良をな
しとげることができる。例えば、より大きな(つまり、
16ビツト以上) MACは、正確さを改良するために
使用されることができる。マルチプレクサは、出力レジ
スタのどの部分が使用されるかを選択するために、出力
側に置くことができる。このことは、様々なアプリケー
ションに対して、整数および分数サイズの様々な混合を
可能にする。
本発明によるシステムおよび方法は、アルゴリズムの最
初においてアキュムレータと共にNIDELTA Vを
ひとたび計算するために、内部計算ループのみで加算器
を使用するよう変更することができる。このことは、高
度の正確性が求められるならば、特に有用である。
本発明による方法は、ODAの設定されたステップの数
を変えるために、同じハードウェアを使用して容易に変
更することができる。このことは並列プロセッサを使用
する時、非常に有用である。
すなわち、あるラインに沿ってビクセルのシェイディン
グを計算するプロセッサが一つ以上ある場合に、有用で
ある。例えば、あるグラフィック・システムがX方向に
5つのプロセッサを持っている場合(各々が5つのグル
ープの中の一つのピクセルを担当する)、−ステップで
5つのシェイディング値を計算する必要がある。本発明
のシステムおよび方法は、各サイクル毎に5つのステッ
プを実行するよう各プロセッサのMACをセットアツプ
することにより、このことを容易に行うことができる。
従りて、上述した好適な実施例は本発明の典型的な一例
として記述されたものであり、本発明の要旨を逸脱しな
い範囲の変更・修正が可能である。
[発明の効果] 本発明の方法によれば、プログラマ−は線形補間の最良
の方法を得ることができる。MACハードウェアは、単
純DDAに固有な分割なしで、プレセンハムのアルゴリ
ズムに関連したサブセットラインの問題なしで、ざらに
増加ステップの数がステップの見いだされる値の範囲よ
りも小さい場合を扱うためにしばしば要求される付加コ
ードを要求することなく、DDAが迅速に実行されるこ
とが可能になる。
ハードウェアを使用してDDAを実行することにより、
線形補間に関する多くの問題は解決される。例えばひと
つの実施例として、ラインクリッピングが′簡単かつ正
確に行えることである。 MACを適当に初期化するこ
とにより、いかなるピッチのラインもウィンドウの境界
線ですばやくクリップされる。MAC入力の1つに、ハ
ードウェア・ルックアップ・テーブルを加えることによ
り、システムのオペレーションを分割する必要がなくな
り、従ってプレセンハム型アルゴリズムの必要がなくな
る。このシステムと方法は、サブセットラインに関して
長い間解決されなかった問題を解決する。
その上、木発明の方法はいかなる値の範囲、または、い
かなるステップ数を補間する場合にも使用できる。Nと
DELT八Vのへの相対的なサイズは、この方法に少し
も影晋を与えるものではない。本発明によれは余分なコ
ードの必要をなくす。また、本発明によれは、補間が行
われるチップにわたり、ステップの数より値の範囲が大
きいという1次元的問題を解決するために、ODAを実
行させることができる。
ある実施例において、この方法はラインのボウラウド・
シェイデイングに使用される。MMC入力の1つは、デ
ルタ色(色の量はラインに沿って変わる)でロードされ
、他の入力はラインの長さの逆数によってロードされる
。MへG結果レジスタの高位の部分(MSC)は、スタ
タート色で前もってロードされている。ItOMルック
アップテーブルを使用することにより、ラインの長さの
逆数はプログラムを使って計算する必要がない。プログ
ラムはルックアップテーブルの入力の時に、実際のライ
ンの長さを単純に把握している。そして、その逆数は自
動的に生成され、ソフトウェアの計算は必要とされない
。ピクセルが描かれる時はいつもMACの2つの入力は
乗算され、最初の結果に加えられる。結果の高位の部分
は、各々のピクセルの色として使用される。そして、結
果の累積された低位の部分がオーバーフローを起こした
時、自動的に変化する。
本発明の方法により、各々のピクセルの変化のユは、ラ
インの長さによって分割されたデルタの色となる。それ
故、最後の色は、最初の色プラスデルタの色である。
都合の良いことに、この方法は、ビット・スライス・プ
ロセッサとマイクロプロセッサを実装した多くのCPU
ですでに使用可能な、単純なMACハードウェアを使用
することがてきる。MAC集積回路は、それをまだ使用
していないシステムに、安価で実装することができる。
本発明による方法の一つの実施例では、MACによる処
理のためにデータが提供されている時、自動的に逆数演
算を行うルックアップテーブルを使用することかできる
。このルックアップテーブルを使用すれば、時間のかか
る分割操作(divide operation)の必
要がなくなり、CPUの費用を軽減することができる。
それ故、本発明の方法は、分割操作を行うアルゴリズム
を避けるために、従来必要とされたものを必要としない
本発明の方法は多くの補間の問題を解決するために使用
されることができる。そして、多くの場合費用がかから
ない。
【図面の簡単な説明】
第1図は典型的なライン補間問題を示す図、第2図はX
釉から45度以上で描かれたラインの補間の問題を示す
図、 第3図はクリッピングに関する問題を示す図、第4図は
本発明の一実施例による乗算器アキュムレータを示すブ
ロック図、 第5図は木発明のその他の実施例による乗算器アキュム
レータおよびルックアップ・テーブル・メモリを示すブ
ロック図、 第6図は本発明の一実施例によるODAの処理手順を示
すフローチャートである。 Y卸 Figure 1 Y軸 Figure 2

Claims (1)

  1. 【特許請求の範囲】 1)所定長さのラインにわたって線型補間を行う方法で
    あって、 (a)乗算器アキュムレータの出力レジスタのいずれを
    も予め定めた初期値で初期化するステップと、 (b)前記乗算器アキュムレータの第1入力レジスタを
    前記ラインの前記長さにわたる出力値の増分変化に等し
    い値でロードするステップと、 (c)前記乗算器アキュムレータの第2入力レジスタを
    前記ラインの長さの逆数に等しい値でロードするステッ
    プと、 (d)前記乗算器アキュムレータによりその第1および
    第2入力の値を乗算するステップと、 (e)ステップ(d)の結果の分数部分を第1出力レジ
    スタに累積するステップと、 (f)ステップ(d)の結果の整数部分を前記第1出力
    レジスタのオーバーフローと加算して第2出力レジスタ
    に累積して累積された結果を形成するステップと を備えたことを特徴とする線型補間法。 2)ゴウラウド・シェーディングを生成するために、前
    記第2出力レジスタを初期化するのに用いられる予め定
    めた値は出発シェードを表わし、前記増分変化は前記ラ
    インの長さにわたってのシェードの変化を表わし、累算
    された結果は所定ディスプレイ区域に対するシェード値
    を表わすことを特徴とする方法。 3)メモリにストアされたルックアップ・テーブルを使
    用して前記ラインの長さの逆数を決定するステップをさ
    らに備えたことを特徴とする請求項1に記載の方法。 4)前記ルックアップ・テーブルの出力を前記第2入力
    レジスタに直接にロードすることを特徴とする請求項3
    に記載の方法。 5)前記ステップ(d)、(e)および(f)を、色の
    変化が起こるはずのディスプレイ区域の個数に等しい予
    め定めた回数だけ繰返すステップをさらに備えたことを
    特徴とする請求項2に記載の方法。 6)前記ディスプレイ区域の各々はピクセルであること
    を特徴とする請求項5に記載の方法。 7)前記ディスプレイ区域の各々はパッチであることを
    特徴とする請求項5に記載の方法。 8)2つの方向性成分をもち、所定の長さをもつライン
    をクリップして、そのラインのうちの予め定めたセグメ
    ントのみを表示する方法であって、 (a)乗算器アキュムレータの出力レジスタのいず れ
    をも予め定めた初期値で初期化するステップと、 (b)前記乗算器アキュムレータの第1入力レジスタを
    前記ラインの一方の方向性成分の長さに等しい値でロー
    ドするステップと、 (c)前記乗算器アキュムレータの第2入力レジスタを
    前記ラインの長さの他方の方向性成分の長さの逆数に等
    しい値でロードするステップと、 (d)前記乗算器アキュムレータによりその第1および
    第2入力レジスタにおける値を乗算するステップと、 (e)ステップ(d)の結果の分数部分を第1出力レジ
    スタに累積するステップと、 (f)第2出力レジスタにおける前記第1出力レジスタ
    のオーバーフローを累積するステップと、 (g)ステップ(d)の結果の整数部分を前記第2出力
    レジスタに累積するステップと、(h)第2出力レジス
    タにおける値が変化する度毎に、点をディスプレイ装置
    のピクセル上に描かせ、ピクセルは前記第2出力レジス
    タにストアされている値に応じて決定される少なくとも
    ひとつの座標値を有するステップと を備えたことを特徴とする方法。 9)前記第2出力レジスタを初期化するのに用いられる
    予め定めた値は前記ラインの予め定めたセグメントのス
    タート点を表わすことを特徴とする請求項8に記載の方
    法。 10)メモリにストアされたルックアップ・テーブルを
    使用して前記ラインの長さの逆数を決定するステップを
    さらに具えたことを特徴とする請求項8に記載の方法。 11)前記ルックアップ・テーブルの出力を前記第2入
    力レジスタに直接にロードするステップをさらに備えた
    ことを特徴とする請求項10に記載の方法。 12)前記ステップ (d)、(e)、(f)、(g)
    および(h)を、ライン長の変化が起こるはずの点の個
    数に等しい予め定めた回数だけ繰り返すステップをさら
    に備えたことを特徴とする請求項8〜11のいずれかの
    項に記載の方法。 13)前記点の各々はピクセルであることを特徴とする
    請求項12に記載の方法。 14)前記点の各々はパッチであることを特徴とする請
    求項12に記載の方法。
JP7160589A 1988-03-23 1989-03-23 補間およびデジタル微分解析の方法 Pending JPH0215384A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GB8806879A GB2215960A (en) 1988-03-23 1988-03-23 Linear interpolation method
GB8806880A GB2215961A (en) 1988-03-23 1988-03-23 Line clipping for a viewport display
GB8806879 1988-03-23
GB8806880 1988-03-23

Publications (1)

Publication Number Publication Date
JPH0215384A true JPH0215384A (ja) 1990-01-19

Family

ID=26293677

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7160589A Pending JPH0215384A (ja) 1988-03-23 1989-03-23 補間およびデジタル微分解析の方法

Country Status (3)

Country Link
EP (1) EP0334600A3 (ja)
JP (1) JPH0215384A (ja)
CA (1) CA1304507C (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9312747D0 (en) * 1993-06-21 1993-08-04 Questech Ltd A device for use in digital processing of a graphic image containing a straight line

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4667306A (en) * 1983-07-20 1987-05-19 Ramtek Corporation Method and apparatus for generating surface-fill vectors
DE3376594D1 (en) * 1983-12-22 1988-06-16 Ibm Area filling hardware for a colour graphics frame buffer

Also Published As

Publication number Publication date
EP0334600A2 (en) 1989-09-27
CA1304507C (en) 1992-06-30
EP0334600A3 (en) 1991-07-03

Similar Documents

Publication Publication Date Title
US5973705A (en) Geometry pipeline implemented on a SIMD machine
JP2501580B2 (ja) 曲線イメ−ジの可視表示発生装置
US4924414A (en) Apparatus and method for obtaining priority numbers for drawing figures forming a display figure
US5088054A (en) Computer graphics hidden surface removal system
EP0551543A1 (en) Method of modifying a geometric object and computer aided design system
US5214754A (en) Method and apparatus for approximating polygonal line to curve
US5303321A (en) Integrated hardware generator for area fill, conics and vectors in a graphics rendering processor
US5528738A (en) Method and apparatus for antialiasing raster scanned, polygonal shaped images
EP0718797B1 (en) Perspective correction of texture in graphics by adaptive approximation
US5604852A (en) Method and apparatus for displaying a parametric curve on a video display
US4878182A (en) Multiple pixel generator
US6865301B1 (en) Reducing aliasing artifacts when shaping a digital image
EP0349182B1 (en) Method and apparatus for approximating polygonal line to curve
US6061066A (en) Method and apparatus for creating perspective correct graphical images
US5125073A (en) Method and apparatus for adaptive forward differencing in the rendering of curves and surfaces
US7015930B2 (en) Method and apparatus for interpolating pixel parameters based on a plurality of vertex values
JPH0215384A (ja) 補間およびデジタル微分解析の方法
EP0600204A2 (en) Method and apparatus for rendering primitives with multiple processors
US5815163A (en) Method and apparatus to draw line slices during calculation
US5627956A (en) Run slice line draw engine with stretching capabilities
JPH0758510B2 (ja) 三次元図形処理装置
US5167018A (en) Polygon-filling apparatus
US5617524A (en) Run slice line draw engine with shading capabilities
EP0389890A2 (en) Method and apparatus for generating figures with three degrees of freedom
GB2215961A (en) Line clipping for a viewport display