JP2002208017A - 描画処理装置 - Google Patents

描画処理装置

Info

Publication number
JP2002208017A
JP2002208017A JP2001001436A JP2001001436A JP2002208017A JP 2002208017 A JP2002208017 A JP 2002208017A JP 2001001436 A JP2001001436 A JP 2001001436A JP 2001001436 A JP2001001436 A JP 2001001436A JP 2002208017 A JP2002208017 A JP 2002208017A
Authority
JP
Japan
Prior art keywords
input
clip
coordinate
coordinate data
vector
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
JP2001001436A
Other languages
English (en)
Inventor
Masahiko Koyanagi
雅彦 小柳
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 JP2001001436A priority Critical patent/JP2002208017A/ja
Publication of JP2002208017A publication Critical patent/JP2002208017A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)

Abstract

(57)【要約】 【課題】本発明では、塗りつぶし処理及びクリップ処理
をハードウェアの構成で行うことが可能な描画処理装置
を提供する。 【解決手段】クリップベクタの個数を向きごとに数える
第1のアップダウンカウンタ回路と、ドローベクタの個
数を向きごとに数える第2のアップダウンカウンタ回路
と、座標値が塗りつぶし区間の開始点座標か判定する第
1の判定回路と、座標値が塗りつぶし区間の終了点座標
か判定する第2の判定回路とを並列に設ける。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プリンタ装置等へ
の出力を目的として、任意形状のベクタデータで表現さ
れた文字や図形などを描画する描画処理装置に関し、特
にクリップ処理と塗りつぶし区間の判定を行う描画処理
装置に関する。
【0002】
【従来の技術】CAD(Computer Aided Design)シス
テムなどに代表されるディジタルコンピュータシステム
では、ベクタデータで表現されたさまざまな形状の文字
や図形などの描画要素をディスプレイ装置やプリンタ装
置等のグラフィックデバイスへ出力するために、それら
の描画要素を描画する処理が発生する。従来、任意形状
の文字や図形などを描画する方法としては、例えばオー
ダードエッジリスト・アルゴリズム(David F.Rogers
著、山口富士夫監修、セイコー電子工業株式会社電子機
器事業部訳、日刊工業新聞社、「実践コンピュータグラ
フィックス基礎手続きと応用」、pp.88−95に記載)等
が知られている。
【0003】通常、文字や図形などの描画要素は、その
輪郭形状を表すベタタデータと輪郭内部を塗りつぶす色
情報という形式で描画が指示される。これをグラフィッ
クデバイスヘ出力するためには、グラフィックデバイス
の解像度に応じて、指定された色濃度を持つ画素の集ま
りに展開しなければならない。図3に示す三角形を例に
とると、三角形の輪郭を表す3本の直線ベクタと三角形
内部を塗りつぶす色とが与えられる。以下、図3を例と
して描画方法の概略を説明する。
【0004】まず、与えられたベクタに対してDDA
(Digital Diffrential Analyzer)を適用し、各ベクタ
と各スキャンライン(ここではx軸方向をスキャンライ
ン方向と仮定する)との交点座標(図3で黒いふちどり
を有した画素で示した)を計算する。上記オーダードエ
ッジリスト・アルゴリズムでは、y座標値の小さい方か
ら順番に1スキャンラインずつすべてのベクタとの交点
座標を計算する。輪郭を表す座標値が確定したら、スキ
ャンライン毎に塗りつぶす区間(開始点と終了点)を判
定する。文字のように複雑な輪郭形状を持つ描画要素で
は、スキャンライン当たり複数個の塗りつぶし区間が存
在することがある。塗りつぶし区間が決定したら、指定
された色濃度を持つ画素でその区間を埋めていく。以上
の処理を描画要素のすべてのベクタに対して実行するこ
とにより、描画処理が行われる。描画要素の輪郭形状を
表すベクタには、直線、円弧、ベジエ曲線等の自由曲線
などが含まれる。これらのベクタはそれぞれ向きの情報
を持つ。塗りつぶし区間を決定するためには、塗りつぶ
し規則とベクタの向きの情報が使用される。塗りつぶし
規則には、奇偶規則と非ゼロ巻数規則の2種類がある。
図4に塗りつぶし区間の決定方法を例示する。
【0005】図4(a)に示す奇偶規則では、スキャン
ラインの走査する方向に向かってスキャンラインと交差
するベクタの数をカウントし、奇数になった座標点から
偶数になった座標点までの間を塗りつぶし区間とする。
一方、図4(b)に示す非ゼロ巻数規則では、スキャン
ラインと交差するベクタの向きを考慮し、下向きに交差
する点では1を加算し、上向きに交差する点では1を減
算する。そしてカウンタが0でなくなった座標点から0
に戻った座標点までの区間を塗りつぶし区間とする。
【0006】描画要素には、入力された文字や図形の一
部のみを描画することを指示するクリップ情報が付加さ
れる。具体的には、図5に示すように、描画要素の領域
を表すベクタ(ドローベクタ)に加えて、クリップ領域
を示すベクタ(クリップベクタ)が付加される。そし
て、描画要素の輪郭であるドローベクタで指示される領
域と、クリップベクタで指示されるクリップ領域との論
理積を取った領域(図5で黒く塗りつぶした領域)が実
際に描画される領域となる。このクリップ領域として
は、ドキュメントのページ範囲を示すページクリップに
代表されるような単純な矩形クリップに加えて、描画要
素の輪郭形状と同様な任意形状のクリップが適用される
ことがある。また、前述した塗りつぶし規則は、ドロー
ベクタとクリップベクタのそれぞれに独立して与えられ
る。
【0007】このような塗りつぶし処理およびクリップ
処理を行う方法として、種々の技術が提案されている
が、次のような問題点があった。
【0008】(1)処理が複雑で実行時間がかかる。 (2)描画要素とクリップ領域が1対1に対応する場合
しか考慮していない。 (3)複数のクリップをマージする処理に時間がかか
る。 そこで、このような問題点を解決する方法として、特開
平10−79038号公報には、複数のクリップ処理を
塗りつぶし処理と同時にベクタの状態で行うようにした
描画処理装置が示されている。この方法では、処理のス
テップ数を減らすとともに、時間のかかるマージ処理を
省略することが可能となる。
【0009】
【発明が解決しようとする課題】しかし、この公報に示
された方法では、描画処理装置全体が汎用計算機上に構
築されることを前提としているため、処理方式が逐次的
であり、また仮想メモリ等の高度かつ複雑なメモリシス
テムが必要となる。特に塗りつぶし・クリップ処理部に
おいてこの傾向が顕著である。したがって、描画処理装
置の一部あるいは全部をASIC(Application Specif
ic Integrated Circuit)などの専用ハードウェアを用
いて構成し、高速化を図ることが困難であった。
【0010】そこで本発明では、塗りつぶし処理及びク
リップ処理をハードウェアの構成で行うことが可能な描
画処理装置を提供することを目的とする。
【0011】
【課題を解決するための手段】本発明の描画処理装置
は、描画要素の輪郭を表す座標データと該描画要素のク
リップ領域を表す座標データとをスキャンライン毎に入
力して、クリップ処理と塗りつぶし区間の判定を行う描
画処理装置において、塗りつぶし規則を保持する第1の
レジスタ回路と、前記描画要素の輪郭を表す座標データ
の向き情報を前記塗りつぶし規則に応じてカウントする
第1のカウンタ装置と、前記クリップ領域を表す座標デ
ータの向き情報を前記塗りつぶし規則に応じてカウント
する第2のカウンタ装置と、前記塗りつぶし区間の開始
座標を保持する第2のレジスタ装置と、前記塗りつぶし
区間の終了座標を保持する第3のレジスタ装置と、開始
座標を判断する第1の判定回路と、終了座標を判断する
第2の判定回路とを具備する。
【0012】また、請求項2記載の発明は、請求項1記
載の描画処理装置において、前記第1のカウンタ装置に
入力された前記座標データを更新する処理と、前記第2
のカウンタ装置に入力された前記座標データを更新する
処理と、前記第1の判定回路による前記塗りつぶし区間
の開始座標を判断する処理と、前記第2の判定回路によ
る前記塗りつぶし区間の終了座標を判断する判定処理と
を並列に実行する。
【0013】また、請求項3記載の発明は、請求項1ま
たは2記載の描画処理装置において、前記クリップ領域
を表す座標データを省略することを表すフラグを保持す
る第4のレジスタ装置をさらに具備する。
【0014】また、請求項4記載の発明は、請求項3記
載の描画処理装置において、スキャンラインの座標を保
持する第5のレジスタ装置と、前記描画要素に、前記塗
りつぶし規則と前記クリップ領域の有無を表すフラグを
入力して前記第1あるいは第4のレジスタ装置を更新す
るとともに、前記スキャンラインが更新される度に前記
第5のレジスタ装置を更新する初期化回路と、前記座標
データと前記塗りつぶし規則と前記フラグ情報の入力お
よび前記塗りつぶし区間を表す座標データの出力ならび
に描画処理装置全体の動作を制御する制御回路とをさら
に具備する。
【0015】また、請求項5記載の発明は、請求項1又
は2記載の描画処理装置において、前記第1の判定回路
は、入力の結果、前記第1および第2のカウンタ装置の
値がともに0でなくなった座標データを前記塗りつぶし
区間の開始座標として前記第2のレジスタ装置へ入力す
る。
【0016】また、請求項6記載の発明は、請求項3又
は4記載の描画処理装置において、前記第4のレジスタ
装置に格納されている値がクリップ領域無しを表す場合
には、入力によって第1のカウンタ装置の値が0から非
ゼロに変化した座標データを前記塗りつぶし区間の開始
座標として、前記第2のレジスタ装置へ入力する。
【0017】また、請求項7記載の発明は、請求項1又
は2記載の描画処理装置において、前記第2の判定回路
は、入力の結果、前記第1および第2のカウンタ装置の
値のいずれかが非ゼロから0に変化した座標データを前
記塗りつぶし区間の終了座標として、前記第3のレジス
タ装置へ入力する。
【0018】ここで、入力の結果、前記第1および第2
のカウンタ装置の値のいずれかが非ゼロから0に変化し
た座標データとは、例えば次のような座標データであ
る。 1) 入力された前記描画要素の輪郭を表す座標データ
あるいはクリップ領域を表す座標データに対応する塗り
つぶし規則が奇偶規則でありかつ前記第1及び第2のカ
ウンタ装置の値がともに0でないときに入力された座標
データ。 2) 入力された前記描画要素の輪郭を表す座標データ
に対応する塗りつぶし規則が非ゼロ巻数規則でありかつ
入力された座標データが下向きでありかつ前記第2のカ
ウンタ装置の値が非ゼロでありかつ前記第1のカウンタ
装置の値が−1のときに入力された座標データ。 3) 入力された前記描画要素の輪郭を表す座標データ
に対応する塗りつぶし規則が非ゼロ巻数規則でありかつ
入力された座標データが上向きでありかつ前記第2のカ
ウンタ装置の値が非ゼロでありかつ前記第1のカウンタ
装置の値が1のときに入力された座標データ。 4) 入力された前記描画要素のクリップ領域を表す座
標データに対応する塗りつぶし規則が非ゼロ巻数規則で
ありかつ入力された座標データが下向きでありかつ前記
第1のカウンタ装置の値が非ゼロでありかつ前記第2の
カウンタ装置の値が−1のときに入力された座標デー
タ。 5) 入力された前記描画要素のクリップ領域を表す座
標データに対応する塗りつぶし規則が非ゼロ巻数規則で
ありかつ入力された座標データが上向きでありかつ前記
第1のカウンタ装置の値が非ゼロでありかつ前記第2の
カウンタ装置の値が1のときに入力された座標データ。 また、請求項8記載の発明は、請求項3又は4記載の描
画処理装置において、前記第4のレジスタ装置に格納さ
れている値がクリップ無しを表す場合には、入力によっ
て前記第1のカウンタ装置の値が非ゼロから0に変化し
た座標データを前記塗りつぶし区間の開始座標として前
記第3のレジスタ装置へ入力する。
【0019】ここで、入力によって前記第1のカウンタ
装置の値が非ゼロから0に変化した座標データとは、例
えば次のような座標データである。 1) 塗りつぶし規則が奇偶規則でありかつ前記第1の
カウンタ装置が非ゼロのときに入力された座標データ。 2) 塗りつぶし規則が非ゼロ巻数規則でありかつ入力
された座標データが下向きでありかつ前記第1のカウン
タ装置の値が−1のときに入力された座標データ。 3) 塗りつぶし規則が非ゼロ巻数規則でありかつ入力
された座標データが上向きでありかつ前記第1のカウン
タ装置の値が1のときに入力された座標データ。
【発明の実施の形態】以下、図面を用いて本発明の描画
処理装置について説明する。
【0020】図2は、本実施の形態における描画処理装
置の全体構成を示すブロック図である。図2において、
描画処理装置は、命令解釈部1、ベクタデータ生成部
2、フォント管理部3、ショートベクタ生成部4、DD
A処理部5、ソート部6、塗りつぶし・クリップ処理部
7、メモリアクセス部8、フレームバッファメモリ9、
出力デバイス10が設けられている。
【0021】ここで、命令解釈部1では、入力される文
字や図形などの描画命令を解釈し、ベタタデータ生成部
2が理解できる形式に変換するものである。Post Scrip
t(Adobe Systems社商標)やGDI(Microsoft社商
標)などの記述言語では、これらの描画命令は文字列ま
たはバイナリ列として与えられる。命令解釈部1は、こ
れらの描画命令をトークンの切り出しや字句解釈などを
実行することにより、内部命令に変換して出力する。
【0022】ベタタデータ生成部2は、命令解釈部1か
ら内部命令の入力を受けて、ベクタデータを生成するも
のである。
【0023】ここで、内部命令として図形の塗りつぶし
命令が入力された場合は、命令解釈部1から、図形の輪
郭を表現するベクタと、クリップ領域を表現するベクタ
と、奇偶規則や非ゼロ巻数規則などの塗りつぶし規則
と、曲線を直線で近似する場合の精度を指示するflatne
ss値と、描画色が与えられ、それらの情報をそのまま出
力する。
【0024】また、内部命令として線図形描画命令が入
力された場合は、命令解釈部1から、線を表現するベク
タと、クリップ領域を表現するベクタと、線幅・終点形
状・接続形状などの線属性情報と、曲線を直線で近似す
る場合の精度を指示するflatness値と、描画色が与えら
れ、与えられた内部命令の中からベクタと線属性の情報
を用いて、図6に示すように、線図形の輪郭ベクタを生
成し、残りの情報とともに出力する。
【0025】そして、内部命令として文字描画命令が入
力された場合は、命令解釈部1から、文字コードと、フ
ォント識別子と、描画位置と、描画色が与えられ、与え
られた内部命令の中から、文字コードとフォント識別子
と描画位置の情報をフォント管理部3へ送り、文字の輪
郭ベクタを取得し、残りの情報とともに出力する。
【0026】フォント管理部3は、各種フォントに対す
るアウトラインベクタデータを記憶するとともに、与え
られた文字コードとフォント識別子と描画位置の情報に
よって、その文字に対するアウトラインベクタデータを
提供する。
【0027】上述した処理により、命令解釈部1へ入力
される図形描画命令および文字描画命令は、すべて輪郭
を表現するベクタデータと、クリップ領域を表現するベ
クタと、描画色と、flatness値と、塗りつぶし規則の情
報に変換される。
【0028】ショートベクタ生成部4は、変換されたベ
クタデータ中に曲線が含まれている場合、その曲線部分
を誤差がflatness値で指定された精度以下となるように
微小な直線ベクタで近似する処理を行なう。この処理に
より、すべての描画要素は任意形状を有する多角形に変
換される。
【0029】DDA処理部5は、多角形の輪郭を表現す
るベクタデータとクリップ領域を表現するベクタを入力
し、それらと各スキャンラインとの交点座標をDDAに
より計算する。計算された座標データは、スキャンライ
ン毎に出力される。
【0030】ソート部6は、DDA処理部5から出力さ
れる座標データ列を、x座標値をキーにして昇順にソー
トして出力するものである。ソートされた結果、ドロー
ベクタから生成されたx座標値とクリップベクタから生
成されたx座標値が任意の順序で混在した座標データ列
として出力される。ソーティングのアルゴリズムとして
は、例えばクイックソート等を用いる。
【0031】塗りつぶし・クリップ処理部7は、多角形
の塗りつぶし規則とベクタの向きの情報に基づいて、ソ
ート部6でソートされた座標データから実際に塗りつぶ
す区間の始点および終点の組を求める。なお、塗り潰し
・クリップ処理部7の構成及び動作の詳細については後
述する。
【0032】メモリアクセス部8は、クリップ処理部7
で求められた塗りつぶし区間に対応する線分を、指定さ
れた描画色でフレームバッファメモリ9へ描画するもの
である。
【0033】フレームバッファメモリ9は、出力デバイ
ス10の描画領域全体に対応する容量を持つメモリ装置
である。フレームバッファメモリ9へすべての描画要素
が描画されると、その結果の画素データは出力デバイス
10へ出力され、表示あるいは印刷される。
【0034】出力デバイス10は、CRTディスプレイ
装置あるいはプリンタ装置である。出力デバイス10毎
に定められた一定の間隔で画素データがフレームバッフ
ァメモリ9から出力デバイス10へ転送されることによ
り、表示あるいは印刷が行なわれる。
【0035】次に、本発明の主要な構成要素である塗り
つぶし・クリップ処理部7について詳細に説明する。
【0036】図1に、塗りつぶし・クリップ処理部7の
構成を内部ブロック図を示す。図1において、塗りつぶ
し・クリップ処理部7には、レジスタ21〜25、初期
化回路26、アップダウンカウンタ回路27、28と、
sx判定回路29、ex判定回路30、ステートマシン
31が設けられる。塗りつぶし・クリップ処理部7に対
する入力には、描画要素の塗りつぶし規則やクリップの
有無を表すヘッダデータと、スキャンラインのy座標値
と、ベクタと現スキャンラインとの交点座標xと、xに
おけるベクタの向きを表すフラグnzflagと、ベクタがク
リップベクタかドローベクタかを表すフラグcdflagが含
まれる。
【0037】レジスタ21は、描画要素の塗りつぶし規
則を保持する2ビット長のレジスタ装置である。本実施
の形態では、レジスタ21の上位ビット(以下、「fill
mode(1)」という)にドローベクタに対する塗りつぶ
し規則を保持し、レジスタ21の下位ビット(以下、
「fillmode(0)」という)にクリップベクタに対する
塗りつぶし規則を保持するものとする。これらの塗りつ
ぶし規則は、描画要素が更新される度にヘッダデータの
一部として入力される。
【0038】レジスタ22は、描画要素がクリップベク
タを有しているか否かを示すフラグ情報(以下、「cvfl
ag」という)を保持する1ビット長のレジスタ装置であ
る。描画要素にかかるクリップ領域が描画要素全体を覆
っている場合、cvflagを立ててクリップベクタを省略す
ることにより、クリップベクタ分のデータ量を削減する
ことが可能となる。ただし、クリップ処理部の方でcvfl
agの値に応じて処理を切替える必要が生じる。cvflag
は、描画要素が更新される度にヘッダデータの一部とし
て入力される。
【0039】レジスタ23は、処理中のスキャンライン
のy座標値を保持するレジスタ装置である。y座標値
は、スキャンラインが更新される度に入力される。
【0040】レジスタ24は、sx判定部29で判定さ
れた塗りつぶし区間の開始点座標(以下、「sx」とい
う)を保持するためのレジスタ装置である。sxが判定
されてから出力されるまでの間、開始点座標はレジスタ
24に保持される。
【0041】レジスタ25は、ex判定部30で判定さ
れた塗りつぶし区間の終了点座標(以下、「ex」とい
う)を保持するためのレジスタ装置である。exが判定
されてから出力されるまでの間、終了点座標はレジスタ
25に保持される。
【0042】レジスタ23、25のサイズは、対象とす
るグラフィックデバイスの解像度に合わせて選択する。
通常、CRTディスプレイ装置に出力する場合は最大1
2ビット長、プリンタ装置に出力する場合は最大16ビ
ット長の大きさがあれば十分である。
【0043】初期化回路26は、描画要素が更新される
度にヘッダデータから塗りつぶし規則とcvflagを切り出
して、レジスタ21及び22へそれぞれ入力するための
組合せ回路である。また、スキャンラインが更新される
度にy座標値をレジスタ23へ入力する。これらの更新
のタイミングは、図示しない制御信号によってステート
マシン31から指示される。
【0044】クリップカウンタ27は、現在のスキャン
ラインに関してどちら向きのクリップベクタが何個入力
されたかを数えるアップダウンカウンタ回路である。ク
リップカウンタ27は、クリップに対する塗りつぶし規
則が奇偶規則の場合はクリップベクタの向きに関わらず
クリップベクタが入力される度に0→+1→0→…と反
転する。一方、クリップに対する塗りつぶし規則が非ゼ
ロ巻数規則の場合は下向き(yの増加する方向)のクリ
ップベクタが入力されたら値が1増加し、上向きのクリ
ップベクタが入力されたら値が1減少する。
【0045】ドローカウンタ28は、現在のスキャンラ
インに関してどちら向きのドローベクタが何個入力され
たかを数えるアップダウンカウンタ回路である。ドロー
カウンタ28は、ドローベクタに対する塗りつぶし規則
が奇偶規則の場合はドローベクタの向きに関わらずドロ
ーベクタが入力される度に0→+1→0→…と反転す
る。一方、ドローベクタに対する塗りつぶし規則が非ゼ
ロ巻数規則の場合は下向き(yの増加する方向)のドロ
ーベクタが入力されたら値が1増加し、上向きのドロー
ベクタが入力されたら値が1減少する。
【0046】カウンタ回路27及び28の値は、sx判
定回路29およびex判定回路30の判定処理に使用さ
れる。なお、カウンタ回路27及び28の値は、各スキ
ャンラインの判定処理開始時点では必ず0になっていな
ければならない。カウンタ回路27及び28のカウント
範囲は、対象とするグラフィックデバイスの解像度に合
わせて十分に大きな範囲を選択するか、あるいはショー
トベクタ生成部4においてカウント範囲を超えないよう
に1スキャンラインと交差するベクタ数を制限する必要
がある。
【0047】sx判定回路29は、後述する判定条件に
したがって入力されたx座標値が塗りつぶし区間の開始
点座標に相当するかどうかを判定し、塗りつぶし区間の
開始点座標であると判定された場合はそのx座標値をレ
ジスタ24へ入力する。
【0048】ex判定回路30は、後述する判定条件に
したがって入力されたx座標値が塗りつぶし区間の終了
点座標に相当するかどうかを判定し、塗りつぶし区間の
終了点座標であると判定された場合はそのx座標値をレ
ジスタ25へ入力する。
【0049】次に、図7及び図8を用いて、塗りつぶし
区間の判定処理及びクリップ処理の方法を示す。
【0050】図7はクリップベクタを持たない(cvflag
=0)描画要素に対する塗りつぶし区間判定方法を説明
する図である。図7は、4つのドローベクタ(以下、
「DV」という)を有する描画要素とスキャンラインと
が交差した点のベクタのx座標値データが入力され、塗
りつぶし区間の開始点及び終了点が選択される様子を示
している。なお、ドローベクタは図面左側から順(上向
き2個、下向き2個の順)に入力されるものとして説明
する。塗りつぶし規則が奇偶規則のときドローカウンタ
28は、図7(a)に示すように0→+1→0→+1→
0と反転する。塗りつぶし規則が非ゼロ巻数規則のとき
ドローカウンタ28は、図7(b)に示すように0→−
1→−2→−1→0と変化する。いずれの場合も、ドロ
ーカウンタ28が0でなくなったときに入力されたx座
標値をsxとし、ドローカウンタ28が0に戻ったとき
に入力されたx座標値をexとすることにより、塗りつ
ぶし区間を選択する。図7では同じドローベクタが入力
された場合でも塗りつぶし規則が異なれば、選択される
塗りつぶし区間が異なることを示している。図7(a)
では、2つの塗りつぶし区間(sx1、ex1)、(sx2、
ex2)が選択されている。図7(b)では、1つの塗り
つぶし区間(sx3、ex3)が選択されている。
【0051】図8はクリップベクタを有する(cvflag=
1)描画要素に対する塗りつぶし区間判定方法を説明す
る図である。図8は、4つのドローベクタと2つのクリ
ップベクタ(以下、「CV」という)を持つ描画要素の
あるスキャンラインにおけるベクタのx座標値データが
入力され、塗りつぶし区間の開始点及び終了点が選択さ
れる様子を示している。なお、ベクタは図面左側から順
(上向きCV1個、上向きDV2個、下向きDV1個、
下向きCV1個、下向きDV1個の順)に入力されるも
のとする。クリップベクタを有する描画要素では、クリ
ップベクタに対する塗りつぶし規則が2通り、ドローベ
クタに対する塗りつぶし規則が2通りで、合計4通りの
塗りつぶし規則の組合せがある。しかし、いずれの組合
せであっても、クリップカウンタ27とドローカウンタ
28がともに0でなくなったときに入力されたx座標値
をsxとし、クリップカウンタ27とドローカウンタ2
8のいずれかが0に戻ったときに入力されたx座標値を
exとすることにより、塗りつぶし区間を選択する。図
8では同じベクタが入力された場合でも塗りつぶし規則
が異なれば、選択される塗りつぶし区間が異なることを
示している。図8(a)では、2つの塗りつぶし区間
(sx4、ex4)、(sx5、ex5)が選択されている。図
8(b)では、1つの塗りつぶし区間(sx6、ex6)が
選択されている。
【0052】ステートマシン31は、データの入出力制
御、カウンタ回路27及び28の更新制御、レジスタ2
1〜25の更新制御などを実行する順序回路である。以
下、図9を用いてステートマシン31の動作を説明す
る。
【0053】システムリセット後、ステートマシン31
はヘッダデータの入力を待つ待機状態(ステップS31
0)に遷移する。そして、最初の描画要素のヘッダデー
タが入力されると、ヘッダ処理状態(ステップS31
1)に遷移して、入力されたヘッダデータから塗りつぶ
し規則の情報とcvflagを切り出してレジスタ21及び2
2に格納するよう初期化回路26に指示する。また、ス
キャンラインのy座標値を入力してレジスタ23へ格納
する。そして、カウンタチェック状態(ステップS31
2)へ遷移する。なお、ヘッダ処理状態において入力さ
れたヘッダデータが「現ページの全描画要素の処理終
了」を通知する命令の場合は、待機状態(ステップS3
10)に遷移し、次ページの描画要素のヘッダデータが
入力されるまで待機する。
【0054】ヘッダの処理直後、描画要素が更新された
直後、およびスキャンラインが更新された直後には、カ
ウンタ回路27及び28はともに0になっていなければ
ならないため、カウンタチェック状態でチェックを行
う。
【0055】ここで、いずれかのカウンタ回路に0以外
の値が保持されていたら、エラー状態(ステップS31
3)へ遷移すると共に、外部にエラーが発生したことを
通知する。そして、初期化の要求を受けとると待機状態
(ステップS310)に遷移し、次の描画要素のヘッダ
データが入力されるまで待機する。
【0056】また、カウンタ回路27及び28がともに
0になっていたらsxの判定状態(ステップS314)
へ遷移して、塗りつぶし区間の開始点座標sxの判定を
行う。図10は、sxの判定条件を示すベン図である。
sx判定回路29は、例えば、クリップベクタを有して
おらず(cvflag=0)、ドローカウンタが0のときにド
ローベクタが入力された場合(cdflag=0)など、図1
0で網をかけた条件のいずれかが満たされたときに入力
されたx座標値をsxと判定し、レジスタ24へ格納す
る。図10で網をかけた条件が満足されなければ、入力
されたx座標値は破棄される。sxが確定したら、次に
exの判定状態(ステップS314)へ遷移する。な
お、sx判定状態(ステップS314)の途中で現スキ
ャンラインに対するすべてのベクタ処理が終了した場合
は、次のスキャンラインのy座標値を入力してレジスタ
23を更新し、カウンタチェック状態(ステップS31
2)に遷移してカウンタのチェックを行い、sx判定状
態(ステップS314)の途中で現描画要素に対するす
べてのベクタ処理が終了した場合は、ヘッダ処理状態
(ステップS311)へ戻って次の描画要素のヘッダデ
ータを処理する。
【0057】ex判定状態(ステップS315)では、
塗りつぶし区間の終了点座標exの判定を行う。図11
及び図12は、exの判定条件を示すペン図である。e
x判定回路30は、例えば、描画要素がクリップベクタ
を有しておらず(cvflag=0)、奇遇規則においてドロ
ーベクタが0(fillmode(1)=0)で、ドローカウンタ
が0以外の場合など、図11及び図12で網をかけた条
件のいずれかが満たされたときに入力されたx座標値を
exと判定し、レジスタ25へ格納する。図11あるい
は図12で網をかけた条件がいずれも満足されなけれ
ば、入力されたx座標値は破棄される。exが確定する
と区間出力状態(ステップS316)へ遷移する。
【0058】そして、区間出力状態(ステップS31
6)は、確定した塗りつぶし区間のデータをメモリアク
セス部8へ出力する。正常に出力されたら終了判定を行
い、現描画要素に対するすべてのベクタ処理が終了した
場合は、ヘッダ処理状態(ステップS311)へ遷移し
て次の描画要素のヘッダデータを処理する。現スキャン
ラインに対するすべてのベクタ処理が終了した場合は、
次のスキャンラインのy座標値を入力してレジスタ23
を更新し、カウンタチェック状態(ステップS311)
に遷移してカウンタのチェックを行う。現描画要素に対
するすべてのベクタ処理または現スキャンラインに対す
るすべてのベクタ処理の終了でない場合は、sx判定状
態(ステップS314)に遷移して、再びsxの判定処
理を行う。
【0059】以上、塗りつぶし・クリップ処理部7の構
成および動作を説明した。本実施の形態では説明を簡略
化するために、塗りつぶし・クリップ処理部7に入力さ
れるヘッダデータとして塗りつぶし規則とcvflagのみを
示しているが、実際の応用ではこの他に色情報、ラスタ
オペレーションの種類を示すコード、描画要素の種類を
示すコード、などの情報が付加されることがある。その
場合には、それらの情報を保持するレジスタ装置が新た
に必要となる。
【0060】また、本実施の形態ではヘッダデータとx
座標値データが別々のインタフェースを介して塗りつぶ
し・クリップ処理部7へ入力されるように説明したが、
必ずしもこのようなインタフェースに限定されるもので
はなく、ヘッダデータとx座標値が同一のバスを時分割
で使って入力されるように構成してもよい。また、入出
力のインタフェースにはrequest/grantプロトコルや、
FIFOのインタフェースなど任意のインタフェースが
実装されてよい。
【0061】
【発明の効果】本発明の描画処理装置では、塗りつぶし
・クリップ処理部以降をASICなどの専用ハードウェ
アを用いて実現できるため、従来行われている汎用計算
機を用いて実現された逐次的な描画処理よりもはるかに
高速に描画処理を並列実行することが可能となる。
【図面の簡単な説明】
【図1】本発明の塗りつぶし・クリップ処理部の構成を
示すブロック図
【図2】本発明の描画処理装置全体の構成を示すブロッ
ク図
【図3】図形の描画方法の概略を説明する図
【図4】塗りつぶし規則と塗りつぶし方法を示す図
【図5】クリップ処理を示す図
【図6】線図形の塗りつぶし図形への変換を示す図
【図7】クリップベクタを持たない描画要素に対する塗
りつぶし区間判定方法を示す図
【図8】クリップベクタを有する描画要素に対する塗り
つぶし区間判定方法を示す図
【図9】ステートマシンの状態遷移図
【図10】sxの判定条件を示すペン図
【図11】クリップベクタを持たない描画要素に対する
exの判定条件を示すペン図
【図12】クリップベタタを有する描画要素に対するe
xの判定条件を示すペン図
【符号の説明】
1…命令解釈部 2…ベクタデータ生成部 3…フォント管理部 4…ショートベクタ生成部 5…DDA処理部 6…ソート部 7…塗りつぶし・クリップ処理部 8…メモリアクセス部 9…フレームバッファメモリ 10…出力デバイス 21、22、23、24、25…レジスタ 26…初期化回路、 27、28…アップダウンカウンタ回路 29…sx判定回路 30…ex判定回路 31…ステートマシン

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 描画要素の輪郭を表す座標データと該描
    画要素のクリップ領域を表す座標データとをスキャンラ
    イン毎に入力して、クリップ処理と塗りつぶし区間の判
    定を行う描画処理装置において、 塗りつぶし規則を保持する第1のレジスタ回路と、 前記描画要素の輪郭を表す座標データの向き情報を前記
    塗りつぶし規則に応じてカウントする第1のカウンタ装
    置と、 前記クリップ領域を表す座標データの向き情報を前記塗
    りつぶし規則に応じてカウントする第2のカウンタ装置
    と、 前記塗りつぶし区間の開始座標を保持する第2のレジス
    タ装置と、 前記塗りつぶし区間の終了座標を保持する第3のレジス
    タ装置と、 開始座標を判断する第1の判定回路と、 終了座標を判断する第2の判定回路とを具備することを
    特徴とする描画処理装置。
  2. 【請求項2】 前記第1のカウンタ装置に入力された前
    記座標データを更新する処理と、 前記第2のカウンタ装置に入力された前記座標データを
    更新する処理と、 前記第1の判定回路による前記塗りつぶし区間の開始座
    標を判断する処理と、 前記第2の判定回路による前記塗りつぶし区間の終了座
    標を判断する処理とを並列に実行することを特徴とする
    請求項1記載の描画処理装置。
  3. 【請求項3】 前記クリップ領域を表す座標データを省
    略することを表すフラグを保持する第4のレジスタ装置
    をさらに具備することを特徴とする請求項1または請求
    項2記載の描画処理装置。
  4. 【請求項4】 スキャンラインの座標を保持する第5の
    レジスタ装置と、 前記描画要素に、前記塗りつぶし規則と前記クリップ領
    域の有無を表すフラグを入力して前記第1あるいは第4
    のレジスタ装置を更新するとともに、前記スキャンライ
    ンが更新される度に前記第5のレジスタ装置を更新する
    初期化回路と、 前記座標データと前記塗りつぶし規則と前記フラグ情報
    の入力および前記塗りつぶし区間を表す座標データの出
    力ならびに描画処理装置全体の動作を制御する制御回路
    とをさらに具備することを特徴とする請求項3記載の描
    画処理装置。
  5. 【請求項5】 前記第1の判定回路は、入力の結果、前
    記第1および第2のカウンタ装置の値がともに0でなく
    なった座標データを前記塗りつぶし区間の開始座標とし
    て前記第2のレジスタ装置へ入力することを特徴とする
    請求項1又は請求項2記載の描画処理装置。
  6. 【請求項6】 前記第4のレジスタ装置に格納されてい
    る値がクリップ領域無しを示す場合には、入力によって
    第1のカウンタ装置の値が0から非ゼロに変化した座標
    データを前記塗りつぶし区間の開始座標として、前記第
    2のレジスタ装置へ入力することを特徴とする請求項3
    又は請求項4記載の描画処理装置。
  7. 【請求項7】 前記第2の判定回路は、入力の結果、前
    記第1および第2のカウンタ装置の値のいずれかが非ゼ
    ロから0に変化した座標データを前記塗りつぶし区間の
    終了座標として、前記第3のレジスタ装置へ入力するこ
    とを特徴とする請求項1又は請求項2記載の描画処理装
    置。
  8. 【請求項8】 前記第4のレジスタ装置に格納されてい
    る値がクリップ無しを表す場合には、入力によって前記
    第1のカウンタ装置の値が非ゼロから0に変化した座標
    データを前記塗りつぶし区間の開始座標として前記第3
    のレジスタ装置へ入力することを特徴とする請求項3又
    は請求項4記載の描画処理装置。
