JP2796284B1 - 画像処理装置 - Google Patents

画像処理装置

Info

Publication number
JP2796284B1
JP2796284B1 JP9146467A JP14646797A JP2796284B1 JP 2796284 B1 JP2796284 B1 JP 2796284B1 JP 9146467 A JP9146467 A JP 9146467A JP 14646797 A JP14646797 A JP 14646797A JP 2796284 B1 JP2796284 B1 JP 2796284B1
Authority
JP
Japan
Prior art keywords
span
coordinate
sub
output
vertex
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
Application number
JP9146467A
Other languages
English (en)
Other versions
JPH10334252A (ja
Inventor
三知 中山
Original Assignee
日本電気アイシーマイコンシステム株式会社
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 日本電気アイシーマイコンシステム株式会社 filed Critical 日本電気アイシーマイコンシステム株式会社
Priority to JP9146467A priority Critical patent/JP2796284B1/ja
Priority to US09/089,064 priority patent/US6166717A/en
Application granted granted Critical
Publication of JP2796284B1 publication Critical patent/JP2796284B1/ja
Publication of JPH10334252A publication Critical patent/JPH10334252A/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/20Function-generator circuits, e.g. circle generators line or curve smoothing circuits

Abstract

【要約】 【課題】 アンチエイリアシング処理を高速に実行す
る。 【解決手段】 サブ・スパン始点生成回路6は三角形領
域と交差するスパン中の各サブ・スパンの始点X座標を
出力し、サブ・スパン終点生成回路7はスパン中の各サ
ブ・スパンの終点X座標を出力する。描画X座標生成回
路10は三角形領域と重なるピクセルのX座標XDを出
力する。サブ・スパン差分算出回路14は座標XDのピ
クセルにおける各サブ・スパンの有効長を求める。サブ
・スパン加算回路15は各サブ・スパンの有効長の総和
を求めて、座標XDのピクセルにおいて三角形領域と重
なる面積SQとする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、出力画像のエッジ
部のギザギザを除去するアンチエイリアシング処理を実
行する画像処理装置に係り、特にベクトル画像のエッジ
で囲まれた三角形領域を描画処理する際に、三角形領域
の面積を三角形領域と重なるピクセルごとに求めて、こ
の面積に基づいて三角形領域をピクセルごとに描画処理
する画像処理装置に関するものである。
【0002】
【従来の技術】従来、三角形ポリゴンを表示する3Dグ
ラフィックスなどの画像処理装置における描画処理は、
以下のようになっている。まず、頂点単位の情報、つま
り、XY座標、サブ・スパンの辺の傾き、およびカラー
値の情報によって、多角形プリミティブに組み立てる。
この多角形プリミティブの頂点のXY座標および辺の傾
きにより、X軸と並行となる各スパンの始点におけるカ
ラー値およびカラー増分値を計算し求める。次に、この
スパンの始点におけるカラー値およびカラー増分値を用
いて、スパン内の1ピクセル単位のカラーをスパン毎に
補間し、ピクセル単位のカラー値をフレームバッファに
保存する。次に、このフレーム・バッファの内容を表示
する。このような描画処理によって生成された画像デー
タを画面に表示すると、特に水平や垂直に近い縁ほどジ
ャギー(ギザギザの縁)が顕著に現れる。このジャギー
は、理想的な縁をピクセル・グリッドに並ぶ一連のピク
セルで描画しようとするために現れるものである。
【0003】このジャギーのある状態をエイリアシング
と呼び、このジャギーを軽減するための技法をアンチエ
イリアシングと呼ぶ。アンチエイリアシングの方法とし
ては、特開平4−158061号公報に開示された均一
平均化法という方法がある。均一平均化法は、各ピクセ
ル(画素)をN×M(N,Mは自然数)のサブ・ピクセ
ルに分解し、高解像でラスタ計算を行った後、各ピクセ
ルの輝度をN×Mサブ・ピクセルの平均をとって求める
方法である。
【0004】この均一平均化法を用いてアンチエイリア
シング処理を実行する装置として、特開平6−6827
1号公報に開示された画像処理装置がある。この画像処
理装置では、1個のピクセルを16個のサブ・ピクセル
に分割すると共に1本のラインを4本のサブ・ラインに
分割する。そして、各サブ・ラインとベクトルとの交点
を求め、交点間のサブ・ピクセルをサブ・ラインごとに
塗りつぶしながら1ライン分の塗りつぶしを行う。そし
て、1ラインのピクセルごとに塗りつぶされているサブ
・ピクセルの数を数えてエッジに囲まれた領域の面積を
求め、この面積に応じて各ピクセルの輝度を決定する。
【0005】
【発明が解決しようとする課題】しかしながら、特開平
6−68271号公報に開示された画像処理装置では、
サブ・ラインごとに塗りつぶしの処理を行うため、処理
速度が遅いという問題点があった。本発明は上記課題を
解決するためになされたもので、アンチエイリアシング
処理を高速に実行することができる画像処理装置を提供
することを目的とする。
【0006】
【課題を解決するための手段】本発明は、請求項1に記
載のように、三角形領域の3つの頂点のうちY座標が最
小となる頂点のY座標値からY座標が最大となる頂点の
Y座標値まで、上記ピクセルのY座標YDを三角形領域
と重なる座標YDのピクセルの処理が全て終了する度に
1増やしながら出力する描画Y座標生成回路と、X軸と
並行でY座標がYDとなる現在処理中のスパンPn とY
座標がYD+1となる次に処理すべきスパンPn+1 間に
おいて、上記三角形の辺上でY座標が最小の点のうちX
座標が最小の点をスパンPn の始点とし、この始点のX
座標XAを出力するスパン始点生成回路と、上記スパン
間において、三角形の辺上でY座標が最小の点のうちX
座標が最大の点をスパンPn の終点とし、この終点のX
座標XBを出力するスパン終点生成回路と、スパン始点
生成回路から出力されたスパン始点のX座標XAによ
り、上記スパン間を分割する複数のサブ・スパンと三角
形の辺との交点のうちX座標が最小の点をサブ・スパン
毎に同時に求めて、これらを各サブ・スパンの始点と
し、この各始点のX座標を出力するサブ・スパン始点生
成回路と、スパン終点生成回路から出力されたスパン終
点のX座標XBにより、上記スパン間を分割する複数の
サブ・スパンと三角形の辺との交点のうちX座標が最大
の点をサブ・スパン毎に同時に求めて、これらを各サブ
・スパンの終点とし、この各終点のX座標を出力するサ
ブ・スパン終点生成回路と、サブ・スパン始点生成回路
から出力された各サブ・スパンの始点X座標のうち値が
最小のX座標XSLを出力する最左端サブ・スパン始点
生成回路と、サブ・スパン終点生成回路から出力された
各サブ・スパンの終点X座標のうち値が最大のX座標X
ERを出力する最右端サブ・スパン終点生成回路と、X
座標XSLからX座標XERまで、上記ピクセルのX座
標XDを1ピクセルの処理が終了する度に1増やしなが
ら出力する描画X座標生成回路と、このピクセルのX座
標XDとサブ・スパン始点生成回路から出力された各サ
ブ・スパンの始点X座標を比較して、大きい方を座標X
Dのピクセルにおける各サブ・スパンの始点X座標とし
て出力するサブ・スパン始点比較回路と、上記X座標X
Dに1加算した値とサブ・スパン終点生成回路から出力
された各サブ・スパンの終点X座標を比較して、小さい
方を座標XDのピクセルにおける各サブ・スパンの終点
X座標として出力するサブ・スパン終点比較回路と、サ
ブ・スパン終点比較回路から出力された各サブ・スパン
の終点X座標よりサブ・スパン始点比較回路から出力さ
れた各サブ・スパンの始点X座標をサブ・スパン毎に減
算して、座標XDのピクセルにおける各サブ・スパンの
有効長を求めるサブ・スパン差分算出回路と、サブ・ス
パン差分算出回路から出力された各サブ・スパンの有効
長の総和を求めて、この結果を座標XDのピクセルにお
いて三角形領域と重なる面積とするサブ・スパン加算回
路とを有するものである。
【0007】また、請求項2に記載のように、三角形の
3つの頂点のうちY座標が最小の頂点をS、この頂点S
より左回りに次の頂点を順次L、Rとし、頂点L、Rの
Y座標をYL、YRとし、頂点SとY座標が最大となる
頂点の中間のY座標をとる頂点のY座標をYMとしたと
き、上記スパン間のサブ・スパンのY座標がYMより小
さいか否かをサブ・スパン毎に示す選択信号を出力する
サブ・スパン選択制御回路を有し、上記サブ・スパン始
点生成回路は、複数のサブ・スパンに対応して設けら
れ、YL≧YRのとき上記スパン始点を基準点として選
択して、スパン始点X座標XAを出力し、YL<YRで
スパン間に座標YMをとる頂点Lが存在しないとき、ス
パン始点を基準点として選択して、スパン始点X座標X
Aを出力し、YL<YRでスパン間に頂点Lが存在する
とき、Y座標がYMより小さいサブ・スパンについては
スパン始点を基準点として選択して、スパン始点X座標
XAを出力し、YL<YRでスパン間に頂点Lが存在す
るとき、Y座標がYM以上のサブ・スパンについては頂
点Lを基準点として選択して、この頂点LのX座標を出
力する複数の第1のセレクタと、複数のサブ・スパンに
対応して設けられ、基準点のX座標から辺SL上の複数
のサブ・スパン始点のX座標までの各変化量がサブ・ス
パン始点のY座標が小さい順に第1の入力端子にそれぞ
れ入力され、基準点のX座標から辺LR上の複数のサブ
・スパン始点のX座標までの各変化量がサブ・スパン始
点のY座標が大きい順に第2の入力端子にそれぞれ入力
され、YL≧YRのとき第1の入力端子側を選択し、Y
L<YRのときY座標がYMより小さいサブ・スパンに
ついては第1の入力端子側を選択し、YL<YRのとき
Y座標がYM以上のサブ・スパンについては第2の入力
端子側を選択する複数の第2のセレクタと、複数のサブ
・スパンに対応して設けられ、第1、第2のセレクタの
出力を対応するサブ・スパンごとに加算する複数の第1
の加算器とからなるものであり、上記サブ・スパン終点
生成回路は、複数のサブ・スパンに対応して設けられ、
YL<YRのとき上記スパン終点を基準点として選択し
て、スパン終点X座標XBを出力し、YL≧YRでスパ
ン間に座標YMをとる頂点Rが存在しないとき、スパン
終点を基準点として選択して、スパン終点X座標XBを
出力し、YL≧YRでスパン間に頂点Rが存在すると
き、Y座標がYMより小さいサブ・スパンについてはス
パン終点を基準点として選択して、スパン終点X座標X
Bを出力し、YL≧YRでスパン間に頂点Rが存在する
とき、Y座標がYM以上のサブ・スパンについては頂点
Rを基準点として選択して、この頂点RのX座標を出力
する複数の第3のセレクタと、複数のサブ・スパンに対
応して設けられ、基準点のX座標から辺SR上の複数の
サブ・スパン終点のX座標までの各変化量がサブ・スパ
ン終点のY座標が小さい順に第1の入力端子にそれぞれ
入力され、基準点のX座標から辺LR上の複数のサブ・
スパン終点のX座標までの各変化量がサブ・スパン終点
のY座標が大きい順に第2の入力端子にそれぞれ入力さ
れ、YL<YRのとき第1の入力端子側を選択し、YL
≧YRのときY座標がYMより小さいサブ・スパンにつ
いては第1の入力端子側を選択し、YL≧YRのときY
座標がYM以上のサブ・スパンについては第2の入力端
子側を選択する複数の第4のセレクタと、複数のサブ・
スパンに対応して設けられ、第3、第4のセレクタの出
力を対応するサブ・スパンごとに加算する複数の第2の
加算器とからなるものである。
【0008】また、請求項3に記載のように、上記最左
端サブ・スパン始点生成回路は、上記三角形の各辺の傾
きの正負に基づいて各サブ・スパンの始点X座標のうち
値が最小のX座標XSLを選択して出力するものであ
り、上記最右端サブ・スパン終点生成回路は、上記三角
形の各辺の傾きの正負に基づいて各サブ・スパンの終点
X座標のうち値が最大のX座標XERを選択して出力す
るものであることを特徴とする画像処理装置。
【0009】また、請求項4に記載のように、上記最左
端サブ・スパン始点生成回路は、三角形の3つの頂点の
うちY座標が最小の頂点をS、この頂点Sより左回りに
次の頂点を順次L、Rとし、頂点L、RのY座標をY
L、YRとし、頂点SとY座標が最大となる頂点の中間
のY座標をとる頂点のY座標をYMとしたとき、YL<
YRで辺SLの傾きEXL1が正で辺LRの傾きEX2
が正のとき、スパン中のY座標が最小のサブ・スパンを
選択し、YL<YRで傾きEXL1が負で傾きEX2が
正で、座標YDがYMより小さく、スパン間に座標YM
をとる頂点Lが存在しないとき、スパン中のY座標が最
大のサブ・スパンを選択し、YL<YRで傾きEXL1
が負で傾きEX2が正で、スパン間に座標YMをとる頂
点Lが存在するとき、頂点Lと交差するサブ・スパンを
選択し、YL<YRで傾きEXL1が負で傾きEX2が
正で、座標YDがYMより大きいとき、スパン中のY座
標が最小のサブ・スパンを選択し、YL<YRで傾きE
XL1が負で傾きEX2が負のとき、スパン中のY座標
が最大のサブ・スパンを選択し、YL≧YRで傾きEX
L1が正のとき、スパン中のY座標が最小のサブ・スパ
ンを選択し、YL≧YRで傾きEXL1が負のとき、ス
パン中のY座標が最大のサブ・スパンを選択し、選択し
たサブ・スパンの始点X座標を上記X座標XSLとして
出力するものであり、上記最右端サブ・スパン終点生成
回路は、YL≧YRで辺SRの傾きEXR1が負で傾き
EX2が負のとき、スパン中のY座標が最小のサブ・ス
パンを選択し、YL≧YRで傾きEXR1が正で傾きE
X2が負で、座標YDがYMより小さく、スパン間に座
標YMをとる頂点Rが存在しないとき、スパン中のY座
標が最大のサブ・スパンを選択し、YL≧YRで傾きE
XR1が正で傾きEX2が負で、スパン間に座標YMを
とる頂点Rが存在するとき、頂点Rと交差するサブ・ス
パンを選択し、YL≧YRで傾きEXR1が正で傾きE
X2が負で、座標YDがYMより大きいとき、スパン中
のY座標が最小のサブ・スパンを選択し、YL≧YRで
傾きEXR1が正で傾きEX2が正のとき、スパン中の
Y座標が最大のサブ・スパンを選択し、YL<YRで傾
きEXR1が負のとき、スパン中のY座標が最小のサブ
・スパンを選択し、YL<YRで傾きEXR1が正のと
き、スパン中のY座標が最大のサブ・スパンを選択し、
選択したサブ・スパンの終点X座標を上記X座標XER
として出力するものである。
【0010】
【発明の実施の形態】次に、本発明の実施の形態につい
て図面を参照して説明する。図1は本発明の実施の形態
となる画像処理装置のブロック図である。プリミティブ
処理部101は、描画対象となる三角形ポリゴンの頂点
座標及び三角形ポリゴンの各辺の傾きを求める。スパン
処理部102は、三角形ポリゴンのスパン単位の奥行き
情報Zおよびカラー情報Cを生成する。ここで、スパン
とは、X軸と並行でY座標値が整数となる線分、所謂ラ
インのことである。
【0011】サブ・スパン処理部103は、三角形ポリ
ゴンのエッジとポリゴンの内側からなる領域の面積SQ
をピクセル(画素)ごとに求め、ピクセルのX座標X
D、Y座標YDとこのピクセルの面積SQを出力する。
ここで、サブ・スパンとは、上記スパンを分割したもの
である。Zバッファ104には、既に描画されている画
像の奥行き情報Zがピクセルごとに格納され、フレーム
バッファ105には、既に描画されている画像のカラー
情報Cがピクセルごとに格納されている。
【0012】ピクセル処理部106は、スパン処理部1
02から出力された奥行き情報Z及びカラー情報Cに基
づいて、三角形ポリゴンの奥行き情報Z及びカラー情報
Cをピクセルごとに計算する。そして、この三角形ポリ
ゴンの奥行き情報ZとZバッファ104に格納されてい
る奥行き情報Zとを対応するピクセルごとに比較し、三
角形ポリゴンの奥行き情報Zが既に描画されている画像
よりも手前にあれば、このピクセルに対して描画処理を
行う。
【0013】つまり、ピクセル処理部106は、この描
画処理すべきピクセルのカラー情報をこのピクセルにつ
いて求めた上記SQの比率でバッファ105の対応ピク
セルのカラー情報Cと混ぜ合わせ、この結果をバッファ
105に格納された対応ピクセルの新たなカラー情報と
して、バッファ105の内容を更新する。これにより、
Zバッファ104及びフレームバッファ105に格納さ
れたデータが図示しない描画手段によって表示装置に出
力され、三角形ポリゴンの画像が表示装置に表示され
る。
【0014】ここで、プリミティブ処理部101は、描
画対象となる三角形ポリゴンの頂点座標及び三角形ポリ
ゴンの各辺の傾きを以下のように求める。まず、プリミ
ティブ処理部101は、図2に示すように、三角形ポリ
ゴンの3つの頂点のうち、Y座標が最も小さい頂点をS
とし、この頂点Sより左回りに次の頂点を探して順次
L,Rとする。つまり、頂点Sから左回りの方向に頂点
を探して最初に見つけた頂点をLとし、次に見つけた頂
点をRとする。
【0015】そして、頂点SのX座標をX0、同じくY
座標をYSとして出力し、頂点LのX座標をXL、同じ
くY座標をYLとして出力し、頂点RのX座標をXR、
同じくY座標をYRとして出力する。また、プリミティ
ブ処理部101は、辺SLの傾きをEXL1、辺LRの
傾きをEX2、辺SRの傾きをEXR1、傾きEXL1
の正負をMXL1、傾きEX2の正負をMX2、傾きE
XR1の正負をMXR1として出力する。なお、これら
の傾きは、1Y座標当たりの各辺のX座標の変化量とな
る。
【0016】なお、本画像処理装置において、X軸,Y
軸の方向は図2のように設定され、右方向へ行くほどX
座標値が大きくなり、下方向へ行くほどY座標値が大き
くなるものとする。また、頂点S,L,RのX,Y座標
値及び傾きEXL1,EX2,EXR1の値は実数であ
り、実際の回路では数十ビット程度の2進値で表されて
いる。そして、傾きの正負は、図2に示すように、右下
がりの辺の傾きを正、左下がりの辺の傾きを負とする。
【0017】次に、サブ・スパン処理部103の動作を
説明する。図3はこのサブ・スパン処理部103のブロ
ック図、図4はサブ・スパン処理部103の動作を説明
するためのフローチャート図である。まず、描画Y座標
生成回路1は、頂点SのY座標YSの整数部分の値から
上記YEの整数部分の値まで、三角形ポリゴンと重なる
ピクセルのY座標YD(整数値)をポリゴンと重なる座
標YDのピクセルの処理が全て終了する度に1増やしな
がら出力する(図4ステップ201)。この描画Y座標
生成回路1のブロック図を図5に示す。
【0018】比較器21aは、頂点LのY座標YLと頂
点RのY座標YRとを比較し、YLがYRより小さい
(YL<YR)とき出力LRFを「1」とし、YLがY
R以上(YL≧YR)のとき出力LRFを「0」とす
る。よって、信号LRFが「0」の場合は、三角形ポリ
ゴンが図6(a)のような場合であり、信号LRFが
「1」の場合は、三角形ポリゴンが図6(b)のような
場合である。
【0019】セレクタ22aは、比較器21aの出力信
号LRFが「0」のときYRを選択し、信号LRFが
「1」のときYLを選択し、この選択結果をYMとして
出力する。つまり、YMは、Y座標が最も小さい頂点S
とY座標が最も大きい頂点との中間のY座標をとる頂点
のY座標値であり、図6(a)の三角形ポリゴンの場合
はYR、図6(b)の三角形ポリゴンの場合はYLであ
る。
【0020】セレクタ22bは、信号LRFを論理反転
したインバータ23の出力信号が「0」のときYRを選
択し、インバータ23の出力信号が「1」のときYLを
選択し、この選択結果をYEとして出力する。つまり、
YEは、三角形ポリゴンの3つの頂点のうちY座標が最
大の頂点のY座標値であり、図6(a)の三角形ポリゴ
ンの場合はYLであり、図6(b)の三角形ポリゴンの
場合はYRである。
【0021】次いで、YD生成回路24は、頂点SのY
座標YSの整数部分の値より始まり上記YEの整数部分
の値で終わるピクセルのY座標YD(整数値)を、後述
する信号XENDが入力される度に1ずつ加算しながら
出力する。つまり、最初はYSの整数部分の値をYDと
して出力し、信号XENDが入力されると、これに1加
算した値を新たなYDとして出力する。以後は、信号X
ENDが入力される度に現在のYDに1加算した値を新
たなYDとして出力し、このような処理をYDがYEの
整数部分の値になるまで繰り返す。
【0022】続いて、比較器21bは、YD生成回路2
4から出力されたピクセルのY座標YDと座標YMの整
数部分の値とを比較し、YDがYMの整数部より小さい
とき出力Y_YM_Sを「1」とし、YDがYMの整数
部以上のとき出力Y_YM_Sを「0」とする。比較器
21cは、ピクセルのY座標YDと座標YMの整数部分
の値とを比較し、YDとYMの整数部が等しいとき出力
Y_YM_Eを「1」とし、等しくないとき出力Y_Y
M_Eを「0」とする。
【0023】比較器21dは、ピクセルのY座標YDと
座標YMの整数部分の値とを比較し、YDがYMの整数
部より大きいとき出力Y_YM_Dを「1」とし、YD
がYMの整数部以下のとき出力Y_YM_Dを「0」と
する。比較器21eは、ピクセルのY座標YDと座標Y
Sの整数部分の値とを比較し、YDとYSの整数部が等
しいとき出力Y_YS_Eを「1」とし、等しくないと
き出力Y_YS_Eを「0」とする。
【0024】次に、スパン始点生成回路2は、Y座標が
YDとなる現在処理中のスパンPnとY座標がYD+1
となる次に処理すべきスパンPn+1 間において、三角形
ポリゴンの辺上でY座標が最小の点のうちX座標が最小
の点をスパンPn の始点とし、この始点のX座標XAを
出力する(図4ステップ202)。例えば、図7に示す
三角形ポリゴンに対してスパン始点はXAの位置とな
る。なお、始点X座標XAは実数であり、実際の回路で
は数十ビット程度の2進値で表されている。
【0025】このスパン始点生成回路2のブロック図を
図8に示す。スパン変化量生成回路31は、描画Y座標
生成回路1から出力された信号Y_YS_E,Y_YM
_E,Y_YM_S,LRFに基づいて、現在処理中の
スパンの始点のX座標XAから次に処理すべきスパン始
点のX座標までの変化量に相当する値を生成する。この
スパン変化量生成回路31の動作を表1に示す。なお、
表1において「×」は「0」又は「1」のどちらでもよ
いことを示す。
【0026】
【表1】
【0027】表1において、「1000」×EXL1
は、EXL1に4ビット値「1000」を掛けることを
意味し、(「1000」−(「0」&YS小数部))×
EXL1は、YSの小数点以下の値3ビットの先頭に
「0」を付加して4ビットに拡張した値を「1000」
から引いて、この減算結果にEXL1を掛けることを意
味する。その他についても同様である。
【0028】このスパン変化量生成回路31の出力がシ
フト演算器32によって右に3ビットシフトされ、この
シフト演算の結果が演算器33に入力される。なお、こ
のシフト演算は、スパン変化量生成回路31の出力の各
ビットの結線を入れ替えることで実現できる。一方、論
理積回路34は、信号Y_YM_Eと信号LRFとの論
理積をとり、この論理積の結果が演算器33に入力され
る。
【0029】次に、演算器33の動作を図9を用いて説
明する。まず、YD=YSの整数部、すなわち一番最初
のスパンP0 では、このスパンP0 の始点は頂点Sであ
る。よって、演算器33は、YD=YSの整数部のと
き、頂点SのX座標X0をスパンの始点X座標XAとし
て出力する。そして、演算器33は、スパンP0 の処理
が終了するまで、この始点X座標XAを出力し続ける。
【0030】続いて、三角形ポリゴンがLRFが「0」
(論理積回路34の出力が「0」)の図9(a)のよう
な形状で、Y_YS_Eが「1」、つまり現在のスパン
P0と次のスパンP1 の間に頂点Sが存在する場合、ス
パンP0 の始点X座標XA0から次に処理すべきスパン
P1 の始点X座標XA1 までの変化量は、スパン変化量
生成回路31及びシフト演算器32の出力からも分かる
ように、EXL1×(1−YS小数部)である。
【0031】よって、演算器33は、後述する信号XE
NDが入力されたときに、現在のスパン始点X座標XA
(つまり、X0)にEXL1×(1−YS小数部)を加
算して、この加算結果を次のスパンP1 の処理が始まる
ときに新たなスパン始点X座標XAとして出力する。そ
して、演算器33は、スパンP1 の処理が終了するま
で、この始点X座標XAを出力し続ける。なお、信号X
ENDは、1スパンの最後のピクセルが処理されるとき
に「1」となるものであり、この信号XENDの出力後
に最後のピクセルの処理が終わると、次のスパンの処理
が開始される。
【0032】同様に、三角形ポリゴンがLRFが「1」
の図9(b)のような形状で、Y_YS_Eが「1」、
Y_YM_Eが「0」、Y_YM_Sが「0」、つまり
現在のスパンP0 と次のスパンP1 の間に頂点Sが存在
する場合、スパンP0 の始点X座標XA0 から次に処理
すべきスパンP1 の始点X座標XA1 までの変化量は、
スパン変化量生成回路31及びシフト演算器32の出力
からも分かるように、EXL1×(1−YS小数部)で
ある。
【0033】よって、演算器33は、信号XENDが入
力されたときに、現在のスパン始点X座標XA(X0)
にEXL1×(1−YS小数部)を加算して、この加算
結果を次のスパンP1 の処理が始まるときに新たなスパ
ン始点X座標XAとして出力する。
【0034】次に、LRFが「0」の三角形ポリゴンに
対してY_YS_Eが「0」、つまり現在のスパンPn
と次のスパンPn+1 が三角形ポリゴンに対して図9
(c)のような位置にあるとき、スパンPn の始点X座
標XAn から次に処理すべきスパンPn+1 の始点X座標
XAn+1 までの変化量は、スパン変化量生成回路31及
びシフト演算器32の出力からも分かるように、EXL
1である。よって、演算器33は、信号XENDが入力
されたときに、現在のスパン始点X座標XAにEXL1
を加算して、この加算結果を次のスパンPn+1 の処理が
始まるときに新たなスパン始点X座標XAとして出力す
る。
【0035】同様に、LRFが「1」の三角形ポリゴン
に対してY_YS_Eが「0」、Y_YM_Eが
「0」、Y_YM_Sが「1」、つまり現在のスパンP
n と次のスパンPn+1 が三角形ポリゴンに対して図9
(d)のような位置にあるとき、スパンPn の始点X座
標XAn から次に処理すべきスパンPn+1 の始点X座標
XAn+1 までの変化量は、EXL1である。よって、演
算器33は、信号XENDが入力されたときに、現在の
スパン始点X座標XAにEXL1を加算して、この加算
結果を次のスパンPn+1 の処理が始まるときに新たなス
パン始点X座標XAとして出力する。
【0036】また、三角形ポリゴンがLRFが「1」の
図9(e)のような形状で、Y_YM_Eが「1」、Y
_YM_Sが「0」、つまり現在のスパンPn と次のス
パンPn+1 の間にY座標がYMの頂点Lが存在する場
合、頂点LのX座標XLから次のスパンPn+1 の始点X
座標XAn+1 までの変化量は、スパン変化量生成回路3
1及びシフト演算器32の出力からも分かるように、E
X2×(1−YL小数部)である。よって、演算器33
は、信号XENDが入力されたときに、頂点LのX座標
XLにEX2×(1−YL小数部)を加算して、この加
算結果を次のスパンPn+1の処理が始まるときに新たな
スパン始点X座標XAとして出力する。
【0037】また、LRFが「1」の三角形ポリゴンに
対してY_YS_Eが「0」、Y_YM_Eが「0」、
Y_YM_Sが「0」、つまり現在のスパンPn と次の
スパンPn+1 が三角形ポリゴンに対して図9(f)のよ
うな位置にあるとき、スパンPn の始点X座標XAn か
ら次のスパンPn+1 の始点X座標XAn+1 までの変化量
は、EX2である。
【0038】よって、演算器33は、信号XENDが入
力されたときに、現在のスパン始点X座標XAにEX2
を加算して、この加算結果を次のスパンPn+1 の処理が
始まるときに新たなスパン始点X座標XAとして出力す
る。なお、何れの場合も、演算器33は、現在のスパン
の処理が終了するまで、同一の値を出力し続ける。
【0039】次に、スパン終点生成回路3は、Y座標が
YDとなる現在処理中のスパンPnとY座標がYD+1
となる次に処理すべきスパンPn+1 間において、三角形
ポリゴンの辺上でY座標が最小の点のうちX座標が最大
の点をスパンPn の終点とし、この終点のX座標XBを
上記スパン始点生成回路2の出力と同時に出力する(図
4ステップ202)。
【0040】例えば、図7に示す三角形ポリゴンに対し
てスパン終点はXBの位置となる。なお、終点X座標X
Bは実数であり、実際の回路では数十ビット程度の2進
値で表されている。
【0041】このスパン終点生成回路3のブロック図を
図10に示す。スパン変化量生成回路41は、描画Y座
標生成回路1から出力された信号Y_YS_E,Y_Y
M_E,Y_YM_S,LRFに基づいて、現在処理中
のスパンの終点のX座標XBから次に処理すべきスパン
終点のX座標までの変化量に相当する値を生成する。こ
のスパン変化量生成回路41の動作を表2に示す。な
お、表2において「×」は「0」又は「1」のどちらで
もよいことを示す。
【0042】
【表2】
【0043】表2において、(「1000」−(「0」
&YR小数部))×EX2は、YRの小数点以下の値3
ビットの先頭に「0」を付加して4ビットに拡張した値
を「1000」から引いて、この減算結果にEX2を掛
けることを意味する。
【0044】このスパン変化量生成回路41の出力がシ
フト演算器42によって右に3ビットシフトされ、この
シフト演算の結果が演算器43に入力される。なお、こ
のシフト演算は、スパン変化量生成回路41の出力の各
ビットの結線を入れ替えることで実現できる。一方、論
理積回路44は、信号Y_YM_Eと信号LRFを論理
反転したインバータ45の出力との論理積をとり、この
論理積の結果が演算器43に入力される。
【0045】次に、演算器43の動作を図9を用いて説
明する。まず、YD=YSの整数部、すなわち一番最初
のスパンP0 では、このスパンP0 の終点は頂点Sであ
る。よって、演算器43は、YD=YSの整数部のと
き、頂点SのX座標X0をスパンの終点X座標XBとし
て出力する。そして、演算器43は、スパンP0 の処理
が終了するまで、この終点X座標XBを出力し続ける。
【0046】続いて、三角形ポリゴンがLRFが「0」
の図9(a)のような形状で、Y_YS_Eが「1」、
Y_YM_Eが「0」、Y_YM_Sが「1」つまり現
在のスパンP0 と次のスパンP1 の間に頂点Sが存在す
る場合、スパンP0 の終点X座標XB0 から次に処理す
べきスパンP1 の終点X座標XB1 までの変化量は、ス
パン変化量生成回路41及びシフト演算器42の出力か
らも分かるように、EXR1×(1−YS小数部)であ
る。
【0047】よって、演算器43は、信号XENDが入
力されたときに、現在のスパン終点X座標XB(つま
り、X0)にEXR1×(1−YS小数部)を加算し
て、この加算結果を次のスパンP1 の処理が始まるとき
に新たなスパン終点X座標XBとして出力する。そし
て、演算器43は、スパンP1 の処理が終了するまで、
この終点X座標XBを出力し続ける。
【0048】同様に、三角形ポリゴンがLRFが「1」
の図9(b)のような形状で、Y_YS_Eが「1」、
つまり現在のスパンP0 と次のスパンP1 の間に頂点S
が存在する場合、スパンP0 の終点X座標XB0 から次
のスパンP1 の終点X座標XB1 までの変化量は、EX
R1×(1−YS小数部)である。よって、演算器43
は、信号XENDが入力されたときに、現在のスパン終
点X座標XB(X0)にEXR1×(1−YS小数部)
を加算して、この加算結果を次のスパンP1 の処理が始
まるときに新たなスパン終点X座標XBとして出力す
る。
【0049】また、LRFが「1」の三角形ポリゴンに
対してY_YS_Eが「0」、つまり現在のスパンPn
と次のスパンPn+1 が三角形ポリゴンに対して図9
(d)、(e)あるいは(f)のような位置にあると
き、スパンPn の終点X座標XBnから次のスパンPn+1
の終点X座標XBn+1 までの変化量は、スパン変化量
生成回路41及びシフト演算器42の出力からも分かる
ように、EXR1である。よって、演算器43は、信号
XENDが入力されたときに、現在のスパン終点X座標
XBにEXR1を加算して、この加算結果を次のスパン
Pn+1 の処理が始まるときに新たなスパン終点X座標X
Bとして出力する。
【0050】同様に、LRFが「0」の三角形ポリゴン
に対してY_YS_Eが「0」、Y_YM_Eが
「0」、Y_YM_Sが「1」、つまり現在のスパンP
n と次のスパンPn+1 が三角形ポリゴンに対して図9
(c)のような位置にあるとき、スパンPn の終点X座
標XBn から次のスパンPn+1 の終点X座標XBn+1 ま
での変化量は、EXR1である。よって、演算器43
は、信号XENDが入力されたときに、現在のスパン終
点X座標XBにEXR1を加算して、この加算結果を次
のスパンPn+1 の処理が始まるときに新たなスパン終点
X座標XBとして出力する。
【0051】また、三角形ポリゴンがLRFが「0」の
図9(g)のような形状で、Y_YM_Eが「1」、Y
_YM_Sが「0」、つまり現在のスパンPn と次のス
パンPn+1 の間にY座標がYMの頂点Rが存在する場
合、頂点RのX座標XRから次のスパンPn+1 の終点X
座標XBn+1 までの変化量は、EX2×(1−YR小数
部)である。
【0052】よって、演算器43は、信号XENDが入
力されたときに、頂点RのX座標XRにEX2×(1−
YR小数部)を加算して、この加算結果を次のスパンP
n+1の処理が始まるときに新たなスパン終点X座標XB
として出力する。
【0053】また、LRFが「0」の三角形ポリゴンに
対してY_YS_Eが「0」、Y_YM_Eが「0」、
Y_YM_Sが「0」、つまり現在のスパンPn と次の
スパンPn+1 が三角形ポリゴンに対して図9(h)のよ
うな位置にあるとき、スパンPn の終点X座標XBn か
ら次のスパンPn+1 の終点X座標XBn+1 までの変化量
は、EX2である。
【0054】よって、演算器43は、信号XENDが入
力されたときに、現在のスパン終点X座標XBにEX2
を加算して、この加算結果を次のスパンPn+1 の処理が
始まるときに新たなスパン終点X座標XBとして出力す
る。なお、何れの場合も、演算器43は、現在のスパン
の処理が終了するまで、同一の値を出力し続ける。
【0055】次に、サブ・スパン選択制御回路4は、後
述するサブ・スパン始点生成回路及びサブ・スパン始点
生成回路を制御するための選択信号SEL0〜SEL
7、有効サブ・スパン指定回路を制御するための信号U
PE,DWEを出力する。
【0056】ここで、サブ・スパンとは、図7に示すよ
うに、スパンPn と次のスパンPn+1 との間を分割する
X軸に平行な線分であり、このサブ・スパンの数は1ス
パン間当たり2m 本(mは1以上の自然数)である。本
実施の形態では、スパン間のサブ・スパンの数を8本と
している。なお、スパン間に存在するサブ・スパンのう
ち、1本はスパンPn と同一である。
【0057】選択信号SEL0〜SEL7は、後述する
サブ・スパン始点のX座標XS0〜XS7及びサブ・ス
パン終点のX座標XE0〜XE7にそれぞれ対応するも
のである。そして、この選択信号が「1」のとき、対応
するサブ・スパンの始点と終点が、Y座標がYMより小
さいサブ・スパンの始点終点であることを示し、選択信
号が「0」のとき、対応するサブ・スパンの始点と終点
が、Y座標がYM以上のサブ・スパンの始点終点である
ことを示している。
【0058】また、信号UPEは、現在処理中のスパン
Pn と次のスパンPn+1 間において三角形ポリゴンと交
差するサブ・スパンのうち、Y座標がYMより小さいサ
ブ・スパンの本数を示している。そして、信号DWE
は、現在処理中のスパンPn と次のスパンPn+1 間にお
いて三角形ポリゴンと交差するサブ・スパンのうち、Y
座標がYM以上のサブ・スパンの本数を示している。
【0059】サブ・スパン選択制御回路4のブロック図
を図11に示す。減算器51aは、YLの小数部分の値
3ビットの先頭に「0」を付加して4ビットにビット拡
張した値からYSの小数部分の値3ビットの先頭に
「0」を付加して4ビットにビット拡張した値を減算
し、この減算結果4ビットをSELLSとして出力す
る。このSELLSは、図12(a)に示す三角形ポリ
ゴンにおいて、現在のスパンPn と次のスパンPn+1 の
間に頂点SとLが存在するとき、頂点Sと頂点Lの間
(ただし、頂点Lは含まない)に存在するサブ・スパン
の本数を示している。
【0060】減算器51bは、YRの小数部分3ビット
の先頭に「0」を付加して4ビットにビット拡張した値
からYSの小数部分3ビットの先頭に「0」を付加して
4ビットにビット拡張した値を減算し、この減算結果4
ビットをSELRSとして出力する。このSELRS
は、図12(b)に示す三角形ポリゴンにおいて、現在
のスパンPn と次のスパンPn+1 の間に頂点SとRが存
在するとき、頂点Sと頂点Rの間(ただし、頂点Rは含
まない)に存在するサブ・スパンの本数を示している。
【0061】減算器51cは、4ビット値「1000」
からYSの小数部3ビットの先頭に「0」を付加して4
ビットにビット拡張した値を減算し、この減算結果4ビ
ットをSEL8Sとして出力する。このSEL8Sは、
図12(c)あるいは(d)に示す三角形ポリゴンにお
いて、スパンPn と次のスパンPn+1 の間に頂点Sが存
在するとき、頂点Sと次のスパンPn+1 の間(ただし、
スパンPn+1 は含まない)に存在するサブ・スパンの本
数を示している。
【0062】UPE生成回路52は、描画Y座標生成回
路1から出力された信号Y_YM_S,Y_YM_E,
Y_YS_E,LRFに従って、SELLS,SELR
S,SEL8S,「1000」,「0000」,YMの
小数部3ビットの先頭に「0」を付加して4ビットにビ
ット拡張した値の何れかを選択して、出力信号UPEと
して出力する。表3にUPE生成回路52の選択動作を
示す。なお、表3において、「×」は「1」又は「0」
の何れでもよいことを示す。
【0063】
【表3】
【0064】Y_YS_E,Y_YM_E及びLRFが
「1」の場合(図12(a)の場合)、UPE生成回路
52は、SELLSを選択してUPEとして出力する。
Y_YS_E及びY_YM_Eが「1」で、LRFが
「0」の場合(図12(b)の場合)、UPE生成回路
52は、SELRSを選択してUPEとして出力する。
【0065】Y_YS_Eが「1」でY_YM_Eが
「0」の場合(図12(c)、(d)の場合)、UPE
生成回路52は、SEL8Sを選択して出力信号UPE
として出力する。
【0066】Y_YS_E及びY_YM_Eが「0」
で、Y_YM_Sが「1」の場合(図12(e)、
(f)の場合)、UPE生成回路52は「1000」を
選択してUPEとして出力する。これは、三角形ポリゴ
ンの辺と交差する1スパン間のサブ・スパンの本数が8
本であることを示す。
【0067】Y_YS_E,Y_YM_E及びY_YM
_Sが「0」の場合(図12(g)、(h)の場合)、
UPE生成回路52は「0000」を選択してUPEと
して出力する。これは、サブ・スパンの本数が0本であ
ることを示している。スパンPn とスパンPn+1 間に三
角形ポリゴンと交差するサブ・スパンが存在するにも拘
わらず、サブ・スパンの本数が0本なのは、UPE生成
回路52が対象とするサブ・スパンがY座標がYMより
小さいサブ・スパンだからである。
【0068】Y_YS_Eが「0」で、Y_YM_Eが
「1」の場合(図12(i)、(j)の場合)、UPE
生成回路52は、YMの小数部3ビットの先頭に「0」
を付加して4ビットにビット拡張した値を選択してUP
Eとして出力する。このYMの小数部3ビットの先頭に
「0」を付加して4ビットにビット拡張した値は、図1
2(i)あるいは(j)に示す三角形ポリゴンにおい
て、スパンPn と次のスパンPn+1 の間にY座標がYM
である頂点Lあるいは頂点Rの何れか一方のみが存在す
るとき、スパンPn と頂点LあるいはRの間(ただし、
頂点L、Rは含まない)に存在するサブ・スパンの本数
を示している。
【0069】次に、選択信号生成回路53は、UPE生
成回路52の出力信号UPEに従って選択信号SEL0
〜SEL7を出力する。表4に選択信号生成回路53の
動作を示す。
【0070】
【表4】
【0071】例えば、選択信号生成回路53は、UPE
が「0000」であれば、出力信号SEL0〜SEL7
を全て「0」とし、UPEが「1000」であれば、出
力信号SEL0〜SEL7を全て「1」とする。
【0072】次に、比較器54は、描画Y座標生成回路
1から出力されたピクセルのY座標(現在処理中のスパ
ンのY座標)YDとYEの整数部分の値とを比較して、
YDとYEの整数部が等しいとき出力Y_YE_Eを
「1」とし、等しくないとき出力Y_YE_Eを「0」
とする。
【0073】加算器55は、YEの小数部分の値3ビッ
トの先頭に「0」を付加して4ビットにビット拡張した
値に「0001」を加算して、この加算結果4ビットを
SELEISとして出力する。このSELEISは、図
12(k)あるいは(l)に示す三角形ポリゴンにおい
て、スパンPn と次のスパンPn+1 の間にY座標が最大
の頂点LあるいはRが存在するとき、この頂点とスパン
Pn の間(頂点を含む)に存在するサブ・スパンの本数
を示している。
【0074】減算器51dは、加算器55の出力SEL
EISからYMの小数部分の値3ビットの先頭に「0」
を付加して4ビットにビット拡張した値を減算し、この
減算結果4ビットをSELMESとして出力する。この
SELMESは、図12(m)あるいは(n)に示す三
角形ポリゴンにおいて、スパンPn と次のスパンPn+1
の間に頂点Lと頂点Rが存在するとき、この頂点Lと頂
点Rの間(何れの頂点も含む)に存在するサブ・スパン
の本数を示している。
【0075】減算器51eは、4ビット値「1000」
からYMの小数部分の値3ビットの先頭に「0」を付加
して4ビットにビット拡張した値を減算し、この減算結
果4ビットをSELM8Sとして出力する。このSEL
M8Sは、図12(i)あるいは(j)に示す三角形ポ
リゴンにおいて、スパンPn と次のスパンPn+1 の間に
頂点LあるいはRの何れか一方のみが存在するとき、頂
点LあるいはRと次のスパンPn+1 の間(スパンPn+1
は含まない)に存在するサブ・スパンの本数を示してい
る。
【0076】DWE生成回路56は、描画Y座標生成回
路1から出力された信号Y_YM_E,Y_YM_D、
比較器54から出力された信号Y_YE_Eに従って、
SELEIS,SELMES,SELM8S,「100
0」,「0000」の何れかを選択して、出力信号DW
Eとして出力する。表5にDWE生成回路56の選択動
作を示す。なお、表5において、「×」は「1」又は
「0」の何れでもよいことを示す。
【0077】
【表5】
【0078】Y_YM_E,Y_YE_Eが「1」の場
合(図12(m)、(n)の場合)、DWE生成回路5
6は、SELMESを選択してDWEとして出力する。
Y_YM_Eが「1」でY_YE_Eが「0」の場合
(図12(i)、(j)の場合)、DWE生成回路56
は、SELM8Sを選択してDWEとして出力する。
【0079】Y_YM_E,Y_YE_E及びY_YM
_Dが「0」の場合(図12(c)〜(f)の場合)、
DWE生成回路56は「0000」を選択してDWEと
して出力する。これは、サブ・スパンの本数が0本であ
ることを示している。スパンPn とスパンPn+1 間に三
角形ポリゴンと交差するサブ・スパンが存在するにも拘
わらず、サブ・スパンの本数が0本なのは、DWE生成
回路56が対象とするサブ・スパンがY座標がYM以上
のサブ・スパンだからである。
【0080】Y_YM_E及びY_YE_Eが「0」
で、Y_YM_Dが「1」の場合(図12(g)、
(h)の場合)、DWE生成回路56は「1000」を
選択してDWEとして出力する。これは、三角形ポリゴ
ンの辺と交差する1スパン間のサブ・スパンの本数が8
本であることを示す。また、Y_YM_Eが「0」でY
_YE_Eが「1」の場合(図12(k)、(l)の場
合)、DWE生成回路56は、SELEISを選択して
DWEとして出力する。
【0081】次に、サブ・スパン変化量生成回路5は、
後述する基準点のX座標から辺SL上あるいは辺LR上
の複数のサブ・スパン始点のX座標までの変化量である
EXL1_1S〜EXL1_7S,EXL1S〜EXL
7Sを生成すると共に、基準点のX座標から辺SR上あ
るいは辺LR上の複数のサブ・スパン終点のX座標まで
の変化量であるEXR1_1S〜EXR1_7S,EX
R1S〜EXR7Sを生成する(ステップ203)。こ
れらの変化量は実数であり、実際の回路では数十ビット
程度の2進値で表されている。
【0082】このサブ・スパン変化量生成回路5のブロ
ック図を図13、図14に示す。まず、シフト演算器6
1aは、辺SLの傾きEXL1の値を右に1ビットシフ
トして、このシフト演算の結果をEXL1_4Sとして
出力する。このEXL1_4SはEXL1の4/8の値
である。シフト演算器61bは、傾きEXL1の値を右
に2ビットシフトして、このシフト演算の結果をEXL
1_2Sとして出力する。このEXL1_2SはEXL
1の2/8の値である。
【0083】シフト演算器61cは、傾きEXL1の値
を右に3ビットシフトして、このシフト演算の結果をE
XL1_1Sとして出力する。このEXL1_1SはE
XL1の1/8の値である。なお、以上のシフト演算
は、EXL1の各ビットの結線を入れ替えることで実現
できる。
【0084】次に、加算器62aは、EXL1_4Sと
EXL1_1Sとを加算して、この加算結果をEXL1
_5Sとして出力する。このEXL1_5SはEXL1
の5/8の値である。加算器62bは、EXL1_2S
とEXL1_1Sとを加算して、この加算結果をEXL
1_3Sとして出力する。このEXL1_3SはEXL
1の3/8の値である。
【0085】また、EXL1_3Sを図示しないシフト
演算器によって左に1ビットシフトして、このシフト演
算の結果をEXL1_6Sとする。このシフト演算は、
EXL1_3Sの各ビットの結線を入れ替えることで実
現できる。EXL1_6SはEXL1の6/8の値であ
る。加算器62cは、EXL1とEXL1_1Sとを加
算して、この加算結果をEXL1_7Sとして出力す
る。このEXL1_7SはEXL1の7/8の値であ
る。
【0086】シフト演算器61dは、辺LRの傾きEX
2の値を右に1ビットシフトして、このシフト演算の結
果をEX2_4Sとして出力する。このEX2_4Sは
EX2の4/8の値である。シフト演算器61eは、傾
きEX2の値を右に2ビットシフトして、このシフト演
算の結果をEX2_2Sとして出力する。このEX2_
2SはEX2の2/8の値である。
【0087】シフト演算器61fは、傾きEX2の値を
右に3ビットシフトして、このシフト演算の結果をEX
2_1Sとして出力する。このEX2_1SはEX2の
1/8の値である。以上のシフト演算はEX2の各ビッ
トの結線を入れ替えることで実現できる。
【0088】続いて、加算器62dは、EX2_4Sと
EX2_1Sとを加算して、この加算結果をEX2_5
Sとして出力する。このEX2_5SはEX2の5/8
の値である。加算器62eはEX2_2SとEX2_1
Sとを加算して、この加算結果をEX2_3Sとして出
力する。このEX2_3SはEX2の3/8の値であ
る。
【0089】また、EX2_3Sを図示しないシフト演
算器によって左に1ビットシフトして、このシフト演算
の結果をEX2_6Sとする。このシフト演算は、EX
2_3Sの各ビットの結線を入れ替えることで実現でき
る。EX2_6SはEX2の6/8の値である。加算器
62fは、EX2とEX2_1Sとを加算して、この加
算結果をEX2_7Sとして出力する。このEX2_7
SはEX2の7/8の値である。
【0090】次に、セレクタ63aは、描画Y座標生成
回路1から出力された信号LRFが「0」のときEXL
1_7Sを選択し、信号LRFが「1」のときEX2_
7Sを選択する。そして、この選択結果をEXL7Sと
して出力する。セレクタ63bは、信号LRFが「0」
のときEXL1_6Sを選択し、信号LRFが「1」の
ときEX2_6Sを選択し、この選択結果をEXL6S
として出力する。
【0091】セレクタ63cは、信号LRFが「0」の
ときEXL1_5Sを選択し、信号LRFが「1」のと
きEX2_5Sを選択し、この選択結果をEXL5Sと
して出力する。セレクタ63dは、信号LRFが「0」
のときEXL1_4Sを選択し、信号LRFが「1」の
ときEX2_4Sを選択し、この選択結果をEXL4S
として出力する。セレクタ63eは、信号LRFが
「0」のときEXL1_3Sを選択し、信号LRFが
「1」のときEX2_3Sを選択し、この選択結果をE
XL3Sとして出力する。
【0092】セレクタ63fは、信号LRFが「0」の
ときEXL1_2Sを選択し、信号LRFが「1」のと
きEX2_2Sを選択し、この選択結果をEXL2Sと
して出力する。そして、セレクタ63gは、信号LRF
が「0」のときEXL1_1Sを選択し、信号LRFが
「1」のときEX2_1Sを選択し、この選択結果をE
XL1Sとして出力する。
【0093】以上の変化量は、各サブ・スパン始点のX
座標を算出するためのものであるが、変化量EXL1_
1S〜EXL1_7Sは、Y座標がYMより小さいサブ
・スパンを対象とするものであり、EXL7S〜EXL
1Sは、Y座標がYM以上のサブ・スパンを対象とする
ものである。
【0094】一方、シフト演算器64aは、辺SRの傾
きEXR1の値を右に1ビットシフトして、このシフト
演算の結果をEXR1_4Sとして出力する。このEX
R1_4SはEXR1の4/8の値である。シフト演算
器64bは、傾きEXR1の値を右に2ビットシフトし
て、このシフト演算の結果をEXR1_2Sとして出力
する。このEXR1_2SはEXR1の2/8の値であ
る。
【0095】シフト演算器64cは、傾きEXR1の値
を右に3ビットシフトして、このシフト演算の結果をE
XR1_1Sとして出力する。このEXR1_1SはE
XR1の1/8の値である。なお、以上のシフト演算
は、EXR1の各ビットの結線を入れ替えることで実現
できる。
【0096】次いで、加算器65aは、EXR1_4S
とEXR1_1Sとを加算して、この加算結果をEXR
1_5Sとして出力する。このEXR1_5SはEXR
1の5/8の値である。加算器65bは、EXR1_2
SとEXR1_1Sとを加算して、この加算結果をEX
R1_3Sとして出力する。このEXR1_3SはEX
R1の3/8の値である。
【0097】また、EXR1_3Sを図示しないシフト
演算器によって左に1ビットシフトして、このシフト演
算の結果をEXR1_6Sとする。このシフト演算は、
EXR1_3Sの各ビットの結線を入れ替えることで実
現できる。EXR1_6SはEXR1の6/8の値であ
る。加算器65cは、EXR1とEXR1_1Sとを加
算して、この加算結果をEXR1_7Sとして出力す
る。このEXR1_7SはEXR1の7/8の値であ
る。
【0098】続いて、セレクタ66aは、信号LRFが
「1」のときEXR1_7Sを選択し、信号LRFが
「0」のときEX2_7Sを選択する。そして、この選
択結果をEXR7Sとして出力する。セレクタ66b
は、信号LRFが「1」のときEXR1_6Sを選択
し、信号LRFが「0」のときEX2_6Sを選択し、
この選択結果をEXR6Sとして出力する。セレクタ6
6cは、信号LRFが「1」のときEXR1_5Sを選
択し、信号LRFが「0」のときEX2_5Sを選択
し、この選択結果をEXR5Sとして出力する。
【0099】セレクタ66dは、信号LRFが「1」の
ときEXR1_4Sを選択し、信号LRFが「0」のと
きEX2_4Sを選択し、この選択結果をEXR4Sと
して出力する。セレクタ66eは、信号LRFが「1」
のときEXR1_3Sを選択し、信号LRFが「0」の
ときEX2_3Sを選択し、この選択結果をEXR3S
として出力する。
【0100】セレクタ66fは、信号LRFが「1」の
ときEXR1_2Sを選択し、信号LRFが「0」のと
きEX2_2Sを選択し、この選択結果をEXR2Sと
して出力する。セレクタ66gは、信号LRFが「1」
のときEXR1_1Sを選択し、信号LRFが「0」の
ときEX2_1Sを選択し、この選択結果をEXR1S
として出力する。
【0101】以上の変化量は、各サブ・スパン終点のX
座標を算出するためのものであるが、変化量EXR1_
1S〜EXR1_7Sは、Y座標がYMより小さいサブ
・スパンを対象とするものであり、EXR7S〜EXR
1Sは、Y座標がYM以上のサブ・スパンを対象とする
ものである。
【0102】次に、サブ・スパン始点生成回路6は、Y
座標がYDとなる現在処理中のスパンPn とY座標がY
D+1となる次に処理すべきスパンPn+1 間を分割する
複数のサブ・スパンと三角形ポリゴンの辺との交点のう
ち、X座標が最小の点をサブ・スパン毎に求めて、これ
らを各サブ・スパンの始点とし、この各始点のX座標X
S0〜XS7を出力する(図4ステップ204)。
【0103】例えば、図7に示す三角形ポリゴンに対し
てサブ・スパンSP0 〜SP7 の各始点はXS0〜XS
7の位置となる。なお、これらサブ・スパンのうち1本
は現在処理中のスパンPn と同一である。また、サブ・
スパン始点のX座標XS0〜XS7は実数であり、数十
ビット程度の2進値で表されている。
【0104】このサブ・スパン始点生成回路6のブロッ
ク図を図15に示す。論理積回路72aは、信号SEL
0を論理反転するインバータ71aの出力と信号Y_Y
M_Eと信号LRFとの論理積をとる。セレクタ73a
は、論理積回路72aの出力が「0」のとき、スパン始
点生成回路2から出力されたスパン始点X座標XAを選
択して出力し、論理積回路72aの出力が「1」のとき
頂点LのX座標XLを選択して出力する。
【0105】論理積回路72bは、信号SEL1を論理
反転するインバータ71bの出力と信号Y_YM_Eと
信号LRFとの論理積をとる。セレクタ73bは、論理
積回路72bの出力が「0」のときXAを選択して出力
し、論理積回路72bの出力が「1」のときXLを選択
して出力する。
【0106】論理積回路72cは、信号SEL2を論理
反転するインバータ71cの出力と信号Y_YM_Eと
信号LRFとの論理積をとる。セレクタ73cは、論理
積回路72cの出力が「0」のときXAを選択して出力
し、論理積回路72cの出力が「1」のときXLを選択
して出力する。
【0107】論理積回路72dは、信号SEL3を論理
反転するインバータ71dの出力と信号Y_YM_Eと
信号LRFとの論理積をとる。セレクタ73dは、論理
積回路72dの出力が「0」のときXAを選択して出力
し、論理積回路72dの出力が「1」のときXLを選択
して出力する。論理積回路72eは、信号SEL4を論
理反転するインバータ71eの出力と信号Y_YM_E
と信号LRFとの論理積をとる。セレクタ73eは、論
理積回路72eの出力が「0」のときXAを選択して出
力し、論理積回路72eの出力が「1」のときXLを選
択して出力する。
【0108】論理積回路72fは、信号SEL5を論理
反転するインバータ71fの出力と信号Y_YM_Eと
信号LRFとの論理積をとる。セレクタ73fは、論理
積回路72fの出力が「0」のときXAを選択して出力
し、論理積回路72fの出力が「1」のときXLを選択
して出力する。論理積回路72gは、信号SEL7を論
理反転するインバータ71gの出力と信号Y_YM_E
と信号LRFとの論理積をとる。セレクタ73gは、論
理積回路72gの出力が「0」のときXAを選択して出
力し、論理積回路72gの出力が「1」のときXLを選
択して出力する。
【0109】そして、論理積回路72hは、信号SEL
7を論理反転するインバータ71hの出力と信号Y_Y
M_Eと信号LRFとの論理積をとる。セレクタ73h
は、論理積回路72hの出力が「0」のときXAを選択
して出力し、論理積回路72hの出力が「1」のときX
Lを選択して出力する。
【0110】したがって、第1のセレクタ73a〜73
hは、LRF「0」、すなわちYL≧YRのとき、各サ
ブ・スパン始点を求める基準となる基準点として、スパ
ン始点を選択して、スパン始点X座標XAを出力する。
また、LRF「1」、すなわちYL<YRで、Y_YM
_Eが「0」、すなわちスパン間に座標YMをとる頂点
Lが存在しないときは、スパン始点を基準点として選択
して、スパン始点X座標XAを出力する。そして、LR
F「1」で、Y_YM_Eが「1」、すなわちスパン間
に座標YMをとる頂点Lが存在するとき、Y座標がYM
より小さいサブ・スパン(対応する選択信号SELが
「1」)についてはスパン始点を基準点として選択し
て、スパン始点X座標XAを出力し、Y座標がYM以上
のサブ・スパン(選択信号が「0」)については頂点L
を基準点として選択して、この頂点LのX座標XLを出
力することになる。
【0111】次に、セレクタ74aは、信号SEL0が
「1」のとき「0」(実際には、EXL7Sと同一ビッ
ト数の値である)を選択して出力し、信号SEL0が
「0」のときEXL7Sを選択して出力する。セレクタ
74bは、信号SEL1が「1」のときEXL1_1S
を選択して出力し、信号SEL1が「0」のときEXL
6Sを選択して出力する。
【0112】セレクタ74cは、信号SEL2が「1」
のときEXL1_2Sを選択して出力し、信号SEL2
が「0」のときEXL5Sを選択して出力する。セレク
タ74dは、信号SEL3が「1」のときEXL1_3
Sを選択して出力し、信号SEL3が「0」のときEX
L4Sを選択して出力する。
【0113】セレクタ74eは、信号SEL4が「1」
のときEXL1_4Sを選択して出力し、信号SEL4
が「0」のときEXL3Sを選択して出力する。セレク
タ74fは、信号SEL5が「1」のときEXL1_5
Sを選択して出力し、信号SEL5が「0」のときEX
L2Sを選択して出力する。
【0114】セレクタ74gは、信号SEL6が「1」
のときEXL1_6Sを選択して出力し、信号SEL6
が「0」のときEXL1Sを選択して出力する。セレク
タ74hは、信号SEL7が「1」のときEXL1_7
Sを選択して出力し、信号SEL7が「0」のとき
「0」(実際には、EXL1_7Sと同一ビット数の値
である)を選択して出力する。
【0115】続いて、加算器75aは、セレクタ73a
の出力にセレクタ74aの出力を加算して、この加算結
果をXS0として出力する。加算器75bは、セレクタ
73bの出力にセレクタ74bの出力を加算して、この
加算結果をXS1として出力する。加算器75cは、セ
レクタ73cの出力にセレクタ74cの出力を加算し
て、この加算結果をXS2として出力する。
【0116】加算器75dは、セレクタ73dの出力に
セレクタ74dの出力を加算して、この加算結果をXS
3として出力する。加算器75eは、セレクタ73eの
出力にセレクタ74eの出力を加算して、この加算結果
をXS4として出力する。加算器75fは、セレクタ7
3fの出力にセレクタ74fの出力を加算して、この加
算結果をXS5として出力する。
【0117】加算器75gは、セレクタ73gの出力に
セレクタ74gの出力を加算して、この加算結果をXS
6として出力する。そして、加算器75hは、セレクタ
73hの出力にセレクタ74hの出力を加算して、この
加算結果をXS7として出力する。
【0118】こうして、第1のセレクタ73a〜73h
から出力された基準点のX座標に第2のセレクタ74a
〜74hから出力された変化量を加算することにより、
各サブ・スパン始点のX座標を求めることができる。以
上のXS0〜XS7に関する処理は並列に実行され、X
S0〜XS7が同時に出力される。
【0119】次に、このようなサブ・スパン始点生成回
路6の動作を図16を用いて説明する。例えば、三角形
ポリゴンに対して現在のスパンPn と次のスパンPn+1
が図16(a)のような位置にあるときは(頂点L及び
Rはスパン間になく、頂点Sはあってもよい)、選択信
号SEL0〜SEL7が全て「1」である。これによ
り、サブ・スパン始点生成回路6は、スパンPn の始点
のX座標XAに0,EXL1_1S,EXL1_2S,
EXL1_3S,EXL1_4S,EXL1_5S,E
XL1_6S,EXL1_7Sを加算して、この加算結
果をそれぞれサブ・スパンSP0 〜SP7 の各始点のX
座標XS0〜XS7とする。
【0120】また、三角形ポリゴンに対して現在のスパ
ンPm と次のスパンPm+1 が図16(a)のような位置
にあるときは(Y座標がYMの頂点はスパン間になく、
Y座標が最大の頂点はあってもよい)、選択信号SEL
0〜SEL7が全て「0」である。これにより、サブ・
スパン始点生成回路6は、スパンPm の始点のX座標X
AにEXL7S,EXL6S,EXL5S,EXL4
S,EXL3S,EXL2S,EXL1S,0をそれぞ
れ加算して、この加算結果をそれぞれサブ・スパンSP
7 〜SP0 の各始点のX座標XS0〜XS7とする。
【0121】また、LRFが「1」の三角形ポリゴンに
対して現在のスパンPn と次のスパンPn+1 が図16
(b)のような位置にあるときは、選択信号SEL0〜
SEL3が「1」、SEL4〜SEL7が「0」とな
る。これにより、サブ・スパン始点生成回路6は、スパ
ンPn の始点のX座標XAに0,EXL1_1S,EX
L1_2S,EXL1_3Sを加算して、この加算結果
をそれぞれサブ・スパンSP0 〜SP3 の各始点のX座
標XS0〜XS3とし、頂点LのX座標XLにEXL3
S,EXL2S,EXL1S,0をそれぞれ加算して、
この加算結果をそれぞれサブ・スパンSP7 〜SP4 の
各始点のX座標XS4〜XS7とする。
【0122】次に、サブ・スパン終点生成回路7は、Y
座標がYDとなる現在処理中のスパンPn とY座標がY
D+1となる次に処理すべきスパンPn+1 間を分割する
複数のサブ・スパンと三角形ポリゴンの辺との交点のう
ち、X座標が最大の点をサブ・スパン毎に同時に求め
て、これらを各サブ・スパンの終点とし、この各終点の
X座標XE0〜XE7をサブ・スパン始点生成回路6の
出力と同時に出力する(ステップ204)。
【0123】例えば、図7に示す三角形ポリゴンに対し
てサブ・スパンSP0 〜SP7 の各終点はXE0〜XE
7の位置となる。なお、これらサブ・スパンのうち1本
は現在処理中のスパンPn と同一である。また、サブ・
スパン終点のX座標XE0〜XE7は実数であり、数十
ビット程度の2進値で表されている。
【0124】このサブ・スパン終点生成回路7のブロッ
ク図を図17に示す。論理積回路82aは、信号SEL
0を論理反転するインバータ81aの出力と信号Y_Y
M_Eと信号LRFを論理反転するインバータ86の出
力との論理積をとる。セレクタ83aは、論理積回路8
2aの出力が「0」のとき、スパン終点生成回路3から
出力されたスパン終点のX座標XBを選択して出力し、
論理積回路82aの出力が「1」のとき、頂点RのX座
標XRを選択して出力する。
【0125】論理積回路82bは、信号SEL1を論理
反転するインバータ81bの出力と信号Y_YM_Eと
インバータ86の出力との論理積をとる。セレクタ83
bは、論理積回路82bの出力が「0」のときXBを選
択して出力し、論理積回路82bの出力が「1」のとき
XRを選択して出力する。論理積回路82cは、信号S
EL2を論理反転するインバータ81cの出力と信号Y
_YM_Eとインバータ86の出力との論理積をとる。
セレクタ83cは、論理積回路82cの出力が「0」の
ときXBを選択して出力し、論理積回路82cの出力が
「1」のときXRを選択して出力する。
【0126】論理積回路82dは、信号SEL3を論理
反転するインバータ81dの出力と信号Y_YM_Eと
インバータ86の出力との論理積をとる。セレクタ83
dは、論理積回路82dの出力が「0」のときXBを選
択して出力し、論理積回路82dの出力が「1」のとき
XRを選択して出力する。論理積回路82eは、信号S
EL4を論理反転するインバータ81eの出力と信号Y
_YM_Eとインバータ86の出力との論理積をとる。
セレクタ83eは、論理積回路82eの出力が「0」の
ときXBを選択して出力し、論理積回路82eの出力が
「1」のときXRを選択して出力する。
【0127】論理積回路82fは、信号SEL5を論理
反転するインバータ81fの出力と信号Y_YM_Eと
インバータ86の出力との論理積をとる。セレクタ83
fは、論理積回路82fの出力が「0」のときXBを選
択して出力し、論理積回路82fの出力が「1」のとき
XRを選択して出力する。論理積回路82gは、信号S
EL6を論理反転するインバータ81gの出力と信号Y
_YM_Eとインバータ86の出力との論理積をとる。
セレクタ83gは、論理積回路82gの出力が「0」の
ときXBを選択して出力し、論理積回路82gの出力が
「1」のときXRを選択して出力する。
【0128】そして、論理積回路82hは、信号SEL
7を論理反転するインバータ81hの出力と信号Y_Y
M_Eとインバータ86の出力との論理積をとる。セレ
クタ83hは、論理積回路82hの出力が「0」のとき
XBを選択して出力し、論理積回路82hの出力が
「1」のときXRを選択して出力する。
【0129】したがって、第3のセレクタ83a〜83
hは、LRF「1」、すなわちYL<YRのとき、各サ
ブ・スパン終点を求める基準となる基準点として、スパ
ン終点を選択して、スパン終点X座標XBを出力する。
また、LRF「0」、すなわちYL≧YRで、Y_YM
_Eが「0」、すなわちスパン間に座標YMをとる頂点
Rが存在しないときは、スパン終点を基準点として選択
して、スパン終点X座標XBを出力する。そして、LR
F「0」で、Y_YM_Eが「1」、すなわちスパン間
に座標YMをとる頂点Rが存在するとき、Y座標がYM
より小さいサブ・スパン(対応する選択信号SELが
「1」)についてはスパン終点を基準点として選択し
て、スパン終点X座標XBを出力し、Y座標がYM以上
のサブ・スパン(選択信号が「0」)については頂点R
を基準点として選択して、この頂点RのX座標XRを出
力することになる。
【0130】次に、セレクタ84aは、信号SEL0が
「1」のとき「0」(実際には、EXR7Sと同一ビッ
ト数の値である)を選択して出力し、信号SEL0が
「0」のときEXR7Sを選択して出力する。セレクタ
84bは、信号SEL1が「1」のときEXR1_1S
を選択して出力し、信号SEL1が「0」のときEXR
6Sを選択して出力する。
【0131】セレクタ84cは、信号SEL2が「1」
のときEXR1_2Sを選択して出力し、信号SEL2
が「0」のときEXR5Sを選択して出力する。セレク
タ84dは、信号SEL3が「1」のときEXR1_3
Sを選択して出力し、信号SEL3が「0」のときEX
R4Sを選択して出力する。
【0132】セレクタ84eは、信号SEL4が「1」
のときEXR1_4Sを選択して出力し、信号SEL4
が「0」のときEXR3Sを選択して出力する。セレク
タ84fは、信号SEL5が「1」のときEXR1_5
Sを選択して出力し、信号SEL5が「0」のときEX
R2Sを選択して出力する。
【0133】セレクタ84gは、信号SEL6が「1」
のときEXR1_6Sを選択して出力し、信号SEL6
が「0」のときEXR1Sを選択して出力する。セレク
タ84hは、信号SEL7が「1」のときEXR1_7
Sを選択して出力し、信号SEL7が「0」のとき
「0」(実際には、EXR1_7Sと同一ビット数の値
である)を選択して出力する。
【0134】続いて、加算器85aは、セレクタ83a
の出力にセレクタ84aの出力を加算して、この加算結
果をXE0として出力する。加算器85bは、セレクタ
83bの出力にセレクタ84bの出力を加算して、この
加算結果をXE1として出力する。加算器85cは、セ
レクタ83cの出力にセレクタ84cの出力を加算し
て、この加算結果をXE2として出力する。
【0135】加算器85dは、セレクタ83dの出力に
セレクタ84dの出力を加算して、この加算結果をXE
3として出力する。加算器85eは、セレクタ83eの
出力にセレクタ84eの出力を加算して、この加算結果
をXE4として出力する。加算器85fは、セレクタ8
3fの出力にセレクタ84fの出力を加算して、この加
算結果をXE5として出力する。
【0136】加算器85gは、セレクタ83gの出力に
セレクタ84gの出力を加算して、この加算結果をXE
6として出力する。そして、加算器85hは、セレクタ
83hの出力にセレクタ84hの出力を加算して、この
加算結果をXE7として出力する。
【0137】こうして、第3のセレクタ83a〜83h
から出力された基準点のX座標に第4のセレクタ84a
〜84hから出力された変化量を加算することにより、
各サブ・スパン終点のX座標を求めることができる。以
上のXE0〜XE7に関する処理は並列に実行され、X
E0〜XE7が同時に出力される。
【0138】次に、このようなサブ・スパン終点生成回
路7の動作を図16、図18を用いて説明する。例え
ば、三角形ポリゴンに対して現在のスパンPn と次のス
パンPn+1 が図16(a)のような位置にあるときは
(頂点L及びRはスパン間になく、頂点Sはあってもよ
い)、選択信号SEL0〜SEL7が全て「1」であ
る。これにより、サブ・スパン終点生成回路7は、スパ
ンPn の終点のX座標XBに0,EXR1_1S,EX
R1_2S,EXR1_3S,EXR1_4S,EXR
1_5S,EXR1_6S,EXR1_7Sを加算し
て、この加算結果をそれぞれサブ・スパンSP0 〜SP
7 の各終点のX座標XE0〜XE7とする。
【0139】また、LRFが「0」の三角形ポリゴンに
対して現在のスパンPn と次のスパンPn+1 が図18
(a)のような位置にあるときは(Y座標がYMの頂点
はスパン間になく、Y座標が最大の頂点はあってもよ
い)、選択信号SEL0〜SEL7が全て「0」とな
る。これにより、サブ・スパン終点生成回路7は、スパ
ンPn の終点のX座標XBにEXR7S,EXR6S,
EXR5S,EXR4S,EXR3S,EXR2S,E
XR1S,0をそれぞれ加算して、この加算結果をそれ
ぞれサブ・スパンSP7 〜SP0 の各終点のX座標XE
0〜XE7とする。
【0140】また、LRFが「0」の三角形ポリゴンに
対して現在のスパンPn と次のスパンPn+1 が図18
(b)のような位置にあるときは、選択信号SEL0〜
SEL3が「1」、SEL4〜SEL7が「0」とな
る。これにより、サブ・スパン終点生成回路7は、スパ
ンPn の終点のX座標XBに0,EXR1_1S,EX
R1_2S,EXR1_3Sを加算して、この加算結果
をそれぞれサブ・スパンSP0 〜SP3 の各終点のX座
標XE0〜XE3とし、頂点RのX座標XRにEXR3
S,EXR2S,EXR1S,0をそれぞれ加算して、
この加算結果をそれぞれサブ・スパンSP7 〜SP4 の
各終点のX座標XE4〜XE7とする。
【0141】以上の説明から分かるように、サブ・スパ
ン始点生成回路6では、変化量0、EXL1_1S〜E
XL1_7Sを対応するサブ・スパンのY座標が小さい
順にセレクタ74a〜74hに与え、EXL7S〜EX
L1S、0を対応するサブ・スパンのY座標が大きい順
にセレクタ74a〜74hに与えて、選択信号SEL0
〜SEL7で選択動作を行わせている。
【0142】これにより、Y座標がYMより小さいサブ
・スパンについては、Y座標が小さい順に並んだサブ・
スパン始点X座標を求めることになり(最初のサブ・ス
パン始点が基準点と同一になる)、Y座標がYM以上の
サブ・スパンについては、Y座標が大きい順に並んだサ
ブ・スパン始点X座標を求めることになる(最後のサブ
・スパン始点が基準点と同一になる)。
【0143】このような構成をとることにより、0,E
XL1の1/8〜7/8,EX2の1/8〜7/8とい
った全てのサブ・スパン変化量をセレクタ74a〜74
hにそれぞれ与える必要がなくなり、一定の変化量を各
セレクタ74a〜74hに与えるだけでよいので、サブ
・スパン始点生成回路6の構成を簡単にすることができ
る。
【0144】同様に、サブ・スパン終点生成回路7で
は、変化量0、EXR1_1S〜EXR1_7Sを対応
するサブ・スパンのY座標が小さい順にセレクタ74a
〜74hに与え、EXR7S〜EXR1S、0を対応す
るサブ・スパンのY座標が大きい順にセレクタ74a〜
74hに与えて、選択信号SEL0〜SEL7で選択動
作を行わせている。
【0145】これにより、Y座標がYMより小さいサブ
・スパンについては、Y座標が小さい順に並んだサブ・
スパン終点X座標を求めることになり(最初のサブ・ス
パン終点が基準点と同一になる)、Y座標がYM以上の
サブ・スパンについては、Y座標が大きい順に並んだサ
ブ・スパン終点X座標を求めることになる(最後のサブ
・スパン終点が基準点と同一になる)。こうして、サブ
・スパン始点生成回路6と同様の効果を得ることができ
る。
【0146】次に、最左端サブ・スパン始点生成回路8
は、MXL1、MX2、MXR1、Y_YM_S、Y_
YM_E、LRF、DWEに従って、サブ・スパン始点
生成回路6から出力された各サブ・スパンの始点X座標
XS0〜XS7のうち、値が最小のX座標XSLを出力
する(図4ステップ205)。この最左端サブ・スパン
始点生成回路8の動作を表6に示す。
【0147】
【表6】
【0148】例えば、LRFが「1」で、MXL1,M
X2が共に正である図19(a)のような三角形ポリゴ
ンに対して、Y_YM_Sが「1」、すなわち現在のス
パンPn と次のスパンPn+1 が図のような位置にあると
き、最も小さいサブ・スパン始点のX座標はXS0であ
る。
【0149】同様に、LRFが「1」で、MXL1,M
X2が共に正である図19(b)のような三角形ポリゴ
ンに対して、Y_YM_S,Y_YM_Eが共に
「0」、すなわち現在のスパンPn と次のスパンPn+1
が図のような位置にあるとき、最も小さいサブ・スパン
始点のX座標はXS7である。その他の条件についても
同様に考えることができる。なお、表6において、「上
記以外」とは表6に示したMXL1,MX2,MXR
1,Y_YM_S,Y_YM_E,LRFの条件が不成
立の場合である。
【0150】最も小さいサブ・スパン始点X座標XSL
は、XS0〜XS7の大小を比較して最も小さいものを
選びだしてもよいが、XS0〜XS7は数十ビットの値
であるので、これらを比較する回路を実現しようとする
と、回路規模が大きくなり、処理時間もかかる。そこ
で、本実施の形態のようにすれば、XS0〜XS7の大
小を比較する回路よりも回路規模を小さくでき、処理速
度も速くできる。
【0151】次に、最右端サブ・スパン終点生成回路9
は、MXL1、MX2、MXR1、Y_YM_S、Y_
YM_E、LRF、DWEに従って、サブ・スパン終点
生成回路7から出力された各サブ・スパンの終点X座標
XE0〜XE7のうち、値が最大のX座標XERを最左
端サブ・スパン始点生成回路8の出力と同時に出力する
(図4ステップ205)。この最右端サブ・スパン終点
生成回路9の動作を表7に示す。
【0152】
【表7】
【0153】この最右端サブ・スパン終点生成回路9の
動作も最左端サブ・スパン始点生成回路8と同様であ
る。なお、表7において、「上記以外」とは表7に示し
たMXR1,MX2,MXL1,Y_YM_S,Y_Y
M_E,LRFの条件が不成立の場合である。
【0154】最も大きいサブ・スパン終点X座標XER
は、XE0〜XE7の大小を比較して最も大きいものを
選びだしてもよいが、XE0〜XE7は数十ビットの値
であるので、これらを比較する回路を実現しようとする
と、回路規模が大きくなり、処理時間もかかる。そこ
で、本実施の形態のようにすれば、XE0〜XE7の大
小を比較する回路よりも回路規模を小さくでき、処理速
度も速くできる。
【0155】次に、描画X座標生成回路10は、最左端
サブ・スパン始点生成回路8から出力されたXSLの整
数部分の値を描画処理の対象となる最初のピクセルのX
座標XD(整数値)として出力する(ステップ20
6)。例えば、三角形ポリゴンに対して処理すべきスパ
ンPn が図20のような位置にあるとき(このスパンP
n のY座標VがピクセルのY座標YDと等しい)、描画
X座標生成回路10は、XSLの整数部分の値Hをスパ
ンPn における最初のピクセルのX座標XDとして出力
する。
【0156】なお、図20において、X座標が整数
(H,H+1,H+2・・・)のY軸に平行な線分とY
座標が整数(V,V+1,V+2)のX軸に平行な線分
で囲まれた四角形の領域が1ピクセルである。
【0157】次に、有効サブ・スパン指定回路11は、
サブ・スパン選択制御回路4から出力された信号UP
E,DWEに従って、信号VALID0〜VALID7
を出力する。この信号VALID0〜VALID7は、
XS0〜XS7及びXE0〜XE7にそれぞれ対応する
ものであり、XS0〜XS7あるいはXE0〜XE7の
うち、有効なサブ・スパンを示すものである(対応する
サブ・スパンが有効なとき「1」となる)。この有効サ
ブ・スパン指定回路11の動作を表8に示す。
【0158】
【表8】
【0159】有効サブ・スパン指定回路11は、信号U
PEが「0001」〜「1000」、あるいは信号DW
Eが「1000」のとき、信号VALID0を「1」と
し、それ以外のとき信号VALID0を「0」とする。
また、信号UPEが「0010」〜「1000」、ある
いは信号DWEが「0111」〜「1000」のとき、
信号VALID1を「1」とし、それ以外のとき信号V
ALID1を「0」とする。その他の信号VALID2
〜VALID7についても同様である。
【0160】この有効サブ・スパン指定回路11の目的
を以下に説明する。例えば、三角形ポリゴンに対して現
在のスパンPn と次のスパンPn+1 の位置関係が図11
(a)、(b)、(c)、(d)、(k)、(l)、
(m)、(n)のような関係にあるとき、スパンPn と
スパンPn+1 間で三角形ポリゴンの辺と交差しないサブ
・スパンが存在する。これらのサブ・スパンは描画処理
の対象とならず、無効である。有効サブ・スパン指定回
路11は、スパンPn とスパンPn+1 間で三角形ポリゴ
ンの辺と交差する有効なサブ・スパンのみを指定するも
のである。
【0161】次に、サブ・スパン始点比較回路12は、
描画X座標生成回路10から出力されたピクセルのX座
標XDとサブ・スパン始点生成回路6から出力されたX
S0〜XS7をそれぞれ比較して、どちらか大きい方を
X座標XDのピクセルにおける各サブ・スパンの始点X
座標として出力する(ステップ207)。ただし、対応
する信号VALID0〜VALID7が「0」のサブ・
スパンについては、始点X座標を0とする。
【0162】例えば、X座標XDがH、Y座標YDがV
のピクセルにおいては(図20)、XDよりもXS0〜
XS7の方が大きいので、XS0〜XS7をX座標XD
のピクセルにおけるサブ・スパンSP0 〜SP7 の各始
点X座標として出力する。なお、これらの処理は並列に
実行されて、各サブ・スパンの結果が同時に出力され
る。
【0163】また、X座標XDがH、Y座標YDがVの
ピクセルにおいては、三角形ポリゴンの辺又はその内側
とサブ・スパンSP0 〜SP4 が重なっていないので、
このピクセルにおけるサブ・スパンSP0 〜SP4 は無
効である。この無効なサブ・スパンの処理については後
述する。
【0164】そして、X座標XDがH+1、Y座標YD
がVのピクセルにおいては、XDよりもXS0〜XS4
の方が大きいので、XS0〜XS4をこのピクセルにお
けるサブ・スパンSP0 〜SP4 の各始点X座標として
出力し、XDをサブ・スパンSP5 〜SP7 の各始点X
座標として出力する。
【0165】次に、サブ・スパン終点比較回路13は、
サブ・スパン始点比較回路12と同時に、ピクセルのX
座標XDに1加算した値とサブ・スパン終点生成回路7
から出力されたXE0〜XE7をそれぞれ比較して、ど
ちらか小さい方をX座標XDのピクセルにおける各サブ
・スパンの終点X座標として出力する(ステップ20
7)。ただし、対応する信号VALID0〜VALID
7が「0」のサブ・スパンについては、終点X座標を0
とする。
【0166】例えば、X座標XDがH、Y座標YDがV
のピクセルにおいては(図20)、XE0〜XE7より
もH+1の方が小さいので、H+1をX座標XDのピク
セルにおけるサブ・スパンSP0 〜SP7 の各終点X座
標として出力する。
【0167】次に、サブ・スパン差分算出回路14は、
サブ・スパン終点比較回路13から出力された各サブ・
スパンの終点X座標よりサブ・スパン始点比較回路12
から出力された各サブ・スパンの始点X座標をサブ・ス
パン毎に減算して、この減算結果を座標XDのピクセル
における各サブ・スパンの有効長として出力する(ステ
ップ208)。この各サブ・スパンの減算処理も並列に
実行される。
【0168】例えば、X座標XDがH、Y座標YDがV
のピクセルにおいては(図20)、H+1がサブ・スパ
ンSP0 〜SP7 の終点X座標、XS0〜XS7がサブ
・スパンSP0 〜SP7 の各始点X座標なので、H+1
からXS0〜XS7をそれぞれ減算して、これらの結果
を各サブ・スパンSP0 〜SP7 の有効長とする。この
とき、サブ・スパンSP0 〜SP4 については減算結果
が負となる。サブ・スパン差分算出回路14は、減算結
果が負となったサブ・スパンについては有効長を0(つ
まり、無効)とする。これが1ピクセルにおける無効な
サブ・スパンの処理である。
【0169】また、対応する信号VALID0〜VAL
ID7が「0」のサブ・スパンについては、始点X座
標、終点X座標が共に0なので、減算結果も0となる。
これにより、三角形ポリゴンと交差しないサブ・スパン
が無効とされる。
【0170】次に、サブ・スパン加算回路15は、サブ
・スパン差分算出回路14から出力された各サブ・スパ
ンの有効長の総和を求めて、この結果を座標XDのピク
セルにおける三角形ポリゴンと重なる面積(覆い値)S
Qとして出力する(ステップ209)。例えば、X座標
XDがH、Y座標YDがVのピクセルにおいては(図2
0)、太線で示した有効長の総和がこのピクセルにおけ
る三角形ポリゴンと重なる面積SQとなる。
【0171】こうして、座標XDのピクセルにおける三
角形ポリゴンと重なる面積SQを求めることができ、ピ
クセル処理部106は、前述のように、このピクセルに
対して描画処理を行う。
【0172】次に、描画X座標生成回路10は、現在の
ピクセルのX座標XDが最右端サブ・スパン終点生成回
路9から出力されたXERの整数部分の値と等しいかど
うかを判定し(ステップ210)、等しくない場合は現
在のピクセルのX座標XDに1加算して(ステップ21
1)、この加算結果を次に処理すべきピクセルのX座標
XDとして出力する(ステップ206)。
【0173】これにより、ステップ207〜ステップ2
09の処理が上記と同様に実行される。例えば、処理が
終了したピクセルが図20におけるX座標XDがH、Y
座標YDがVのピクセルであったとすれば、次に処理さ
れるのは、X座標XDがH+1、Y座標YDがVのピク
セルである。
【0174】同様の処理を繰り返し、ステップ211に
おける加算処理によってピクセルのX座標XDがXER
の整数部分の値と等しくなると、描画X座標生成回路1
0は、現在のスパンにおいて三角形ポリゴンと重なる全
てのピクセルの処理が終了したことを示す信号XEND
を「1」とする(実際には、信号XENDが出力されて
いるときに最後のピクセルの処理207〜209が行わ
れる)。
【0175】例えば、三角形ポリゴンに対して現在のス
パンPn が図20のような位置にあるとき、このスパン
に関する最後のピクセルはX座標XDがH+4、Y座標
YDがVのピクセルである。よって、XDがH+4にな
った時点で、描画X座標生成回路10は、信号XEND
を「1」とする。
【0176】この信号XENDが出力されると、描画Y
座標生成回路1は、現在のピクセルのY座標YDが上記
Y座標値YEの整数部分の値と等しいかどうかを判定し
(ステップ212)、等しくない場合は現在のピクセル
のY座標YDに1加算して(ステップ213)、この加
算結果を次に処理すべきピクセルのY座標YDとして出
力する(ステップ201)。
【0177】これにより、ステップ202〜211の処
理が上記と同様に実行される。例えば、処理が終了した
スパンがY座標Vのピクセルであったとすれば、次に処
理されるのは、Y座標がV+1のピクセルである。同様
の処理を繰り返し、ステップ213における加算処理に
よってスパン(ピクセル)のY座標YDがYEの整数部
分の値と等しくなると、このスパンの処理が終了したス
テップ212の時点で、サブ・スパン処理部103の処
理が全て終了する。
【0178】
【発明の効果】本発明によれば、請求項1に記載のよう
に、描画Y座標生成回路、スパン始点生成回路、スパン
終点生成回路、サブ・スパン始点生成回路、サブ・スパ
ン終点生成回路、最左端サブ・スパン始点生成回路、最
右端サブ・スパン終点生成回路、描画X座標生成回路、
サブ・スパン始点比較回路、サブ・スパン終点比較回
路、サブ・スパン差分算出回路及びサブ・スパン加算回
路を設けることにより、座標XD,YDのピクセルにお
ける複数のサブ・スパンを並列に処理して、このピクセ
ルにおいて三角形領域と重なる面積を求めるので、各サ
ブ・スパンを順次処理する従来の画像処理装置よりもア
ンチエイリアシング処理を高速に実行することができ
る。
【0179】また、請求項2に記載のように、サブ・ス
パン選択制御回路を設け、サブ・スパン始点生成回路を
第1、第2のセレクタと第1の加算器とから構成し、サ
ブ・スパン終点生成回路を第3、第4のセレクタと第2
の加算器とから構成することにより、一定の変化量を第
2、第4のセレクタに与えるだけでよいので、サブ・ス
パン始点生成回路及びサブ・スパン終点生成回路の構成
を簡単にすることができる。
【0180】また、請求項3、4に記載のように、最左
端サブ・スパン始点生成回路が、三角形の各辺の傾きの
正負に基づいて各サブ・スパンの始点X座標のうち値が
最小のX座標XSLを選択して出力し、最右端サブ・ス
パン終点生成回路が、三角形の各辺の傾きの正負に基づ
いて各サブ・スパンの終点X座標のうち値が最大のX座
標XERを選択して出力するので、各サブ・スパンの始
点X座標の大小、各サブ・スパンの終点X座標の大小を
比較する場合よりも回路規模を小さくでき、処理速度も
速くすることができる。
【図面の簡単な説明】
【図1】 本発明の実施の形態となる画像処理装置のブ
ロック図である。
【図2】 三角形ポリゴンの頂点と辺の定義を説明する
ための図である。
【図3】 サブ・スパン処理部のブロック図である。
【図4】 サブ・スパン処理部の動作を説明するための
フローチャート図である。
【図5】 描画Y座標生成回路のブロック図である。
【図6】 信号LRFの意味を説明するための図であ
る。
【図7】 スパン、サブ・スパン、スパン始点、スパン
終点、サブ・スパン始点及びサブ・スパン終点を説明す
るための図である。
【図8】 スパン始点生成回路のブロック図である。
【図9】 スパン始点生成回路の動作を説明するための
図である。
【図10】 スパン終点生成回路のブロック図である。
【図11】 サブ・スパン選択制御回路のブロック図で
ある。
【図12】 サブ・スパン選択制御回路の動作を説明す
るための図である。
【図13】 サブ・スパン変化量生成回路のブロック図
である。
【図14】 サブ・スパン変化量生成回路のブロック図
である。
【図15】 サブ・スパン始点生成回路のブロック図で
ある。
【図16】 サブ・スパン始点生成回路の動作を説明す
るための図である。
【図17】 サブ・スパン終点生成回路のブロック図で
ある。
【図18】 サブ・スパン終点生成回路の動作を説明す
るための図である。
【図19】 最左端サブ・スパン始点生成回路の動作を
説明するための図である。
【図20】 描画X座標生成回路、サブ・スパン始点比
較回路、サブ・スパン終点比較回路、サブ・スパン差分
算出回路及びサブ・スパン加算回路の動作を説明するた
めの図である。
【符号の説明】
1…描画Y座標生成回路、2…スパン始点生成回路、3
…スパン終点生成回路、4…サブ・スパン選択制御回
路、5…サブ・スパン変化量生成回路、6…サブ・スパ
ン始点生成回路、7…サブ・スパン終点生成回路、8…
最左端サブ・スパン始点生成回路、9…最右端サブ・ス
パン終点生成回路、10…描画X座標生成回路、11…
有効サブ・スパン指定回路、12…サブ・スパン始点比
較回路、13…サブ・スパン終点比較回路、14…サブ
・スパン差分算出回路、15…サブ・スパン加算回路。
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.6,DB名) G06T 1/20,11/20 - 11/40

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 ベクトル画像のエッジで囲まれた三角形
    領域を描画処理する際に、前記三角形領域の面積を三角
    形領域と重なるピクセルごとに求めて、この面積に基づ
    いて三角形領域をピクセルごとに描画処理することによ
    り、出力画像のエッジ部のギザギザを除去するアンチエ
    イリアシング処理を実行する画像処理装置であって、 前記三角形領域の3つの頂点のうちY座標が最小となる
    頂点のY座標値からY座標が最大となる頂点のY座標値
    まで、前記ピクセルのY座標YDを三角形領域と重なる
    座標YDのピクセルの処理が全て終了する度に1増やし
    ながら出力する描画Y座標生成回路と、 X軸と並行でY座標がYDとなる現在処理中のスパンP
    n とY座標がYD+1となる次に処理すべきスパンPn+
    1 間において、前記三角形の辺上でY座標が最小の点の
    うちX座標が最小の点をスパンPn の始点とし、この始
    点のX座標XAを出力するスパン始点生成回路と、 前記スパン間において、三角形の辺上でY座標が最小の
    点のうちX座標が最大の点をスパンPn の終点とし、こ
    の終点のX座標XBを出力するスパン終点生成回路と、 スパン始点生成回路から出力されたスパン始点のX座標
    XAにより、前記スパン間を分割する複数のサブ・スパ
    ンと三角形の辺との交点のうちX座標が最小の点をサブ
    ・スパン毎に同時に求めて、これらを各サブ・スパンの
    始点とし、この各始点のX座標を出力するサブ・スパン
    始点生成回路と、 スパン終点生成回路から出力されたスパン終点のX座標
    XBにより、前記スパン間を分割する複数のサブ・スパ
    ンと三角形の辺との交点のうちX座標が最大の点をサブ
    ・スパン毎に同時に求めて、これらを各サブ・スパンの
    終点とし、この各終点のX座標を出力するサブ・スパン
    終点生成回路と、 サブ・スパン始点生成回路から出力された各サブ・スパ
    ンの始点X座標のうち値が最小のX座標XSLを出力す
    る最左端サブ・スパン始点生成回路と、 サブ・スパン終点生成回路から出力された各サブ・スパ
    ンの終点X座標のうち値が最大のX座標XERを出力す
    る最右端サブ・スパン終点生成回路と、 X座標XSLからX座標XERまで、前記ピクセルのX
    座標XDを1ピクセルの処理が終了する度に1増やしな
    がら出力する描画X座標生成回路と、 このピクセルのX座標XDとサブ・スパン始点生成回路
    から出力された各サブ・スパンの始点X座標を比較し
    て、大きい方を座標XDのピクセルにおける各サブ・ス
    パンの始点X座標として出力するサブ・スパン始点比較
    回路と、 前記X座標XDに1加算した値とサブ・スパン終点生成
    回路から出力された各サブ・スパンの終点X座標を比較
    して、小さい方を座標XDのピクセルにおける各サブ・
    スパンの終点X座標として出力するサブ・スパン終点比
    較回路と、 サブ・スパン終点比較回路から出力された各サブ・スパ
    ンの終点X座標よりサブ・スパン始点比較回路から出力
    された各サブ・スパンの始点X座標をサブ・スパン毎に
    減算して、座標XDのピクセルにおける各サブ・スパン
    の有効長を求めるサブ・スパン差分算出回路と、 サブ・スパン差分算出回路から出力された各サブ・スパ
    ンの有効長の総和を求めて、この結果を座標XDのピク
    セルにおいて前記三角形領域と重なる面積とするサブ・
    スパン加算回路とを有することを特徴とする画像処理装
    置。
  2. 【請求項2】 請求項1記載の画像処理装置において、 三角形の3つの頂点のうちY座標が最小の頂点をS、こ
    の頂点Sより左回りに次の頂点を順次L、Rとし、頂点
    L、RのY座標をYL、YRとし、頂点SとY座標が最
    大となる頂点の中間のY座標をとる頂点のY座標をYM
    としたとき、前記スパン間のサブ・スパンのY座標がY
    Mより小さいか否かをサブ・スパン毎に示す選択信号を
    出力するサブ・スパン選択制御回路を有し、 前記サブ・スパン始点生成回路は、複数のサブ・スパン
    に対応して設けられ、YL≧YRのとき前記スパン始点
    を基準点として選択して、スパン始点X座標XAを出力
    し、YL<YRでスパン間に座標YMをとる頂点Lが存
    在しないとき、スパン始点を基準点として選択して、ス
    パン始点X座標XAを出力し、YL<YRでスパン間に
    頂点Lが存在するとき、Y座標がYMより小さいサブ・
    スパンについてはスパン始点を基準点として選択して、
    スパン始点X座標XAを出力し、YL<YRでスパン間
    に頂点Lが存在するとき、Y座標がYM以上のサブ・ス
    パンについては頂点Lを基準点として選択して、この頂
    点LのX座標を出力する複数の第1のセレクタと、 複数のサブ・スパンに対応して設けられ、基準点のX座
    標から辺SL上の複数のサブ・スパン始点のX座標まで
    の各変化量がサブ・スパン始点のY座標が小さい順に第
    1の入力端子にそれぞれ入力され、基準点のX座標から
    辺LR上の複数のサブ・スパン始点のX座標までの各変
    化量がサブ・スパン始点のY座標が大きい順に第2の入
    力端子にそれぞれ入力され、YL≧YRのとき第1の入
    力端子側を選択し、YL<YRのときY座標がYMより
    小さいサブ・スパンについては第1の入力端子側を選択
    し、YL<YRのときY座標がYM以上のサブ・スパン
    については第2の入力端子側を選択する複数の第2のセ
    レクタと、 複数のサブ・スパンに対応して設けられ、第1、第2の
    セレクタの出力を対応するサブ・スパンごとに加算する
    複数の第1の加算器とからなるものであり、 前記サブ・スパン終点生成回路は、複数のサブ・スパン
    に対応して設けられ、YL<YRのとき前記スパン終点
    を基準点として選択して、スパン終点X座標XBを出力
    し、YL≧YRでスパン間に座標YMをとる頂点Rが存
    在しないとき、スパン終点を基準点として選択して、ス
    パン終点X座標XBを出力し、YL≧YRでスパン間に
    頂点Rが存在するとき、Y座標がYMより小さいサブ・
    スパンについてはスパン終点を基準点として選択して、
    スパン終点X座標XBを出力し、YL≧YRでスパン間
    に頂点Rが存在するとき、Y座標がYM以上のサブ・ス
    パンについては頂点Rを基準点として選択して、この頂
    点RのX座標を出力する複数の第3のセレクタと、 複数のサブ・スパンに対応して設けられ、基準点のX座
    標から辺SR上の複数のサブ・スパン終点のX座標まで
    の各変化量がサブ・スパン終点のY座標が小さい順に第
    1の入力端子にそれぞれ入力され、基準点のX座標から
    辺LR上の複数のサブ・スパン終点のX座標までの各変
    化量がサブ・スパン終点のY座標が大きい順に第2の入
    力端子にそれぞれ入力され、YL<YRのとき第1の入
    力端子側を選択し、YL≧YRのときY座標がYMより
    小さいサブ・スパンについては第1の入力端子側を選択
    し、YL≧YRのときY座標がYM以上のサブ・スパン
    については第2の入力端子側を選択する複数の第4のセ
    レクタと、 複数のサブ・スパンに対応して設けられ、第3、第4の
    セレクタの出力を対応するサブ・スパンごとに加算する
    複数の第2の加算器とからなるものであることを特徴と
    する画像処理装置。
  3. 【請求項3】 請求項1記載の画像処理装置において、 前記最左端サブ・スパン始点生成回路は、前記三角形の
    各辺の傾きの正負に基づいて各サブ・スパンの始点X座
    標のうち値が最小のX座標XSLを選択して出力するも
    のであり、 前記最右端サブ・スパン終点生成回路は、前記三角形の
    各辺の傾きの正負に基づいて各サブ・スパンの終点X座
    標のうち値が最大のX座標XERを選択して出力するも
    のであることを特徴とする画像処理装置。
  4. 【請求項4】 請求項3記載の画像処理装置において、 前記最左端サブ・スパン始点生成回路は、三角形の3つ
    の頂点のうちY座標が最小の頂点をS、この頂点Sより
    左回りに次の頂点を順次L、Rとし、頂点L、RのY座
    標をYL、YRとし、頂点SとY座標が最大となる頂点
    の中間のY座標をとる頂点のY座標をYMとしたとき、 YL<YRで辺SLの傾きEXL1が正で辺LRの傾き
    EX2が正のとき、スパン中のY座標が最小のサブ・ス
    パンを選択し、 YL<YRで傾きEXL1が負で傾きEX2が正で、座
    標YDがYMより小さく、スパン間に座標YMをとる頂
    点Lが存在しないとき、スパン中のY座標が最大のサブ
    ・スパンを選択し、 YL<YRで傾きEXL1が負で傾きEX2が正で、ス
    パン間に座標YMをとる頂点Lが存在するとき、頂点L
    と交差するサブ・スパンを選択し、 YL<YRで傾きEXL1が負で傾きEX2が正で、座
    標YDがYMより大きいとき、スパン中のY座標が最小
    のサブ・スパンを選択し、 YL<YRで傾きEXL1が負で傾きEX2が負のと
    き、スパン中のY座標が最大のサブ・スパンを選択し、 YL≧YRで傾きEXL1が正のとき、スパン中のY座
    標が最小のサブ・スパンを選択し、 YL≧YRで傾きEXL1が負のとき、スパン中のY座
    標が最大のサブ・スパンを選択し、 選択したサブ・スパンの始点X座標を前記X座標XSL
    として出力するものであり、 前記最右端サブ・スパン終点生成回路は、 YL≧YRで辺SRの傾きEXR1が負で傾きEX2が
    負のとき、スパン中のY座標が最小のサブ・スパンを選
    択し、 YL≧YRで傾きEXR1が正で傾きEX2が負で、座
    標YDがYMより小さく、スパン間に座標YMをとる頂
    点Rが存在しないとき、スパン中のY座標が最大のサブ
    ・スパンを選択し、 YL≧YRで傾きEXR1が正で傾きEX2が負で、ス
    パン間に座標YMをとる頂点Rが存在するとき、頂点R
    と交差するサブ・スパンを選択し、 YL≧YRで傾きEXR1が正で傾きEX2が負で、座
    標YDがYMより大きいとき、スパン中のY座標が最小
    のサブ・スパンを選択し、 YL≧YRで傾きEXR1が正で傾きEX2が正のと
    き、スパン中のY座標が最大のサブ・スパンを選択し、 YL<YRで傾きEXR1が負のとき、スパン中のY座
    標が最小のサブ・スパンを選択し、 YL<YRで傾きEXR1が正のとき、スパン中のY座
    標が最大のサブ・スパンを選択し、 選択したサブ・スパンの終点X座標を前記X座標XER
    として出力するものであることを特徴とする画像処理装
    置。
