JPH03210680A - 曲線発生装置 - Google Patents
曲線発生装置Info
- Publication number
- JPH03210680A JPH03210680A JP2005089A JP508990A JPH03210680A JP H03210680 A JPH03210680 A JP H03210680A JP 2005089 A JP2005089 A JP 2005089A JP 508990 A JP508990 A JP 508990A JP H03210680 A JPH03210680 A JP H03210680A
- Authority
- JP
- Japan
- Prior art keywords
- distance
- storage means
- curve
- pointer
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—Two-dimensional [2D] image generation
- G06T11/20—Drawing from basic elements
- G06T11/23—Drawing from basic elements using straight lines or curves
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/20—Function-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)
- Computer Hardware Design (AREA)
- Image Generation (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、デイスプレィやプリンタに文字や図形を出力
するグラフィックス表示装置における与えられた制御点
列から自由曲線を発生する曲線発生装置に関する。
するグラフィックス表示装置における与えられた制御点
列から自由曲線を発生する曲線発生装置に関する。
文字や図形を扱うグラフィックス関連装置の代表的なも
のには、パーソナルコンピュータ、EWS (Engi
neer Work 5tation)などがあり広く
普及している。これらの装置で一般的に使用できる図形
は、直線、円弧を基本とし、複雑な図形はそれらの組合
せで表現されている。したがって、それらの装置におい
ては直線、円弧を高速に描画できるハードウェアを搭載
し、その性能向上を図っている。しかしながら、直線や
円以外にも頻繁に使用される図形がある。自由曲線はそ
のひとつであり、ベジェ曲線やスプライン曲線とよばれ
る曲線が使用されることが多くなってきた。この自由曲
線は、なめらかな曲線を表現できるので、CAD関係の
応用でよく用いられる種々の製品のデザインなどに有用
であるばかりでなく、最近にわかに注目されてきたアウ
トライン・フォントのよばれる文字表現に利用されてい
る。
のには、パーソナルコンピュータ、EWS (Engi
neer Work 5tation)などがあり広く
普及している。これらの装置で一般的に使用できる図形
は、直線、円弧を基本とし、複雑な図形はそれらの組合
せで表現されている。したがって、それらの装置におい
ては直線、円弧を高速に描画できるハードウェアを搭載
し、その性能向上を図っている。しかしながら、直線や
円以外にも頻繁に使用される図形がある。自由曲線はそ
のひとつであり、ベジェ曲線やスプライン曲線とよばれ
る曲線が使用されることが多くなってきた。この自由曲
線は、なめらかな曲線を表現できるので、CAD関係の
応用でよく用いられる種々の製品のデザインなどに有用
であるばかりでなく、最近にわかに注目されてきたアウ
トライン・フォントのよばれる文字表現に利用されてい
る。
アウトライン・フォントとは、文字がその外形(アウト
ライン)の線分列の端点の座標で定義されているもので
あり、実際に表示あるいは印字する場合には文字の外形
内を塗りつぶすことによって実現している0文字の外形
は直線と曲線が混在しており、特に曲線部分は円弧でな
い自由曲線であることが多い。曲線部分を短直線で近似
することも可能であるが、1文字あたりの線分数が非常
に多くなるので文字を定義する情報量が膨大になること
、文字を拡大したときに直線近似した曲線部分が直線列
にみえるため文字の品質が落ちるなどの欠点がある。そ
こで、−船釣にはベジェ曲線とよばれる曲線が採用され
ている。
ライン)の線分列の端点の座標で定義されているもので
あり、実際に表示あるいは印字する場合には文字の外形
内を塗りつぶすことによって実現している0文字の外形
は直線と曲線が混在しており、特に曲線部分は円弧でな
い自由曲線であることが多い。曲線部分を短直線で近似
することも可能であるが、1文字あたりの線分数が非常
に多くなるので文字を定義する情報量が膨大になること
、文字を拡大したときに直線近似した曲線部分が直線列
にみえるため文字の品質が落ちるなどの欠点がある。そ
こで、−船釣にはベジェ曲線とよばれる曲線が採用され
ている。
ベジェ曲線とは、数個の制御点を与えるとそれらの制御
点間をスムーズな曲線で補間できる曲線で、もっとも多
く利用されているのが3次のベジェ曲線である。3次の
ベジェ曲線は、任意の4点を制御点として与えると、そ
の制御点間を曲線補間できるのはもちろん、その曲線の
始点を除いた3点と新たに与えた1点からなる4点につ
いてさらにベジェ曲線を描いたとき、最初の曲線と次の
曲線の接続点に於ける1次微分、2次微分が一致するた
め、極めてスムースな曲線を生成することができるので
ある。このように自由曲線は、その形状を定義する情報
量が非常に少なくて済み、アウトライン・フォントを拡
大/縮小して表示あるいは印字する場合に文字品質が落
ちないなどの長所を持っている。
点間をスムーズな曲線で補間できる曲線で、もっとも多
く利用されているのが3次のベジェ曲線である。3次の
ベジェ曲線は、任意の4点を制御点として与えると、そ
の制御点間を曲線補間できるのはもちろん、その曲線の
始点を除いた3点と新たに与えた1点からなる4点につ
いてさらにベジェ曲線を描いたとき、最初の曲線と次の
曲線の接続点に於ける1次微分、2次微分が一致するた
め、極めてスムースな曲線を生成することができるので
ある。このように自由曲線は、その形状を定義する情報
量が非常に少なくて済み、アウトライン・フォントを拡
大/縮小して表示あるいは印字する場合に文字品質が落
ちないなどの長所を持っている。
次に、ベジェ曲線発生のアルゴリズムについて説明する
。一般には曲線の始点から求めていくアルゴリズムがよ
く知られているが、乗算、除算を頻繁に演算する必要が
あるため汎用のプロセ・ンサを使用した場合低速になる
ので、幾何学的に処理できるアルゴリズムの方がよく用
いられている。
。一般には曲線の始点から求めていくアルゴリズムがよ
く知られているが、乗算、除算を頻繁に演算する必要が
あるため汎用のプロセ・ンサを使用した場合低速になる
ので、幾何学的に処理できるアルゴリズムの方がよく用
いられている。
第5図は一般の3次のベジェ曲線を発生する幾何学的ア
ルゴリズムを説明する座標図を示した。
ルゴリズムを説明する座標図を示した。
まず、与えられた4点の制御点A〜Dで構成される線分
AB、BC,CDの各中点E、F、Gを求める。中点は
、各制御点の座標値を加えて1/2にすれば求まる。つ
ぎに、線分EF、FGの中点H,Iを求め、さらに線分
HIの中点Jを求める。この点Jが3次のベジェ曲線上
の点となる。
AB、BC,CDの各中点E、F、Gを求める。中点は
、各制御点の座標値を加えて1/2にすれば求まる。つ
ぎに、線分EF、FGの中点H,Iを求め、さらに線分
HIの中点Jを求める。この点Jが3次のベジェ曲線上
の点となる。
つぎに、点A、E、H,Jを制御点として前述した処理
を行うと次の曲線上の点Qが求まる。このようにして、
曲線上の点を求めた後、新たな制御点に対して再帰的な
処理を繰り返し行うことによりベジェ曲線上の点を求め
るのである。
を行うと次の曲線上の点Qが求まる。このようにして、
曲線上の点を求めた後、新たな制御点に対して再帰的な
処理を繰り返し行うことによりベジェ曲線上の点を求め
るのである。
このベジェ曲線発生でもうひとつ考慮すべきことは、制
御点の入替えである。上述の処理を繰り返していくと、
求めたベジェ曲線上の点は点Aに限りなく近づいていく
。したがって、点Aとある程度の距離に近づいたらその
処理を終了し、別の箇所の点の算出に処理を変更する必
要がある。すなわち、第5図上の点Aと、求めた曲線上
の点Qがあらかじめ定められた距離よりも小さかったら
、次に対象とする制御点はJ、I、G、Dとするもので
ある。
御点の入替えである。上述の処理を繰り返していくと、
求めたベジェ曲線上の点は点Aに限りなく近づいていく
。したがって、点Aとある程度の距離に近づいたらその
処理を終了し、別の箇所の点の算出に処理を変更する必
要がある。すなわち、第5図上の点Aと、求めた曲線上
の点Qがあらかじめ定められた距離よりも小さかったら
、次に対象とする制御点はJ、I、G、Dとするもので
ある。
上述したような自由曲線の発生方法は、ソフトウェア処
理で実現されていたために処理時間が長くかかっていた
。汎用のプロセッサで曲線上の1点を算出するには、数
100クロツクの処理が必要であった。中点のX座標を
1回求めるためには、データのロード2回、加算1回、
シフト1回(1/2にする)、ストア1回の処理を行う
ので、この中点のX座標およびY座標を6点求めるには
少なくとも合計60ステツプの演算が必要である。一般
にステップの命令を実行するには、命令フェッチ、オペ
ランドの読みだし、演算実行、結果格納の4クロツクは
かかるので、結果として数100クロツクの実行時間が
必要になる。さらに、制御点と曲線上の距離を計算しで
ある一定値と比較する処理、距離が一定値より小さかっ
たときにデータを入替える処理などを含めると、さらに
処理速度が低下する。
理で実現されていたために処理時間が長くかかっていた
。汎用のプロセッサで曲線上の1点を算出するには、数
100クロツクの処理が必要であった。中点のX座標を
1回求めるためには、データのロード2回、加算1回、
シフト1回(1/2にする)、ストア1回の処理を行う
ので、この中点のX座標およびY座標を6点求めるには
少なくとも合計60ステツプの演算が必要である。一般
にステップの命令を実行するには、命令フェッチ、オペ
ランドの読みだし、演算実行、結果格納の4クロツクは
かかるので、結果として数100クロツクの実行時間が
必要になる。さらに、制御点と曲線上の距離を計算しで
ある一定値と比較する処理、距離が一定値より小さかっ
たときにデータを入替える処理などを含めると、さらに
処理速度が低下する。
本発明の目的は、このような問題を解決し、このアルゴ
リズムを専用ハードウェア化することによって自由曲線
発生を高速化した曲線発生装置を提供することにある。
リズムを専用ハードウェア化することによって自由曲線
発生を高速化した曲線発生装置を提供することにある。
本発明の構成は、指定された複数の制御点の座標値から
これら制御点間の中点の座標を計算することによりその
制御点の近傍の曲線補間を行う曲線発生装置において、
前記複数の制御点および複数の前記中点を所定の2つの
グループに分けそれぞれの座標値を格納する第1記憶手
段およびこれら中点の座標値を格納すると共にアドレス
制御を行うポインタを有する第2記憶手段と、これら第
1記憶手段および第2記憶手段に格納された所定の2点
の座標値から中点の座標を計算しこれら第1記憶手段あ
るいは第2記憶手段のいずれかに格納する演算手段と、
前記制御点間の距離を計算しあらかじめ定めた最小距離
と比較する比較手段と、この比較手段の出力で前記距離
が予め定められた最小距離よりも大きい場合には前記ポ
インタを増加し、またその最小距離より小さい場合には
前記第2記憶手段から読出した座標値を前記第1記憶手
段に転送すると共に前記ポインタを減ずる手段とを有す
ることを特徴とする。
これら制御点間の中点の座標を計算することによりその
制御点の近傍の曲線補間を行う曲線発生装置において、
前記複数の制御点および複数の前記中点を所定の2つの
グループに分けそれぞれの座標値を格納する第1記憶手
段およびこれら中点の座標値を格納すると共にアドレス
制御を行うポインタを有する第2記憶手段と、これら第
1記憶手段および第2記憶手段に格納された所定の2点
の座標値から中点の座標を計算しこれら第1記憶手段あ
るいは第2記憶手段のいずれかに格納する演算手段と、
前記制御点間の距離を計算しあらかじめ定めた最小距離
と比較する比較手段と、この比較手段の出力で前記距離
が予め定められた最小距離よりも大きい場合には前記ポ
インタを増加し、またその最小距離より小さい場合には
前記第2記憶手段から読出した座標値を前記第1記憶手
段に転送すると共に前記ポインタを減ずる手段とを有す
ることを特徴とする。
本発明の第1.第2の各記憶手段が、レジスタ、レジス
タファイルからなり、またRAMからなることもできる
。
タファイルからなり、またRAMからなることもできる
。
次に本発明について図面を参照して詳細に説明する。
第1図は本発明の第1の実施例のブロック図、第2図は
第1図の動作タイミング図、第3図は第1図のレジスタ
内容の説明図である。図において、1〜4はレジスタ、
5〜7はレジスタ・ファイル、8は距離レジスタ、9は
演算器、10はシフタ、11はシーケンサ、12はポイ
ンタ、13は比較器、20〜24はデータ・バス、30
は演算制御信号、31はポインタ制御信号、32はレジ
スタ制御信号、33はポインタ・データ・バス、34は
比較信号である。
第1図の動作タイミング図、第3図は第1図のレジスタ
内容の説明図である。図において、1〜4はレジスタ、
5〜7はレジスタ・ファイル、8は距離レジスタ、9は
演算器、10はシフタ、11はシーケンサ、12はポイ
ンタ、13は比較器、20〜24はデータ・バス、30
は演算制御信号、31はポインタ制御信号、32はレジ
スタ制御信号、33はポインタ・データ・バス、34は
比較信号である。
本実施例は、4点の座標値を入力して3次のベジェ曲線
上の点を始点に近い方から発生するものである。曲線の
サンプリングは、あらかじめ与えられた距離よりも隣接
する点間のX座標値、Y座標値が共に小さくなるまで行
われる。座標値表現を16ビツト固定小数点としており
、X座標値、Y座標値を結合して処理するので、レジス
タ、レジスタ・ファイル、データバス、演算器等は32
ビツト幅である。また、演算器9とシフタ10は16ビ
ツトのもの2個で構成されており、それぞれX座標値用
、Y座標値用として使用し、出力は演算結果を結合する
ため32ビツトとなる。要するに、X座標系とY座標系
の処理は独立に行うことができるが、処理シーケンスが
同一なのでハードウェア的に結合することができるので
ある。
上の点を始点に近い方から発生するものである。曲線の
サンプリングは、あらかじめ与えられた距離よりも隣接
する点間のX座標値、Y座標値が共に小さくなるまで行
われる。座標値表現を16ビツト固定小数点としており
、X座標値、Y座標値を結合して処理するので、レジス
タ、レジスタ・ファイル、データバス、演算器等は32
ビツト幅である。また、演算器9とシフタ10は16ビ
ツトのもの2個で構成されており、それぞれX座標値用
、Y座標値用として使用し、出力は演算結果を結合する
ため32ビツトとなる。要するに、X座標系とY座標系
の処理は独立に行うことができるが、処理シーケンスが
同一なのでハードウェア的に結合することができるので
ある。
このハードウェア化のポイントは、■座標値のロード、
加算、シフト、結果の格納を1クロツクで実行できるこ
と、■X座標の処理とY座標の処理を別々の演算器で同
時に実行させること、■距離の判定を制御点間のX座標
、Y座標の差で求めること、■全体の処理シーケンスを
ハードウェアで制御することにより命令のコードのフェ
ッチ・サイクルを不要とすること、01点の算出処理を
行うハードウェアでサイクリックに処理できる構成をと
ることである。これらの工夫により、通常7クロツクの
実行時間で曲線上の1点を求めることができ、ソフトウ
ェア処理に比べて数十倍の性能向上を実現することがで
きる。
加算、シフト、結果の格納を1クロツクで実行できるこ
と、■X座標の処理とY座標の処理を別々の演算器で同
時に実行させること、■距離の判定を制御点間のX座標
、Y座標の差で求めること、■全体の処理シーケンスを
ハードウェアで制御することにより命令のコードのフェ
ッチ・サイクルを不要とすること、01点の算出処理を
行うハードウェアでサイクリックに処理できる構成をと
ることである。これらの工夫により、通常7クロツクの
実行時間で曲線上の1点を求めることができ、ソフトウ
ェア処理に比べて数十倍の性能向上を実現することがで
きる。
特に、■を実現するためにシーケンスを単純化できるよ
うに工夫し、制御点およびそれから中点を求めることに
よって新たに生成される制御点を、2つのグループに分
けて格納する手段を設けることによって、発生した制御
点が近傍の制御点と一定の距離以内になったときの制御
点群の入替えを簡単にできるようにしている。
うに工夫し、制御点およびそれから中点を求めることに
よって新たに生成される制御点を、2つのグループに分
けて格納する手段を設けることによって、発生した制御
点が近傍の制御点と一定の距離以内になったときの制御
点群の入替えを簡単にできるようにしている。
次に、レジスタ内容について第3図も参照して説明する
。まず、第3図(a)は初期状態であり、レジスタ1に
第1制御点く曲線の開始点:第5図の点A)、レジスタ
2に第2制御点(第5図の点B)、レジスタ3に第3制
御点く第5図の点C)、レジスタ・ファイル4の番地0
に第4制御点(曲線の終了点:第5図の点D)の座標値
をセットする。これは、外部からの制御で行う。第3図
(b)〜(e)まではレジスタの内容の変化を示してお
り、第3図(b)は曲線上の点Jを算出した時点でのも
のである。レジスタ・ファイル5〜7の番地1に求めた
中点J、I、Gの座標を格納し、レジスタ2〜4は従来
の内容を書換える形で点E、H,Fの内容を格納する。
。まず、第3図(a)は初期状態であり、レジスタ1に
第1制御点く曲線の開始点:第5図の点A)、レジスタ
2に第2制御点(第5図の点B)、レジスタ3に第3制
御点く第5図の点C)、レジスタ・ファイル4の番地0
に第4制御点(曲線の終了点:第5図の点D)の座標値
をセットする。これは、外部からの制御で行う。第3図
(b)〜(e)まではレジスタの内容の変化を示してお
り、第3図(b)は曲線上の点Jを算出した時点でのも
のである。レジスタ・ファイル5〜7の番地1に求めた
中点J、I、Gの座標を格納し、レジスタ2〜4は従来
の内容を書換える形で点E、H,Fの内容を格納する。
第3図(C)は、第3図(b)のレジスタ1〜3および
レジスタ・ファイル5の番地1の計4点を制御点として
新たな計算を行ったものである。レジスタファイルのポ
インタが一つ進んだだけで、第3図(a>から(b)へ
の処理と同様である。第3図(d)は、第3図(c)で
算出した曲線上の点Qと開始点A間の距離が所定の距離
よりも小さかったときの変化を示したものである。第3
図(C)でレジスタ・ファイル5〜7に格納されていた
内容をそれぞれレジスタ1〜3に転送し、さらにレジス
タ・ファイル5〜7のポインタを「1」だけ感じた。こ
の状態は、第3図(a)の初期状態と同等である。第3
図(e)は、第3図(d)のデータをもとにして曲線上
の点を発生した状態だが、このとき算出した距離があら
かじめ与えられた距離より小さくなると処理の終了とな
る。つまり、ポイントが「0」の状態で距離が小さいと
すべての点についての処理が終了したことになるからで
ある。
レジスタ・ファイル5の番地1の計4点を制御点として
新たな計算を行ったものである。レジスタファイルのポ
インタが一つ進んだだけで、第3図(a>から(b)へ
の処理と同様である。第3図(d)は、第3図(c)で
算出した曲線上の点Qと開始点A間の距離が所定の距離
よりも小さかったときの変化を示したものである。第3
図(C)でレジスタ・ファイル5〜7に格納されていた
内容をそれぞれレジスタ1〜3に転送し、さらにレジス
タ・ファイル5〜7のポインタを「1」だけ感じた。こ
の状態は、第3図(a)の初期状態と同等である。第3
図(e)は、第3図(d)のデータをもとにして曲線上
の点を発生した状態だが、このとき算出した距離があら
かじめ与えられた距離より小さくなると処理の終了とな
る。つまり、ポイントが「0」の状態で距離が小さいと
すべての点についての処理が終了したことになるからで
ある。
次に、第2図を参照して動作タイミングについて説明す
る。この図は、レジスタ1〜4およびレジスタ、ファイ
ル5〜7について演算器9への入力選択と、演算結果の
格納場所について示したもので、7クロツクで曲線上の
1点の座標を計算できるようになっている。これらのシ
ーケンスはシーケンサ11で制御される。まず、はじめ
にレジスタ2の内容が演算器9のb個入力、レジスタ3
の内容が演算器9のa個入力になり、結果はレジスタ4
に格納される。つぎにレジスタ1と2の内容がそれぞれ
演算器9のa側、b側に入力され、結果がレジスタ2に
格納される。このようにして、第5図で示した各中点が
計算され、6クロツク目に曲線上の点の座標がレジスタ
・ファイル5に格納される。7クロツク目は、曲線開始
点(レジスタ1に格納)と算出した曲線上の点(レジス
タ・ファイル5に格納)間の距離を算出するサイクルで
、比較結果が出力される。
る。この図は、レジスタ1〜4およびレジスタ、ファイ
ル5〜7について演算器9への入力選択と、演算結果の
格納場所について示したもので、7クロツクで曲線上の
1点の座標を計算できるようになっている。これらのシ
ーケンスはシーケンサ11で制御される。まず、はじめ
にレジスタ2の内容が演算器9のb個入力、レジスタ3
の内容が演算器9のa個入力になり、結果はレジスタ4
に格納される。つぎにレジスタ1と2の内容がそれぞれ
演算器9のa側、b側に入力され、結果がレジスタ2に
格納される。このようにして、第5図で示した各中点が
計算され、6クロツク目に曲線上の点の座標がレジスタ
・ファイル5に格納される。7クロツク目は、曲線開始
点(レジスタ1に格納)と算出した曲線上の点(レジス
タ・ファイル5に格納)間の距離を算出するサイクルで
、比較結果が出力される。
以上の動作を行うハードウェア構成についてさらに説明
する。レジスタ1〜4およびレジスタ・ファイル5〜7
は、データ・バス20あるいは21を介して演算器9の
a側・b側に接続されており、演算結果はシフタ10を
介して各レジスタあるいはレジスタ・ファイルのデータ
・バス22を介して格納される。
する。レジスタ1〜4およびレジスタ・ファイル5〜7
は、データ・バス20あるいは21を介して演算器9の
a側・b側に接続されており、演算結果はシフタ10を
介して各レジスタあるいはレジスタ・ファイルのデータ
・バス22を介して格納される。
シーケンサ11は全体の処理シーケンスを制御するもの
で、基本的に第3図に示した演算制御フローを実行する
。このフローを実行するには、演算器9の入力データと
なるレジスタまたはレジスタ・ファイルを選択する制御
信号、演算結果を格納するレジスタまたはレジスタ・フ
ァイルを選択する制御信号を制御信号32として各レジ
スタ、さらには、演算器9で実行する演算の種類を選択
する演算制御信号30を生成し出力する。またシーケン
サ11は、距離の比較結果にもとづいて処理の変更を行
う。比較器13において距離レジスタ8と演算器9の出
力内容をX、Y座標値をそれぞれ個別に比較し、距離レ
ジスタ8の内容の方がX座標、Y座標両方に関して小さ
かったら比較信号34はインアクティブなので、この信
号を受けたシーケンサ11は第5図に示したフローを再
開する。逆にすくなくともX座標値、Y座標値のいずれ
か一方について距離レジスタ8の内容の方が大きければ
比較信号34がアクティブに入る。
で、基本的に第3図に示した演算制御フローを実行する
。このフローを実行するには、演算器9の入力データと
なるレジスタまたはレジスタ・ファイルを選択する制御
信号、演算結果を格納するレジスタまたはレジスタ・フ
ァイルを選択する制御信号を制御信号32として各レジ
スタ、さらには、演算器9で実行する演算の種類を選択
する演算制御信号30を生成し出力する。またシーケン
サ11は、距離の比較結果にもとづいて処理の変更を行
う。比較器13において距離レジスタ8と演算器9の出
力内容をX、Y座標値をそれぞれ個別に比較し、距離レ
ジスタ8の内容の方がX座標、Y座標両方に関して小さ
かったら比較信号34はインアクティブなので、この信
号を受けたシーケンサ11は第5図に示したフローを再
開する。逆にすくなくともX座標値、Y座標値のいずれ
か一方について距離レジスタ8の内容の方が大きければ
比較信号34がアクティブに入る。
これはレジスタ・ファイル5〜7の内容を演算器9およ
びシフタ10をデータ加工なしで経由してデータ・バス
22を介してレジスタ1〜3に転送するという経路をへ
て実行する。したがって、3クロツクで終了する。なお
、比較器13は、演算出力が負であれば絶対値に変換す
る機能を含んでいる。
びシフタ10をデータ加工なしで経由してデータ・バス
22を介してレジスタ1〜3に転送するという経路をへ
て実行する。したがって、3クロツクで終了する。なお
、比較器13は、演算出力が負であれば絶対値に変換す
る機能を含んでいる。
ポインタ12で行われるレジスタ・ファイルのポインタ
制御について説明する。リード用とライト用があり、リ
ード用ポインタ、ライト用ポインタの初期値はそれぞれ
「0」、「1」である。これらのリード用ポインタとラ
イト用ポインタの値はポインタ・データ・バス33を介
して、レジスタ・ファイル5〜7へ出力される。ポイン
タ12を更新するタイミングはつぎのようになっている
。まず、距離に間する比較結果により、比較信号34が
インアクティブであればリード用ポインタ、ライト用ポ
インタのいずれをも+1する。−方比較信号34がアク
ティブであれば、レジスタ・ファイル5〜7からレジス
タ1〜3への転送が終了したあとに、レード用ポインタ
、ライト用ポインタのいずれをも−1する。
制御について説明する。リード用とライト用があり、リ
ード用ポインタ、ライト用ポインタの初期値はそれぞれ
「0」、「1」である。これらのリード用ポインタとラ
イト用ポインタの値はポインタ・データ・バス33を介
して、レジスタ・ファイル5〜7へ出力される。ポイン
タ12を更新するタイミングはつぎのようになっている
。まず、距離に間する比較結果により、比較信号34が
インアクティブであればリード用ポインタ、ライト用ポ
インタのいずれをも+1する。−方比較信号34がアク
ティブであれば、レジスタ・ファイル5〜7からレジス
タ1〜3への転送が終了したあとに、レード用ポインタ
、ライト用ポインタのいずれをも−1する。
処理の終了はシーケンサ11で判定し、その終了条件は
比較信号34がアクティブでかっ、リード用ポインタが
「0」のときである。この条件が成立した時に、シーケ
ンサ11は停止する。
比較信号34がアクティブでかっ、リード用ポインタが
「0」のときである。この条件が成立した時に、シーケ
ンサ11は停止する。
なお、ハードウェアの規模については、数十ワードのワ
ークメモリ、2個の演算器、シーケンサ、ポインタ程度
なので最近のLSI技術を用いれば非常に安価に構成で
きる。ワークメモリの必要容量は、つぎのようにして求
めることができる。1024x1024の解像度のフレ
ーム・メモリ上の左端から右端へベジェ曲線を描かせる
とすると、10回中点を算出すると、左端のとなりのド
ツトの座標を求めることができる。これは1024が2
10であることに起因する。したがって、この解像度の
場合答中点の座標を10点分存在できるワークメモリを
もっていれば十分ということになる。また、この解像度
の場合、データの精度は整数部が10ビツト、小数点以
下が10ビツト、すなわち20ビツトの固定小数点であ
れば誤差のない計算が可能である。しがし小数点以下の
誤差はある程度無視できるので、16ビツト固定小歎点
でも十分実用に耐えうる。
ークメモリ、2個の演算器、シーケンサ、ポインタ程度
なので最近のLSI技術を用いれば非常に安価に構成で
きる。ワークメモリの必要容量は、つぎのようにして求
めることができる。1024x1024の解像度のフレ
ーム・メモリ上の左端から右端へベジェ曲線を描かせる
とすると、10回中点を算出すると、左端のとなりのド
ツトの座標を求めることができる。これは1024が2
10であることに起因する。したがって、この解像度の
場合答中点の座標を10点分存在できるワークメモリを
もっていれば十分ということになる。また、この解像度
の場合、データの精度は整数部が10ビツト、小数点以
下が10ビツト、すなわち20ビツトの固定小数点であ
れば誤差のない計算が可能である。しがし小数点以下の
誤差はある程度無視できるので、16ビツト固定小歎点
でも十分実用に耐えうる。
第4図は本発明の第2の実施例のブロック図である。本
実施例は、第1の実施例で使用したレジスタおよびレジ
スタ・ファイルを整理統合するためにRAMを使用し、
さらに低価格化を図ったものである。これは、同じ容量
の記憶素子としては、ばらばらのレジスタ群よりもRA
M構造をとつと方が小さい面積で済むことができるため
であり、これによってデータ記憶部分は大幅にコスト・
ダウンできるが、複数の要素を同一のメモリに統合した
ため、各要素をとりだすための制御が若干変更となる。
実施例は、第1の実施例で使用したレジスタおよびレジ
スタ・ファイルを整理統合するためにRAMを使用し、
さらに低価格化を図ったものである。これは、同じ容量
の記憶素子としては、ばらばらのレジスタ群よりもRA
M構造をとつと方が小さい面積で済むことができるため
であり、これによってデータ記憶部分は大幅にコスト・
ダウンできるが、複数の要素を同一のメモリに統合した
ため、各要素をとりだすための制御が若干変更となる。
第1の実施例との相違点はこのRAMのアクセス制御だ
けなので、この点につぃてだけ説明する。
けなので、この点につぃてだけ説明する。
図において、40.41はRAM、42はベース・ポイ
ンタ・バス、43はRAM制御信号、8は距離レジスタ
、9は演算器、1oはシフタ、11はシーケンサ、12
はポインタ、13は比較器、20〜24はデータ・バス
、30は演算制御信号、31はポインタ制御信号、33
はポインタ・データ・バス、34は比較信号である。
ンタ・バス、43はRAM制御信号、8は距離レジスタ
、9は演算器、1oはシフタ、11はシーケンサ、12
はポインタ、13は比較器、20〜24はデータ・バス
、30は演算制御信号、31はポインタ制御信号、33
はポインタ・データ・バス、34は比較信号である。
RAM40は、第1図のレジスタ1.3.4を統合した
ものに相当する。第1の実施例の演算器9のa個入力に
関しては、シーケンサ11で発生するレジスタ制御信号
32によってレジスタに対して個別の選択信号を出力し
ていたが、RAM化に伴って単純にアドレス制御に変え
、つまりレジスタ制御信号32の変りにRAMアドレス
をRAM制御信号43として出力するようにした。
ものに相当する。第1の実施例の演算器9のa個入力に
関しては、シーケンサ11で発生するレジスタ制御信号
32によってレジスタに対して個別の選択信号を出力し
ていたが、RAM化に伴って単純にアドレス制御に変え
、つまりレジスタ制御信号32の変りにRAMアドレス
をRAM制御信号43として出力するようにした。
一方、演算器9のb個入力となるRAM41の制御は若
干具なる。ポインタ12によって発生されるポインタと
シーケンサ11がら出力されるベース・ポインタを結合
したものをRAM41のアドレスとして使用するのであ
る。したがって、ポインタ・データ・バス33の4ビツ
トのポインタ情報と、ベース・ポインタ・バス42を介
して出力される2ビツトのベース・ポインタの合計6ビ
ツトのアドレスがRAM41に入力されることになる。
干具なる。ポインタ12によって発生されるポインタと
シーケンサ11がら出力されるベース・ポインタを結合
したものをRAM41のアドレスとして使用するのであ
る。したがって、ポインタ・データ・バス33の4ビツ
トのポインタ情報と、ベース・ポインタ・バス42を介
して出力される2ビツトのベース・ポインタの合計6ビ
ツトのアドレスがRAM41に入力されることになる。
なお、本実施例では座標値を16ビツト固定小数点で扱
っていたが、このビット数に制限されるものではなく、
また3次のベジェ曲線以外の曲線に関しても中点算出に
よる曲線発生ならば、本発明による高速に処理すること
ができる。たとえば、2次および4次以上のベジェ曲線
については、中点算出の個数が異なるだけであり、また
スプライン曲線は与えられた制御点をベジェ曲線用の制
御点に変換する前処理を施すことによってベジェ曲線に
近似できることが知られているので、これにも利用する
ことができる。
っていたが、このビット数に制限されるものではなく、
また3次のベジェ曲線以外の曲線に関しても中点算出に
よる曲線発生ならば、本発明による高速に処理すること
ができる。たとえば、2次および4次以上のベジェ曲線
については、中点算出の個数が異なるだけであり、また
スプライン曲線は与えられた制御点をベジェ曲線用の制
御点に変換する前処理を施すことによってベジェ曲線に
近似できることが知られているので、これにも利用する
ことができる。
また、制御点、中点を格納する記憶領域については、第
1の実施例で示したように複数のレジスタに分散させて
もよいし、第2の実施例のようにポインタ制御により単
一のメモリを使用してもよい。要するに、制御点の入替
えを容易にし、また、処理のシーケンスを単純にできた
ことが、本発明のポイントである。
1の実施例で示したように複数のレジスタに分散させて
もよいし、第2の実施例のようにポインタ制御により単
一のメモリを使用してもよい。要するに、制御点の入替
えを容易にし、また、処理のシーケンスを単純にできた
ことが、本発明のポイントである。
以上説明したように、本発明によれば、ソフトウェア処
理に比べて数十倍の性能向上が実現でき、またハードウ
ェアによる構成も単純でありコストパフォーマンスの向
上を実現できると、いう効果がある。
理に比べて数十倍の性能向上が実現でき、またハードウ
ェアによる構成も単純でありコストパフォーマンスの向
上を実現できると、いう効果がある。
第1図は本発明の第1の実施例のブロック図、第2図は
第1図の動作タイミング図、第3図は第1図のレジスタ
内容の説明図、第4図は本発明の第2の実施例のブロッ
ク図、第5図は一般のベジェ曲線発生アルゴリズムを説
明する座標図である。 1〜4・・・レジスタ、5〜7・・・レジスタ・ファイ
ル、8・・・距離レジスタ、9・・・演算器、1o・・
・シフタ、11・・・シーケンサ、12・・・ポインタ
、13・・・比較器、20〜24・・・データ・バス、
30・・・演算制御信号、31・・・ポインタ制御信号
、32・・・レジスタ制御信号、33.42・・・ポイ
ンタ・データ・バス、34・・・比較信号、40.41
・・・RAM、43・・・RAM制御信号。
第1図の動作タイミング図、第3図は第1図のレジスタ
内容の説明図、第4図は本発明の第2の実施例のブロッ
ク図、第5図は一般のベジェ曲線発生アルゴリズムを説
明する座標図である。 1〜4・・・レジスタ、5〜7・・・レジスタ・ファイ
ル、8・・・距離レジスタ、9・・・演算器、1o・・
・シフタ、11・・・シーケンサ、12・・・ポインタ
、13・・・比較器、20〜24・・・データ・バス、
30・・・演算制御信号、31・・・ポインタ制御信号
、32・・・レジスタ制御信号、33.42・・・ポイ
ンタ・データ・バス、34・・・比較信号、40.41
・・・RAM、43・・・RAM制御信号。
Claims (3)
- (1)指定された複数の制御点の座標値からこれら制御
点間の中点の座標を計算することによりその制御点の近
傍の曲線補間を行う曲線発生装置において、前記複数の
制御点および複数の前記中点を所定の2つのグループに
分けそれぞれの座標値を格納する第1記憶手段およびこ
れら中点の座標値を格納すると共にアドレス制御を行う
ポインタを有する第2記憶手段と、これら第1記憶手段
および第2記憶手段に格納された所定の2点の座標値か
ら中点の座標を計算しこれら第1記憶手段あるいは第2
記憶手段のいずれかに格納する演算手段と、前記制御点
間の距離を計算しあらかじめ定めた最小距離と比較する
比較手段と、この比較手段の出力で前記距離が予め定め
られた最小距離よりも大きい場合には前記ポインタを増
加し、またその最小距離より小さい場合には前記第2記
憶手段から読出した座標値を前記第1記憶手段に転送す
ると共に前記ポインタを減ずる手段とを有することを特
徴とする曲線発生装置。 - (2)第1記憶手段がレジスタからなり、第2記憶手段
がレジスタファイルからなる請求項(1)記載の曲線発
生装置。 - (3)第1、第2の各記憶手段がRAMからなる請求項
(1)記載の曲線発生装置。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2005089A JP2734711B2 (ja) | 1990-01-12 | 1990-01-12 | 曲線発生装置 |
| EP91300235A EP0437379B1 (en) | 1990-01-12 | 1991-01-14 | Curve generator |
| DE69112434T DE69112434T2 (de) | 1990-01-12 | 1991-01-14 | Kurvengenerator. |
| US07/640,964 US5269000A (en) | 1990-01-12 | 1991-01-14 | Curve generator |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2005089A JP2734711B2 (ja) | 1990-01-12 | 1990-01-12 | 曲線発生装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH03210680A true JPH03210680A (ja) | 1991-09-13 |
| JP2734711B2 JP2734711B2 (ja) | 1998-04-02 |
Family
ID=11601670
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2005089A Expired - Lifetime JP2734711B2 (ja) | 1990-01-12 | 1990-01-12 | 曲線発生装置 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5269000A (ja) |
| EP (1) | EP0437379B1 (ja) |
| JP (1) | JP2734711B2 (ja) |
| DE (1) | DE69112434T2 (ja) |
Families Citing this family (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5301267A (en) * | 1991-09-27 | 1994-04-05 | Adobe Systems Incorporated | Intelligent font rendering co-processor |
| US5594852A (en) * | 1994-08-17 | 1997-01-14 | Laser Products, Inc. | Method for operating a curve forming device |
| JPH08329261A (ja) * | 1995-05-31 | 1996-12-13 | Canon Inc | パラメータ曲線発生器 |
| US6111588A (en) * | 1996-12-05 | 2000-08-29 | Adobe Systems Incorporated | Creating and modifying curves on a computer display |
| GB2383930B (en) * | 2002-01-08 | 2005-12-14 | Research Machines Plc | Curved connector display |
| US7015917B2 (en) * | 2003-07-18 | 2006-03-21 | Matsushita Electric Industrial Co., Ltd. | Curved surface subdivision apparatus |
| US9123000B2 (en) * | 2005-10-31 | 2015-09-01 | Friedrich Gartner | Automatic generation of calendarization curves |
| JP5687612B2 (ja) * | 2011-12-21 | 2015-03-18 | 京セラドキュメントソリューションズ株式会社 | 画像形成装置 |
| TWI476640B (zh) | 2012-09-28 | 2015-03-11 | Ind Tech Res Inst | 時間資料序列的平滑化方法與裝置 |
| US10347016B2 (en) * | 2016-01-12 | 2019-07-09 | Monotype Imaging Inc. | Converting font contour curves |
| US10936792B2 (en) | 2017-12-21 | 2021-03-02 | Monotype Imaging Inc. | Harmonizing font contours |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| 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. |
| US5134688A (en) * | 1988-05-20 | 1992-07-28 | U.S. Philips Corporation | Computer method and an apparatus for generating a display picture representing a set of objects including a brush element |
| DE68927786D1 (de) * | 1988-06-29 | 1997-04-03 | Fujitsu Ltd | Verfahren und Gerät zur Annäherung einer Kurve mit einer polygonalen Linie |
| JPH02176879A (ja) * | 1988-12-28 | 1990-07-10 | Toshiba Corp | パラメータ曲線発生器 |
-
1990
- 1990-01-12 JP JP2005089A patent/JP2734711B2/ja not_active Expired - Lifetime
-
1991
- 1991-01-14 EP EP91300235A patent/EP0437379B1/en not_active Expired - Lifetime
- 1991-01-14 US US07/640,964 patent/US5269000A/en not_active Expired - Fee Related
- 1991-01-14 DE DE69112434T patent/DE69112434T2/de not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| EP0437379B1 (en) | 1995-08-30 |
| JP2734711B2 (ja) | 1998-04-02 |
| DE69112434T2 (de) | 1996-02-29 |
| US5269000A (en) | 1993-12-07 |
| DE69112434D1 (de) | 1995-10-05 |
| EP0437379A3 (en) | 1993-03-03 |
| EP0437379A2 (en) | 1991-07-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4760548A (en) | Method and apparatus for producing a curve image | |
| US5973705A (en) | Geometry pipeline implemented on a SIMD machine | |
| JP4148560B2 (ja) | 浮動小数点除算演算装置 | |
| JP2734711B2 (ja) | 曲線発生装置 | |
| JPS63198174A (ja) | 図形処理装置 | |
| US4704680A (en) | Address computation system for updating starting addresses of data arrays in an array processor within an instruction cycle | |
| JPH08329261A (ja) | パラメータ曲線発生器 | |
| JP2518293B2 (ja) | デ−タフロ−プロセツサ | |
| GB2226936A (en) | Method and apparatus for implementing adaptive forward differencing using integer arithmetic | |
| JP2757614B2 (ja) | 図形塗りつぶし装置 | |
| US6005988A (en) | Method and apparatus for rapid digital image resizing | |
| US5261034A (en) | Graphics microcomputer for generating geometric figures | |
| JP2748787B2 (ja) | 曲線発生装置 | |
| JP3280160B2 (ja) | 文書処理装置および文書処理方法 | |
| EP0359255A2 (en) | Pattern data generating system | |
| JPH0293772A (ja) | 輪郭近似方式 | |
| JP2611098B2 (ja) | ベクタ・ラスタ変換方式 | |
| JP2835366B2 (ja) | 高速フーリエ変換用アドレス情報発生装置 | |
| SU1285464A1 (ru) | Устройство дл делени | |
| JPH07320044A (ja) | イメージ・データのジオメトリ変換方法及び装置 | |
| JPH0567217A (ja) | 演算装置 | |
| JPH06314091A (ja) | 輪郭塗り潰し方法及びその回路 | |
| JP2000242802A (ja) | 図形処理装置 | |
| JP2003058897A (ja) | 内外点の判定方法およびその判定装置ならびにプログラムの記録媒体 | |
| JPH10149453A (ja) | 多角形図形描画装置 |