JP2001001436A 2001-01-09 2001-01-09 描画処理装置 Pending JP2002208017A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001001436A JP2002208017A (ja) 2001-01-09 2001-01-09 描画処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001001436A JP2002208017A (ja) 2001-01-09 2001-01-09 描画処理装置

Publications (1)

Publication Number Publication Date
JP2002208017A true JP2002208017A (ja) 2002-07-26

Family

ID=18870074

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001001436A Pending JP2002208017A (ja) 2001-01-09 2001-01-09 描画処理装置

Country Status (1)

Country Link
JP (1) JP2002208017A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7280120B2 (en) 2003-06-26 2007-10-09 Canon Kabushiki Kaisha Compositing with a sub-pixel mask in graphic object rendering
JP2009169879A (ja) * 2008-01-21 2009-07-30 Dainippon Screen Mfg Co Ltd データ変換方法、描画システムおよびプログラム
JP2012525638A (ja) * 2009-04-30 2012-10-22 マイクロソフト コーポレーション データ可視化プラットフォームのパフォーマンスの最適化
US8368713B2 (en) 2007-03-20 2013-02-05 Fujitsu Semiconductor Limited Figure drawing device and method

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7280120B2 (en) 2003-06-26 2007-10-09 Canon Kabushiki Kaisha Compositing with a sub-pixel mask in graphic object rendering
US8368713B2 (en) 2007-03-20 2013-02-05 Fujitsu Semiconductor Limited Figure drawing device and method
JP2009169879A (ja) * 2008-01-21 2009-07-30 Dainippon Screen Mfg Co Ltd データ変換方法、描画システムおよびプログラム
JP2012525638A (ja) * 2009-04-30 2012-10-22 マイクロソフト コーポレーション データ可視化プラットフォームのパフォーマンスの最適化

