(57)【要約】【課題】  オーバーサンプリングを行うことなく、塗り潰し図形の輪郭に含まれる直線のアンチエイリアス処理を精度よく行う。【解決手段】  シェーディングモジュールＬＭにて、各画素における直線色Ｌｃｏｌまたは背景色Ｂｃｏｌを考慮した濃度値を算出するとともに、シェーディングモジュールＲＭにて、各画素における塗り潰し色Ｆｃｏｌまたは直線色Ｌｃｏｌを考慮した濃度値を算出し、色合成モジュールＭ０にて、これらの各画素の濃度値を合成することにより各画素の出力色情報Ｃｏｌを算出する。【選択図】      図５
2005250662.tif 000002
【特許請求の範囲】
【請求項１】
塗り潰しまたは背景のいずれか少なくとも一方の色情報およびそれらを仕切る直線の色情報に基づいて、前記直線にかかる画素の色情報を算出する色情報算出手段を備えることを特徴とする直線描画装置。
【請求項２】
前記色情報算出手段は、
塗り潰し領域または背景領域のいずれか少なくとも一方が画素に占める割合に基づいて、前記画素における塗り潰し色または背景色の濃度値を算出する第１シェーディングモジュールと、
前記塗り潰し領域および前記背景領域を仕切る直線が前記画素に占める割合に基づいて、前記画素における直線色の濃度値を算出する第２シェーディングモジュールと、
前記塗り潰し色または背景色のいずれか少なくとも一方の濃度値および前記直線色の濃度値に基づいて、前記直線にかかる画素の色情報を算出する色合成モジュールとを備えることを特徴とする請求項１記載の直線描画装置。
【請求項３】
直線の両端の座標値に基づいて前記直線の傾きを算出する傾き算出手段と、
前記直線の傾きに基づいて、前記直線のシェーディング部分とスキャンラインとが交わる部分のシェーディング長を算出するシェーディング長算出手段と、
前記直線の幅および傾きに基づいて、前記直線の非シェーディング部分と前記スキャンラインとが交わる部分の非シェーディング長を算出する非シェーディング長算出手段と、
前記直線の両端の座標値および前記直線の傾きに基づいて、前記直線の中央が前記スキャンラインと交わる中央点座標値を算出する中央点座標値算出手段と、
前記シェーディング長、前記非シェーディング長および前記中央点座標値に基づいて、前記直線の輪郭部が前記スキャンラインと交わる第１および第２端点座標値を算出する端点座標値算出手段とをさらに備え、
前記第１シェーディングモジュールは、前記シェーディング長および前記第１端点座標値に基づいて、前記シェーディング部分にかかる各画素における塗り潰し色または背景色の濃度値を算出し、
前記第２シェーディングモジュールは、前記シェーディング長および前記第２端点座標値に基づいて、前記シェーディング部分にかかる各画素における直線色の濃度値を算出することを特徴とする請求項２記載の直線描画装置。
【請求項４】
前記直線の傾きに基づいて１画素当たりの濃度変化量を算出する濃度変化量算出手段をさらに備え、
前記第１シェーディングモジュールは、前記濃度変化量に基づいて、前記シェーディング部分にかかる各画素における塗り潰し色または背景色の濃度値を算出し、
前記第２シェーディングモジュールは、前記濃度変化量に基づいて、前記シェーディング部分にかかる各画素における直線色の濃度値を算出することを特徴とする請求項３記載の直線描画装置。
【請求項５】
塗り潰し領域または背景領域のいずれか少なくとも一方が画素に占める割合に基づいて、前記画素における塗り潰し色または背景色の濃度値を算出するステップと、
前記塗り潰し領域および背景領域を仕切る直線が前記画素に占める割合に基づいて、前記画素における直線色の濃度値を算出するステップと、
前記塗り潰し色または背景色のいずれか少なくとも一方の濃度値および前記直線色の濃度値に基づいて、前記直線にかかる画素の色情報を算出するステップとを備えることを特徴とする直線描画方法。
【請求項６】
直線の両端の座標値に基づいて前記直線の傾きを算出するステップと、
前記直線の傾きに基づいて、前記直線のシェーディング部分とスキャンラインとが交わる部分のシェーディング長を算出するステップと、
前記直線の幅および傾きに基づいて、前記直線の非シェーディング部分と前記スキャンラインとが交わる部分の非シェーディング長を算出するステップと、
前記直線の両端の座標値および前記直線の傾きに基づいて、前記直線の中央が前記スキャンラインと交わる中央点座標値を算出するステップと、
前記シェーディング長、前記非シェーディング長および前記中央点座標値に基づいて、前記直線の輪郭部が前記スキャンラインと交わる第１および第２端点座標値を算出するステップと、
前記直線の傾きに基づいて前記直線のシェーディング部分における１画素当たりの濃度変化量を算出するステップと、
前記濃度変化量、前記シェーディング長および前記端点座標値に基づいて、前記シェーディング部分にかかる各画素における塗り潰し色または背景色の濃度値を算出するステップと、
前記濃度変化量、前記シェーディング長および前記端点座標値に基づいて、前記シェーディング部分にかかる各画素における直線色の濃度値を算出するステップと、
塗り潰しまたは背景のいずれか少なくとも一方の色情報およびそれらを仕切る直線の色情報を取得するステップと、
前記塗り潰し色または背景色のいずれか少なくとも一方の濃度値および前記直線色の濃度値、ならびに前記塗り潰しまたは背景のいずれか少なくとも一方の色情報およびそれらを仕切る直線の色情報に基づいて、前記直線にかかる画素の色情報を算出するステップとを備えることを特徴とする直線描画方法。
【請求項７】
前記シェーディング部分にかかる各画素の濃度値を算出するステップは、
前記端点座標値に基づいて始点座標値を設定するステップと、
前記始点座標値の小数部および前記直線の傾きに基づいて、前記始点座標値に対応する画素の濃度値を算出するステップと、
前記始点座標値と前記シェーディング長との加算結果に基づいて、前記シェーディング部分の終点座標値を算出するステップと、
前記終点座標値の小数部および前記直線の傾きに基づいて、前記終点座標値に対応する画素の濃度値を算出するステップと、
前記濃度変化量に基づいて、前記始点座標値に対応する画素と前記終点座標値に対応する画素との間の画素の濃度値を算出するステップとを備えることを特徴とする請求項６記載の直線描画方法。
【請求項８】
前記始点座標値の整数部および前記終点座標値の整数部に基づいて状態識別子を生成するステップと、
前記状態識別子に基づいて、前記始点座標値に対応する画素、前記終点座標値に対応する画素、またはその間の画素の濃度値を切り替えて出力するステップとを備えることを特徴とする請求項７記載の直線描画方法。
【請求項９】
塗り潰し領域または背景領域のいずれか少なくとも一方が画素に占める割合に基づいて、前記画素における塗り潰し色または背景色の濃度値を算出するステップと、
前記塗り潰し領域および背景領域を仕切る直線が前記画素に占める割合に基づいて、前記画素における直線色の濃度値を算出するステップと、
前記塗り潰し色または背景色のいずれか少なくとも一方の濃度値および前記直線色の濃度値に基づいて、前記直線にかかる画素の色情報を算出するステップとをコンピュータに実行させることを特徴とする直線描画プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は直線描画装置、直線描画方法および直線描画プログラムに関し、特に、塗り潰し図形の輪郭に含まれる直線のアンチエイリアス処理に適用して好適なものである。
【背景技術】
【０００２】
従来の直線描画方法では、斜めに描画された直線の段差を滑らかにするために、アンチエイリアス処理を施す方法がある。このアンチエイリアス処理では、画素に占める直線の割合に応じて各画素の濃度値を変化させることにより、滑らかな斜線を描画することができる。また、単なる直線以外にも、例えば、特許文献１、２に開示されているように、塗り潰し図形に対してもアンチエイリアス処理が行う方法がある。
【０００３】
図１６は、特許文献１に開示された塗り潰し図形内のアンチエイリアス処理の方法を示す図である。
図１６（ａ）において、多角形の輪郭線の一部ＲＬに着目し、輪郭線の一部ＲＬの右側が塗り潰されるものとする。この場合、図１６（ｂ）に示すように、多角形内を塗り潰し部分が濃度値“８”をとるものとすると、輪郭部分のジャギーが目立たないようにするには、輪郭部分の隣接画素間の濃度値を“１”→“３”→“５”→“７”と徐々に増加させることが好ましい。
【０００４】
一方、図１６（ａ）の輪郭線の一部ＲＬの実際のイメージが図１６（ｃ）に示すようになっており、図１６（ｃ）の直線の幅が０．４８５画素分であるとする。この場合、図１６（ａ）の輪郭線の一部ＲＬに対してアンチエイリアス処理を施すと、図１６（ｄ）に示すように、各画素の濃度値“１”〜“４”のいずれかの値をとるように描画することができる。また、アンチエイリアス処理を行わずに、図１６（ａ）の多角形の輪郭線の一部ＲＬの右側を塗り潰すと、多角形内を塗り潰し部分の全ての画素が濃度値“８”をとる。そして、図１６（ｄ）の描画結果と図１６（ｅ）の描画結果とを重ね合わせることにより、塗り潰し図形内のアンチエイリアス処理を行うことができる。
【特許文献１】特開平７−２８２２７４号公報
【特許文献２】特開２００２−５６３９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に開示された方法では、アンチエイリアス処理された直線を塗り潰し図形に単に重ね合わせるだけであるため、塗り潰し図形内にエイリアスが部分的に残り、輪郭部分のジャギーが目立つという問題があった。すなわち、図１６（ｂ）の理想的な状態では、輪郭部分の隣接画素間の濃度値が“１”→“３”→“５”→“７”と変化しているのに対し、特許文献１に開示された方法では、図１６（ｆ）に示すように、輪郭部分の隣接画素間の濃度値が“１”→“３”→“４”→“８”と変化する。このため、理想的には濃度値が“５”であるべき画素の濃度値が“４”となり、理想的には濃度値が“７”であるべき画素の濃度値が“８”となるため、輪郭部分の隣接画素間の濃度差が大きくなる部分が発生し、ジャギーが発生するようになる。
【０００６】
また、特許文献２に開示された方法では、塗り潰し図形の輪郭線の色を塗り潰し図形内の色と異なるようにすることができないのみならず、塗り潰し図形の輪郭線の太さも変えられないという問題があった。
そこで、本発明の目的は、オーバーサンプリングを行うことなく、塗り潰し図形の輪郭に含まれる直線のアンチエイリアス処理を精度よく行うことが可能な直線描画装置、直線描画方法および直線描画プログラムを提供することである。
【課題を解決するための手段】
【０００７】
上述した課題を解決するために、本発明の一態様に係る直線描画装置によれば、塗り潰しまたは背景のいずれか少なくとも一方の色情報およびそれらを仕切る直線の色情報に基づいて、前記直線にかかる画素の色情報を算出する色情報算出手段を備えることを特徴とする。
これにより、塗り潰し色または背景色および直線色に基づいて、塗り潰し図形の輪郭線の画素の色を算出することが可能となり、塗り潰し図形の輪郭線の画素の色を塗り潰し色または背景色に溶け込ませることが可能となる。このため、塗り潰し図形の輪郭線の色が塗り潰し図形内の色と異なる場合においても、オーバーサンプリングを行うことなく、塗り潰し図形の輪郭に含まれる直線のアンチエイリアス処理を精度よく行うことが可能となり、輪郭部分のジャギーの発生を抑制しつつ、図形内の塗り潰しを高速に行うことができる。
【０００８】
また、本発明の一態様に係る直線描画装置によれば、前記色情報算出手段は、塗り潰し領域または背景領域のいずれか少なくとも一方が画素に占める割合に基づいて、前記画素における塗り潰し色または背景色の濃度値を算出する第１シェーディングモジュールと、前記塗り潰し領域および背景領域を仕切る直線が前記画素に占める割合に基づいて、前記画素における直線色の濃度値を算出する第２シェーディングモジュールと、前記塗り潰し色または背景色のいずれか少なくとも一方の濃度値および前記直線色の濃度値に基づいて、前記直線にかかる画素の色情報を算出する色合成モジュールとを備えることを特徴とする。
【０００９】
これにより、塗り潰し領域または背景領域が画素に占める割合および直線が画素に占める割合に基づいて、塗り潰し図形の輪郭線の画素の濃度値を算出することが可能となり、塗り潰し図形の輪郭線の画素の濃度を塗り潰し領域または背景領域の濃度に溶け込ませることが可能となる。このため、塗り潰し図形の輪郭線の太さが変化する場合においても、オーバーサンプリングを行うことなく、塗り潰し図形の輪郭に含まれる直線のアンチエイリアス処理を精度よく行うことが可能となり、輪郭部分のジャギーの発生を抑制しつつ、図形内の塗り潰しを高速に行うことができる。
【００１０】
また、本発明の一態様に係る直線描画装置によれば、直線の両端の座標値に基づいて前記直線の傾きを算出する傾き算出手段と、前記直線の傾きに基づいて、前記直線のシェーディング部分とスキャンラインとが交わる部分のシェーディング長を算出するシェーディング長算出手段と、前記直線の幅および傾きに基づいて、前記直線の非シェーディング部分と前記スキャンラインとが交わる部分の非シェーディング長を算出する非シェーディング長算出手段と、前記直線の両端の座標値および前記直線の傾きに基づいて、前記直線の中央が前記スキャンラインと交わる中央点座標値を算出する中央点座標値算出手段と、前記シェーディング長、前記非シェーディング長および前記中央点座標値に基づいて、前記直線の輪郭部が前記スキャンラインと交わる第１および第２端点座標値を算出する端点座標値算出手段とをさらに備え、前記第１シェーディングモジュールは、前記シェーディング長および前記第１端点座標値に基づいて、前記シェーディング部分にかかる各画素における塗り潰し色または背景色の濃度値を算出し、前記第２シェーディングモジュールは、前記シェーディング長および前記第２端点座標値に基づいて、前記シェーディング部分にかかる各画素における直線色の濃度値を算出することを特徴とする。
【００１１】
これにより、オーバーサンプリングを行うことなくシェーディング処理を行うことが可能となるとともに、直線を正円の軌跡として計算を行うことが可能となり、塗り潰し図形の輪郭に含まれる直線を精度よく描画させることを可能としつつ、アンチエイリアス処理を高速化することができる。また、シェーディングモジュールを複数設けることで、シェーディング処理を並列に行わせることが可能となり、アンチエイリアス処理の煩雑化を抑制しつつ、アンチエイリアス処理を高速化することができる。
【００１２】
また、本発明の一態様に係る直線描画装置によれば、前記直線の傾きに基づいて１画素当たりの濃度変化量を算出する濃度変化量算出手段をさらに備え、前記第１シェーディングモジュールは、前記濃度変化量に基づいて、前記シェーディング部分にかかる各画素における塗り潰し色または背景色の濃度値を算出し、前記第２シェーディングモジュールは、前記濃度変化量に基づいて、前記シェーディング部分にかかる各画素における直線色の濃度値を算出することを特徴とする。
【００１３】
これにより、前回算出された画素の濃度値に濃度変化量を累加算することで、今回算出される隣接画素の濃度値を算出することが可能となる。このため、計算精度を落とすことなく、シェーディング部分にかかる各画素の濃度値の算出過程を簡易化することが可能となり、滑らかな直線を高速に描画することができる。
また、本発明の一態様に係る直線描画方法によれば、塗り潰し領域または背景領域のいずれか少なくとも一方が画素に占める割合に基づいて、前記画素における塗り潰し色または背景色の濃度値を算出するステップと、前記塗り潰し領域および背景領域を仕切る直線が前記画素に占める割合に基づいて、前記画素における直線色の濃度値を算出するステップと、前記塗り潰し色または背景色のいずれか少なくとも一方の濃度値および前記直線色の濃度値に基づいて、前記直線にかかる画素の色情報を算出するステップとを備えることを特徴とする。
【００１４】
これにより、塗り潰し領域または背景領域が画素に占める割合および直線が画素に占める割合に基づいて、塗り潰し図形の輪郭線の画素の濃度値を算出することが可能となり、塗り潰し図形の輪郭に含まれる直線のアンチエイリアス処理を精度よく行うことが可能となる。
また、本発明の一態様に係る直線描画方法によれば、直線の両端の座標値に基づいて前記直線の傾きを算出するステップと、前記直線の傾きに基づいて、前記直線のシェーディング部分とスキャンラインとが交わる部分のシェーディング長を算出するステップと、前記直線の幅および傾きに基づいて、前記直線の非シェーディング部分と前記スキャンラインとが交わる部分の非シェーディング長を算出するステップと、前記直線の両端の座標値および前記直線の傾きに基づいて、前記直線の中央が前記スキャンラインと交わる中央点座標値を算出するステップと、前記シェーディング長、前記非シェーディング長および前記中央点座標値に基づいて、前記直線の輪郭部が前記スキャンラインと交わる第１および第２端点座標値を算出するステップと、前記直線の傾きに基づいて前記直線のシェーディング部分における１画素当たりの濃度変化量を算出するステップと、前記濃度変化量、前記シェーディング長および前記端点座標値に基づいて、前記シェーディング部分にかかる各画素における塗り潰し色または背景色の濃度値を算出するステップと、前記濃度変化量、前記シェーディング長および前記端点座標値に基づいて、前記シェーディング部分にかかる各画素における直線色の濃度値を算出するステップと、塗り潰しまたは背景のいずれか少なくとも一方の色情報およびそれらを仕切る直線の色情報を取得するステップと、前記塗り潰し色または背景色のいずれか少なくとも一方の濃度値および前記直線色の濃度値、ならびに前記塗り潰しまたは背景のいずれか少なくとも一方の色情報およびそれらを仕切る直線の色情報に基づいて、前記直線にかかる画素の色情報を算出するステップとを備えることを特徴とする。
【００１５】
これにより、直線を正円の軌跡として計算を行うことが可能となるとともに、前回算出された画素の濃度値に濃度変化量を加算することで、今回算出される隣接画素の濃度値を算出することが可能となり、線幅に制約を設けることなく、滑らかな直線を高速に描画することができる。
また、本発明の一態様に係る直線描画方法によれば、前記シェーディング部分にかかる各画素の濃度値を算出するステップは、前記端点座標値に基づいて始点座標値を設定するステップと、前記始点座標値の小数部および前記直線の傾きに基づいて、前記始点座標値に対応する画素の濃度値を算出するステップと、前記始点座標値と前記シェーディング長との加算結果に基づいて、前記シェーディング部分の終点座標値を算出するステップと、前記終点座標値の小数部および前記直線の傾きに基づいて、前記終点座標値に対応する画素の濃度値を算出するステップと、前記濃度変化量に基づいて、前記始点座標値に対応する画素と前記終点座標値に対応する画素との間の画素の濃度値を算出するステップとを備えることを特徴とする。
【００１６】
これにより、オーバーサンプリングを行うことなく、シェーディング部分にかかる各画素の濃度値を厳密に算出することが可能となり、描画精度を劣化させることなく、塗り潰し図形の輪郭に含まれる直線のアンチエイリアス処理を高速化することができる。
また、本発明の一態様に係る直線描画方法によれば、前記始点座標値の整数部および前記終点座標値の整数部に基づいて状態識別子を生成するステップと、前記状態識別子に基づいて、前記始点座標値に対応する画素、前記終点座標値に対応する画素、またはその間の画素の濃度値を切り替えて出力するステップとを備えることを特徴とする。
【００１７】
これにより、シェーディング部分にかかる各画素の濃度値を厳密に算出することが可能となるとともに、各画素の濃度値を座標値に対応させて出力させることが可能となる。このため、回路規模の増大を抑制しつつ、塗り潰し図形の輪郭に含まれる直線のアンチエイリアス処理のハードウェア化を図ることが可能となり、コストアップを抑制しつつ、アンチエイリアス処理を高速化することができる。
【００１８】
また、本発明の一態様に係る直線描画プログラムによれば、塗り潰し領域または背景領域のいずれか少なくとも一方が画素に占める割合に基づいて、前記画素における塗り潰し色または背景色の濃度値を算出するステップと、前記塗り潰し領域および背景領域を仕切る直線が前記画素に占める割合に基づいて、前記画素における直線色の濃度値を算出するステップと、前記塗り潰し色または背景色のいずれか少なくとも一方の濃度値および前記直線色の濃度値に基づいて、前記直線にかかる画素の色情報を算出するステップとをコンピュータに実行させることを特徴とする。
【００１９】
これにより、直線描画プログラムをコンピュータに実行させることで、オーバーサンプリングを行わせることなく、塗り潰し図形の輪郭に含まれる直線のアンチエイリアス処理を精度よく行わせることが可能となり、輪郭部分のジャギーの発生を抑制しつつ、図形内の塗り潰しを高速に行わせることができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施形態に係る直線描画装置について図面を参照しながら説明する。
図１は、本発明の一実施形態に係る情報表示装置の概略構成を示すブロック図である。
図１において、情報表示装置には、電力を供給する電源３、電源３を制御する電源コントローラ２、ＣＰＵ１を動作させるプログラムや各種データなどを記憶するメモリ４、ハードディスクなどの外部記憶装置６、外部記憶装置６を制御する外部記憶コントローラ５、ディスプレイ９に表示される描画データを記憶するＶＲＡＭ７、情報を表示するディスプレイ９、ディスプレイ９を制御する表示コントローラ８、グラフィックデータを生成するグラフィックエンジン１０およびこれらの全体的な制御を行うＣＰＵ１が設けられている。
【００２１】
また、グラフィックスエンジン１０には、楕円を描画する楕円描画部１１、曲線を描画する曲線描画部１２、文字を描画する文字描画部１３、多角形を描画する多角形描画部１４、直線を描画する直線描画部１５、図形の塗りつぶしを行う塗り潰し部１６、楕円描画部１１、曲線描画部１２、文字描画部１３、多角形描画部１４、直線描画部１５および塗り潰し部１６を制御するグラフィックエンジンコントローラ１７が設けられている。
【００２２】
また、直線描画部１５には、シェーディングされる画素の濃度変化量、シェーディング長およびシェーディング部分の端点座標値を算出するパラメータ算出部２１および塗り潰しまたは背景のいずれか少なくとも一方の色情報およびそれらを仕切る直線の色情報に基づいて、その直線にかかる画素の色情報を算出する色情報算出部２２が設けられている。
ここで、ＶＲＡＭ７、表示コントローラ８およびグラフィックエンジンコントローラ１７は、バス１８を介して互いに接続されている。また、ＣＰＵ１、電源コントローラ２、メモリ４および外部記憶コントローラ５は、バス１９を介して互いに接続されている。
【００２３】
そして、例えば、内部が塗り潰された多角形をディスプレイ９に表示する場合、多角形描画部１４は、直線描画部１５を呼び出すことにより、多角形の輪郭を構成する直線を直線描画部１５に描画させる。
ここで、直線描画部１５は、多角形描画部１４から直線の描画指令を受けた場合、多角形描画部１４にて描画される多角形の塗り潰しが行われるかを塗り潰し部１６に問い合わせることができる。そして、多角形描画部１４にて描画される多角形の塗り潰しが行われる場合、色情報算出部２２は、塗り潰しおよび背景の色情報を塗り潰し部１６から取得する。そして、色情報算出部２２は、塗り潰しまたは背景のいずれか少なくとも一方の色情報およびそれらを仕切る直線の色情報に基づいて、その直線にかかる画素の色情報を算出し、直線描画部１５は、その画素の色情報に基づいて直線を描画することができる。
【００２４】
ここで、色情報算出部２２が、塗り潰し図形の輪郭に含まれる直線の画素の色情報を算出する場合、パラメータ算出部２１は、その直線の傾きに基づいて、シェーディングされる画素の濃度変化量、シェーディング長およびシェーディング部分の端点座標値を算出することができる。そして、色情報算出部２２は、パラメータ算出部２１にて算出された濃度変化量、シェーディング長および端点座標値に基づいて、シェーディング部分にかかる各画素の塗り潰し色または背景色の濃度値を算出するとともに、その画素における直線色の濃度値を算出することができる。そして、塗り潰し色または背景色の濃度値および直線色の濃度値を合成することにより、塗り潰し図形の輪郭に含まれる直線にかかる画素の色情報を算出することができる。
【００２５】
そして、直線描画部１５にて多角形の輪郭を構成する直線が描画されると、多角形角形描画部１４は、塗り潰し部１６を呼び出すことにより、多角形の内部を塗り潰させることができる。
ここで、直線描画部１５および塗り潰し部１６を別々のモジュールとすることにより、塗り潰しを伴わない図形の輪郭に含まれる直線についても、オーバーサンプリングを行うことなく、アンチエイリアス処理を精度よく行うことが可能となるとともに、多角形以外にも、扇形、星形、立体図形などを描画する他の様々なモジュールに直線描画部１５を容易に組み込むことが可能となる。もちろん、直線描画部１５および塗り潰し部１６を１個のモジュールにまとめるようにしてもよく、これにより、さらなる高速描画が可能となる。
【００２６】
なお、以下の説明では計算を簡略化するために、描画色を１、背景色を０として説明する。また、描画色および背景色が指定されている時は、計算結果として得られる濃度Ｃに対し、以下の（１）式を適用することで、ＦＧＣを描画色、ＢＧＣを背景色とする中間色ｃｏｌを得ることができる。
ｃｏｌ＝（ｃ）ＦＧＣ＋（１−ｃ）ＢＧＣ                          ・・・（１）
図２は、図１の直線描画部１５で描画される直線のパラメータを説明する図である。
【００２７】
図２において、直線Ｌの始点Ｌｓ（Ｓｘ、Ｓｙ）および終点Ｌｅ（Ｅｘ、Ｅｙ）が与えられた場合、以下の（２）式および（３）式を適用することで、ｘ軸方向の増分ｄｘおよびｙ軸方向の増分ｄｙを求める。
ｄｘ＝Ｅｘ−Ｓｘ                                                ・・・（２）
ｄｙ＝Ｅｙ−Ｓｙ                                                ・・・（３）
ただし、Ｓｘ、Ｓｙ、Ｅｘ、Ｅｙはそれぞれ、始点Ｌｓのｘ座標値、始点Ｌｓのｙ座標値、終点Ｌｅのｘ座標値、終点Ｌｅのｙ座標値である。
【００２８】
そして、直線を描画する場合、色情報算出部２２は、以下に示すように、ｘ軸方向の増分ｄｘおよびｙ軸方向の増分ｄｙの値によって場合分けすることができる。
（ａ）ｄｘ＜０の場合
直線Ｌの始点Ｌｓと終点Ｌｅとを交換し、以下に説明する方法をそのまま利用することができる。
（ｂ）ｄｘ＜｜ｄｙ｜の場合
ｘ軸とｙ軸とを交換すれば、以下に説明する方法をそのまま利用することができる。以下、ｄｘ≧｜ｄｙ｜とする。
（ｃ）｜ｄｙ｜＝０かつｄｘ＝０の場合
与えられた条件では直線Ｌを形成することができないので、直線Ｌを描画する必要はない。
（ｄ）｜ｄｙ｜＝０かつｄｘ≠０の場合
直線Ｌはｘ軸に平行となる。この場合、描画する直線Ｌの幅Ｗと始点Ｌｓのｙ座標値Ｓｙとから、以下の（４）式および（５）式に従って、直線Ｌの上端のｙ座標値Ｙｔｏｐと下端のｙ座標値Ｙｂｔｍとを求める。
【００２９】
Ｙｔｏｐ＝Ｓｙ＋Ｗ／２                                          ・・・（４）
Ｙｂｔｍ＝Ｓｙ−Ｗ／２                                          ・・・（５）
次に、以下の（６）式および（７）式に従って、直線Ｌの上端の濃度値Ｃｔｏｐと下端の濃度値Ｃｂｔｍとを求める。
Ｃｔｏｐ＝Ｙｔｏｐ−ｆｌｏｏｒ（Ｙｔｏｐ）                      ・・・（６）
Ｃｂｔｍ＝ｃｅｉｌ（Ｙｂｔｍ）−Ｙｂｔｍ                        ・・・（７）
ただし、ｆｌｏｏｒ（Ｙｔｏｐ）は、Ｙｔｏｐを超えない最大の整数値、ｃｅｉｌ（Ｙｂｔｍ）は、Ｙｂｔｍを下回らない最小の整数値である。
【００３０】
次に、ｆｌｏｏｒ（Ｙｂｔｍ）のラインを濃度値Ｃｂｔｍで、ｆｌｏｏｒ（Ｙｔｏｐ）のラインを濃度値Ｃｔｏｐで、ｆｌｏｏｒ（Ｙｂｔｍ）とｆｌｏｏｒ（Ｙｔｏｐ）の間のラインを濃度値１で、長さｄｘだけ描画する。
ただし、ｆｌｏｏｒ（Ｙｂｔｍ）＝ｆｌｏｏｒ（Ｙｔｏｐ）の場合、下端の濃度値Ｃｂｔｍを以下の（８）式に従って求め、ｆｌｏｏｒ（Ｙｂｔｍ）のラインを濃度値Ｃｂｔｍで描画する。
【００３１】
Ｃｂｔｍ＝Ｙｔｏｐ−Ｙｂｔｍ                                    ・・・（８）
（ｅ）ｄｙ≠０の場合
以下の算出過程に基づいて各定数を算出し、直線Ｌのかかる全てのスキャンラインに対して描画を行うことができる。
図３は、アンチエイリアス処理された直線の一例を示す図である。
【００３２】
図３において、図１の色情報算出部２２は、直線Ｌの始点Ｌｓ、終点Ｌｅおよび幅Ｗが与えられると、直線Ｌのかかる全てのスキャンラインに対してシェーディング処理を行うことができる。
ここで、直線Ｌの上側輪郭部ＬｕのシェーディングＳｕおよび下側輪郭部ＬｄのシェーディングＳｄを別個に求め、これらのシェーディングＳｕ、Ｓｄを合成することにより、直線Ｌのシェーディング処理を行うことができる。この際、直線Ｌの上側輪郭部ＬｕのシェーディングＳｕを行うシェーディングモジュールと、直線Ｌの上側輪郭部ＬｄのシェーディングＳｄを行うシェーディングモジュールをそれぞれ用意し、これらのシェーディングモジュールを並列動作させることにより、アンチエイリアス処理を高速化することができる。
【００３３】
図４は、アンチエイリアス処理される直線のパラメータを説明する図である。
図４において、図１のパラメータ算出部２１は、（２）式および（３）式からｘ軸方向の増分ｄｘおよびｙ軸方向の増分ｄｙが求まると、以下の（９）式および（１０）式にそれぞれ従って、直線Ｌの傾きｋおよび直線Ｌの長さｈを算出する。
ｋ＝ｄｙ／ｄｘ                                                  ・・・（９）
ｈ＝√（ｄｘ2＋ｄｙ2）                                        ・・・（１０）
なお、直線Ｌの長さｈの算出には、例えば、「Ｊｏｎ  Ｂｒｎｔｌｅｙ．Ｍｏｒｅ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｐｅａｒｌｓ．Ａｄｄｉｓｏｎ−Ｗｅｓｌｅｙ，１９８８．ｐ．１５６」に記載されているアルゴリズムを用いることができる。
【００３４】
次に、パラメータ算出部２１は、以下の（１１）式に従って、直線Ｌのシェーディング部分とスキャンラインＳＬとが交わる部分のシェーディング長ｓを算出する。なお、シェーディング長ｓは、ｙ軸方向に１画素分だけ移動する間に、ｘ軸方向に移動した距離に等しい。
ｓ＝ｄｘ／ｄｙ                                                ・・・（１１）
次に、パラメータ算出部２１は、以下の（１２）式に従って、直線Ｌの非シェーディング部分とスキャンラインＳＬとが交わる部分の非シェーディング長ｆを算出する。
【００３５】
ｆ＝（ｈ／ｄｙ）Ｗ−ｓ                                          ・・・（１２）
次に、パラメータ算出部２１は、以下の（１３）式に従って、直線Ｌの中央がスキャンラインＳＬと交わる中央点座標値Ｃを算出する。
Ｃ＝Ｓｘ＋（ｄｘ／ｄｙ）（ｙ−Ｓｙ）                            ・・・（１３）
なお、ｙは注目するスキャンラインＳＬのｙ座標値、中央点座標値Ｃは直線Ｌの中央点のｘ座標値を意味する。
【００３６】
次に、パラメータ算出部２１は、以下の（１４）式および（１５）式に従って、直線Ｌの上側輪郭部Ｌｕおよび下側輪郭部ＬｄがスキャンラインＳＬとそれぞれ交わる端点座標値Ａ、Ｄを算出する。
Ａ＝Ｃ−ｓ−ｆ／２                                            ・・・（１４）
Ｄ＝Ａ＋ｓ＋ｆ                                                ・・・（１５）
なお、端点座標値Ａは、各スキャンラインＳＬにかかる上側シェーディング部分の始点のｘ座標値、端点座標値Ｄは、各スキャンラインＳＬにかかる下側シェーディング部分の始点のｘ座標値を意味する。
【００３７】
次に、パラメータ算出部２１は、以下の（１６）式に従って、直線Ｌのシェーディング部分における１画素当たりの濃度変化量Ｃｄを算出する。
Ｃｄ＝ｋ                                                      ・・・（１６）
そして、パラメータ算出部２１にて濃度変化量Ｃｄを算出されると、色情報算出部２２は、濃度変化量Ｃｄに基づいてシェーディング部分にかかる各画素の濃度値を算出することができる。
【００３８】
図５は、図１の色情報算出部２２の概略構成を示すブロック図である。
図５において、色情報算出部２２には、シェーディングモジュールＬＭ、ＲＭおよび色合成モジュールＭ０が設けられている。そして、パラメータ算出部２１にて算出された濃度変化量Ｃｄ（＝直線Ｌの傾きｋ）、始点座標値Ａ、シェーディング長ｓおよび始点座標値Ｄは、レジスタＲ１、Ｒ３〜Ｒ５にそれぞれ格納される。また、レジスタＲ６には、各ラインの描画処理の開始点を指定する座標初期値Ｘ０が格納され、レジスタＲ７には、各ラインの描画処理を開始させるリセット信号Ｒｅｓｅｔが格納される。なお、座標初期値Ｘ０は、計算の開始点となるｘ座標値を指定するもので、シェーディングモジュールＬＭ、ＲＭは、座標初期値Ｘ０から計算の開始することができる。また、リセット信号Ｒｅｓｅｔは、ｙの値を固定し、１ライン分の結果を出力した後に、次のラインの計算を開始させるためのものである。
【００３９】
さらに、レジスタＲ８には左右フラグＬＲＦｌａｇが格納され、レジスタＲ９には、背景色Ｂｃｏｌ、直線色Ｌｃｏｌおよび塗り潰し色Ｆｃｏｌに対応する色情報Ｂ／Ｌ／Ｆｃｏｌが格納される。なお、左右フラグＬＲＦｌａｇは、与えられた直線の左右どちらを塗り潰すかを指定するものである。ここでは、左右フラグＬＲＦｌａｇが０であれば、直線の右側を塗り潰し、左右フラグＬＲＦｌａｇが１であれば、直線の左側を塗り潰すものとする。また、色情報Ｂ／Ｌ／Ｆｃｏｌは、例えば、モノクロ８階調での描画なら１バイト変数、フルカラーでの描画なら３バイト変数とすることができる。
【００４０】
そして、シェーディングモジュールＬＭには、濃度変化量Ｃｄ、始点座標値Ａ、シェーディング長ｓ、座標初期値Ｘ０およびリセット信号Ｒｅｓｅｔが入力され、シェーディングモジュールＲＭには、濃度変化量Ｃｄ、始点座標値Ｄ、シェーディング長ｓ、座標初期値Ｘ０およびリセット信号Ｒｅｓｅｔが入力される。そして、シェーディングモジュールＬＭは、シェーディング長ｓおよび始点座標値Ａに基づいてシェーディング部分にかかる画素を特定する。そして、濃度変化量Ｃｄに基づいてシェーディング部分にかかる各画素の濃度値を算出する。また、シェーディングモジュールＲＭは、シェーディング長ｓおよび始点座標値Ｄに基づいてシェーディング部分にかかる画素を特定する。そして、濃度変化量Ｃｄに基づいてシェーディング部分にかかる各画素の濃度値を算出する。
【００４１】
ここで、左右フラグＬＲＦｌａｇが０の場合、シェーディングモジュールＬＭにて、各画素における直線色Ｌｃｏｌまたは背景色Ｂｃｏｌを考慮した濃度値を算出するとともに、シェーディングモジュールＲＭにて、各画素における塗り潰し色Ｆｃｏｌまたは直線色Ｌｃｏｌを考慮した濃度値を算出することができる。一方、左右フラグＬＲＦｌａｇが１の場合、シェーディングモジュールＬＭにて、各画素における直線色Ｌｃｏｌまたは塗り潰し色Ｆｃｏｌを考慮した濃度値を算出するとともに、シェーディングモジュールＲＭにて、各画素における背景色Ｂｃｏｌまたは直線色Ｌｃｏｌを考慮した濃度値を算出することができる。
【００４２】
そして、シェーディングモジュールＬＭ、ＲＭでそれぞれ算出された各画素の濃度値は色合成モジュールＭ０に出力される。そして、色合成モジュールＭ０にて、これらの各画素の濃度値を合成することにより各画素の出力色情報Ｃｏｌを算出し、その出力色情報ＣｏｌをレジスタＲ１０に格納する。また、シェーディングモジュールＬＭは、濃度値Ｃが算出された各画素の座標値Ｘを算出し、その座標値ＸをレジスタＲ１１に格納する。
【００４３】
ここで、色合成モジュールＭ０にて各画素の濃度値を合成する場合、左右フラグＬＲＦｌａｇが０の時には、シェーディングモジュールＬＭにて算出された画素の濃度値に直線色Ｌｃｏｌまたは背景色Ｂｃｏｌに関する色情報Ｂ／Ｌ／Ｆｃｏｌを乗算するとともに、シェーディングモジュールＲＭにて算出された画素の濃度値に直線色Ｌｃｏｌまたは塗り潰し色Ｆｃｏｌに関する色情報Ｂ／Ｌ／Ｆｃｏｌを乗算し、これらの乗算結果を加算することができる。また、左右フラグＬＲＦｌａｇが１の時には、シェーディングモジュールＬＭにて算出された画素の濃度値に直線色Ｌｃｏｌまたは塗り潰し色Ｆｃｏｌに関する色情報Ｂ／Ｌ／Ｆｃｏｌを乗算するとともに、シェーディングモジュールＲＭにて算出された画素の濃度値に直線色Ｌｃｏｌまたは背景色Ｂｃｏｌに関する色情報Ｂ／Ｌ／Ｆｃｏｌを乗算し、これらの乗算結果を加算することができる。
【００４４】
これにより、塗り潰し色Ｆｃｏｌまたは背景色Ｂｃｏｌおよび直線色Ｌｃｏｌに基づいて、塗り潰し図形の輪郭線の画素の色を算出することが可能となり、塗り潰し図形の輪郭線の画素の色を塗り潰し色Ｆｃｏｌまたは背景色Ｂｃｏｌに溶け込ませることが可能となる。このため、塗り潰し図形の輪郭線を構成する直線色Ｌｃｏｌが塗り潰し図形内の塗り潰し色Ｆｃｏｌと異なる場合においても、オーバーサンプリングを行うことなく、塗り潰し図形の輪郭に含まれる直線のアンチエイリアス処理を精度よく行うことが可能となり、輪郭部分のジャギーの発生を抑制しつつ、図形内の塗り潰しを高速に行うことができる。
【００４５】
さらに、複数のシェーディングモジュールＬＭ、ＲＭを設けることで、シェーディング処理を並列に行わせることが可能となり、アンチエイリアス処理の煩雑化を抑制しつつ、アンチエイリアス処理を高速化することができる。
図６は、本発明の一実施形態に係るアンチエイリアス処理を説明する図である。
図６において、シェーディングモジュールＬＭでは、始点座標値Ａを起点としてスキャンラインＳＬにかかる各画素の濃度値が算出される。また、シェーディングモジュールＲＭでは、始点座標値Ｄを起点としてスキャンラインＳＬにかかる各画素の濃度値が算出される。そして、色合成モジュールＭ０にて、塗り潰し色Ｆｃｏｌまたは背景色Ｂｃｏｌおよび直線色Ｌｃｏｌを考慮しながら、これらの濃度値を各画素ごとに合成することにより、塗り潰し図形の輪郭線を構成する直線色Ｌｃｏｌが塗り潰し図形内の塗り潰し色Ｆｃｏｌと異なる場合においても、塗り潰し図形の輪郭に含まれる直線のアンチエイリアス処理を精度よく行うことができる。
【００４６】
図７は、図５のシェーディングモジュールＬＭ、ＲＭの概略構成を示すブロック図である。
図７において、シェーディングモジュールＬＭ、ＲＭには、定数計算モジュールＭ１、状態遷移モジュールＭ２、濃度値計算モジュールＭ３およびレジスタＲ２１〜Ｒ２８がそれぞれ設けられている。なお、シェーディングモジュールＬＭでは、レジスタＲ３´には、始点座標値Ｐとして始点座標値Ａが格納される。また、シェーディングモジュールＲＭでは、レジスタＲ３´には、始点座標値Ｐとして始点座標値Ｄが格納される。
【００４７】
そして、定数計算モジュールＭ１には、直線Ｌの傾きｋ、始点座標値Ｐおよびシェーディング長ｓが入力される。そして、定数計算モジュールＭ１は、始点座標値Ｐの整数部に基づいて始点座標整数値Ｐｉを算出し、その始点座標整数値ＰｉをレジスタＲ２１に格納する。また、定数計算モジュールＭ１は、始点座標値Ｐの小数部および傾きｋに基づいて濃度開始値Ｃｔを算出し、その濃度開始値ＣｔをレジスタＲ２２に格納する。また、定数計算モジュールＭ１は、始点座標値Ｐの小数部および傾きｋに基づいて始点濃度値Ｃｓを算出し、その始点濃度値ＣｓをレジスタＲ２３に格納する。また、定数計算モジュールＭ１は、始点座標値Ｐ、シェーディング長ｓおよび傾きｋに基づいて終点濃度値Ｃｅを算出し、その終点濃度値ＣｅをレジスタＲ２４に格納する。また、定数計算モジュールＭ１は、始点座標値Ｐおよびシェーディング長に基づいて終点座標整数値Ｅｉを算出し、その終点座標整数値ＥｉをレジスタＲ２５に格納する。
【００４８】
また、状態遷移モジュールＭ２には、始点座標整数値Ｐｉ、終点座標整数値Ｅｉ、座標初期値Ｘ０およびリセット信号Ｒｅｓｅｔが入力される。また、状態遷移モジュールＭ２には、状態遷移モジュールＭ２から出力される状態識別子Ｓｔａｔおよび座標値Ｘが戻される。そして、状態遷移モジュールＭ２は、始点座標整数値Ｐｉ、終点座標整数値Ｅｉ、座標初期値Ｘ０、リセット信号Ｒｅｓｅｔ、座標値Ｘおよび状態識別子Ｓｔａｔに基づいて状態識別子Ｓｔａｔを更新し、その状態識別子ＳｔａｔをレジスタＲ２６に格納する。また、状態遷移モジュールＭ２は、座標初期値Ｘ０、リセット信号Ｒｅｓｅｔおよび座標値Ｘに基づいて座標値Ｘを更新し、その座標値ＸをレジスタＲ２７に格納する。
【００４９】
また、濃度値計算モジュールＭ３には、濃度変化量Ｃｄ、濃度開始値Ｃｔ、始点濃度値Ｃｓ、終点濃度値Ｃｅおよび状態識別子Ｓｔａｔが入力される。また、濃度値計算モジュールＭ３には、濃度値計算モジュールＭ３から出力されるフィードバック値Ｃｐが戻される。そして、濃度値計算モジュールＭ３は、フィードバック値Ｃｐに濃度変化量Ｃｄを加算することにより、フィードバック値Ｃｐを更新し、そのフィードバック値ＣｐをレジスタＲ２８に格納する。また、濃度値計算モジュールＭ３は、状態識別子Ｓｔａｔに基づいて、濃度値０、濃度値１、始点濃度値Ｃｓ、終点濃度値Ｃｅまたは濃度開始値Ｃｔとフィードバック値Ｃｐとの加算結果のいずれかを選択し、選択された濃度値ＣをレジスタＲ１２に格納する。
【００５０】
図８は、本発明の一実施形態に係る濃度値の算出方法を説明する図である。
図８において、リセット信号Ｒｅｓｅｔが１となると、図７の状態遷移モジュールＭ２は、状態識別子（ステータス）Ｓｔａｔを“０００”に設定するとともに、座標値Ｘとして座標初期値Ｘ０を出力する。そして、状態識別子Ｓｔａｔが“０００”になると、濃度値計算モジュールＭ３は、濃度値Ｃとして０を出力することにより、座標初期値Ｘ０で特定される画素の濃度値Ｃを０とする。そして、１画素分の濃度値Ｃが出力されると、状態遷移モジュールＭ２は、座標値Ｘを１だけインクリメントし、座標値Ｘが始点座標整数値Ｐｉと一致するかどうか比較する。そして、座標値Ｘが始点座標整数値Ｐｉと一致しない間は、状態識別子Ｓｔａｔとして“０００”を出力する。そして、状態識別子Ｓｔａｔが“０００”の間は、濃度値計算モジュールＭ３は、座標値Ｘで特定される画素の濃度値Ｃとして０を出力する。
【００５１】
そして、例えば、座標値ＸがＸ＋２となった時に座標値Ｘが始点座標整数値Ｐｉと一致したものとすると、状態遷移モジュールＭ２は、状態識別子Ｓｔａｔを“００１”に設定する。そして、状態識別子Ｓｔａｔが“００１”になると、濃度値計算モジュールＭ３は、濃度値Ｃとして始点濃度値Ｃｓを出力することにより、座標値Ｘで特定される画素の濃度値Ｃを始点濃度値Ｃｓとする。なお、始点濃度値Ｃｓは、（Ｐｉ＋１−Ｐ）を底辺とし、斜辺の傾きが直線Ｌの傾きｋで規定される三角形の面積に基づいて算出することができる。
【００５２】
そして、始点座標整数値Ｐｉで特定される画素の濃度値Ｃが出力されると、状態遷移モジュールＭ２は、座標値Ｘを１だけインクリメントし、座標値Ｘが終点座標整数値Ｅｉと一致するかどうか比較する。そして、座標値Ｘが終点座標整数値Ｅｉと一致しない場合、座標値ＸがＸ＋３の時の状態識別子Ｓｔａｔとして“０１０”を出力する。そして、状態識別子Ｓｔａｔが“０１０”になると、濃度値計算モジュールＭ３は、濃度値Ｃとして濃度開始値Ｃｔに濃度変化量Ｃｄを加算した値を出力することにより、座標値Ｘで特定される画素の濃度値Ｃを（Ｃｔ＋Ｃｄ）とする。なお、濃度開始値Ｃｔは、（Ｃｓ−Ｃｓｎｅｇ）の計算を行うことで求めることができる。また、Ｃｓｎｅｇは、（Ｐ−Ｐｉ）を底辺とし、斜辺の傾きが直線Ｌの傾きｋで規定される三角形の面積に基づいて算出することができる。
【００５３】
そして、座標値Ｘが終点座標整数値Ｅｉと一致しない間は、状態遷移モジュールＭ２は、座標値Ｘを１だけインクリメントしながら、状態識別子Ｓｔａｔとして“０１０”を出力し続ける。そして、状態識別子Ｓｔａｔが“０１０”の間は、濃度値計算モジュールＭ３は、前回求めた画素の濃度値Ｃをフィードバック値Ｃｐとして、このフィードバック値Ｃｐに濃度変化量Ｃｄを順次加算することで、座標値Ｘで特定される画素の濃度値Ｃを（Ｃｐ＋Ｃｄ）とする。
【００５４】
そして、例えば、座標値ＸがＸ＋８となった時に座標値Ｘが終点座標整数値Ｅｉと一致したものとすると、状態遷移モジュールＭ２は、状態識別子Ｓｔａｔを“０１１”に設定する。そして、状態識別子Ｓｔａｔが“０１１”になると、濃度値計算モジュールＭ３は、濃度値Ｃとして終点濃度値Ｃｅを出力することにより、座標値Ｘで特定される画素の濃度値Ｃを終点濃度値Ｃｅとする。なお、終点濃度値Ｃｅは、（Ｅ−Ｅｉ＋１）を底辺とし、斜辺の傾きが直線Ｌの傾きｋで規定される三角形の面積に基づいて算出することができる。
【００５５】
そして、終点座標整数値Ｅｉで特定される画素の濃度値Ｃが出力されると、状態遷移モジュールＭ２は、座標値Ｘを１だけインクリメントし、状態識別子Ｓｔａｔとして“１００”を出力する。そして、状態識別子Ｓｔａｔが“１００”の間は、濃度値計算モジュールＭ３は、座標値Ｘで特定される画素の濃度値Ｃとして１を出力する。
これにより、オーバーサンプリングを行うことなく、シェーディング部分にかかる各画素の濃度値を厳密に算出することが可能となり、描画精度を劣化させることなく、アンチエイリアス処理を高速化することができる。
【００５６】
図９は、図５の色合成モジュールＭ０の概略構成を示すブロック図である。なお、図９のブロックＡでは、塗り潰しが直線の左右どちら側に行われるかが指定され、図９のブロックＢでは、塗り潰し図形の輪郭に含まれる直線の画素の出力色情報Ｃｏｌが算出される。
すなわち、図９において、色合成モジュールＭ０には、セレクタＨ１０１、Ｈ１０２、減算器Ｇ１０１、Ｇ１０１、乗算器Ｇ１０３、Ｇ１０５、加算器Ｇ１０４およびレジスタＲ１０１〜Ｒ１０８が設けられている。また、レジスタＲ９に格納されている色情報Ｂ／Ｌ／Ｆｃｏｌのうち、直線色ＬｃｏｌはレジスタＲ９´に格納され、背景色ＢｃｏｌはレジスタＲ９´´に格納され、塗り潰し色ＦｃｏｌはレジスタＲ９´´´に格納される。さらに、シェーディングモジュールＬＭから出力された濃度値Ｃは、左側濃度ＬとしてレジスタＲ１２´に格納され、シェーディングモジュールＲＭから出力された濃度値Ｃは、右側濃度ＲとしてレジスタＲ１２´´に格納される。そして、左側濃度Ｌは乗算器Ｇ１０３に入力されるとともに、右側濃度Ｒは乗算器Ｇ１０５に入力される。
【００５７】
そして、直線色Ｌｃｏｌは中央色ＣｃとしてレジスタＲ１０２に格納される。また、セレクタＨ１０１、Ｈ１０２には、左右フラグＬＲＦｌａｇ、背景色Ｂｃｏｌおよび塗り潰し色Ｆｃｏｌが入力される。そして、左右フラグＬＲＦｌａｇが０の場合、セレクタＨ１０１にて背景色Ｂｃｏｌが選択されるとともに、セレクタＨ１０２にて塗り潰し色Ｆｃｏｌが選択される。そして、セレクタＨ１０１にて選択された背景色Ｂｃｏｌが左側色ＣｌとしてレジスタＲ１０１に格納されるとともに、セレクタＨ１０２にて選択された塗り潰し色Ｆｃｏｌが右側色ＣｒとしてレジスタＲ１０３に格納される。
【００５８】
そして、左側色Ｃｌおよび中央色Ｃｃは減算器Ｇ１０１に入力され、減算器Ｇ１０１にて左側色Ｃｌおよび中央色Ｃｃの差分Ｃｃ−Ｃｌが算出される。そして、減算器Ｇ１０１にて算出された差分Ｃｃ−ＣｌはレジスタＲ１０４に格納される。そして、レジスタＲ１０４に格納された差分Ｃｃ−Ｃｌは乗算器Ｇ１０３に入力され、乗算器Ｇ１０５にて差分Ｃｃ−Ｃｌと左側濃度Ｌとの乗算が行われる。そして、乗算器Ｇ１０３にて算出された乗算結果（Ｃｃ−Ｃｌ）＊ＬはレジスタＲ１０６に格納される。そして、レジスタＲ１０６に格納された乗算結果（Ｃｃ−Ｃｌ）＊Ｌは加算器Ｇ１０４に入力され、加算器Ｇ１０４にて乗算結果（Ｃｃ−Ｃｌ）＊Ｌおよび左側色Ｃｌの加算が行われる。そして、その加算結果（（Ｃｃ−Ｃｌ）＊Ｌ＋Ｃｌ）は加算器Ｇ１０６に入力される。
【００５９】
また、右側色Ｃｒおよび中央色Ｃｃは減算器Ｇ１０２に入力され、減算器Ｇ１０２にて右側色Ｃｒおよび中央色Ｃｃの差分Ｃｒ−Ｃｃが算出される。そして、減算器Ｇ１０２にて算出された差分Ｃｒ−ＣｃはレジスタＲ１０５に格納される。そして、レジスタＲ１０５に格納された差分Ｃｒ−Ｃｃは乗算器Ｇ１０５に入力され、乗算器Ｇ１０５にて差分Ｃｒ−Ｃｃと右側濃度Ｒとの乗算が行われる。そして、乗算器Ｇ１０５にて算出された乗算結果（Ｃｒ−Ｃｃ）＊ＲはレジスタＲ１０７に格納される。そして、レジスタＲ１０７に格納された乗算結果（Ｃｒ−Ｃｃ）＊Ｒは加算器Ｇ１０６に入力される。
【００６０】
そして、加算結果（（Ｃｃ−Ｃｌ）＊Ｌ＋Ｃｌ）および乗算結果（Ｃｒ−Ｃｃ）＊Ｒが加算器Ｇ１０６に入力されると、加算器Ｇ１０６にて加算結果（（Ｃｃ−Ｃｌ）＊Ｌ＋Ｃｌ）および乗算結果（Ｃｒ−Ｃｃ）＊Ｒの加算が行われる。そして、加算器Ｇ１０６にて算出された加算結果（Ｃｌ＋（Ｃｃ−Ｃｌ）＊Ｌ＋（Ｃｒ−Ｃｃ）＊Ｒ）はレジスタＲ１０８に格納され、この加算結果（Ｃｌ＋（Ｃｃ−Ｃｌ）＊Ｌ＋（Ｃｒ−Ｃｃ）＊Ｒ）が出力色情報ＣｏｌとしてレジスタＲ１０に格納される。
【００６１】
図１０は、本発明の一実施形態に係る色情報と濃度値との関係を示す図である。
図１０（ａ）において、塗り潰し図形の輪郭に含まれる直線、背景領域および塗り潰し領域が一画素ＰＸ内に含まれているものとする。この場合、この一画素ＰＸ内には、塗り潰し図形の輪郭に含まれる直線の直線色Ｌｃｏｌ、背景領域の背景色Ｂｃｏｌおよび塗り潰し領域の塗り潰し色Ｆｃｏｌが混在して存在する。
【００６２】
ここで、直線色Ｌｃｏｌが中央色Ｃｃ、背景色Ｂｃｏｌが左側色Ｃｌ、塗り潰し色Ｆｃｏｌが右側色Ｃｒである場合、図１０（ｂ）に示すように、中央色Ｃｃの領域が一画素ＰＸ内に占める面積に基づいて、中央色Ｃｃの領域に対応する左側濃度Ｌを算出するとともに、右側色Ｃｒの領域が一画素ＰＸ内に占める面積に基づいて、右側色Ｃｒの領域に対応する右側濃度Ｒを算出することができる。
【００６３】
そして、中央色Ｃｃ、左側色Ｃｌ、右側色Ｃｒ、左側濃度Ｌおよび右側濃度Ｒが与えられると、以下の（３１）式に基づいて画素ＰＸの出力色情報Ｃｏｌを求めることができる。
Ｃｏｌ＝Ｃｌ（１−Ｌ）＋Ｃｃ（Ｌ−Ｒ）＋Ｃｒ・Ｒ                ・・・（３１）
なお、（３１）式を変形すると、以下の（３２）式のようになり、レジスタＲ１０に格納された出力色情報Ｃｏｌと等しいことが判る。
【００６４】
Ｃｏｌ＝Ｃｌ＋（Ｃｃ−Ｃｌ）Ｌ＋（Ｃｒ−Ｃｃ）Ｒ                ・・・（３２）
これにより、塗り潰し図形の輪郭に含まれる直線の直線色Ｌｃｏｌ、背景領域の背景色Ｂｃｏｌおよび塗り潰し領域の塗り潰し色Ｆｃｏｌが一画素ＰＸ内に混在する場合においても、これらの複数色を考慮しつつ、一画素ＰＸ内を１個の色で塗ることが可能となる。このため、塗り潰し図形の輪郭線の色が塗り潰し図形内の色と異なる場合においても、オーバーサンプリングを行うことなく、塗り潰し図形の輪郭線の色を塗り潰し図形内の色に溶け込ませることが可能となり、塗り潰し図形の輪郭に含まれる直線のアンチエイリアス処理を精度よく行うことが可能となる。
【００６５】
図１１は、図７の定数計算モジュールＭ１の概略構成を示すブロック図である。なお、定数計算モジュールＭ１は、傾きｋ、始点座標値Ｐおよびシェーディング長ｓに基づいて、始点座標整数値Ｐｉ、濃度開始値Ｃｔ、始点濃度値Ｃｓ、終点濃度値Ｃｅおよび終点座標整数値Ｅｉを、以下の（２０）式〜（２４）式にそれぞれ従ってハードウェア的に求めるようにしたものである。
【００６６】
Ｐｉ＝［Ｐ］                                                    ・・・（２０）
Ｅｉ＝［Ｅ］                                                    ・・・（２１）
Ｃｔ＝（１−２Ｐｆ）ｋ／２                                      ・・・（２２）
Ｃｓ＝（１−Ｐｆ）2ｋ／２                                      ・・・（２３）
Ｃｅ＝Ｅｆ2ｋ／２                                              ・・・（２４）
ただし、［Ｘ］は、Ｘを超えない最小の整数を示す。また、ＰｆおよびＥｆは、以下の式で表すことができる。
【００６７】
Ｐｆ＝Ｐ−［Ｐ］
Ｅｆ＝Ｅ−［Ｅ］
すなわち、図１１において、定数計算モジュールＭ１には、整数部小数部分離器Ｇ１１、Ｇ２０、シフト演算器Ｇ１２、Ｇ１８、減算器Ｇ１３、Ｇ１５、Ｇ２３、乗算器Ｇ１４、Ｇ１６、Ｇ１７、Ｇ２１、Ｇ２２、加算器Ｇ１９およびレジスタＲ３１〜Ｒ４５が設けられている。そして、整数部小数部分離器Ｇ１１には始点座標値Ｐが入力され、シフト演算器Ｇ１８には傾きｋが入力され、加算器Ｇ１９には始点座標値Ｐおよびシェーディング長ｓが入力される。
【００６８】
そして、始点座標値Ｐが整数部小数部分離器Ｇ１１に入力されると、整数部小数部分離器Ｇ１１は始点座標値Ｐを整数部Ｐｉと小数部Ｐｆに分離し、始点座標値Ｐの整数部Ｐｉを取り出す。そして、始点座標値Ｐの整数部ＰｉはレジスタＲ３１に格納され、レジスタＲ３１に格納された始点座標値Ｐの整数部Ｐｉは、始点座標整数値ＰｉとしてレジスタＲ２１に格納される。
【００６９】
また、傾きｋがシフト演算器Ｇ１８に入力されると、シフト演算器Ｇ１８にて、傾きｋのシフト演算が行われることにより、傾きｋが１／２倍され、そのシフト演算結果ｋ／２がレジスタＲ３９に格納される。そして、レジスタＲ３９に格納されたシフト演算結果ｋ／２は、乗算器Ｇ１４、Ｇ１７、Ｇ２２に出力される。
また、整数部小数部分離器Ｇ１１は、始点座標値Ｐから分離された小数部ＰｆをレジスタＲ３２に格納する。そして、レジスタＲ３２に格納された始点座標値Ｐの小数部Ｐｆは、シフト演算器Ｇ１２に出力される。そして、シフト演算器Ｇ１２にて、始点座標値Ｐの小数部Ｐｆのシフト演算が行われることにより、始点座標値Ｐの小数部Ｐｆが２倍され、そのシフト演算結果２ＰｆがレジスタＲ３３に格納される。
【００７０】
そして、レジスタＲ３３に格納されたシフト演算結果２Ｐｆは、減算器Ｇ１３に出力される。そして、減算器Ｇ１３にて、シフト演算結果２Ｐｆが１から減算され、その減算結果（１−２Ｐｆ）がレジスタＲ３４に格納される。
そして、レジスタＲ３４に格納された減算結果（１−２Ｐｆ）は、乗算器Ｇ１４に出力される。そして、乗算器Ｇ１４にて、レジスタＲ３４から出力された減算結果（１−２Ｐｆ）とレジスタＲ３９から出力されたシフト演算結果ｋ／２とが乗算され、その乗算結果（（１−２Ｐｆ）＊ｋ／２が）レジスタＲ３５に格納される。そして、レジスタＲ３５に格納された乗算結果（（１−２Ｐｆ）＊ｋ／２）は、濃度開始値ＣｔとしてレジスタＲ２１に格納される。
【００７１】
また、レジスタＲ３２に格納された始点座標値Ｐの小数部Ｐｆは、減算器Ｇ１５に出力される。そして、減算器Ｇ１５にて、始点座標値Ｐの小数部Ｐｆが１から減算され、その減算結果（１−Ｐｆ）がレジスタＲ３６に格納される。
そして、レジスタＲ３６に格納された減算結果（１−Ｐｆ）は、乗算器Ｇ１６に出力される。そして、乗算器Ｇ１６にて、レジスタＲ３６から出力された減算結果（１−Ｐｆ）が自乗され、その乗算結果（１−Ｐｆ）2がレジスタＲ３７に格納される。
【００７２】
そして、レジスタＲ３７に格納された乗算結果（１−２Ｐｆ）2は、乗算器Ｇ１７に出力される。そして、乗算器Ｇ１７にて、レジスタＲ３７から出力された乗算結果（１−２Ｐｆ）2とレジスタＲ３９から出力されたシフト演算結果ｋ／２とが乗算され、その乗算結果（（１−２Ｐｆ）2＊ｋ／２）がレジスタＲ３８に格納される。そして、レジスタＲ３８に格納された乗算結果（（１−２Ｐｆ）2＊ｋ／２）は、始点濃度値ＣｓとしてレジスタＲ２３に格納される。
【００７３】
また、始点座標値Ｐおよびシェーディング長ｓが加算器Ｇ１９に入力されると、加算器Ｇ１９にて、始点座標値Ｐとシェーディング長ｓとが加算され、その加算結果（Ｐ＋ｓ）がレジスタＲ４０に格納される。そして、レジスタＲ４０に格納された加算結果（Ｐ＋ｓ）は整数部小数部分離器Ｇ２０に入力され、整数部小数部分離器Ｇ２０にて、加算結果（Ｐ＋ｓ）が整数部Ｅｉと小数部Ｅｆに分離される。そして、加算結果（Ｐ＋ｓ）から分離された小数部ＥｆはレジスタＲ４１に格納される。
【００７４】
そして、レジスタＲ４１に格納された加算結果（Ｐ＋ｓ）の小数部Ｅｆは、乗算器Ｇ２１に出力される。そして、乗算器Ｇ２１にて、加算結果（Ｐ＋ｓ）の小数部Ｅｆが自乗され、その乗算結果Ｅｆ2がレジスタＲ４２に格納される。
そして、レジスタＲ４２に格納された乗算結果Ｅｆ2は、乗算器Ｇ２２に出力される。そして、乗算器Ｇ２２にて、レジスタＲ４２から出力された乗算結果Ｅｆ2とレジスタＲ３９から出力されたシフト演算結果ｋ／２とが乗算され、その乗算結果（Ｅｆ2＊ｋ／２）がレジスタＲ４３に格納される。
【００７５】
そして、レジスタＲ４３に格納された乗算結果（Ｅｆ2＊ｋ／２）は、減算器Ｇ２３に出力される。そして、減算器Ｇ２３にて、乗算結果（Ｅｆ2＊ｋ／２）が１から減算され、その減算結果（１−（Ｅｆ2＊ｋ／２））がレジスタＲ４４に格納される。そして、レジスタＲ４４に格納された減算結果（１−（Ｅｆ2＊ｋ／２））が終点濃度値ＣｅとしてレジスタＲ２４に格納される。
【００７６】
また、整数部小数部分離器Ｇ２０にて分離された整数部ＥｉはレジスタＲ４５に格納され、レジスタＲ４５に格納された整数部Ｅｉは、終点座標整数値ＥｉとしてレジスタＲ２５に格納される。
これにより、濃度値Ｃの計算に用いられる始点座標整数値Ｐｉ、濃度開始値Ｃｔ、始点濃度値Ｃｓ、終点濃度値Ｃｅおよび終点座標整数値Ｅｉをハードウェアにて算出させることが可能となるとともに、これらの算出処理を並列に行うことが可能となり、アンチエイリアス処理を高速化することができる。
【００７７】
図１２は、図７の状態遷移モジュールＭ２の概略構成を示すブロック図である。なお、図１２のブロックＡでは、状態識別子Ｓｔａｔが偶数の時はそのままとされ、状態識別子Ｓｔａｔが奇数の時は１だけ加算される。また、図１２のブロックＢでは、座標値Ｘ´が始点座標整数値Ｐｉまたは終点座標整数値Ｅｉに等しくなった時だけ状態識別子Ｓｔａｔの下１ビットを１にすることにより、シェーディングの開始および終了を通知することができる。
【００７８】
すなわち、図１２において、状態遷移モジュールＭ２には、下位１ビット分離器Ｇ３１、加算器Ｇ３２、シフト演算器Ｇ３３、論理和演算器Ｇ３４、Ｇ３５およびインクリメント器Ｇ３６、セレクタＨ１〜Ｈ３およびレジスタＲ６１〜Ｒ６７が設けられている。なお、状態識別子Ｓｔａｔは３ビット分の２進数で表現され、レジスタＲ６３、Ｒ６４、Ｒ６７には“０００”が格納され、レジスタＲ６５、Ｒ６６には“００１”が格納されているものとする。
【００７９】
そして、下位１ビット分離器Ｇ３１には状態識別子Ｓｔａｔが入力され、セレクタＨ３には始点座標整数値Ｐｉが入力され、セレクタＨ４には終点座標整数値Ｅｉが入力され、セレクタＨ１にはリセット信号Ｒｅｓｅｔが入力され、セレクタＨ２にはリセット信号Ｒｅｓｅｔおよび座標初期値Ｘ０が入力され、インクリメント器Ｇ３６には座標値Ｘが入力される。また、レジスタＲ６３に格納されている“０００”はセレクタＨ１に入力され、レジスタＲ６４に格納されている“０００”およびレジスタＲ６５に格納されている“００１”はセレクタＨ３に入力される。
【００８０】
そして、インクリメント器Ｇ３６に座標値Ｘが入力されると、座標値Ｘを１だけインクリメントし、インクリメントされた座標値ＸをセレクタＨ２に出力する。そして、セレクタＨ２は、リセット信号Ｒｅｓｅｔが１の場合、座標値Ｘ´として座標初期値Ｘ０を選択し、その座標値Ｘ´をレジスタＲ６６に格納する。一方、リセット信号Ｒｅｓｅｔが１でない場合、インクリメントされた座標値Ｘ´を座標値Ｘとして選択し、その座標値Ｘ´をレジスタＲ６６に格納する。そして、レジスタＲ６６に格納された座標値Ｘ´はレジスタＲ２７に格納され、座標値Ｘとしてインクリメント器Ｇ３６に戻される。また、レジスタＲ６６に格納された座標値Ｘ´はセレクタＨ３にも出力される。
【００８１】
一方、下位１ビット分離器Ｇ３１に状態識別子Ｓｔａｔが入力されると、下位１ビット分離器Ｇ３１は、状態識別子Ｓｔａｔの下位１ビットを分離し、状態識別子Ｓｔａｔの下位１ビットをレジスタＲ６２に格納するとともに、状態識別子Ｓｔａｔの上位２ビットをレジスタＲ６１に格納する。
そして、レジスタＲ６２に格納された状態識別子Ｓｔａｔの下位１ビットはシフト演算器Ｇ３３に入力される。そして、シフト演算器Ｇ３３にて、状態識別子Ｓｔａｔの下位１ビットのシフト演算が行われ、そのシフト演算結果が加算器Ｇ３２に出力される。また、レジスタＲ６１に格納された状態識別子Ｓｔａｔの上位２ビットは加算器Ｇ３２に出力される。
【００８２】
そして、状態識別子Ｓｔａｔの下位１ビットのシフト演算結果と、状態識別子Ｓｔａｔの上位２ビットが加算器Ｇ３２に出力されると、これらの値が加算器Ｇ３２にて加算され、この加算結果がレジスタＲ６７に格納される。そして、レジスタＲ６７に格納された加算結果がセレクタＨ１に出力される。
そして、セレクタＨ１は、リセット信号Ｒｅｓｅｔが１の場合、レジスタＲ６３に格納されている“０００”を選択し、“０００”を論理和演算器Ｇ３４に出力する。一方、リセット信号Ｒｅｓｅｔが０の場合、レジスタＲ６７に格納されている加算結果を選択し、レジスタＲ６７に格納されている加算結果を論理和演算器Ｇ３４に出力する。
【００８３】
また、セレクタＨ３は、レジスタＲ６８から出力された座標値Ｘ´を始点座標整数値Ｐｉおよび終点座標整数値Ｅｉと比較する。そして、座標値Ｘ´が始点座標整数値Ｐｉまたは終点座標整数値Ｅｉと一致する場合、レジスタＲ６５に格納されている“００１”を選択し、“００１”を論理和演算器Ｇ３４に出力する。一方、座標値Ｘ´が始点座標整数値Ｐｉおよび終点座標整数値Ｅｉのいずれとも一致しない場合、レジスタＲ６５に格納されている“０００”を選択し、“０００”を論理和演算器Ｇ３４に出力する。
【００８４】
そして、セレクタＨ１にて選択された値と、セレクタＨ３にて選択された値とが論理和演算器Ｇ３４に入力されると、論理和演算器Ｇ３４にて、セレクタＨ１にて選択された値と、セレクタＨ３にて選択された値との論理和演算が行われ、その論理和演算結果が状態識別子Ｓｔａｔ´としてレジスタＲ２６に格納される。そして、レジスタＲ２６に格納された状態識別子Ｓｔａｔ´は、状態識別子Ｓｔａｔとして下位１ビット分離器Ｇ３１に戻される。
【００８５】
これにより、座標値Ｘが始点座標整数値Ｐｉと一致した時に状態識別子Ｓｔａｔを“００１”に遷移させ、座標値Ｘが終点座標整数値Ｅｉと一致した時に状態識別子Ｓｔａｔを“０１１”に遷移させ、座標値Ｘが始点座標整数値Ｐｉと終点座標整数値Ｅｉとの間にある場合、状態識別子Ｓｔａｔを“０１０”として一定に保つことができる。このため、状態識別子Ｓｔａｔに基づいて、始点濃度値Ｃｓ、終点濃度値Ｃｅまたは濃度開始値Ｃｔとフィードバック値Ｃｐとの加算結果のいずれかを選択させることが可能となり、状態遷移モジュールＭ２のハードウェア化を可能として、アンチエイリアス処理を高速化することができる。
【００８６】
図１３は、図７の濃度値計算モジュールＭ３の概略構成を示すブロック図、図１４は、状態識別子Ｓｔａｔと濃度値Ｃとの関係を示す図、図１５は、図１３のブロックＡ、Ｂへの入力値の変化を示す図である。なお、図１３のブロックＡでは、濃度変化量Ｃｄに基づいてフィードバック値Ｃｐ´が算出され、図１３のブロックＢでは、図１２の状態遷移モジュールＭ２にて生成された状態識別子Ｓｔａｔに基づいて、濃度値Ｃが出力される。
【００８７】
すなわち、図１３において、濃度値計算モジュールＭ３には、加算器Ｇ４１、下位２ビット目選択器Ｇ４２、セレクタＨ１１、Ｈ１２およびレジスタＲ７１〜Ｒ７３が設けられている。なお、レジスタＲ７１には“０”が格納され、レジスタＲ７２には“１”が格納されているものとする。
そして、加算器Ｇ４１にはフィードバック値Ｃｐおよび濃度変化量Ｃｄが入力され、セレクタＨ１２には濃度開始値Ｃｔが入力され、セレクタＨ１１には始点濃度値Ｃｓおよび終点濃度値Ｃｅが入力され、下位２ビット目選択器Ｇ４２には状態識別子Ｓｔａｔが入力される。また、レジスタＲ７１に格納されている“０”およびレジスタＲ７２に格納されている“１”はセレクタＨ１１に入力される。
【００８８】
そして、加算器Ｇ４１にフィードバック値Ｃｐおよび濃度変化量Ｃｄが入力されると、加算器Ｇ４１にて、フィードバック値Ｃｐと濃度変化量Ｃｄとが加算され、その加算結果がセレクタＨ１１、Ｈ１２に入力される。
また、下位２ビット目選択器Ｇ４２に状態識別子Ｓｔａｔが入力されると、下位２ビット目選択器Ｇ４２にて、状態識別子Ｓｔａｔの下位２ビット目が選択される。そして、下位２ビット目選択器Ｇ４２にて選択された状態識別子Ｓｔａｔの下位２ビット目は、レジスタＲ７３に格納され、レジスタＲ７３に格納された状態識別子Ｓｔａｔの下位２ビット目はセレクタＨ１２に出力される。
【００８９】
そして、状態識別子Ｓｔａｔの下位２ビット目が０の場合、セレクタＨ１２は濃度開始値Ｃｔを選択して、その濃度開始値ＣｔをレジスタＲ２８に格納する。一方、状態識別子Ｓｔａｔの下位２ビット目が１の場合、加算器Ｇ４１から出力された加算結果を選択して、その加算結果をフィードバック値Ｃｐ´としてレジスタＲ２８に格納する。そして、レジスタＲ２８に格納されたフィードバック値Ｃｐ´は、フィードバック値Ｃｐとして加算器Ｇ４１に出力される。
【００９０】
また、セレクタＨ１１に状態識別子Ｓｔａｔが入力されると、セレクタＨ１１は、状態識別子Ｓｔａｔの状態を判断する。そして、状態識別子Ｓｔａｔが“０００”の場合、レジスタＲ７１に格納されている濃度値０がセレクタＨ１１にて選択され、濃度値０が濃度値ＣとしてレジスタＲ１０´に格納される。また、状態識別子Ｓｔａｔが“００１”の場合、レジスタＲ２２に格納されている始点濃度値ＣｓがセレクタＨ１１にて選択され、始点濃度値Ｃｓが濃度値ＣとしてレジスタＲ１０´に格納される。また、状態識別子Ｓｔａｔが“０１０”の場合、加算器Ｇ４１から出力されたフィードバック値Ｃｐと濃度変化量Ｃｄとの加算結果がセレクタＨ１１にて選択され、フィードバック値Ｃｐと濃度変化量Ｃｄとの加算結果が濃度値ＣとしてレジスタＲ１０´に格納される。また、状態識別子Ｓｔａｔが“０１１”の場合、レジスタＲ２３に格納されている終点濃度値ＣｅがセレクタＨ１１にて選択され、終点濃度値Ｃｅが濃度値ＣとしてレジスタＲ１０´に格納される。また、状態識別子Ｓｔａｔが“１００”の場合、レジスタＲ７２に格納されている濃度値１がセレクタＨ１１にて選択され、濃度値１が濃度値ＣとしてレジスタＲ１０´に格納される。
【００９１】
これにより、シェーディング部分にかかる各画素の濃度値を厳密に算出することが可能となるとともに、各画素の濃度値Ｃを座標値Ｘに対応させて出力させることが可能となる。このため、回路規模の増大を抑制しつつ、アンチエイリアス処理のハードウェア化を図ることが可能となり、コストアップを抑制しつつ、アンチエイリアス処理を高速化することができる。
【図面の簡単な説明】
【００９２】
【図１】本発明の一実施形態に係る情報表示装置の概略構成を示すブロック図。
【図２】図１の直線描画部１５で描画される直線のパラメータを説明する図。
【図３】アンチエイリアス処理された直線の一例を示す図
【図４】アンチエイリアス処理される直線のパラメータを説明する図。
【図５】図１の色情報算出部２２の概略構成を示すブロック図。
【図６】本発明の一実施形態に係るアンチエイリアス処理を説明する図。
【図７】図５のシェーディングモジュールの概略構成を示すブロック図。
【図８】本発明の一実施形態に係る濃度値の算出方法を説明する図。
【図９】図５の色合成モジュールＭ０の概略構成を示すブロック図。
【図１０】本発明の一実施形態に係る色情報と濃度値との関係を示す図。
【図１１】図７の定数計算モジュールＭ１の概略構成を示すブロック図。
【図１２】図７の状態遷移モジュールＭ２の概略構成を示すブロック図。
【図１３】図７の濃度値計算モジュールＭ３の概略構成を示すブロック図。
【図１４】一実施形態に係る状態識別子Ｓｔａｔと濃度値Ｃとの関係を示す図。
【図１５】図１３のブロックＡ、Ｂへの入力値の変化を示す図。
【図１６】従来の塗り潰し図形内のアンチエイリアス処理の方法を示す図。
【符号の説明】
【００９３】
１  ＣＰＵ、２  電源コントローラ、３  電源、４  メモリ、５  外部記憶コントローラ、６  外部記憶装置、７  ＶＲＡＭ、８  表示コントローラ、９  ディスプレイ、１０  グラフィックスエンジン、１１  楕円描画部、１２  曲線描画部、１３  文字描画部、１４  多角形描画部、１５  直線描画部、１６  塗りつぶし部、１７  グラフィックエンジンコントローラ、１８、１９  バス、２１  パラメータ算出部、２２  色情報算出部、Ｒ１〜Ｒ１２、Ｒ３´、Ｒ９´、Ｒ９´´、Ｒ９´´´、Ｒ１０´、Ｒ１２´、Ｒ１２´´、Ｒ２１〜Ｒ２８、Ｒ３１〜Ｒ４５、Ｒ６１〜Ｒ６７、Ｒ７１〜Ｒ７３、Ｒ１０１〜Ｒ１０８  レジスタ、ＬＭ、ＲＭ  シェーディングモジュール、Ｍ０  色合成モジュール、Ｇ１、Ｇ１３、Ｇ１５、Ｇ２３、Ｇ１０１、Ｇ１０２  減算器、Ｍ１  定数計算モジュール、Ｍ２  状態遷移モジュール、Ｍ３  濃度値計算モジュール、Ｇ１１、Ｇ２０  整数部小数部分離器、Ｇ１２、Ｇ１８、Ｇ３３  シフト演算器、Ｇ１４、Ｇ１６、Ｇ１７、Ｇ２１、Ｇ２２、Ｇ１０３、Ｇ１０５  乗算器、Ｇ１９、Ｇ３２、Ｇ４１、Ｇ１０４、Ｇ１０６  加算器、Ｇ３１  下位ビット分離器、Ｇ３４、Ｇ３５  論理和演算器、Ｇ３６  インクリメント器、Ｈ１〜Ｈ４、Ｈ１１、Ｈ１２、Ｈ１０１、Ｈ１０２、  セレクタ、Ｇ４２  下位２ビット目選択器
【図１】
2005250662.tif 000003
【図２】
2005250662.tif 000004
【図３】
2005250662.tif 000005
【図４】
2005250662.tif 000006
【図５】
2005250662.tif 000007
【図６】
2005250662.tif 000008
【図７】
2005250662.tif 000009
【図８】
2005250662.tif 000010
【図９】
2005250662.tif 000011
【図１０】
2005250662.tif 000012
【図１１】
2005250662.tif 000013
【図１２】
2005250662.tif 000014
【図１３】
2005250662.tif 000015
【図１４】
2005250662.tif 000016
【図１５】
2005250662.tif 000017
【図１６】
2005250662.tif 000018