(57)【要約】【課題】演算ループを実現したとしても処理性能の低下を招くことがなく、複雑な演算に対しても所定の時間内で終了するように適応でき、任意のスループットを実現することができる演算装置および画像処理装置を提供する。【解決手段】パイプライン演算器２０１Ａの前段に、入力されたテクセルデータを複数段だけ順次にシフトさせて（遅延させて）、Ａ選択信号に応じて入力したテクセルデータ、第１回目に遅延させたテクセルデータ（ＡＩ１）、第２回目に遅延させたテクセルデータ（ＡＩ２）のいずれかを選択して出力するテクセルデータシフト選択回路２０３と、入力されたピクセルデータをシフトさせて（遅延させて）、Ｂ選択信号に応じて入力したピクセルデータ、遅延させたピクセルデータ（ＢＩ１）、演算部２０１の出力OUT のいずれかを選択して出力するピクセルデータシフト選択回路２０４を設ける。【選択図】      図４
2005141533.tif 000002
【特許請求の範囲】
【請求項１】
第１データまたは演算結果と第２データを入力として、所定の演算処理を行う演算部と、
上記第１データまたは上記演算部の出力演算結果を、上記演算部に入力させるセレクタと、を有し、
上記演算部は、
複数の部分演算器と各部分演算器の演算結果を収納する複数の記憶手段を含み、
全体の演算を部分演算に分割し、一つの部分演算器と記憶手段からなるパイプライン段を当該記憶手段の収納演算結果が次段の部分演算器に供給されるようにパイプライン状に接続し、それぞれの部分演算をパイプライン１段で行い、一つの演算を完了させるために複数のクロックサイクルを要するパイプライン演算器をもって演算を行う
演算装置。
【請求項２】
上記演算部は、１つの上記第１データと当該第１データに対応する複数の上記第２データとの演算を順次に行う
請求項１記載の演算装置。
【請求項３】
上記演算部は、上記第１データと一つの第２データとの演算結果に次の第２データとの演算を行う
請求項２記載の演算装置。
【請求項４】
第１データまたは演算結果と第２データを入力として、所定の演算処理を行う演算部であって、複数の部分演算器と各部分演算器の演算結果を収納する複数の記憶手段を含み、全体の演算を部分演算に分割し、一つの部分演算器と記憶手段からなるパイプライン段を当該記憶手段の収納演算結果が次段の部分演算器に供給されるようにパイプライン状に接続し、それぞれの部分演算をパイプライン１段で行い、一つの演算を完了させるために複数のクロックサイクルを要するパイプライン演算器をもって演算を行う演算部と、
入力された上記第１データを少なくとも１段シフトさせて遅延させ、第１選択信号に応じて入力した第１データ、遅延させた第１データ、演算部の出力演算結果のいずれかを選択して上記演算部の初段の部分演算器に入力させる第１データシフト選択回路と、
入力された上記第２データを複数段だけ順次にシフトさせて遅延させ、第２選択信号に応じて入力した第２データ、遅延させた複数の第２データのいずれかを選択して上記演算部の初段の部分演算器に入力させる第２データシフト選択回路と
を有する演算装置。
【請求項５】
上記第１データシフト選択回路は、入力された上記第１データを遅延させる少なくとも一つのシフトレジスタを含み、
上記第２データシフト選択回路は、入力された上記第２データを順次に遅延させる複数のシフトレジスタを含む
請求項４記載の演算装置。
【請求項６】
スループットをＴＨ、パイプライン演算器のレイテンシをＬＴとした場合に、上記第１データシフト選択回路のシフトレジスタ数B  SREGおよび上記第２データシフト選択回路のシフトレジスタ数A  SREGは、次式に基づいて設定される
請求項５記載の演算装置。
A ＿SREG  =  2x(LT-1)x(TH-1) 
B ＿SREG  =  (LT-1)x(TH-1) 
【請求項７】
上記演算部は、１つの上記第１データと当該第１データに対応する複数の上記第２データとの演算を順次に行う
請求項４記載の演算装置。
【請求項８】
上記演算部は、上記第１データと一つの第２データとの演算結果に次の第２データとの演算を行う
請求項７記載の演算装置。
【請求項９】
ピクセルデータとテクセルデータの基づいてテクスチャマッピング処理を行う画像処理装置であって、
上記ピクセルデータまたは演算結果と上記テクセルデータを入力として、所定の演算処理を行う演算部と、
上記ピクセルデータまたは上記演算部の出力演算結果を、上記演算部に入力させるセレクタと、を有し、
上記演算部は、
複数の部分演算器と各部分演算器の演算結果を収納する複数の記憶手段を含み、
全体の演算を部分演算に分割し、一つの部分演算器と記憶手段からなるパイプライン段を当該記憶手段の収納演算結果が次段の部分演算器に供給されるようにパイプライン状に接続し、それぞれの部分演算をパイプライン１段で行い、一つの演算を完了させるために複数のクロックサイクルを要するパイプライン演算器をもって演算を行う
画像処理装置。
【請求項１０】
上記演算部は、１つの上記第１データと当該第１データに対応する複数の上記テクセルデータとの演算を順次に行うマルチテクスチャ処理を行う
請求項９記載の画像処理装置。
【請求項１１】
ピクセルデータとテクセルデータの基づいてテクスチャマッピング処理を行う画像処理装置であって、
ピクセルデータまたは演算結果とテクセルデータを入力として、所定の演算処理を行う演算部であって、複数の部分演算器と各部分演算器の演算結果を収納する複数の記憶手段を含み、全体の演算を部分演算に分割し、一つの部分演算器と記憶手段からなるパイプライン段を当該記憶手段の収納演算結果が次段の部分演算器に供給されるようにパイプライン状に接続し、それぞれの部分演算をパイプライン１段で行い、一つの演算を完了させるために複数のクロックサイクルを要するパイプライン演算器をもって演算を行う演算部と、
入力された上記ピクセルデータを少なくとも１段シフトさせて遅延させ、第１選択信号に応じて入力したピクセルデータ、遅延させたピクセルデータ、演算部の出力演算結果のいずれかを選択して上記演算部の初段の部分演算器に入力させるピクセルデータシフト選択回路と、
入力された上記テクセルデータを複数段だけ順次にシフトさせて遅延させ、第２選択信号に応じて入力したテクセルデータ、遅延させた複数のテクセルデータのいずれかを選択して上記演算部の初段の部分演算器に入力させるテクセルデータシフト選択回路と
を有する画像処理装置。
【請求項１２】
上記ピクセルデータシフト選択回路は、入力された上記ピクセルデータを遅延させる少なくとも一つのシフトレジスタを含み、
上記テクセルデータシフト選択回路は、入力された上記テクセルデータを順次に遅延させる複数のシフトレジスタを含む
請求項１１記載の画像処理装置。
【請求項１３】
スループットをＴＨ、パイプライン演算器のレイテンシをＬＴとした場合に、上記ピクセルデータシフト選択回路のシフトレジスタ数B  SREGおよび上記テクセルデータシフト選択回路のシフトレジスタ数A  SREGは、次式に基づいて設定される
請求項１２記載の画像処理装置。
A ＿SREG  =  2x(LT-1)x(TH-1) 
B ＿SREG  =  (LT-1)x(TH-1) 
【請求項１４】
上記演算部は、１つの上記第１データと当該第１データに対応する複数の上記テクセルデータとの演算を順次に行うマルチテクスチャ処理を行う
請求項１１記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえばコンピュータグラフィックスシステムにおいてパイプライン処理によりデータ演算が行われることが多いたとえばテクスチャマッピング処理回路系に適用可能な演算装置および画像処理装置に関するものである。
【背景技術】
【０００２】
昨今のコンピュータシステムにおける演算速度の向上や描画機能の強化とも相俟って、コンピュータ資源を用いて図形や画像の作成や処理を行う「コンピュータ・グラフィックス（ＣＧ）」技術が盛んに研究・開発され、さらに実用化されている。
【０００３】
たとえば、３次元グラフィックスは、３次元オブジェクトが所定の光源によって照らされたときの光学現象を数学モデルで表現して、このモデルに基づいてオブジェクト表面に陰影や濃淡を付けたり、さらには模様を貼り付けたりして、よりリアルで３次元的な２次元高精細画像を生成するものである。
このようなコンピュータ・グラフィックスは、科学、工学、製造などの開発分野でのＣＡＤ／ＣＡＭ、その他の各種応用分野においてますます盛んに利用されるようになってきている。
【０００４】
３次元グラフィックスは、一般には、フロントエンドとして位置づけられる「ジオメトリ・サブシステム」と、バックエンドとして位置づけられる「ラスタライズ・サブシステム」とにより構成される。
【０００５】
ジオメトリ・サブシステムとは、ディスプレイ・スクリーン上に表示する３次元オブジェクトの位置や姿勢などの幾何学的な演算処理を行う過程のことである。
ジオメトリ・サブシステムでは、一般にオブジェクトは多数のポリゴンの集合体として扱われ、ポリゴン単位で、「座標変換」、「クリッピング」、「光源計算」などの幾何学的な演算処理が行われる。
【０００６】
一方、ラスタライズ・サブシステムは、オブジェクトを構成する各ピクセル（ｐｉｘｅｌ）を塗りつぶす過程のことである。
ラスタライズ処理は、たとえばポリゴンの頂点毎に求められた画像パラメータを基にして、ポリゴン内部に含まれるすべてのピクセルの画像パラメータを補間することによって実現される。
ここで言う画像パラメータには、いわゆるＲＧＢ形式などで表される色（描画色）データ、奥行き方向の距離を表すｚ値などがある。
また、最近の高精細な３次元グラフィックス処理では、遠近感を醸し出すためのｆ（ｆｏｇ：霧）や、物体表面の素材感や模様を表現してリアリティを与えるテクスチャｔ（ｔｅｘｔｕｒｅ）なども、画像パラメータの１つとして含まれている。
【０００７】
ここで、ポリゴンの頂点情報からポリゴン内部のピクセルを発生する処理では、よくＤＤＡ（Ｄｉｇｉｔａｌ  Ｄｉｆｆｅｒｅｎｔｉａｌ  Ａｎａｌｙｚｅｒ）と呼ばれる線形補間手法を用いて実行される。
ＤＤＡプロセスでは、頂点情報からポリゴンの辺方向へのデータの傾きを求め、この傾きを用いて辺上のデータを算出した後、続いてラスタ走査方向（Ｘ方向）の傾きを算出し、この傾きから求めたパラメータの変化分を走査の開始点のパラメータ値に加えていくことで、内部のピクセルを発生していく。
【０００８】
そして、３次元コンピュータグラフィックスでは、各ピクセルに対応する色を決定するときに、各ピクセルの色の計算をし、この計算した色の値を、当該ピクセルに対応するディスプレイバッファ（フレームバッファ）のアドレスに書き込むレンダリング（Ｒｅｎｄｅｒｉｎｇ）処理を行う。
【０００９】
このようなコンピュータグラフィックス処理では、パイプライン処理によりデータ演算が行われることが多い。
たとえば、テクスチャマッピング処理などでは、パイプラインを流れてきたピクセル（PIXEL）データ１つに対し、１つのテクセル（TEXEL）データとの演算を施し、後段のパイプラインへ結果を流す処理を行う。
【００１０】
マルチテクスチャと呼ばれるテクスチャマッピング処理（以下、マルチテクスチャ処理と略す）では、１つのピクセルデータに対して第１のテクセルデータとの演算を行った結果に、第２のテクセルデータとの演算を施すという処理を基本とする。
なお、処理に使われるテクセルデータは２種類以上あっても良い。
【００１１】
マルチテクスチャ処理では、第１、第２、あるいはそれ以上に供給されるテクセルデータに対して、あらかじめ用意された演算器の処理可能な範囲で、様々な演算あるいは同一の演算が施されるが、演算器の構成が同じであることから、回路規模の削減を目的として１つの演算器を再利用する方式をとることができる。
これは、パイプラインの中に閉じた演算ループを構成し、第１の演算結果を同じ演算器に再入力するといった、閉じた演算ループ処理を行うことで容易に実現ができる。
【００１２】
閉じた演算ループによるマルチテクスチャ処理を行う上で極めて重要なことは、演算処理の性能が高い必要があることである。
これはパイプラインの中を高いスループットで流れてきたデータを処理するために、演算器数を削減したことでスループットを下げてしまうと、コンピュータグラフィックス処理全体の性能低下につながるためである。
【００１３】
さて回路を削減する目的で同じ演算器を再利用することは従来技術として一般的に行われており、閉じた演算ループを実現することで演算器を１つだけでマルチテクスチャ処理を行うことが可能である（特許文献１、２参照）。
【特許文献１】特開平１−１２０６８５号公報
【特許文献２】ＵＳＰ６，２５９，４６２  Ｂ１
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、特許文献１および特許文献２に記載された演算系では、様々な演算を行うために演算処理が複雑になるにつれて、パイプラインを駆動しているクロックの１サイクル時間内で処理が終了しないおそれがある。
たとえば、演算の種類として８ビット程度の算術演算や論理演算であれば１クロックサイクルで処理できても、もっとビット数の多い算術演算や、あるいは初等関数の演算、あるいは浮動小数点方式の演算などは、演算が複雑になるため回路規模も複雑化し、演算に要する時間がさらに増え結果的にクロック１サイクルの時間内では演算が終了しないことがある。
また、半導体の消費電力を下げる目的や、半導体プロセス性能を理由として、低速であるが低電力の半導体回路による演算器の実現を考える場合は、演算処理が簡単であったとしても、演算に必要な時間が１クロックサイクルで終了しない（足りない）おそれもある。
後者の傾向は携帯機器への搭載を目的とした半導体では近年特に顕著である。
【００１５】
本発明の目的は、演算ループを実現したとしても処理性能の低下を招くことがなく、複雑な演算に対しても所定の時間内で終了するように適応でき、最適なのスループットを実現することができる演算装置および画像処理装置を提供することにある。
【課題を解決するための手段】
【００１６】
上記目的を達成するため、本発明の第１の観点は、第１データまたは演算結果と第２データを入力として、所定の演算処理を行う演算部と、上記第１データまたは上記演算部の出力演算結果を、上記演算部に入力させるセレクタと、を有し、上記演算部は、複数の部分演算器と各部分演算器の演算結果を収納する複数の記憶手段を含み、全体の演算を部分演算に分割し、一つの部分演算器と記憶手段からなるパイプライン段を当該記憶手段の収納演算結果が次段の部分演算器に供給されるようにパイプライン状に接続し、それぞれの部分演算をパイプライン１段で行い、一つの演算を完了させるために複数のクロックサイクルを要するパイプライン演算器をもって演算を行う。
【００１７】
本発明の第２の観点は、第１データまたは演算結果と第２データを入力として、所定の演算処理を行う演算部であって、複数の部分演算器と各部分演算器の演算結果を収納する複数の記憶手段を含み、全体の演算を部分演算に分割し、一つの部分演算器と記憶手段からなるパイプライン段を当該記憶手段の収納演算結果が次段の部分演算器に供給されるようにパイプライン状に接続し、それぞれの部分演算をパイプライン１段で行い、一つの演算を完了させるために複数のクロックサイクルを要するパイプライン演算器をもって演算を行う演算部と、入力された上記第１データを少なくとも１段シフトさせて遅延させ、第１選択信号に応じて入力した第１データ、遅延させた第１データ、演算部の出力演算結果のいずれかを選択して上記演算部の初段の部分演算器に入力させる第１データシフト選択回路と、入力された上記第２データを複数段だけ順次にシフトさせて遅延させ、第２選択信号に応じて入力した第２データ、遅延させた複数の第２データのいずれかを選択して上記演算部の初段の部分演算器に入力させる第２データシフト選択回路とを有する。
【００１８】
好適には、上記第１データシフト選択回路は、入力された上記第１データを遅延させる少なくとも一つのシフトレジスタを含み、上記第２データシフト選択回路は、入力された上記第２データを順次に遅延させる複数のシフトレジスタを含む。
【００１９】
好適には、スループットをＴＨ、パイプライン演算器のレイテンシをＬＴとした場合に、上記第１データシフト選択回路のシフトレジスタ数B  SREGおよび上記第２データシフト選択回路のシフトレジスタ数A  SREGは、次式に基づいて設定される。
A ＿SREG  =  2x(LT-1)x(TH-1) 
B ＿SREG  =  (LT-1)x(TH-1) 
【００２０】
好適には、１つの上記第１データと当該第１データに対応する複数の上記第２データとの演算を順次に行う。
好適には、上記演算部は、上記第１データと一つの第２データとの演算結果に次の第２データとの演算を行う。
【００２１】
本発明の第３の観点は、ピクセルデータとテクセルデータの基づいてテクスチャマッピング処理を行う画像処理装置であって、上記ピクセルデータまたは演算結果と上記テクセルデータを入力として、所定の演算処理を行う演算部と、上記ピクセルデータまたは上記演算部の出力演算結果を、上記演算部に入力させるセレクタと、を有し、上記演算部は、複数の部分演算器と各部分演算器の演算結果を収納する複数の記憶手段を含み、全体の演算を部分演算に分割し、一つの部分演算器と記憶手段からなるパイプライン段を当該記憶手段の収納演算結果が次段の部分演算器に供給されるようにパイプライン状に接続し、それぞれの部分演算をパイプライン１段で行い、一つの演算を完了させるために複数のクロックサイクルを要するパイプライン演算器をもって演算を行う。
【００２２】
本発明の第４の観点は、ピクセルデータとテクセルデータの基づいてテクスチャマッピング処理を行う画像処理装置であって、ピクセルデータまたは演算結果とテクセルデータを入力として、所定の演算処理を行う演算部であって、複数の部分演算器と各部分演算器の演算結果を収納する複数の記憶手段を含み、全体の演算を部分演算に分割し、一つの部分演算器と記憶手段からなるパイプライン段を当該記憶手段の収納演算結果が次段の部分演算器に供給されるようにパイプライン状に接続し、それぞれの部分演算をパイプライン１段で行い、一つの演算を完了させるために複数のクロックサイクルを要するパイプライン演算器をもって演算を行う演算部と、入力された上記ピクセルデータを少なくとも１段シフトさせて遅延させ、第１選択信号に応じて入力したピクセルデータ、遅延させたピクセルデータ、演算部の出力演算結果のいずれかを選択して上記演算部の初段の部分演算器に入力させるピクセルデータシフト選択回路と、入力された上記テクセルデータを複数段だけ順次にシフトさせて遅延させ、第２選択信号に応じて入力したテクセルデータ、遅延させた複数のテクセルデータのいずれかを選択して上記演算部の初段の部分演算器に入力させるテクセルデータシフト選択回路とを有する。
【００２３】
本発明によれば、たとえば第１データが第１データシフト選択回路に入力され、第２データが第２データシフト選択回路に入力される。
第１データシフト選択回路において、第１データが少なくとも１段シフトされて遅延される。そして、第１選択信号に応じて入力した第１データ、遅延させた第１データ、演算部の出力演算結果のいずれかが選択され演算部の初段の部分演算器に入力される。
第２データシフト選択回路において、入力された第２データが複数段順次にシフトされて遅延される。そして、第２選択信号に応じて入力した第２データ、遅延させた複数の第２データのいずれかが選択されて演算部の初段の部分演算器に入力される。
演算部では、一つの演算を完了させるために複数のクロックサイクルを要するパイプライン演算器をもって演算を行われる。具体的には、パイプライン状に接続された部分演算器によりそれぞれの部分演算がパイプライン１段で行われる。
演算部の最終的な演算結果は、第１データシフト選択回路に供給される。
【発明の効果】
【００２４】
本発明によれば、演算ループを実現したとしても処理性能の低下を招くことがなく、複雑な演算に対しても所定の時間内で終了するように適応できるという利点がある。
また、パイプライン演算器に無効データが通過している時刻が存在せず、これによりマルチテクスチャ処理でのデータ演算において、演算器を無駄なく効率よく使用することができ、入出力として所定のスループットの効率を実現できる利点がある。
【発明を実施するための最良の形態】
【００２５】
以下、本実施形態においては、パーソナルコンピュータなどに適用される、任意の３次元物体モデルに対する所望の３次元画像をＣＲＴ(Cathode Ray Tube)などのディスプレイ上に高速に表示する３次元コンピュータグラフィックスシステムについて説明する。
【００２６】
図１は、本発明に係る画像処理装置としての３次元コンピュータグラフィックスシステム１０のシステム構成図である。
【００２７】
３次元コンピュータグラフィックスシステム１０は、立体モデルを単位図形である三角形（ポリゴン）の組み合わせとして表現し、このポリゴンを描画することで表示画面の各画素の色を決定し、ディスプレイに表示するポリゴンレンダリング処理を行うシステムである。
また、３次元コンピュータグラフィックスシステム１０では、平面上の位置を表現する（ｘ，ｙ）座標の他に、奥行きを表すｚ座標を用いて３次元物体を表し、この（ｘ，ｙ，ｚ）の３つの座標で３次元空間の任意の一点を特定する。
【００２８】
３次元コンピュータグラフィックスシステム１０において、テクスチャマッピング処理では、パイプライン状に流されてくる（転送されてくる）ピクセルデータに対してテクセルデータを対応させて演算処理を行い、後段に流すという処理を行うが、最近では１つの第１データとしてのピクセルデータに対応させる第２データとしてのテクセルデータの数量を増加させるというマルチテクスチャマッピング処理が必要となっている。
本実施形態においては、ピクセルデータに対応するテクセルデータを複数演算処理可能なマルチテクスチャマッピング演算処理装置を実現する上で、演算の効率に着目し、入出力の効率を乱すことなく処理装置を構築するために必要な制御方式を実現している。
この方式は、後で詳述するように、演算器の処理性能の増加に対して柔軟に対応が可能であるという特徴を有し、テクスチャマッピング処理以外に一般的なパイプライン演算器への適応も可能となっている。
【００２９】
本実施形態に係るマルチテクスチャ処理回路では、後で詳述するように、パイプラインの中に閉じた演算ループを構成し、第１の演算結果を同じ演算器に再入力するといった、閉じた演算ループ処理を行う構成を有し、閉じた演算ループを実現しても、処理性能低下を招かない構成を実現している。
そして、本実施形態に係るマルチテクスチャ処理回路では、全体の演算を部分演算に分割し、部分演算器をパイプライン状に接続し、それぞれの部分演算をパイプライン１段で行い、一つの演算を完了させるために複数のクロックサイクルを要するような、パイプライン演算器をもって演算を行う。
また、閉じた演算ループをパイプライン演算器を使用して実現する場合に、演算処理性能を示す入出力効率はスループットで表現される。これは有効なデータが入出力されるに必要なクロック数と考えてよい。また、パイプライン演算器の中をデータが通過することに要するクロック数は、通常レイテンシと呼ばれ、２段の部分演算器から構成されるパイプライン演算器は、レイテンシ＝２の性能を持つ。
本実施形態に係るマルチテクスチャ処理系では、閉じた演算ループを構成するパイプライン演算器のレイテンシとスループットを一般化することで、マルチテクスチャ処理を実現するための閉じた演算ループを構成する演算器に対して、最適なスループットを実現する一般的な方式を示す。
【００３０】
以下、上記のように構成される３次元コンピュータグラフィックスシステム１０の各部の具体的な構成および機能について順を追って説明する。
【００３１】
図１に示すように、３次元コンピュータグラフィックスシステム１０は、メインプロセッサ１１、メインメモリ１２、Ｉ／Ｏインタフェース回路１３、およびレンダリング回路１４が、メインバス１５を介して接続されている。
以下、各構成要素の機能について説明する。
【００３２】
メインプロセッサ１１は、たとえば、アプリケーションの進行状況などに応じて、メインメモリ１２から必要なグラフィックデータを読み出し、このグラフィックデータに対して、座標変換、クリッピング(Clipping)処理、ライティング(Lighting)処理などのジオメトリ(Geometry)処理などを行い、ポリゴンレンダリングデータを生成する。
メインプロセッサ１１は、ポリゴンレンダリングデータＳ１１を、メインバス１５を介してレンダリング回路１４に出力する。
【００３３】
Ｉ／Ｏインタフェース回路１３は、必要に応じて、外部から動きの制御情報またはポリゴンレンダリングデータなどを入力し、これをメインバス１５を介してレンダリング回路１４に出力する。
【００３４】
レンダリング回路１４に入力されるポリゴンレンダリングデータは、ポリゴンの各３頂点の（ｘ，ｙ，ｚ，Ｒ，Ｇ，Ｂ，α，ｓ，ｔ，ｑ）のデータを含んでいる。
ここで、（ｘ，ｙ，ｚ）データは、ポリゴンの頂点の３次元座標を示し、（Ｒ，Ｇ，Ｂ）データは、それぞれ当該３次元座標における赤、緑、青の輝度値を示している。
また、α（アルファ）は、ブレンド値（係数）を示している。
（ｓ，ｔ，ｑ）データのうち、（ｓ，ｔ）は、対応するテクスチャの同次座標を示しており、ｑは同次項を示している。ここで、「ｓ／ｑ」および「ｔ／ｑ」に、それぞれテクスチャサイズＵＳＩＺＥおよびＶＳＩＺＥを乗じて、実際のテクスチャ座標データ（ｕ，ｖ）が得られる。
レンダリング回路１４のグラフィックスメモリ（具体的には後記するテクスチャバッファ）に記憶されたテクセルデータへのアクセスは、テクスチャ座標データ（ｕ，ｖ）を用いて行われる。
すなわち、ポリゴンレンダリングデータは、三角形の各頂点の物理座標値と、それぞれの頂点の色とテクセルデータである。
【００３５】
レンダリング回路１４は、図１に示すように、線形補間演算のための初期設定演算ブロックとしてのＤＤＡ(Digital Differential Analyzer) セットアップ回路１４１、線形補間処理ブロックとしてのトライアングルＤＤＡ回路１４２、テクスチャエンジン回路１４３、メモリインタフェース（Ｉ／Ｆ）回路１４４、たとえばＤＲＡＭからなるグラフィックスメモリ１４５、およびＣＲＴコントロール回路１４６を有している。そして、テクスチャエンジン回路１４３、およびメモリインタフェース（Ｉ／Ｆ）回路１４４により処理回路が構成される。
【００３６】
ＤＤＡセットアップ回路１４１は、後段のトライアングルＤＤＡ回路１４２において物理座標系上の三角形の各頂点の値を線形補間して、三角形の内部の各画素の色と深さ情報を求めるに先立ち、ポリゴンレンダリングデータＳ１１が示す（ｚ，Ｒ，Ｇ，Ｂ，α，ｓ，ｔ，ｑ）データについて、三角形の辺と水平方向の差分などを求めるセットアップ演算を行う。
このセットアップ演算は、具体的には、開始点の値と終点の値と、開始点と終点との距離を用いて、単位長さ移動した場合における、求めようとしている値の変分を算出する。
ＤＤＡセットアップ回路１４１は、算出した変分データを含むプリミティブに関する情報としてのセットアップデータＳ１４１をトライアングルＤＤＡ回路１４２に出力する。
三角形の各頂点データは、たとえばｘ，ｙ座標が１６ビット、ｚ座標が２４ビット、ＲＧＢカラー値が各１２ビット（＝８＋４）、ｓ，ｔ，ｑテクスチャ座標は各３２ビット浮動少数値（ＩＥＥＥフォーマット）等で構成される。
【００３７】
トライアングルＤＤＡ回路１４２は、ＤＤＡセットアップ回路１４１から入力した変分データを含むプリミティブに関する情報としてのセットアップデータＳ１４１を基に、三角形内部の各画素における線形補間された（ｚ，Ｒ，Ｇ，Ｂ，α，ｓ，ｔ，ｑ）データを算出する。
トライアングルＤＤＡ回路１４２は、各ピクセルの（ｘ，ｙ）データと、当該（ｘ，ｙ）座標における（ｚ，Ｒ，Ｇ，Ｂ，α，ｓ，ｔ，ｑ）データとを、ＤＤＡデータ（補間データ）Ｓ１４２としてテクスチャエンジン回路１４３に出力する。
【００３８】
すなわち、トライアングルＤＤＡ回路１４２は、ポリゴンの頂点毎に求められた画像パラメータに基づいてポリゴン内部に含まれるすべてのピクセルの画像パラメータを補間するラスタライズ処理（ラスタライゼーション：Ｒａｓｔｅｒｉｚａｔｉｏｎ）を行う。
具体的には、トライアングルＤＤＡ回路１４２は、各種データ（ｚ，テクスチャ座標、カラーなど）をラスタライズする。
【００３９】
テクスチャエンジン回路１４３は、「ｓ／ｑ」および「ｔ／ｑ」の算出処理、テクスチャ座標データ（ｕ，ｖ）の算出処理、グラフィックスメモリ１４５からの（Ｒ，Ｇ，Ｂ，α）データの読み出し処理等をパイプライン方式で行う。
なお、テクスチャエンジン回路１４３は、たとえば所定の矩形内に位置する複数（たとえば４あるいは８）ピクセルについての処理を同時に並行して行う。
【００４０】
テクスチャエンジン回路１４３は、ＤＤＡデータＳ１４２が示す（ｓ，ｔ，ｑ）データについて、ｓデータをｑデータで除算する演算と、ｔデータをｑデータで除算する演算とを行う。
テクスチャエンジン回路１４３には、たとえば図示しない除算回路が並列処理する画素数分だけ（たとえば８個）設けられており、８画素についての除算「ｓ／ｑ」および「ｔ／ｑ」が同時に行われる。また、８画素のうち代表点からの補間演算処理を行うように実装することも可能である。
【００４１】
また、テクスチャエンジン回路１４３は、除算結果である「ｓ／ｑ」および「ｔ／ｑ」に、それぞれテクスチャサイズＵＳＩＺＥおよびＶＳＩＺＥを乗じて、テクスチャ座標データ（ｕ，ｖ）を生成する。
また、テクスチャエンジン回路１４３は、メモリＩ／Ｆ回路１４４を介して、グラフィックスメモリ１４５に、生成したテクスチャ座標データ（ｕ，ｖ）を含む読み出し要求を出力し、メモリＩ／Ｆ回路１４４を介して、グラフィックスメモリ１４５に含まれるテクスチャバッファに記憶されているテクセルデータを読み出すことで、（u，v）データに対応したテクスチャアドレスに記憶された（Ｒ，Ｇ，Ｂ，α）データを得る。
テクスチャエンジン回路１４３は、読み出した（Ｒ，Ｇ，Ｂ，α）データと、前段のトライアングルＤＤＡ回路１４２からのＤＤＡデータＳ１４２に含まれる（Ｒ，Ｇ，Ｂ，α）データとを、それぞれ演算するなどして、ピクセルデータを生成する。
テクスチャエンジン回路１４３は、このピクセルデータＳ１４３を最終的にピクセルのカラー値としてメモリＩ／Ｆ回路１４４に出力する。
【００４２】
なお、グラフィックスメモリ１４５に含まれるテクスチャバッファには、ＭＩＰＭＡＰ（複数解像度テクスチャ）などの複数の縮小率に対応したテクセルデータが記憶されている。ここで、何れの縮小率のテクセルデータを用いるかは、所定のアルゴリズムを用いて、前記三角形単位で決定される。
【００４３】
テクスチャエンジン回路１４３は、フルカラー方式の場合には、テクスチャバッファから読み出した（Ｒ，Ｇ，Ｂ，α）データを直接用いる。
一方、テクスチャエンジン回路１４３は、インデックスカラー方式の場合には、あらかじめ作成しておいたカラーインデックステーブルのデータを、テクスチャカラールックアップテーブル（ＣＬＵＴ）バッファより内蔵するＳＲＡＭ等で構成した一時保管バッファに転送しておいて、このカラールックアップテーブルを用いて、テクスチャバッファから読み出したカラーインデックスに対応する（Ｒ，Ｇ，Ｂ，α）データを得る。
たとえばカラールックアップテーブルがＳＲＡＭで構成された場合、カラーインデックスをＳＲＡＭのアドレスに入力すると、その出力には実際の（Ｒ，Ｇ，Ｂ，α）データが出てくるといった使い方となる。
【００４４】
ここで、本発明に係る演算装置を採用したテクスチャエンジン回路１４３におけるテクスチャマッピング処理回路の第１および第２の構成例について、図面に関連付けて説明する。
なお、ここで説明するマルチテクスチャ処理回路としてのテクスチャマッピング処理回路は、全体の演算を部分演算に分割し、部分演算器をパイプライン状に接続し、それぞれの部分演算をパイプライン１段で行い、一つの演算を完了させるために複数のクロックサイクルを要するような、パイプライン演算器をもって演算を行う。
【００４５】
図２は、本実施形態に係るテクスチャマッピング処理回路の第１の構成例を示す回路図である。
【００４６】
本テクスチャマッピング処理回路２００は、図２に示すように、演算部（ＣＡＬＣ）２０１とセレクタ２０２を有する。
【００４７】
演算部２０１は、レイテンシ＝２のパイプライン演算器で構成されている。レイテンシ＝２とはマルチテクスチャ処理を完了させるために、レイテンシ＝１の演算器を２個パイプライン状に接続してあるからである。
具体的には、演算部２０１は、第１回目の部分演算を行う第１部分演算器（ＳＣＡＬＣ１）２０１１と、第２回目の部分演算を行う第２部分演算器（ＳＣＡＬＣ２）２０１２と、第１部分演算器２０１１の演算結果を収納する第１パイプラインレジスタ２０１３と、第２部分演算器２０１２の演算結果を収納する第２パイプラインレジスタ２０１４とを有する。
このように、演算部２０１は、部分演算器とパイプラインレジスタを接続して、演算を行う１つのパイプライン演算器を構成している。
【００４８】
また、マルチテクスチャ処理を行うテクスチャマッピング処理回路は、ＡＩはテクセルデータ（第２データ）ストリームが入力するテクセルデータ（第２データ）入力端子を示し、ＢＩはピクセルデータ（第１データ）ストリームが入力するピクセルデータ（第１データ）入力端子を示している。
本実施形態においては、入力端子ＡＩにはテクセルデータを毎クロックごとに入力するが、入力端子ＢＩにはピクセルデータを２クロックに１回入力している。
本実施形態においては、マルチテクスチャ処理を説明するために、ピクセルデータとテクセルデータを以下のように定義する。
ピクセルデータは単一の数値表現されたデータのみならず、それらの集合である。コンピュータグラフィックス処理の場合は、ピクセルのカラーを表現するための、α（alpha）値、Ｒ（Ｒｅｄ）カラー値、Ｇ（Ｇｒｅｅｎ）カラー値、Ｂ（Ｂｌｕｅ）カラー値などである。
【００４９】
テクセルデータは単一の数値表現されたデータのみならず、それらの集合である。コンピュータグラフィックス処理の場合は、テクセルのカラーを表現するための、α（alpha）値、Ｒ（Ｒｅｄ）カラー値、Ｇ（Ｇｒｅｅｎ）カラー値、Ｂ（Ｂｌｕｅ）カラー値などである。
【００５０】
[B0],[B1],[B2]…：第１ピクセルデータ、第２ピクセルデータ、第３ピクセルデータ…、
[A0_0]:第１ピクセルデータに対応する第１テクセルデータ、
[A0_1]: 第１ピクセルデータに対応する第２テクセルデータ、
[A1_0]: 第２ピクセルデータに対応する第１テクセルデータ、
[A1_1]: 第２ピクセルデータに対応する第２テクセルデータ、
[A2_0]: 第３ピクセルデータに対応する第１テクセルデータ、
[A2_1]: 第３ピクセルデータに対応する第２テクセルデータ、
【００５１】
また、マルチテクスチャを行うための演算を以下のように定義する。これらの演算は演算の種類たとえば四則演算や関数演算などを示す以外に、常数などのデータも含めることができる。
【００５２】
[演算0_1]:第１ピクセルデータと、第１ピクセルデータに対応する第１テクセルデータとの演算処理内容、
[演算0_2]:第１ピクセルデータと、第１ピクセルデータに対応する第２テクセルデータとの演算処理内容、
[演算0_3]:第１ピクセルデータと、第１ピクセル データに対応する第３テクセルデータとの演算処理内容、
[演算0_4]:第１ピクセルデータと、第１ピクセルデータに対応する第４テクセルデータとの演算処理内容、
[演算1_1]:第２ピクセルデータと、第２ピクセルデータに対応する第１テクセルデータとの演算処理内容、
[演算1_2]:第２ピクセルデータと、第２ピクセルデータに対応する第２テクセルデータとの演算処理内容、
[演算1_3]:第２ピクセルデータと、第２ピクセルデータに対応する第３テクセルデータとの演算処理内容、
[演算1_4]:第２ピクセルデータと、第２ピクセルデータに対応する第４のテクセルデータとの演算処理内容。
【００５３】
図２の回路の動作を、図３のタイミングチャートに関連付けて説明する。
【００５４】
（時刻T0）
第１ピクセルデータ [B0] が入力端子ＢＩに入力され、第１テクセルデータ[A0_0]が入力端子ＡＩに入力される。このとき、第１選択信号としてのＢ選択信号がＢＩを示すため、セレクタ２０２の出力BSELとして [B0] が現れ、演算部２０１に入力される。
演算部２０１においては、第１部分演算器２０１１により[演算0_1]の部分演算が行われ、その部分演算結果が第１パイプラインレジスタ２０１３に収納される。
【００５５】
（時刻T1）
第１パイプラインレジスタ２０１３に収納された第１回目の部分演算結果は、第２部分演算器２０１２により[演算0_1]の部分演算が行われ、第２パイプラインレジスタ２０１４に演算結果[o0_1]が収納される。
またこの時刻では、入力端子ＡＩに第２テクセルデータ[A0_1]が入力されているが、セレクタ２０２においてBSELとして選択されるべき演算部２０１の第１の演算結果[o0_1]は未だ計算終了していないため得られていない。
したがって、B選択信号は演算部２０１の出力OUTを示していても、第２の演算は実行できずにおり、計算終了を待つために入力端子ＡＩは同じものを入力し続けている。
【００５６】
（時刻T2）
第２パイプラインレジスタ２０１４には第１の演算[演算0_1]の結果である[o0_1]が保持されており、Ｂ選択信号の制御で演算部２０１の出力OUTがセレクタ２０２の出力BSELに現れる。
この時点で初めて第２の演算を開始することができる。入力端子ＡＩには既に時刻T1から継続して、第１のピクセルデータに対応する第２テクセルデータ[A0_1]が入力されており、セレクタ２０２の出力BSELに第１の演算結果[o0_1]が現れることで、第１部分演算器２０１１により[演算0_2]の部分演算が行われ、その部分演算結果が第１パイプラインレジスタ２０１３に収納される。
【００５７】
（時刻T3）
第１パイプラインレジスタ２０１３に収納された第１回目の部分演算結果は、第２部分演算器２０１２により[演算0_2]の部分演算が行われ、第２パイプラインレジスタ２０１４に演算結果[o0_2]が収納される。
またこの時刻では同時に入力端子ＡＩに、継続する第２ピクセルデータに対応する第１テクセルデータ[A1_0]が入力されており、セレクタ２０２の出力BSELとしてＢ選択信号の制御により入力端子ＢＩに継続して入力される第２ピクセルデータ[B1]が現れ、演算部２０１に入力される。
演算部２０１においては、第１部分演算器２０１１により[演算1_1]の部分演算が行われ、その部分演算結果が第１パイプラインレジスタ２０１３に収納される。
【００５８】
（時刻T4）
第２パイプラインレジスタ２０１４には既に有効出力[o0_2]が収納されているためこれがマルチテクスチャ処理回路２００の有効出力となる。
第１パイプラインレジスタ２０１３に収納された第１回目の部分演算結果は、第２の部分演算器２０１２により[演算1_1]の部分演算が行われ、第２パイプラインレジスタ２０１４に演算結果[o1_1]が収納される。
またこの時刻では入力端子ＡＩに、第２ピクセルデータに対応する第２テクセルデータ[A1_1]が入力されているが、セレクタ２０２の出力BSELとして選択されるべき第１の演算結果[o1_1]は未だ計算終了していないため得られていない。
したがって、Ｂ選択信号が演算部２０１の出力OUTを示していても、第２の演算は実行できずにおり、計算終了を待つために入力端子ＡＩには同じものを入力し続ける必要がある。
【００５９】
（時刻T5）
第２パイプラインレジスタ２０１４には、第１の演算[演算1_1]の結果である[o1_1]が保持されており、Ｂ選択信号の制御でセレクタ２０２の出力BSELに演算部２０１の出力が現れ。この時点で初めて第２の演算を開始することができる。
入力端子ＡＩには既に時刻T4から継続して、第２ピクセルデータに対応する第２テクセルデータ[A1_1]が入力されており、セレクタ２０２の出力BSELに第１の演算結果[o1_1]が選択出力されることで、第１部分演算器２０１１により[演算1_2]の部分演算が行われ、その部分演算結果が第１パイプラインレジスタ２０１３に収納される。
【００６０】
時刻T0-T5までを説明したが、タイミングチャートを参照することで、時刻T0で入力したピクセルデータB0が演算処理されて、結果である[o0_2]が得られるのが時刻T4であることが容易に理解できる。
また同じくタイミングチャートを参照することで、時刻T2から時刻T4のサイクルを繰り返していることも理解できる。
【００６１】
図２のテクスチャマッピング処理回路２００は、演算ループを実現したとしてもマルチテクスチャ処理が可能という利点がある。
【００６２】
ただし、上述したように、入力としてピクセルデータ１つに対してテクセルデータ２つを演算するマルチテクスチャ処理回路を実現した場合、入力としてスループット＝２の性能があるにもかかわらずパイプライン演算器のレイテンシの影響で、入出力ともにスループット＝３となる。
【００６３】
次に、入力としてピクセルデータ１つに対してテクセルデータ２つを演算するマルチテクスチャ処理回路を実現した場合であっても、入力としてスループット＝２の性能を保持することが可能な第２の構成例について説明する。
【００６４】
図４は、本実施形態に係るテクスチャマッピング処理回路の第２の構成例を示す回路図である。
【００６５】
本テクスチャマッピング処理回路２００Ａが図２のテクスチャマッピング処理回路２００と異なる点は、テクセルデータ入力端子ＡＩと演算部２０１の第１部分演算器２０１１の一方の入力との間に、入力されたテクセルデータを複数段（図４では２段）だけ順次にシフトさせて（遅延させて）、第２選択信号としてのＡ選択信号に応じて入力したテクセルデータ、第１回目に遅延させたテクセルデータ（ＡＩ１）、第２回目に遅延させたテクセルデータ（ＡＩ２）のいずれかを選択して出力するテクセルデータシフト選択回路２０３を設け、ピクセルデータ入力端子ＢＩと演算部２０１の第１部分演算器２０１１の他方の入力との間に、入力されたピクセルデータをシフトさせて（遅延させて）、第１選択信号としてのＢ選択信号に応じて入力したピクセルデータ、遅延させたピクセルデータ（ＢＩ１）、演算部２０１の出力OUT のいずれかを選択して出力するピクセルデータシフト選択回路２０４を設けたことにある。
【００６６】
テクセルデータシフト選択回路２０３は、２つのシフトレジスタ（ＳＲＥＧ）２０３１，２０３２、およびセレクタ２０３３を有する。
シフトレジスタ２０３１は、入力端子ＡＩから入力されたテクセルデータを遅延させてデータＡＩ１としてセレクタ２０３３およびシフトレジスタ２０３２に出力する。
シフトレジスタ２０３２は、シフトレジスタ２０３１により遅延されたデータＡＩ１をさらに遅延させて、データＡＩ２としてセレクタ２０３３に出力する。
セレクタ２０３３は、Ａ選択信号に応じて入力したテクセルデータ、第１回目に遅延させたテクセルデータ（ＡＩ１）、第２回目に遅延させたテクセルデータ（ＡＩ２）のいずれかを選択し出力ＡＳＥＬを通して演算部２０１の第１部分演算器２０１１の一方の入力に出力する。
【００６７】
ピクセルデータシフト選択回路２０４は、１つのシフトレジスタ（ＳＲＥＧ）２０４１、および図２の回路のセレクタ２０２と同様のセレクタ２０４２を有する。
シフトレジスタ２０４１は、入力端子ＢＩから入力されたピクセルデータを遅延させてデータＢＩ１としてセレクタ２０４２に出力する。
セレクタ２０４２は、Ｂ選択信号に応じて入力したピクセルデータ、遅延させたテクセルデータ（ＢＩ１）、演算部２０１の出力OUT のいずれかを選択し出力ＢＳＥＬを通して演算部２０１の第１部分演算器２０１１の他方の入力に出力する。
【００６８】
以下、図４の回路の動作を、図５のタイミングチャートに関連付けて説明する。
【００６９】
（時刻T0）
第１ピクセルデータ [B0]が入力端子ＢＩから入力され、第１ピクセルデータに対応する第１テクセルデータ[A00]が入力端子ＡＩから入力される。
入力端子ＡＩから入力されたテクセルデータは、テクセルデータシフト選択回路２０３において、直接入力されるＡＩ、第１段のシフトレジスタ２０３１を通過したＡＩ１、第２段のシフトレジスタ２０３２を通過したＡＩ２としてセレクタ２０３３に入力される。
また、入力端子ＢＩから入力されたピクセルデータは、ピクセルデータシフト選択回路２０４において、直接入力されるＢＩ、第１段のシフトレジスタ２０４１を通過したＢＩ１としてセレクタ２０４２に入力される。
【００７０】
（時刻T1）
ピクセルデータシフト選択回路２０４では、セレクタ２０４２において、ＢＩ１で供給される第１ピクセルデータ[B0]がＢ選択信号に応じて選択され出力BSELに現れる。
同様に、テクセルデータシフト選択回路２０３では、セレクタ２０３３において、ＡＩ１で供給される第１テクセルデータ[A0_0]が選択され出力ASELに現れる。
そして、演算部２０１の第１部分演算器２０１１により[演算0_1]が行われ、第１回目の部分演算結果が第１パイプラインレジスタ２０１３に収納される。
【００７１】
（時刻T2）
第１パイプラインレジスタ２０１３に収納された第１回目の部分演算結果は、第２部分演算器２０１２に入力され、第２パイプラインレジスタ２０１４に演算結果[o0_1]が収納される。第２パイプラインレジスタ２０１４に収納される演算結果は、[演算0_1]を部分演算の組み合わせで行ったものである。またこの演算は、第１ピクセルデータに対して、対応する第１テクセルデータとの演算を行った結果となる。
同時に、セレクタ２０４２において、ＢＩで供給される第２ピクセルデータ[B1]が選択され出力BSELに現れる。
同様に、セレクタ２０３３において、ＡＩで供給される第２ピクセルデータに対応する第１テクセルデータ[A1_0]が選択され出力ASELに現れる。
そして、第１部分演算器２０１１により[演算1_1]が行われ、第１回目の部分演算結果が第１パイプラインレジスタ２０１３に収納される。
【００７２】
（時刻T3）
第１パイプラインレジスタ２０１３に収納された第１回目の部分演算結果は、第２部分演算器２０１２に入力され、第２パイプラインレジスタ２０１４に演算結果[o1_1]が収納される。第２パイプラインレジスタ２０１４に収納される演算結果は、[演算1_1]を部分演算の組み合わせで行ったものである。またこの演算は、第２ピクセルデータに対して、対応する第１のテクセルデータとの演算を行った結果となる。
同時に、セレクタ２０４２において、演算部２０１の出力OUTとして供給される[o0_1]が選択され出力BSELに現れる。
同様に、セレクタ２０３３において、ＡＩ２で供給される第１ピクセルデータに対応する第２テクセルデータ[A0_1]が選択され出力ASELに現れる。
そして、第１部分演算器２０１１により[演算0_2]が行われ、第１回目の部分演算結果が第１パイプラインレジスタ２０１３に収納される。
【００７３】
（時刻T4）
第１パイプラインレジスタ２０１３に収納された第１回目の部分演算結果は、第２部分演算器２０１２に入力され、第２パイプラインレジスタ２０１４に演算結果[o0_2]が収納される。第２パイプラインレジスタ２０１４に収納される演算結果は、[演算0_2]を部分演算の組み合わせで行ったものである。またこの演算は、第１ピクセルデータに対して、対応する第１テクセルデータとの演算を行った結果に、さらに対応する第２テクセルデータとの演算を行った結果となる。
同時に、セレクタ２０４２において、演算部２０１の出力OUTとして供給される[o1_1]が選択され出力BSELに現れる。
同様に、セレクタ２０３３において、ＡＩ１で供給される第２ピクセルデータに対応する第２テクセルデータ[A1_1]が選択され出力ASELに現れる。
そして、第１部分演算器２０１１により[演算1_2]が行われ、第１回目の部分演算結果が第１パイプラインレジスタ２０１３に収納される。
【００７４】
（時刻T5）
第２パイプラインレジスタ２０１４に収納されていた[o0_2]は、テクスチャマッピング処理回路２００Ａの最初の有効出力である。
第１パイプラインレジスタ２０１３に収納された第１回目の部分演算結果は、第２部分演算器２０１２に入力され、第２パイプラインレジスタ２０１４に演算結果[o1_2]が収納される。第２パイプラインレジスタ２０１４に収納される演算結果は、[演算1_2]を部分演算の組み合わせで行ったものである。またこの演算は、第２ピクセルデータに対して、対応する第１テクセルデータとの演算を行った結果に、さらに対応する第２テクセルデータとの演算を行った結果となる。
同時に、セレクタ２０４２において、ＢＩ１で供給される第３ピクセルデータB2が選択され出力BSELに現れる。
同様に、セレクタ２０３３において、ＡＩ１で供給される第３ピクセルデータに対応する第１テクセルデータ[A2_0]が選択され出力ASELに現れる。
そして、第１部分演算器２０１１により[演算2_1]が行われ、第１回目の部分演算結果が第１パイプラインレジスタ２０１３に収納される。
【００７５】
（時刻T6）
第２パイプラインレジスタ２０１４に収納されていた[o1_2]は、テクスチャマッピング処理回路２００Ａの第２番目の有効出力である。
第１パイプラインレジスタ２０１３に収納された第１回目の部分演算結果は、第２部分演算器２０１２に入力され、第２パイプラインレジスタ２０１４に演算結果[o2_1]が収納される。第２パイプラインレジスタ２１０４に収納される演算結果は、[演算2_1]を部分演算の組み合わせで行ったものである。またこの演算は、第３ピクセルデータに対して、対応する第１テクセルデータとの演算を行った結果となる。
同時に、セレクタ２０４２において、ＢＩで供給される第４ピクセルデータB3が選択され出力BSELに現れる。
同様に、セレクタ２０３３において、ＡＩで供給される第４ピクセルデータに対応する第１テクセルデータ[A3_0]が選択され出力ASELに現れる。
そして、第１部分演算器２０１１により[演算3_1]が行われ、第１回目の部分演算結果が第１パイプラインレジスタ２０１３に収納される。
【００７６】
時刻T0から時刻T6までを説明したが、図５のタイミングチャートを参照することで図４の回路では、時刻T0で入力した第１ピクセルデータB0に対して第１テクセルデータ[A0_0]および第２テクセルデータ[A0_1]が、[演算0_1]および[演算0_2]で順次演算処理されて、時刻T5で有効結果が得られている。
同様に、第１ピクセルデータB0の処理の合間に第２ピクセルデータ演算が行われ、時刻T6で結果が得られていることが理解できる。
またタイミングチャートで重要な点は、パイプライン演算器に無効データが通過している時刻が存在しない点であり、このことがマルチテクスチャ処理でのデータ演算において、演算器を無駄なく効率よく使用していることも示している。
また同じくタイミングチャートを参照することで、T3-T6の４サイクルを繰り返していることも理解できる。
この動作の結果、図４の回路は、入出力としてスループット２の効率を実現していることになる。
【００７７】
以上の構成を有するテクスチャマッピング処理回路においては、ＤＤＡ回路１４２において、三角形の内部で線形補間されたテクスチャの同時座標ｓ、ｔ、ｑを用いて、デカルト座標でのテクスチャの実際のアドレスに変換する（ｑでの除算）。
さらにＭＩＰＭＡＰ等を行う場合は、ＭＩＰＭＡＰのレベルの算出を行う。そして、テクスチャ座標の算出を行う。
また、グラフィックスメモリ１４５に含まれるテクスチャバッファからそれぞれのレベルのテクセルデータを読み出し、そのまま使うポイントサンプリング（Point Sampling）または、bi-Linea（４近傍）補間、Tri-Linea 補間等を行う。
そこで得られたテクセルカラーに対して次の処理を行う。すなわち、入力されたピクセルカラーとテクセルカラーを演算・合成し、さらにフォグカラーを合成して、最終的に描画するピクセルのカラーを決定する。
【００７８】
メモリＩ／Ｆ回路１４４は、テクスチャエンジン回路１４３から入力したピクセルデータＳ１４３に対応するｚデータと、グラフィックスメモリ１４５に含まれるｚバッファに記憶されているｚデータとの比較を行い、入力したピクセルデータによって描画される画像が、前回、グラフィックスメモリ１４５（ディスプレイバッファ）に書き込まれた画像より、手前（視点側）に位置するか否かを判断し、手前に位置する場合には、画像データに対応するｚデータでｚバッファに記憶されたｚデータを更新する。
また、メモリＩ／Ｆ回路１４４は、（Ｒ，Ｇ，Ｂ，α）データをグラフィックスメモリ１４５（ディスプレイバッファ）に書き込む。
【００７９】
さらに、メモリＩ／Ｆ回路１４４は、今から描画しようとしている画素におけるテクスチャアドレスに対応したテクセルデータを格納しているグラフィックメモリ１４５のメモリブロックをそのテクスチャアドレスより算出し、そのメモリブロックにのみ読み出し要求を出すことにより、テクセルデータを読み出す。
この場合、該当するテクセルデータを保持していないメモリブロックにおいては、テクセルデータの読み出しのためのアクセスが行われないため、描画により多くのアクセス時間を提供することが可能となっている。
【００８０】
メモリＩ／Ｆ回路１４４は、描画においても同様に、今から描画しようとしているピクセルアドレスに対応するピクセルデータを格納しているグラフィックスメモリ１４５のメモリブロックに対して、該当アドレスからピクセルデータをモディファイ書き込みをするために読み出し、モディファイ後同じアドレスへ書き戻す。
隠れ面処理を行なう場合には、やはり同じように今から描画しようとしているピクセルアドレスに対応する奥行きデータを格納しているメモリブロックに対して、該当アドレスから奥行きデータをモディファイ書き込みするため読み出し、必要ならばモディファイ後同じアドレスへ書き戻す。
【００８１】
また、メモリＩ／Ｆ回路１４４は、テクスチャエンジン回路１４３からグラフィックスメモリ１４５に対する、生成されたテクスチャ座標データ（ｕ，ｖ）を含む読み出し要求を受けた場合には、グラフィックスメモリ１４５に記憶された（Ｒ，Ｇ，Ｂ，α）データを読み出す。
また、メモリＩ／Ｆ回路１４４は、ＣＲＴコントロール回路１４６から表示データを読み出す要求を受けた場合には、この要求に応じて、グラフィックメモリ１４５（ディスプレイバッファ）から一定の固まり、たとえば８ピクセルあるいは１６ピクセル単位で表示データを読み出す。
【００８２】
メモリＩ／Ｆ回路１４４は、グラフィックスメモリ１４５へのアクセス（書き込みまたは読み出し）を行うが、書き込み経路と読み出し経路とが別経路として構成されている。
すなわち、書き込みの場合には書き込みアドレスＡＤＲＷと書き込みデータＤＴＷが書き込み系回路で処理されてグラフィックスメモリ１４５に書き込み、読み出しの場合には読み出し系回路で処理されてグラフィックスメモリ１４５から読み出す。
そして、メモリＩ／Ｆ回路１４４は、所定のインターリーブ方式のアドレッシングに基づいてグラフィックスメモリ１４５へのアクセスを、たとえば１６画素単位で行う。
【００８３】
このようなメモリとのデータのやりとりにおいては、それまでの処理を複数並行処理することで、描画性能を向上させることができる。
特に、トライアングルＤＤＡ部分とテクスチャエンジン部分を並列実効形式で、同じ回路を設ける（空間並列）か、または、パイプラインを細かく挿入する（時間並列）ことで、複数画素の同時算出を行っている。
グラフィックスメモリ１４５のメモリブロックは表示領域において隣接した部分は、後述するように異なるメモリブロックとなるように配置してあるので、三角形のような平面を描画する場合には面で同時に処理できることになるため、それぞれのメモリブロックの動作確率は非常に高くなっている。
【００８４】
グラフィックスメモリ１４５は、テクスチャバッファ、ディスプレイバッファ、ｚバッファおよびテクスチャＣＬＵＴ(Color Look Up Table) バッファとして機能する。
また、グラフィックスメモリ１４５は、同一機能を有する複数、たとえば４個のモジュールに分割されている。
【００８５】
また、グラフィックスメモリ１４５には、より多くのテクセルデータを格納するために、インデックスカラーにおけるインデックスと、そのためのカラールックアップテーブル値が、テクスチャＣＬＵＴバッファに格納されている。
インデックスおよびカラールックアップテーブル値は、上述したように、テクスチャ処理に使われる。
すなわち、通常はＲ，Ｇ，Ｂ，αそれぞれ８ビットの合計３２ビットでテクスチャ要素を表現するが、それではデータ量が膨らむため、あらかじめ選んでおいたたとえば２５６色等の中から一つの色を選んで、そのデータをテクスチャ処理に使う。このことで２５６色であればそれぞれのテクスチャ要素は８ビットで表現できることになる。インデックスから実際のカラーへの変換テーブルは必要になるが、テクスチャの解像度が高くなるほど、よりコンパクトなテクセルデータとすることが可能となる。
これにより、テクセルデータの圧縮が可能となり、内蔵メモリの効率良い利用が可能となる。
【００８６】
さらに、グラフィックスメモリ１４５には、描画と同時並行的に隠れ面処理を行うため、描画しようとしている物体の奥行き情報が格納されている。
なお、表示データと奥行きデータおよびテクセルデータの格納方法としては、たとえばメモリブロックの所定の位置、たとえば先頭から連続して表示データが格納され、次に奥行きデータが格納され、残りの空いた領域に、テクスチャの種類毎に連続したアドレス空間でテクセルデータが格納される。
【００８７】
以上のように、ＤＤＡセットアップ回路１４１、トライアングルＤＤＡ回路１４２、テクスチャエンジン回路１４３、メモリＩ／Ｆ回路１４４等における所定処理を経て、最終的なメモリアクセスがピクセル(Pixel；Picture Cell Element) という描画画素単位としてグラフィックメモリ１４５に書き込まれる。
【００８８】
ＣＲＴコントロール回路１４６は、与えられた水平および垂直同期信号に同期して、図示しないＣＲＴに表示する表示アドレスを発生し、グラフィックスメモリ１４５に含まれるディスプレイバッファから表示データを読み出す要求をメモリＩ／Ｆ回路１４４に出力する。
この要求に応じて、メモリＩ／Ｆ回路１４４は、グラフィックスメモリ１４５（ディスプレイバッファ）から一定の固まりで表示データを読み出す。
ＣＲＴコントロール回路１４６は、グラフィックスメモリ１４５から読み出した表示データを記憶するたとえばＦＩＦＯ回路を内蔵し、一定の時間間隔で、ＲＧＢのインデックス値を発生する。
ＣＲＴコントロール回路１４６は、各インデックス値に対応するＲ，Ｇ，Ｂデータを記憶しており、発生したＲＧＢのインデックス値に対応するデジタル形式のＲ，Ｇ，Ｂデータを、図示しないＤ／Ａコンバータ(Digital/Analog Converter)に転送し、アナログ形式のＲ，Ｇ，Ｂデータを生成する。
ＣＲＴコントロール回路１４６は、この生成されたＲ，Ｇ，Ｂデータを図示しないＣＲＴに出力する。
【００８９】
次に、図１の構成による動作を説明する。なお、本発明の特徴であるマルチテクスチャ処理系については、図２〜図５に関連付けて説明したことから、ここでは、その詳細な処理についての説明は省略する。
【００９０】
３次元コンピュータグラフィックスシステム１０においては、グラフィックス描画等のデータは、メインプロセッサ１１のメインメモリ１２、あるいは外部からのグラフィックスデータを受けるＩ／Ｏインタフェース回路１３からメインバス１５を介してレンダリング回路１４に与えられる。
なお、必要に応じて、グラフィックス描画等のデータは、メインプロセッサ１１等において、座標変換、クリップ処理、ライティング処理等のジオメトリ処理が行われる。
ジオメトリ処理が終わったグラフィックスデータは、三角形の各３頂点の頂点座標ｘ，ｙ，ｚ、輝度値Ｒ，Ｇ，Ｂ、α、描画しようとしているピクセルと対応するテクスチャ座標ｓ，ｔ，ｑとからなるポリゴンレンダリングデータＳ１１となる。
このポリゴンレンダリングデータＳ１１は、レンダリング回路１４のＤＤＡセットアップ回路１４１に順々に転送される。
【００９１】
ＤＤＡセットアップ回路１４１においては、ポリゴンレンダリングデータＳ１１に基づいて、三角形の辺と水平方向の差分などを示す変分データが生成される。
具体的には、開始点の値と終点の値、並びに、その間の距離を用いて、単位長さ移動した場合における、求めようとしている値の変化分である変分が算出され、変分データを含むセットアップデータＳ１４１としてトライアングルＤＤＡ回路１４２に出力される。
【００９２】
トライアングルＤＤＡ回路１４２においては、変分データを含むセットアップデータＳ１４１を用いて、、三角形内部の各画素における線形補間された（ｚ，Ｒ，Ｇ，Ｂ，α、ｓ，ｔ，ｑ）データが算出される。
そして、この算出された（ｚ，Ｒ，Ｇ，Ｂ，α、ｓ，ｔ，ｑ）データと、三角形の各頂点の（ｘ，ｙ）データとが、ＤＤＡデータＳ１４２として、トライアングルＤＤＡ回路１４２からテクスチャエンジン回路１４３に出力される。
すなわち、トライアングルＤＤＡ回路１４２においては、ポリゴンの頂点毎に求められた画像パラメータに基づいてポリゴン内部に含まれるすべてのピクセルの画像パラメータ（ｚ，テクスチャ座標、カラーなど）を補間するラスタライズ処理が行われる。
【００９３】
マルチテクスチャ処理をパイプラインにより行うテクスチャエンジン回路１４３においては、ＤＤＡデータＳ１４２が示す（ｓ，ｔ，ｑ）データについて、ｓデータをｑデータで除算する演算と、ｔデータをｑデータで除算する演算とが行われる。そして、除算結果「ｓ／ｑ」および「ｔ／ｑ」に、それぞれテクスチャサイズＵＳＩＺＥおよびＶＳＩＺＥが乗算され、テクスチャ座標データ（ｕ，ｖ）が生成される。
【００９４】
次に、テクスチャエンジン回路１４３からメモリＩ／Ｆ回路１４４に対して生成されたテクスチャ座標データ（ｕ，ｖ）を含む読み出し要求が出力され、メモリＩ／Ｆ回路１４４を介して、グラフィックスメモリ１４５に記憶された（Ｒ，Ｇ，Ｂ，α）データが読み出される。
次に、テクスチャエンジン回路１４３において、読み出した（Ｒ，Ｇ，Ｂ，α）データと、前段のトライアングルＤＤＡ回路１４２からのＤＤＡデータＳ１４２に含まれる（Ｒ，Ｇ，Ｂ，α）データとが演算され、ピクセルデータとして生成される。
このピクセルデータは、テクスチャエンジン回路１４３からメモリＩ／Ｆ回路１４４に出力される。
【００９５】
そして、メモリＩ／Ｆ回路１４４において、テクスチャエンジン回路１４３から入力したピクセルデータに対応するｚデータと、ｚバッファに記憶されているｚデータとの比較が行われ、入力したピクセルデータＳ１４５によって描画される画像が、前回、ディスプレイバッファに書き込まれた画像より、手前（視点側）に位置するか否かが判断される。
判断の結果、手前に位置する場合には、画像データに対応するｚデータでｚバッファに記憶されたｚデータが更新される。
【００９６】
次に、メモリＩ／Ｆ回路１４４において、（Ｒ，Ｇ，Ｂ，α）データがグラフィックスメモリ１４５のディスプレイバッファに書き込まれる。
これら書き込む（更新も含む）べきデータは、書き込み系回路を介し所定のメモリに対して並列的に書き込まれる。
【００９７】
メモリＩ／Ｆ回路１４４においては、今から描画しようとしているピクセルにおけるテクスチャアドレスに対応したテクセルを格納しているグラフィックスメモリ１４５のメモリブロックがそのテクスチャアドレスにより算出され、そのメモリブロックにのみ読みだし要求が出され、テクセルデータが読み出される。
この場合、該当するテクセルデータを保持していないメモリブロックにおいては、テクスチャ読み出しのためのアクセスが行われないため、描画により多くのアクセス時間を提供することが可能となっている。
【００９８】
描画においても同様に、今から描画しようとしているピクセルアドレスに対応するピクセルデータを格納しているメモリブロックに対して、該当アドレスからピクセルデータがモディファイ書き込み(Modify Write)を行うために読み出され、モディファイ後、同じアドレスへ書き戻される。
【００９９】
隠れ面処理を行う場合には、やはり同じように今から描画しようとしているピクセルアドレスに対応する奥行きデータを格納しているメモリブロックに対して、該当アドレスから奥行きデータがモディファイ書き込み(Modify Write)を行うために読み出され、必要ならばモディファイ後、同じアドレスへ書き戻される。
【０１００】
そして、図示しないＣＲＴに画像を表示する場合には、ＣＲＴコントロール回路１４６において、与えられた水平垂直同期周波数に同期して、表示アドレスが発生され、メモリＩ／Ｆ回路１４４へ表示データ転送の要求が出される。
メモリＩ／Ｆ回路１４４では、その要求に従い、一定のまとまった固まりで、表示データがＣＲＴコントロール回路１４６に転送される。
ＣＲＴコントロール回路１４６では、図示しないディスプレイ用ＦＩＦＯ等にその表示データが貯えられ、一定の間隔でＲＧＢのインデックス値が生成される。
ＣＲＴコントロール回路１４６においては、内部にＲＧＢのインデックスに対するＲＧＢ値が記憶されていて、インデックス値に対するＲＧＢ値が図示しないＤ／Ａコンバータへ転送される。
そして、Ｄ／Ａコンバータでアナログ信号に変換されたＲＧＢ信号がＣＲＴへ転送される。
【０１０１】
以上説明したように、本実施形態によれば、マルチテクスチャ処理回路としてのテクスチャマッピング処理回路２００は、全体の演算を部分演算に分割し、部分演算器をパイプライン状に接続し、それぞれの部分演算をパイプライン１段で行い、一つの演算を完了させるために複数のクロックサイクルを要するような、パイプライン演算器をもって演算を行うように構成した。
具体的には、図２に示すように、ピクセルデータとテクセルデータ、または演算出力とテクセルデータとの第１回目の部分演算を行う第１部分演算器（ＳＣＡＬＣ１）２０１１と、第２回目の部分演算を行う第２部分演算器（ＳＣＡＬＣ２）２０１２と、第１部分演算器２０１１の演算結果を収納する第１パイプラインレジスタ２０１３と、第２部分演算器２０１２の演算結果を収納する第２パイプライン演算器２０１４とを有し、部分演算器とパイプラインレジスタを接続して、演算を行う１つのパイプライン演算器を構成している演算部２０１と、Ｂ選択信号に応じてピクセルデータまたは演算部２０１の出力を選択して第１部分演算器２０１１に供給するセレクタ２０２を設けたので、演算ループを実現したとしてもマルチテクスチャ処理が可能という利点がある。
【０１０２】
また、本実施形態によれば、図４に示すように、図２の構成に加えて、テクセルデータ入力端子ＡＩと演算部２０１の第１部分演算器２０１１の一方の入力との間に、入力されたテクセルデータを複数段（図４では２段）だけ順次にシフトさせて（遅延させて）、Ａ選択信号に応じて入力したテクセルデータ、第１回目に遅延させたテクセルデータ（ＡＩ１）、第２回目に遅延させたテクセルデータ（ＡＩ２）のいずれかを選択して出力するテクセルデータシフト選択回路２０３を設け、ピクセルデータ入力端子ＢＩと演算部２０１の第１部分演算器２０１１の他方の入力との間に、入力されたピクセルデータをシフトさせて（遅延させて）、Ｂ選択信号に応じて入力したピクセルデータ、遅延させたピクセルデータ（ＢＩ１）、演算部２０１の出力OUT のいずれかを選択して出力するピクセルデータシフト選択回路２０４を設けたので、以下の効果を得ることができる。
すなわち、パイプライン演算器に無効データが通過している時刻が存在せず、これにより、マルチテクスチャ処理でのデータ演算において、演算器を無駄なく効率よく使用することができ、入出力としてスループット２の効率を実現できる利点がある。
【０１０３】
なお、図２に示す３次元コンピュータグラフィックスシステム１０では、ポリゴンレンダリングデータを生成するジオメトリ処理を、メインプロセッサ１１で行う場合を例示したが、レンダリング回路１４で行う構成にしてもよい。
【０１０４】
以上の説明では、パイプラン処理を行うマルチテクスチャ処理回路としてのテクスチャマッピング処理回路について、図２および図４の構成例に関連付けて説明した。
以下、テクスチャマッピング処理回路のレイテンシおよびスループットの変更に対する各種応用例について、図面に関連付けて説明する。
【０１０５】
図６は、本実施形態に係るテクスチャマッピング処理回路におけるパイプライン演算器（演算部）２０１Ｂが、レイテンシ＝３で動作する回路で実現された場合の構成例を示す回路図である。
図７は、図６の回路のタイミングチャートである。
【０１０６】
図６のテクスチャマッピング処理回路２００Ｂは、レイテンシ＝３で動作するように、図４の構成に加えて、演算部２０１Ｂにおいて、第３回目の部分演算を行う第３部分演算器（ＳＣＡＬＣ３）２０１５と、第３部分演算器２０１５の演算結果を収納する第３パイプラインレジスタ（ＲＥＧ３）２０１６を、さらに設け、部分演算器とパイプラインレジスタを接続して、演算を行う１つのパイプライン演算器を構成している。
また、テクセルデータシフト選択回路２０３Ｂは、シフトレジスタ（ＳＲＥＧ）を２段ではなく４段構成として、セレクタ２０３３ＢはテクセルデータＡＩ，遅延テクセルデータＡＩ１〜ＡＩ４の５つからいずれか一つのデータを選択する。
ピクセルデータシフト選択回路２０４Ｂは、シフトレジスタ（ＳＲＥＧ）を１段ではなく２段構成として、セレクタ２０４２Ｂは、ピクセルデータＢＩ、遅延ピクセルデータＢＩ１，ＢＩ２、演算部２０１Ｂの出力OUT のいずれか一つのデータを選択する。
そして、図７のタイミングチャートに示すように、Ａ選択、Ｂ選択、および演算制御を行うことにより、マルチテクスチャ処理全体のスループット＝２を確保できる。
基本的な動作は図５に関連付けた図４の回路と同様であることから、詳細な説明は省略する。
【０１０７】
図８は、本実施形態に係るテクスチャマッピング処理回路におけるパイプライン演算器（演算部）２０１Ｃが、レイテンシ＝４で動作する回路で実現された場合の構成例を示す回路図である。
図９は、図８の回路のタイミングチャートである。
【０１０８】
図８のテクスチャマッピング処理回路２００Ｃは、レイテンシ＝４で動作するように、図６の構成に加えて、演算部２０１Ｃにおいて、第４回目の部分演算を行う第４部分演算器（ＳＣＡＬＣ４）２０１７と、第４部分演算器２０１７の演算結果を収納する第４パイプラインレジスタ（ＲＥＧ４）２０１８を、さらに設け、部分演算器とパイプラインレジスタを接続して、演算を行う１つのパイプライン演算器を構成している。
また、テクセルデータシフト選択回路２０３Ｃは、シフトレジスタ（ＳＲＥＧ）を４段ではなく６段構成として、セレクタ２０３３ＣはテクセルデータＡＩ，遅延テクセルデータＡＩ１〜ＡＩ６の７つからいずれか一つのデータを選択する。
ピクセルデータシフト選択回路２０４Ｃは、シフトレジスタ（ＳＲＥＧ）を２段ではなく３段構成として、セレクタ２０４２Ｃは、ピクセルデータＢＩ、遅延ピクセルデータＢＩ１〜ＢＩ３、演算部２０１Ｃの出力OUT のいずれか一つのデータを選択する。
そして、図９のタイミングチャートに示すように、Ａ選択、Ｂ選択、および演算制御を行うことにより、マルチテクスチャ処理全体のスループット＝２を確保できる。
基本的な動作は図５に関連付けた図４の回路と同様であることから、詳細な説明は省略する。
【０１０９】
また、図１０は、演算器がレイテンシ＝２である図２の回路において、１つのピクセルデータに対して２つのテクセルデータではなく３つのテクセルデータを順次演算する場合のタイミングチャートである。
基本的な動作は図３に関連付けた図２の回路と同様であることから、詳細な説明は省略する。
この場合、スループットは５となる。
【０１１０】
図１１は、本実施形態に係るテクスチャマッピング処理回路におけるパイプライン演算器（演算部）２０１が、レイテンシ＝２で動作する回路で実現された場合であって、１つのピクセルデータに対して３つのテクセルデータを順次演算する場合の構成例を示す回路図である。
図１２は、図１１の回路のタイミングチャートである。
【０１１１】
図１１のテクスチャマッピング処理回路２００Ｄは、レイテンシ＝２で動作し、１つのピクセルデータに対して３つのテクセルデータを順次演算可能なように、図４の構成に代えて、テクセルデータシフト選択回路２０３Ｄは、シフトレジスタ（ＳＲＥＧ）を２段ではなく４段構成として、セレクタ２０３３ＤはテクセルデータＡＩ，遅延テクセルデータＡＩ１〜ＡＩ４の５つからいずれか一つのデータを選択する。
また、ピクセルデータシフト選択回路２０４Ｄは、シフトレジスタ（ＳＲＥＧ）を１段ではなく２段構成として、セレクタ２０４２Ｄは、ピクセルデータＢＩ、遅延ピクセルデータＢＩ１，ＢＩ２、演算部２０１の出力OUT のいずれか一つのデータを選択する。
そして、図１２のタイミングチャートに示すように、Ａ選択、Ｂ選択、および演算制御を行うことにより、マルチテクスチャ処理全体のスループット＝３を確保できる。
基本的な動作は図５に関連付けた図４の回路と同様であることから、詳細な説明は省略する。
【０１１２】
図１３は、本実施形態に係るテクスチャマッピング処理回路におけるパイプライン演算器（演算部）２０１Ｂが、レイテンシ＝３で動作する回路で実現された場合であって、１つのピクセルデータに対して３つのテクセルデータを順次演算する場合の構成例を示す回路図である。
図１４は、図１３の回路のタイミングチャートである。
【０１１３】
図１３のテクスチャマッピング処理回路２００Ｅは、レイテンシ＝３で動作し、１つのピクセルデータに対して３つのテクセルデータを順次演算可能なように、図６の構成に代えて、テクセルデータシフト選択回路２０３Ｅは、シフトレジスタ（ＳＲＥＧ）を４段ではなく８段構成として、セレクタ２０３３ＥはテクセルデータＡＩ，遅延テクセルデータＡＩ１〜ＡＩ８の９つからいずれか一つのデータを選択する。
また、ピクセルデータシフト選択回路２０４Ｅは、シフトレジスタ（ＳＲＥＧ）を２段ではなく４段構成として、セレクタ２０４２Ｅは、ピクセルデータＢＩ、遅延ピクセルデータＢＩ１〜ＢＩ４、演算部２０１Ｂの出力OUT のいずれか一つのデータを選択する。
そして、図１４のタイミングチャートに示すように、Ａ選択、Ｂ選択、および演算制御を行うことにより、マルチテクスチャ処理全体のスループット＝３を確保できる。
基本的な動作は図５に関連付けた図４の回路と同様であることから、詳細な説明は省略する。
【０１１４】
図１５は、本実施形態に係るテクスチャマッピング処理回路におけるパイプライン演算器（演算部）２０１Ｃが、レイテンシ＝４で動作する回路で実現された場合であって、１つのピクセルデータに対して３つのテクセルデータを順次演算する場合の構成例を示す回路図である。
図１６は、図１５の回路のタイミングチャートである。
【０１１５】
図１５のテクスチャマッピング処理回路２００Ｆは、レイテンシ＝４で動作し、１つのピクセルデータに対して３つのテクセルデータを順次演算可能なように、図８の構成に代えて、テクセルデータシフト選択回路２０３Ｆは、シフトレジスタ（ＳＲＥＧ）を６段ではなく１２段構成として、セレクタ２０３３ＦはテクセルデータＡＩ，遅延テクセルデータＡＩ１〜ＡＩ１２のいずれか一つのデータを選択する。
また、ピクセルデータシフト選択回路２０４Ｆは、シフトレジスタ（ＳＲＥＧ）を３段ではなく６段構成として、セレクタ２０４２Ｆは、ピクセルデータＢＩ、遅延ピクセルデータＢＩ１〜ＢＩ６、演算部２０１の出力OUT のいずれか一つのデータを選択する。
そして、図１６のタイミングチャートに示すように、Ａ選択、Ｂ選択、および演算制御を行うことにより、マルチテクスチャ処理全体のスループット＝３を確保できる。
基本的な動作は図５に関連付けた図４の回路と同様であることから、詳細な説明は省略する。
【０１１６】
また、図１７は、演算器がレイテンシ＝２である図２の回路において、１つのピクセルデータに対して２つのテクセルデータではなく４つのテクセルデータを順次演算する場合のタイミングチャートである。
基本的な動作は図３に関連付けた図２の回路と同様であることから、詳細な説明は省略する。
この場合、スループットは７となる。
【０１１７】
図１８は、本実施形態に係るテクスチャマッピング処理回路におけるパイプライン演算器（演算部）２０１が、レイテンシ＝２で動作する回路で実現された場合であって、１つのピクセルデータに対して４つのテクセルデータを順次演算する場合の構成例を示す回路図である。
図１９は、図１８の回路のタイミングチャートである。
【０１１８】
図１８のテクスチャマッピング処理回路２００Ｇは、レイテンシ＝２で動作し、１つのピクセルデータに対して４つのテクセルデータを順次演算可能なように、図４の構成に代えて、テクセルデータシフト選択回路２０３Ｇは、シフトレジスタ（ＳＲＥＧ）を２段ではなく６段構成として、セレクタ２０３３ＧはテクセルデータＡＩ，遅延テクセルデータＡＩ１〜ＡＩ６の７つからいずれか一つのデータを選択する。
また、ピクセルデータシフト選択回路２０４Ｇは、シフトレジスタ（ＳＲＥＧ）を１段ではなく３段構成として、セレクタ２０４２Ｇは、ピクセルデータＢＩ、遅延ピクセルデータＢＩ１〜ＢＩ３、演算部２０１の出力OUT のいずれか一つのデータを選択する。
そして、図１９のタイミングチャートに示すように、Ａ選択、Ｂ選択、および演算制御を行うことにより、マルチテクスチャ処理全体のスループット＝４を確保できる。
基本的な動作は図５に関連付けた図４の回路と同様であることから、詳細な説明は省略する。
【０１１９】
図２０は、本実施形態に係るテクスチャマッピング処理回路におけるパイプライン演算器（演算部）２０１Ｂが、レイテンシ＝３で動作する回路で実現された場合であって、１つのピクセルデータに対して４つのテクセルデータを順次演算する場合の構成例を示す回路図である。
図２１は、図２０の回路のタイミングチャートである。
【０１２０】
図２０のテクスチャマッピング処理回路２００Ｈは、レイテンシ＝３で動作し、１つのピクセルデータに対して４つのテクセルデータを順次演算可能なように、図６の構成に代えて、テクセルデータシフト選択回路２０３Ｈは、シフトレジスタ（ＳＲＥＧ）を４段ではなく１２段構成として、セレクタ２０３３ＨはテクセルデータＡＩ，遅延テクセルデータＡＩ１〜ＡＩ１２のいずれか一つのデータを選択する。
また、ピクセルデータシフト選択回路２０４Ｈは、シフトレジスタ（ＳＲＥＧ）を２段ではなく６段構成として、セレクタ２０４２Ｈは、ピクセルデータＢＩ、遅延ピクセルデータＢＩ１〜ＢＩ６、演算部２０１Ｂの出力OUT のいずれか一つのデータを選択する。
そして、図２１のタイミングチャートに示すように、Ａ選択、Ｂ選択、および演算制御を行うことにより、マルチテクスチャ処理全体のスループット＝４を確保できる。
基本的な動作は図５に関連付けた図４の回路と同様であることから、詳細な説明は省略する。
【０１２１】
以下はスループットとレイテンシを一般化した場合の対応例である。
図２から図２１に関連付けてマルチテクスチャ処理回路としての各種テクスチャマッピング処理回路を説明してきたが、マルチテクスチャ処理を閉じた演算ループで実現を行い、演算器としてパイプライン演算器を使用する場合に、使用されるパイプライン演算器のレイテンシと、演算回路のスループットが定まれば、たとえば図２０に示す入力端子ＡＩおよびＢＩに接続されるシフトレジスタSREGの最適な個数を一般的に求めることが可能である。
たとえばレイテンシ=LT、スループット=THの変数でAI側のシフトレジスタSREG数(A＿SREG) およびBI側のシフトレジスタSREG数(B＿SREG) を表現すると、次のようになる。
【０１２２】
（数１）
A ＿SREG  =  2x(LT-1)x(TH-1) 
B ＿SREG  =  (LT-1)x(TH-1) 
【０１２３】
さらに本実施形態は、コンピュータグラフィックス処理装置におけるテクスチャマッピング方式の形態としてマルチテクスチャ処理を代表的な応用として示してきた。
しかし本発明の特徴は、閉じた演算ループをパイプラインの途中に用意し、演算器として２以上のレイテンシを持つパイプライン演算器を導入した場合に、スループットの低下を招かない回路方式が一般的に実現可能ということである。
したがって、広くコンピュータ技術、演算回路、画像処理装置に応用可能な技術といえる。
【０１２４】
以上詳細に説明したように、本実施形態においては、演算部は、テクスチャマッピングの専用回路である。多機能を実現するためには、演算部に多機能を実現するための仕組みを埋め込み、各機能を切り替えるための制御信号ないしはコマンドを演算部に入力する必要がある。
【０１２５】
しかし、本発明は、本実施形態の構成に限られない。すなわち、本発明では、テクスチャマッピング用のシフトレジスタ以外に、複数種類のシフトレジスタまたは入力ユニットを用意し、より複雑な処理を演算部において実行可能とする構成を採用することもできる。この場合、演算部に行わせるべきテクスチャマッピング以外の処理に応じて、適当な入力信号を、このシフトレジスタないしは入力ユニットに入力されるように設定し、各シフトレジスタの出力をセレクタを介して選択的に演算部に入力するようにする。好ましくは(これに制限されるものではないが)、演算部において実行可能なテクスチャマッピング以外の処理として、ブレンド（blending）, 乗算（multiplying）, 加算(adding), 減算(subtracting),  バイパス(bypassing) 、初頭関数演算、浮動小数点演算、あるいは符号付加(signed addition) 等を適用可能である。
【０１２６】
また、上述したように、本実施形態において、演算部は、テクスチャマッピングの専用回路である。この構成では、演算部での処理を切り替えのための制御信号を演算部に与える必要は無い。図示の例で、演算部に与えられている制御信号は、一般的には、演算部の動作タイミングを制御するためのものと考えられる。
【０１２７】
なお、本発明では、演算部においてテクスチャマッピングを含む複数の特定目的処理を行うための機能を組み合わせて実装する構成を採用することも可能である。
このような構成は、各処理に対応する専用処理装置を複数設置し該装置を選択使用したりすることにより実現可能である。
かかる構成においては、処理を切り替えるための制御信号を演算部に入力することにより、この制御信号とＡ／Ｂ セレクタへの制御信号とを適切に組み合わせながら制御を実行することができる。
なお、言うまでもなく、この場合には、当該特定目的に応じて、Ａ／Ｂ セレクタへの入力信号として、ピクセルおよびテクセルとそれ以外の少なくとも１種類以上の入力信号を含む複数種類の入力信号を設定しておく必要がある。
【図面の簡単な説明】
【０１２８】
【図１】本発明に係る画像処理装置としての３次元コンピュータグラフィックスシステムのシステム構成図である。
【図２】本実施形態に係るテクスチャマッピング処理回路の第１の構成例を示す回路図である。
【図３】図２の回路の動作を説明するためのタイミングチャートである。
【図４】本実施形態に係るテクスチャマッピング処理回路の第２の構成例を示す回路図である。
【図５】図４の回路の動作を説明するためのタイミングチャートである。
【図６】本実施形態に係るテクスチャマッピング処理回路におけるパイプライン演算器（演算部）が、レイテンシ＝３で動作する回路で実現された場合の構成例を示す回路図である。
【図７】図６の回路のタイミングチャートである。
【図８】本実施形態に係るテクスチャマッピング処理回路におけるパイプライン演算器（演算部）が、レイテンシ＝４で動作する回路で実現された場合の構成例を示す回路図である。
【図９】図８の回路のタイミングチャートである。
【図１０】演算器がレイテンシ＝２である図２の回路において、１つのピクセルデータに対して２つのテクセルデータではなく３つのテクセルデータを順次演算する場合のタイミングチャートである。
【図１１】本実施形態に係るテクスチャマッピング処理回路におけるパイプライン演算器（演算部）が、レイテンシ＝２で動作する回路で実現された場合であって、１つのピクセルデータに対して３つのテクセルデータを順次演算する場合の構成例を示す回路図である。
【図１２】図１１の回路のタイミングチャートである。
【図１３】本実施形態に係るテクスチャマッピング処理回路におけるパイプライン演算器（演算部）が、レイテンシ＝３で動作する回路で実現された場合であって、１つのピクセルデータに対して３つのテクセルデータを順次演算する場合の構成例を示す回路図である。
【図１４】図１３の回路のタイミングチャートである。
【図１５】本実施形態に係るテクスチャマッピング処理回路におけるパイプライン演算器（演算部）が、レイテンシ＝４で動作する回路で実現された場合であって、１つのピクセルデータに対して３つのテクセルデータを順次演算する場合の構成例を示す回路図である。
【図１６】図１５の回路のタイミングチャートである。
【図１７】演算器がレイテンシ＝２である図２の回路において、１つのピクセルデータに対して２つのテクセルデータではなく４つのテクセルデータを順次演算する場合のタイミングチャートである。
【図１８】本実施形態に係るテクスチャマッピング処理回路におけるパイプライン演算器（演算部）が、レイテンシ＝２で動作する回路で実現された場合であって、１つのピクセルデータに対して４つのテクセルデータを順次演算する場合の構成例を示す回路図である。
【図１９】図１８の回路のタイミングチャートである。
【図２０】本実施形態に係るテクスチャマッピング処理回路におけるパイプライン演算器（演算部）が、レイテンシ＝３で動作する回路で実現された場合であって、１つのピクセルデータに対して４つのテクセルデータを順次演算する場合の構成例を示す回路図である。
【図２１】図２０の回路のタイミングチャートである。
【符号の説明】
【０１２９】
１０…画像処理装置、１１…メインプロセッサ、１２…メインメモリ、１３…Ｉ／Ｏインタフェース回路、１４…レンダリング回路、１４１…ＤＤＡセットアップ回路、１４２…トライアングルＤＤＡ回路、１４３…テクスチャエンジン回路、１４４…メモリインタフェース（Ｉ／Ｆ）回路、１４５…グラフィックスメモリ、１４６…ＣＲＴコントロール回路、２００，２００Ａ〜２００Ｈ…テクスチャマッピング処理回路（マルチテクスチャ処理回路）、２０１，２０１Ｂ〜２０１Ｃ…演算部（パイプライン演算器）、２０２…セレクタ、２０３，２０３Ｂ〜２０３Ｈ…テクセルデータシフト選択回路、２０４，２０４Ｂ〜２０４Ｈ…ピクセルデータシフト選択回路。
【図１】
2005141533.tif 000003
【図２】
2005141533.tif 000004
【図３】
2005141533.tif 000005
【図４】
2005141533.tif 000006
【図５】
2005141533.tif 000007
【図６】
2005141533.tif 000008
【図７】
2005141533.tif 000009
【図８】
2005141533.tif 000010
【図９】
2005141533.tif 000011
【図１０】
2005141533.tif 000012
【図１１】
2005141533.tif 000013
【図１２】
2005141533.tif 000014
【図１３】
2005141533.tif 000015
【図１４】
2005141533.tif 000016
【図１５】
2005141533.tif 000017
【図１６】
2005141533.tif 000018
【図１７】
2005141533.tif 000019
【図１８】
2005141533.tif 000020
【図１９】
2005141533.tif 000021
【図２０】
2005141533.tif 000022
【図２１】
2005141533.tif 000023