JP4411939B2 - 演算装置および画像処理装置 - Google Patents
演算装置および画像処理装置 Download PDFInfo
- 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
Links
Images
Landscapes
- Image Generation (AREA)
Description
このようなコンピュータ・グラフィックスは、科学、工学、製造などの開発分野でのCAD/CAM、その他の各種応用分野においてますます盛んに利用されるようになってきている。
ジオメトリ・サブシステムでは、一般にオブジェクトは多数のポリゴンの集合体として扱われ、ポリゴン単位で、「座標変換」、「クリッピング」、「光源計算」などの幾何学的な演算処理が行われる。
ラスタライズ処理は、たとえばポリゴンの頂点毎に求められた画像パラメータを基にして、ポリゴン内部に含まれるすべてのピクセルの画像パラメータを補間することによって実現される。
ここで言う画像パラメータには、いわゆるRGB形式などで表される色(描画色)データ、奥行き方向の距離を表すz値などがある。
また、最近の高精細な3次元グラフィックス処理では、遠近感を醸し出すためのf(fog:霧)や、物体表面の素材感や模様を表現してリアリティを与えるテクスチャt(texture)なども、画像パラメータの1つとして含まれている。
DDAプロセスでは、頂点情報からポリゴンの辺方向へのデータの傾きを求め、この傾きを用いて辺上のデータを算出した後、続いてラスタ走査方向(X方向)の傾きを算出し、この傾きから求めたパラメータの変化分を走査の開始点のパラメータ値に加えていくことで、内部のピクセルを発生していく。
たとえば、テクスチャマッピング処理などでは、パイプラインを流れてきたピクセル(PIXEL)データ1つに対し、1つのテクセル(TEXEL)データとの演算を施し、後段のパイプラインへ結果を流す処理を行う。
なお、処理に使われるテクセルデータは2種類以上あっても良い。
これは、パイプラインの中に閉じた演算ループを構成し、第1の演算結果を同じ演算器に再入力するといった、閉じた演算ループ処理を行うことで容易に実現ができる。
これはパイプラインの中を高いスループットで流れてきたデータを処理するために、演算器数を削減したことでスループットを下げてしまうと、コンピュータグラフィックス処理全体の性能低下につながるためである。
たとえば、演算の種類として8ビット程度の算術演算や論理演算であれば1クロックサイクルで処理できても、もっとビット数の多い算術演算や、あるいは初等関数の演算、あるいは浮動小数点方式の演算などは、演算が複雑になるため回路規模も複雑化し、演算に要する時間がさらに増え結果的にクロック1サイクルの時間内では演算が終了しないことがある。
また、半導体の消費電力を下げる目的や、半導体プロセス性能を理由として、低速であるが低電力の半導体回路による演算器の実現を考える場合は、演算処理が簡単であったとしても、演算に必要な時間が1クロックサイクルで終了しない(足りない)おそれもある。
後者の傾向は携帯機器への搭載を目的とした半導体では近年特に顕著である。
好適には、前記パイプライン演算部は、ピクセルデータに対して複数のテクセルデータを順番に演算することによりマルチテクスチャ処理を行ってもよい。
また、複数のテクセルデータを遅延させる第2シフトレジスタを2×(LT−1)×(TH−1)段に直列に接続し、ピクセルデータを遅延させる第1シフトレジスタを(LT−1)×(TH−1)段に直列に接続する。
また、パイプライン演算器に無効データが通過している時刻が存在せず、これによりマルチテクスチャ処理でのデータ演算において、演算器を無駄なく効率よく使用することができ、入出力として所定のスループットの効率を実現できる利点がある。
また、3次元コンピュータグラフィックスシステム10では、平面上の位置を表現する(x,y)座標の他に、奥行きを表すz座標を用いて3次元物体を表し、この(x,y,z)の3つの座標で3次元空間の任意の一点を特定する。
本実施形態においては、ピクセルデータに対応するテクセルデータを複数演算処理可能なマルチテクスチャマッピング演算処理装置を実現する上で、演算の効率に着目し、入出力の効率を乱すことなく処理装置を構築するために必要な制御方式を実現している。
この方式は、後で詳述するように、演算器の処理性能の増加に対して柔軟に対応が可能であるという特徴を有し、テクスチャマッピング処理以外に一般的なパイプライン演算器への適応も可能となっている。
そして、本実施形態に係るマルチテクスチャ処理回路では、全体の演算を部分演算に分割し、部分演算器をパイプライン状に接続し、それぞれの部分演算をパイプライン1段で行い、一つの演算を完了させるために複数のクロックサイクルを要するような、パイプライン演算器をもって演算を行う。
また、閉じた演算ループをパイプライン演算器を使用して実現する場合に、演算処理性能を示す入出力効率はスループットで表現される。これは有効なデータが入出力されるに必要なクロック数と考えてよい。また、パイプライン演算器の中をデータが通過することに要するクロック数は、通常レイテンシと呼ばれ、2段の部分演算器から構成されるパイプライン演算器は、レイテンシ=2の性能を持つ。
本実施形態に係るマルチテクスチャ処理系では、閉じた演算ループを構成するパイプライン演算器のレイテンシとスループットを一般化することで、マルチテクスチャ処理を実現するための閉じた演算ループを構成する演算器に対して、最適なスループットを実現する一般的な方式を示す。
以下、各構成要素の機能について説明する。
メインプロセッサ11は、ポリゴンレンダリングデータS11を、メインバス15を介してレンダリング回路14に出力する。
ここで、(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)を用いて行われる。
すなわち、ポリゴンレンダリングデータは、三角形の各頂点の物理座標値と、それぞれの頂点の色とテクセルデータである。
このセットアップ演算は、具体的には、開始点の値と終点の値と、開始点と終点との距離を用いて、単位長さ移動した場合における、求めようとしている値の変分を算出する。
DDAセットアップ回路141は、算出した変分データを含むプリミティブに関する情報としてのセットアップデータS141をトライアングルDDA回路142に出力する。
三角形の各頂点データは、たとえばx,y座標が16ビット、z座標が24ビット、RGBカラー値が各12ビット(=8+4)、s,t,qテクスチャ座標は各32ビット浮動少数値(IEEEフォーマット)等で構成される。
トライアングルDDA回路142は、各ピクセルの(x,y)データと、当該(x,y)座標における(z,R,G,B,α,s,t,q)データとを、DDAデータ(補間データ)S142としてテクスチャエンジン回路143に出力する。
具体的には、トライアングルDDA回路142は、各種データ(z,テクスチャ座標、カラーなど)をラスタライズする。
なお、テクスチャエンジン回路143は、たとえば所定の矩形内に位置する複数(たとえば4あるいは8)ピクセルについての処理を同時に並行して行う。
テクスチャエンジン回路143には、たとえば図示しない除算回路が並列処理する画素数分だけ(たとえば8個)設けられており、8画素についての除算「s/q」および「t/q」が同時に行われる。また、8画素のうち代表点からの補間演算処理を行うように実装することも可能である。
また、テクスチャエンジン回路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に出力する。
一方、テクスチャエンジン回路143は、インデックスカラー方式の場合には、あらかじめ作成しておいたカラーインデックステーブルのデータを、テクスチャカラールックアップテーブル(CLUT)バッファより内蔵するSRAM等で構成した一時保管バッファに転送しておいて、このカラールックアップテーブルを用いて、テクスチャバッファから読み出したカラーインデックスに対応する(R,G,B,α)データを得る。
たとえばカラールックアップテーブルがSRAMで構成された場合、カラーインデックスをSRAMのアドレスに入力すると、その出力には実際の(R,G,B,α)データが出てくるといった使い方となる。
なお、ここで説明するマルチテクスチャ処理回路としてのテクスチャマッピング処理回路は、全体の演算を部分演算に分割し、部分演算器をパイプライン状に接続し、それぞれの部分演算をパイプライン1段で行い、一つの演算を完了させるために複数のクロックサイクルを要するような、パイプライン演算器をもって演算を行う。
具体的には、演算部201は、第1回目の部分演算を行う第1部分演算器(SCALC1)2011と、第2回目の部分演算を行う第2部分演算器(SCALC2)2012と、第1部分演算器2011の演算結果を収納する第1パイプラインレジスタ2013と、第2部分演算器2012の演算結果を収納する第2パイプラインレジスタ2014とを有する。
このように、演算部201は、部分演算器とパイプラインレジスタを接続して、演算を行う1つのパイプライン演算器を構成している。
本実施形態においては、入力端子AIにはテクセルデータを毎クロックごとに入力するが、入力端子BIにはピクセルデータを2クロックに1回入力している。
本実施形態においては、マルチテクスチャ処理を説明するために、ピクセルデータとテクセルデータを以下のように定義する。
ピクセルデータは単一の数値表現されたデータのみならず、それらの集合である。コンピュータグラフィックス処理の場合は、ピクセルのカラーを表現するための、α(alpha)値、R(Red)カラー値、G(Green)カラー値、B(Blue)カラー値などである。
[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_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のテクセルデータとの演算処理内容。
第1ピクセルデータ [B0] が入力端子BIに入力され、第1テクセルデータ[A0_0]が入力端子AIに入力される。このとき、第1選択信号としてのB選択信号がBIを示すため、セレクタ202の出力BSELとして [B0] が現れ、演算部201に入力される。
演算部201においては、第1部分演算器2011により[演算0_1]の部分演算が行われ、その部分演算結果が第1パイプラインレジスタ2013に収納される。
第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は同じものを入力し続けている。
第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に収納される。
第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に収納される。
第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には同じものを入力し続ける必要がある。
第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に収納される。
また同じくタイミングチャートを参照することで、時刻T2から時刻T4のサイクルを繰り返していることも理解できる。
シフトレジスタ2031は、入力端子AIから入力されたテクセルデータを遅延させてデータAI1としてセレクタ2033およびシフトレジスタ2032に出力する。
シフトレジスタ2032は、シフトレジスタ2031により遅延されたデータAI1をさらに遅延させて、データAI2としてセレクタ2033に出力する。
セレクタ2033は、A選択信号に応じて入力したテクセルデータ、第1回目に遅延させたテクセルデータ(AI1)、第2回目に遅延させたテクセルデータ(AI2)のいずれかを選択し出力ASELを通して演算部201の第1部分演算器2011の一方の入力に出力する。
シフトレジスタ2041は、入力端子BIから入力されたピクセルデータを遅延させてデータBI1としてセレクタ2042に出力する。
セレクタ2042は、B選択信号に応じて入力したピクセルデータ、遅延させたテクセルデータ(BI1)、演算部201の出力OUT のいずれかを選択し出力BSELを通して演算部201の第1部分演算器2011の他方の入力に出力する。
第1ピクセルデータ [B0]が入力端子BIから入力され、第1ピクセルデータに対応する第1テクセルデータ[A00]が入力端子AIから入力される。
入力端子AIから入力されたテクセルデータは、テクセルデータシフト選択回路203において、直接入力されるAI、第1段のシフトレジスタ2031を通過したAI1、第2段のシフトレジスタ2032を通過したAI2としてセレクタ2033に入力される。
また、入力端子BIから入力されたピクセルデータは、ピクセルデータシフト選択回路204において、直接入力されるBI、第1段のシフトレジスタ2041を通過したBI1としてセレクタ2042に入力される。
ピクセルデータシフト選択回路204では、セレクタ2042において、BI1で供給される第1ピクセルデータ[B0]がB選択信号に応じて選択され出力BSELに現れる。
同様に、テクセルデータシフト選択回路203では、セレクタ2033において、AI1で供給される第1テクセルデータ[A0_0]が選択され出力ASELに現れる。
そして、演算部201の第1部分演算器2011により[演算0_1]が行われ、第1回目の部分演算結果が第1パイプラインレジスタ2013に収納される。
第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に収納される。
第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に収納される。
第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に収納される。
第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に収納される。
第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に収納される。
同様に、第1ピクセルデータB0の処理の合間に第2ピクセルデータ演算が行われ、時刻T6で結果が得られていることが理解できる。
またタイミングチャートで重要な点は、パイプライン演算器に無効データが通過している時刻が存在しない点であり、このことがマルチテクスチャ処理でのデータ演算において、演算器を無駄なく効率よく使用していることも示している。
また同じくタイミングチャートを参照することで、T3-T6の4サイクルを繰り返していることも理解できる。
この動作の結果、図4の回路は、入出力としてスループット2の効率を実現していることになる。
さらにMIPMAP等を行う場合は、MIPMAPのレベルの算出を行う。そして、テクスチャ座標の算出を行う。
また、グラフィックスメモリ145に含まれるテクスチャバッファからそれぞれのレベルのテクセルデータを読み出し、そのまま使うポイントサンプリング(Point Sampling)または、bi-Linea(4近傍)補間、Tri-Linea 補間等を行う。
そこで得られたテクセルカラーに対して次の処理を行う。すなわち、入力されたピクセルカラーとテクセルカラーを演算・合成し、さらにフォグカラーを合成して、最終的に描画するピクセルのカラーを決定する。
また、メモリI/F回路144は、(R,G,B,α)データをグラフィックスメモリ145(ディスプレイバッファ)に書き込む。
この場合、該当するテクセルデータを保持していないメモリブロックにおいては、テクセルデータの読み出しのためのアクセスが行われないため、描画により多くのアクセス時間を提供することが可能となっている。
隠れ面処理を行なう場合には、やはり同じように今から描画しようとしているピクセルアドレスに対応する奥行きデータを格納しているメモリブロックに対して、該当アドレスから奥行きデータをモディファイ書き込みするため読み出し、必要ならばモディファイ後同じアドレスへ書き戻す。
また、メモリI/F回路144は、CRTコントロール回路146から表示データを読み出す要求を受けた場合には、この要求に応じて、グラフィックメモリ145(ディスプレイバッファ)から一定の固まり、たとえば8ピクセルあるいは16ピクセル単位で表示データを読み出す。
すなわち、書き込みの場合には書き込みアドレスADRWと書き込みデータDTWが書き込み系回路で処理されてグラフィックスメモリ145に書き込み、読み出しの場合には読み出し系回路で処理されてグラフィックスメモリ145から読み出す。
そして、メモリI/F回路144は、所定のインターリーブ方式のアドレッシングに基づいてグラフィックスメモリ145へのアクセスを、たとえば16画素単位で行う。
特に、トライアングルDDA部分とテクスチャエンジン部分を並列実効形式で、同じ回路を設ける(空間並列)か、または、パイプラインを細かく挿入する(時間並列)ことで、複数画素の同時算出を行っている。
グラフィックスメモリ145のメモリブロックは表示領域において隣接した部分は、後述するように異なるメモリブロックとなるように配置してあるので、三角形のような平面を描画する場合には面で同時に処理できることになるため、それぞれのメモリブロックの動作確率は非常に高くなっている。
また、グラフィックスメモリ145は、同一機能を有する複数、たとえば4個のモジュールに分割されている。
インデックスおよびカラールックアップテーブル値は、上述したように、テクスチャ処理に使われる。
すなわち、通常はR,G,B,αそれぞれ8ビットの合計32ビットでテクスチャ要素を表現するが、それではデータ量が膨らむため、あらかじめ選んでおいたたとえば256色等の中から一つの色を選んで、そのデータをテクスチャ処理に使う。このことで256色であればそれぞれのテクスチャ要素は8ビットで表現できることになる。インデックスから実際のカラーへの変換テーブルは必要になるが、テクスチャの解像度が高くなるほど、よりコンパクトなテクセルデータとすることが可能となる。
これにより、テクセルデータの圧縮が可能となり、内蔵メモリの効率良い利用が可能となる。
なお、表示データと奥行きデータおよびテクセルデータの格納方法としては、たとえばメモリブロックの所定の位置、たとえば先頭から連続して表示データが格納され、次に奥行きデータが格納され、残りの空いた領域に、テクスチャの種類毎に連続したアドレス空間でテクセルデータが格納される。
この要求に応じて、メモリ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に出力する。
なお、必要に応じて、グラフィックス描画等のデータは、メインプロセッサ11等において、座標変換、クリップ処理、ライティング処理等のジオメトリ処理が行われる。
ジオメトリ処理が終わったグラフィックスデータは、三角形の各3頂点の頂点座標x,y,z、輝度値R,G,B、α、描画しようとしているピクセルと対応するテクスチャ座標s,t,qとからなるポリゴンレンダリングデータS11となる。
このポリゴンレンダリングデータS11は、レンダリング回路14のDDAセットアップ回路141に順々に転送される。
具体的には、開始点の値と終点の値、並びに、その間の距離を用いて、単位長さ移動した場合における、求めようとしている値の変化分である変分が算出され、変分データを含むセットアップデータS141としてトライアングルDDA回路142に出力される。
そして、この算出された(z,R,G,B,α、s,t,q)データと、三角形の各頂点の(x,y)データとが、DDAデータS142として、トライアングルDDA回路142からテクスチャエンジン回路143に出力される。
すなわち、トライアングルDDA回路142においては、ポリゴンの頂点毎に求められた画像パラメータに基づいてポリゴン内部に含まれるすべてのピクセルの画像パラメータ(z,テクスチャ座標、カラーなど)を補間するラスタライズ処理が行われる。
次に、テクスチャエンジン回路143において、読み出した(R,G,B,α)データと、前段のトライアングルDDA回路142からのDDAデータS142に含まれる(R,G,B,α)データとが演算され、ピクセルデータとして生成される。
このピクセルデータは、テクスチャエンジン回路143からメモリI/F回路144に出力される。
判断の結果、手前に位置する場合には、画像データに対応するzデータでzバッファに記憶されたzデータが更新される。
これら書き込む(更新も含む)べきデータは、書き込み系回路を介し所定のメモリに対して並列的に書き込まれる。
この場合、該当するテクセルデータを保持していないメモリブロックにおいては、テクスチャ読み出しのためのアクセスが行われないため、描画により多くのアクセス時間を提供することが可能となっている。
メモリI/F回路144では、その要求に従い、一定のまとまった固まりで、表示データがCRTコントロール回路146に転送される。
CRTコントロール回路146では、図示しないディスプレイ用FIFO等にその表示データが貯えられ、一定の間隔でRGBのインデックス値が生成される。
CRTコントロール回路146においては、内部にRGBのインデックスに対するRGB値が記憶されていて、インデックス値に対するRGB値が図示しないD/Aコンバータへ転送される。
そして、D/Aコンバータでアナログ信号に変換されたRGB信号がCRTへ転送される。
具体的には、図2に示すように、ピクセルデータとテクセルデータ、または演算出力とテクセルデータとの第1回目の部分演算を行う第1部分演算器(SCALC1)2011と、第2回目の部分演算を行う第2部分演算器(SCALC2)2012と、第1部分演算器2011の演算結果を収納する第1パイプラインレジスタ2013と、第2部分演算器2012の演算結果を収納する第2パイプライン演算器2014とを有し、部分演算器とパイプラインレジスタを接続して、演算を行う1つのパイプライン演算器を構成している演算部201と、B選択信号に応じてピクセルデータまたは演算部201の出力を選択して第1部分演算器2011に供給するセレクタ202を設けたので、演算ループを実現したとしてもマルチテクスチャ処理が可能という利点がある。
すなわち、パイプライン演算器に無効データが通過している時刻が存在せず、これにより、マルチテクスチャ処理でのデータ演算において、演算器を無駄なく効率よく使用することができ、入出力としてスループット2の効率を実現できる利点がある。
以下、テクスチャマッピング処理回路のレイテンシおよびスループットの変更に対する各種応用例について、図面に関連付けて説明する。
図7は、図6の回路のタイミングチャートである。
また、テクセルデータシフト選択回路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の回路と同様であることから、詳細な説明は省略する。
図9は、図8の回路のタイミングチャートである。
また、テクセルデータシフト選択回路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の回路と同様であることから、詳細な説明は省略する。
基本的な動作は図3に関連付けた図2の回路と同様であることから、詳細な説明は省略する。
この場合、スループットは5となる。
図12は、図11の回路のタイミングチャートである。
また、ピクセルデータシフト選択回路204Dは、シフトレジスタ(SREG)を1段ではなく2段構成として、セレクタ2042Dは、ピクセルデータBI、遅延ピクセルデータBI1,BI2、演算部201の出力OUT のいずれか一つのデータを選択する。
そして、図12のタイミングチャートに示すように、A選択、B選択、および演算制御を行うことにより、マルチテクスチャ処理全体のスループット=3を確保できる。
基本的な動作は図5に関連付けた図4の回路と同様であることから、詳細な説明は省略する。
図14は、図13の回路のタイミングチャートである。
また、ピクセルデータシフト選択回路204Eは、シフトレジスタ(SREG)を2段ではなく4段構成として、セレクタ2042Eは、ピクセルデータBI、遅延ピクセルデータBI1〜BI4、演算部201Bの出力OUT のいずれか一つのデータを選択する。
そして、図14のタイミングチャートに示すように、A選択、B選択、および演算制御を行うことにより、マルチテクスチャ処理全体のスループット=3を確保できる。
基本的な動作は図5に関連付けた図4の回路と同様であることから、詳細な説明は省略する。
図16は、図15の回路のタイミングチャートである。
また、ピクセルデータシフト選択回路204Fは、シフトレジスタ(SREG)を3段ではなく6段構成として、セレクタ2042Fは、ピクセルデータBI、遅延ピクセルデータBI1〜BI6、演算部201の出力OUT のいずれか一つのデータを選択する。
そして、図16のタイミングチャートに示すように、A選択、B選択、および演算制御を行うことにより、マルチテクスチャ処理全体のスループット=3を確保できる。
基本的な動作は図5に関連付けた図4の回路と同様であることから、詳細な説明は省略する。
基本的な動作は図3に関連付けた図2の回路と同様であることから、詳細な説明は省略する。
この場合、スループットは7となる。
図19は、図18の回路のタイミングチャートである。
また、ピクセルデータシフト選択回路204Gは、シフトレジスタ(SREG)を1段ではなく3段構成として、セレクタ2042Gは、ピクセルデータBI、遅延ピクセルデータBI1〜BI3、演算部201の出力OUT のいずれか一つのデータを選択する。
そして、図19のタイミングチャートに示すように、A選択、B選択、および演算制御を行うことにより、マルチテクスチャ処理全体のスループット=4を確保できる。
基本的な動作は図5に関連付けた図4の回路と同様であることから、詳細な説明は省略する。
図21は、図20の回路のタイミングチャートである。
また、ピクセルデータシフト選択回路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) を表現すると、次のようになる。
A _SREG = 2x(LT-1)x(TH-1)
B _SREG = (LT-1)x(TH-1)
しかし本発明の特徴は、閉じた演算ループをパイプラインの途中に用意し、演算器として2以上のレイテンシを持つパイプライン演算器を導入した場合に、スループットの低下を招かない回路方式が一般的に実現可能ということである。
したがって、広くコンピュータ技術、演算回路、画像処理装置に応用可能な技術といえる。
このような構成は、各処理に対応する専用処理装置を複数設置し該装置を選択使用したりすることにより実現可能である。
かかる構成においては、処理を切り替えるための制御信号を演算部に入力することにより、この制御信号とA/B セレクタへの制御信号とを適切に組み合わせながら制御を実行することができる。
なお、言うまでもなく、この場合には、当該特定目的に応じて、A/B セレクタへの入力信号として、ピクセルおよびテクセルとそれ以外の少なくとも1種類以上の入力信号を含む複数種類の入力信号を設定しておく必要がある。
Claims (8)
- 複数の演算器および各前記演算器の演算結果を記憶する複数の記憶手段が交互に直列に接続され、ピクセルデータに対して複数のテクセルデータを順番に演算するパイプライン演算部と、
前記ピクセルデータが入力される第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記載の画像処理装置。 - 前記パイプライン演算部は、
ピクセルデータに対して複数のテクセルデータを順番に演算することによりマルチテクスチャ処理を行う
請求項1から3のいずれか一項記載の画像処理装置。 - 複数の演算器および各前記演算器の演算結果を記憶する複数の記憶手段が交互に直列に接続され、第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データを選択する
請求項5記載の演算装置。 - 前記複数の演算器の各々は、1クロックにより演算し、
前記レイテンシは、前記複数の演算器の個数と同数である
請求項5または6記載の演算装置。 - 前記第1入力端子には、ピクセルデータが入力され、
前記第2入力端子には、複数のテクセルデータが順番に入力され、
前記パイプライン演算部は、前記ピクセルデータに対して前記複数のテクセルデータを順番に演算することによりマルチテクスチャ処理を行う
請求項5から7のいずれか一項記載の演算装置。
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) |
-
2003
- 2003-11-07 JP JP2003377973A patent/JP4411939B2/ja not_active Expired - Fee Related
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) | 画像処理装置 | |
JPH10307925A (ja) | 画像処理装置及び画像処理方法 | |
JPH11272548A (ja) | 記憶回路制御装置およびグラフィック演算装置 |
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 |