JPH07118021B2 - 直線描画装置 - Google Patents

直線描画装置

Info

Publication number
JPH07118021B2
JPH07118021B2 JP1241248A JP24124889A JPH07118021B2 JP H07118021 B2 JPH07118021 B2 JP H07118021B2 JP 1241248 A JP1241248 A JP 1241248A JP 24124889 A JP24124889 A JP 24124889A JP H07118021 B2 JPH07118021 B2 JP H07118021B2
Authority
JP
Japan
Prior art keywords
register
value
straight line
output
line drawing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP1241248A
Other languages
English (en)
Other versions
JPH03102584A (ja
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP1241248A priority Critical patent/JPH07118021B2/ja
Publication of JPH03102584A publication Critical patent/JPH03102584A/ja
Publication of JPH07118021B2 publication Critical patent/JPH07118021B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、グラフィックス分野に応用することが可能で
あるビットマップディスプレイ上に、高速に直線を描く
直線描画装置に関する。
従来の技術 ワークステーションの発達によりビットマップメモリを
持ち、その上にグラフィックス機能をサポートするもの
がでてきている。又グラフィックス処理を高速に行うた
めには、特別なハードウェアが必要であることも事実で
ある。
直線描画を行うに当たり、描画位置の決定を行うため
に、乗算を用いずに、加減算のみで行うアルゴリズムが
知られている。これは例えば、「実践コンピュータグラ
フィックス、基礎手続きと応用」(山口富士夫監修、日
刊工業新聞社発行)のpp35〜pp46に詳細に記述されてい
る。そのアルゴリズムを簡単に述べる。
いま、傾きb/a(a,bは整数でb<a)の直線を2次元平
面上に、始点を(x0,y0)として描いて行くとする。ビ
ットマップ上に描ける点は、x軸、y軸の値がすべて整
数値である格子点に限られる。これより、始点から直線
を描き始めると、次の描画点は、(x0+1,y0)か、(x0
+1,y0+1)のいずれかである。これは、直線の傾きb/
aが1より小さいため、x軸上の描画対象点が+1され
たとしたときに、対象点のy軸成分の増分は1より小さ
いことから導かれる。このように、ビットマップ上では
正確な直線ではなく、近似的な直線が描かれる。
第5図に始点501を(2,2)とし、傾き2/5の直線を描い
た図を示す。502は正確な直線を示し、503〜510はビッ
トマップ上に実際に描画点として描かれる近似点を示
す。
この格子点を選ぶ方法は現在のx軸の値をxnとしたとき
に次描画点のx座標xn+1(=xn+1)に対するy軸の本来
の像分はb/aであることより、次回のyn+1の値は現在のy
nを用いて yn+1=yn+b/a と表される。描画点はこのyn+1のうちの整数部分と、x
n+1ということになる。
さらに、|yn+1−yn|<1であることにより、ynの値を整
数部分Ynと小数部分αに分割すると yn=Yn+α なり、Yn+1,α+1との関係は以下のようになる。
このようにすると、αの値が1を越えたときのみYn
値を+1すればよいということになり、αの計算を次
々に広ってYnの値を簡単に求めることができるわけであ
る。従って以下ではαの計算を高速に実行することを
考える。
b/aの値の計算には除算が必要であるが、以下これを取
り除くことを考える。β=aαとおくと、αに関
する漸化式は、 と変形される。この計算を行うには、加減算のみでよい
ことになる特徴を有する。
この準備の下に、直線の描画点発生アルゴリズムは第6
図に示すようになる。ここで、始点は(x0,y0)とし傾
きはb/a(<1)であるとする。
ステップS1において、X←x0,Y←y0,β←φとする。
ステップS2において、γ←β+bとする。
ステップS3において、もし、γ≧a−bであれば、ステ
ップS5へ行く。
ステップS4において、β←γとしてステップS6へ行く。
ステップS5において、β←β+b−a,Y←Y+1とす
る。
ステップS6において、格子点(X,Y)を描画する。
ステップS7において、X←X+1 ステップS8において、終点座標でないなら、ステップS2
へ行く。
(以下、βは以後残差と呼ぶ。) このアルゴリズムで一番実行時間を要するものは、ルー
プの実行である。すなわち、ステップS2,S3,S4,S5,S7
全部で5ステップを要している。これらステップをハー
ドウェアで行い、並列化を図るため第7図に示す回路を
従来は用いていた。
第7図において、701,702,703は次に示すような機能を
果たすレジスタである、直線の傾きをb/a(>1)とし
たときに、レジスタ701にはa−bが、レジスタ702には
bが、レジスタ703にはb−aが格納される。704は比較
器であり、レジスタ708の値を入力Xとしレジスタ701の
値を入力Yとし、その間での大小比較を行うためのもの
である、X≧Yであるときに、信号線709は“1"になる
ものとする。セレクタ707では、信号線709が“1"である
とき、加算器706の出力をレジスタ708の入力に供給し、
“0"であるときは加算器705の出力をレジスタ708の入力
とするものである。
この前提の下で前述の直線アルゴリズムを本ハードウェ
アで実行してみる。各ステップは第8図に示すようにな
る。
ステップS1においては、初期値設定として、 X←x0,Y←y0,β←b, レジスタ701←a−b, レジスタ702←b,レジスタ403←b−a, レジスタ708←0とする。
次に、ステップS2においては、 まず、加算器705では、β+b, 加算器706ではβ+(b−a)を計算する。
そして、比較器704でβ(=0)とa−bの値を比較す
る。
β<a−bであれば、セレクタ707の働きにより、 レジスタ708にβ+bが、βa−bであれば、 β+(b−a)が格納される。
ステップS3においては、 βa−bであれば、Y←Y+1とする。
ステップS4においては、 格子点(X,Y)を描画する。
ステップS5においては、 X←X+1とする。
ステップS6においては、 終点座標でないならば、ステップS2へ行く。
従って、アルゴリズムのループ構成ステップはステップ
S2,ステップS3,ステップS4,ステップS5となり、4ステ
ップになっている。
次回のループのための残差の計算のみを考えてみると、
1ステップで、即ち、ステップS2のみの手間で次残差を
計算できる。即ち、残差計算は、ハードウェアの1クロ
ックに相当する時間(レジスタ408の値を計算するため
に要する時間のこと)で行うことが出来る。
このように、ハードウェアを並列化して、残差計算を効
率よく行うことが可能となる。
発明が解決しようとする課題 以上の第7図の構成では、残差を1クロックで行うため
のハードウェアを示した。
しかしそのためには、加算器705,706が2つと比較器704
が1つと計3個の演算器が必要であった。一般にLSI回
路では、加算器等の演算器は回路量が多く、これを少な
くすることは、回路消費電力の点でも重要な課題であ
る。
本発明は、従来のように演算器3つのうちの1つの加算
器を不要とする新たな直線描画装置を提供することを目
的とするものである。
課題を解決するための手段 本発明はb/a(但し、a,bは整数で、b<a)の傾きを有
する直線に対し、 a−bの値を保持する第1のレジスタと、 2a−bの値を保持する第2のレジスタと、 bの値を保持する第3のレジスタと、 b−aの値を保持する第4のレジスタと、 加算結果を保持する第5のレジスタと、 比較結果に応じて入力選択信号を発生する選択手段と、 前記第5のレジスタの出力と、前記選択手段の入力選択
信号により選択された、第3もしくは第4のレジスタの
一方の出力とを加算して前記第5のレジスタに再格納す
る加算手段と、 前記第5のレジスタの出力と、前記選択手段の入力選択
信号により選択された、第1もしくは第2のレジスタの
一方の出力との大小関係を比較して前記選択手段にその
比較結果を出力する比較手段とを設けたものである。
作 用 本発明は選択手段に応じて比較手段と、加算手段に入力
される2つのレジスタの値のどちらを使用するかを決
め、もう片方の入力には残差に相当するレジスタの値を
入力することにより、次回の残差計算と次回の選択手段
の値を並行に決めることができ、また加算手段の削減を
行なうことができる。
すなわち、描画位置決定のために用いる小数点部分の残
差を従来よりも大きくとることで、加算手段を削減でき
る。
実施例 本発明の実施例を説明する前に、従来例として述べた残
差計算のためのアルゴリズムを再度検討すると、その基
本式は、 である。
ここで第7図の構成で加算器が2つ必要であるのは、次
の残差βを計算するためにβとa−bの大小に応し
て、βに対する加算値がb,b−aと異なるためであ
る。そこで、γ=β+bとおくと、0≦β<aで
あるとすると、γ<aのときはβn+1=γ<aであ
り、γ≧aのときは、βn+1=γ−a=β−(a
−b)で、a>bであるから、 βn+1<β<a であり、結局すべてのnに対し、0≦β<aである。
ここでは、数列{β}の計算で、次残差を求めるので
はなく、以下に定義する2つの数列{η},{ξ
から生成するものとすると、βとη、ξとの関係
は、次のいずれか一方が成り立つ。
ξ=βあるいはη−a=β つまり、第2図に示されるように、γ=β+bが、
数直線上で、201の位置であれば、 βn+1=γ=ξ 202の位置にあれば、βn+1=β+b−aであるから βn+1=γ−a=ηn+1−a となる。ここで0≦β<aであるから 0≦ξ<a,a≦η<2a である。この2つの数列を用いて、アルゴリズムの変形
を図る。ξnからξn+1の計算法は次のようにな
る。
すなわち、βはξあるいはηのどちらか一方と関
係しており、β=ξである場合は ξn+1=ξ+b(ξ<a−b) ηn+1=ξ+b(ξ≧a−b) β=η−aである場合は、 ξn+1=η−a+b(η<2a−b) ηn+1=η−a+b(η≧2a−b) となる。
数列{ξ},{η}の遷移関係は、第3図に示すよ
うになる。直線描画のアルゴリズムで、描画座標のY成
分を+1するタイミングは、β+b≧aの時であっ
た。数列{ξ},{η}の場合では、これは、ξ
+b=β+b≧a,つまりξ≧a−bが成り立つ301
の遷移時と(η−a)+b=β+b≧a、つまり、
η≧2a−bが成り立つ302の遷移時である。
また、ξnのいずれかから、ξn+1になるのは、ξ
<a−b,η<2a−bであり、ξnのいずれかか
らηn+1になるのは、ξ≧a−b,η≧2a−bであ
り、ξnを代表してXとおき、a−b,2a−bを代表
してYとおくと、X<Yでは、次はξのモード、X≧
Yでは、次はηのモードとなる。
つまり、Y座標を+1するタイミング及び、数列
{ξ},{η}の状態は、同一の比較機構で実現で
きる。
第1図は本発明の一実施例における直線描画装置のブロ
ック結線図である。第1図において、レジスタ101、レ
ジスタ103には数列{ξ}から次のξn+1、あるいはη
n+1を計算するために必要な値a−b(比較用)、b
(残差計算用)が格納される。レジスタ102、レジスタ1
04には数列{η}から次のξn+1、あるいはηn+1を計
算するために必要な値2a−b(比較用)、b−a(残差
計算用)が格納される。セレクタ105では、現計算がξ
に関するものであればレジスタ101の出力が、η
関するものであればレジスタ102の出力が選ばれる。比
較器107はレジスタ109の値であるξ、ηとセレクタ
105の出力の間で大小比較を行うものである。もし、現
計算がξに関するものであれば、フリップフロップ11
0の値は“0"であり、このときはレジスタ109とレジスタ
101の値の大小の比較が行われる。
その結果、X≧Yであれば、すなわち、ξ≧a−bであ
れば、フリップフロップ110は“1"になり、次計算はη
に関するものであることを示すことになる。このと
き、描画のY座標も+1すべきこともあわせて知ること
ができる。
加算器108は、フリップフロップ110の値に応じて、レジ
スタ109とセレクタ106によりレジスタ103、レジスタ104
のいずれかとの間で加算を行う。
フリップフロップ110が“0"であると、レジスタ109には
ξが格納されており、ξ+bが計算される。フリップフ
ロップ110が“1"でアルゴリズムと、η+b−aが計算
される。いずれの場合も結果はレジスタ109に格納され
る。
上記の構成の直線描画アルゴリズムを第1図(b)に示
す。
ステップS1において、X←x0,Y←y0,レジスタ109←b,レ
ジスタ101←a−b,レジスタ102←2a−b,レジスタ103←
b,レジスタ104←b−a,フリップフロップ110←0とす
る。
ステップS2においては、フリップフロップ110の値に応
じて、その値が“0"であればレジスタ109−レジスタ101
が計算され、大小結果がフリップフロップ110に格納さ
れる。
その値が“1"であれば、レジスタ109−レジスタ102が計
算され、大小結果がフリップフロップ110に格納され
る。
ステップS3においては、フリップフロップ110が“1"で
あればYを+1する。
ステップS4においては、格子点(X,Y)を描画する。
ステップS5においては、X←X+1とする。
ステップS6においては、終点座標でないならば、ステッ
プS2へ行く。
以上の動作により、第7図の構成と同じような直線描画
を得ることができる。
以上のように本実施例によれば、従来必要であった2つ
の加算器705,706をセレクタ105,又は106の機能で代用で
きるので、直線描画のアルゴリズムをLSI回路で実現す
る際には、セレクタの方が圧倒的にトランジスタ数が少
なく、消費電力も少なくなるメリットがある。
発明の効果 以上のように本発明はb/a(但し、a,bは整数で、b<
a)の傾きを有する直線に対し、 a−bの値を保持する第1のレジスタと、 2a−bの値を保持する第2のレジスタと、 bの値を保持する第3のレジスタと、 b−aの値を保持する第4のレジスタと、 加算結果を保持する第5のレジスタと、 比較結果に応じて入力選択信号を発生する選択手段と、 前記第5のレジスタの出力と、前記選択手段の入力選択
信号により選択された、第3もしくは第4のレジスタの
一方の出力とを加算して前記第5のレジスタに再格納す
る加算手段と、 前記第5のレジスタの出力と、前記選択手段の入力選択
信号により選択された、第1もしくは第2のレジスター
の一方の出力との大小関係を比較して前記選択手段にそ
の比較結果を出力する比較手段とを設けることで、次回
の残差計算と次回の選択手段の値を並行に決めることが
でき、また加算手段の削減を行なうことができ、その効
果は大きい。
【図面の簡単な説明】
第1図は本発明にかかる直線描画装置の一実施例を示す
ブロック結線図、第2図は同装置の動作を示す概念図、
第3図は同装置の動作を示す状態遷移図、第4図は同装
置の動作を示すフローチャート、第5図は直線描画の概
念図、第6図は同動作のフローチャート、第7図は従来
の直線描画装置のブロック結線図、第8図は同装置の動
作を示すフローチャートである。 101,102,103,104……レジスタ、105,106……セレクタ、
107……比較手段、108……加算手段。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】b/a(但し、a,bは整数で、b<a)の傾き
    を有する直線に対し、 a−bの値を保持する第1のレジスタと、 2a−bの値を保持する第2のレジスタと、 bの値を保持する第3のレジスタと、 b−aの値を保持する第4のレジスタと、 加算結果を保持する第5のレジスタと、 比較結果に応じて入力選択信号を発生する選択手段と、 前記第5のレジスタの出力と、前記選択手段の入力選択
    信号により選択された、第3もしくは第4のレジスタの
    一方の出力とを加算して前記第5のレジスタに再格納す
    る加算手段と、 前記第5のレジスタの出力と、前記選択手段の入力選択
    信号により選択された、第1もしくは第2のレジスタの
    一方の出力との大小関係を比較して前記選択手段にその
    比較結果を出力する比較手段と、 を具備する直線描画装置。
JP1241248A 1989-09-18 1989-09-18 直線描画装置 Expired - Lifetime JPH07118021B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1241248A JPH07118021B2 (ja) 1989-09-18 1989-09-18 直線描画装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1241248A JPH07118021B2 (ja) 1989-09-18 1989-09-18 直線描画装置

Publications (2)

Publication Number Publication Date
JPH03102584A JPH03102584A (ja) 1991-04-26
JPH07118021B2 true JPH07118021B2 (ja) 1995-12-18

Family

ID=17071413

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1241248A Expired - Lifetime JPH07118021B2 (ja) 1989-09-18 1989-09-18 直線描画装置

Country Status (1)

Country Link
JP (1) JPH07118021B2 (ja)

Also Published As

Publication number Publication date
JPH03102584A (ja) 1991-04-26

Similar Documents

Publication Publication Date Title
JP4955182B2 (ja) 整数の計算フィールド範囲の拡張
US4635292A (en) Image processor
JPH0612229A (ja) 乗累算回路
JPH0618040B2 (ja) 剰余検査装置
Hasan Double-basis multiplicative inversion over GF (2/sup m/)
JPH04291685A (ja) クリップ・テスタ回路及びクリップ・テスト方法
JP2004005395A (ja) 演算処理装置、半導体デバイス
Isupov et al. RNS-based data representation for handling multiple-precision integers on parallel architectures
JP4223819B2 (ja) べき乗剰余演算装置及びそのプログラム
Shawl et al. Implementation of Area and Power efficient components of a MAC unit for DSP Processors
JP2737933B2 (ja) 除算装置
JP2973819B2 (ja) 画像処理装置
JPH03102584A (ja) 直線描画装置
JPH08202533A (ja) 除算処理装置
JP2734649B2 (ja) 曲面と直線の間の交点算出方式
JPH0335701B2 (ja)
JP3517162B2 (ja) 除算・開平演算装置
JP2777265B2 (ja) 高基数開平演算装置
JP2607759B2 (ja) 除算器
JPH0553759A (ja) 固定小数点演算ユニツト
RU2079879C1 (ru) Матричный спецпроцессор
SU928348A1 (ru) Устройство дл вычислени тригонометрических функций
JPH05334448A (ja) ベツィエ曲線生成装置
JPH10149277A (ja) 乗算装置
JP2989829B2 (ja) ベクトル処理方法