JPS60132274A - 直線発生装置 - Google Patents

直線発生装置

Info

Publication number
JPS60132274A
JPS60132274A JP59043737A JP4373784A JPS60132274A JP S60132274 A JPS60132274 A JP S60132274A JP 59043737 A JP59043737 A JP 59043737A JP 4373784 A JP4373784 A JP 4373784A JP S60132274 A JPS60132274 A JP S60132274A
Authority
JP
Japan
Prior art keywords
straight line
pixel
value
register
line
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
JP59043737A
Other languages
English (en)
Inventor
ハーベー・ジエームス・ロゼナー
デビツド・ライル・ニーリム
ジヨン・チヤールズ・ダーリンプル
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.)
Tektronix Inc
Original Assignee
Tektronix Inc
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 Tektronix Inc filed Critical Tektronix Inc
Publication of JPS60132274A publication Critical patent/JPS60132274A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • 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/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
    • G09G5/026Control of mixing and/or overlay of colours in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/004Generic data transformation
    • G06K2215/0042Rasterisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/004Generic data transformation
    • G06K2215/006Anti-aliasing raster data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0082Architecture adapted for a particular function
    • G06K2215/0094Colour printing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Digital Computer Display Output (AREA)

Abstract

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

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、ラスタースキャン型表示装置における滑らか
な直線及び画像エツジ発生に関し、特に輝度及び色変調
された画素(ビクセル)で滑らかな直線を表示する直線
発生装置に関する。尚、本明細書において“直線”なる
語は文字あるいは画像のエツジ部分も含むものとする。
(従来技術とその問題点) ラスター型式で直線を発生するためにデジタル微分解析
器(DDA)を使用することができる。DDAの例えば
X軸方向の各増分ステップ毎に、直線上の各ビクセルに
対応し:CY軸情報が発生される。
勿論、これはX軸に近い(水平から45°よシ小さい)
直線の場合である。゛垂直(Y軸)に近い直線に対して
は、DDAはY軸に沿うステップ毎にX軸情報を発生す
る。従って、いわゆる“長軸″は、前者の場合X軸であ
り後者の場合はY軸である。
いわゆる”短軸”はいずれの場合もそれらと直角の軸で
ある。このようにDDAにおいては、短軸位置情報を発
生しながら長軸方向のステップを行なうO ラスターのビクセルの位置が固定されているため、近似
された直線は通常階段状(ジャギー)になっている。D
DAがラスター・スクリーン分解能よシ高い分解能で動
作することができれば、真の、即ち理論的直線と個々の
ビクセル位置との間の距離を(短軸方向の距離の関数と
して)決定し、滑らかな直線にみせかけるためのビクセ
ル輝度変調にこの距離を用いることができる。
この技術は、複雑かつ非常に精密なアルゴリズムを有す
るいわゆる純ソフトウェアによって、また例えば特願昭
54−2626号(%開昭55−95986号)に開示
された如きハードウェアによって達成されている。ソフ
トウェアによる手法の基本的問題は直線が発生されるの
に比較的時間がかかる(即ち、グラフィック描画速度が
遅い)ということである。この主な原因はソフトウェア
手法におけるシーケンシャルな処理動作にある。
また従来のハードウェア・システムにおいては、一般に
動作速度は実質的に改善されてはいるが、発生しようと
する真の(理論的)直線の位置に関連する全ピクセルに
対する輝度(及び色)変調が不適切なため、実際の表示
画質を損ねている。その上、このようなシステみにおい
ては、直線の傾きによって明らかに直線の太さが変わる
画像が生成される。即ち、垂直(Y軸)及び水平(X軸
)以外の直線は細くみえる。しかもその太さは直線の傾
きで変化する。45°の傾きのとき最も細くみえる。
更に、これらのシステムは直線の端点をピクセル単位以
下の精度(分数ビクセル精度)で決定することはせず、
直線の始点及び終点はlビクセル上にその中心を位置さ
せなければならない。このようにライン・スムージング
(直線を滑らかにすること)自体は改善されていても、
正確な位置決めに関しては改善されていない。この影響
は特に多数の短かいベクトル、即ち直線部分を結合して
滑らかな曲線全近似する際に不都合となる。
また、たとえ直線の端点が分数ピクセル精度で位置決め
できたとしても、直線の端部が角度をもって切取られた
ようにみえるのを防止する特別の対処法が依然必要とな
る。この角度をもって切取られたようにみえる効果は、
垂直あるいは水平方向でない直線に対しても、この直#
を水平にあるいは垂直に終端させていることに起因する
例えば上述の特許出願に開示された手法においては、長
軸(例えばX軸)に沿う各ステップ毎に短軸(例えばY
軸)上の2つのビクセルに対して輝度情報を発生する。
即ち、直線上の(あるいは直線に最も近い)ビクセルと
、直線に次に近い隣シのビクセルとに単一のビクセルの
全輝度を分配する。このような直線の存在範囲の決定法
は、特に長軸方向のあるインクリメント(増分)に対し
短軸上の関連するビクセルがその直線自身上のビクセル
だけでなくその直線の両側のビクセルを含むような場合
に、真の直線を高精度に表わすには不適切である。更に
、このシステムは傾きに応じて直線の太さが変化すると
いう問題を解決していない。このように完全かつ一定太
さの直線の存在範囲を決定する効果的かつ高速の手法は
提案されていない。即ち、長軸に沿うステップ毎に直線
の周囲の3個(あるいはそれ以上)のビクセルからなる
アレイの各ビクセルについての短軸情報を得ることがで
きず、また傾きに依存させないようにすることができな
い。
完全に近いアンチ・エイリアシング即ち滑らかな画像を
形成するためにはある1つのビクセルの輝度(あるいは
カラーシステムでは色)を決定する前にそのビクセルを
通過するすべての直線の情報が必要であシ、各直線に関
連する輝度(および/または色)の間の適切なバランス
をとるためにこれらの情報を利用しなけれはならない。
しかし、これ全達成しようとすると許容できないほど速
度の低下を招く。
従来のシステムでは、直線輝度をアルファ(最も簡単な
形では描かれる直線が1つのビクセルに部分的に掛かる
程度)倍して、いわゆる古い(old)ビクセル値(描
かれる第1の直線に対してフレームバッファシステムに
既に蓄積された値)を無視するか、あるいはいわゆる最
大値操作でそれを処理した。後者の場合、モノクロ・シ
ステムにおいてだけでアや、新しいピクセル値はそれが
古い値よシ大きい場合のみ書込まれる。いずれの場合も
、上述の理想的な場合に比較して、例えば比例重み付け
を行なう場合より平均誤差は大となる。
(発明の目的) 本発明の目的は、直線の太さが傾きに関わらず一定であ
り、かつ直線の端部の正確な位置決めのできる直線発生
装置の提供にある。
本発明の他の目的は、ハードウェア構成の高速直線発生
装置の提供にある。
(発明の概要) 上述の従来例の欠点は本発明により克服される。
本発明は、直線の中間部及び端点の双方に対してnビッ
ト(通常6まで)の分数ビクセル精度で滑らかな直線全
発生する高速システムを提供し、更に、特別の端点処理
を行ない適切に位置決めされた真の直aを発生する。直
線の傾きに関係なく直線の太さを一定にしなからDDA
の(長軸方向の)増分毎の理論的直線の断片を構成する
プレイの1組のビクセル(少なくとも3個;但し輝度が
零の場合もある)にアルファは)値(例えばモノクロ・
システムではグレースケール即ち輝度値)を割当てるの
に短軸距離情報及び傾き情報を使用する。
尚、本明細書において“アレイ”なる語は一次元的に連
なる複数ビクセルの列を表わす。関連ビクセルの連続し
たアレイを、特別の端点処理と関連して直線をジグザグ
にカバーするように順次効果的に処理する。直線の各ア
レイに対する短軸位置情報は1クロツクサイクル内に生
成する。生成されたアルファ値は、適切な場合、比例定
数として古いビクセル値(及び直線の所望色間)で比例
重み付けを行なうのに使用する。
本発明によるシステムにおいて、ビクセルの処理順が上
述のようなので、7レームバソフアシステムに供給され
るべきアルファ値と共にX及びYインクリメント/デク
リメント・コマンドのみが必要となる。スムージングは
ラスク画像の生成中に行々うのでフィルタによる後処理
は不要である。
更に、選択的消去の動作モードも行な得る。
(実施例) 第1図のラスクスキャン表示システム、例えばオプショ
ンのハードコピー機能を有するカラービデオシステム(
実際にはシスタースキャン式コンピュータ端末あるいは
スタンド・アローン型コンピュータグラフィックシステ
ム)において、表示プロセッサ(100)は、バス輪を
介してセントラル・プロセッサ・ユニット(CPU)及
びインタフェース軸に接続されCPUに制御される。特
に、CPUブロック輪は、ホストインタフェースを介し
てCPU(例えばインテル社から入手できる8086 
)に接続された1個以上のデータ源を含み、CPUは表
示リストメモリ、及びメモリ(またはCPU )、イン
タフェースを介して表示プロセッサに接続されていると
考えてもよい。
表示プロセッサは従来構成の7レームパソフア・ユニツ
) (200)に信号線(105)を介して接続されて
いる。更にフレームバッファはビデオ・同期信号線(2
15)によりモニタ(ト)、例えばビデオ表示装置に接
続され、また信号線(203)によりグリンタの如きハ
ードコピーユニツl’ (110)に接続されてもよい
。ハードコピーユニツ) (110)は信号線(115
)を介して表示プロセッサ(1oo)に接続される。
第2図の7レームパツフア(200) 、及びカウンタ
(205)及び(210)は以下の如き両立性を有する
まずこれらのカウンタは個別にマイクロコード・エンジ
ンf0から任意の値をロードされ得る。それと共にこれ
らのカウンタは接続線(178)上の例えば3ビツトの
ステップ・コマンドの制御によりインクリメントあるい
はデクリメントされ得る。Yカウンタ(205)はステ
ップ・コマンド1,2及び3によジインクリメントされ
、コマンド5,6及び7によシデクリメントされ、コマ
ンド0及び4ではホールドされる。Xカウンタ(210
)はステップ・コマンド7.0及びlによシインクリメ
ントされ、コマンド3,4及び5によυデクリメントさ
れ、コマンド2及び6ではホールドされる。これらのス
テップ・コマンドは第7B図に図式的に表わされている
。カウンタ(205)及び(210)の値ハ任意の瞬間
にフレーム・バッファの1ビクセル(例えば8ビツト)
をアドレス指定する。このビクセルデータは信号線(1
95)に読出され、あるいは信号線(194)から新し
い値に書替えられる。カウンタの値を変えることによシ
、画面上のすべてのビクセルがアドレス指定され得る。
信号線(194)及び(195)によるアクセスと共に
、フレームバッファ・メモリのデータは例えば1秒間に
60回の割合でラスタースキャン1@に読出され信号線
(215)を介して表示1装置へ送られる。7レームパ
ツフアのこの表示出力のだめのアドレス指定は、別のカ
ウンタにより行なわれる。とのカウンタはまた表示モニ
タのための水平及び垂直同期信号も発生する。このカウ
ンタは、ラスタスキャン・フレームバッファ・システム
における通常の構成賛素であるので図示はしていない。
7レームバツフアに対するこれら両アクセスは、このシ
ステムでは、画面のリフレッシュの動作と、カウンタ(
205)及び(210)を使用する信号線(194)及
び(195)によるアクセスとの間でメモリサイクルを
交互に切換えることにより両立させている。他の通常の
方法としては、水平及び垂直帰線期間にのみ信号線(1
94)及び(195)によるアクセスを許可するものが
ある。後者を選択すれば性能が低下するが、それ以外は
本発明のシステムに何ら影響はない。
第3A及び第3B図は第2図のラスタ・システムに使用
されるマイクロコード・エンジンぐ0の具体例を示す。
理解を助けるために、次の如き記号表を提示する。
記号 説 明 μpipe パイプラインレジスタQ31またはその出
力PP wait ピクチャ(表示)プロセッサ・ウェ
イトMLJX マノフチプレクサ NZVC負;零;オーバフロー:キャリーHRA 保持
レジスタA HRB 保持レジスタB μROM マイクロROM(マイクロコートで記憶して
いる)ALUOUT BUS ALU(演算論理回路)
ぐ荀の出力バスここに説明される種々の機能を達成する
ためのマイクロコード・エンジンのコーディングは当業
者の技術範囲内のものであるからここでは詳述しない。
マイクロコード・エンジン及びその実際について完全な
理解を得るためには例えばr Build aMicr
ocomputer 、 Chapter If 4 
Microprogrammed Design。
アドバンスト・マイクロ・デバイ七ズ社、 1978第
AM −Pub 073−2 J t:参照されたい。
第2及び第3B図のマイクロコード・エンジンは、一方
でパイプライン・パス(150)及びプライマリ・バス
(140)ト、他方でインストラクションgoM(z2
 (例えば4に×8のメモリ容量のもの)に接続された
マイクロシーケンサ部Q])(例えばアドバンスト・マ
イクロ・デパイセズ社の2910 >’を有する。RO
M <72は・やイノライン・レジスタQ椴に接続され
る。マイクロコード・エンジンはまた、入力がプライマ
リ・パス及びパイプライン・バスに接続されたALU 
(741(例えばアドバンスト・マイクロ・デバイセズ
社から入手できるsix、2901 )と、プライマリ
・パス(140)に接続され且つ入力がパイプライン・
ノ々ス(150)に接続されたアドレスブロック(78
a)”kmする補助RAM Q* (例えば4KX24
のメモリ容量のもの)と、同様にパイプライン・・々ス
及びプライマリ・パスに接続されたイミーデイエイト・
データバッファ(7[相]と、保持レジスタ(7Gとを
有する。保持レジスタ(75a)及び(75b)はプラ
イマリ・バスと繋がり且つALU出力バス(170)を
介してALU (7→に繋がっている。限定的に図示は
していないが、レジスタ(7υは、第3B図の他の殆ん
どのブロックと同様に制御デコーディング・ブロックの
から従来手法によ多制御信号を受ける。
再び第2図を参照すると、ラインスムージング手段■は
、一方で(表示プロセッサ(100) ’i構成するた
めに)マイクロコード・エンジンQ0に接続され、他方
でフレームバッファ(200)に接続される。図示され
たように、CPUメモリ・インタフェースカラのMOV
E 、 DRAWコマンドはマイクロコード・エンジン
Q*に与えられる。初期X位置情報は信号線(111)
 ’c介してフレームバッファ・ステージ(200)の
Xカウンタ(210)に送られ、初期Y位置情報は信号
線(112)を介してYカウンタ(205)に送出され
る。前述の如く、フレームバッファ(200)は、信号
線(215) i介して表示装置に出力を行なう。
マイクロコード・エンジンは画面の消去等の種々の仕事
と共に滑らかな直線を描く仕事を行なう。
マイクロコード・エンジンはCPUのメモリに蓄えられ
た表示リストからMOVF:、、 DRAW及びSET
 LINECOLORコマンドを読出す。SET LI
NE C0LORコマンドによって、例えば、マイクロ
コード・エンジンは第2及び第8図に示す比例重み付は
手段(iso)のレジスタ(181)に新しい直線色値
全ロードする。
MOVEコマンドでハ、マイクロコード・エンジンはフ
レームバッファ(200)のX及びYカウンタ(205
)。
(210)に新しい座標(次の直線の始点)をロードす
る。DRAWコマンドを受けると、マイクロコード・エ
ンジンは、デルタX (DX)、デルタY (DY)、
傾き、オクタント値(8方向値)の計算、及びラインス
ムージング・ブロック■内のレジスタのロードを含むセ
ットアツプ動作を行なう。これらの動作は後に詳述され
る。
ラインスムージング手段■は、信号線(113)でマイ
クロコード・エンジンQ0に接続されたDDAステージ
(130)と、信号線(1,54)でDDAステージ(
130)に且つ信号線(114)でマイクロコード・エ
ンジンQ*に接続されたアンチ・エイリアシング値発生
器(160)と、比例重み付は手段(180)から成る
。発生器(160)は信号線(177)を介してアルフ
ァに)値情報全比例重み付はステー−z (iso)に
出力すると共に、信号線(178) (夫々信号線(1
78a )及び(I78b)を介してステップ制御情報
を7レームバツフアのX及びYカウンタ(205) ’
+ (210)に出力する◇比例重み付は手段(180
)は、信号線(117)によフマイクロコード・エンジ
ンに接続されると共に、信号線(194)によシその出
力をフレームバッファ(200)に接続される。
第2図のようにラスクスキャン式に直線を発生するため
に、DDAが使用される(実施例ではDDAヱニット(
130) )。DDAの長軸に沿った各増分ステップ毎
に、直線内の各ビクセルに対して短軸位置情報が生成さ
れる。ラスタ・ビクセルの位置は固定されているため、
適切な且つ効果的なラインスムージング、即ちアンチ・
エイリアシング機能のない場合には等価直線はジャギー
即ち階段状になる。ラスタ画面の分解能よシ大きい分解
能でDDA (130) k動作させれば、理論的直線
と、関連するビクセルの個々のビクセル位置との間の距
離が決定できる。この各関連ビクセルのいわゆる短軸距
離情報は、発生される直線の傾きに対応する2進形式の
情報と共に発生器(160)内で用いられ、ここで各関
連ビクセルに割当てるべき゛グレースケール”値が発生
される。この発生器はビクセルの組にグレースケール値
を割当てることができる。
ビクセルの各組は、発生される直線の水平(3)及び垂
直(至)軸に対する方向に無関係にDDA (130)
の増分位置における理論的直線の断面に対応するもので
ある。任意の直線の中間部を構成するビクセルのアレイ
は直線をビクセルとビクセルとの間を通過するようにみ
せることができ、この結果直線の階段状形状が軽減され
る。
こうして純ソフトウェア手法に比べおよそ1000倍も
の高速でスムージングを行なえる。またラスタ画像自体
の形成中にスムージングを行なえるのでフィルタによる
後処理が必要ない。グレースケール値の生成に傾き情報
を1つ1つのビクセルに利用するので直線の方向の違い
による直線の太さの変化を最小にできる。
DDA (130)のユニークな構成によって、長軸に
沿う整数ステップ毎の短軸位置のnビットの分数精度で
の計算を1ステツプにつき1クロツクサイクルで行なう
ことができる。従って、例えばX方向に1ビクセル移動
するのに2nサイクル金要するブレゼンハムの分数ビク
セルグリッドに関するDDAアルゴリズム(Pr1nc
1ples of InteractiveCompu
ter Graphics”ウィリアム・ニューマン、
ロパート・スジロール共著、第2版、25乃至27頁、
マグロ−ヒル社、1979年)に比べ格段の進歩と考え
られる。
描かれる直線によってビクセルが部分的にカバーされる
ように発生器(160)から発生されるビクセル毎の値
、即ちアルファ値は、比例重み付はユニツ) (180
)によ勺表示ピクセルの新しい値を計算するために用い
られる。比例重み付はユニット(180)の機能は、特
に複数の直線が交差し且つ順次描かれる際、その交点に
おける輝度(カラーシステムにおいては色)の妥当なバ
ランスを望む場合に有効である。このようなバランスを
とることが不要の場合には、発生器(160)からのア
ルファ値は直接フレームバッファに入力してもよい。
本発明による比例重み付は技法では、例えば他の直線と
の交点において、生成されたアルファ値、古い(即ちフ
レームバッファ内の現在の)ビクセル値、及び描こうと
する直線の色が用いられる。
モノクロ システムでは、色の考慮はされない。
古いビクセル値が単に無視されるか、あるいはアルファ
値を直線輝度に乗じて最大値操作に用いられる従来シス
テム及びアルゴリズムとこの比例重み付は技法とは対照
的である。新しいビクセルはそれが古い値よシ大きいと
きのみ書込みが行なわれるこの最大値操作はモノクロ技
法に対してのみ知られている。従来技法は、理想的な場
合に照らしてみて比例重み(−1け技法より平均誤差が
犬である。
第4図に、ラスク形式に直線を発生するだめの本発明に
よるDDAのハードウェア構成を示す。説明簡略化のた
め、ここでは第1オクタン)(0から45°;X軸は0
°、Y軸は90°)方向の直線発生について説明する。
以下に説明する如く、第1オクタント以外のものも90
°回転及び反転によって得られる。第2A及び第2B図
を参照するに、基本的には、水平(X軸)から45°以
下(即ち、第1オクタント)の直線については、垂直(
短軸)方向に配置された3個のビクセルからなるプレイ
が直線の中間部に沿ってプロセッサのX (長軸)位置
毎に出力される。各アレイ内の個々のビクセルに割尚て
られるべきグレースケール(第6図参照)は実直線から
の短軸方向距離の関数である。
第2B図において、ビクセルSから直線までの真の距離
は、短軸方向距離(第1オクタント直線のこの場合は、
特定のビクセル位置と描かれる直線との間のY軸方向距
離)に、その直線が長(3)軸に対してなす角度のコサ
インを乗じたもので゛ある。
このように、第1オクタント方向の直線については直線
と水平軸との間の小角度が利用され、ビクセルのアレイ
は垂直と々る。描かれる直線が第2オクタント方向を向
く場合は、利用される角度は直線と垂直軸との間の小角
度であり、各DDAインクリメント毎のビクセル・アレ
イは水平となる。
第4図に示ずDDA構成は、長軸位置の各整数ステップ
に対し直線の短軸方向位置を分数ビクセル精度で計算す
ることを含む高速の滑らかな直線発生を企図したもので
ある。この構成において、DX及びDYは描く直線の終
点及び始点間の座標の差を表わす。勿論、第1オクタン
ト方向の直線を想定すればDX≧DY≧0である。また
、傾きは、分数ビクセル短軸(Y)精度のビット数をn
として 2nをDY/DX倍したものを超えない最大整
数(DY=Oなら零)とする。こうしてYは固定ビクセ
ル間の実際の距離の1/64単位で表わすことができる
第4図において、Aレジスタ及びBレジスタ(131)
 、 (132)の入力は夫々信号線(113a)及び
(113b)によシマイクロコード・エンジンに接続さ
れる。
信号線(139)及び(141)上のA及びBレジスタ
出力は夫々マルチプレクサ(133)のA及びB入力に
導かれる。信号線(142)上のマルチプレクサ(13
3)の出力は加算器(134)に接続される。加算器(
134)は信号線(143)によりアキュムレータ(1
35)に接続される。
アキュムレータ(135)の出力は信号線(144)に
よシ加算器(134)の入力に帰還される。アキュムレ
ータ(135)のサイン・ビット(MSB)は信号線(
147)によシマルチゾレクサ(133)の選択制御入
力及び第2の加算器(137)のキャリー・イン入力に
供給される。加算器(137)は1つの入力を信号線(
148)’を一介して傾きレジスタ(136)から受け
る。
傾き情報は既にマイクロコード・エンジンにょシ計算さ
れており、信号線(113c) i介して受取られる。
加算器(134)及び(137)は実際には、両者全結
合して各々の加算動作を順次行なう単一の加算器にして
もよい。
信号線(149)上の加算器(137)の出力は、マル
チプレクサ(152)及び信号線(153) を介して
短軸位置レジスタ(138)に入力される。短軸位置レ
ジスタ(138)はまた、信号線(113d) 、マル
チプレクサ(152)及び信号線(153)を介してマ
イクロコード・エンジンから初期Y軸位置情報を受ける
。第5図のレジスタ(161)もまた描かれる直線の初
期短軸位置全マイクロコード・エンジン(7Qから信号
線(114)を介して受ける。信号線(154)上の短
軸位置レジスタ(1,38)の出力は2進形式であり、
その一部はnビットの小数部、残シは整数部を構成する
。この位置情報は第5図のアルファ値発生器に供給され
ると共に加算器(137)に第2の入力として帰還され
る。短軸位置レジスタ(138)の出力の啜数部はその
ままフレームバッファの適切なカノンタ(第2図参照)
に入力することもできる。
直線発生開始に際し、第1オクタントの場合、5個のレ
ジスタ(131)、(132)、(135)、(136
)及び(138)に次の如きロードが行なわれる。
傾きレジスタ(136) :上述の如く割算された傾き
Y(短)軸位置レジスタ(138) :初期Y(短)軸
位置A v −、y 、< 夕(131) : 1lx
Dx)−(2nXDY)Bレジスタ(132) : A
レジスタ+DXアキュムレータ(135) : Aレジ
スタ+DX/2(端数切捨て)次に、アキュムレータ(
135)及び短軸位置レジスタ(138)は描くべき第
1オクタント方向の直線に対して長(3)軸方向に存在
するビクセル・ステップの数たけ同期してクロックされ
る。DX及びDYは、固定点ビクセルに対する小数部を
含んでもよい。これはよシ多いビット数の整数と考える
ことができるからである。
第4図に示すDDA構成により、長軸位置の整数ステッ
プ毎に小数部をnビットとする短軸位置の計算が行なわ
れる。この動作は、加算器及びマルチプレクサのみによ
ってlステラff単1クロックによって達成される(乗
除算等のステップあるレゼンハムのDDAアルゴリズム
を行なわなければならない。これでは長軸に沿って1ピ
クセル移動するのに2nサイクルかかつてしまう。
次に第5図にアルファ値(即ち、描かれる直線による各
ビクセルの部分的カバーを表わすビクセル毎の値)と、
長軸に沿う各位置毎に直線の中間部をカバーする3ビク
セル・アレイを出力させるステップ制御コマンドとを発
生するハードウェア構成を示す。
第4図の短軸位置レジスタ(138)の出力の小数部及
び整数部のLSB (最下位ビット)は信号線(154
)によりレジスタ(161)に読込まれる。これらは、
適切に作成されたルックアップテーブルを収納してい゛
るROM (163)に信号線(167)を介してアド
レス入力として与えられる。ROM (163)は信号
線(172)上にFIFO(ファーストイン・ファース
トアウト)バッファ(166)に対してアルファ情報を
出力する。ROM (163)の残りのデータ出力、即
ち信号線(173)は加減算器(165)へ接続される
加減算器(165)の出力はステップ制御コマンドであ
シ信号+%! (176)によりFIFOバッファ(1
66)に与えられる。FIF″Oバッファのアルファ出
力及びステップ制御出力は夫々信号線(177)友ぴ(
178)上に出力される。
描かれる直線のオクタント方向に関する情報はマイクロ
コード・エンジンから信号線(114)を介してオクタ
ント・レジスタ(164)に読込まれる。
このレジスタの内容のLSBは信号線(175)を介し
て加減算器(165)に与えられ、加減算器(165)
iiその信号線(173)及び(174)上の2入力全
加算するかあるいは減算するかを制御する。
第5図の構成の本質は、自動処理機能を有するROM 
(163)のルックアップ・テーブルにある。高分解能
の滑らかな画像(例えば直線)発生のためのテーブル値
を決定する過程をよ多良く理解するためには、コンピュ
ータ機器協会(As5ociationfor Com
puting Machinery 、 Inc 、 
)発行のS IGGRAPH会議議事録(1980年)
に記載のJohn E、 Warnock著”The 
Display of Characters Usi
ng Gray LevelSampling Arr
ays ” 、 302〜307頁全参照されたい。
ROM(163)はアルファ値を出力するだけでなく、
直前のビクセルからこのビクセルへの移動方向制御信号
をも出力する。隣接することのできる8個のビクセルの
任意の方向に移動できるようこのステップ制御に3ビツ
トが用いられる。直線発生前に、始点の座標(最も近い
ビクセルに丸められたもの)がマイクロコード・エンジ
ンによって7レームパツフア・システム(200) (
第2図)のX及びYカウンタ(210) 、 (205
)にロードされる。その後、直線に沿うステップを行な
うために、これらのカウンタにはインクリメント及びデ
クリメント・コマンドのみが用いられる。直線に接触す
る全ビクセル(アルファ値が零でないもの)は隣接する
ピクセルを連続的に連結して辿ることができる。
テーブル作成のために、あるピクセルをスキップした方
が都合が良いという場合には、零のアルファ値を利用し
てこれらのピクセルの変更ヲ回避テきる。
実施例では、テーブルの大きさを節約するためROM 
(163) u常に第1オクタント(0から45°)で
動作する。オクタント・レジスタ(164)及び加減算
器(165)によシ他の7オクタントに必要な90’回
転及び反転処理を行なう。この処理は信号線(173)
上のステップ・コマンドを変えることにょシ行なわれる
。第7A乃至第7C図は、オクタント・レジスタの値及
びそれに対応する加減算器の動作を示す。
マイクロコード・エンジンが滑らかな直線全描くために
最初に行なう動作は、その直線のオクタント方向(即ち
、その直線が存在するオクタント)を決定し、そのオク
タント値をオクタント レジスタ(164)にロードす
ることである。
前述したように、ROM (163)の入力は、信号線
(167)を介してレジスタ(161)に、及び信号縁
(171)を介してカウンタ(162)に結合される。
最も簡単な場合、レジスタ(161)にはピクチャー(
または表示)プロセッサ(pp )からロードされ、カ
ウンタ(162)は描かれる直線の各断片の始めにクリ
アされる。一般に、各直線断片には3個乃至16個のピ
クセルが書かれ、1本の直線を描くには複数の断片が必
要である。
断片は3つの種類に分けられる。即ち、ショートベクト
ル(例えば2ピクセル分の長さよシ短い)、それよシ長
いロングベクトルの端点、及びロングベクトルの中間部
である。この3種類のいずれの場合も、マイクロコード
・エンジンによりレジスタ(161)にロードされた値
は夫々数ビットからなるフィールドの組として扱われる
。このフィールドは3つの種類で異な夕、各種類でレジ
スタの内容が常にト別できる(重複しない)ように決定
される。
ショートベクトルは1つの断片で書かれる。レジスタ(
161)は4つのフィールドに分割される。
夫々、(第1オクタントヲ仮定して)X始点位置の小数
ピクセル・ビット(この場合、2ビツト)、Y始点位置
の小数ピクセル・ピット、デルタX(始点及び終点のX
座標の差の小数部2ビットと整数部1ビット)、及びデ
ルタYである。これらの値はプロセッサによシ計算され
、1語に結合されてレジスタ(161)にロードされる
。そこでカウンタ(162) i、j、このショートベ
クトルに接触する全ビクセルをカバーするため必要々ス
テップだけROM(163) ’i駆動するのに用いら
れる。上述の如く、始点のX及びY座標は整数(ピクセ
ル位置)に丸められ、直線発生前にフレームバッファシ
ステムの位置カウンタにロードされる。
ロングベクトルの端点も1断片として書かれる。
この場合、レジスタ(161)は3つのフィールドに分
けられる。即ち、上述と同じく、X及びY始点位置の小
数ピクセル・ピント、及び直線の傾@(デルタY/デル
タX)である。ROM (163)の入力側での全処理
は第1オクタント内で行なわれるため、直線の傾きはO
と1との間である。この値は利用できるROMテーブル
の大きさに応じて例えIi5乃至6小数ビツトに切捨て
られる。これらの情報によシROM ’(163)は直
線の端点に近接した全ビクセルをカバーするに必要な回
数たけステップされる。
ロングベクトルは、一方の端点から始め、中央部を処理
し、他方の端点て終わるという通常の順序で描〃・れる
。終点の処理は、逆向き(始点及び中央部で用いたオク
タントから180°)のオクタントがオクタント・レジ
スタ(164)にロード烙れる以外は笑質的に始点の処
理と同じである。
ロングベクトルの中間部は夫々垂直のピクセル・アレイ
から成る多くの断片として推力・れる(”垂直″という
語は、直線は常に第1オクタント内に存在するとして扱
われるROM(163)の入力側に対して用いる。)。
プロセッサは、1点から他の1点捷での直線に沿ってJ
垂直アレイから隣接する垂直アレイへとステップしてい
く。各ステップ毎に、プロセッサ(即ち、第4図に示す
構成)は力性の垂直(1)位置を分数ビクセル精度(笑
施例では6ビツト)で計算スる。レジスタは4つのフィ
ールドに分けられる。即ち、上述の傾き(但し3ビツト
に切捨て)、Y(短軸)位置の小数部、Y位置の整数部
が前ステップと今ステップとの間でインクリメントされ
たかを示す1ピント値(インクリメント・ピント)、及
び各新しい断片をトグルする(進行方向を反転する)他
の1ピント値(トグル・ピント)である。傾き及び小数
Y位置は、直線に接触する現在のアレイ内のビクセルに
刻してアルファ値を決定するに必侠な情報を提供する。
Y(短軸)インクリメント・ピントはステップ・ライト
かステップ・アンプかを決定し、ある断片の始めにはラ
イト(ステップ0またはステップ1)コマンドが必要と
される。トグル・ビットは、この断片がビクセル・アレ
イに涜って下から上へステソゲするか、あるいは上7Q
)ら下へステップするかを制御する。このように、ビク
セルのアドレスは1つのアレイをステップ・アンプし次
のアレイラステップ・ダウンしながら直線に沿ってジグ
ザグに進行する。第9A乃至第9E図、特に第9A及び
第9B図を参照されたい。但し、これらは第2オクタン
ト方向の直線を示している。
5ピントのアルファ値及び3ビツトのステップ制御値は
8ビツトのFIFO(166)に蓄積される。
FIFOの使用によシこのライン・スムージング構成は
その最高速度でコマンドを発生することができる。この
最高速度はバンファ・システム(200)がこれらのコ
マンドを実行する速度よシも速い。フレームバンファ・
システムは、プロセンサが次の直線のデータを取込んで
セットアンプ全行なう間、FIFOバッファの内容を読
出し続けることができる。
ROM(163)のルックアップ・テーブルの値は汎用
計算機によって発生してもよい。滑らかな直線を発生す
るための任意の正確なソフトウェア・アルゴリズムを使
用できる。上述の如く、それらの幾つかは出版物に記載
されている。断片の各種類毎に、またその種類における
可能々レジスタ値毎に、選択されたアルゴリズムにょシ
それに対応した直線が発生されよう。
本発明においては、直線の適自な断片に対するアルファ
値は適切々ビクセルを辿るための一連のステップ・コマ
ンドと共にROM内に書込せれている。これによってこ
のシステムは非常に高速で動作することを除けば、選択
された汎用計算機アルゴリズムと実力的に同一の直線を
発生する。
第7図に、第5図に示した構成をよシ詳細に表わすブロ
ック図を示す。この第7図において、ブロック(161
a)及び(i6ib)は第5図のレジスタ(161)(
i−1成し、ブ0ツク(163)及び(163a)は第
5図のROMを構成する。他のイづ加重構成要素は、ダ
ート(202)、(206)、(208)及び(286
)、フリラグ・フロップ(225)、及びインバータ(
204)の形で供給されている。
第7図において、特に示してはいないが、直線の中間部
の各アレイを構成するビクセルの数を使用者が3以上の
任意の数に選択することができるようにレジスタ(16
3a)と加減算器(165)との間に適当な論理回路を
設けることもできる・次の表は第7図の各ブロックの機
能をよ、り詳細に示す。
ブロック番号 機 能 部品番号 (161a) 6ビツト・レジスタ LS378−TI
(ブロック・イネーグル端子付) (161b) 8ヒツト・l/レジスタS377− T
I(クロック・イネーブル端子付) ネーブル端子付) (163) 32KX8・ROM 27256−IN置
(]、63a) 8ビツト・レジスタ LS374−T
I(164) 4 ヒラ) −vシスタLS379−T
I(ブロック・イネーグル端子付) (165) 4ヒ7ト−ALU LS382−TI(1
66) FIFOメ%リ LS2’2 <2)−T I
(225) D−7リツプー 70’)プ LS74−
TI(251) Quad 2−17#チプレク+!i
 LS157−TI(TI :テキッース・インスッル
メント社、I装置:インテル社)ラスク形式の表示装置
において完璧に近いラインスムージングを行なうには、
ピクセルの輝度(あるいはカラーシステムではピクセル
の色)を決定する前に、そのピクセルを通過する各直線
の情報が必要とされる。しかし従来技術ではこのような
システムを構成したとしても許容し難いほど処理速度が
遅いものになるであろう。第8図の比例重み付は手段は
1つの近似プロセスを提示する。これによれば直線を1
1次交差(ジャギーの生じる表示装置では一般的)させ
ることができる(従って高速となる)。この近似プロセ
スによれは、1本の直線のみによって、あるいは直角に
交差する2本の直線によってカバーされるビクセルに適
切な輝度値及び色が設定される。90°より大または小
なる角度で交わる直線に部分的にカバーされ0るビクセ
ルは、夫々実際よシ多くまたは少なくカバーされてみえ
る。しかしこの点については、従来の最大値あるいはい
わゆる無条件置換技法が本発明よpその平均誤差が少な
くとも2倍は太きいということを考慮すべきであろう。
第8図&:l: 3個のROM (182)乃至(18
4)及び直線色レジスタ(1,81)’に有するカラー
システムの具体例である。第5及び第7図の装置によシ
発生されたアルファ値は第8図の信号線(177)によ
りROM(182)乃至(184,)に入力される。各
ROMは夫々赤@)、緑(G)及び宵(B)の3原色の
1つに対して設けられる。書込まれるべき位置のピクセ
ルに対する古いピクセル値(この例では8ピント)は信
号線(195) Vc ヨl:rフレームバッファから
導かれ、信号線(195a)乃至(195c)を介して
ROM(182)乃至(184)の各々の第2入力に与
えられる。今1つは、新しく描かれる直線の所望の色に
関する情報(8ビツト)がマイクロコード・エンジン(
70) (g 2図)から信号線(1,17)によシ直
線色レジスタ(181)に入力される。直線色し・ゾス
タ(181)の出力(188)は(信号i (195)
上の古いピクセル値入力と同様に)赤に3ビツト、緑に
3ピント及び青に2ピントに分割される8ビツト構成で
あシ、夫々信号線(188a)乃至(188c)によシ
各対応ROM’(182)乃至(184)に送られる。
ROM (182)乃至(184)の1つにまとめられ
た出力(1194)はフレームバッファに送出される新
しいビクセル値となる。
モノクロ・システムでは、直線色レジスタ(18]、)
及びROM (182)乃至(184)の入出力信号線
は削除される。異なる直線輝度のモノクロ直線を描きた
い場合、直線色レジスタ(181)は残され、直線輝度
レジスタとして用いられる。モノクロ構成ではROM(
182)乃至(184)のうち1個かあればよい。
実施例では、滑らかな直線が表示プロセッサにより11
1次、即ち1度に1本ずつ描かれる。直線に接触する各
ビクセルに対して、アルファ値(即ち、最も単純な場合
、そのビクセルが直線によシカパーされる度合)が計算
される。アルファ値は例えは特別の重み付は機能の結果
を含むことができる(もしそれが、テーブル値を発生す
るのに用いられるソフトウェア・アルゴリズムの一部で
あれば)ということに留意されたい。第8図の構成によ
って、古いビクセル値、アルファ値及び直線の所望の色
に基づいて輝度及び色の両方について新しいビクセル値
が発生される。この栄1しく発生されたビクセル値はア
ルファを比例定数とした、古い値及び直線色の比例平均
である。
IRQ 、 IRN及びIRLを夫々、古いビクセル値
(信号線(195) )の1赤電子銃輝度(red g
unintensities )”、新しいビクセル値
(信号線(189))、及び直線色(信号M(117)
)とすると、次式が成立する。
IRN=(アルファX IRL)+ [(]−アルファ
) X IRO)実際には、種々のアルファ、IRQ、
IRLO値が用いられルックアンプ・テーブルが形成さ
れる。
ルックアップ・テーブルは、信号線(195)及び(1
88a)上の3ピント値によシ選択され且つ信号線(1
77)上の5ビツトアルフア値によシ比例重み付けされ
て3ビツトの新しいビクセル赤輝度(189)が出力さ
れる如く赤電子銃ROM (i82)内に@積される。
勿論、緑及び青の色、及び対応するROM(183)及
び(1,84)についても同様である。
以下、図示したシステムの動作について説明する。
今、座標(50,5、,10)から(60,30)(座
標はX、Yで与えられる)へ滑らかな直線を描くとする
。このコマンドはホストから端末のCPUを通ってマイ
クロコード・エンジン(70) (、第1及び第2図)
へ送られる。マイクロコード・エンノンは、デルタX 
(DX)f:60−50.5 = 9.5及びデルタY
 (DY)を30−10 = 20と計算する。マイク