JP9146467A 1997-06-04 1997-06-04 画像処理装置 Expired - Lifetime JP2796284B1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP9146467A JP2796284B1 (ja) 1997-06-04 1997-06-04 画像処理装置
US09/089,064 US6166717A (en) 1997-06-04 1998-06-02 Image processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9146467A JP2796284B1 (ja) 1997-06-04 1997-06-04 画像処理装置

Publications (2)

Publication Number Publication Date
JP2796284B1 true JP2796284B1 (ja) 1998-09-10
JPH10334252A JPH10334252A (ja) 1998-12-18

Family

ID=15408306

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9146467A Expired - Lifetime JP2796284B1 (ja) 1997-06-04 1997-06-04 画像処理装置

Country Status (2)

Country Link
US (1) US6166717A (ja)
JP (1) JP2796284B1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6650325B1 (en) * 1999-12-06 2003-11-18 Nvidia Corporation Method, apparatus and article of manufacture for boustrophedonic rasterization
US6504542B1 (en) * 1999-12-06 2003-01-07 Nvidia Corporation Method, apparatus and article of manufacture for area rasterization using sense points
JP3753584B2 (ja) * 2000-02-15 2006-03-08 富士通株式会社 画像処理装置
JP2002140722A (ja) * 2000-08-23 2002-05-17 Sony Computer Entertainment Inc エイリアシングを除去した画像を描画する装置及び方法
US6784894B2 (en) * 2000-08-24 2004-08-31 Sun Microsystems, Inc. Mapping time-sorted to direction-sorted triangle vertices
JP3979162B2 (ja) * 2002-04-22 2007-09-19 ソニー株式会社 画像処理装置およびその方法
US7460124B2 (en) * 2005-12-05 2008-12-02 Microsoft Corporation Vector-based geometric polygon schema
JP2010086008A (ja) * 2008-09-29 2010-04-15 Fujitsu Microelectronics Ltd 半導体装置、グラフィクスコントローラ、及び情報処理方法
JP5151946B2 (ja) * 2008-12-09 2013-02-27 富士通株式会社 描画装置
US11893741B2 (en) * 2021-06-07 2024-02-06 Fujifilm Healthcare Americas Corporation Subpixel-based image region of interest rendering

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04139589A (ja) * 1990-10-01 1992-05-13 Ricoh Co Ltd 図形処理装置
JPH04158061A (ja) * 1990-10-23 1992-06-01 Ricoh Co Ltd 図形出力装置
US5343558A (en) * 1991-02-19 1994-08-30 Silicon Graphics, Inc. Method for scan converting shaded triangular polygons
JPH0668271A (ja) * 1992-08-17 1994-03-11 Ricoh Co Ltd 画像処理装置
US5528737A (en) * 1993-12-14 1996-06-18 Silicon Graphics, Inc. Processor-based method for rasterizing polygons at an arbitrary precision

