(57)【特許請求の範囲】
【請求項１】
第１のデジタルデータの逆数を演算する逆数回路と、
前記逆数と第２のデジタルデータとの乗算を行う乗算回路と、
前記第１のデジタルデータと前記第２のデジタルデータとを比較する比較回路と、
前記乗算の結果を入力し、前記第１のデジタルデータと前記第２のデジタルデータとが一致していると前記比較回路が判断した場合に、１を示すデジタルデータを出力し、前記第１のデジタルデータと前記第２のデジタルデータとが一致していないと前記比較回路が判断した場合に、前記入力した乗算の結果を出力する選択回路と
を有するデータ処理装置。
【請求項２】
前記第１のデジタルデータ、前記第２のデジタルデータ、および前記１を示すデジタルデータは、浮動小数点方式のデータである
請求項１に記載のデータ処理装置。
【請求項３】
被除数と除数の逆数との乗算を浮動小数点方式で行う除算回路において、
前記被除数が負の場合に、前記被除数の２の補数値を第１の絶対値とし、前記被除数が正の場合に、前記被除数を第１の絶対値とする第１の絶対値演算回路と、
前記第１の絶対値について２の対数値の整数値である第１の対数値を演算する第１の対数値演算回路と、
前記第１の絶対値を、前記第１の対数値の反転値だけ、ＭＳＢ(Most Significant Bit)に向けてシフトして第１の仮数を算出する第１のシフト演算回路と、
前記除数が負の場合に、前記除数の２の補数値を第２の絶対値とし、前記除数が正の場合に、前記除数を第２の絶対値とする第２の絶対値演算回路と、
前記第２の絶対値について２の対数値の整数値である第２の対数値を演算する第２の対数値演算回路と、
前記第２の絶対値を、前記第２の対数値の反転値だけ、ＭＳＢに向けてシフトして第２の仮数を算出する第２のシフト演算回路と、
前記第２の仮数の逆数を演算する逆数演算回路と、
前記第１の仮数と、前記第２の仮数の逆数とを乗算する乗算回路と、
前記第１の仮数と前記第２の仮数とを比較する比較回路と、
前記乗算回路の乗算の結果を入力し、前記第１の仮数と前記第２の仮数とが一致していると前記比較回路が判断した場合に１を示すデジタルデータを出力し、前記第１の仮数と前記第２の仮数とが一致していないと前記比較回路が判断した場合に、前記入力した乗算の結果であるデジタルデータを出力する選択回路と、
前記第１の対数値から前記第２の対数値を減算する減算回路と、
前記選択回路が出力したデジタルデータを、前記減算回路の減算値だけ、ＭＳＢに向けてシフトする第３のシフト演算回路と
を有する除算回路。
【請求項４】
立体モデルを単位図形を組み合わせて表現し、除算回路において同次座標（ｓ，ｔ）を同次項ｑで除算し、当該除算の結果である「ｓ／ｑ」および「ｔ／ｑ」に応じたテクスチャアドレスを用いて、前記単位図形内のパターンを示すテクスチャデータを記憶回路から読み出して各画素の色を決定する画像処理装置において、
前記除算回路は、
被除数が負の場合に、前記被除数の２の補数値を第１の絶対値とし、前記被除数が正の場合に、前記被除数を第１の絶対値とする第１の絶対値演算回路と、
前記第１の絶対値について２の対数値の整数値である第１の対数値を演算する第１の対数値演算回路と、
前記第１の絶対値を、前記第１の対数値の反転値だけ、ＭＳＢに向けてシフトして第１の仮数を算出する第１のシフト演算回路と、
除数が負の場合に、前記除数の２の補数値を第２の絶対値とし、前記除数が正の場合に、前記除数を第２の絶対値とする第２の絶対値演算回路と、
前記第２の絶対値について２の対数値の整数値である第２の対数値を演算する第２の対数値演算回路と、
前記第２の絶対値を、前記第２の対数値の反転値だけ、ＭＳＢに向けてシフトして第２の仮数を算出する第２のシフト演算回路と、
前記第２の仮数の逆数を演算する逆数演算回路と、
前記第１の仮数と、前記第２の仮数の逆数とを乗算する乗算回路と、
前記第１の仮数と前記第２の仮数とを比較する比較回路と、
前記乗算回路の乗算の結果を入力し、前記第１の仮数と前記第２の仮数とが一致していると前記比較回路が判断した場合に１を示すデジタルデータを出力し、前記第１の仮数と前記第２の仮数とが一致していないと前記比較回路が判断した場合に、前記入力した乗算の結果であるデジタルデータを出力する選択回路と、  前記第１の対数値から前記第２の対数値を減算する減算回路と、
前記選択回路が出力したデジタルデータを、前記減算回路の減算値だけ、ＭＳＢに向けてシフトする第３のシフト演算回路と
を有する
画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、逆数器と乗算器とを用いてデータ処理を行うデータ処理装置、除算回路および画像処理装置に関する。
【０００２】
【従来の技術】
デジタルデータを用いて種々の演算を行う画像処理装置などのデータ処理装置では、例えば、逆数器および乗算器を組み合わせたデータ処理回路を用いて演算を行う場合がある。
図５は、逆数器および乗算器を組み合わせたデータ処理回路１００の一例の回路図である。
図５に示すように、データ処理回路１００は、逆数器１０１および乗算器１０２を有する。
逆数器１０１は、入力端子１０３を介して浮動小数点方式のデジタルデータＳ１０３を入力し、その逆数Ｓ１０１を乗算器１０２に出力する。このとき、逆数器１０１は、入力値と出力値との対応関係を示すテーブルを用いて、逆数Ｓ１０１を得ている。
乗算器１０２は、逆数器１０１から入力した逆数Ｓ１０１と、入力端子１０４を介して入力したデジタルデータＳ１０４とを乗算し、乗算結果であるデジタルデータＳ１０２を出力端子１０５から出力する。
【０００３】
【発明が解決しようとする課題】
しかしながら、上述した従来のデータ処理回路１００では、上述したように、逆数器１０１において、有限の数のエントリを持ったテーブルを用いて逆数Ｓ１０１を得ており、しかも、逆数Ｓ１０１のビット数は有限であるため、値を丸めたことによる誤差が逆数Ｓ１０１には常に含まれる。
従って、乗算器１０２において、逆数Ｓ１０１を生成されたデジタルデータＳ１０２にも、誤差が含まれる。
このような、誤差は、データ処理装置を高性能化する上でボトルネックとなり、画像処理装置では、最終的に得られる画像信号の品質劣化の要因となる。
【０００４】
本発明は上述した従来技術の問題点に鑑みてなされ、所定の条件で、逆数器および乗算器を用いた演算を高精度に行うことができるデータ処理装置、除算回路および画像処理装置を提供することを目的とする。
【０００５】
【課題を解決するための手段】
上述した従来技術の問題点を解決し、上述した目的を達成するために、本発明のデータ処理装置は、第１のデジタルデータの逆数を演算する逆数回路と、前記逆数と第２のデジタルデータとの乗算を行う乗算回路と、前記第１のデジタルデータと前記第２のデジタルデータとを比較する比較回路と、前記乗算の結果を入力し、前記第１のデジタルデータと前記第２のデジタルデータとが一致していると前記比較回路が判断した場合に、１を示すデジタルデータを出力し、前記第１のデジタルデータと前記第２のデジタルデータとが一致していないと前記比較回路が判断した場合に、前記入力した乗算の結果を出力する選択回路とを有する。
【０００６】
本発明のデータ処理装置では、逆数回路において、第１のデジタルデータの逆数が演算される。
そして、乗算回路において、前記逆数と第２のデジタルデータとの乗算が行われる。乗算の結果は、選択回路に出力される。
また、それと並行して、比較回路において、前記第１のデジタルデータと前記第２のデジタルデータとが比較される。
そして、選択回路において、前記第１のデジタルデータと前記第２のデジタルデータとが一致していると前記比較回路が判断した場合に、１を示すデジタルデータが出力され、前記第１のデジタルデータと前記第２のデジタルデータとが一致していないと前記比較回路が判断した場合に、入力した前記乗算の結果が出力される。
【０００７】
また、本発明の除算回路は、被除数と除数の逆数との乗算を浮動小数点方式で行う除算回路であって、前記被除数が負の場合に、前記被除数の２の補数値を第１の絶対値とし、前記被除数が正の場合に、前記被除数を第１の絶対値とする第１の絶対値演算回路と、前記第１の絶対値について２の対数値の整数値である第１の対数値を演算する第１の対数値演算回路と、前記第１の絶対値を、前記第１の対数値の反転値だけ、ＭＳＢに向けてシフトして第１の仮数を算出する第１のシフト演算回路と、前記除数が負の場合に、前記除数の２の補数値を第２の絶対値とし、前記除数が正の場合に、前記除数を第２の絶対値とする第２の絶対値演算回路と、前記第２の絶対値について２の対数値の整数値である第２の対数値を演算する第２の対数値演算回路と、前記第２の絶対値を、前記第２の対数値の反転値だけ、ＭＳＢに向けてシフトして第２の仮数を算出する第２のシフト演算回路と、前記第２の仮数の逆数を演算する逆数演算回路と、前記第１の仮数と、前記第２の仮数の逆数とを乗算する乗算回路と、前記第１の仮数と前記第２の仮数とを比較する比較回路と、前記乗算回路の乗算の結果を入力し、前記第１の仮数と前記第２の仮数とが一致していると前記比較回路が判断した場合に１を示すデジタルデータを出力し、前記第１の仮数と前記第２の仮数とが一致していないと前記比較回路が判断した場合に、前記入力した乗算の結果であるデジタルデータを出力する選択回路と、前記第１の対数値から前記第２の対数値を減算する減算回路と、前記選択回路が出力したデジタルデータを、前記減算回路の減算値だけ、ＭＳＢに向けてシフトする第３のシフト演算回路とを有する。
【０００８】
本発明の除算回路では、第１の絶対値演算回路において、前記被除数が負の場合に、前記被除数の２の補数値を第１の絶対値とし、前記被除数が正の場合に、前記被除数を第１の絶対値とする。
そして、第１の対数値演算回路において、前記第１の絶対値について２の対数値の整数値である第１の対数値を演算する。
そして、第１のシフト演算回路において、前記第１の絶対値を、前記第１の対数値の反転値だけ、ＭＳＢに向けてシフトして第１の仮数を算出する。
また、第２の絶対値演算回路において、前記除数が負の場合に、前記除数の２の補数値を第２の絶対値とし、前記除数が正の場合に、前記除数を第２の絶対値とする。
また、第２の対数値演算回路において、前記第２の絶対値について２の対数値の整数値である第２の対数値を演算する。
第２のシフト演算回路において、前記第２の絶対値を、前記第２の対数値の反転値だけ、ＭＳＢに向けてシフトして第２の仮数を算出する。
そして、逆数演算回路において、前記第２の仮数の逆数を演算する。
そして、乗算回路において、前記第１の仮数と、前記第２の仮数の逆数とを乗算する。
また、比較回路において、前記第１の仮数と前記第２の仮数とを比較する。
そして、選択回路において、前記乗算回路の乗算の結果を入力し、前記第１の仮数と前記第２の仮数とが一致していると前記比較回路が判断した場合に１を示すデジタルデータを出力し、前記第１の仮数と前記第２の仮数とが一致していないと前記比較回路が判断した場合に、前記入力した乗算の結果であるデジタルデータを出力する。
また、減算回路において、前記第１の対数値から前記第２の対数値を減算する。
そして、第３のシフト演算回路において、前記選択回路が出力したデジタルデータを、前記減算回路の減算値だけ、ＭＳＢに向けてシフトする。
【０００９】
また、本発明の画像処理装置は、立体モデルを単位図形を組み合わせて表現し、除算回路において同次座標（ｓ，ｔ）を同次項ｑで除算し、当該除算の結果である「ｓ／ｑ」および「ｔ／ｑ」に応じたテクスチャアドレスを用いて、前記単位図形内のパターンを示すテクスチャデータを記憶回路から読み出して各画素の色を決定する画像処理装置であって、前記除算回路は、被除数が負の場合に、前記被除数の２の補数値を第１の絶対値とし、前記被除数が正の場合に、前記被除数を第１の絶対値とする第１の絶対値演算回路と、前記第１の絶対値について２の対数値の整数値である第１の対数値を演算する第１の対数値演算回路と、前記第１の絶対値を、前記第１の対数値の反転値だけ、ＭＳＢに向けてシフトして第１の仮数を算出する第１のシフト演算回路と、除数が負の場合に、前記除数の２の補数値を第２の絶対値とし、前記除数が正の場合に、前記除数を第２の絶対値とする第２の絶対値演算回路と、前記第２の絶対値について２の対数値の整数値である第２の対数値を演算する第２の対数値演算回路と、前記第２の絶対値を、前記第２の対数値の反転値だけ、ＭＳＢに向けてシフトして第２の仮数を算出する第２のシフト演算回路と、前記第２の仮数の逆数を演算する逆数演算回路と、前記第１の仮数と、前記第２の仮数の逆数とを乗算する乗算回路と、前記第１の仮数と前記第２の仮数とを比較する比較回路と、前記乗算回路の乗算の結果を入力し、前記第１の仮数と前記第２の仮数とが一致していると前記比較回路が判断した場合に１を示すデジタルデータを出力し、前記第１の仮数と前記第２の仮数とが一致していないと前記比較回路が判断した場合に、前記入力した乗算の結果であるデジタルデータを出力する選択回路と、前記第１の対数値から前記第２の対数値を減算する減算回路と、前記選択回路が出力したデジタルデータを、前記減算回路の減算値だけ、ＭＳＢに向けてシフトする第３のシフト演算回路とを有する。
【００１０】
【発明の実施の形態】
以下、本発明の実施形態に係わるデータ処理装置および画像処理装置について説明する。
【００１１】
第１実施形態
図１は、本実施形態のデータ処理装置５０の構成図である。
図１に示すように、データ処理装置５０は、入力端子５１，５２、逆数器５３、比較回路５４、乗算器５５およびマルチプレクサ５６および出力端子５７を有する。
入力端子５１は逆数器５３の入力端子および比較回路５４の第１の入力端子に接続され、逆数器５３の出力端子は乗算器５５の第１の入力端子に接続されている。
入力端子５２は、乗算器５５の第２の入力端子および比較回路５４の第２の入力端子に接続されている。
乗算器５５の出力端子は、マルチプレクサ５６の第１の入力端子に接続されている。
比較回路５４の出力端子は、マルチプレクサ５６の第２の入力端子に接続されている。
マルチプレクサ５６の出力端子は、出力端子５７に接続されている。
【００１２】
入力端子５１は、正規化された浮動小数点方式のデジタルデータＳ６１を入力し、これを逆数器５３の入力端子および比較回路５４の第１の入力端子に出力する。
入力端子５２は、正規化された浮動小数点方式のデジタルデータＳ６２を入力し、これを乗算器５５の第２の入力端子および比較回路５４の第２の入力端子に出力する。
【００１３】
逆数器５３は、デジタルデータＳ６１を入力し、その逆数Ｓ５３を乗算器５５の第１の入力端子に出力する。このとき、逆数器５３は、入力値と出力値との対応を示す有限の数のエントリからなるテーブルを用いて、逆数Ｓ５３を得ている。
【００１４】
乗算器５５は、逆数器５３から入力した逆数Ｓ５３と、入力端子５２を介して入力したデジタルデータＳ６２とを乗算し、乗算結果を正規化した浮動小数点方式のデジタルデータＳ５５を出力端子１０５からマルチプレクサ５６の第１の入力端子に出力する。
【００１５】
比較回路５４は、第１の入力端子および第２の入力端子からそれぞれデジタルデータＳ６１およびＳ６２を入力し、これらを比較し、一致しているか否かを検出する。そして、比較回路５４は、デジタルデータＳ６１とＳ６２とが一致している場合には論理値「１」を示し、デジタルデータＳ６１とＳ６２とが一致していない場合には論理値「０」を示す比較信号Ｓ５４をマルチプレクサ５６の第２の入力端子に出力する。
【００１６】
マルチプレクサ５６は、比較回路５４からの比較信号Ｓ５４が論理値「１」を示す場合には、浮動小数点方式で「１」を示すデジタルデータＳ５６を出力端子５７に出力し、比較信号Ｓ５４が論理値「０」を示す場合には、デジタルデータＳ５５をデジタルデータＳ５６として出力端子５７に出力する。
【００１７】
出力端子５７は、マルチプレクサ５６から入力したデジタルデータＳ５６を出力する。
【００１８】
以下、図１に示すデータ処理装置５０の動作について説明する。
データ処理装置５０では、デジタルデータＳ６１が、入力端子５１を介して、逆数器５３の入力端子および比較回路５４の第１の入力端子に入力される。また、デジタルデータＳ６２が、入力端子５２を介して、乗算器５５の第２の入力端子および比較回路５４の第２の入力端子に入力される。
【００１９】
そして、逆数器５３において、デジタルデータＳ６１の逆数であるデジタルデータＳ５３が得られ、デジタルデータＳ５３が乗算器５５の第１の入力端子に出力される。このとき、デジタルデータＳ５３には、誤差が含まれている。
そして、乗算器５５において、デジタルデータＳ５３と、入力端子５２を介して入力されたデジタルデータＳ６２との乗算が行われ、乗算結果を正規化したデジタルデータＳ５５が生成される。デジタルデータＳ５５は、マルチプレクサ５６の第１の入力端子に出力される。
【００２０】
また、上述した逆数器５３および乗算器５５の処理と並行して、比較回路５４において、デジタルデータＳ６１とＳ６２とが比較され、これらが一致しているか否かが検出される。そして、デジタルデータＳ６１とＳ６２とが一致している場合には論理値「１」を示し、デジタルデータＳ６１とＳ６２とが一致していない場合には論理値「０」を示す比較信号Ｓ５４が、比較回路５４からマルチプレクサ５６の第２の入力端子に出力される。
【００２１】
そして、比較回路５４からの比較信号Ｓ５４が論理値「１」を示す場合には、「１」を示すデジタルデータＳ５６が、マルチプレクサ５６から出力端子５７に出力される。また、比較信号Ｓ５４が論理値「０」を示す場合には、デジタルデータＳ５５が、デジタルデータＳ５６として、マルチプレクサ５６から出力端子５７に出力される。
【００２２】
以上説明したように、データ処理装置５０によれば、デジタルデータＳ６１とＳ６２とが一致している場合に、乗算器５５から出力されたデジタルデータＳ５５ではなく、浮動小数点方式で「１」を示す誤差の無いデジタルデータＳ５６を出力端子５７から出力する。従って、デジタルデータＳ６１とＳ６２とが一致している場合のデジタルデータＳ５６の精度を従来に比べて高めることができる。また、データ処理装置５０によれば、デジタルデータＳ６１とＳ６２とが一致していない場合には、デジタルデータＳ５６の精度は従来と同じである。
【００２３】
第２実施形態
以下、本実施形態においては、家庭用ゲーム機などに適用される、任意の３次元物体モデルに対する所望の３次元画像をＣＲＴ(Cathode Ray Tube)などのディスプレイ上に高速に表示する３次元コンピュータグラフィックシステムに、本発明のデータ処理装置を適用した場合について説明する。
図２は、本実施形態の３次元コンピュータグラフィックシステム１のシステム構成図である。
３次元コンピュータグラフィックシステム１は、立体モデルを単位図形である三角形（ポリゴン）の組み合わせとして表現し、このポリゴンを描画することで表示画面の各画素の色を決定し、ディスプレイに表示するポリゴンレンダリング処理を行うシステムである。
また、３次元コンピュータグラフィックシステム１では、平面上の位置を表現する（ｘ，ｙ）座標の他に、奥行きを表すｚ座標を用いて３次元物体を表し、この（ｘ，ｙ，ｚ）の３つの座標で３次元空間の任意の一点を特定する。
【００２４】
図２に示すように、３次元コンピュータグラフィックシステム１は、メインメモリ２、Ｉ／Ｏインタフェース回路３、メインプロセッサ４およびレンダリング回路５が、メインバス６を介して接続されている。
以下、各構成要素の機能について説明する。
メインプロセッサ４は、例えば、ゲームの進行状況などに応じて、メインメモリ２から必要なグラフィックデータを読み出し、このグラフィックデータに対してクリッピング(Clipping)処理、ライティング(Lighting)処理およびジオメトリ(Geometry)処理などを行い、ポリゴンレンダリングデータを生成する。メインプロセッサ４は、ポリゴンレンダリングデータＳ４を、メインバス６を介してレンダリング回路５に出力する。
Ｉ／Ｏインタフェース回路３は、必要に応じて、外部からポリゴンレンダリングデータを入力し、これをメインバス６を介してレンダリング回路５に出力する。
【００２５】
ここで、ポリゴンレンダリングデータは、ポリゴンの各３頂点の（ｘ，ｙ，ｚ，Ｒ，Ｇ，Ｂ，α，ｓ，ｔ，ｑ，Ｆ）のデータを含んでいる。
ここで、（ｘ，ｙ，ｚ）データは、ポリゴンの頂点の３次元座標を示し、（Ｒ，Ｇ，Ｂ）データは、それぞれ当該３次元座標における赤、緑、青の輝度値を示している。
データαは、これから描画する画素と、ディスプレイバッファ２１に既に記憶されている画素とのＲ，Ｇ，Ｂデータのαブレンド（混合）係数を示している。
（ｓ，ｔ，ｑ）データのうち、（ｓ，ｔ）は、対応するテクスチャの同次座標を示しており、ｑは同次項を示している。ここで、「ｓ／ｑ」および「ｔ／ｑ」に、それぞれテクスチャサイズＵＳＩＺＥおよびＶＳＩＺＥを乗じてテクスチャ座標データ（ｕ，ｖ）が得られる。テクスチャバッファ２０に記憶されたテクスチャデータへのアクセスは、テクスチャ座標データ（ｕ，ｖ）を用いて行われる。
Ｆデータは、フォグの混合値を示している。
【００２６】
以下、レンダリング回路５について詳細に説明する。
図２に示すように、レンダリング回路５は、ＤＤＡ(Digital Differential Analyzer) セットアップ回路１０、トライアングルＤＤＡ回路１１、テクスチャエンジン回路１２、メモリＩ／Ｆ回路１３、ＣＲＴコントローラ回路１４、ＲＡＭＤＡＣ回路１５、ＤＲＡＭ１６およびＳＲＡＭ１７を有する。
ＤＲＡＭ１６は、テクスチャバッファ２０、ディスプレイバッファ２１、ｚバッファ２２およびテクスチャＣＬＵＴバッファ２３として機能する。
【００２７】
ＤＤＡセットアップ回路１０
ＤＤＡセットアップ回路１０は、後段のトライアングルＤＤＡ回路１１において物理座標系上の三角形の各頂点の値を線形補間して、三角形の内部の各画素の色と深さ情報を求めるに先立ち、ポリゴンレンダリングデータＳ４が示す（ｚ，Ｒ，Ｇ，Ｂ，α，ｓ，ｔ，ｑ，Ｆ）データについて、三角形の辺と水平方向の差分などを求めるセットアップ演算を行う。
このセットアップ演算は、具体的には、開始点の値と終点の値と、開始点と終点との距離を用いて、単位長さ移動した場合における、求めようとしている値の変分を算出する。
ＤＤＡセットアップ回路１０は、算出した変分データＳ１０をトライアングルＤＤＡ回路１１に出力する。
【００２８】
トライアングルＤＤＡ回路１１
トライアングルＤＤＡ回路１１は、ＤＤＡセットアップ回路１０から入力した変分データＳ１０を用いて、三角形内部の各画素における線形補間された（ｚ，Ｒ，Ｇ，Ｂ，α，ｓ，ｔ，ｑ，Ｆ）データを算出する。
トライアングルＤＤＡ回路１１は、各画素の（ｘ，ｙ）データと、当該（ｘ，ｙ）座標における（ｚ，Ｒ，Ｇ，Ｂ，α，ｓ，ｔ，ｑ，Ｆ）データとを、ＤＤＡデータ（補間データ）Ｓ１１としてテクスチャエンジン回路１２に出力する。
本実施形態では、トライアングルＤＤＡ回路１１は、並行して処理を行う矩形内に位置する８（＝２×４）画素分のＤＤＡデータＳ１１をテクスチャエンジン回路１２に出力する。
【００２９】
テクスチャエンジン回路１２
テクスチャエンジン回路１２は、「ｓ／ｑ」および「ｔ／ｑ」の算出処理、テクスチャ座標データ（ｕ，ｖ）の算出処理、テクスチャバッファ２０からの（Ｒ，Ｇ，Ｂ，α）データの読み出し処理、および、混合処理（αブレンディング処理）を行う。
なお、テクスチャエンジン回路１２は、所定の矩形内に位置する８画素についての処理を同時に並行して行う。
【００３０】
テクスチャエンジン回路１２は、ＤＤＡデータＳ１１が示す（ｓ，ｔ，ｑ）データについて、ｓデータをｑデータで除算する演算と、ｔデータをｑデータで除算する演算とを行う。
テクスチャエンジン回路１２には、８画素についての除算「ｓ／ｑ」および「ｔ／ｑ」を同時に行う８個の除算回路が設けられている。
図３は、テクスチャエンジン回路１２に設けられた除算回路３００の構成図である。
図３に示すように、除算回路３００は、絶対値演算器（２の補数演算器）３０１，３０２、プライオリティエンコーダ３０３，３０４、シフト演算器３０５，３０６、減算器３０７、シフト演算器３１０、逆数器５３、比較回路５４、乗算器５５およびマルチプレクサ５６を有する。
図３において、逆数器５３、比較回路５４、乗算器５５およびマルチプレクサ５６は、前述した第１実施形態で説明した同一符号の構成要素と同じである。
【００３１】
除算回路３００では、絶対値演算器３０１、プライオリティエンコーダ３０３およびシフト演算器３０５において、入力した被除数ｓを浮動小数点表現するために被除数ｓの絶対値が下記式（１）に示すように正規化され、被除数ｓの符号がマイナス（負）のときに、その指数ｓｅおよび仮数ｓｍが下記式（２）および式（３）に基づいて生成される。
【００３２】
【数１】
ｓ＝ｓｍ×２se                                        …（１）
【００３３】
【数２】
ｓｍ＝（〜ｓ＋１）／｛２＊＊ｉｎｔ（ｌｏｇ2 （〜ｓ＋１））｝…（２）
なお、当該式（２）は、「〜ｓ＋１」を、「ｉｎｔ（ｌｏｇ2 （〜ｓ＋１））」の１の補数「〜ｉｎｔ（ｌｏｇ2 （〜ｓ＋１））」だけ、ＭＳＢに向けてシフトする演算である。
【００３４】
【数３】
ｓｅ＝ｉｎｔ｛ｌｏｇ2 （〜ｓ＋１）｝                  …（３）
【００３５】
具体的には、被除数ｓの符号がマイナスのときには、図４に示すように、図３に示す絶対値演算器３０１において、被除数ｓの反転（ＥＸｃｌｕｓｉｖｅ−ＯＲ）が演算され、当該反転結果に対して「＋１」が加算され、被乗数ｓの２の補数「〜ｓ＋１」が求められ、この「〜ｓ＋１」がプライオリティエンコーダ３０３およびシフト演算器３０５に出力される。
なお、絶対値演算器３０１において、被除数ｓの符号は、被除数ｓのＭＳＢ(Most Significant Bit)の符号ビットを参照し、当該ＭＳＢが「１」の場合にはマイナス、「０」の場合にはプラスと判定される。
そして、プライオリティエンコーダ３０３において、「〜ｓ＋１」の２の対数「ｌｏｇ2 （〜ｓ＋１）」が求められ、この２の対数「ｌｏｇ2 （〜ｓ＋１）」の整数値「ｉｎｔ（ｌｏｇ2 （〜ｓ＋１））」が、指数ｓｅとしてシフト演算器３０５および減算器３０７に出力される。
そして、シフト演算器３０５において、「〜ｓ＋１」が、「ｉｎｔ（ｌｏｇ2 （〜ｓ＋１））」の１の補数「〜ｉｎｔ（ｌｏｇ2 （〜ｓ＋１））」、すなわち指数ｓｅの１の補数だけＭＳＢに向けてシフトされ、仮数ｓｍが演算される。仮数ｓｍは比較回路５４および乗算器５５に出力される。
【００３６】
また、上述した除算回路３００では、被除数ｓの符号がプラス（正）のときに、絶対値演算器３０１、プライオリティエンコーダ３０３およびシフト演算器３０５において、入力した被除数ｓの絶対値が正規化され、その指数ｓｅおよび仮数ｓｍが、下記式（４）および式（５）に基づいて生成される。
【００３７】
【数４】
ｓｍ＝ｓ／｛２＊＊ｉｎｔ（ｌｏｇ2 ｓ）｝…（４）
なお、当該式（４）は、「ｓ」を、「ｉｎｔ（ｌｏｇ2 ｓ）」の１補数「〜ｉｎｔ（ｌｏｇ2 ｓ）」だけ、ＭＳＢに向けてシフトする演算である。
【００３８】
【数５】
ｓｅ＝ｉｎｔ｛ｌｏｇ2 ｓ｝                            …（５）
【００３９】
具体的には、被除数ｓの符号がプラスのときには、被乗数ｓが、絶対値演算器３０１をスルーして、プライオリティエンコーダ３０３およびシフト演算器３０５に出力される。
そして、プライオリティエンコーダ３０３において、被除数ｓの２の対数「ｌｏｇ2 ｓ」が求められ、この２の対数「ｌｏｇ2 ｓ」の整数値「ｉｎｔ（ｌｏｇ2 ｓ）」が、指数ｓｅとしてシフト演算器３０５および減算器３０７に出力される。
そして、シフト演算器３０５において、被除数ｓが、「ｉｎｔ（ｌｏｇ2 ｓ）」の１の補数「〜ｉｎｔ（ｌｏｇ2 ｓ）」だけＭＳＢに向けてシフトされ、仮数ｓｍが演算される。仮数ｓｍは逆数器３０９に出力される。
【００４０】
また、図２に示す絶対値演算器３０２、プライオリティエンコーダ３０４およびシフト演算器３０６は、除数ｑについて、その指数ｑｅおよび仮数ｑｍを算出するために用いられ、その処理は、前述した絶対値演算器３０１、プライオリティエンコーダ３０３およびシフト演算器３０５の処理と同じである。
【００４１】
また、逆数器５３は、除数ｑの仮数ｑｍの逆数を演算し、この逆数「１／ｑｍ」を乗算器５５に出力する。
乗算器５５は、仮数ｓｍと、除数ｑｍの逆数「１／ｑｍ」とを乗算し、その乗算結果「ｓｍ／ｑｍ」をマルチプレクサ５６に出力する。
また、減算器３０７は、指数ｓｅから指数ｑｅを減算し、その減算結果「ｓｅ−ｑｅ」をシフト演算器３０７に出力する。
【００４２】
比較回路５４は、仮数ｓｍと除数ｑｍとを比較し、一致しているか否かを検出する。そして、比較回路５４は、仮数ｓｍと除数ｑｍとが一致している場合には論理値「１」を示し、仮数ｓｍと除数ｑｍとが一致していない場合には論理値「０」を示す比較信号Ｓ５４をマルチプレクサ５６に出力する。
【００４３】
マルチプレクサ５６は、比較回路５４からの比較信号Ｓ５４が論理値「１」を示す場合には、「１」を示すデジタルデータＳ５６をシフト演算器３１０に出力し、比較信号Ｓ５４が論理値「０」を示す場合には、乗算器５５からの乗算結果「ｓｍ／ｑｍ」をデジタルデータＳ５６としてシフト演算器３１０に出力する。
【００４４】
シフト演算器３１０は、マルチプレクサ５６からのデジタルデータＳ５６を、減算器３０７からの減算結果「ｓｅ−ｑｅ」で示されるビット数だけＭＳＢに向けてシフトし、シフト演算結果Ｓ３１０を符号化器３１１に出力する。
符号化器３１１は、被除数ｓの符号と除数ｑの符号とに基づいて、これらの符号が異なる場合には、シフト演算結果Ｓ３１０のＭＳＢの１つ上位のビットにマイナスを示す「１」を付加し、これを除算結果「ｓ／ｑ」として出力する。一方、符号化器３１１は、被除数ｓの符号と除数ｑの符号とで符号が同じ場合には、シフト演算結果Ｓ３１０のＭＳＢの１つ上位のビットにプラスを示す「０」を付加し、これを除算結果「ｓ／ｑ」として出力する。
【００４５】
また、テクスチャエンジン回路１２は、上述した除算回路３００の除算結果である「ｓ／ｑ」および「ｔ／ｑ」に、それぞれテクスチャサイズＵＳＩＺＥおよびＶＳＩＺＥを乗じて、テクスチャ座標データ（ｕ，ｖ）を生成する。
また、テクスチャエンジン回路１２は、メモリＩ／Ｆ回路１３を介して、ＳＲＡＭ１７あるいはＤＲＡＭ１６に、前記生成したテクスチャ座標データ（ｕ，ｖ）を含む読み出し要求を出力し、メモリＩ／Ｆ回路１３を介して、ＳＲＡＭ１７あるいはテクスチャバッファ２０に記憶されているテクスチャデータを読み出すことで、（ｓ，ｔ）データに対応したテクスチャアドレスに記憶された（Ｒ，Ｇ，Ｂ，α）データＳ１７を得る。
ここで、ＳＲＡＭ１７には、テクスチャバッファ２０に記憶されているテクスチャデータのコピーが記憶されている。
テクスチャエンジン回路１２は、読み出した（Ｒ，Ｇ，Ｂ，α）データＳ１７の（Ｒ，Ｇ，Ｂ）データと、前段のトライアングルＤＤＡ回路１１からのＤＤＡデータＳ１１に含まれる（Ｒ，Ｇ，Ｂ）データとを、（Ｒ，Ｇ，Ｂ，α）データＳ１７に含まれるαデータ（テクスチャα）が示す割合で混合し、画素データＳ１２を生成する。
テクスチャエンジン回路１２は、この画素データＳ１２を、メモリＩ／Ｆ回路１３に出力する。
なお、テクスチャバッファ２０には、ＭＩＰＭＡＰ（複数解像度テクスチャ）などの複数の縮小率に対応したテクスチャデータが記憶されている。ここで、何れの縮小率のテクスチャデータを用いるかは、所定のアルゴリズムを用いて、前記三角形単位で決定される。
【００４６】
テクスチャエンジン回路１２は、フルカラー方式の場合には、テクスチャバッファ２０から読み出した（Ｒ，Ｇ，Ｂ，α）データを直接用いる。一方、テクスチャエンジン回路１２は、インデックスカラー方式の場合には、予め作成したカラールックアップテーブル（ＣＬＵＴ）をテクスチャＣＬＵＴバッファ２３から読み出して、内蔵するＳＲＡＭに転送および記憶し、このカラールックアップテーブルを用いて、テクスチャバッファ２０から読み出したカラーインデックスに対応する（Ｒ，Ｇ，Ｂ）データを得る。
【００４７】
メモリＩ／Ｆ回路１３
また、メモリＩ／Ｆ回路１３は、テクスチャエンジン回路１２から入力した画素データＳ１２に対応するｚデータと、ｚバッファ２２に記憶されているｚデータとの比較を行い、入力した画素データＳ１２によって描画される画像が、前回、ディスプレイバッファ２１に書き込まれた画像より、手前（視点側）に位置するか否かを判断し、手前に位置する場合には、画像データＳ１２に対応するｚデータでｚバッファ２２に記憶されたｚデータを更新する。
また、メモリＩ／Ｆ回路１３は、必要に応じて、画像データＳ１２に含まれる（Ｒ，Ｇ，Ｂ）データと、既にディスプレイバッファ２１に記憶されている（Ｒ，Ｇ，Ｂ）データとを、画素データＳ１２に対応するαデータが示す混合値で混合する、いわゆるαブレンディング処理を行い、混合後の（Ｒ，Ｇ，Ｂ）データをディスプレイバッファ２１に書き込む（打ち込む）。
【００４８】
なお、メモリＩ／Ｆ回路１３によるＤＲＡＭ１６に対してのアクセスは、１６画素について同時に行なわれる。
【００４９】
ＣＲＴコントローラ回路１４
ＣＲＴコントローラ回路１４は、与えられた水平および垂直同期信号に同期して、図示しないＣＲＴに表示するアドレスを発生し、ディスプレイバッファ２１から表示データを読み出す要求をメモリＩ／Ｆ回路１３に出力する。この要求に応じて、メモリＩ／Ｆ回路１３は、ディスプレイバッファ２１から一定の固まりで表示データを読み出す。ＣＲＴコントローラ回路１４は、ディスプレイバッファ２１から読み出した表示データを記憶するＦＩＦＯ(First In First Out)回路を内蔵し、一定の時間間隔で、ＲＡＭＤＡＣ回路１５に、ＲＧＢのインデックス値を出力する。
【００５０】
ＲＡＭＤＡＣ回路１５
ＲＡＭＤＡＣ回路１５は、各インデックス値に対応するＲ，Ｇ，Ｂデータを記憶しており、ＣＲＴコントローラ回路１４から入力したＲＧＢのインデックス値に対応するデジタル形式のＲ，Ｇ，Ｂデータを、Ｄ／Ａコンバータに転送し、アナログ形式のＲ，Ｇ，Ｂデータを生成する。ＲＡＭＤＡＣ回路１５は、この生成されたＲ，Ｇ，ＢデータをＣＲＴに出力する。
【００５１】
以下、３次元コンピュータグラフィックシステム１の動作について説明する。ポリゴンレンダリングデータＳ４が、メインバス６を介してメインプロセッサ４からＤＤＡセットアップ回路１０に出力され、ＤＤＡセットアップ回路１０において、三角形の辺と水平方向の差分などを示す変分データＳ１０が生成される。
この変分データＳ１０は、トライアングルＤＤＡ回路１１に出力され、トライアングルＤＤＡ回路１１において、三角形内部の各画素における線形補間された（ｚ，Ｒ，Ｇ，Ｂ，α，ｓ，ｔ，ｑ，Ｆ）データが算出される。そして、この算出された（ｚ，Ｒ，Ｇ，Ｂ，α，ｓ，ｔ，ｑ，Ｆ）データと、三角形の各頂点の（ｘ，ｙ）データとが、ＤＤＡデータＳ１１として、トライアングルＤＤＡ回路１１からテクスチャエンジン回路１２に出力される。
【００５２】
次に、テクスチャエンジン回路１２において、ＤＤＡデータＳ１１が示す（ｓ，ｔ，ｑ）データについて、ｓデータをｑデータで除算する演算と、ｔデータをｑデータで除算する演算とが行われる。
このとき、８個の図３に示す除算回路３００によって、８画素分の除算「ｓ／ｑ」および「ｔ／ｑ」が同時に行われる。そして、除算結果「ｓ／ｑ」および「ｔ／ｑ」に、それぞれテクスチャサイズＵＳＩＺＥおよびＶＳＩＺＥが乗算され、テクスチャ座標データ（ｕ，ｖ）が生成される。
次に、メモリＩ／Ｆ回路１３を介して、テクスチャエンジン回路１２からＳＲＡＭ１７に、前記生成されたテクスチャ座標データ（ｕ，ｖ）を含む読み出し要求が出力され、メモリＩ／Ｆ回路１３を介して、ＳＲＡＭ１７に記憶された（Ｒ，Ｇ，Ｂ，α）データＳ１７が読み出される。
次に、テクスチャエンジン回路１２において、読み出した（Ｒ，Ｇ，Ｂ，α）データＳ１７の（Ｒ，Ｇ，Ｂ）データと、前段のトライアングルＤＤＡ回路１１からのＤＤＡデータＳ１１に含まれる（Ｒ，Ｇ，Ｂ）データとが、（Ｒ，Ｇ，Ｂ，α）データＳ１７に含まれるαデータ（テクスチャα）が示す割合で混合され、画素データＳ１２が生成される。
この画素データＳ１２は、テクスチャエンジン回路１２からメモリＩ／Ｆ回路１３に出力される。
【００５３】
そして、メモリＩ／Ｆ回路１３において、テクスチャエンジン回路１２から入力した画素データＳ１２に対応するｚデータと、ｚバッファ２２に記憶されているｚデータとの比較が行なわれ、入力した画素データＳ１２によって描画される画像が、前回、ディスプレイバッファ２１に書き込まれた画像より、手前（視点側）に位置するか否かが判断され、手前に位置する場合には、画像データＳ１２に対応するｚデータでｚバッファ２２に記憶されたｚデータが更新される。
【００５４】
次に、メモリＩ／Ｆ回路１３において、必要に応じて、画像データＳ１２に含まれる（Ｒ，Ｇ，Ｂ）データと、既にディスプレイバッファ２１に記憶されている（Ｒ，Ｇ，Ｂ）データとが、画素データＳ１２に対応するαデータが示す混合値で混合され、混合後の（Ｒ，Ｇ，Ｂ）データがディスプレイバッファ２１に書き込まれる。
【００５５】
以上説明したように、３次元コンピュータグラフィックシステム１によれば、テクスチャエンジン回路１２における「ｓ／ｑ」および「ｔ／ｑ」を算出する除算を、前述した図３に示す除算回路３００を用いて行う。
そのため、「ｓ／ｑ」および「ｔ／ｑ」を算出する除算を高速化でき、ＣＲＴに表示する３次元画像の動きの高速化および画質の向上を図ることができる。
【００５６】
本発明は上述した実施形態には限定されない。
例えば、上述した図１に示す除算回路３００では、符号付加器３１１を設けた場合を例示したが、ｓ／ｑの絶対値を算出する機能を実現する場合には、符号付加器３１１を設ける必要はない。
【００５７】
また、上述した図２に示す３次元コンピュータグラフィックシステム１では、ＳＲＡＭ１７を用いる構成を例示したが、ＳＲＡＭ１７を設けない構成にしてもよい。
また、図２に示すテクスチャバッファ２０およびテクスチャＣＬＵＴバッファ２３を、ＤＲＡＭ１６の外部に設けてもよい。
【００５８】
さらに、図２に示す３次元コンピュータグラフィックシステム１では、ポリゴンレンダリングデータを生成するジオメトリ処理を、メインプロセッサ４で行なう場合を例示したが、レンダリング回路５で行なう構成にしてもよい。
【００５９】
【発明の効果】
以上説明したように、本発明のデータ処理装置、除算回路および画像処理装置によれば、逆数器および乗算器を用いたデジタルデータの演算を高精度に行うことができる。
そのため、本発明の画像処理装置によれば、高精度な画像を表示する画像データを生成できる。
【図面の簡単な説明】
【図１】図１は、本発明の第１実施形態のデータ処理装置の構成図である。
【図２】図２は、本発明の第２実施形態の３次元コンピュータグラフィックシステムのシステム構成図である。
【図３】図３は、図２に示すテクスチャエンジン回路に設けられた除算回路の構成図である。
【図４】図４は、図３に示す除算回路の処理を説明するための図である。
【図５】図１は、従来のデータ処理装置の構成図である。
【符号の説明】
１…３次元コンピュータグラフィックシステム、２…メインメモリ、３…Ｉ／Ｏインタフェース回路、４…メインプロセッサ、５…レンダリング回路、６…メインバス、１０…ＤＤＡセットアップ回路、１１…トライアングルＤＤＡ回路、１２…テクスチャエンジン回路、１３…メモリＩ／Ｆ回路、１４…ＣＲＴコントローラ回路、１５…ＲＡＭＤＡＣ回路、１６…ＤＲＡＭ、１７…ＳＲＡＭ、５３…逆数器、５４…比較回路、５５…乗算器、５６…マルチプレクサ、３００…除算回路、３０１，３０２…絶対値演算器、３０３，３０４…プライオリティエンコーダ、３０５，３０６…シフト演算器、３０７…減算器３０７、３１０…シフト演算器
【図１】
0004244444.tif 000002
【図２】
0004244444.tif 000003
【図３】
0004244444.tif 000004
【図４】
0004244444.tif 000005
【図５】
0004244444.tif 000006