JP3375069B2 - 描画処理装置 - Google Patents

描画処理装置

Info

Publication number
JP3375069B2
JP3375069B2 JP28373399A JP28373399A JP3375069B2 JP 3375069 B2 JP3375069 B2 JP 3375069B2 JP 28373399 A JP28373399 A JP 28373399A JP 28373399 A JP28373399 A JP 28373399A JP 3375069 B2 JP3375069 B2 JP 3375069B2
Authority
JP
Japan
Prior art keywords
data
vector
drawing processing
logical operation
processing apparatus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP28373399A
Other languages
English (en)
Other versions
JP2001111805A (ja
Inventor
雅夫 森田
邦彦 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
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, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP28373399A priority Critical patent/JP3375069B2/ja
Publication of JP2001111805A publication Critical patent/JP2001111805A/ja
Application granted granted Critical
Publication of JP3375069B2 publication Critical patent/JP3375069B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Color Image Communication Systems (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は描画処理装置に関
し、特に塗りつぶし処理において上塗りだけでなく、下
色との論理演算合成処理も行う描画処理装置に関する。
【0002】
【従来の技術】PostScript(米国アドビ・シ
ステムズ社の商標)で用いられている描画処理方法は、
オーバープリントが指定されている場合を除き、上書き
モデルに従う。すなわち、ページ上の同一の画素に新し
い描画オブジェクトを描画する際に、下側に描画されて
いるオブジェクトは、上書きされて消去される。図28
は上書きモデルの一例を示しており、この例で示すよう
に、下側に描画されている矩形のオブジェクトaは上側
の矩形のオブジェクトbにより上書きされて消去されて
いる。
【0003】それに対して、Windows Grap
hics Device Interface(GD
I:米国マイクロソフト社の商標)には、下色と演算を
するラスタオペレーション(ROP)という機能があ
る。ROPが指定された場合には、すでに描画されてい
る下側の図形と論理演算(AND,OR,XORなど)
を行う必要がある(図29参照)。図29はROPの例
を示しており、この図においては下側の矩形bと上側の
矩形bとが論理演算されて新たの図形cとなる。
【0004】さらに、透過モデルという描画モデルも存
在する(図30参照)。これは下側の図形を所定の透過
率で反映させるものであり、例えば透過率をtとすれ
ば、合成した図形の色値は、[追加図形の色値×t+下
地図毛の色値×(1−t)]となる。この様子を図30
に示す。
【0005】これらの3つモデルの関係は、次のように
なっている。 上書きモデル⊂透過モデル(下地の図形を透かさなけ
れば上書きモデルになる) 上書きモデル⊂ROP(PenまたはSourceを
コピーすれば上書きモデルになる) ROP≠透過モデル(同じ結果を表現するためには異
なる手順・手法が必要) ROPで透過モデルと同じような効果を得るためには、
図31のように何らかの近似を行わなければならない。
図31の例では、透過率に応じてストライプまたは矩形
の面積分割を行ない、透過率を面積比とする。
【0006】逆に、透過モデルでROPと同じような効
果を得るためには、アプリケーション上で複雑な図形を
作成するなどしなければならない(図32)。図32の
例では、相互にクリップ処理を行った上で重ね合わせる
必要がある。
【0007】このように、ROPと透過モデルは、効果
の性質が異なるため、全く別の演算である。
【0008】ところで、ROPの処理方法としては、特
開平2−64818号公報や特開平10−51651号
公報に開示されているように、ラスター上で行うように
なっている。従って、従来の描画処理装置では、文字や
グラフィックスのようなラスター以外のPDL(ページ
記述言語)の描画要素に下色との論理演算合成処理を行
う場合であっても、ラスターデータを生成してからでな
いと論理演算合成処理を行うことができない。そのため
従来の描画処理装置では、第1に、ラスター上で処理す
るための大容量のメモリを必要とする、第2に、データ
転送量がページメモリの容量を超えてしまう、第3に、
論理演算合成処理の処理速度が遅くなってしまう、等の
問題点を有している。
【0009】なお、透過モデルにおいてラスター上で透
過合成処理を行うのでなく塗りつぶし時に透過合成処理
を行う提案がなされている(特開平10−20849号
公報)。しかし、透過モデルでROPを行おうとすると
先に述べたように処理が複雑になる。
【0010】
【発明が解決しようとする課題】本発明の目的は、ラス
ターデータを生成する前の段階で論理演算合成処理を行
うことができ、しかも必要となるメモリ量が少なく、高
速に合成処理を行える描画処理装置を提供することにあ
る。
【0011】
【課題を解決するための手段】本発明によれば、上述の
目的を達成するために、下地図形の色と追加図形の色と
に対して所定の論理演算を行う論理演算合成機能を有す
る描画処理装置に、図形データ、色データおよび論理演
算コードで表現された前記下地図形及び前記追加図形を
記憶する記憶手段と、前記記憶手段から前記下地図形の
形状データと前記追加図形の形状データをスキャンライ
ン毎に取り出して、スキャンライン毎の塗りつぶし線分
を決定し、前記下地図形の色データおよび前記追加図形
の色データに対する前記論理演算コードによる論理演算
により塗りつぶし色を決定し、論理演算合成データを生
成する論理演算合成処理手段と、前記論理演算合成デー
タに基づいて出力装置に出力可能なデータを生成して出
力する出力手段とを設けるようにしている。
【0012】この構成においては、塗りつぶし時に論理
演算処理を行っているので大容量のメモリを必要とする
ことなく、かつ不必要にラスタデータの展開を行うこと
なく、図形の論理演算処理を行える。したがって簡易な
構成で高速に論理演算処理を行える。
【0013】なお、一番下の画像に図形については論理
演算コードを省略するようにしてもよい。また論理演算
コードを複数図形との関係で割り当てるようにしてもよ
い。
【0014】この構成においては、幾何学図形の入力オ
ブジェクトはベクタ形式のデータ、台形形式のデータと
したり、区間形式のデータ、図形の形状をビットマップ
形式で表現したデータとすることができる。
【0015】また、文字の入力オブジェクトはベクター
形式のデータ、アウトラインの曲線を表すデータ、区間
データとすることができる。
【0016】また、イメージデータの入力オブジェクト
は区間データとしたり、ベクタ形式の外形と画素値列と
からなるデータとすることができる。
【0017】また、入力が幾何学図形、文字だけの場合
に、ベクターデータまたは区間データだけで下地図形を
表現するようにしてもよい。
【0018】また、入力がイメージデータを含む図形で
構成される場合に、入力されたイメージデータと少なく
とも同じか少ない領域の大きさで、出力結果を表現する
ようにしてもよい。
【0019】また、入力された演算コードの最適化を行
うようにしてもよい。
【0020】また、本発明はROPを実行するようにし
たものであるが、透過合成処理や通常の上書き処理を同
時に行えるようにできることはもちろんである。
【0021】また、本発明は方法の発明として実現する
こともでき、また少なくともその一部をソフトウェアと
して実現してもよい。またこのソフトウェアを記録媒体
に保持したソフトウェア製品として実現してもよい。
【0022】
【発明の実施の形態】以下、本発明の実施例について説
明する。 [実施例1]まず、本発明の実施例1について説明す
る。この実施例は、入力としてベクターに代表される開
領域を用いたものである。開領域とは、塗りつぶし処理
が行われていない状態で入力される描画データである
(塗りつぶし処理が行われた状態で入力される描画デー
タを、後述のとおり閉領域という)。開領域の描画デー
タは、図形の内部判定処理を行いながら塗りつぶし処理
を行っている。ここでは、ベクターを例に挙げて、図形
の内部判定処理が必要な開領域を入力として扱った場合
を説明する。開領域のその他の例としては、直線だけで
はなく曲線分も含む形式のアウトライン表現などが上げ
られる。
【0023】図1は実施例1の描画処理装置を全体とし
て示しており、この図において描画処理装置はベクタデ
ータ入力部10、ベクタデータ記憶部12、演算合成処
理部14、画像出力部16を含んで構成されている。
【0024】ベクターデータ入力部10は、描画すべき
図形のベクター表現形式のデータとROPコード及び描
画属性値を受け取る。これら描画データについては後述
する。ベクタデータ記憶部12は入力した描画データを
記憶保持する。演算合成処理部14はスキャンライン毎
に演算合成処理を行い、例えば区間データとして保持す
る。画像出力部16は演算処理結果としての区間データ
を所定の出力装置に同期して出力する。
【0025】つぎにベクター表現形式のデータ(ベクタ
ーデータともいう)について説明する。ベクターデータ
とは、図2に示すように、描画すべき図形のアウトライ
ンを、向きを有する直線で表現したものである。図2に
示すベクターデータにおいて「ID」は描画順序を表し
ている。「X」は現在のスキャンラインを横切るベクタ
ーのX切片の値を示す。「X変位」は次のスキャンライ
ンに処理が移動した場合のX切片の変化量を示してい
る。「Y変位」は当該ベクターに影響を受ける残りのス
キャンライン数を示している。「向き」は当該ベクター
の向きを示す。
【0026】このようなベクター表現形式のデータの場
合、アウトラインの内部を判定するための規則が必要で
ある。内部/外部判定に用いる判定規則を図3に示す。
判定規則にはワインディング規則(NZ)と奇偶規則
(EO)との2種類がある。これらはいずれも複数の外
形(パス)で形成された一つの図形の内部を判定する際
に用いられる規則である。ワインディング規則及び奇偶
規則による内部判定方法を、図4を用いて説明する。図
4(a)に示すワインディング規則は、図形22を構成
する外形がスキャンライン(走査線)20と交差する際
の向きを考慮したものである。図4(a)では外形がス
キャンライン20を上向きに交差する場合を正、下向き
に交差する場合を負としている。走査方向に向かって正
の交差であれば1を加算し、負の交差であれば1を減算
することにし、合計値が0でなくなった点から0に戻っ
た点までが内部であると判定する。図4(b)に示す奇
偶規則は、スキャンライン20と交差するパスの個数を
カウントして、奇数の点から偶数の点までを内部と判定
することにしている。
【0027】図2に示すベクターデータを図5および図
6を用いてより具体的に説明する。図5において、座標
系は図面左上方を原点とし、従って図面の水平右方向に
X座標値は増加し、図面の垂直下方向にY座標値は増加
するものとする。
【0028】図5に示すように一定の色で塗られる三角
形の場合を考える。この三角形を構成するベクターはベ
クター24、26、28である。ベクター24は始点の
座標が(X1,Y1)、スキャンラインY1でのX切片
の値を示す「X」はX1、次のスキャンラインに移動し
た場合のX切片の変化量「X変位」は−1、残りのスキ
ャンライン数「Y変位」は7、となる。ベクターの「向
き」は座標系のY方向が増加する向きを1と定義し、座
標系のY方向が減少する向きを−1と定義する。従っ
て、ベクター24の「向き」は1である。この「向き」
はワインディング規則で内部/外部判定を行う際に、ど
の向きでスキャンラインを横切るかを示す情報として用
いられる。同様にしてベクター26は、スキャンライン
Y1でのX切片の値を示す「X」はX2、次のスキャン
ラインに移動した場合のX切片の変化量「X変位」は
0、残りのスキャンライン数「Y変位」は7、「向き」
は−1を示している。
【0029】図5のベクター24、26は図6のように
表現される。ベクターは、ベクターの「向き」を考慮し
て必ず下向きに補正された状態でベクターの開始点のY
座標に結び付けられるので、ベクター26はスキャンラ
インY1に結び付けられている。なお、スキャンライン
と平行なベクター28は考慮する必要がないので除外し
ている。また、各ベクターの先頭のIDは図形毎の描画
順序を示すので、IDの値の小さい方が先に描画された
ものである。
【0030】このIDに基づいて色値などの描画属性値
が管理される。IDで管理された色テーブル(図7)、
演算コードテーブル(図8)、内部判定規則テーブル
(図9)の例を示す。これらのテーブルはそれぞれID
に基づいて参照することができる。さらに図10に示す
ように、図形の内部/外部を判定するためのワーク領域
としての内部判定テーブルもIDから参照できるように
領域が確保される。
【0031】つぎに、ベクターデータによる論理演算処
理について説明する。図1のベクターデータ記憶部12
および論理演算合成処理部14が、ベクターデータによ
る論理演算合成処理を行う。画像出力部16は、論理演
算合成処理の終了した領域から画像のビデオ信号を出力
装置に対応したフォーマットで出力するようになってい
る。
【0032】図11は、本発明の実施例1の描画処理装
置で行われる論理演算合成処理の概略の流れを示してい
る。まずステップS20で、ベクターデータ記憶部12
内の対象となるスキャンラインの位置に描画する図形の
ベクターを登録する。このとき図7乃至図9で示した色
値等の属性値はベクターのIDに基づいて登録され、図
10で示した内部判定用のワーク領域も確保される。ス
テップS20は、全ての描画要秦(プリミティブ)の読
み込みが終了するまで続けられる(ステップS21)。
【0033】次のステップ22以降の処理については、
図12に示す図形を参照しながら説明する。図12はス
キャンラインとベクターとの関係を示している。図中縦
方向には複数のスキャンラインが並列しており、各ベク
ターに関係するスキャンラインに上方からY0〜Y9の
番号が付されている。ID=ID1である三角形は図形
内部が上書きの赤色で塗られている。
【0034】この三角形はベクター30とベクター32
により描画される。ベクター30の始点は、図示のよう
にスキャンラインY0のX座標値=X1であり、ベクタ
ー32の終点はスキャンラインY0のX座標値=X2で
ある。既に説明したように、ベクターはベクターの「向
き」を考慮して必ず下向きに補正された状態でベクター
の開始点のY座標に結び付けられる。従って、図13に
示すように、ベクター32はスキャンラインY0に結び
付けられる。結果として、スキャンラインY0にID1
の三角形を描画するベクター30、32が結び付けられ
ている。ベクター30のX切片はX1であり、X変位は
−1、Y変位は7、向きは1である。ベクター32のX
切片はX2であり、X変位は0、Y変位は7、向きは−
1である。
【0035】図12のID2の長方形は図形内部が演算
コードORの青色で塗られている。この長方形はベクタ
ー34とベクター36により描画される。ベクター36
の始点は、図示のようにスキャンラインY4のX座標値
=X4であり、ベクター34の始点はスキャンラインY
4のX座標値=X3である。従って、図13に示すよう
に、スキャンラインY4にID2の長方形を描画するベ
クター34、36が結び付けられている。ベクター34
のX切片はX3であり、X変位は0、Y変位は6、向き
は−1である。ベクター36のX切片はX4であり、X
変位は0、Y変位は6、向きは1である。また、ID1
<ID2なので下地図形が三角形であり、追加図形が長
方形である。
【0036】図12の図形の読み込みが終了した後で
は、図13に示すように色値、演算コード、判定規則の
各属性値のテーブルがベクターのIDに基づいて登録さ
れ、内部判定用のテーブルのワーク領域にもIDに基づ
いて値が確保される。このような具体例に基づいて、図
11に戻って論理演算合成処理の流れのステップS22
から説明する。ステップS22では、ベクターデータ記
憶部12に登録されているベクターデータのうち、処理
するスキャンラインにかかるベクターを取り出し、アク
ティブテーブルに登録する。
【0037】次にステップS23では、アクティブテー
ブルに登録されたベクターをソートする。これは、スキ
ャンライン間でベクターが交差するような場合には、当
該スキャンラインでのベクターの状態が前スキャンライ
ンでのベクターの状態とは異なるものとなるので、改め
て当該スキャンラインでの全ベクターのソートを行って
当該スキャンラインにかかるベクターを所定の順序で並
べ替えるために行われる。本例では、X座標値の小さい
順にソートするものとしている。従って、例えば図13
のスキャンラインY5でのソート結果は図14に示すよ
うにベクター34、ベクター30、ベクター32、ベク
ター36の順に並べられ、スキャンラインY6でのソー
ト結果は図15に示すようにベクター30、ベクター3
4、ベクター32、ベクター36の順に並べ替えられ
る。
【0038】次のステップS24では、ソートされたア
クティブテーブルからベクターを順次取り出して以下の
処理を行う。 第1の処理:図形の内部判定処理 第2の処理:内部判定された図形の登録と色の出力 第3の処理:外部判定された図形の削除と色の出力 以上の処理は、アクティブテーブルからベクターがなく
なるまで続けられる。
【0039】第1の処理である図形の内部判定処理は、
図16に示すフローチャートに従って、図形が内部状態
にあるかどうかを判定する。図16において、ベクター
のIDから、このベクターで構成される図形の内部判断
規則を取得する(ステップS30)。判定規則の種類が
NZ(ワインディング規則)であればステップS32へ
移行し、EO(奇偶規則)であればステップS37へ移
行する(ステップS31)。
【0040】判定規則がNZであれば、ベクターのID
から内部判定テーブル(図10)の値を取得し(ステッ
プS32)、当該値が0であるかどうかを判断する(ス
テップS33)。
【0041】値が0であれば当該ベクターで構成される
図形は必ず内部になる。従って、図10の内部判定テー
ブルの当該ベクターのIDの位置にある値にベクターの
向きを加えてから(ステップS34)、図18に示す処
理に移行する。取り出した値が0でない場合には、図1
3の内部判定テーブルの当該ベクターのIDの位置にあ
る値にベクターの向きを加え(ステップS35)、加え
た結果が0であるかどうかを判断する(ステップS3
6)。加えた結果が0であれば、図20に示す処理に移
行し、加えた結果が0以外の場合は、引き続き内部状態
が継続するので最初に戻る。
【0042】ステップS31で判定規則がEOであると
判断されると、当該ベクターのIDから内部判定テーブ
ル(図10)の値を取得し、当該値を1だけ増加させて
から2の剰余を求める(ステップS37)。2の剰余の
値が1であれば判定結果は奇数となり(ステップS3
8)、図形の内部となるので図18に示した処理に移行
する。2の剰余が0であれば判定結果は偶数となり、図
形の外部になるので図20の処理に移行する。このよう
にして、第1の処理での内部判断処理が行われる。
【0043】次に第2の処理である、内部判定された図
形の登録と色の出力の処理について、図17及び図18
を用いて説明する。図17は描画状態表を示す図であ
る。描画状態表は、現在処理対象としているスキャンラ
インのどこまでの描画が完了したかを保持する機能と、
現在内部状態にある描画図形を保持する機能とを有して
いる。
【0044】図17に示すように描画状態表は「描画開
始位置」、「内部状態」、及び「色値」から構成され
る。「描画開始位置」は、現在処理対象のスキャンライ
ンにおける次に塗りつぶしを開始させるX座標値が保持
される。従って、描画開始位置より小さいX座標値の領
域は既に塗りが画定した領域である。「内部状態」は、
内部状態になった図形を登録する領域である。「色値」
は、内部状態にある図形に対して、論理演算合成の色値
の計算をIDの小さい方から順番に行った結果である。
「内部状態」と「色値」の情報は、図形のIDの大きい
順に登録される。
【0045】図17は、図16のステップS34又はス
テップS38で図形が内部状態となった場合における次
の処理を示すフローチャートである。まず、描画状態表
の「内部状態」が空であるかどうかを調べる(ステップ
S40)。描画状態表の「内部状態」が空であれば当該
ベクターから内部状態が開始するのでステップS46に
移行し、描画状態表の「描画開始位置」に当該ベクター
のX座標値を設定する。
【0046】描画状態表の「内部状態」が空でなけれ
ば、すでに内部と判定されたベクターのX座標値(αと
する)が「描画開始位置」にあるはずであるから、αか
ら当該ベクターのX座標値−1までを「内部状態」の先
頭の色で塗る(ステップS41)。次に、当該ベクター
より小さいIDのベクターが描画状態表に登録されてい
るかどうかを調べる(ステップS42)。当該ベクター
より小さいIDのベクターが登録されている場合には、
当該ベクターの色値を当該ベクターの直下にあるベクタ
ーの色値と当該ベクターの演算コード用いて論理演算合
成の色値の計算を行う(ステップS43)。
【0047】次に、当該ベクターのIDより大きいID
を持つベクターが、描画状態表の内部状態に登録されて
いるかどうかを調べる(ステップS44)。当該ベクタ
ーより大きいIDを持つベクターがあれば、IDが大き
い全てのベクターに対してIDの小さい順に論理演算合
成の色値の計算を行う(ステップS45)。次に、「描
画開始位置」を当該ベクターのX座標値に設定し(ステ
ップS46)、描画状態表の「内部状態」にIDを上か
ら大きい順に並ぶように登録する(ステップS47)。
以上の処理で内部状態における論理演算合成処理を終了
する。
【0048】図19を用いて上述の論理演算合成処理に
おける描画状態表の変化を説明する。図19は図12の
スキャンラインY6のX3における描画状態表の変化を
示している。X座標値がX3においてID2の図形が内
部状態になる。すでに内部状態にある最大のIDはID
1なので、スキャンラインY6でのベクター30のX座
標値X1−6からX3−1までが赤で塗られる。ID2
の図形を登録した後、描画開始位置をX3に変更し、I
D2の部分について色の再計算を行う。lD2の直下に
あるのはlD1の赤で、かつ、ID2の演算コードがO
Rであるから、ID2に対応する色は紫(赤100%、
青100%)となる。
【0049】次に第3の処理である外部判定された図形
の削除と色の出力の処理について図20を用いて説明す
る。図20は、図16のステップS36又はステップS
38で図形が外部状態となった場合における次の処理を
示すフローチャートである。まず、描画状態表の「描画
開始位置」から当該ベクターのX座標値−1まで、描画
状態表の「色値」の先頭の色で塗る(ステップS5
0)。ただし、このときにX−1がページの幅を超えて
いる場合には、ページの幅までの出力に変更する。次
に、「描画開始位置」を当該ベクターのX座標値に設定
する(ステップS51)。次に、当該ベクターを描画状
態表から削除する(ステップS52)。そして、当該ベ
クターのIDより大きいIDを持つベクターが描画状態
表の「内部状態」に登録されているかどうかを調べる
(ステップS53)。当該ベクターより大きいIDを持
つベクターがあれば、IDが大きい全てのベクターに対
してIDの小さい順に(内部状態の下方から)、論理演
算合成の色値の計算を行う(ステップS54)。
【0050】この計算の際、図13に示した色テーブル
と演算コードテーブルに格納されている元の色値と演算
コードを用いて再計算を行う。
【0051】図11に戻り、ステップS24の次の処理
として、ステップS24で計算された色値と領域の長さ
に基づいて、1スキャンラインの出力を行う(ステップ
S25)。出力方法は例えば区間データの形式を用いて
1スキャンライン分のデータを蓄積して出力するように
してもよい。例として図12に示した図形の区間データ
を図21に示す。図21の区間データからスキャンライ
ン毎の区間データを取り出して、図22に示した出力処
理を行えば1スキャンライン分の出力が行え、また、複
数分蓄積してから出力装置との同期をとりながら図22
の処理を行えば複数ライン分の出力を行うこともでき
る。
【0052】ここで「区間データ」とは、ランレングス
形式のデータ表現であり、描画すべき図形をスキャンラ
イン毎の始点と長さ(幅)で表現したものである。通常
のランレングスは同一の画素値を1つのランとして表現
する。区間データは図中の左側からスキャンラインの番
号(Y座標値)、続いて当該スキャンラインでの図形の
始点となるX座標値、当該図形の幅、種別、及び色また
は色へのポインタで構成される。ここで種別は、種別に
続く次のフィールドが当該図形の色値自身を示している
のか、色データへのポインタを示しているのかを識別す
るために用いられる。本実施の形態では、種別の値が0
の場合は次フィールドが色値自身を表し、種別の値が1
の場合は次フィールドが色データへのポインタを示して
いるものとしている。
【0053】なお、図21では、下地の何もない部分の
データを省略しているが、もちろん、下地の部分のデー
タを区間データとして出力しても構わない(図18のS
40において、内部状態が空と判定されるので、その際
に描画状態表のX座標の値から当該ベクターのX−1ま
でを出力すれば良い。また、一つのスキャンラインの論
理合成処理が終わった後で、まだページの幅分のデータ
を出力していなければ、描画状態表のX座標の値からペ
ージの幅分の残りを出力すれば良い)。
【0054】ステップS25の処理を図22を用いてよ
り詳細に説明する。図22での区間データは、下地の何
もない部分のデータが含まれているものと仮定してい
る。図22において、まず、出力装置に対して出力開始
命令を出力する(ステップS60)。次に、区間データ
記憶部から現在のスキャンラインにおける区間データを
読み込む(ステップS61)。区間データがあれば、1
画素(ピクセル)分のビデオ信号を発生し(ステップS
64)、区間データの幅を1画素分減らす(ステップS
65)。この区間データにビデオ信号を発生させるべき
画素のデータが残っているかどうかを判断し(ステップ
S66)、データが残っていれば、区間データの種別を
判定し(ステップS67)、種別1であれば色値のポイ
ンタを増加(インクリメント)させる(ステップS6
8)。ステップS64〜ステップS68までの処理を区
間データにデータがなくなるまで続ける。区間データが
なくなればステップS66にてステップS61に戻り、
次の区間データを読み込んで同様の処理を行う。そし
て、全ての区間データを処理し終わると(ステップS6
2)、出力装置に出力終了命令を出力して(ステップS
63)処理を終了する。
【0055】ステップS25での出力作業が終了する
と、アクティブテーブルを更新する(ステップS2
6)。アクティブテーブルに登録されている全てのベク
ターに対して、X=X+X変位、Y変位=Y変位−1の
演算を行い、Y変位が0になったベクターをアクティブ
テーブルから取り除く。これにより、次のスキャンライ
ンにおいてアクティブであるベクターだけを残すことが
できる。このステップS26のアクティブテーブルの更
新処理を行うと、例えば、図15に示したY6のスキャ
ンラインの処理が終了すると図23に示すようにY7の
スキャンラインの状態が整うようになる。図示の通り、
Y6にかかるベクターのうちベクター30とベクター3
2のY変位が1であるのでY7のスキャンラインではこ
れらベクター30、32は削除される。
【0056】以上のステップS22からステップ26ま
での処理は、全てのスキャンラインに対して行われる
(ステップS27)。
【0057】以上の第1乃至第3の処理を図24を用い
て具体的に説明する。図24は図12のスキャンライン
Y6における描画状態表の変化を示す。まず始めに、I
D1の図形のベクター30が取得される。ベクター30
による内部判断処理によりID1の図形は内部と判断さ
れ、且つ現在「内部状態」には登録図形がないので、
「描画開始位置」には、ベクター30のスキャンライン
Y6でのX座標値X1−6がセットされる。また、「内
部状態」にID1がセットされ、色値として赤(100
%)がセットされる。
【0058】次に、ID2の図形のベクター34が取得
される。このときID2の図形は内部と判断される。
「内部状態」にはID1の図形が登録されているので、
スキャンラインY6のX1−6からX3−1まで赤(1
00%)で塗られる。そして、ID2>ID1なので、
ID2の図形の色値はID2の演算コード(OR)をも
とに、青(100%)赤(100%)と計算される。I
D2より大きい図形は登録されていないので、「描画開
始位置」をベクター34のX座標値X3にセットし、
「内部状態」の先頭にID2の図形が登録される。
【0059】次に、ID1のベクター32が取得され
る。このとき、ID1の図形は外部と判断されるので、
スキャンラインY6のX3からX2−1までを「内部状
態」の先頭の色である青(100%)赤(100%)で
塗る。そして、「描画開始位置」にはベクター32のX
座標値X2がセットされ、ID1の図形は「内部状態」
から削除される。また、ID2>ID1であるので、I
D2の図形の色値を再計算して青(100%)がセット
される。ID1より大きいIDを持つ図形はID2だけ
なので、次の処理へ移る。次に、ID2のベクター36
が取得される。このときID2の図形は外部と判断され
るので、スキャンラインY6のX2からX4−1までが
「内部状態」の先頭の色である青(100%)で塗られ
る。ID2より大きい図形はないので、次の処理に移
る。
【0060】以上のようにしてスキャンラインY6での
論理演算合成処理が終了し、図21でのスキャンライン
Y6に示す結果を得ることができる。
【0061】このように本実施の形態によれば、従来ラ
スターデータ上で行っていた論理演算合成処理を塗りつ
ぶし処理時に行うことができるようになるので、論理演
算合成処理に必要なメモリ量を削減し、且つ高速に論理
演算合成処理を行うことができるようになる。
【0062】[実施例2]つぎに本発明の実施例2につ
いて説明する。この実施例は入力がランレングス(台
形)に代表される閉領域である場合である。 実施例1
では、形状を表現する入力データとしてベクターデータ
を扱ったが、例えば、区間データ、台形(三角形を含
む)、ビットマップ等で表現することも可能である。
このような閉領域として記述されるデータについては、
アクティブテーブルを作成するときに、対応する二辺の
データを2つのベクタとして記述することで簡単に適用
できる。
【0063】[区間データの場合] 区間の始点X座標 ベクター1のX座標 区間の始点+幅 ベクター2のX座標 次のスキャンラインにはデータを送る必要がないので、
図2のX変位とY変位は0とする。塗り規則はNZとし
て扱う。
【0064】[台形データの場合]図25は台形データ
の例を示している。データ構造の描画領域に関する値
(YMIN,YMAX,X1,X2,DX1,DX2)
のほかに図形の描画順序(ID)などが格納されてい
る。台形データによる塗りつぶし領域の表現は種々ある
が、この例では、Y座標値の最大値YMAXと最小値Y
MIN、左側の辺についてはY座標の最小値の位置にお
けるX座標値X1、Y座標値が単位量増加した際のX座
標の増分DX1、右側の辺にいては、Y座標値の最小値
の位置におけるX座標値X2、Y座標値が単位量増加し
た際のX座標値の増分DX2により台形領域を規定す
る。
【0065】台形は、通常スキャンラインに平行な2辺
を持っているため、スキャンラインに平行でない2辺を
ただ単純に2つのベクターとして扱えば良い。
【0066】[ビットマップデータの場合]ビットマッ
プは、図形の形状をON、OFFの状態としてピクセル
毎に表現する形式である。そこで、ONのピクセルを表
現するために、区間データの例と同様に2つのベクタを
用いれば良い。
【0067】この変形として、連続するONのピクセル
を区間データとみなせば、ピクセル毎に2つのベクター
に変換しなくてもよく、ベクターの数を減らすことがで
きる。
【0068】このように、ベクターに変換できるデータ
であれば、ベクターデータに変換することで扱うことが
できる。
【0069】また、例えば区間データを入力した場合に
は、単一のスキャンラインしかデータが必要とされない
場合がある。その際には、図11のS26におけるアク
ティブテーブルの更新作業において、単純に削除するだ
けなど、処理を簡略化しても良い。
【0070】[実施例3]つぎに本発明の実施例3につ
いて説明する。この実施例は入力にイメージデータが含
まれる場合に好適なものである。 入力データにイメー
ジデータ(画素値をピクセルデータの列として表現する
もの)がない場合には、実施例1に示したとおり、連続
する区間に対して一度だけ論理演算合成を行えば良かっ
た。しかし、入力データにイメージデータ(画素値をピ
クセルデータの列として表現するもの)があった場合に
は、形状を表わす区間データとしては、単一の区間デー
タになるかもしれないが、実際の論理演算合成は、ピク
セル毎に演算する必要がある。
【0071】処理するスキャンラインにイメージ形式の
データがある場合には、ピクセルデータの論理演算作業
領域を図17に示した内部状態表に追加して(図2
6)、処理すれば良い。
【0072】図26においては、図17と比べて、種別
を表わす領域が追加されている。これは、区間データの
例(図21)と同様に、色値を表わすデータ領域が色値
自身を表現するのか、ポインタによって別領域に表現さ
れているのかを示している。ここでは、0の場合に色値
自身、1の場合にポインタによる表現であるとする。
【0073】スキャンラインにイメージ形式のデータが
あるかどうかは、アクティブテーブルを作成する段階
で、追加する形状データの種別を判断すれば良い。その
ために、図7から図10で示した一連のテーブルに、さ
らに、描画オブジェクトの種別を表わすテーブルを追加
する(図27)。このテーブルの内容は、描画オブジェ
クトの種類(図形、文字、イメージなど)を表現するも
のでも良いし、区間データの種別データ(0か1)を直
接入れても構わない。
【0074】そこで、イメージデータの領域が内部状態
になったときに、このイメージオブジェクトの幅分のラ
インバッファを用意して、図27に示した拡張した描画
状態表のポインタ部に結合する。そして、図18のS4
3、S45、図20のS54などで色値を計算するとき
には、このバッファ上で演算を行えば良い。
【0075】このようにすることで、イメージデータが
存在する部分だけ、ピクセルデータを用いるので、不必
要なラスタイメージ展開を避けることができる。
【0076】[実施例4]つぎに本発明の実施例4につ
いて説明する。この実施例は、演算の最適化を行うもの
である。他は実施例1〜3と同様である。論理演算は、
場合により途中の演算を省略することができる(例えば
同じ色に対してXORを二回繰り返すと元の色に戻るの
で、この2回のXORは行う必要がない)。そこで、色
を計算する前に、対象となる論理演算群を最適化するよ
うにしている。このようにすることで、さらなる高速化
が可能である。
【0077】
【発明の効果】以上説明したように、この発明によれ
ば、スキャンライン毎に塗りつぶし処理を行いながら論
理演算処理を行っているので大容量のメモリも必要なく
ラスター展開を予め行っておく必要もない。したがっ
て、簡易な構成で高速に図形同士の論理演算処理を行え
る。
【図面の簡単な説明】
【図1】 本発明の実施例1の描画処理装置の主要部を
示すブロック図である。
【図2】 ベクター表現形式のデータを示す図である。
【図3】 内部判定規則の種類を示す図である。
【図4】 内部判定の規則を説明する図である。
【図5】 ベクターの向きとスキャンラインの関係であ
る。
【図6】 図5のスキャンラインY1におけるベクター
データである。
【図7】 色テーブルの説明図である。
【図8】 演算コードテーブルの説明図である。
【図9】 内部判定規則テーブルの説明図である。
【図10】 内部判定テーブルの説明図である。
【図11】 実施例1の論理演算合成処理の概略のフロ
ーチャートである。
【図12】 実施例1の具体例の説明図である。
【図13】 図12に示す具体例における各内部状態の
初期状態を示す図である。
【図14】 図12のスキャンラインY5におけるアク
ティブテーブルの状態図である。
【図15】 図12のスキャンラインY6におけるアク
ティブテーブルの状態図である。
【図16】 内部状態判定処理のフローチャートであ
る。
【図17】 内部状態表を説明する図である。
【図18】 図16で内部判定された場合の処理を説明
するフローチャートである。
【図19】 図12のスキャンラインY6のX座標値が
X3における状態の変化を説明する図である。
【図20】 図16で外部判定された場合の処理を説明
するフローチャートである。
【図21】 図12の図形の処理結果を区間データで表
現した例を示す図である。
【図22】 区間データの出力処理を説明するフローチ
ャートである。
【図23】 アクティブテーブルの状態の変化の説明図
である。
【図24】 図12のスキャンラインY6における描画
状態の変化を示す図である。
【図25】 実施例2の台形領域の表現の一例を示す図
である。
【図26】 実施例3における描画状態表の拡張例を説
明する図である。
【図27】 描画オブジェクト種別テーブルを示す図で
ある。
【図28】 PostScriptの上書きモデルの説
明する図である。
【図29】 Windows GDIのROPの説明図
である。
【図30】 透過モデルの説明図である。
【図31】 透過モデルをROPで表現する例を説明す
る図である。
【図32】 ROPを透過モデルで表現する例を説明す
る図である。
【符号の説明】
10 ベクタデータ入力部 12 ベクタデータ記憶部 14 演算合成処理部 16 画像出力部
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) H04N 1/38 - 1/393 G06T 11/00 100 - 11/60 100

Claims (20)

    (57)【特許請求の範囲】
  1. 【請求項1】 下地図形の色データのビット列表現と追
    加図形の色データのビット列表現とに対して所定の論理
    演算をビット位置ごとに行う論理演算合成機能を有する
    描画処理装置であって、 図形データ、色データおよび論理演算コードで表現され
    た前記下地図形及び前記追加図形を記憶する記憶手段
    と、 前記記憶手段から前記下地図形の形状データと前記追加
    図形の形状データをスキャンライン毎に取り出して、ス
    キャンライン毎の塗りつぶし線分を決定し、前記下地図
    形の色データおよび前記追加図形の色データに対する前
    記論理演算コードによる論理演算による論理演算合成デ
    ータを塗りつぶし色として生成する論理演算合成処理手
    段と、 前記論理演算合成データに基づいて出力装置に出力可能
    なデータを生成して出力する出力手段とを備えることを
    特徴とする描画処理装置。
  2. 【請求項2】 幾何学図形の入力オブジェクトはベクタ
    形式のデータとする請求項1記載の描画処理装置。
  3. 【請求項3】 幾何学図形の入力オブジェクトは台形形
    式のデータとする請求項1記載の描画処理装置。
  4. 【請求項4】 幾何学図形の入力オブジェクトは区間形
    式のデータとする請求項1記載の描画処理装置。
  5. 【請求項5】 幾何学図形の入力オブジェクトは、図形
    の形状をビットマップ形式で表現したデータとする請求
    項1記載の描画処理装置。
  6. 【請求項6】 文字の入力オブジェクトはベクター形式
    のデータとする請求項1、2、3、4または5記載の描
    画処理装置。
  7. 【請求項7】 文字の入力オブジェクトはアウトライン
    の曲線または直線を表すデータとする請求項1、2、
    3、4または5記載の描画処理装置。
  8. 【請求項8】 文字の入力オブジェクトは区間データと
    する請求項1、2、3、4または5記載の描画処理装
    置。
  9. 【請求項9】 文字の入力オブジェクトは、文字の形状
    をビットマップ形式で表現したデータとする請求項1、
    2、3、4または5記載の描画処理装置。
  10. 【請求項10】 イメージデータの入力オブジェクトは
    区間データとする請求項1、2、3、4、5、6、7、
    8または9記載の描画処理装置。
  11. 【請求項11】 イメージデータの入力オブジェクト
    は、ベクタ形式の外形と画素値列とからなるデータとす
    る請求項1、2、3、4、5、6、7、8または9記載
    の描画処理装置。
  12. 【請求項12】 前記記憶手段に記憶される前記下地図
    形および前記追加図形は、入力が幾何学図形、文字だけ
    の場合には、図形データとしてのベクターデータまたは
    区間データと、それらを描画するそれぞれ単一の色デー
    タと、論理演算コードとにより表示される請求項1記載
    の描画処理装置。
  13. 【請求項13】 前記記憶手段に記憶される前記下地図
    形および前記追加図形に、イメージデータを含む図形が
    含まれる場合には、前記イメージデータを含む図形を、
    図形データと、対応するイメージデータを表す一連の色
    データと、論理演算コードとにより表し、前記論理演算
    合成処理手段は、前記イメージデータを表す一連の色デ
    ータを取りだして論理演算処理を行う請求項1記載の描
    画処理装置。
  14. 【請求項14】 前記論理演算合成手段における演算に
    関与する複数の演算コードをより少ない数の演算コード
    に変換できる場合には、上記複数の演算コードを上記よ
    り少ない数の演算コードに置き換えることを特徴とする
    請求項1記載の描画処理装置。
  15. 【請求項15】 ベクターデータで表現される図形の内
    部にあるかどうかをスキャンラインに沿って判定しなが
    ら塗りつぶしを行う画像処理装置において、描画対象デ
    ータの図形の形状データ、色データおよび論理演算デー
    タを記憶する記憶手段と、 スキャンラインに沿って塗りつぶしを行う際に内部と判
    定された図形の識別子を保持する内部図形識別子保持手
    段と、 前記内部図形識別子保持手段に保持されている図形の識
    別子に基づいて、対応する色データのビット列表現に対
    して、対応する論理演算処理をビット位置ごとに実行す
    る手段と、 前記論理演算処理により決定される色データで塗りつぶ
    しデータを出力する手段とを有することを特徴とする描
    画処理装置。
  16. 【請求項16】 前記内部図形識別子保持手段は内部と
    判定された図形の識別子をリストとして保持する請求項
    13記載の描画処理装置。
  17. 【請求項17】 図形毎の塗りつぶし処理の結果を表現
    するデータを前記ベクターデータに変換する手段を有
    し、ベクターデータを図形データとして処理する請求項
    15または16記載の描画処理装置。
  18. 【請求項18】 図形毎の塗りつぶし結果を表すデータ
    はランレングスデータとする請求項17記載の描画処理
    装置。
  19. 【請求項19】 図形毎の塗りつぶし結果を表すデータ
    は区間データとする請求項17または18記載の描画処
    理装置。
  20. 【請求項20】 図形毎の塗りつぶし結果を表すデータ
    は台形とする請求項17または18記載の描画処理装
    置。
JP28373399A 1999-10-05 1999-10-05 描画処理装置 Expired - Fee Related JP3375069B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP28373399A JP3375069B2 (ja) 1999-10-05 1999-10-05 描画処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28373399A JP3375069B2 (ja) 1999-10-05 1999-10-05 描画処理装置

Publications (2)

Publication Number Publication Date
JP2001111805A JP2001111805A (ja) 2001-04-20
JP3375069B2 true JP3375069B2 (ja) 2003-02-10

Family

ID=17669407

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28373399A Expired - Fee Related JP3375069B2 (ja) 1999-10-05 1999-10-05 描画処理装置

Country Status (1)

Country Link
JP (1) JP3375069B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5534867B2 (ja) * 2010-03-02 2014-07-02 キヤノン株式会社 ラスタ画像を生成する装置、ラスタ画像生成方法、およびプログラム

Also Published As

Publication number Publication date
JP2001111805A (ja) 2001-04-20

Similar Documents

Publication Publication Date Title
JP3919754B2 (ja) 画素順次描画システムにおいて実行される合成演算回数の削減法
US4679038A (en) Band buffer display system
AU2008202364B2 (en) Scan converting a set of vector edges to a set of pixel aligned edges
JP3359634B2 (ja) 境界内更新を備えたグラフィックス出力システム
JP3734226B2 (ja) 圧縮され、ワード整合されたビットマップを高速ブロック転送する方法および装置
JP3547250B2 (ja) 描画方法
JP4646436B2 (ja) デジタル画像の画像処理装置
JP3375069B2 (ja) 描画処理装置
JP3085175B2 (ja) 描画装置
JPH0562348B2 (ja)
JPH0767136B2 (ja) 画像処理装置
JPH11147344A (ja) 描画処理装置および方法
JP3692639B2 (ja) 描画処理装置
JP3266905B2 (ja) 図形処理装置
WO2021245875A1 (ja) 画像合成装置及び画像合成方法
JP3616242B2 (ja) アニメーション情報の圧縮方法、及びアニメーション情報の圧縮プログラムを記録したコンピュータ読み取り可能な記録媒体
JP3861463B2 (ja) 画像表示制御方法および装置
US20010024285A1 (en) Image processing apparatus
JP2782904B2 (ja) 多角形塗りつぶし方式
JP3843794B2 (ja) 図形処理装置
JP3089906B2 (ja) 描画装置
JP3536894B2 (ja) 図形処理装置
JPH10187124A (ja) 描画装置および描画方法
JPH06168337A (ja) 塗り潰し処理方法
JPS6117189A (ja) 図形処理装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071129

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081129

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091129

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101129

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111129

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111129

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121129

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees