JP4635379B2 - 画像処理装置 - Google Patents
画像処理装置 Download PDFInfo
- Publication number
- JP4635379B2 JP4635379B2 JP2001163245A JP2001163245A JP4635379B2 JP 4635379 B2 JP4635379 B2 JP 4635379B2 JP 2001163245 A JP2001163245 A JP 2001163245A JP 2001163245 A JP2001163245 A JP 2001163245A JP 4635379 B2 JP4635379 B2 JP 4635379B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- circuit
- mixing
- texture
- image
- 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 Processing (AREA)
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Description
【発明の属する技術分野】
本発明は、レンダリング処理において、グラフィックデータに、複数のテクスチャデータを混合するマルチテクスチャ処理を行う画像処理装置に関する。
【0002】
【従来の技術】
種々のCAD(Computer Aided Design) システムや、アミューズメント装置などにおいて、コンピュータグラフィックスがしばしば用いられている。特に、近年の画像処理技術の進展に伴い、3次元コンピュータグラフィックスを用いたシステムが急速に普及している。
このような3次元コンピュータグラフィックスでは、各画素(ピクセル)に対応する色を決定するときに、各画素の色の値を計算し、この計算した色の値を、当該画素に対応するディスプレイバッファ(フレームバッファ)のアドレスに書き込むレンダリング(Rendering) 処理を行う。
レンダリング処理の手法の一つに、ポリゴン(Polygon)レンダリングがある。
この手法では、立体モデルを三角形の単位図形(ポリゴン)の組み合わせとして表現しておき、このポリゴンを単位として描画を行なうことで、表示画面の色を決定する。
【0003】
このようなレンダリング処理では、所定のグラフィック処理を経て生成された画像データに、テクスチャバッファから読み出した複数のテクスチャデータを所定の混合比で混合するマルチテクスチャ処理が行われている。
【0004】
図18は、マルチテクスチャ処理を行う従来の画像処理回路500の構成図である。
図18に示すように、画像処理回路500は、演算回路501および502を有する。
演算回路501は、例えば、前段のグラフィック回路から入力したソースデータ511とテクスチャメモリから読み出したテクスチャデータ510とを、指定された混合比率で混合して画像データ513を生成し、画像データ513を後段の演算回路502に出力する。
演算回路502は、演算回路501から入力した画像データ513とテクスチャメモリから読み出したテクスチャデータ512とを、指定された混合比率で混合して画像データ514を生成し、これをフレームバッファメモリに書き込む。
【0005】
【発明が解決しようとする課題】
しかしながら、上述した従来の画像処理回路500では、同じ構成の演算回路501と502とを2つ設けるため、大規模化するという問題点があれる。
また、上述した従来の画像処理回路500では、テクスチャデータ510と512とを異なるクロックサイクルでテクスチャメモリから読み出しており、その結果、演算回路501と502との処理を並行して行うことができず、演算回路501と502とを直列に接続しても、パイプライン処理による処理時間の短縮を図ることはできない。
すなわち、画像処理回路500では、テクスチャメモリへのアクセス制限により、パフォーマンス向上が図れないにも係わらず、演算回路501と502との2つの演算回路を直列にした大規模な構成を有している。
【0006】
本発明は、上述した従来技術の問題点に鑑みて成され、従来に比べて規模を縮小できるマルチテクスチャ処理を行う画像処理装置を提供することを目的とする。
【0007】
上述した従来技術の問題点を解決し、上述した目的を達成するために、第1の発明の画像処理装置は、記憶回路から読み出したデータを補間して2次元上の所定位置の画素に対応する第1のテクスチャデータを生成し、記憶回路から読み出したデータを補間して前記画素に対応する第2のテクスチャデータを生成する補間処理を行う第1の画像処理回路と、前記第1のテクスチャデータと第1の画像データとを第1の混合比率で混合して第2の画像データを生成する第1の混合処理を行い、前記第2の画像データをフィードバックし、前記第1の混合処理を行わない期間に、前記フィードバックされた第2の画像データと前記第2のテクスチャデータとを第2の混合比率で混合して第3の画像データを生成する第2の混合処理を行う第2の画像処理回路と、を有し、前記第2の画像処理回路は、少なくとも2つのデータと混合比率とを入力し、前記入力した2つのデータが示す値を前記入力した混合比率に基づいて線形補間して新たなデータを生成する信号処理回路を有し、前記第1の混合処理を行う場合に、前記第1のテクスチャデータと、前記第1の画像データと、前記第1の混合比率とを前記信号処理回路に入力し、前記第2の混合処理を行う場合に、前記第1の混合処理によって生成された前記第2の画像データと、前記第2のテクスチャデータと、前記第2の混合比率とを前記信号処理回路に入力する。
【0009】
第1の発明の画像処理装置は、好ましくは、前記第1の画像処理回路は、前記生成した第1のテクスチャデータの前記第2の画像処理回路への出力に続いて、前記生成した第2のテクスチャデータの前記第2の画像処理回路への出力を行い、前記第2の画像処理回路は、前記第1の混合処理および前記第2の混合処理を行う混合処理回路と、前記第1の画像処理回路から入力した前記第1のテクスチャデータと、前記第1の画像処理回路から入力した前記第2のテクスチャデータと、前記第1の画像データと、前記第1の混合処理によって生成された前記第2の画像データとを入力し、前記混合処理回路が前記第1の混合処理を行う場合に、前記入力した第1のテクスチャデータと前記第1の画像データとを選択して前記混合処理回路に出力し、前記混合処理回路が前記第2の混合処理を行う場合に、前記入力した第2の画像データと前記第2のテクスチャデータとを選択して前記混合処理回路に出力する選択回路とを有する。
【0010】
第1の発明の画像処理装置は、好ましくは、クロック信号を生成するクロック信号生成回路をさらに有し、前記第2の画像処理回路は、前記クロック信号に基づいて、各々n(nは自然数)クロックサイクル以内に行われる前記第1の混合処理および前記第2の混合処理を含むm(mは自然数)個の信号処理を順に、前段の信号処理の結果をフィードバックして後段の信号処理を行い、前記第1の画像処理回路は、前記クロック信号に基づいて、n×mクロックサイクル以内に前記補間処理を行う。
【0011】
第1の発明の画像処理装置は、好ましくは、前記第2の画像処理回路は、前記第1の混合処理および前記第2の混合処理の処理時間の合計が、前記第1の画像処理回路が行う前記補間処理の処理時間に比べて長い場合に、前記補間処理の結果を入力するタイミングを調整するための指示を前記第1の画像処理回路に出力する。
【0012】
第1の発明の画像処理装置は、好ましくは、前記第2の画像処理回路は、各々所定のビット幅のデータA,Bと、所定のビット幅で0≦COE≦1を満たす値をとるデータCOEを用いて、A×COE+B×(1−COE)に相当する演算を行い、上位所定ビットを演算結果として得る信号処理回路であって、COE=1の場合、補正データFとして前記データAを選択し、COE≠1の場合、前記補正データFとして前記データBを選択する補正データ選択回路と、前記選択した補正データFを用いて、A×COE+B× ̄COE+F(但し、 ̄COEはCOEのビット反転を示す)に相当する演算を行う演算回路とを有する。
【0013】
第1の発明の画像処理装置は、好ましくは、前記第2の画像処理回路は、ミップマップ処理、モジュレート処理、デカル処理、ハイライト処理、フォギング処理およびアルファブレンディング処理のうち少なくとも一の処理と、前記第1の混合処理および前記第2の混合処理とを選択的に行う。
【0014】
第2の発明の画像処理装置は、少なくとも2つのデータと混合比率とを入力し、前記入力した2つのデータが示す値を前記入力した混合比率に基づいて線形補間して新たなデータを生成する信号処理回路を有し、第1のテクスチャデータと、第1の画像データと、第1の混合比率とを前記信号処理回路に入力し、前記第1のテクスチャデータと前記第1の画像データとを前記第1の混合比率で混合して第2の画像データを生成する第1の混合処理を行い、前記第2の画像データをフィードバックし、前記第1の混合処理を行わない期間に、前記第1の混合処理によって生成された前記第2の画像データと、第2のテクスチャデータと、第2の混合比率とを前記信号処理回路に入力し、前記フィードバックされた第2の画像データと前記第2のテクスチャデータとを前記第2の混合比率で混合して第3の画像データを生成する第2の混合処理を行う。
【0015】
第2の発明の画像処理装置では、第1のテクスチャデータと第1の画像データとが入力される。
そして、当該画像処理装置において、第1の混合処理が行われ、第1のテクスチャデータと第1の画像データとが第1の混合比率で混合され、第2の画像データが生成される。
そして、当該生成された第2の画像データがフィードバックされ、当該画像処理装置に入力される。
次に、当該画像処理装置において、前記第1の混合処理を行わない期間に、第2の混合処理が行われ、前記フィードバックされた第2の画像データと第2のテクスチャデータとが第2の混合比率で混合され、第3の画像データを生成される。
このように、第2の発明の画像処理装置では、同じハードウェアを用いて、異なる時間に、第1の混合処理と第2の混合処理とが順に行われる。そのため、第1の混合処理および第2の混合処理をそれぞれ専用に行うハードウェアを設けた従来の装置に比べて小規模化が図れる。
【0017】
第2の発明の画像処理装置は、好ましくは、記憶回路から読み出されたデータを補間して得られた2次元上の所定位置の画素に対応する前記第1のテクスチャデータと、前記第1の画像データとを、第1の混合比率で混合して前記第2の画像データを生成する第1の混合処理を行い、前記第1の混合処理を行わない期間に、前記フィードバックされた第2の画像データと、記憶回路から読み出されたデータを補間して得られた前記画素に対応する前記第2のテクスチャデータとを、第2の混合比率で混合して前記第3の画像データを生成する第2の混合処理を行う。
【0018】
また、第3の発明の画像処理装置は、記憶回路から読み出したデータを補間して2次元上の所定位置の画素に対応する第1のテクスチャデータを生成し、記憶回路から読み出したデータを補間して前記画素に対応する第2のテクスチャデータを生成する補間処理を行う第1の画像処理回路と、前記第1のテクスチャデータと前記第2のテクスチャデータとを第1の混合比率で混合して第1の画像データを生成する第1の混合処理を行い、前記第1の画像データをフィードバックし、前記第1の混合処理を行わない期間に、前記フィードバックされた第1の画像データと第2の画像データとを第2の混合比率で混合して第3の画像データを生成する第2の混合処理を行う第2の画像処理回路と、を有し、前記第2の画像処理回路は、少なくとも2つのデータと混合比率とを入力し、前記入力した2つのデータが示す値を前記入力した混合比率に基づいて線形補間して新たなデータを生成する信号処理回路を有し、前記第1の混合処理を行う場合に、前記第1のテクスチャデータと、前記第2のテクスチャデータと、前記第1の混合比率とを前記信号処理回路に入力し、前記第2の混合処理を行う場合に、前記第1の混合処理によって生成された前記第1の画像データと、前記第2の画像データと、前記第2の混合比率とを前記信号処理回路に入力する。
【0019】
また、第4の発明の画像処理装置は、少なくとも2つのデータと混合比率とを入力し、前記入力した2つのデータが示す値を前記入力した混合比率に基づいて線形補間して新たなデータを生成する信号処理回路を有し、第1のテクスチャデータと、第2のテクスチャデータと、第1の混合比率とを前記信号処理回路に入力し、前記第1のテクスチャデータと前記第2のテクスチャデータとを前記第1の混合比率で混合して第1の画像データを生成する第1の混合処理を行い、前記第1の画像データをフィードバックし、前記第1の混合処理によって生成された前記第1の画像データと、第2の画像データと、第2の混合比率とを前記信号処理回路に入力し、前記第1の混合処理を行わない期間に、前記フィードバックされた第1の画像データと前記第2の画像データとを前記第2の混合比率で混合して第3の画像データを生成する第2の混合処理を行う。
【0020】
第4の発明の画像処理装置では、第1のテクスチャデータと第2のテクスチャデータとが入力される。
そして、当該画像処理装置において、第1の混合処理が行われ、第1のテクスチャデータと第2のテクスチャデータとが第1の混合比率で混合され、第1の画像データが生成される。
そして、当該生成された第1の画像データがフィードバックされ、当該画像処理装置に入力される。
次に、当該画像処理装置において、前記第1の混合処理を行わない期間に、第2の混合処理が行われ、前記フィードバックされた第1の画像データと第2の画像データとが第2の混合比率で混合され、第3の画像データを生成される。
このように、第4の発明の画像処理装置では、同じハードウェアを用いて、異なる時間に、第1の混合処理と第2の混合処理とが順に行われる。そのため、第1の混合処理および第2の混合処理をそれぞれ専用に行うハードウェアを設けた従来の装置に比べて小規模化が図れる。
【0021】
【発明の実施の形態】
第1実施形態
図1は、本実施形態の画像処理装置200の構成図である。
図1に示すように、画像処理装置200は、例えば、ソースデータ生成回路201、テクスチャバッファメモリ202、フレームバッファメモリ203、メモリI/F回路204、DAC回路205、テクスチャエンジン回路206および制御回路207を有する。
本実施形態は、第1の発明および第2の発明に対応した実施形態であり、テクスチャエンジン回路206が第1の発明の画像処理装置、並びに第2の発明の第2の画像処理回路に対応している。
【0022】
ソースデータ生成回路201は、例えば、グラフィック回路であり、所定のグラフィック処理を行ってソースデータSの(R,G,B)データであるCpixels(本発明の第1の画像データ)を生成し、これをテクスチャエンジン回路206に出力する。
【0023】
テクスチャバッファメモリ202は、例えば、図2に示すように、テクスチャデータTA,TB,TCを含む複数のテクスチャデータを記憶している。
【0024】
フレームバッファメモリ203は、例えば、CRT210に出力するフレーム画像データを記憶している。
メモリI/F回路204は、テクスチャエンジン回路206が生成した画像データS206を、フレーム画像データとしてフレームバッファメモリ203に記憶する。
また、メモリI/F回路204は、フレームバッファメモリ203から読み出したフレーム画像データをDAC回路205に出力する。
【0025】
DAC回路205は、メモリI/F回路204から入力したデジタルのフレーム画像データを、アナログのフレーム画像データに変換してCRT210に出力する。これにより、CRT210が、フレーム画像データに応じたフレーム画像を表示する。
【0026】
制御回路207は、画像処理装置200の処理を統括して制御する。
【0027】
テクスチャエンジン回路206は、ソースデータ生成回路201から入力したソースデータSに、テクスチャバッファメモリ202から読み出した複数のテクスチャデータをそれぞれ所定の混合比率で混合して画像データS206を生成し、これをメモリI/F回路204に出力する。
具体的には、テクスチャエンジン回路206は、ソースデータ生成回路201から入力したソースデータSと、テクスチャバッファメモリ202から読み出したテクスチャデータTAとを、所定の混合比率COES-TAで混合して画像データを生成する第1の混合処理を行う。
また、テクスチャエンジン回路206は、テクスチャバッファメモリ202から読み出したテクスチャデータTBと、第1の混合処理で生成された画像データとを所定の混合比率COET-TA-TB で混合して画像データS206を生成する第2の混合処理を行う。
第1の混合処理および第2の混合処理は、例えば、各画素毎に、当該画素のR,G,Bデータのそれぞれについて行われる。
【0028】
テクスチャエンジン回路206は、ソースデータSに混合する2つのテクスチャデータ(本実施形態では、テクスチャデータTA,TB)を、例えば、以下のようにして特定する。
例えば、ソースデータ生成回路201から入力した各画素に対応した(s,t,q)データを用いて変数LODを算出し、変数LODの整数部分を2つの連番のテクスチャデータ(本実施形態では、テクスチャデータTA,TB)を選択するのに使用し、少数部分を当該選択した2つのテクスチャデータ間の混合比率(本実施形態では、COES-TA,COET-TA-TB )を決定するのに使用する。また、テクスチャバッファメモリ202からのテクスチャデータの読み出しには、テクスチャ座標データ(u,v)が使用される。
また、制御回路207によって、テクスチャエンジン回路206においてソースデータSに混合される2つのテクスチャデータの特定、並びに混合比率が指定されてもよい。以下、この場合について例示する。
【0029】
以下、図2を参照しながら、テクスチャエンジン回路206が行うマルチテクスチャ処理を説明する。
テクスチャエンジン回路206は、マルチテクスチャ処理を行う際に、先ず、4点近傍補間処理を行う。
4点近傍補間処理では、テクスチャデータを割り当てる画素の座標から、当該座標の4近傍の点の(R,G,B)データを求める。
テクスチャエンジン回路206が、テクスチャバッファメモリ202から、例えば、図2に示すテクスチャデータTAの(R,G,B)データを読み出す。
そして、図2に示す位置pixel0の(R,G,B)データである4点近傍補間データCpixel0(本発明の第1のテクスチャデータ)を、テクスチャデータTAの(R,G,B)データのうち当該位置pixel0の4近傍点A0,B0,C0,D0の(R,G,B)データCA0,CB0,CC0,CD0を用いて、下記式(1)〜(3)に基づいて求める。
このとき、(R,G,B)データCA0,CB0,CC0,CD0は、テクスチャデータTAの(R,G,B)データから得られる。
なお、下記式(1)〜(3)において、a,bは、それぞれ位置pixel0のu座標,v座標の小数部を示している。
【0030】
【数1】
CAB0 =CB0×a+CA0×(1−a) …(1)
【0031】
【数2】
CCD0 =CD0×a+CC0×(1−a) …(2)
【0032】
【数3】
Cpixel0=CCD0 ×b+CAB0 ×(1−b) …(3)
【0033】
また、テクスチャエンジン回路206が、テクスチャバッファメモリ202から、例えば、図2に示すテクスチャデータTBの(R,G,B)データを読み出す。当該テクスチャデータTBの読み出しは、前述したテクスチャデータTAの読み出しとは異なるクロックサイクルで行われる。
そして、図2に示す位置pixel1の(R,G,B)データである4点近傍補間データCpixel1(本発明の第2のテクスチャデータ)を、テクスチャデータTBの(R,G,B)データのうち当該位置pixel1の4近傍点A1,B1,C1,D1の(R,G,B)データCA1,CB1,CC1,CD1用いて、下記式(4)〜(6)に基づいて求める。
このとき、(R,G,B)データCA1,CB1,CC1,CD1は、テクスチャデータTBの(R,G,B)データから得られる。
なお、下記式(4)〜(6)において、a,bは、それぞれ位置pixel1のu座標,v座標の小数部を示している。
【0034】
【数4】
CAB1 =CB1×a+CA1×(1−a) …(4)
【0035】
【数5】
CCD1 =CD1×a+CC1×(1−a) …(5)
【0036】
【数6】
Cpixel1=CCD1 ×b+CAB1 ×(1−b) …(6)
【0037】
テクスチャエンジン回路206は、各画素について、当該画素のソースデータSの(R,G,B)データであるCS と4点近傍補間データCpixel0とを、制御回路207から入力したマルチテクスチャ係数COES-TA(本発明の第1の混合比率)で混合するために、下記式(7)に基づいて線形補間を行って画素データCS-TA(本発明の第2の画像データ)を生成する第1の混合処理を行う。
【0038】
【数7】
CS-TA=CpixelS×COES-TA+Cpixel0×(1−COES-TA)
…(7)
【0039】
次に、テクスチャエンジン回路206は、第1の混合処理で生成した画像データCS-TAと4点近傍補間データCpixel1とを、制御回路207から入力したマルチテクスチャ係数COES-TA-TB (本発明の第2の混合比率)で混合するために、下記式(8)に基づいて線形補間を行って画像データCS-TA-TB (本発明の第3の画像データ)を生成する第2の混合処理を行う。
【0040】
【数8】
CS-TA-TB =CS-TA×COES-TA+Cpixel1×(1−COES-TA)
…(8)
【0041】
図3は、図1に示すテクスチャエンジン回路206の構成図である。
図3に示すように、テクスチャエンジン回路206は、例えば、読み出し回路228、4点近傍補間回路229、選択回路230、選択回路231、マルチテクスチャ回路232およびスイッチ回路233を有する。
ここで、4点近傍補間回路229が第2の発明の第1の画像処理回路に対応し、選択回路230,231およびマルチテクスチャ回路232が第2の発明の第2の画像処理回路に対応している。
【0042】
読み出し回路228は、テクスチャバッファメモリ202から、例えば、図2に示すテクスチャデータTAの(R,G,B)データと、テクスチャデータTAの(R,G,B)データの読み出しとを順にそれぞれ1クロックサイクルで行う。
【0043】
4点近傍補間回路229は、読み出し回路228から入力したテクスチャデータTA、すなわち、図2に示す位置pixel0の4近傍点A0,B0,C0,D0の(R,G,B)データCA0,CB0,CC0,CD0を用いて、上述した式(1)〜(3)の処理を行って4点近傍補間データCpixel0を生成し、これを選択回路231に出力する。
また、4点近傍補間回路229は、読み出し回路228から入力したテクスチャデータTB、すなわち,図2に示す位置pixel1の4近傍点A1,B1,C1,D1の(R,G,B)データCA1,CB1,CC1,CD1を用いて、上述した式(4)〜(6)の処理を行って4点近傍補間データCpixel1を生成し、これを選択回路230に出力する。
4点近傍補間回路229は、4点近傍補間データCpixel0を出力した次のクロックサイクルで4点近傍補間データCpixel1を出力するように、式(1)の処理と式(2)の処理、並びに式(4)の処理と式(5)の処理を並行して行うと共に、パイプライン処理を行っている。
【0044】
選択回路230は、例えば、ソースデータ生成回路201から入力したソースデータSのデータCpixelSと、4点近傍補間回路229から入力した4点近傍補間データCpixel1とを入力し、これら入力したデータのうち制御回路207からの選択信号SEL1に基づいて選択したデータをマルチテクスチャ回路232に出力する。
選択回路231は、例えば、4点近傍補間回路229から入力した4点近傍補間データCpixel0と、マルチテクスチャ回路232からフィードバックされた画像データS232とを入力し、これら入力したデータのうち制御回路207からの選択信号SEL2に基づいて選択したデータをマルチテクスチャ回路232に出力する。
【0045】
マルチテクスチャ回路232は、選択回路230から入力したソースデータSのデータCpixelSと、選択回路231から入力した4点近傍補間データCpixel0とを、例えば、制御回路207から入力したマルチテクスチャ係数(混合比率)COES-TAで混合して画像データS232(CS-TA)を生成する第1の混合処理を行う。
また、マルチテクスチャ回路232は、選択回路230から入力した4点近傍補間データCpixel1と、選択回路231から入力した画像データS232(CS-TA)とを、制御回路207から入力したマルチテクスチャ係数(混合比率)COES-TA-TB で混合して画像データS232(CS-TA-TB )を生成する第2の混合処理とを行う。
【0046】
スイッチ回路233は、マルチテクスチャ回路232から画像データS232として画像データCS-TA-TB を入力するタイミングでオン状態となり、当該画像データCS-TA-TB を画像データS206として図1に示すメモリI/F回路204に出力する。
スイッチ回路233は、マルチテクスチャ回路232から画像データS232として画像データCS-TAを入力するタイミングでオフ状態となり、当該画像データCS-TAを図1に示すメモリI/F回路204に出力しない。
当該画像データCS-TAは、選択回路231を介してマルチテクスチャ回路232にフィードバックされる。
【0047】
以下、図3に示すテクスチャエンジン回路206の動作例を説明する。
図4は、図3に示すテクスチャエンジン回路206の動作例を説明するためのタイミングチャートである。
図4(A)は図3に示す読み出し回路228によるテクスチャデータの読み出しタイミングを示す図、図4(B)は4点近傍補間回路229内での上記式(1),(2),(4),(5)の実行タイミングを示す図、図4(C)は4点近傍補間回路229内での上記式(3),(6)の実行タイミングを示す図、図4(D)はマルチテクスチャ回路232の処理タイミングを示す図である。
【0048】
クロックサイクル1:
読み出し回路228は、テクスチャバッファメモリ202から、例えば、図2に示すテクスチャデータTAの位置pixel0の4近傍点A0,B0,C0,D0の(R,G,B)データCA0,CB0,CC0,CD0を読み出す。
【0049】
クロックサイクル2:
読み出し回路228は、テクスチャバッファメモリ202から、例えば、図2に示すテクスチャデータTBの位置pixel1の4近傍点A1,B1,C1,D1の(R,G,B)データCA1,CB1,CC1,CD1を読み出す。
また、4点近傍補間回路229内で、クロックサイクル1で読み出されたデータCA0,CB0,CC0,CD0を用いて、上述した式(1),(2)の処理が行われ、データCAB0 ,CCD0 が生成される。
【0050】
クロックサイクル3:
4点近傍補間回路229内で、クロックサイクル2で生成されたデータCAB0,CCD0 を用いて、上述した式(3)の処理が行われ、4点近傍補間データCpixel0が生成される。
当該4点近傍補間データCpixel0は、選択回路231を介してマルチテクスチャ回路232に入力される。
また、それと並行して、図1に示すソースデータ生成回路201からのソースデータSのデータCS が選択回路230を介してマルチテクスチャ回路232に出力される。
また、それと並行して、4点近傍補間回路229内で、クロックサイクル2で読み出されたデータCA1,CB1,CC1,CD1を用いて、上述した式(4),(5)の処理が行われ、データCAB1 ,CCD1 が生成される。
【0051】
クロックサイクル4:
マルチテクスチャ回路232内で、クロックサイクル3で入力されたソースデータSのデータCS と4点近傍補間データCpixel0とが、上述した式(7)に基づいて、制御回路207から入力したマルチテクスチャ係数COES-TAで混合され、画像データS232(CS-TA)が生成される。
画像データCS-TAは、フィードバックされ、選択回路231を介してマルチテクスチャ回路232に入力される。
また、4点近傍補間回路229内で、クロックサイクル3で生成されたデータCAB1 ,CCD1 を用いて、上述した式(6)の処理が行われ、4点近傍補間データCpixel1が生成される。
当該4点近傍補間データCpixel1は、選択回路230を介してマルチテクスチャ回路232に入力される。
【0052】
クロックサイクル5:
マルチテクスチャ回路232内で、クロックサイクル4で入力した4点近傍補間データCpixel1と、画像データCS-TAとが、上述した式(8)に基づいて、制御回路207から入力したマルチテクスチャ係数COES-TA-TB が示す混合比率で混合されて画像データS232(CS-TA-TB )が生成される。
当該画像データCS-TA-TB は、スイッチ回路233を介して、画像データS206として図1に示すメモリI/F回路204に出力される。
【0053】
以上説明したように、画像処理装置200によれば、図3に示すように、マルチテクスチャ回路232において、ソースデータSに複数のテクスチャデータを混合する(マルチテクスチャ処理を行う)際に、第1の混合処理の処理結果をフィードバックして第2の混合処理を行うことで、第1の混合処理と第2の混合処理とを同一のハードウェアを用いて行う。
そのため、画像処理装置200によれば、テクスチャエンジン回路206を従来に比べて小規模化でき、装置全体の規模を縮小できる。
また、画像処理装置200によれば、テクスチャバッファメモリ202から第1のテクスチャデータと第2のテクスチャデータとを異なるタイミングで読み出し、第1の混合処理が行われない期間に第2の混合処理を行うことから、従来と同じ時間でマルチテクスチャ処理を行うことができる。
【0054】
第2実施形態
図5は、本実施形態の画像処理装置300の構成図である。
図5に示すように、画像処理装置300は、例えば、ソースデータ生成回路201、テクスチャバッファメモリ202、フレームバッファメモリ203、メモリI/F回路204、DAC回路205、テクスチャエンジン回路306および制御回路307を有する。
図5において、図1と同じ符号を付したソースデータ生成回路201、テクスチャバッファメモリ202、フレームバッファメモリ203、メモリI/F回路204およびDAC回路205は、第1実施形態で説明したものと同じである。
本実施形態は、第3の発明および第4の発明に対応した実施形態であり、テクスチャエンジン回路306が第3の発明の画像処理装置、並びに第4の発明の第2の画像処理回路に対応している。
【0055】
画像処理装置300は、テクスチャエンジン回路306および制御回路307に特徴を有している。
以下、テクスチャエンジン回路306および制御回路307を中心に説明する。
テクスチャエンジン回路306は、第1実施形態で説明したテクスチャエンジン回路206と同様の方法で、式(1)〜(6)に基づいた処理を行い、データCpixel0(本発明の第1のテクスチャデータ),Cpixel1(本発明の第2のテクスチャデータ)の生成を行う。
【0056】
そして、テクスチャエンジン回路306は、各画素について、各画素の4点近傍補間データCpixel0とCpixel1とを生成し、これらをマルチテクスチャ係数COETA-TB (本発明の第1の混合比率)で混合するために、下記式(9)に基づいて線形補間を行って画像データCTA-TB (本発明の第1の画像データ)を生成する第1の混合処理を行う。
【0057】
【数9】
CTA-TB =Cpixel0×COETA-TB +Cpixel0×(1−COETA-TB )
…(9)
【0058】
次に、テクスチャエンジン回路306は、第1の混合処理で生成した画像データCTA-TB とソースデータSの画像データCpixelS(本発明の第2の画像データ)とを、マルチテクスチャ係数COETA-TB-S (本発明の第2の混合比率)で混合するために、下記式(10)に基づいて線形補間を行って画像データCTA-TB-S (本発明の第3の画像データ)を生成する第2の混合処理を行う。
【0059】
【数10】
CTA-TB-S =CTA-TB ×COETA-TB-S +CpixelS×(1−COETA-TB-S )
…(10)
【0060】
図6は、図5に示すテクスチャエンジン回路306の構成図である。
図6に示すように、テクスチャエンジン回路306は、例えば、読み出し回路228、4点近傍補間回路229、選択回路330、選択回路331、マルチテクスチャ回路332、スイッチ回路333、レジスタ350、スイッチ回路351およびスイッチ回路352を有する。
読み出し回路228および4点近傍補間回路229は、図3を用いて第1実施形態で説明したものと同じである。
ここで、4点近傍補間回路229が第4の発明の第1の画像処理回路に対応し、選択回路330,331およびマルチテクスチャ回路332が第4の発明の第2の画像処理回路に対応している。
【0061】
テクスチャエンジン回路306では、4点近傍補間回路229から出力されたデータCpixel0,Cpixel1がレジスタ350およびスイッチ回路352に出力される。
スイッチ回路351は、レジスタ350にデータCpixel0が記憶されたクロックサイクルの次のクロックサイクルで、接続状態となり、レジスタ350から読み出されたデータCpixel0を選択回路330に出力する。
スイッチ回路352は、レジスタ350からデータCpixel0が読み出されるクロックサイクルで接続状態となり、4点近傍補間回路229から入力したデータCpixel1を選択回路331に出力する。
すなわち、データCpixel0,Cpixel1が、それぞれスイッチ回路351,350を介して同じクロックサイクルで、選択回路330,331にそれぞれ出力される。
【0062】
選択回路330は、例えば、ソースデータ生成回路201から入力したソースデータSのデータCpixelSと、スイッチ回路351から入力した4点近傍補間データCpixel0とを入力し、これら入力したデータのうち制御回路307からの選択信号SEL1に基づいて選択したデータをマルチテクスチャ回路332に出力する。
選択回路331は、例えば、スイッチ回路352から入力した4点近傍補間データCpixel1と、マルチテクスチャ回路332からフィードバックされた画像データS332とを入力し、これら入力したデータのうち制御回路307からの選択信号SEL2に基づいて選択したデータをマルチテクスチャ回路332に出力する。
【0063】
マルチテクスチャ回路332は、選択回路330から入力した4点近傍補間データCpixel0と、選択回路331から入力した4点近傍補間データCpixel1とを、制御回路307から入力したマルチテクスチャ係数(混合比率)COETA-TBで混合して画像データS332(CTA-TB )を生成する第1の混合処理を行う。
また、マルチテクスチャ回路332は、選択回路330から入力したソースデータSのデータCpixelSと、選択回路331から入力した画像データS332(CTA-TB )とを、制御回路307から入力したマルチテクスチャ係数(混合比率)COETA-TB-S で混合して画像データS332(CTA-TB-S )を生成する第2の混合処理とを行う。
【0064】
スイッチ回路333は、マルチテクスチャ回路332から画像データS332として画像データCTA-TB-S を入力するタイミングでオン状態となり、当該画像データCTA-TB-S を画像データS306として図5に示すメモリI/F回路204に出力する。
スイッチ回路333は、マルチテクスチャ回路332から画像データS332として画像データCTA-TB を入力するタイミングでオフ状態となり、当該画像データCTA-TB を図5に示すメモリI/F回路204に出力しない。
当該画像データCTA-TB は、選択回路331を介してマルチテクスチャ回路332にフィードバックされる。
【0065】
以下、図6に示すテクスチャエンジン回路306の動作例を説明する。
図7は、図6に示すテクスチャエンジン回路306の動作例を説明するためのタイミングチャートである。
図7(A)は図6に示す読み出し回路228によるテクスチャデータの読み出しタイミングを示す図、図7(B)は4点近傍補間回路229内での上記式(1),(2),(4),(5)の実行タイミングを示す図、図7(C)は4点近傍補間回路229内での上記式(3),(6)の実行タイミングを示す図、図7(D)はマルチテクスチャ回路332の処理タイミングを示す図である。
【0066】
クロックサイクル1:
読み出し回路228は、テクスチャバッファメモリ202から、例えば、テクスチャデータTAの位置pixel0の4近傍点A0,B0,C0,D0の(R,G,B)データCA0,CB0,CC0,CD0を読み出す。
【0067】
クロックサイクル2:
読み出し回路228は、テクスチャバッファメモリ202から、例えば、テクスチャデータTBの位置pixel1の4近傍点A1,B1,C1,D1の(R,G,B)データCA1,CB1,CC1,CD1を読み出す。
また、4点近傍補間回路229内で、クロックサイクル1で読み出されたデータCA0,CB0,CC0,CD0を用いて、上述した式(1),(2)の処理が行われ、データCAB0 ,CCD0 が生成される。
【0068】
クロックサイクル3:
4点近傍補間回路229内で、クロックサイクル2で生成されたデータCAB0,CCD0 を用いて、上述した式(3)の処理が行われ、4点近傍補間データCpixel0が生成される。
当該4点近傍補間データCpixel0は、図6に示すレジスタ350に書き込まれる。
また、それと並行して、4点近傍補間回路229内で、クロックサイクル2で読み出されたデータCA1,CB1,CC1,CD1を用いて、上述した式(4),(5)の処理が行われ、データCAB1 ,CCD1 が生成される。
【0069】
クロックサイクル4:
4点近傍補間回路229内で、クロックサイクル3で生成されたデータCAB1,CCD1 を用いて、上述した式(6)の処理が行われ、4点近傍補間データCpixel1が生成される。
当該4点近傍補間データCpixel1は、スイッチ回路352および選択回路331を介してマルチテクスチャ回路332に出力される。
また、それと並行して、レジスタ350から読み出された4点近傍補間データCpixel0が、選択回路330を介してマルチテクスチャ回路332に出力される。
【0070】
クロックサイクル5:
マルチテクスチャ回路332内で、クロックサイクル4で入力された4点近傍補間データCpixel1とCpixel0とが、制御回路307から入力したマルチテクスチャ係数(混合比率)COETA-TB を用いて上記式(9)に基づいて混合され、画像データS332(CTA-TB )が生成される。
当該データCTA-TB は、フィードバックされ、選択回路331を介してマルチテクスチャ回路332に入力される。
また、それと並行して、図5に示すソースデータ生成回路201からのソースデータSのデータCS が選択回路330を介してマルチテクスチャ回路332に入力される。
【0071】
クロックサイクル6:
マルチテクスチャ回路332内で、クロックサイクル5で入力されたデータCTA-TB とデータCS とが、制御回路307から入力したマルチテクスチャ係数(混合比率)COETA-TB-S を用いて上記式(10)に基づいて混合され、画像データS332(CTA-TB-S )が生成される。
当該データCTA-TB-S は、スイッチ回路333を介して、図5に示す画像データS306として後段のメモリI/F回路204に出力される。
【0072】
以上説明したように、テクスチャエンジン回路306によっても上述した第1実施形態のテクスチャエンジン回路206と同様の効果が得られる。
【0073】
第3実施形態
本実施形態では、任意の3次元物体モデルに対する所望の3次元画像をCRT(Cathode Ray Tube)などのディスプレイ上に高速に表示する3次元コンピュータグラフィックシステムに、本発明を適用した場合について説明する。
【0074】
図8は、本実施形態の3次元コンピュータグラフィックシステム1のシステム構成図である。
3次元コンピュータグラフィックシステム1は、立体モデルを単位図形である三角形(ポリゴン)を組み合わせて表現し、このポリゴンを描画することで表示画面の各画素の色を決定し、ディスプレイに表示するポリゴンレンダリング処理を行うシステムである。
また、3次元コンピュータグラフィックシステム1では、平面上の位置を表現する(x,y)座標の他に、奥行きを表すz座標を用いて3次元物体を表し、この(x,y,z)の3つの座標で3次元空間の任意の一点を特定する。
【0075】
図8に示すように、3次元コンピュータグラフィックシステム1は、例えば、メインメモリ2、I/Oインタフェース回路3、メインプロセッサ4およびレンダリング回路5が、メインバス6を介して接続されている。
本発明は、後述するレンダリング回路5のテクスチャエンジン回路12に特徴を有している。
以下、3次元コンピュータグラフィックシステム1の各構成要素の機能について説明する。
メインプロセッサ4は、例えば、画像表示の進行状況などに応じて、メインメモリ2から必要なグラフィックデータを読み出し、このグラフィックデータに対してクリッピング(Clipping)処理、ライティング(Lighting)処理およびジオメトリ(Geometry)処理などを行い、ポリゴンレンダリングデータS4を生成する。メインプロセッサ4は、ポリゴンレンダリングデータS4を、メインバス6を介してレンダリング回路5に出力する。
I/Oインタフェース回路3は、必要に応じて、外部からポリゴンレンダリングデータS4を入力し、これをメインバス6を介してレンダリング回路5に出力する。
【0076】
ポリゴンレンダリングデータS4は、ポリゴンの各3頂点の(x,y,z,R,G,B,COEblend ,s,t,q,COEfog )データを含んでいる。
ここで、(x,y,z)データは、ポリゴンの頂点の3次元座標を示し、(R,G,B)データは、それそれ当該3次元座標における赤、緑、青の輝度値を示している。
COEblend データは、これから描画する画素と、ディスプレイバッファ21に既に記憶されている画素とのR,G,Bデータのブレンド(混合)係数を示している。
(s,t,q)データのうち、(s,t)は対応するテクスチャの同次座標を示しており、qは同次項を示している。ここで、「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEを乗じてテクスチャ座標データ(u,v)が得られる。SRAM17およびテクスチャバッファ20に記憶されたテクスチャデータへのアクセスは、テクスチャ座標データ(u,v)を用いて行われる。
COEfog データは、フォギング処理を行う際に用いられる混合比率を示す係数である。
【0077】
以下、レンダリング回路5について詳細に説明する。
図8に示すように、レンダリング回路5は、例えば、DDA(Digital Differential Anarizer) セットアップ回路10、トライアングルDDA回路11、テクスチャエンジン回路12、メモリI/F回路13、CRTコントローラ回路14、RAMDAC回路15、DRAM16、SRAM17およびクロック信号発生回路18を有する。
クロック信号発生回路18は、レンダリング回路5内の各構成要素に、クロック信号S18を供給する。
図8において、テクスチャエンジン回路12が本発明の画像処理装置に対応している。
【0078】
DRAM16
DRAM16は、テクスチャデータを記憶するテクスチャバッファ20、CRTに出力してディスプレイに表示する表示データを記憶するディスプレイバッファ21、zデータを記憶するzバッファ22およびカラールックアップデータを記憶するテクスチャCLUTバッファ23として機能する。
【0079】
DDAセットアップ回路10
DDAセットアップ回路10は、後段のトライアングルDDA回路11において物理座標系上のポリゴンの各頂点の値を線形補間して、ポリゴンの内部の各画素の色と深さ情報を求めるのに先立ち、ポリゴンレンダリングデータS4が示す(z,R,G,B,COEblend ,s,t,q,COEfog )データについて、セットアップ演算を行い、ポリゴンの辺と水平方向の差分(変分)を示す変分データS10を生成する。
このセットアップ演算は、具体的には、開始点の値と終点の値と、開始点と終点との距離を用いて、所定の方向に単位長さ移動した場合における、求めようとしている値の変分を算出する。
DDAセットアップ回路10は、算出した変分データS10をトライアングルDDA回路11に出力する。
【0080】
トライアングルDDA回路11
トライアングルDDA回路11は、DDAセットアップ回路10から入力した変分データS10を用いて、ポリゴン内部の各画素における線形補間された(z,R,G,B,COEblend ,s,t,q,COEfog )データを算出する。
トライアングルDDA回路11は、各画素の(x,y)データと、当該(x,y)座標における(z,R,G,B,COEblend ,s,t,q,COEfog )データとを、DDAデータ(補間データ)S11としてテクスチャエンジン回路12に出力する。
本実施形態では、トライアングルDDA回路11は、例えば、並行して処理を行う矩形内に位置する8(=2×4)画素分のDDAデータS11を同時にテクスチャエンジン回路12に出力する。
【0081】
テクスチャエンジン回路12
テクスチャエンジン回路12は、以下に示すように、テクスチャデータの読み出し処理、マルチテクスチャ処理、MIPMAP処理およびテクスチャファンクション処理などを行う。
なお、テクスチャエンジン回路12は、例えば、所定の矩形内に位置する8画素についての処理を同時に並行して行う。
【0082】
テクスチャエンジン回路12は、DDAデータS11に含まれる(s,t,q)データを用いて「s/q」および「t/q」を算出し、「s/q」および「t/q」のそれぞれテクスチャサイズUSIZEおよびVSIZEを乗じて、テクスチャ座標データ(u,v)を生成する。
そして、テクスチャエンジン回路12は、メモリI/F回路13を介して、SRAM17あるいはDRAM16に、テクスチャ座標データ(u,v)を含む読み出し要求を出力し、メモリI/F回路13を介して、SRAM17あるいはテクスチャバッファ20に記憶されているテクスチャデータを読み出す。これにより、テクスチャエンジン回路12は、(s,t,q)データに対応したテクスチャアドレスに記憶された(R,G,B)データS17を得る。
なお、SRAM17には、テクスチャバッファ20に記憶されているテクスチャデータのコピーが記憶されている。
【0083】
また、テクスチャエンジン回路12は、SRAM17あるいはテクスチャバッファ20から読み出した(R,G,B)データS17を用いて、マルチテクスチャ処理、MIPMAP(複数解像度テクスチャ)処理、並びにテクスチャファンクション処理を行う。
【0084】
先ず、テクスチャエンジン回路12が行うマルチテクスチャ処理について説明する。
テクスチャエンジン回路12は、DDAデータS11に含まれる(R,G,B)データS11a(フラグメントカラー値Cflag)に、テクスチャバッファ20から読み出した複数のテクスチャデータをそれぞれ所定の混合比率で混合して画像データS12を生成し、これをメモリI/F回路13に出力する。
具体的には、テクスチャエンジン回路12は、SRAM17あるいはテクスチャバッファ20から読み出したテクスチャデータTA(Cpixel0)とテクスチャデータTB(Cpixel1)とを、前述した式(9)に基づいて、所定の混合比率COETA-TB で混合して画像データCTA-TB を生成する第1の混合処理を行う。
また、テクスチャエンジン回路12は、(R,G,B)データS11aと、第1の混合処理で生成されてフィードバックされた画像データCTA-TB とを、前述した式(10)に基づいて、所定の混合比率COETA-TB-S で混合して画像データS13(CTA-TB-S )を生成する第2の混合処理を行う。
第1の混合処理および第2の混合処理は、例えば、各画素毎に、当該画素のR,G,Bデータのそれぞれについて行われる。
【0085】
テクスチャエンジン回路12は、(R,G,B)データS11aに混合する2つのテクスチャデータ(本実施形態では、テクスチャデータTA,TB)を、例えば、以下のようにして特定する。
例えば、トライアングルDDA回路11から入力した各画素のDDAデータS11に含まれる(s,t,q)データを用いて変数LODを算出し、変数LODの整数部分を2つの連番のテクスチャデータ(本実施形態では、テクスチャデータTA,TB)を選択するのに使用し、少数部分を当該選択した2つのテクスチャデータ間の混合比率(本実施形態では、COES-TA,COET-TA-TB )を決定するのに使用する。また、テクスチャバッファ20からのテクスチャデータの読み出しには、テクスチャ座標データ(u,v)が使用される。
【0086】
次に、MIPMAP処理について説明する。
MIPMAP処理では、(R,G,B)データS17から2次元上の所望の位置の画素の(R,G,B)データを算出する4点近傍補間処理と、縮小率LOD(Level Of Detail) のレベルを補間するレベル補間処理とが行われる。
SRAM17およびテクスチャバッファ20には、例えば、図9に示すように、MIPMAPに基づいた複数の縮小率に対応したテクスチャデータ、すなわち、縮小率LODが1.0のレベルのテクスチャデータ100と、縮小率LODが2.0のレベルのテクスチャデータ101と、縮小率LODが3.0のレベルのテクスチャデータ102とが記憶されている。
そして、何れの縮小率LODのテクスチャデータを用いるかは、所定のアルゴリズムを用いて前記ポリゴン単位で算出された縮小率LODを用いて決定される。
なお、テクスチャデータ100,101,102は、既にフィルタリング処理が施され、イメージの縮小などに伴う情報欠落に起因するエイリアシングの影響が抑制された表示パターンを示すデータである。
【0087】
以下、テクスチャエンジン回路12で行われるMIPMAP処理の4点近傍補間処理について説明する。
当該4点近傍補間処理では、テクスチャデータを割り当てる画素の座標から、当該座標の4近傍の点の(R,G,B)データを求める。
例えば、縮小率LODが1.0の場合には、SRAM17あるいはテクスチャバッファ20からテクスチャエンジン回路12に、図9に示すテクスチャデータ100の(R,G,B)データS17が読み出される。
そして、図9に示す位置pixel0の(R,G,B)データである4点近傍補間データCpixel0を、当該位置pixel0の4近傍点A0,B0,C0,D0の(R,G,B)データCA0,CB0,CC0,CD0を用いて、下記式(11)〜(13)に基づいて求める。
このとき、(R,G,B)データCA0,CB0,CC0,CD0は、テクスチャデータ100の(R,G,B)データS17から得られる。
なお、下記式(11)〜(13)において、a,bは、それぞれ位置pixel0のu座標,v座標の小数部を示している。
【0088】
【数11】
CAB0 =CB0×a+CA0×(1−a) …(11)
【0089】
【数12】
CCD0 =CD0×a+CC0×(1−a) …(12)
【0090】
【数13】
Cpixel0=CCD0 ×b+CAB0 ×(1−b) …(13)
【0091】
次に、縮小率のレベル補間処理について説明する。
ここでは、tri−linearと呼ばれるレベル補間処理を例示して説明する。
例えば、縮小率LODが1.5である場合には、テクスチャエンジン回路12は、上述したように、縮小率LODが1.0のテクスチャデータ100を用いて位置pixel0の4点近傍補間データCpixel0を算出すると共に、縮小率LODが2.0のテクスチャデータ101を用いて、テクスチャデータ100上の位置pixel0に対応したテクスチャデータ101上の位置pixel1の4点近傍補間データCpixel1を算出する。次に、4点近傍補間データCpixel0とCpixel1とを線形補間して、縮小率LODが1.5のレベル補間データCpixel を算出する。
【0092】
すなわち、前述した4点近傍補間データCpixel0の算出処理に続いて、SRAM17あるいはテクスチャバッファ20からテクスチャエンジン回路12に、図9に示すテクスチャデータ101の(R,G,B)データS17が読み出される。
そして、テクスチャエンジン回路12は、図9における位置pixel1の(R,G,B)データである4点近傍補間データCpixel1を、当該位置pixel1の4近傍点A1,B1,C1,D1の(R,G,B)データCA1,CB1,CC1,CD1を用いて、下記式(14)〜(16)に基づいて求める。
このとき、(R,G,B)データCA1,CB1,CC1,CD1は、テクスチャデータ101の(R,G,B)データS17から得られる。
なお、下記式(14)〜(16)において、c,dは、それぞれ位置pixel1のu,v座標の小数部を示している。
【0093】
【数14】
CAB1 =CB1×c+CA1×(1−c) …(14)
【0094】
【数15】
CCD1 =CD1×c+CC1×(1−c) …(15)
【0095】
【数16】
Cpixel1=CCD1 ×d+CAB1 ×(1−d) …(16)
【0096】
次に、テクスチャエンジン回路12は、下記式(17)を用いて、テクスチャデータ100と101との間のレベル補間を行い、レベル補間後の対応する位置(画素)の(R,G,B)データであるレベル補間データCpixel を求める。なお、下記式(17)において、ミップマップ係数COEmipmapは縮小率LODの小数部0.5を示している。
【0097】
【数17】
Cpixel =Cpixel1×COEmipmap+Cpixel0×(1−COEmipmap)
…(17)
【0098】
次に、テクスチャエンジン回路12で行われるテクスチャファンクション処理について説明する。
テクスチャエンジン回路12で行われるテクスチャファンクション処理には、例えば、モジュレート(Modulate)処理、デカル(Decal) 処理、ハイライト(Highlight) 処理、フォギング(Fogging) 処理、アルファブレンディング (α Blending)処理などがある。
ここで、モジュレート処理は、テクスチャデータが示す色でフラグメントデータが示す色の変調を行う処理である。
なお、本実施形態では、フラグメントデータは、トライアングルDDA回路11から入力したDDAデータS11に含まれる(R,G,B)データである。
デカル処理は、テクスチャデータが示す色でフラグメントデータが示す色を置き換える処理である。
ハイライト処理は、ハイライト効果を出すために乗算結果に加算データHiを加算する処理である。
フォギング処理は、遠くの物体をぼかす効果を出す処理である。
アルファブレンディング処理は、ソースデータが示す色とディスティネーションデータが示す色とを所定の混合比で混合する処理である。
ここで、ソースデータが示す色は図8に示すディスプレイバッファ21に記憶されているデータが示す色であり、ディスティネーションデータが示す色はディスプレイバッファ21に描画しようとするデータが示す色である。
【0099】
これらのテクスチャファンクション処理は、テクスチャデータをCtex 、フラグメントデータをCflag、ハイライト処理の加算データをHiとし、モジュレート処理後のデータをCmod 、デカル処理後のデータをCdcl 、ハイライト処理後のデータをChgh とすると、下記式(18)〜(20)のように表せる。
なお、式(20)において、Hiは、ハイライト用の加算データを示している。
【0100】
【数18】
Cmod =Ctex ×Cflag …(18)
【0101】
【数19】
Cdcl =Ctex …(19)
【0102】
【数20】
Chgh =Ctex ×Cflag+Hi …(20)
【0103】
また、フォギング処理およびアルファブレンディング処理は、フラグメントデータをCflag、フォグデータをCfog 、フォグ係数データをCOEfog 、ソース(カラー)データCsrc 、デスティネーション(カラー)データをCdst 、ブレンディング係数をCOEblend とし、フォギング処理後のデータをCfogged、ブレンディング処理後のデータをCblend とすると、以下式(21),(22)で示される。
【0104】
【数21】
Cfogged=Cflag×COEfog +Cfog ×(1−COEfog )
…(21)
【0105】
【数22】
Cblend =Csrc ×COEblend +Cdst ×(1−COEblend )
…(22)
【0106】
上述したように、式(9),(10)で示されるマルチテクスチャ処理、並びに式(17)〜(22)で示されるMIPMAP処理のレベル補間処理とテクスチャファンクション処理は、データA,B,COE、CおよびDを用いた下記式(23)で表現できる。
本実施形態では、このことを利用して、後述するように、LIP回路61をマルチテクスチャ処理、レベル補間処理およびテクスチャファンクション処理で共用する。
【0107】
【数23】
D=A×COE+B(1−COE) …(23)
【0108】
図10は、テクスチャエンジン回路12の部分回路図である。
図10に示すように、テクスチャエンジン回路12は、例えば、縮小率演算回路50、読み出し回路51、LIP(Linear Inter Polator)回路52,53,54、LIP/テクスチャファンクション回路55を有する。
テクスチャエンジン回路12内の各構成要素は、図8に示すクロック信号発生回路18からのクロック信号S18に基づいて動作する。
テクスチャエンジン回路12は、図10に示す構成を用いて、マルチテクスチャ処理、MIPMAP処理、モジュレート処理、デカル処理、ハイライト処理、フォギング処理、アルファブレンディング処理などの一部あるいは全てを行う。
【0109】
縮小率演算回路50は、DDAセットアップ回路10で生成した変分データS10と、トライアングルDDA回路11から入力したDDAデータS11に含まれる(s,t,q)データを用いて例えばポリゴン単位で縮小率(変数)LODを演算し、縮小率(変数)LODを読み出し回路51に出力する。
【0110】
読み出し回路51は、DDAデータS11に含まれる(s,t,q)データと、縮小率LODと、所定のテクスチャサイズUSIZEおよびVSIZEとに基づいて算出したアドレス(u,v)を用いて、SRAM17あるいはテクスチャバッファ20内のアドレスから(R,G,B)データを読み出し、これをテクスチャデータとしてLIP回路52,53に出力する。
このとき、読み出し回路51は、縮小率演算回路50から入力した縮小率LODの小数部が0でない場合には、縮小率LODの前後の整数部に対応する縮小率を持つ2個のテクスチャデータをそれぞれクロック信号S18の1クロックサイクルで順に読み出してLIP回路52,53に出力する。
また、読み出し回路51は、マルチテクスチャ処理の場合には、変数LODの整数部を2つの連番のテクスチャデータを選択するのみに用い、変数LODの少数部を当該2つのテクスチャデータの混合比率(COETA-TB )として用いる。
【0111】
LIP回路52は、演算対象となっている画素について、前述した式(11)に相当する4点近傍補間処理の演算を1クロックサイクル内に行って補間データS52を生成し、補間データS52をLIP回路54に出力する。
続いて、LIP回路52は、演算対象となっている画素について、前述した式(14)に相当する4点近傍補間処理の演算を1クロックサイクル内に行って補間データS52を生成し、補間データS52をLIP回路54に出力する。
【0112】
LIP回路53は、演算対象となっている画素について、前述した式(12)に相当する4点近傍補間処理の演算を1クロックサイクル内に行って補間データS53を生成し、補間データS53をLIP回路54に出力する。
続いて、LIP回路53は、演算対象となっている画素について、前述した式(15)に相当する4点近傍補間処理の演算を1クロックサイクル内に行って補間データS53を生成し、補間データS53をLIP回路54に出力する。
LIP回路53の演算は、LIP回路52の演算と並行して行われる。
【0113】
LIP回路54は、LIP回路52および53からの補間データS52,S53を用いて、前述した式(13)に相当する4点近傍補間処理の演算を1クロックサイクル内に行って4点近傍補間データCpixel0を生成し、4点近傍補間データCpixel0をLIP/テクスチャファンクション回路55に出力する。
このとき、LIP回路54は、縮小率LODの小数部が0でない場合には、補間データS52,S53を用いて、レベル補間処理に用いる4点近傍補間データCpixel0と4点近傍補間データCpixel1とを順に生成する。
例えば、縮小率LODが前述したように1.5である場合には、LIP回路54は、上記式(13)に基づいて4点近傍補間データCpixel0を1クロックサイクルで生成した後に、上記式(16)に基づいて4点近傍補間データCpixel1を1クロックサイクルで生成する。
なお、LIP回路52,53,54の構成および処理は、後述するLIP回路61の構成および処理と基本的に同じである。
【0114】
図11は、LIP/テクスチャファンクション回路55の構成図である。
LIP/テクスチャファンクション回路55は、LIP回路54からの4点近傍補間データCpixel0(必要に応じて4点近傍補間データCpixel1)を用いて、マルチテクスチャ処理、MIPMAP処理のレベル補間処理と、モジュレート処理、デカル処理、ハイライト処理、フォギング処理およびアルファブレンディング処理などのテクスチャファンクション処理の一部あるいは全てを行う。
具体的には、LIP/テクスチャファンクション回路55は、例えば、マルチテクスチャ処理が指定された場合には、例えば、4点近傍補間データCpixel0,Cpixel1と、(R,G,B)データS11a(フラグメントカラー値Cflag)と、混合比率COETA-TB ,COETA-TB-S とを用いて、マルチテクスチャ処理を行う。
また、LIP/テクスチャファンクション回路55は、MIPMAP処理が指定され、しかも縮小率LODの小数部が0である場合には、LIP回路54から入力した4点近傍補間データCpixel0を用いて、テクスチャファンクション処理のうち必要な処理を行う。
また、LIP/テクスチャファンクション回路55は、MIPMAP処理が指定され、しかも縮小率の小数部が0でない場合には、LIP回路54から入力した4点近傍補間データCpixel0,Cpixel1を用いてレベル補間処理を行った後に、テクスチャファンクション処理のうち必要な処理を行う。
【0115】
LIP/テクスチャファンクション回路55は、図11に示すように、前処理回路60、LIP回路61およびレジスタ62を有する。
前処理回路60は、図11に示すように、モードコントローラ70、レジスタ74、マルチプレクサ75〜78およびレジスタ85〜88を有する。
モードコントローラ70は、図11に示すように、デコーダ71、カウンタ72およびデコーダ73を有する。
【0116】
デコーダ71は、カウンタ72のカウント値を監視し、カウンタ72のカウント値が「0」になったタイミングで、LIP回路61を共用する処理の数に応じた初期値「0」,「1」または「2」をセットする。
例えば、デコーダ71は、LIP回路61で一つの処理のみを行う場合には初期値「0」をカウンタ72にセットし、2個の処理でLIP回路61を共用する場合には初期値「1」をセットし、3個の処理でLIP回路61を共用する場合にはカウント値「2」をセットする。
なお、本実施形態では、カウンタ72にセットする初期値として「0」,「1」および「2」を用いる場合を例示するが、当該初期値の値は、LIP回路61を共用する処理の数に応じて任意に設定可能である。
デコーダ71は、例えば図8に示すメインプロセッサ4あるいはテクスチャエンジン回路12内の図示しない主コントローラからファンクションモードデータFMDを入力する。
ファンクションモードデータFMDは、各クロックサイクル毎に、例えば図12に示すモード「0」〜「9」を指定し、後述するように、各モードに応じたデータをLIP回路61に入力するための制御に用いられる。すなわち、ファンクションモードデータFMDに基づいて、LIP回路61が行う処理の内容が決定される。図12の内容について、後に詳細に説明する。
デコーダ71は、例えば、ファンクションモードデータFMDに基づいて、LIP回路61において1個のモードの処理が終了する度に、カウンタ72のカウント値を1だけ減少させる。
【0117】
デコーダ73は、図8に示すメインプロセッサ4あるいはテクスチャエンジン回路12内の図示しない主コントローラからファンクションモードデータFMDおよびフォグイネーブルデータFEDを入力する。
また、デコーダ73は、LIP回路54あるいは読み出し回路51からミップマップ番号データMNDを入力する。
【0118】
ファンクションモードデータFMDは、前述したように、各クロックサイクル毎に、例えば図12に示すモード「0」〜「9」を指定し、後述するように、各モードに応じたデータをLIP回路61に入力するための制御に用いられる。
図12に示す例では、LIP回路61において、マルチテクスチャ処理、MIPMAP処理のレベル補間処理、モジュレート処理、ハイライト処理、デカル処理およびフォギング処理を行う場合を例示している。
この場合に、図12に示すように、例えば、モジュール処理およびハイライト処理は、当該処理のみが行われるか、あるいは、MIPMAP処理のレベル補間処理に続いて行われるかによって異なるモードが付されている。また、フォギング処理も、当該処理のみが行われるか、あるいは、モジュレート処理に続いて行われるかによって異なるモードが付されている。これは、図11に示すLIP回路61の処理結果をフィードバックしてレジスタ88に書き込むか否かをデコーダ73において決定する必要があるためである。
なお、図12に示すモードは一例であり、その他にも種々のモードを指定することが可能である。
【0119】
また、フォグイネーブルデータFEDは、例えば、フォギング処理を行う場合には論理値「1」を示し、フォギング処理を行わない場合には論理値「0」を示している。
【0120】
また、ミップマップ番号データMNDは、LIP回路61においてレベル補間処理を行わない場合(縮小率LODの小数部が0である場合)の4点近傍補間データCpixel0を入力するタイミングと、レベル補間処理を行う場合の4点近傍補間データCpixel1を入力するタイミングとで論理値「1」を示す。
また、ミップマップ番号データMNDは、レベル補間処理を行う場合の4点近傍補間データCpixel0を入力するタイミングで論理値「0」を示す。
ミップマップ番号データMNDは、後述するように、デコーダ73によるマルチプレクサ77,78の制御に用いられる。
【0121】
デコーダ73は、ファンクションモードデータFMD、ミップマップ番号データMNDおよびフォグイネーブルデータFEDに基づいて、ファンクションモードデータFMDが指定した処理をLIP回路61が行うのに必要なデータをLIP回路61に供給するように、マルチプレクサ75〜78を制御する。
【0122】
具体的には、デコーダ73は、ファンクションモードデータFMDが「0」を示しており、マルチテクスチャ処理の第1の混合処理を行う場合に、レジスタ74に記憶された4点近傍補間データCpixel0と、LIP回路54から入力した4点近傍補間データCpixel1と、読み出し回路51において生成された混合比率COETA-TB とが、それぞれ同じタイミングでレジスタ88,87,86に出力されるように、マルチプレクサ78,77,76を制御する。これにより、LIP回路61において、上記式(9)に基づいた第1の混合処理が行われ、画像データCTA-TB が生成される。
また、デコーダ73は、ファンクションモードデータFMDが「1」を示しており、マルチテクスチャ処理の第2の混合処理を行う場合に、LIP回路61からフィードバックされた画像データCTA-TB と、トライアングルDDA回路11から入力したフラグメントデータCflagと、読み出し回路51において生成された混合比率COETA-TB-S とが、それぞれ同じタイミングでレジスタ88,87,86に出力されるように、マルチプレクサ78,77,76を制御する。これにより、LIP回路61において、上記式(10)に基づいた第2の混合処理が行われ、画像データCTA-TB-S が生成される。
【0123】
図13は、LIP回路54から図11に示す前処理回路60への4点近傍補間データCpixel0,Cpixel1の入力タイミングと、LIP/テクスチャファンクション回路55におけるマルチテクスチャ処理の実行タイミングとを説明するためのタイミングチャートである。
図13において、同一の(a),(b),(c)が付されたデータは、同じレベル補間処理に係わるデータを示している。
【0124】
例えば、図13(A)に示すクロック信号S18に基づいて、図13(B)に示すタイミングで、LIP回路54からLIP/テクスチャファンクション回路55に入力されたマルチテクスチャ処理の対象となる4点近傍補間データCpixel0がレジスタ74に記憶される。
そして、次のクロックサイクルで、レジスタ74から読み出された4点近傍補間データCpixel0と、LIP回路54から入力した4点近傍補間データCpixel1とがマルチプレクサ78,77およびレジスタ88,87をそれぞれ介して、LIP回路61のINA ,INB 端子に入力される。また、当該クロックサイクルで、混合比率COETA-TB が、マルチプレクサ76およびレジスタ86を介して、LIP回路61のINcoeff 端子に入力される。そして、LIP回路61において、第1の混合処理が行われ、画像データCTA-TB が生成される。当該画像データCTA-TB は、マルチプレクサ78にフィードバックされる。
【0125】
そして、次のクロックサイクルで、上記フィードバックされた画像データCTA-TB と、トライアングルDDA回路11から入力したフラグメントデータCflagと、混合比率COETA-TB-S が、マルチプレクサ78,77,76およびレジスタ88,87,86を介して、LIP回路61のINA,INB ,INcoeff 端子に入力される。そして、LIP回路61において、第2の混合処理が行われ、画像データCTA-TB-S が生成される。当該画像データCTA-TB-S は、レジスタ62を介して、画像データS12としてメモリI/F回路13に出力される。
【0126】
また、デコーダ73は、MIPMAP処理を行う場合に、以下の処理を行う。
すなわち、デコーダ73は、ミップマップ番号データMNDが論理値「0」を示す間は、LIP回路54から入力した4点近傍補間データCpixel0をレジスタ87に出力しないように、マルチプレクサ77を制御する。このとき、4点近傍補間データCpixel0は、レジスタ74に書き込まれる。
また、デコーダ73は、ファンクションモードデータFMDが図12に示す「2」を示しており、LIP回路61がMIPMAP処理のレベル補間処理を行う場合には、ミップマップ番号データMNDが論理値「1」を示す間に、レジスタ74から読み出した4点近傍補間データCpixel0をレジスタ88に出力し、LIP回路54から入力した4点近傍補間データCpixel1をレジスタ87に出力するように、マルチプレクサ78,77を制御する。
また、デコーダ73は、ファンクションモードデータFMDが図12に示す「3」を示し、ミップマップ番号データMNDが論理値「1」を示す間に、図10に示す縮小率演算回路50から入力したミップマップ係数COEmipmapを、レジスタ86に出力するように、マルチプレクサ76を制御する。それと同時に、デコーダ73は、論理値「0」をレジスタ85に出力するように、マルチプレクサ75を制御する。
これにより、4点近傍補間データCpixel0,Cpixel1およびミップマップ係数COEmipmapが、それぞれレジスタ88,87,86に同時に書き込まれ、LIP回路61において、4点近傍補間データCpixel0,Cpixel1を用いたレベル補間処理が行われる。
【0127】
図14は、LIP回路54から図11に示す前処理回路60への4点近傍補間データCpixel0,Cpixel1の入力タイミングと、LIP/テクスチャファンクション回路55におけるレベル補間処理の実行タイミングとを説明するためのタイミングチャートである。
図14において、同一の(a),(b),(c)が付されたデータは、同じレベル補間処理に係わるデータを示している。
【0128】
例えば、図14(A)に示すクロック信号S18に基づいて、図14(B)に示すタイミングで、LIP回路54からLIP/テクスチャファンクション回路55に入力されたレベル補間の対象となる4点近傍補間データCpixel0がレジスタ74に記憶される。
そして、次のクロックサイクルで、レジスタ74から読み出された4点近傍補間データCpixel0が、マルチプレクサ78およびレジスタ88を介して、LIP回路61のINA 端子に出力されると共に、LIP回路54から入力した4点近傍補間データCpixel1が、マルチプレクサ77およびレジスタ87を介して、LIP回路61のINB 端子に出力される。
そして、次のクロックサイクルで、図14(C)に示すように、LIP回路61において、ミップマップデータCpixel0,Cpixel1を用いたレベル補間処理が行われる。
図14(C)から分かるように、LIP回路52,53,54を用いて行われるMIPMAP処理の4点近傍補間処理のスループットは2クロックサイクルであるのに対して、LIP回路61ではMIPMAP処理のレベル補間処理が1クロックサイクルで行われる。従って、LIP回路61において、レベル補間処理のみを行う場合には、LIP回路61に処理を行わない空き時間が生じる。当該実施形態では、後述するように、当該空き時間を利用して、LIP回路61にテクスチャファンクション処理を行わせる。すなわち、MIPMAP処理の4点近傍補間処理と、テクスチャファンクション処理とをインターリーブする。
【0129】
また、デコーダ73は、ファンクションモードデータFMDが図12に示す「3」を示しており、LIP回路61がモジュレート処理のみを行う場合には、対応する1クロックサイクルの間、LIP回路54から入力した4点近傍補間データCpixel0をレジスタ74を介してレジスタ88に出力し、トライアングルDDA回路11から入力したDDAデータS11に含まれる(R,G,B)データS11a(フラグメントデータCflag)をレジスタ86に出力するように、マルチプレクサ78,76を制御する。
また、同時に、デコーダ73は、レジスタ87に論理値「0」を出力し、レジスタ85に論理値「0」を出力するように、マルチプレクサ77,75を制御する。
【0130】
また、デコーダ73は、ファンクションモードデータFMDが図12に示す「4」を示しており、LIP回路61がMIPMAP処理のレベル補間処理に続いてモジュレート処理を行う場合には、対応する1クロックサイクルの間、LIP回路61のOUT端子からフィードバックされたレベル補間データをレジスタ88に出力し、フラグメントデータCflagをレジスタ86に出力するように、マルチプレクサ78,76を制御する。
また、同時に、デコーダ73は、レジスタ87に論理値「0」を出力し、レジスタ85に論理値「0」を出力するように、マルチプレクサ77,75を制御する。
【0131】
また、デコーダ73は、ファンクションモードデータFMDが図12に示す「5」を示しており、LIP回路61がハイライト処理のみを行う場合には、対応する1クロックサイクルの間、LIP回路54から入力した4点近傍補間データCpixel0をレジスタ78を介してレジスタ88に出力し、トライアングルDDA回路11から入力したDDAデータS11に含まれる(R,G,B)データS11a(フラグメントデータCflag)をレジスタ86に出力するように、マルチプレクサ78,76を制御する。
また、同時に、デコーダ73は、レジスタ87に論理値「0」を出力し、メインプロセッサ4あるいはテクスチャエンジン回路12内の図示しない主コントローラから入力したハイライト演算の加算データHiをレジスタ85に出力するように、マルチプレクサ77,75を制御する。
【0132】
また、デコーダ73は、ファンクションモードデータFMDが図12に示す「6」を示しており、LIP回路61がMIPMAP処理のレベル補間処理に続いてハイライト処理を行う場合には、対応する1クロックサイクルの間、LIP回路61のOUT端子からフィードバックされたレベル補間データをレジスタ88に出力し、フラグメントデータCflagをレジスタ86に出力するように、マルチプレクサ78,76を制御する。
また、同時に、デコーダ73は、レジスタ87に論理値「0」を出力し、メインプロセッサ4あるいはテクスチャエンジン回路12内の図示しない主コントローラから入力したハイライト演算の加算データHiをレジスタ85に出力するように、マルチプレクサ77,75を制御する。
【0133】
また、デコーダ73は、ファンクションモードデータFMDが図12に示す「7」を示しており、LIP回路61がデカル処理のみを行う場合には、対応する1クロックサイクルの間、LIP回路54から入力した4点近傍補間データCpixel0をレジスタ78を介してレジスタ88に出力し、論理値「0xff」をレジスタ86に出力するように、マルチプレクサ78,76を制御する。
また、同時に、デコーダ73は、レジスタ87に論理値「0」を出力し、レジスタ85に論理値「0」を出力するように、マルチプレクサ77,75を制御する。
【0134】
また、デコーダ73は、ファンクションモードデータFMDが図12に示す「8」を示しており、LIP回路61がフォギング処理のみを行う場合には、対応する1クロックサイクルの間、トライアングルDDA回路11から入力したDDAデータS11に含まれる(R,G,B)データS11a(フラグメントデータCflag)をレジスタ74を介してレジスタ88に出力し、例えば図示しないフォグレジスタに設定されたフォグデータCfog をレジスタ87に出力するように、マルチプレクサ78,77を制御する。
また、同時に、デコーダ73は、トライアングルDDA回路11から入力したDDAデータS11に含まれるフォギング係数COEfog をレジスタ86に出力するように、マルチプレクサ76を制御する。
また、同時に、デコーダ73は、論理値「0」をレジスタ85に出力するように、マルチプレクサ75を制御する。
【0135】
また、デコーダ73は、ファンクションモードデータFMDが図12に示す「9」を示しており、LIP回路61がモジュレート処理に続いてフォギング処理を行う場合には、対応する1クロックサイクルの間、LIP回路61のOUT端子からフィードバックされたレベル補間データをレジスタ88に出力し、図示しないフォグレジスタから読み出したフォグデータCfog をレジスタ87に出力するように、マルチプレクサ78,77を制御する。
また、同時に、デコーダ73は、トライアングルDDA回路11から入力したDDAデータS11に含まれるフォギング係数COEfog をレジスタ86に出力するように、マルチプレクサ76を制御する。
また、同時に、デコーダ73は、論理値「0」をレジスタ85に出力するように、マルチプレクサ75を制御する。
【0136】
また、デコーダ73は、MIPMAP処理のレベル補間処理と、2以上のテクスチャファンクション処理とでLIP回路61を共用する場合、すなわち合計3以上の処理でLIP回路61を共用する場合には、共用する処理の数に応じたクロックサイクルの間、例えば図10に示す読み出し回路51および図11に示すトライアングルDDA回路11にウェイト(待ち)指示を出力する。
例えば、レベル補間処理と、2個のテクスチャファンクション処理とでLIP回路61を共用する場合には、LIP回路61が2番目のテクスチャファンクション処理を行う1クロックサイクルの間、ウェイト指示を読み出し回路51およびトライアングルDDA回路11に出力する。
【0137】
LIP回路61は、前記式(23)の演算を行う場合に、それぞれ8ビットのデータA,B,COEおよびCを、INA 端子、INB 端子、INcoeff 端子およびINC 端子からそれぞれ入力し、8ビットのデータDをOUT端子から出力する。
【0138】
LIP回路61は、図15に示すように、補正データF、データCOEの対応するビットの論理値に基づいてデータAまたはBを選択した部分積out_0〜out_7、および、積和演算項であるデータCを、シフトさせて加算することで、前記式(23)に示す演算を行う。
【0139】
補正データFは、データCOE=0xFF(COE=1.0)の場合には、データAを、それ以外の場合にはデータBを選択した値を持つ。
補正データFは、8ビットのうち全ビットが論理値「1」の場合に、「1」と見るシステムにおいて、例えば、下記式(24)に示す演算を、下記式(25)となるように補正するために用いられる。すなわち、「X×1.0=X」となるように補正を行う。
【0140】
【数24】
0xFF×0xFF=0xFE …(24)
【0141】
【数25】
0xFF×0xFF=0xFF …(25)
【0142】
部分積out_0〜out_7は、それぞれデータCOEのビット0〜7が、論理値「1」であればデータAを示し、論理値「0」であればデータBを示している。
ここで、データCOEのLSBをビット0とし、MSBをビット7とする。
部分積out_n(0≦n≦7)は、例えば、図16に示すように、8個のマルチプレクサ800 〜807 を用いて生成される。
具体的には、0≦m≦7とした場合に、マルチプレクサ80m に、データAのビットmのビットデータA〔m〕と、データBのビットmのビットデータB〔m〕と、データCOEのnのビットデータCOE〔n〕とを入力し、ビットデータCOE〔n〕が論理値「1」であればビットデータA〔m〕を選択して、ビットデータout_n〔m〕として出力する。
なお、ビットデータout_n〔0〕〜out_n〔7〕によって、部分積out_nが構成される。
【0143】
部分積out_nは、MSBに向けて、nビットだけシフトされた後に、wallace_tree型のアーキテクチャを採用した加算回路81に出力される。
また、積和演算項であるデータCは、8ビット×8ビットの乗算結果の上位8ビットに加算されるように、図15に示すように、MSBに向けて8ビットシフトされた後に加算回路81に出力される。
【0144】
加算回路81は5wallace_tree型のアーキテクチャを採用しており、入力を3個づつ集めて和と桁上げの2個の出力に絞り込み、最終的に加算回路82において2入力加算器を用いて加算を行うことを可能にする。
これにより、補正データFおよび積和演算項Cによる部分積が追加されても、回路規模は殆ど増加せず、加算速度も殆ど落とさずにすむ。
【0145】
図17は、wallace_tree型のアーキテクチャを採用した加算回路8の部分構成図である。
図17では、図15に示す矢印92,93,94に示される図中縦方向のビットデータの加算を行う構成のみを示し、それ以外の加算を行う部分は省略してある。
図15に示す矢印91に示される図中縦方向のビットデータの加算は、加算回路82において行われる。
図17に示すように、加算回路81は、加算器1000 〜1006 を有する。
加算器1000 は、矢印92の加算を行い、補正データFのビット1と、部分積out_0のビット1と、部分積out_1のビット0との加算を行い、和Sumを加算回路82に出力し、桁上げCarryを加算器1001 に出力する。
【0146】
加算器1001 ,1002 ,1003 は、矢印93の部分の加算を行う。
加算器1001 は、補正データFのビット2と、部分積out_0のビット2との加算を行い、和Sumを加算器1003 に出力し、桁上げCarryを加算器1004 に出力する。
加算器1002 は、部分積out_1のビット1と、部分積out_2のビット0との加算を行い、和Sumを加算器1003 に出力し、桁上げCarryを加算器1005 に出力する。
加算器1003 は、加算器1001 からの桁上げCarryと、加算器1002 からの桁上げCarryとを加算し、和Sumおよび桁上げCarryを加算回路82に出力する。
【0147】
加算器1004 ,1005 ,1006 は、矢印94の部分の加算を行う。
加算器1004 は、補正データFのビット3と、部分積out_0のビット3との加算を行い、和Sumを加算器1006 に出力し、桁上げCarryを後段の加算器に出力する。
加算器1005 は、部分積out_1のビット2と、部分積out_2のビット1との加算を行い、和Sumを加算器1006 に出力し、桁上げCarryを後段の加算器に出力する。
加算器1006 は、加算器1004 からの桁上げCarryと、加算器1005 からの桁上げCarryとを加算し、和Sumおよび桁上げCarryを加算回路82に出力する。
【0148】
加算回路82は、補正データFのビット0および部分積out_0のビット0、加算回路81から入力した和Sumおよび桁上げCarryを、複数の2入力の加算器を用いて加算して、上記式(23)の演算結果である16ビットのデータを算出し、当該16ビットのデータのうち上位8ビットをデータDとして出力する。
LIP回路61は、例えば、図11に示すカウンタ72がカウント値「0」を示す場合には、当該算出したデータDを図11に示すOUT端子からレジスタ62に出力し、それ以外の場合には、当該算出したデータDを図11に示すマルチプレクサ78にフィードバックする。
【0149】
以下、図11に示すLIP/テクスチャファンクション回路55の動作形態について説明する。
第1の動作形態
本動作形態では、LIP/テクスチャファンクション回路55においてマルチテクスチャ処理を行う場合を説明する。
【0150】
例えば、クロック信号S18に基づいて、第1のクロックサイクルで、LIP回路54からLIP/テクスチャファンクション回路55に入力されたマルチテクスチャ処理の対象となる4点近傍補間データCpixel0がレジスタ74に記憶される。
次に、第1のクロックサイクルに続く第2のクロックサイクルで、レジスタ74から読み出された4点近傍補間データCpixel0と、LIP回路54から入力した4点近傍補間データCpixel1とがマルチプレクサ78,77およびレジスタ88,87をそれぞれ介して、LIP回路61のINA ,INB 端子に入力される。また、当該クロックサイクルで、混合比率COETA-TB が、マルチプレクサ76およびレジスタ86を介して、LIP回路61のINcoeff 端子に入力される。そして、LIP回路61において、第1の混合処理が行われ、画像データCTA-TB が生成される。当該画像データCTA-TB は、マルチプレクサ78にフィードバックされる。
【0151】
次に、第2のクロックサイクルに続く第3のクロックサイクルで、上記フィードバックされた画像データCTA-TB と、トライアングルDDA回路11から入力したフラグメントデータCflagと、混合比率COETA-TB-S とが、マルチプレクサ78,77,76およびレジスタ88,87,86をそれぞれ介して、LIP回路61のINA,INB ,INcoeff 端子に入力される。そして、LIP回路61において、第2の混合処理が行われ、画像データCTA-TB-S が生成される。当該画像データCTA-TB-S は、レジスタ62を介して、画像データS12としてメモリI/F回路13に出力される。
【0152】
第2の動作形態
本動作形態では、MIPMAP処理のレベル補間処理と、モジュレート処理とでLIP回路61を共用する場合を説明する。
この場合には、図8に示すメインプロセッサ4あるいはテクスチャエンジン回路12内の図示しない主コントローラから図11に示すデコーダ71,73に、1クロックサイクル毎に、モード「2」および「4」を交互に示すファンクションモードデータFMDが出力される。
また、デコーダ71は、カウンタ72のカウント値の初期値として「1」を設定し、カウンタ72のカウント値が「0」になる度に、カウンタ72に「1」を設定する。
【0153】
具体的には、例えば、第1のクロックサイクルで、図10に示すLIP回路54からの4点近傍補間データCpixel0がレジスタ74に書き込まれる。
また、カウンタ72のカウント値に「1」がセットされる。
【0154】
次に、第1のクロックサイクルに続く第2のクロックサイクルで、ファンクションモードデータFMDがモード「2」を示し、4点近傍補間データCpixel0がレジスタ74から読み出されて、マルチプレクサ78およびレジスタ88を介してLIP回路61のINA 端子に出力される。それと同時に、図10に示すLIP回路54からの4点近傍補間データCpixel1が、マルチプレクサ77およびレジスタ87を介してLIP回路61のINB 端子に出力される。
それと同時に、図10に示す縮小率演算回路50からのデータCOEmipmapが、マルチプレクサ76およびレジスタ86を介してLIP回路61のINcoeffに出力される。
そして、LIP回路54において、上記式(17)に示す演算が行われ、レベル補間データCpixel が算出される。
そして、カウンタ72がカウント値が「1」であるため、レベル補間データCpixel がマルチプレクサ78にフィードバックされる。
そして、カウンタ72のカウント値が減少して「0」になる。
【0155】
次に、第3のクロックサイクルで、ファンクションモードデータFMDがモード「4」を示し、図10に示すLIP回路54からの次の画素に係わる4点近傍補間データがレジスタ74に書き込まれる。
それと同時に、第2のクロックサイクルで算出されたレベル補間データCpixel (=式(18)のCtex に対応)がマルチプレクサ78およびレジスタ88を介してLIP回路61のINA 端子に出力される。
それと同時に、トライアングルDDA回路11からのDDAデータS11に含まれる(R,G,B)データS11a(フラグメントカラー値Cflag)が、マルチプレクサ76およびレジスタ86を介してLIP回路61のINcoeff に出力される。
そして、LIP回路54において、上記式(18)に示す演算が行われ、モジュレート処理後のカラー値Cmod が算出される。
そして、カウンタ72のカウント値が「0」であるため、LIP回路61のOUT端子からレジスタ62にカラー値Cmod が出力される。
カラー値Cmod は、レジスタ62から読み出されて画素データS12として後段のメモリI/F回路13に出力される。
そして、カウンタ72のカウント値に「1」がセットされる。
以後、上述した第2のクロックサイクルの処理と、第3のクロックサイクルの処理とが交互に繰り返される。
【0156】
以上説明したように、本動作形態では、MIPMAP処理のレベル補間処理と、モジュレート処理とでLIP回路61を共用できる。そのため、レベル補間処理用の回路とモジュレート処理用の回路とを直列に接続した場合に比べて回路規模を縮小できる。また、本実施形態では、MIPMAP処理の4点近傍補間処理は1系統で2クロックサイクルかけて行われ、当該処理に係わる回路規模は従来と同じである。
また、本動作例では、LIP回路61において、レベル補間処理を行わない空き時間に、モジュレート処理を行うため、処理時間が長期化することはない。
【0157】
第3の動作形態
本動作形態では、MIPMAP処理のレベル補間処理と、モジュレート処理と、フォギング処理とでLIP回路61を共用する場合を説明する。
この場合には、図8に示すメインプロセッサ4あるいはテクスチャエンジン回路12内の図示しない主コントローラから図11に示すデコーダ71,73に、1クロックサイクル毎に、モード「2」、「4」、「9」を順に繰り返して示すファンクションモードデータFMDが出力される。
また、デコーダ71は、カウンタ72のカウント値の初期値として「2」をセットし、カウンタ72のカウント値が「0」になる度に、カウンタ72に「2」をセットする。
【0158】
具体的には、例えば、第1のクロックサイクルで、図10に示すLIP回路54からの4点近傍補間データCpixel0がレジスタ74に書き込まれる。
そして、カウンタ72のカウント値に「2」がセットされる。
【0159】
次に、第2のクロックサイクルで、ファンクションモードデータFMDがモード「1」を示し、4点近傍補間データCpixel0がレジスタ74から読み出されて、マルチプレクサ78およびレジスタ88を介してLIP回路61のINA 端子に出力される。それと同時に、図10に示すLIP回路54からの4点近傍補間データCpixel1が、マルチプレクサ77およびレジスタ87を介してLIP回路61のINB 端子に出力される。
それと同時に、図10に示す縮小率演算回路50からのデータCOEmipmapが、マルチプレクサ76およびレジスタ86を介してLIP回路61のINcoeffに出力される。
そして、LIP回路54において、上記式(17)に示す演算が行われ、レベル補間データCpixel が算出される。
そして、カウンタ72がカウント値が「2」であるため、レベル補間データCpixel がマルチプレクサ78にフィードバックされる。
そして、カウンタ72のカウント値が減少して「1」になる。
【0160】
次に、第3のクロックサイクルで、ファンクションモードデータFMDがモード「4」を示し、図10に示すLIP回路54からの次の画素に係わる4点近傍補間データCpixel0がレジスタ74に書き込まれる。
それ同時に、第2のクロックサイクルで算出されたレベル補間データCpixel(式(18)のCtex に対応)がマルチプレクサ78およびレジスタ88を介してLIP回路61のINA 端子に出力される。
それと同時に、トライアングルDDA回路11からのDDAデータS11に含まれる(R,G,B)データS11a(フラグメントカラー値Cflag)が、マルチプレクサ76およびレジスタ86を介してLIP回路61のINcoeff に出力される。
そして、LIP回路54において、上記式(18)に示す演算が行われ、モジュレート処理後のカラー値Cmod が算出される。
そして、カラー値Cmod は、カウンタ72がカウント値が「1」であるため、マルチプレクサ78にフィードバックされる。
そして、カウンタ72のカウント値が減少して「0」になる。
また、4点近傍補間データCpixel0の出力を1クロックサイクルだけ待つことを指示するウェイト指示が図10に示す読み出し回路51に出力され、フラグメントデータCflagの出力を1クロックサイクルだけ待つことを指示するウェイト指示が図8に示すトライアングルDDA回路11に出力される。
【0161】
次に、第4のクロックサイクルで、ファンクションモードデータFMDがモード「9」を示し、フォグイネーブルデータFEDが論理値「1」であれば、第3のクロックサイクルで算出されたカラー値Cmod (式(21)のCflagに対応)が、マルチプレクサ78およびレジスタ88を介してLIP回路61のINA 端子に出力される。
それと同時に、例えば、図示しないフォグレジスタから読み出したフォグデータCfog が、マルチプレクサ77およびレジスタ87を介して、LIP回路61のINB 端子に出力される。
それと同時に、例えば、トライアングルDDA回路11からのDDAデータS11に含まれるフォギング係数COEfog が、マルチプレクサ76およびレジスタ86を介して、LIP回路61のINcoeff 端子に出力される。
そして、LIP回路54において、上記式(21)に示す演算が行われ、フォギング処理後のカラー値Cfoggedが算出される。
そして、カウンタ72のカウント値が「0」であるため、LIP回路61のOUT端子からレジスタ62にカラー値Cfoggedが出力される。
カラー値Cfoggedは、レジスタ62から読み出されて画素データS12として後段のメモリI/F回路13に出力される。
以後、上述した第2のクロックサイクルの処理と、第3のクロックサイクルの処理と、第4のクロックサイクルの処理とが交互に繰り返される。
【0162】
以上説明したように、本動作形態では、MIPMAP処理のレベル補間処理と、モジュレート処理と、フォギング処理とでLIP回路61を共用できる。そのため、レベル補間処理用の回路とモジュレート処理用の回路とを直列に接続した場合に比べてゲート数を少なくでき、回路規模を縮小できる。
【0163】
なお、テクスチャエンジン回路12は、フルカラー方式の場合には、SRAM17あるいはテクスチャバッファ20から読み出した(R,G,B)データを直接用いる。一方、テクスチャエンジン回路12は、インデックスカラー方式の場合には、予め作成したカラールックアップテーブル(CLUT)をテクスチャCLUTバッファ23から読み出して、内蔵するSRAMに転送および記憶し、このカラールックアップテーブルを用いて、SRAM17あるいはテクスチャバッファ20から読み出したカラーインデックスに対応する(R,G,B)データを得る。
【0164】
メモリI/F回路13
メモリI/F回路13は、テクスチャエンジン回路12から入力した画素データS12に対応するzデータと、zバッファ22に記憶されているzデータとの比較を行い、入力した画素データS12によって描画される画像が、前回、ディスプレイバッファ21に書き込まれた画像より、手前(視点側)に位置するか否かを判断し、手前に位置する場合には、画像データS12に対応するzデータでzバッファ22に記憶されたzデータを更新する。
【0165】
CRTコントローラ回路14
CRTコントローラ回路14は、与えられた水平および垂直同期信号に同期して、図示しないCRTに表示するアドレスを発生し、ディスプレイバッファ21から表示データを読み出す要求をメモリI/F回路13に出力する。この要求に応じて、メモリI/F回路13は、ディスプレイバッファ21から一定の固まりで表示データを読み出す。CRTコントローラ回路14は、ディスプレイバッファ21から読み出した表示データを記憶するFIFO(First In First Out)回路を内蔵し、一定の時間間隔で、RAMDAC回路15に、RGBのインデックス値を出力する。
【0166】
RAMDAC回路15
RAMDAC回路15は、各インデックス値に対応するR,G,Bデータを記憶しており、CRTコントローラ回路14から入力したRGBのインデックス値に対応するデジタル形式のR,G,Bデータを、D/Aコンバータに転送し、アナログ形式のR,G,Bデータを生成する。RAMDAC回路15は、この生成されたR,G,BデータをCRTに出力する。
【0167】
以上説明したように、3次元コンピュータグラフィックシステム1によれば、テクスチャエンジン回路12において、マルチテクスチャ処理、MIPMAP処理のレベル補間処理と、テクスチャファンクション処理とで図11に示すLIP回路61を共用することで、回路規模を縮小できる。この場合に、レベル補間処理と、1個のテクスチャファンクション処理とでLIP回路61を共用した場合には、処理時間が長期化することはない。
【0168】
また、3次元コンピュータグラフィックシステム1によれば、図10に示すLIP回路52,53,61において、図15に示すように補正データFを用いて演算を行うため、全ビットが論理値「1」の場合に「1」と見なすシステムにおいて、上記式(23)のCOEが「1.0」の場合の演算を、回路規模を殆ど増大させることなく、正確に行うことができる。
すなわち、補正を行わないで適切な結果を得るために、1ビット増やして9ビットを用い、「0x100」を「1」と見なすと、前段のパイプレジスタのゲート数増加を招き、全体的にゲートを増加させることになるが、本実施形態では、ビット数を増やす必要がなく、このような問題は生じない。
【0169】
以下、3次元コンピュータグラフィックシステム1の全体動作について説明する。
ポリゴンレンダリングデータS4が、メインバス6を介してメインプロセッサ4からDDAセットアップ回路10に出力され、DDAセットアップ回路10において、ポリゴンの辺と水平方向の差分などを示す変分データS10が生成される。
この変分データS10は、トライアングルDDA回路11に出力され、トライアングルDDA回路11において、ポリゴン内部の各画素における線形補間された(z,R,G,B,COEblend ,s,t,q,COEfog )データが算出される。そして、この算出された(z,R,G,B,COEblend ,s,t,q,COEfog )データと、ポリゴンの各頂点の(x,y)データとが、DDAデータS11として、トライアングルDDA回路11からテクスチャエンジン回路12に出力される。
【0170】
次に、テクスチャエンジン回路12において、DDAデータS11が示す(s,t,q)データについて、sデータをqデータで除算する演算と、tデータをqデータで除算する演算とが行われる。
そして、除算結果「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEが乗算され、テクスチャ座標データ(u,v)が生成される。
次に、メモリI/F回路13を介して、テクスチャエンジン回路12からSRAM17に、前記生成されたテクスチャ座標データ(u,v)を含む読み出し要求が出力され、メモリI/F回路13を介して、SRAM17に記憶された(R,G,B)データS17が読み出される。
そして、このとき、上述したように、図10および図11に示す構成を用いて、前述したマルチテクスチャ処理、MIPMAP処理およびテクスチャファンクション処理が行われ、画素データS12が生成される。
この画素データS12は、テクスチャエンジン回路12からメモリI/F回路13に出力される。
【0171】
そして、メモリI/F回路13において、テクスチャエンジン回路12から入力した画素データS12に対応するzデータと、zバッファ22に記憶されているzデータとの比較が行なわれ、入力した画素データS12によって描画される画像が、前回、ディスプレイバッファ21に書き込まれた画像より、手前(視点側)に位置するか否かが判断され、手前に位置する場合には、画像データS12がディスプレイバッファ21に書き込まれると共に、対応するzデータでzバッファ22に記憶されたzデータが更新される。
【0172】
本発明は上述した実施形態には限定されない。
例えば、上述した実施形態では、図12に示すモード「0」〜「9」を指定するファンクションモードデータFMDに基づいて、LIP回路61が動作する場合を例示したが、例えば、LIP回路61がアルファブレンディング処理を行うようにしてもよい。
【0173】
また、LIP回路61を共用する処理の内容および数は任意である。例えば、LIP回路61において、テクスチャファンクション処理として、デカル処理やアルファブレンディング処理などを行うようにしてもよい。
また、上述した実施形態では、本発明をテクスチャエンジン回路12に適用した場合を例示したが、本発明は、その他の画像処理装置および信号処理装置にも適用できる。
また、上述した第3実施形態で、テクスチャエンジン回路12として、第2実施形態のテクスチャエンジン回路306に応じた構成を用いたものを例示したが、第1実施形態のテクスチャエンジン回路206に応じた構成を用いたものを用いてもよい。
【0174】
【発明の効果】
以上説明したように、本発明の画像処理装置によれば、ハードウェア資源を有効に使用して、小規模な回路構成で、マルチテクスチャ処理を行うことができる。
【図面の簡単な説明】
【図1】図1は、本発明の第1実施形態の画像処理装置の全体構成図である。
【図2】図2は、図1に示す画像処理装置が行うマルチテクスチャ処理を説明するための図である。
【図3】図3は、図1に示すテクスチャエンジン回路の構成図である。
【図4】図4は、図3に示すテクスチャエンジン回路の処理を説明するためのタイミングチャートである。
【図5】図5は、本発明の第2実施形態の画像処理装置の全体構成図である。
【図6】図6は、図5に示すテクスチャエンジン回路の構成図である。
【図7】図7は、図6に示すテクスチャエンジン回路の処理を説明するためのタイミングチャートである。
【図8】図8は、本発明の第3実施形態に係わる3次元コンピュータグラフィックシステムのシステム構成図である。
【図9】図9は、図8に示すSRAMおよびテクスチャバッファに記憶されているMIPMAP処理に用いられるテクスチャデータを説明するための図である。
【図10】図10は、図8に示すテクスチャエンジン回路の部分構成図である。
【図11】図11は、図10に示すLIP/テクスチャファンクション回路の構成図である。
【図12】図12は、各モードにおいて、LIP回路に入力されるデータを説明するための図である。
【図13】図13は、LIP/テクスチャファンクション回路におけるマルチテクスチャ処理を説明するためのタイミングチャートである。
【図14】図14は、LIP/テクスチャファンクション回路におけるMIPMAP処理を説明するためのタイミングチャートである。
【図15】図15は、図10に示すLIP回路の処理を説明するための図である。
【図16】図16は、図10に示すLIP回路の処理を説明するための図である。
【図17】図17は、図15に示す前段の加算回路の部分構成図である。
【図18】図18は、従来技術を説明するための図である。
【符号の説明】
1…3次元コンピュータグラフィックシステム、2…メインメモリ、3…I/Oインタフェース回路、4…メインプロセッサ、5…レンダリング回路、10…DDAセットアップ回路、11…トライアングルDDA回路、12…テクスチャエンジン回路、13…メモリI/F回路、14…CRTコントローラ回路、15…RAMDAC回路、16…DRAM、17…SRAM、20…テクスチャバッファ、21…ディスプレイバッファ、22…Zバッファ、23…テクスチャCLUTバッファ、50…縮小率演算回路、51…読み出し回路、52,53,5461…LIP回路、60…前処理回路、62…レジスタ、200…画像処理装置、201…ソースデータ生成回路、202…テクスチャバッファメモリ、203…フレームバッファメモリ、204…メモリI/F回路、205…DAC回路、206…テクスチャエンジン回路、207…制御回路、228…読み出し回路、229…4点近傍補間回路、230…選択回路、231…選択回路、232…マルチテクスチャ回路、233…スイッチ回路、306…テクスチャエンジン回路、307…制御回路、350…レジスタ、351…スイッチ回路、352…スイッチ回路、332…マルチテクスチャ回路、333…スイッチ回路
Claims (16)
- 記憶回路から読み出したデータを補間して2次元上の所定位置の画素に対応する第1のテクスチャデータを生成し、記憶回路から読み出したデータを補間して前記画素に対応する第2のテクスチャデータを生成する補間処理を行う第1の画像処理回路と、
前記第1のテクスチャデータと第1の画像データとを第1の混合比率で混合して第2の画像データを生成する第1の混合処理を行い、前記第2の画像データをフィードバックし、前記第1の混合処理を行わない期間に、前記フィードバックされた第2の画像データと前記第2のテクスチャデータとを第2の混合比率で混合して第3の画像データを生成する第2の混合処理を行う第2の画像処理回路と、
を有し、
前記第2の画像処理回路は、
少なくとも2つのデータと混合比率とを入力し、前記入力した2つのデータが示す値を前記入力した混合比率に基づいて線形補間して新たなデータを生成する信号処理回路
を有し、
前記第1の混合処理を行う場合に、前記第1のテクスチャデータと、前記第1の画像データと、前記第1の混合比率とを前記信号処理回路に入力し、
前記第2の混合処理を行う場合に、前記第1の混合処理によって生成された前記第2の画像データと、前記第2のテクスチャデータと、前記第2の混合比率とを前記信号処理回路に入力する
画像処理装置。 - 前記第1の画像処理回路は、前記補間処理を複数回繰り返して行い、
前記第2の画像処理回路は、前記第1の混合処理および前記第2の混合処理を順次複数回繰り返して行う
請求項1に記載の画像処理装置。 - 前記第1の画像処理回路は、
前記生成した第1のテクスチャデータの前記第2の画像処理回路への出力に続いて、前記生成した第2のテクスチャデータの前記第2の画像処理回路への出力を行い、
前記第2の画像処理回路は、
前記第1の混合処理および前記第2の混合処理を行う混合処理回路と、
前記第1の画像処理回路から入力した前記第1のテクスチャデータと、前記第1の画像処理回路から入力した前記第2のテクスチャデータと、前記第1の画像データと、前記第1の混合処理によって生成された前記第2の画像データとを入力し、前記混合処理回路が前記第1の混合処理を行う場合に、前記入力した第1のテクスチャデータと前記第1の画像データとを選択して前記混合処理回路に出力し、前記混合処理回路が前記第2の混合処理を行う場合に、前記入力した第2の画像データと前記第2のテクスチャデータとを選択して前記混合処理回路に出力する選択回路と
を有する
請求項1に記載の画像処理装置。 - クロック信号を生成するクロック信号生成回路
をさらに有し、
前記第2の画像処理回路は、
前記クロック信号に基づいて、各々n(nは自然数)クロックサイクル以内に行われる前記第1の混合処理および前記第2の混合処理を含むm(mは自然数)個の信号処理を順に、前段の信号処理の結果をフィードバックして後段の信号処理を行い、
前記第1の画像処理回路は、
前記クロック信号に基づいて、n×mクロックサイクル以内に前記補間処理を行う
請求項1に記載の画像処理装置。 - 前記第2の画像処理回路は、
前記第1の混合処理および前記第2の混合処理の処理時間の合計が、前記第1の画像処理回路が行う前記補間処理の処理時間に比べて長い場合に、前記補間処理の結果を入力するタイミングを調整するための指示を前記第1の画像処理回路に出力する
請求項1に記載の画像処理装置。 - 前記第2の画像処理回路は、
各々所定のビット幅のデータA,Bと、所定のビット幅で0≦COE≦1を満たす値をとるデータCOEを用いて、A×COE+B×(1−COE)に相当する演算を行い、上位所定ビットを演算結果として得る信号処理回路であって、
COE=1の場合、補正データFとして前記データAを選択し、COE≠1の場合、前記補正データFとして前記データBを選択する補正データ選択回路と、
前記選択した補正データFを用いて、A×COE+B× ̄COE+F(但し、 ̄COEはCOEのビット反転を示す)に相当する演算を行う演算回路と
を有する請求項1に記載の画像処理装置。 - 前記第2の画像処理回路は、
ミップマップ処理、モジュレート処理、デカル処理、ハイライト処理、フォギング処理およびアルファブレンディング処理のうち少なくとも一の処理と、前記第1の混合処理および前記第2の混合処理とを選択的に行う
請求項1に記載の画像処理装置。 - 少なくとも2つのデータと混合比率とを入力し、前記入力した2つのデータが示す値を前記入力した混合比率に基づいて線形補間して新たなデータを生成する信号処理回路
を有し、
第1のテクスチャデータと、第1の画像データと、第1の混合比率とを前記信号処理回路に入力し、前記第1のテクスチャデータと前記第1の画像データとを前記第1の混合比率で混合して第2の画像データを生成する第1の混合処理を行い、
前記第2の画像データをフィードバックし、
前記第1の混合処理を行わない期間に、前記第1の混合処理によって生成された前記第2の画像データと、第2のテクスチャデータと、第2の混合比率とを前記信号処理回路に入力し、前記フィードバックされた第2の画像データと前記第2のテクスチャデータとを前記第2の混合比率で混合して第3の画像データを生成する第2の混合処理を行う
画像処理装置。 - 記憶回路から読み出されたデータを補間して得られた2次元上の所定位置の画素に対応する前記第1のテクスチャデータと、前記第1の画像データとを、第1の混合比率で混合して前記第2の画像データを生成する第1の混合処理を行い、
前記第1の混合処理を行わない期間に、前記フィードバックされた第2の画像データと、記憶回路から読み出されたデータを補間して得られた前記画素に対応する前記第2のテクスチャデータとを、第2の混合比率で混合して前記第3の画像データを生成する第2の混合処理を行う
請求項8に記載の画像処理装置。 - 前記第1のテクスチャデータと前記第2のテクスチャデータとを交互に入力し、
前記第1の混合処理と前記第2の混合処理とを交互に行う
請求項8に記載の画像処理装置。 - 記憶回路から読み出したデータを補間して2次元上の所定位置の画素に対応する第1のテクスチャデータを生成し、記憶回路から読み出したデータを補間して前記画素に対応する第2のテクスチャデータを生成する補間処理を行う第1の画像処理回路と、
前記第1のテクスチャデータと前記第2のテクスチャデータとを第1の混合比率で混合して第1の画像データを生成する第1の混合処理を行い、前記第1の画像データをフィードバックし、前記第1の混合処理を行わない期間に、前記フィードバックされた第1の画像データと第2の画像データとを第2の混合比率で混合して第3の画像データを生成する第2の混合処理を行う第2の画像処理回路と、
を有し、
前記第2の画像処理回路は、
少なくとも2つのデータと混合比率とを入力し、前記入力した2つのデータが示す値を前記入力した混合比率に基づいて線形補間して新たなデータを生成する信号処理回路
を有し、
前記第1の混合処理を行う場合に、前記第1のテクスチャデータと、前記第2のテクスチャデータと、前記第1の混合比率とを前記信号処理回路に入力し、
前記第2の混合処理を行う場合に、前記第1の混合処理によって生成された前記第1の画像データと、前記第2の画像データと、前記第2の混合比率とを前記信号処理回路に入力する
画像処理装置。 - 前記第1の画像処理回路は、前記補間処理を複数回繰り返して行い、
前記第2の画像処理回路は、前記第1の混合処理および前記第2の混合処理を順次複数回繰り返して行う
請求項11に記載の画像処理装置。 - 前記第1の画像処理回路は、
前記生成した第1のテクスチャデータの前記第2の画像処理回路への出力に続いて、前記生成した第2のテクスチャデータの前記第2の画像処理回路への出力を行い、
前記第2の画像処理回路は、
前記第1の混合処理および前記第2の混合処理を行う混合処理回路と、
前記第1の画像処理回路から入力した前記第1のテクスチャデータを記憶する記憶回路と、
前記記憶回路から読み出された前記第1のテクスチャデータと、前記第1の画像処理回路から入力した前記第2のテクスチャデータと、前記第1の画像データと、前記第1の混合処理によって生成された前記第2の画像データとを入力し、前記混合処理回路が前記第1の混合処理を行う場合に、前記入力した第1のテクスチャデータと、前記入力した前記第2のテクスチャデータとを選択して前記混合処理回路に出力し、前記混合処理回路が前記第2の混合処理を行う場合に、前記入力した第1の画像データと前記入力した第2の画像データとを選択して前記混合処理回路に出力する選択回路と
を有する
請求項11に記載の画像処理装置。 - 少なくとも2つのデータと混合比率とを入力し、前記入力した2つのデータが示す値を前記入力した混合比率に基づいて線形補間して新たなデータを生成する信号処理回路
を有し、
第1のテクスチャデータと、第2のテクスチャデータと、第1の混合比率とを前記信号処理回路に入力し、前記第1のテクスチャデータと前記第2のテクスチャデータとを前記第1の混合比率で混合して第1の画像データを生成する第1の混合処理を行い、
前記第1の画像データをフィードバックし、
前記第1の混合処理によって生成された前記第1の画像データと、第2の画像データと、第2の混合比率とを前記信号処理回路に入力し、前記第1の混合処理を行わない期間に、前記フィードバックされた第1の画像データと前記第2の画像データとを前記第2の混合比率で混合して第3の画像データを生成する第2の混合処理を行う
画像処理装置。 - 記憶回路から読み出されたデータを補間して得られた2次元上の所定位置の画素に対応する前記第1のテクスチャデータと、記憶回路から読み出されたデータを補間して得られた2次元上の所定位置の画素に対応する前記第2のテクスチャデータとを、第1の混合比率で混合して前記第1の画像データを生成する第1の混合処理を行い、
前記第1の混合処理を行わない期間に、前記フィードバックされた第1の画像データと、第2の画像データとを、第2の混合比率で混合して前記第3の画像データを生成する第2の混合処理を行う
請求項14に記載の画像処理装置。 - 前記第1の混合処理と前記第2の混合処理とを交互に行う
請求項14に記載の画像処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2001163245A JP4635379B2 (ja) | 2001-05-30 | 2001-05-30 | 画像処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2001163245A JP4635379B2 (ja) | 2001-05-30 | 2001-05-30 | 画像処理装置 |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JP2002352267A JP2002352267A (ja) | 2002-12-06 |
| JP2002352267A5 JP2002352267A5 (ja) | 2008-05-08 |
| JP4635379B2 true JP4635379B2 (ja) | 2011-02-23 |
Family
ID=19006253
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2001163245A Expired - Fee Related JP4635379B2 (ja) | 2001-05-30 | 2001-05-30 | 画像処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4635379B2 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9508185B2 (en) | 2011-05-02 | 2016-11-29 | Sony Interactive Entertainment Inc. | Texturing in graphics hardware |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2673101B2 (ja) * | 1994-08-29 | 1997-11-05 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータ・グラフィクス装置 |
| US5740343A (en) * | 1995-11-03 | 1998-04-14 | 3Dfx Interactive, Incorporated | Texture compositing apparatus and method |
| JP4224887B2 (ja) * | 1999-04-22 | 2009-02-18 | ソニー株式会社 | 信号処理装置および画像処理装置 |
| JP3297410B2 (ja) * | 1999-09-09 | 2002-07-02 | 株式会社ナムコ | 画像生成システム及び情報記憶媒体 |
| JP4325038B2 (ja) * | 1999-10-20 | 2009-09-02 | ソニー株式会社 | 画像処理装置 |
-
2001
- 2001-05-30 JP JP2001163245A patent/JP4635379B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2002352267A (ja) | 2002-12-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3107452B2 (ja) | テクスチャマッピング方法およびその装置 | |
| US6181352B1 (en) | Graphics pipeline selectively providing multiple pixels or multiple textures | |
| US6275235B1 (en) | High precision texture wrapping method and device | |
| US6437781B1 (en) | Computer graphics system having per pixel fog blending | |
| US5877769A (en) | Image processing apparatus and method | |
| JP2000510268A (ja) | 3次元グラフィックス補間を実行するための乗算器 | |
| JP4707782B2 (ja) | 画像処理装置およびその方法 | |
| JP2008059582A (ja) | 省エネのためのlod値計算方法とこれを利用した3次元レンダリングシステム | |
| WO2003009236A1 (en) | Drawing method | |
| JP4505866B2 (ja) | 画像処理装置および映像信号処理方法 | |
| JP3985321B2 (ja) | 演算装置および画像処理装置 | |
| JP4635379B2 (ja) | 画像処理装置 | |
| JP3746211B2 (ja) | 描画装置、描画方法、描画プログラム、描画プログラムを記録したコンピュータ読み取り可能な記録媒体、及びグラフィックスプロセッサ | |
| JP4224887B2 (ja) | 信号処理装置および画像処理装置 | |
| JP4069486B2 (ja) | 記憶回路制御装置およびグラフィック演算装置 | |
| JP3743369B2 (ja) | グラフィックス描画装置およびその方法 | |
| JP4300650B2 (ja) | 演算処理回路およびその方法と画像処理装置 | |
| JP4325038B2 (ja) | 画像処理装置 | |
| JPH11306366A (ja) | グラフィック演算装置およびその方法 | |
| JP4042204B2 (ja) | グラフィック演算装置およびその方法 | |
| JPH11185052A (ja) | 3次元コンピュータグラフィックスのテクスチャマッピング座標計算装置および方法 | |
| CA2261245C (en) | Division circuit and graphic display processing apparatus | |
| JP3741053B2 (ja) | 画像処理装置 | |
| KR100313846B1 (ko) | 바이리니어밉매핑에서의상세도(lod)계산방법및장치 | |
| JP3556517B2 (ja) | 3次元画像処理装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080314 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080314 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100712 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100810 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101001 |
|
| 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: 20101026 |
|
| 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: 20101108 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131203 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131203 Year of fee payment: 3 |
|
| LAPS | Cancellation because of no payment of annual fees |