JP2000099750A - 画像処理装置及び画像処理方法 - Google Patents

画像処理装置及び画像処理方法

Info

Publication number
JP2000099750A
JP2000099750A JP27078998A JP27078998A JP2000099750A JP 2000099750 A JP2000099750 A JP 2000099750A JP 27078998 A JP27078998 A JP 27078998A JP 27078998 A JP27078998 A JP 27078998A JP 2000099750 A JP2000099750 A JP 2000099750A
Authority
JP
Japan
Prior art keywords
vector
data
outline
image processing
generated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP27078998A
Other languages
English (en)
Inventor
Antuan Tin
アントゥアン ティン
Satoshi Kubota
聡 久保田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP27078998A priority Critical patent/JP2000099750A/ja
Publication of JP2000099750A publication Critical patent/JP2000099750A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)

Abstract

(57)【要約】 【課題】 中間コードのデータ量を削減し、中間コード
からビットマップ展開するまでの処理全体を高速化した
画像処理方式を提供する。 【解決手段】 太さ情報を有するベクタ・データを基
に、各ベクタ・データ同士の重なりを排除した形態でア
ウトライン・ベクタを生成し、且つ、このアウトライン
・ベクタをディスプレイ・リストに変換することで、中
間データ量の増大を抑えることができる。また、ページ
記述言語で記述された複雑な描画オブジェクトを高速に
ビットマップ展開することができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、描画データをビッ
トマップ展開し、ラスタ走査して画像を出力するタイプ
の画像処理装置及び画像処理方法に係り、特に、所定の
描画命令で記述された描画データを一旦中間コードに変
換して、中間コードをビットマップ展開するタイプの画
像処理装置及び画像処理方法に関する。
【0002】更に詳しくは、本発明は、ストロークを構
成するベクタ・データをビットマップ展開して画像出力
する際に、中間コードのデータ量を削減し、中間コード
からビットマップ展開するまでの処理全体を高速化する
画像処理装置及び画像処理方法に係り、特に、太さ情報
を有するベクタ・データをビットマップ展開する際に、
中間コードのデータ量を削減し、処理を高速化する画像
処理装置及び画像処理方法に関する。
【0003】
【従来の技術】昨今の技術革新に伴い、ワークステーシ
ョンやパーソナル・コンピュータなど各種コンピュータ
・システムが開発され、企業や各研究機関のオフィスに
広範に普及してきている。コンピュータ・システムは、
例えば、ワープロ、スプレッドシート、データベースな
どのようなビジネス・アプリケーションを導入すること
で、強力なビジネス・ツールとして稼動する。
【0004】とりわけ、ドキュメンテーションが最重要
視される現代社会において、個人的出版や企業内印刷の
目的で、DTP(Desk Top Publishi
ng)や、小型・高速のページ・プリンタなどの画像処
理装置がオフィス内に深く浸透してきている。
【0005】最近の画像処理装置は、ラスタ、図形、文
字などの各描画データを同様に取扱い、図形や文字など
の拡大・縮小、回転、変形などを自在に制御可能な記述
言語を扱うことができる。この種の記述言語の代表例と
して、PostScript(Adobe Syste
ms社の商標)、Interpress(Xerox社
の商標)、Acrobat(Adobe System
s社の商標)、GDI(Graphic Device
Interface:Microsoft社の商標)
などが知られている。例えばPostScriptで代
表されるページ記述言語(PDL:Page Desc
ription Language)は、複雑なドキュ
メントを、直線や円弧、曲線などのベクタ・データの集
合体として表すことを許容する。
【0006】記述言語で作成された描画データは、一般
に、ページ内のラスタ、図形、文字などを表現する各描
画命令が、ページ内の位置とは無関係に任意の順で並ん
で構成されている。描画データをディスプレイやページ
・プリンタなどに画像出力するためには、ベクタ・デー
タで構成された描画データをラスタ形式でビットマップ
展開しなければならない。「ビットマップ展開」とは、
描画データが表す画像情報を各ドット(画素)に分解し
て2次元マトリックスとして表現することを言う。ペー
ジ又はページの一部を横切る一連のドット列は、ラスタ
走査線に相当する。ラスタ走査線をページの上から下に
向かって順次発生させることによってページの画像が形
成される(周知)。
【0007】記述言語で記述される描画命令は、一般
に、指定した領域内を塗り潰す「塗り潰し描画」命令
と、線を描画する「ストローク描画」命令とに2分され
る。描画するストロークは、直線又は曲線である。曲線
的なストロークを描画する場合、曲線は、複数の比較的
短い直線ベクタを用いて肉眼では検知できない程度に近
似される。
【0008】また、ストローク描画の中には、太さ情報
を有するベクタ・データをビットマップ展開する命令が
ある。このような描画命令は、通常、ベクタ・データの
接続点や端点の形状などのパラメータに従ってビットマ
ップ展開を実行するようになっている。
【0009】特開昭64−37677号公報には、太さ
情報を有するベクタ・データをビットマップ展開する方
法の一例が開示されている。同公報に記載のビットマッ
プ展開方法は、要言すれば、与えられたベクタ・データ
の方向と直交する方向に太さ分だけベクタをずらすこと
で太さを有する線を描画する、というものである。
【0010】しかしながら、単にベクタ・データをずら
して太くしただけでは、各ベクタに対応する矩形領域同
士が折れ曲がって接し合うだけであり、各ベクタ間の接
続点において隙間が生じてしまう。そこで、特開昭64
−37677号公報に係る発明では、ベクタの両端点に
おいて線幅を直径とした円データを作成し、その円の内
部を塗り潰すことで、ベクタの接続点における隙間を埋
めるようにしている。
【0011】しかしながら、全てのベクタの端点におい
て円データを作成したのでは、計算量が膨大になる。ま
た、隙間以外の部分も円データで塗り潰すことになるの
で、データ量も増大する。また、データ量が増える分、
計算時間も長くなる。このため、特開昭64−3767
7号公報に開示の方法では、記述言語で記述されるよう
な複雑な描画データを高速に描画することは不可能に等
しい。
【0012】また、本出願人に譲渡されている特開平6
−168339号公報にも、太さ情報を有するベクタ・
データをビットマップ展開する方法について開示されて
いる。太さ情報を有するベクタ・データの輪郭を構成す
るアウトライン・ベクタを生成し、このアウトライン・
ベクタを構成する各ベクタ情報を含んだリストを複数連
結させた中間コードに変換した後、ビットマップ展開す
る旨の記載がある。中間コードは「ディスプレイ・リス
ト」とも呼ばれる。ディスプレイ・リストからビットマ
ップ・データに展開する方法については、例えば「実践
コンピュータグラフィックス」(デビッド・F・ロジャ
ース著、山口富士夫監修。1987年、日刊工業新聞社
発行、pp84−96)に記載されている。
【0013】特開平6−168339号公報では、太さ
情報を有するベクタ・データから図1(A)に示すよう
なベクタを生成し、さらに、ベクタ間の隙間部分につい
ては図1(B)に示すようなベクタを生成することで、
ベクタ・データの輪郭を構成するアウトライン・ベクタ
を生成する。そして、このようなアウトライン・ベクタ
を基に、データ量の少ないディスプレイ・リストを中間
データとして生成して、描画処理を行う。
【0014】特開平6−168339号公報に開示され
た手法によれば、記述言語で記述されるような複雑な描
画データを描画することが可能である。この手法では、
図1(A)で示したようなベクタ間の隙間部分を埋める
ために、図1(B)で示したベクタで埋めている。
【0015】しかしながら、図1(A)で示したベクタ
と図1(B)で示したベクタでは、ベクタ同士の重なり
が存在する。すなわち、本来は必要としない、すなわち
冗長なベクタ情報からディスプレイ・リストを生成する
ことになり、中間データの増大を招来することになる。
また、データ量が増える分、計算時間も長くなる。さら
に、図1(A)の図形と図1(B)の図形の接合面にお
いて、時として数値計算上の誤差による空隙を発生させ
てしまうこともある。
【0016】例えば描画処理の高速化のため、中間コー
ドを受け取って描画処理を行う部分をハードウェアで構
成した場合、ハードウェアでは同時に処理可能なディス
プレイ・リスト中のリスト数に制限がある。高速化を実
現するためには、中間データ量が増大するとハードウェ
アの大規模化も余儀なくされ、この結果、開発・製造コ
ストも増大してしまう。
【0017】また、上述した従来技術はいずれも、ベク
タ・データの太さがその長さよりも大きい場合の処理方
法については、何ら手当てしていない。
【0018】
【発明が解決しようとする課題】本発明の目的は、描画
データをビットマップ展開して出力するタイプの、優れ
た画像処理装置及び画像処理方法を提供することにあ
る。
【0019】本発明の更なる目的は、所定の描画命令で
記述された描画データを一旦中間コードに変換して、中
間コードをビットマップ展開するタイプの、優れた画像
処理装置及び画像処理方法を提供することにある。
【0020】本発明の更なる目的は、中間コードのデー
タ量を削減し、中間コードからビットマップ展開するま
での処理全体を高速化することができる、優れた画像処
理装置及び画像処理方法を提供することにある。
【0021】本発明の更なる目的は、太さ情報を有する
ベクタ・データをビットマップ展開する際に、中間コー
ドのデータ量を削減し、処理を高速化する画像処理装置
及び画像処理方法を提供することにある。
【0022】
【課題を解決するための手段及び作用】本発明は、上記
課題を参酌してなされたものであり、その第1の側面
は、所定の描画命令で記述された描画データに従って生
成された画像データを走査ライン毎に出力するタイプの
画像処理装置であって、(a)描画データに含まれる描
画オブジェクトの輪郭を描画するためのアウトライン・
ベクタを、描画オブジェクトを構成するベクタや線幅な
どのパラメータを用いて生成するアウトライン・ベクタ
生成手段と、(b)前記アウトライン・ベクタ生成手段
によって生成された各アウトライン・ベクタについての
始点及び終点を含んだディスプレイ・リストを生成する
ディスプレイ・リスト生成手段と、(c)生成されたデ
ィスプレイ・リストを基に、塗り潰し処理を実行する塗
り潰し手段と、を含むことを特徴とする画像処理装置で
ある。
【0023】本発明の第1の側面に係る画像処理装置に
おいて、前記アウトライン・ベクタ生成手段は、描画オ
ブジェクトを構成する各ベクタの接続部において発生す
る隙間を検出する手段と、各ベクタの接続部で発生した
隙間を他のアウトライン・ベクタとは重ならないアウト
ライン・ベクタで補間する手段と、を含んでいてもよ
い。
【0024】また、前記アウトライン・ベクタ生成手段
は、描画オブジェクトを構成する各ベクタの接続部にお
いて発生する隙間を検出する手段と、各ベクタの接続部
で発生した隙間を直線ベクタで補間する手段と、を含ん
でいてもよい。
【0025】また、前記アウトライン・ベクタ生成手段
は、描画オブジェクトを構成する各ベクタの接続部にお
いて発生する隙間を検出する手段と、各ベクタの接続部
で発生した隙間を複数の直線ベクタで補間する手段と、
を含んでいてもよい。
【0026】また、前記アウトライン・ベクタ生成手段
は、描画オブジェクトを構成する各ベクタの接続部にお
いて発生する隙間を検出する手段と、各ベクタの接続部
で発生した隙間を円弧ベクタで補間する手段と、を含ん
でいてもよい。
【0027】また、前記アウトライン・ベクタ生成手段
は、曲線からなるベクタ・データを1以上の直線からな
るベクタに分割して近似する曲線近似手段と、描画オブ
ジェクトを構成する各ベクタの接続部において発生する
隙間を検出する手段と、各ベクタの接続部で発生した隙
間を直線ベクタのみで補間する手段と、を含んでいても
よい。
【0028】また、前記アウトライン・ベクタ生成手段
は、描画命令中で指定された接続形状を示すパラメータ
に基づいて、描画オブジェクトを構成する各ベクタの接
続部において発生する隙間を埋める形状を決定するよう
にしてもよい。
【0029】また、前記アウトライン・ベクタ生成手段
は、描画命令中で指定された接続形状を示すパラメータ
に基づいて、描画オブジェクトを構成する各ベクタの接
続部におけるアウトライン・ベクタ同士の交点を算出す
る交点算出手段を有してもよい。
【0030】また、前記アウトライン・ベクタ生成手段
は、描画命令中で指定された接続形状を示すパラメータ
に基づいて、描画オブジェクトを構成する各ベクタの接
続部におけるアウトライン・ベクタ同士の交点を記憶す
る交点記憶手段を有してもよい。
【0031】また、前記塗り潰し手段は、ディスプレイ
・リストから取り出したアウトライン・ベクタを基に塗
り潰すべき座標点を算出し、これら座標点を基に非ゼロ
巻数規則に従って塗り潰し処理を行ってもよい。
【0032】本発明の第2の側面は、所定の描画命令で
記述された描画データに従って生成された画像データを
走査ライン毎に出力するタイプの画像処理装置であっ
て、太さ情報を持つ2以上のベクタ・データを接続して
なる描画オブジェクトを画像処理するために、(a)描
画オブジェクトの輪郭を構成するアウトライン・ベクタ
を、互いに重なりがない閉じたベクタ・データの列の形
態で生成するアウトライン・ベクタ生成手段と、(b)
生成された各アウトライン・ベクタについての始点及び
終点を含んだディスプレイ・リストを生成するディスプ
レイ・リスト生成手段と、(c)生成されたディスプレ
イ・リストを基に、塗り潰し処理を実行する塗り潰し手
段と、を具備することを特徴とする画像処理装置であ
る。
【0033】本発明の第3の側面は、所定の描画命令で
記述された描画データに従って生成された画像データを
走査ライン毎に出力するタイプの画像処理方法であっ
て、(a)描画データに含まれる描画オブジェクトの輪
郭を描画するためのアウトライン・ベクタを、描画オブ
ジェクトを構成するベクタや線幅などのパラメータを用
いて生成するステップと、(b)前記アウトライン・ベ
クタ生成手段によって生成された各アウトライン・ベク
タについての始点及び終点を含んだディスプレイ・リス
トを生成するステップと、(c)生成されたディスプレ
イ・リストを基に、塗り潰し処理を実行するステップ
と、を含むことを特徴とする画像処理方法である。
【0034】本発明の第3の側面に係る画像処理方法に
おいて、前記ステップ(a)は、描画オブジェクトを構
成する各ベクタの接続部において発生する隙間を検出す
るサブステップと、各ベクタの接続部で発生した隙間を
他のアウトライン・ベクタとは重ならないアウトライン
・ベクタで補間するサブステップと、を含んでもよい。
【0035】また、前記ステップ(a)は、描画オブジ
ェクトを構成する各ベクタの接続部において発生する隙
間を検出するサブステップと、各ベクタの接続部で発生
した隙間を直線ベクタで補間するサブステップと、を含
んでもよい。
【0036】また、前記ステップ(a)は、曲線からな
るベクタ・データを1以上の直線からなるベクタに分割
して近似するサブステップと、描画オブジェクトを構成
する各ベクタの接続部において発生する隙間を検出する
サブステップと、各ベクタの接続部で発生した隙間を直
線ベクタのみで補間するサブステップと、を含んでもよ
い。
【0037】本発明の第4の側面は、所定の描画命令で
記述された描画データに従って生成された画像データを
走査ライン毎に出力するタイプの画像処理方法であっ
て、太さ情報を持つ2以上のベクタ・データを接続して
なる描画オブジェクトを画像処理するために、(a)描
画オブジェクトの輪郭を構成するアウトライン・ベクタ
を、互いに重なりがない閉じたベクタ・データの列の形
態で生成するステップと、(b)生成された各アウトラ
イン・ベクタについての始点及び終点を含んだディスプ
レイ・リストを生成するステップと、(c)生成された
ディスプレイ・リストを基に、塗り潰し処理を実行する
ステップと、を具備することを特徴とする画像処理方法
である。
【0038】本発明の第4の側面に係る画像処理方法に
おいて、前記ステップ(a)では、互いに重なりがない
閉じたベクタ・データの列を形成するために、先入れ後
出しモードで蓄積するデータ構造で且つ先頭及び最後尾
の双方からアクセス可能な待ち行列(queue)を用
い、(a−1)描画オブジェクトのストロークを構成す
る1つのベクタ・データを取り出し、該ベクタ・データ
が持つ太さ情報に従ってベクタ・データを肉付けして矩
形を生成するサブステップと、(a−2)矩形の左上端
の頂点座標と左下端の頂点座標を、それぞれ待ち行列の
先頭と最後尾に加えるサブステップと、(a−3)スト
ロークを構成する次のベクタ・データを取得するサブス
テップと、(a−4)未処理のベクタ・データが残って
いなければ、最後となった矩形の右上端の頂点座標と右
下端の頂点座標を、それぞれ待ち行列の先頭と最後尾に
加えて、ステップ(a)を終了させるサブステップと、
(a−5)未処理のベクタ・データが残っていれば、次
のベクタ・データについて、太さ情報に従って肉付け処
理して矩形を生成するサブステップと、(a−6)新た
に取得したベクタが直前のベクタに対して上を向いてい
るか、又は下を向いているかを判断するサブステップ
と、(a−7)上を向いていれば、矩形同士の接合部分
を待ち行列の先頭に加えるとともに、交差部分を待ち行
列の最後尾に加えるサブステップと、(a−8)下を向
いていれば、矩形同士の接合部分を待ち行列の最後尾に
加えるとともに、交差部分を待ち行列の先頭に加えるサ
ブステップと、(a−9)新たに取得したベクタ・デー
タを現ベクタ・データとして、上述と同様の処理を繰り
返すサブステップと、を含んでもよい。
【0039】しかして、本発明に係る画像処理装置及び
画像処理方法によれば、太さ情報を有するベクタ・デー
タを基に、各ベクタ・データ同士の重なりを排除した形
態でアウトライン・ベクタを生成し、且つ、このアウト
ライン・ベクタをディスプレイ・リストに変換するよう
にしている。この結果、中間データ量の増大を抑えるこ
とができる。また、データ量が少ない分だけ計算時間は
短縮される。
【0040】要するに、本発明によれば、記述言語で記
述された複雑な描画オブジェクトを高速にビットマップ
展開することができる訳である。
【0041】本発明のさらに他の目的、特徴や利点は、
後述する本発明の実施例や添付する図面に基づくより詳
細な説明によって明らかになるであろう。
【0042】
【発明の実施の形態】以下、図面を参照しながら本発明
の実施例を詳解する。
【0043】図2には、本発明の実施に供される画像処
理装置100の構成を模式的に示している。画像処理装
置100は、描画データ・スプール部10と、描画デー
タ解釈部11と、ベクタ・データ生成部12と、ディス
プレイ・リスト生成部13と、ディスプレイ・リスト・
バッファ14と、塗り潰し処理部15と、出力バッファ
16と、出力装置制御部17とで構成され、描画データ
を入力して、ビットマップ展開された画像データをディ
スプレイやページ・プリンタなどの出力装置18に出力
するようになっている。以下、図2に示したブロック図
中の各部について説明する。
【0044】画像処理装置100に入力される描画デー
タは、装置100において処理可能な記述言語で記述さ
れている。記述言語形式の描画データは、例えば、図示
しないパーソナル・コンピュータやワークステーション
において、文書作成・編集業務に特化されたアプリケー
ション・プログラムを用いて作成された文書データに基
づいて生成される。本実施例で対象とする記述言語は、
例えばGDI(Graphics Device In
terface)であるが、この他、Acrobat
(前述)で代表されるPDF(Portable Do
cument Format)や、Postscrip
t(前述)で代表されるページ記述言語(PDL:Pa
ge Description Language)で
あってもよい。描画データは、描画オブジェクトを直線
ベクタや曲線ベクタなどのベクタ・データの組合せとし
て表現している。ベクタ・データは、装飾その他の目的
で線属性など各種パラメータを伴なっている(後述)。
【0045】描画データ・スプール部10は、接続され
たパーソナル・コンピュータやワークステーションとの
間でスプール機能を実現するためのユニットであり、描
画データを入力するための通話機能や、描画データ解釈
部11に出力するまで描画データを一時的に記憶する機
能を備えている。
【0046】描画データ解釈部11は、描画データ・ス
プール部10から受け取った描画データを解釈するため
のユニットである。より具体的には、所定の記述言語の
構文規則に従って描画データをトークンとして切り出
し、トークンを解釈して、内部命令やその引数に変換す
る。内部命令には、文字や図形の描画を実行する「描画
命令」や、色や線属性など描画に必要な情報を設定する
ために「描画状態命令」がある。描画命令や描画状態命
令は、ベクタ・データ生成部12に転送される。
【0047】ベクタ・データ生成部12は、描画命令や
描画状態命令に従って、描画オブジェクトを構成するベ
クタ・データを生成するユニットである。描画命令に
は、塗り潰し描画とストローク描画がある(後述)。ベ
クタ・データ生成部12は、塗り潰し描画命令の場合に
は塗り潰すべき領域を表すベクタ・データを生成し、ま
た、ストローク描画命令の場合には、オブジェクトの輪
郭を描画するために必要なベクタ・データを生成するよ
うになっている。ベクタ・データ生成部12の構成や動
作特性の詳細については後に詳解する。
【0048】ディスプレイ・リスト生成部13は、ベク
タ・データ生成部12で生成されたベクタ・データから
ディスプレイ・リストを生成するユニットである。ディ
スプレイ・リストは、オブジェクト毎のヘッダ情報と、
描画オブジェクトを構成するベクタの始点、傾き、方向
及びベクタと走査ラインとの交差数を含むベクタ情報で
構成される。生成されたディスプレイ・リストは、ディ
スプレイ・リスト・バッファ14に一時保管される。
【0049】塗り潰し処理部15は、ディスプレイ・リ
スト・バッファ14からディスプレイ・リストを受け取
って、ベクタの始点、傾き、方向及びベクタと走査ライ
ンとの交差数を含むベクタ情報に基づいて、塗り潰され
るべき位置を表したエッジ・リストを走査線毎に生成す
る。エッジ・リストの生成は、偶奇規則(Even−O
dd Rule。以下、”EOFill”とする)によ
る方法、又は、非ゼロ巻数規則(Non−Zero W
inding Rule。以下、”NZFill”とす
る)による方法のうちいずれか指定された方法に従う。
ストローク描画の場合は、必ずNZFillが指定され
る。
【0050】生成された走査ライン毎のエッジ・リスト
は、座標値の小さいものから順次整列するように並べ替
えられた後、始点から終点までの座標点の間の塗り潰し
処理が行われてから、出力バッファ16に出力される。
【0051】なお、塗り潰し処理装置15は、複数の座
標点を同時に生成処理するために、座標点生成装置を複
数含むハードウェアで構成されることが望ましいが、全
てソフトウェア・プログラムとして実装してもよい。あ
るいは、エッジ・リストを座標値の小さい順に整列する
ように並べ替える処理だけをソフトウェア・プログラム
として構成するようにしてもよい。
【0052】出力バッファ16は、塗り潰し処理された
画像データを一時保管するための記憶装置である。本実
施例の出力バッファ16は2つのバッファで構成され
る。一方のバッファが塗り潰し処理部15によって塗り
潰し処理されている間、他方のバッファは後段の出力装
置制御部17を介して出力装置18に出力画像データを
転送するようになっている。
【0053】出力装置制御部17は、出力バッファ16
に蓄積された画像データを出力装置18へ転送するとと
もに、出力装置の状態制御や状態管理を行う装置であ
る。
【0054】出力装置18は、画像データに基づいて画
像出力する装置であり、その一例は、レーザ走査型の電
子写真方式カラー・ページ・プリンタである。この種の
カラー・ページ・プリンタは、CMYBK(シアン、マ
ゼンダ、イエロー、ブラック)カラーの色毎に露光、現
像、転写を繰り返すことによって、フルカラー画像出力
を実現する。カラー・ページ・プリンタは、出力装置制
御部17の制御に従って、出力バッファ16から出力さ
れる画像データを記録用紙に印字出力するようになって
いる。
【0055】なお、上記した画像処理装置100内の各
構成要素は、専用のハードウェア装置として設計・製作
することも可能であるが、同等の機能を持つソフトウェ
ア・プログラムとして実装することもできる。
【0056】次に、画像処理装置100における画像処
理の手順について説明する。図3には、該処理手順をフ
ローチャートの形式で示している。以下、このフローチ
ャートの各ステップについて説明する。
【0057】描画データ・スプール部10に文字又は図
形を含む描画データが入力されると、描画データ解釈部
11及びベクタ・データ生成部によって、描画オブジェ
クトを構成するベクタ・データが生成される(ステップ
S31)。
【0058】次いで、ディスプレイ・リスト生成部13
によってディスプレイ・リストが生成されて、少なくと
も1ページ分のディスプレイ・リストがディスプレイ・
リスト・バッファ14に格納される(ステップS3
2)。
【0059】塗り潰し処理部15は、ディスプレイ・リ
スト・バッファ14からディスプレイ・リストを順次受
け取る(ステップS33)。
【0060】塗り潰し処理部15では、最初の描画オブ
ジェクトについてのディスプレイ・リストのベクタ情報
に従ってエッジの処理が行われ、走査ライン毎に塗り潰
すべき始点と終点の座標点が生成される(ステップS3
4)。
【0061】次いで、処理中の描画オブジェクトについ
ての全てのエッジの処理が終了したか否かをチェックす
る(ステップS35)。当該描画オブジェクトについて
の全てのエッジの処理が終了していなければ、ステップ
S34に戻って、上述の座標点生成処理が繰り返され
る。
【0062】他方、当該描画オブジェクトについての全
てのエッジの処理が終了していれば、生成された始点及
び終点の座標点の間における塗り潰し処理が実行される
(ステップS36)。塗り潰した結果は、出力バッファ
16に出力される。
【0063】次いで、処理中のページにおける全ての描
画オブジェクトの処理が終了したか否かをチェックする
(ステップS37)。全てのオブジェクトの処理が終了
していなければ、ステップS34に復帰する。そして、
当該ページ内の次描画オブジェクトについての最初のベ
クタ情報が取り出されて、座標点が生成され、上述と同
様の処理が繰り返される。
【0064】他方、当該ページ内の全ての描画オブジェ
クトについて処理が修了していれば、画像データは、出
力装置制御部17を介して出力装置18に転送され(ス
テップS38)、1ページ分の描画処理が修了する。処
理する描画データが複数ページあれば、上述の処理を全
てのページについて繰り返すことになる。
【0065】本実施例において、描画データをビットマ
ップ展開処理する際における中間データ量の抑制や、処
理の高速化は、ベクタ・データ生成部12によってもた
らされる。以下では、このベクタ・データ生成部12の
構成や動作特性について詳解する。
【0066】図4には、ベクタ・データ生成部12の構
成を模式的に示している。同図に示すように、ベクタ・
データ生成部12は、命令実行部40と、描画状態命令
記憶部41と、曲線近似部42と、アウトライン・ベク
タ生成部43と、接続点記憶部44と、マトリックス変
換部45とで構成される。ベクタ・データ生成部12内
のこれら構成要素は、専用のハードウェア装置として製
作することも可能であるが、同等の機能を持つソフトウ
ェア・プログラムとして実装することもできる。以下、
図4で示したブロック図中の各部について説明する。
【0067】命令実行部40は、描画データ解釈部11
から受け取った内部命令を実行するユニットである。こ
こで実行する内部命令は、描画命令と描画状態命令に2
分される(前述)。描画命令は、[表1]に示すよう
に、さらに「塗り潰し描画」命令と「ストローク描画」
命令の2種類に分けられる(前述)。
【0068】
【表1】
【0069】各描画命令には描画に必要な情報が付随す
る。[表1]で示されたこれら描画に必要な情報のう
ち、アンダーラインが付されたものは、描画命令中の引
数として与えられる。それ以外の情報は、初期設定や先
行する命令という形態で、予め描画状態命令記憶部41
に記憶されている。
【0070】命令実行部40における描画命令の実行
は、描画命令をそのまま曲線近似部42に転送すること
を意味する。また、受け取った命令が描画状態命令であ
れば、描画状態命令記憶部41に転送される。
【0071】描画状態命令記憶部41は、命令実行部4
0から受け取った命令に含まれる引数の値で、例えば
[表1]中でアンダーラインのない情報についての値の
設定を行い、これら設定値を記憶するようになってい
る。また、曲線近似部42、アウトライン・ベクタ生成
部43、マトリックス変換部45、ディスプレイ・リス
ト生成部13などの要求に従って、記憶している設定値
を転送するようになっている。
【0072】記憶部41が記憶する引数のうち、「fl
atness」とは、曲線ベクタを複数の直線ベクタに
分割する際の閾値である。また、「座標変換マトリック
ス」とは、マトリックス変換部45におけるアフィン変
換(後述)の変換マトリックスのことである。
【0073】ストローク描画命令の場合、線属性という
引数を伴なうが、これは、「linewidth」、
「linecap」、「linejoin」、「mit
erlimit」、「dash」という5種類のパラメ
ータで構成される。「linewidth」は、描画す
る線幅Wを指定するためのパラメータである。「lin
ecap」は、線の端部の形状を指定するパラメータで
あり、本実施例では、「butt(切り株型)」、「r
ound(丸型)」、「square(四角形型)」と
いう3種類の形状を指定することが許容されている。
「linejoin」は、ベクタ同士の接続点における
アウトラインの形状を指定するためのパラメータであ
り、本実施例では、「miter(斜接型)」、「ro
und(丸型)」、「bevel(そぎ接型)」という
3種類の形状の指定が許容されている。ベクタ同士の接
続形状については後で詳解する。「miterlimi
t」は、miter接続の場合の閾値を指定するパラメ
ータである。「dash」は、線が点線形状であること
を指定するパラメータである。
【0074】描画命令中のベクタ・データや、アウトラ
イン・ベクタ生成部43(後述)が生成したアウトライ
ン・ベクタの中には、曲線のベクタも含まれる。曲線近
似部42は、これら曲線ベクタを、描画状態命令記憶部
41から獲得したflatness値より誤差が小さく
なるように、複数の直線ベクタで近似する処理を行うユ
ニットである。
【0075】ここで、曲線近似部42における処理につ
いて、図5及び図6を用いて説明する。
【0076】曲線ベクタは、例えば図5に示すように、
P0、P1、P2、P3という4つの制御点で定義され
るベジエ(Bezier)曲線を用いて表現される。本
実施例における曲線近似処理は、近隣の各制御点間を結
ぶ線をその中点で分割するとともに、中点間を結んで同
様に分割処理することで行われる。
【0077】まず、P0’をP0とし、P0とP1の中
点をP1’とし、P1とP2の中点とP1’を結ぶ線分
の中点をP2’とし、P2とP3の中点をP2”とし、
P1とP2の中点とP2”を結ぶ線分の中点をP1”と
し、P2’とP1”の中点をP3’及びP0”とし、P
3”をP3として、それぞれの座標値を計算する(ステ
ップS70)。
【0078】次いで、P0とP3の中点(図5中の点1
/2(P0+P3))とP3’との距離Distanc
eを計算し、この距離が描画状態命令記憶部41から獲
得したflatness値よりも大きいか否かを比較す
る(ステップS71)。もし、Distanceがfl
atness値よりも大きい場合は、さらにベジエ曲線
を分割するために、処理は次ステップS72に進む。他
方、Distanceがflatness値よりも小さ
い場合には、与えられたベジエ曲線に対する直線ベクタ
による近似処理が完了したものとして、分割処理をこれ
以上行わずに、処理は次々ステップS73に進む。
【0079】ステップS72では、ベジエ曲線の再帰的
な分割処理を行うため、P0’、P1’、P2’、P
3’の4つの制御点、及び、P0”、P1”、P2”、
P3”の4つの制御点を、それぞれ新たにベジエ曲線の
制御点として2つのベジエ曲線に分割する。そして、上
述と同様の処理手順に従って、分割された2つのベジエ
曲線の各々についての分割処理を再帰的に行う。
【0080】ステップS73では、現在処理中の描画命
令が塗り潰し(Fill)命令又はストローク(str
oke)描画命令のいずれであるかを判断する。塗り潰
し(Fill)命令の場合には、直線ベクタ(P0,P
3’)、及び直線ベクタ(P3’,P3)をマトリック
ス変換部45に出力する(ステップS74)。また、ス
トローク(Stroke)描画命令の場合には、これら
の直線ベクタをアウトライン・ベクタ生成部43に出力
する(ステップS75)。
【0081】なお、曲線近似部42では、入力されたベ
クタ・データ中の直線ベクタについては、上述した近似
処理は行わない。入力された直線ベクタは、描画命令
(Fill又はStroke)に従って、マトリックス
変換部45又はアウトライン・ベクタ生成部43にその
まま出力される。
【0082】再び図4に戻って、ベクタ・データ生成部
12の各部について説明する。アウトライン・ベクタ生
成部43は、全て直線ベクタで構成されるベクタ・デー
タを曲線近似部42から入力して、描画状態命令記憶部
41に記憶されているストローク描画に必要なパラメー
タ(例えば前述のlinewidth、lineca
p、linejoin、miterlimit)に従っ
て、反時計回り(若しくは時計回り)方向に閉じたベク
タ・データ列を生成するようになっている。図7には、
2つの直線ベクタ(P0,P1)、(P1,P2)が接
続している場合に、反時計回り方向に生成された閉じた
ベクタ・データ列を示している。
【0083】接続点記憶部44は、アウトライン・ベク
タ生成部43によって生成されたベクタ・データ列を構
成する各ベクタ同士の接続点を一時保持するためのユニ
ットである。
【0084】マトリックス変換部45は、曲線近似部4
2又はアウトライン・ベクタ生成部43から受け取った
ベクタ・データを、描画状態命令記憶部41から獲得し
た変換マトリックスによってアフィン変換するユニット
である。曲線近似部42又はアウトライン・ベクタ生成
部43から受け取るベクタ・データは、全て直線ベクタ
であり、描画オブジェクトを構成する。アフィン変換す
る主な目的は、画像データをアプリケーションの解像度
(又は座標系)から出力装置の解像度(又は座標系)に
変換するためである。変換マトリックスには、一般に、
[数1]に示すような3×3マトリックスが用いられ
る。これによって、入力ベクタ・データ(Xn,Yn)
は、出力ベクタ・データ(Xn’,Yn’)に変換され
て、ディスプレイ・リスト生成部13に送出される。
【0085】
【数1】
【0086】画像処理装置100は、太さ情報を持つ2
以上のベクタ・データを接続して構成される描画オブジ
ェクトの画像出力する際の、アウトライン・ベクタの生
成の手順に顕著な特徴がある。図8、図9、及び図10
には、アウトライン・ベクタ生成部43によってアウト
ライン・ベクタを生成する様子をさらに詳しく図解して
いる。但し、この例では、描画状態命令記憶部41に記
憶されている各設定値は、linewidth=W、l
inecap=buttend、linejoin=b
evelであるものとする。以下、各図について説明す
る。
【0087】直線ベクタ(P0,P1)、(P1,P
2)が図8に示すように接続されている場合、まず、描
画状態命令記憶部41からそれぞれの描画状態命令を獲
得する。各パラメータの値は、linewidth=W
及びlinecap=buttendであるので、直線
ベクタ(P0,P1)とは直行する方向に、P0及びP
1からW/2の距離の各点P0’、P0”、P01’、
P01”を求める。また、同様に、直線ベクタ(P1,
P2)とは直交する方向に、P1及びP2からW/2の
距離の各点P02’、P02”、P2’、P2”を求め
る。
【0088】次いで、直線ベクタ(P0,P1)、(P
1,P2)の外積の符号を求める。この外積の符号によ
り、2つのベクタ(P0,P1)、(P1,P2)によ
って生成されるアウトライン・ベクタの接合部分の隙間
が、点(P01’,P02’)又は点(P01”,P0
2”)のいずれの側にあるのかを判断することができ
る。この例の場合、2つのベクタ(P0,P1)、(P
1,P2)の外積の符号は負となり、点(P01’,P
02’)側に接続部分の隙間が生じることが判明する。
【0089】次いで、直線P0”−P01”と直線P0
2”−P2”の交点JPを求める。ベクタ(P02’,
P01’)、(P01’,P0’)、(P0’,P
0”)、(P0”,JP)の4つのベクタを、アウトラ
インを構成するベクタとしてマトリックス変換部45に
出力する(図9参照)。また、これら2つの直線ベクタ
の接続点として、点(P02’.JP)を接続点記憶部
44に転送する。
【0090】次いで、接続点記憶部44から接続点(こ
の場合は点(P02’,JP))を獲得し、ベクタ(J
P,P2”)、(P2”,P2’)、(P2’,P0
2’)の3つのベクタをマトリックス変換部45に出力
する(図10参照)。
【0091】但し、アウトライン・ベクタ生成部43に
入力されたベクタ・データ列が、ベクタ(P1,P2)
では終了せず、例えば(P2,P3)、(P3,P4)
…のように後続のベクタに連続している場合には、ベク
タ(JP,P2”)、(P2’,P02’)をマトリッ
クス変換部45に出力し、P0=P1、P1=P2、P
2=P3、P0’=P02’、P0”=JPとして、上
述の処理を繰り返す(但し、ベクタ(P0’,P0”)
のマトリックス変換部45への出力は除く)。また、上
述の処理を繰り返している間、最新の接続点(P0
2’,JP)を接続点記憶部44に転送して格納する。
【0092】図11には、linejoin=mite
rの場合のアウトライン・ベクタを生成する様子を図解
している。
【0093】この場合は、直線P0’−P01’と直線
P02’−P2’の交点JP’も求める。マトリックス
変換部45に出力するベクタは、ベクタ(JP’,P
0’)、(P01’,P0’)、(P0’,P0”)、
(P0”,JP)、(JP,P2”)、(P2”,P
2’)、(P2’,JP’)である。また、接続点とし
ては点(JP’,JP)を接続点記憶部44に転送する
ことになる。この場合の処理手順は、上述のlinej
oin=bevelの場合と同様である。
【0094】また、図12には、linejoin=r
oundの場合のアウトライン・ベクタを生成する様子
を図解している。
【0095】この場合は、直線P0’−P01’と直線
P02’−P2’上に、ベジエ曲線の3つの制御点とな
るCP0、CP1、CP2、CP3を求める。そして、
CP3からCP0の間を結ぶ曲線ベクタを近似する直線
ベクタを、曲線近似部42で求めて、アウトライン・ベ
クタを生成する。
【0096】以下に、ベジエ曲線の各制御点CP0、C
P1、CP2、CP3を求める手順を説明する。但し、
説明の簡素化のため、円弧に近似した曲線を発生させる
ものとする。
【0097】アウトライン・ベクタの接合部分の隙間に
相当する制御点CP0、CP3は、それぞれ図8におけ
る制御点P01’、P02’に対応する。
【0098】まず、円弧に近似した曲線を発生させる。
発生させるベジエ曲線がCP0、CPM、CP3を通る
ためには、M0−CPMの3分の4に相当する位置に、
直線CP1−CP2と直線P1−JP’の交点M1を設
定する。
【0099】∠CP0、P1、M0をθとし、円弧の半
径をrとすると、線分|M0−CPM|は下式(2)に
よって求まる。
【0100】
【数2】
【0101】さらに、線分|M0−M1|は、下式
(3)の通りとなる。
【0102】
【数3】
【0103】また、線分|CP0−M0|=rsinθ
であるから、線分|M0−JP’|は下式(4)の通り
となる。
【0104】
【数4】
【0105】したがって、点M1による線分|M0−J
P’|の分割比、すなわち|M0−M1|/|M0−J
P’|は、上式(3)及び(4)より、以下の通りに求
まる。
【0106】
【数5】
【0107】線分|CP0−JP’|及び|CP3−J
P’|を上式(5)の割合で分割した点を、それぞれC
P1、CP2として求める。
【0108】上述のようにして求められた各制御点CP
3、CP2、CP1、CP0を曲線近似部42に転送す
る。曲線近似部42では、CP3からCP0を結ぶ円弧
を近似した直線ベクタを生成する。アウトライン・ベク
タ生成部43では、これら直線ベクタで構成されるアウ
トライン・ベクタを生成する。
【0109】なお、本実施例では、円弧に近似したベジ
エ曲線を発生させる例を示したが、本発明の要旨はこれ
に限定されない。他の方法によってCP1、CP2を計
算してもよく、また、円弧以外の曲線を発生させてもよ
い。
【0110】上述したように、本実施例では、描画オブ
ジェクトの輪郭を構成するアウトライン・ベクタを、互
いの重なりのない閉じたベクタ・データの列として生成
するようになっている。図13には、一連のベクタ・デ
ータ列を生成する処理手順の一例を、フローチャートの
形式で示している。この処理手順を実現するためには、
先入れ後出しモードで蓄積するデータ構造を持つ待ち行
列(queue)が用いられる。但し、この待ち行列は
先頭及び最後尾の双方からアクセス可能とする。以下、
図14に示したフローチャートの各ステップについて詳
解する。
【0111】まず、ステップS11では、描画オブジェ
クトのストロークを構成する1つのベクタ・データが取
り出される。そして、該ベクタ・データが持つ太さ情報
に従って、ベクタ・データを肉付けする(図14参
照)。肉付けされたベクタは、ベクタ方向と平行に走る
2つの側辺が同じ長さを持つ矩形となる。他の対向する
2つの辺は、ストロークの幅と同じ長さで、且つ、ベク
タ方向とは直交する。この肉付けされたベクタは、後続
のベクタを肉付けして形成された矩形の2辺を切り落と
すことになる。
【0112】次いで、この矩形の左上端の頂点座標(T
LC)と左下端の頂点座標(BLC)を、それぞれ待ち
行列の先頭と最後尾に加える(ステップS12)。
【0113】次いで、ストロークを構成する次のベクタ
・データを取得する(ステップS13)。もし、未処理
のベクタ・データが残っていなければ、最後となった矩
形の右上端の頂点座標(TRC)と右下端の頂点座標
(BRC)を、それぞれ待ち行列の先頭と最後尾に加え
て、この処理全体を終了させる(ステップS20)。
【0114】他方、未処理のベクタ・データが残ってい
れば、次のベクタ・データについて、同様に太さ情報に
従って肉付け処理して矩形を生成する(ステップS1
4)。
【0115】次いで、新たに取得したベクタが直前のベ
クタに対して上を向いているか(図15参照)、又は下
を向いているか(図16参照)を判断する(ステップS
15)。上を向いていれば、ステップS16に進み、下
を向いていればステップS18に進む。
【0116】ステップS16では、接合部分(Joi
n)が待ち行列の先頭に加えられる。次いで、ステップ
S17では、交差部分(Intersection)が
待ち行列の最後尾に加えられる。
【0117】他方、ステップS18では、接合部分(J
oin)が待ち行列の最後尾に加えられる。次いで、ス
テップS19では、交差部分(Intersectio
n)が待ち行列の先頭に加えられる。
【0118】新たに取得したベクタ・データを現ベクタ
・データとして、ステップS13に復帰して、上述と同
様の処理を繰り返す。
【0119】このような処理手順の結果として、描画オ
ブジェクトの輪郭を構成するアウトライン・ベクタは、
互いの重なりを含まない閉じたベクタ・データ列として
表されることになる。
【0120】上記の例では、ベクタを肉付けした矩形の
左上端及び左下端の頂点座標を待ち行列のそれぞれ先頭
と最後尾に加えるようにしたが、これに限定されず、右
上端及び右下端の頂点座標を待ち行列のそれぞれ先頭と
最後尾に加えるようにしても、同様の作用効果を得るこ
とができる。
【0121】なお、図17に示すように、ストロークを
構成するベクタ・データの幅がその長さよりも大きい場
合もある。これは、例えば、接続し合うベクタ・データ
を構成する各矩形の上側辺及び下側辺の双方において交
差しないことによって検出される。
【0122】このような場合には、通常の接合部分の反
対側に、接合部分(Join)を補う必要がある。スト
ロークのなす曲線を忠実に表現するためには、補足する
接合部分は、指定された接続形状に対してそれぞれ固有
の接続形状を持つことが好ましい。miter(斜接
型)に対してはbutt(切り株型)が相当するし、b
uttにはbuttが相応しい。また、roundには
roundのみが合致するであろう(図17を参照のこ
と)。
【0123】[追補]以上、特定の実施例を参照しなが
ら、本発明について詳解してきた。しかしながら、本発
明の要旨を逸脱しない範囲で当業者が該実施例の修正や
代用を成し得ることは自明である。すなわち、例示とい
う形態で本発明を開示してきたのであり、限定的に解釈
されるべきではない。本発明の要旨を判断するために
は、冒頭に記載した特許請求の範囲の欄を参酌すべきで
ある。
【0124】
【発明の効果】以上詳記したように、本発明によれば、
描画データをビットマップ展開して出力するタイプの、
優れた画像処理装置及び画像処理方法を提供することが
できる。
【0125】また、本発明によれば、所定の描画命令で
記述された描画データを一旦中間コードに変換して、中
間コードをビットマップ展開するタイプの、優れた画像
処理装置及び画像処理方法を提供することができる。
【0126】また、本発明によれば、中間コードのデー
タ量を削減し、中間コードからビットマップ展開するま
での処理全体を高速化することができる、優れた画像処
理装置及び画像処理方法を提供することができる。
【0127】また、本発明によれば、太さ情報を有する
ベクタ・データをビットマップ展開する際に、中間コー
ドのデータ量を削減し、処理を高速化する画像処理装置
及び画像処理方法を提供することができる。
【0128】本発明に係る画像処理装置及び画像処理方
法では、太さ情報を有するベクタ・データを基に、各ベ
クタ・データ同士の重なりを排除した形態でアウトライ
ン・ベクタを生成し、且つ、このアウトライン・ベクタ
をディスプレイ・リストに変換するようにしている。こ
の結果、中間データ量の増大を抑えることができる。ま
た、データ量が少ない分だけ計算時間は短縮される。す
なわち、本発明によれば、記述言語で記述された複雑な
描画オブジェクトを高速にビットマップ展開することが
できる訳である。
【図面の簡単な説明】
【図1】 従来技術(特開平6−168339号公報)
における太さ情報を有するベクタ・データをビットマッ
プ展開する処理を模式的に示した図である。
【図2】 本発明の実施に供される画像処理装置100
の構成を模式的に示した図である。
【図3】 画像処理装置100が行う画像処理の手順を
示すフローチャートである。
【図4】 ベクタ・データ生成部12の構成を模式的に
示した図である。
【図5】 曲線近似部42における処理を説明するため
の図であり、より具体的には、ベジエ曲線によって表現
された曲線ベクタを直線ベクタで近似する様子を図解し
たものである。
【図6】 曲線近似部42における処理を説明するため
の図であり、より具体的には、曲線近似部42が実行す
る処理手順をフローチャートの形式で図解している。
【図7】 2つの直線ベクタ(P0,P1)、(P1,
P2)が接続している場合に、アウトライン・ベクタ生
成部43によって生成されたベクタ・データ列を示した
図である。
【図8】 アウトライン・ベクタ生成部43によってア
ウトライン・ベクタを生成する様子を表した図である。
【図9】 アウトライン・ベクタ生成部43によってア
ウトライン・ベクタを生成する様子を表した図である。
【図10】 アウトライン・ベクタ生成部43によって
アウトライン・ベクタを生成する様子を表した図であ
る。
【図11】 linejoin=miterの場合のア
ウトライン・ベクタを生成する様子を示した図である。
【図12】 linejoin=roundの場合のア
ウトライン・ベクタを生成する様子を示した図である。
【図13】 描画オブジェクトのアウトライン・ベクタ
を構成する閉じたベクタ・データ列を生成する処理手順
を示したフローチャートである。
【図14】 描画オブジェクトのストロークを構成する
1つのベクタ・データに対して肉付けを施した様子を示
した図である。
【図15】 新たに取得したベクタが前回のベクタに対
して上を向いている様子を示した図である。
【図16】 新たに取得したベクタが前回のベクタに
対して下を向いている様子を示した図である。
【図17】 ストロークを構成するベクタ・データの幅
がその長さよりも大きい場合の処理方法を図解したもの
である。
【符号の説明】
10…描画データ・スプール部 11…描画データ解釈部 12…ベクタ・データ生成部 13…ディスプレイ・リスト生成部 14…ディスプレイ・リスト・バッファ 15…塗り潰し処理部 16…出力バッファ 17…出力装置制御部 18…出力装置 40…命令実行部 41…描画状態命令記憶部 42…曲線近似部 43…アウトライン・ベクタ生成部 44…接続点記憶部 45…マトリックス変換部 100…画像処理装置

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】所定の描画命令で記述された描画データに
    従って生成された画像データを走査ライン毎に出力する
    タイプの画像処理装置であって、(a)描画データに含
    まれる描画オブジェクトの輪郭を描画するためのアウト
    ライン・ベクタを、描画オブジェクトを構成するベクタ
    や線幅などのパラメータを用いて生成するアウトライン
    ・ベクタ生成手段と、(b)前記アウトライン・ベクタ
    生成手段によって生成された各アウトライン・ベクタに
    ついての始点及び終点を含んだディスプレイ・リストを
    生成するディスプレイ・リスト生成手段と、(c)生成
    されたディスプレイ・リストを基に、塗り潰し処理を実
    行する塗り潰し手段と、を含むことを特徴とする画像処
    理装置。
  2. 【請求項2】前記アウトライン・ベクタ生成手段は、 描画オブジェクトを構成する各ベクタの接続部において
    発生する隙間を検出する手段と、 各ベクタの接続部で発生した隙間を他のアウトライン・
    ベクタとは重ならないアウトライン・ベクタで補間する
    手段と、を含むことを特徴とする請求項1に記載の画像
    処理装置。
  3. 【請求項3】前記アウトライン・ベクタ生成手段は、 描画オブジェクトを構成する各ベクタの接続部において
    発生する隙間を検出する手段と、 各ベクタの接続部で発生した隙間を直線ベクタで補間す
    る手段と、を含むことを特徴とする請求項1に記載の画
    像処理装置。
  4. 【請求項4】前記アウトライン・ベクタ生成手段は、 描画オブジェクトを構成する各ベクタの接続部において
    発生する隙間を検出する手段と、 各ベクタの接続部で発生した隙間を複数の直線ベクタで
    補間する手段と、を含むことを特徴とする請求項1に記
    載の画像処理装置。
  5. 【請求項5】前記アウトライン・ベクタ生成手段は、 描画オブジェクトを構成する各ベクタの接続部において
    発生する隙間を検出する手段と、 各ベクタの接続部で発生した隙間を円弧ベクタで補間す
    る手段と、を含むことを特徴とする請求項1に記載の画
    像処理装置。
  6. 【請求項6】前記アウトライン・ベクタ生成手段は、 曲線からなるベクタ・データを1以上の直線からなるベ
    クタに分割して近似する曲線近似手段と、 描画オブジェクトを構成する各ベクタの接続部において
    発生する隙間を検出する手段と、 各ベクタの接続部で発生した隙間を直線ベクタのみで補
    間する手段と、を含むことを特徴とする請求項1に記載
    の画像処理装置。
  7. 【請求項7】前記アウトライン・ベクタ生成手段は、描
    画命令中で指定された接続形状を示すパラメータに基づ
    いて、描画オブジェクトを構成する各ベクタの接続部に
    おいて発生する隙間を埋める形状を決定することを特徴
    とする請求項2乃至6のいずれかに記載の画像処理装
    置。
  8. 【請求項8】前記アウトライン・ベクタ生成手段は、描
    画命令中で指定された接続形状を示すパラメータに基づ
    いて、描画オブジェクトを構成する各ベクタの接続部に
    おけるアウトライン・ベクタ同士の交点を算出する交点
    算出手段を有することを特徴とする請求項1に記載の画
    像処理装置。
  9. 【請求項9】前記アウトライン・ベクタ生成手段は、描
    画命令中で指定された接続形状を示すパラメータに基づ
    いて、描画オブジェクトを構成する各ベクタの接続部に
    おけるアウトライン・ベクタ同士の交点を記憶する交点
    記憶手段を有することを特徴とする請求項1に記載の画
    像処理装置。
  10. 【請求項10】前記塗り潰し手段は、ディスプレイ・リ
    ストから取り出したアウトライン・ベクタを基に塗り潰
    すべき座標点を算出し、これら座標点を基に非ゼロ巻数
    規則に従って塗り潰し処理を行うことを特徴とする請求
    項1に記載の鍵像処理装置。
  11. 【請求項11】所定の描画命令で記述された描画データ
    に従って生成された画像データを走査ライン毎に出力す
    るタイプの画像処理装置であって、太さ情報を持つ2以
    上のベクタ・データを接続してなる描画オブジェクトを
    画像処理するために、(a)描画オブジェクトの輪郭を
    構成するアウトライン・ベクタを、互いに重なりがない
    閉じたベクタ・データの列の形態で生成するアウトライ
    ン・ベクタ生成手段と、(b)生成された各アウトライ
    ン・ベクタについての始点及び終点を含んだディスプレ
    イ・リストを生成するディスプレイ・リスト生成手段
    と、(c)生成されたディスプレイ・リストを基に、塗
    り潰し処理を実行する塗り潰し手段と、を具備すること
    を特徴とする画像処理装置。
  12. 【請求項12】所定の描画命令で記述された描画データ
    に従って生成された画像データを走査ライン毎に出力す
    るタイプの画像処理方法であって、(a)描画データに
    含まれる描画オブジェクトの輪郭を描画するためのアウ
    トライン・ベクタを、描画オブジェクトを構成するベク
    タや線幅などのパラメータを用いて生成するステップ
    と、(b)前記アウトライン・ベクタ生成手段によって
    生成された各アウトライン・ベクタについての始点及び
    終点を含んだディスプレイ・リストを生成するステップ
    と、(c)生成されたディスプレイ・リストを基に、塗
    り潰し処理を実行するステップと、を含むことを特徴と
    する画像処理方法。
  13. 【請求項13】前記ステップ(a)は、 描画オブジェクトを構成する各ベクタの接続部において
    発生する隙間を検出するサブステップと、 各ベクタの接続部で発生した隙間を他のアウトライン・
    ベクタとは重ならないアウトライン・ベクタで補間する
    サブステップと、を含むことを特徴とする請求項12に
    記載の画像処理方法。
  14. 【請求項14】前記ステップ(a)は、 描画オブジェクトを構成する各ベクタの接続部において
    発生する隙間を検出するサブステップと、 各ベクタの接続部で発生した隙間を直線ベクタで補間す
    るサブステップと、を含むことを特徴とする請求項12
    に記載の画像処理方法。
  15. 【請求項15】前記ステップ(a)は、 曲線からなるベクタ・データを1以上の直線からなるベ
    クタに分割して近似するサブステップと、 描画オブジェクトを構成する各ベクタの接続部において
    発生する隙間を検出するサブステップと、 各ベクタの接続部で発生した隙間を直線ベクタのみで補
    間するサブステップと、を含むことを特徴とする請求項
    12に記載の画像処理方法。
  16. 【請求項16】所定の描画命令で記述された描画データ
    に従って生成された画像データを走査ライン毎に出力す
    るタイプの画像処理方法であって、太さ情報を持つ2以
    上のベクタ・データを接続してなる描画オブジェクトを
    画像処理するために、(a)描画オブジェクトの輪郭を
    構成するアウトライン・ベクタを、互いに重なりがない
    閉じたベクタ・データの列の形態で生成するステップ
    と、(b)生成された各アウトライン・ベクタについて
    の始点及び終点を含んだディスプレイ・リストを生成す
    るステップと、(c)生成されたディスプレイ・リスト
    を基に、塗り潰し処理を実行するステップと、を具備す
    ることを特徴とする画像処理方法。
  17. 【請求項17】前記ステップ(a)では、互いに重なり
    がない閉じたベクタ・データの列を形成するために、先
    入れ後出しモードで蓄積するデータ構造で且つ先頭及び
    最後尾の双方からアクセス可能な待ち行列(queu
    e)を用い、(a−1)描画オブジェクトのストローク
    を構成する1つのベクタ・データを取り出し、該ベクタ
    ・データが持つ太さ情報に従ってベクタ・データを肉付
    けして矩形を生成するサブステップと、(a−2)矩形
    の左上端の頂点座標と左下端の頂点座標を、それぞれ待
    ち行列の先頭と最後尾に加えるサブステップと、(a−
    3)ストロークを構成する次のベクタ・データを取得す
    るサブステップと、(a−4)未処理のベクタ・データ
    が残っていなければ、最後となった矩形の右上端の頂点
    座標と右下端の頂点座標を、それぞれ待ち行列の先頭と
    最後尾に加えて、ステップ(a)を終了させるサブステ
    ップと、(a−5)未処理のベクタ・データが残ってい
    れば、次のベクタ・データについて、太さ情報に従って
    肉付け処理して矩形を生成するサブステップと、(a−
    6)新たに取得したベクタが直前のベクタに対して上を
    向いているか、又は下を向いているかを判断するサブス
    テップと、(a−7)上を向いていれば、矩形同士の接
    合部分を待ち行列の先頭に加えるとともに、交差部分を
    待ち行列の最後尾に加えるサブステップと、(a−8)
    下を向いていれば、矩形同士の接合部分を待ち行列の最
    後尾に加えるとともに、交差部分を待ち行列の先頭に加
    えるサブステップと、(a−9)新たに取得したベクタ
    ・データを現ベクタ・データとして、上述と同様の処理
    を繰り返すサブステップと、を含むことを特徴とする請
    求項16に記載の画像処理方法。
