(57)【要約】【課題】図形のアンチエイリアシング処理を高速化でき、アンチエイリアシングの効果のレベルを自由に設定することのできる画像処理装置を提供する。【解決手段】背景の画像データが展開されたフレームバッファ２２上に図形を描画するとき、図形の輪郭に接する背景の部分の第１のピクセルの色と、この第１のピクセルに接する図形の輪郭部分の第２のピクセルの色との中間色を計算して中間色保持領域２５に保持する。そして、図形の輪郭に沿って連続する、上記第１のピクセルを含む背景の部分のＮ個のピクセルの色を、中間色保持領域２５に保持された中間色でそれぞれ置き換える。Ｎは任意に決められた２以上の整数である。これにより図形にアンチエイリアシングを施す際の中間色の計算回数が減り、高速描画を実現できる。【選択図】      図７
2004227338.tif 000002
【特許請求の範囲】
【請求項１】
背景とこの背景上の図形とを含む画像データをピクセル単位で格納するフレームバッファと、
前記図形の輪郭に接する前記背景の部分の第１のピクセルの色とこの第１のピクセルに接する前記図形の輪郭部分の第２のピクセルの色との中間色を計算する中間色計算手段と、
この中間色計算手段により算出された中間色を記憶する中間色記憶手段と、
前記図形の輪郭に沿って連続する前記第１のピクセルを含む背景の部分の複数のピクセルの値を前記中間色記憶手段に記憶された共通の前記中間色でそれぞれ前記フレームバッファ上で置き換える色置換手段と
を具備することを特徴とする画像処理装置。
【請求項２】
前記色置換手段は、前記中間色記憶手段に記憶された前記中間色を予め決められた回数を上限として、前記図形の輪郭に沿って連続する前記第１のピクセルを含む背景の部分の複数のピクセルの値との置き換えに使用し、前記中間色計算手段は前記中間色記憶手段に記憶された前記中間色の使用回数が前記上限を超えたところで前記中間色の再計算を行うことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
背景の画像データが展開された前記フレームバッファ上に直線を描画するとき、前記中間色計算手段は、当該直線の傾きに基づいて、前記中間色の計算対象とすべき前記第１のピクセルと前記第２のピクセルとの組み合わせを水平方向に隣接するものどうしと、垂直方向に隣接するものどうしとの間で切り替えることを特徴とする請求項１に記載の画像処理装置。
【請求項４】
背景の画像データが展開された前記フレームバッファ上に前記図形を描画するとき、前記図形の一部の輪郭に接する前記背景の部分のピクセルの色を既定の色で置き換えて影付けを行う影付け手段を有することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
背景とこの背景上の図形とを含む画像データをピクセル単位で格納するフレームバッファを含む記憶部と、処理演算部とを具備し、
前記処理演算部は、前記図形の輪郭に接する前記背景の部分の第１のピクセルの色とこの第１のピクセルに接する前記図形の輪郭部分の第２のピクセルの色との中間色を計算して前記記憶部に記憶し、前記図形の輪郭に沿って連続する前記第１のピクセルを含む背景の部分の複数のピクセルの値を前記記憶部に記憶された共通の前記中間色でそれぞれ前記フレームバッファ上で置き換えることを特徴とする画像処理方法。
【請求項６】
前記処理演算部は、前記記憶部に記憶された前記中間色を予め決められた回数を上限として、前記図形の輪郭に沿って連続する前記第１のピクセルを含む背景の部分の複数のピクセルの値との置き換えに使用し、前記中間色の使用回数が前記上限を超えたところで前記中間色の再計算を行うことを特徴とする請求項５に記載の画像処理方法。
【請求項７】
背景の画像データが展開された前記フレームバッファ上に直線を描画するとき、前記処理演算部は、当該直線の傾きに基づいて、前記中間色の計算対象とすべき前記第１のピクセルと前記第２のピクセルとの組み合わせを水平方向に隣接するものどうしと、垂直方向に隣接するものどうしとの間で切り替えることを特徴とする請求項５に記載の画像処理方法。
【請求項８】
背景の画像データが展開された前記フレームバッファ上に前記図形を描画するとき、前記処理演算部は、前記図形の一部の輪郭に接する前記背景の部分のピクセルの色を既定の色で置き換えて影付けを行うことを特徴とする請求項５に記載の画像処理方法。
【請求項９】
背景とこの背景上の図形とを含む画像データをピクセル単位で格納するフレームバッファを有するコンピュータを、
前記図形の輪郭に接する前記背景の部分の第１のピクセルの色とこの第１のピクセルに接する前記図形の輪郭部分の第２のピクセルの色との中間色を計算する中間色計算手段と、
この中間色計算手段により算出された中間色を記憶する中間色記憶手段と、
前記図形の輪郭に沿って連続する前記第１のピクセルを含む背景の部分の複数のピクセルの値を前記中間色記憶手段に記憶された共通の前記中間色でそれぞれ前記フレームバッファ上で置き換える色置換手段として機能させることを特徴とする画像処理プログラム。
【請求項１０】
前記色置換手段は、前記中間色記憶手段に記憶された前記中間色を予め決められた回数を上限として、前記図形の輪郭に沿って連続する前記第１のピクセルを含む背景の部分の複数のピクセルの値との置き換えに使用し、前記中間色計算手段は前記中間色記憶手段に記憶された前記中間色の使用回数が前記上限を超えたところで前記中間色の再計算を行うことを特徴とする請求項９に記載の画像処理プログラム。
【請求項１１】
背景の画像データが展開された前記フレームバッファ上に直線を描画するとき、前記中間色計算手段は、当該直線の傾きに基づいて、前記中間色の計算対象とすべき前記第１のピクセルと前記第２のピクセルとの組み合わせを水平方向に隣接するものどうしと、垂直方向に隣接するものどうしとの間で切り替えることを特徴とする請求項９に記載の画像処理プログラム。
【請求項１２】
背景の画像データが展開された前記フレームバッファ上に前記図形を描画するとき、前記図形の一部の輪郭に接する前記背景の部分のピクセルの色を既定の色で置き換えて影付けを行う影付け手段として前記コンピュータを機能させることを特徴とする請求項９に記載の画像処理プログラム。
【請求項１３】
背景とこの背景上の図形とを含む画像データをピクセル単位で格納するフレームバッファと、
前記図形の輪郭に接する前記背景の部分の第１のピクセルの色とこの第１のピクセルに接する前記図形の輪郭部分の第２のピクセルの色との中間色を計算する中間色計算手段と、
この中間色計算手段により算出された中間色を記憶する中間色記憶手段と、
前記図形の輪郭に沿って連続する前記第１のピクセルを含む背景の部分の複数のピクセルの値を前記中間色記憶手段に記憶された共通の前記中間色でそれぞれ前記フレームバッファ上で置き換える色置換手段と
を具備する画像処理装置を有することを特徴とする電子機器装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像を処理するシステムに関し、特に画像の描画にアンチエイリアシング、影付けなどの視覚効果のための処理を施す画像処理装置、画像処理方法、画像処理プログラム、および電子機器装置に関する。
【０００２】
【従来の技術】
３次元グラフィックスによりポリゴンや直線などの図形の描画を行うときに、表示画面上の図形の縁がピクセルに沿ってギザギザになって現れる現象（ジャギー）を抑制する手法としてアンチエイリアシングがある。
【０００３】
一般的なアンチエイリアシングは、フレームバッファ上の図形を含む個々の横ラインで、図形の輪郭に接する背景部分のピクセルの色とこのピクセルに接する図形の輪郭部分のピクセルの色との中間色を計算し、この中間色で、図形の輪郭に接する背景部分のピクセルの色を置き換えることによって行われていた（例えば、特許文献１）。
【０００４】
また、立体感のある画像を実現するためにポリゴンの辺に影を擬似的に付ける手法がある。この影を付ける処理は、３次元モデルによって表現された影のデータを３次元計算を通してフレームバッファ上に描画することによって行われることが一般であった。
【０００５】
【特許文献１】
特開２００２−１４０７２２号公報
【０００６】
【発明が解決しようとする課題】
しかしながら、アンチエイリアシングのための計算はＣＰＵなどの演算処理装置に大きな負担をかけることから、フレームバッファ上の図形を含むすべての横ラインでアンチエイリアシングのための計算を行うとなると、非力な演算処理装置では高速な描画が困難であるという課題があった。
【０００７】
また、３次元モデルによって表現された影をポリゴンの一辺に擬似的に付ける手法では、影を描画する際の３次元計算が演算処理装置にとってやはり大きな負担となっていた。
【０００８】
本発明はこのような事情を鑑みてなされたものであり、アンチエイリアシング処理の高速化を図ることのできる画像処理装置、画像処理方法、画像処理プログラム、および電子機器装置を提供することを目的としている。
【０００９】
また、本発明は、アンチエイリアシングの効果のレベルを自由に設定することのできる画像処理装置、画像処理方法、画像処理プログラム、および電子機器装置を提供することを目的としている。
【００１０】
直線にアンチエイリアシング処理を施す際、その直線の傾斜角度に応じて最適なアンチエイリアシングを高速に行うことを可能とした画像処理装置、画像処理方法、画像処理プログラム、および電子機器装置を提供することを目的としている。
【００１１】
さらに、本発明は、図形に影を付ける処理の高速化を図ることのできる画像処理装置、画像処理方法、画像処理プログラム、および電子機器装置を提供することを目的としている。
【００１２】
【課題を解決するための手段】
このような課題を解決するために、本発明の画像処理装置は、背景とこの背景上の図形とを含む画像データをピクセル単位で格納するフレームバッファと、図形の輪郭に接する背景の部分の第１のピクセルの色とこの第１のピクセルに接する図形の輪郭部分の第２のピクセルの色との中間色を計算する中間色計算手段と、この中間色計算手段により算出された中間色を記憶する中間色記憶手段と、図形の輪郭に沿って連続する第１のピクセルを含む背景の部分の複数のピクセルの値を中間色記憶手段に記憶された共通の中間色でそれぞれフレームバッファ上で置き換える色置換手段とを具備するものである。
【００１３】
この発明によれば、図形にアンチエイリアシングを施す際の中間色の計算回数を低減して、高速描画を実現できる。
【００１４】
この発明の画像処理装置において、色置換手段は、中間色記憶手段に記憶された中間色を予め決められた回数を上限として、図形の輪郭に沿って連続する第１のピクセルを含む背景の部分の複数のピクセルの値との置き換えに使用し、中間色計算手段は中間色記憶手段に記憶された中間色の使用回数が前記上限を超えたところで中間色の再計算を行うものとしてもよい。
【００１５】
この発明によれば、中間色を使用する上限回数の選定により、アンチエイリアシングの効果のレベルを自由に設定することができる。たとえば、ＣＰＵなどの処理演算装置のスペックなどに応じて上限回数を最適に選定することによって、非力な処理演算装置を用いた場合で描画速度を優先させたい場合の要求を満足させることができる。
【００１６】
また、この発明の画像処理装置において、背景の画像データが展開されたフレームバッファ上に直線を描画するとき、中間色計算手段は、当該直線の傾きに基づいて、中間色の計算対象とすべき第１のピクセルと第２のピクセルとの組み合わせを水平方向に隣接するものどうしと、垂直方向に隣接するものどうしとの間で切り替えるものとしてもよい。
【００１７】
これにより、直線の描画において、その直線の傾斜角度に応じて最適なアンチエイリアシングを、処理演算装置に大きな負担をかけることなく高速に行うことができる。
【００１８】
さらに、この発明の画像処理装置は、背景の画像データが展開されたフレームバッファ上に図形を描画するとき、図形の一部の輪郭に接する背景の部分のピクセルの色を既定の色で置き換えて影付けを行う影付け手段を有する。これにより、図形に影を付ける処理を高速に行うことができる。
【００１９】
本発明の別の観点に基づく画像処理方法は、背景とこの背景上の図形とを含む画像データをピクセル単位で格納するフレームバッファを含む記憶部と、処理演算部とを具備し、処理演算部は、図形の輪郭に接する背景の部分の第１のピクセルの色とこの第１のピクセルに接する図形の輪郭部分の第２のピクセルの色との中間色を計算して記憶部に記憶し、図形の輪郭に沿って連続する第１のピクセルを含む背景の部分の複数のピクセルの値を記憶部に記憶された共通の中間色でそれぞれフレームバッファ上で置き換えるものである。
【００２０】
この発明によれば、画像にアンチエイリアシングを施す際の中間色の計算回数を低減して、高速描画を実現できる。
【００２１】
この発明の画像処理方法において、記憶部に記憶された中間色を予め決められた回数を上限として、図形の輪郭に沿って連続する第１のピクセルを含む背景の部分の複数のピクセルの値との置き換えに使用し、中間色の使用回数が上限を超えたところで中間色の再計算を行うものであってよい。
【００２２】
この発明によれば、中間色を使用する上限回数の選定により、アンチエイリアシングの効果のレベルを自由に設定することができる。たとえば、ＣＰＵなどの処理演算装置のスペックなどに応じて上限回数を最適に選定することによって、非力な処理演算装置を用いた場合で描画速度を優先させたい場合の要求を満足させることができる。
【００２３】
また、この発明の画像処理方法において、背景の画像データが展開されたフレームバッファ上に直線を描画するとき、処理演算部は、当該直線の傾きに基づいて、中間色の計算対象とすべき第１のピクセルと第２のピクセルとの組み合わせを水平方向に隣接するものどうしと、垂直方向に隣接するものどうしとの間で切り替えるものとしてもよい。
【００２４】
これにより、直線の描画において、その直線の傾斜角度に応じて最適なアンチエイリアシングを、処理演算装置に大きな負担をかけることなく高速に行うことができる。
【００２５】
さらに、この発明の画像処理方法は、背景の画像データが展開されたフレームバッファ上に図形を描画するとき、処理演算部は、図形の一部の輪郭に接する背景の部分のピクセルの色を既定の色で置き換えて影付けを行うようにしてもよい。これにより、図形に影を付ける処理を高速に行うことができる。
【００２６】
本発明の別の観点に基づく画像処理プログラムは、背景とこの背景上の図形とを含む画像データをピクセル単位で格納するフレームバッファを有するコンピュータを、図形の輪郭に接する背景の部分の第１のピクセルの色とこの第１のピクセルに接する図形の輪郭部分の第２のピクセルの色との中間色を計算する中間色計算手段と、この中間色計算手段により算出された中間色を記憶する中間色記憶手段と、図形の輪郭に沿って連続する第１のピクセルを含む背景の部分の複数のピクセルの値を中間色記憶手段に記憶された共通の中間色でそれぞれフレームバッファ上で置き換える色置換手段として機能させるものである。
【００２７】
この画像処理プログラムによれば、画像にアンチエイリアシングを施す際の中間色の計算回数を低減して、高速描画を実現できる。
【００２８】
この発明の画像処理プログラムにおいて、色置換手段は、中間色記憶手段に記憶された中間色を予め決められた回数を上限として、図形の輪郭に沿って連続する第１のピクセルを含む背景の部分の複数のピクセルの値との置き換えに使用し、中間色計算手段は中間色記憶手段に記憶された中間色の使用回数が上限を超えたところで中間色の再計算を行うものとしてもよい。
【００２９】
この発明によれば、中間色を使用する上限回数の選定により、アンチエイリアシングの効果のレベルを自由に設定することができる。たとえば、ＣＰＵなどの処理演算装置のスペックなどに応じて上限回数を最適に選定することによって、非力な処理演算装置を用いた場合で描画速度を優先させたい場合の要求を満足させることができる。
【００３０】
また、この発明の画像処理プログラムにおいて、背景の画像データが展開されたフレームバッファ上に直線を描画するとき、中間色計算手段は、当該直線の傾きに基づいて、中間色の計算対象とすべき第１のピクセルと第２のピクセルとの組み合わせを水平方向に隣接するものどうしと、垂直方向に隣接するものどうしとの間で切り替えるものとしてもよい。
【００３１】
これにより、直線の描画において、その直線の傾斜角度に応じて最適なアンチエイリアシングを、処理演算装置に大きな負担をかけることなく高速に行うことができる。
【００３２】
さらに、この発明の画像処理プログラムは、背景の画像データが展開されたフレームバッファ上に図形を描画するとき、図形の一部の輪郭に接する背景の部分のピクセルの色を既定の色で置き換えて影付けを行う影付け手段としてコンピュータを機能させるものであってもよい。これにより、図形に影を付ける処理を高速に行うことができる。
【００３３】
【発明の実施の形態】
以下、本発明の実施の形態を図面により説明する。
【００３４】
図１に、本発明の画像処理装置を実現する一般的なコンピュータシステムの構成を示すブロック図である。
【００３５】
このコンピュータシステム１００は、処理演算装置であるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１、メインメモリ１２、プログラム・データ格納部１３、表示信号処理部１４、表示デバイス１５、入力インタフェース部１６、入力部１７などで構成される。これらはバス１０を介して相互に接続され、ＣＰＵ１１の制御によって相互にデータ、制御、アドレスなどの信号のやりとりが行われる。表示信号処理部１４はバス１０を径由して入力した画像データをたとえばＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）などの表示デバイス１５で扱うことのできる信号に変換する。入力インタフェース部１６はたとえばキー操作部、ジョグダイヤル、マウスなどユーザからの入力を処理する入力デバイス１７からの入力をバス１０に送り出す処理を行う。プログラム・データ格納部１３は不揮発性の記憶装置であり、このコンピュータシステム１００を動作させるためのプログラムやデータが格納されている。たとえば、２次元・３次元の描画処理を実行するために必要なプログラムやデータが少なくとも格納されている。ＣＰＵ１１は、プログラム・データ格納部１３からプログラムやデータをメインメモリ１２にロードし、当該プログラムを実行する。ＣＰＵ１１は描画処理プログラムの実行によりメインメモリ１２に確保されたフレームバッファへの描画を処理し、フレームバッファに展開した画像データを表示信号処理部１４を通じて表示デバイス１５の画面に表示させる。
【００３６】
図２は、描画処理時にメインメモリ１２に設けられる領域の構成を示す。同図に示すように、描画処理時、メインメモリ１２には、描画処理プログラムが格納される描画処理プログラム領域２１と、画像データをピクセル単位で格納するフレームバッファ領域２２と、カラーテーブル領域２３と、アンチエイリアシング用の背景色確認カウンタ領域２４と、同じくアンチエイリアシング用の中間色保持領域２５とが確保される。
【００３７】
フレームバッファ領域２２は、表示デバイス１５の画面に表示させる画像データが描画される領域である。このフレームバッファ領域２２は各ピクセルの色番号を格納するカラーバッファとして利用される。カラーテーブル領域２３には色番号と、たとえば８ビット、１６ビット、２４ビット、３２ビットなどの所定のバイト数で表現されたＲＧＢ値との対応表が格納される領域である。フレームバッファ領域２２より読み込んだ一つのピクセルの色番号をキーにカラーテーブル領域２３から対応するＲＧＢ値が呼び出され、このＲＧＢ値が表示信号処理部１４によって表示デバイス１５で扱うことのできるアナログ信号あるいはディジタル信号に変換される。背景色確認カウンタ領域２４は描画処理時のアンチエイリアシングで使用される背景色確認カウンタの値が格納される領域である。中間色保持領域２５はアンチエイリアシングで使用されるピクセルの中間色を示す値（色番号）が格納される領域である。
【００３８】
次に、一般的な３次元描画処理について説明する。図３にこの３次元描画処理のモジュール構成を示す。
【００３９】
座標変換モジュール３２は、描画対象の３次元モデルデータ３１のすべての部位の三次元座標を二次元座標に変換する。ここで３次元モデルデータ３１とはポリゴン（多角形平面）や点・線・面などの図形の３次元座標上の位置、線や面の属性、色のデータなどで構成される。次に、描画要素生成モジュール３３は、二次元座標に変換されたデータを図形の単位で視点から遠い順にソートして見えるべき部位のみを最終的に残す陰面処理を行う。ラスタライズモジュール３４は陰面処理が施されたデータに基づいてフレームバッファ領域２２（カラーバッファ）にピクセル毎の値（色番号）を書き込む。このラスタライズの際にアンチエイリアシング処理が行われる。そして表示モジュール３５はフレームバッファ領域２２からピクセルの値である色番号を読み込み、色番号とＲＧＢ値との対応が格納されているカラーテーブル領域２３から該当するＲＧＢ値を呼び出し、表示信号処理部１４に供給し、表示デバイス１５の画面に表示させる。
【００４０】
次に、図形たとえばポリゴンの描画にアンチエイリアシングを施す手順を説明する。図４および図５にこの手順を示す。また、図６ないし図８に三角形のポリゴンの描画の様子を示す。なお、フレームバッファ領域２２には既に背景の画像データが展開されているものとする。
【００４１】
まず、メインメモリ１２の背景色確認カウンタ領域２４の背景色確認カウンタに既定の初期値Ｎをセットする（ステップ１０１）。この初期値Ｎは１以上の任意の値である。この初期値Ｎはユーザが設定することも可能である。次に、ポリゴン部分のピクセルを含む横ラインの番号を示す変数ｉに”０”をセットする（ステップ１０２）。
【００４２】
図６において、斜線で塗りつぶされた部分４０はポリゴン部分のピクセルの集まりを示している。このポリゴン部分のピクセルを含む先頭横ラインＬ０において、ポリゴンの左側の輪郭に隣接している背景部分のピクセルＢｌ０の値をフレームバッファ領域２２から読み取る（ステップ１０３）。続いて、そのポリゴンの左側の輪郭のピクセルＰｌ０の値を読み取る（ステップ１０４）。なお、これらのピクセルＢｌ０、Ｐｌ０の値を読み込む順番はどちらが先でも構わない。
【００４３】
続いて、各ピクセルＢｌ０、Ｐｌ０の値の中間値すなわちピクセルＢｌ０の色とピクセルＰｌ０の色との中間色を計算する。より詳細には、背景のピクセルＢｌ０の値を（Ｒｂ，Ｇｂ，Ｂｂ）、ポリゴンのピクセルＰｌ０の値を（Ｒｐ，Ｇｐ，Ｂｐ）とすると、中間値は（（（Ｒｂ＋Ｒｐ）／２），（（Ｇｂ＋Ｇｐ）／２），（（Ｂｂ＋Ｂｐ）／２）））となる。そして計算結果をメインメモリ１２の中間色保持領域２５に左側中間色として保持する（ステップ１０５）。
【００４４】
続いて、図７に示すように、中間色保持領域２５に保持されている左側中間色を先頭横ラインのポリゴンの左側の輪郭に隣接している背景部分のピクセルＢｌ０の値としてフレームバッファ領域２２に上書きする（ステップ１０６）。この後、先頭横ラインのポリゴンをフレームバッファ領域２２に描画する（ステップ１０７）。
【００４５】
次に、先頭横ラインのポリゴンの右側の輪郭に隣接している背景部分のピクセルＢｒ０の値をフレームバッファ領域２２から読み取り（ステップ１０８）、そのポリゴンの右側の輪郭のピクセルＰｒ０の値を読み取る（ステップ１０９）。なお、これらのピクセルＢｒ０、Ｐｒ０の値を読み込む順番はどちらが先でも構わない。各ピクセルＢｒ０、Ｐｒ０の値の中間値を計算し、計算結果をメインメモリ１２の中間色保持領域２５に右側中間色として保持する（ステップ１１０）。そして、この中間色保持領域２５に保持されている左側中間色の値を、先頭横ラインのポリゴンの右側の輪郭に隣接している背景部分のピクセルＢｒ０の値としてフレームバッファ領域２２に上書きする（ステップ１１１）。
【００４６】
以上のように、先頭横ラインＬ０については、通常のアンチエイリアシングと同様に、ポリゴンの左右の側の輪郭に各々隣接している背景部分のピクセルＢｌ０、Ｂｒ０の値が、計算によって左側中間色および右側中間色にそれぞれ置き換えられる。
【００４７】
この後、背景色確認カウンタの値をデクリメントする（ステップ１１２）。すなわち、背景色確認カウンタの値がＮ−１になる。そして描画対象をポリゴンを含む次の横ラインに切り替える。すなわち、ポリゴンを含む横ラインの番号の変数ｉの値をインクリメントする（ステップ１１３）。
【００４８】
続いて、ｉ＞Ｍの真偽判定を行う（ステップ１１４）。ここで、Ｍはポリゴンの全ライン数の値であり、ポリゴン毎に異なる値である。すなわち、ポリゴンのすべての横ラインの描画が完了したかどうかを判定する。この判定でｉ＞Ｍが真と判定された場合には当該ポリゴンの描画の完了を判定する。
【００４９】
今回の描画ラインは２ライン目であるからｉ＞Ｍが偽と判定される。この場合には、ステップ１１４に移行してＮ＝０の真偽判定を行う。すなわち背景色確認カウンタの値が”０”であるかどうを判定する（ステップ１１５）。この判定でＮ＝０が偽と判定された場合（２ライン目は偽と判定される）には、ステップ１０５で計算された、中間色保持領域２５に保持されている左側中間色を、現横ラインのポリゴンの左側の輪郭に隣接している背景部分のピクセルＢｌ１の値としてフレームバッファ領域２２に上書きする（ステップ１１６）。この後、現横ラインのポリゴンをフレームバッファ領域２２に描画する（ステップ１１７）。
【００５０】
続いてステップ１１８でＮ＝０の真偽判定を再度行う。この判定でＮ＝０が偽と判定された場合（２ライン目は偽と判定される）には、ステップ１１０で計算された、中間色保持領域２５に保持されている右側中間値を、現横ラインのポリゴンの右側の輪郭に隣接している背景部分のピクセルＢｒ１の値としてフレームバッファ領域２２に上書きする（ステップ１１９）。
【００５１】
この後、背景色確認カウンタの値をデクリメントし（ステップ１２０）、続いて、ライン番号の変数ｉにｉ＋１を代入して、ライン番号の変数ｉをインクリメントする（ステップ１２１）。これで描画対象が次の横ラインに更新される。
【００５２】
仮に背景色確認カウンタの初期値Ｎとして”５”が設定されていたとする。この場合、ステップ１１４からステップ１２１までの処理が４回繰り返される。この結果、背景色確認カウンタの値は”０”となり、ステップ１１５のＮ＝０の真偽判定により真と判定され、ステップ１２２へ移行する。
【００５３】
ステップ１２２では、図６において現横ラインＬ５のポリゴン部分の左側の輪郭に隣接している背景部分のピクセルＢｌ５の値をフレームバッファ領域２２から読み取り、続いて、そのポリゴンの左側の輪郭のピクセルＰｌ５の値を読み取る（ステップ１２３）。各ピクセルＢｌ５、Ｐｌ５の値の中間値をそれぞれ計算し、計算結果を新たな左側中間色として中間色保持領域２５に上書きする（ステップ１２４）。そして、この中間色保持領域２５に保持されている左側中間色の値を現横ラインのポリゴンの左側の輪郭に隣接している背景部分のピクセルＢｌ５の値としてフレームバッファ領域２２に上書きする（ステップ１１６）。この後、現横ラインのポリゴンをフレームバッファ領域２２に描画する（ステップ１１７）。
【００５４】
次に、ステップ１１８のＮ＝０の真偽判定により真と判定され、ステップ１２５へ移行する。ステップ１２５では、現横ラインＬ５のポリゴン部分の右側の輪郭に隣接している背景部分のピクセルＢｒ５の値をフレームバッファ領域２２から読み取り、続いて、そのポリゴンの右側の輪郭のピクセルＰｒ５の値を読み取る（ステップ１２６）。各ピクセルＢｒ５、Ｐｒ５の値の中間値をそれぞれ計算し、計算結果を新たな右側中間色として中間色保持領域２５に上書きする（ステップ１２７）。背景色確認カウンタの値を初期値Ｎにリセットする（ステップ１２８）。続いて、この中間色保持領域２５に保持されている右側中間色の値を現横ラインＬ５のポリゴンの右側の輪郭に隣接している背景部分のピクセルＢｒ５の値としてフレームバッファ領域２２に上書きする（ステップ１１９）。背景色確認カウンタの値をデクリメントし（ステップ１２０）、ライン番号の変数ｉにｉ＋１を代入して処理対象を次横ラインに移す（ステップ１２１）。
【００５５】
図６のポリゴンの描画においてアンチエイリアシングの処理を完了した状態を図８に示す。Ｂｌ０〜Ｂｌｍ−１は左側中間色に置き換えられた、ポリゴンの左側の輪郭に沿って連続する背景部分のピクセル群であり、Ｂｒ０〜Ｂｒｍ−１は右側中間色に置き換えられた、ポリゴンの右側の輪郭に沿って連続する背景部分のピクセル群である。
【００５６】
これにより、Ｎ本の横ラインに対して１本の頻度でポリゴンの左側と右側の各中間色を計算するだけで、アンチエイリアシングの効果を得ることができる。背景色確認カウンタの初期値の選定により、アンチエイリアシングの効果のレベルを自由に設定することができるので、この背景色確認カウンタの初期値をたとえばＣＰＵのスペックなどに応じて最適に選定することによって、非力なＣＰＵを用いた場合で描画速度を優先させたい場合の要求を満足させることができる。したがって、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ（Ｄａｔａ）  Ａｓｓｉｓｔａｎｔｓ）、携帯電話、デジタルビデオカメラなど、比較的低スペックのＣＰＵを搭載した携帯型の電子機器装置にとって好適な描画システムとして本実施形態の画像処理装置を利用することができる。また、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）など比較的高スペックのＣＰＵを採用した機器においても、画質よりも描画速度が求められるアプリケーションに最適な描画システムとして利用できる。
【００５７】
また、背景色、ポリゴン色がともに単色の場合には、背景色確認カウンタの初期値を”１”に設定して、ポリゴンの左側と右側の中間色を一度ずつ計算するだけで、一般のアンチエイリアシングと画質的に同一の効果が得られ、その上描画速度が向上するという効果が得られる。
【００５８】
次に、直線の描画においてアンチエイリアシングを施す方法を説明する。図９に描画対象である直線４１とこの直線に対してアンチエイリアシングを施した結果を示す。
【００５９】
この場合は、描画対象である直線４１のＸ軸に対する傾きθが４５度以上かどうかの真偽判定を行い、４５度以上の場合には、図９に示すように、ポリゴンの描画にアンチエイリアシングを施す場合と同様に、直線４１の左側の輪郭に隣接している背景部分の各ピクセルＢｌ０，Ｂｌ１，Ｂｌ２，Ｂｌ３，Ｂｌ４，・・・・の値と、直線４１の左右の輪郭に隣接している背景部分の各ピクセルＢｒ０，Ｂｒ１，Ｂｒ２，Ｂｒ３，Ｂｒ４，・・・・の値を、Ｎ本の横ラインに対して１本の頻度で計算された左側中間色および右側中間色で置き換える。
【００６０】
また、図１０に示すように、直線４２のＸ軸に対する傾きが４５度未満である場合には、中間色を計算する方向をＸ軸からＹ軸に変換する。すなわち、直線４２のピクセルＰ０  の値と、この直線４２のピクセルＰ０  の上側の輪郭に隣接する背景部分のピクセルＢｕ０の値との中間値を計算して、この計算結果を中間色保持領域２５に上側中間色として保持し、この中間色保持領域２５に保持された上側中間色を、直線のピクセルＰ０  の上側の輪郭に隣接する背景部分のピクセルＢｕ０の値として上書きする。また、直線４２のピクセルＰ０  の値と、この直線４２のピクセルＰ０  の下側の輪郭に隣接する背景部分のピクセルＢｄ０の値との中間値を計算して、この計算結果を中間色保持領域２５に下側中間色として保持し、この中間色保持領域２５に保持された下側中間色を、直線４２のピクセルＰ０  の下側の輪郭に隣接する背景部分のピクセルＢｄ０の値として上書きする。
【００６１】
以後はポリゴンの描画にアンチエイリアシングを施す場合と同様であり、背景色確認カウンタの値Ｎ＝０の真偽判定で真と判定されるまで、中間色保持領域２５に保持された上側中間色および下側中間色で、直線４２の上側の輪郭に隣接している背景部分の各ピクセルＢｕ１、Ｂｕ２、Ｂｕ３、Ｂｕ４・・・・の値と直線４２の上側の輪郭に隣接している背景部分の各ピクセルＢｄ１、Ｂｄ２、Ｂｄ３、Ｂｄ４・・・・の値がそれぞれ置き換えられる。
【００６２】
これにより、直線の描画において、その直線の傾斜角度に応じて最適なアンチエイリアシングを、ＣＰＵ１１に大きな負担をかけることなく高速に行うことができる。
【００６３】
次に、図形たとえばポリゴンに影を付ける処理を高速に行う方法について説明する。図１１に示すように、この影付け処理は、横ライン毎に、ポリゴン４０の右側の輪郭に隣接する背景部分のピクセルＢｒ０，Ｂｒ１，・・・，Ｂｒｍ−２，Ｂｒｍ−１を判定し、これらのピクセルの値を既定の影の色の値にフレームバッファ領域２２上で変更することによって行われる。これにより、影を表現したポリゴンの３次元計算により影付けを行う場合に比べ、ポリゴンへの影付けを高速に行うことができる。
【００６４】
影の色に変更するピクセルとしては、ポリゴンの右側の輪郭に隣接する背景部分のピクセルのみに限らず、逆にポリゴンの左側の輪郭に隣接する背景部分のピクセルでもよく、あるいは、ポリゴンの上側の輪郭に隣接する背景部分のピクセルや、ポリゴンの下側の輪郭に隣接する背景部分のピクセルであっても構わない。さらには、その中の複数のピクセルであってもよい。
【００６５】
なお、本発明は、上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【００６６】
【発明の効果】
以上説明したように本発明によれば、画像にアンチエイリアシングを施す際の中間色の計算回数を低減して高速描画を実現でき、また、中間色を使用する上限回数の選定によりアンチエイリアシングの効果のレベルを自由に設定することができる。さらに、直線の描画において、その直線の傾斜角度に応じて最適なアンチエイリアシングを、処理演算装置に大きな負担をかけることなく高速に行うことができ、さらには図形に影を付ける処理を高速に行うことができる。
【図面の簡単な説明】
【図１】本発明の画像処理装置を実現する一般的なコンピュータシステムの構成を示すブロック図である。
【図２】図１のコンピュータシステムにおいて描画処理時にメインメモリに設けられる領域の構成を示す図である。
【図３】一般的な３次元描画処理のモジュール構成を示す図である。
【図４】ポリゴン先頭ラインでのポリゴンの描画にアンチエイリアシングを施す手順を示すフローチャートである。
【図５】２番目のライン以降のポリゴンの描画にアンチエイリアシングを施す手順を示すフローチャートである。
【図６】ポリゴンの例を示す図である。
【図７】図６のポリゴンの描画にアンチエイリアシングを施している様子を示す図である。
【図８】図６のポリゴンの描画においてアンチエイリアシングの処理を完了した状態を示す図である。
【図９】Ｘ軸に対する傾きが４５度以上の直線の描画においてアンチエイリアシングを施す方法を説明するための図である。
【図１０】Ｘ軸に対する傾きが４５度未満の直線の描画においてアンチエイリアシングを施す方法を説明するための図である。
【図１１】ポリゴンの描画において影付け処理を施した状態を示す図である。
【符号の説明】
１０        バス
１１        ＣＰＵ
１２        メインメモリ
１３        プログラム・データ格納部
１４        表示信号処理部
１５        表示デバイス
２１        描画処理プログラム領域
２２        フレームバッファ領域
２４        背景色確認カウンタ領域
２５        中間色保持領域
４０        ポリゴン
４１，４２  直線
【図１】
2004227338.tif 000003
【図２】
2004227338.tif 000004
【図３】
2004227338.tif 000005
【図４】
2004227338.tif 000006
【図５】
2004227338.tif 000007
【図６】
2004227338.tif 000008
【図７】
2004227338.tif 000009
【図８】
2004227338.tif 000010
【図９】
2004227338.tif 000011
【図１０】
2004227338.tif 000012
【図１１】
2004227338.tif 000013