Also Published As

Publication number Publication date
US6166717A (en) 2000-12-26
JPH10334252A (ja) 1998-12-18

Similar Documents

Publication Publication Date Title
US6184903B1 (en) Apparatus and method for parallel rendering of image pixels
JP2796284B1 (ja) 画像処理装置
JPH07282274A (ja) グラフィック表示装置
US7015930B2 (en) Method and apparatus for interpolating pixel parameters based on a plurality of vertex values
US7142224B2 (en) Polygon drawing apparatus and method, and storage medium for implementing the same method
JP4664169B2 (ja) 図形描画装置及び図形描画プログラム
JP3898426B2 (ja) 図形描画装置
JP4930860B2 (ja) 図形描画装置、アンチエイリアス処理方法およびプログラム
JP2675169B2 (ja) 図形処理システム
JPH11296160A (ja) エンコーダおよびその方法とグラフィック演算装置
JP4320604B2 (ja) 画像処理方法および画像処理装置
JPH0350686A (ja) 図形処理方式
JPH08235380A (ja) 多面体表示方法および多面体表示装置
JP2000099748A (ja) 3次元グラフィックス処理装置及びその処理方法
JP2804028B2 (ja) レンダリングプロセツサ
JPH06266307A (ja) 表示装置
JP2715496B2 (ja) 画像塗りつぶし装置
KR100657102B1 (ko) 휴대 단말기에서 도형의 계단 현상 제거 방법
JP3159431B2 (ja) 画像処理システム
JPH07248903A (ja) 描画装置
JPH1186012A (ja) 多角形描画方法及び装置
JPH10143676A (ja) 画像処理装置、画像処理方法、および記録媒体
JPH10334250A (ja) アンチエイリアスプロセッサ及び画像処理装置
JPH06119462A (ja) 3次元画像生成装置
JPH0689346A (ja) 画像発生装置