JP27078998A 1998-09-25 1998-09-25 画像処理装置及び画像処理方法 Pending JP2000099750A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP27078998A JP2000099750A (ja) 1998-09-25 1998-09-25 画像処理装置及び画像処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27078998A JP2000099750A (ja) 1998-09-25 1998-09-25 画像処理装置及び画像処理方法

Publications (1)

Publication Number Publication Date
JP2000099750A true JP2000099750A (ja) 2000-04-07

Family

ID=17491031

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27078998A Pending JP2000099750A (ja) 1998-09-25 1998-09-25 画像処理装置及び画像処理方法

Country Status (1)

Country Link
JP (1) JP2000099750A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010009277A (ja) * 2008-06-26 2010-01-14 Celsys:Kk 線画のための彩色方法及びプログラム
JP2010264691A (ja) * 2009-05-15 2010-11-25 Ricoh Co Ltd 情報処理装置、レーザ照射装置、描画情報生成方法、制御システム、プログラム、記憶媒体、描画情報記憶装置
CN101968888A (zh) * 2010-09-08 2011-02-09 东莞电子科技大学电子信息工程研究院 一种适用于移动终端的矢量图形填充方法
JP2014010572A (ja) * 2012-06-28 2014-01-20 Strauss Technology Co Ltd ベクター画像描画装置及びベクター画像描画方法
JP2015064858A (ja) * 2013-08-27 2015-04-09 キヤノン株式会社 画像処理装置およびその方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010009277A (ja) * 2008-06-26 2010-01-14 Celsys:Kk 線画のための彩色方法及びプログラム
JP2010264691A (ja) * 2009-05-15 2010-11-25 Ricoh Co Ltd 情報処理装置、レーザ照射装置、描画情報生成方法、制御システム、プログラム、記憶媒体、描画情報記憶装置
CN102421603A (zh) * 2009-05-15 2012-04-18 株式会社理光 信息处理装置、激光发射设备、渲染信息产生方法、控制系统、程序、记录介质和渲染信息存储设备
US8581948B2 (en) 2009-05-15 2013-11-12 Ricoh Company, Ltd. Information processing apparatus, laser radiation device, render information generating method, control system, recording medium, and render information storage device
CN101968888A (zh) * 2010-09-08 2011-02-09 东莞电子科技大学电子信息工程研究院 一种适用于移动终端的矢量图形填充方法
JP2014010572A (ja) * 2012-06-28 2014-01-20 Strauss Technology Co Ltd ベクター画像描画装置及びベクター画像描画方法
JP2015064858A (ja) * 2013-08-27 2015-04-09 キヤノン株式会社 画像処理装置およびその方法

