JP2002133431A - 画像処理装置及び画像処理方法 - Google Patents
画像処理装置及び画像処理方法Info
- Publication number
- JP2002133431A JP2002133431A JP2000320424A JP2000320424A JP2002133431A JP 2002133431 A JP2002133431 A JP 2002133431A JP 2000320424 A JP2000320424 A JP 2000320424A JP 2000320424 A JP2000320424 A JP 2000320424A JP 2002133431 A JP2002133431 A JP 2002133431A
- Authority
- JP
- Japan
- Prior art keywords
- path
- paths
- data
- tree structure
- image processing
- 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
Landscapes
- Image Generation (AREA)
Abstract
(57)【要約】
【課題】 図形の内部領域の塗り潰しを行う場合に、不
必要な台形の分割を抑え、最適な台形分割を行い、さら
に、台形の描画順を制御して、処理速度の低下、使用メ
モリ量の増大などを改善した画像処理装置及び画像処理
方法を提供する。 【解決手段】 入力されたPDLを解釈し、塗り潰し描
画の際には、まずツリー構造変換部21でパスをツリー
構造で表し、また交差するパスについてはパス交差処理
部22で分割してツリー構造データ保持部31に格納す
る。塗り潰し部23は、ツリー構造のパス群から2つの
パスを抽出して台形を決定し、塗り潰す。パスの抽出時
に、既に描画済みの台形に近接したパスを優先的に抽出
する。これによって接する台形から順に描画させる。塗
り潰し後の台形を図形圧縮部25で圧縮し、圧縮ページ
バッファ32に格納するが、近接した台形が連続するこ
とにより、少ないデータ量で格納可能である。
必要な台形の分割を抑え、最適な台形分割を行い、さら
に、台形の描画順を制御して、処理速度の低下、使用メ
モリ量の増大などを改善した画像処理装置及び画像処理
方法を提供する。 【解決手段】 入力されたPDLを解釈し、塗り潰し描
画の際には、まずツリー構造変換部21でパスをツリー
構造で表し、また交差するパスについてはパス交差処理
部22で分割してツリー構造データ保持部31に格納す
る。塗り潰し部23は、ツリー構造のパス群から2つの
パスを抽出して台形を決定し、塗り潰す。パスの抽出時
に、既に描画済みの台形に近接したパスを優先的に抽出
する。これによって接する台形から順に描画させる。塗
り潰し後の台形を図形圧縮部25で圧縮し、圧縮ページ
バッファ32に格納するが、近接した台形が連続するこ
とにより、少ないデータ量で格納可能である。
Description
【0001】
【発明の属する技術分野】本発明は、図形の描画命令を
受け取って、その図形の内側領域の塗り潰し処理を行う
画像処理装置及び画像処理方法に関するものである。
受け取って、その図形の内側領域の塗り潰し処理を行う
画像処理装置及び画像処理方法に関するものである。
【0002】
【従来の技術】近年、パーソナルコンピュータやワーク
ステーションなどのコンピュータ装置で文章や画像など
のドキュメントを電子的に作成し、そのドキュメントを
コンピュータ装置とネットワークを介して接続するプリ
ンタ装置にて印刷出力する、といったことが広く行われ
ている。このようなコンピュータ装置とプリンタ装置と
を備えてなる画像形成システムでは、一般に、ドキュメ
ントの印刷出力に当たり、コンピュータ装置側からペー
ジ記述言語(Page DescriptionLan
guage;以下「PDL」と略す)で記述された描画
命令を送出するようになっている。この描画命令の送出
があると、プリンタ装置側にてその描画命令を基にフォ
ントやグラフィックスなどの図形を描画する。
ステーションなどのコンピュータ装置で文章や画像など
のドキュメントを電子的に作成し、そのドキュメントを
コンピュータ装置とネットワークを介して接続するプリ
ンタ装置にて印刷出力する、といったことが広く行われ
ている。このようなコンピュータ装置とプリンタ装置と
を備えてなる画像形成システムでは、一般に、ドキュメ
ントの印刷出力に当たり、コンピュータ装置側からペー
ジ記述言語(Page DescriptionLan
guage;以下「PDL」と略す)で記述された描画
命令を送出するようになっている。この描画命令の送出
があると、プリンタ装置側にてその描画命令を基にフォ
ントやグラフィックスなどの図形を描画する。
【0003】このような図形の描画は、プリンタ装置が
搭載している画像処理装置において、いわゆるスキャン
コンバージョン処理を利用して行われることが多い。ス
キャンコンバージョン処理とは、描画すべき図形の外郭
と、その図形が描かれるXY座標系のX軸(またはY
軸)に平行な仮想線(以下、この仮想線を「スキャンラ
イン」と称す)との交点を元にして行われる図形の描画
処理である。詳しくは、まず、描画すべき図形の外郭と
スキャンラインとの交点から、そのスキャンラインに沿
って当該図形を展開したときの開始点と終了点を算出す
る。そして、この開始点と終了点とに従って、エッジと
呼ばれる水平線を描画するとともに、そのエッジを図形
とスキャンラインとの交点の全てについて描画する。こ
れによって、当該描画すべき図形を形成するものであ
る。なお、このようなスキャンコンバージョン処理のう
ち、スキャンラインが描画ピクセルの中間を通る場合
は、特にハーフスキャンライン・スキャンコンバージョ
ン処理と呼ばれている。
搭載している画像処理装置において、いわゆるスキャン
コンバージョン処理を利用して行われることが多い。ス
キャンコンバージョン処理とは、描画すべき図形の外郭
と、その図形が描かれるXY座標系のX軸(またはY
軸)に平行な仮想線(以下、この仮想線を「スキャンラ
イン」と称す)との交点を元にして行われる図形の描画
処理である。詳しくは、まず、描画すべき図形の外郭と
スキャンラインとの交点から、そのスキャンラインに沿
って当該図形を展開したときの開始点と終了点を算出す
る。そして、この開始点と終了点とに従って、エッジと
呼ばれる水平線を描画するとともに、そのエッジを図形
とスキャンラインとの交点の全てについて描画する。こ
れによって、当該描画すべき図形を形成するものであ
る。なお、このようなスキャンコンバージョン処理のう
ち、スキャンラインが描画ピクセルの中間を通る場合
は、特にハーフスキャンライン・スキャンコンバージョ
ン処理と呼ばれている。
【0004】ところで、上述したような描画処理を行う
画像処理装置では、その描画処理を、直線状または曲線
状のパスが複数組み合わさってなる図形の内側領域の塗
り潰しによって行うことがある。なお、ここでいうパス
とは、図形の頂点同士を結ぶ線分、すなわち図形の一辺
を構成する線分のことをいう。
画像処理装置では、その描画処理を、直線状または曲線
状のパスが複数組み合わさってなる図形の内側領域の塗
り潰しによって行うことがある。なお、ここでいうパス
とは、図形の頂点同士を結ぶ線分、すなわち図形の一辺
を構成する線分のことをいう。
【0005】従来、図形の内部領域を塗り潰す場合の描
画アルゴリズムとしては、例えばオーダードエッジリス
ト・アルゴリズムが知られている。このアルゴリズム
は、例えば「実践コンピュータグラフィックス」、山口
富士夫監修、日刊工業新聞社刊、1987年初版発行、
などに記載されている。オーダードエッジリスト・アル
ゴリズムでは、多角形のエッジに対してBresenh
amやDDAアルゴリズム等を用いることにより、描画
すべき図形の外郭と描画ピクセルの中間を通るハーフス
キャンラインとの交点を決定し、各ハーフスキャンライ
ン毎に求められた交点のX座標値を小さい順にソーティ
ングする。その後、各ハーフスキャンラインに対して、
X座標値でソートされたリストから交点の対x1、x2
を抽出し、そのハーフスキャンライン上でx1≦x≦x
2であるような整数値xに対するピクセルを選択して描
画する。これによって、当該描画すべき図形の内部領域
の塗り潰しを行うようになっている。
画アルゴリズムとしては、例えばオーダードエッジリス
ト・アルゴリズムが知られている。このアルゴリズム
は、例えば「実践コンピュータグラフィックス」、山口
富士夫監修、日刊工業新聞社刊、1987年初版発行、
などに記載されている。オーダードエッジリスト・アル
ゴリズムでは、多角形のエッジに対してBresenh
amやDDAアルゴリズム等を用いることにより、描画
すべき図形の外郭と描画ピクセルの中間を通るハーフス
キャンラインとの交点を決定し、各ハーフスキャンライ
ン毎に求められた交点のX座標値を小さい順にソーティ
ングする。その後、各ハーフスキャンラインに対して、
X座標値でソートされたリストから交点の対x1、x2
を抽出し、そのハーフスキャンライン上でx1≦x≦x
2であるような整数値xに対するピクセルを選択して描
画する。これによって、当該描画すべき図形の内部領域
の塗り潰しを行うようになっている。
【0006】図14は、オーダードエッジ・アルゴリズ
ムによる図形描画の一例の説明図である。ここでは図1
4(A)に実線で示すパスによって示された図形を描画
する場合について示しており、図14(B)にオーダー
ドエッジ・アルゴリズムによって生成されるデータ構造
例を示している。図中において、スキャンラインとは、
ハーフスキャンラインの意である。エッジが存在するス
キャンライン毎に、交点を登録するためのポインタを格
納するポインタテーブルを設け、そのポインタテーブル
によってスキャンライン上に存在する交点のリストが指
し示されている。交点リストは、X座標値によってソー
トされており、奇数番目と偶数番目の交点を対にして、
その間を塗り潰すことになる。
ムによる図形描画の一例の説明図である。ここでは図1
4(A)に実線で示すパスによって示された図形を描画
する場合について示しており、図14(B)にオーダー
ドエッジ・アルゴリズムによって生成されるデータ構造
例を示している。図中において、スキャンラインとは、
ハーフスキャンラインの意である。エッジが存在するス
キャンライン毎に、交点を登録するためのポインタを格
納するポインタテーブルを設け、そのポインタテーブル
によってスキャンライン上に存在する交点のリストが指
し示されている。交点リストは、X座標値によってソー
トされており、奇数番目と偶数番目の交点を対にして、
その間を塗り潰すことになる。
【0007】図14(A)には、図14(B)に示すデ
ータによって描画される画素を示しており、交点の対の
間に存在して塗り潰される画素にはクロスハッチングを
施して示し、交点が存在することによって描画が決定さ
れる画素には右上がりのハッチングを施して示してい
る。このように、実線によって示された図形が描画され
ることになる。
ータによって描画される画素を示しており、交点の対の
間に存在して塗り潰される画素にはクロスハッチングを
施して示し、交点が存在することによって描画が決定さ
れる画素には右上がりのハッチングを施して示してい
る。このように、実線によって示された図形が描画され
ることになる。
【0008】このようなオーダードエッジ・アルゴリズ
ムでは、描画される図形に交差するスキャンライン毎
に、図14(B)に示すような交点のリストを構築する
必要がある。そのため、描画される図形を構成するY方
向のピクセル数が多い場合には、その分スキャンライン
数も多くなるので、処理速度の減少及び使用メモリ量の
増大等の問題が生じるおそれがある。また、スキャンラ
インと交差するパスが多い場合にも、交点リストの個数
が多くなり、同様の問題が生じる恐れがある。つまり、
大きい図形や複雑な図形を描画する場合や、出力デバイ
スの解像度が向上した場合等には、一定の大きさの図形
を描画する際のスキャンライン数が増大し、処理速度の
低下や使用メモリ量の増大等の問題が生じてしまう。
ムでは、描画される図形に交差するスキャンライン毎
に、図14(B)に示すような交点のリストを構築する
必要がある。そのため、描画される図形を構成するY方
向のピクセル数が多い場合には、その分スキャンライン
数も多くなるので、処理速度の減少及び使用メモリ量の
増大等の問題が生じるおそれがある。また、スキャンラ
インと交差するパスが多い場合にも、交点リストの個数
が多くなり、同様の問題が生じる恐れがある。つまり、
大きい図形や複雑な図形を描画する場合や、出力デバイ
スの解像度が向上した場合等には、一定の大きさの図形
を描画する際のスキャンライン数が増大し、処理速度の
低下や使用メモリ量の増大等の問題が生じてしまう。
【0009】このような問題を回避するため、図形の内
部領域を塗り潰す場合の他の描画アルゴリズムとして、
エッジを描画するのではなく、高さのある台形を描画す
る手法が従来から提案されている。例えば、特開平4−
134576公報には、上述したオーダードエッジリス
ト・アルゴリズムにおいて全てのスキャンラインについ
て求めていた交点を、各エッジの始点・終点・交点上の
スキャンラインのみに限定し、それらスキャンラインと
求められた交点で分割されたエッジとで構成される台形
を描画している。これにより、処理速度の低下、使用メ
モリ量の増大などを抑えることができる。
部領域を塗り潰す場合の他の描画アルゴリズムとして、
エッジを描画するのではなく、高さのある台形を描画す
る手法が従来から提案されている。例えば、特開平4−
134576公報には、上述したオーダードエッジリス
ト・アルゴリズムにおいて全てのスキャンラインについ
て求めていた交点を、各エッジの始点・終点・交点上の
スキャンラインのみに限定し、それらスキャンラインと
求められた交点で分割されたエッジとで構成される台形
を描画している。これにより、処理速度の低下、使用メ
モリ量の増大などを抑えることができる。
【0010】図15は、従来の台形分割による描画方式
の一例の説明図である。具体例として、図15に示すよ
うな星形の図形と矩形の図形とを一度に描画する場合を
考える。この場合、上述の特開平4−134576公報
に開示された描画アルゴリズムでは、スキャンライン
を、各図形を構成するパスの始点・終点・交点を通過す
るものだけに限定する。これによってスキャンライン
は、図15に一点鎖線で示したラインだけになる。そし
て、そのスキャンラインとそれぞれパスとに囲まれる台
形の塗り潰しを行う。図15に示す例では、星型の図形
でs1〜s16、矩形の図形でr1〜r11の総計27
個の台形について、その内部領域について塗り潰しを行
う。このような描画アルゴリズムによって、オーダード
エッジ・アルゴリズムの場合に比べてスキャンラインの
数が減少するので、処理速度の低下、使用メモリ量の増
大などを抑えることが可能となる。
の一例の説明図である。具体例として、図15に示すよ
うな星形の図形と矩形の図形とを一度に描画する場合を
考える。この場合、上述の特開平4−134576公報
に開示された描画アルゴリズムでは、スキャンライン
を、各図形を構成するパスの始点・終点・交点を通過す
るものだけに限定する。これによってスキャンライン
は、図15に一点鎖線で示したラインだけになる。そし
て、そのスキャンラインとそれぞれパスとに囲まれる台
形の塗り潰しを行う。図15に示す例では、星型の図形
でs1〜s16、矩形の図形でr1〜r11の総計27
個の台形について、その内部領域について塗り潰しを行
う。このような描画アルゴリズムによって、オーダード
エッジ・アルゴリズムの場合に比べてスキャンラインの
数が減少するので、処理速度の低下、使用メモリ量の増
大などを抑えることが可能となる。
【0011】なお、ここでいう台形とは、スキャンライ
ンの一部分を底とし、各図形を構成するパスの一部を脚
(斜辺)とする四角形をいう。図中の星型の図形に含ま
れる台形s1等については、三角形として図示されてい
るが、実際には上底または下底が少なくとも1ピクセル
分の長さを有しているので、ここではこれら全てを台形
と称するもとのする。
ンの一部分を底とし、各図形を構成するパスの一部を脚
(斜辺)とする四角形をいう。図中の星型の図形に含ま
れる台形s1等については、三角形として図示されてい
るが、実際には上底または下底が少なくとも1ピクセル
分の長さを有しているので、ここではこれら全てを台形
と称するもとのする。
【0012】上述のように、特開平4−134576号
公報に開示されたような台形描画を利用した描画アルゴ
リズムでは、オーダードエッジ・アルゴリズムの場合に
比べて処理速度の低下、使用メモリ量の増大などを抑え
ることが可能となる。しかしながら、複数の図形を一度
に描画しようとすると、本来は必要の無い台形への分割
をも行ってしまうため、多くの台形描画が発生してしま
うことになる。具体的には、図15に示すような星型と
矩形の図形一度に描画する場合であれば、同時に描画さ
れる各図形同士が互いに細かな台形に分割描画されてし
まう。そのため、上述のように、星型の図形でs1〜s
16、矩形の図形でr1〜r11の総計27個の台形描
画が発生してしまう。
公報に開示されたような台形描画を利用した描画アルゴ
リズムでは、オーダードエッジ・アルゴリズムの場合に
比べて処理速度の低下、使用メモリ量の増大などを抑え
ることが可能となる。しかしながら、複数の図形を一度
に描画しようとすると、本来は必要の無い台形への分割
をも行ってしまうため、多くの台形描画が発生してしま
うことになる。具体的には、図15に示すような星型と
矩形の図形一度に描画する場合であれば、同時に描画さ
れる各図形同士が互いに細かな台形に分割描画されてし
まう。そのため、上述のように、星型の図形でs1〜s
16、矩形の図形でr1〜r11の総計27個の台形描
画が発生してしまう。
【0013】図16は、図15に示す図形のより好まし
い台形分割の一例の説明図である。ここで、図15に示
した描画図形におけるより好ましい台形分割について考
えると、図16に示すように、星型でs1〜s10、矩
形でr1のみの総計11個の台形描画を行えば十分であ
ることがわかる。したがって、従来の台形描画を利用し
た描画アルゴリズムは、理想的な台形分割を行った場合
に比べて多くの台形描画が発生してしまうことから、処
理速度の低下、使用メモリ量の増大等を抑える上で必ず
しも好適であるとはいえない。
い台形分割の一例の説明図である。ここで、図15に示
した描画図形におけるより好ましい台形分割について考
えると、図16に示すように、星型でs1〜s10、矩
形でr1のみの総計11個の台形描画を行えば十分であ
ることがわかる。したがって、従来の台形描画を利用し
た描画アルゴリズムは、理想的な台形分割を行った場合
に比べて多くの台形描画が発生してしまうことから、処
理速度の低下、使用メモリ量の増大等を抑える上で必ず
しも好適であるとはいえない。
【0014】また、近年のプリンタ装置の解像度の向上
から、ページに描画された図形をnページ分圧縮して保
存しておき、圧縮された図形データを展開しながら出力
するという構成が一般的になっている。このような構成
のプリンタ装置では、描画する図形を逐次圧縮していく
ため、図形の描画順が、圧縮された図形データを格納す
る際のデータ量に影響を与えることが知られている。
から、ページに描画された図形をnページ分圧縮して保
存しておき、圧縮された図形データを展開しながら出力
するという構成が一般的になっている。このような構成
のプリンタ装置では、描画する図形を逐次圧縮していく
ため、図形の描画順が、圧縮された図形データを格納す
る際のデータ量に影響を与えることが知られている。
【0015】図17は、台形分割した図形の描画順の説
明図である。図17には2つの図形を示しており、図1
6に示したような好ましい台形分割によって、左側の図
形はT1−1〜4に、右側の図形T2−1〜4に、それ
ぞれ分割される。このとき、描画される台形の順番を、
例えばT1−1、T2−1、T1−2、T2−2、T1
−3、T2−3、T1−4、T2−4の順とするより
も、T1−1、T1−2、T1−3、T1−4、T2−
1、T2−2、T2−3、T2−4の様に、描画した台
形と接する台形を連続して描画するようにすると、図形
データをより効率的に格納することができる。
明図である。図17には2つの図形を示しており、図1
6に示したような好ましい台形分割によって、左側の図
形はT1−1〜4に、右側の図形T2−1〜4に、それ
ぞれ分割される。このとき、描画される台形の順番を、
例えばT1−1、T2−1、T1−2、T2−2、T1
−3、T2−3、T1−4、T2−4の順とするより
も、T1−1、T1−2、T1−3、T1−4、T2−
1、T2−2、T2−3、T2−4の様に、描画した台
形と接する台形を連続して描画するようにすると、図形
データをより効率的に格納することができる。
【0016】これは、次の台形図形の先頭位置を示す座
標データとして、ある台形図形の描画領域の座標から当
該台形図形の座標に移る際に、その差分の座標値で示し
た相対的な座標を用いることによる。このように相対的
な座標を用いると、図形が隣接して座標値の差分が少な
いと、その座標値を表現するためのビット数が少なくて
済む。そのため、なるべく近接した台形図形を連続させ
ることによって、データ量の削減を図ることが可能にな
る。
標データとして、ある台形図形の描画領域の座標から当
該台形図形の座標に移る際に、その差分の座標値で示し
た相対的な座標を用いることによる。このように相対的
な座標を用いると、図形が隣接して座標値の差分が少な
いと、その座標値を表現するためのビット数が少なくて
済む。そのため、なるべく近接した台形図形を連続させ
ることによって、データ量の削減を図ることが可能にな
る。
【0017】しかし従来は、Y座標値の小さい台形図形
から圧縮された図形データを格納していたため、例えば
図17に示す図形では、左右の図形に属する離れた台形
図形が交互に圧縮されて順次格納されるため、図形デー
タ量が増大し、展開時にも効率よく展開を行うことがで
きないという問題があった。
から圧縮された図形データを格納していたため、例えば
図17に示す図形では、左右の図形に属する離れた台形
図形が交互に圧縮されて順次格納されるため、図形デー
タ量が増大し、展開時にも効率よく展開を行うことがで
きないという問題があった。
【0018】
【発明が解決しようとする課題】本発明は、上述した事
情に鑑みてなされたもので、図形の内部領域の塗り潰し
を行う場合に、不必要な台形の分割を抑え、最適な台形
分割を行い、さらに、台形の描画順を制御することによ
り、処理速度の低下、使用メモリ量の増大などを従来よ
りも改善しつつ、その塗り潰し処理をはじめとした図形
描画処理を行うことのできる画像処理装置及び画像処理
方法を提供することを目的とするものである。
情に鑑みてなされたもので、図形の内部領域の塗り潰し
を行う場合に、不必要な台形の分割を抑え、最適な台形
分割を行い、さらに、台形の描画順を制御することによ
り、処理速度の低下、使用メモリ量の増大などを従来よ
りも改善しつつ、その塗り潰し処理をはじめとした図形
描画処理を行うことのできる画像処理装置及び画像処理
方法を提供することを目的とするものである。
【0019】
【課題を解決するための手段】本発明は、複数のパスか
らなる図形の内側領域を塗り潰すための画像処理装置及
び画像処理方法において、前記図形を構成する複数のパ
スを当該図形が描かれるXY座標系のX軸方向及びY軸
方向にソートしたツリー構造で表すとともに、前記複数
のパスの中で互いに交差するパスがあれば当該交差する
パスをその交点で分割してその分割後のパスを前記ツリ
ー構造で表すデータに変換する。そして、前記ツリー構
造で表されるパス群の中から所定規則に従って2つずつ
パスを抽出するが、このときに既に描画された図形に接
するパスを優先的に抽出する。これによって、なるべく
近接した描画図形が選択されるように制御することがで
きる。
らなる図形の内側領域を塗り潰すための画像処理装置及
び画像処理方法において、前記図形を構成する複数のパ
スを当該図形が描かれるXY座標系のX軸方向及びY軸
方向にソートしたツリー構造で表すとともに、前記複数
のパスの中で互いに交差するパスがあれば当該交差する
パスをその交点で分割してその分割後のパスを前記ツリ
ー構造で表すデータに変換する。そして、前記ツリー構
造で表されるパス群の中から所定規則に従って2つずつ
パスを抽出するが、このときに既に描画された図形に接
するパスを優先的に抽出する。これによって、なるべく
近接した描画図形が選択されるように制御することがで
きる。
【0020】次に、抽出した2つのパスの間に位置する
領域を順次塗り潰す。このとき、抽出した2つのパスの
間に他のパスの始点または終点の少なくとも一方が位置
しているか否かに応じて、当該2つのパスの間に位置す
る領域の描画範囲を可変させる。または、抽出した2つ
のパスの外側領域に他のパスが偶数本存在しているか否
かに応じて、当該2つのパスの間に位置する領域の描画
範囲を可変させる。あるいは、抽出した2つのパスの間
に他のパスの始点または終点の少なくとも一方が位置し
ているか否かを判断し、かつ、当該2つのパスの外側領
域に他のパスが偶数本存在しているか否かを判断し、こ
れらの判断結果に応じて当該2つのパスの間に位置する
領域の描画範囲を可変させる。すなわち、例えば、2つ
のパスの間に他のパスの始点または終点が位置している
場合にのみ、その2つのパスの間に位置する領域の範囲
を、当該始点または終点を基準にしてさらに小さく分割
するように可変させる。また、例えば2つのパスの外側
領域に他のパスが偶数本存在していない場合にのみ、そ
の2つのパスの間に位置する領域の範囲を、当該他のパ
スを基準にしてさらに小さく分割するように可変させ
る。したがって、不必要な領域分割を抑えられるので、
図形の内部領域の塗り潰しを行う際の最適な台形分割を
行い得るようになる。
領域を順次塗り潰す。このとき、抽出した2つのパスの
間に他のパスの始点または終点の少なくとも一方が位置
しているか否かに応じて、当該2つのパスの間に位置す
る領域の描画範囲を可変させる。または、抽出した2つ
のパスの外側領域に他のパスが偶数本存在しているか否
かに応じて、当該2つのパスの間に位置する領域の描画
範囲を可変させる。あるいは、抽出した2つのパスの間
に他のパスの始点または終点の少なくとも一方が位置し
ているか否かを判断し、かつ、当該2つのパスの外側領
域に他のパスが偶数本存在しているか否かを判断し、こ
れらの判断結果に応じて当該2つのパスの間に位置する
領域の描画範囲を可変させる。すなわち、例えば、2つ
のパスの間に他のパスの始点または終点が位置している
場合にのみ、その2つのパスの間に位置する領域の範囲
を、当該始点または終点を基準にしてさらに小さく分割
するように可変させる。また、例えば2つのパスの外側
領域に他のパスが偶数本存在していない場合にのみ、そ
の2つのパスの間に位置する領域の範囲を、当該他のパ
スを基準にしてさらに小さく分割するように可変させ
る。したがって、不必要な領域分割を抑えられるので、
図形の内部領域の塗り潰しを行う際の最適な台形分割を
行い得るようになる。
【0021】さらに、このようにして塗り潰し処理を行
った図形を圧縮して保存する。このとき、上述のように
最適な台形分割を行い、また、近接した描画図形が優先
して選択されるように順序の制御を行っているので、保
存するデータ量を削減できる。また、扱うデータ量が少
なくなることから、この画像処理装置及び画像処理方法
における処理及び後段における処理の速度を向上させる
ことが可能である。
った図形を圧縮して保存する。このとき、上述のように
最適な台形分割を行い、また、近接した描画図形が優先
して選択されるように順序の制御を行っているので、保
存するデータ量を削減できる。また、扱うデータ量が少
なくなることから、この画像処理装置及び画像処理方法
における処理及び後段における処理の速度を向上させる
ことが可能である。
【0022】なお、図形を構成するパスが曲線状である
場合には、当該パスを直線状のパスの集合に近似変換し
た後に、前記ツリー構造で表すデータに変換すればよ
い。これによって、直線状のパスのみを取り扱うだけで
塗り潰し処理を行うことができる。
場合には、当該パスを直線状のパスの集合に近似変換し
た後に、前記ツリー構造で表すデータに変換すればよ
い。これによって、直線状のパスのみを取り扱うだけで
塗り潰し処理を行うことができる。
【0023】
【発明の実施の形態】図1は、本発明の画像処理装置及
び画像処理方法の実施の一形態を含む描画装置の一構成
例を示すブロック図である。図中、1は画像処理装置、
2はネットワーク、3はプリンタエンジン、11は入力
インタフェース、12はCPU、13はROM、14は
RAM、15はプリンタエンジンインタフェース、16
は内部バス、21はツリー構造変換部、22はパス交差
処理部、23は塗り潰し部、24は台形描画部、25は
図形圧縮部、26は図形展開部、31はツリー構造デー
タ保持部、32は圧縮ページバッファである。なお、こ
こでは本発明の画像処理装置及び画像処理方法を、ドキ
ュメントの印刷出力を行うプリンタ装置に搭載した場合
を例として示している。
び画像処理方法の実施の一形態を含む描画装置の一構成
例を示すブロック図である。図中、1は画像処理装置、
2はネットワーク、3はプリンタエンジン、11は入力
インタフェース、12はCPU、13はROM、14は
RAM、15はプリンタエンジンインタフェース、16
は内部バス、21はツリー構造変換部、22はパス交差
処理部、23は塗り潰し部、24は台形描画部、25は
図形圧縮部、26は図形展開部、31はツリー構造デー
タ保持部、32は圧縮ページバッファである。なお、こ
こでは本発明の画像処理装置及び画像処理方法を、ドキ
ュメントの印刷出力を行うプリンタ装置に搭載した場合
を例として示している。
【0024】まず、全体の概略構成について説明する。
画像処理装置1は、図示しないコンピュータ装置などで
生成されたPDLを、そのコンピュータ装置からネット
ワーク2を介して受信する。そして、受信したPDLに
よって記述された描画コマンド(直線、曲線、フォン
ト、ラスタ画像、塗り潰し等の描画命令)を解釈して図
形描画処理を行い、描画された図形を圧縮して圧縮ペー
ジバッファ32に蓄える。図形描画処理後に、圧縮され
た図形を展開し、生成されたラスタ状の図形データを、
画像形成処理を行うプリンタエンジン3に対して送出す
る。
画像処理装置1は、図示しないコンピュータ装置などで
生成されたPDLを、そのコンピュータ装置からネット
ワーク2を介して受信する。そして、受信したPDLに
よって記述された描画コマンド(直線、曲線、フォン
ト、ラスタ画像、塗り潰し等の描画命令)を解釈して図
形描画処理を行い、描画された図形を圧縮して圧縮ペー
ジバッファ32に蓄える。図形描画処理後に、圧縮され
た図形を展開し、生成されたラスタ状の図形データを、
画像形成処理を行うプリンタエンジン3に対して送出す
る。
【0025】そのために、画像処理装置1は、入力イン
タフェース11と、CPU12(Central Pr
ocessing Unit)と、ROM13(Rea
dOnly Memory)と、RAM14(Rand
om Access Memory)と、プリンタエン
ジンインタフェース15と、これらを互いに接続する内
部バス16を備えて構成されている。
タフェース11と、CPU12(Central Pr
ocessing Unit)と、ROM13(Rea
dOnly Memory)と、RAM14(Rand
om Access Memory)と、プリンタエン
ジンインタフェース15と、これらを互いに接続する内
部バス16を備えて構成されている。
【0026】入力インタフェース11は、図示しないコ
ンピュータ装置などからのPDLを、ネットワーク2を
介して受信する。この入力インタフェース11が受信す
るPDLには、図形描画コマンドが含まれているものと
する。また、当該図形の描画を行う場合には、その図形
の外郭データがPDLとして入力インタフェース11に
与えられるものとする。
ンピュータ装置などからのPDLを、ネットワーク2を
介して受信する。この入力インタフェース11が受信す
るPDLには、図形描画コマンドが含まれているものと
する。また、当該図形の描画を行う場合には、その図形
の外郭データがPDLとして入力インタフェース11に
与えられるものとする。
【0027】CPU12は、画像処理装置1全体の動作
制御のほかに、入力インタフェース11を介して受け取
ったPDLを解釈して、その解釈結果に基づいて図形の
描画処理を行う。CPU12では、この描画処理を行う
ために、ツリー構造変換部21、パス交差処理部22、
塗り潰し部23、台形描画部24、図形圧縮部25、及
び図形展開部26としての機能を有している。
制御のほかに、入力インタフェース11を介して受け取
ったPDLを解釈して、その解釈結果に基づいて図形の
描画処理を行う。CPU12では、この描画処理を行う
ために、ツリー構造変換部21、パス交差処理部22、
塗り潰し部23、台形描画部24、図形圧縮部25、及
び図形展開部26としての機能を有している。
【0028】ツリー構造変換部21は、図形を構成する
複数のパスを、当該図形が描かれるXY座標系のX軸方
向及びY軸方向にソートしたツリー構造で表すデータに
変換する。変換したデータは、RAM14内のツリー構
造データ保持部31に格納する。なお、パスが曲線であ
った場合には、当該パスを直線状のパスの集合に近似変
換した後に、ツリー構造で表すデータに変換する直線近
似手段としての機能も有している。
複数のパスを、当該図形が描かれるXY座標系のX軸方
向及びY軸方向にソートしたツリー構造で表すデータに
変換する。変換したデータは、RAM14内のツリー構
造データ保持部31に格納する。なお、パスが曲線であ
った場合には、当該パスを直線状のパスの集合に近似変
換した後に、ツリー構造で表すデータに変換する直線近
似手段としての機能も有している。
【0029】パス交差処理部22は、ツリー構造変換部
21における変換処理において、複数のパスの中で互い
に交差するパスがあれば、当該交差するパスをその交点
で分割する処理を行い、その分割後のパスをツリー構造
で表すデータに変換する。なお、上述のツリー構造変換
部21とこのパス交差処理部22の機能によりデータ変
換手段としての機能を実現している。
21における変換処理において、複数のパスの中で互い
に交差するパスがあれば、当該交差するパスをその交点
で分割する処理を行い、その分割後のパスをツリー構造
で表すデータに変換する。なお、上述のツリー構造変換
部21とこのパス交差処理部22の機能によりデータ変
換手段としての機能を実現している。
【0030】塗り潰し部23は、ツリー構造で表される
パス群の中から所定規則に従って2つずつパスを抽出す
るパス抽出手段としての機能と、領域塗り潰し手段の一
部の機能、すなわち抽出された2つのパスから塗り潰し
処理を行う台形を確定する機能を備えている。2つのパ
スを抽出する際には、既に描画された図形に接するパス
を優先的に抽出し、描画される台形の順序を制御する。
また、台形を確定する際には、最適な台形分割が行われ
るように、抽出した2つのパスの間に他のパスの始点ま
たは終点の少なくとも一方が位置しているか否かと、抽
出した2つのパスの外側領域に他のパスが偶数本存在し
ているか否かとのいずれか一方または両方に応じて、当
該2つのパスの間に位置する領域を可変させる。
パス群の中から所定規則に従って2つずつパスを抽出す
るパス抽出手段としての機能と、領域塗り潰し手段の一
部の機能、すなわち抽出された2つのパスから塗り潰し
処理を行う台形を確定する機能を備えている。2つのパ
スを抽出する際には、既に描画された図形に接するパス
を優先的に抽出し、描画される台形の順序を制御する。
また、台形を確定する際には、最適な台形分割が行われ
るように、抽出した2つのパスの間に他のパスの始点ま
たは終点の少なくとも一方が位置しているか否かと、抽
出した2つのパスの外側領域に他のパスが偶数本存在し
ているか否かとのいずれか一方または両方に応じて、当
該2つのパスの間に位置する領域を可変させる。
【0031】台形描画部24は、領域塗り潰し手段のそ
の他の機能を備えており、塗り潰し部23で確定した台
形の内部領域の塗り潰しを行う。
の他の機能を備えており、塗り潰し部23で確定した台
形の内部領域の塗り潰しを行う。
【0032】図形圧縮部25は、台形描画部24で塗り
潰された図形を圧縮し、圧縮された台形をRAM14内
の圧縮ページバッファ32に格納する。上述のように塗
り潰し部23で近接する台形が描画されるように順序を
制御しているので、圧縮された図形データのデータ量は
従来に比べて低減している。
潰された図形を圧縮し、圧縮された台形をRAM14内
の圧縮ページバッファ32に格納する。上述のように塗
り潰し部23で近接する台形が描画されるように順序を
制御しているので、圧縮された図形データのデータ量は
従来に比べて低減している。
【0033】図形展開部26は、圧縮ページバッファ3
2に格納されている圧縮された図形データをラスターデ
ータに展開する。展開したラスターデータは、プリンタ
エンジンインタフェース15を介してプリンタエンジン
3に送られる。
2に格納されている圧縮された図形データをラスターデ
ータに展開する。展開したラスターデータは、プリンタ
エンジンインタフェース15を介してプリンタエンジン
3に送られる。
【0034】ROM13は、CPU12が描画処理を行
うのに必要となる描画プログラムや固定的なデータなど
をあらかじめ格納している。このROM13内の描画プ
ログラムを実行することによって、CPU12では上述
した各部の機能を実現する。
うのに必要となる描画プログラムや固定的なデータなど
をあらかじめ格納している。このROM13内の描画プ
ログラムを実行することによって、CPU12では上述
した各部の機能を実現する。
【0035】RAM14は、CPU12が描画処理を行
う際のワークメモリとして用いられる。このRAM14
には、その一部にツリー構造データ保持部31としての
領域と、圧縮ページバッファ32としての領域が確保さ
れる。ツリー構造データ保持部31には、CPU12に
よる描画処理の過程で生成されるツリー構造データが格
納される。圧縮ページバッファ32には、CPU12に
よって描画され、プリンタエンジン3に出力するため
の、圧縮された図形データが格納される。もちろんRA
M14にはこのほかの各種のデータも格納される。例え
ばPDLで入力されたパスデータ等についても格納され
る。
う際のワークメモリとして用いられる。このRAM14
には、その一部にツリー構造データ保持部31としての
領域と、圧縮ページバッファ32としての領域が確保さ
れる。ツリー構造データ保持部31には、CPU12に
よる描画処理の過程で生成されるツリー構造データが格
納される。圧縮ページバッファ32には、CPU12に
よって描画され、プリンタエンジン3に出力するため
の、圧縮された図形データが格納される。もちろんRA
M14にはこのほかの各種のデータも格納される。例え
ばPDLで入力されたパスデータ等についても格納され
る。
【0036】プリンタエンジンインタフェース15は、
CPU12による制御に従いつつ、RAM14内の圧縮
ページバッファ32に格納されている圧縮された図形デ
ータから展開されたラスターデータを、プリンタエンジ
ンに送出する。なお、プリンタエンジン3は、周知の電
子写真技術を利用してラスターデータを印刷出力するも
のや、周知のインクジェット方式の印刷技術を利用して
ラスターデータを印刷出力をするものなど、種々の方式
で印刷出力を行うものであってよい。また、CRT等の
表示装置であっても構わない。
CPU12による制御に従いつつ、RAM14内の圧縮
ページバッファ32に格納されている圧縮された図形デ
ータから展開されたラスターデータを、プリンタエンジ
ンに送出する。なお、プリンタエンジン3は、周知の電
子写真技術を利用してラスターデータを印刷出力するも
のや、周知のインクジェット方式の印刷技術を利用して
ラスターデータを印刷出力をするものなど、種々の方式
で印刷出力を行うものであってよい。また、CRT等の
表示装置であっても構わない。
【0037】次に、以上のように構成された画像処理装
置における処理動作の概要、すなわち本発明の画像処理
方法の概要について簡単に説明する。図2は、本発明の
画像処理装置における全体の処理動作及び画像処理方法
の一例を示すデータフロー図、図3は、同じくフローチ
ャートである。なお、ここでは、説明を簡略化するため
に、パス図形のみの描画が可能な画像処理装置および画
像処理方法について説明する。その他のイメージや文字
に関しては、従来より用いられている方法を用いて処理
可能であり、ここでは説明を省略する。
置における処理動作の概要、すなわち本発明の画像処理
方法の概要について簡単に説明する。図2は、本発明の
画像処理装置における全体の処理動作及び画像処理方法
の一例を示すデータフロー図、図3は、同じくフローチ
ャートである。なお、ここでは、説明を簡略化するため
に、パス図形のみの描画が可能な画像処理装置および画
像処理方法について説明する。その他のイメージや文字
に関しては、従来より用いられている方法を用いて処理
可能であり、ここでは説明を省略する。
【0038】通常、PDLで図形を描画する場合、図形
の外郭線分、すなわち直線状または曲線状のパスの集合
により、その図形を表すことが一般的である。このこと
から、画像処理装置1では図形描画処理を行うにあたっ
て、始めに、パスデータ入力処理を行う。パスデータ入
力処理は、PDLで記述されたパスを、CPU12が解
釈して、パスデータとしてRAM14上に一時的に保存
する処理である。
の外郭線分、すなわち直線状または曲線状のパスの集合
により、その図形を表すことが一般的である。このこと
から、画像処理装置1では図形描画処理を行うにあたっ
て、始めに、パスデータ入力処理を行う。パスデータ入
力処理は、PDLで記述されたパスを、CPU12が解
釈して、パスデータとしてRAM14上に一時的に保存
する処理である。
【0039】その後、PDLによりパスの塗り潰しが命
令されると、CPU12によりこれを解釈し、画像処理
装置1では図3に示すパスの塗り潰し処理を開始する。
パスの塗り潰し処理は、ツリー構造変換部21による辺
テーブルリスト生成処理、パス交差処理部22による辺
交差処理、塗り潰し部23による描画辺抽出処理及び描
画図形決定処理、台形描画部24による台形描画処理を
行う。なお、パスデータ入力処理によってRAM14内
に一時的に蓄えられたパスデータ群は、パスの描画時と
同様に、パスの塗り潰し処理を実行する際にも、図形描
画時のデータとして利用される。
令されると、CPU12によりこれを解釈し、画像処理
装置1では図3に示すパスの塗り潰し処理を開始する。
パスの塗り潰し処理は、ツリー構造変換部21による辺
テーブルリスト生成処理、パス交差処理部22による辺
交差処理、塗り潰し部23による描画辺抽出処理及び描
画図形決定処理、台形描画部24による台形描画処理を
行う。なお、パスデータ入力処理によってRAM14内
に一時的に蓄えられたパスデータ群は、パスの描画時と
同様に、パスの塗り潰し処理を実行する際にも、図形描
画時のデータとして利用される。
【0040】パスの塗り潰し処理にあたっては、図3に
示すように、まずS41において、CPU12のツリー
構造変換部21が、辺テーブルリスト生成処理を行う。
すなわち、ツリー構造変換部21は辺テーブルリスト生
成処理として、上述の一時的なパスデータを、図形の辺
を表すデータ(以下「辺データ」と称す)として順次取
り出し、X軸方向およびY軸方向にソーティングされた
ツリー構造となるテーブルをRAM14上のツリー構造
データ保持部31内に生成する。このX軸方向およびY
軸方向にソーティングされた辺データのツリー構造テー
ブルを、以下「辺テーブルリスト」と称す。したがっ
て、辺テーブルリスト生成処理の後は、RAM14内の
パスデータ群は、辺テーブルリストによって表されるこ
とになる。なお、辺データおよび辺テーブルリストにつ
いては、その詳細を後述するものとする。
示すように、まずS41において、CPU12のツリー
構造変換部21が、辺テーブルリスト生成処理を行う。
すなわち、ツリー構造変換部21は辺テーブルリスト生
成処理として、上述の一時的なパスデータを、図形の辺
を表すデータ(以下「辺データ」と称す)として順次取
り出し、X軸方向およびY軸方向にソーティングされた
ツリー構造となるテーブルをRAM14上のツリー構造
データ保持部31内に生成する。このX軸方向およびY
軸方向にソーティングされた辺データのツリー構造テー
ブルを、以下「辺テーブルリスト」と称す。したがっ
て、辺テーブルリスト生成処理の後は、RAM14内の
パスデータ群は、辺テーブルリストによって表されるこ
とになる。なお、辺データおよび辺テーブルリストにつ
いては、その詳細を後述するものとする。
【0041】次いでS42において、CPU12のバス
交差処理部22は、辺交差処理を行う。すなわち、パス
交差処理部22は辺交差処理として、辺テーブルリスト
の中に互いに交差する辺があると、これらの辺同士を抽
出する。そして、抽出した辺の交点で各辺を分割し、そ
の分割後の辺をツリー構造で表して再び辺テーブルリス
トに登録する。このときの交点分割についても、詳細は
後述するものとする。
交差処理部22は、辺交差処理を行う。すなわち、パス
交差処理部22は辺交差処理として、辺テーブルリスト
の中に互いに交差する辺があると、これらの辺同士を抽
出する。そして、抽出した辺の交点で各辺を分割し、そ
の分割後の辺をツリー構造で表して再び辺テーブルリス
トに登録する。このときの交点分割についても、詳細は
後述するものとする。
【0042】辺テーブルリストの生成および交差する辺
の分割が終了すると、その後、CPU12の塗り潰し部
23は、S43の描画辺抽出処理およびS44〜S46
またはS47までの描画図形決定処理を行う。すなわ
ち、塗り潰し部23は、S43における描画辺抽出処理
として、辺テーブルリストの中から所定規則に従って描
画対象の辺を2つ抽出する。このとき抽出される辺は、
既に描画された図形と接する辺が優先的に抽出される。
なお、その詳細は後述するものとする。
の分割が終了すると、その後、CPU12の塗り潰し部
23は、S43の描画辺抽出処理およびS44〜S46
またはS47までの描画図形決定処理を行う。すなわ
ち、塗り潰し部23は、S43における描画辺抽出処理
として、辺テーブルリストの中から所定規則に従って描
画対象の辺を2つ抽出する。このとき抽出される辺は、
既に描画された図形と接する辺が優先的に抽出される。
なお、その詳細は後述するものとする。
【0043】次いでS44において、抽出された2つの
辺の描画に影響を与えうる辺を、辺テーブルリストを検
索して探し出す。なお、ここでいう影響についても、そ
の詳細は後述するものとする。このとき、影響を与える
辺が存在しているか否かをS45で判定する。影響を与
える辺が存在していなければ、塗り潰し部23は、描画
図形決定処理として、S46において、抽出した2つの
辺に基づいて描画が確定した台形、すなわち、抽出した
2つの辺の間に位置する塗り潰し領域を算出する。一
方、影響を与える辺が存在していれば、塗り潰し部23
は、描画図形決定処理として、S47において、その影
響を与える辺と抽出した2つの辺との両方に基づいて描
画が確定した台形を算出する。
辺の描画に影響を与えうる辺を、辺テーブルリストを検
索して探し出す。なお、ここでいう影響についても、そ
の詳細は後述するものとする。このとき、影響を与える
辺が存在しているか否かをS45で判定する。影響を与
える辺が存在していなければ、塗り潰し部23は、描画
図形決定処理として、S46において、抽出した2つの
辺に基づいて描画が確定した台形、すなわち、抽出した
2つの辺の間に位置する塗り潰し領域を算出する。一
方、影響を与える辺が存在していれば、塗り潰し部23
は、描画図形決定処理として、S47において、その影
響を与える辺と抽出した2つの辺との両方に基づいて描
画が確定した台形を算出する。
【0044】このようにして台形を算出したら、次いで
S48において、CPU12の台形描画部24は台形描
画処理を行う。ここで、台形描画部24は台形描画処理
として、描画が確定した台形の内部領域の塗り潰しを行
い、さらに、図形圧縮部25を利用して塗り潰された台
形を圧縮し、圧縮された台形をRAM14中の圧縮ペー
ジバッファ32内に描き込む。これにより、圧縮ページ
バッファ32内には、当該台形の圧縮されたラスタデー
タが描き込まれることになる。
S48において、CPU12の台形描画部24は台形描
画処理を行う。ここで、台形描画部24は台形描画処理
として、描画が確定した台形の内部領域の塗り潰しを行
い、さらに、図形圧縮部25を利用して塗り潰された台
形を圧縮し、圧縮された台形をRAM14中の圧縮ペー
ジバッファ32内に描き込む。これにより、圧縮ページ
バッファ32内には、当該台形の圧縮されたラスタデー
タが描き込まれることになる。
【0045】最後にS49において、上述の台形描画の
基となった(描画台形の脚にとなった)辺データは、既
に描画には影響を与えないので、辺テーブルリストの中
から削除する。そして、S50において全ての辺の描画
が終了したか否かを判定し、未処理の辺が残っていれば
S43以降の処理を繰り返す。このようにして、S43
以降の処理を辺テーブルリスト中の全ての辺について繰
り返し行い、全ての辺の描画が終了したら、パスの塗り
潰し処理を終了する。
基となった(描画台形の脚にとなった)辺データは、既
に描画には影響を与えないので、辺テーブルリストの中
から削除する。そして、S50において全ての辺の描画
が終了したか否かを判定し、未処理の辺が残っていれば
S43以降の処理を繰り返す。このようにして、S43
以降の処理を辺テーブルリスト中の全ての辺について繰
り返し行い、全ての辺の描画が終了したら、パスの塗り
潰し処理を終了する。
【0046】以下、上述の各処理について詳述してゆ
く。図4は、辺テーブルリスト生成処理の一例を示すフ
ローチャート、図5は、辺テーブルリストを生成する際
に用いられるデータ構造の一例を示す説明図、図6は、
辺テーブルリストの生成結果の一例を示す説明図であ
る。ここでは、図2及び図3のS41に示した辺テーブ
ルリスト生成処理の一例について、その詳細を説明す
る。
く。図4は、辺テーブルリスト生成処理の一例を示すフ
ローチャート、図5は、辺テーブルリストを生成する際
に用いられるデータ構造の一例を示す説明図、図6は、
辺テーブルリストの生成結果の一例を示す説明図であ
る。ここでは、図2及び図3のS41に示した辺テーブ
ルリスト生成処理の一例について、その詳細を説明す
る。
【0047】図4に示すように、辺テーブルリスト生成
処理を行う場合に、ツリー構造変換部21は、まずS6
1において、RAM14内に一時的に蓄えられたパスデ
ータ群の中から、図形の1つの辺(線分)を表すデータ
を辺データとして取り出す。この時、ツリー構造変換部
21では、図5に示すように、始点座標値と終点座標値
とによって特定可能となるデータ構造によって、辺デー
タの取り出しを行う。例えば図5(A)に示すような直
線の辺データが存在するとき、その始点及び終点の座標
値を有する、図5(B)に示す辺データを取得する。図
5(B)における左隣の辺へのポインタは、この後にツ
リー構造を構築した際に、同じY座標値でX座標値が小
さい辺データが存在すれば、その辺データへのポインタ
が登録される。同様に、右隣の辺へのポインタは、この
後にツリー構造を構築した際に、同じY座標値でX座標
値が大きい辺データが存在すれば、その辺データへのポ
インタが登録される。また、取り出した辺データを、そ
の始点のY座標値で管理するため、始点のY座標値に対
応したスキャンラインデータも図5(C)に示してい
る。このスキャンラインデータの例では、当該スキャン
ラインのY座標値と、そのスキャンラインにおける最初
の辺データへのポインタと、スキャンラインデータを相
互に参照するための下側及び上側のスキャンラインデー
タへのポインタなどの情報を含んでいる。これらのスキ
ャンラインデータ及び辺データは、例えば後述する図6
(B)に示すようにそれぞれのポインタによって接続さ
れる。
処理を行う場合に、ツリー構造変換部21は、まずS6
1において、RAM14内に一時的に蓄えられたパスデ
ータ群の中から、図形の1つの辺(線分)を表すデータ
を辺データとして取り出す。この時、ツリー構造変換部
21では、図5に示すように、始点座標値と終点座標値
とによって特定可能となるデータ構造によって、辺デー
タの取り出しを行う。例えば図5(A)に示すような直
線の辺データが存在するとき、その始点及び終点の座標
値を有する、図5(B)に示す辺データを取得する。図
5(B)における左隣の辺へのポインタは、この後にツ
リー構造を構築した際に、同じY座標値でX座標値が小
さい辺データが存在すれば、その辺データへのポインタ
が登録される。同様に、右隣の辺へのポインタは、この
後にツリー構造を構築した際に、同じY座標値でX座標
値が大きい辺データが存在すれば、その辺データへのポ
インタが登録される。また、取り出した辺データを、そ
の始点のY座標値で管理するため、始点のY座標値に対
応したスキャンラインデータも図5(C)に示してい
る。このスキャンラインデータの例では、当該スキャン
ラインのY座標値と、そのスキャンラインにおける最初
の辺データへのポインタと、スキャンラインデータを相
互に参照するための下側及び上側のスキャンラインデー
タへのポインタなどの情報を含んでいる。これらのスキ
ャンラインデータ及び辺データは、例えば後述する図6
(B)に示すようにそれぞれのポインタによって接続さ
れる。
【0048】ところで、図形の辺は、必ずしも図5
(A)に示すような直線状であるとは限らず、曲線状で
あることも考えられる。このことから、図4のS62に
おいて、取り出すべき辺が曲線状の線分か否かを判定
し、曲線状の線分の場合には、S63において、これを
直線近似して直線状の線分の集合に変換した後に、当処
理(辺テーブルリスト生成処理)を再帰的に呼び出す。
この時、再帰的に呼び出された場合も同じ辺テーブルリ
ストに辺が登録されるものとする。
(A)に示すような直線状であるとは限らず、曲線状で
あることも考えられる。このことから、図4のS62に
おいて、取り出すべき辺が曲線状の線分か否かを判定
し、曲線状の線分の場合には、S63において、これを
直線近似して直線状の線分の集合に変換した後に、当処
理(辺テーブルリスト生成処理)を再帰的に呼び出す。
この時、再帰的に呼び出された場合も同じ辺テーブルリ
ストに辺が登録されるものとする。
【0049】1つの辺データを取り出したら、ツリー構
造変換部21はS64において、その辺データについ
て、始点のy座標値が終点のy座標値より小さくなるよ
うに始点と終点の座標値を入れ替える。その後、これを
RAM14のツリー構造データ保持部31内の辺テーブ
ルリストに登録する。ただし、このときツリー構造変換
部21は、辺データの登録に先立って、S65におい
て、その辺データの始点のy座標値と等しいスキャンラ
イン値を持つスキャンラインデータを、その辺データを
登録すべき辺テーブルリストの中から探し出す。S66
において、該当するスキャンラインデータが存在したか
否かを判定し、該当するスキャンラインデータが存在し
なければ、ツリー構造変換部21はS67において、ツ
リー構造データ保持部31内の辺テーブルリストに、始
点のy座標値と等しいスキャンラインy座標値を持つス
キャンラインデータを新たに生成して追加する。
造変換部21はS64において、その辺データについ
て、始点のy座標値が終点のy座標値より小さくなるよ
うに始点と終点の座標値を入れ替える。その後、これを
RAM14のツリー構造データ保持部31内の辺テーブ
ルリストに登録する。ただし、このときツリー構造変換
部21は、辺データの登録に先立って、S65におい
て、その辺データの始点のy座標値と等しいスキャンラ
イン値を持つスキャンラインデータを、その辺データを
登録すべき辺テーブルリストの中から探し出す。S66
において、該当するスキャンラインデータが存在したか
否かを判定し、該当するスキャンラインデータが存在し
なければ、ツリー構造変換部21はS67において、ツ
リー構造データ保持部31内の辺テーブルリストに、始
点のy座標値と等しいスキャンラインy座標値を持つス
キャンラインデータを新たに生成して追加する。
【0050】このときに追加されるスキャンラインデー
タのy座標値は、以下の条件が満たされているものとす
る。 (1)スキャンラインy座標値は、リスト中下側のスキ
ャンラインデータのスキャンラインy座標値より大き
く、 (2)同一のスキャンラインy座標値を持つスキャンラ
インデータはリスト中に存在しない。 すなわち、ツリー構造変換部21は、辺データの辺テー
ブルリストへの登録にあたって、(1)および(2)の
条件を満足することを保証する。
タのy座標値は、以下の条件が満たされているものとす
る。 (1)スキャンラインy座標値は、リスト中下側のスキ
ャンラインデータのスキャンラインy座標値より大き
く、 (2)同一のスキャンラインy座標値を持つスキャンラ
インデータはリスト中に存在しない。 すなわち、ツリー構造変換部21は、辺データの辺テー
ブルリストへの登録にあたって、(1)および(2)の
条件を満足することを保証する。
【0051】そして、ツリー構造変換部21は、S68
において、新たに追加したスキャンラインデータまたは
既に存在しているスキャンラインデータにリンクさせ
て、一時的なパスデータ群の中から取り出した辺データ
を、ツリー構造データ保持部31内の辺テーブルリスト
へ追加登録する。この時、辺テーブルリスト内の辺デー
タ間では、以下の条件が満たされているものとする。 (3)始点x座標値はリスト中左隣の辺データのほうが
小さく、 (4)始点x座標値が等しい場合、終端のx座標値は左
隣の辺データのほうが小さい。 すなわち、ツリー構造変換部21は、辺データの辺テー
ブルリストへの登録にあたって、(3)および(4)の
条件を満足することを保証する。
において、新たに追加したスキャンラインデータまたは
既に存在しているスキャンラインデータにリンクさせ
て、一時的なパスデータ群の中から取り出した辺データ
を、ツリー構造データ保持部31内の辺テーブルリスト
へ追加登録する。この時、辺テーブルリスト内の辺デー
タ間では、以下の条件が満たされているものとする。 (3)始点x座標値はリスト中左隣の辺データのほうが
小さく、 (4)始点x座標値が等しい場合、終端のx座標値は左
隣の辺データのほうが小さい。 すなわち、ツリー構造変換部21は、辺データの辺テー
ブルリストへの登録にあたって、(3)および(4)の
条件を満足することを保証する。
【0052】その後、ツリー構造変換部21はS69に
おいて、一時的なパスデータ群の中に未処理の辺データ
(線分)が残っているか否か判断し、残っていれば再び
上述した各ステップを行い、図形描画に必要な全ての辺
データの処理が終了するまでこれを繰り返す。これによ
り、ツリー構造データ保持部31内には、辺データとス
キャンラインデータとにより、辺データをY軸方向とX
軸方向とにソーティングし、かつ、ツリー構造にして表
した辺テーブルリストが構築されることになる。
おいて、一時的なパスデータ群の中に未処理の辺データ
(線分)が残っているか否か判断し、残っていれば再び
上述した各ステップを行い、図形描画に必要な全ての辺
データの処理が終了するまでこれを繰り返す。これによ
り、ツリー構造データ保持部31内には、辺データとス
キャンラインデータとにより、辺データをY軸方向とX
軸方向とにソーティングし、かつ、ツリー構造にして表
した辺テーブルリストが構築されることになる。
【0053】具体的には、図6(A)に示すような辺1
〜4からなる図形であれば、上述した辺テーブルリスト
生成処理によって、図6(B)に示すような辺テーブル
リストが構築される。すなわち、入力された辺1〜4に
ついての各辺データから、各辺の始点を通るスキャンラ
イン(L1〜3)に対応してスキャンラインデータが生
成される。それらのスキャンラインデータは、前述の条
件に従ってリスト構造を構成する。すなわち、下側の方
がスキャンラインy座標値が小さいという制限から、下
から上へ向けてスキャンラインy座標値がL1,L2,
L3のスキャンラインデータが順に連結されている。
〜4からなる図形であれば、上述した辺テーブルリスト
生成処理によって、図6(B)に示すような辺テーブル
リストが構築される。すなわち、入力された辺1〜4に
ついての各辺データから、各辺の始点を通るスキャンラ
イン(L1〜3)に対応してスキャンラインデータが生
成される。それらのスキャンラインデータは、前述の条
件に従ってリスト構造を構成する。すなわち、下側の方
がスキャンラインy座標値が小さいという制限から、下
から上へ向けてスキャンラインy座標値がL1,L2,
L3のスキャンラインデータが順に連結されている。
【0054】また、それぞれの辺においては、y座標値
が小さい端点を始点としているので、辺1と辺2の始点
のy座標値はL1、辺3の始点のy座標値はL2、辺4
の始点のy座標値はL3となる。そしてそれぞれの辺の
始点のy座標値に対応するスキャンラインデータにリン
クされる。すなわち、スキャンラインy座標値がL1の
スキャンラインデータに辺1及び辺2の辺データがリン
クされる。このとき、辺データ同士では始点のx座標値
の小さい順に、始点のx座標値が同じ場合には終点のx
座標値が小さい順に並べられることから、辺1の辺デー
タ、辺2の辺データの順でリンクされる。また、スキャ
ンラインy座標値がL2のスキャンラインデータに辺2
の辺データがリンクされ、スキャンラインy座標値がL
3のスキャンラインデータに辺4の辺データがリンクさ
れる。このようにして、スキャンラインデータと辺デー
タのリストによりX軸方向およびY軸方向へソートされ
た2次元のツリー構造を構成することができる。
が小さい端点を始点としているので、辺1と辺2の始点
のy座標値はL1、辺3の始点のy座標値はL2、辺4
の始点のy座標値はL3となる。そしてそれぞれの辺の
始点のy座標値に対応するスキャンラインデータにリン
クされる。すなわち、スキャンラインy座標値がL1の
スキャンラインデータに辺1及び辺2の辺データがリン
クされる。このとき、辺データ同士では始点のx座標値
の小さい順に、始点のx座標値が同じ場合には終点のx
座標値が小さい順に並べられることから、辺1の辺デー
タ、辺2の辺データの順でリンクされる。また、スキャ
ンラインy座標値がL2のスキャンラインデータに辺2
の辺データがリンクされ、スキャンラインy座標値がL
3のスキャンラインデータに辺4の辺データがリンクさ
れる。このようにして、スキャンラインデータと辺デー
タのリストによりX軸方向およびY軸方向へソートされ
た2次元のツリー構造を構成することができる。
【0055】図7は、辺交差処理の一例を示すフローチ
ャート、図8は、辺交差処理後における辺テーブルリス
トの一例を示す説明図である。この辺交差処理は、図2
及び図3のS42に示したように、辺テーブルリストか
ら交差する辺を抽出し、交点で分割して再び辺テーブル
リストへ登録する処理である。
ャート、図8は、辺交差処理後における辺テーブルリス
トの一例を示す説明図である。この辺交差処理は、図2
及び図3のS42に示したように、辺テーブルリストか
ら交差する辺を抽出し、交点で分割して再び辺テーブル
リストへ登録する処理である。
【0056】上述の辺テーブルリスト生成処理により一
時的なパスデータが全て辺テーブルリストに変換される
と、続いて、パス交差処理部22が辺交差処理を開始す
る。パス交差処理部22は、まずS71において、辺テ
ーブルリストに保存されている中から交差判定の対象と
なる辺データを1つ取り出す。そしてS72において、
取り出した辺データの始点のy座標値を「sy」、終点
のy座標値を「ey」として保存しておく。
時的なパスデータが全て辺テーブルリストに変換される
と、続いて、パス交差処理部22が辺交差処理を開始す
る。パス交差処理部22は、まずS71において、辺テ
ーブルリストに保存されている中から交差判定の対象と
なる辺データを1つ取り出す。そしてS72において、
取り出した辺データの始点のy座標値を「sy」、終点
のy座標値を「ey」として保存しておく。
【0057】さらにS73において、パス交差処理部2
2は、S71で取り出された辺データとは別の辺データ
を1つ取り出す。この時に取り出される辺データは、S
72において保存されたsyの値を持つスキャンライン
データからeyの値を持つスキャンラインデータまでの
スキャンラインデータにリンクされている辺テーブルリ
ストから取得される。
2は、S71で取り出された辺データとは別の辺データ
を1つ取り出す。この時に取り出される辺データは、S
72において保存されたsyの値を持つスキャンライン
データからeyの値を持つスキャンラインデータまでの
スキャンラインデータにリンクされている辺テーブルリ
ストから取得される。
【0058】その後、パス交差処理部22はS74にお
いて、S71で取得した辺データとS73で取得した辺
データとの間で交差判定を行う。交差判定には、公知の
手法を用いればよいが、その一例として以下に述べるよ
うなものがあり、例えば「画像データベース」、坂内正
夫、大沢裕共著、昭晃堂刊などにも記載されている。
いて、S71で取得した辺データとS73で取得した辺
データとの間で交差判定を行う。交差判定には、公知の
手法を用いればよいが、その一例として以下に述べるよ
うなものがあり、例えば「画像データベース」、坂内正
夫、大沢裕共著、昭晃堂刊などにも記載されている。
【0059】2線分A、Bの2端点の座標を(xa1,y
a1)、(xa2,ya2)、(xb1,y b1)、(xb2,
yb2)とした時、次式で3つのパラメータξ、η、Δを
求める。 ξ=(yb2−yb1)(xb2−xa1)−(xb2−xb1)
(yb2−ya1) η=(ya2−ya1)(xb2−xa1)+(xa2−xa1)
(yb2−ya1) Δ=(xa2−xa1)(yb2−yb1)−(ya2−ya1)
(xb2−xb1) この時、ξ、η、Δ−ξ、Δ−ηの全ての符号が等しい
とき、2線分A、Bは交差する。この時の交点は、λ=
ξ/Δとした時、 x=xb1+λ(xa2−xa1) y=ya1+λ(ya2−ya1) となる。
a1)、(xa2,ya2)、(xb1,y b1)、(xb2,
yb2)とした時、次式で3つのパラメータξ、η、Δを
求める。 ξ=(yb2−yb1)(xb2−xa1)−(xb2−xb1)
(yb2−ya1) η=(ya2−ya1)(xb2−xa1)+(xa2−xa1)
(yb2−ya1) Δ=(xa2−xa1)(yb2−yb1)−(ya2−ya1)
(xb2−xb1) この時、ξ、η、Δ−ξ、Δ−ηの全ての符号が等しい
とき、2線分A、Bは交差する。この時の交点は、λ=
ξ/Δとした時、 x=xb1+λ(xa2−xa1) y=ya1+λ(ya2−ya1) となる。
【0060】S75においてこのような交差判定の結果
を調べ、交差があれば、パス交差処理部22はS77に
おいて、その交差判定によって得られた交点にて、交差
判定される辺データと交差判定する辺データ、すなわち
S71とS73とで取得したそれぞれの辺データを分割
する。そして、新たに作られた分割後の辺データを辺テ
ーブルリストへ登録する。なお、この時も上述した
(1)〜(4)の条件は保証されるものとする。
を調べ、交差があれば、パス交差処理部22はS77に
おいて、その交差判定によって得られた交点にて、交差
判定される辺データと交差判定する辺データ、すなわち
S71とS73とで取得したそれぞれの辺データを分割
する。そして、新たに作られた分割後の辺データを辺テ
ーブルリストへ登録する。なお、この時も上述した
(1)〜(4)の条件は保証されるものとする。
【0061】その後、S78において、辺テーブルリス
ト内の全ての辺データについて処理を行ったか否かを判
定し、残っていればS71へ戻って処理を繰り返す。S
77で辺データの分割を行った場合には、新たな辺デー
タが登録されたので、必ずS71へ戻ることになる。
ト内の全ての辺データについて処理を行ったか否かを判
定し、残っていればS71へ戻って処理を繰り返す。S
77で辺データの分割を行った場合には、新たな辺デー
タが登録されたので、必ずS71へ戻ることになる。
【0062】S74の交差判定で交差がないと判定され
た場合には、S75からS76へ進み、さらに交差判定
する辺データが存在するか否かを判定する。交差判定す
る辺データが存在する場合にはS73へ戻って新たな交
差判定する辺データを取り出してS74で交差判定を行
うことになる。交差判定すべき全ての辺データについて
判定を行ったら、S78へ進み、辺テーブルリスト内の
全ての辺データについて交差判定される辺データとして
取り出し、処理を行ったか否かを判定する。未処理の辺
データが存在する場合にはS71へ戻り、S71以降の
処理を繰り返す。
た場合には、S75からS76へ進み、さらに交差判定
する辺データが存在するか否かを判定する。交差判定す
る辺データが存在する場合にはS73へ戻って新たな交
差判定する辺データを取り出してS74で交差判定を行
うことになる。交差判定すべき全ての辺データについて
判定を行ったら、S78へ進み、辺テーブルリスト内の
全ての辺データについて交差判定される辺データとして
取り出し、処理を行ったか否かを判定する。未処理の辺
データが存在する場合にはS71へ戻り、S71以降の
処理を繰り返す。
【0063】このようにしてパス交差処理部22は、辺
テーブルリスト内の全ての辺データについての処理が終
了するまで、上述したS71〜S77の処理を繰り返
す。これにより、辺テーブルリスト内にリンクされてい
る辺データ間では、交差が存在しないことが保証され
る。
テーブルリスト内の全ての辺データについての処理が終
了するまで、上述したS71〜S77の処理を繰り返
す。これにより、辺テーブルリスト内にリンクされてい
る辺データ間では、交差が存在しないことが保証され
る。
【0064】具体的には、上述の図6(A)に示すよう
な辺1〜辺4からなり、かつ、辺1と辺3とが互いに交
差している図形であれば、上述した辺交差処理によっ
て、図8(A)に示すように、辺1が辺7と辺8に、ま
た、辺3が辺5と辺6に、それぞれ分割される。そし
て、辺1と辺3の交点を通るスキャンラインデータ(L
4)が生成され、分割によって生じる新たな辺(辺6、
辺8)の辺データがそこにリンクされることになる。ま
た、スキャンラインデータ(L1)には、辺1の代わり
に辺7の辺データが、スキャンラインデータ(L2)に
は辺3の代わりに辺5の辺データが、それぞれリンクさ
れることになる。そして、辺1及び辺3の辺データは削
除される。このようにして、辺テーブルリストは図8
(B)に示すようになる。
な辺1〜辺4からなり、かつ、辺1と辺3とが互いに交
差している図形であれば、上述した辺交差処理によっ
て、図8(A)に示すように、辺1が辺7と辺8に、ま
た、辺3が辺5と辺6に、それぞれ分割される。そし
て、辺1と辺3の交点を通るスキャンラインデータ(L
4)が生成され、分割によって生じる新たな辺(辺6、
辺8)の辺データがそこにリンクされることになる。ま
た、スキャンラインデータ(L1)には、辺1の代わり
に辺7の辺データが、スキャンラインデータ(L2)に
は辺3の代わりに辺5の辺データが、それぞれリンクさ
れることになる。そして、辺1及び辺3の辺データは削
除される。このようにして、辺テーブルリストは図8
(B)に示すようになる。
【0065】次いで、本発明において最も特徴的な点で
ある、描画辺抽出処理、描画図形決定処理、及び台形描
画処理について説明する。上述の辺交差処理により互い
の辺の交差が存在しないことが保証されると、続いて、
塗り潰し部23は、図2及び図3のS43に示す描画辺
抽出処理を開始する。塗り潰し部23は、辺テーブルリ
ストから描画判定される辺データを、X軸方向及びY軸
方向に始点の座標値が小さいほうから順に2つずつ取り
出す。ここで取得した2本の辺データを、以下「描画辺
データ」と称する。
ある、描画辺抽出処理、描画図形決定処理、及び台形描
画処理について説明する。上述の辺交差処理により互い
の辺の交差が存在しないことが保証されると、続いて、
塗り潰し部23は、図2及び図3のS43に示す描画辺
抽出処理を開始する。塗り潰し部23は、辺テーブルリ
ストから描画判定される辺データを、X軸方向及びY軸
方向に始点の座標値が小さいほうから順に2つずつ取り
出す。ここで取得した2本の辺データを、以下「描画辺
データ」と称する。
【0066】描画辺データの取得は、次に述べる順序に
従って行われる。 (a)既に描画された台形が存在する場合で、かつ、そ
の台形に接する描画辺データが存在する場合は、その描
画辺データを取得する。 (b)辺データの始点のx座標値、y座標値とも最小の
辺データが最初に取得される。 (c)取得される2つの辺データの始点x座標値が小さ
い順から取得される。 (d)(b)の順で取得される辺データが存在しない場
合は、辺データの始点y座標値が小さい順から再び取得
される。
従って行われる。 (a)既に描画された台形が存在する場合で、かつ、そ
の台形に接する描画辺データが存在する場合は、その描
画辺データを取得する。 (b)辺データの始点のx座標値、y座標値とも最小の
辺データが最初に取得される。 (c)取得される2つの辺データの始点x座標値が小さ
い順から取得される。 (d)(b)の順で取得される辺データが存在しない場
合は、辺データの始点y座標値が小さい順から再び取得
される。
【0067】ここで、(a)の処理を行う接続辺検出処
理について説明する。図9は、接続辺検出処理の一例を
示すフローチャート、図10は、接続辺検出処理の一具
体例を示す説明図である。まずS81において、前回描
画された台形の上底のy座標値を接続辺検出スキャンラ
インとする。さらにS82において、その台形の上底の
y座標値をey、下底のy座標値をsyとする。
理について説明する。図9は、接続辺検出処理の一例を
示すフローチャート、図10は、接続辺検出処理の一具
体例を示す説明図である。まずS81において、前回描
画された台形の上底のy座標値を接続辺検出スキャンラ
インとする。さらにS82において、その台形の上底の
y座標値をey、下底のy座標値をsyとする。
【0068】次いでS83において、接続辺を検出する
ための開始スキャンラインデータをsyに設定し、以降
のS84〜S88の処理を繰り返す。S84において、
ey以上で、かつ、sy以下のスキャンラインにある辺
データを一つ取り出し、S85において上述の接続辺検
出スキャンラインとの交差判定を行う。交差判定結果を
S86で調べ、もし交差していれば、S87において、
その交点のx座標値を交点リストとして保存しておく。
ここで、交点リストは昇順または降順にソーティングさ
れている必要がある。
ための開始スキャンラインデータをsyに設定し、以降
のS84〜S88の処理を繰り返す。S84において、
ey以上で、かつ、sy以下のスキャンラインにある辺
データを一つ取り出し、S85において上述の接続辺検
出スキャンラインとの交差判定を行う。交差判定結果を
S86で調べ、もし交差していれば、S87において、
その交点のx座標値を交点リストとして保存しておく。
ここで、交点リストは昇順または降順にソーティングさ
れている必要がある。
【0069】そして、S88においてey以上で、か
つ、sy以下のスキャンラインが存在するか否かを判定
し、存在していればS84〜S87までの処理を繰り返
す。このようにして、ey以上で、かつ、sy以下のス
キャンラインにある辺データ全てについてS84〜S8
7の処理を行い、接続辺検出スキャンラインと交差する
辺データの交点リストを求める。
つ、sy以下のスキャンラインが存在するか否かを判定
し、存在していればS84〜S87までの処理を繰り返
す。このようにして、ey以上で、かつ、sy以下のス
キャンラインにある辺データ全てについてS84〜S8
7の処理を行い、接続辺検出スキャンラインと交差する
辺データの交点リストを求める。
【0070】求められた交点リストは、値が小さいほう
から2つずつ取り出すと、その点間は、接続辺検出スキ
ャンライン上の描画ピクセルと一致するから、その2点
間の線分と前述の台形の上底が重なるか否かをS89に
おいて判定する。判定条件は、台形の上底のx座標値を
xt1、xt2、線分のx座標値をxl1、xl2とした時、 (xl1≦xt1 and xl2≧xt1)or(xl1≧xt1
and xl1≦xt2) となる。
から2つずつ取り出すと、その点間は、接続辺検出スキ
ャンライン上の描画ピクセルと一致するから、その2点
間の線分と前述の台形の上底が重なるか否かをS89に
おいて判定する。判定条件は、台形の上底のx座標値を
xt1、xt2、線分のx座標値をxl1、xl2とした時、 (xl1≦xt1 and xl2≧xt1)or(xl1≧xt1
and xl1≦xt2) となる。
【0071】この条件が成立するか否かをS90で判定
し、条件が成立する辺データが存在するならば、S91
において、その辺データを描画辺データとする。もし存
在しないのであれば、図9では示していないが、上述の
条件(b)〜(d)に基づいて描画辺データを抽出する
ことになる。
し、条件が成立する辺データが存在するならば、S91
において、その辺データを描画辺データとする。もし存
在しないのであれば、図9では示していないが、上述の
条件(b)〜(d)に基づいて描画辺データを抽出する
ことになる。
【0072】具体的には、図10(A)に示すような、
辺11〜16、辺21〜26からなる2つの図形を描画
するものとし、既に左側の図形中にハッチングを施して
示した1つの台形が描画されているものとする。この場
合、上述した辺交差処理と、後述される描画処理によ
り、図10(B)に示すような辺テーブルリストが構築
されている。なお、後述の描画処理によって辺11につ
いてはスキャンラインL2によって分割され、残りのス
キャンラインL2〜L3の部分を辺11’として示して
いる。また、描画処理によって辺12は辺テーブルリス
トから削除されている。
辺11〜16、辺21〜26からなる2つの図形を描画
するものとし、既に左側の図形中にハッチングを施して
示した1つの台形が描画されているものとする。この場
合、上述した辺交差処理と、後述される描画処理によ
り、図10(B)に示すような辺テーブルリストが構築
されている。なお、後述の描画処理によって辺11につ
いてはスキャンラインL2によって分割され、残りのス
キャンラインL2〜L3の部分を辺11’として示して
いる。また、描画処理によって辺12は辺テーブルリス
トから削除されている。
【0073】ここで、上述した接続辺検出処理により、
L2が接続辺検出スキャンラインとなり、台形の上底と
下底から、L1からL2の範囲の辺21、22、1
1’、13、21、23が判定線分となる。そしてこれ
らの判定線分と接続辺検出スキャンラインL2との交差
判定が行われる。算出される交点1〜4は、図10
(C)に示すようにソーティングされたリスト構造とし
て一時的に保持される。
L2が接続辺検出スキャンラインとなり、台形の上底と
下底から、L1からL2の範囲の辺21、22、1
1’、13、21、23が判定線分となる。そしてこれ
らの判定線分と接続辺検出スキャンラインL2との交差
判定が行われる。算出される交点1〜4は、図10
(C)に示すようにソーティングされたリスト構造とし
て一時的に保持される。
【0074】この場合、上述の接続判定式(xl1≦xt1
and xl2≧xt1)or(xl1≧xt1 and x
l1≦xt2)に該当する辺として辺11’と辺13が求め
られるので、辺11’、13が接続辺として出力され
る。
and xl2≧xt1)or(xl1≧xt1 and x
l1≦xt2)に該当する辺として辺11’と辺13が求め
られるので、辺11’、13が接続辺として出力され
る。
【0075】なお、塗り潰される図形のパスは閉じてい
る必要があることから、上述の(a)〜(d)の順序に
従って辺データが取得される限り、同時に取得される辺
データの始点y座標値は等しい、という条件が必ず成立
する。
る必要があることから、上述の(a)〜(d)の順序に
従って辺データが取得される限り、同時に取得される辺
データの始点y座標値は等しい、という条件が必ず成立
する。
【0076】図11は、描画図形決定処理および台形描
画処理の一例を示すフローチャート、図12は、台形描
画の一具体例を示す説明図である。これらの処理は、図
2及び図3のS44〜48に対応する処理である。なお
図11には、上述の描画辺抽出処理についてもS101
に含めて図示している。S101において上述の図9に
示した接続辺検出処理を含む描画辺抽出処理により描画
辺データを取得すると、続いて、塗り潰し部23は、描
画図形決定処理を開始する。描画図形決定処理では、そ
の後に行う台形描画処理にて塗り潰す台形の形状を決定
する。詳しくは、描画辺抽出処理で得られた描画辺デー
タを基に、その描画辺データによって表される2本の辺
の始点y座標値を通過するスキャンラインを下底とし、
これら2本の辺を脚(斜辺)とする台形を求める。この
とき、台形の上底は、原則、これら2本の辺の終点のy
座標値のうち、小さいほうを通過するスキャンラインと
なる。
画処理の一例を示すフローチャート、図12は、台形描
画の一具体例を示す説明図である。これらの処理は、図
2及び図3のS44〜48に対応する処理である。なお
図11には、上述の描画辺抽出処理についてもS101
に含めて図示している。S101において上述の図9に
示した接続辺検出処理を含む描画辺抽出処理により描画
辺データを取得すると、続いて、塗り潰し部23は、描
画図形決定処理を開始する。描画図形決定処理では、そ
の後に行う台形描画処理にて塗り潰す台形の形状を決定
する。詳しくは、描画辺抽出処理で得られた描画辺デー
タを基に、その描画辺データによって表される2本の辺
の始点y座標値を通過するスキャンラインを下底とし、
これら2本の辺を脚(斜辺)とする台形を求める。この
とき、台形の上底は、原則、これら2本の辺の終点のy
座標値のうち、小さいほうを通過するスキャンラインと
なる。
【0077】ただし、例えば図12(A)に示す辺1、
2を描画辺データとして取得した場合について考えてみ
ると、単純に2つの辺1、2から台形の形状を決定する
と、終点のy座標値が小さい辺1の終点を通過するスキ
ャンラインL3が上底となり、図12(C)に示すよう
に、その後の台形描画処理にて不要な塗り潰し(図中の
クロスハッチング部分)が発生してしまう。これは、辺
1、2からなる描画辺データにより決定される台形が、
他の辺3、4に影響されるためである。
2を描画辺データとして取得した場合について考えてみ
ると、単純に2つの辺1、2から台形の形状を決定する
と、終点のy座標値が小さい辺1の終点を通過するスキ
ャンラインL3が上底となり、図12(C)に示すよう
に、その後の台形描画処理にて不要な塗り潰し(図中の
クロスハッチング部分)が発生してしまう。これは、辺
1、2からなる描画辺データにより決定される台形が、
他の辺3、4に影響されるためである。
【0078】そこで、塗り潰し部23では、描画図形決
定処理を行うにあたって、描画辺データに影響を与える
他の辺を考慮しつつ、台形の形状を決定する。したがっ
て、台形の上底は、描画辺データによって表される2本
の辺の終点y座標値と、これらの辺に影響する他の辺の
始点のy座標値または終点のy座標値との中で、最も小
さい個所を通過するスキャンラインとなる。つまり、塗
り潰し部23は、描画辺データとこれに影響する辺デー
タとに基づいて、例えば図12(D)にハッチングを施
して示すように、その後の台形描画処理にて塗り潰すべ
き台形を求める。なお、このとき、描画辺データは台形
の上底によって分割される可能性があるが、分割された
後は、これまでのデータと同様に辺テーブルに登録さ
れ、次の描画を待つものとする。
定処理を行うにあたって、描画辺データに影響を与える
他の辺を考慮しつつ、台形の形状を決定する。したがっ
て、台形の上底は、描画辺データによって表される2本
の辺の終点y座標値と、これらの辺に影響する他の辺の
始点のy座標値または終点のy座標値との中で、最も小
さい個所を通過するスキャンラインとなる。つまり、塗
り潰し部23は、描画辺データとこれに影響する辺デー
タとに基づいて、例えば図12(D)にハッチングを施
して示すように、その後の台形描画処理にて塗り潰すべ
き台形を求める。なお、このとき、描画辺データは台形
の上底によって分割される可能性があるが、分割された
後は、これまでのデータと同様に辺テーブルに登録さ
れ、次の描画を待つものとする。
【0079】以下、この描画図形決定処理の詳細な手順
を説明する。図11において、S101で描画辺抽出処
理により描画辺データを取得すると、続いて、塗り潰し
部23はS102において、その描画辺データから「s
y」と「ey」を求める。ここで、syは辺データの始
点のy座標値である。この値は、描画辺抽出処理におけ
る条件(a)〜(d)により、どちらの辺データから取
得されても等しい値となる。ところが、それぞれの描画
辺データにおける辺データの終点のy座標値は異なって
いる可能性がある。そのため、eyは両者の辺データに
おける終点のy座標値のうち小さい値を選択する。
を説明する。図11において、S101で描画辺抽出処
理により描画辺データを取得すると、続いて、塗り潰し
部23はS102において、その描画辺データから「s
y」と「ey」を求める。ここで、syは辺データの始
点のy座標値である。この値は、描画辺抽出処理におけ
る条件(a)〜(d)により、どちらの辺データから取
得されても等しい値となる。ところが、それぞれの描画
辺データにおける辺データの終点のy座標値は異なって
いる可能性がある。そのため、eyは両者の辺データに
おける終点のy座標値のうち小さい値を選択する。
【0080】そして、塗り潰し部23はS103におい
て、描画辺データによる台形描画に影響を与えうる辺デ
ータが存在するスキャンラインデータを取得する。ここ
で取得されるスキャンラインデータは、そのスキャンラ
インデータのスキャンライン値を「y」とすると、S1
02で求めたsyおよびeyとの間にsy<y<eyの
条件が成立するスキャンラインデータでなければならな
い。ここで取得したスキャンラインデータを、以下「検
索対象スキャンラインデータ」と称する。
て、描画辺データによる台形描画に影響を与えうる辺デ
ータが存在するスキャンラインデータを取得する。ここ
で取得されるスキャンラインデータは、そのスキャンラ
インデータのスキャンライン値を「y」とすると、S1
02で求めたsyおよびeyとの間にsy<y<eyの
条件が成立するスキャンラインデータでなければならな
い。ここで取得したスキャンラインデータを、以下「検
索対象スキャンラインデータ」と称する。
【0081】これらの処理を具体例で説明すると、例え
ば、図12(A)に示す辺1、2を描画辺データとして
取得した場合、syはL1、eyはL4となるので、L
1〜L4の間のスキャンラインデータが検索対象スキャ
ンラインデータとなる。この例の場合、辺データが存在
するスキャンラインデータがL2のみなので、検索対象
スキャンラインデータとなるのはL2のみである。
ば、図12(A)に示す辺1、2を描画辺データとして
取得した場合、syはL1、eyはL4となるので、L
1〜L4の間のスキャンラインデータが検索対象スキャ
ンラインデータとなる。この例の場合、辺データが存在
するスキャンラインデータがL2のみなので、検索対象
スキャンラインデータとなるのはL2のみである。
【0082】検索対象スキャンラインデータを取得する
と、続いて、塗り潰し部23はS104において、検索
対象スキャンラインデータからこれにリンクされている
辺データのリストを取り出す。ここで取得した辺データ
のリストを、以下「検索対象辺データリスト」と称す
る。また、検索対象辺データリストに含まれる辺データ
を、以下、「検索対象辺データ」と称する。
と、続いて、塗り潰し部23はS104において、検索
対象スキャンラインデータからこれにリンクされている
辺データのリストを取り出す。ここで取得した辺データ
のリストを、以下「検索対象辺データリスト」と称す
る。また、検索対象辺データリストに含まれる辺データ
を、以下、「検索対象辺データ」と称する。
【0083】この処理を具体例で説明すると、例えば図
12(A)に示す辺1、2を描画辺データとして取得し
た場合、検索対象スキャンラインデータとしてL2のス
キャンラインデータが選択されているから、これにリン
クする辺3、4についての辺データが検索対象辺データ
として選択されることになる。
12(A)に示す辺1、2を描画辺データとして取得し
た場合、検索対象スキャンラインデータとしてL2のス
キャンラインデータが選択されているから、これにリン
クする辺3、4についての辺データが検索対象辺データ
として選択されることになる。
【0084】検索対象辺データを選択したら、次いで塗
り潰し部23は、その検索対象辺データが、描画辺デー
タによる台形描画に影響を与えるか否かを判定する。こ
の判定にあたって、塗り潰し部23は、先ずS105に
おいて、複数存在する検索対象辺データの中で、検索対
象辺データの始点のy座標値上のスキャンラインと、描
画辺データが表す辺との交点よりも、始点のx座標値が
小さい検索対象辺データの数を、検索対象のスキャンラ
イン各々についてカウントして、その値を保存してお
く。これは、描画すべき台形の外側(特にx座標値の小
さい側)に検索対象辺データがいくつ存在するかを認識
するためのものである。このようなカウント値を検索対
象スキャンラインデータごとに取得し、その最大値を変
数M(max prev line count)に保
存しておく。
り潰し部23は、その検索対象辺データが、描画辺デー
タによる台形描画に影響を与えるか否かを判定する。こ
の判定にあたって、塗り潰し部23は、先ずS105に
おいて、複数存在する検索対象辺データの中で、検索対
象辺データの始点のy座標値上のスキャンラインと、描
画辺データが表す辺との交点よりも、始点のx座標値が
小さい検索対象辺データの数を、検索対象のスキャンラ
イン各々についてカウントして、その値を保存してお
く。これは、描画すべき台形の外側(特にx座標値の小
さい側)に検索対象辺データがいくつ存在するかを認識
するためのものである。このようなカウント値を検索対
象スキャンラインデータごとに取得し、その最大値を変
数M(max prev line count)に保
存しておく。
【0085】さらに、塗り潰し部23は、S106にお
いて描画辺データが構成する四角形または三角形の内側
に始点が位置する辺データを探し出す。詳しくは、検索
対象辺データの始点y座標値上のスキャンラインと、描
画辺データが表す辺との交点との間に、始点が位置する
検索対象辺データを探し出す。これは、描画すべき台形
の内側に、他の辺の始点が位置するか否かを認識するた
めのものである。
いて描画辺データが構成する四角形または三角形の内側
に始点が位置する辺データを探し出す。詳しくは、検索
対象辺データの始点y座標値上のスキャンラインと、描
画辺データが表す辺との交点との間に、始点が位置する
検索対象辺データを探し出す。これは、描画すべき台形
の内側に、他の辺の始点が位置するか否かを認識するた
めのものである。
【0086】この処理を具体例で説明すると、例えば図
12(E)に示すように、辺1、2で構成される台形の
描画判定を行う場合、スキャンラインデータL2と各辺
1、2との交点の間に辺3、4の始点が位置している
と、明らかに辺3、4が辺1、2で構成される台形描画
に影響を与えることが分かる。これに対し、例えば図1
2(F)に示すように、スキャンラインデータL2と各
辺1、2との交点の間に辺3、4の始点が位置していな
ければ、辺3、4の始点がスキャンラインデータL2上
にあっても、辺3、4が辺1、2で構成される台形描画
に影響を与えてしまうことはない。
12(E)に示すように、辺1、2で構成される台形の
描画判定を行う場合、スキャンラインデータL2と各辺
1、2との交点の間に辺3、4の始点が位置している
と、明らかに辺3、4が辺1、2で構成される台形描画
に影響を与えることが分かる。これに対し、例えば図1
2(F)に示すように、スキャンラインデータL2と各
辺1、2との交点の間に辺3、4の始点が位置していな
ければ、辺3、4の始点がスキャンラインデータL2上
にあっても、辺3、4が辺1、2で構成される台形描画
に影響を与えてしまうことはない。
【0087】S107において、描画辺データの間に始
点が位置する辺データが存在しているか否かを判定し、
存在すればS108において、塗り潰し部23は例外的
に検索対象辺データの始点y座標値が上底のy座標値と
なるように、台形の形状を決定する。
点が位置する辺データが存在しているか否かを判定し、
存在すればS108において、塗り潰し部23は例外的
に検索対象辺データの始点y座標値が上底のy座標値と
なるように、台形の形状を決定する。
【0088】具体的には、図12(D)に示すように、
辺1、2が描画辺データであるとき、辺3、4が存在す
るので、辺3、4の始点y座標値を台形の上底とする。
すなわち、塗り潰し部は、スキャンラインL1が下底、
スキャンラインL2が上底、辺1、2の一部が脚となる
ように、台形の形状を決定する。したがって、単純に2
つの辺1、2から台形の形状を決定する図12(C)の
場合のように、その後の台形描画処理にて不要な塗り潰
しが発生してしまうことがない。
辺1、2が描画辺データであるとき、辺3、4が存在す
るので、辺3、4の始点y座標値を台形の上底とする。
すなわち、塗り潰し部は、スキャンラインL1が下底、
スキャンラインL2が上底、辺1、2の一部が脚となる
ように、台形の形状を決定する。したがって、単純に2
つの辺1、2から台形の形状を決定する図12(C)の
場合のように、その後の台形描画処理にて不要な塗り潰
しが発生してしまうことがない。
【0089】また、S107で描画辺データの間に始点
が位置する辺データは存在しないと判定された場合に
は、さらにS109において、S105で変数Mに格納
しておいた始点のx座標値の小さい検索対象辺データの
カウント数の最大値が奇数であるか否かを判定する。奇
数であればS110において、塗り潰し部23は例外的
に検索対象スキャンラインのスキャンラインy座標値が
上底のy座標値となるように台形の形状を決定する。
が位置する辺データは存在しないと判定された場合に
は、さらにS109において、S105で変数Mに格納
しておいた始点のx座標値の小さい検索対象辺データの
カウント数の最大値が奇数であるか否かを判定する。奇
数であればS110において、塗り潰し部23は例外的
に検索対象スキャンラインのスキャンラインy座標値が
上底のy座標値となるように台形の形状を決定する。
【0090】この処理を具体例で説明する。図13は、
水平線で交差するパスが存在する場合の台形分割の一例
を示す説明図である。例えば図13(A)に示すよう
に、辺1、2が描画辺データであるとき、スキャンライ
ンL2と辺1との交点よりも始点x座標値の小さい辺の
数が辺3のみの1本であれば、辺3が存在する検索対象
スキャンラインデータのスキャンライン値はL2である
から、L1が下底、L2が上底、辺1、2が脚となるよ
うに台形の形状を決定する。したがって、単純に2つの
辺1、2から台形の形状を決定する場合のように、その
後の台形描画処理にて不要な塗り潰し(図中のクロスハ
ッチング部分)が発生してしまうことがない。
水平線で交差するパスが存在する場合の台形分割の一例
を示す説明図である。例えば図13(A)に示すよう
に、辺1、2が描画辺データであるとき、スキャンライ
ンL2と辺1との交点よりも始点x座標値の小さい辺の
数が辺3のみの1本であれば、辺3が存在する検索対象
スキャンラインデータのスキャンライン値はL2である
から、L1が下底、L2が上底、辺1、2が脚となるよ
うに台形の形状を決定する。したがって、単純に2つの
辺1、2から台形の形状を決定する場合のように、その
後の台形描画処理にて不要な塗り潰し(図中のクロスハ
ッチング部分)が発生してしまうことがない。
【0091】このように、始点のx座標値が小さい辺デ
ータの数を基にするのは、交差している辺の片側が水平
線の場合の塗り潰し台形の判定を行うためである。通
常、水平線は塗り潰しに影響されないため、図13
(B)に示すように水平線の辺5〜7は辺テーブルリス
トに登録されない。そのため、図13(A)にクロスハ
ッチングを施して示すように、水平線で交差しているパ
スにおける辺1、2で生成される台形の描画の場合、不
正な描画が発生してしまう可能性がある。そこで、描画
される辺データよりも、始点x座標値が小さい辺データ
の数をカウントし(図中の辺3)、その数が奇数の場合
には、その辺が所属するスキャンラインデータが、描画
される台形の上底とするようにする。この判定条件によ
り、水平線を含む図形でも適切な台形描画が可能とな
る。
ータの数を基にするのは、交差している辺の片側が水平
線の場合の塗り潰し台形の判定を行うためである。通
常、水平線は塗り潰しに影響されないため、図13
(B)に示すように水平線の辺5〜7は辺テーブルリス
トに登録されない。そのため、図13(A)にクロスハ
ッチングを施して示すように、水平線で交差しているパ
スにおける辺1、2で生成される台形の描画の場合、不
正な描画が発生してしまう可能性がある。そこで、描画
される辺データよりも、始点x座標値が小さい辺データ
の数をカウントし(図中の辺3)、その数が奇数の場合
には、その辺が所属するスキャンラインデータが、描画
される台形の上底とするようにする。この判定条件によ
り、水平線を含む図形でも適切な台形描画が可能とな
る。
【0092】S107の判定で描画辺データの間に始点
が位置する辺データが存在しておらず、S109で変数
Mが偶数であると判定された場合には、塗り潰し部23
はS111において、検索対象スキャンラインデータの
更新を行う。すなわち、注目しているスキャンラインデ
ータの上側(y座標値の大きい側)のスキャンラインデ
ータに検索対象を変更するように更新を行う。そしてS
112において、全ての検索対象スキャンラインデータ
について判定が終了したか否かを判定し、検索対象スキ
ャンラインデータを選択可能であればS103へ戻って
処理を繰り返す。そして、全ての検索対象スキャンライ
ンデータについての判定を終えたら、台形描画処理に移
る。
が位置する辺データが存在しておらず、S109で変数
Mが偶数であると判定された場合には、塗り潰し部23
はS111において、検索対象スキャンラインデータの
更新を行う。すなわち、注目しているスキャンラインデ
ータの上側(y座標値の大きい側)のスキャンラインデ
ータに検索対象を変更するように更新を行う。そしてS
112において、全ての検索対象スキャンラインデータ
について判定が終了したか否かを判定し、検索対象スキ
ャンラインデータを選択可能であればS103へ戻って
処理を繰り返す。そして、全ての検索対象スキャンライ
ンデータについての判定を終えたら、台形描画処理に移
る。
【0093】なお、描画辺データによる台形描画に影響
を与える辺データが辺テーブルリスト中に存在していな
ければ、塗り潰し部23は、原則通り、描画辺データの
始点y座標値が下底、描画辺データの終点y座標値のう
ち小さいほうのy座標値が上底y座標値となるように、
台形の形状を決定する。
を与える辺データが辺テーブルリスト中に存在していな
ければ、塗り潰し部23は、原則通り、描画辺データの
始点y座標値が下底、描画辺データの終点y座標値のう
ち小さいほうのy座標値が上底y座標値となるように、
台形の形状を決定する。
【0094】このようにして、塗り潰し部23が台形の
形状を決定したら、続いてS113において、台形描画
部24は台形描画処理を開始する。台形描画処理では、
描画図形決定処理によって描画が確定した台形の内部領
域の塗り潰しを行う。このようにして塗り潰し処理を行
って描画された台形は、図2に示したように図形圧縮部
25による描画図形圧縮処理によって圧縮され、圧縮ペ
ージバッファ32に格納されることになる。このとき、
それぞれの圧縮された台形を特定する中間データが文字
やラスタ画像などの中間データとともに格納される。こ
のときの中間データはページ中の1つ前の描画データ、
ここでは1つ前の台形に対する相対座標によって記述す
ることができる。この相対座標は2図形が近いほどビッ
ト幅の短いフォーマットのデータを利用可能である。従
って、上述のように近接する台形を優先して描画するこ
とによって、より短いビット幅のフォーマットを利用し
て記述することができ、データ量を削減することができ
る。
形状を決定したら、続いてS113において、台形描画
部24は台形描画処理を開始する。台形描画処理では、
描画図形決定処理によって描画が確定した台形の内部領
域の塗り潰しを行う。このようにして塗り潰し処理を行
って描画された台形は、図2に示したように図形圧縮部
25による描画図形圧縮処理によって圧縮され、圧縮ペ
ージバッファ32に格納されることになる。このとき、
それぞれの圧縮された台形を特定する中間データが文字
やラスタ画像などの中間データとともに格納される。こ
のときの中間データはページ中の1つ前の描画データ、
ここでは1つ前の台形に対する相対座標によって記述す
ることができる。この相対座標は2図形が近いほどビッ
ト幅の短いフォーマットのデータを利用可能である。従
って、上述のように近接する台形を優先して描画するこ
とによって、より短いビット幅のフォーマットを利用し
て記述することができ、データ量を削減することができ
る。
【0095】そして、以上のようなS101〜S113
の処理を辺テーブルリスト中の全ての辺データについて
行ったか否かをS114において判定し、未処理の辺デ
ータが残っていればS101へ戻って処理を繰り返す。
全ての辺データについて終了したら、描画辺抽出処理、
描画図形決定処理および台形描画処理からなる台形生成
&描画処理を終了する。なお、この処理の過程におい
て、描画された台形の上底で描画辺データは分割される
ことがある。この場合には、再び辺テーブルリストに登
録されて描画処理が繰り返されることになる。
の処理を辺テーブルリスト中の全ての辺データについて
行ったか否かをS114において判定し、未処理の辺デ
ータが残っていればS101へ戻って処理を繰り返す。
全ての辺データについて終了したら、描画辺抽出処理、
描画図形決定処理および台形描画処理からなる台形生成
&描画処理を終了する。なお、この処理の過程におい
て、描画された台形の上底で描画辺データは分割される
ことがある。この場合には、再び辺テーブルリストに登
録されて描画処理が繰り返されることになる。
【0096】以上のように、本発明の画像処理装置およ
びその画像処理装置が実施する画像処理方法の実施の形
態によれば、図形の内部領域を塗り潰すのにあたって、
描画辺データの間に他の辺データの始点が位置している
か、および描画辺データの外側領域に検索対象辺データ
がいくつ(偶数か奇数か)存在しているかの判定結果に
応じて、当該描画辺データの間に位置する領域の範囲、
すなわち当該描画辺データが構成する台形の形状を可変
させるので、不必要な領域分割を抑えることができる。
従って、図形の内部領域の塗り潰しを行うのに最適な台
形分割を行うことができる。例えば、上述の図15に示
すような星型と矩形の図形を一度に描画する場合であっ
ても、図16に示すような、より好ましい台形分割を行
うことができるようになる。
びその画像処理装置が実施する画像処理方法の実施の形
態によれば、図形の内部領域を塗り潰すのにあたって、
描画辺データの間に他の辺データの始点が位置している
か、および描画辺データの外側領域に検索対象辺データ
がいくつ(偶数か奇数か)存在しているかの判定結果に
応じて、当該描画辺データの間に位置する領域の範囲、
すなわち当該描画辺データが構成する台形の形状を可変
させるので、不必要な領域分割を抑えることができる。
従って、図形の内部領域の塗り潰しを行うのに最適な台
形分割を行うことができる。例えば、上述の図15に示
すような星型と矩形の図形を一度に描画する場合であっ
ても、図16に示すような、より好ましい台形分割を行
うことができるようになる。
【0097】また、描画の際に、既に描画されている台
形に接続する辺データを優先的に抽出することが可能と
なるため、ページ圧縮を行う際の図形の位置情報をより
データ量の少ない形式で記述することができ、全体とし
てデータ量の削減を図ることができる。例えば、上述の
図10(A)に示すように2つの図形が離れて描画され
る場合、同じ図形中の接している台形を順番に描画する
ことが可能となるため、データ量の削減を図ることがで
きる。
形に接続する辺データを優先的に抽出することが可能と
なるため、ページ圧縮を行う際の図形の位置情報をより
データ量の少ない形式で記述することができ、全体とし
てデータ量の削減を図ることができる。例えば、上述の
図10(A)に示すように2つの図形が離れて描画され
る場合、同じ図形中の接している台形を順番に描画する
ことが可能となるため、データ量の削減を図ることがで
きる。
【0098】したがって、本発明の画像処理装置および
画像処理方法の実施の一形態によれば、図形の内部領域
の塗り潰しを行う場合であっても、不必要な台形の分割
を抑え、より好ましい台形分割を行うことができるの
で、従来のような処理速度の低下や使用メモリ量の増大
などを招いてしまうことなく、その塗り潰し処理を始め
とした図形描画処理を行うことができるようになる。
画像処理方法の実施の一形態によれば、図形の内部領域
の塗り潰しを行う場合であっても、不必要な台形の分割
を抑え、より好ましい台形分割を行うことができるの
で、従来のような処理速度の低下や使用メモリ量の増大
などを招いてしまうことなく、その塗り潰し処理を始め
とした図形描画処理を行うことができるようになる。
【0099】また、本発明の画像処理装置および画像処
理方法の実施の一形態によれば、描画すべき図形に曲線
状の辺がある場合に、その辺を直線状の辺の集合に近似
変換した後に、これをツリー構造データ保持部内の辺テ
ーブルリストに登録するようになっている。したがっ
て、直線状の辺により構成された図形のみならず、曲線
状の辺を含む図形であっても、その塗り潰し処理を始め
とした図形描画処理を行う際に、理想的な台形分割を行
えるようになる。
理方法の実施の一形態によれば、描画すべき図形に曲線
状の辺がある場合に、その辺を直線状の辺の集合に近似
変換した後に、これをツリー構造データ保持部内の辺テ
ーブルリストに登録するようになっている。したがっ
て、直線状の辺により構成された図形のみならず、曲線
状の辺を含む図形であっても、その塗り潰し処理を始め
とした図形描画処理を行う際に、理想的な台形分割を行
えるようになる。
【0100】さらに、本発明の画像処理装置および画像
処理方法の実施の一形態によれば、既に描画されている
台形に近接する台形から描画してゆくので、描画した台
形図形を圧縮して保存する際にも少ないデータ量で保存
することが可能になり、処理速度の向上及び使用メモリ
量の低減を図ることができる。
処理方法の実施の一形態によれば、既に描画されている
台形に近接する台形から描画してゆくので、描画した台
形図形を圧縮して保存する際にも少ないデータ量で保存
することが可能になり、処理速度の向上及び使用メモリ
量の低減を図ることができる。
【0101】なお、本発明の画像処理装置および画像処
理方法の実施の一形態では、描画辺データの取得を始め
とした各処理を、X軸方向、Y軸方向ともに、座標値の
小さいほうから順に行う場合を例に挙げて説明したが、
本発明はこれに限定されるものではなく、座標値の大き
いほうから順に行うようにしてもかまわない。ただし、
この場合には、台形描画に影響を与える辺を、描画すべ
き台形の内側に他の辺の終点が位置するか否か、並び
に、描画すべき台形よりもx座標値の大きい側にいくつ
の辺が存在するか、に基づいて探し出すことになる。
理方法の実施の一形態では、描画辺データの取得を始め
とした各処理を、X軸方向、Y軸方向ともに、座標値の
小さいほうから順に行う場合を例に挙げて説明したが、
本発明はこれに限定されるものではなく、座標値の大き
いほうから順に行うようにしてもかまわない。ただし、
この場合には、台形描画に影響を与える辺を、描画すべ
き台形の内側に他の辺の終点が位置するか否か、並び
に、描画すべき台形よりもx座標値の大きい側にいくつ
の辺が存在するか、に基づいて探し出すことになる。
【0102】また、上述の説明では、本発明の画像処理
装置および画像処理方法をドキュメントの印刷出力を行
うプリンタ装置に搭載された画像処理装置およびその画
像処理装置が実行する画像処理方法に適用した場合を例
に挙げて説明したが、本発明はこれに限定されるもので
はない。すなわち、図形の描画命令を受け取って、その
図形の内側領域の塗り潰し処理を行うものであれば、他
の種々の装置に適用可能である。他の装置としては、図
形をディスプレイ表示するために描画するアプリケーシ
ョンプログラムあるいは表示装置等が挙げられる。
装置および画像処理方法をドキュメントの印刷出力を行
うプリンタ装置に搭載された画像処理装置およびその画
像処理装置が実行する画像処理方法に適用した場合を例
に挙げて説明したが、本発明はこれに限定されるもので
はない。すなわち、図形の描画命令を受け取って、その
図形の内側領域の塗り潰し処理を行うものであれば、他
の種々の装置に適用可能である。他の装置としては、図
形をディスプレイ表示するために描画するアプリケーシ
ョンプログラムあるいは表示装置等が挙げられる。
【0103】
【発明の効果】以上の説明から明らかなように、本発明
によれば、任意の多角形からなる複数の図形を一度に描
画する場合であっても、その図形の内部領域を1つ以上
の台形に分割して塗り潰すのにあたって、不必要な領域
分割を抑え、最適な台形分割を行うことができる。さら
に、近接する台形を優先して描画し、圧縮して保存する
ので、保存の際のデータ量を削減することが可能であ
る。したがって、従来のように処理速度の低下や使用メ
モリ量の増大等を招いてしまうことがなく、高速で、か
つ、少ない使用メモリ量で、その塗り潰し処理を始めと
した図形描画処理を行うことができるという効果があ
る。
によれば、任意の多角形からなる複数の図形を一度に描
画する場合であっても、その図形の内部領域を1つ以上
の台形に分割して塗り潰すのにあたって、不必要な領域
分割を抑え、最適な台形分割を行うことができる。さら
に、近接する台形を優先して描画し、圧縮して保存する
ので、保存の際のデータ量を削減することが可能であ
る。したがって、従来のように処理速度の低下や使用メ
モリ量の増大等を招いてしまうことがなく、高速で、か
つ、少ない使用メモリ量で、その塗り潰し処理を始めと
した図形描画処理を行うことができるという効果があ
る。
【図1】 本発明の画像処理装置及び画像処理方法の実
施の一形態を含む描画装置の一構成例を示すブロック図
である。
施の一形態を含む描画装置の一構成例を示すブロック図
である。
【図2】 本発明の画像処理装置における全体の処理動
作及び画像処理方法の一例を示すデータフロー図であ
る。
作及び画像処理方法の一例を示すデータフロー図であ
る。
【図3】 本発明の画像処理装置における全体の処理動
作及び画像処理方法の一例を示すフローチャートであ
る。
作及び画像処理方法の一例を示すフローチャートであ
る。
【図4】 辺テーブルリスト生成処理の一例を示すフロ
ーチャートである。
ーチャートである。
【図5】 辺テーブルリストを生成する際に用いられる
データ構造の一例を示す説明図である。
データ構造の一例を示す説明図である。
【図6】 辺テーブルリストの生成結果の一例を示す説
明図である。
明図である。
【図7】 辺交差処理の一例を示すフローチャートであ
る。
る。
【図8】 辺交差処理後における辺テーブルリストの一
例を示す説明図である。
例を示す説明図である。
【図9】 接続辺検出処理の一例を示すフローチャート
である。
である。
【図10】 接続辺検出処理の一具体例を示す説明図で
ある。
ある。
【図11】 描画図形決定処理および台形描画処理の一
例を示すフローチャートである。
例を示すフローチャートである。
【図12】 台形描画の一具体例を示す説明図である。
【図13】 水平線で交差するパスが存在する場合の台
形分割の一例を示す説明図である。
形分割の一例を示す説明図である。
【図14】 オーダードエッジ・アルゴリズムによる図
形描画の一例の説明図である。
形描画の一例の説明図である。
【図15】 従来の台形分割による描画方式の一例の説
明図である。
明図である。
【図16】 図15に示す図形のより好ましい台形分割
の一例の説明図である。
の一例の説明図である。
【図17】 台形分割した図形の描画順の説明図であ
る。
る。
1…画像処理装置、2…ネットワーク、3…プリンタエ
ンジン、11…入力インタフェース、12…CPU、1
3…ROM、14…RAM、15…プリンタエンジンイ
ンタフェース、16…内部バス、21…ツリー構造変換
部、22…パス交差処理部、23…塗り潰し部、24…
台形描画部、25…図形圧縮部、26…図形展開部、3
1…ツリー構造データ保持部、32…圧縮ページバッフ
ァ。
ンジン、11…入力インタフェース、12…CPU、1
3…ROM、14…RAM、15…プリンタエンジンイ
ンタフェース、16…内部バス、21…ツリー構造変換
部、22…パス交差処理部、23…塗り潰し部、24…
台形描画部、25…図形圧縮部、26…図形展開部、3
1…ツリー構造データ保持部、32…圧縮ページバッフ
ァ。
Claims (8)
- 【請求項1】 複数のパスからなる図形の内側領域を塗
り潰すための画像処理装置であって、前記図形を構成す
る複数のパスを当該図形が描かれるXY座標系のX軸方
向及びY軸方向にソートしたツリー構造で表すとともに
前記複数のパスの中で互いに交差するパスがあれば当該
交差するパスをその交点で分割してその分割後のパスを
前記ツリー構造で表すデータに変換するデータ変換手段
と、前記ツリー構造で表されるパス群の中から所定規則
に従って2つずつパスを抽出するパス抽出手段と、該パ
ス抽出手段で抽出した2つのパスの間に他のパスの始点
または終点の少なくとも一方が位置しているか否かに応
じて当該2つのパスの間に位置する領域の描画範囲を可
変させて当該パスの間に位置する領域を順次塗り潰す領
域塗り潰し手段と、前記塗り潰した図形を圧縮して保存
する図形圧縮手段を備え、前記パス抽出手段は、既に描
画された図形に接するパスを優先的に抽出することを特
徴とする画像処理装置。 - 【請求項2】 複数のパスからなる図形の内側領域を塗
り潰すための画像処理装置であって、前記図形を構成す
る複数のパスを当該図形が描かれるXY座標系のX軸方
向及びY軸方向にソートしたツリー構造で表すとともに
前記複数のパスの中で互いに交差するパスがあれば当該
交差するパスをその交点で分割してその分割後のパスを
前記ツリー構造で表すデータに変換するデータ変換手段
と、前記ツリー構造で表されるパス群の中から所定規則
に従って2つずつパスを抽出するパス抽出手段と、該パ
ス抽出手段で抽出した2つのパスの外側領域に他のパス
が偶数本存在しているか否かに応じて当該2つのパスの
間に位置する領域の描画範囲を可変させて当該パスの間
に位置する領域を順次塗り潰す領域塗り潰し手段と、前
記塗り潰した図形を圧縮して保存する図形圧縮手段を備
え、前記パス抽出手段は、既に描画された図形に接する
パスを優先的に抽出することを特徴とする画像処理装
置。 - 【請求項3】 複数のパスからなる図形の内側領域を塗
り潰すための画像処理装置であって、前記図形を構成す
る複数のパスを当該図形が描かれるXY座標系のX軸方
向及びY軸方向にソートしたツリー構造で表すとともに
前記複数のパスの中で互いに交差するパスがあれば当該
交差するパスをその交点で分割してその分割後のパスを
前記ツリー構造で表すデータに変換するデータ変換手段
と、前記ツリー構造で表されるパス群の中から所定規則
に従って2つずつパスを抽出するパス抽出手段と、該パ
ス抽出手段で抽出した2つのパスの間に他のパスの始点
または終点の少なくとも一方が位置しているか否かを判
断しかつ当該2つのパスの外側領域に他のパスが偶数本
存在しているか否かを判断しこれらの判断結果に応じて
当該2つのパスの間に位置する領域の描画範囲を可変さ
せて当該パスの間に位置する領域を順次塗り潰す領域塗
り潰し手段と、前記塗り潰した図形を圧縮して保存する
図形圧縮手段を備え、前記パス抽出手段は、既に描画さ
れた図形に接するパスを優先的に抽出することを特徴と
する画像処理装置。 - 【請求項4】 前記パスが曲線状である場合に当該パス
を直線状のパスの集合に近似変換した後に前記データ変
換手段に前記ツリー構造で表させる直線近似手段を備え
ることを特徴とする請求項1ないし請求項3のいずれか
1項に記載の画像処理装置。 - 【請求項5】 複数のパスからなる図形の内側領域を塗
り潰すための画像処理方法において、前記図形を構成す
る複数のパスを当該図形が描かれるXY座標系のX軸方
向及びY軸方向にソートしたツリー構造で表すととも
に、前記複数のパスの中で互いに交差するパスがあれば
当該交差するパスをその交点で分割してその分割後のパ
スを前記ツリー構造で表すデータに変換し、前記ツリー
構造で表されるパス群の中から所定規則に従って2つず
つパスを抽出し、抽出した2つのパスの間に他のパスの
始点または終点の少なくとも一方が位置しているか否か
に応じて当該2つのパスの間に位置する領域の描画範囲
を可変させて当該パスの間に位置する領域を順次塗り潰
し、塗り潰した図形を圧縮して保存するものであって、
前記パスの抽出の際に、既に描画された図形に接するパ
スを優先的に抽出することを特徴とする画像処理方法。 - 【請求項6】 複数のパスからなる図形の内側領域を塗
り潰すための画像処理方法において、前記図形を構成す
る複数のパスを当該図形が描かれるXY座標系のX軸方
向及びY軸方向にソートしたツリー構造で表すととも
に、前記複数のパスの中で互いに交差するパスがあれば
当該交差するパスをその交点で分割してその分割後のパ
スを前記ツリー構造で表すデータに変換し、前記ツリー
構造で表されるパス群の中から所定規則に従って2つず
つパスを抽出し、抽出した2つのパスの外側領域に他の
パスが偶数本存在しているか否かに応じて当該2つのパ
スの間に位置する領域の描画範囲を可変させて当該パス
の間に位置する領域を順次塗り潰し、塗り潰した図形を
圧縮して保存するものであって、前記パスの抽出の際
に、既に描画された図形に接するパスを優先的に抽出す
ることを特徴とする画像処理方法。 - 【請求項7】 複数のパスからなる図形の内側領域を塗
り潰すための画像処理方法において、前記図形を構成す
る複数のパスを当該図形が描かれるXY座標系のX軸方
向及びY軸方向にソートしたツリー構造で表すととも
に、前記複数のパスの中で互いに交差するパスがあれば
当該交差するパスをその交点で分割してその分割後のパ
スを前記ツリー構造で表すデータに変換し、前記ツリー
構造で表されるパス群の中から所定規則に従って2つず
つパスを抽出し、抽出した2つのパスの間に他のパスの
始点または終点の少なくとも一方が位置しているか否か
を判断し、かつ、当該2つのパスの外側領域に他のパス
が偶数本存在しているか否かを判断し、これらの判断結
果に応じて当該2つのパスの間に位置する領域の描画範
囲を可変させて当該パスの間に位置する領域を順次塗り
潰し、塗り潰した図形を圧縮して保存するものであっ
て、前記パスの抽出の際に、既に描画された図形に接す
るパスを優先的に抽出することを特徴とする画像処理方
法。 - 【請求項8】 前記パスが曲線状である場合に当該パス
を直線状のパスの集合に近似変換した後に、前記ツリー
構造で表すデータに変換することを特徴とする請求項5
ないし請求項7のいずれか1項に記載の画像処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000320424A JP2002133431A (ja) | 2000-10-20 | 2000-10-20 | 画像処理装置及び画像処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000320424A JP2002133431A (ja) | 2000-10-20 | 2000-10-20 | 画像処理装置及び画像処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002133431A true JP2002133431A (ja) | 2002-05-10 |
Family
ID=18798709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000320424A Pending JP2002133431A (ja) | 2000-10-20 | 2000-10-20 | 画像処理装置及び画像処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2002133431A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012099097A (ja) * | 2010-10-25 | 2012-05-24 | Konica Minolta Laboratory Usa Inc | オブジェクトの周囲にテキストをレイアウトする際のパスフィルアルゴリズムの適用 |
US10366532B2 (en) | 2016-04-06 | 2019-07-30 | Samsung Electronics Co., Ltd. | Method and apparatus for performing path rendering |
-
2000
- 2000-10-20 JP JP2000320424A patent/JP2002133431A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012099097A (ja) * | 2010-10-25 | 2012-05-24 | Konica Minolta Laboratory Usa Inc | オブジェクトの周囲にテキストをレイアウトする際のパスフィルアルゴリズムの適用 |
US10366532B2 (en) | 2016-04-06 | 2019-07-30 | Samsung Electronics Co., Ltd. | Method and apparatus for performing path rendering |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105528614B (zh) | 一种漫画图像版面的识别方法和自动识别系统 | |
US6466229B1 (en) | Graphics processing apparatus and graphics processing method | |
JP2608571B2 (ja) | 入力走査画像データのベクトル化のための装置及び方法 | |
US8212815B2 (en) | Drawing apparatus, drawing program, and drawing method | |
US20120250048A1 (en) | Image processing apparatus and image processing method | |
US8723884B2 (en) | Scan converting a set of vector edges to a set of pixel aligned edges | |
JP3223617B2 (ja) | 描画装置及び描画方法 | |
JP2002099911A (ja) | ラスタ像のベクトル化のコンピュータ自動化による方法 | |
JP2002133431A (ja) | 画像処理装置及び画像処理方法 | |
US7336825B2 (en) | Segmenting a composite image via minimum areas | |
JP2006011967A (ja) | 文字認識装置、文字認識プログラム | |
JP3852218B2 (ja) | 画像処理方法および画像処理装置 | |
JP2701003B2 (ja) | ソリッドモデル合成装置及びソリッドモデル合成方法 | |
JP2007182064A (ja) | 画像処理装置、及び画像処理方法 | |
JP2004282701A5 (ja) | ||
JP3336800B2 (ja) | 画像処理装置 | |
JP2003162728A (ja) | 画像処理装置及び画像出力装置 | |
JP3536894B2 (ja) | 図形処理装置 | |
JP2000099750A (ja) | 画像処理装置及び画像処理方法 | |
JP2001307115A (ja) | 画像処理装置および画像処理方法 | |
JP2000222449A (ja) | 図形処理方法 | |
JP3452049B2 (ja) | 描画装置及び描画方法 | |
JP3843794B2 (ja) | 図形処理装置 | |
JPH1185428A (ja) | 画像形成方法及び画像形成装置 | |
JP2018032277A (ja) | 矩形メッシュ生成方法 |