Similar Documents

Publication Publication Date Title
US8723884B2 (en) Scan converting a set of vector edges to a set of pixel aligned edges
KR940001880B1 (ko) 묘화처리(描畵處理)의 방법 및 장치
JP2002208017A (ja) 描画処理装置
CA1200025A (en) Graphic and textual image generator for a raster scan display
US6504543B1 (en) Polygon drawing method and polygon drawing apparatus
US5274752A (en) Outline data image drawing apparatus applying image drawing direction rules and image drawing rules
JP2674287B2 (ja) グラフィックマイクロコンピュータ
JPH02270019A (ja) 高品質文字パターン発生方式
JP2003162728A (ja) 画像処理装置及び画像出力装置
JPH11109943A (ja) フォント処理装置およびフォント処理用プログラムを記録した記録媒体
JP3146771B2 (ja) フォントラスタライズ装置およびその方法
EP3714358A1 (en) Pencil ink render using high priority queues
JPH11232473A (ja) 印刷処理装置
EP0391401A2 (en) Method and apparatus for generating high-quality pattern
JP2787487B2 (ja) コンピュータシステムに表示され且つ操作される線分の位置を決定する回路
JP2782904B2 (ja) 多角形塗りつぶし方式
JPH0627922A (ja) 文字パターン表示制御装置
JP3843794B2 (ja) 図形処理装置
JP2000242802A (ja) 図形処理装置
KR0145709B1 (ko) 컴퓨터 그래픽 시스템
JP2001307115A (ja) 画像処理装置および画像処理方法
JP2835056B2 (ja) 高品質文字パターン発生方式
JP2804651B2 (ja) 輪郭塗り潰し方式
JP3087511B2 (ja) データ変換装置
CN112419145A (zh) 一种图像数据处理方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040916

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070515

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070918