Similar Documents

Publication Publication Date Title
US5524198A (en) Character or graphic processing method and apparatus
JP3223617B2 (ja) 描画装置及び描画方法
JP2000099750A (ja) 画像処理装置及び画像処理方法
US20030218766A1 (en) Computer readable recording medium bearing a printer driver program and print data processing apparatus
JP3606006B2 (ja) 画像形成装置およびグラデーション描画方法
JP2002015329A (ja) 画像処理装置および画像処理方法
JP2001092981A (ja) 画像処理装置および画像処理方法
JPH0877324A (ja) 電子ファイル装置
JP3823730B2 (ja) 画像処理装置及びその方法
JP6755644B2 (ja) 文字処理装置、文字処理方法、文字処理プログラム
JPH10151815A (ja) 印刷処理装置
JPH1185428A (ja) 画像形成方法及び画像形成装置
JP4368652B2 (ja) 印刷処理方法及び装置
JP2000066658A (ja) 画像処理装置および記録媒体
JP2007081886A (ja) 描画処理装置
JPH1120273A (ja) 画像処理装置および画像処理方法
JP3536894B2 (ja) 図形処理装置
JP2019192087A (ja) 情報処理装置、プログラム、情報処理方法
JPH1110961A (ja) 印刷処理装置および印刷処理方法
JPH11227266A (ja) 印刷処理装置および印刷処理方法
JPH10305639A (ja) 印刷処理装置および印刷処理方法
JP4390141B2 (ja) 印刷処理システム
JP2019197327A (ja) 画像処理装置、画像処理方法、及びプログラム
JPH11110150A (ja) 画像処理システム及び画像処理方法並びに画像処理制御プログラムが記録されたコンピュータ読み取り可能な記録媒体
JP2010157040A (ja) 画像形成装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060124

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060323

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20061003