ロコード・エンジンは更にDY) DX) Oであシ、
直線が第2オクタント方向であることを認知する。従っ
て第7図のオクタント・し・ゾスタ(164)には値2
(2進数で01.0 )がロードされる。これによシ、
加減算器(1,65)は第7C図の表に示すように次の
動作を行なう。
ステップ制御値= 2−ROM(163)のステップ出
力2進数010のLSBは減算を指示し、上位2ビツト
は被減舞−数(この場合2)を表わす。
マイクロコード・エンジン(70)は第4図の説明のと
ころで前述した計算式によって傾きを計算する。小数ビ
ット数nは6であるから、2nは64となる。傾きは、
定義したように2nX (DX/DY )を越えない最
大整数である。(ここで注意すべきことは、この直線が
第2オクタント方向であるためここでは第4図の説明に
おけるDY/DXではなくDX/DYが用いられるとい
うことである。)従って64 X (9,5/20 )
−30,4を越えない最大整数は30(2進数で011
110)となる。
画面に1かれる最初のピクセル(複数)は始点に対応す
るピクセルである。この芙施例では端点位置け4分の1
ビクセル位置(X及びYにおいて小数2ビツト)単位で
決まる。始点X位aを丸めた(四捨五入した)整数51
はフレームバッファ(FB)のXアドレス・カウンタぐ
210) (第2図)にロードされ、始点Y位置を丸め
た整数10はYアドレスカウンタ(205)にロードさ
れる。x3びYの小数2ビツト(2進数でXは、10 
、 Yば、00)は傾きの上位5ビツト(2進数011
11 )に刺加され9ビツト・ワード(01’1llO
O10)を構成する。更にこのワードの最上位に2個の
1を付加し11ピント・ワード(1101111001
0)を作る。このワードは第5及び第7図のROM入力
レジスタ(161)にロードされる。このワードの最上
位の2個の1は、直線の端点用のROMテーブル部分を
アドレス指定する。この上位2ビツトの値は任意の2ビ
ツト値を割当て得る。第5及び第7図のカウンタ(16
2) (、この例では4ビツト)は0をロードされ、そ
の後、直線の端点に接触するすべてのビ汐セル毎にイン
クリメントされる。(必要なインクリメントがいつ終了
するかは後述。) FIFO(166)にはカウンタ(
162;の各インクリメント前にステップ及びアルファ
値がロードされる。各ステップ及びアルファ・コマンド
によってFBに対してなされることは、まずX及びYカ
ウンタを適切にステップさせ、その後これらのカウンタ
によシ指定された位置に第8図の構成を用いて新しいピ
クセル値を蓄積する。このように、1ずステップが行な
われ、その後、ピクセルが読出され、変更され、1.込
まれる(これとは異なる順序で処理を行なうためにテー
ブルは変更し得る。)。
次に第9A乃至第9E図金参照する。睨明のために第7
図の回路例金想定する。5ビツトのアルファ値が発生さ
れる。その値O乃至29(2進数でooooo乃至11
101 )は0と1との間のアルファ値を表わすため均
等に分配される。値30及び31(2進数で11110
及び11111 )は1つの断片の端部を指示するため
に用いられる。5個のピクセルが書かれる必要がある始
点(第9A及び第9B図)の場合、カウンタ(162)
の第5ステツプでアルファ値は31となる。これによυ
カウンタ(162)及びPIF’O(166)のステツ
7″は禁止され、この断片の端部を示すフラグをセント
する。このフラグはマイクロコード・エンジンが読取り
識別する。始点を書き終えた時点で、ステップ・コマン
ドは、直線の中間部の断片に沿ってジグザグ進行すべ(
、FBカウンタ(205)、(210) (第2及び第
9A図)を直線の丸められた始点のlビクセル左(第1
オクタントでは下)に移動させる。
傾きの上位3ビツト(2進数011)に2進数の値10
が付加され5ビツト値(10011) ’r作る。この
値ハマイクロコード・エンジンによp ROM人力レジ
スタの上位5ピント(a チレジスタ(161a) )
にロードされる。この値は直線の全中間部において一定
に維持される。初期X位置(第2オクタントのためYで
は々い)は1/2だけインクリメント(切捨てでけ々ぐ
四捨五入を行なう時の如く、2進数、100000を加
算)され第4図の短軸位置レジスタ(138)にロード
される。このX位置は6ビツトの小数部を有し、そのう
ちの4ビツトは端点が1/4ビクセル粘度のみに限定さ
れているため初期値は常に零であるように整えられる。
この例では、このf[hは50.5 +0.5 = 5
1 (2進数110011、oooooo )となる。
勉軸位置レジスタ(138)の整数部が、最も近いビク
セルの丸められた位置を常に含むように、このレジスタ
にロードされる値には1Aが加算される。短軸位置レジ
スタ(138)の小数部はマルチプレクサを介して第7
図のROM入−力レジスタの下位6ビツト(即ちレジス
タ(f61b))にロードされる。レジスタ(161b
)の第7ビツトには短軸位置レジスタ(138)の整数
部のLSEがロードされる。この第7ビツトは直接には
ROM (163)に送られない。
Y始点位置(第1オクタントでけX)が整数でない場合
には、直線の中間部の処理を始める前にY始点位置は次
の整数値にまで移動される。X始点位置も、(Yに加算
された量)×(傾き/64)を加算することによシ適切
に調整される。
第4図の装置(DDA )が今1回クロックされると、
新しいX位置が第7図のレジスタ(161)に書込まれ
る。同時に、カウンタ(162)にロードが行なわれる
(この例では新しいX位置は前のX位置と同じ整数部の
LSBをもつ110011.011110となる。)。
カウンタ(162)の下位2ビツトには常に0がロード
される。第3ビツトには、短軸位置レジスタ(138)
の整数部LSBが前の状態と変わったとき01同じとき
1がロードされる(グー) (286)及び(208)
による)。カウンタの第4ビツトには、直線の中間部の
アレイに沿うジグザグ進行(第9B図)の現在の方向を
示すためにマイクロコード・エンジンによシ直接O及び
1が交互にロードされる。
この時点でけ0がロードされ、カウンタ(162)の値
は4(2進数0100 )となる。
そこで、カウンタ(162)は直線の3ピクセルから成
る最初の断片を書込むため3回インクリメントされる。
第1のステップは上方向であシ、次の2つのステップは
右方向である。第4図のDDAが2度目にクロックされ
ると、レジスタ(161)に新しいX位置が書込まれる
(新しいX位置は2進数110011.111101で
あるがレジスタにロードされるのは1.111101で
ある)。今回も短軸位置し、ジスタ(138) (X位
置)の整数部のLSBは変化しないので、カウンタ(1
62)の第3ビツトには1がロードされる。第4ビツト
は1に反転させられる。その結果カウンタ(162)に
は値12 (16進数でC,2進数で1ioo)がロー
ドされることになる。カウンタ(162)は再び3回イ
ンクリメントされ、上方向に1回、次に左方向に2回ス
テップを行なって直線の第2の3ビクセル断片を書込む
X位置は3度目に2進数110100.011011と
なる。
この整数部は前回よりインクリメントされている。
そこで、カウンタ(162)の第3ビツトにけ0がロー
ドされ、第4ビツトは0に戻され、カウンタ値は0(2
進数oooo )となる。このカウンタが3回クロック
されると、捷ず右上に1回、次に右に2回ステップが行
なわれる。
この過程は19番目の3ビクセル断片まで継続される。
この後、終点書込みのためマイクロコード・エンジン(
70)が直接(第7図のマルチプレクサ(251) f
:介して) FBカウンタ(205) 、 (210)
を終点位置(最も近い位置に丸められた位置)に設定す
るよう必要なステップ(この場合、左上)を行なう。
終点は始点とは反対方向に面しているので、マイクロコ
ード・エンジンは第7図のオクタント・レジスタ(16
4)に反対のオクタント値(この場合6)をロードする
。マイクロコード・エンジンは第6オクタント方向の直
線の始点と同一の処理を行ない、カウンタ(162) 
i 6回インクリメントしてこの終点に接触する全ビク
セルをカバーする。
上述したシステムの笑施に際し、第5及び第7図のRO
M (163)に必要なラインスムージングのテーブル
値を作成するだめの手順の一例を以下に説明する。任意
の長さ及び方向の滑らかな直線を発生する周知の正確な
(速度は多分遅い)任意のアルゴリズムを利用できると
する。このアルゴリズムはモノクロ・フレームバッファ
のビクセル位置に0と1との間の輝度(高精度)を設定
できるものでなければならない。このアルゴリズムで描
かれるいずれの直線も空白の(何も1込まれていない)
フレームバッファに書かれるものとする。よって直線の
交差はこのアルゴリズムでは処理する必要がない。
上述の動作説明の中に利用された座標(50,5。
10)から(60、30)への直線の例を考える。この
直線を正確なアルゴリズムを用いて発生する。そこで上
述の動作説明に沿ってあたかも直線がこのシステムによ
って描かれる如くに進めていく。但し、最初のステップ
及びアルファ値がROM (163)(第7図)から出
力をれるべき時点で中断する。
現在位fifF(フレームバッファ(200)のX及び
Yカウンタ(205) 、 (210)によりアドレス
指定された位置)は座標(51,10)である。
まずステップ値を計算する。ステップはビクセル書込み
前に行なわれることを頭において、現在位置から出発し
て左方(第1オクタントなら下方)の終了位置までの隣
接ビクセルの経路を工夫する。
この経路は正確なアルゴリズムによシ非零に設定された
、直線のこの端点における全ピクセルをカバーし彦けれ
ばならない。この経路を通過するに必要なステップ値を
、ROM人力レジスタ(161a)。
(161b)及びカウンタ(162)内の現在のアドレ
スから始まるROM (163)の順次アドレス位置に
蓄積するO そこでROM (163)の同じアドレス位置を再度辿
る。第1番から始めて、そのステップ・コマンドがフレ
ームノぐツファをどのぎクセルに位置させるかを訴べる
。その輝度値を正確な(それ以前は空白の)フレームバ
ッファから読取シ、その大きさに応じてOから29の値
に割振る。この値をROM(163)のアルファの部分
へ蓄積する。上述の発生された全経路を通じてこの処理
を続ける。使用された最後のアドレス位置の後に、この
断片の終了を示すアルファ値31を蓄積する。
直線の中間部の断片に対するテーブルも同様にして埋め
ることができる。処理法の唯一の変更は、直線に最も近
い各断片の3個のビクセルは、その中の幾つかのビクセ
ルの輝度が零であったとしても経路に含まれなければな
らないことである。これらのビクセルは単にアルファ値
として零を出力し、描かれる直線には何の影響も与えな
い。
正確なアルゴリズムによシ充分な本数の直線が発生され
、上述の手順でROMに蓄示していけば、全テーブルが
埋まるであろう。勿論、ROM (163)よりeのハ
ードウェアが1つのオクタントから他のオクタントへの
翻訳を行なうので、テーブルを埋めるには1つのオクタ
ント方向のみの直線が必要である。試行直線の選択はラ
ンダムに行々つでも最終的にはテーブルを満たすことは
できるが、入念な選択を行なえばテーブル入力の冗長な
計算が避けられ、迅速なテーブル作成が行える。
(発明の効果) 本発明の直線発生器によれば、直線を構成する各ビクセ
ルの輝度データの決定に短軸位置情報だけでなく直線の
傾き情報も用いるので、傾きに関わらず直線の太さを一
定にすることができる。まだ直線の中間部の断片に3個
以上のビクセルからなるアレイを用いるので極めて滑ら
かな直線が発生される。端点に対しては端点の小数位置
情報及び傾き情報に基づき特別の処理を行なうので直線
の始点及び終点を高精度に描くと共に、直線の切口が斜
めになるのを防止できる。更に、複数の直線が交差する
場合、その交点におけるビクセルの輝度(および色)を
比例重み付は手法で決定することにより交点における自
然な輝度(および色)のバランスが得られる。しかもこ
れらの機能をハードウェアで実現(%にアルファ値及び
ステップ値をルックアップテーブルで処理)するので極
めて高速の直線発生を行なうことができる。
【図面の簡単な説明】
第1図は本発明が適用されるラスタ・スキャン表示シス
テムのブロック図、第2図は本発明の改良されたライン
・スムージング、システムのグロツク図、第2A図は本
発明の3ビクセル・アレイを用いるライン・スムージン
グの表示例、第2B図は第2A図のB−B線上のアレイ
部分の拡大図、第3A図は第1図のシステムのマイクロ
コード・エンジン部分トCPU、ラインスムージング・
ノ% −ドウエア及びフレームバッファ間の接続関係を
示すブロック図、第3B図は第2図のマイクロコード・
エンジンのブロック図、第4図は第2図の−DDAを示
すブロック図、第5図は第2図のアンチ・エイリアシン
グ値発生器のブロック図、第6図は第2及び第5図のシ
ステムに採用可能々ピクセル輝度グレースケールを表わ
す図、第7図は第5図の発生器のよシ詳細なブロック図
、第7A乃至第7C図は夫々第7図のオクタント・レジ
スタ(164)、及び加減算器(165)の動作説明図
、第8図は第2図のシステムの比例重み付は手段のブロ
ック図、第9A乃至第9E図は本発明のラインスムージ
ング手段によシ発生される種々の値及び動作を直線の各
ビクセルに対応して示す説明図(説明の都合上、第2A
及び第2B図と異なシビクセルはグリッドの交点ではな
く枠内に描いている)であシ、夫々、各ビクセルにおけ
る4ビツト・カウンタ(162)の値、ビクセルの書込
順序、ROM (163)出力のステップ値、加減算器
(165)出力のステップ値、近似アルファ値を示す。 図中、(130)及び(160)は夫々DDA及びアン
チエイリアシング値発生手段である。 FlG、2A FIG、 28 テ゛シタル と1りtル1直 FIG、6 i、)Q ξ)・) ン一 ど l ど :シ オククニト 入テップy+ 411’1コマシトFlG
、7A FlG、78 FIG、 7C FlG、9A FIG、9B FIG、9C 201 手続補正書(1却 昭和59年6月18日 特許庁長官 若 杉 和 夫 殿 昭和59年特許願第43737号 2・発明)名称 直線発生装置 3、補正をする者 事件との関係 特許出願人 4、代理人

Claims (1)

    【特許請求の範囲】
  1. 直線の始点及び終点位置情報及び直線の傾き情報に応じ
    て上記直線の始点及び終点間の直線の中間部を構成する
    夫々3個以上のビクセルからなる複数の断片の各ビクセ
    ル位置を決定するビクセル位置決定手段と、上記断面の
    各ビクセルの上記直線に対する距離及び上記直線の傾き
    情報に応じて上記断片の各ビクセルに対する輝度値を出
    力する輝度値出力手段とを具え、上記直線の傾きに関わ
    らず太さが略一定の滑らかな直線を興生ずるラスタスキ
    ャン表示装置の直線発生装置。
JP59043737A 1983-03-07 1984-03-07 直線発生装置 Pending JPS60132274A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/472,463 US4586037A (en) 1983-03-07 1983-03-07 Raster display smooth line generation
US472463 1983-03-07

Publications (1)

Publication Number Publication Date
JPS60132274A true JPS60132274A (ja) 1985-07-15

Family

ID=23875598

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59043737A Pending JPS60132274A (ja) 1983-03-07 1984-03-07 直線発生装置

Country Status (4)

Country Link
US (1) US4586037A (ja)
EP (1) EP0121311A3 (ja)
JP (1) JPS60132274A (ja)
CA (1) CA1221780A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01227069A (ja) * 1988-01-29 1989-09-11 Tektronix Inc 波形表示方法
JPH02995A (ja) * 1988-06-08 1990-01-05 Japan Aviation Electron Ind Ltd 液晶パネル用ベクタージェネレータ
JPH02994A (ja) * 1988-06-08 1990-01-05 Japan Aviation Electron Ind Ltd カラー液晶パネルへのライン表示方法
JPH04100180A (ja) * 1990-08-20 1992-04-02 Japan Aviation Electron Ind Ltd ベクトル発生器
JP2007193565A (ja) * 2006-01-19 2007-08-02 Fujitsu Ltd 画像処理装置
US7977277B2 (en) 2005-07-29 2011-07-12 Saes Getters S.P.A. Getter systems comprising an active phase inserted in a porous material distributed in a low permeability means
US8562856B2 (en) 2005-07-29 2013-10-22 Saes Getters S.P.A. Getter systems comprising a gas-sorbing phase in the pores of a porous material distributed in a permeable means

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL72685A (en) * 1983-08-30 1988-08-31 Gen Electric Advanced video object generator
US4688190A (en) * 1983-10-31 1987-08-18 Sun Microsystems, Inc. High speed frame buffer refresh apparatus and method
DE3587272T2 (de) * 1984-01-30 1993-07-29 Sextant Avionique Verfahren und geraet zur erzeugung einer glatten kurve auf einer gerasterten anzeigevorrichtung.
FR2563025B1 (fr) * 1984-04-17 1986-05-30 Thomson Csf Dispositif pour l'obtention de traces continus sur l'ecran d'une console de visualisation commandee par un processeur graphique
US4860237A (en) * 1984-08-03 1989-08-22 Xerox Corporation Scan linearity correction
US4780711A (en) * 1985-04-12 1988-10-25 International Business Machines Corporation Anti-aliasing of raster images using assumed boundary lines
US4677431A (en) * 1985-08-23 1987-06-30 Spacelabs, Inc. Raster display smoothing technique
US4703230A (en) * 1985-08-30 1987-10-27 Kabushiki Kaisha Toshiba Raster operation circuit
US4720705A (en) * 1985-09-13 1988-01-19 International Business Machines Corporation Virtual resolution displays
JPH0664536B2 (ja) * 1986-01-17 1994-08-22 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 仮想端末サブシステムの制御方法
US5274754A (en) * 1986-04-14 1993-12-28 Advanced Micro Devices, Inc. Method and apparatus for generating anti-aliased vectors, arcs and circles on a video display
US4808984A (en) * 1986-05-05 1989-02-28 Sony Corporation Gamma corrected anti-aliased graphic display apparatus
US5838298A (en) * 1987-02-13 1998-11-17 Canon Kabushiki Kaisha Image processing apparatus and method for smoothing stairway-like portions of a contour line of an image
US4855935A (en) * 1987-05-08 1989-08-08 Sun Microsystems, Inc. Method and apparatus for rendering vectors using bresenham parameters
US5063375A (en) * 1987-07-27 1991-11-05 Sun Microsystems, Inc. Method and apparatus for shading images
GB2207839B (en) * 1987-07-30 1991-07-10 Ibm Line generation in a display system
US4873515A (en) * 1987-10-16 1989-10-10 Evans & Sutherland Computer Corporation Computer graphics pixel processing system
EP0313332B1 (en) * 1987-10-22 1994-12-14 Rockwell International Corporation Method and apparatus for drawing high quality lines on color matrix displays
JPH01111276A (ja) * 1987-10-23 1989-04-27 Nippon Sheet Glass Co Ltd ドットパターンの自動作図装置
US5185599A (en) * 1987-10-26 1993-02-09 Tektronix, Inc. Local display bus architecture and communications method for Raster display
US4878182A (en) * 1987-10-30 1989-10-31 International Business Machines Corporation Multiple pixel generator
US4908780A (en) * 1988-10-14 1990-03-13 Sun Microsystems, Inc. Anti-aliasing raster operations utilizing sub-pixel crossing information to control pixel shading
US5179647A (en) * 1989-01-09 1993-01-12 Sun Microsystem, Inc. Method and apparatus for implementing adaptive forward differencing using integer arithmetic
US5164717A (en) * 1989-09-28 1992-11-17 Sun Microsystems, Inc. Method and apparatus for the dithering of antialiased vectors
US5264840A (en) * 1989-09-28 1993-11-23 Sun Microsystems, Inc. Method and apparatus for vector aligned dithering
US5206628A (en) * 1989-11-17 1993-04-27 Digital Equipment Corporation Method and apparatus for drawing lines in a graphics system
US5140315A (en) * 1990-04-16 1992-08-18 Analog Devices, Inc. Antialiased pixel based display system for lines and solids
US5361387A (en) * 1990-10-09 1994-11-01 Radius Inc. Video accelerator and method using system RAM
US5293472A (en) * 1991-04-22 1994-03-08 International Business Machines Corporation Method of generating lines and curves of user specified thicknesses on a raster device
JP3490729B2 (ja) * 1991-12-20 2004-01-26 ゼロックス・コーポレーション 階層的テンプレート突合せによる画像の忠実性強化再生
WO1993013489A1 (en) * 1991-12-24 1993-07-08 Sierra Semiconductor Corporation An anti-aliasing method for polynomial curves using integer arithmetics
DE69321511T2 (de) * 1992-04-29 1999-04-08 Canon Kk Farben Erzeug- und Mischvorrichtung
US5333250A (en) * 1992-06-22 1994-07-26 International Business Machines Corporation Method and apparatus for drawing antialiased lines on a raster display
US5392061A (en) * 1993-01-25 1995-02-21 Hewlett-Packard Company Pixel resolution enhancement employing encoded dot size control
US5502795A (en) * 1993-08-31 1996-03-26 Matsushita Electric Industrial Co., Ltd. Antialias line generating method and antialias line generator
US5872868A (en) * 1996-10-03 1999-02-16 Xerox Corporation Technique for generating and storing edge phase information for rendering text and lineart in hyperacuity printers
KR100438767B1 (ko) * 1997-08-26 2004-07-16 삼성전자주식회사 디.디.에이. 알고리즘을 이용한 라인 드로잉 장치
US6002407A (en) 1997-12-16 1999-12-14 Oak Technology, Inc. Cache memory and method for use in generating computer graphics texture
FR2777379B1 (fr) * 1998-04-14 2000-06-30 Magneti Marelli France Dispositif generateur d'informations visuelles composees d'une juxtaposition de mailles elementaires
US6510442B1 (en) * 2000-01-12 2003-01-21 Microsoft Corporation System and method for improved digital differential analyzer
US7268783B2 (en) * 2001-11-21 2007-09-11 Tektronix, Inc. Image alias rejection using shaped statistical filtering
US7315934B2 (en) * 2002-03-06 2008-01-01 Matsushita Electric Industrial Co., Ltd. Data processor and program for processing a data matrix
US7891818B2 (en) 2006-12-12 2011-02-22 Evans & Sutherland Computer Corporation System and method for aligning RGB light in a single modulator projector
JP4861854B2 (ja) * 2007-02-15 2012-01-25 株式会社バンダイナムコゲームス 指示位置演算システム、指示体及びゲームシステム
US8358317B2 (en) 2008-05-23 2013-01-22 Evans & Sutherland Computer Corporation System and method for displaying a planar image on a curved surface
US8702248B1 (en) 2008-06-11 2014-04-22 Evans & Sutherland Computer Corporation Projection method for reducing interpixel gaps on a viewing surface
US8077378B1 (en) 2008-11-12 2011-12-13 Evans & Sutherland Computer Corporation Calibration system and method for light modulation device
US9641826B1 (en) 2011-10-06 2017-05-02 Evans & Sutherland Computer Corporation System and method for displaying distant 3-D stereo on a dome surface
JP6516236B2 (ja) * 2015-02-20 2019-05-22 Tianma Japan株式会社 電気光学装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56156873A (en) * 1980-05-07 1981-12-03 Seiko Instr & Electronics Linear line generating circuit

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1356414A (en) * 1971-09-09 1974-06-12 Elliott Brothers London Ltd Digitally operating graphic display system
US4119956A (en) * 1975-06-30 1978-10-10 Redifon Flight Simulation Limited Raster-scan display apparatus for computer-generated images
IL51719A (en) * 1976-04-08 1979-11-30 Hughes Aircraft Co Raster type display system
GB1586169A (en) * 1976-11-15 1981-03-18 Elliott Brothers London Ltd Display apparatus
US4212009A (en) * 1977-11-16 1980-07-08 Hewlett-Packard Company Smoothing a raster display
US4262290A (en) * 1978-05-12 1981-04-14 Smiths Industries Limited Display systems
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
JPS55166687A (en) * 1979-06-13 1980-12-25 Hitachi Ltd Graphic display unit
US4371872A (en) * 1979-07-23 1983-02-01 The Singer Company Fractional clock edge smoother for a real-time simulation of a polygon face object system
GB2059729A (en) * 1979-09-27 1981-04-23 Ibm Multicolour display of digitally processed data
US4425559A (en) * 1980-06-02 1984-01-10 Atari, Inc. Method and apparatus for generating line segments and polygonal areas on a raster-type display
US4331955A (en) * 1980-08-07 1982-05-25 Eltra Corporation Method and apparatus for smoothing outlines
US4345244A (en) * 1980-08-15 1982-08-17 Burroughs Corporation Video output circuit for high resolution character generator in a digital display unit
US4365309A (en) * 1980-10-03 1982-12-21 Hitachi, Ltd. Digital differential analyzing processor
US4481509A (en) * 1980-12-18 1984-11-06 Rca Corporation Raster-scanned display system for digitally-encoded graphics
US4386349A (en) * 1981-04-28 1983-05-31 Sperry Corporation High resolution graphics smoothing
US4386345A (en) * 1981-09-22 1983-05-31 Sperry Corporation Color and brightness tracking in a cathode ray tube display system
US4482893A (en) * 1982-02-19 1984-11-13 Edelson Steven D Cathode ray tube display system with minimized distortion from aliasing
GB2119608B (en) * 1982-04-30 1985-10-02 Int Computers Ltd Digital display system
US4486785A (en) * 1982-09-30 1984-12-04 International Business Machines Corporation Enhancement of video images by selective introduction of gray-scale pels

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56156873A (en) * 1980-05-07 1981-12-03 Seiko Instr & Electronics Linear line generating circuit

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01227069A (ja) * 1988-01-29 1989-09-11 Tektronix Inc 波形表示方法
JPH02995A (ja) * 1988-06-08 1990-01-05 Japan Aviation Electron Ind Ltd 液晶パネル用ベクタージェネレータ
JPH02994A (ja) * 1988-06-08 1990-01-05 Japan Aviation Electron Ind Ltd カラー液晶パネルへのライン表示方法
JPH04100180A (ja) * 1990-08-20 1992-04-02 Japan Aviation Electron Ind Ltd ベクトル発生器
US7977277B2 (en) 2005-07-29 2011-07-12 Saes Getters S.P.A. Getter systems comprising an active phase inserted in a porous material distributed in a low permeability means
US8562856B2 (en) 2005-07-29 2013-10-22 Saes Getters S.P.A. Getter systems comprising a gas-sorbing phase in the pores of a porous material distributed in a permeable means
JP2007193565A (ja) * 2006-01-19 2007-08-02 Fujitsu Ltd 画像処理装置

Also Published As

Publication number Publication date
US4586037A (en) 1986-04-29
EP0121311A2 (en) 1984-10-10
CA1221780A (en) 1987-05-12
EP0121311A3 (en) 1987-10-21

Similar Documents

Publication Publication Date Title
JPS60132274A (ja) 直線発生装置
JP2910979B2 (ja) コンピュータグラフィックシステムのサブピクセルマスク発生方法および装置
KR960006527B1 (ko) 화상처리장치
JPS62256186A (ja) グラフィック表示処理システム及び方法
EP0356103B1 (en) Scan-conversion process and processor
US20050212806A1 (en) Graphics engine converting individual commands to spatial image information, and electrical device and memory incorporating the graphics engine
US5519823A (en) Apparatus for rendering antialiased vectors
US20050041039A1 (en) Graphics engine, and display driver IC and display module incorporating the graphics engine
US7136083B2 (en) Display method by using sub-pixels
JPH07200867A (ja) 画像生成装置
US5388192A (en) Image layout processing method and apparatus
JPH04222070A (ja) コンピュータグラフィックスシステム用演算処理装置
US6496160B1 (en) Stroke to raster converter system
US5265210A (en) Method and apparatus for plotting pixels to approximate a straight line on a computer display device without substantial irregularities
EP0644509A2 (en) Method and apparatus for filling polygons
US4945497A (en) Method and apparatus for translating rectilinear information into scan line information for display by a computer system
US5333250A (en) Method and apparatus for drawing antialiased lines on a raster display
JPH0758510B2 (ja) 三次元図形処理装置
JPH10228537A (ja) 画素面積計算装置
US5657435A (en) Run slice line draw engine with non-linear scaling capabilities
WO2007052420A1 (ja) 画像生成装置
JPH06309472A (ja) テクスチャ・マッピングの方法及びテクスチャ・マッピング装置
JP2762768B2 (ja) アウトラインデータ描画装置
GB2318958A (en) An apparatus for generating a subpixel mask for a computer graphics system
JPS61209486A (ja) ジャグ除去方式