JP3531582B2 - 画像処理方法および画像処理装置 - Google Patents
画像処理方法および画像処理装置Info
- Publication number
- JP3531582B2 JP3531582B2 JP2000150369A JP2000150369A JP3531582B2 JP 3531582 B2 JP3531582 B2 JP 3531582B2 JP 2000150369 A JP2000150369 A JP 2000150369A JP 2000150369 A JP2000150369 A JP 2000150369A JP 3531582 B2 JP3531582 B2 JP 3531582B2
- Authority
- JP
- Japan
- Prior art keywords
- line
- contour
- image data
- end point
- 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.)
- Expired - Lifetime
Links
Landscapes
- Image Processing (AREA)
- Image Generation (AREA)
Description
ソナルコンピュータ等に好適な画像処理方法および画像
処理装置に関する。
は、描画対象物の輪郭線に囲まれた領域を塗り潰す処理
が頻繁に行われる。以下、従来の塗り潰し処理の手順を
説明する。
る。具体的には、例えば画素の表示色を白とする画像デ
ータ“0”を書き込む。 (2)描画対象物をX、Y座標系に配置した場合におい
て、描画対象物を−X方向に見る所定の位置にY軸に平
行な境界線を設定する。 (3)描画対象物の輪郭を複数の線分に近似し、これら
の各線分について、当該線分と上記境界線とによって挟
まれた台形領域に属する画像データを反転する。上記の
処理により、描画対象物の輪郭を構成する各線分によっ
て囲まれた領域を塗り潰し、表示対象物の画像を生成す
ることができる。
来の方法における(3)の処理では、各線分上の画素か
ら境界線に至るまでの個々の画素毎に画像データの反転
処理を行っていたため、描画処理の処理時間が長くなる
という問題があった。さらに、描画対象物の輪郭線を構
成する各線分上の画素の画像データを反転するか否か、
および各線分の終点を通りX軸に平行なライン上の画素
の画像データを反転するか否かといった事項が、すべて
の線分について一律に決められた状況のもとで上記
(3)の処理が行われていたため、例えば、各線分上の
画素や、各線分の終点を通るX軸に平行なライン上の画
素等が、本来塗り潰されるべきであるにも関わらず塗り
潰されず、表示画像が歪んでしまうといった問題があっ
た。
されたものであり、短い処理時間で、画像表示の要求内
容に応じたきめ細かい塗り潰し処理を行うことができる
画像処理方法および画像処理装置を提供することを目的
とする。
ため、本発明は、描画対象物の輪郭線の内部を塗り潰し
た画像の画像データをメモリ内に生成する画像処理方法
において、前記描画対象物の輪郭線を構成する各輪郭線
構成線分ごとに、当該輪郭線構成線分の終点の座標を含
む描画コマンドを受信する過程と、X軸およびY軸から
なる2次元座標系においてX軸方向およびY軸方向に配
列された各画素の中から、前記描画対象物の各輪郭線構
成線分を近似する輪郭点を、予め定められた始点の座標
と前記描画コマンドに含まれる終点の座標とに基づいて
求める過程と、前記各輪郭線構成線分ごとに、当該輪郭
線構成線分と前記2次元座標系に予め設定された前記Y
軸に平行な境界線とにより挟まれた台形領域を対象とし
て、当該輪郭線構成線分を横切るX軸に平行な各ライン
に対応した処理からなる台形領域塗り潰し処理を実行す
る過程とを有し、前記各輪郭線構成線分に対応した前記
描画コマンドは、その輪郭線構成線分の終点を通過しな
い通常ライン上の輪郭点の画像データを反転処理の対象
とするか否かを指定する第1の制御情報を有し、前記各
輪郭線構成線分に対応した前記台形領域塗り潰し処理に
おいて、前記各ラインのうち当該輪郭線構成線分の終点
を通過しない通常ラインに対応した処理では、当該ライ
ン上において当該輪郭線構成線分の輪郭点を含めて当該
輪郭点から前記境界線までの各画素を処理対象とする
か、当該輪郭点から前記境界線までの各画素のうち当該
輪郭点を除いた各画素を処理対象とするかを、前記描画
コマンドが有する第1の制御情報に従って各輪郭線構成
線分ごとに決定し、前記メモリに記憶された処理対象と
なった各画素の画像データの反転処理を実行することを
特徴としている。この発明においては、前記各輪郭線構
成線分に対応した前記描画コマンドは、その輪郭線構成
線分の終点を通過する最終ライン上の画素の画像データ
を反転処理の対象とするか否かを指定する第2の制御情
報を有し、前記各輪郭線構成線分に対応した前記台形領
域塗り潰し処理において、前記各ラインのうち前記最終
ラインに対応した処理では、当該ラインを処理対象とす
るか否かを、前記描画コマンドが有する第2の制御情報
に従って各輪郭線構成線分ごとに決定し、当該ラインを
処理対象とする場合には、当該ライン上において前記輪
郭線構成線分の輪郭点から前記境界線までの各画素の全
部または一部を処理対象とし、前記メモリに記憶された
処理対象となった各画素の画像データの反転処理を行う
ようにしてもよい。
構成線分に対応した前記描画コマンドは、その輪郭線構
成線分の終点を通過する最終ライン上の輪郭点を除いた
画素の画像データに対して反転処理を施すか否かを指定
する第3の制御情報を有し、前記最終ラインに対応した
処理において当該ラインを処理対象とする場合に、当該
ライン上の輪郭点を処理対象とするか否か、および当該
ライン上の輪郭点から境界線までの画素のうち輪郭点以
外の画素を処理対象とするか否かを、前記描画コマンド
が有する第3の制御情報に従って各輪郭線構成線分ごと
に決定するようにしてもよい。さらに、前記各輪郭線構
成線分に対応した前記描画コマンドは、その輪郭線構成
線分の終点を通過する最終ライン上の終点に対応した画
素の画像データに対して反転処理を施すか否かを指定す
る第4の制御情報と、最終ライン上に終点を含む複数の
輪郭点が存在する場合に当該終点以外の輪郭点の画像デ
ータに対して反転処理を施すか否かを指定する第5の制
御情報とを有し、前記最終ラインに対応した処理におい
て当該ラインを処理対象とする場合に、当該ライン上の
終点を処理対象とするか否かを前記描画コマンドが有す
る第4の制御情報に従って、当該ライン上の終点以外の
輪郭点を処理対象とするか否かを当該描画コマンドが有
する第5の制御情報に従って、前記各輪郭線構成線分ご
とに決定するようにしてもよい。
は、描画対象物の輪郭線の内部を塗り潰した画像の画像
データをメモリ内に生成する画像処理装置において、前
記描画対象物の輪郭線を構成する各輪郭線構成線分ごと
に、当該輪郭線構成線分の終点の座標を含む描画コマン
ドを受信する手段と、X軸およびY軸からなる2次元座
標系においてX軸方向およびY軸方向に配列された各画
素の中から、前記描画対象物の各輪郭線構成線分を近似
する輪郭点を、予め定められた始点の座標と前記描画コ
マンドに含まれる終点の座標とに基づいて求める輪郭点
取得手段と、前記各輪郭線構成線分ごとに、当該輪郭線
構成線分と前記2次元座標系に予め設定された前記Y軸
に平行な境界線とにより挟まれた台形領域を対象とし
て、当該輪郭線構成線分を横切るX軸に平行な各ライン
に対応した処理からなる台形領域塗り潰し処理を実行す
る台形領域塗り潰し手段とを有し、前記各輪郭線構成線
分に対応した前記描画コマンドは、その輪郭線構成線分
の終点を通過しない通常ライン上の輪郭点の画像データ
を反転処理の対象とするか否かを指定する第1の制御情
報を有し、前記台形領域塗り潰し手段は、前記各ライン
のうち当該輪郭線構成線分の終点を通過しない通常ライ
ンに対応した処理では、当該ライン上において当該輪郭
線構成線分の輪郭点を含めて当該輪郭点から前記境界線
までの各画素の処理対象とするか、当該輪郭点から前記
境界線までの各画素のうち当該輪郭点を除いた各画素を
処理対象とするかを、前記描画コマンドが有する第1の
制御情報に従って各輪郭線構成線分ごとに決定し、前記
メモリに記憶された処理対象となった各画素の画像デー
タの反転処理を実行することを特徴としている。この発
明においても、上記発明と同様に、前記各輪郭線構成線
分に対応した前記描画コマンドは、その輪郭線構成線分
の終点を通過する最終ライン上の画素の画像データを反
転処理の対象とするか否かを指定する第2の制御情報を
有し、前記台形領域塗り潰し手段は、前記各ラインのう
ち前記最終ラインに対応した処理では、当該ラインを処
理対象とするか否かを、前記描画コマンドが有する第2
の制御情報に従って各輪郭線構成線分ごとに決定し、当
該ラインを処理対象とする場合には、当該ライン上にお
いて前記輪郭線構成線分の輪郭点から前記境界線までの
各画素の全部または一部を処理対象とし、前記メモリに
記憶された処理対象となった各画素の画像データの反転
処理を行うようにしてもよい。また、前記各輪郭線構成
線分に対応した前記描画コマンドは、その輪郭線構成線
分の終点を通過する最終ライン上の輪郭点を除いた画素
の画像データに対して反転処理を施すか否かを指定する
第3の制御情報を有し、前記台形領域塗り潰し手段は、
前記最終ラインに対応した処理において当該ラインを処
理対象とする場合に、当該ライン上の輪郭点を処理対象
とするか否か、および当該ライン上の輪郭点から境界線
までの画素のうち輪郭点以外の画素を処理対象とするか
否かを、前記描画コマンドが有する第3の制御情報に従
って各輪郭線構成線分ごとに決定するようにしてもよ
い。さらに、前記各輪郭線構成線分に対応した前記描画
コマンドは、その輪郭線構成線分の終点を通過する最終
ライン上の終点に対応した画素の画像データに対して反
転処理を施すか否かを指定する第4の制御情報と、最終
ライン上に終点を含む複数の輪郭点が存在する場合に当
該終点以外の輪郭点の画像データに対して反転処理を施
すか否かを指定する第5の制御情報とを有し、前記台形
領域塗り潰し手段は、前記最終ラインに対応した処理に
おいて当該ラインを処理対象とする場合に、当該ライン
上の終点を処理対象とするか否かを前記描画コマンドが
有する第4の制御情報に従って、当該ライン上の終点以
外の輪郭点を処理対象とするか否かを当該描画コマンド
が有する第5の制御情報に従って、前記各輪郭線構成線
分ごとに決定するようにしてもよい。
塗り潰し処理手段は、各ラインごとに、当該ライン上の
画素のうちの処理対象となる画素を指定する反転用線画
像データを、前記各制御情報に従って生成するデータ生
成手段と、前記反転用線画像データによって指定される
前記メモリ内の画像データを反転する反転手段とを有す
る構成としてもよい。この場合、前記データ生成手段
は、前記各ライン上の各輪郭点のX座標値に応じた座標
コードを用いた演算を行うことによって前記反転用線画
像データを生成することが望ましい。一方、前記反転手
段は、前記反転用画像データと、これに対応したメモリ
内の画像データとの排他的論理和をとって前記メモリに
おける元のエリアに書き込むようにするが望ましい。
するため、実施の形態について説明する。かかる実施の
形態は、本発明の一態様を示すものであり、この発明を
限定するものではなく、本発明の範囲で任意に変更可能
である。
て、本発明に係る画像処理方法の概要を説明する。ここ
では簡単のため、図1(a)に示すように、X軸方向お
よびY軸方向にそれぞれ8個ずつ、マトリクス状に配列
された画素からなる表示領域を有する表示装置を用い、
これらの各画素の表示内容を示す画像データが、ビデオ
メモリ内の描画エリアに格納される場合を例示する。ま
た、図1(a)中に破線で示すように、座標[3,0]
−[6,3]−[3,6]−[0,3]−[3,0]に
より表される輪郭を有し、当該輪郭によって囲まれた領
域が塗り潰された描画対象物を表示する場合を例に説明
する。
化し、すべての画像データを初期値“0”とする(図1
(a))。次に、描画対象物が表示されるべき領域をX
軸の負方向に見る所定の位置に、Y軸に平行な境界線を
設定する。図1においては、X座標値が「7」となる境
界線が設定された場合を例示している。
郭線を構成する各線分(輪郭線構成線分)を1本ずつ順
次選択し(例えば、図1に示す例では線分A→B→C→
Dの順に選択する)、選択した線分について、当該線分
と上記境界線とによって挟まれた台形領域に属する画素
の画像データを反転する台形塗り潰し処理を繰り返すこ
とにより、描画対象物に対応した画像データを生成す
る。詳述すると、以下の通りである。
うちのいずれかを選択し、当該線分を近似した画素(図
1(b)乃至(e)においては“〇”で示されている。
以下、このような点(画素)を「輪郭点」という)の座
標値を求める。そして、当該線分を横切りX軸方向に並
ぶ(すなわち、Y座標値が同一である)複数の画素の集
合(以下、「ライン」という)ごとに、そのラインに含
まれる輪郭点と境界線とによって挟まれた画素の画像デ
ータを反転するのである。上述した「台形塗り潰し処
理」とは、このような各ラインごとの画像データの反転
処理を、選択した線分を横切るすべてのラインについて
実行する処理を意味する。かかる台形塗り潰し処理を、
描画対象物の輪郭を構成するすべての線分について実行
することにより、図1(e)に示すように、輪郭の内部
が塗り潰された描画対象物の画像データが生成されるの
である。なお、以下では、台形塗り潰し処理の対象とな
る各線分を横切るラインのうち、当該線分の終点を含む
ラインを「最終ライン」といい、最終ライン以外のライ
ンを「通常ライン」という。
の輪郭点の画像データを反転処理するか否か、および最
終ラインに属する画素の画像データに対して反転処理を
施すか否かを、各線分ごとに指定できるようになってい
る。例えば、図1(b)に示すように、線分Aを横切る
通常ライン(すなわち、Y座標値が「0」乃至「2」と
なるライン)上の輪郭点から境界線までの画素のうち、
輪郭点を除いた画素の画像データに対して反転処理を施
す一方、最終ライン(すなわち、Y座標値が「3」とな
るライン)に属する画素の画像データに対しては反転処
理を施さない。
(c)に示すように、通常ライン上の輪郭点の画像デー
タに対しては反転処理を施さず、最終ラインに属する画
素(輪郭点を除く)の画像データに対しては反転処理を
施す。また、線分Cについては、図1(d)に示すよう
に、通常ラインに属する輪郭点の画像データに対して反
転処理を施し、最終ラインに属する画素の画像データに
対しては反転処理を施さない。さらに、最後に台形塗り
潰し処理の対象となる線分Dについては、図1(e)に
示すように、通常ライン上の輪郭点の画像データ、およ
び最終ラインに属する画素の画像データの双方に対して
反転処理を施す。
ン上の輪郭点の画像データに対して反転処理を施すか否
か、および最終ラインに属する画素の画像データに対し
て反転処理を施すか否かを、描画対象物の輪郭を構成す
る各線分ごとに指定することができるようになってい
る。従来の技術にあっては、このような各線分ごとの指
定を行うことができなかったため、本来表示されるべき
表示対象物の形状が歪んで表示されるといった問題があ
った。これに対し、本発明によれば、図1(e)に示す
ように、本来表示されるべき表示対象物のきめ細かい表
示を実現することができるのである。以下、上記各処理
を実現するための構成を説明する。
成を示すブロック図である。図2に示すように、画像処
理装置1は、台形領域塗り潰し描画回路10と、インタ
フェース20と、ビデオメモリ30と、表示回路40と
を有している。ここで、台形領域塗り潰し描画回路10
は、図示しないホストコンピュータからのコマンドをイ
ンタフェース20を介して受け取り、このコマンドに従
って上述した台形塗り潰し処理を行うことにより、様々
な描画対象物の画像データを生成する回路である。ビデ
オメモリ30は、表示対象物の画像データを記憶するメ
モリである。このビデオメモリ30には、台形領域塗り
潰し描画回路10によって生成された画像データが記憶
される他、インタフェース20を介してホストコンピュ
ータから供給される画像データ(台形領域塗り潰し描画
回路10による処理対象とならない画像データ)が記憶
される。表示回路40は、所定の周期で発生する垂直同
期信号および水平同期信号に従い、ビデオメモリ30に
記憶された画像データを読み出し、図示しない表示装置
に供給する回路である。
ェース20に供給される描画コマンドについて説明す
る。この描画コマンドのうち主要なものとして以下の3
つのコマンドがある。 a.SET_BOUND_Xコマンド このSET_BOUND_Xコマンドは、描画対象物の描画を行う
にあたり、上述した境界線のX座標値を台形領域塗り潰
し描画回路10に設定するためのコマンドである。b.
MOVE_TOコマンド このMOVE_TOコマンドは、描画対象物を構成する各線分
のうち、最初に処理対象となる線分の始点のX、Y座標
値を台形領域塗り潰し描画回路10に設定するためのコ
マンドである。すなわち、図1に示した例においては、
このMOVE_TOコマンドによって線分Aの始点の座標
[3,0]が指定されることとなる。 c.FILL_TOコマンド このFILL_TOコマンドは、描画対象物の輪郭を構成する
線分毎に、上述した台形塗り潰し処理の態様を台形領域
塗り潰し描画回路10に指令するコマンドである。この
FILL_TOコマンドは、台形塗り潰し処理の対象となる線
分の終点のX、Y座標値を含んでいる。このFILL_TOコ
マンドに含まれるX、Y座標値は、台形塗り潰し処理に
おいて処理対象となる線分の終点のX、Y座標値として
用いられる他、その直後の台形塗り潰し処理において処
理対象となる線分の始点のX、Y座標値として用いられ
る。すなわち、最初の線分に対応した台形塗り潰し処理
では、上記MOVE_TOコマンドによって当該線分の始点の
X、Y座標値が指定されるが、2番目以降の線分に対応
した台形塗り潰し処理では、その直前の台形塗り潰し処
理の際にFILL_TOコマンドによって指定された終点の
X、Y座標値が当該線分の始点のX、Y座標値として用
いられるのである。さらに、このFILL_TOコマンドは、
6種類のコントロールビットSFT、EDP、ESC、
ESF、EEPおよびENPを有している。
おいては、通常ライン上の輪郭点を描画するか否か(す
なわち、線分自体を描画するか否か)、および最終ライ
ンに属する画素を描画するか否か等を各線分ごとに指定
することができるようになっている。これらの指定を行
うのが、このFILL_TOコマンド内のコントロールビット
(制御情報)である。以下、各コントロールビットにつ
いて説明する。 (1)SFT:台形領域の通常ライン上の輪郭点の画像
データを反転処理するか否かを指定するコントロールビ
ットである。具体的には、反転処理を施す場合にはSF
T=“0”とされ、施さない場合にはSFT=“1”と
される。 (2)EDP:台形塗り潰し処理において最終ラインに
属する画素の画像データに対して反転処理を施すか否か
を指定するコントロールビットである。これらの画像デ
ータに対して反転処理を施さない場合にはEDP=
“0”とされ、施す場合にはEDP=“1”とされる。
また、EDP=“1”である場合には、以下列挙する各
コントロールビットに従って、最終ラインに対応した反
転処理の制御が行われる。 (3)ESC:最終ライン上の輪郭点を除いた画素の画
像データに対して反転処理を施すか否かを指定するコン
トロールビットである。これらの画像データに対して反
転処理を施さない場合にはESC=“0”とされ、施す
場合にはESC=“1”とされる。 (4)ESF:本実施形態においては、台形塗り潰し処
理の対象となる線分を横切る各ライン毎に、当該ライン
上の画素のうちいずれの画素の画像データに対して反転
処理を施すのかを表す塗り潰しパターンFPTNが生成され
るとともに、この塗り潰しパターンFPTNに従って、画像
データの反転処理がなされるようになっている(詳細は
後述する)。ESFは、最終ラインに対応した塗り潰し
パターンFPTNが生成された場合において、その塗り潰し
パターンFPTNを境界線側に1ビットシフトするか否かを
指定するコントロールビットである。具体的には、シフ
トしない場合にはESF=“0”とされ、シフトする場
合にはESF=“1”とされる。 (5)EEP:最終ラインにおいて終点に対応する画素
の画像データに反転処理を施さない場合にはEEP=
“0”とされ、施す場合にはEEP=“1”とされる。 (6)ENP:描画対象物の輪郭線の傾きによっては、
1つのライン上に複数の輪郭点が存在する場合があり得
る(図9参照)。このコントロールビットENPは、最
終ライン上に終点を含む複数の輪郭点が存在する場合
に、当該終点以外の輪郭点の画像データに対して反転処
理を施すか否かを指定するコントロールビットである。
すなわち、最終ライン上の複数の輪郭点のうち終点以外
の輪郭点の画像データを反転処理する場合にはENP=
“1”とされ、反転処理しない場合には“0”とされ
る。
ンドが例えば次のような順序でホストコンピュータから
画像処理装置1のインタフェース20に供給され、台形
領域塗り潰し描画回路10により各コマンドの右側に付
記した各処理が進められる。 SET_BOUND_X 境界線設定 MOVE_TO 始点設定 FILL_TO 第1の終点設定および第1の線分に対応した反転処理 FILL_TO 第2の終点設定および第2の線分に対応した反転処理 : : FILL_TO 最後の終点設定および最後の線分に対応した反転処理
描画回路10の構成を説明する。同図に示すように、台
形領域塗り潰し描画回路10は、直線座標計算部11、
塗り潰しパターン生成回路12および塗り潰し回路13
を含んで構成される。
る各直線の始点座標[xs、ys]と終点座標[xe、
ye]が供給される。これらの各座標は、上述したホス
トコンピュータから供給されるMOVE_TOコマンドまたはF
ILL_TOコマンドから取り出されたものである。直線座標
計算部11は、始点座標[xs、ys]と終点座標[x
e、ye]が与えられるたびに、その始点から終点まで
の直線上の各画素の座標値[xp、yp]を求めて出力
する。さらに詳述すると、直線座標計算部11は、y座
標値ypを初期値ysから順次「1」ずつ進めながら、
各yp毎に、直線上の1または複数の輪郭点(画素)の
座標値[xp、yp]を出力する。
台形塗り潰し処理の対象となる各線分を横切るライン
(通常ラインおよび最終ライン)の全部または一部ごと
に、当該ライン上のいずれの画素の画像データに対して
反転処理を施すのかを表す塗り潰しパターンFPTNを生成
するための手段である。上述したように、輪郭線を構成
する線分の勾配によっては、1つのライン上に複数の輪
郭点が含まれる場合もあるが、この場合、塗り潰しパタ
ーン生成回路12は、対象となるラインに含まれるすべ
ての輪郭点を考慮して塗り潰しパターンFPTNを生成する
ようになっている。なお、本実施形態における塗り潰し
パターン生成回路12は、8ビットの塗り潰しパターン
を生成するものとする。この塗り潰しパターンFPTNの各
ビットは、ビデオメモリ30内の1つの画素の画像デー
タに対応している。つまり、8ビットの塗り潰しパター
ンによって8個の画素の画像データに対する反転処理の
有無を指定することができるのである。また、以下で
は、塗り潰しパターンを適宜「FPTN」と表記する。
ン生成回路12の構成を説明する。同図に示すように、
この塗り潰しパターン生成回路12は、エンコーダ12
1、演算部122、セレクタ123、レジスタ124を
含んで構成される。エンコーダ121は、図5に示すエ
ンコーダテーブルに従って、直線座標計算部11から順
次供給されるxpを座標コードCODに変換する。この図
に示すように、輪郭点のX座標値xpは、コントロール
ビットESC=“1”の場合と、ESC=“0”の場合
とで異なった座標コードCODに変換される。なお、同一
ライン上に複数の輪郭点が存在する場合、直線座標計算
部11からは複数のxpが供給されることとなるが、こ
の場合、エンコーダ121は、供給されたxpを順次座
標コードに変換し、順次演算部122に出力する。
コーダ121から供給される座標コードCODと、レジス
タ124から供給されるFPTNとを用いて所定の演算を行
い、この演算結果をセレクタ123に出力する。ここ
で、演算部122によって実行される演算の内容は、FI
LL_TOコマンド内のSFT、ESF、ESC、EEPお
よびENPの内容に応じて決定される。具体的には、こ
れらの各コントロールビットの内容に応じて、座標コー
ドCODおよびFPTNの論理和を演算するか、論理積を演算
するか、または座標コードCODについて何ら演算を行わ
ないかが決定される。さらに、演算部122は、座標コ
ードCODとFPTNとの間で論理和または論理積を演算した
場合、得られたデータを1ビット分シフトする機能を有
している。このシフトが行われるか否かについても、上
記各コントロールビットの内容に応じて決定される。
タ“11111111”、“00000000”、また
は演算部122から出力される8ビットのデータのうち
のいずれかを選択してレジスタ124に出力する。レジ
スタ124は、セレクタ123から出力されたデータを
塗りつぶしパターンFPTNとして格納する。
塗り潰しパターン生成回路12の動作内容を例示する図
である。同図に示すように、塗り潰しパターン生成回路
12の動作内容、すなわち、演算部122による演算内
容、演算部122におけるデータシフトの有無、および
レジスタ124にセットされるFPTNの初期値は、FILL_T
Oコマンド中の各コントロールビットの内容に応じて決
定されるようになっている。なお、この表に基づいた塗
り潰しパターン生成回路12の具体的な動作について
は、後の動作説明において詳述する。
ーン生成回路12によって生成されたFPTNの内容に応じ
て、ビデオメモリ30内に格納された画像データの反転
処理を行う。具体的には、8ビットのFPTNのうち、ビッ
ト“1”に対応する画素の画像データを反転する一方、
ビット“0”に対応する画素の画像データは反転しない
ようになっている。図7は、かかる処理を行うための塗
り潰し回路13の構成を例示するブロック図である。同
図に示すように、この塗り潰し回路13は、レジスタ1
31、132および134と、演算部133とを含んで
構成される。
回路12によって生成されたFPTNを取り込んで演算部1
33に出力する。一方、レジスタ132は、ビデオメモ
リ30に格納された各画素の画像データのうち、当該FP
TNを用いた反転処理の対象となる画素の画像データを取
り込んで演算部133に出力する。
されるFPTNと、レジスタ132から供給される画像デー
タとの間で各ビット毎の排他的論理和を演算し、演算結
果をレジスタ134に出力する。そして、レジスタ13
4に格納された演算結果が、ビデオメモリ30中の対応
するエリアに格納されるのである。ここで、演算部13
3から出力されるデータは、ビデオメモリ30から読み
出された画像データの各ビットのうち、FPTNのビット
“1”に対応するビットを反転したものとなる。この結
果、ビデオメモリ30に格納された画像データに対し
て、FPTNに応じた反転処理が施されることとなる。
X軸方向に16個、Y軸方向に所定の個数の画素を配列
してなる表示領域に描画対象物を表示させるものとし
(図8参照)、ビデオメモリ30内の描画エリアには、
これらの各画素に対応した画像データが格納されるもの
として説明を進める。
リ30内の描画用エリアが初期化される。具体的には、
ビデオメモリ内の描画エリアに属するすべての画素の画
像データとして、当該各画素の表示色を白とする“0”
が書き込まれる。続いて、境界線のX座標値Xbをオペ
ランドとするSET_BOUND_Xコマンドが実行され、台形領
域塗り潰し描画回路10に境界線のX座標値Xbが設定
される。なお、ここでは、例えば図8(a1)に示すよ
うに、X座標値Xbとして“15”が設定された場合を
想定する。次に、描画対象物の輪郭を構成する最初の線
分の始点の座標値XsおよびYsをオペランドとするMO
VE_TOコマンドが実行され、この始点の座標値Xsおよ
びYsが設定される。
の終点の座標値XeおよびYeを含むFILL_TOコマンド
が順次実行される。具体的には、台形領域塗り潰し描画
回路10内の直線座標計算部11は、インタフェースか
ら受信したFILL_TOコマンドに含まれる座標値と、その
直前に受信したFILL_TOコマンドに含まれる座標値とに
よって特定される線分上の輪郭点の座標を算出して塗り
潰しパターン生成回路12に順次出力する。ただし、描
画対象物の輪郭を構成する最初の線分は、MOVE_TOコマ
ンドに含まれる始点の座標値XsおよびYsと、次に受
信するFILL_TOコマンドに含まれる座標値とによって特
定される。
は、上記FILL_TOコマンドに含まれる各コントロールビ
ットと、上記直線座標計算部11から供給される座標値
とに従って、各ラインごとのFPTNを生成する。一方、塗
り潰し回路13は、このFPTNに従って、ビデオメモリ3
0内の画像データに対して反転処理を施す。以下、この
塗り潰しパターン生成回路12および塗り潰し回路13
の動作について詳述する。なお、本実施形態において
は、各ライン毎に、xp=「0」から「7」までの8個
の画素(以下、「第1群」という)に対応する8ビット
のFPTNと、xp=「8」から「15」までの8個の画素
(以下、「第2群」という)に対応する8ビットのFPTN
とを別個に作成する場合を例示する。また、通常ライン
と最終ラインとでは、FPTNの生成の態様が異なるため、
以下では、各々の場合に分けて説明する。
に、FILL_TOコマンドに含まれるコントロールビットS
FTの内容に応じて、生成されるFPTNの態様が決定され
る。なお、SFT以外のコントロールビットは、最終ラ
インについて生成されるFPTNの内容を指定するためのも
のであるため、通常ラインの描画パターンは、これらの
コントロールビットとは無関係に(すなわち、SFTの
内容のみに依存して)生成される。また、エンコーダ1
21は、通常ラインに属する画素のX座標値が直線座標
計算部11から供給されると、図5に示したエンコード
テーブルのうち、ESC=“1”に対応する座標コード
CODを読み出して演算部122に出力するようになって
いる。
“00000000”に設定される。また、塗り潰しパ
ターン生成回路12内の演算部122は、座標コードCO
DとFPTNとの論理和を演算し、この演算結果にシフトを
施すことなく出力する。以下、図8(a1)および(a
2)を参照して、この場合に生成されるFPTNについて説
明する。なお、同図においては、xp=「3」および
「4」の画素が輪郭点となる場合を想定している。
「3」を受け取ると、エンコーダ121は、エンコード
テーブルを参照することにより、このxp=「3」を座
標コードCOD“00011111”に変換して演算部1
22に出力する。一方、演算部122は、こうしてエン
コーダ121から供給される座標コードCODと、レジス
タ124に格納されたFPTN(初期値)との間で各ビット
毎の論理和を演算し、この結果得られたデータ“000
11111”を出力する。このデータは、セレクタ12
3によって選択・出力され、新たなFPTNとしてレジスタ
124に格納される(図8(a2)中のステップ2)。
部11から受け取ったxp=「4」を受け取ると、これ
を座標コードCOD“00001111”に変換して出力
する。そして、演算部122は、この座標コードCOD
と、上記新たなFPTNとの間で各ビット毎の論理和を演算
して出力する。こうして得られたデータ“000111
11”は、セレクタ123によって選択・出力され、FP
TNとしてレジスタ124に格納される(同図ステップ
3)。
べての輪郭点についての処理が終了し、第1群に対応す
るFPTNが生成されると、塗り潰し回路13は、当該FPTN
のうちのビット“1”に対応する画素の画像データにつ
いて反転処理を行う。具体的には、まず、塗り潰し回路
13内のレジスタ131は、FPTNをレジスタ124から
取り込んで演算部133に出力する。一方、レジスタ1
32は、ビデオメモリ30に格納された画像データのう
ち、当該FPTNに対応する画素の画像データを取り込んで
演算部133に出力する。そして、演算部133は、レ
ジスタ131からのFPTNと、レジスタ132からの画像
データとの間で各ビット毎の排他的論理和を演算し、演
算結果をレジスタ134に出力する。レジスタ134
は、この演算結果を取り込んで、ビデオメモリ30上の
対応する画像データを更新する(図8(a2)において
は「Memory Write」と表記されている)。
1によってレジスタ124内のFPTNが読み出されると、
塗り潰しパターン生成回路12内のセレクタ123は、
8ビット分のデータ“1”を選択して出力する。このデ
ータ“11111111”は、第2群に対応するFPTNと
してレジスタ124に格納される(図8(a2)におけ
るステップ4)。さらに、このFPTNは、塗り潰し回路1
3内のレジスタ131によって取り込まれる。一方、レ
ジスタ132は、当該第2群に対応する画素の画像デー
タを取り込んで演算部133に出力する。この後、演算
部133によって両者の排他的論理和が演算された後、
この演算結果がレジスタ134に格納される。この場
合、FPTNのすべてのビットは“1”であるから、第2群
に属するすべての画素の画像データが反転されることと
なる。
FTが“0”の場合には、図8(a1)に示すように、
当該通常ライン上の輪郭点(xp=「3」および
「4」)を含めて当該輪郭点から境界線までの各画素の
画像データに対して反転処理が行われることとなる。な
お、図8および以下に示す各図においては、斜線が付さ
れた“□”が反転処理の対象となる画素を表し、斜線が
付されていない“□”が反転処理の対象とならない画素
を表している。
“11111111”に設定される。また、演算部12
2は、座標コードCODとFPTNとの間で各ビット毎の論理
積を演算し、この演算結果を1ビット分シフトして出力
する。
座標コードCOD“00011111”がエンコーダ12
1から演算部122に出力される。そして、演算部12
2は、この座標コードCODと、レジスタ124に初期値
として格納されているFPTNとの間で各ビット毎の論理積
を演算するとともに、この演算結果“0001111
1”を1ビット分シフトして出力する。このデータ“0
0001111”は、新たなFPTNとしてレジスタ124
に格納される(図8(b2)におけるステップ2)。次
に、xp=「4」を変換した座標コードCOD“0000
1111”がエンコーダ121から演算部122に出力
される。演算部122は、この座標コードCODと、先に
レジスタ124に格納されたFPTN“00001111”
との間で各ビット毎の論理積を演算するとともに、この
演算結果を1ビット分シフトして出力する。このデータ
“00000111”は、当該第1群のFPTNとしてレジ
スタ124に格納される(図8(b2)におけるステッ
プ3)。この結果、ビデオメモリ内の当該第1群に属す
る画素の画像データは、当該FPTNに従って反転処理され
る。さらに、セレクタ123により、レジスタ124に
は第2群に対応するFPTN“11111111”がセット
され、ビデオメモリ内の第2群に属する画素の画像デー
タは、当該FPTNに従って反転処理される(図8(b2)
におけるステップ4)。この結果、コントロールビット
SFT=“1”の場合には、図8(b1)に示すよう
に、通常ライン上の輪郭点から境界線までの各画素のう
ち当該輪郭点を除いた画素の画像データについて反転処
理が行われることとなる。このように、通常ラインにお
いては、コントロールビットSFTの内容に応じて、輪
郭点の画像データに対して反転処理を施すか否かが指定
されるのである。
の最終ラインについての塗り潰しの態様は、コントロー
ルビットEDP、ESC、ESF、EEPおよびENP
の内容によって決定される。なお、コントロールビット
SFTは、通常ラインの塗り潰しの指定にのみ関与する
ものであり、最終ラインの塗り潰しの態様には無関係で
ある。
ラインに反転処理を施すか否かを指定するためのビット
である。このコントロールビットEDPが“0”である
場合には、図6(b)に示すように、当該最終ラインに
ついては何ら処理が行われない。すなわち、当該最終ラ
インに属する画素の画像データについては、何ら反転処
理が施されないこととなる。
である場合、図6(b)中の(1)乃至(11)に示す
ように、他のコントロールビットESC、ESF、EE
P、ENPの内容に応じて、最終ラインに属する画素の
画像データに施される反転処理の態様が決定されること
となる。以下、これらのコントロールビットの内容ごと
に、反転処理の内容を説明する。なお、以下では、図9
に示すように、xp=「3」乃至「5」となる3つの輪
郭点が最終ライン上にある場合を想定する。また、以下
においては、図9(1a)乃至(4a)ならびに図10
(5a)乃至(11a)に示すように、X軸の正方向に
輪郭線が延びて終点に至る場合、すなわち、終点のX座
標値が、終点以外の輪郭点のX座標値よりも大きい場合
を想定する。
P]=[0,*,0,0]の場合 この場合、図6(b)に示すように、FPTNの初期値は
“00000000”に設定される。また、演算部12
2は、すべての輪郭点について何ら演算を行わない(図
6(b)においては、「NOP」として表記されてい
る)。
“00000000”が初期値としてセットされる。一
方、エンコーダ121からは、まずxp=「3」に対応
したコードCOD“00010000”が出力されるが、
図6(b)によれば、演算部122による演算は「NO
P」である。従って、当該コードCODとFPTNの初期値と
の間では何ら演算が行われることなく、当該FPTNの内容
は保持されたままとなる(図11(1)のステップ
2)。エンコーダ121からxp=「4」および「5」
に対応したコードCODが出力された場合についても同様
に、FPTNの内容はそのまま保持され、この結果、この最
終ラインに属するすべての輪郭点について処理が終了し
た時点で、レジスタ124には第1群のFPTNとして“0
0000000”が格納されていることとなる(同図ス
テップ3および4)。この場合、FPTNのすべてのビット
が“0”であるから、塗り潰し回路13は、ビデオメモ
リ30に格納されている各画素の画像データであって、
当該最終ラインに対応する第1群の画像データについて
は、何ら反転処理を行わない。なお、上記のように、第
1群の画素のうち最も境界線側にある画素の画像データ
に対して反転処理をしない場合には、第2群の画素につ
いても反転処理を施す必要はない。従って、この場合、
第2群のFPTNは生成する必要はない。
P]=[0,*,0,1]の場合 この場合、図6(b)に示すように、FPTNの初期値は
“00000000”に設定される。また、演算部12
2は、最終ライン上の終点については何ら演算を行わ
ず、終点以外の輪郭点についてはコードCODとFPTNとの
間で各ビット毎の論理和を演算して当該演算結果をシフ
トすることなく出力する。
の輪郭点に係るxp=「3」に対応した座標コードCOD
“00010000”が出力されると、演算部122
は、この座標コードCODとFPTNの初期値との間で各ビッ
ト毎の論理和を演算する。そして、この演算の結果得ら
れたデータ“00010000”が新たなFPTNとしてレ
ジスタ125に格納される(図11(2)のステップ
2)。次に、エンコーダ121から終点以外の輪郭点に
係るxp=「4」に対応する座標コードCOD“0000
1000”が供給された場合も同様に、この座標コード
CODとFPTN“00010000”との間で各ビット毎の
論理和が演算され、この結果得られたデータ“0001
1000”が新たなFPTNとしてレジスタ124に格納さ
れる(同図ステップ3)。一方、次にエンコーダ121
から出力されるのは、終点に係るxp=「5」に対応し
たコードCOD“00000100”である。この場合、
この座標コードCODとFPTNとの間では何ら演算が行われ
ることなく、当該FPTNの内容は保持されたままとなる。
以上の結果、すべての輪郭点について処理が終了した時
点で、レジスタ124に格納されているFPTNは“000
11000”となる(同図ステップ4)。
FPTNのうち、“1”がセットされたビットに対応する画
素の画像データについて反転処理を行う。具体的には、
ビデオメモリ30に既に格納されている各画素の画像デ
ータ(または画像データの初期値“0”)のうち、FPTN
の“1”に対応する画素の画像データのみを反転処理す
る。この結果、図9(2)に示すように、xp=「3」
および「4」に対応する画像データ、すなわち、最終ラ
イン上の輪郭点のうち、終点以外の輪郭点に対応する画
像データのみについて反転処理が行われる一方、輪郭点
以外の画素に対応する画像データについては反転処理が
行われないこととなる。
P]=[0,*,1,0]の場合 この場合、図6(b)に示すように、FPTNの初期値は
“00000000”に設定される。また、演算部12
2は、最終ライン上の終点については座標コードCODとF
PTNとの間で各ビット毎の論理和を演算して演算結果を
シフトすることなく出力し、終点以外の輪郭点について
は何ら演算を行わない。
の輪郭点に係るxp=「3」または「4」に対応する座
標コードCODが出力されても、FPTNの初期値“0000
0000”は保持される(図11(3)ステップ1乃至
3)。一方、次にエンコーダ121から出力されるの
は、終点に係るxp=「5」に対応した座標コードCOD
“00000100”である。この場合、演算部122
は、この座標コードCODと、レジスタ124に格納され
たFPTNとの間で各ビット毎の論理和を演算する。そし
て、この結果得られたデータ“00000100”が当
該最終ラインの第1群に対応するFPTNとしてレジスタ1
24に格納されるのである(同図ステップ4)。
いる各画素の画像データのうち、FPTNの“1”に対応す
る画素の画像データのみが塗り潰し回路13によって反
転処理される。具体的には、図9(3)に示すように、
xp=「5」に対応する画素の画像データ、すなわち、
最終ライン上の輪郭点のうち、終点に対応する画像デー
タのみについて反転処理が行われる一方、当該ラインに
属するその他の画素(終点以外の輪郭点を含む)の画像
データについては反転処理が行われないこととなる。
P]=[0,*,1,1]の場合 この場合、図6(b)に示すように、FPTNの初期値は
“00000000”に設定される。また、演算部12
2は、座標コードCODとFPTNとの間で各ビット毎の論理
和を演算し、演算結果をシフトすることなく出力する。
座標コードCOD“00010000”とFPTNの初期値と
の間で各ビット毎の論理和が演算され、この演算結果
“00010000”がレジスタ124にFPTNとして格
納される(図11(4)ステップ2)。xp=「4」に
対応する座標コードCOD“00001000”、および
xp=「5」に対応する座標コードCOD“000001
00”に関しても同様の処理が行われ、これにより得ら
れたデータ“00011100”が当該最終ラインの第
1群に対応するFPTNとしてレジスタ124に格納される
(同図ステップ3および4)。この結果、図9(4)に
示すように、ビデオメモリ30に格納されている各画素
の画像データのうち、xp=「3」乃至「5」に対応す
る画素の画像データ、すなわち、最終ライン上のすべて
の輪郭点に対応する画像データについて反転処理が行わ
れる一方、輪郭点以外の画素の画像データに対しては反
転処理が行われないこととなる。
ントロールビットESCが“0”である場合には、輪郭
点と境界線とに挟まれた画素の画像データに対しては反
転処理が行われない一方、輪郭点(終点を含む)に対応
する画素の画像データについての反転処理の内容がコン
トロールビットESF、EEP、ENPに応じて制御さ
れることとなる。これに対し、コントロールビットES
Cが“1”である場合には、輪郭点と境界線とに挟まれ
た画素の画像データについて反転処理が行われることと
なる。以下、コントロールビットESCが“1”である
場合になされる処理の詳細について説明する。
P]=[1,*,0,0]の場合 この場合、図6(b)に示すように、FPTNの初期値は
“11111111”に設定される。また、演算部12
2は、座標コードCODとFPTNとの間で各ビット毎の論理
積を演算し、当該演算結果をシフトして出力する。
力されるxp=「3」に対応する座標コードCOD“00
011111”とFPTNの初期値との間で各ビット毎の論
理積が演算され、この演算結果を1ビット分シフトして
得られるデータ“00001111”が新たなFPTNとし
てレジスタ124に格納される(図12(5)ステップ
2)。xp=「4」に対応する座標コードCOD“000
01111”、およびxp=「5」に対応する座標コー
ドCOD“00000111”に関しても同様の処理が行
われ、これにより得られたデータ“00000011”
が当該最終ラインの第1群に対応するFPTNとしてレジス
タ124に格納される(同図ステップ3および4)。塗
り潰し回路13は、この最終ラインの第1群に対応する
FPTNに従ってビデオメモリ30に格納された画像データ
を反転する。
界線側に位置する画素に対応するビットは“1”であ
る。この場合、塗り潰しパターン生成回路12内のセレ
クタ123は、8ビット分の“1”を選択してレジスタ
124に出力する。この結果、レジスタ124には、第
2群に対応するFPTN“11111111”が格納される
(同図ステップ5)。続いて、塗り潰し回路13は、こ
の第2群のFPTNに従い、ビデオメモリ30に格納された
画像データのうち、最終ラインの第2群に対応する画像
データを、上記FPTNに従って反転処理する。
ように、ビデオメモリ30に格納された最終ライン上の
輪郭点から境界線までの各画素のうち輪郭点を除いた画
素の画像データについて反転処理が行われることとな
る。
である場合、第1群のうちのxp=「7」に対応するビ
ットは“1”となるため、最終ラインのうちの第2群に
属するすべての画素の画像データについて反転処理が施
される。従って、以下の(6)乃至(11)において
は、最終ラインの第1群に属する画素の画像データにつ
いて施される反転処理についてのみ説明し、第2群に属
する画素の画像データについては説明を省略する。
P]=[1,0,0,1]の場合 この場合、図6(b)に示すように、FPTNの初期値は
“00000000”に設定される。また、演算部12
2は、最終ライン上の終点については何ら演算を行わず
(すなわち、FPTNがそのまま保持される)、終点以外の
輪郭点については座標コードCODとFPTNとの間で各ビッ
ト毎の論理和を演算して当該演算結果をシフトすること
なく出力する。
「3」に対応する座標コードCOD“00011111”
がエンコーダ121から出力されると、演算部122
は、この座標コードCODと、FPTNの初期値との間で各ビ
ット毎の論理和を演算して出力する。この演算結果“0
0011111”は、新たなFPTNとしてレジスタ124
に格納される(図12(6)ステップ2)。エンコーダ
121から終点以外の輪郭点に係るxp=「4」に対応
する座標コードCOD“00001111”が出力された
場合も同様に、この座標コードCODとFPTNとの間で各ビ
ットごとの論理和が演算され、この演算結果“0001
1111”がFPTNとしてレジスタ124に格納される
(同図ステップ3)。一方、次にエンコーダ121から
出力されるのは、終点に係るxp=「5」に対応した座
標コードCOD“00000111”である。この場合、
演算部122は、当該座標コードCODについて何ら演算
を行わない。すなわち、レジスタ124に格納されたFP
TNがそのまま保持される(同図ステップ4)。以上の結
果、すべての輪郭点について処理が終了した時点で、レ
ジスタ124に格納されているFPTNは“0001111
1”となり、塗り潰し回路13は、この塗り潰しパター
ンに従って第1群に属する画素の画像データを反転す
る。この結果、図10(6a)に示すように、ビデオメ
モリ30に格納された最終ライン上において輪郭点を含
めて当該輪郭点から前記境界線までの各画素の画像デー
タついて反転処理が行われる。
P]=[1,0,1,0]の場合 この場合、図6(b)に示すように、FPTNの初期値は
“00000000”に設定される。また、演算部12
2は、最終ライン上の終点については座標コードCODとF
PTNとの間で各ビット毎の論理和を演算し、終点以外の
輪郭点については何ら演算を行わない。
の輪郭点に係るxp=「3」または「4」に対応する座
標コードCODが出力されても、演算部122は、この座
標コードCODとFPTNとの間で何ら演算を行わない。次
に、終点に係る座標コード“00000111”がエン
コーダ121から出力されると、演算部122は、この
座標コードCODと、レジスタ124に格納されたFPTN
(初期値)との間で各ビット毎の論理和を演算する。そ
して、この結果得られた“00000111”が当該最
終ラインの第1群のFPTNとしてレジスタ124に格納さ
れるのである(図12(7)ステップ2)。この結果、
図10(7a)に示すように、ビデオメモリ30に格納
された各画素の画像データのうち、最終ライン上の終点
の画像データと、当該終点から境界線側までの各画素の
画像データとに対して反転処理が行われる一方、終点以
外の輪郭点の画像データに対しては反転処理が行われな
い。
P]=[1,0,1,1]の場合 この場合、図6(b)に示すように、FPTNの初期値は
“00000000”に設定される。また、演算部12
2は、すべての輪郭点について座標コードCODとFPTNと
の間で各ビット毎の論理和を演算し、当該演算結果をシ
フトすることなく出力する。
xp=「3」に対応する座標コードCOD“000111
11”と、FPTNの初期値との間で各ビット毎の論理和が
演算され、この演算結果“00011111”が新たな
FPTNとしてレジスタ124に格納される(図12(8)
ステップ2)。xp=「4」およびxp=「5」に関し
ても同様の処理が行われ、結局、演算結果“00011
111”が当該最終ラインの第1群のFPTNとしてレジス
タ124に格納される(同図ステップ4)。この結果、
図10(8a)に示すように、ビデオメモリ30に格納
された各画素の画像データのうち、すべての輪郭点(終
点を含む)の画像データと、これらの輪郭点から境界線
側までの各画素の画像データについて反転処理が行われ
る。
P]=[1,1,0,1]の場合 この場合、図6(b)に示すように、FPTNの初期値は
“11111111”に設定される。また、演算部12
2は、最終ライン上の終点については何ら演算を行わ
ず、終点以外の輪郭点については座標コードCODとFPTN
との間で各ビット毎の論理積を演算して当該演算結果を
1ビット分シフトした後に出力する。
「3」に対応する座標コードCOD“00011111”
とFPTN(初期値)との間で各ビット毎の論理積が演算さ
れ、この演算結果を1ビット分シフトして得られるデー
タ“00001111”が新たなFPTNとしてレジスタ1
24に格納される(図13(9)ステップ2)。同様
に、同じく終点以外の輪郭点に係るxp=「4」に対応
する座標コードCOD“00001111”と新たなFPTN
との間で論理積演算、および演算結果のシフトが行わ
れ、この結果得られたデータ“00000111”が新
たなFPTNとしてレジスタ124に格納される(同図ステ
ップ3)。一方、終点に係るxp=「5」については何
ら演算は行われず、レジスタ124のFPTNはそのまま保
持される。以上の結果、当該最終ラインの第1群につい
て得られるFPTNは“00000111”となる。この結
果、図10(9a)に示すように、ビデオメモリ30に
格納された各画素の画像データのうち、終点の画像デー
タと、当該終点から境界線側の画素の画像データについ
て反転処理が行われる一方、終点以外の輪郭点に対応す
る画素の画像データについては反転処理が行われない。
P]=[1,1,1,0]の場合 この場合、図6(b)に示すように、FPTNの初期値は
“11111111”に設定される。また、演算部12
2は、最終ライン上の終点については座標コードCODとF
PTNとの論理積演算、および演算結果のシフトを行う一
方、終点以外の輪郭点については何ら演算を行わない。
「3」または「4」に対応する座標コードCODがエンコ
ーダ121から出力されても、演算部122はこの座標
コードCODとFPTNとの間で何ら演算を行わず、この結
果、FPTNは初期値のまま保持される。次に、終点に係る
xp=「5」に対応する座標コードCOD“000001
11”がエンコーダ121から出力されると、演算部1
22は、この座標コードCODと、レジスタ124に格納
されたFPTN(初期値)との間で各ビット毎の論理積を演
算し、演算結果を1ビット分シフトする。そして、この
結果得られたデータ“00000011”が当該最終ラ
インの第1群のFPTNとしてレジスタ124に格納される
のである(図13(10)ステップ2)。この結果、図
10(10a)に示すように、ビデオメモリ30に格納
された当該最終ライン上の輪郭点から境界線までの各画
素の画像データのうち、輪郭点(終点を含む)を除いた
各画素の画像データについて反転処理が行われる。
P]=[1,1,1,1]の場合 この場合、図6(b)に示すように、FPTNの初期値は
“11111111”に設定される。また、演算部12
2は、すべての輪郭点について座標コードCODとFPTNと
の間で各ビット毎の論理積を演算し、この演算結果を1
ビット分シフトして出力する。
xp=「3」に対応する“00011111”と、FPTN
の初期値との間で各ビット毎の論理積が演算され、この
演算結果を1ビット分シフトして得られるデータ“00
001111”が新たなFPTNとしてレジスタ124に格
納される(図13(11)ステップ2)。終点以外の輪
郭点に係るxp=「4」および終点に係るxp=「5」
に対応する座標コードCODが供給された場合も同様の処
理がなされ、当該最終ラインのFPTNとして“00000
011”が得られる(同図ステップ3および4)。この
結果、図10(11a)に示すように、ビデオメモリ3
0に格納された輪郭点から境界線までの画素のうち、輪
郭点(終点を含む)を除いた画素の画像データに対して
反転処理が行われる。
“1”がセットされている場合には、輪郭点と境界線と
の間に位置する画素の画像データについて反転処理が行
われる。さらに、その他のコントロールビットESF、
EEPおよびENPの内容に応じて、終点以外の輪郭点
および終点に対応する画素の画像データを反転処理の対
象とするか否かが決定されるのである。
郭線が延びて終点に至る場合、すなわち、終点のX座標
値が、終点以外の輪郭点のX座標値よりも大きい場合を
例示したが、X軸の負方向に輪郭線が延びて終点に至る
場合、すなわち、終点のX座標値が、終点以外の輪郭点
のX座標値よりも小さい場合にも、各コントロールビッ
トの内容に応じて上記(1)乃至(11)の処理が実行
され、この結果得られる塗り潰しパターンは図9(1
b)乃至(4b)ならびに図10(5b)乃至(11
b)のようになる。
画対象物の輪郭を構成する各線分ごとに、ビデオメモリ
内の画像データについて施すべき反転処理の内容を指定
することができる。具体的には、通常ライン上の輪郭
点に対応する画像データを反転するか否か、最終ライ
ンに属する画素の画像データを反転するか否か、最終
ライン上の輪郭点に対応する画像データを反転するか否
かを、各線分ごとに指定することができるのである。こ
の結果、前掲図1に示したように、描画対象物の表示の
ひずみ等を伴うことなく、きめ細かい表示を実現するこ
とができるという利点を得ることができる。さらに、本
実施形態においては、最終ライン上に複数の輪郭点が存
在する場合であっても、終点に対応する画像データに対
する反転処理の有無と、終点以外の輪郭点に対応する画
像データに対する反転処理の有無とを別個に指定するこ
とができるため、従来の技術と比較して、きめ細かい表
示を実現することができる。
塗り潰しパターンFPTNを生成し、この塗り潰しパターン
FPTNに応じて画像データの反転処理を行うようになって
いる。すなわち、複数の画素毎に1回の割合でメモリに
アクセスすればよいから、描画処理に要する時間を短縮
することができるという利点がある。
を2つの群に分割し、これらの群の各々について塗り潰
しパターンを生成するようにしたが、これに限らず、1
ラインのすべての画素について塗り潰しパターンを生成
するようにしてもよい。また、1ラインに属する画素の
個数が多い場合には、各ラインをさらに多くの群に分割
し、各群について塗り潰しパターンを生成するようにし
てもよい。
ば、描画対象物の輪郭線上の点の描画の有無等を、描画
対象物の輪郭を構成する各線分ごとに指定することがで
きるため、きめ細かい表示を実現することができる。
図である。
構成を例示するブロック図である。
の構成を例示するブロック図である。
の構成を例示するブロック図である。
る。
理の内容を示す図である。
するブロック図である。
である。
である。
図である。
の内容を例示する図である。
の内容を例示する図である。
の内容を例示する図である。
路、11……直線座標計算部(輪郭点取得手段)、12
……塗り潰しパターン生成回路(データ生成手段)、1
21……エンコーダ、122……演算部、123……セ
レクタ、124……レジスタ、13……塗り潰し回路
(反転手段)、131,132,134……レジスタ、
133……演算部、20……インタフェース、30……
ビデオメモリ、40……表示回路。
Claims (11)
- 【請求項1】 描画対象物の輪郭線の内部を塗り潰した
画像の画像データをメモリ内に生成する画像処理方法に
おいて、前記描画対象物の輪郭線を構成する各輪郭線構成線分ご
とに、当該輪郭線構成線分の終点の座標を含む描画コマ
ンドを受信する過程と、 X軸およびY軸からなる2次元座標系においてX軸方向
およびY軸方向に配列された各画素の中から、前記描画
対象物の各輪郭線構成線分を近似する輪郭点を、予め定
められた始点の座標と前記描画コマンドに含まれる終点
の座標とに基づいて求める過程と、 前記各輪郭線構成線分ごとに、当該輪郭線構成線分と前
記2次元座標系に予め設定された前記Y軸に平行な境界
線とにより挟まれた台形領域を対象として、当該輪郭線
構成線分を横切るX軸に平行な各ラインに対応した処理
からなる台形領域塗り潰し処理を実行する過程とを有
し、前記各輪郭線構成線分に対応した前記描画コマンドは、
その輪郭線構成線分の終点を通過しない通常ライン上の
輪郭点の画像データを反転処理の対象とするか否かを指
定する第1の制御情報を有し、 前記各輪郭線構成線分に対応した前記台形領域塗り潰し
処理において、前記 各ラインのうち当該輪郭線構成線分
の終点を通過しない通常ラインに対応した処理では、当
該ライン上において当該輪郭線構成線分の輪郭点を含め
て当該輪郭点から前記境界線までの各画素を処理対象と
するか、当該輪郭点から前記境界線までの各画素のうち
当該輪郭点を除いた各画素を処理対象とするかを、前記
描画コマンドが有する第1の制御情報に従って各輪郭線
構成線分ごとに決定し、前記メモリに記憶された処理対
象となった各画素の画像データの反転処理を実行するこ
とを特徴とする画像処理方法。 - 【請求項2】 前記各輪郭線構成線分に対応した前記描
画コマンドは、その輪郭線構成線分の終点を通過する最
終ライン上の画素の画像データを反転処理の対象とする
か否かを指定する第2の制御情報を有し、 前記各輪郭線構成線分に対応した前記台形領域塗り潰し
処理において、前記 各ラインのうち前記最終ラインに対
応した処理では、当該ラインを処理対象とするか否か
を、前記描画コマンドが有する第2の制御情報に従って
各輪郭線構成線分ごとに決定し、当該ラインを処理対象
とする場合には、当該ライン上において前記輪郭線構成
線分の輪郭点から前記境界線までの各画素の全部または
一部を処理対象とし、前記メモリに記憶された処理対象
となった各画素の画像データの反転処理を行うことを特
徴とする請求項1に記載の画像処理方法。 - 【請求項3】 前記各輪郭線構成線分に対応した前記描
画コマンドは、その輪郭線構成線分の終点を通過する最
終ライン上の輪郭点を除いた画素の画像データに対して
反転処理を施すか否かを指定する第3の制御情報を有
し、 前記最終ラインに対応した処理において当該ラインを処
理対象とする場合に、当該ライン上の輪郭点を処理対象
とするか否か、および当該ライン上の輪郭点から境界線
までの画素のうち輪郭点以外の画素を処理対象とするか
否かを、前記描画コマンドが有する第3の制御情報に従
って各輪郭線構成線分ごとに決定することを特徴とする
請求項2に記載の画像処理方法。 - 【請求項4】 前記各輪郭線構成線分に対応した前記描
画コマンドは、その輪郭線構成線分の終点を通過する最
終ライン上の終点に対応した画素の画像データに対して
反転処理を施すか否かを指定する第4の制御情報と、最
終ライン上に終点を含む複数の輪郭点が存在する場合に
当該終点以外の輪郭点の画像データに対して反転処理を
施すか否かを指定する第5の制御情報とを有し、 前記最終ラインに対応した処理において当該ラインを処
理対象とする場合に、当該ライン上の終点を処理対象と
するか否かを前記描画コマンドが有する第4の制御情報
に従って、当該ライン上の終点以外の輪郭点を処理対象
とするか否かを当該描画コマンドが有する第5の制御情
報に従って、前記各輪郭線構成線分ごとに決定すること
を特徴とする請求項2または3に記載の画像処理方法。 - 【請求項5】 描画対象物の輪郭線の内部を塗り潰した
画像の画像データをメモリ内に生成する画像処理装置に
おいて、前記描画対象物の輪郭線を構成する各輪郭線構成線分ご
とに、当該輪郭線構成線分の終点の座標を含む描画コマ
ンドを受信する手段と、 X軸およびY軸からなる2次元座標系においてX軸方向
およびY軸方向に配列された各画素の中から、前記描画
対象物の各輪郭線構成線分を近似する輪郭点を、予め定
められた始点の座標と前記描画コマンドに含まれる終点
の座標とに基づいて求める輪郭点取得手段と、 前記各輪郭線構成線分ごとに、当該輪郭線構成線分と前
記2次元座標系に予め設定された前記Y軸に平行な境界
線とにより挟まれた台形領域を対象として、当該輪郭線
構成線分を横切るX軸に平行な各ラインに対応した処理
からなる台形領域塗り潰し処理を実行する台形領域塗り
潰し手段とを有し、前記各輪郭線構成線分に対応した前記描画コマンドは、
その輪郭線構成線分の終点を通過しない通常ライン上の
輪郭点の画像データを反転処理の対象とするか否かを指
定する第1の制御情報を有し、 前記台形領域塗り潰し手段は、 前記各ラインのうち当該輪郭線構成線分の終点を通過し
ない通常ラインに対応した処理では、当該ライン上にお
いて当該輪郭線構成線分の輪郭点を含めて当該輪郭点か
ら前記境界線までの各画素の処理対象とするか、当該輪
郭点から前記境界線までの各画素のうち当該輪郭点を除
いた各画素を処理対象とするかを、前記描画コマンドが
有する第1の制御情報に従って各輪郭線構成線分ごとに
決定し、前記メモリに記憶された処理対象となった各画
素の画像データの反転処理を実行することを特徴とする
画像処理装置。 - 【請求項6】 前記各輪郭線構成線分に対応した前記描
画コマンドは、その輪郭線構成線分の終点を通過する最
終ライン上の画素の画像データを反転処理の対象とする
か否かを指定する第2の制御情報を有し、 前記台形領域塗り潰し手段は、前記各ラインのうち前記
最終ラインに対応した処理では、当該ラインを処理対象
とするか否かを、前記描画コマンドが有する第2の制御
情報に従って各輪郭線構成線分ごとに決定し、当該ライ
ンを処理対象とする場合には、当該ライン上において前
記輪郭線構成線分の輪郭点から前記境界線までの各画素
の全部または一部を処理対象とし、前記メモリに記憶さ
れた処理対象となった各画素の画像データの反転処理を
行うことを特徴とする請求項5に記載の画像処理装置。 - 【請求項7】 前記各輪郭線構成線分に対応した前記描
画コマンドは、その輪郭線構成線分の終点を通過する最
終ライン上の輪郭点を除いた画素の画像データに対して
反転処理を施すか否かを指定する第3の制御情報を有
し、 前記台形領域塗り潰し手段は、前記最終ラインに対応し
た処理において当該ラインを処理対象とする場合に、当
該ライン上の輪郭点を処理対象とするか否か、および当
該ライン上の輪郭点から境界線までの画素のうち輪郭点
以外の画素を処理対象とするか否かを、前記描画コマン
ドが有する第3の制御情報に従って各輪郭線構成線分ご
とに決定することを特徴とする請求項6に記載の画像処
理装置。 - 【請求項8】 前記各輪郭線構成線分に対応した前記描
画コマンドは、その輪郭線構成線分の終点を通過する最
終ライン上の終点に対応した画素の画像データに対して
反転処理を施すか否かを指定する第4の制御情報と、最
終ライン上に終点を含む複数の輪郭点が存在する場合に
当該終点以外の輪郭点の画像データに対して反転処理を
施すか否かを指定する第5の制御情報とを有し、 前記台形領域塗り潰し手段は、前記最終ラインに対応し
た処理において当該ラインを処理対象とする場合に、当
該ライン上の終点を処理対象とするか否かを前記描画コ
マンドが有する第4の制御情報に従って、当該ライン上
の終点以外の輪郭点を処理対象とするか否かを当該描画
コマンドが有する第5の制御情報に従って、前記各輪郭
線構成線分ごとに決定することを特徴とする請求項6ま
たは7に記載の画像処理装置。 - 【請求項9】 前記台形領域塗り潰し処理手段は、 各ラインごとに、当該ライン上の画素のうちの処理対象
となる画素を指定する反転用線画像データを、前記各制
御情報に従って生成するデータ生成手段と、 前記反転用線画像データによって指定される前記メモリ
内の画像データを反転する反転手段とを有することを特
徴とする請求項5から8のいずれかに記載の画像処理装
置。 - 【請求項10】 前記データ生成手段は、 前記各ライン上の各輪郭点のX座標値に応じた座標コー
ドを用いた演算を行うことによって前記反転用線画像デ
ータを生成することを特徴とする請求項9に記載の画像
処理装置。 - 【請求項11】 前記反転手段は、 前記反転用画像データと、これに対応したメモリ内の画
像データとの排他的論理和をとって前記メモリにおける
元のエリアに書き込むことを特徴とする請求項9または
10に記載の画像処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000150369A JP3531582B2 (ja) | 2000-05-22 | 2000-05-22 | 画像処理方法および画像処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000150369A JP3531582B2 (ja) | 2000-05-22 | 2000-05-22 | 画像処理方法および画像処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001331808A JP2001331808A (ja) | 2001-11-30 |
JP3531582B2 true JP3531582B2 (ja) | 2004-05-31 |
Family
ID=18656093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000150369A Expired - Lifetime JP3531582B2 (ja) | 2000-05-22 | 2000-05-22 | 画像処理方法および画像処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3531582B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110853056B (zh) * | 2019-10-31 | 2023-09-19 | 广州方硅信息技术有限公司 | 图像分割信息的生成方法、装置、设备和存储介质 |
-
2000
- 2000-05-22 JP JP2000150369A patent/JP3531582B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2001331808A (ja) | 2001-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4829295A (en) | Image synthesizer | |
KR960006527B1 (ko) | 화상처리장치 | |
EP0715278A2 (en) | Method of producing image data and associated recording medium | |
JPH10334273A (ja) | 3次元画像処理装置及び3次元画像処理方法 | |
EP0827114B1 (en) | Method and apparatus for texture data | |
CN117292039B (zh) | 顶点坐标生成方法、装置、电子设备及计算机存储介质 | |
KR100281949B1 (ko) | 영상 드로잉 장치 | |
JP2005077522A (ja) | 画像処理装置および画像処理方法 | |
JP3531582B2 (ja) | 画像処理方法および画像処理装置 | |
CA1200025A (en) | Graphic and textual image generator for a raster scan display | |
JPH0353668B2 (ja) | ||
US6515661B1 (en) | Anti-aliasing buffer | |
JPH06223199A (ja) | 画像合成装置 | |
JPH11296696A (ja) | 3次元画像処理装置 | |
JP3872056B2 (ja) | 描画方法 | |
WO2021006160A1 (ja) | 画像処理装置、画像処理方法、及びプログラム | |
JP4313863B2 (ja) | 画像処理装置 | |
JP2836617B2 (ja) | レンダリングプロセッサ | |
JP3517982B2 (ja) | 図形描画装置 | |
JPH08138067A (ja) | 線分アンチエイリアシング装置 | |
JP2647073B2 (ja) | 図形表示装置 | |
JP2001209813A (ja) | 2次元パターン生成方法及び装置 | |
JPS63247868A (ja) | 三次元図形表示装置 | |
JP2003123082A (ja) | 画像処理装置、および画像処理方法、並びにコンピュータ・プログラム | |
JPS6392993A (ja) | 塗りつぶし回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040210 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040223 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090312 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090312 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100312 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110312 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110312 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120312 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130312 Year of fee payment: 9 |