JP4244444B2 - データ処理装置、除算回路および画像処理装置 - Google Patents
データ処理装置、除算回路および画像処理装置 Download PDFInfo
- Publication number
- JP4244444B2 JP4244444B2 JP14961399A JP14961399A JP4244444B2 JP 4244444 B2 JP4244444 B2 JP 4244444B2 JP 14961399 A JP14961399 A JP 14961399A JP 14961399 A JP14961399 A JP 14961399A JP 4244444 B2 JP4244444 B2 JP 4244444B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- value
- mantissa
- digital data
- absolute value
- 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
Description
【発明の属する技術分野】
本発明は、逆数器と乗算器とを用いてデータ処理を行うデータ処理装置、除算回路および画像処理装置に関する。
【0002】
【従来の技術】
デジタルデータを用いて種々の演算を行う画像処理装置などのデータ処理装置では、例えば、逆数器および乗算器を組み合わせたデータ処理回路を用いて演算を行う場合がある。
図5は、逆数器および乗算器を組み合わせたデータ処理回路100の一例の回路図である。
図5に示すように、データ処理回路100は、逆数器101および乗算器102を有する。
逆数器101は、入力端子103を介して浮動小数点方式のデジタルデータS103を入力し、その逆数S101を乗算器102に出力する。このとき、逆数器101は、入力値と出力値との対応関係を示すテーブルを用いて、逆数S101を得ている。
乗算器102は、逆数器101から入力した逆数S101と、入力端子104を介して入力したデジタルデータS104とを乗算し、乗算結果であるデジタルデータS102を出力端子105から出力する。
【0003】
【発明が解決しようとする課題】
しかしながら、上述した従来のデータ処理回路100では、上述したように、逆数器101において、有限の数のエントリを持ったテーブルを用いて逆数S101を得ており、しかも、逆数S101のビット数は有限であるため、値を丸めたことによる誤差が逆数S101には常に含まれる。
従って、乗算器102において、逆数S101を生成されたデジタルデータS102にも、誤差が含まれる。
このような、誤差は、データ処理装置を高性能化する上でボトルネックとなり、画像処理装置では、最終的に得られる画像信号の品質劣化の要因となる。
【0004】
本発明は上述した従来技術の問題点に鑑みてなされ、所定の条件で、逆数器および乗算器を用いた演算を高精度に行うことができるデータ処理装置、除算回路および画像処理装置を提供することを目的とする。
【0005】
【課題を解決するための手段】
上述した従来技術の問題点を解決し、上述した目的を達成するために、本発明のデータ処理装置は、第1のデジタルデータの逆数を演算する逆数回路と、前記逆数と第2のデジタルデータとの乗算を行う乗算回路と、前記第1のデジタルデータと前記第2のデジタルデータとを比較する比較回路と、前記乗算の結果を入力し、前記第1のデジタルデータと前記第2のデジタルデータとが一致していると前記比較回路が判断した場合に、1を示すデジタルデータを出力し、前記第1のデジタルデータと前記第2のデジタルデータとが一致していないと前記比較回路が判断した場合に、前記入力した乗算の結果を出力する選択回路とを有する。
【0006】
本発明のデータ処理装置では、逆数回路において、第1のデジタルデータの逆数が演算される。
そして、乗算回路において、前記逆数と第2のデジタルデータとの乗算が行われる。乗算の結果は、選択回路に出力される。
また、それと並行して、比較回路において、前記第1のデジタルデータと前記第2のデジタルデータとが比較される。
そして、選択回路において、前記第1のデジタルデータと前記第2のデジタルデータとが一致していると前記比較回路が判断した場合に、1を示すデジタルデータが出力され、前記第1のデジタルデータと前記第2のデジタルデータとが一致していないと前記比較回路が判断した場合に、入力した前記乗算の結果が出力される。
【0007】
また、本発明の除算回路は、被除数と除数の逆数との乗算を浮動小数点方式で行う除算回路であって、前記被除数が負の場合に、前記被除数の2の補数値を第1の絶対値とし、前記被除数が正の場合に、前記被除数を第1の絶対値とする第1の絶対値演算回路と、前記第1の絶対値について2の対数値の整数値である第1の対数値を演算する第1の対数値演算回路と、前記第1の絶対値を、前記第1の対数値の反転値だけ、MSBに向けてシフトして第1の仮数を算出する第1のシフト演算回路と、前記除数が負の場合に、前記除数の2の補数値を第2の絶対値とし、前記除数が正の場合に、前記除数を第2の絶対値とする第2の絶対値演算回路と、前記第2の絶対値について2の対数値の整数値である第2の対数値を演算する第2の対数値演算回路と、前記第2の絶対値を、前記第2の対数値の反転値だけ、MSBに向けてシフトして第2の仮数を算出する第2のシフト演算回路と、前記第2の仮数の逆数を演算する逆数演算回路と、前記第1の仮数と、前記第2の仮数の逆数とを乗算する乗算回路と、前記第1の仮数と前記第2の仮数とを比較する比較回路と、前記乗算回路の乗算の結果を入力し、前記第1の仮数と前記第2の仮数とが一致していると前記比較回路が判断した場合に1を示すデジタルデータを出力し、前記第1の仮数と前記第2の仮数とが一致していないと前記比較回路が判断した場合に、前記入力した乗算の結果であるデジタルデータを出力する選択回路と、前記第1の対数値から前記第2の対数値を減算する減算回路と、前記選択回路が出力したデジタルデータを、前記減算回路の減算値だけ、MSBに向けてシフトする第3のシフト演算回路とを有する。
【0008】
本発明の除算回路では、第1の絶対値演算回路において、前記被除数が負の場合に、前記被除数の2の補数値を第1の絶対値とし、前記被除数が正の場合に、前記被除数を第1の絶対値とする。
そして、第1の対数値演算回路において、前記第1の絶対値について2の対数値の整数値である第1の対数値を演算する。
そして、第1のシフト演算回路において、前記第1の絶対値を、前記第1の対数値の反転値だけ、MSBに向けてシフトして第1の仮数を算出する。
また、第2の絶対値演算回路において、前記除数が負の場合に、前記除数の2の補数値を第2の絶対値とし、前記除数が正の場合に、前記除数を第2の絶対値とする。
また、第2の対数値演算回路において、前記第2の絶対値について2の対数値の整数値である第2の対数値を演算する。
第2のシフト演算回路において、前記第2の絶対値を、前記第2の対数値の反転値だけ、MSBに向けてシフトして第2の仮数を算出する。
そして、逆数演算回路において、前記第2の仮数の逆数を演算する。
そして、乗算回路において、前記第1の仮数と、前記第2の仮数の逆数とを乗算する。
また、比較回路において、前記第1の仮数と前記第2の仮数とを比較する。
そして、選択回路において、前記乗算回路の乗算の結果を入力し、前記第1の仮数と前記第2の仮数とが一致していると前記比較回路が判断した場合に1を示すデジタルデータを出力し、前記第1の仮数と前記第2の仮数とが一致していないと前記比較回路が判断した場合に、前記入力した乗算の結果であるデジタルデータを出力する。
また、減算回路において、前記第1の対数値から前記第2の対数値を減算する。
そして、第3のシフト演算回路において、前記選択回路が出力したデジタルデータを、前記減算回路の減算値だけ、MSBに向けてシフトする。
【0009】
また、本発明の画像処理装置は、立体モデルを単位図形を組み合わせて表現し、除算回路において同次座標(s,t)を同次項qで除算し、当該除算の結果である「s/q」および「t/q」に応じたテクスチャアドレスを用いて、前記単位図形内のパターンを示すテクスチャデータを記憶回路から読み出して各画素の色を決定する画像処理装置であって、前記除算回路は、被除数が負の場合に、前記被除数の2の補数値を第1の絶対値とし、前記被除数が正の場合に、前記被除数を第1の絶対値とする第1の絶対値演算回路と、前記第1の絶対値について2の対数値の整数値である第1の対数値を演算する第1の対数値演算回路と、前記第1の絶対値を、前記第1の対数値の反転値だけ、MSBに向けてシフトして第1の仮数を算出する第1のシフト演算回路と、除数が負の場合に、前記除数の2の補数値を第2の絶対値とし、前記除数が正の場合に、前記除数を第2の絶対値とする第2の絶対値演算回路と、前記第2の絶対値について2の対数値の整数値である第2の対数値を演算する第2の対数値演算回路と、前記第2の絶対値を、前記第2の対数値の反転値だけ、MSBに向けてシフトして第2の仮数を算出する第2のシフト演算回路と、前記第2の仮数の逆数を演算する逆数演算回路と、前記第1の仮数と、前記第2の仮数の逆数とを乗算する乗算回路と、前記第1の仮数と前記第2の仮数とを比較する比較回路と、前記乗算回路の乗算の結果を入力し、前記第1の仮数と前記第2の仮数とが一致していると前記比較回路が判断した場合に1を示すデジタルデータを出力し、前記第1の仮数と前記第2の仮数とが一致していないと前記比較回路が判断した場合に、前記入力した乗算の結果であるデジタルデータを出力する選択回路と、前記第1の対数値から前記第2の対数値を減算する減算回路と、前記選択回路が出力したデジタルデータを、前記減算回路の減算値だけ、MSBに向けてシフトする第3のシフト演算回路とを有する。
【0010】
【発明の実施の形態】
以下、本発明の実施形態に係わるデータ処理装置および画像処理装置について説明する。
【0011】
第1実施形態
図1は、本実施形態のデータ処理装置50の構成図である。
図1に示すように、データ処理装置50は、入力端子51,52、逆数器53、比較回路54、乗算器55およびマルチプレクサ56および出力端子57を有する。
入力端子51は逆数器53の入力端子および比較回路54の第1の入力端子に接続され、逆数器53の出力端子は乗算器55の第1の入力端子に接続されている。
入力端子52は、乗算器55の第2の入力端子および比較回路54の第2の入力端子に接続されている。
乗算器55の出力端子は、マルチプレクサ56の第1の入力端子に接続されている。
比較回路54の出力端子は、マルチプレクサ56の第2の入力端子に接続されている。
マルチプレクサ56の出力端子は、出力端子57に接続されている。
【0012】
入力端子51は、正規化された浮動小数点方式のデジタルデータS61を入力し、これを逆数器53の入力端子および比較回路54の第1の入力端子に出力する。
入力端子52は、正規化された浮動小数点方式のデジタルデータS62を入力し、これを乗算器55の第2の入力端子および比較回路54の第2の入力端子に出力する。
【0013】
逆数器53は、デジタルデータS61を入力し、その逆数S53を乗算器55の第1の入力端子に出力する。このとき、逆数器53は、入力値と出力値との対応を示す有限の数のエントリからなるテーブルを用いて、逆数S53を得ている。
【0014】
乗算器55は、逆数器53から入力した逆数S53と、入力端子52を介して入力したデジタルデータS62とを乗算し、乗算結果を正規化した浮動小数点方式のデジタルデータS55を出力端子105からマルチプレクサ56の第1の入力端子に出力する。
【0015】
比較回路54は、第1の入力端子および第2の入力端子からそれぞれデジタルデータS61およびS62を入力し、これらを比較し、一致しているか否かを検出する。そして、比較回路54は、デジタルデータS61とS62とが一致している場合には論理値「1」を示し、デジタルデータS61とS62とが一致していない場合には論理値「0」を示す比較信号S54をマルチプレクサ56の第2の入力端子に出力する。
【0016】
マルチプレクサ56は、比較回路54からの比較信号S54が論理値「1」を示す場合には、浮動小数点方式で「1」を示すデジタルデータS56を出力端子57に出力し、比較信号S54が論理値「0」を示す場合には、デジタルデータS55をデジタルデータS56として出力端子57に出力する。
【0017】
出力端子57は、マルチプレクサ56から入力したデジタルデータS56を出力する。
【0018】
以下、図1に示すデータ処理装置50の動作について説明する。
データ処理装置50では、デジタルデータS61が、入力端子51を介して、逆数器53の入力端子および比較回路54の第1の入力端子に入力される。また、デジタルデータS62が、入力端子52を介して、乗算器55の第2の入力端子および比較回路54の第2の入力端子に入力される。
【0019】
そして、逆数器53において、デジタルデータS61の逆数であるデジタルデータS53が得られ、デジタルデータS53が乗算器55の第1の入力端子に出力される。このとき、デジタルデータS53には、誤差が含まれている。
そして、乗算器55において、デジタルデータS53と、入力端子52を介して入力されたデジタルデータS62との乗算が行われ、乗算結果を正規化したデジタルデータS55が生成される。デジタルデータS55は、マルチプレクサ56の第1の入力端子に出力される。
【0020】
また、上述した逆数器53および乗算器55の処理と並行して、比較回路54において、デジタルデータS61とS62とが比較され、これらが一致しているか否かが検出される。そして、デジタルデータS61とS62とが一致している場合には論理値「1」を示し、デジタルデータS61とS62とが一致していない場合には論理値「0」を示す比較信号S54が、比較回路54からマルチプレクサ56の第2の入力端子に出力される。
【0021】
そして、比較回路54からの比較信号S54が論理値「1」を示す場合には、「1」を示すデジタルデータS56が、マルチプレクサ56から出力端子57に出力される。また、比較信号S54が論理値「0」を示す場合には、デジタルデータS55が、デジタルデータS56として、マルチプレクサ56から出力端子57に出力される。
【0022】
以上説明したように、データ処理装置50によれば、デジタルデータS61とS62とが一致している場合に、乗算器55から出力されたデジタルデータS55ではなく、浮動小数点方式で「1」を示す誤差の無いデジタルデータS56を出力端子57から出力する。従って、デジタルデータS61とS62とが一致している場合のデジタルデータS56の精度を従来に比べて高めることができる。また、データ処理装置50によれば、デジタルデータS61とS62とが一致していない場合には、デジタルデータS56の精度は従来と同じである。
【0023】
第2実施形態
以下、本実施形態においては、家庭用ゲーム機などに適用される、任意の3次元物体モデルに対する所望の3次元画像をCRT(Cathode Ray Tube)などのディスプレイ上に高速に表示する3次元コンピュータグラフィックシステムに、本発明のデータ処理装置を適用した場合について説明する。
図2は、本実施形態の3次元コンピュータグラフィックシステム1のシステム構成図である。
3次元コンピュータグラフィックシステム1は、立体モデルを単位図形である三角形(ポリゴン)の組み合わせとして表現し、このポリゴンを描画することで表示画面の各画素の色を決定し、ディスプレイに表示するポリゴンレンダリング処理を行うシステムである。
また、3次元コンピュータグラフィックシステム1では、平面上の位置を表現する(x,y)座標の他に、奥行きを表すz座標を用いて3次元物体を表し、この(x,y,z)の3つの座標で3次元空間の任意の一点を特定する。
【0024】
図2に示すように、3次元コンピュータグラフィックシステム1は、メインメモリ2、I/Oインタフェース回路3、メインプロセッサ4およびレンダリング回路5が、メインバス6を介して接続されている。
以下、各構成要素の機能について説明する。
メインプロセッサ4は、例えば、ゲームの進行状況などに応じて、メインメモリ2から必要なグラフィックデータを読み出し、このグラフィックデータに対してクリッピング(Clipping)処理、ライティング(Lighting)処理およびジオメトリ(Geometry)処理などを行い、ポリゴンレンダリングデータを生成する。メインプロセッサ4は、ポリゴンレンダリングデータS4を、メインバス6を介してレンダリング回路5に出力する。
I/Oインタフェース回路3は、必要に応じて、外部からポリゴンレンダリングデータを入力し、これをメインバス6を介してレンダリング回路5に出力する。
【0025】
ここで、ポリゴンレンダリングデータは、ポリゴンの各3頂点の(x,y,z,R,G,B,α,s,t,q,F)のデータを含んでいる。
ここで、(x,y,z)データは、ポリゴンの頂点の3次元座標を示し、(R,G,B)データは、それぞれ当該3次元座標における赤、緑、青の輝度値を示している。
データαは、これから描画する画素と、ディスプレイバッファ21に既に記憶されている画素とのR,G,Bデータのαブレンド(混合)係数を示している。
(s,t,q)データのうち、(s,t)は、対応するテクスチャの同次座標を示しており、qは同次項を示している。ここで、「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEを乗じてテクスチャ座標データ(u,v)が得られる。テクスチャバッファ20に記憶されたテクスチャデータへのアクセスは、テクスチャ座標データ(u,v)を用いて行われる。
Fデータは、フォグの混合値を示している。
【0026】
以下、レンダリング回路5について詳細に説明する。
図2に示すように、レンダリング回路5は、DDA(Digital Differential Analyzer) セットアップ回路10、トライアングルDDA回路11、テクスチャエンジン回路12、メモリI/F回路13、CRTコントローラ回路14、RAMDAC回路15、DRAM16およびSRAM17を有する。
DRAM16は、テクスチャバッファ20、ディスプレイバッファ21、zバッファ22およびテクスチャCLUTバッファ23として機能する。
【0027】
DDAセットアップ回路10
DDAセットアップ回路10は、後段のトライアングルDDA回路11において物理座標系上の三角形の各頂点の値を線形補間して、三角形の内部の各画素の色と深さ情報を求めるに先立ち、ポリゴンレンダリングデータS4が示す(z,R,G,B,α,s,t,q,F)データについて、三角形の辺と水平方向の差分などを求めるセットアップ演算を行う。
このセットアップ演算は、具体的には、開始点の値と終点の値と、開始点と終点との距離を用いて、単位長さ移動した場合における、求めようとしている値の変分を算出する。
DDAセットアップ回路10は、算出した変分データS10をトライアングルDDA回路11に出力する。
【0028】
トライアングルDDA回路11
トライアングルDDA回路11は、DDAセットアップ回路10から入力した変分データS10を用いて、三角形内部の各画素における線形補間された(z,R,G,B,α,s,t,q,F)データを算出する。
トライアングルDDA回路11は、各画素の(x,y)データと、当該(x,y)座標における(z,R,G,B,α,s,t,q,F)データとを、DDAデータ(補間データ)S11としてテクスチャエンジン回路12に出力する。
本実施形態では、トライアングルDDA回路11は、並行して処理を行う矩形内に位置する8(=2×4)画素分のDDAデータS11をテクスチャエンジン回路12に出力する。
【0029】
テクスチャエンジン回路12
テクスチャエンジン回路12は、「s/q」および「t/q」の算出処理、テクスチャ座標データ(u,v)の算出処理、テクスチャバッファ20からの(R,G,B,α)データの読み出し処理、および、混合処理(αブレンディング処理)を行う。
なお、テクスチャエンジン回路12は、所定の矩形内に位置する8画素についての処理を同時に並行して行う。
【0030】
テクスチャエンジン回路12は、DDAデータS11が示す(s,t,q)データについて、sデータをqデータで除算する演算と、tデータをqデータで除算する演算とを行う。
テクスチャエンジン回路12には、8画素についての除算「s/q」および「t/q」を同時に行う8個の除算回路が設けられている。
図3は、テクスチャエンジン回路12に設けられた除算回路300の構成図である。
図3に示すように、除算回路300は、絶対値演算器(2の補数演算器)301,302、プライオリティエンコーダ303,304、シフト演算器305,306、減算器307、シフト演算器310、逆数器53、比較回路54、乗算器55およびマルチプレクサ56を有する。
図3において、逆数器53、比較回路54、乗算器55およびマルチプレクサ56は、前述した第1実施形態で説明した同一符号の構成要素と同じである。
【0031】
除算回路300では、絶対値演算器301、プライオリティエンコーダ303およびシフト演算器305において、入力した被除数sを浮動小数点表現するために被除数sの絶対値が下記式(1)に示すように正規化され、被除数sの符号がマイナス(負)のときに、その指数seおよび仮数smが下記式(2)および式(3)に基づいて生成される。
【0032】
【数1】
s=sm×2se …(1)
【0033】
【数2】
sm=(〜s+1)/{2**int(log2 (〜s+1))}…(2)
なお、当該式(2)は、「〜s+1」を、「int(log2 (〜s+1))」の1の補数「〜int(log2 (〜s+1))」だけ、MSBに向けてシフトする演算である。
【0034】
【数3】
se=int{log2 (〜s+1)} …(3)
【0035】
具体的には、被除数sの符号がマイナスのときには、図4に示すように、図3に示す絶対値演算器301において、被除数sの反転(EXclusive−OR)が演算され、当該反転結果に対して「+1」が加算され、被乗数sの2の補数「〜s+1」が求められ、この「〜s+1」がプライオリティエンコーダ303およびシフト演算器305に出力される。
なお、絶対値演算器301において、被除数sの符号は、被除数sのMSB(Most Significant Bit)の符号ビットを参照し、当該MSBが「1」の場合にはマイナス、「0」の場合にはプラスと判定される。
そして、プライオリティエンコーダ303において、「〜s+1」の2の対数「log2 (〜s+1)」が求められ、この2の対数「log2 (〜s+1)」の整数値「int(log2 (〜s+1))」が、指数seとしてシフト演算器305および減算器307に出力される。
そして、シフト演算器305において、「〜s+1」が、「int(log2 (〜s+1))」の1の補数「〜int(log2 (〜s+1))」、すなわち指数seの1の補数だけMSBに向けてシフトされ、仮数smが演算される。仮数smは比較回路54および乗算器55に出力される。
【0036】
また、上述した除算回路300では、被除数sの符号がプラス(正)のときに、絶対値演算器301、プライオリティエンコーダ303およびシフト演算器305において、入力した被除数sの絶対値が正規化され、その指数seおよび仮数smが、下記式(4)および式(5)に基づいて生成される。
【0037】
【数4】
sm=s/{2**int(log2 s)}…(4)
なお、当該式(4)は、「s」を、「int(log2 s)」の1補数「〜int(log2 s)」だけ、MSBに向けてシフトする演算である。
【0038】
【数5】
se=int{log2 s} …(5)
【0039】
具体的には、被除数sの符号がプラスのときには、被乗数sが、絶対値演算器301をスルーして、プライオリティエンコーダ303およびシフト演算器305に出力される。
そして、プライオリティエンコーダ303において、被除数sの2の対数「log2 s」が求められ、この2の対数「log2 s」の整数値「int(log2 s)」が、指数seとしてシフト演算器305および減算器307に出力される。
そして、シフト演算器305において、被除数sが、「int(log2 s)」の1の補数「〜int(log2 s)」だけMSBに向けてシフトされ、仮数smが演算される。仮数smは逆数器309に出力される。
【0040】
また、図2に示す絶対値演算器302、プライオリティエンコーダ304およびシフト演算器306は、除数qについて、その指数qeおよび仮数qmを算出するために用いられ、その処理は、前述した絶対値演算器301、プライオリティエンコーダ303およびシフト演算器305の処理と同じである。
【0041】
また、逆数器53は、除数qの仮数qmの逆数を演算し、この逆数「1/qm」を乗算器55に出力する。
乗算器55は、仮数smと、除数qmの逆数「1/qm」とを乗算し、その乗算結果「sm/qm」をマルチプレクサ56に出力する。
また、減算器307は、指数seから指数qeを減算し、その減算結果「se−qe」をシフト演算器307に出力する。
【0042】
比較回路54は、仮数smと除数qmとを比較し、一致しているか否かを検出する。そして、比較回路54は、仮数smと除数qmとが一致している場合には論理値「1」を示し、仮数smと除数qmとが一致していない場合には論理値「0」を示す比較信号S54をマルチプレクサ56に出力する。
【0043】
マルチプレクサ56は、比較回路54からの比較信号S54が論理値「1」を示す場合には、「1」を示すデジタルデータS56をシフト演算器310に出力し、比較信号S54が論理値「0」を示す場合には、乗算器55からの乗算結果「sm/qm」をデジタルデータS56としてシフト演算器310に出力する。
【0044】
シフト演算器310は、マルチプレクサ56からのデジタルデータS56を、減算器307からの減算結果「se−qe」で示されるビット数だけMSBに向けてシフトし、シフト演算結果S310を符号化器311に出力する。
符号化器311は、被除数sの符号と除数qの符号とに基づいて、これらの符号が異なる場合には、シフト演算結果S310のMSBの1つ上位のビットにマイナスを示す「1」を付加し、これを除算結果「s/q」として出力する。一方、符号化器311は、被除数sの符号と除数qの符号とで符号が同じ場合には、シフト演算結果S310のMSBの1つ上位のビットにプラスを示す「0」を付加し、これを除算結果「s/q」として出力する。
【0045】
また、テクスチャエンジン回路12は、上述した除算回路300の除算結果である「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEを乗じて、テクスチャ座標データ(u,v)を生成する。
また、テクスチャエンジン回路12は、メモリI/F回路13を介して、SRAM17あるいはDRAM16に、前記生成したテクスチャ座標データ(u,v)を含む読み出し要求を出力し、メモリI/F回路13を介して、SRAM17あるいはテクスチャバッファ20に記憶されているテクスチャデータを読み出すことで、(s,t)データに対応したテクスチャアドレスに記憶された(R,G,B,α)データS17を得る。
ここで、SRAM17には、テクスチャバッファ20に記憶されているテクスチャデータのコピーが記憶されている。
テクスチャエンジン回路12は、読み出した(R,G,B,α)データS17の(R,G,B)データと、前段のトライアングルDDA回路11からのDDAデータS11に含まれる(R,G,B)データとを、(R,G,B,α)データS17に含まれるαデータ(テクスチャα)が示す割合で混合し、画素データS12を生成する。
テクスチャエンジン回路12は、この画素データS12を、メモリI/F回路13に出力する。
なお、テクスチャバッファ20には、MIPMAP(複数解像度テクスチャ)などの複数の縮小率に対応したテクスチャデータが記憶されている。ここで、何れの縮小率のテクスチャデータを用いるかは、所定のアルゴリズムを用いて、前記三角形単位で決定される。
【0046】
テクスチャエンジン回路12は、フルカラー方式の場合には、テクスチャバッファ20から読み出した(R,G,B,α)データを直接用いる。一方、テクスチャエンジン回路12は、インデックスカラー方式の場合には、予め作成したカラールックアップテーブル(CLUT)をテクスチャCLUTバッファ23から読み出して、内蔵するSRAMに転送および記憶し、このカラールックアップテーブルを用いて、テクスチャバッファ20から読み出したカラーインデックスに対応する(R,G,B)データを得る。
【0047】
メモリI/F回路13
また、メモリI/F回路13は、テクスチャエンジン回路12から入力した画素データS12に対応するzデータと、zバッファ22に記憶されているzデータとの比較を行い、入力した画素データS12によって描画される画像が、前回、ディスプレイバッファ21に書き込まれた画像より、手前(視点側)に位置するか否かを判断し、手前に位置する場合には、画像データS12に対応するzデータでzバッファ22に記憶されたzデータを更新する。
また、メモリI/F回路13は、必要に応じて、画像データS12に含まれる(R,G,B)データと、既にディスプレイバッファ21に記憶されている(R,G,B)データとを、画素データS12に対応するαデータが示す混合値で混合する、いわゆるαブレンディング処理を行い、混合後の(R,G,B)データをディスプレイバッファ21に書き込む(打ち込む)。
【0048】
なお、メモリI/F回路13によるDRAM16に対してのアクセスは、16画素について同時に行なわれる。
【0049】
CRTコントローラ回路14
CRTコントローラ回路14は、与えられた水平および垂直同期信号に同期して、図示しないCRTに表示するアドレスを発生し、ディスプレイバッファ21から表示データを読み出す要求をメモリI/F回路13に出力する。この要求に応じて、メモリI/F回路13は、ディスプレイバッファ21から一定の固まりで表示データを読み出す。CRTコントローラ回路14は、ディスプレイバッファ21から読み出した表示データを記憶するFIFO(First In First Out)回路を内蔵し、一定の時間間隔で、RAMDAC回路15に、RGBのインデックス値を出力する。
【0050】
RAMDAC回路15
RAMDAC回路15は、各インデックス値に対応するR,G,Bデータを記憶しており、CRTコントローラ回路14から入力したRGBのインデックス値に対応するデジタル形式のR,G,Bデータを、D/Aコンバータに転送し、アナログ形式のR,G,Bデータを生成する。RAMDAC回路15は、この生成されたR,G,BデータをCRTに出力する。
【0051】
以下、3次元コンピュータグラフィックシステム1の動作について説明する。ポリゴンレンダリングデータS4が、メインバス6を介してメインプロセッサ4からDDAセットアップ回路10に出力され、DDAセットアップ回路10において、三角形の辺と水平方向の差分などを示す変分データS10が生成される。
この変分データS10は、トライアングルDDA回路11に出力され、トライアングルDDA回路11において、三角形内部の各画素における線形補間された(z,R,G,B,α,s,t,q,F)データが算出される。そして、この算出された(z,R,G,B,α,s,t,q,F)データと、三角形の各頂点の(x,y)データとが、DDAデータS11として、トライアングルDDA回路11からテクスチャエンジン回路12に出力される。
【0052】
次に、テクスチャエンジン回路12において、DDAデータS11が示す(s,t,q)データについて、sデータをqデータで除算する演算と、tデータをqデータで除算する演算とが行われる。
このとき、8個の図3に示す除算回路300によって、8画素分の除算「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が読み出される。
次に、テクスチャエンジン回路12において、読み出した(R,G,B,α)データS17の(R,G,B)データと、前段のトライアングルDDA回路11からのDDAデータS11に含まれる(R,G,B)データとが、(R,G,B,α)データS17に含まれるαデータ(テクスチャα)が示す割合で混合され、画素データS12が生成される。
この画素データS12は、テクスチャエンジン回路12からメモリI/F回路13に出力される。
【0053】
そして、メモリI/F回路13において、テクスチャエンジン回路12から入力した画素データS12に対応するzデータと、zバッファ22に記憶されているzデータとの比較が行なわれ、入力した画素データS12によって描画される画像が、前回、ディスプレイバッファ21に書き込まれた画像より、手前(視点側)に位置するか否かが判断され、手前に位置する場合には、画像データS12に対応するzデータでzバッファ22に記憶されたzデータが更新される。
【0054】
次に、メモリI/F回路13において、必要に応じて、画像データS12に含まれる(R,G,B)データと、既にディスプレイバッファ21に記憶されている(R,G,B)データとが、画素データS12に対応するαデータが示す混合値で混合され、混合後の(R,G,B)データがディスプレイバッファ21に書き込まれる。
【0055】
以上説明したように、3次元コンピュータグラフィックシステム1によれば、テクスチャエンジン回路12における「s/q」および「t/q」を算出する除算を、前述した図3に示す除算回路300を用いて行う。
そのため、「s/q」および「t/q」を算出する除算を高速化でき、CRTに表示する3次元画像の動きの高速化および画質の向上を図ることができる。
【0056】
本発明は上述した実施形態には限定されない。
例えば、上述した図1に示す除算回路300では、符号付加器311を設けた場合を例示したが、s/qの絶対値を算出する機能を実現する場合には、符号付加器311を設ける必要はない。
【0057】
また、上述した図2に示す3次元コンピュータグラフィックシステム1では、SRAM17を用いる構成を例示したが、SRAM17を設けない構成にしてもよい。
また、図2に示すテクスチャバッファ20およびテクスチャCLUTバッファ23を、DRAM16の外部に設けてもよい。
【0058】
さらに、図2に示す3次元コンピュータグラフィックシステム1では、ポリゴンレンダリングデータを生成するジオメトリ処理を、メインプロセッサ4で行なう場合を例示したが、レンダリング回路5で行なう構成にしてもよい。
【0059】
【発明の効果】
以上説明したように、本発明のデータ処理装置、除算回路および画像処理装置によれば、逆数器および乗算器を用いたデジタルデータの演算を高精度に行うことができる。
そのため、本発明の画像処理装置によれば、高精度な画像を表示する画像データを生成できる。
【図面の簡単な説明】
【図1】図1は、本発明の第1実施形態のデータ処理装置の構成図である。
【図2】図2は、本発明の第2実施形態の3次元コンピュータグラフィックシステムのシステム構成図である。
【図3】図3は、図2に示すテクスチャエンジン回路に設けられた除算回路の構成図である。
【図4】図4は、図3に示す除算回路の処理を説明するための図である。
【図5】図1は、従来のデータ処理装置の構成図である。
【符号の説明】
1…3次元コンピュータグラフィックシステム、2…メインメモリ、3…I/Oインタフェース回路、4…メインプロセッサ、5…レンダリング回路、6…メインバス、10…DDAセットアップ回路、11…トライアングルDDA回路、12…テクスチャエンジン回路、13…メモリI/F回路、14…CRTコントローラ回路、15…RAMDAC回路、16…DRAM、17…SRAM、53…逆数器、54…比較回路、55…乗算器、56…マルチプレクサ、300…除算回路、301,302…絶対値演算器、303,304…プライオリティエンコーダ、305,306…シフト演算器、307…減算器307、310…シフト演算器
Claims (4)
- 第1のデジタルデータの逆数を演算する逆数回路と、
前記逆数と第2のデジタルデータとの乗算を行う乗算回路と、
前記第1のデジタルデータと前記第2のデジタルデータとを比較する比較回路と、
前記乗算の結果を入力し、前記第1のデジタルデータと前記第2のデジタルデータとが一致していると前記比較回路が判断した場合に、1を示すデジタルデータを出力し、前記第1のデジタルデータと前記第2のデジタルデータとが一致していないと前記比較回路が判断した場合に、前記入力した乗算の結果を出力する選択回路と
を有するデータ処理装置。 - 前記第1のデジタルデータ、前記第2のデジタルデータ、および前記1を示すデジタルデータは、浮動小数点方式のデータである
請求項1に記載のデータ処理装置。 - 被除数と除数の逆数との乗算を浮動小数点方式で行う除算回路において、
前記被除数が負の場合に、前記被除数の2の補数値を第1の絶対値とし、前記被除数が正の場合に、前記被除数を第1の絶対値とする第1の絶対値演算回路と、
前記第1の絶対値について2の対数値の整数値である第1の対数値を演算する第1の対数値演算回路と、
前記第1の絶対値を、前記第1の対数値の反転値だけ、MSB(Most Significant Bit)に向けてシフトして第1の仮数を算出する第1のシフト演算回路と、
前記除数が負の場合に、前記除数の2の補数値を第2の絶対値とし、前記除数が正の場合に、前記除数を第2の絶対値とする第2の絶対値演算回路と、
前記第2の絶対値について2の対数値の整数値である第2の対数値を演算する第2の対数値演算回路と、
前記第2の絶対値を、前記第2の対数値の反転値だけ、MSBに向けてシフトして第2の仮数を算出する第2のシフト演算回路と、
前記第2の仮数の逆数を演算する逆数演算回路と、
前記第1の仮数と、前記第2の仮数の逆数とを乗算する乗算回路と、
前記第1の仮数と前記第2の仮数とを比較する比較回路と、
前記乗算回路の乗算の結果を入力し、前記第1の仮数と前記第2の仮数とが一致していると前記比較回路が判断した場合に1を示すデジタルデータを出力し、前記第1の仮数と前記第2の仮数とが一致していないと前記比較回路が判断した場合に、前記入力した乗算の結果であるデジタルデータを出力する選択回路と、
前記第1の対数値から前記第2の対数値を減算する減算回路と、
前記選択回路が出力したデジタルデータを、前記減算回路の減算値だけ、MSBに向けてシフトする第3のシフト演算回路と
を有する除算回路。 - 立体モデルを単位図形を組み合わせて表現し、除算回路において同次座標(s,t)を同次項qで除算し、当該除算の結果である「s/q」および「t/q」に応じたテクスチャアドレスを用いて、前記単位図形内のパターンを示すテクスチャデータを記憶回路から読み出して各画素の色を決定する画像処理装置において、
前記除算回路は、
被除数が負の場合に、前記被除数の2の補数値を第1の絶対値とし、前記被除数が正の場合に、前記被除数を第1の絶対値とする第1の絶対値演算回路と、
前記第1の絶対値について2の対数値の整数値である第1の対数値を演算する第1の対数値演算回路と、
前記第1の絶対値を、前記第1の対数値の反転値だけ、MSBに向けてシフトして第1の仮数を算出する第1のシフト演算回路と、
除数が負の場合に、前記除数の2の補数値を第2の絶対値とし、前記除数が正の場合に、前記除数を第2の絶対値とする第2の絶対値演算回路と、
前記第2の絶対値について2の対数値の整数値である第2の対数値を演算する第2の対数値演算回路と、
前記第2の絶対値を、前記第2の対数値の反転値だけ、MSBに向けてシフトして第2の仮数を算出する第2のシフト演算回路と、
前記第2の仮数の逆数を演算する逆数演算回路と、
前記第1の仮数と、前記第2の仮数の逆数とを乗算する乗算回路と、
前記第1の仮数と前記第2の仮数とを比較する比較回路と、
前記乗算回路の乗算の結果を入力し、前記第1の仮数と前記第2の仮数とが一致していると前記比較回路が判断した場合に1を示すデジタルデータを出力し、前記第1の仮数と前記第2の仮数とが一致していないと前記比較回路が判断した場合に、前記入力した乗算の結果であるデジタルデータを出力する選択回路と、 前記第1の対数値から前記第2の対数値を減算する減算回路と、
前記選択回路が出力したデジタルデータを、前記減算回路の減算値だけ、MSBに向けてシフトする第3のシフト演算回路と
を有する
画像処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14961399A JP4244444B2 (ja) | 1999-05-28 | 1999-05-28 | データ処理装置、除算回路および画像処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14961399A JP4244444B2 (ja) | 1999-05-28 | 1999-05-28 | データ処理装置、除算回路および画像処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000339141A JP2000339141A (ja) | 2000-12-08 |
JP4244444B2 true JP4244444B2 (ja) | 2009-03-25 |
Family
ID=15479046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP14961399A Expired - Fee Related JP4244444B2 (ja) | 1999-05-28 | 1999-05-28 | データ処理装置、除算回路および画像処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4244444B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003001458A1 (fr) | 2001-06-21 | 2003-01-03 | Hi Corporation | Processeur de donnees |
-
1999
- 1999-05-28 JP JP14961399A patent/JP4244444B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000339141A (ja) | 2000-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3763136B2 (ja) | 描画方法および描画装置 | |
JP5294313B2 (ja) | ベジェ曲線描画装置、ベジェ曲線描画方法およびプログラム | |
JP3107452B2 (ja) | テクスチャマッピング方法およびその装置 | |
US6437781B1 (en) | Computer graphics system having per pixel fog blending | |
JPH04222074A (ja) | テクスチャマッピングのための傾斜計算方法 | |
US7015930B2 (en) | Method and apparatus for interpolating pixel parameters based on a plurality of vertex values | |
JP4244444B2 (ja) | データ処理装置、除算回路および画像処理装置 | |
US6460063B1 (en) | Division circuit and graphic display processing apparatus | |
JP4300650B2 (ja) | 演算処理回路およびその方法と画像処理装置 | |
JPH09134452A (ja) | コンピュータ・グラフィックス・ディスプレイ・システムにおける奥行きバッファ値の高速補間方法及びグラフィックス・システム | |
JPH11345218A (ja) | 画像処理装置およびその方法 | |
JPH0758510B2 (ja) | 三次元図形処理装置 | |
US5900882A (en) | Determining texture coordinates in computer graphics | |
US6329999B1 (en) | Encoder, method thereof and graphic processing apparatus | |
JP4042204B2 (ja) | グラフィック演算装置およびその方法 | |
JPH11185052A (ja) | 3次元コンピュータグラフィックスのテクスチャマッピング座標計算装置および方法 | |
JP4325038B2 (ja) | 画像処理装置 | |
JP4224887B2 (ja) | 信号処理装置および画像処理装置 | |
JP4635379B2 (ja) | 画像処理装置 | |
JP4386124B2 (ja) | 映像信号処理装置および映像信号処理方法 | |
JP3538826B2 (ja) | 演算回路および演算方法 | |
JP3358891B2 (ja) | Z値の透視変換処理方法及び画像処理装置 | |
JP4333793B2 (ja) | 映像信号処理装置および映像信号処理方法 | |
JP2000099748A (ja) | 3次元グラフィックス処理装置及びその処理方法 | |
JP4380757B2 (ja) | 映像信号処理装置および映像信号処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060105 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080919 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080930 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081120 |
|
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: 20081216 |
|
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: 20081229 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120116 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130116 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |