JPH04262473A - 多重ステッパーを用いた高速図形画像生成法 - Google Patents
多重ステッパーを用いた高速図形画像生成法Info
- Publication number
- JPH04262473A JPH04262473A JP24936191A JP24936191A JPH04262473A JP H04262473 A JPH04262473 A JP H04262473A JP 24936191 A JP24936191 A JP 24936191A JP 24936191 A JP24936191 A JP 24936191A JP H04262473 A JPH04262473 A JP H04262473A
- Authority
- JP
- Japan
- Prior art keywords
- stepper
- line
- coordinates
- coordinate
- rectangles
- 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
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/40—Filling planar surfaces by adding surface attributes, e.g. adding colours or textures
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Complex Calculations (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】本発明は、各々の曲線部分を放物線分に分
け、それらを各ノードが放物線分を定義する樹状のデー
タ構造に変換し、各ノードを一時に1走査線トラバース
して領域全体を埋めるステップからなる曲線線分の図形
対象により定義される領域を埋める方法に関する。
け、それらを各ノードが放物線分を定義する樹状のデー
タ構造に変換し、各ノードを一時に1走査線トラバース
して領域全体を埋めるステップからなる曲線線分の図形
対象により定義される領域を埋める方法に関する。
【0002】殆ど全てのページ記述言語(例:ポストス
クリプト、インタープレスなど)では、ストローク中心
線軌道とストロークの幅で定義される「ストローク」と
、輪郭で定義される「充填領域」という2タイプの図形
対象がある。最初のタイプは実際には第2のタイプに変
換でき、第2のタイプとして処理される。各充填領域の
輪郭は通常、曲線ないし線分のシーケンスとして表現さ
れる。曲線部分は一般的に円錐曲線、円弧、あるいは3
次ベジエ・スプラインとして表現される。プリンタ処理
装置の主要なタスクは先ずそれらの部分を何等かのより
扱いやすい中間形式に変換し、次にそれらの部分で制限
される領域を埋めることである。今日存在している2つ
の典型的な方法として次のものがある。
クリプト、インタープレスなど)では、ストローク中心
線軌道とストロークの幅で定義される「ストローク」と
、輪郭で定義される「充填領域」という2タイプの図形
対象がある。最初のタイプは実際には第2のタイプに変
換でき、第2のタイプとして処理される。各充填領域の
輪郭は通常、曲線ないし線分のシーケンスとして表現さ
れる。曲線部分は一般的に円錐曲線、円弧、あるいは3
次ベジエ・スプラインとして表現される。プリンタ処理
装置の主要なタスクは先ずそれらの部分を何等かのより
扱いやすい中間形式に変換し、次にそれらの部分で制限
される領域を埋めることである。今日存在している2つ
の典型的な方法として次のものがある。
【0003】(1)先ず輪郭の各曲線部分を多くの線分
に分ける。第2段階は、その部分(現在純粋に線分で定
義された新たに変換した輪郭で境界をなしている)を4
辺形ないし走査線の集まりに分けることである。第3段
階は次にソフトウエアを実行するないし専用ハードウエ
アでその4辺形を埋めるか走査線を描くことである。こ
の方法はおもに、通常浮動小数点の計算という多くの繰
り返しを通常必要とする曲線分解過程の速度が遅い故に
、性能上問題がある。
に分ける。第2段階は、その部分(現在純粋に線分で定
義された新たに変換した輪郭で境界をなしている)を4
辺形ないし走査線の集まりに分けることである。第3段
階は次にソフトウエアを実行するないし専用ハードウエ
アでその4辺形を埋めるか走査線を描くことである。こ
の方法はおもに、通常浮動小数点の計算という多くの繰
り返しを通常必要とする曲線分解過程の速度が遅い故に
、性能上問題がある。
【0004】(2)一時に輪郭の1画素を描き、次にそ
れらの画素で制限される領域を埋める。
れらの画素で制限される領域を埋める。
【0005】この方法には2つの問題がある。即ち最初
の問題は、輪郭の領域の外側から内側を判定するのは難
しいことである。第2の問題は、画素を1つ1つ描くの
は非常に時間がかかることである。
の問題は、輪郭の領域の外側から内側を判定するのは難
しいことである。第2の問題は、画素を1つ1つ描くの
は非常に時間がかかることである。
【0006】本発明は図形対象の画像化を3段階に分解
することでなる。第1段階は各曲線部分を放物線及び線
分に分けることである。第2段階はその輪郭(現在放物
線分と線分だけを含む)をMS樹(多重ステッパー樹)
と称する樹状の中間データ構造に変換する。ここでその
木の中の各々のノードは放物線分ないし線分を定義する
。第3段階は各ノードを一時に1走査線「歩進(ste
pping)」することでMS樹をトラバースし、領域
全体を埋める(異なるエンジンとして実施される)。
することでなる。第1段階は各曲線部分を放物線及び線
分に分けることである。第2段階はその輪郭(現在放物
線分と線分だけを含む)をMS樹(多重ステッパー樹)
と称する樹状の中間データ構造に変換する。ここでその
木の中の各々のノードは放物線分ないし線分を定義する
。第3段階は各ノードを一時に1走査線「歩進(ste
pping)」することでMS樹をトラバースし、領域
全体を埋める(異なるエンジンとして実施される)。
【0007】この方法を取ると少なくとも次の5つの利
点がある。(1)放物線分から線分へ分解する段階をな
くすことができるので、性能が大きく向上する(この段
階はプロセス全体を通して最も時間のかかるプロセスで
ある)。(2)この方法は、元の曲線を放物線ないし線
に分解するため開発されたどのアルゴリズムにも限定さ
れない。即ちアーキテクチャを変えずにより新しく優れ
たアルゴリズムを用いてプロセスを更にスピードアップ
することができる。(3)異なるエンジンの実現は、性
能ないしコストに基づく設計トレードオフに依存し、ソ
フトウエアないしハードウエアのどちらでもよい。 (4)同一方法を用いてクリッパ構造を生成することが
できる。(5)画像のクリッピングを効率的に行うこと
ができる。
点がある。(1)放物線分から線分へ分解する段階をな
くすことができるので、性能が大きく向上する(この段
階はプロセス全体を通して最も時間のかかるプロセスで
ある)。(2)この方法は、元の曲線を放物線ないし線
に分解するため開発されたどのアルゴリズムにも限定さ
れない。即ちアーキテクチャを変えずにより新しく優れ
たアルゴリズムを用いてプロセスを更にスピードアップ
することができる。(3)異なるエンジンの実現は、性
能ないしコストに基づく設計トレードオフに依存し、ソ
フトウエアないしハードウエアのどちらでもよい。 (4)同一方法を用いてクリッパ構造を生成することが
できる。(5)画像のクリッピングを効率的に行うこと
ができる。
【0008】従来例を図1に示す。全ての曲線は放物線
分ないし線に分けられ、次に区域は輪郭及び回転数で定
義されて埋められる。
分ないし線に分けられ、次に区域は輪郭及び回転数で定
義されて埋められる。
【0009】ステッパーとは、各「ステップ」で特定の
曲線の次の座標を計算し生成することのできる差分エン
ジンとして実現されるハードウエアないしソフトウエア
の一片である。この場合、各ステッパーは曲線(放物線
ないし線)の一片を歩進することができるだけでなく、
一連のそのような曲線を連続的に歩進することができる
。ステッパーは常に低いX座標から高いX座標へ歩進す
る。
曲線の次の座標を計算し生成することのできる差分エン
ジンとして実現されるハードウエアないしソフトウエア
の一片である。この場合、各ステッパーは曲線(放物線
ないし線)の一片を歩進することができるだけでなく、
一連のそのような曲線を連続的に歩進することができる
。ステッパーは常に低いX座標から高いX座標へ歩進す
る。
【0010】輪郭を埋めるには少なくとも2つのステッ
パーが必要である。各ステッパーは低いx座標から高い
座標へ伸びた境界を表す。活動ステッパーとは、活性化
され現在歩進しているステッパーである。全てのステッ
パーが同時に活動的である必要はない(即ち一部のステ
ッパーは他よりも遅く出発し、一部のステッパーは他よ
り早く終わる)。全ての活動ステッパーは同期して歩進
する。即ち、各々の活動ステッパーはx方向に1画素歩
進して同じ新しいx座標に達し、他の全ての活動ステッ
パーがその現在のステップを完了するまでは更に歩進し
ない。充填プロセッサ/プロセスは、各走査線で全ての
活動ステッパーからy座標を読み取り、それにより走査
線を埋める。活動ステッパーは各ステップでそのx値を
増加し、従って画像は低いxから高いxへライン毎に埋
められる。充填性能を向上するため、ステッパーは先ず
その現在のx座標値にしたがって分類され、次にその現
在のY座標値にしたがって分類される。各走査線が開始
する前に、非活動ステッパーをチェックし、その開始座
標は現在のx座標のものと整合するか検査する。x座標
が整合すれば、それらのステッパーは活性化される(実
際の実施では、各走査線に対して一回だけの比較が行わ
れ、どれかのステッパーを活性化する必要があるか判定
される)。活動ステッパーがそのチェーンの最後の部分
の歩進を終了すると、それは不活性化され、破壊される
。全ての活動ステッパーはそのy座標にしたがって分類
して、その充填プロセスの性能の向上を図る。輪郭の境
界が互いに交わることがある。この交わりは検出され、
活動ステッパーはそのy座標にしたがって再分類される
。頻繁に分類が要求される可能性があることから、ステ
ッパー樹は、輪郭の全てのステッパー・チェーンを指す
ポインタのアレイとして記憶される。分類過程中、その
過程をスピードアップするにはポインタだけを動かせば
よい。ハードウエア実現で特殊なハードウエアを用いて
分類の必要性をなくすこともできる。
パーが必要である。各ステッパーは低いx座標から高い
座標へ伸びた境界を表す。活動ステッパーとは、活性化
され現在歩進しているステッパーである。全てのステッ
パーが同時に活動的である必要はない(即ち一部のステ
ッパーは他よりも遅く出発し、一部のステッパーは他よ
り早く終わる)。全ての活動ステッパーは同期して歩進
する。即ち、各々の活動ステッパーはx方向に1画素歩
進して同じ新しいx座標に達し、他の全ての活動ステッ
パーがその現在のステップを完了するまでは更に歩進し
ない。充填プロセッサ/プロセスは、各走査線で全ての
活動ステッパーからy座標を読み取り、それにより走査
線を埋める。活動ステッパーは各ステップでそのx値を
増加し、従って画像は低いxから高いxへライン毎に埋
められる。充填性能を向上するため、ステッパーは先ず
その現在のx座標値にしたがって分類され、次にその現
在のY座標値にしたがって分類される。各走査線が開始
する前に、非活動ステッパーをチェックし、その開始座
標は現在のx座標のものと整合するか検査する。x座標
が整合すれば、それらのステッパーは活性化される(実
際の実施では、各走査線に対して一回だけの比較が行わ
れ、どれかのステッパーを活性化する必要があるか判定
される)。活動ステッパーがそのチェーンの最後の部分
の歩進を終了すると、それは不活性化され、破壊される
。全ての活動ステッパーはそのy座標にしたがって分類
して、その充填プロセスの性能の向上を図る。輪郭の境
界が互いに交わることがある。この交わりは検出され、
活動ステッパーはそのy座標にしたがって再分類される
。頻繁に分類が要求される可能性があることから、ステ
ッパー樹は、輪郭の全てのステッパー・チェーンを指す
ポインタのアレイとして記憶される。分類過程中、その
過程をスピードアップするにはポインタだけを動かせば
よい。ハードウエア実現で特殊なハードウエアを用いて
分類の必要性をなくすこともできる。
【0011】放物線ステッパーは、放物線分をトレース
する差分エンジンの実施であり、それはペア(xとy座
標に対する)のスカラー・ステッパーからなっている。 各スカラー・ステッパーは3つのレジスタ(R0 ,R
1 ,R2 )と2つの加算機構からなっている(図2
aと2bを参照)。次のステッパー演算(xに対する2
つの加算とyに対する2つの加算)は各サイクルに対し
て同時に行われ、x座標が1画素位置進むまで続けられ
る。
する差分エンジンの実施であり、それはペア(xとy座
標に対する)のスカラー・ステッパーからなっている。 各スカラー・ステッパーは3つのレジスタ(R0 ,R
1 ,R2 )と2つの加算機構からなっている(図2
aと2bを参照)。次のステッパー演算(xに対する2
つの加算とyに対する2つの加算)は各サイクルに対し
て同時に行われ、x座標が1画素位置進むまで続けられ
る。
【0012】
R0 =R0 +R1 ; xないしy軸の画素位置
R1 =R1 +R2 : xないしy軸の画素位置
は変化(最初の導出の近似) R2 =C; R1 の変化(定数)(
第2の導出の近似) ここでR0 、R1 、R2 はそれぞれ出発点、第1
次の差分、第2次の差分である。元の曲線が3次スプラ
インであれば、3次差分がある。
R1 =R1 +R2 : xないしy軸の画素位置
は変化(最初の導出の近似) R2 =C; R1 の変化(定数)(
第2の導出の近似) ここでR0 、R1 、R2 はそれぞれ出発点、第1
次の差分、第2次の差分である。元の曲線が3次スプラ
インであれば、3次差分がある。
【0013】それらのレジスタの初期条件は、放物線方
程式に対する初期差であり、次のように導かれる。
程式に対する初期差であり、次のように導かれる。
【0014】放物線はパラメトリック方程式で表現され
る。
る。
【0015】
PAR(t)=P0 (1−t)2 +2P1 t(1
−t)+P2 t2 ここでP0 、P1 、P2
は放物線の制御点である。
−t)+P2 t2 ここでP0 、P1 、P2
は放物線の制御点である。
【0016】プロセスは各自にt軸に沿って小さい値d
歩進する。
歩進する。
【0017】
R0 =PAR(0)
=P0
R1 =PAR(d)−PAR(0)
=P0 (1−d)2 +2P1 d(1−d
)+P2 d2 −P0 =((P2 −P1
)−(P1 −P0 ))d2 +2(P1 −P0
)dR2 =(PAR(2d)−PAR(d))−(
PAR(d)−PAR(0)) =PAR(2d
)−2PAR(d)+(PAR(0) =(P0
(1−2d)2 +4P1 d(1−2d)+4P2
d2 )− 2(P0 (1−d)2 +
2P1 d(1−d)+P2 d2 )+P0
=2((P2 −P1 )−(P1 −P0 ))d
2 R1 とR2 の絶対値は、各ステップ・サイ
クルについて1画素以上歩進しないように、xステッパ
ーに対しては1以下でなければならないことに留意する
。ここでdの計算が必要になる。放物線の導出物(速度
)は線であるので、放物線の速度の絶対値は、導出した
線の2点の端点の絶対値の最大よりも決して大きくなら
ない。ここでx軸に沿った最大速度の絶対値をvとする
。するとdを1/vとして選ぶと、各段階について、x
座標は決して1画素以上にジャンプしない。更には、d
を1/vよりは小さく2−kの形で表現できる最大数と
して選ぶと、xステッパーのレジスタR1 とR2 の
端数体の長さが2k「端数」ビットよりも大きければ、
ステッパー演算は単なる整数の加算になり、丸めエラー
はなくなる。R0 は2k+rビットを必要とする。こ
こでrは、画素位置をアドレスする必要がある最大座標
のlog2 である。 yステッパーに対するR1 とR2 は、1以下の絶対
値を含むよう制限はされない。
)+P2 d2 −P0 =((P2 −P1
)−(P1 −P0 ))d2 +2(P1 −P0
)dR2 =(PAR(2d)−PAR(d))−(
PAR(d)−PAR(0)) =PAR(2d
)−2PAR(d)+(PAR(0) =(P0
(1−2d)2 +4P1 d(1−2d)+4P2
d2 )− 2(P0 (1−d)2 +
2P1 d(1−d)+P2 d2 )+P0
=2((P2 −P1 )−(P1 −P0 ))d
2 R1 とR2 の絶対値は、各ステップ・サイ
クルについて1画素以上歩進しないように、xステッパ
ーに対しては1以下でなければならないことに留意する
。ここでdの計算が必要になる。放物線の導出物(速度
)は線であるので、放物線の速度の絶対値は、導出した
線の2点の端点の絶対値の最大よりも決して大きくなら
ない。ここでx軸に沿った最大速度の絶対値をvとする
。するとdを1/vとして選ぶと、各段階について、x
座標は決して1画素以上にジャンプしない。更には、d
を1/vよりは小さく2−kの形で表現できる最大数と
して選ぶと、xステッパーのレジスタR1 とR2 の
端数体の長さが2k「端数」ビットよりも大きければ、
ステッパー演算は単なる整数の加算になり、丸めエラー
はなくなる。R0 は2k+rビットを必要とする。こ
こでrは、画素位置をアドレスする必要がある最大座標
のlog2 である。 yステッパーに対するR1 とR2 は、1以下の絶対
値を含むよう制限はされない。
【0018】線ステッパーは放物線ステッパーの特殊な
ケースである(図3aと3bを参照のこと)。線の最初
の導出物は既に定数であるので、R2 レジスタとR1
に対する加算機構は必要ない(ステッパーに対するハ
ードウエアがあれば、R2 は単にゼロにセットでき、
ステッパーを単に放物線ステッパーとして作動する)。 ここで線ステッパーの初期値を計算するためにいくつか
の単純化を行う。先ずxステッパーR1 は常に1画素
となるようにセットする(単に1画素をx方向に進める
ために)。次にyステッパーR1 レジスタは、整数−
端数の対で表される線の傾きとする。結果が正の数であ
れば、線の最後の点が端点P1 の望む位置で確実に終
了させるため、合成語が1つ加算される。
ケースである(図3aと3bを参照のこと)。線の最初
の導出物は既に定数であるので、R2 レジスタとR1
に対する加算機構は必要ない(ステッパーに対するハ
ードウエアがあれば、R2 は単にゼロにセットでき、
ステッパーを単に放物線ステッパーとして作動する)。 ここで線ステッパーの初期値を計算するためにいくつか
の単純化を行う。先ずxステッパーR1 は常に1画素
となるようにセットする(単に1画素をx方向に進める
ために)。次にyステッパーR1 レジスタは、整数−
端数の対で表される線の傾きとする。結果が正の数であ
れば、線の最後の点が端点P1 の望む位置で確実に終
了させるため、合成語が1つ加算される。
【0019】輪郭に対する境界が多くあるようにステッ
パーも多くある。境界は1方向にのみトラバースする連
結した放物線分ないし線分の集まりである。ここで述べ
るステッパーには、そのxステッパーとyステッパーが
含まれている。各ステッパーは境界上の連続部分に対す
る初期値と終了基準を含む一連のノードを接続する連結
フィールドを持っている。図4はあるステッパーとそれ
が連結するノードのデータ構造を示す(2種類のノード
があり、1つは線用、1つは放物線用)。
パーも多くある。境界は1方向にのみトラバースする連
結した放物線分ないし線分の集まりである。ここで述べ
るステッパーには、そのxステッパーとyステッパーが
含まれている。各ステッパーは境界上の連続部分に対す
る初期値と終了基準を含む一連のノードを接続する連結
フィールドを持っている。図4はあるステッパーとそれ
が連結するノードのデータ構造を示す(2種類のノード
があり、1つは線用、1つは放物線用)。
【0020】活動ステッパーは、各走査線内で関心座標
を生成する。そこで境界の各対(図5を参照)間の「回
転数」を判定し、そしてそれをその回転数(非ゼロ回転
数あるいは奇数回転数)にしたがってある特定の色ない
しインクで埋める必要がある。各線が出発すると回転数
「w」は0に初期化され、境界を横切ったときにいつで
も方向数「dir」を加えることで更新される。境界が
右に行けばdir=1となり、境界が左に行けばdir
=−1となる。
を生成する。そこで境界の各対(図5を参照)間の「回
転数」を判定し、そしてそれをその回転数(非ゼロ回転
数あるいは奇数回転数)にしたがってある特定の色ない
しインクで埋める必要がある。各線が出発すると回転数
「w」は0に初期化され、境界を横切ったときにいつで
も方向数「dir」を加えることで更新される。境界が
右に行けばdir=1となり、境界が左に行けばdir
=−1となる。
【0021】以下はMS樹作成例である。
【0022】(1)ここで「a」点を輪郭が開始する点
とする(この特定例では、輪郭内に軌道は1つしかない
)。部分1は「b」点で終わり右に進む包絡線上の最初
の部分である。ステッパー1はこのように作成され(こ
のステッパーを指しているポインタもポインタのアレイ
に記憶される)、部分1はこのステッパーの最初のノー
ドとして連結される。ステッパー1はdir=1(右へ
)で記される。部分1の制御点は変換されて、ステッパ
ー・パラメータとなり、このノードに記憶される。ステ
ッパー終了パラメータも計算され、このノードに記憶さ
れる。図6a,6bを参照のこと。
とする(この特定例では、輪郭内に軌道は1つしかない
)。部分1は「b」点で終わり右に進む包絡線上の最初
の部分である。ステッパー1はこのように作成され(こ
のステッパーを指しているポインタもポインタのアレイ
に記憶される)、部分1はこのステッパーの最初のノー
ドとして連結される。ステッパー1はdir=1(右へ
)で記される。部分1の制御点は変換されて、ステッパ
ー・パラメータとなり、このノードに記憶される。ステ
ッパー終了パラメータも計算され、このノードに記憶さ
れる。図6a,6bを参照のこと。
【0023】(2)包絡線上の次の部分は部分2である
。この部分の方向は左向きに変えられる。この方向変化
は検出されて、ステッパー2を作成するようになり、部
分2はパラメータ化されて、ステッパー・ノードとなり
、ステッパー2に連結される。ステッパー2はdir=
−1(左へ)で記される。図7a、7bを参照のこと。
。この部分の方向は左向きに変えられる。この方向変化
は検出されて、ステッパー2を作成するようになり、部
分2はパラメータ化されて、ステッパー・ノードとなり
、ステッパー2に連結される。ステッパー2はdir=
−1(左へ)で記される。図7a、7bを参照のこと。
【0024】(3)部分3については、方向の変化はな
いので、新しいステッパーは作成されない。部分3はパ
ラメータ化されてステッパー・ノードになるが、部分2
の後には連結されない。部分3のステッパー・ノードは
その代わりに部分2のステッパー・ノードの前に挿入さ
れる。ステッパーが常に左から右へ歩進するように維持
することが望まれるためである。図8a、8bを参照の
こと。
いので、新しいステッパーは作成されない。部分3はパ
ラメータ化されてステッパー・ノードになるが、部分2
の後には連結されない。部分3のステッパー・ノードは
その代わりに部分2のステッパー・ノードの前に挿入さ
れる。ステッパーが常に左から右へ歩進するように維持
することが望まれるためである。図8a、8bを参照の
こと。
【0025】(4)部分4については、状況は(3)の
ものと同様である。従って、部分4のステッパー・ノー
ドは線ステッパー・ノードの代わりに放物線ステッパー
・ノードであることを除いては手順は同一である。図9
a,9bを参照のこと。
ものと同様である。従って、部分4のステッパー・ノー
ドは線ステッパー・ノードの代わりに放物線ステッパー
・ノードであることを除いては手順は同一である。図9
a,9bを参照のこと。
【0026】(5)部分5については、この部分の方向
は右に変わる。この方向変化は検出されてステッパー3
を作成するようになり、部分5はパラメータ化されてス
テッパー・ノードとなり、ステッパー3に連結される。 ステッパー3はdir=1(右へ)で記される。図10
a、10bを参照のこと。
は右に変わる。この方向変化は検出されてステッパー3
を作成するようになり、部分5はパラメータ化されてス
テッパー・ノードとなり、ステッパー3に連結される。 ステッパー3はdir=1(右へ)で記される。図10
a、10bを参照のこと。
【0027】(6)部分6については、この部分の方向
は左に変わる。この方向変化は検出されてステッパー4
を作成するようになり、部分6はパラメータ化されて、
ステッパー・ノードとなり、ステッパー4に連結される
。ステッパー4はdir=−1(左へ)で記される。 図11a、11bを参照のこと。
は左に変わる。この方向変化は検出されてステッパー4
を作成するようになり、部分6はパラメータ化されて、
ステッパー・ノードとなり、ステッパー4に連結される
。ステッパー4はdir=−1(左へ)で記される。 図11a、11bを参照のこと。
【0028】(7)部分7については、この部分の方向
は右に変わる。この方向変化は検出されて、ステッパー
5を作成するようになり、部分7はパラメータ化されて
、ステッパー・ノードとなり、ステッパー5に連結され
る。ステッパー5はdir=1(右へ)で記される。 図12a、12bを参照のこと。
は右に変わる。この方向変化は検出されて、ステッパー
5を作成するようになり、部分7はパラメータ化されて
、ステッパー・ノードとなり、ステッパー5に連結され
る。ステッパー5はdir=1(右へ)で記される。 図12a、12bを参照のこと。
【0029】(8)部分8については、この部分の方向
は左に変わる。この方向変化は検出されて、ステッパー
6を作成するようになり、部分8はパラメータ化されて
、ステッパー・ノードとなり、ステッパー6に連結され
る。ステッパー6はdir=−1(左へ)で記される。 図13a、13bを参照のこと。
は左に変わる。この方向変化は検出されて、ステッパー
6を作成するようになり、部分8はパラメータ化されて
、ステッパー・ノードとなり、ステッパー6に連結され
る。ステッパー6はdir=−1(左へ)で記される。 図13a、13bを参照のこと。
【0030】(9)部分9については、方向の変化はな
いので、新しいステッパーは作成されない。部分9はパ
ラメータ化されてステッパー・ノードになるが、部分8
の後には連結されない。部分9のステッパー・ノードは
その代わりに部分8のステッパー・ノードの前に挿入さ
れる。ステッパーが常に左から右へ歩進するように維持
することが望まれるためである。図14a、14bを参
照のこと。
いので、新しいステッパーは作成されない。部分9はパ
ラメータ化されてステッパー・ノードになるが、部分8
の後には連結されない。部分9のステッパー・ノードは
その代わりに部分8のステッパー・ノードの前に挿入さ
れる。ステッパーが常に左から右へ歩進するように維持
することが望まれるためである。図14a、14bを参
照のこと。
【0031】(10)部分10については、状況は(9
)のものと同様である。従って手順は(9)のものと同
一である。図15a,15bを参照のこと。
)のものと同様である。従って手順は(9)のものと同
一である。図15a,15bを参照のこと。
【0032】(11)この時点で、部分10は出発点「
a」に戻ったことが分かる。ここで最後のステッパー(
ステッパー6)の方向が最初のステッパー(ステッパー
1)の方向と同じかチェックする。この例では方向は異
なり、それはこのプロセスを完了したことを意味する。 方向が同じである場合、それはステッパー1はステッパ
ー6と同一であるべきことを意味する。そこで合成チェ
ーンは左に行くので、2つのステッパー・チェーンを最
後のステッパーのリストの先の最初のステッパーのリス
トと併合しなければならない。
a」に戻ったことが分かる。ここで最後のステッパー(
ステッパー6)の方向が最初のステッパー(ステッパー
1)の方向と同じかチェックする。この例では方向は異
なり、それはこのプロセスを完了したことを意味する。 方向が同じである場合、それはステッパー1はステッパ
ー6と同一であるべきことを意味する。そこで合成チェ
ーンは左に行くので、2つのステッパー・チェーンを最
後のステッパーのリストの先の最初のステッパーのリス
トと併合しなければならない。
【0033】MS樹を通した歩進過程は以下の通りであ
る。
る。
【0034】(1)第1段階は、全てのステッパーをそ
の最初のノードに記憶された情報と共にロードすること
である。
の最初のノードに記憶された情報と共にロードすること
である。
【0035】(2)ステッパーはそのx座標にしたがっ
て先ず分類される。最低x座標を持つステッパーは活動
ステッパーである(陰影領域として図16aから25b
に示すように)。
て先ず分類される。最低x座標を持つステッパーは活動
ステッパーである(陰影領域として図16aから25b
に示すように)。
【0036】(3)全ての活動ステッパーをそのy座標
にしたがって分類する。
にしたがって分類する。
【0037】(4)全ての活動ステッパーをx方向に1
画素進める(各ステッパーに対して1サイクル以上かか
ることがある)。
画素進める(各ステッパーに対して1サイクル以上かか
ることがある)。
【0038】(5)その結果のY座標は適切であるかチ
ェックする(即ち境界の交差をチェックする)。境界の
交差が起これば、活動ステッパーをそのY座標にしたが
って再分類する。
ェックする(即ち境界の交差をチェックする)。境界の
交差が起これば、活動ステッパーをそのY座標にしたが
って再分類する。
【0039】(6)いずれかのステッパーがその終了条
件に達すれば(境界の部分が完了)、次のノードからパ
ラメータをロードする(図16aから25bでは、点線
のボックスにより対応するステッパーにロードされたス
テッパー・ノードを示す)。このステッパーに連結する
ノードがなければ、ステッパーを破壊する(境界は完了
)。
件に達すれば(境界の部分が完了)、次のノードからパ
ラメータをロードする(図16aから25bでは、点線
のボックスにより対応するステッパーにロードされたス
テッパー・ノードを示す)。このステッパーに連結する
ノードがなければ、ステッパーを破壊する(境界は完了
)。
【0040】(7)現在x座標が非活動ステッパーのい
ずれかの初期座標と合致するならば、それらのステッパ
ーを活性化し、ステップ(2)に戻るかステップ(4)
に戻る。全てのステッパーが破壊されれば、終了である
。
ずれかの初期座標と合致するならば、それらのステッパ
ーを活性化し、ステップ(2)に戻るかステップ(4)
に戻る。全てのステッパーが破壊されれば、終了である
。
【0041】図16aから25bに示す例を用いてその
操作を説明する。
操作を説明する。
【0042】(1)図16a、16bは、ロードされ、
最初のノードのパラメータで分類された後のステッパー
構成を示す(それらのノードはロードされた後に廃棄さ
れる)。合計6つのステッパーがあり、その内2つは活
動的である。図16a、16bはまた、「a」点と「j
」点の間の区域を歩進している間の状態を示している。 分類後、高速走査方向は下から上であるのでステッパー
6はステッパー1よりも先にあることに注目する。
最初のノードのパラメータで分類された後のステッパー
構成を示す(それらのノードはロードされた後に廃棄さ
れる)。合計6つのステッパーがあり、その内2つは活
動的である。図16a、16bはまた、「a」点と「j
」点の間の区域を歩進している間の状態を示している。 分類後、高速走査方向は下から上であるのでステッパー
6はステッパー1よりも先にあることに注目する。
【0043】(2)「j」通過点を歩進した後、部分1
0は完結し、部分9はステッパー6にロードされる。図
17a、17bを参照のこと。
0は完結し、部分9はステッパー6にロードされる。図
17a、17bを参照のこと。
【0044】(3)「g」通過点を歩進した後、更に2
つのステッパーが活性化される。ステッパー4は部分6
に沿って歩進し始め、ステッパー5は部分7に沿って歩
進し始める。ステッパー1とステッパー6は歩進し続け
る。ステッパーはy座標上のその位置にしたがって4、
5、6、1の順に分類されることに注目する。図18a
、18bを参照のこと。
つのステッパーが活性化される。ステッパー4は部分6
に沿って歩進し始め、ステッパー5は部分7に沿って歩
進し始める。ステッパー1とステッパー6は歩進し続け
る。ステッパーはy座標上のその位置にしたがって4、
5、6、1の順に分類されることに注目する。図18a
、18bを参照のこと。
【0045】(4)「i」通過点を歩進した後、部分9
は完了し、部分8はステッパー6にロードされる。図1
9a、19bを参照のこと。
は完了し、部分8はステッパー6にロードされる。図1
9a、19bを参照のこと。
【0046】(5)「h」通過点を歩進した後、ステッ
パー5は部分7の歩進を完了し、ステッパー6は部分8
の歩進を完了する。両方のステッパーはそのステッパー
・ノードを使い果たし、従って終了して破壊される。図
20a、20bを参照のこと。
パー5は部分7の歩進を完了し、ステッパー6は部分8
の歩進を完了する。両方のステッパーはそのステッパー
・ノードを使い果たし、従って終了して破壊される。図
20a、20bを参照のこと。
【0047】(6)「e」通過点を歩進した後、更に2
つのステッパーが活性化される。ステッパー2は部分4
に沿って歩進し始め、ステッパー3は部分5に沿って歩
進し始める。ステッパー1とステッパー4は歩進し続け
る。ステッパーはy座標上のその位置にしたがって4、
3、2、1の順に分類されることに注目する。図21a
、21bを参照のこと。
つのステッパーが活性化される。ステッパー2は部分4
に沿って歩進し始め、ステッパー3は部分5に沿って歩
進し始める。ステッパー1とステッパー4は歩進し続け
る。ステッパーはy座標上のその位置にしたがって4、
3、2、1の順に分類されることに注目する。図21a
、21bを参照のこと。
【0048】(7)「e」通過点を歩進した後、部分4
は完了し、部分3はステッパー2にロードされる。図2
2a、22bを参照のこと。
は完了し、部分3はステッパー2にロードされる。図2
2a、22bを参照のこと。
【0049】(8)「f」通過点を歩進した後、部分3
は部分5の歩進を完了し、ステッパー4は部分6の歩進
を完了する。両方のステッパーはそのステッパー・ノー
ドを使い果たし、従って終了して破壊される。図23a
、23bを参照のこと。
は部分5の歩進を完了し、ステッパー4は部分6の歩進
を完了する。両方のステッパーはそのステッパー・ノー
ドを使い果たし、従って終了して破壊される。図23a
、23bを参照のこと。
【0050】(9)「c」通過点を歩進した後、部分3
は完了し、部分2はステッパー2にロードされる。図2
4a、24bを参照のこと。
は完了し、部分2はステッパー2にロードされる。図2
4a、24bを参照のこと。
【0051】(10)「d」通過点を歩進した後、全て
のステッパーは破壊され終了する。図25a、25bを
参照のこと。
のステッパーは破壊され終了する。図25a、25bを
参照のこと。
【0052】このプロセスはクリッピング機能と共に並
行して使うことができる。手始めに、各ページ・ボディ
の印刷媒体と同じ大きさの矩形のクリッパが最初に存在
すると想定する。クリッピング・オペレータが呼び出さ
れる度に、下層の以前のクリッピング領域と輪郭で定義
される新しいクリッピング領域の共通部分であるクリッ
ピング領域で新しいクリッパが作られる。図29を参照
のこと。
行して使うことができる。手始めに、各ページ・ボディ
の印刷媒体と同じ大きさの矩形のクリッパが最初に存在
すると想定する。クリッピング・オペレータが呼び出さ
れる度に、下層の以前のクリッピング領域と輪郭で定義
される新しいクリッピング領域の共通部分であるクリッ
ピング領域で新しいクリッパが作られる。図29を参照
のこと。
【0053】そのクリッパは矩形の集合の集まりとして
表現され、各集合は「MP」と呼ばれる。各MPは、同
一境界のx座標を持つ非重複矩形として定義される。各
ページ・ボディに対する最初のクリッパは、単一矩形か
らなる単一MPからなるクリッパである。クリッパの表
現例については図26を参照のこと。
表現され、各集合は「MP」と呼ばれる。各MPは、同
一境界のx座標を持つ非重複矩形として定義される。各
ページ・ボディに対する最初のクリッパは、単一矩形か
らなる単一MPからなるクリッパである。クリッパの表
現例については図26を参照のこと。
【0054】クリッパ・データ構造の点から、クリッパ
は、クリッパ・ヘッダ・ノードを指すポインタとして表
現される。またクリッパをインタープレス対象(例:軌
道、輪郭など)として容易に扱うことができるように表
現される。クリッパ・フィールドには次の3つの部分体
がある。1)このヘッダ・ノードはクリッパ・ヘッダ・
ノードであると識別するタグ・フィールド、2)このク
リッパ内のMPの数を表現するmp cntフィール
ド、3)MPの集まりを指すポインタのアレイ。
は、クリッパ・ヘッダ・ノードを指すポインタとして表
現される。またクリッパをインタープレス対象(例:軌
道、輪郭など)として容易に扱うことができるように表
現される。クリッパ・フィールドには次の3つの部分体
がある。1)このヘッダ・ノードはクリッパ・ヘッダ・
ノードであると識別するタグ・フィールド、2)このク
リッパ内のMPの数を表現するmp cntフィール
ド、3)MPの集まりを指すポインタのアレイ。
【0055】各MPは3つのフィールドを持つデータ構
造に記憶される。1)各MPの出発x座標を記憶するs
tart x座標フィールド、(各ポリゴンの終了x
座標は、クリッパ・ヘッダ・ノード内のMPアレイ内の
次のMPのstart xフィールドに記憶される。 2)各ポリゴン内のラン/矩形の数を表現するrun
cntフィールド。3)ランのアレイとして(ここで
各ランとは、ある特定のy座標での垂直の走査線の出発
/終了を指す)。クリッパは複数のクリッピング領域か
らなることがある。各々のクリッピング領域の最後のM
Pは、それ自身ゼロにセットされたrun cntフ
ィールドを持つMPである。各クリッピング領域の最後
のMPの出発xフィールドは、そのクリッピング領域の
右側境界のx座標である。
造に記憶される。1)各MPの出発x座標を記憶するs
tart x座標フィールド、(各ポリゴンの終了x
座標は、クリッパ・ヘッダ・ノード内のMPアレイ内の
次のMPのstart xフィールドに記憶される。 2)各ポリゴン内のラン/矩形の数を表現するrun
cntフィールド。3)ランのアレイとして(ここで
各ランとは、ある特定のy座標での垂直の走査線の出発
/終了を指す)。クリッパは複数のクリッピング領域か
らなることがある。各々のクリッピング領域の最後のM
Pは、それ自身ゼロにセットされたrun cntフ
ィールドを持つMPである。各クリッピング領域の最後
のMPの出発xフィールドは、そのクリッピング領域の
右側境界のx座標である。
【0056】各ランは2つのフィールドを持つデータ構
造に記憶される。1)ランの出発y座標を記憶するy
loフィールド、2)ランの終了x座標を記憶するy
hiフィールドである。図27と図28a−eは、
図26に示すクリッパ例のデータ構造を示す。
造に記憶される。1)ランの出発y座標を記憶するy
loフィールド、2)ランの終了x座標を記憶するy
hiフィールドである。図27と図28a−eは、
図26に示すクリッパ例のデータ構造を示す。
【0057】以上、本発明は特定の実施例について説明
したが、当技術に熟達した者にとっては本発明の真の趣
旨と範囲から逸脱せずに様々な変更行ったり、その要素
を相当のもので置き換えることができることは理解され
よう。更に本発明の本質的な教示から逸脱せずに多くの
修正を行うことも可能である。
したが、当技術に熟達した者にとっては本発明の真の趣
旨と範囲から逸脱せずに様々な変更行ったり、その要素
を相当のもので置き換えることができることは理解され
よう。更に本発明の本質的な教示から逸脱せずに多くの
修正を行うことも可能である。
【図1】 輪郭で制限された領域を埋める段階を示す
。
。
【図2】 放物線ステッパー回路を単純化した図式で
ある。
ある。
【図3】 線ステッパー回路を単純化した図式である
。
。
【図4】 1つのステッパーのデータ構造とそれに連
結したノードを示す。
結したノードを示す。
【図5】 回転数のサンプル計算を示す。
【図6】 例中の部分1のステッパー1の作成を示す
。
。
【図7】 例中の部分2のステッパー2の作成を示す
。
。
【図8】 後続の部分の扱いを示す。
【図9】 後続の部分の扱いを示す。
【図10】 後続の部分の扱いを示す。
【図11】 後続の部分の扱いを示す。
【図12】 後続の部分の扱いを示す。
【図13】 後続の部分の扱いを示す。
【図14】 後続の部分の扱いを示す。
【図15】 後続の部分の扱いを示す。
【図16】 MS樹を通して歩進するプロセスを示す
。
。
【図17】 MS樹を通して歩進するプロセスを示す
。
。
【図18】 MS樹を通して歩進するプロセスを示す
。
。
【図19】 MS樹を通して歩進するプロセスを示す
。
。
【図20】 MS樹を通して歩進するプロセスを示す
。
。
【図21】 MS樹を通して歩進するプロセスを示す
。
。
【図22】 MS樹を通して歩進するプロセスを示す
。
。
【図23】 MS樹を通して歩進するプロセスを示す
。
。
【図24】 MS樹を通して歩進するプロセスを示す
。
。
【図25】 MS樹を通して歩進するプロセスを示す
。
。
【図26】 クリッパの表現例である。
【図27】 図26に示すクリッパ例のデータ構造を
示す。
示す。
【図28】 図26に示すクリッパ例のデータ構造を
示す。
示す。
【図29】 クリッピング領域例を示す。
R0 ,R1 ,R2 レジスタ、P0 ,P1
,P2 制御点
,P2 制御点
Claims (8)
- 【請求項1】 制御点及び回転数で定義される曲線、
放物線ないし線分のリストで定義される輪郭をx及びy
座標の集まりに変換するプロセスにあって、制御点とし
て定義される全ての曲線、放物線、線分を初期座標及び
高次差分に変換してデータ構造のノードを形成し、現在
走査線と交差する活動ノードをすべて歩進することで前
記データ構造を線毎に歩進し、各ノードに対するそのプ
ロセスは a)第1及び高次差分の新しい集合を再計算し、b)次
のx及びy座標を再計算することからなる変換プロセス
。 - 【請求項2】 制御点及び回転数で定義される曲線、
放物線ないし線分のリストで定義される輪郭を充填する
プロセスにあって、請求項1記載のプロセスを用いてx
及びy座標を生成し、前記座標と前記回転数に基づいて
充填線を生成する充填プロセス。 - 【請求項3】 制御点及び回転数で定義される曲線、
放物線ないし線分のリストで定義される輪郭から矩形の
集合の集まりからなるクリッパを生成するプロセスにあ
って、請求項1記載のプロセスを用いてx及びy座標を
生成し、前記座標と前記回転数に基づいて矩形を生成す
るプロセス。 - 【請求項4】 前記矩形の生成には、各集合内の全て
の矩形は同一の幅とx座標を持つ矩形の集合の生成が含
まれる請求項3記載のプロセス。 - 【請求項5】 前記各矩形は、同一y座標を持つx内
の連続線の端で定義される点をつなぐ線からなる請求項
3記載のプロセス。 - 【請求項6】 第1のクリッパは、矩形の集合の集ま
りで構成され、制御点及び回転数で定義される曲線、放
物線ないし線分のリストで定義される輪郭から線を生成
するプロセスにあって、制御点として定義される全ての
曲線、放物線、線分を初期座標及び高次差分に変換して
データ構造のノードを形成し、現在走査線と交差する活
動ノードをすべて歩進することで前記データ構造を線毎
に歩進し、各ノードに対するそのプロセスはa)第1及
び高次差分の新しい集合を再計算し、b)x及びy座標
を再計算し、各々の新しい走査線に対し、前記矩形がス
テッパー座標間の線と重複する線を生成することからな
る生成プロセス。 - 【請求項7】 前記生成された線は、輪郭を充填する
のに用いられる請求項6記載のプロセス。 - 【請求項8】 前記生成された線は、矩形の集合の集
まりからなる第2のクリッパを生成するベースとして用
いられる請求項6記載のプロセス。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US59039490A | 1990-09-28 | 1990-09-28 | |
| US590394 | 2000-06-08 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH04262473A true JPH04262473A (ja) | 1992-09-17 |
Family
ID=24362080
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP24936191A Pending JPH04262473A (ja) | 1990-09-28 | 1991-09-27 | 多重ステッパーを用いた高速図形画像生成法 |
Country Status (2)
| Country | Link |
|---|---|
| EP (1) | EP0479496A3 (ja) |
| JP (1) | JPH04262473A (ja) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7576730B2 (en) | 2000-04-14 | 2009-08-18 | Picsel (Research) Limited | User interface systems and methods for viewing and manipulating digital documents |
| US6781600B2 (en) | 2000-04-14 | 2004-08-24 | Picsel Technologies Limited | Shape processor |
| US7055095B1 (en) | 2000-04-14 | 2006-05-30 | Picsel Research Limited | Systems and methods for digital document processing |
| US7450114B2 (en) | 2000-04-14 | 2008-11-11 | Picsel (Research) Limited | User interface systems and methods for manipulating and viewing digital documents |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2203613B (en) * | 1987-04-06 | 1992-01-02 | Canon Kk | Image processing apparatus |
| JPH02266480A (ja) * | 1989-04-06 | 1990-10-31 | Toshiba Corp | 高品質文字パターン発生方式 |
-
1991
- 1991-09-27 JP JP24936191A patent/JPH04262473A/ja active Pending
- 1991-09-27 EP EP19910308830 patent/EP0479496A3/en not_active Withdrawn
Also Published As
| Publication number | Publication date |
|---|---|
| EP0479496A2 (en) | 1992-04-08 |
| EP0479496A3 (en) | 1993-03-31 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3618838B2 (ja) | 画像出力方法 | |
| US5745121A (en) | Methods and apparatus for optimizing the composition of graphical elements | |
| JP3618839B2 (ja) | 画像出力方法 | |
| EP0694880B1 (en) | Optimization method for the efficient production of images | |
| US4972330A (en) | Clipping process and processor | |
| JP2000196865A (ja) | デジタル画像デ―タを処理して強調された出力画像を生成する方法及びルックアップテ―ブルに格納された多数のエントリを減少する方法 | |
| JP3145509B2 (ja) | 文字生成方法及びその装置 | |
| JPH04262473A (ja) | 多重ステッパーを用いた高速図形画像生成法 | |
| JP4646436B2 (ja) | デジタル画像の画像処理装置 | |
| JPH01296389A (ja) | 図形処理方法及びその装置 | |
| JPH11147344A (ja) | 描画処理装置および方法 | |
| JPH11175740A (ja) | 太線描画方法および装置 | |
| JP3536894B2 (ja) | 図形処理装置 | |
| JP2937509B2 (ja) | ビットマップ展開方式 | |
| JP2001034772A (ja) | 図形処理装置および図形処理方法 | |
| JPH10149453A (ja) | 多角形図形描画装置 | |
| JPH06168337A (ja) | 塗り潰し処理方法 | |
| JP3700810B2 (ja) | データ変換方法および装置 | |
| JP2771981B2 (ja) | 高品質文字パターン発生方式 | |
| JPH0896148A (ja) | 図形描画装置 | |
| JPH09305778A (ja) | 多角形二重化装置 | |
| JPH0245889A (ja) | 領域塗り潰し方法 | |
| JP2002197473A (ja) | 図形処理装置 | |
| JPS62205482A (ja) | Crtデイスプレイ装置のセグメント発生回路 | |
| JP2000165642A (ja) | 印刷システム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19950317 |