説明

画像処理装置及び画像処理方法

【課題】縦横に拡大した画像情報をメモリに格納することなく効率的にアンチエイリアス処理を実行可能な画像処理装置を提供する。
【解決手段】画像処理装置は、補間位置に隣接するある画素の奥行きと該画素が含まれる図形の端までの距離とに基づいて補間位置における奥行きと図形の端までの距離とを求める処理を補間位置に隣接する複数の画素のそれぞれに対して実行することにより、補間位置における複数の奥行きと複数の距離とを求める補間部と、複数の画素の色及び補間部が求めた補間位置における複数の奥行きと複数の距離とに基づいて、補間位置における色を決定する画素色決定部とを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本願開示は、一般に画像処理装置及び画像処理方法に関し、詳しくは3次元グラフィクスにおけるアンチエイリアス処理を行なう画像処理装置及び画像処理方法に関する。
【背景技術】
【0002】
3次元グラフィックス処理では、図形周辺のギザギザ感(ジャギー)を取り除く技術としてアンチエイリアス処理が用いられている。アンチエイリアス処理のための一般的な方式として、フルシーンアンチエイリアスとマルチサンプルアンチエイリアスとがある。フルシーンアンチエイリアスは、所望の画像の縦横n倍の大きさの拡大画像を描画し、その拡大画像を1/nに縮小させる方式である。この方式ではn×n倍の拡大画像の描画処理を行なうので処理の効率が悪い。このフルシーンアンチエイリアスに対して処理量を低減させた方式がマルチサンプルアンチエイリアスである。
【0003】
マルチサンプルアンチエイリアスでは、奥行き情報と内外判定データだけを縦横n倍し、色情報についてはn×nの画素に対して同一値を用いることにより、演算量を削減させている。しかし、このマルチサンプルアンチエイリアスを用いた場合でも、グラフィックス描画にn×n倍のメモリアクセスが必要となるとともに、1/nに縮小させる処理のために更なるメモリアクセスが必要となる。この結果、大きなバス帯域が必要となってしまう。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2001−251500号公報
【特許文献2】特開2005−38415号公報
【特許文献3】特許第2682191号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
以上を鑑みると、縦横に拡大した画像情報をメモリに格納することなく効率的にアンチエイリアス処理を実行可能な画像処理装置が望まれる。
【課題を解決するための手段】
【0006】
画像処理装置は、補間位置に隣接するある画素の奥行きと該画素が含まれる図形の端までの距離とに基づいて前記補間位置における奥行きと前記図形の端までの距離とを求める処理を前記補間位置に隣接する複数の画素のそれぞれに対して実行することにより、前記補間位置における複数の奥行きと複数の距離とを求める補間部と、前記複数の画素の色及び前記補間部が求めた前記補間位置における前記複数の奥行きと前記複数の距離とに基づいて、前記補間位置における色を決定する画素色決定部とを含むことを特徴とする。
【0007】
画像処理方法は、補間位置に隣接するある画素の奥行きと該画素が含まれる図形の端までの距離とに基づいて前記補間位置における奥行きと前記図形の端までの距離とを求める処理を前記補間位置に隣接する複数の画素のそれぞれに対して実行することにより、前記補間位置における複数の奥行きと複数の距離とを求め、前記複数の奥行きと、前記複数の距離と、前記複数の画素の色とに基づいて、前記補間位置における補間色を決定し、1つの着目画素の位置に隣接する複数の補間位置について決定した前記補間色と前記1つの着目画素の色とを混合することにより、前記1つの着目画素の新たな色を求める各段階を含むことを特徴とする。
【発明の効果】
【0008】
本願開示の少なくとも1つの実施例によれば、複数の画素の色と、補間部が求めた補間位置における複数の奥行きと複数の距離とに基づいて、補間位置における補間色を決定する。従って、縦横に拡大した画像情報をメモリに格納することなく、効率的に補間位置の画素色を決定して、この画素色を用いたアンチエイリアス処理を実行することができる。
【図面の簡単な説明】
【0009】
【図1】画像処理システムの全体構成の一例を示す図である。
【図2】グラフィック描画の対象となる三角形を模式的に示す図である。
【図3】着目画素についてその画素が含まれる図形の端までの距離を模式的に示す図である。
【図4】画素についての図形の端までの距離のx方向の増分について説明するための図である。
【図5】画素についての図形の端までの距離のy方向の増分について説明するための図である。
【図6】図1のフレームバッファに格納するデータのデータ構造の一例を示す図である。
【図7】奥行き・距離補間部の処理を説明するための図である。
【図8】奥行き・距離比較部及び画素色決定部の処理を説明するための図である。
【図9】奥行き・距離補間部、奥行き・距離比較部、及び画素色決定部の処理を説明するための別の例を示す図である。
【図10】奥行き・距離比較部及び画素色決定部の処理を説明するための更に別の例を示す図である。
【図11】画素ブレンド部の処理を説明するための図である。
【図12】図7に示す補間位置における距離値の意味を説明するための図である。
【図13】図9に示す補間位置における距離値の意味を説明するための図である。
【図14】図10に示す補間位置における距離値の意味を説明するための図である。
【図15】アンチエイリアス回路によるアンチエイリアス処理の流れを示すフローチャートである。
【図16】図15で実行される補間色決定処理の流れを示すフローチャートである。
【図17】アンチエイリアス回路のより具体的な回路構成の一例を示す図である。
【図18】画素情報保持RAMの読み書き処理について説明するための図である。
【発明を実施するための形態】
【0010】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【0011】
図1は、画像処理システムの全体構成の一例を示す図である。図1の画像処理システムは、グラフィクス処理回路10、アンチエイリアス回路11、フレームバッファ12、及びディスプレイ装置13を含む。グラフィクス処理回路10は、頂点バッファ21、座標変換・ライティング処理部22、頂点後処理部23、ラスタライズ処理部24、画素処理部25、画素後処理部26、メモリアクセス部27、テクスチャユニット28、及び距離情報算出部29を含む。アンチエイリアス回路11は、奥行き・距離補間部31、奥行き・距離比較部32、画素色決定部33、及び画素ブレンド部34を含む。
【0012】
グラフィクス処理回路10は、3次元データとして与えられた立体オブジェクトを所定の視点から見たときに見えるべき2次元画像を計算し、その画素毎のデータをフレームバッファ12に書き込むことにより2次元画像データを生成する。このフレームバッファ12に格納された2次元画像データは、アンチエイリアス回路11により処理される。アンチエイリアス回路11により処理されフレームバッファ12に書き込まれた2次元画像データは、その後、描画データとして読出されディスプレイ装置13に表示される。
【0013】
一般に立体オブジェクトは、多数のポリゴンの集合体として表現されている。この際、最も単純なポリゴンとして三角形を用いるのが一般的である。描画する対象となる立体オブジェクトの3次元データは、三角形の各頂点の座標を示す頂点座標データや各頂点の色を示す頂点カラーデータ等を含む頂点データとして与えられる。グラフィクス処理回路10の頂点バッファ21には、この頂点データが格納されている。座標変換・ライティング処理部22は、頂点バッファ21から読み込んだ立体オブジェクトの3次元データに基づいて、そのオブジェクトの位置・姿勢に応じて拡大・回転等の幾何学的な演算処理を行う。座標変換・ライティング処理部22は更に、ポリゴン単位(三角形単位)での座標変換を実行するとともに、光源計算等の演算処理を実行する。これら幾何学的な演算処理、座標変換、及び光源処理等により、所望の視点から見たオブジェクトの2次元画像を構成する複数の三角形のデータを計算する。頂点後処理部23は、計算された頂点座標が表示画面枠からはみ出すか否かを判定し、はみ出した場合には表示画面内に収まるように三角形を分割する。頂点後処理部23は更に、頂点データから描画処理に必要な増分値の計算を行なう。ここで増分値とは、例えば三角形の辺に沿ったX座標及び各画像パラメータの傾き(変化分)のことである。
【0014】
ラスタライズ処理部24及び画素処理部25は、オブジェクトを構成する各面の各画素を塗りつぶすラスタライズ処理により、2次元の描画データを生成する。ラスタライズ処理では、各三角形の頂点毎の画像パラメータ及び上記の増分値に基づいて、三角形内部に含まれる各スパンの各画素の画像パラメータを補間等により求める。画像パラメータには、例えばRGB各色の輝度、奥行き方向の距離を表すZ値、テクスチャ表示のためのテクスチャ座標値、アルファブレンディングのためのアルファ値等が含まれる。画素後処理部26は、ラスタライズ処理で生成された各画素のテクスチャ座標を用いて、テクスチャユニット28を介してフレームバッファ12にアクセスし、テクスチャデータを読み出す。画素後処理部26は、読み出されたテクスチャデータとカラーデータのブレンド処理等を行なう。
【0015】
距離情報算出部29は、各画素毎にその画素が含まれる図形(三角形)の端までの距離を計算し、更にX方向及びY方向の各方向における一画素分の位置変化に対応する距離の増分値を計算する。メモリアクセス部27は、書込み対象のスパンの各画素について、画素色、奥行き(デプス)、奥行きの傾き(奥行き増分値)、距離、及び距離の傾き(距離の増分値)をフレームバッファ12に書き込む。この際、メモリアクセス部27は、書込み対象のスパンの各画素のメモリアドレスをアクセスし、フレームバッファ12から画像データを読み出す。フレームバッファ12から読み出した画素データは、生成された各スパンの画素データと合成される。この際、例えばZ値に基づいて隠線処理を行なったり、アルファ値に基づいてアルファブレンディング等を実行したりする。
【0016】
なお画素色データ及び奥行きデータについては、通常のラスタライズ処理により得ることができる。奥行きの傾きのデータは、x方向及びy方向の各方向における一画素分の位置変化に対応する奥行きの増分値を示し、ラスタライズ処理においては各スパン上の画素の奥行きを求める際に使用するデータである。従って、ラスタライズ処理における各画素の処理を実行する画素処理部25からこの奥行きの傾きのデータを出力するようにすればよい。距離データ及び距離の傾きデータについては、前述のように距離情報算出部29により算出すればよい。距離情報算出部29による距離データ及び距離の傾きデータの算出について以下に説明する。
【0017】
図2は、グラフィック描画の対象となる三角形を模式的に示す図である。三角形は3本の直線E0(x,y)、E1(x,y)、E2(x,y)により構成される。直線E0(x,y)は、E0(x,y)=a0x+b0y+c0=0と表すことができる。直線E1(x,y)は、E1(x,y)=a1x+b1y+c1=0と表すことができる。直線E2(x,y)は、E2(x,y)=a2x+b2y+c2=0と表すことができる。これらの直線の式を利用して、三角形の内部領域は、E0(x,y)>0且つE1(x,y)>0且つE2(x,y)>0を満たす点(x,y)の集合として定義することができる。
【0018】
図3は、着目画素についてその画素が含まれる図形の端までの距離を模式的に示す図である。座標(x,y)の点36からE0(x,y)で表わされる辺37までの距離d0(x,y)は、
d0(x,y)=E0(x,y)/D0
となる。ここでD0=(a0+b01/2である。同様にして、E1(x,y)で表わされる辺38までの距離d1(x,y)は、
d1(x,y)=E1(x,y)/D1
となる。ここでD1=(a1+b11/2である。また更に、E2(x,y)で表わされる辺39までの距離d2(x,y)は、
d2(x,y)=E2(x,y)/D2
となる。ここでD2=(a2+b21/2である。このようにして求められたd0(x,y)、d1(x,y)、及びd2(x,y)が、画素36についての図形の端までの距離である。
【0019】
図4は、画素36についての図形の端までの距離d0(x,y)のx方向の増分について説明するための図である。図4において、画素36についての図形の端までの距離がd0(x,y)であり、画素36からx軸方向に+1画素移動した位置における画素40での距離がd0(x+1,y)である。このとき、x方向における一画素分の位置変化に対応する距離の増分値d(d0)dxは、d0(x+1,y)−d0(x,y)として求められる。座標(x+1,y)にある画素40での距離d0(x+1,y)は、
d0(x+1,y)=E0(x+1,y)/D0
={E0(x,y)+a0}/D0
=d0(x,y)+a0/D0
となる。従って、距離d0(x,y)のx方向の増分値はa0/D0である。
【0020】
図5は、画素36についての図形の端までの距離d0(x,y)のy方向の増分について説明するための図である。図5において、画素36についての図形の端までの距離がd0(x,y)であり、画素36からy軸方向に+1画素移動した位置における画素41での距離がd0(x,y+1)である。このとき、y方向における一画素分の位置変化に対応する距離の増分値d(d0)dyは、d0(x,y+1)−d0(x,y)として求められる。座標(x,y+1)にある画素41での距離d0(x,y+1)は、
d1(x,y+1)=d0(x,y)+b0/D0
となる。従って、距離d0(x,y)のy方向の増分値はb0/D0である。
【0021】
同様にして、距離d1(x,y)のx方向の増分値はa1/D1であり、y方向の増分値はb1/D1である。また距離d2(x,y)のx方向の増分値はa2/D2であり、y方向の増分値はb2/D2である。
【0022】
図6は、図1のフレームバッファ12に格納するデータのデータ構造の一例を示す図である。図6の例では、画素色データとして32ビットデータをフレームバッファ12に格納している。また奥行き(デプス値)データとして同様に32ビットデータをフレームバッファ12に格納している。奥行きの傾き(デプス値の増分)については、x方向の増分データとして8ビットデータを、y方向の増分データとして8ビットデータを格納している。また距離の増分については、距離d0、d1、及びd2の各々に対して、x方向の増分データとして8ビットデータを、y方向の増分データとして8ビットデータを格納している。更に、距離d0、d1、及びd2の各々に対して、10ビットデータを格納している。このように、画素色と奥行きとに関しては4バイト精度としながら、奥行き及び距離の増分値に関しては1バイト精度とし、更に距離に関しては10ビット精度とすることで、1画素あたりの総ビット数を160ビットにするができる。実用上は、このように奥行き及び距離の増分値データ並びに距離データについて精度を落としても十分に品質のよいアンチエイリアス処理を実現することができる。
【0023】
上記のように1画素辺り160ビット構成としても、この160ビットのデータを1画素について一度書込み及び読み出しをすればよい。それに対して2×2倍のマルチサンプルアンチエイリアスでは、それぞれ32ビットの画素色データ及び奥行きデータの4倍の量のデータについて、各画素毎に書込み及び読出しをすることになる。従って、2×2倍のマルチサンプルアンチエイリアスでは、1画素について64×4で256ビットのデータの読み書きが必要になる。このように、図6に示すようなデータにより以下に説明するアンチエイリアス処理を実行することにより、大幅に1画素あたりのビット数及びメモリアクセス量を削減することができる。
【0024】
図1のアンチエイリアス回路11において、奥行き・距離補間部31は、補間位置に隣接するある画素の奥行きとその画素が含まれる図形の端までの距離とに基づいて、補間位置における奥行きと前記図形の端までの距離とを求める処理を実行する。奥行き・距離補間部31は、補間位置に隣接する複数の画素のそれぞれに対して上記の処理を実行することにより、補間位置における複数の奥行きと複数の距離とを求める。奥行き・距離比較部32は、奥行き・距離補間部31が求めた補間位置における複数の奥行きと複数の距離とを複数の画素間で比較する。画素色決定部33は、複数の画素の色及び奥行き・距離補間部31が求めた補間位置における複数の奥行きと複数の距離とに基づいて、補間位置における色を決定する。この際、画素色決定部33は、奥行き・距離比較部32による複数の奥行きの比較結果と複数の距離の比較結果と、複数の画素の色とに基づいて、補間位置における色を決定してよい。また画素ブレンド部34は、1つの着目画素の位置に隣接する複数の補間位置について画素色決定部33が決定した色と、上記1つの着目画素の色とを混合することにより、当該1つの着目画素の新たな色を求める。このようにして求めた新たな色(色の輝度データ)が、エイリアス低減後の画素データとなる。
【0025】
図7は、奥行き・距離補間部31の処理を説明するための図である。(a)に画素A乃至Dが示される。これら画素A乃至Dは、グラフィクス処理回路10のテクスチャユニット28がフレームバッファ12に書き込んだ画素である。(a)に示されるように、各画素A乃至Dの間に補間位置51を想定する。次に(b)に示されるように、奥行き・距離補間部31は、座標(x,y)にある画素Aの距離(画素Aから画素Aが含まれる図形の端までの距離)に基づいて、画素Aに隣接する補間位置における距離を求める。具体的には、画素Aの距離d0(x,y)、d1(x,y)、d2(x,y)のうちで最も小さい値を画素Aの距離値とし、d0(x+0.5,y)、d1(x+0.5,y)、d2(x+0.5,y)のうち最も小さい値を補間位置(x+0.5,y)の距離値とする。ここでd0(x+0.5,y)、d1(x+0.5,y)、d2(x+0.5,y)は、それぞれ以下のようにして求めることができる。
【0026】
d0(x+0.5,y)=d0(x,y)+a0/2D0
d1(x+0.5,y)=d1(x,y)+a1/2D1
d2(x+0.5,y)=d2(x,y)+a2/2D2
図7(b)に示す例では、画素Aから求めた補間位置(x+0.5,y)の距離値は0.5である。同様にして、d0(x,y+0.5)、d1(x,y+0.5)、d2(x,y+0.5)のうち最も小さい値を補間位置(x,y+0.5)の距離値とする。図7(b)に示す例では、画素Aから求めた補間位置(x,y+0.5)の距離値は0.3である。更に、d0(x+0.5,y+0.5)、d1(x+0.5,y+0.5)、d2(x+0.5,y+0.5)のうち最も小さい値を補間位置(x+0.5,y+0.5)の距離値とする。図7(b)に示す例では、画素Aから求めた補間位置(x+0.5,y+0.5)の距離値は0.7である。
【0027】
更に図7(c)に示されるように、奥行き・距離補間部31は、座標(x,y+1)にある画素Bの距離(画素Bから画素Bが含まれる図形の端までの距離)に基づいて、画素Bに隣接する補間位置における距離を求める。この例では、画素Bから求めた補間位置(x+0.5,y+1)の距離値は0.1である。また画素Bから求めた補間位置(x,y+0.5)の距離値は−0.1である。更に画素Bから求めた補間位置(x+0.5,y+0.5)の距離値は−0.2である。
【0028】
図12は、図7に示す画素Aと画素Bの間の補間位置における距離値の意味を説明するための図である。図12には、図7に示す画素A乃至Dが示される。図12に示される画素Aと画素Bとの間の補間位置51において、画素Aから求めた距離は0.3である。これは、画素Aが含まれる図形である三角形61の端までの補間位置51からの距離が0.3であることを意味する。また図12に示される画素Aと画素Bとの間の補間位置51において、画素Bから求めた距離は−0.1である。これは、画素Bが含まれる図形である三角形62の端までの補間位置51からの距離が−0.1であることを意味する。ここで距離が正の値である場合には、当該補間位置が対応する図形内に位置することを示し、距離が負の値である場合には、当該補間位置が対応する図形外に位置することを示す。即ち、補間位置51は、三角形61の内部にあるが、三角形62の外部にある。この場合、補間位置51の内挿色(補間色)としては、三角形61の内部の画素の色とすることが好ましい。
【0029】
図8は、奥行き・距離比較部32及び画素色決定部33の処理を説明するための図である。図8(a)に示されるように、画素Aと画素Bとの間の補間位置(仮想画素Eとして示す)において、画素Aから求めた距離は0.3であり、画素Bから求めた距離は−0.1である。奥行き・距離比較部32は、これら複数の距離(0.3及び−0.1)を比較する。この場合、小さい方の距離(−0.1)が負の値であるので、図12で説明したように、補間位置の仮想画素Eの補間色を求めるにあたり、この負の距離に対応する画素Bの画素色は考慮しない。従って画素色決定部33は、(b)に示すように、仮想画素Eの色として、正の距離に対応する画素Aの画素色と同一色を用いる。
【0030】
図9は、奥行き・距離補間部31、奥行き・距離比較部32、及び画素色決定部33の処理を説明するための別の例を示す図である。図9の例では、(a)に示されるように、画素Aと画素Bとの間の補間位置(仮想画素Eとして示す)において、画素Aから求めた距離は0.3であり、画素Bから求めた距離は0.2である。
【0031】
図13は、図9に示す画素Aと画素Bの間の補間位置における距離値の意味を説明するための図である。図13には、図9に示す画素A乃至Dが示される。図13に示される画素Aと画素Bとの間の補間位置51において、画素Aから求めた距離は0.3である。これは、画素Aが含まれる図形である三角形61の端までの補間位置51からの距離が0.3であることを意味する。また図13に示される画素Aと画素Bとの間の補間位置51において、画素Bから求めた距離は0.2である。これは、画素Bが含まれる図形である三角形63の端までの補間位置51からの距離が0.2であることを意味する。ここで距離が正の値である場合には、当該補間位置が対応する図形内に位置することを示すので、補間位置51は、両方の三角形61及び63の内部にある。このように複数の距離が正の値を有する場合、即ち補間位置が複数の図形内に含まれる場合には、補間位置の奥行き値に基づいて補間位置の補間色を決定する。具体的には、補間位置の奥行き値が小さい方に対応する三角形の方が手前にある筈なので、補間位置51の内挿色(補間色)としては、この手前にある三角形の内部の画素の色を用いることが好ましい。
【0032】
図9(b)に示すように、奥行き・距離補間部31は、座標(x,y)にある画素Aの奥行き値に基づいて、画素Aに隣接する補間位置における奥行きを求める。この例では、画素Aから求めた補間位置(x+0.5,y)の奥行き値は24である。また画素Aから求めた補間位置(x,y+0.5)の奥行き値は23である。更に画素Aから求めた補間位置(x+0.5,y+0.5)の奥行き値は27である。
【0033】
更に図9(c)に示すように、奥行き・距離補間部31は、座標(x,y+1)にある画素Bの奥行き値に基づいて、画素Bに隣接する補間位置における奥行きを求める。この例では、画素Bから求めた補間位置(x+0.5,y+1)の奥行き値は1である。また画素Bから求めた補間位置(x,y+0.5)の奥行き値は8である。更に画素Bから求めた補間位置(x+0.5,y+0.5)の奥行き値は4である。
【0034】
(d)に示されるように、画素Aと画素Bとの間の補間位置(仮想画素Eとして示す)において、画素Aから求めた奥行き値は23であり、画素Bから求めた奥行き値は8である。奥行き・距離比較部32は、これら複数の奥行き値(23及び8)を比較する。この場合、小さい方の奥行き値(8)に対応する画素は画素Bである。従って、図12で説明したように、補間位置の仮想画素Eの補間色を求めるにあたり、画素Aの画素色は考慮しない。画素色決定部33は、(e)に示すように、仮想画素Eの色として、小さい方の奥行き値に対応する画素Bの画素色と同一色を用いる。このように画素色決定部33は、複数の距離のうちで負の値以外のものに対応する複数の奥行きのうちで最も小さいものを求め、この最も小さい奥行きに対応する画素の色を補間位置における色とする。
【0035】
図10は、奥行き・距離比較部32及び画素色決定部33の処理を説明するための更に別の例を示す図である。図10の例では、(a)に示されるように、画素Aと画素Bとの間の補間位置(仮想画素Eとして示す)において、画素Aから求めた距離は−0.3であり、画素Bから求めた距離は−0.2である。
【0036】
図14は、図10に示す画素Aと画素Bの間の補間位置における距離値の意味を説明するための図である。図14には、図10に示す画素A乃至Dが示される。図14に示される画素Aと画素Bとの間の補間位置51において、画素Aから求めた距離は−0.3である。これは、画素Aが含まれる図形である三角形64の端までの補間位置51からの距離が−0.3であり、補間位置51が三角形64の外部にあることを意味する。また図14に示される画素Aと画素Bとの間の補間位置51において、画素Bから求めた距離は−0.2である。これは、画素Bが含まれる図形である三角形65の端までの補間位置51からの距離が−0.2であり、補間位置51が三角形65の外部にあることを意味する。このように複数の距離が全て負の値を有する場合、即ち補間位置が全ての図形の外にある場合、複数の距離の比に応じて複数の画素の色を合成することにより、補間位置の補間色を決定する。
【0037】
図10(a)に示されるように、画素Aと画素Bとの間の補間位置(仮想画素Eとして示す)において、画素Aから求めた距離は−0.3であり、画素Bから求めた距離は−0.2である。奥行き・距離比較部32は、これら複数の距離(−0.3及び−0.2)を比較して、それぞれの距離の比を求める。即ち、0.3/(0.3+0.2)=0.6と0.2/(0.3+0.2)=0.4とを求める。画素色決定部33は、(b)に示すように、仮想画素Eの色として、上記求めた比率0.4と0.6とで重み付けして画素Aの画素色と画素Bの画素色とを混合する。(c)は、画素Aの画素色と画素Bの画素色とを混合して仮想画素Eの色が求められた様子を示す。
【0038】
図11は、画素ブレンド部34の処理を説明するための図である。上記の図7乃至10を参照して説明した手順により、仮想画素Eの補間色を求めることができる。更に同様にして、仮想画素Fの補間色及び仮想画素Gの補間色を求めることができる。なお仮想画素Gの補間色の求め方については後程説明する。図11(a)は、仮想画素E乃至Gのそれぞれについて補間色(内挿色)を求めた様子を示す。画素ブレンド部34は、1つの着目画素Aの位置に隣接する複数の補間位置(仮想画素E乃至G)について画素色決定部33が決定した色と1つの着目画素Aの色とを混合することにより、1つの着目画素Aの新たな色(アンチエイリアス処理後の色)を求める。例えば画素ブレンド部34は、画素Aの色、仮想画素Eの色、仮想画素Fの色、仮想画素Gの色の平均を計算することにより、画素Aのアンチエイリアス処理後の画素値を求める。即ち各画素色がA,E,F,Gであるとして、(A+E+F+G)/4を計算する。図11(b)は、画素Aのアンチエイリアス処理後の画素値A’が求められた様子を示す。画素ブレンド部34は、同様にしてフレームバッファ12に格納されている各画素についてアンチエイリアス処理後の画素値を求めていく。
【0039】
図15は、アンチエイリアス回路11によるアンチエイリアス処理の流れを示すフローチャートである。ステップS1において、座標値yを0に初期化し、yを1ずつインクリメントしながら、画面高さのy値に到達するまで以下のステップの処理をループにより繰り返す。ステップS2において、座標値xを0に初期化し、xを1ずつインクリメントしながら、画面横幅のx値に到達するまで以下のステップの処理をループにより繰り返す。即ち、ステップS1及びS2のループにより、フレームバッファ12に格納される画像データの各画素を着目画素として読み出して、順番にアンチエイリアス処理を実行する。まずステップS3で、着目画素を画素Aとして、前述のように画素A及び画素Bに基づいて仮想画素Eの画素値を求める。ステップS4で、画素A及び画素Cに基づいて仮想画素Fの画素値を求める。更にステップS5で、画素A乃至Dに基づいて仮想画素Gの画素値を求める。ステップS7で、画素A、E、F、Gの例えば平均値を求めることにより、画素Aのアンチエイリアス処理後の画素値を求める。ステップS1及びS2で開始したループが終了すると、アンチエイリアス処理を終了する。
【0040】
図16は、図15のステップS4乃至S6の各ステップで実行される補間色決定処理の流れを示すフローチャートである。ステップS1で、着目補間位置に対して求めた複数の距離値が全て負の値であるか否かを判定する。1つでも正の値がある場合には、処理はステップS2に進む。ステップS2において、負の値である距離値に対応する画素を除外する。例えば図8(a)に示されるように、画素Aと画素Bとの間の補間位置(仮想画素E)において、画素Aから求めた距離が0.3であり、画素Bから求めた距離が−0.1である場合、負の距離−0.1に対応する画素Bを以下の処理から除外する。また例えば、画素A乃至Dの間の補間位置(仮想画素G)において、画素Aから求めた距離が0.3、画素Bから求めた距離が−0.1、画素Cから求めた距離が0.2、画素Dから求めた距離が−0.7であるとする。この場合、負の距離−0.1に対応する画素B及び負の距離−0.7に対応する画素Dを以下の処理から除外する。
【0041】
ステップS3において、上記の除外された画素以外の画素から求めた補間位置における奥行き値のうちで、最も小さい奥行き値を求め、その最小奥行き値に対応する画素を選択する。例えば画素Aと画素Bとの間の補間位置(仮想画素E)において、画素Aから求めた距離が0.3であり、画素Bから求めた距離が−0.1である場合、負の距離−0.1に対応する画素Bを除外し、残りのうちの最小奥行き値0.3に対応する画素Aを選択する。また例えば、画素A乃至Dの間の補間位置(仮想画素G)において、画素Aから求めた距離が0.3、画素Bから求めた距離が−0.1、画素Cから求めた距離が0.2、画素Dから求めた距離が−0.7であるとする。この場合、負の距離−0.1に対応する画素B及び負の距離−0.7に対応する画素Dを除外し、残りのうちの最小奥行き値0.2に対応する画素Cを選択する。
【0042】
ステップS4で、奥行き値が最小として選択された画素の色を補間位置の色とする。即ち、上記の画素Aと画素Bとの間の補間位置(仮想画素E)の例では、画素Aの画素色を補間位置の補間色とする。また上記の画素A乃至Dの間の補間位置(仮想画素G)の例では、画素Cの画素色を補間位置の補間色とする。
【0043】
ステップS1で全ての距離が負の値であると判定された場合、処理はステップS5に進み、複数の距離の比に応じて複数の画素の色を混合する。例えば画素Aから求めた距離値がdAであり、画素Bから求めた距離値がdBである場合、画素Aと画素Bとの間の仮想画素Eの補間色は例えば(dB×A+dA×B)/(dA+dB)としてよい。画素A、B、C、Dの中心に位置する仮想画素Gを補間する場合は、画素A、B、C、Dから求めた距離値をそれぞれdA、dB、dC、dDとして、仮想画素Gの補間色を例えば、
【0044】
【数1】

としてよい。以上で補間色決定処理が終了する。
【0045】
図17は、アンチエイリアス回路11のより具体的な回路構成の一例を示す図である。アンチエイリアス回路11は、ラインバッファである画素情報保持RAM71を更に含む。例えば図7乃至11に示すように、画素Aのアンチエイリアス処理を行なうためには、画素Aについての例えば図6に示すデータだけでなく、画素C乃至Dについても同様のデータをフレームバッファ12から読み出す必要がある。各画素についてアンチエイリアス処理を行なう度に、その画素のデータに加えて近傍3画素のデータを読み出すとすると、メモリアクセス量が多くなってしまう。そこで画素情報保持RAM71として3ライン(画像の水平ライン)又はそれ以上の画素データを保持できるようにする。
【0046】
図18は、画素情報保持RAM71の読み書き処理について説明するための図である。画素情報保持RAM71は、少なくともラインメモリ91乃至93を含む。ラインメモリ91乃至93の各ラインメモリが、アンチエイリアス処理対象の2次元画像の1水平ライン分のデータを格納できる。まず図18の上段に示すように、ラインメモリ91及び92に画像の2ラインを読み込んで、この2ライン分のデータを用いてラインメモリ91の各画素に対するアンチエイリアス処理を実行する。例えば図7乃至11に示した例の場合であれば、画素A及び画素Cがラインメモリ91に格納される画素列の一部であり、画素B及び画素Dがラインメモリ92に格納される画素列の一部である。前述のアンチエイリアス処理を実行することにより、画素A及び画素Cを含むラインメモリ91に格納される画素列の各画素についてのアンチエイリアス処理後の画素値が求められる。このアンチエイリアス処理により求められたアンチエイリアス処理後の画素値は、画素ブレンド部34からフレームバッファ12に書き込まれる。ラインメモリ91に対するアンチエイリアス処理を実行するのと並行して、次の水平ラインの画素データがフレームバッファ12からラインメモリ93に読み込まれる。
【0047】
次に図18の下段に示すように、ラインメモリ92及び93の2ライン分のデータを用いてラインメモリ92の各画素に対するアンチエイリアス処理を実行する。例えば図7乃至11に示した例の場合であれば、画素B及び画素Dを含むラインメモリ92に格納される画素列の各画素についてのアンチエイリアス処理後の画素値が求められる。このアンチエイリアス処理により求められたアンチエイリアス処理後の画素値は、画素ブレンド部34からフレームバッファ12に書き込まれる。ラインメモリ92に対するアンチエイリアス処理を実行するのと並行して、次の水平ラインの画素データがフレームバッファ12からラインメモリ91に読み込まれる。前回のアンチエイリアス処理に用いたラインメモリ91の画素列のデータは既に不要となっているので、フレームバッファ12から読み出した画素データによりラインメモリ91を上書きして問題ない。
【0048】
以上のように、小容量で高速の画素情報保持RAM71をアンチエイリアス回路11に設け、各画素のデータをフレームバッファ12から画素情報保持RAM71に1回だけ読出し、アンチエイリアス処理においては画素情報保持RAM71の画素データを参照する。このような構成とすることで、フレームバッファ12からの画素データの読出しは、各画素について1回のみとすることができ、メモリアクセス量を必要最小限とすることが可能となる。
【0049】
図17に戻り、奥行き・距離補間部31は、加算回路72及び73を含む。加算回路72は、着目画素の奥行き値に奥行き値のx方向増分又はy方向増分を加算することで、補間位置の奥行き値を求める。加算回路73は、着目画素の距離値に距離値のx方向増分又はy方向増分を加算することで、補間位置の距離値を求める。前述の図7乃至11を用いた説明では、説明の便宜上、距離値を求めてからその後奥行き値を求めるかのように説明したが、実際には図17に示すように距離値計算及び奥行き値計算を並行して実行すればよい。
【0050】
奥行き・距離比較部32は、奥行き値保持バッファ74、距離値保持バッファ75、奥行き値比較回路76、及び距離値比較回路77を含む。奥行き値保持バッファ74は、着目補間位置に隣接する複数の画素から求めた複数の奥行き値を保持する。距離値保持バッファ75は、着目補間位置に隣接する複数の画素から求めた複数の距離値を保持する。奥行き値比較回路76は、奥行き値保持バッファ74に格納される複数の奥行き値を互いに比較し、比較結果を画素色決定部33に供給する。この比較結果は、例えば複数の奥行き値のうちで最も小さい奥行き値から奥行き値の大きさ順に奥行き値を並べ、この奥行き値の並びに対応する画素の並びを示す情報であってよい。距離値比較回路77は、距離値保持バッファ75に格納される複数の距離値を互いに比較し、比較結果を画素色決定部33に供給する。この比較結果は、距離値が負の値である画素を特定する情報、距離値が正の値である画素を特定する情報、及び正の値の距離値の比率(重み)を示す情報であってよい。
【0051】
画素色決定部33は、画素選択・ブレンド部78及び画素色保持バッファ79を含む。画素選択・ブレンド部78は、奥行き値比較回路76からの奥行き値比較結果と、距離値比較回路77からの距離値比較結果と、画素情報保持RAM71から読み出した複数の画素の色とに基づいて、着目補間位置における色を決定する。複数の距離が全て負の値であることを距離値比較結果が示す場合には、距離値比較結果が示す距離値の比に応じて、複数の画素の色を合成する。複数の距離に正の値があることを距離値比較結果が示す場合には、距離値比較結果が特定する正の距離値の画素のうちで、奥行き値比較結果が示す最も小さい奥行き値の画素を特定し、この特定された画素の色を着目補間位置における色とする。画素選択・ブレンド部78が求めた着目補間位置の補間色は、画素色保持バッファ79に格納される。
【0052】
奥行き・距離補間部31、奥行き・距離比較部32、及び画素色決定部33は、1つの着目画素(例えば図11の画素A)に隣接する複数の補間位置(例えば図11の仮想画素E、F、G)について、上記と同様の処理を繰り返し、複数の補間位置の補間色を求める。複数の補間位置について求めた複数の補間色は、画素色保持バッファ79に格納される。また着目画素の画素色も画素色保持バッファ79に格納される。画素ブレンド部34は、画素色保持バッファ79に格納された複数の補間位置の補間色と着目画素の画素色とを混合することにより、着目画素のアンチエイリアス処理後の画素色を求め、フレームバッファ12に格納する。フレームバッファ12に格納するアンチエイリアス処理後の画素色は、既存の着目画素の画素色データを上書きするように書き込まれてよい。或いは、別の画像データとして書き込まれてよい。
【0053】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【0054】
なお本願発明は、以下の内容を含むものである。
(付記1)
補間位置に隣接するある画素の奥行きと該画素が含まれる図形の端までの距離とに基づいて前記補間位置における奥行きと前記図形の端までの距離とを求める処理を前記補間位置に隣接する複数の画素のそれぞれに対して実行することにより、前記補間位置における複数の奥行きと複数の距離とを求める補間部と、
前記複数の画素の色及び前記補間部が求めた前記補間位置における前記複数の奥行きと前記複数の距離とに基づいて、前記補間位置における色を決定する画素色決定部と
を含むことを特徴とする画像処理装置。
(付記2)
1つの着目画素の位置に隣接する複数の補間位置について前記画素色決定部が決定した色と前記1つの着目画素の色とを混合することにより、前記1つの着目画素の新たな色を求める画素色混合部を更に含むことを特徴とする付記1記載の画像処理装置。
(付記3)
前記画素色決定部は、前記複数の距離が全て負の値の場合には前記複数の距離の比に応じて前記複数の画素の色を合成し、前記複数の距離が全て負の値である以外の場合には、前記複数の距離のうちで負の値以外のものに対応する前記複数の奥行きのうちで最も小さいものを求め、前記複数の画素のうちで該最も小さい奥行きに対応する画素の色を前記補間位置における色とすることを特徴とする付記1又は2記載の画像処理装置。
(付記4)
前記補間部が求めた前記補間位置における前記複数の奥行きと前記複数の距離とを前記複数の画素間で比較する比較部を更に含み、前記画素色決定部は、前記比較部による複数の奥行きの比較結果と複数の距離の比較結果と、前記複数の画素の色とに基づいて、前記補間位置における色を決定することを特徴とする付記1記載の画像処理装置。
(付記5)
補間位置に隣接するある画素の奥行きと該画素が含まれる図形の端までの距離とに基づいて前記補間位置における奥行きと前記図形の端までの距離とを求める処理を前記補間位置に隣接する複数の画素のそれぞれに対して実行することにより、前記補間位置における複数の奥行きと複数の距離とを求め、
前記複数の奥行きと、前記複数の距離と、前記複数の画素の色とに基づいて、前記補間位置における補間色を決定し、
1つの着目画素の位置に隣接する複数の補間位置について決定した前記補間色と前記1つの着目画素の色とを混合することにより、前記1つの着目画素の新たな色を求める
各段階を含むことを特徴とする画像処理方法。
(付記6)
前記補間色を決定する段階は、前記複数の距離が全て負の値の場合には前記複数の距離の比に応じて前記複数の画素の色を合成し、前記複数の距離が全て負の値である以外の場合には、前記複数の距離のうちで負の値以外のものに対応する前記複数の奥行きのうちで最も小さいものを求め、前記複数の画素のうちで該最も小さい奥行きに対応する画素の色を前記補間位置における色とすることを特徴とする付記5記載の画像処理方法。
(付記7)
メモリと、
各画素について画素色、奥行き、及び該画素が含まれる図形の端までの距離を計算して前記メモリに格納する画像描画部と、
前記メモリから前記奥行き及び前記距離を読み出して、補間位置に隣接するある画素の前記奥行きと前記距離とに基づいて前記補間位置における奥行きと距離とを求める処理を前記補間位置に隣接する複数の画素のそれぞれに対して実行することにより、前記補間位置における複数の奥行きと複数の距離とを求める補間部と、
前記複数の画素について前記メモリから読み出した前記画素色、及び前記補間部が求めた前記補間位置における前記複数の奥行きと前記複数の距離とに基づいて、前記補間位置における色を決定する画素色決定部と、
1つの着目画素の位置に隣接する複数の補間位置について前記画素色決定部が決定した色と前記1つの着目画素の色とを混合することにより、前記1つの着目画素の新たな色を求める画素色混合部と、
前記画素色混合部により求めた画素色を有する画素により構成された画像を表示する画像表示部
を含むことを特徴とする画像システム。
【符号の説明】
【0055】
10 グラフィクス処理回路
11 アンチエイリアス回路
12 フレームバッファ
13 ディスプレイ装置
21 頂点バッファ
22 座標変換・ライティング処理部
23 頂点後処理部
24 ラスタライズ処理部
25 画素処理部
26 画素後処理部
27 メモリアクセス部
28 テクスチャユニット
29 距離情報算出部
31 奥行き・距離補間部
32 奥行き・距離比較部
33 画素色決定部
34 画素ブレンド部

【特許請求の範囲】
【請求項1】
補間位置に隣接するある画素の奥行きと該画素が含まれる図形の端までの距離とに基づいて前記補間位置における奥行きと前記図形の端までの距離とを求める処理を前記補間位置に隣接する複数の画素のそれぞれに対して実行することにより、前記補間位置における複数の奥行きと複数の距離とを求める補間部と、
前記複数の画素の色及び前記補間部が求めた前記補間位置における前記複数の奥行きと前記複数の距離とに基づいて、前記補間位置における色を決定する画素色決定部と
を含むことを特徴とする画像処理装置。
【請求項2】
1つの着目画素の位置に隣接する複数の補間位置について前記画素色決定部が決定した色と前記1つの着目画素の色とを混合することにより、前記1つの着目画素の新たな色を求める画素色混合部を更に含むことを特徴とする請求項1記載の画像処理装置。
【請求項3】
前記画素色決定部は、前記複数の距離が全て負の値の場合には前記複数の距離の比に応じて前記複数の画素の色を合成し、前記複数の距離が全て負の値である以外の場合には、前記複数の距離のうちで負の値以外のものに対応する前記複数の奥行きのうちで最も小さいものを求め、前記複数の画素のうちで該最も小さい奥行きに対応する画素の色を前記補間位置における色とすることを特徴とする請求項1又は2記載の画像処理装置。
【請求項4】
前記補間部が求めた前記補間位置における前記複数の奥行きと前記複数の距離とを前記複数の画素間で比較する比較部を更に含み、前記画素色決定部は、前記比較部による複数の奥行きの比較結果と複数の距離の比較結果と、前記複数の画素の色とに基づいて、前記補間位置における色を決定することを特徴とする請求項1記載の画像処理装置。
【請求項5】
補間位置に隣接するある画素の奥行きと該画素が含まれる図形の端までの距離とに基づいて前記補間位置における奥行きと前記図形の端までの距離とを求める処理を前記補間位置に隣接する複数の画素のそれぞれに対して実行することにより、前記補間位置における複数の奥行きと複数の距離とを求め、
前記複数の奥行きと、前記複数の距離と、前記複数の画素の色とに基づいて、前記補間位置における補間色を決定し、
1つの着目画素の位置に隣接する複数の補間位置について決定した前記補間色と前記1つの着目画素の色とを混合することにより、前記1つの着目画素の新たな色を求める
各段階を含むことを特徴とする画像処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate


【公開番号】特開2011−28641(P2011−28641A)
【公開日】平成23年2月10日(2011.2.10)
【国際特許分類】
【出願番号】特願2009−175561(P2009−175561)
【出願日】平成21年7月28日(2009.7.28)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】