(57)【要約】【課題】  頂点の属性データに基づいてピクセルの属性データを補間する際の処理負荷を軽減する技術的手段を提供する。【解決手段】  セットアップ部２２は、３次元位置座標属性ＰＯＳのＮＺ成分および１／Ｗ成分と、テクスチャ座標属性ＵＶのＵ成分およびＶ成分とをマージする。その後、セットアップ部２２は、Ｕ成分、Ｖ成分、ＮＺ成分および１／Ｗ成分の各々の補間係数を算出する。補間演算部２４の補間器２４１は、Ｕ成分、Ｖ成分、ＮＺ成分および１／Ｗ成分の各々の補間演算を並列して行う。補間演算部２４は、補間演算後のＵ成分およびＶ成分と、補間演算後のＮＺ成分および１／Ｗ成分とを分離する。【選択図】図３
2015212890.tif 000002
【特許請求の範囲】
【請求項１】
プリミティブの各頂点の複数種類の属性データの成分に基づいて前記プリミティブを表す各ピクセルの複数種類の属性データの成分を補間する補間処理手段を有し、
前記補間処理手段は、所定時間内に所定数の成分の補間演算を行う１補間単位を所定数利用し、成分の個数が１補間単位の成分数に満たない複数種類の属性データの各成分を統合して、統合した各成分の補間演算を１補間単位を利用して行うことを特徴とする画像処理装置。
【請求項２】
前記プリミティブの各頂点についての複数種類の属性データの中の第１の種類の属性データは、当該頂点の３次元位置座標属性の成分を含み、第２の種類の属性データは、２個以下の成分を含み、
前記補間処理手段は、前記第１の種類の属性データから前記３次元位置座標属性のＸ成分およびＹ成分を除いた成分と、前記第２の種類の属性データの成分とを統合し、統合した各成分の補間演算を前記１補間単位を利用して行うことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記補間処理手段は、
成分毎の補間係数を算出する補間係数演算手段と、
前記補間係数演算手段が算出する前記補間係数と描画対象のピクセルのＸ座標およびＹ座標とから補間演算を行う補間演算手段と、を有し、
前記補間係数演算手段は、前記３次元位置座標属性のＸ成分およびＹ成分を除いた成分と前記第２の種類の属性データの成分とを統合して、統合した各成分の補間係数を算出し、
前記補間演算手段は、前記３次元位置座標属性のＸ成分およびＹ成分を除いた成分の補間演算と、前記第２の種類の属性データの成分の補間演算とを、並列して行うことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記第２の種類の属性データは、テクスチャ座標属性の属性データであることを特徴とする請求項２または３に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、３次元空間内のオブジェクトを２次元のスクリーンに表示するための画像処理装置に関する。
【背景技術】
【０００２】
３次元コンピュータグラフィクスでは、３次元空間内のオブジェクトの表面を複数のプリミティブ（例えば、三角形や四角形などのポリゴン）の集合とみなし、各プリミティブの描画処理を行う。三角形などのプリミティブは、その各頂点を結んだ直線により表現される。このプリミティブをディスプレイに表示する際、画像処理装置は、プリミティブを表現する形式を各頂点を結んだ直線による表現形式からピクセルを並べた表現形式に変換するラスタライズを行う。なお、この種の画像処理装置に関する技術は、例えば、特許文献１に開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−２５３７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ラスタライズ前のプリミティブの各頂点には、当該プリミティブに関する各種のデータが与えられる。本明細書では、プリミティブの頂点に与えられるデータの種類（例えば、３次元位置座標、テクスチャ座標、色座標、法線など）を頂点属性（あるいは、単に属性）と呼ぶ。また、頂点属性のデータのことを属性データと呼ぶ。この種の画像処理装置では、ラスタライズによりプリミティブをピクセルで表現するとともに、頂点の属性データに基づきピクセルの属性データを補間する処理を行う。例えば、三角形のプリミティブの第１の頂点にテクスチャ座標属性の属性データＵ＿１が、同第２の頂点にテクスチャ座標属性の属性データＵ＿２が、同第３の頂点にテクスチャ座標属性の属性データＵ＿３が与えられており、これらＵ＿１、Ｕ＿２およびＵ＿３に基づいて、ピクセルのテクスチャ座標属性の属性データＵ＿Ｐを補間する、という具合である。
【０００５】
図１０は、従来の画像処理装置５が有する従来の補間装置５０の構成例を示すブロック図である。補間装置５０は、頂点の属性データに基づいてピクセルの属性データを補間する装置である。図１０の例では、プリミティブの各頂点には、４種類の頂点属性（３次元位置座標属性、テクスチャ座標属性、色座標属性、法線属性）の属性データが与えられている。この例における補間装置５０は、補間器５０１〜５０４を有する。補間器５０１は、各頂点の３次元位置座標属性ＰＯＳの属性データに基づいてピクセルの３次元位置座標属性ＰＯＳの属性データの補間演算を行う回路である。補間器５０２は、各頂点のテクスチャ座標属性ＵＶの属性データに基づいてピクセルのテクスチャ座標属性ＵＶの属性データの補間演算を行う回路である。補間器５０３は、各頂点の色座標属性ＣＯＬの属性データに基づいてピクセルの色座標属性ＣＯＬの属性データの補間演算を行う回路である。補間器５０４は、各頂点の法線属性Ｎの属性データに基づいてピクセルの法線属性Ｎの属性データの補間演算を行う回路である。
【０００６】
図１１は、図１０の補間装置５０における補間処理の流れの概略を示す図である。補間装置５０に１番目のクロックが与えられると、補間器５０１は、最初の描画対象（すなわち最初のピクセル）について３次元位置座標属性ＰＯＳの属性データの補間演算を行う。それに後続して、２番目のクロックが与えられると、補間器５０２は、同描画対象についてテクスチャ座標属性ＵＶの属性データの補間演算を行う。同様に、３番目のクロックが与えられると、補間器５０３は、同描画対象について色座標属性ＣＯＬの属性データの補間演算を行い、４番目のクロックが与えられると、補間器５０４は、同描画対象について法線属性Ｎの属性データの補間演算を行う。さらに、５番目のクロックが与えられると、補間器５０１は、次の描画対象について３次元位置座標属性ＰＯＳの属性データの補間演算を行う。以下、同様にして順次補間演算を行う。図１０および図１１に示すように、従来の補間装置５０では、頂点属性の数分の補間器５０１〜５０４を動作させて補間処理を行っている。このため、補間処理の際の処理負荷が大きくなっている。
【０００７】
この発明は以上のような事情に鑑みてなされたものであり、頂点の属性データに基づいてピクセルの属性データを補間する際の処理負荷を軽減する技術的手段を提供することを目的としている。
【課題を解決するための手段】
【０００８】
この発明は、プリミティブの各頂点の複数種類の属性データの成分に基づいて前記プリミティブを表す各ピクセルの複数種類の属性データの成分を補間する補間処理手段を有し、前記補間処理手段は、所定時間内に所定数の成分の補間演算を行う１補間単位を所定数利用し、成分の個数が１補間単位の成分数に満たない複数種類の属性データの各成分を統合して、統合した各成分の補間演算を１補間単位を利用して行うことを特徴とする画像処理装置を提供する。
【０００９】
この発明によれば、成分の個数が１補間単位の成分数に満たない複数種類の属性データの各成分を統合して、統合した各成分の補間演算を１補間単位を利用して行うため、属性毎に補間演算を行う態様に比べ、補間演算の演算回数を減らすことができる。従って、頂点の属性データに基づいてピクセルの属性データを補間する際の処理負荷を軽減することができる。
【図面の簡単な説明】
【００１０】
【図１】この発明の一実施形態である画像処理装置１の構成を示すブロック図である。
【図２】プリミティブおよびその頂点の属性データを例示する図である。
【図３】同画像処理装置１の補間装置２０の構成を詳細に示すブロック図である。
【図４】同画像処理装置１の頂点シェーダ１０の出力レジスタ１００〜１０３に保持されるプリミティブの頂点属性の成分を示す図である。
【図５】頂点属性の各成分に着目して同画像処理装置１のセットアップ部２２の処理の流れを示す図である。
【図６】同画像処理装置１の補間器２４１の構成を示すブロック図である。
【図７】同画像処理装置１のセットアップ部２２の処理の流れを示すフローチャートである。
【図８】頂点属性の各成分に着目して同画像処理装置１の補間演算部２４の処理の流れを示す図である。
【図９】同画像処理装置１の補間演算部２４の処理の流れを示すフローチャートである。
【図１０】従来の画像処理装置５が有する従来の補間装置５０の構成例を示すブロック図である。
【図１１】従来の補間装置５０の補間器５０１〜５０４の処理の流れの概略を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照し、この発明の実施形態について説明する。
＜実施形態＞
［１．画像処理装置の構成の概略］
図１は、この発明の一実施形態である画像処理装置１の構成を示すブロック図である。画像処理装置１は、３次元空間内のオブジェクトを２次元のスクリーンに表示するための装置である。画像処理装置１は、頂点シェーダ１０、補間装置２０およびピクセルシェーダ３０を有している。また、補間装置２０は、セットアップ部２２、補間演算部２４およびラスタライザ２６を有している。これら機能ブロックのうちの少なくとも頂点シェーダ１０、補間装置２０およびピクセルシェーダ３０は、例えば、半導体集積回路により実現される。
【００１２】
頂点シェーダ１０は、３次元空間におけるプリミティブの各頂点の位置を２次元のスクリーン上の位置に変換する処理を行うものである。頂点シェーダ１０には、プリミティブの各頂点の複数種類の頂点属性の属性データが与えられている。本実施形態では、３次元位置座標属性ＰＯＳ、テクスチャ座標属性ＵＶ、色座標属性ＣＯＬおよび法線属性Ｎの各属性データが与えられている。この属性データは、例えば、コントローラ２によって与えられる。
【００１３】
本実施形態における頂点属性についてより詳細に説明する。各頂点属性は、所定個数の成分からなる。具体的には、３次元位置座標属性ＰＯＳは、Ｘ成分、Ｙ成分、正規化されたＺ座標（換言すると、正規化された深さ）を示すＮＺ成分および拡大縮小（スケーリング）を示す１／Ｗ成分からなる。テクスチャ座標属性ＵＶは、Ｕ成分およびＶ成分からなる。色座標属性ＣＯＬは、Ｒ成分、Ｇ成分、Ｂ成分および透明度を示すＡ成分からなる。法線属性Ｎは、ｎＸ成分、ｎＹ成分およびｎＺ成分からなる。また、本実施形態において、１の頂点属性の有する成分の個数の最大は、４個である。
【００１４】
セットアップ部２２は、補間演算部２４による処理およびラスタライザ２６による処理を行うための前処理を行う装置である。セットアップ部２２は、頂点シェーダ１０からプリミティブの各頂点の属性データを取得する。セットアップ部２２は、取得した各頂点の属性データに基づいて、補間演算に用いる補間係数を算出する。セットアップ部２２は、頂点属性の成分毎に補間係数を算出する。セットアップ部２２は、算出した補間係数を補間演算部２４に出力する。また、セットアップ部２２は、プリミティブの各頂点の３次元位置座標属性ＰＯＳの属性データからプリミティブの各頂点間を結ぶ直線の傾き係数を算出する処理も行う。セットアップ部２２は、プリミティブの各頂点の３次元位置座標属性のＸ成分と、同Ｙ成分と、算出した傾き係数とをラスタライザ２６に出力する。セットアップ部２２については、後に詳述する。
【００１５】
ラスタライザ２６は、セットアップ部２２から与えられるＸ成分と、Ｙ成分と、傾き係数とに基づいてラスタライズする装置である。ラスタライズについては、公知の技術であるため説明を省略する。ラスタライザ２６は、ピクセルを４×４の１６ピクセル毎にブロック化する。つまり、ラスタライザ２６によってプリミティブは、ピクセルブロックを並べたもので表現される。ラスタライザ２６は、各ピクセルブロックについて、４×４の１６ピクセルのうちの左上隅のピクセルのＸ座標およびＹ座標を当該ピクセルブロックの代表座標に決定する。ここで、ピクセルの座標を（Ｘｐｊ−ｋ、Ｙｐｊ−ｋ）と表記することとする。符号「ｊ」は、プリミティブ内のピクセルブロック番号（ｊ＝１〜ｍ）を示す。例えば、ｊ＝１は、プリミティブの左上隅のピクセルブロックを示し、ｊ＝ｍは、プリミティブの右下隅のピクセルブロックを示す。また、符号「ｋ」は、ピクセルブロック内のピクセル番号（ｋ＝１〜１６）を示す。例えば、ｋ＝１は、ピクセルブロック内の左上隅のピクセル（すなわち代表ピクセル）を示し、ｋ＝１６はピクセルブロック内の右下隅のピクセルを示す。この表記に従って、ピクセルブロックの代表座標を（Ｘｐｊ−１、Ｙｐｊ−１）と表記する。ピクセルブロックの代表座標（Ｘｐｊ−１、Ｙｐｊ−１）は、描画対象のＸ成分およびＹ成分として利用される。ラスタライザ２６は、各ピクセルブロックの各代表座標（Ｘｐｊ−１、Ｙｐｊ−１）を補間演算部２４に出力する。なお、ピクセルブロックは、４×４の１６ピクセルに限られず、例えば、８×８の６４ピクセルとしても良い。
【００１６】
補間演算部２４は、セットアップ部２２から与えられる頂点属性の成分毎の補間係数と、ラスタライザ２６から与えられるピクセルブロックの代表座標とに基づいて、各ピクセルについて属性データの補間演算を行う装置である。補間演算部２４は、頂点属性の成分毎に補間演算を行う。すなわち、補間演算部２４は、プリミティブの頂点の頂点属性の成分ごとの属性データからプリミティブ内のピクセルの当該成分を算出する。補間演算部２４は、演算結果をピクセルシェーダ３０に出力する。補間演算部２４については、後に詳述する。
【００１７】
ピクセルシェーダ３０は、補間装置２０によってラスタライズされたプリミティブの各ピクセルの色を調整する処理を行うものである。例えば、ピクセルシェーダ３０は、各ピクセルについて、補間されたテクスチャ座標属性の属性データに対応するテクスチャデータをテクスチャメモリ（図示略）から読み出して、そのテクスチャデータを当該ピクセルのカラーデータの演算に用いる、というような処理を行う。ピクセルシェーダ３０は、処理結果をメモリ３に出力する。メモリ３には、各プリミティブについての描画処理結果が蓄積される。そして、メモリ３に蓄積されたデータが表示制御装置（図示略）によって読み出されることにより、３次元空間のオブジェクトがスクリーンに表示される。
以上が、画像表示装置１の構成の概要である。
【００１８】
［２．補間係数の算出式および補間演算式］
次に、補間係数の算出式および補間演算式について説明する。図２は、プリミティブおよびその頂点の属性データを例示する図である。図２（Ａ）は、スクリーン座標系にプリミティブを示したものである。図２（Ａ）では、頂点ｓｃ０、ｓｃ１およびｓｃ２によって三角形のプリミティブＰＴが形成されている。頂点ｓｃ０の座標は（ｘ０、ｙ０）、頂点ｓｃ１の座標は（ｘ１、ｙ１）、頂点ｓｃ２の座標は（ｘ２、ｙ２）である。プリミティブＰＴ内の描画対象の点をｓｃとし、その座標を（ｘ、ｙ）とする。プリミティブＰＴは、描画対象の点ｓｃによって３つの三角形（ｓｃ１、ｓｃ２およびｓｃから形成され面積ΔＡ０を有する三角形、ｓｃ０、ｓｃ２およびｓｃから形成され面積ΔＡ１を有する三角形、ｓｃ０、ｓｃ１およびｓｃから形成され面積ΔＡ２を有する三角形）に分割することができる。プリミティブＰＴの面積ΔＡと三角形の面積ΔＡ０との比率、プリミティブＰＴの面積ΔＡと三角形の面積ΔＡ１との比率およびプリミティブＰＴの面積ΔＡと三角形の面積ΔＡ２との比率は、式（１ｕ）、（１ｖ）および（１ｗ）のように表すことができる。
ｕ＝ΔＡ０／ΔＡ      ・・・（１ｕ）
ｖ＝ΔＡ１／ΔＡ      ・・・（１ｖ）
ｗ＝ΔＡ２／ΔＡ      ・・・（１ｗ）
【００１９】
プリミティブＰＴの各頂点ｓｃ０、ｓｃ１およびｓｃ２には、４成分（Ｓ、Ｔ、Ｒ、Ｑ）を有する属性データが与えられているとする。図２（Ｂ）は、Ｓ成分（あるいは、Ｔ成分、Ｒ成分、Ｑ成分）を表現した座標系にプリミティブＰＴを対応させたものである。Ｓ成分座標系（図２（Ｂ））における座標ｓ０は、スクリーン座標系（図２（Ａ））における頂点ｓｃ０の座標に対応付けられ、Ｓ成分座標系における座標ｓ１は、スクリーン座標系における頂点ｓｃ１の座標に対応付けられ、Ｓ成分座標系における座標ｓ２は、スクリーン座標系における頂点ｓｃ２の座標に対応付けられる。描画対象の点ｓｃにＳ成分の属性データを補間するということは、描画対象の点ｓｃに対応するＳ成分座標系の１点を算出することに相当する。そこで、Ｓ成分座標系のプリミティブＰＴを式（１ｕ）、（１ｖ）および（１ｗ）に示す面積関係と同じ面積関係になる三角形に分割する座標を、描画対象の点ｓｃに補間するＳ成分とする。このため、以下の式（２Ｓ）によって、描画対象の点ｓｃに対応するＳ成分座標系の座標Ｓを算出する。
Ｓ＝ｕ×ｓ０＋ｖ×ｓ１＋ｗ×ｓ２      ・・・（２Ｓ）
例えば、スクリーン座標系において描画対象の点ｓｃが頂点ｓｃ０に近い場合、ΔＡ０が大きくなり式（１ｕ）のｕが大きくなるため、式（２Ｓ）においてｓ０の割合がｓ１およびｓ２に比べ大きくなり、描画対象の点ｓｃに補間するＳ成分は、ｓ０の寄与が大きなものになる、という具合である。
【００２０】
Ｓ成分について説明したが、Ｔ成分、Ｒ成分およびＱ成分についてもＳ成分と同様である。すなわち、Ｔ成分座標系、Ｒ成分座標系およびＱ成分座標系の各々のプリミティブＰＴを式（１ｕ）、（１ｖ）および（１ｗ）に示す面積関係と同じ面積関係になる三角形に分割する座標を、描画対象の点ｓｃに補間するＴ成分、Ｒ成分およびＱ成分とする。このため、以下の式（２Ｔ）、（２Ｒ）および（２Ｑ）によって、描画対象の点ｓｃに対応するＴ成分座標系の座標Ｔ、同Ｒ成分座標系の座標Ｒおよび同Ｑ成分座標系の座標Ｑを算出する。
Ｔ＝ｕ×ｔ０＋ｖ×ｔ１＋ｗ×ｔ２      ・・・（２Ｔ）
Ｒ＝ｕ×ｒ０＋ｖ×ｒ１＋ｗ×ｒ２      ・・・（２Ｒ）
Ｑ＝ｕ×ｑ０＋ｖ×ｑ１＋ｗ×ｑ２      ・・・（２Ｑ）
式（２Ｓ）〜（２Ｑ）に示すように、描画対象の点ｓｃの属性データは、成分（Ｓ、Ｔ、Ｒ、Ｑ）毎に算出される。
【００２１】
各三角形の面積ΔＡ０、ΔＡ１およびΔＡ２は、三角形を形成する２辺の外積で求めることができる。このため、面積比率は、頂点ｓｃ０、ｓｃ１およびｓｃ２の各座標で表すことができる。従って、式（２Ｓ）、（２Ｔ）、（２Ｒ）および（２Ｑ）は、次式（３Ｓ）、（３Ｔ）、（３Ｒ）および（３Ｑ）に変形することができる。
Ｓ＝Ｓ＿ａ×ｘ＋Ｓ＿ｂ×ｙ＋Ｓ＿ｃ      ・・・（３Ｓ）
Ｔ＝Ｔ＿ａ×ｘ＋Ｔ＿ｂ×ｙ＋Ｔ＿ｃ      ・・・（３Ｔ）
Ｒ＝Ｒ＿ａ×ｘ＋Ｒ＿ｂ×ｙ＋Ｒ＿ｃ      ・・・（３Ｒ）
Ｑ＝Ｑ＿ａ×ｘ＋Ｑ＿ｂ×ｙ＋Ｑ＿ｃ      ・・・（３Ｑ）
式（３Ｓ）〜（３Ｑ）におけるｘおよびｙは、スクリーン座標系における描画対象の点ｓｃの座標（ｘ、ｙ）である。また、Ｓ＿ａ、Ｓ＿ｂ、Ｓ＿ｃ、Ｔ＿ａ、Ｔ＿ｂ、Ｔ＿ｃ、Ｒ＿ａ、Ｒ＿ｂ、Ｒ＿ｃ、Ｑ＿ａ、Ｑ＿ｂおよびＱ＿ｃは、補間係数である。すなわち、描画対象の点ｓｃの座標と補間係数とから描画対象の点ｓｃにおける補間演算を行うことができる。例えば、式（３Ｓ）に示す式によって、当該描画対象の点の座標（ｘ、ｙ）と、補間係数Ｓ＿ａ、Ｓ＿ｂ、およびＳ＿ｃとから頂点属性のＳ成分の補間演算を行うことができる、という具合である。また、式（３Ｓ）における補間係数Ｓ＿ａ、Ｓ＿ｂおよびＳ＿ｃは、次式（４Ｓ＿ａ）、（４Ｓ＿ｂ）および（４Ｓ＿ｃ）によって算出することができる。
Ｓ＿ａ＝（ｓ０−ｓ１）（ｙ２−ｙ１）／ΔＡ＋（ｓ２−ｓ１）（ｙ１−ｙ０）／ΔＡ
・・・（４Ｓ＿ａ）
Ｓ＿ｂ＝（ｓ０−ｓ１）（ｘ１−ｘ２）／ΔＡ＋（ｓ２−ｓ１）（ｘ０−ｘ１）／ΔＡ
・・・（４Ｓ＿ｂ）
Ｓ＿ｃ＝（ｓ０−ｓ１）（ｘ２ｙ１−ｘ１ｙ２）／ΔＡ＋（ｓ２−ｓ１）（ｘ１ｙ０−ｘ０ｙ１）／ΔＡ＋ｓ１                                        ・・・（４Ｓ＿ｃ）
式（３Ｔ）、（３Ｒ）および（３Ｑ）における補間係数Ｔ＿ａ、Ｔ＿ｂ、Ｔ＿ｃ、Ｒ＿ａ、Ｒ＿ｂ、Ｒ＿ｃ、Ｑ＿ａ、Ｑ＿ｂおよびＱ＿ｃについても、式（４Ｓ＿ａ）、（４Ｓ＿ｂ）および（４Ｓ＿ｃ）と同様な式によって算出することができる。
【００２２】
補間演算の際には、上記の４成分（Ｓ、Ｔ、Ｒ、Ｑ）を各種の頂点属性の各成分に対応付けて式（３Ｓ）〜（３Ｑ）を用いて演算することができる。例えば、色座標属性ＣＯＬの属性データの補間演算の際には、色座標属性ＣＯＬのＲ成分を上記のＳ成分に対応付け、同Ｇ成分を上記のＴ成分に対応付け、同Ｂ成分を上記のＲ成分に対応付け、同Ａ成分を上記のＱ成分に対応付ける、という具合である。また、補間演算の際、頂点属性の成分の数が４個よりも少ない場合には、当該頂点属性の成分の数分だけ上記の４成分を対応付ければよい。例えば、補間演算の際の頂点属性の数が３個の場合、上記の４成分のうちの（Ｓ、Ｔ、Ｒ）を当該３個の成分の各々に対応付ける、という具合である。
【００２３】
［３．画像処理装置１の詳細な構成］
図３は、画像処理装置１の詳細な構成を示すブロック図である。頂点シェーダ１０は、３次元空間におけるプリミティブの各頂点の位置を２次元のスクリーン上の位置に変換した後のプリミティブの各頂点の属性データを出力する。頂点シェーダ１０は、出力対象である属性データを保持するための出力レジスタ１００〜１０３を有している。頂点シェーダ１０は、各出力レジスタ１００〜１０３に保持した属性データを出力レジスタ１０３、１０２、１０１、１００の順に出力する。
【００２４】
図４は、頂点シェーダ１０の出力レジスタ１００〜１０３に保持されるプリミティブの頂点属性の成分を示す図である。図４におけるＳ、Ｔ、ＲおよびＱは、上述した頂点属性の４つの成分（Ｓ、Ｔ、Ｒ、Ｑ）を示す。属性データを最初に出力する出力レジスタ１０３には、３次元位置座標属性ＰＯＳの属性データが保持される。より詳細には、Ｓ成分にＸ成分が、Ｔ成分にＹ成分が、Ｒ成分にＮＺ成分が、Ｑ成分に１／Ｗ成分が対応付けられて保持される。出力レジスタ１０３の次に属性データを出力する出力レジスタ１０２には、成分が２以下の頂点属性の属性データが保持される。本実施形態では、出力レジスタ１０２には、テクスチャ座標属性ＵＶの属性データが保持される。より詳細には、Ｓ成分にＵ成分が、Ｔ成分にＶ成分が対応付けられて保持される。出力レジスタ１０１には、色座標属性ＣＯＬの属性データが保持される。より詳細には、Ｓ成分にＲ成分が、Ｔ成分にＧ成分が、Ｒ成分にＢ成分が、Ｑ成分にＡ成分が対応付けられて保持される。出力レジスタ１００には、法線属性Ｎの属性データが保持される。より詳細には、Ｓ成分にｎＸ成分が、Ｔ成分にｎＹ成分が、Ｒ成分にｎＺ成分が対応付けられて保持される。出力レジスタ１００〜１０３の各々には、プリミティブの頂点分（プリミティブが三角形の場合には３頂点分）の属性データが保持される。例えば、出力レジスタ１０３には、プリミティブの３頂点分の３次元位置座標属性ＰＯＳの属性データが保持される、という具合である。なお、空欄は、成分がないことを示している。
【００２５】
図３に示すように、セットアップ部２２は、分離部２２１、傾き係数演算部２２２、ＴＭＰレジスタ２２３、乗算部２２４、２２５および２２６、ＰＯＳバッファ２２７、マージ部２２８、補間係数演算部２３１およびレジスタ２３２を有している。分離部２２１は、３次元位置座標属性ＰＯＳのうちのＸ成分およびＹ成分と、同ＮＺ成分および１／Ｗ成分とを分離する回路である。分離部２２１によってＸ成分およびＹ成分が補間演算の対象から外される。Ｘ成分およびＹ成分は、描画対象のピクセルの位置の指定に利用されるからである。傾き係数演算部２２２は、プリミティブの各頂点分の３次元位置座標属性ＰＯＳのＸ成分と同Ｙ成分とからプリミティブの各頂点間を結ぶ直線の傾き係数を算出する回路である。分離部２２１から出力されるＸ成分、同Ｙ成分、傾き係数演算部２２２から出力される傾き係数は、ラスタライザ２６に引き渡される。
【００２６】
ＴＭＰレジスタ２２３は、３次元位置座標属性ＰＯＳの１／Ｗ成分を一時的に保持するバッファである。乗算部２２４は、テクスチャ座標属性ＵＶのＵ成分およびＶ成分の各々に１／Ｗ成分を乗算する回路である。乗算部２２５は、色座標属性ＣＯＬのＲ成分、Ｇ成分、Ｂ成分およびＡ成分の各々に１／Ｗ成分を乗算する回路である。乗算部２２６は、法線属性ＮのｎＸ成分、ｎＹ成分およびｎＺ成分の各々に１／Ｗ成分を乗算する回路である。ＰＯＳバッファ２２７は、３次元位置座標属性ＰＯＳのＮＺ成分と１／Ｗ成分とを一時的に保持するバッファである。
【００２７】
マージ部２２８は、３次元位置座標属性ＰＯＳのＮＺ成分および１／Ｗ成分と、１／Ｗ成分を乗算した後のテクスチャ座標属性ＵＶのＵ成分およびＶ成分とをマージする回路である。マージについて説明する。図５は、頂点属性の各成分に着目してセットアップ部２２の処理の流れを示す図である。図５の「セットアップ部における前処理」の部分に着目する。分離部２２１によってＸ成分およびＹ成分が補間演算の対象から外されるため、１クロック目のＳ成分およびＴ成分に対応する３次元位置座標属性ＰＯＳの欄は空いている。また、２クロック目のテクスチャ座標属性ＵＶは、２個の成分しか有していないため、２クロック目のＲ成分およびＱ成分に対応するテクスチャ座標属性ＵＶの欄は空いている。そこで、マージ部２２８は、３次元位置座標属性ＰＯＳの空いているＳ成分およびＴ成分の代わりにテクスチャ座標属性ＵＶのＵ成分およびＶ成分を補間係数演算部２３１に入力し、テクスチャ座標属性ＵＶの空いているＲ成分およびＱ成分の代わりに３次元位置座標属性ＰＯＳのＮＺ成分および１／Ｗ成分を補間係数演算部２３１に入力する。これにより、３次元位置座標属性ＰＯＳとテクスチャ座標属性ＵＶとをまとめて、Ｕ成分、Ｖ成分、ＮＺ成分および１／Ｗ成分を有する１つの頂点属性として取り扱って後続の処理を行う。
【００２８】
図３の補間係数演算部２３１は、各頂点属性の各成分について、補間係数を算出する回路である。補間係数演算部２３１は、上述の式（４Ｓ＿ａ）〜（４Ｓ＿ｃ）等に基づいて補間係数を算出する。分離部２２１によってＸ成分およびＹ成分を補間演算の対象から外したため、３次元位置座標属性の補間係数ｃＰＯＳは、ＮＺ成分についての補間係数ｃＮＺと１／Ｗ成分についての補間係数ｃ１／Ｗのみが得られる。レジスタ２３２は、補間係数演算部２３１によって算出された３次元位置座標属性の補間係数ｃＰＯＳ（ｃＮＺ、ｃ１／Ｗ）、テクスチャ座標属性の補間係数ｃＵＶ（ｃＵ、ｃＶ）、色座標属性の補間係数ｃＣＯＬ（ｃＲ、ｃＧ、ｃＢ、ｃＡ）および法線属性の補間係数ｃＮ（ｃｎＸ、ｃｎＹ、ｃｎＺ）を一時的に保持するバッファである。なお、各符号の先頭のｃは、補間係数であることを示す符号である。
【００２９】
補間演算部２４は、ｃｏｅｆバッファ２４０、補間器２４１、２４２および２４３、レジスタ２４４、分離部２４５、ＴＭＰレジスタ２４６、乗算部２４７、２４８および２４９、ＸＹリピータ２５１、マージ部２５２、出力レジスタ２５３を有する。ｃｏｅｆバッファ２４０は、セットアップ部２２のレジスタ２３２に保持される補間係数ｃＰＯＳ、ｃＵＶ、ｃＣＯＬおよびｃＮを読み出して保持するバッファである。
【００３０】
ＸＹリピータ２５１は、ラスタライザ２６の出力するピクセルブロックの代表座標（Ｘｐｊ−１、Ｙｐｊ−１）を保持するバッファである。また、ＸＹリピータ２５１は、プリミティブ内のピクセルブロックのうちの描画対象のピクセルブロックの代表座標（Ｘｐｊ−１、Ｙｐｊ−１）を各補間器２４１〜２４３に出力する。ＸＹリピータ２５１は、プリミティブの左上隅のピクセルブロックの代表座標（Ｘｐ１−１、Ｙｐ１−１）からプリミティブの右下隅のピクセルブロックの代表座標（Ｘｐｍ−１、Ｙｐｍ−１）までを所定時間間隔毎に順次切り替えて出力する。すなわち、ＸＹリピータ２５１は、描画対象のピクセルの位置を順次指定するものである。
【００３１】
補間器２４１〜２４３は、各々、１のクロックに応じて４成分（Ｓ、Ｔ、Ｒ、Ｑ）の補間演算を行う回路である。この１クロックで４成分の補間演算を行うことを１補間単位と呼ぶこととする。すなわち、補間器２４１〜２４３の各々は、１補間単位の回路である。補間器２４１〜２４３は、各々、上述の式（３Ｓ）〜（３Ｑ）に基づいて補間演算を行う。補間器２４１〜２４３について詳細に説明する。補間器２４１は、３次元位置座標属性ＰＯＳの属性データの補間演算とテクスチャ座標属性ＵＶの属性データの補間演算とを行う。図６は、補間器２４１の構成を示すブロック図である。補間器２４１は、ピクセル座標算出部２４１０、補間回路２４１Ｓ、２４１Ｔ、２４１Ｒおよび２４１Ｑを有する。
【００３２】
ピクセル座標算出部２４１０は、ＸＹリピータ２５１から与えられる描画対象のピクセルブロックの代表座標（Ｘｐｊ−１、Ｙｐｊ−１）に基づいて、当該ピクセルブロック内の左上隅のピクセル（代表座標のピクセル）以外の各ピクセル（本実施形態では、残りの１５個のピクセル）の座標を算出する回路である。ピクセル座標算出部２４１０は、描画対象のピクセルブロック内の左上隅のピクセルの座標（Ｘｐｊ−１、Ｙｐｊ−１）から同ピクセルブロック内の右下隅のピクセルの座標（Ｘｐｊ−１６、Ｙｐｊ−１６）までの各ピクセルの座標（本実施形態では、１６ピクセル分の座標）を一括に出力する。描画対象の各ピクセルの座標（Ｘｐｊ−１、Ｙｐｊ−１）〜（Ｘｐｊ−１６、Ｙｐｊ−１６）は、補間回路２４１Ｓ、２４１Ｔ、２４１Ｒ、２４１Ｑの各々に入力される。
【００３３】
補間回路２４１Ｓは、式（３Ｓ）に基づいて頂点属性の４成分のうちのＳ成分に対応付けられた成分の補間演算を行う回路である。補間回路２４１Ｓは、描画対象の複数のピクセル（本実施形態では１６個のピクセル）の各々についてのＳ成分の補間演算を並列して行う。具体的には、補間回路２４１Ｓは、補間係数ｃＵと描画対象のピクセルの座標（Ｘｐｊ−１、Ｙｐｊ−１）とから座標（Ｘｐｊ−１、Ｙｐｊ−１）におけるＵ成分の補間演算を行い、並列して、補間係数ｃＵと描画対象のピクセルの座標（Ｘｐｊ−２、Ｙｐｊ−２）とから座標（Ｘｐｊ−２、Ｙｐｊ−２）におけるＵ成分の補間演算を行い、・・・並列して、補間係数ｃＵと描画対象のピクセルの座標（Ｘｐｊ−１６、Ｙｐｊ−１６）とから座標（Ｘｐｊ−１６、Ｙｐｊ−１６）におけるＵ成分の補間演算を行う。このため、補間回路２４１Ｓから出力される補間演算結果ｉＵには、描画対象のピクセルブロック内のピクセルの数（本実施形態では１６個）分の補間演算結果が含まれる。
【００３４】
補間器２４１Ｔは、補間回路２４１Ｓと同様の回路である。補間器２４１Ｔは、式（３Ｔ）に基づいて頂点属性の４成分のうちのＴ成分に対応付けられた成分の補間演算を行う点において補間回路２４１Ｓと異なる。具体的には、補間回路２４１Ｔは、補間係数ｃＶと描画対象のピクセルの座標（Ｘｐｊ−１、Ｙｐｊ−１）とから座標（Ｘｐｊ−１、Ｙｐｊ−１）におけるＶ成分の補間演算を行い、並列して、補間係数ｃＶと描画対象のピクセルの座標（Ｘｐｊ−２、Ｙｐｊ−２）とから座標（Ｘｐｊ−２、Ｙｐｊ−２）におけるＶ成分の補間演算を行い、・・・並列して、補間係数ｃＶと描画対象のピクセルの座標（Ｘｐｊ−１６、Ｙｐｊ−１６）とから座標（Ｘｐｊ−１６、Ｙｐｊ−１６）におけるＶ成分の補間演算を行う。
【００３５】
補間器２４１Ｒは、補間回路２４１Ｓと同様の回路である。補間器２４１Ｒは、式（３Ｒ）に基づいて頂点属性の４成分のうちのＲ成分に対応付けられた成分の補間演算を行う点において補間回路２４１Ｓと異なる。具体的には、補間回路２４１Ｒは、補間係数ｃＮＺと描画対象のピクセルの座標（Ｘｐｊ−１、Ｙｐｊ−１）とから座標（Ｘｐｊ−１、Ｙｐｊ−１）におけるＮＺ成分の補間演算を行い、並列して、補間係数ｃＮＺと描画対象のピクセルの座標（Ｘｐｊ−２、Ｙｐｊ−２）とから座標（Ｘｐｊ−２、Ｙｐｊ−２）におけるＮＺ成分の補間演算を行い、・・・並列して、補間係数ｃＮＺと描画対象のピクセルの座標（Ｘｐｊ−１６、Ｙｐｊ−１６）とから座標（Ｘｐｊ−１６、Ｙｐｊ−１６）におけるＮＺ成分の補間演算を行う。
【００３６】
補間器２４１Ｑは、補間回路２４１Ｓと同様の回路である。補間器２４１Ｑは、式（３Ｑ）に基づいて頂点属性の４成分のうちのＱ成分に対応付けられた成分の補間演算を行う点において補間回路２４１Ｓと異なる。具体的には、補間回路２４１Ｑは、補間係数ｃ１／Ｗと描画対象のピクセルの座標（Ｘｐｊ−１、Ｙｐｊ−１）とから座標（Ｘｐｊ−１、Ｙｐｊ−１）における１／Ｗ成分の補間演算を行い、並列して、補間係数ｃ１／Ｗと描画対象のピクセルの座標（Ｘｐｊ−２、Ｙｐｊ−２）とから座標（Ｘｐｊ−２、Ｙｐｊ−２）における１／Ｗ成分の補間演算を行い、・・・並列して、補間係数ｃ１／Ｗと描画対象のピクセルの座標（Ｘｐｊ−１６、Ｙｐｊ−１６）とから座標（Ｘｐｊ−１６、Ｙｐｊ−１６）における１／Ｗ成分の補間演算を行う。
【００３７】
テクスチャ座標属性ＵＶは、Ｕ成分およびＶ成分の２成分しか有しないため、成分の個数が１補間単位の成分数（４成分）に満たない。また、３次元位置座標属性ＰＯＳは、Ｘ成分およびＹ成分を分離しておりＮＺ成分および１／Ｗ成分の２成分しか有しないため、成分の個数が１補間単位の成分数（４成分）に満たない。補間器２４１は、成分の個数が１補間単位の成分数（４成分）に満たない複数種類の頂点属性（具体的にはテクスチャ座標属性ＵＶおよび３次元位置座標属性ＰＯＳ）の各成分を統合して、統合した各成分の補間演算を１補間単位を利用して行う。具体的には、補間回路２４１Ｓ、２４１Ｔ、２４１Ｒおよび２４１Ｑは、同時並列処理が可能であり、補間器２４１は、Ｕ成分、Ｖ成分、ＮＺ成分および１／Ｗ成分の４成分の補間演算を並列して行う。
【００３８】
図３の補間器２４２も、補間器２４１と同様に、各ピクセルの座標を算出するピクセル座標算出部と、頂点属性の４成分の各々に対応付けられた成分の補間演算を行う同時並列処理が可能な４個の補間回路２４２Ｓ、２４２Ｔ、２４２Ｒおよび２４２Ｑを有している（図示略）。補間回路２４２Ｓは、補間係数ｃＲと描画対象のピクセルの座標（Ｘｐｊ−１、Ｙｐｊ−１）〜（Ｘｐｊ−１６、Ｙｐｊ−１６）とから各座標（Ｘｐｊ−１、Ｙｐｊ−１）〜（Ｘｐｊ−１６、Ｙｐｊ−１６）における色座標属性ＣＯＬのＲ成分の補間演算を行う。補間回路２４２Ｔは、補間係数ｃＧと同座標（Ｘｐｊ−１、Ｙｐｊ−１）〜（Ｘｐｊ−１６、Ｙｐｊ−１６）とから各座標（Ｘｐｊ−１、Ｙｐｊ−１）〜（Ｘｐｊ−１６、Ｙｐｊ−１６）における色座標属性ＣＯＬのＧ成分の補間演算を行う。補間回路２４２Ｒは、補間係数ｃＢと同座標（Ｘｐｊ−１、Ｙｐｊ−１）〜（Ｘｐｊ−１６、Ｙｐｊ−１６）とから各座標（Ｘｐｊ−１、Ｙｐｊ−１）〜（Ｘｐｊ−１６、Ｙｐｊ−１６）における色座標属性ＣＯＬのＢ成分の補間演算を行う。補間回路２４２Ｑは、補間係数ｃＡと同座標（Ｘｐｊ−１、Ｙｐｊ−１）〜（Ｘｐｊ−１６、Ｙｐｊ−１６）とから各座標（Ｘｐｊ−１、Ｙｐｊ−１）〜（Ｘｐｊ−１６、Ｙｐｊ−１６）における色座標属性ＣＯＬのＡ成分の補間演算を行う。
【００３９】
補間器２４３も、補間器２４１と同様に、各ピクセルの座標を算出するピクセル座標算出部と、頂点属性の４成分の各々に対応付けられた成分の補間演算を行う同時並列処理が可能な４個の補間回路２４３Ｓ、２４３Ｔ、２４３Ｒおよび２４３Ｑを有している（図示略）。補間回路２４３Ｓは、補間係数ｃｎＸと描画対象のピクセルの座標（Ｘｐｊ−１、Ｙｐｊ−１）〜（Ｘｐｊ−１６、Ｙｐｊ−１６）とから各座標（Ｘｐｊ−１、Ｙｐｊ−１）〜（Ｘｐｊ−１６、Ｙｐｊ−１６）におけるｎＸ成分の補間演算を行う。補間回路２４３Ｔは、補間係数ｃｎＹと同座標（Ｘｐｊ−１、Ｙｐｊ−１）〜（Ｘｐｊ−１６、Ｙｐｊ−１６）とから各座標（Ｘｐｊ−１、Ｙｐｊ−１）〜（Ｘｐｊ−１６、Ｙｐｊ−１６）におけるｎＹ成分の補間演算を行う。補間回路２４３Ｒは、補間係数ｃｎＺと同座標（Ｘｐｊ−１、Ｙｐｊ−１）〜（Ｘｐｊ−１６、Ｙｐｊ−１６）とから各座標（Ｘｐｊ−１、Ｙｐｊ−１）〜（Ｘｐｊ−１６、Ｙｐｊ−１６）におけるｎＺ成分の補間演算を行う。
【００４０】
レジスタ２４４は、３次元位置座標属性ＰＯＳの補間演算結果ｉＰＯＳ（ｉＮＺ、ｉ１／Ｗ）、テクスチャ座標属性ＵＶの補間演算結果ｉＵＶ（ｉＵ、ｉＶ）、色座標属性ＣＯＬの補間演算結果ｉＣＯＬ（ｉＲ、ｉＧ、ｉＢ、ｉＡ）および法線属性Ｎの補間演算結果ｉＮ（ｉｎＸ、ｉｎＹ、ｉｎＺ）を一時的に保持するバッファである。なお、各符号の先頭のｉは、補間演算結果であることを示す符号である。分離部２４５は、マージされている３次元位置座標属性ＰＯＳの属性データとテクスチャ座標属性ＵＶの属性データとを分離する回路である。より詳細には、分離部２４５は、補間演算結果ｉＮＺおよびｉ１／Ｗと、補間演算結果ｉＵおよびｉＶとを分離する。ＴＭＰレジスタ２４６は、補間演算結果ｉ１／Ｗを一時的に保持するバッファである。乗算部２４７は、テクスチャ座標属性ＵＶの補間演算結果ｉＵおよびｉＶにｉ１／Ｗを乗算する回路である。乗算部２４８は、色座標属性ＣＯＬの補間演算結果ｉＲ、ｉＧ、ｉＢおよびｉＡにｉ１／Ｗを乗算する回路である。乗算部２４９は、法線属性Ｎの補間演算結果ｉｎＸ、ｉｎＹおよびｉｎＺにｉ１／Ｗを乗算する回路である。
【００４１】
マージ部２５２は、分離部２４５によって分離された補間演算結果ｉＮＺおよびｉ１／Ｗと、描画対象のピクセルの座標（Ｘｐｊ−ｋ、Ｙｐｊ−ｋ）とをマージする回路である。補間演算の対象から除外していたＸ成分およびＹ成分が、マージ部２５２によって再び３次元位置座標属性ＰＯＳの属性データに加えられる。描画対象のピクセルの座標については、例えば、補間器２４１のピクセル座標演算部２４１０から与えられる。補間演算結果ｉＮＺおよびｉ１／Ｗは、描画対象のピクセルブロック内のピクセルの数分の補間演算結果を含んでいる。このため、マージ部２５２は、ピクセル毎にマージして、ピクセルの数分の３次元位置座標属性ＰＯＳの属性データを生成する。例えば、マージ部２５２は、描画対象のピクセルの座標（Ｘｐｊ−１６、Ｙｐｊ−１６）と、当該座標（Ｘｐｊ−１６、Ｙｐｊ−１６）から算出されたＮＺ成分の補間演算結果と、当該座標（Ｘｐｊ−１６、Ｙｐｊ−１６）から算出された１／Ｗ成分の補間演算結果とをまとめる、という具合である。出力レジスタ２５３は、補間演算されてマージされた３次元位置座標属性ＰＯＳの属性データ、補間演算されて乗算されたテクスチャ座標属性ＵＶの属性データ、補間演算されて乗算された色座標属性ＣＯＬの属性データ、補間演算されて乗算された法線属性Ｎの属性データの各々を一時的に保持するバッファである。
【００４２】
ピクセルシェーダ３０は、補間演算部２４の出力レジスタ２５３から出力される属性データを保持する入力レジスタ３００、３０１、３０２および３０３を有している。入力レジスタ３０３には、補間処理の完了した３次元位置座標属性ＰＯＳの属性データＩＰＯＳが保持される。入力レジスタ３０２には、補間処理の完了したテクスチャ座標属性ＵＶの属性データＩＵＶが保持される。入力レジスタ３０１には、補間処理の完了した色座標属性ＣＯＬの属性データＩＣＯＬが保持される。入力レジスタ３００には、補間処理の完了した法線属性Ｎの属性データＩＮが保持される。これらの属性データは、入力レジスタ３０３、３０２、３０１、３００の順に保持される。
以上が、画像処理装置１の詳細な構成である。
【００４３】
［４．画像処理装置１の動作］
［４−１．セットアップ部２２の動作］
次に、画像処理装置１の動作を説明する。
図７は、セットアップ部２２の処理の流れを示すフローチャートである。図３、図５および図７を参照してセットアップ部２２の動作を説明する。図５に示すように、セットアップ部２２は、クロックに従って動作する。
【００４４】
まず、セットアップ部２２は、１番目のクロックが与えられると、出力レジスタ１０３から３次元位置座標属性ＰＯＳの属性データを読み出す（図７：ＳＡ１０）。次に、セットアップ部２２の分離部２２１は、読み出した３次元位置座標属性ＰＯＳのＸ成分およびＹ成分と、同ＮＺ成分および１／Ｗ成分とを分離する。分離部２２１は、Ｘ成分およびＹ成分を傾き係数演算部２２２とラスタライザ２６に出力する。次に、セットアップ部２２の傾き係数演算部２２２は、プリミティブの各頂点間を結ぶ直線の傾き係数を算出する（ＳＡ１１）。傾き係数演算部２２２は、算出した傾き係数をラスタライザ２６に出力する。
【００４５】
セットアップ部２２は、分離部２２１において各成分を分離した後、ＴＭＰレジスタ２２３に１／Ｗ成分を格納する（ＳＡ１２）。次に、セットアップ部２２は、ＰＯＳバッファ２２７にＮＺ成分および１／Ｗ成分を格納する（ＳＡ１３）。
【００４６】
次に、２番目のクロックが与えられると、セットアップ部２２は、出力レジスタ１０２からテクスチャ座標属性ＵＶの属性データを読み出す（ＳＡ２０）。図５に示すように、テクスチャ座標属性ＵＶのＵ成分はＳ成分に対応しており、Ｖ成分はＴ成分に対応している。次に、セットアップ部２２の乗算部２２４は、ＴＭＰレジスタ２２３から１／Ｗ成分を読み出し、Ｕ成分およびＶ成分の各々に１／Ｗ成分を乗算する（ＳＡ２１）。
【００４７】
次に、セットアップ部２２のマージ部２２８は、ＰＯＳバッファ２２７からＮＺ成分および１／Ｗ成分を読み出し、１／Ｗを乗算したＵ成分、１／Ｗを乗算したＶ成分、ＮＺ成分および１／Ｗ成分をマージして、これら各成分を補間係数演算部２３１に与える（ＳＡ２２）。このとき、Ｓ成分に１／Ｗを乗算したＵ成分が対応し、Ｔ成分に１／Ｗを乗算したＶ成分が対応し、Ｒ成分にＮＺ成分が対応し、Ｑ成分に１／Ｗ成分が対応するようにこれら各成分をマージする。
【００４８】
次に、セットアップ部２２の補間係数演算部２３１は、マージされた３次元位置座標属性ＰＯＳの各成分の補間係数とテクスチャ座標属性ＵＶの各成分の補間係数を算出する（ＳＡ２３）。セットアップ部２２は、算出した補間係数ｃＵ、ｃＶ、ｃＮＺおよびｃ１／Ｗをレジスタ２３２に格納する。そして、セットアップ部２２は、レジスタ２３２の補間係数ｃＵ、ｃＶ、ｃＮＺおよびｃ１／Ｗを補間演算部２４のｃｏｅｆバッファ２４０に引き渡す。
【００４９】
次に、３番目のクロックが与えられると、セットアップ部２２は、出力レジスタ１０１から色座標属性ＣＯＬの属性データを読み出す（ＳＡ３０）。図５に示すように、色座標属性ＣＯＬのＲ成分はＳ成分に対応しており、色座標属性ＣＯＬのＧ成分はＴ成分に対応しており、色座標属性ＣＯＬのＢ成分はＲ成分に対応しており、色座標属性ＣＯＬのＡ成分はＱ成分に対応している。次に、セットアップ部２２の乗算部２２５は、ＴＭＰレジスタ２２３から１／Ｗ成分を読み出し、色座標属性ＣＯＬのＲ成分、Ｇ成分、Ｂ成分およびＡ成分の各々に１／Ｗ成分を乗算する（ＳＡ３１）。
【００５０】
次に、セットアップ部２２の補間係数演算部２３１は、色座標属性ＣＯＬの各成分の補間係数を算出する（ＳＡ３２）。セットアップ部２２は、算出した補間係数ｃＲ、ｃＧ、ｃＢおよびｃＡをレジスタ２３２に格納する。そして、セットアップ部２２は、レジスタ２３２の補間係数ｃＲ、ｃＧ、ｃＢおよびｃＡを補間演算部２４のｃｏｅｆバッファ２４０に引き渡す。
【００５１】
次に、４番目のクロックが与えられると、セットアップ部２２は、出力レジスタ１００から法線属性Ｎの属性データを読み出す（ＳＡ４０）。図５に示すように、法線属性ＮのｎＸ成分はＳ成分に対応しており、法線属性ＮのｎＹ成分はＴ成分に対応しており、法線属性ＮのｎＺ成分はＲ成分に対応している。次に、セットアップ部２２の乗算部２２６は、ＴＭＰレジスタ２２３から１／Ｗ成分を読み出し、法線属性ＮのｎＸ成分、ｎＹ成分およびｎＺ成分の各々に１／Ｗ成分を乗算する（ＳＡ４１）。
【００５２】
次に、セットアップ部２２の補間係数演算部２３１は、法線属性Ｎの各成分の補間係数を算出する（ＳＡ４２）。セットアップ部２２は、算出した補間係数ｃｎＸ、ｃｎＹおよびｃｎＺをレジスタ２３２に格納する。そして、セットアップ部２２は、レジスタ２３２の補間係数ｃｎＸ、ｃｎＹおよびｃｎＺを補間演算部２４のｃｏｅｆバッファ２４０に引き渡す。
以上が、セットアップ部２２の動作である。
【００５３】
［４−２．ラスタライザ２６の動作］
ラスタライザ２６は、３次元位置座標属性ＰＯＳのＸ成分、同Ｙ成分および傾き係数演算部２２２の算出した傾き係数をセットアップ部２２から引き渡されると、それらを用いてラスタライズする。そして、ラスタライザ２６は、プリミティブの左上隅のピクセルブロックの代表座標（Ｘｐ１−１、Ｙｐ１−１）からプリミティブの右下隅のピクセルブロックの代表座標（Ｘｐｍ−１、Ｙｐｍ−１）までの各ピクセルブロックの各代表座標を補間演算部２４のＸＹリピータ２５１に引き渡す。
【００５４】
［４−３．補間演算部２４の動作］
図８は、頂点属性の各成分に着目して補間演算部２４の処理の流れを示す図である。図９は、補間演算部２４の処理の流れを示すフローチャートである。図８、図９および図３を参照して補間演算部２４の動作を説明する。図８に示すように、補間演算部２４は、クロックに従って動作する。
【００５５】
図８に示すように、補間演算部２４のｃｏｅｆバッファ２４０には、各成分の補間係数が保持されている。このとき、補間係数ｃＵ、ｃＶ、ｃＮＺおよびｃ１／Ｗは、マージされた状態で保持されている。また、ＸＹリピータ２５１には、ピクセルブロックの数分のピクセルブロックの代表座標がラスタライザ２６から引き渡されて保持されている。
【００５６】
まず、補間演算部２４は、１番目のクロックが与えられると、補間係数ｃＵ、ｃＶ、ｃＮＺおよびｃ１／Ｗをｃｏｅｆバッファ２４０から読み出して補間器２４１に与える（ＳＢ１０）。また、補間演算部２４のＸＹリピータ２５１は、１番目のピクセルブロックを描画対象のピクセルブロックとし、当該１番目のピクセルブロックの代表座標（Ｘｐ１−１、Ｙｐ１−１）を補間器２４１に与える（ＳＢ１１）。次に、補間器２４１のピクセル座標算出部２４１０は、与えられた１番目のピクセルブロックの代表座標（Ｘｐ１−１、Ｙｐ１−１）に基づいて当該ピクセルブロック内の残りの各ピクセルの座標（Ｘｐ１−２、Ｙｐ１−２）〜（Ｘｐ１−１６、Ｙｐ１−１６）を算出する。次に、補間器２４１は、補間係数ｃＵ、ｃＶ、ｃＮＺおよびｃ１／Ｗと、描画対象である１番目のピクセルブロック内の各ピクセルの座標（Ｘｐ１−１、Ｙｐ１−１）〜（Ｘｐ１−１６、Ｙｐ１−１６）とから、それら各ピクセルについて、Ｕ成分、Ｖ成分、ＮＺ成分および１／Ｗ成分の補間演算を行う（ＳＢ１２）。すなわち、補間器２４１は、補間回路２４１Ｓ〜２４１Ｑを並列動作させて、３次元位置座標属性ＰＯＳのＮＺ成分および１／Ｗ成分の各々の補間演算と、テクスチャ座標属性ＵＶのＵ成分およびＶ成分の各々の補間演算とをまとめて行う。上述の式（３Ｓ）〜（３Ｑ）等に示すように、描画対象の座標以外で各成分（Ｓ、Ｔ、Ｒ、Ｑ）間が関連していないため、補間器２４１は、複数種類の頂点属性の成分の補間演算をまとめて行うことができる。補間演算部２４は、３次元位置座標属性ＰＯＳの補間演算結果ｉＰＯＳ（ｉＮＺ、ｉ１／Ｗ）およびテクスチャ座標属性ＵＶの補間演算結果ｉＵＶ（ｉＵ、ｉＶ）をレジスタ２４４に格納する。また、補間演算部２４に与えられる１番目のクロックは、セットアップ部２２に与えられる３番目以降のクロックに関連付けられる。補間係数ｃＵ、ｃＶ、ｃＮＺおよびｃ１／Ｗをまとめて補間器２４１に与えるためである。
【００５７】
次に、補間演算部２４の分離部２４５は、３次元位置座標属性ＰＯＳの補間演算結果ｉＰＯＳとテクスチャ座標属性ＵＶの補間演算結果ｉＵＶとを分離する（ＳＢ１３）。次に、補間演算部２４は、補間演算結果ｉ１／ＷをＴＭＰレジスタ２４６に格納する（ＳＢ１４）。次に、補間演算部２４のマージ部２５２は、３次元位置座標属性ＰＯＳの補間演算結果ｉＰＯＳ（ｉＮＺ、ｉ１／Ｗ）と１番目のピクセルブロック内の各ピクセルの座標（Ｘｐ１−１、Ｙｐ１−１）〜（Ｘｐ１−１６、Ｙｐ１−１６）とをマージする（ＳＢ１５）。補間演算部２４は、マージ部２５２によってマージした３次元位置座標属性ＰＯＳの各成分を、最初の描画対象（最初のピクセルブロック）についての補間処理後の３次元位置座標属性ＰＯＳの属性データＩＰＯＳとして出力レジスタ２５３に格納する（ＳＢ１６）。この属性データＩＰＯＳには、最初のピクセルブロック内のピクセルの数分の３次元位置座標属性ＰＯＳの補間処理結果が含まれている。そして、補間演算部２４は、出力レジスタ２５３の属性データＩＰＯＳをピクセルシェーダ３０の入力レジスタ３０３に出力する。
【００５８】
次に、補間演算部２４の乗算部２４７は、分離部２４５によって分離した補間演算結果ｉＵおよびｉＶの各々にｉ１／Ｗを乗算する（ＳＢ１７）。補間演算部２４は、乗算部２４７による乗算後のデータを、最初の描画対象（最初のピクセルブロック）についての補間処理後のテクスチャ座標属性ＵＶの属性データＩＵＶとして出力レジスタ２５３に格納する（ＳＢ１８）。この属性データＩＵＶには、最初のピクセルブロック内のピクセルの数分のテクスチャ座標属性ＵＶの補間処理結果が含まれている。そして、補間演算部２４は、属性データＩＰＯＳを出力したクロックの次のクロックに応じて、出力レジスタ２５３の属性データＩＵＶをピクセルシェーダ３０の入力レジスタ３０２に出力する。
【００５９】
次に、補間演算部２４は、２番目のクロックが与えられると、補間係数ｃＲ、ｃＧ、ｃＢおよびｃＡをｃｏｅｆバッファ２４０から読み出して補間器２４２に与える（ＳＢ２０）。また、補間演算部２４のＸＹリピータ２５１は、描画対象である１番目のピクセルブロックの代表座標（Ｘｐ１−１、Ｙｐ１−１）を補間器２４２に与える（ＳＢ２１）。次に、補間器２４２のピクセル座標算出部は、与えられた１番目のピクセルブロックの代表座標（Ｘｐ１−１、Ｙｐ１−１）に基づいて当該ピクセルブロック内の残りの各ピクセルの座標（Ｘｐ１−２、Ｙｐ１−２）〜（Ｘｐ１−１６、Ｙｐ１−１６）を算出する。次に、補間器２４２は、補間係数ｃＲ、ｃＧ、ｃＢおよびｃＡと、描画対象である１番目のピクセルブロック内の各ピクセルの座標（Ｘｐ１−１、Ｙｐ１−１）〜（Ｘｐ１−１６、Ｙｐ１−１６）とから、それら各ピクセルについて、Ｒ成分、Ｇ成分、Ｂ成分およびＡ成分の各々の補間演算を行う（ＳＢ２２）。補間演算部２４は、色座標属性ＣＯＬの補間演算結果ｉＣＯＬ（ｉＲ、ｉＧ、ｉＢ、ｉＡ）をレジスタ２４４に格納する。
【００６０】
次に、補間演算部２４の乗算部２４８は、補間演算結果ｉＲ、ｉＧ、ｉＢおよびｉＡの各々にｉ１／Ｗを乗算する（ＳＢ２３）。補間演算部２４は、乗算部２４８による乗算後のデータを、最初の描画対象（最初のピクセルブロック）についての補間処理後の色座標属性ＣＯＬの属性データＩＣＯＬとして出力レジスタ２５３に格納する（ＳＢ２４）。この属性データＩＣＯＬには、最初のピクセルブロック内のピクセルの数分の色座標属性ＣＯＬの補間処理結果が含まれている。そして、補間演算部２４は、属性データＩＵＶを出力したクロックの次のクロックに応じて、出力レジスタ２５３の属性データＩＣＯＬをピクセルシェーダ３０の入力レジスタ３０１に出力する。
【００６１】
次に、補間演算部２４は、３番目のクロックが与えられると、補間係数ｃｎＸ、ｃｎＹおよびｃｎＺをｃｏｅｆバッファ２４０から読み出して補間器２４３に与える（ＳＢ３０）。また、補間演算部２４のＸＹリピータ２５１は、描画対象である１番目のピクセルブロックの代表座標（Ｘｐ１−１、Ｙｐ１−１）を補間器２４３に与える（ＳＢ３１）。次に、補間器２４３のピクセル座標算出部は、与えられた１番目のピクセルブロックの代表座標（Ｘｐ１−１、Ｙｐ１−１）に基づいて当該ピクセルブロック内の残りの各ピクセルの座標（Ｘｐ１−２、Ｙｐ１−２）〜（Ｘｐ１−１６、Ｙｐ１−１６）を算出する。次に、補間器２４３は、補間係数ｃｎＸ、ｃｎＹおよびｃｎＺと、描画対象である１番目のピクセルブロック内の各ピクセルの座標（Ｘｐ１−１、Ｙｐ１−１）〜（Ｘｐ１−１６、Ｙｐ１−１６）とから、それら各ピクセルについて、ｎＸ成分、ｎＹ成分およびｎＺ成分の各々について補間演算を行う（ＳＢ３２）。補間演算部２４は、法線属性Ｎの補間演算結果ｉＮ（ｉｎＸ、ｉｎＹ、ｉｎＺ）をレジスタ２４４に格納する。
【００６２】
次に、補間演算部２４の乗算部２４９は、補間演算結果ｉｎＸ、ｉｎＹおよびｉｎＺの各々にｉ１／Ｗを乗算する（ＳＢ３３）。補間演算部２４は、乗算部２４９による乗算後のデータを、最初の描画対象（最初のピクセルブロック）についての補間処理後の法線属性Ｎの属性データＩＮとして出力レジスタ２５３に格納する（ＳＢ３４）。この属性データＩＮには、最初のピクセルブロック内のピクセルの数分の法線属性Ｎの補間処理結果が含まれている。そして、補間演算部２４は、属性データＩＣＯＬを出力したクロックの次のクロックに応じて、出力レジスタ２５３の属性データＩＮをピクセルシェーダ３０の入力レジスタ３００に出力する。
【００６３】
次に、補間演算部２４は、４番目のクロックが与えられると、補間係数ｃＵ、ｃＶ、ｃＮＺおよびｃ１／Ｗをｃｏｅｆバッファ２４０から読み出して補間器２４１に与える。また、補間演算部２４のＸＹリピータ２５１は、描画対象を次の（２番目の）ピクセルブロックに切り替えて、当該２番目のピクセルブロックの代表座標（Ｘｐ２−１、Ｙｐ２−１）を補間器２４１に与える。そして、補間器２４１は、補間係数ｃＵ、ｃＶ、ｃＮＺおよびｃ１／Ｗと、描画対象である２番目のピクセルブロック内の各ピクセルの座標（Ｘｐ２−１、Ｙｐ２−１）〜（Ｘｐ２−１６、Ｙｐ２−１６）とから、それら各ピクセルについて、Ｕ成分、Ｖ成分、ＮＺ成分および１／Ｗ成分の各々の補間演算を行う。すなわち、補間演算部２４は、２番目のピクセルブロックの各ピクセルを描画対象として１番目のクロックが与えられたときと同様の処理を行う。そして、補間演算部２４は、当該２番目の描画対象（２番目のピクセルブロック）についての補間処理後の３次元位置座標属性ＰＯＳの属性データＩＰＯＳをピクセルシェーダ３０の入力レジスタ３０３に出力する。このとき、当該２番目の描画対象における属性データＩＰＯＳは、１つ前の描画対象（この場合では最初のピクセルブロック）においてピクセルシェーダ３０に最後に出力する属性データ（この場合では属性データＩＮ）と同じタイミングで出力される。
【００６４】
補間演算部２４は、５番目のクロックが与えられると、２番目のピクセルブロックの各ピクセルを描画対象として２番目のクロックが与えられたときと同様の処理を行い、６番目のクロックが与えられると、２番目のピクセルブロックの各ピクセルを描画対象として３番目のクロックが与えられたときと同様の処理を行う。以下、補間演算部２４は、すべての描画対象について同様の処理を繰り返す。
以上が、補間演算部２４の動作である。
【００６５】
［５．効果］
このように、本実施形態による画像処理装置１は、プリミティブの各頂点の複数種類の属性データの成分に基づいてプリミティブの各ピクセルの複数種類の属性データの成分を補間する補間装置２０を有している。補間装置２０では、所定時間内に所定数の成分の補間演算（本実施形態では１クロックで４成分の補間演算）を行う１補間単位を所定数利用して補間演算を行う。プリミティブの各頂点についての複数種類の属性データには、３次元位置座標属性ＰＯＳの属性データの成分とテクスチャ座標属性ＵＶの属性データの成分とが含まれている。補間装置２０は、描画対象のピクセルを指定するために利用する３次元位置座標属性ＰＯＳのＸ成分およびＹ成分を補間演算の対象から除外し、成分の個数が１補間単位の成分数に満たない複数種類の属性データの各成分を統合して、統合した各成分の補間演算を１補間単位を利用して行う。具体的には、補間装置２０の補間器２４１は、３次元位置座標属性ＰＯＳのＮＺ成分および１／Ｗ成分とテクスチャ座標属性ＵＶのＵ成分およびＶ成分とを統合し、統合したＮＺ成分、１／Ｗ成分、Ｕ成分およびＶ成分の補間演算を並列して行う。３次元位置座標属性ＰＯＳの属性データとテクスチャ座標属性ＵＶの属性データとをまとめて補間演算するため、画像処理装置１では、従来の画像処理装置と比べて、補間演算の演算回数を１描画対象あたり（換言すると１ピクセルブロックあたり）１補間単位分（すなわち１クロック分）減らすことができる。このため、頂点の属性データに基づいてピクセルの属性データを補間する際の処理負荷を軽減することができる。具体的には、図１０に示す従来の画像処理装置５では、頂点属性の数が４種類であるため、補間演算の演算回数が１描画対象あたり４クロック分であった。これに対して、本実施形態の画像処理装置１では、頂点属性の数が４種類であるが、補間演算の演算回数が１描画対象あたり３クロック分である（図８参照）。すなわち、画像処理装置１は、画像処理装置５に比べ、補間演算における処理負荷を１描画対象あたり３／４に軽減することができる。また、画像処理装置１では、従来の画像処理装置と比べて、補間器を１個分減らすことができる。すなわち、画像処理装置１では、従来の画像処理装置と比べて、補間装置の回路規模を小さくすることができる。補間器は、比較的ゲート数が多く規模が大きな回路である。このため、補間器を１個分減らして補間装置の回路規模を小さくするのは、有益である。
【００６６】
＜他の実施形態＞
以上、この発明の一実施形態について説明したが、この発明には他にも実施形態が考えられる。例えば次の通りである。
【００６７】
（１）上記実施形態では、３次元位置座標属性ＰＯＳの一部の属性データとテクスチャ座標属性ＵＶの属性データとをマージして補間演算を行っていた。しかし、マージする頂点属性の種類は、３次元位置座標属性ＰＯＳとテクスチャ座標属性ＵＶとに限られない。成分の数が１補間単位の成分数に満たない複数種類の属性データの各成分を１補間単位に統合して補間演算を行えば、上記実施形態と同様の効果が得られるからである。このとき、制約された１補間単位の成分数（４成分）（具体的には、並列処理可能な補間回路の数）を超えないように各成分を統合するのが好ましい。また、上記実施形態は、３次元位置座標属性ＰＯＳの一部の属性データと成分の数が２以下の頂点属性の属性データとをマージする一態様を示したものである。３次元位置座標属性ＰＯＳは、Ｘ成分およびＹ成分の計２成分を補間演算の対象から外している。このため、この補間演算の対象から外した２成分に対応する数（すなわち２以下）だけ他の頂点属性の成分をマージすることができる。また、マージする頂点属性の種類は、２種類に限られない。例えば、３種類の頂点属性の各成分をマージするようにしても良い。
【００６８】
（２）上記実施形態では、プリミティブの各頂点に３次元位置座標属性、テクスチャ座標属性、色座標属性および法線属性の４種類の属性データが与えられていた。しかし、プリミティブの各頂点の属性データの種類および数は、これに限られない。また、頂点属性の種類が少なくなるほど、補間演算の際の処理負荷の軽減される割合が高くなる。このため、頂点属性の種類が少ない画像処理装置であるほど、効果は顕著になる。例えば、頂点属性の種類が２個の場合（例えば、３次元位置座標属性とテクスチャ座標属性のみの場合）、従来の画像処理装置に比べ、補間演算における処理負荷が１描画対象あたり１／２に軽減されるため、頂点属性の数が４個の場合の３／４に比べ、効果が大きい、という具合である。
【００６９】
（３）上記実施形態では、画像処理装置１は、１クロックで４成分（Ｓ、Ｔ、Ｒ、Ｑ）の補間演算を並列処理する補間器２４１〜２４３を有していた。しかし、画像処理装置に１クロックで１成分の補間演算を行う補間器を設け、その補間器を時分割で動作させて４クロックで４成分の補間演算を行うようにしても良い。この場合、４クロック４成分を１補間単位として取り扱えば良い。この場合においても、成分の数が１補間単位の成分数に満たない複数種類の属性データの各成分を１補間単位に統合して補間演算を行うことにより、上記実施形態と同様の効果を奏する。
【００７０】
（４）上記実施形態の補間器２４１〜２４３では、４成分（Ｓ、Ｔ、Ｒ、Ｑ）の補間演算を行っていた。しかし、補間器の行う補間演算の対象となる成分の数は４個に限られない。この場合、補間器は、成分の個数に応じた数の補間回路を有していれば良い。
【００７１】
（５）上記実施形態では、頂点シェーダ１０は、４個の出力レジスタ１００〜１０３を有しており、ピクセルシェーダ３０は、４個の入力レジスタ３００〜３０３を有していた。しかし、頂点シェーダの出力レジスタの数およびピクセルシェーダの入力レジスタの数は、これに限られない。頂点シェーダの出力レジスタおよびピクセルシェーダの入力レジスタは、少なくとも、頂点属性の数以上であれば良い。このとき、頂点シェーダの最初に出力する出力レジスタに３次元位置座標属性ＰＯＳの属性データを保持し、次に出力する出力レジスタに３次元位置座標属性ＰＯＳの属性データとマージすべき頂点属性の属性データを保持すれば良い。ピクセルシェーダの入力レジスタについても、頂点シェーダの出力レジスタと同様である。
【００７２】
（６）上記実施形態では、三角形のプリミティブを例に説明したが、プリミティブの形状は、三角形に限られない。例えば、プリミティブの形状は、四角形やそれ以上の多角形であっても良い。これらの場合についても上記実施形態と同様の効果が得られる。
【符号の説明】
【００７３】
１…画像処理装置、２…コントローラ、３…メモリ、１０…頂点シェーダ、２０…補間装置、２２…セットアップ部、２４…補間演算部、２６…ラスタライザ、３０…ピクセルシェーダ、１００，１０１，１０２，１０３，２５３…出力レジスタ、２２１，２４５…分離部、２２２…傾き係数演算部、２２３，２４６…ＴＭＰレジスタ、２２４，２２５，２２６，２４７，２４８，２４９…乗算部、２２７…ＰＯＳバッファ、２２８，２５２…マージ部、２３１…補間係数演算部、２３２，２４４…レジスタ、２４０…ｃｏｅｆバッファ、２４１，２４２，２４３…補間器、２４１０…ピクセル座標算出部、２４１Ｓ，２４１Ｔ，２４１Ｒ，２４１Ｑ…補間回路、２５１…ＸＹリピータ、３００，３０１，３０２，３０３…入力レジスタ。
【図１】
2015212890.tif 000003
【図２】
2015212890.tif 000004
【図３】
2015212890.tif 000005
【図４】
2015212890.tif 000006
【図５】
2015212890.tif 000007
【図６】
2015212890.tif 000008
【図７】
2015212890.tif 000009
【図８】
2015212890.tif 000010
【図９】
2015212890.tif 000011
【図１０】
2015212890.tif 000012
【図１１】
2015212890.tif 000013