(57)【特許請求の範囲】
【請求項１】
二次元状に配置された画素に所定の幅を有し主軸方向に延在する線分をレンダリングする画像処理装置において，
前記線分と背景との境界上に前記線分の始点から等間隔の点を求め，前記境界に位置し前記点をそれぞれ含む境界画素のうち，第１の境界画素における前記点の副軸方向の距離に基づいて当該第１の境界画素の色データを求める画素データ算出手段と，
前記線分の傾きに基づき主軸方向に隣接する前記境界画素間の色の濃度差を求める濃度差算出手段とを有し，
前記画素データ算出手段は，前記第１の境界画素の色データと前記濃度差に基づき，前記第１の境界画素に主軸方向に順次隣接する第２の境界画素の色データを求めることを特徴とする画像処理装置。
【請求項２】
請求項１において，
前記濃度差算出手段は，前記線分の傾きに所定の基準濃度を乗算して前記濃度差を算出することを特徴とする画像処理装置。
【請求項３】
請求項１または２において，
前記画素データ算出手段は，前記第１の境界画素の色データに前記濃度差を順次加算して前記第２の境界画素の色データを求めることを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，二次元状に配置された画素に所定の幅を有し主軸方向に延在する線分をレンダリングする画像処理装置に関し，特に，線分と背景との境界に位置する境界画素の色データを，当該境界画素における前記線分部分の面積に応じて求める画像処理装置に関する。
【背景技術】
【０００２】
ラスタスキャン型のＣＲＴディスプレイは，格子状に画素が配置された表示画面をスキャンして，画素の集合として図形などの画像を表現する。よって，斜線や曲線は画素による階段状に表示されるため，ジャギーと呼ばれるギザギザが現れてしまう。このようなジャギーを目立たせなくするためのアンチエイリアス手法が種々提案されている。
【０００３】
アンリエイリアス手法の一類型としては，画像処理装置がＣＲＴディスプレイに供給するビットマップ画像データをフレームメモリに展開した段階で，斜線や曲線を構成する画素の色の濃度を調整することにより，ディスプレイに表示された時点でジャギーを目立たなくさせる手法がある。
【０００４】
例えば，特許文献１に記載されている画像処理方法では，描画する図形の座標にオフセットを与え，表示画面と同面積の複数の領域において位置をずらして同一の図形をメモリ上に描画する。そして，描画された図形を合成し，重複した画素の色の濃度を平均することにより，斜線などを構成する境界画素の色の濃度を求め，ジャギーが目立たないアンチエイリアス効果を持った画像を得る。
【０００５】
また，シリコングラフィクス社が提供する図形描画用のＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）であるＯｐｅｎＧＬ（登録商標）によれば，一定の幅を持った斜線などを描画するときは，境界部分の画素における斜線部が占める面積の比率により，その画素の色の濃度を決定する。そのようにして，境界の画素を中間調の色で表現することで，ジャギーが目立たないアンチエイリアス効果を持った画像を得る。
【特許文献１】特開２００３−３０３３４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら，上記のような従来技術では，複数の描画結果の平均計算や，境界画素における斜線部分の面積計算など，複雑な計算を伴う。よって，そのための描画プロセッサなどの画像処理装置は回路規模が大きくなるのでコスト高となり，しかも描画処理に時間がかかるという問題があった。
【０００７】
そこで，本発明の目的は，アンチエイリアス処理においてより小規模な回路で高速に境界画素の色の濃度を求めることができる画像処理装置を提供することにある。
【課題を解決するための手段】
【０００８】
上記の目的を達成するために，本発明の第１の側面における画像処理装置は，二次元状に配置された画素に所定の幅を有し主軸方向に延在する線分をレンダリングする画像処理装置であって，前記線分と背景との境界に位置する境界画素の色データを，当該境界画素における前記線分部分の面積に応じて求める画素データ算出手段と，前記線分の傾きに基づき主軸方向に隣接する前記境界画素間の色の濃度差を求める濃度差算出手段とを有し，前記画素データ算出手段は，色データが求められた第１の境界画素の色データと前記濃度差に基づき，前記第１の境界画素と主軸方向に隣接する第２の境界画素の色データを求めることを特徴とする。
【０００９】
また，上記側面の好ましい実施例における画像処理装置は，前記第１の境界画素の色データに前記濃度差を加算して前記第２の境界画素の色データを求める処理を繰り返すことを特徴とする。
【発明の効果】
【００１０】
上記画像処理装置によれば，アンチエイリアス処理を施す境界の画素の個々について線分の面積に応じた色の濃度を求めるのではなく，境界の画素の１つについて色の濃度を求めておけば，他の境界画素の色の濃度は一定の濃度差を繰り返し加算することにより求めることができる。よって，より小規模な回路で高速な処理が可能となる。
【発明を実施するための最良の形態】
【００１１】
以下，図面にしたがって本発明の実施の形態について説明する。但し，本発明の技術的範囲はこれらの実施の形態に限定されず，特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【００１２】
図１は，アンチエイリアス処理の概要を説明する図である。ＯｐｅｎＧＬによって描画された図形のアンチエイリアス処理を例としている。
【００１３】
ＯｐｅｎＧＬは描画関数やコマンドのライブラリであり，描画ソフトなどのアプリケーションソフトに対してＡＰＩを提供している。ＯｐｅｎＧＬは，アプリケーションソフト側からユーザ入力やファイル読み込みにより得た描画図形の入力データを関数の引数として受け取り，ドライバを介して描画プロセッサなどの画像処理装置に描画データを送る。すると，画像処理装置では，フレームメモリ上に描画図形に対応したビットマップ画像データの展開，すなわちレンダリングを行う。
【００１４】
図１（Ａ）は，ＯｐｅｎＧＬにより二次元の格子状の画素にレンダリングされた，一定の幅と傾きを持った線分Ｓ−Ｌを例示している。描画する線分Ｓ−Ｌの始点Ｓ−Ｐの座標（ｘｓ，ｙｓ）と終点Ｅ−Ｐの座標（ｘｅ，ｙｅ），線分の幅，色成分，テクスチャ等の描画データに基づきレンダリングされたものである。線分上の各点は２次元座標で表現されるが，線分の傾きに応じて，座標の変移が大きい方を主軸とする。すなわち，線分Ｓ−Ｌは，ｘ軸を主軸とし，主軸方向に延在する一定の幅を有する線分である。
【００１５】
図１（Ｂ）は，図１（Ａ）の矢印で示した線分Ｓ−Ｌの一部の領域を拡大した図である。アンチエイリアスの対象となる境界画素を説明している。図中の正方形の格子は画素を表しており，２行６列の画素のうち線分Ｓ−Ｌと背景との境界線Ｂ−Ｌが通過する画素Ｐ１〜Ｐ６の６画素が境界画素である。なお，以降の説明において図示する画素についても，正方形の格子を用いて表現し，それぞれの１辺は１単位座標の長さとする。
【００１６】
ＯｐｅｎＧＬの仕様における原則的な処理では，境界画素には線分部分の面積比率に応じた色の濃度が与えられる。ここで，境界画素の色の濃度とは，線分が有する色と背景色との合成において，線分の色の割合のことを言う。よって，境界画素の色の濃度が高いということは，より線分の色に近い色で表現されることを意味する。
【００１７】
例えば，画素Ｐ１〜Ｐ３において線分Ｓ−Ｌが占める領域（斜線部分）の面積の比率を比べると，画素Ｐ３における比率が最も大きい。よって，境界画素Ｐ３は線分内部の画素よりも低い濃度であるが，境界画素Ｐ１，Ｐ２よりは高い濃度の色で表現される。そして，境界画素Ｐ２，Ｐ１と移動するに従い背景色の割合が増すので，線分の色がぼやけて見えることになる。そうすることにより，ディスプレイに表示されたときにジャギーが目立たなくなる。
【００１８】
しかしながら，境界画素において線分の占める面積比率を求めるには，まず線分の占める部分の面積を求めなくてはならず，場合によって計算が複雑となる。
【００１９】
例えば，境界画素Ｐ２においては，線分の占める部分である台形ＴＲ１の面積を求める計算が必要になる。そのためには，台形ＴＲ１の各頂点の座標を求めることにより底辺の長さ等を求め，さらに乗算により台形ＴＲ１の面積を求める。また，境界画素Ｐ６では，画素全体の面積から背景部分の三角形ＴＲ２の面積を減算することが必要になる。そのためには，三角形ＴＲ２の各頂点の座標を求めることにより底辺の長さ等を求め，乗算により三角形ＴＲ２の面積を求め，さらに画素の面積から減算する。
【００２０】
このように，境界画素において線分が占める部分の形状も一様ではないのでその面積を求める計算も複雑となり，画像処理上の負荷となる。そこで，かかる負荷軽減のためには，ＤＤＡ（デジタル微分解析器）により境界線Ｂ−Ｌ上の等間隔の点を求め，各点の座標を利用して境界画素における線分の面積に代替する数値を求める，より容易な計算方法が用いられる。 
【００２１】
図１（Ｃ）では，線分Ｓ−Ｌの始点Ｓ−Ｐのｘ座標「ｘｓ」から主軸であるｘ軸方向に１単位座標ずつ加算してゆき，算出されるｘ座標に対応する境界線Ｂ−Ｌ上の点をＤＤＡ加算点とする処理について説明する。境界画素Ｐ１〜Ｐ３の拡大図に，境界線Ｂ−Ｌ上にある線分Ｓ−Ｌの始点に対応するＤＤＡ点からのＤＤＡ加算点を表示している。
【００２２】
例えば，線分Ｓ−Ｌの始点Ｓ−Ｐのｘ座標「ｘｓ」に対応する境界線Ｂ−Ｌ上の点をＤＤＡｓとする。ここで，１画素の１辺の長さは１単位座標の距離に該当するので，点ＤＤＡｓのｘ座標「ｘｓ」に単位座標「１」ずつ加算し境界線Ｂ−Ｌ上にプロットしてゆくと，ｘ座標「ｘ１」〜「ｘ３」に対応してＤＤＡ加算点ＤＤＡ１〜ＤＤＡ３が求められ，それぞれの点を含む対応する１つの境界画素が特定される。すなわち，ＤＤＡ加算点ＤＤＡ１に対応する画素が境界画素Ｐ１，ＤＤＡ加算点ＤＤＡ２に対応する画素が境界画素Ｐ２，ＤＤＡ加算点ＤＤＡ３に対応する画素が境界画素Ｐ３となる。
【００２３】
このような各ＤＤＡ加算点に対応する境界画素において，線分の面積に代替する数値は次のように求めることができる。
【００２４】
まず，各境界画素において太線で描かれた，それぞれのＤＤＡ加算点を高さとする長方形を見てみる。すると，境界画素Ｐ１，Ｐ２，Ｐ３ごとの長方形の面積の比は，各画素の線分の面積の比とほぼ一致する。よって，線分の面積の代わりにこれらの長方形の面積を用いて各境界画素の色の濃度を求めたとしても，境界画素Ｐ１〜Ｐ３における色の濃度は段階的に変化することになるので，ジャギーを目立たなくさせるという効果としては十分である。よって，このような長方形の面積を計算すれば，上述した線分の面積を求める計算より単純に行うことができるので，処理負荷の軽減を図ることができる。
【００２５】
さらに，上記の長方形の面積は，各ＤＤＡ点における長方形の高さ，すなわち各ＤＤＡ点の副軸であるｙ軸方向の座標であるｙ座標の少数部分と等しい。また，これら長方形の底辺の長さは各画素の１辺の長さに等しい。よって，各画素において矢印が示す，ＤＤＡ加算点における画素内の線分部分の副軸方向の距離（以下，「ＤＤＡ加算点の副軸距離」という）ｆ１，ｆ２，ｆ３を基準として各画素の色の濃度を求めることで，さらに計算効率を良くすることができる。
【００２６】
このように，ＤＤＡ加算点を用いることにより，境界画素において線分が占める部分の形状を問わず，副軸距離という一律の尺度で色の濃度を求めることができるようになる。さらに，線分Ｓ−Ｌの傾きが一定であることに着目すれば，ＤＤＡ加算点の副軸距離の増分も一定であるので，加算によりＤＤＡ加算点ごとの副軸距離を求めることができる。
【００２７】
本実施の形態における画像処理装置は，上記のようなＤＤＡ加算点の副軸距離に応じて境界画素の色の濃度を求めるアンチエイリアス処理において，ＤＤＡ加算点の副軸距離を一定の増分を加算することによって求めるものである。さらに，後述するように，副軸距離の増分に対応した一定の色の濃度差を主軸方向に隣接する境界画素ごとに順次加算することで，境界画素の色の濃度を求めることを特徴とする。
【００２８】
図２は，上記のような本実施の形態におけるアンチエイリアス処理を行う画像処理装置を備えた描画システムの概略構成図である。ＣＰＵ１０，入力部１２，記憶部１４，ジオメトリブロック１６，レンダリングブロック１８，フレームメモリ２０，及び表示部２２がシステムバスＳ−ＢＵＳを介して接続されている。このような構成を備えたパーソナルコンピュータまたはグラフィックワークステーションに，ユーザからの入力を受ける入力装置１３が入力部１２に接続され，また描画された画像を表示する表示装置２４が表示部２２に接続されて，描画システムを構成する。
【００２９】
ＣＰＵ１０は，記憶部１４に格納された制御プログラムに従いシステムバスＳ−ＢＵＳを介して描画システムの各部の動作を制御する。また，入力部１２は，マウスその他のポインティングデバイス，もしくはキーボードなどの入力装置１３からの入力信号を受け，ＣＰＵ１０や他のブロックへ入力データとして提供する入力制御部である。
【００３０】
ジオメトリブロック１６は，入力部１２から供給される入力データを，記憶部１４に格納されたＯｐｅｎＧＬの関数を呼び出して処理し，描画データとしてレンダリングブロック１８に出力する。例えばユーザの入力に基づき一定の幅を持った線分を描画する場合には，マウス等で入力された線分の位置や色などの入力データを入力部１２から受け取り，線分の始点・終点の座標，線分の幅，色データ，テクスチャデータ等などの描画データに変換して出力する。ここで３次元画像に関する入力データは２次元画像の描画データに変換される。
【００３１】
レンダリングブロック１８は，ジオメトリブロック１６から供給された２次元画像の描画データを処理して，フレームメモリ２０に描画する図形に対応したビットマップ画像データを展開する。その際，斜線や曲線などの境界画素に対してはアンチエイリアス処理を施す。 
【００３２】
表示部２２はフレームメモリ２０に展開されたビットマップ画像データを読み出して表示信号に変換し，ＣＲＴディスプレイなどの表示装置２４に送る。そして表示装置２４は表示画面上の画素をスキャンして描画された図形を表示する。
【００３３】
以上の構成において，レンダリングブロック１８が画像処理装置に対応する。次に，図３と図４を用いて，レンダリングブロック１８において実行される図１（Ｃ）で示したＤＤＡ加算点を用いたアンチエイリアス処理について説明する。図３では，個々の境界画素ごとに，ＤＤＡ加算点の副軸距離に対し乗算を行い色の濃度を求める場合を説明し，図４では，本実施の形態の特徴である，ＤＤＡ加算点の副軸距離の増分に対応する濃度差を加算することにより境界画素の色の濃度を求める場合を，図３に対比して説明する。
【００３４】
図３は，境界画素ごとにＤＤＡ加算点の副軸距離に対し乗算を行い色の濃度を求めるアンチエイリアス処理を説明する図である。図３（Ａ）は，ｘ−ｙ軸上に一定の幅を持った線分Ｓ−Ｌの一部を拡大し，画素を格子状に表した図である。これらの画素のうち，境界線Ｂ−Ｌ上にプロットされたＤＤＡ加算点ＤＤＡ１〜ＤＤＡ６に対応する画素が境界画素Ｐ１〜Ｐ６である。さらに各ＤＤＡ加算点にはｘ座標とｙ座標を対応づけて表示している。
【００３５】
アンチエイリアス処理の手順としては，まず，ＤＤＡ加算点の座標を求める。ＤＤＡ加算点のｘ座標は，図１（Ｃ）において説明したとおりジオメトリブロック１６から提供される線分Ｓ−Ｌの始点Ｓ−Ｐの座標により求められる。すなわち，始点Ｓ−Ｐのｘ座標「ｘｓ」に対応する境界線Ｂ−Ｌ上の点を求め，ＤＤＡ加算点の始点ＤＤＡｓとする（図１（Ｃ））。この始点ＤＤＡｓのｘ座標に１単位座標を順次加算し，各ＤＤＡ加算点のｘ座標を求めることができる。
【００３６】
各ＤＤＡ加算点のｙ座標も，始点ＤＤＡｓのｙ座標に線分Ｓ−Ｌの傾き，つまりｘ座標が１座標増加するときのｙ座標の増加分を順次加算することにより求めることができる。ここで線分Ｓ−Ｌの傾きは，ジオメトリブロック１６から提供される線分Ｓ−Ｌの始点及び終点の座標から求めることができる。このように算出されたＤＤＡ加算点を含む対応する画素が，すなわち境界画素である。
【００３７】
次に，各境界画素におけるＤＤＡ加算の副軸距離を求める。図中，各境界画素内の矢印の長さｆ１〜ｆ６が，求める距離である。ここで，例えば境界画素Ｐ４〜Ｐ６において表現されているように，求める距離は，境界画素内部での副軸方向の距離であるから，ＤＤＡ加算点のｙ座標ではなく，各ＤＤＡ加算点のｙ座標の少数部分が求める距離である。よって，各ＤＤＡ加算点の副軸距離ｆ１〜ｆ６は，ＤＤＡ加算点ＤＤＡ１〜ＤＤＡ６のｙ座標，ｙ１〜ｙ６のそれぞれ小数部分を抽出することにより求めることができる。
【００３８】
そして，各ＤＤＡ加算点の副軸距離ｆ１〜ｆ６に基づき，各境界画素Ｐ１〜Ｐ６における色の濃度を求める。そのためには，各ＤＤＡ加算点の副軸距離を各境界画素の副軸方向の１辺の長さ「１」で除した割合を求める。すると，その割合に応じた比率で線分の色が背景色と合成されることとなり，アンチエイリアス効果を持つ画像を得ることができる。さらに，得られる画像にアンチエイリアス効果をどの程度持たせるかを調整する所定の係数を基準濃度として乗算することにより，アンチエイリアスの効果を調整できる。
【００３９】
上記の計算により境界画素Ｐ１〜Ｐ６の色の濃度を求める手順を表にしたものが図３（Ｂ）である。ＤＤＡ加算点の座標を求める工程１，ＤＤＡ加算点の副軸距離を求める工程２，そして，境界画素の色の濃度を求める工程３の３工程に分類してある。
【００４０】
境界画素Ｐ１の色の濃度を求める場合を例にとると，まず工程１でジオメトリブロック１６から提供された描画データに基づきＤＤＡ加算点ＤＤＡ１の座標（ｘ１，ｙ１）を求める。
【００４１】
ｘ座標「ｘ１」は，直前のＤＤＡ加算点のｘ座標「ｘ０」に単位座標１を加えることにより得られる。ｙ座標「ｙ１」についても，直前のＤＤＡ加算点のｙ座標「ｙ０」に，線分Ｓ−Ｌの傾き「△ｙ」を加えることにより得られる。このように，ＤＤＡ加算点のｘ座標は，線分Ｓ−Ｌの始点のｘ座標から単位座標１ずつ増加する等差数列として計算することができる。また，線分Ｓ−Ｌの傾き「△ｙ」も一定であるので，ｙ座標も等差数列として計算することができる。このようにしてＤＤＡ加算点ＤＤＡ１の座標を求めることにより，対応する境界画素Ｐ１が特定される。
【００４２】
そして，工程２では，ＤＤＡ加算点ＤＤＡ１のｙ座標「ｙ１」の少数部を抽出することにより，境界画素Ｐ１におけるＤＤＡ加算点ＤＤＡ１の副軸距離ｆ１が求められる。
【００４３】
さらに，工程３では，ＤＤＡ加算点ＤＤＡ１の副軸距離ｆ１に対し，基準濃度としてアンチエイリアス値の最大値「αｍａｘ」を乗算し，境界画素Ｐ１の色の濃度「α１」を求める。アンチエイリアス値の最大値とは，線分の面積が１００％である画素の色の濃度を最大値として，境界画素におけるアンチエイリアス処理の効果を調整する係数である。
【００４４】
例えば，仮に副軸距離ｆ１が「０．３」であって，アンチエイリアス値の最大値αｍａｘを「８０％」としたとする。すると，境界画素Ｐ１の色の濃度は，副軸距離ｆ１にアンチエイリアス値の最大値αｍａｘを乗算した結果「０．２４」となる。すると，境界画素Ｐ１においては線分の色の割合が「０．２４」で背景色と合成された色データが最終的に求められる。このアンチエイリアス値の最大値の値が小さければ，境界画素の色の濃度はより低く算出されるので，表示装置２４に表示された場合にジャギーはよりぼやけて見える。
【００４５】
境界画素Ｐ２〜Ｐ６についても，上記と同様の工程１〜３を繰り返すことにより，色の濃度α２〜α６が求められる。
【００４６】
上記の手順では，境界画素ごとに乗算，つまり副軸距離に対する基準濃度の乗算が発生する。しかしながら，線分の傾きが一定であることに着目すると，隣接する画素間でのＤＤＡ加算点の副軸距離は線形に変移するので，乗算ではなく加算により同じ結果を求めることができる。本実施の形態における画像処理装置は，次図で説明するように，乗算よりも処理負荷の少ない加算により境界画素の色の濃度を求めることを特徴とする。
【００４７】
図４は，ＤＤＡ加算点の副軸距離の増分に対応する濃度差を加算することにより境界画素の色の濃度を求めるアンチエイリアス処理を説明する図である。図４（Ａ）は，図３（Ａ）と同じ図に，ｘ軸方向の１単位座標の増分に対するｙ座標の増分「△ｙ」を表現する三角形ＴＲ３を対応させたものである。すなわち，各ＤＤＡ加算点におけるｙ座標は，１つ前のＤＤＡ加算点のｙ座標に，△ｙを加えたものであることを表現している。すると，主軸方向に隣接する境界画素においては，ＤＤＡ加算点の副軸距離に対応する色の濃度も次のように加算で求めることができる。
【００４８】
具体的に境界画素Ｐ２とＰ３の例で説明すると，まず境界画素Ｐ２の色の濃度「α２」と境界画素Ｐ３の濃度「α３」は，図３（Ｂ）で示したように各ＤＤＡ加算点ＤＤＡ２，ＤＤＡ３の副軸距離「ｆ２」，「ｆ３」とアンチエイリアス値の最大値「αｍａｘ」を乗算したものである。よって，次の２式が得られる。
【００４９】
α２＝ｆ２×αｍａｘ（式１）
α３＝ｆ３×αｍａｘ（式２）
ここで，（式２）と（式１）より，次の式が得られる。
【００５０】
α３―α２＝（ｆ３―ｆ２）×αｍａｘ  （式３）
すると，（式３）の右辺におけるＤＤＡ加算点ＤＤＡ３の副軸距離「ｆ３」とＤＤＡ加算点ＤＤＡ２の副軸距離「ｆ２」の差は，ｘ軸方向の１単位座標の増分に対するｙ座標の増分「△y」，つまり線分Ｓ−Ｌの傾きであるので，さらに次の式が得られる。
【００５１】
α３―α２＝△ｙ×αｍａｘ  （式４）
上記の（式４）の右辺が境界画素Ｐ２からＰ３への色の濃度の増加分であり，この値は一定である。よって，（式４）の関係を同一の境界線Ｂ−Ｌ上において主軸方向に隣接する境界画素に適用すると，主軸座標の増加に伴い濃度の増加分を加算することにより，順次境界画素の色の濃度を得ることができる。ただし，例えば境界画素Ｐ３からＰ４へ移行する場合のように，副軸座標の整数値が１単位増加する場合には，ＤＤＡ加算点ＤＤＡ４の副軸距離ｆ４，つまりｙ座標「ｙ４」の少数部分に対応するように，加算結果の下位ビットを抽出する。
【００５２】
上記の計算により境界画素Ｐ１〜Ｐ６の色の濃度を求める手順を表にしたものが図４（Ｂ）である。境界画素間の濃度の差分を求める工程１，ＤＤＡ加算点の座標を求める工程２，そして，境界画素の色の濃度を求める工程３の３工程に分類してある。
【００５３】
境界画素Ｐ１の色の濃度を求める場合を例にとると，まず工程１では，線分Ｓ−Ｌの傾き「△ｙ」にアンチエイリアス値の最大値「αｍａｘ」を乗算することで，画素間の濃度差「△α」を求める。
【００５４】
そして，工程２では，ジオメトリブロック１６から提供された描画データに基づきＤＤＡ加算点ＤＤＡ１の座標（ｘ１，ｙ１）を求める。その際，図３（Ｂ）の工程１と同じ計算を行う。
【００５５】
さらに，工程３では，ＤＤＡ加算点ＤＤＡ１の１つ前のＤＤＡ加算点に対応する境界画素の濃度「α０」に，上記濃度差「△α」を加算して境界画素Ｐ１の色の濃度「α１」を求める。
【００５６】
次に，境界画素Ｐ２の色の濃度を求める場合は，上記境界画素Ｐ１の色の濃度「α１」に，濃度差「△α」を加算するだけでよい。すなわち，工程１は初回実行すれば，その後は工程２と工程３のみでよい。以下，同様の手順で各境界画素の色の濃度α３〜α６が求められる。
【００５７】
以上のように，図３で示した場合のような基準濃度の乗算は境界画素ごとにする必要はなく初回だけ行えばよいので，加算の繰り返しにより境界画素の色の濃度を求めることができる。
【００５８】
以下においては，上述した２種類の処理，すなわち個々の境界画素ごとに乗算を行い色の濃度を求める処理と，濃度差を加算することにより境界画素の色の濃度を求める処理とに対応するレンダリングブロック１８内の構成を比較する。そして，それぞれの構成による処理速度を比較する。
【００５９】
図５は，レンダリングブロック１８内の構成を説明する図である。図５（Ａ）の構成は図３で示した境界画素ごとに乗算を用いて色の濃度を求めるアンチエイリアス処理に対応し，図５（Ｂ）の構成は図４で示した境界画素の色の濃度を加算で求めるアンチエイリアス処理に対応する。各構成においては，実行される処理を記してある。
【００６０】
図５（Ａ）の構成では，レンダリングブロック１８内に，セットアップブロック３１，ＤＤＡ加算部３０，画素データ処理部３２，副軸距離算部３４，及び濃度算出部３６が設けられ，各ブロックには基準クロックＣＬＫが不図示のクロック発生器から与えられる。
【００６１】
まず，セットアップブロック３１は，ジオメトリブロック１６から描画データＮＤとして，線分Ｓ−Ｌの始点の座標（ｘｓ，ｙｓ），終点の座標（ｘｅ，ｙｅ），線分Ｓ−ＬのＲＧＢ色空間での色データ（Ｒｓ，Ｇｓ，Ｂｓ）等を受け取る。そして線分Ｓ−Ｌの始点の座標（ｘｓ，ｙｓ）と終点の座標（ｘｅ，ｙｅ）から，線分Ｓ−Ｌの傾き「△ｙ」を求める。
【００６２】
次に，ＤＤＡ加算部３０は，セットアップブロック３１から線分Ｓ−Ｌの始点の座標（ｘｓ，ｙｓ），終点の座標（ｘｅ，ｙｅ），線分Ｓ−ＬのＲＧＢ色空間での色データ（Ｒｓ，Ｇｓ，Ｂｓ）に加えて線分Ｓ−Ｌの傾き「△ｙ」等を受け取る。これらデータに基づき，線分Ｓ−Ｌの始点に対応するＤＤＡ点の始点から「ｎ」番目のＤＤＡ加算点ＤＤＡｎの座標（ｘｎ，ｙｎ）を加算により求める。
【００６３】
次に，副軸距離算出部３４は，ＤＤＡ加算部３０により算出されたＤＤＡ加算点ＤＤＡｎのｙ座標「ｙｎ」の小数部を抽出し，ＤＤＡ加算点ＤＤＡｎの副軸距離「ｆｎ」を算出する。
【００６４】
次に，濃度算出部３６は，副軸距離算出部３４により算出された副軸距離「ｆｎ」を受け取り，アンチエイリアス値の最大値「αｍａｘ」を乗算することにより，ＤＤＡ加算点ＤＤＡｎに対応する境界画素の色の濃度「αｎ」を算出する。算出が終了したら，ＤＤＡ加算部３０に終了信号ＥＳを送るとともに，画素データ処理部３２に濃度「αｎ」を渡す。
【００６５】
そして，ＤＤＡ加算部３０は，濃度算出部３６からの終了信号ＥＳを受け取ってから，画素データ処理部３２にＤＤＡ加算点ＤＤＡｎの座標（ｘｎ，ｙｎ）等を出力する。
【００６６】
そして，画素データ処理部３２は，ＤＤＡ加算部３０からはＤＤＡ加算点ＤＤＡｎの座標（ｘｎ，ｙｎ）や色データ（Ｒｓ，Ｇｓ，Ｂｓ）等を，濃度算出部３６からはＤＤＡ加算点ＤＤＡｎに対応する境界画素の色の濃度「αｎ」を受け取り，ＤＤＡ加算点ＤＤＡｎに対応する境界画素の色データ，つまりＲＧＢ階調値（Ｒｎ，Ｇｎ，Ｂｎ）を，ジオメトリブロック１６から受け取った色データ（Ｒｓ，Ｇｓ，Ｂｓ）と濃度「αｎ」に基づき算出する。そして，算出結果をフレームメモリ２０に出力してビットマップ画像データで展開する。
【００６７】
図５（Ａ）の構成においては，以上の処理が境界画素毎に実行され，かつ，ＤＤＡ加算部３０においては濃度算出部３６からの終了信号ＥＳの待ち時間が生じている。
【００６８】
一方，図５（Ｂ）の構成では，レンダリングブロック１８内に，セットアップブロック３１，ＤＤＡ加算部３０，画素データ処理部３２，及び濃度差算出部３８が設けられ，各ブロックには基準クロックＣＬＫが不図示のクロック発生器から与えられる。
【００６９】
セットアップブロック３１は，図５（Ａ）で説明した処理を行い，ＤＤＡ加算部３０へ線分Ｓ−Ｌの始点の座標（ｘｓ，ｙｓ），終点の座標（ｘｅ，ｙｅ），線分Ｓ−ＬのＲＧＢ色空間での色データ（Ｒｓ，Ｇｓ，Ｂｓ）等を出力し，それと同時に濃度差算出部３８へは線分Ｓ−Ｌの傾き「△ｙ」を出力する。
【００７０】
すると，まず濃度差算出部３８では，線分の傾き「△ｙ」に対しアンチエイリアス値の最大値「αｍａｘ」を乗算し，最初に濃度差「△α」を算出する。
【００７１】
次にＤＤＡ加算部３０では，セットアップブロック３１から提供されたデータと，濃度差算出部から提供される濃度差「△α」に基づき，加算の一環として，ＤＤＡ加算点ＤＤＡｎの座標（ｘｎ，ｙｎ），及び色の濃度「αｎ」を算出する。そして，算出結果を画素データ処理部３２に送り，画素データ処理部３２はこれらのデータに基づきフレームメモリ２０にビットマップ画像データを展開する。
【００７２】
以上のとおり，図５（Ａ）の構成と比べると，図５（Ｂ）の構成は濃度算出部３６という乗算回路を省略することができるので，回路規模をより小さくすることが可能となる。次に，各構成の処理速度を比較する。
【００７３】
図６は，レンダリングブロック１８の動作を説明するタイミングチャート図である。図６（Ａ）のチャートは図５（Ａ）の構成に，図６（Ｂ）のチャートは図５（Ｂ）の構成に対応する。上段に示すＣＬＫは，基準クロックＣＬＫを表しており，チャートの表示は，各構成部におけるクロック単位の処理を表している。
【００７４】
図６（Ａ）では，図５（Ａ）の構成でセットアップブロック３１による線分Ｓ−Ｌの傾き「△ｙ」を求める処理を終えた後の，ＤＤＡ加算部３０，画素データ処理部３２，副軸距離算部３４，及び濃度算出部３６の処理を表している。
【００７５】
ＤＤＡ加算点ＤＤＡ１の処理を例にすると，図に示すとおり，基準クロックの１クロック目で，ＤＤＡ加算部３０における座標（ｘ１，ｙ２）を求める加算処理と，副軸距離算出部３４における副軸座標「ｙ１」からの小数部「ｆ１」抽出処理が行われる。そして，副軸距離算出部３４からの終了信号を受け取って，２クロック目で濃度算出部３６でＤＤＡ加算点ＤＤＡ１に対応する境界画素の色の濃度を求める乗算が行われる。さらに，濃度算出部３６からの計算結果を受けて画素データ処理部３２がフレームメモリ２０へのビットマップ画像データ展開を行うのは，３クロック目ということになる。
【００７６】
また，図５（Ａ）の構成では，副軸距離算出部３４と濃度算出部３６の処理がＤＤＡ加算点ごとに繰り返されることになる。
【００７７】
一方，図６（Ｂ）では，図５（Ｂ）の構成でセットアップブロック３１による線分Ｓ−Ｌの傾き「△ｙ」を求める処理を終えた後の，ＤＤＡ加算部３０，画素データ処理部３２，及び濃度差算出部３８の処理を表している。
【００７８】
ＤＤＡ加算点ＤＤＡ１の処理を例にすると，図に示すとおり，基準クロックの１クロック目で，濃度算出部３８における濃度差「△α」を求める乗算処理と，ＤＤＡ加算部３０における座標（ｘ１，ｙ２）の加算処理と濃度差「△α」の加算処理が同時に行われる。そして，２クロック目で画素データ処理部３２がフレームメモリ２０へのビットマップ画像データ展開を行うことができる。
【００７９】
さらに，図５（Ｂ）の構成では，濃度算出部３８の乗算処理は１回だけ行えば，その乗算結果を繰り返し用いて毎クロックＤＤＡ加算処理の一環として画素データ処理部３２に提供する境界画素のデータを算出できる。よって，図５（Ａ）の構成より高速な処理が可能となる。
【００８０】
なお，境界画素における面積比が線形に変化するような線分であれば，その線分が多角形などの図形の一部を構成する場合であっても，上述したアンチエイリアス処理を行うことができる。
【００８１】
以上のとおり，本実施の形態における画像処理装置によれば，境界画素にアンチエイリアス処理を施す際に，１つの境界画素の色の濃度を求めておけば，一定の濃度差を加算することで主軸方向に隣接する境界画素の色の濃度を順次求めることができる。よって，画素毎に色の濃度を求める乗算を行う場合と比べて，より小規模な回路でかつより高速な処理が可能となる。  
【図面の簡単な説明】
【００８２】
【図１】アンチエイリアス処理の概要を説明する図である。
【図２】本実施の形態におけるアンチエイリアス処理を行う画像処理装置を備えた描画システムの概略構成図である。
【図３】境界画素ごとにＤＤＡ加算点の副軸距離に対し乗算を行い色の濃度を求めるアンチエイリアス処理を説明する図である。
【図４】ＤＤＡ加算点の副軸距離の増分に対応する濃度差を加算することにより境界画素の色の濃度を求めるアンチエイリアス処理を説明する図である。
【図５】レンダリングブロック１８内の構成を説明する図である。
【図６】レンダリングブロック１８の動作を説明するタイミングチャート図である。
【符号の説明】
【００８３】
１８：  レンダリングブロック ＤＤＡ１：ＤＤＡ加算点
Ｐ１：  境界画素                    ｆ１：    ＤＤＡ加算点の副軸距離
【図１】
0004749868.tif 000002
【図２】
0004749868.tif 000003
【図３】
0004749868.tif 000004
【図４】
0004749868.tif 000005
【図５】
0004749868.tif 000006
【図６】
0004749868.tif 000007