(57)【要約】【課題】高速なアンチエイリアス描画を行うことができるアンチエイリアス描画装置を提供する。【解決手段】直線描画の場合、描画する直線とピクセルの距離を水平スキャンラインに沿って初期値から差分の加算を行うことで求め、得られた距離と描画する直線の線幅から適切な透過率を算出し、得られた透過率でピクセルの描画を行う。多角形の場合、水平スキャンライン毎の台形に分割し、それぞれの台形の左右エッジとピクセルの距離を水平スキャンラインに沿って差分加算により距離を求めながら処理を進める。【選択図】図２
2008257456.tif 000002
【特許請求の範囲】
【請求項１】
描画する直線とピクセルの距離を、水平スキャンラインに沿って初期値から差分の加算を行うことで得る距離生成部と、
前記距離生成部で得られた距離と前記描画する直線の線幅から透過率を求める透過率生成部と、
前記透過率生成部で求められた透過率で前記ピクセルの描画を行う描画部と、
を備えたことを特徴とするアンチエイリアス描画装置。
【請求項２】
描画する台形の２つの斜辺とピクセルの距離を、それぞれ水平スキャンラインに沿って初期値から差分の加算を行うことで得る距離生成部と、
前記距離生成部で得られた２つの距離から透過率を求める透過率生成部と、
前記透過率生成部で求められた透過率で前記ピクセルの描画を行う描画部と、
を備えたことを特徴とするアンチエイリアス描画装置。
【請求項３】
請求項２に記載のアンチエイリアス描画装置であって、
前記台形の垂直方向の差分更新時にそれぞれの斜辺に沿って最適なスキャンラインを維持するエッジ更新部を備え、
前記エッジ更新部が行う処理で発生する距離の誤差を前記斜辺の傾きに応じて補正することを特徴とするアンチエイリアス描画装置。
【請求項４】
請求項２に記載のアンチエイリアス描画装置であって、
左右のエッジに対する透過率を強制的に変更することで、各エッジへのアンチエイリアス効果の有無を制御することを特徴とするアンチエイリアス描画装置。
【請求項５】
請求項２に記載のアンチエイリアス描画装置であって、
描画する多角形を水平線で台形に分割し、前記分割された台形に対して描画を行うことを特徴とするアンチエイリアス描画装置。
【請求項６】
請求項１又は２に記載のアンチエイリアス描画装置であって、
表示図形に対応したビットパターンのデータを格納するフレームバッファを有し、
描画する点がそのまま描画される場合の透過率を判定し、前記フレームバッファからのデータ読み出しを制御することを特徴とするアンチエイリアス描画装置。
【請求項７】
請求項６に記載のアンチエイリアス描画装置であって、
描画する点の座標に既に前記フレームバッファに格納されているデータがそのまま残る場合の透過率を判定し、前記フレームバッファからのデータ読み出しと前記フレームバッファへのデータ書き込みを制御することを特徴とするアンチエイリアス描画装置。
【請求項８】
請求項１又は２に記載のアンチエイリアス描画装置であって、
前記透過率の閾値を設定し、描画する点の前記透過率が前記閾値より大きいか否かを判定し、判定結果に応じて描画を行うか否かを決めることを特徴とするアンチエイリアス描画装置。
【請求項９】
請求項８に記載のアンチエイリアス描画装置であって、
前記透過率の閾値を２つ設定し、描画したい点の前記透過率がそれぞれの前記閾値より大きいか否かを判定し、判定結果に応じて描画を行うか否かを決めることを特徴とするアンチエイリアス描画装置。
【請求項１０】
アンチエイリアス描画装置が描画を行うアンチエイリアス描画方法であって、
描画する直線とピクセルの距離を、水平スキャンラインに沿って初期値から差分の加算を行うことで得る距離生成ステップと、
前記距離生成ステップで得られた距離と前記描画する直線の線幅から透過率を求める透過率生成ステップと、
前記透過率生成ステップで求められた透過率で前記ピクセルの描画を行う描画ステップと、
を有することを特徴とするアンチエイリアス描画方法。
【請求項１１】
アンチエイリアス描画装置が描画を行うアンチエイリアス描画方法であって、
描画する台形の２つの斜辺とピクセルの距離を、それぞれ水平スキャンラインに沿って初期値から差分の加算を行うことで得る距離生成ステップと、
前記距離生成ステップで得られた２つの距離から透過率を求める透過率生成ステップと、
前記透過率生成ステップで求められた透過率で前記ピクセルの描画を行う描画ステップと、
を有することを特徴とするアンチエイリアス描画方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アンチエイリアス描画を行うアンチエイリアス描画装置及びアンチエイリアス描画方法に関する。
【背景技術】
【０００２】
コンピュータグラフィックスで図形などを表示する場合、一般的にビットマップディスプレイシステムが採用されている。このビットマップディスプレイシステムでは、ラスタスキャン型のディスプレイ装置、及び表示図形に対応したビットパターンのデータをディスプレイ装置に供給するための表示用メモリ（フレームバッファ）が使用される。
【０００３】
このようなビットマップディスプレイシステムにおいて、斜線や曲線の描画を行った場合、画素による表示のためジャギーが生じ、エイリアシングが現れてしまう。このようなエイリアシングを無くすためには、表示画素の格子の間隔を狭くすればよいことが知られている。
【０００４】
格子の間隔を狭くしていくことで、エイリアシングは改善されるが、ビットマップディスプレイシステムのラスタスキャンの水平走査周波数を高める必要が生じる。しかし、水平走査周波数を高めることには限界があるため、ラスタスキャン方式のディスプレイシステムでは、格子の間隔を狭くする以外の方法でエイリアシングを改善する必要があった。ここで、このようなエイリアシングを改善する処理の総称をアンチエイリアスと呼ぶ。
【０００５】
通常、アンチエイリアスは、各画素に対する描画図形の寄与面積を計算し、その面積の比に合わせた画素値による中間調を表現することで、行われる。このような処理は一般的に重く、アンチエイリアス処理を行わない場合と比べ、描画速度が１／１０〜１／１００程度にまで下がってしまう。したがって、このアンチエイリアス処理は、リアルタイム処理には適していない。
【０００６】
この点を改善するために、図形のエッジ部分のみを抽出し、その部分に対してのみ寄与面積を考慮した半透明合成（アルファブレンディング）描画で表現することで、アンチエイリアスを行う技術が知られている（特許文献１参照）。
【０００７】
【特許文献１】特開平７−２８２２７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、上記説明したアンチエイリアス描画装置では、アンチエイリアスを行わない場合と比べ、処理時間の増加は抑えられるが、エッジの抽出などの処理が手続き的に複雑になる。また、エッジ部分の描画については、描画面積に対して時間がかかっていた。これは、メモリの特性として、ランダムアクセスを行う場合、バーストアクセスに比べ、性能が極端に落ちることに起因する。特に、図形のエッジ部分は直線状になるため、メモリへのアクセスがランダムアクセスに近くなり、一般的な矩形描画を行う際のバーストアクセスに比べ、メモリの使用効率が大幅に低下する。
【０００９】
本発明の目的は、高速なアンチエイリアス描画を行うことができるアンチエイリアス描画装置及びアンチエイリアス描画方法を提供することである。
【課題を解決するための手段】
【００１０】
本発明は、描画する直線とピクセルの距離を、水平スキャンラインに沿って初期値から差分の加算を行うことで得る距離生成部と、前記距離生成部で得られた距離と前記描画する直線の線幅から透過率を求める透過率生成部と、前記透過率生成部で求められた透過率で前記ピクセルの描画を行う描画部とを備えたアンチエイリアス描画装置を提供する。これにより、直線を描画する際、エッジ部分を再処理することなく、水平スキャンラインに沿った処理を行うことで、高速なアンチエイリアス描画を行うことができる。
【００１１】
また、本発明は、描画する台形の２つの斜辺とピクセルの距離を、それぞれ水平スキャンラインに沿って初期値から差分の加算を行うことで得る距離生成部と、前記距離生成部で得られた２つの距離から透過率を求める透過率生成部と、前記透過率生成部で求められた透過率で前記ピクセルの描画を行う描画部とを備えたアンチエイリアス描画装置を提供する。これにより、台形を描画する際、エッジ部分を再処理することなく、水平スキャンラインに沿った処理を行うことで、高速なアンチエイリアス描画を行うことができる。
【００１２】
上記アンチエイリアス描画装置では、前記台形の垂直方向の差分更新時にそれぞれの斜辺に沿って最適なスキャンラインを維持するエッジ更新部を備え、前記エッジ更新部が行う処理で発生する距離の誤差を前記斜辺の傾きに応じて補正する。これにより、アンチエイリアス台形を高速に処理できる。また、無駄な領域のスキャンを抑制できる。
【００１３】
上記アンチエイリアス描画装置では、左右のエッジに対する透過率を強制的に変更することで、各エッジへのアンチエイリアス効果の有無を制御する。
【００１４】
上記アンチエイリアス描画装置では、描画する多角形を水平線で台形に分割し、前記分割された台形に対して描画を行う。これにより、任意の多角形描画においても、高速なアンチエイリアス図形の描画が可能となる。
【００１５】
上記アンチエイリアス描画装置では、表示図形に対応したビットパターンのデータを格納するフレームバッファを有し、描画する点がそのまま描画される場合の透過率を判定し、前記フレームバッファからのデータ読み出しを制御する。このように透過率を判定することで、フレームバッファとのアクセス制御を行うことができ、動作速度を向上させることができる。
【００１６】
上記アンチエイリアス描画装置では、描画する点の座標に既に前記フレームバッファに格納されているデータがそのまま残る場合の透過率を判定し、前記フレームバッファからのデータ読み出しと前記フレームバッファへのデータ書き込みを制御する。これにより、フレームバッファとのデータ転送時間が削減され、動作速度を向上できる。
【００１７】
上記アンチエイリアス描画装置では、前記透過率の閾値を設定し、描画する点の前記透過率が前記閾値より大きいか否かを判定し、判定結果に応じて描画を行うか否かを決めることを特徴とする。また、前記透過率の閾値を２つ設定し、描画する点の前記透過率がそれぞれの前記閾値より大きいか否かを判定し、判定結果に応じて描画を行うか否かを決める。
【００１８】
また、本発明は、アンチエイリアス描画装置が描画を行うアンチエイリアス描画方法であって、描画する直線とピクセルの距離を、水平スキャンラインに沿って初期値から差分の加算を行うことで得る距離生成ステップと、前記距離生成ステップで得られた距離と前記描画する直線の線幅から透過率を求める透過率生成ステップと、前記透過率生成ステップで求められた透過率で前記ピクセルの描画を行う描画ステップとを有するアンチエイリアス描画方法を提供する。
【００１９】
さらに、本発明は、アンチエイリアス描画装置が描画を行うアンチエイリアス描画方法であって、描画する台形の２つの斜辺とピクセルの距離を、それぞれ水平スキャンラインに沿って初期値から差分の加算を行うことで得る距離生成ステップと、前記距離生成ステップで得られた２つの距離から透過率を求める透過率生成ステップと、前記透過率生成ステップで求められた透過率で前記ピクセルの描画を行う描画ステップとを有するアンチエイリアス描画方法を提供する。
【発明の効果】
【００２０】
本発明に係るアンチエイリアス描画装置及びアンチエイリアス描画方法によれば、高速なアンチエイリアス描画を行うことができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施形態について、図面を参照して説明する。
【００２２】
図１は、一実施形態のアンチエイリアス描画装置を示すブロック図である。図１に示すように、本実施形態のアンチエイリアス描画装置は、描画プロセッサ２と、フレームバッファ４と、表示出力装置５と、ディスプレイ６とを備える。
【００２３】
フレームバッファ４は、表示図形に対応したビットパターンのデータをディスプレイ６に供給する表示用メモリであり、表示画面の幅×高さの大きさを持つ二次元配列となっている。各配列は、それぞれの画素に対応するカラーコードを格納している。描画プロセッサ２は、フレームバッファ４に対して表示図形の書き込みを行う。フレームバッファ４に書き込まれた表示図形は、表示出力装置５によって順に読み出されてディスプレイ６に送られる。
【００２４】
ドット描画は、フレームバッファ４の特定の座標位置に所望のカラーコードを格納することで実現される。本実施形態では、アルファブレンドを考慮した次の手続きが用いられる。ＤＯＴ（Ｘ，Ｙ，α）として、フレームバッファ４の座標位置（Ｘ，Ｙ）に透過率αでデータを格納する。このとき、透過率αは０から１の範囲の値であり、カラーコードの赤緑青の各成分に対し、以下に示す式で示されるαブレンドの演算を施す。
【００２５】
ＦＲ（Ｘ，  Ｙ）  ＝  α・Ｒ  ＋  （１−α）・ＦＲ（Ｘ，  Ｙ）
ＦＧ（Ｘ，  Ｙ）  ＝  α・Ｇ  ＋  （１−α）・ＦＧ（Ｘ，  Ｙ）
ＦＢ（Ｘ，  Ｙ）  ＝  α・Ｂ  ＋  （１−α）・ＦＢ（Ｘ，  Ｙ）
【００２６】
ここで、Ｒ、Ｇ、Ｂは、描画する点のカラーコードの赤、緑、青の各色強度である。また、ＦＲ（Ｘ，Ｙ）、ＦＧ（Ｘ，Ｙ）、ＦＢ（Ｘ，Ｙ）は、既にフレームバッファ４の座標位置（Ｘ，Ｙ）に格納されたカラーコードの赤、緑、青の各色強度を示している。
【００２７】
透過率α＝１、すなわち描画する点がそのまま描画される場合、αブレンドの演算を施す必要がないため、透過率α＝１になったことを判定すると、フレームバッファ４からのデータ読み出しを止めることで、データ転送時間が削減され、動作速度が向上する。
【００２８】
また、透過率α＝０、すなわちＦＲ（Ｘ，Ｙ）、ＦＧ（Ｘ，Ｙ）、ＦＢ（Ｘ，Ｙ）がそのまま残る場合、αブレンドの演算を施す必要がないことに加え、描画を行う必要もないため、透過率α＝０になったことを判定すると、フレームバッファ４からのデータ読み出しとフレームバッファ４へのデータ書き込みを止めることで、データ転送時間が削減され、動作速度が向上する。
【００２９】
また、透過率αに対して閾値を設け、描画する点の透過率αが閾値より大きいか小さいかを判定して描画を行うか否かを決めるようにすることで、例えば透過率αが値０に近くて描画する点が見た目にほとんど目立たない場合、透過率αが閾値より小さい場合に描画を止めるようにすることで、動作速度が向上する。
【００３０】
さらに、透過率αに対して２つの閾値（閾値Ａ、閾値Ｂ）を設け、例えば透過率αが値０に近くて描画する点が見た目にほとんど目立たない場合、透過率αが閾値Ａより小さい場合に描画を止めるようにし、透過率αが値１に近くてＦＲ（Ｘ，Ｙ）、ＦＧ（Ｘ，Ｙ）、ＦＢ（Ｘ，Ｙ）が見た目にほとんど目立たない場合、透過率αが閾値Ｂより大きい場合にαブレンドを行わないようにし、フレームバッファ４からのデータ読み出しを止めるようにすることで、動作速度が向上する。
【００３１】
なお、一般的なメモリ構成では、フレームバッファの位置（Ｘ，Ｙ）と（Ｘ＋１，Ｙ）のアドレスは、連続して配置される。本実施形態では、簡略化のため、一点ずつバラバラにメモリアクセスされるように記述されるが、実際に構成する場合、同一水平線上のデータアクセスはまとめてなされるようにするべきである。
【００３２】
（アンチエイリアス直線描画）
本実施形態のアンチエイリアス描画装置の動作を示す。図２は、アンチエイリアス直線描画処理手順を示すフローチャートである。図２に示す例では、アンチエイリアス直線描画として、幅ＷのＬＩＮＥ“（Ｘ１，Ｙ１）−（Ｘ２−Ｙ２）”を描画する場合を示す。予め引数として、直線の両端の座標（Ｘ１，Ｙ１）、（Ｘ２，Ｙ２）と線幅Ｗが与えられる。また、この処理で使用されるパラメータとして、（Ｘ，Ｙ）は現在処理しているピクセルの座標を表す。Ｌは点（Ｘ，Ｙ）と描画する直線との距離を表す。ＸＳ，ＸＥ，ＹＳ，ＹＥは処理する図形の外接矩形の４隅のＸ，Ｙ座標値を表す。Ａは計算された透過率を表す。Ｄ＊Ｄ＊は各パラメータの更新量を表し、微分記号ｄ＊／ｄ＊に相当する。
【００３３】
まず、初期設定部では、各種パラメータを計算する（Ｓ１）。各種パラメータは、以下に示す式で表される。
【００３４】
Ｄ＝√（（Ｘ２−Ｘ１）＊（Ｘ２−Ｘ１）＋（Ｙ２−Ｙ１）＊（Ｙ２−Ｙ１））
ＤＬＤＸ＝（Ｙ２−Ｙ１）／Ｄ
ＤＬＤＹ＝（Ｘ１−Ｘ２）／Ｄ
Ｗ２＝（Ｗ＋１）／２
ＸＳ＝ｍｉｎ（Ｘ１，Ｘ２）−Ｗ２
Ｙ＝ｍｉｎ（Ｙ１，Ｙ２）−Ｗ２
ＬＳ＝ＤＬＤＸ＊ＸＳ＋ＤＬＤＹ＊Ｙ＋（Ｘ２＊Ｙ１−Ｘ１＊Ｙ２）／Ｄ
ＸＥ＝ｍａｘ（Ｘ１，Ｘ２）＋Ｗ２
ＹＥ＝ｍａｘ（Ｙ１，Ｙ２）＋Ｗ２
【００３５】
このとき、ＤＬＤＸ，ＤＬＤＹ，Ｗ２，ＬＳの各値は、適当な精度の小数部を持つものとする。その他のパラメータについては整数値としてよい。また、ｍｉｎ，ｍａｘはそれぞれ引数の最小値及び最大値を返すものとする。
【００３６】
設定部では、Ｘ方向の繰り返しループの初期設定部分を設定する（Ｓ２）。描画部では、以下の式に従って、パラメータＬの値を透過率Ａに変換し、フレームバッファ４の位置（Ｘ，Ｙ）に透過率ＡでＤＯＴ（Ｘ，Ｙ，Ａ）となるデータを格納し、実際の点描画を行う（Ｓ３）。
Ａ＝ｍｉｎ（ｍａｘ（０，Ｗ２−ａｂｓ（Ｌ）），１）
【００３７】
ただし、ａｂｓは絶対値を返すものとする。また、ｍｉｎ（ｍａｘ（０，ｘ），１）は、ｘの値を０〜１の値で飽和する処理を表す。
【００３８】
判定部では、Ｘ方向の繰り返し回数との比較（Ｘ≦ＸＥであるか否か）を行う（Ｓ４）。Ｘ≦ＸＥで繰り返す場合、更新部では、以下の式に従って、パラメータ更新を行う（Ｓ５）。
Ｘ＝Ｘ＋１
Ｌ＝Ｌ＋ＤＬＤＸ
【００３９】
一方、Ｘ方向の繰り返し回数を満した場合（Ｘ＞ＸＥ）、さらに判定部では、Ｙ方向の繰り返し回数との比較（Ｙ≦ＹＥであるか否か）を行う。Ｙ≦ＹＥで繰り返す場合、更新部では、以下の式に従って、パラメータ更新を行い、設定部（Ｓ２）の処理に戻る。
Ｙ＝Ｙ＋１
ＬＳ＝ＬＳ＋ＤＬＤＹ
【００４０】
一方、Ｙ方向の繰り返し回数を満した場合（Ｙ＞ＹＥ）、本処理を終了する。
【００４１】
なお、上記パラメータは、直線ａｘ＋ｂｙ＋ｃ＝０と点（Ｘ，Ｙ）の距離Ｌ＝｜ａＸ＋ｂＹ＋ｃ｜／√（ａ＊ａ＋ｂ＊ｂ）の公式から導かれており、それぞれの画素と描画する直線との距離を、各画素における面積寄与率の近似値として使用していることになる。
【００４２】
（アンチエイリアス台形描画）
図３は、アンチエイリアス台形描画処理手順を示すフローチャートである。図３に示す例では、アンチエイリアス台形描画として、左辺ＬＩＮＥ“（ＸＬ１，Ｙ１）−（ＸＬ２，Ｙ２）”と右辺ＬＩＮＥ“（ＸＲ１，Ｙ１）−（ＸＲ２，Ｙ２）”の間を塗りつぶす場合を示す。この処理で使用される、前述したパラメータ以外のパラメータとして、ＬＲ，ＬＬは点（Ｘ，Ｙ）と描画する左右エッジとの距離を表す。ＡＬ，ＡＲは計算された透過率を表す。
【００４３】
予め引数として、左辺座標（ＸＬ１，Ｙ１），（ＸＬ２，Ｙ２）及び右辺座標（ＸＲ１，Ｙ１），（ＸＲ２，Ｙ２）が与えられる。このとき、Ｙ１≦Ｙ２とし、左辺と右辺はＹ１＜Ｙ＜Ｙ２の範囲で交差しないものとする。なお、アンチエイリアス台形描画処理自体は、前述したアンチエイリアス直線描画処理と非常に似ているが、更新パラメータが左辺と右辺の２つに増えている点で異なっている。
【００４４】
まず、初期設定部では、各種パラメータを計算する（Ｓ１０）。各種パラメータは、以下に示す式で表される。
【００４５】
ＤＬ＝√（（ＸＬ２−ＸＬ１）＊（ＸＬ２−ＸＬ１）＋（Ｙ２−Ｙ１）＊（Ｙ２−Ｙ１））
ＤＲ＝√（（ＸＲ２−ＸＲ１）＊（ＸＲ２−ＸＲ１）＋（Ｙ２−Ｙ１）＊（Ｙ２−Ｙ１））
ＤＬＤＸＬ＝（Ｙ２−Ｙ１）／ＤＬ
ＤＬＤＸＲ＝（Ｙ１−Ｙ２）／ＤＲ
ＤＬＤＹＬ＝（ＸＬ１−ＸＬ２）／ＤＬ
ＤＬＤＹＲ＝（ＸＲ２−ＸＲ１）／ＤＲ
ＸＳ＝ｍｉｎ（ＸＬ１，ＸＬ２）
Ｙ＝Ｙ１
ＬＳＬ＝（ＸＳ−ＸＬ１）＊ＤＬＤＸＬ＋０．５
ＬＳＲ＝（ＸＳ−ＸＲ１）＊ＤＬＤＸＲ＋０．５
ＸＥ＝ｍａｘ（ＸＲ１，ＸＲ２）
【００４６】
設定部では、Ｘ方向の繰り返しループの初期設定部分を設定する（Ｓ１１）。描画部では、以下の式に従って、パラメータＬＬ，ＬＲの値をそれぞれ透過率ＡＬ，ＡＲに変換し、フレームバッファ４の位置（Ｘ，Ｙ）に透過率ＡＬ，ＡＲでＤＯＴ（Ｘ，Ｙ，ＡＬ＊ＡＲ）となるデータを格納し、実際の点描画を行う（Ｓ１２）。
ＡＬ＝ｍｉｎ（ｍａｘ（０，ＬＬ），１）
ＡＲ＝ｍｉｎ（ｍａｘ（０，ＬＲ），１）
【００４７】
判定部では、Ｘ方向の繰り返し回数との比較（Ｘ≦ＸＥであるか否か）を行う（Ｓ１３）。Ｘ≦ＸＥで繰り返す場合、更新部では、以下の式に従って、パラメータ更新を行う（Ｓ１４）。
Ｘ＝Ｘ＋１
ＬＬ＝ＬＬ＋ＤＬＤＸＬ
ＬＲ＝ＬＲ＋ＤＬＤＸＲ
【００４８】
一方、Ｘ方向の繰り返し回数を満した場合（Ｘ＞ＸＥ）、さらに判定部では、Ｙ方向の繰り返し回数との比較（Ｙ≦Ｙ２であるか否か）を行う（Ｓ１５）。Ｙ≦Ｙ２で繰り返す場合、更新部では、以下の式に従って、パラメータ更新を行い（Ｓ１６）、設定部（Ｓ２）の処理に戻る。
Ｙ＝Ｙ＋１
ＬＳＬ＝ＬＳＬ＋ＤＬＤＹＬ
ＬＳＲ＝ＬＳＲ＋ＤＬＤＹＲ
【００４９】
一方、Ｙ方向の繰り返し回数を満した場合（Ｙ＞Ｙ２）、本処理を終了する。
【００５０】
このように、描画部（Ｓ１２）における透過率の計算部分が２つのパラメータの更新結果に反映されるように変化している。特定の辺に対して、アンチエイリアス効果をかけたくない場合、その辺に対応する描画部（Ｓ１２）のＡＬ及びＡＲパラメータが０〜１の場合に１（又は０）となるように変更すればよい。
【００５１】
なお、本実施形態のアンチエイリアス台形描画処理では、台形の描画のみしか行えない。しかし、複雑な形状の多角形についても、図４に示すように、水平線によって複雑な形状を有する多角形の分割を行うことで、本アンチエイリアス台形描画処理で描画可能となる。
【００５２】
（改良されたアンチエイリアス台形描画）
前述したアンチエイリアス直線描画及びアンチエイリアス台形描画では、図形を囲む外接矩形全体についてスキャンをかけるような仕組みになっているため、実際には描画されない無駄なパラメータ更新が多く発生していた。
【００５３】
これを改良するためには、台形描画について、右辺と左辺のエッジをＤＤＡ（Digital Differential Analyzer：ディジタル微分解析）アルゴリズムによって発生させ、両辺の間のみを塗りつぶすようにすれば良い。このとき、特許第３０６８００７号で示されている（ｕ，ｖ）値の補正と同様な誤差補正アルゴリズムを適用する必要がある。
【００５４】
図５は、両エッジに対してＤＤＡを行う場合のアンチエイリアス台形描画処理手順を示すフローチャートである。図５に示す例では、アンチエイリアス台形描画として、左辺ＬＩＮＥ“（ＸＬ１，Ｙ１）−（ＸＬ２，Ｙ２）”と右辺ＬＩＮＥ“（ＸＲ１，Ｙ１）−（ＸＲ２，Ｙ２）”の間を塗りつぶす場合を示す。この処理で使用される、前述したパラメータ以外のパラメータとして、ＸＳＬ，ＸＳＲは処理する台形の左右エッジのＸ座標値を表す。ＥはＤＤＡ誤差補正パラメータを表す。ｆｌｏｏｒは引数を超えない最大の整数を返すものとする。この場合、Ｌに関する一部パラメータには都合よく、値０となるものが現れるため、そのパラメータに関する演算は省略することができる。
【００５５】
予め引数として、左辺座標（ＸＬ１，Ｙ１），（ＸＬ２，Ｙ２）及び右辺座標（ＸＲ１，Ｙ１），（ＸＲ２，Ｙ２）が与えられる。まず、初期設定部では、各種パラメータを計算する（Ｓ２０）。各種パラメータは、以下に示す式で表される。
【００５６】
ＤＬ＝√（（ＸＬ２−ＸＬ１）＊（ＸＬ２−ＸＬ１）＋（Ｙ２−Ｙ１）＊（Ｙ２−Ｙ１））
ＤＲ＝√（（ＸＲ２−ＸＲ１）＊（ＸＲ２−ＸＲ１）＋（Ｙ２−Ｙ１）＊（Ｙ２−Ｙ１））
ＤＬＤＸＬ＝（Ｙ２−Ｙ１）／ＤＬ
ＤＬＤＸＲ＝（Ｙ１−Ｙ２）／ＤＲ
ＤＬＤＹＬ＝０
ＤＬＤＹＲ＝（ＸＲ２−ＸＲ１）−（ＸＬ２−ＸＬ１）／ＤＲ
ＸＳＬ＝ＸＬ１＋０．５
ＸＳＲ＝ＸＲ１＋０．５
Ｙ＝Ｙ１
ＤＸＤＹＬ＝（ＸＬ２−ＸＬ１）／（Ｙ２−Ｙ１）
ＤＸＤＹＲ＝（ＸＲ２−ＸＲ１）／（Ｙ２−Ｙ１）
ＬＳＬ＝０．５
ＬＳＲ＝（ＸＬ１−ＸＲ１）＊ＤＬＤＸＲ＋０．５
Ｅ＝ＸＳＬ−ｆｌｏｏｒ（ＸＳＬ）
ＤＥＤＹ＝ＤＸＤＹＬ−ｆｌｏｏｒ（ＤＸＤＹＬ）
ＤＬＤＸＲ＝ＤＬＤＸＲ−ＤＥＤＹ＊ＤＬＤＹＲ
【００５７】
設定部では、Ｘ方向の繰り返しループの初期設定部分を設定する（Ｓ２１）。描画部では、以下の式に従って、パラメータＬＬ，ＬＲの値をそれぞれ透過率ＡＬ，ＡＲに変換し、フレームバッファ４の位置（Ｘ，Ｙ）に透過率ＡＬ，ＡＲでＤＯＴ（Ｘ，Ｙ，ＡＬ＊ＡＲ）となるデータを格納し、実際の点描画を行う（Ｓ２２）。
ＡＬ＝ｍｉｎ（ｍａｘ（０，ＬＬ），１）
ＡＲ＝ｍｉｎ（ｍａｘ（０，ＬＲ），１）
【００５８】
判定部では、Ｘ方向の繰り返し回数との比較（Ｘ≦ＸＳＲであるか否か）を行う（Ｓ２３）。Ｘ≦ＸＳＲで繰り返す場合、更新部では、以下の式に従って、パラメータ更新を行う（Ｓ２４）。
Ｘ＝Ｘ＋１
ＬＬ＝ＬＬ＋ＤＬＤＸＬ
ＬＲ＝ＬＲ＋ＤＬＤＸＲ
【００５９】
一方、Ｘ方向の繰り返し回数を満した場合（Ｘ＞ＸＳＲ）、さらに判定部では、Ｙ方向の繰り返し回数との比較（Ｙ≦Ｙ２であるか否か）を行う（Ｓ２５）。Ｙ≦Ｙ２で繰り返す場合、更新部では、以下の式に従って、パラメータ更新を行う（Ｓ２６）。
ＸＳＬ＝ＸＳＬ＋ＤＸＤＹＬ
ＸＳＲ＝ＸＳＲ＋ＤＸＤＹＲ
Ｙ＝Ｙ＋１
Ｅ＝Ｅ＋ＤＥＤＹ
ＬＳＲ＝ＬＳＲ＋ＤＬＤＹＲ
【００６０】
そして、ＤＤＡ誤差補正パラメータＥの比較（Ｅ≧１であるか否か）を行い（Ｓ２７）、Ｅ＜１である場合、設定部（Ｓ２１）の処理に戻る。一方、Ｅ≧１である場合、以下の式に従って、パラメータ更新を行い（Ｓ２８）、設定部（Ｓ２１）の処理に戻る。
Ｅ＝Ｅ−１
ＬＳＬ＝ＬＳＬ＋ＤＬＤＸＬ
ＬＳＲ＝ＬＳＲ＋ＤＬＤＸＲ
【００６１】
一方、Ｓ２５でＹ方向の繰り返し回数を満した場合（Ｙ＞Ｙ２）、本処理を終了する。
【００６２】
なお、上記と同様の拡張処理はアンチエイリアス直線描画についても行うことができる。
【００６３】
以上説明したように、本実施形態のアンチエイリアス描画装置によれば、エッジ部分を再処理することなく、水平スキャンラインに沿った処理を行うことで、高速なアンチエイリアス描画を行うことができる。また、直線、台形、任意の多角形などの高速なアンチエイリアス図形の描画が可能となる。また、図形の任意の辺に対してアンチエイリアス効果の有無を制御することも可能である。また、透過率を判定することで、フレームバッファとのアクセス制御を行うことができ、描画した図形の見た目に影響しない範囲で動作速度を向上させることができる。また、無駄な領域のスキャンを抑制できる。また、フレームバッファとのデータ転送時間が削減され、動作速度を向上できる。
【産業上の利用可能性】
【００６４】
本発明に係るアンチエイリアス描画装置は、安価に高画質のグラフィックを実現する描画装置等として有用である。
【図面の簡単な説明】
【００６５】
【図１】一実施形態のアンチエイリアス描画装置を示すブロック図
【図２】アンチエイリアス直線描画処理手順を示すフローチャート
【図３】アンチエイリアス台形描画処理手順を示すフローチャート
【図４】水平線による分割が行われた多角形を示す図
【図５】両エッジに対してＤＤＡを行う場合のアンチエイリアス台形描画処理手順を示すフローチャート
【符号の説明】
【００６６】
２  描画プロセッサ
４  フレームバッファ
５  表示出力装置
６  ディスプレイ
【図１】
2008257456.tif 000003
【図２】
2008257456.tif 000004
【図３】
2008257456.tif 000005
【図４】
2008257456.tif 000006
【図５】
2008257456.tif 000007