JP4411939B2 - 演算装置および画像処理装置 - Google Patents

演算装置および画像処理装置 Download PDF

Info

Publication number
JP4411939B2
JP4411939B2 JP2003377973A JP2003377973A JP4411939B2 JP 4411939 B2 JP4411939 B2 JP 4411939B2 JP 2003377973 A JP2003377973 A JP 2003377973A JP 2003377973 A JP2003377973 A JP 2003377973A JP 4411939 B2 JP4411939 B2 JP 4411939B2
Authority
JP
Japan
Prior art keywords
data
input
circuit
texel
input terminal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003377973A
Other languages
English (en)
Other versions
JP2005141533A (ja
JP2005141533A5 (ja
Inventor
雅敏 今井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2003377973A priority Critical patent/JP4411939B2/ja
Publication of JP2005141533A publication Critical patent/JP2005141533A/ja
Publication of JP2005141533A5 publication Critical patent/JP2005141533A5/ja
Application granted granted Critical
Publication of JP4411939B2 publication Critical patent/JP4411939B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Image Generation (AREA)

Description

本発明は、たとえばコンピュータグラフィックスシステムにおいてパイプライン処理によりデータ演算が行われることが多いたとえばテクスチャマッピング処理回路系に適用可能な演算装置および画像処理装置に関するものである。
昨今のコンピュータシステムにおける演算速度の向上や描画機能の強化とも相俟って、コンピュータ資源を用いて図形や画像の作成や処理を行う「コンピュータ・グラフィックス(CG)」技術が盛んに研究・開発され、さらに実用化されている。
たとえば、3次元グラフィックスは、3次元オブジェクトが所定の光源によって照らされたときの光学現象を数学モデルで表現して、このモデルに基づいてオブジェクト表面に陰影や濃淡を付けたり、さらには模様を貼り付けたりして、よりリアルで3次元的な2次元高精細画像を生成するものである。
このようなコンピュータ・グラフィックスは、科学、工学、製造などの開発分野でのCAD/CAM、その他の各種応用分野においてますます盛んに利用されるようになってきている。
3次元グラフィックスは、一般には、フロントエンドとして位置づけられる「ジオメトリ・サブシステム」と、バックエンドとして位置づけられる「ラスタライズ・サブシステム」とにより構成される。
ジオメトリ・サブシステムとは、ディスプレイ・スクリーン上に表示する3次元オブジェクトの位置や姿勢などの幾何学的な演算処理を行う過程のことである。
ジオメトリ・サブシステムでは、一般にオブジェクトは多数のポリゴンの集合体として扱われ、ポリゴン単位で、「座標変換」、「クリッピング」、「光源計算」などの幾何学的な演算処理が行われる。
一方、ラスタライズ・サブシステムは、オブジェクトを構成する各ピクセル(pixel)を塗りつぶす過程のことである。
ラスタライズ処理は、たとえばポリゴンの頂点毎に求められた画像パラメータを基にして、ポリゴン内部に含まれるすべてのピクセルの画像パラメータを補間することによって実現される。
ここで言う画像パラメータには、いわゆるRGB形式などで表される色(描画色)データ、奥行き方向の距離を表すz値などがある。
また、最近の高精細な3次元グラフィックス処理では、遠近感を醸し出すためのf(fog:霧)や、物体表面の素材感や模様を表現してリアリティを与えるテクスチャt(texture)なども、画像パラメータの1つとして含まれている。
ここで、ポリゴンの頂点情報からポリゴン内部のピクセルを発生する処理では、よくDDA(Digital Differential Analyzer)と呼ばれる線形補間手法を用いて実行される。
DDAプロセスでは、頂点情報からポリゴンの辺方向へのデータの傾きを求め、この傾きを用いて辺上のデータを算出した後、続いてラスタ走査方向(X方向)の傾きを算出し、この傾きから求めたパラメータの変化分を走査の開始点のパラメータ値に加えていくことで、内部のピクセルを発生していく。
そして、3次元コンピュータグラフィックスでは、各ピクセルに対応する色を決定するときに、各ピクセルの色の計算をし、この計算した色の値を、当該ピクセルに対応するディスプレイバッファ(フレームバッファ)のアドレスに書き込むレンダリング(Rendering)処理を行う。
このようなコンピュータグラフィックス処理では、パイプライン処理によりデータ演算が行われることが多い。
たとえば、テクスチャマッピング処理などでは、パイプラインを流れてきたピクセル(PIXEL)データ1つに対し、1つのテクセル(TEXEL)データとの演算を施し、後段のパイプラインへ結果を流す処理を行う。
マルチテクスチャと呼ばれるテクスチャマッピング処理(以下、マルチテクスチャ処理と略す)では、1つのピクセルデータに対して第1のテクセルデータとの演算を行った結果に、第2のテクセルデータとの演算を施すという処理を基本とする。
なお、処理に使われるテクセルデータは2種類以上あっても良い。
マルチテクスチャ処理では、第1、第2、あるいはそれ以上に供給されるテクセルデータに対して、あらかじめ用意された演算器の処理可能な範囲で、様々な演算あるいは同一の演算が施されるが、演算器の構成が同じであることから、回路規模の削減を目的として1つの演算器を再利用する方式をとることができる。
これは、パイプラインの中に閉じた演算ループを構成し、第1の演算結果を同じ演算器に再入力するといった、閉じた演算ループ処理を行うことで容易に実現ができる。
閉じた演算ループによるマルチテクスチャ処理を行う上で極めて重要なことは、演算処理の性能が高い必要があることである。
これはパイプラインの中を高いスループットで流れてきたデータを処理するために、演算器数を削減したことでスループットを下げてしまうと、コンピュータグラフィックス処理全体の性能低下につながるためである。
さて回路を削減する目的で同じ演算器を再利用することは従来技術として一般的に行われており、閉じた演算ループを実現することで演算器を1つだけでマルチテクスチャ処理を行うことが可能である(特許文献1、2参照)。
特開平1−120685号公報 USP6,259,462 B1
しかしながら、特許文献1および特許文献2に記載された演算系では、様々な演算を行うために演算処理が複雑になるにつれて、パイプラインを駆動しているクロックの1サイクル時間内で処理が終了しないおそれがある。
たとえば、演算の種類として8ビット程度の算術演算や論理演算であれば1クロックサイクルで処理できても、もっとビット数の多い算術演算や、あるいは初等関数の演算、あるいは浮動小数点方式の演算などは、演算が複雑になるため回路規模も複雑化し、演算に要する時間がさらに増え結果的にクロック1サイクルの時間内では演算が終了しないことがある。
また、半導体の消費電力を下げる目的や、半導体プロセス性能を理由として、低速であるが低電力の半導体回路による演算器の実現を考える場合は、演算処理が簡単であったとしても、演算に必要な時間が1クロックサイクルで終了しない(足りない)おそれもある。
後者の傾向は携帯機器への搭載を目的とした半導体では近年特に顕著である。
本発明の目的は、演算ループを実現したとしても処理性能の低下を招くことがなく、複雑な演算に対しても所定の時間内で終了するように適応でき、最適なのスループットを実現することができる演算装置および画像処理装置を提供することにある。
上記目的を達成するため、本発明の第1の観点は、複数の演算器および各前記演算器の演算結果を記憶する複数の記憶手段が交互に直列に接続され、ピクセルデータに対して複数のテクセルデータを順番に演算するパイプライン演算部と、前記ピクセルデータが入力される第1入力端子と、前記第1入力端子に入力されたピクセルデータを遅延させる第1シフトレジスタと、前記ピクセルデータを選択して前記パイプライン演算部の初段の演算器へ出力する第1セレクタと、前記複数のテクセルデータが順番に入力される第2入力端子と、前記第2入力端子に入力されたテクセルデータを遅延させる第2シフトレジスタと、前記テクセルデータを選択して前記パイプライン演算部の初段の演算器へ出力する第2セレクタとを有し、前記第2シフトレジスタは、スループットをTH、前記複数の演算器によるレイテンシをLTとした場合に、2×(LT−1)×(TH−1)を満たす段数により直列に接続され、前記第2セレクタは、前記第2入力端子、および複数の前記第2シフトレジスタに接続され、前記第2入力端子に入力されるテクセルデータ、および複数の前記第2シフトレジスタから出力される複数のテクセルデータから、1のテクセルデータを選択し、前記第1シフトレジスタは、(LT−1)×(TH−1)を満たす段数により直列に接続され、前記第1セレクタは、前記第1入力端子、複数の前記第1シフトレジスタ、および前記パイプライン演算部の最終段の記憶手段に接続され、前記第1入力端子に入力されたピクセルデータ、複数の前記第1シフトレジスタにより遅延された複数のピクセルデータ、および前記最終段の記憶手段から出力される演算結果データから、1のデータを選択する。
好適には、前記第1セレクタは、前記最終段の記憶手段が1番目のテクセルデータとピクセルデータとの演算結果を出力する場合には、前記最終段の記憶手段から出力される演算結果データを選択し、前記第2セレクタは、前記第1セレクタが前記演算結果データを選択する場合に、前記第2入力端子から入力された2番目のテクセルデータを選択してもよい。
好適には、前記複数の演算器の各々は、1クロックにより演算し、前記レイテンシは、前記複数の演算器の個数と同数であってもよい。
好適には、前記パイプライン演算部は、ピクセルデータに対して複数のテクセルデータを順番に演算することによりマルチテクスチャ処理を行ってもよい。
第1の観点によれば、パイプライン演算部および第1セレクタにより閉ループを構成し、この閉ループによりピクセルデータに対してテクセルデータを演算した演算結果データを回し、2番目以降に入力されるテクセルデータを当該演算結果データに対して演算する。
また、複数のテクセルデータを遅延させる第2シフトレジスタを2×(LT−1)×(TH−1)段に直列に接続し、ピクセルデータを遅延させる第1シフトレジスタを(LT−1)×(TH−1)段に直列に接続する。
本発明の第2の観点は、複数の演算器および各前記演算器の演算結果を記憶する複数の記憶手段が交互に直列に接続され、第1データに対して複数の第2データを順番に演算するパイプライン演算部と、前記第1データが入力される第1入力端子と、前記第1入力端子に入力された第1データを遅延させる第1シフトレジスタと、前記第1データを選択して前記パイプライン演算部の初段の演算器へ出力する第1セレクタと、前記複数の第2データが順番に入力される第2入力端子と、前記第2入力端子に入力された第2データを遅延させる第2シフトレジスタと、前記第2データを選択して前記パイプライン演算部の初段の演算器へ出力する第2セレクタとを有し、前記第2シフトレジスタは、スループットをTH、前記複数の演算器によるレイテンシをLTとした場合に、2×(LT−1)×(TH−1)を満たす段数により直列に接続され、前記第2セレクタは、前記第2入力端子、および複数の前記第2シフトレジスタに接続され、前記第2入力端子に入力される第2データ、および複数の前記第2シフトレジスタから出力される複数の第2データから、1の第2データを選択し、前記第1シフトレジスタは、(LT−1)×(TH−1)を満たす段数により直列に接続され、前記第1セレクタは、前記第1入力端子、複数の前記第1シフトレジスタ、および前記パイプライン演算部の最終段の記憶手段に接続され、前記第1入力端子に入力された第1データ、複数の前記第1シフトレジスタにより遅延された複数の第1データ、および前記最終段の記憶手段から出力される演算結果データから、1のデータを選択する。
好適には、前記第1セレクタは、前記最終段の記憶手段が1番目の第2データと第1データとの演算結果を出力する場合には、前記最終段の記憶手段から出力される演算結果データを選択し、前記第2セレクタは、前記第1セレクタが前記演算結果データを選択する場合に、前記第2入力端子から入力された2番目の第2データを選択してもよい。
好適には、前記複数の演算器の各々は、1クロックにより演算し、前記レイテンシは、前記複数の演算器の個数と同数であってもよい。
好適には、前記第1入力端子には、ピクセルデータが入力され、前記第2入力端子には、複数のテクセルデータが順番に入力され、前記パイプライン演算部は、前記ピクセルデータに対して前記複数のテクセルデータを順番に演算することによりマルチテクスチャ処理を行ってもよい。
本発明によれば、演算ループを実現したとしても処理性能の低下を招くことがなく、複雑な演算に対しても所定の時間内で終了するように適応できるという利点がある。
また、パイプライン演算器に無効データが通過している時刻が存在せず、これによりマルチテクスチャ処理でのデータ演算において、演算器を無駄なく効率よく使用することができ、入出力として所定のスループットの効率を実現できる利点がある。
以下、本実施形態においては、パーソナルコンピュータなどに適用される、任意の3次元物体モデルに対する所望の3次元画像をCRT(Cathode Ray Tube)などのディスプレイ上に高速に表示する3次元コンピュータグラフィックスシステムについて説明する。
図1は、本発明に係る画像処理装置としての3次元コンピュータグラフィックスシステム10のシステム構成図である。
3次元コンピュータグラフィックスシステム10は、立体モデルを単位図形である三角形(ポリゴン)の組み合わせとして表現し、このポリゴンを描画することで表示画面の各画素の色を決定し、ディスプレイに表示するポリゴンレンダリング処理を行うシステムである。
また、3次元コンピュータグラフィックスシステム10では、平面上の位置を表現する(x,y)座標の他に、奥行きを表すz座標を用いて3次元物体を表し、この(x,y,z)の3つの座標で3次元空間の任意の一点を特定する。
3次元コンピュータグラフィックスシステム10において、テクスチャマッピング処理では、パイプライン状に流されてくる(転送されてくる)ピクセルデータに対してテクセルデータを対応させて演算処理を行い、後段に流すという処理を行うが、最近では1つの第1データとしてのピクセルデータに対応させる第2データとしてのテクセルデータの数量を増加させるというマルチテクスチャマッピング処理が必要となっている。
本実施形態においては、ピクセルデータに対応するテクセルデータを複数演算処理可能なマルチテクスチャマッピング演算処理装置を実現する上で、演算の効率に着目し、入出力の効率を乱すことなく処理装置を構築するために必要な制御方式を実現している。
この方式は、後で詳述するように、演算器の処理性能の増加に対して柔軟に対応が可能であるという特徴を有し、テクスチャマッピング処理以外に一般的なパイプライン演算器への適応も可能となっている。
本実施形態に係るマルチテクスチャ処理回路では、後で詳述するように、パイプラインの中に閉じた演算ループを構成し、第1の演算結果を同じ演算器に再入力するといった、閉じた演算ループ処理を行う構成を有し、閉じた演算ループを実現しても、処理性能低下を招かない構成を実現している。
そして、本実施形態に係るマルチテクスチャ処理回路では、全体の演算を部分演算に分割し、部分演算器をパイプライン状に接続し、それぞれの部分演算をパイプライン1段で行い、一つの演算を完了させるために複数のクロックサイクルを要するような、パイプライン演算器をもって演算を行う。
また、閉じた演算ループをパイプライン演算器を使用して実現する場合に、演算処理性能を示す入出力効率はスループットで表現される。これは有効なデータが入出力されるに必要なクロック数と考えてよい。また、パイプライン演算器の中をデータが通過することに要するクロック数は、通常レイテンシと呼ばれ、2段の部分演算器から構成されるパイプライン演算器は、レイテンシ=2の性能を持つ。
本実施形態に係るマルチテクスチャ処理系では、閉じた演算ループを構成するパイプライン演算器のレイテンシとスループットを一般化することで、マルチテクスチャ処理を実現するための閉じた演算ループを構成する演算器に対して、最適なスループットを実現する一般的な方式を示す。
以下、上記のように構成される3次元コンピュータグラフィックスシステム10の各部の具体的な構成および機能について順を追って説明する。
図1に示すように、3次元コンピュータグラフィックスシステム10は、メインプロセッサ11、メインメモリ12、I/Oインタフェース回路13、およびレンダリング回路14が、メインバス15を介して接続されている。
以下、各構成要素の機能について説明する。
メインプロセッサ11は、たとえば、アプリケーションの進行状況などに応じて、メインメモリ12から必要なグラフィックデータを読み出し、このグラフィックデータに対して、座標変換、クリッピング(Clipping)処理、ライティング(Lighting)処理などのジオメトリ(Geometry)処理などを行い、ポリゴンレンダリングデータを生成する。
メインプロセッサ11は、ポリゴンレンダリングデータS11を、メインバス15を介してレンダリング回路14に出力する。
I/Oインタフェース回路13は、必要に応じて、外部から動きの制御情報またはポリゴンレンダリングデータなどを入力し、これをメインバス15を介してレンダリング回路14に出力する。
レンダリング回路14に入力されるポリゴンレンダリングデータは、ポリゴンの各3頂点の(x,y,z,R,G,B,α,s,t,q)のデータを含んでいる。
ここで、(x,y,z)データは、ポリゴンの頂点の3次元座標を示し、(R,G,B)データは、それぞれ当該3次元座標における赤、緑、青の輝度値を示している。
また、α(アルファ)は、ブレンド値(係数)を示している。
(s,t,q)データのうち、(s,t)は、対応するテクスチャの同次座標を示しており、qは同次項を示している。ここで、「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEを乗じて、実際のテクスチャ座標データ(u,v)が得られる。
レンダリング回路14のグラフィックスメモリ(具体的には後記するテクスチャバッファ)に記憶されたテクセルデータへのアクセスは、テクスチャ座標データ(u,v)を用いて行われる。
すなわち、ポリゴンレンダリングデータは、三角形の各頂点の物理座標値と、それぞれの頂点の色とテクセルデータである。
レンダリング回路14は、図1に示すように、線形補間演算のための初期設定演算ブロックとしてのDDA(Digital Differential Analyzer) セットアップ回路141、線形補間処理ブロックとしてのトライアングルDDA回路142、テクスチャエンジン回路143、メモリインタフェース(I/F)回路144、たとえばDRAMからなるグラフィックスメモリ145、およびCRTコントロール回路146を有している。そして、テクスチャエンジン回路143、およびメモリインタフェース(I/F)回路144により処理回路が構成される。
DDAセットアップ回路141は、後段のトライアングルDDA回路142において物理座標系上の三角形の各頂点の値を線形補間して、三角形の内部の各画素の色と深さ情報を求めるに先立ち、ポリゴンレンダリングデータS11が示す(z,R,G,B,α,s,t,q)データについて、三角形の辺と水平方向の差分などを求めるセットアップ演算を行う。
このセットアップ演算は、具体的には、開始点の値と終点の値と、開始点と終点との距離を用いて、単位長さ移動した場合における、求めようとしている値の変分を算出する。
DDAセットアップ回路141は、算出した変分データを含むプリミティブに関する情報としてのセットアップデータS141をトライアングルDDA回路142に出力する。
三角形の各頂点データは、たとえばx,y座標が16ビット、z座標が24ビット、RGBカラー値が各12ビット(=8+4)、s,t,qテクスチャ座標は各32ビット浮動少数値(IEEEフォーマット)等で構成される。
トライアングルDDA回路142は、DDAセットアップ回路141から入力した変分データを含むプリミティブに関する情報としてのセットアップデータS141を基に、三角形内部の各画素における線形補間された(z,R,G,B,α,s,t,q)データを算出する。
トライアングルDDA回路142は、各ピクセルの(x,y)データと、当該(x,y)座標における(z,R,G,B,α,s,t,q)データとを、DDAデータ(補間データ)S142としてテクスチャエンジン回路143に出力する。
すなわち、トライアングルDDA回路142は、ポリゴンの頂点毎に求められた画像パラメータに基づいてポリゴン内部に含まれるすべてのピクセルの画像パラメータを補間するラスタライズ処理(ラスタライゼーション:Rasterization)を行う。
具体的には、トライアングルDDA回路142は、各種データ(z,テクスチャ座標、カラーなど)をラスタライズする。
テクスチャエンジン回路143は、「s/q」および「t/q」の算出処理、テクスチャ座標データ(u,v)の算出処理、グラフィックスメモリ145からの(R,G,B,α)データの読み出し処理等をパイプライン方式で行う。
なお、テクスチャエンジン回路143は、たとえば所定の矩形内に位置する複数(たとえば4あるいは8)ピクセルについての処理を同時に並行して行う。
テクスチャエンジン回路143は、DDAデータS142が示す(s,t,q)データについて、sデータをqデータで除算する演算と、tデータをqデータで除算する演算とを行う。
テクスチャエンジン回路143には、たとえば図示しない除算回路が並列処理する画素数分だけ(たとえば8個)設けられており、8画素についての除算「s/q」および「t/q」が同時に行われる。また、8画素のうち代表点からの補間演算処理を行うように実装することも可能である。
また、テクスチャエンジン回路143は、除算結果である「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEを乗じて、テクスチャ座標データ(u,v)を生成する。
また、テクスチャエンジン回路143は、メモリI/F回路144を介して、グラフィックスメモリ145に、生成したテクスチャ座標データ(u,v)を含む読み出し要求を出力し、メモリI/F回路144を介して、グラフィックスメモリ145に含まれるテクスチャバッファに記憶されているテクセルデータを読み出すことで、(u,v)データに対応したテクスチャアドレスに記憶された(R,G,B,α)データを得る。
テクスチャエンジン回路143は、読み出した(R,G,B,α)データと、前段のトライアングルDDA回路142からのDDAデータS142に含まれる(R,G,B,α)データとを、それぞれ演算するなどして、ピクセルデータを生成する。
テクスチャエンジン回路143は、このピクセルデータS143を最終的にピクセルのカラー値としてメモリI/F回路144に出力する。
なお、グラフィックスメモリ145に含まれるテクスチャバッファには、MIPMAP(複数解像度テクスチャ)などの複数の縮小率に対応したテクセルデータが記憶されている。ここで、何れの縮小率のテクセルデータを用いるかは、所定のアルゴリズムを用いて、前記三角形単位で決定される。
テクスチャエンジン回路143は、フルカラー方式の場合には、テクスチャバッファから読み出した(R,G,B,α)データを直接用いる。
一方、テクスチャエンジン回路143は、インデックスカラー方式の場合には、あらかじめ作成しておいたカラーインデックステーブルのデータを、テクスチャカラールックアップテーブル(CLUT)バッファより内蔵するSRAM等で構成した一時保管バッファに転送しておいて、このカラールックアップテーブルを用いて、テクスチャバッファから読み出したカラーインデックスに対応する(R,G,B,α)データを得る。
たとえばカラールックアップテーブルがSRAMで構成された場合、カラーインデックスをSRAMのアドレスに入力すると、その出力には実際の(R,G,B,α)データが出てくるといった使い方となる。
ここで、本発明に係る演算装置を採用したテクスチャエンジン回路143におけるテクスチャマッピング処理回路の第1および第2の構成例について、図面に関連付けて説明する。
なお、ここで説明するマルチテクスチャ処理回路としてのテクスチャマッピング処理回路は、全体の演算を部分演算に分割し、部分演算器をパイプライン状に接続し、それぞれの部分演算をパイプライン1段で行い、一つの演算を完了させるために複数のクロックサイクルを要するような、パイプライン演算器をもって演算を行う。
図2は、本実施形態に係るテクスチャマッピング処理回路の第1の構成例を示す回路図である。
本テクスチャマッピング処理回路200は、図2に示すように、演算部(CALC)201とセレクタ202を有する。
演算部201は、レイテンシ=2のパイプライン演算器で構成されている。レイテンシ=2とはマルチテクスチャ処理を完了させるために、レイテンシ=1の演算器を2個パイプライン状に接続してあるからである。
具体的には、演算部201は、第1回目の部分演算を行う第1部分演算器(SCALC1)2011と、第2回目の部分演算を行う第2部分演算器(SCALC2)2012と、第1部分演算器2011の演算結果を収納する第1パイプラインレジスタ2013と、第2部分演算器2012の演算結果を収納する第2パイプラインレジスタ2014とを有する。
このように、演算部201は、部分演算器とパイプラインレジスタを接続して、演算を行う1つのパイプライン演算器を構成している。
また、マルチテクスチャ処理を行うテクスチャマッピング処理回路は、AIはテクセルデータ(第2データ)ストリームが入力するテクセルデータ(第2データ)入力端子を示し、BIはピクセルデータ(第1データ)ストリームが入力するピクセルデータ(第1データ)入力端子を示している。
本実施形態においては、入力端子AIにはテクセルデータを毎クロックごとに入力するが、入力端子BIにはピクセルデータを2クロックに1回入力している。
本実施形態においては、マルチテクスチャ処理を説明するために、ピクセルデータとテクセルデータを以下のように定義する。
ピクセルデータは単一の数値表現されたデータのみならず、それらの集合である。コンピュータグラフィックス処理の場合は、ピクセルのカラーを表現するための、α(alpha)値、R(Red)カラー値、G(Green)カラー値、B(Blue)カラー値などである。
テクセルデータは単一の数値表現されたデータのみならず、それらの集合である。コンピュータグラフィックス処理の場合は、テクセルのカラーを表現するための、α(alpha)値、R(Red)カラー値、G(Green)カラー値、B(Blue)カラー値などである。
[B0],[B1],[B2]…:第1ピクセルデータ、第2ピクセルデータ、第3ピクセルデータ…、
[A0_0]:第1ピクセルデータに対応する第1テクセルデータ、
[A0_1]: 第1ピクセルデータに対応する第2テクセルデータ、
[A1_0]: 第2ピクセルデータに対応する第1テクセルデータ、
[A1_1]: 第2ピクセルデータに対応する第2テクセルデータ、
[A2_0]: 第3ピクセルデータに対応する第1テクセルデータ、
[A2_1]: 第3ピクセルデータに対応する第2テクセルデータ、
また、マルチテクスチャを行うための演算を以下のように定義する。これらの演算は演算の種類たとえば四則演算や関数演算などを示す以外に、常数などのデータも含めることができる。
[演算0_1]:第1ピクセルデータと、第1ピクセルデータに対応する第1テクセルデータとの演算処理内容、
[演算0_2]:第1ピクセルデータと、第1ピクセルデータに対応する第2テクセルデータとの演算処理内容、
[演算0_3]:第1ピクセルデータと、第1ピクセル データに対応する第3テクセルデータとの演算処理内容、
[演算0_4]:第1ピクセルデータと、第1ピクセルデータに対応する第4テクセルデータとの演算処理内容、
[演算1_1]:第2ピクセルデータと、第2ピクセルデータに対応する第1テクセルデータとの演算処理内容、
[演算1_2]:第2ピクセルデータと、第2ピクセルデータに対応する第2テクセルデータとの演算処理内容、
[演算1_3]:第2ピクセルデータと、第2ピクセルデータに対応する第3テクセルデータとの演算処理内容、
[演算1_4]:第2ピクセルデータと、第2ピクセルデータに対応する第4のテクセルデータとの演算処理内容。
図2の回路の動作を、図3のタイミングチャートに関連付けて説明する。
(時刻T0)
第1ピクセルデータ [B0] が入力端子BIに入力され、第1テクセルデータ[A0_0]が入力端子AIに入力される。このとき、第1選択信号としてのB選択信号がBIを示すため、セレクタ202の出力BSELとして [B0] が現れ、演算部201に入力される。
演算部201においては、第1部分演算器2011により[演算0_1]の部分演算が行われ、その部分演算結果が第1パイプラインレジスタ2013に収納される。
(時刻T1)
第1パイプラインレジスタ2013に収納された第1回目の部分演算結果は、第2部分演算器2012により[演算0_1]の部分演算が行われ、第2パイプラインレジスタ2014に演算結果[o0_1]が収納される。
またこの時刻では、入力端子AIに第2テクセルデータ[A0_1]が入力されているが、セレクタ202においてBSELとして選択されるべき演算部201の第1の演算結果[o0_1]は未だ計算終了していないため得られていない。
したがって、B選択信号は演算部201の出力OUTを示していても、第2の演算は実行できずにおり、計算終了を待つために入力端子AIは同じものを入力し続けている。
(時刻T2)
第2パイプラインレジスタ2014には第1の演算[演算0_1]の結果である[o0_1]が保持されており、B選択信号の制御で演算部201の出力OUTがセレクタ202の出力BSELに現れる。
この時点で初めて第2の演算を開始することができる。入力端子AIには既に時刻T1から継続して、第1のピクセルデータに対応する第2テクセルデータ[A0_1]が入力されており、セレクタ202の出力BSELに第1の演算結果[o0_1]が現れることで、第1部分演算器2011により[演算0_2]の部分演算が行われ、その部分演算結果が第1パイプラインレジスタ2013に収納される。
(時刻T3)
第1パイプラインレジスタ2013に収納された第1回目の部分演算結果は、第2部分演算器2012により[演算0_2]の部分演算が行われ、第2パイプラインレジスタ2014に演算結果[o0_2]が収納される。
またこの時刻では同時に入力端子AIに、継続する第2ピクセルデータに対応する第1テクセルデータ[A1_0]が入力されており、セレクタ202の出力BSELとしてB選択信号の制御により入力端子BIに継続して入力される第2ピクセルデータ[B1]が現れ、演算部201に入力される。
演算部201においては、第1部分演算器2011により[演算1_1]の部分演算が行われ、その部分演算結果が第1パイプラインレジスタ2013に収納される。
(時刻T4)
第2パイプラインレジスタ2014には既に有効出力[o0_2]が収納されているためこれがマルチテクスチャ処理回路200の有効出力となる。
第1パイプラインレジスタ2013に収納された第1回目の部分演算結果は、第2の部分演算器2012により[演算1_1]の部分演算が行われ、第2パイプラインレジスタ2014に演算結果[o1_1]が収納される。
またこの時刻では入力端子AIに、第2ピクセルデータに対応する第2テクセルデータ[A1_1]が入力されているが、セレクタ202の出力BSELとして選択されるべき第1の演算結果[o1_1]は未だ計算終了していないため得られていない。
したがって、B選択信号が演算部201の出力OUTを示していても、第2の演算は実行できずにおり、計算終了を待つために入力端子AIには同じものを入力し続ける必要がある。
(時刻T5)
第2パイプラインレジスタ2014には、第1の演算[演算1_1]の結果である[o1_1]が保持されており、B選択信号の制御でセレクタ202の出力BSELに演算部201の出力が現れ。この時点で初めて第2の演算を開始することができる。
入力端子AIには既に時刻T4から継続して、第2ピクセルデータに対応する第2テクセルデータ[A1_1]が入力されており、セレクタ202の出力BSELに第1の演算結果[o1_1]が選択出力されることで、第1部分演算器2011により[演算1_2]の部分演算が行われ、その部分演算結果が第1パイプラインレジスタ2013に収納される。
時刻T0-T5までを説明したが、タイミングチャートを参照することで、時刻T0で入力したピクセルデータB0が演算処理されて、結果である[o0_2]が得られるのが時刻T4であることが容易に理解できる。
また同じくタイミングチャートを参照することで、時刻T2から時刻T4のサイクルを繰り返していることも理解できる。
図2のテクスチャマッピング処理回路200は、演算ループを実現したとしてもマルチテクスチャ処理が可能という利点がある。
ただし、上述したように、入力としてピクセルデータ1つに対してテクセルデータ2つを演算するマルチテクスチャ処理回路を実現した場合、入力としてスループット=2の性能があるにもかかわらずパイプライン演算器のレイテンシの影響で、入出力ともにスループット=3となる。
次に、入力としてピクセルデータ1つに対してテクセルデータ2つを演算するマルチテクスチャ処理回路を実現した場合であっても、入力としてスループット=2の性能を保持することが可能な第2の構成例について説明する。
図4は、本実施形態に係るテクスチャマッピング処理回路の第2の構成例を示す回路図である。
本テクスチャマッピング処理回路200Aが図2のテクスチャマッピング処理回路200と異なる点は、テクセルデータ入力端子AIと演算部201の第1部分演算器2011の一方の入力との間に、入力されたテクセルデータを複数段(図4では2段)だけ順次にシフトさせて(遅延させて)、第2選択信号としてのA選択信号に応じて入力したテクセルデータ、第1回目に遅延させたテクセルデータ(AI1)、第2回目に遅延させたテクセルデータ(AI2)のいずれかを選択して出力するテクセルデータシフト選択回路203を設け、ピクセルデータ入力端子BIと演算部201の第1部分演算器2011の他方の入力との間に、入力されたピクセルデータをシフトさせて(遅延させて)、第1選択信号としてのB選択信号に応じて入力したピクセルデータ、遅延させたピクセルデータ(BI1)、演算部201の出力OUT のいずれかを選択して出力するピクセルデータシフト選択回路204を設けたことにある。
テクセルデータシフト選択回路203は、2つのシフトレジスタ(SREG)2031,2032、およびセレクタ2033を有する。
シフトレジスタ2031は、入力端子AIから入力されたテクセルデータを遅延させてデータAI1としてセレクタ2033およびシフトレジスタ2032に出力する。
シフトレジスタ2032は、シフトレジスタ2031により遅延されたデータAI1をさらに遅延させて、データAI2としてセレクタ2033に出力する。
セレクタ2033は、A選択信号に応じて入力したテクセルデータ、第1回目に遅延させたテクセルデータ(AI1)、第2回目に遅延させたテクセルデータ(AI2)のいずれかを選択し出力ASELを通して演算部201の第1部分演算器2011の一方の入力に出力する。
ピクセルデータシフト選択回路204は、1つのシフトレジスタ(SREG)2041、および図2の回路のセレクタ202と同様のセレクタ2042を有する。
シフトレジスタ2041は、入力端子BIから入力されたピクセルデータを遅延させてデータBI1としてセレクタ2042に出力する。
セレクタ2042は、B選択信号に応じて入力したピクセルデータ、遅延させたテクセルデータ(BI1)、演算部201の出力OUT のいずれかを選択し出力BSELを通して演算部201の第1部分演算器2011の他方の入力に出力する。
以下、図4の回路の動作を、図5のタイミングチャートに関連付けて説明する。
(時刻T0)
第1ピクセルデータ [B0]が入力端子BIから入力され、第1ピクセルデータに対応する第1テクセルデータ[A00]が入力端子AIから入力される。
入力端子AIから入力されたテクセルデータは、テクセルデータシフト選択回路203において、直接入力されるAI、第1段のシフトレジスタ2031を通過したAI1、第2段のシフトレジスタ2032を通過したAI2としてセレクタ2033に入力される。
また、入力端子BIから入力されたピクセルデータは、ピクセルデータシフト選択回路204において、直接入力されるBI、第1段のシフトレジスタ2041を通過したBI1としてセレクタ2042に入力される。
(時刻T1)
ピクセルデータシフト選択回路204では、セレクタ2042において、BI1で供給される第1ピクセルデータ[B0]がB選択信号に応じて選択され出力BSELに現れる。
同様に、テクセルデータシフト選択回路203では、セレクタ2033において、AI1で供給される第1テクセルデータ[A0_0]が選択され出力ASELに現れる。
そして、演算部201の第1部分演算器2011により[演算0_1]が行われ、第1回目の部分演算結果が第1パイプラインレジスタ2013に収納される。
(時刻T2)
第1パイプラインレジスタ2013に収納された第1回目の部分演算結果は、第2部分演算器2012に入力され、第2パイプラインレジスタ2014に演算結果[o0_1]が収納される。第2パイプラインレジスタ2014に収納される演算結果は、[演算0_1]を部分演算の組み合わせで行ったものである。またこの演算は、第1ピクセルデータに対して、対応する第1テクセルデータとの演算を行った結果となる。
同時に、セレクタ2042において、BIで供給される第2ピクセルデータ[B1]が選択され出力BSELに現れる。
同様に、セレクタ2033において、AIで供給される第2ピクセルデータに対応する第1テクセルデータ[A1_0]が選択され出力ASELに現れる。
そして、第1部分演算器2011により[演算1_1]が行われ、第1回目の部分演算結果が第1パイプラインレジスタ2013に収納される。
(時刻T3)
第1パイプラインレジスタ2013に収納された第1回目の部分演算結果は、第2部分演算器2012に入力され、第2パイプラインレジスタ2014に演算結果[o1_1]が収納される。第2パイプラインレジスタ2014に収納される演算結果は、[演算1_1]を部分演算の組み合わせで行ったものである。またこの演算は、第2ピクセルデータに対して、対応する第1のテクセルデータとの演算を行った結果となる。
同時に、セレクタ2042において、演算部201の出力OUTとして供給される[o0_1]が選択され出力BSELに現れる。
同様に、セレクタ2033において、AI2で供給される第1ピクセルデータに対応する第2テクセルデータ[A0_1]が選択され出力ASELに現れる。
そして、第1部分演算器2011により[演算0_2]が行われ、第1回目の部分演算結果が第1パイプラインレジスタ2013に収納される。
(時刻T4)
第1パイプラインレジスタ2013に収納された第1回目の部分演算結果は、第2部分演算器2012に入力され、第2パイプラインレジスタ2014に演算結果[o0_2]が収納される。第2パイプラインレジスタ2014に収納される演算結果は、[演算0_2]を部分演算の組み合わせで行ったものである。またこの演算は、第1ピクセルデータに対して、対応する第1テクセルデータとの演算を行った結果に、さらに対応する第2テクセルデータとの演算を行った結果となる。
同時に、セレクタ2042において、演算部201の出力OUTとして供給される[o1_1]が選択され出力BSELに現れる。
同様に、セレクタ2033において、AI1で供給される第2ピクセルデータに対応する第2テクセルデータ[A1_1]が選択され出力ASELに現れる。
そして、第1部分演算器2011により[演算1_2]が行われ、第1回目の部分演算結果が第1パイプラインレジスタ2013に収納される。
(時刻T5)
第2パイプラインレジスタ2014に収納されていた[o0_2]は、テクスチャマッピング処理回路200Aの最初の有効出力である。
第1パイプラインレジスタ2013に収納された第1回目の部分演算結果は、第2部分演算器2012に入力され、第2パイプラインレジスタ2014に演算結果[o1_2]が収納される。第2パイプラインレジスタ2014に収納される演算結果は、[演算1_2]を部分演算の組み合わせで行ったものである。またこの演算は、第2ピクセルデータに対して、対応する第1テクセルデータとの演算を行った結果に、さらに対応する第2テクセルデータとの演算を行った結果となる。
同時に、セレクタ2042において、BI1で供給される第3ピクセルデータB2が選択され出力BSELに現れる。
同様に、セレクタ2033において、AI1で供給される第3ピクセルデータに対応する第1テクセルデータ[A2_0]が選択され出力ASELに現れる。
そして、第1部分演算器2011により[演算2_1]が行われ、第1回目の部分演算結果が第1パイプラインレジスタ2013に収納される。
(時刻T6)
第2パイプラインレジスタ2014に収納されていた[o1_2]は、テクスチャマッピング処理回路200Aの第2番目の有効出力である。
第1パイプラインレジスタ2013に収納された第1回目の部分演算結果は、第2部分演算器2012に入力され、第2パイプラインレジスタ2014に演算結果[o2_1]が収納される。第2パイプラインレジスタ2104に収納される演算結果は、[演算2_1]を部分演算の組み合わせで行ったものである。またこの演算は、第3ピクセルデータに対して、対応する第1テクセルデータとの演算を行った結果となる。
同時に、セレクタ2042において、BIで供給される第4ピクセルデータB3が選択され出力BSELに現れる。
同様に、セレクタ2033において、AIで供給される第4ピクセルデータに対応する第1テクセルデータ[A3_0]が選択され出力ASELに現れる。
そして、第1部分演算器2011により[演算3_1]が行われ、第1回目の部分演算結果が第1パイプラインレジスタ2013に収納される。
時刻T0から時刻T6までを説明したが、図5のタイミングチャートを参照することで図4の回路では、時刻T0で入力した第1ピクセルデータB0に対して第1テクセルデータ[A0_0]および第2テクセルデータ[A0_1]が、[演算0_1]および[演算0_2]で順次演算処理されて、時刻T5で有効結果が得られている。
同様に、第1ピクセルデータB0の処理の合間に第2ピクセルデータ演算が行われ、時刻T6で結果が得られていることが理解できる。
またタイミングチャートで重要な点は、パイプライン演算器に無効データが通過している時刻が存在しない点であり、このことがマルチテクスチャ処理でのデータ演算において、演算器を無駄なく効率よく使用していることも示している。
また同じくタイミングチャートを参照することで、T3-T6の4サイクルを繰り返していることも理解できる。
この動作の結果、図4の回路は、入出力としてスループット2の効率を実現していることになる。
以上の構成を有するテクスチャマッピング処理回路においては、DDA回路142において、三角形の内部で線形補間されたテクスチャの同時座標s、t、qを用いて、デカルト座標でのテクスチャの実際のアドレスに変換する(qでの除算)。
さらにMIPMAP等を行う場合は、MIPMAPのレベルの算出を行う。そして、テクスチャ座標の算出を行う。
また、グラフィックスメモリ145に含まれるテクスチャバッファからそれぞれのレベルのテクセルデータを読み出し、そのまま使うポイントサンプリング(Point Sampling)または、bi-Linea(4近傍)補間、Tri-Linea 補間等を行う。
そこで得られたテクセルカラーに対して次の処理を行う。すなわち、入力されたピクセルカラーとテクセルカラーを演算・合成し、さらにフォグカラーを合成して、最終的に描画するピクセルのカラーを決定する。
メモリI/F回路144は、テクスチャエンジン回路143から入力したピクセルデータS143に対応するzデータと、グラフィックスメモリ145に含まれるzバッファに記憶されているzデータとの比較を行い、入力したピクセルデータによって描画される画像が、前回、グラフィックスメモリ145(ディスプレイバッファ)に書き込まれた画像より、手前(視点側)に位置するか否かを判断し、手前に位置する場合には、画像データに対応するzデータでzバッファに記憶されたzデータを更新する。
また、メモリI/F回路144は、(R,G,B,α)データをグラフィックスメモリ145(ディスプレイバッファ)に書き込む。
さらに、メモリI/F回路144は、今から描画しようとしている画素におけるテクスチャアドレスに対応したテクセルデータを格納しているグラフィックメモリ145のメモリブロックをそのテクスチャアドレスより算出し、そのメモリブロックにのみ読み出し要求を出すことにより、テクセルデータを読み出す。
この場合、該当するテクセルデータを保持していないメモリブロックにおいては、テクセルデータの読み出しのためのアクセスが行われないため、描画により多くのアクセス時間を提供することが可能となっている。
メモリI/F回路144は、描画においても同様に、今から描画しようとしているピクセルアドレスに対応するピクセルデータを格納しているグラフィックスメモリ145のメモリブロックに対して、該当アドレスからピクセルデータをモディファイ書き込みをするために読み出し、モディファイ後同じアドレスへ書き戻す。
隠れ面処理を行なう場合には、やはり同じように今から描画しようとしているピクセルアドレスに対応する奥行きデータを格納しているメモリブロックに対して、該当アドレスから奥行きデータをモディファイ書き込みするため読み出し、必要ならばモディファイ後同じアドレスへ書き戻す。
また、メモリI/F回路144は、テクスチャエンジン回路143からグラフィックスメモリ145に対する、生成されたテクスチャ座標データ(u,v)を含む読み出し要求を受けた場合には、グラフィックスメモリ145に記憶された(R,G,B,α)データを読み出す。
また、メモリI/F回路144は、CRTコントロール回路146から表示データを読み出す要求を受けた場合には、この要求に応じて、グラフィックメモリ145(ディスプレイバッファ)から一定の固まり、たとえば8ピクセルあるいは16ピクセル単位で表示データを読み出す。
メモリI/F回路144は、グラフィックスメモリ145へのアクセス(書き込みまたは読み出し)を行うが、書き込み経路と読み出し経路とが別経路として構成されている。
すなわち、書き込みの場合には書き込みアドレスADRWと書き込みデータDTWが書き込み系回路で処理されてグラフィックスメモリ145に書き込み、読み出しの場合には読み出し系回路で処理されてグラフィックスメモリ145から読み出す。
そして、メモリI/F回路144は、所定のインターリーブ方式のアドレッシングに基づいてグラフィックスメモリ145へのアクセスを、たとえば16画素単位で行う。
このようなメモリとのデータのやりとりにおいては、それまでの処理を複数並行処理することで、描画性能を向上させることができる。
特に、トライアングルDDA部分とテクスチャエンジン部分を並列実効形式で、同じ回路を設ける(空間並列)か、または、パイプラインを細かく挿入する(時間並列)ことで、複数画素の同時算出を行っている。
グラフィックスメモリ145のメモリブロックは表示領域において隣接した部分は、後述するように異なるメモリブロックとなるように配置してあるので、三角形のような平面を描画する場合には面で同時に処理できることになるため、それぞれのメモリブロックの動作確率は非常に高くなっている。
グラフィックスメモリ145は、テクスチャバッファ、ディスプレイバッファ、zバッファおよびテクスチャCLUT(Color Look Up Table) バッファとして機能する。
また、グラフィックスメモリ145は、同一機能を有する複数、たとえば4個のモジュールに分割されている。
また、グラフィックスメモリ145には、より多くのテクセルデータを格納するために、インデックスカラーにおけるインデックスと、そのためのカラールックアップテーブル値が、テクスチャCLUTバッファに格納されている。
インデックスおよびカラールックアップテーブル値は、上述したように、テクスチャ処理に使われる。
すなわち、通常はR,G,B,αそれぞれ8ビットの合計32ビットでテクスチャ要素を表現するが、それではデータ量が膨らむため、あらかじめ選んでおいたたとえば256色等の中から一つの色を選んで、そのデータをテクスチャ処理に使う。このことで256色であればそれぞれのテクスチャ要素は8ビットで表現できることになる。インデックスから実際のカラーへの変換テーブルは必要になるが、テクスチャの解像度が高くなるほど、よりコンパクトなテクセルデータとすることが可能となる。
これにより、テクセルデータの圧縮が可能となり、内蔵メモリの効率良い利用が可能となる。
さらに、グラフィックスメモリ145には、描画と同時並行的に隠れ面処理を行うため、描画しようとしている物体の奥行き情報が格納されている。
なお、表示データと奥行きデータおよびテクセルデータの格納方法としては、たとえばメモリブロックの所定の位置、たとえば先頭から連続して表示データが格納され、次に奥行きデータが格納され、残りの空いた領域に、テクスチャの種類毎に連続したアドレス空間でテクセルデータが格納される。
以上のように、DDAセットアップ回路141、トライアングルDDA回路142、テクスチャエンジン回路143、メモリI/F回路144等における所定処理を経て、最終的なメモリアクセスがピクセル(Pixel;Picture Cell Element) という描画画素単位としてグラフィックメモリ145に書き込まれる。
CRTコントロール回路146は、与えられた水平および垂直同期信号に同期して、図示しないCRTに表示する表示アドレスを発生し、グラフィックスメモリ145に含まれるディスプレイバッファから表示データを読み出す要求をメモリI/F回路144に出力する。
この要求に応じて、メモリI/F回路144は、グラフィックスメモリ145(ディスプレイバッファ)から一定の固まりで表示データを読み出す。
CRTコントロール回路146は、グラフィックスメモリ145から読み出した表示データを記憶するたとえばFIFO回路を内蔵し、一定の時間間隔で、RGBのインデックス値を発生する。
CRTコントロール回路146は、各インデックス値に対応するR,G,Bデータを記憶しており、発生したRGBのインデックス値に対応するデジタル形式のR,G,Bデータを、図示しないD/Aコンバータ(Digital/Analog Converter)に転送し、アナログ形式のR,G,Bデータを生成する。
CRTコントロール回路146は、この生成されたR,G,Bデータを図示しないCRTに出力する。
次に、図1の構成による動作を説明する。なお、本発明の特徴であるマルチテクスチャ処理系については、図2〜図5に関連付けて説明したことから、ここでは、その詳細な処理についての説明は省略する。
3次元コンピュータグラフィックスシステム10においては、グラフィックス描画等のデータは、メインプロセッサ11のメインメモリ12、あるいは外部からのグラフィックスデータを受けるI/Oインタフェース回路13からメインバス15を介してレンダリング回路14に与えられる。
なお、必要に応じて、グラフィックス描画等のデータは、メインプロセッサ11等において、座標変換、クリップ処理、ライティング処理等のジオメトリ処理が行われる。
ジオメトリ処理が終わったグラフィックスデータは、三角形の各3頂点の頂点座標x,y,z、輝度値R,G,B、α、描画しようとしているピクセルと対応するテクスチャ座標s,t,qとからなるポリゴンレンダリングデータS11となる。
このポリゴンレンダリングデータS11は、レンダリング回路14のDDAセットアップ回路141に順々に転送される。
DDAセットアップ回路141においては、ポリゴンレンダリングデータS11に基づいて、三角形の辺と水平方向の差分などを示す変分データが生成される。
具体的には、開始点の値と終点の値、並びに、その間の距離を用いて、単位長さ移動した場合における、求めようとしている値の変化分である変分が算出され、変分データを含むセットアップデータS141としてトライアングルDDA回路142に出力される。
トライアングルDDA回路142においては、変分データを含むセットアップデータS141を用いて、、三角形内部の各画素における線形補間された(z,R,G,B,α、s,t,q)データが算出される。
そして、この算出された(z,R,G,B,α、s,t,q)データと、三角形の各頂点の(x,y)データとが、DDAデータS142として、トライアングルDDA回路142からテクスチャエンジン回路143に出力される。
すなわち、トライアングルDDA回路142においては、ポリゴンの頂点毎に求められた画像パラメータに基づいてポリゴン内部に含まれるすべてのピクセルの画像パラメータ(z,テクスチャ座標、カラーなど)を補間するラスタライズ処理が行われる。
マルチテクスチャ処理をパイプラインにより行うテクスチャエンジン回路143においては、DDAデータS142が示す(s,t,q)データについて、sデータをqデータで除算する演算と、tデータをqデータで除算する演算とが行われる。そして、除算結果「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEが乗算され、テクスチャ座標データ(u,v)が生成される。
次に、テクスチャエンジン回路143からメモリI/F回路144に対して生成されたテクスチャ座標データ(u,v)を含む読み出し要求が出力され、メモリI/F回路144を介して、グラフィックスメモリ145に記憶された(R,G,B,α)データが読み出される。
次に、テクスチャエンジン回路143において、読み出した(R,G,B,α)データと、前段のトライアングルDDA回路142からのDDAデータS142に含まれる(R,G,B,α)データとが演算され、ピクセルデータとして生成される。
このピクセルデータは、テクスチャエンジン回路143からメモリI/F回路144に出力される。
そして、メモリI/F回路144において、テクスチャエンジン回路143から入力したピクセルデータに対応するzデータと、zバッファに記憶されているzデータとの比較が行われ、入力したピクセルデータS145によって描画される画像が、前回、ディスプレイバッファに書き込まれた画像より、手前(視点側)に位置するか否かが判断される。
判断の結果、手前に位置する場合には、画像データに対応するzデータでzバッファに記憶されたzデータが更新される。
次に、メモリI/F回路144において、(R,G,B,α)データがグラフィックスメモリ145のディスプレイバッファに書き込まれる。
これら書き込む(更新も含む)べきデータは、書き込み系回路を介し所定のメモリに対して並列的に書き込まれる。
メモリI/F回路144においては、今から描画しようとしているピクセルにおけるテクスチャアドレスに対応したテクセルを格納しているグラフィックスメモリ145のメモリブロックがそのテクスチャアドレスにより算出され、そのメモリブロックにのみ読みだし要求が出され、テクセルデータが読み出される。
この場合、該当するテクセルデータを保持していないメモリブロックにおいては、テクスチャ読み出しのためのアクセスが行われないため、描画により多くのアクセス時間を提供することが可能となっている。
描画においても同様に、今から描画しようとしているピクセルアドレスに対応するピクセルデータを格納しているメモリブロックに対して、該当アドレスからピクセルデータがモディファイ書き込み(Modify Write)を行うために読み出され、モディファイ後、同じアドレスへ書き戻される。
隠れ面処理を行う場合には、やはり同じように今から描画しようとしているピクセルアドレスに対応する奥行きデータを格納しているメモリブロックに対して、該当アドレスから奥行きデータがモディファイ書き込み(Modify Write)を行うために読み出され、必要ならばモディファイ後、同じアドレスへ書き戻される。
そして、図示しないCRTに画像を表示する場合には、CRTコントロール回路146において、与えられた水平垂直同期周波数に同期して、表示アドレスが発生され、メモリI/F回路144へ表示データ転送の要求が出される。
メモリI/F回路144では、その要求に従い、一定のまとまった固まりで、表示データがCRTコントロール回路146に転送される。
CRTコントロール回路146では、図示しないディスプレイ用FIFO等にその表示データが貯えられ、一定の間隔でRGBのインデックス値が生成される。
CRTコントロール回路146においては、内部にRGBのインデックスに対するRGB値が記憶されていて、インデックス値に対するRGB値が図示しないD/Aコンバータへ転送される。
そして、D/Aコンバータでアナログ信号に変換されたRGB信号がCRTへ転送される。
以上説明したように、本実施形態によれば、マルチテクスチャ処理回路としてのテクスチャマッピング処理回路200は、全体の演算を部分演算に分割し、部分演算器をパイプライン状に接続し、それぞれの部分演算をパイプライン1段で行い、一つの演算を完了させるために複数のクロックサイクルを要するような、パイプライン演算器をもって演算を行うように構成した。
具体的には、図2に示すように、ピクセルデータとテクセルデータ、または演算出力とテクセルデータとの第1回目の部分演算を行う第1部分演算器(SCALC1)2011と、第2回目の部分演算を行う第2部分演算器(SCALC2)2012と、第1部分演算器2011の演算結果を収納する第1パイプラインレジスタ2013と、第2部分演算器2012の演算結果を収納する第2パイプライン演算器2014とを有し、部分演算器とパイプラインレジスタを接続して、演算を行う1つのパイプライン演算器を構成している演算部201と、B選択信号に応じてピクセルデータまたは演算部201の出力を選択して第1部分演算器2011に供給するセレクタ202を設けたので、演算ループを実現したとしてもマルチテクスチャ処理が可能という利点がある。
また、本実施形態によれば、図4に示すように、図2の構成に加えて、テクセルデータ入力端子AIと演算部201の第1部分演算器2011の一方の入力との間に、入力されたテクセルデータを複数段(図4では2段)だけ順次にシフトさせて(遅延させて)、A選択信号に応じて入力したテクセルデータ、第1回目に遅延させたテクセルデータ(AI1)、第2回目に遅延させたテクセルデータ(AI2)のいずれかを選択して出力するテクセルデータシフト選択回路203を設け、ピクセルデータ入力端子BIと演算部201の第1部分演算器2011の他方の入力との間に、入力されたピクセルデータをシフトさせて(遅延させて)、B選択信号に応じて入力したピクセルデータ、遅延させたピクセルデータ(BI1)、演算部201の出力OUT のいずれかを選択して出力するピクセルデータシフト選択回路204を設けたので、以下の効果を得ることができる。
すなわち、パイプライン演算器に無効データが通過している時刻が存在せず、これにより、マルチテクスチャ処理でのデータ演算において、演算器を無駄なく効率よく使用することができ、入出力としてスループット2の効率を実現できる利点がある。
なお、図2に示す3次元コンピュータグラフィックスシステム10では、ポリゴンレンダリングデータを生成するジオメトリ処理を、メインプロセッサ11で行う場合を例示したが、レンダリング回路14で行う構成にしてもよい。
以上の説明では、パイプラン処理を行うマルチテクスチャ処理回路としてのテクスチャマッピング処理回路について、図2および図4の構成例に関連付けて説明した。
以下、テクスチャマッピング処理回路のレイテンシおよびスループットの変更に対する各種応用例について、図面に関連付けて説明する。
図6は、本実施形態に係るテクスチャマッピング処理回路におけるパイプライン演算器(演算部)201Bが、レイテンシ=3で動作する回路で実現された場合の構成例を示す回路図である。
図7は、図6の回路のタイミングチャートである。
図6のテクスチャマッピング処理回路200Bは、レイテンシ=3で動作するように、図4の構成に加えて、演算部201Bにおいて、第3回目の部分演算を行う第3部分演算器(SCALC3)2015と、第3部分演算器2015の演算結果を収納する第3パイプラインレジスタ(REG3)2016を、さらに設け、部分演算器とパイプラインレジスタを接続して、演算を行う1つのパイプライン演算器を構成している。
また、テクセルデータシフト選択回路203Bは、シフトレジスタ(SREG)を2段ではなく4段構成として、セレクタ2033BはテクセルデータAI,遅延テクセルデータAI1〜AI4の5つからいずれか一つのデータを選択する。
ピクセルデータシフト選択回路204Bは、シフトレジスタ(SREG)を1段ではなく2段構成として、セレクタ2042Bは、ピクセルデータBI、遅延ピクセルデータBI1,BI2、演算部201Bの出力OUT のいずれか一つのデータを選択する。
そして、図7のタイミングチャートに示すように、A選択、B選択、および演算制御を行うことにより、マルチテクスチャ処理全体のスループット=2を確保できる。
基本的な動作は図5に関連付けた図4の回路と同様であることから、詳細な説明は省略する。
図8は、本実施形態に係るテクスチャマッピング処理回路におけるパイプライン演算器(演算部)201Cが、レイテンシ=4で動作する回路で実現された場合の構成例を示す回路図である。
図9は、図8の回路のタイミングチャートである。
図8のテクスチャマッピング処理回路200Cは、レイテンシ=4で動作するように、図6の構成に加えて、演算部201Cにおいて、第4回目の部分演算を行う第4部分演算器(SCALC4)2017と、第4部分演算器2017の演算結果を収納する第4パイプラインレジスタ(REG4)2018を、さらに設け、部分演算器とパイプラインレジスタを接続して、演算を行う1つのパイプライン演算器を構成している。
また、テクセルデータシフト選択回路203Cは、シフトレジスタ(SREG)を4段ではなく6段構成として、セレクタ2033CはテクセルデータAI,遅延テクセルデータAI1〜AI6の7つからいずれか一つのデータを選択する。
ピクセルデータシフト選択回路204Cは、シフトレジスタ(SREG)を2段ではなく3段構成として、セレクタ2042Cは、ピクセルデータBI、遅延ピクセルデータBI1〜BI3、演算部201Cの出力OUT のいずれか一つのデータを選択する。
そして、図9のタイミングチャートに示すように、A選択、B選択、および演算制御を行うことにより、マルチテクスチャ処理全体のスループット=2を確保できる。
基本的な動作は図5に関連付けた図4の回路と同様であることから、詳細な説明は省略する。
また、図10は、演算器がレイテンシ=2である図2の回路において、1つのピクセルデータに対して2つのテクセルデータではなく3つのテクセルデータを順次演算する場合のタイミングチャートである。
基本的な動作は図3に関連付けた図2の回路と同様であることから、詳細な説明は省略する。
この場合、スループットは5となる。
図11は、本実施形態に係るテクスチャマッピング処理回路におけるパイプライン演算器(演算部)201が、レイテンシ=2で動作する回路で実現された場合であって、1つのピクセルデータに対して3つのテクセルデータを順次演算する場合の構成例を示す回路図である。
図12は、図11の回路のタイミングチャートである。
図11のテクスチャマッピング処理回路200Dは、レイテンシ=2で動作し、1つのピクセルデータに対して3つのテクセルデータを順次演算可能なように、図4の構成に代えて、テクセルデータシフト選択回路203Dは、シフトレジスタ(SREG)を2段ではなく4段構成として、セレクタ2033DはテクセルデータAI,遅延テクセルデータAI1〜AI4の5つからいずれか一つのデータを選択する。
また、ピクセルデータシフト選択回路204Dは、シフトレジスタ(SREG)を1段ではなく2段構成として、セレクタ2042Dは、ピクセルデータBI、遅延ピクセルデータBI1,BI2、演算部201の出力OUT のいずれか一つのデータを選択する。
そして、図12のタイミングチャートに示すように、A選択、B選択、および演算制御を行うことにより、マルチテクスチャ処理全体のスループット=3を確保できる。
基本的な動作は図5に関連付けた図4の回路と同様であることから、詳細な説明は省略する。
図13は、本実施形態に係るテクスチャマッピング処理回路におけるパイプライン演算器(演算部)201Bが、レイテンシ=3で動作する回路で実現された場合であって、1つのピクセルデータに対して3つのテクセルデータを順次演算する場合の構成例を示す回路図である。
図14は、図13の回路のタイミングチャートである。
図13のテクスチャマッピング処理回路200Eは、レイテンシ=3で動作し、1つのピクセルデータに対して3つのテクセルデータを順次演算可能なように、図6の構成に代えて、テクセルデータシフト選択回路203Eは、シフトレジスタ(SREG)を4段ではなく8段構成として、セレクタ2033EはテクセルデータAI,遅延テクセルデータAI1〜AI8の9つからいずれか一つのデータを選択する。
また、ピクセルデータシフト選択回路204Eは、シフトレジスタ(SREG)を2段ではなく4段構成として、セレクタ2042Eは、ピクセルデータBI、遅延ピクセルデータBI1〜BI4、演算部201Bの出力OUT のいずれか一つのデータを選択する。
そして、図14のタイミングチャートに示すように、A選択、B選択、および演算制御を行うことにより、マルチテクスチャ処理全体のスループット=3を確保できる。
基本的な動作は図5に関連付けた図4の回路と同様であることから、詳細な説明は省略する。
図15は、本実施形態に係るテクスチャマッピング処理回路におけるパイプライン演算器(演算部)201Cが、レイテンシ=4で動作する回路で実現された場合であって、1つのピクセルデータに対して3つのテクセルデータを順次演算する場合の構成例を示す回路図である。
図16は、図15の回路のタイミングチャートである。
図15のテクスチャマッピング処理回路200Fは、レイテンシ=4で動作し、1つのピクセルデータに対して3つのテクセルデータを順次演算可能なように、図8の構成に代えて、テクセルデータシフト選択回路203Fは、シフトレジスタ(SREG)を6段ではなく12段構成として、セレクタ2033FはテクセルデータAI,遅延テクセルデータAI1〜AI12のいずれか一つのデータを選択する。
また、ピクセルデータシフト選択回路204Fは、シフトレジスタ(SREG)を3段ではなく6段構成として、セレクタ2042Fは、ピクセルデータBI、遅延ピクセルデータBI1〜BI6、演算部201の出力OUT のいずれか一つのデータを選択する。
そして、図16のタイミングチャートに示すように、A選択、B選択、および演算制御を行うことにより、マルチテクスチャ処理全体のスループット=3を確保できる。
基本的な動作は図5に関連付けた図4の回路と同様であることから、詳細な説明は省略する。
また、図17は、演算器がレイテンシ=2である図2の回路において、1つのピクセルデータに対して2つのテクセルデータではなく4つのテクセルデータを順次演算する場合のタイミングチャートである。
基本的な動作は図3に関連付けた図2の回路と同様であることから、詳細な説明は省略する。
この場合、スループットは7となる。
図18は、本実施形態に係るテクスチャマッピング処理回路におけるパイプライン演算器(演算部)201が、レイテンシ=2で動作する回路で実現された場合であって、1つのピクセルデータに対して4つのテクセルデータを順次演算する場合の構成例を示す回路図である。
図19は、図18の回路のタイミングチャートである。
図18のテクスチャマッピング処理回路200Gは、レイテンシ=2で動作し、1つのピクセルデータに対して4つのテクセルデータを順次演算可能なように、図4の構成に代えて、テクセルデータシフト選択回路203Gは、シフトレジスタ(SREG)を2段ではなく6段構成として、セレクタ2033GはテクセルデータAI,遅延テクセルデータAI1〜AI6の7つからいずれか一つのデータを選択する。
また、ピクセルデータシフト選択回路204Gは、シフトレジスタ(SREG)を1段ではなく3段構成として、セレクタ2042Gは、ピクセルデータBI、遅延ピクセルデータBI1〜BI3、演算部201の出力OUT のいずれか一つのデータを選択する。
そして、図19のタイミングチャートに示すように、A選択、B選択、および演算制御を行うことにより、マルチテクスチャ処理全体のスループット=4を確保できる。
基本的な動作は図5に関連付けた図4の回路と同様であることから、詳細な説明は省略する。
図20は、本実施形態に係るテクスチャマッピング処理回路におけるパイプライン演算器(演算部)201Bが、レイテンシ=3で動作する回路で実現された場合であって、1つのピクセルデータに対して4つのテクセルデータを順次演算する場合の構成例を示す回路図である。
図21は、図20の回路のタイミングチャートである。
図20のテクスチャマッピング処理回路200Hは、レイテンシ=3で動作し、1つのピクセルデータに対して4つのテクセルデータを順次演算可能なように、図6の構成に代えて、テクセルデータシフト選択回路203Hは、シフトレジスタ(SREG)を4段ではなく12段構成として、セレクタ2033HはテクセルデータAI,遅延テクセルデータAI1〜AI12のいずれか一つのデータを選択する。
また、ピクセルデータシフト選択回路204Hは、シフトレジスタ(SREG)を2段ではなく6段構成として、セレクタ2042Hは、ピクセルデータBI、遅延ピクセルデータBI1〜BI6、演算部201Bの出力OUT のいずれか一つのデータを選択する。
そして、図21のタイミングチャートに示すように、A選択、B選択、および演算制御を行うことにより、マルチテクスチャ処理全体のスループット=4を確保できる。
基本的な動作は図5に関連付けた図4の回路と同様であることから、詳細な説明は省略する。
以下はスループットとレイテンシを一般化した場合の対応例である。
図2から図21に関連付けてマルチテクスチャ処理回路としての各種テクスチャマッピング処理回路を説明してきたが、マルチテクスチャ処理を閉じた演算ループで実現を行い、演算器としてパイプライン演算器を使用する場合に、使用されるパイプライン演算器のレイテンシと、演算回路のスループットが定まれば、たとえば図20に示す入力端子AIおよびBIに接続されるシフトレジスタSREGの最適な個数を一般的に求めることが可能である。
たとえばレイテンシ=LT、スループット=THの変数でAI側のシフトレジスタSREG数(A_SREG) およびBI側のシフトレジスタSREG数(B_SREG) を表現すると、次のようになる。
(数1)
A _SREG = 2x(LT-1)x(TH-1)
B _SREG = (LT-1)x(TH-1)
さらに本実施形態は、コンピュータグラフィックス処理装置におけるテクスチャマッピング方式の形態としてマルチテクスチャ処理を代表的な応用として示してきた。
しかし本発明の特徴は、閉じた演算ループをパイプラインの途中に用意し、演算器として2以上のレイテンシを持つパイプライン演算器を導入した場合に、スループットの低下を招かない回路方式が一般的に実現可能ということである。
したがって、広くコンピュータ技術、演算回路、画像処理装置に応用可能な技術といえる。
以上詳細に説明したように、本実施形態においては、演算部は、テクスチャマッピングの専用回路である。多機能を実現するためには、演算部に多機能を実現するための仕組みを埋め込み、各機能を切り替えるための制御信号ないしはコマンドを演算部に入力する必要がある。
しかし、本発明は、本実施形態の構成に限られない。すなわち、本発明では、テクスチャマッピング用のシフトレジスタ以外に、複数種類のシフトレジスタまたは入力ユニットを用意し、より複雑な処理を演算部において実行可能とする構成を採用することもできる。この場合、演算部に行わせるべきテクスチャマッピング以外の処理に応じて、適当な入力信号を、このシフトレジスタないしは入力ユニットに入力されるように設定し、各シフトレジスタの出力をセレクタを介して選択的に演算部に入力するようにする。好ましくは(これに制限されるものではないが)、演算部において実行可能なテクスチャマッピング以外の処理として、ブレンド(blending), 乗算(multiplying), 加算(adding), 減算(subtracting), バイパス(bypassing) 、初頭関数演算、浮動小数点演算、あるいは符号付加(signed addition) 等を適用可能である。
また、上述したように、本実施形態において、演算部は、テクスチャマッピングの専用回路である。この構成では、演算部での処理を切り替えのための制御信号を演算部に与える必要は無い。図示の例で、演算部に与えられている制御信号は、一般的には、演算部の動作タイミングを制御するためのものと考えられる。
なお、本発明では、演算部においてテクスチャマッピングを含む複数の特定目的処理を行うための機能を組み合わせて実装する構成を採用することも可能である。
このような構成は、各処理に対応する専用処理装置を複数設置し該装置を選択使用したりすることにより実現可能である。
かかる構成においては、処理を切り替えるための制御信号を演算部に入力することにより、この制御信号とA/B セレクタへの制御信号とを適切に組み合わせながら制御を実行することができる。
なお、言うまでもなく、この場合には、当該特定目的に応じて、A/B セレクタへの入力信号として、ピクセルおよびテクセルとそれ以外の少なくとも1種類以上の入力信号を含む複数種類の入力信号を設定しておく必要がある。
本発明に係る画像処理装置としての3次元コンピュータグラフィックスシステムのシステム構成図である。 本実施形態に係るテクスチャマッピング処理回路の第1の構成例を示す回路図である。 図2の回路の動作を説明するためのタイミングチャートである。 本実施形態に係るテクスチャマッピング処理回路の第2の構成例を示す回路図である。 図4の回路の動作を説明するためのタイミングチャートである。 本実施形態に係るテクスチャマッピング処理回路におけるパイプライン演算器(演算部)が、レイテンシ=3で動作する回路で実現された場合の構成例を示す回路図である。 図6の回路のタイミングチャートである。 本実施形態に係るテクスチャマッピング処理回路におけるパイプライン演算器(演算部)が、レイテンシ=4で動作する回路で実現された場合の構成例を示す回路図である。 図8の回路のタイミングチャートである。 演算器がレイテンシ=2である図2の回路において、1つのピクセルデータに対して2つのテクセルデータではなく3つのテクセルデータを順次演算する場合のタイミングチャートである。 本実施形態に係るテクスチャマッピング処理回路におけるパイプライン演算器(演算部)が、レイテンシ=2で動作する回路で実現された場合であって、1つのピクセルデータに対して3つのテクセルデータを順次演算する場合の構成例を示す回路図である。 図11の回路のタイミングチャートである。 本実施形態に係るテクスチャマッピング処理回路におけるパイプライン演算器(演算部)が、レイテンシ=3で動作する回路で実現された場合であって、1つのピクセルデータに対して3つのテクセルデータを順次演算する場合の構成例を示す回路図である。 図13の回路のタイミングチャートである。 本実施形態に係るテクスチャマッピング処理回路におけるパイプライン演算器(演算部)が、レイテンシ=4で動作する回路で実現された場合であって、1つのピクセルデータに対して3つのテクセルデータを順次演算する場合の構成例を示す回路図である。 図15の回路のタイミングチャートである。 演算器がレイテンシ=2である図2の回路において、1つのピクセルデータに対して2つのテクセルデータではなく4つのテクセルデータを順次演算する場合のタイミングチャートである。 本実施形態に係るテクスチャマッピング処理回路におけるパイプライン演算器(演算部)が、レイテンシ=2で動作する回路で実現された場合であって、1つのピクセルデータに対して4つのテクセルデータを順次演算する場合の構成例を示す回路図である。 図18の回路のタイミングチャートである。 本実施形態に係るテクスチャマッピング処理回路におけるパイプライン演算器(演算部)が、レイテンシ=3で動作する回路で実現された場合であって、1つのピクセルデータに対して4つのテクセルデータを順次演算する場合の構成例を示す回路図である。 図20の回路のタイミングチャートである。
符号の説明
10…画像処理装置、11…メインプロセッサ、12…メインメモリ、13…I/Oインタフェース回路、14…レンダリング回路、141…DDAセットアップ回路、142…トライアングルDDA回路、143…テクスチャエンジン回路、144…メモリインタフェース(I/F)回路、145…グラフィックスメモリ、146…CRTコントロール回路、200,200A〜200H…テクスチャマッピング処理回路(マルチテクスチャ処理回路)、201,201B〜201C…演算部(パイプライン演算器)、202…セレクタ、203,203B〜203H…テクセルデータシフト選択回路、204,204B〜204H…ピクセルデータシフト選択回路。

Claims (8)

  1. 複数の演算器および各前記演算器の演算結果を記憶する複数の記憶手段が交互に直列に接続され、ピクセルデータに対して複数のテクセルデータを順番に演算するパイプライン演算部と、
    前記ピクセルデータが入力される第1入力端子と、
    前記第1入力端子に入力されたピクセルデータを遅延させる第1シフトレジスタと、
    前記ピクセルデータを選択して前記パイプライン演算部の初段の演算器へ出力する第1セレクタと、
    前記複数のテクセルデータが順番に入力される第2入力端子と、
    前記第2入力端子に入力されたテクセルデータを遅延させる第2シフトレジスタと、
    前記テクセルデータを選択して前記パイプライン演算部の初段の演算器へ出力する第2セレクタと、
    を有し、
    前記第2シフトレジスタは、
    スループットをTH、前記複数の演算器によるレイテンシをLTとした場合に、2×(LT−1)×(TH−1)を満たす段数により直列に接続され、
    前記第2セレクタは、
    前記第2入力端子、および複数の前記第2シフトレジスタに接続され、
    前記第2入力端子に入力されるテクセルデータ、および複数の前記第2シフトレジスタから出力される複数のテクセルデータから、1のテクセルデータを選択し、
    前記第1シフトレジスタは、
    (LT−1)×(TH−1)を満たす段数により直列に接続され、
    前記第1セレクタは、
    前記第1入力端子、複数の前記第1シフトレジスタ、および前記パイプライン演算部の最終段の記憶手段に接続され、
    前記第1入力端子に入力されたピクセルデータ、複数の前記第1シフトレジスタにより遅延された複数のピクセルデータ、および前記最終段の記憶手段から出力される演算結果データから、1のデータを選択する
    画像処理装置。
  2. 前記第1セレクタは、
    前記最終段の記憶手段が1番目のテクセルデータとピクセルデータとの演算結果を出力する場合には、前記最終段の記憶手段から出力される演算結果データを選択し、
    前記第2セレクタは、
    前記第1セレクタが前記演算結果データを選択する場合に、前記第2入力端子から入力された2番目のテクセルデータを選択する
    請求項1記載の画像処理装置。
  3. 前記複数の演算器の各々は、1クロックにより演算し、
    前記レイテンシは、前記複数の演算器の個数と同数である
    請求項1または2記載の画像処理装置。
  4. 前記パイプライン演算部は、
    ピクセルデータに対して複数のテクセルデータを順番に演算することによりマルチテクスチャ処理を行う
    請求項1から3のいずれか一項記載の画像処理装置。
  5. 複数の演算器および各前記演算器の演算結果を記憶する複数の記憶手段が交互に直列に接続され、第1データに対して複数の第2データを順番に演算するパイプライン演算部と、
    前記第1データが入力される第1入力端子と、
    前記第1入力端子に入力された第1データを遅延させる第1シフトレジスタと、
    前記第1データを選択して前記パイプライン演算部の初段の演算器へ出力する第1セレクタと、
    前記複数の第2データが順番に入力される第2入力端子と、
    前記第2入力端子に入力された第2データを遅延させる第2シフトレジスタと、
    前記第2データを選択して前記パイプライン演算部の初段の演算器へ出力する第2セレクタと、
    を有し、
    前記第2シフトレジスタは、
    スループットをTH、前記複数の演算器によるレイテンシをLTとした場合に、2×(LT−1)×(TH−1)を満たす段数により直列に接続され、
    前記第2セレクタは、
    前記第2入力端子、および複数の前記第2シフトレジスタに接続され、
    前記第2入力端子に入力される第2データ、および複数の前記第2シフトレジスタから出力される複数の第2データから、1の第2データを選択し、
    前記第1シフトレジスタは、
    (LT−1)×(TH−1)を満たす段数により直列に接続され、
    前記第1セレクタは、
    前記第1入力端子、複数の前記第1シフトレジスタ、および前記パイプライン演算部の最終段の記憶手段に接続され、
    前記第1入力端子に入力された第1データ、複数の前記第1シフトレジスタにより遅延された複数の第1データ、および前記最終段の記憶手段から出力される演算結果データから、1のデータを選択する
    演算装置。
  6. 前記第1セレクタは、
    前記最終段の記憶手段が1番目の第2データと第1データとの演算結果を出力する場合には、前記最終段の記憶手段から出力される演算結果データを選択し、
    前記第2セレクタは、
    前記第1セレクタが前記演算結果データを選択する場合に、前記第2入力端子から入力された2番目の第2データを選択する
    請求項記載の演算装置。
  7. 前記複数の演算器の各々は、1クロックにより演算し、
    前記レイテンシは、前記複数の演算器の個数と同数である
    請求項5または6記載の演算装置。
  8. 前記第1入力端子には、ピクセルデータが入力され、
    前記第2入力端子には、複数のテクセルデータが順番に入力され、
    前記パイプライン演算部は、前記ピクセルデータに対して前記複数のテクセルデータを順番に演算することによりマルチテクスチャ処理を行う
    請求項5から7のいずれか一項記載の演算装置。
JP2003377973A 2003-11-07 2003-11-07 演算装置および画像処理装置 Expired - Fee Related JP4411939B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003377973A JP4411939B2 (ja) 2003-11-07 2003-11-07 演算装置および画像処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003377973A JP4411939B2 (ja) 2003-11-07 2003-11-07 演算装置および画像処理装置

Publications (3)

Publication Number Publication Date
JP2005141533A JP2005141533A (ja) 2005-06-02
JP2005141533A5 JP2005141533A5 (ja) 2006-12-07
JP4411939B2 true JP4411939B2 (ja) 2010-02-10

Family

ID=34688515

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003377973A Expired - Fee Related JP4411939B2 (ja) 2003-11-07 2003-11-07 演算装置および画像処理装置

Country Status (1)

Country Link
JP (1) JP4411939B2 (ja)

Also Published As

Publication number Publication date
JP2005141533A (ja) 2005-06-02

Similar Documents

Publication Publication Date Title
US6518974B2 (en) Pixel engine
US7522171B1 (en) On-the-fly reordering of 32-bit per component texture images in a multi-cycle data transfer
US6704018B1 (en) Graphic computing apparatus
US8319789B2 (en) Image generation device and image generation method
JPH10177659A (ja) 改良されたバス通信用の共通データ・ラインを用いてマルチ論理バスを実行する3次元グラフィック・アクセレータ
JPH10116356A (ja) 浮動小数点、ライティング及びセットアップ・コアを有する3次元グラフィックス・アクセラレータの浮動小数点プロセッサ
JP2003346138A (ja) 画像処理装置およびその方法
US7405735B2 (en) Texture unit, image rendering apparatus and texel transfer method for transferring texels in a batch
EP1826725A1 (en) Plotting device and plotting method
JP2000182069A (ja) 画像処理装置およびその方法
JPH1186028A (ja) テクスチャ・マッピング性能を向上させた3次元グラフィックス・アクセラレータを含むコンピュータ・システム
EP1288863B1 (en) Method and device for drawing
JP4411939B2 (ja) 演算装置および画像処理装置
JP3979162B2 (ja) 画像処理装置およびその方法
US7489315B1 (en) Pixel stream assembly for raster operations
JP3743369B2 (ja) グラフィックス描画装置およびその方法
US6563507B1 (en) Storage circuit control device and graphic computation device
JP3747859B2 (ja) 画像処理装置およびその方法
JP2003308537A (ja) 図形描画装置
JP4042462B2 (ja) 画像処理装置およびその方法
US7113655B2 (en) Image processing apparatus
US20040012586A1 (en) Image processing apparatus and method of same
JP2003132347A (ja) 画像処理装置
JPH11272548A (ja) 記憶回路制御装置およびグラフィック演算装置
US20030142107A1 (en) Pixel engine

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061019

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061019

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090804

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090925

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091027

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091109

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121127

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees