(57)【特許請求の範囲】
【請求項１】
整数部および小数部を持つ２進数のデータｑと、整数部のみからなるデータｍａｘｅを用いて、下記式（１）に示す演算を行う演算処理装置回路において、
前記データｑを正規化して指数ｑｅおよび仮数ｑｍを生成する正規化回路と、
前記仮数ｑｍを入力し、当該仮数ｑｍに１を加算した２の対数「ｌｏｇ２（｛１，ｑｍ｝）」としたとき、「ｌｏｇ２（｛１，ｑｍ｝）−ｑｍ」を示すデータμを出力するデータ出力手段と、
前記データｑｅと前記ｑｍとをビット結合したデータと、前記データｍａｘｅと前記データμとをビット結合したデータとを加算してデータＭを算出する加算回路と
を有する演算処理回路。
【数１】
Ｍ＝ｌｏｇ２ｑ＋ｍａｘｅ
【請求項２】
前記データ出力手段は、
前記仮数ｑｍと前記データμとの対応表を有し、
入力した前記仮数ｑｍに対応する前記データμを前記対応表を用いて得て、当該得たデータμを出力する、
請求項１に記載の演算処理回路。
【請求項３】
前記データ出力手段は、
前記仮数ｑｍを入力して前記データμを生成するプログラムを有し、
当該プログラムに基づいて処理を行って、入力した前記仮数ｑｍに対応する前記データμを得て、当該得たデータμを出力する
請求項１に記載の演算処理回路。
【請求項４】
整数部および小数部を持つ２進数のデータｑと、整数部のみからなるデータｍａｘｅと、データＬ，Ｋとを用いて、下記式（２）に示す演算を行ってデータＬＯＤを算出する演算処理回路において、
前記データｑを正規化して指数ｑｅおよび仮数ｑｍを生成する正規化回路と、
前記データｑｅと前記ｑｍとをビット結合したデータを、前記データＬが示す値だけＭＳＢ(Most Significant Bit)に向けてシフトする第１のシフト回路と、
前記第１のシフト回路の出力を反転する第１の反転回路と、
前記仮数ｑｍを入力し、当該仮数ｑｍに１を加算した２の対数「ｌｏｇ２（｛１，ｑｍ｝）」としたとき、「ｌｏｇ２（｛１，ｑｍ｝）−ｑｍ」を示すデータμを出力するデータ出力手段と、
前記データｍａｘｅと前記データμとをビット結合したデータを、前記データＬが示す値だけＭＳＢに向けてシフトする第２のシフト回路と、
前記第２のシフト回路の出力を反転する第２の反転回路と、
前記データＫと２進数の「１０」とをビット結合したデータと、前記第１のシフト回路の出力と、前記第２のシフト回路の出力とを加算する加算回路と、
前記加算回路の出力を所定ビット内にクランプ処理して前記データＬＯＤを生成するクランプ回路と
を有する演算処理回路。
【数２】
ＬＯＤ＝Ｃｌａｍｐ（（（ｌｏｇ２１／ｑ）＋ｍａｘｅ）＜＜Ｌ＋Ｋ）
…（２）
【請求項５】
前記データ出力手段は、
前記仮数ｑｍと前記データμとの対応表を有し、
入力した前記仮数ｑｍに対応する前記データμを前記対応表を用いて得て、当該得たデータμを出力する
請求項４に記載の演算処理回路。
【請求項６】
前記データ出力手段は、
前記仮数ｑｍを入力して前記データμを生成するプログラムを有し、
当該プログラムに基づいて処理を行って、入力した前記仮数ｑｍに対応する前記データμを得て、当該得たデータμを出力する
請求項４に記載の演算処理回路。
【請求項７】
立体モデルを共通の処理条件が適用される複数の単位図形の組み合わせで表現し、各画素についての画像データに含まれる同次座標（ｓ，ｔ）および同次項ｑから縮小率を決定し、当該決定した縮小率に応じたテクスチャデータを前記単位図形と対応付ける画像処理装置において、
相互に異なる縮小率に対応した複数のテクスチャデータを記憶した記憶手段と、
同時に処理が実行される複数の画素のうち、処理対象となっている前記単位図形の内側に位置する画素のなかから、代表点となる画素を決定する代表点決定回路と、
前記処理対象となっている前記単位図形の頂点の同次座標（ｓ，ｔ）および同次項ｑの最大指数を示す整数部のみからなるｍａｘｅデータと、整数部および小数部を持ち前記決定された代表点に対応する前記同次項ｑと、データＬ，Ｋとを用いて、下記式（３）から縮小率ＬＯＤを算出する縮小率算出回路と、
前記算出された縮小率ＬＯＤを用いて、前記記憶手段からテクスチャデータを読み出す読み出し回路と
を有し、
前記縮小率算出回路は、
前記データｑを正規化して指数ｑｅおよび仮数ｑｍを生成する正規化回路と、
前記データｑｅと前記ｑｍとをビット結合したデータを、前記データＬが示す値だけＭＳＢ(Most Significant Bit)に向けてシフトする第１のシフト回路と、
前記第１のシフト回路の出力を反転する第１の反転回路と、
前記仮数ｑｍを入力し、当該仮数ｑｍに１を加算した２の対数「ｌｏｇ２（｛１，ｑｍ｝）」としたとき、「ｌｏｇ２（｛１，ｑｍ｝）−ｑｍ」を示すデータμを出力するデータ出力手段と、
前記データｍａｘｅと前記データμとをビット結合したデータを、前記データＬが示す値だけＭＳＢに向けてシフトする第２のシフト回路と、
前記第２のシフト回路の出力を反転する第２の反転回路と、
前記データＫと２進数の「１０」とをビット結合したデータと、前記第１のシフト回路の出力と、前記第２のシフト回路の出力とを加算する加算回路と、
前記加算回路の出力を所定ビット内にクランプ処理して前記縮小率ＬＯＤを生成するクランプ回路と
を有する
画像処理装置。
【数３】
ＬＯＤ＝Ｃｌａｍｐ（（（ｌｏｇ２１／ｑ）＋ｍａｘｅ）＜＜Ｌ＋Ｋ）
…（３）
【請求項８】
前記同時に処理が実行される複数の画素のうち、処理対象となっている前記単位図形の内側に位置する画素の処理結果のみを有効なものとして用いる
請求項７に記載の画像処理装置。
【請求項９】
前記読み出し手段は、前記記憶手段の記憶領域における、前記決定された縮小率ＬＯＤに応じた基準アドレスと、前記同次座標（ｓ，ｔ）および同次項ｑに応じたテクスチャ内アドレスとによって決定される物理アドレスから、各画素に対応した前記テクスチャデータを読み出す
請求項７に記載の画像処理装置。
【請求項１０】
立体モデルを共通の処理条件が適用される複数の単位図形の組み合わせで表現し、各画素についての画像データに含まれる同次座標（ｓ，ｔ）および同次項ｑから縮小率を決定し、当該決定した縮小率に応じたテクスチャデータを前記単位図形と対応付ける画像処理装置において、
相互に異なる縮小率に対応した複数のテクスチャデータを記憶した記憶手段と、
同時に処理が実行される複数の画素のうち、処理対象となっている前記単位図形の内側に位置する画素のなかから、代表点となる画素を決定する代表点決定回路と、
前記処理対象となっている前記単位図形の頂点の同次座標（ｓ，ｔ）および同次項ｑの最大指数を示す整数部のみからなるｍａｘｅデータと、整数部および小数部を持ち前記決定された代表点に対応する前記同次項ｑを用いて、下記式（４）から縮小率ＬＯＤを算出する縮小率算出回路と、
前記算出された縮小率ＬＯＤを用いて、前記記憶手段からテクスチャデータを読み出す読み出し回路と
を有し、
前記縮小率算出回路は、
前記データｑを正規化して指数ｑｅおよび仮数ｑｍを生成する正規化回路と、
前記仮数ｑｍを入力し、当該仮数ｑｍに１を加算した２の対数「ｌｏｇ２（｛１，ｑｍ｝）」としたとき、「ｌｏｇ２（｛１，ｑｍ｝）」を示すデータｂを出力するデータ出力手段と、
前記データｑｅと前記データｂとをビット結合したデータを反転して出力する第１の反転回路と、
前記データｍａｘｅを反転して出力する第２の反転回路と、
２進数のデータ「１０」と、前記第１の反転回路の出力と、前記第２の反転回路の出力とを加算する第１の加算回路と、
前記第１の加算回路の出力を、前記データＬが示す値だけＭＳＢに向けてシフトするシフト回路と、
前記シフト回路の出力と、前記データＫとを加算する第２の加算回路と、
前記第２の加算回路の出力を所定ビット内にクランプ処理して前記縮小率ＬＯＤを生成するクランプ回路と
を有する
画像処理装置。
【数４】
ＬＯＤ＝Ｃｌａｍｐ（（（ｌｏｇ２１／ｑ）＋ｍａｘｅ）＜＜Ｌ＋Ｋ）
…（４）
【請求項１１】
正規化手段、データ出力手段、加算手段とを有する演算処理装置を用いて、整数部および小数部を持つ２進数のデータｑと、整数部のみからなるデータｍａｘｅを用いて、下記式（５）に示す演算を行う演算処理方法において、
前記正規化手段が、前記データｑを正規化して指数ｑｅおよび仮数ｑｍを生成し、
前記データ出力手段が、前記仮数ｑｍと、当該仮数ｑｍに１を加算した２の対数「ｌｏｇ２（｛１，ｑｍ｝）」としたとき「ｌｏｇ２（｛１，ｑｍ｝）−ｑｍ」を示すデータμの対応表、あるいは前記仮数ｑｍを入力して前記μデータを生成するプログラムを用いて、前記仮数ｑｍに対応する前記データμを得て、
前記加算手段が、前記データｑｅと前記ｑｍとをビット結合したデータと、前記データｍａｘｅと前記データμとをビット結合したデータとを加算してデータＭを算出する
演算処理方法。
【数５】
Ｍ＝ｌｏｇ２ｑ＋ｍａｘｅ                            …（５）
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、演算処理装置およびその方法と画像処理装置とに関し、特に、２の対数演算を含む演算の高速化および装置の小規模化を図れる演算処理装置およびその方法と画像処理装置とに関する。
【０００２】
【従来の技術】
種々のＣＡＤ(Computer Aided Design) システムや、アミューズメント装置などにおいて、コンピュータグラフィックスがしばしば用いられている。特に、近年の画像処理技術の進展に伴い、３次元コンピュータグラフィックスを用いたシステムが急速に普及している。
このような３次元コンピュータグラフィックスでは、各画素（ピクセル）に対応する色を決定するときに、各画素の色の値を計算し、この計算した色の値を、当該画素に対応するディスプレイバッファ（フレームバッファ）のアドレスに書き込むレンダリング(Rendering) 処理を行う。
レンダリング処理の手法の一つに、ポリゴン（Polygon)レンダリングがある。この手法では、立体モデルを三角形の単位図形（ポリゴン）の組み合わせとして表現しておき、このポリゴンを単位として描画を行なうことで、表示画面の色を決定する。
【０００３】
ポリゴンレンダリングでは、物理座標系における三角形の各頂点についての、座標（ｘ，ｙ，ｚ）と、色データ（Ｒ，Ｇ，Ｂ）と、張り合わせのイメージパターンを示すテクスチャデータの同次座標（ｓ，ｔ）および同次項ｑの値とを三角形の内部で補間する処理が行われる。
ここで、同次項ｑは、簡単にいうと、拡大縮小率のようなもので、実際のテクスチャバッファのＵＶ座標系における座標、すなわち、テクスチャ座標データ（Ｕ，Ｖ）は、同次座標（ｓ，ｔ）を同次項ｑで除算した（ｓ／ｑ，ｔ／ｑ）＝（ｕ，ｖ）に、それぞれテクスチャサイズＵＳＩＺＥおよびＶＳＩＺＥを乗じた乗算結果に応じたものとなる。
【０００４】
このようなポリゴンレンダリングを用いた３次元コンピュータグラフィックシステムでは、描画を行う際に、それぞれ異なる縮小率に対応する複数のテクスチャデータを記憶したテクスチャバッファから、最適な縮小率のテクスチャデータを読み出し、この読み出したテクスチャデータを、立体モデルの表面に画素単位で張り付け、リアリティの高い画像データを得るテクスチャマッピング処理を行う。
このとき、読み出しを行うテクスチャデータの縮小率は、例えば、画素単位で決定される。
【０００５】
【発明が解決しようとする課題】
上述したような３次元コンピュータグラフィックシステムでは、テクスチャバッファから読み出しを行うテクスチャデータの縮小率を各画素についてどのように決定するかが、表示画像の高画質化および小規模化を図る上で重要である。
【０００６】
本発明は上述した従来技術の問題点に鑑みてなされ、上述した３次元コンピュータグラフィックシステムのような画像処理装置並びにその他の装置において使用可能であり、２の対数演算を含む演算を小規模な回路構成で実現できる演算処理回路を提供することを目的とする。
また、本発明は、小規模な装置構成で、高画質な画像表示を行うことができる画像処理装置を提供することを目的とする。
また、本発明は、演算を高速に行うことができる演算処理方法を提供することを目的とする。
【０００７】
【課題を解決するための手段】
上述した従来技術の問題点を解決し、上述した目的を達成するために、本発明の第１の観点の演算処理回路は、整数部および小数部を持つ２進数のデータｑと、整数部のみからなるデータｍａｘｅを用いて、下記式（６）に示す演算を行う演算処理装置であって、前記データｑを正規化して指数ｑｅおよび仮数ｑｍを生成する正規化回路と、前記仮数ｑｍを入力し、当該仮数ｑｍに１を加算した２の対数「ｌｏｇ２（｛１，ｑｍ｝）」としたとき、「ｌｏｇ２（｛１，ｑｍ｝）−ｑｍ」を示すデータμを出力するデータ出力手段と、前記データｑｅと前記ｑｍとをビット結合したデータと、前記データｍａｘｅと前記データμとをビット結合したデータとを加算する加算回路とを有する。
【０００８】
【数６】
Ｍ＝ｌｏｇ２ｑ＋ｍａｘｅ
【０００９】
本発明の第１の観点の演算処理回路では、正規化回路において、データｑが正規化されて指数ｑｅおよび仮数ｑｍが生成される。
次に、仮数ｑｍがデータ出力手段に出力され、データ出力手段において、仮数ｑｍに対応した「ｌｏｇ2 （｛１，ｑｍ｝）−ｑｍ」を示すデータμが得られ、データμが出力される。
次に、加算回路において、データｑｅとｑｍとをビット結合したデータと、データｍａｘｅと前記データμとをビット結合したデータとが加算されてデータＭが算出される。
本発明の第１の観点の演算処理回路では、ｌｏｇ2 （｛１，ｑｍ｝）とデータｑｍとが近似するためにデータμが小数部のみからなることを利用して、整数部のみからなるデータｍａｘｅとデータμとをビット結合して、データｍａｘｅの加算を実現する。そのため、加算回路を用いた加算処理を削減することができ、小規模化および高速化を図れる。
【００１０】
本発明の第１の観点の演算処理回路は、好ましくは、前記データ出力手段は、前記仮数ｑｍと前記μデータとの対応表を有し、入力した前記仮数ｑｍに対応する前記データμを前記対応表を用いて得て、当該得たデータμを出力する。
【００１１】
また、本発明の第１の観点の演算処理回路は、好ましくは、前記データ出力手段は、前記仮数ｑｍを入力して前記μデータを生成するプログラムを有し、当該プログラムに基づいて処理を行って、入力した前記仮数ｑｍに対応する前記データμを得て、当該得たデータμを出力する。
【００１２】
また、本発明の第２の観点の演算処理回路は、整数部および小数部を持つ２進数のデータｑと、整数部のみからなるデータｍａｘｅと、データＬ，Ｋとを用いて、下記式（７）に示す演算を行ってデータＬＯＤを算出する演算処理装置であって、前記データｑを正規化して指数ｑｅおよび仮数ｑｍを生成する正規化回路と、前記データｑｅと前記ｑｍとをビット結合したデータを、前記データＬが示す値だけＭＳＢ(Most Significant Bit)に向けてシフトする第１のシフト回路と、前記第１のシフト回路の出力を反転する第１の反転回路と、前記仮数ｑｍを入力し、当該仮数ｑｍに１を加算した２の対数「ｌｏｇ２（｛１，ｑｍ｝）」としたとき、「ｌｏｇ２（｛１，ｑｍ｝）−ｑｍ」を示すデータμを出力するデータ出力手段と、前記データｍａｘｅと前記データμとをビット結合したデータを、前記データＬが示す値だけＭＳＢに向けてシフトする第２のシフト回路と、前記第２のシフト回路の出力を反転する第２の反転回路と、前記データＫと２進数の「１０」とをビット結合したデータと、前記第１のシフト回路の出力と、前記第２のシフト回路の出力とを加算する加算回路と、前記加算回路の出力を所定ビット内にクランプ処理して前記データＬＯＤを生成するクランプ回路とを有する。
【００１３】
【数７】
ＬＯＤ＝Ｃｌａｍｐ（（（ｌｏｇ2 １／ｑ）＋ｍａｘｅ）＜＜Ｌ＋Ｋ）…（７）
【００１４】
また、本発明の第２の観点の演算処理回路では、正規化回路において、データｑが正規化され、指数ｑｅおよび仮数ｑｍが生成される。
そして、データｑｅとｑｍとをビット結合したデータが、第１のシフト回路に出力され、第１のシフト回路において、当該データが、データＬが示す値だけＭＳＢに向けてシフトされて出力される。
次に、第１のシフト回路の出力が、第１の反転回路において反転されて出力される。
また、仮数ｑｍがデータ出力手段に入力され、仮数ｑｍに対応した「ｌｏｇ2 （｛１，ｑｍ｝）−ｑｍ」を示すデータμがデータ出力手段から出力される。
そして、データｍａｘｅとデータμとをビット結合したデータが、第２のシフト回路において、前記データＬが示す値だけＭＳＢに向けてシフトされて出力される。
次に、第２のシフト回路の出力が、第２のシフト回路において反転されて出力される。
そして、データＫと２進数の「１０」とをビット結合したデータと、第１のシフト回路の出力と、第２のシフト回路の出力とが、加算回路において加算される。
次に、クランプ回路において、加算回路の出力が、所定ビット内にクランプ処理されてデータＬＯＤが生成される。
【００１５】
本発明の第２の観点の演算処理回路では、ｌｏｇ2 （｛１，ｑｍ｝）とデータｑｍとが近似するためにデータμが小数部のみからなることを利用して、整数部のみからなるデータｍａｘｅとデータμとをビット結合して、データｍａｘｅの加算を実現する。そのため、加算回路を用いた加算処理を削減することができ、小規模化および高速化を図れる。
【００１６】
また、本発明の第１の観点の画像処理装置は、立体モデルを共通の処理条件が適用される複数の単位図形の組み合わせで表現し、各画素についての画像データに含まれる同次座標（ｓ，ｔ）および同次項ｑから縮小率を決定し、当該決定した縮小率に応じたテクスチャデータを前記単位図形と対応付ける画像処理装置であって、相互に異なる縮小率に対応した複数のテクスチャデータを記憶した記憶手段と、同時に処理が実行される複数の画素のうち、処理対象となっている前記単位図形の内側に位置する画素のなかから、代表点となる画素を決定する代表点決定回路と、前記処理対象となっている前記単位図形の頂点の同次座標（ｓ，ｔ）および同次項ｑの最大指数を示す整数部のみからなるｍａｘｅデータと、前記決定された代表点に対応する整数部および小数部を持つ前記同次項ｑと、データＬ，Ｋを用いて、下記式（８）から縮小率ＬＯＤを算出する縮小率算出回路と、前記算出された縮小率ＬＯＤを用いて、前記記憶手段からテクスチャデータを読み出す読み出し回路とを有し、前記縮小率算出回路は、前記データｑを正規化して指数ｑｅおよび仮数ｑｍを生成する正規化回路と、前記データｑｅと前記ｑｍとをビット結合したデータを、前記データＬが示す値だけＭＳＢに向けてシフトする第１のシフト回路と、前記第１のシフト回路の出力を反転する第１の反転回路と、前記仮数ｑｍを入力し、当該仮数ｑｍに１を加算した２の対数「ｌｏｇ２（｛１，ｑｍ｝）」としたとき、「ｌｏｇ２（｛１，ｑｍ｝）−ｑｍ」を示すデータμを出力するデータ出力手段と、前記データｍａｘｅと前記データμとをビット結合したデータを、前記データＬが示す値だけＭＳＢに向けてシフトする第２のシフト回路と、前記第２のシフト回路の出力を反転する第２の反転回路と、前記データＫと２進数の「１０」とをビット結合したデータと、前記第１のシフト回路の出力と、前記第２のシフト回路の出力とを加算する加算回路と、前記加算回路の出力を所定ビット内にクランプ処理して前記データＬＯＤを生成するクランプ回路とを有する。
【数８】
ＬＯＤ＝Ｃｌａｍｐ（（（ｌｏｇ２１／ｑ）＋ｍａｘｅ）＜＜Ｌ＋Ｋ）
…（８）
【００１７】
本発明の第１の観点の画像処理装置では、代表点決定回路において、同時に処理が実行される複数の画素のうち、処理対象となっている単位図形の内側に位置する画素のなかから、代表点となる画素が決定される。
次に、縮小率算出回路において、処理対象となっている前記単位図形の頂点の同次座標（ｓ，ｔ）および同次項ｑの最大指数を示す整数部のみからなるｍａｘｅデータと、前記決定された代表点に対応する整数部および小数部を持つ前記同次項ｑと、データＬ，Ｋを用いて、下記式（８）から縮小率ＬＯＤが算出される。
当該縮小率算出回路における縮小率算出処理の作用は、第２の演算処理回路の作用と同じである。
次に、読み出し回路において、前記算出された縮小率ＬＯＤを用いて、記憶手段からテクスチャデータが読み出される。
【００１８】
また、本発明の第２の観点の画像処理装置は、立体モデルを共通の処理条件が適用される複数の単位図形の組み合わせで表現し、各画素についての画像データに含まれる同次座標（ｓ，ｔ）および同次項ｑから縮小率を決定し、当該決定した縮小率に応じたテクスチャデータを前記単位図形と対応付ける画像処理装置であって、相互に異なる縮小率に対応した複数のテクスチャデータを記憶した記憶手段と、同時に処理が実行される複数の画素のうち、処理対象となっている前記単位図形の内側に位置する画素のなかから、代表点となる画素を決定する代表点決定回路と、前記処理対象となっている前記単位図形の頂点の同次座標（ｓ，ｔ）および同次項ｑの最大指数を示す整数部のみからなるｍａｘｅデータと、前記決定された代表点に対応する整数部および小数部を持つ前記同次項ｑを用いて、下記式（９）から縮小率ＬＯＤを算出する縮小率算出回路と、前記算出された縮小率ＬＯＤを用いて、前記記憶手段からテクスチャデータを読み出す読み出し回路とを有し、前記縮小率算出回路は、前記データｑを正規化して指数ｑｅおよび仮数ｑｍを生成する正規化回路と、前記仮数ｑｍを入力し、当該仮数ｑｍに１を加算した２の対数「ｌｏｇ２（｛１，ｑｍ｝）」としたとき、「ｌｏｇ２（｛１，ｑｍ｝）」を示すデータｂを出力するデータ出力手段と、前記データｑｅと前記データｂとをビット結合したデータを反転して出力する第１の反転回路と、前記データｍａｘｅを反転して出力する第２の反転回路と、２進数のデータ「１０」と、前記第１の反転回路の出力と、前記第２の反転回路の出力とを加算する第１の加算回路と、前記第１の加算回路の出力を、前記データＬが示す値だけＭＳＢに向けてシフトするシフト回路と、前記シフト回路の出力と、前記データＫとを加算する第２の加算回路と、前記第２の加算回路の出力を所定ビット内にクランプ処理して前記データＬＯＤを生成するクランプ回路とを有する。
【００１９】
本発明の第２の観点の画像処理装置では、縮小率算出回路において、以下に示すようにして縮小率ＬＯＤが算出される。
すなわち、正規化回路において、データｑが正規化されて指数ｑｅおよび仮数ｑｍが生成される。
そして、データ出力手段が仮数ｑｍを入力して「ｌｏｇ2 （｛１，ｑｍ｝）」を示すデータｂを出力する。
次に、第１の反転回路において、データｑｅとデータｂとをビット結合したデータが反転されて出力される。
また、第２の反転回路において、データｍａｘｅが反転されて出力される。
次に、第１の加算回路において、２進数のデータ「１０」と、第１の反転回路の出力と、第２の反転回路の出力とが加算される。
そして、シフト回路において、第１の加算回路の出力が、データＬが示す値だけＭＳＢに向けてシフトされて出力される。
次に、第２の加算回路において、第１のシフト回路の出力と、データＫとが加算される。
次に、クランプ回路において、第２の加算回路の出力が、所定ビット内にクランプ処理されて縮小率ＬＯＤが生成される。
【数９】
ＬＯＤ＝Ｃｌａｍｐ（（（ｌｏｇ2 １／ｑ）＋ｍａｘｅ）＜＜Ｌ＋Ｋ）…（９）
【００２０】
また、本発明の演算処理方法は、正規化手段、データ出力手段、加算手段とを有する演算処理装置を用いて、整数部および小数部を持つ２進数のデータｑと、整数部のみからなるデータｍａｘｅを用いて、下記式（５）に示す演算を行う演算処理方法において、
前記正規化手段が、前記データｑを正規化して指数ｑｅおよび仮数ｑｍを生成し、
前記データ出力手段が、前記仮数ｑｍと、当該仮数ｑｍに１を加算した２の対数「ｌｏｇ２（｛１，ｑｍ｝）」としたとき「ｌｏｇ２（｛１，ｑｍ｝）−ｑｍ」を示すデータμの対応表、あるいは前記仮数ｑｍを入力して前記μデータを生成するプログラムを用いて、前記仮数ｑｍに対応する前記データμを得て、
前記加算手段が、前記データｑｅと前記ｑｍとをビット結合したデータと、前記データｍａｘｅと前記データμとをビット結合したデータとを加算してデータＭを算出する。
【００２１】
【数１０】
Ｍ＝ｌｏｇ2 ｑ＋ｍａｘｅ                            …（１０）
【００２２】
【発明の実施の形態】
以下、本実施形態においては、家庭用ゲーム機などに適用される、任意の３次元物体モデルに対する所望の３次元画像をＣＲＴ(Cathode Ray Tube)などのディスプレイ上に高速に表示する３次元コンピュータグラフィックシステムに、本発明の除算回路を適用した場合について説明する。
図１は、本実施形態の３次元コンピュータグラフィックシステム１のシステム構成図である。
３次元コンピュータグラフィックシステム１は、立体モデルを単位図形である三角形（ポリゴン）の組み合わせとして表現し、このポリゴンを描画することで表示画面の各画素の色を決定し、ディスプレイに表示するポリゴンレンダリング処理を行うシステムである。
また、３次元コンピュータグラフィックシステム１では、平面上の位置を表現する（ｘ，ｙ）座標の他に、奥行きを表すｚ座標を用いて３次元物体を表し、この（ｘ，ｙ，ｚ）の３つの座標で３次元空間の任意の一点を特定する。
【００２３】
図１に示すように、３次元コンピュータグラフィックシステム１は、メインメモリ２、Ｉ／Ｏインタフェース回路３、メインプロセッサ４およびレンダリング回路５が、メインバス６を介して接続されている。
以下、各構成要素の機能について説明する。
メインプロセッサ４は、例えば、ゲームの進行状況などに応じて、メインメモリ２から必要なグラフィックデータを読み出し、このグラフィックデータに対してクリッピング(Clipping)処理、ライティング(Lighting)処理およびジオメトリ(Geometry)処理などを行い、ポリゴンレンダリングデータを生成する。メインプロセッサ４は、ポリゴンレンダリングデータＳ４を、メインバス６を介してレンダリング回路５に出力する。
Ｉ／Ｏインタフェース回路３は、必要に応じて、外部からポリゴンレンダリングデータを入力し、これをメインバス６を介してレンダリング回路５に出力する。
【００２４】
ここで、ポリゴンレンダリングデータは、ポリゴンの各３頂点の（ｘ，ｙ，ｚ，Ｒ，Ｇ，Ｂ，α，ｓ，ｔ，ｑ，Ｆ）のデータを含んでいる。
ここで、（ｘ，ｙ，ｚ）データは、ポリゴンの頂点の３次元座標を示し、（Ｒ，Ｇ，Ｂ）データは、それそれ当該３次元座標における赤、緑、青の輝度値を示している。
データαは、これから描画する画素と、ディスプレイバッファ２１に既に記憶されている画素とのＲ，Ｇ，Ｂデータのブレンド（混合）係数を示している。
（ｓ，ｔ，ｑ）データのうち、（ｓ，ｔ）は、対応するテクスチャの同次座標を示しており、ｑは同次項を示している。ここで、「ｓ／ｑ」および「ｔ／ｑ」に、それぞれテクスチャサイズＵＳＩＺＥおよびＶＳＩＺＥを乗じてテクスチャ座標データ（ｕ，ｖ）が得られる。テクスチャバッファ２０に記憶されたテクスチャデータへのアクセスは、テクスチャ座標データ（ｕ，ｖ）を用いて行われる。
Ｆデータは、フォギング処理において用いられる混合係数を示している。
【００２５】
以下、レンダリング回路５について詳細に説明する。
図１に示すように、レンダリング回路５は、ＤＤＡ(Digital Differential Anarizer) セットアップ回路１０、トライアングルＤＤＡ回路１１、テクスチャエンジン回路１２、メモリＩ／Ｆ回路１３、ＣＲＴコントローラ回路１４、ＲＡＭＤＡＣ回路１５、ＤＲＡＭ１６およびＳＲＡＭ１７を有する。
ここで、テクスチャエンジン回路１２が、本発明の請求項１０の画像処理装置に対応している。
ＤＲＡＭ１６は、テクスチャバッファ２０、ディスプレイバッファ２１、ｚバッファ２２およびテクスチャＣＬＵＴバッファ２３として機能する。
【００２６】
ＤＤＡセットアップ回路１０
ＤＤＡセットアップ回路１０は、後段のトライアングルＤＤＡ回路１１において物理座標系上の三角形の各頂点の値を線形補間して、三角形の内部の各画素の色と深さ情報を求めるに先立ち、ポリゴンレンダリングデータＳ４が示す（ｚ，Ｒ，Ｇ，Ｂ，α，ｓ，ｔ，ｑ，Ｆ）データについて、三角形の辺と水平方向の差分などを求めるセットアップ演算を行う。
このセットアップ演算は、具体的には、開始点の値と終点の値と、開始点と終点との距離を用いて、単位長さ移動した場合における、求めようとしている値の変分を算出する。
【００２７】
すなわち、ＤＤＡセットアップ回路１０は、各画素について、（ｓ，ｔ，ｑ）データのｘ方向の変分であるｄｓｄｘ，ｄｔｄｘ，ｄｑｄｘと、ｙ方向の変分であるｄｓｄｙ，ｄｔｄｙ，ｄｑｄｙとを生成する。
ＤＤＡセットアップ回路１０は、算出した変分データＳ１０をトライアングルＤＤＡ回路１１に出力する。
【００２８】
トライアングルＤＤＡ回路１１
トライアングルＤＤＡ回路１１は、ＤＤＡセットアップ回路１０から入力した変分データＳ１０を用いて、三角形内部の各画素における線形補間された（ｚ，Ｒ，Ｇ，Ｂ，α，ｓ，ｔ，ｑ，Ｆ）データを算出する。
また、トライアングルＤＤＡ回路１１は、並行して処理を行う８画素について、処理対象となる三角形の内部に位置するか否かを示すそれぞれ１ビットの有効ビットデータＩ1 〜Ｉ8 を生成する。
有効ビットデータＩ1 〜Ｉ8 は、例えば、三角形の内部に位置する画素について「１」とし、三角形の外部に位置する画素について「０」とする。
具体的には、図２に示すように、ｘ，ｙ座標系に位置する三角形２５０について有効ビットデータＩ1 〜Ｉ8 が決定される。
なお、図２において、実線は、同時に処理が行なわれる８（＝２×４）画素が属する矩形領域を示している。
トライアングルＤＤＡ回路１１は、各画素の（ｘ，ｙ）データと、当該（ｘ，ｙ）座標における（ｚ，Ｒ，Ｇ，Ｂ，α，ｓ，ｔ，ｑ，Ｆ）データと、有効ビットデータＩ1 〜Ｉ8 と、処理対象となる三角形の頂点のｓ，ｔ，ｑデータの最大指数を示すｍａｘｅデータとを、ＤＤＡデータＳ１１としてテクスチャエンジン回路１２に出力する。
本実施形態では、トライアングルＤＤＡ回路１１は、並行して処理を行う矩形内に位置する８（＝２×４）画素分を単位として、ＤＤＡデータＳ１１をテクスチャエンジン回路１２に出力する。
【００２９】
テクスチャエンジン回路１２
テクスチャエンジン回路１２は、テクスチャデータの縮小率の選択処理、「ｓ／ｑ」および「ｔ／ｑ」の算出処理、テクスチャ座標データ（ｕ，ｖ）の算出処理、テクスチャアドレス（Ｕ，Ｖ）の算出処理、テクスチャバッファ２０からの（Ｒ，Ｇ，Ｂ，ｔα）データの読み出し処理、ＭＩＰＭＡＰ処理、および、混合処理（テクスチャαブレンディング処理）を順に、例えばパイプライン方式で行う。
このとき、例えば、テクスチャデータの縮小率の選択処理と、「ｓ／ｑ」および「ｔ／ｑ」の算出処理とを並列に処理する場合もある。
なお、テクスチャエンジン回路１２は、所定の矩形領域内に位置する８画素についての処理を同時に並行して行う。
また、テクスチャエンジン回路１２は、処理対象の三角形内に位置する画素については同じパターンのテクスチャデータを用いる。但し、選択するテクスチャデータの縮小率は、同時に処理を行う矩形領域内に位置する８画素を単位として決定する。
【００３０】
図３は、テクスチャエンジン回路１２の構成図である。
図３に示すように、テクスチャエンジン回路１２は、代表点決定回路３０１、ｑデータ選択回路３０２、縮小率演算回路３０４、テクスチャデータ読み出し回路３０５、テクスチャブレンド回路３０６およびＭＩＰＭＡＰ処理回路３０７を有する。
ここで、前述したように、テクスチャエンジン回路１２が請求項１０に係わる画像処理装置に対応しており、テクスチャバッファ２０が記憶手段に対応し、代表点決定回路３０１が代表点決定回路に対応し、縮小率演算回路３０４が縮小率算出回路に対応し、テクスチャデータ読み出し回路３０５が読み出し回路に対応している。
【００３１】
〔代表点決定回路３０１〕
代表点決定回路３０１は、トライアングルＤＤＡ回路１１から入力した、ＤＤＡデータＳ１１に含まれる有効ビットデータＩ1 〜Ｉ8 から、代表点となる画素を決定し、当該決定した代表点を示す代表点指示データＳ３０１をｑデータ選択回路３０２に出力する。
具体的には、代表点決定回路３０１は、同時に処理される２行×４列の８画素のうち、処理対象となっている三角形の内部に位置するもののなかで、当該８画素が配置される矩形領域の中心に最も近い画素あるいは優先順位が最も高い画素を代表点として決定する。
【００３２】
〔ｑデータ選択回路３０２〕
ｑデータ選択回路３０２は、ＤＤＡデータＳ１１に含まれる８画素分の（ｓ，ｔ，ｑ）データＳ１１ａ1 〜Ｓ１１ａ8 を入力し、これらのうち、代表点指示データＳ３０１によって示される画素に対応するｑデータを選択し、これをｑデータＳ３０２として縮小率演算回路３０４に出力する。
【００３３】
縮小率演算回路３０４は、トライアングルＤＤＡ回路１１からのｍａｘｅデータＳ１１ｃと、ｑ選択回路３０２からのｑデータＳ３０２とに基づいて、テクスチャデータの縮小率ＬＯＤを算出する。
ここで、ｍａｘｅデータＳ１１ｃは、例えば図２に示すような処理対象の三角形の頂点のｓ，ｔ，ｑデータの指数のうち、最大の指数を示している。
このように、縮小率演算回路３０４では、代表点決定回路３０１において代表点として決定された画素のｑデータと、ｍａｘｅデータＳ１１ｃとを用いて縮小率を算出し、これを縮小率ＬＯＤとしてテクスチャデータ読み出し回路３０５に出力する。
【００３４】
ここで、縮小率ＬＯＤは、元画像のテクスチャデータを、どの程度縮小したものであるかを示すものであり、元画像の縮小率を１／１とした場合には、１／２，１／４，１／８，．．．となる。
縮小率演算回路３０４における縮小率ＬＯＤの演算処理は、下記式（１１）で示される。
【００３５】
【数１１】
ＬＯＤ＝Ｃｌａｍｐ（（（ｌｏｇ2 １／ｑ）−ｍａｘｅ）＜＜Ｌ＋Ｋ）…（１１）
【００３６】
上記式（１１）において、
ＬＯＤ：縮小率を示し、整数部３ビット、小数点部４ビット、符号無し(unsigned)のデータ、
ｍａｘｅ：図２に示す三角形の頂点のｓ，ｔ，ｑの最大指数を示し、整数部８ビット、符号無し(unsigned)のデータ、
ｑ：整数部１０ビット、小数部５ビット、符号有り(signed)のデータ、
Ｌ：２ビット、符号無しのデータ、Ｌの最大値は１０進数の「３」
Ｋ：整数部８ビット、小数部４ビット、符号有りのデータ
【００３７】
図４は、縮小率演算回路３０４の構成図である。
図４に示すように、縮小率演算回路３０４は、プライオリティエンコーダ(Priority Encoder)１０１、シフト回路１０２、テーブル１０３、インバータ１０４，１０５、加算回路１０６、シフト回路１０７、加算回路１０８およびクランプ(Clamp) 回路１０９を有する。
ここで、データＬおよびデータＫは、縮小率演算回路３０４が内蔵するレジスタに記憶されている。
請求項１０の構成要素との対応は、プライオリティエンコーダ１０１およびシフト回路１０２が正規化回路に対応し、テーブル１０３がデータ出力手段に対応し、インバータ１０４が第１の反転回路に対応し、インバータ１０５が第２の反転回路に対応し、加算回路１０６が第１の加算回路に対応し、シフト回路１０７がシフト回路に対応し、加算回路１０８が第２の加算回路に対応し、クランプ回路１０９がクランプ回路に対応している。
【００３８】
プライオリティエンコーダ１０１は、ｑ選択回路３０２から入力したデータｑの２の対数値「ｌｏｇ2 ｑ」を求め、当該２の対数値「ｌｏｇ2 ｑ」の整数値「ｉｎｔ（ｌｏｇ2 ｑ）」、すなわち指数ｑｅをデータａとしてシフト回路１０２およびインバータ１０４に出力する。
【００３９】
シフト回路１０２は、ｑ選択回路３０２から入力したデータｑを、プライオリティエンコーダ１０１から入力した指数ｑｅだけ、ＬＳＢに向けてシフト演算した結果の小数部を、データｑｍとしてテーブル１０３に出力する。
【００４０】
テーブル１０３は、入力データと、当該入力データに１を加算した値の２の対数値との対応表を備え、シフト回路１０２から入力したデータｑｍをキーとして、当該データｑｍに対応する２の対数値「ｌｏｇ2 （｛１，ｑｍ｝）」を対応表から得て、これをデータｂとして出力する。
なお、テーブル１０３の代わりに、データｑｍを入力したときに、「ｌｏｇ2 （｛１，ｑｍ｝）」を自動的に生成するプログラムを用いてもよい。
【００４１】
データａとデータｂとは、データａを整数部、データｂを小数部としてビット結合され、当該ビット結合後のデータ｛ａ，ｂ｝がインバータ１０４に出力される。
ここで、以下に示す式（１２）から、データ｛ａ，ｂ｝が、前記式（１１）における「ｌｏｇ2 （１／ｑ）」の符号を反転した値を示していることが分かる。
【００４２】
【数１２】
0004300650.tif 000002
【００４３】
インバータ１０４は、データ｛ａ，ｂ｝を反転し、その結果であるデータ￣｛ａ，ｂ｝を加算回路１０６に出力する。
【００４４】
インバータ１０５は、トライアングルＤＤＡ回路１１から入力したデータｍａｘｅを反転し、その結果であるデータ￣ｍａｘｅを加算回路１０６に出力する。
【００４５】
加算回路１０６は、２＝（０．０００００１０）と、データ￣ｍａｘｅと、データ￣｛ａ，ｂ｝とを加算し、その結果であるデータγをシフト回路１０７に出力する。
ここで、演算式「￣｛ａ，ｂ｝＋￣ｍａｘｅ＋２」は、下記式（１３）のように変形できる。すなわち、データγは、前記式（１）における最も内側の括弧内の演算結果を示している。
【００４６】
【数１３】
0004300650.tif 000003
【００４７】
シフト回路１０７は、加算回路１０６から入力したデータγを、データＬが示す値のビット数だけ、ＭＳＢに向けてシフトし、その結果をデータδとしてシフト回路１０７に出力する。
すなわち、下記式（１４）が成り立つ。
【００４８】
【数１４】
δ＝γ＜＜Ｌ                                          …（１４）
【００４９】
加算回路１０８は、シフト回路１０７からのデータδと、データＫとを加算し、その結果をデータεとしてクランプ回路１０９に出力する。
すなわち、下記式（１５）が成り立つ。
【００５０】
【数１５】
ε＝δ＋Ｋ                                            …（１５）
【００５１】
クランプ回路１０９は、加算回路１０８から入力したデータεを、整数部３ビット、小数部４ビットのデータにクランプし（丸め込み）、その結果を縮小率ＬＯＤとして図３に示すテクスチャデータ読み出し回路３０５に出力する。
【００５２】
なお、テクスチャバッファ２０には、例えば、図５に示すように、縮小率ＬＯＤ＝０，１，２，３，４のテクスチャデータ３２０，３２１，３２２，３２３が記憶されている。
テクスチャバッファ２０の記憶領域のアドレス空間は、図５に示すように、Ｕ，Ｖ座標系で表現され、複数の縮小率に対応したテクスチャデータが記憶されている記憶領域の基準アドレス（開始アドレス）は、図４に示す縮小率演算回路３０４で得られた縮小率ＬＯＤに基づいて算出される。図５に示す例では、テクスチャデータ３２０，３２１，３２２，３２３の基準アドレスは、（ｕｂａｓｅ0 ，ｖｂａｓｅ0 ），（ｕｂａｓｅ1 ，ｖｂａｓｅ1 ），（ｕｂａｓｅ2 ，ｖｂａｓｅ2 ），（ｕｂａｓｅ3 ，ｖｂａｓｅ3 ）となる。
また、テクスチャバッファ２０に記憶されているテクスチャデータにおける各画素についてのテクスチャアドレス（Ｕ，Ｖ）は、基準アドレス（ｕｂａｓｅ，ｖｂａｓｅ）と、テクスチャ座標データ（ｕ，ｖ）とを用いて、例えば「Ｕ＝ｕｂａｓｅ＋ｕ／２LOD 」および「Ｖ＝ｖｂａｓｅ＋ｖ／２LOD 」から生成される。
【００５３】
図６は、図４に示す縮小率演算回路３０４における処理を説明するための図である。
以下、図６を参照しながら、図４に示す縮小率演算回路３０４の動作を具体例を用いて説明する。
ここでは、以下に示す値を用いて前記式（１１）の演算処理を縮小率演算回路３０４において行う場合を例示する。
【００５４】
ｑ＝（０００１００１１１０．１０１００）：
ここで、ｑ（０００１００１１１０．１０１００）において、（０００１００１１１０）は整数部であり、（１０１００）は小数部である。
ｍａｘｅ＝（０００００００１．０００００００）：
ここで、ｍａｘｅ（０００００００１．０００００００）において、（０００００００１）は整数部、（０００００００）は小数部である。
Ｌ＝（０１）：
Ｋ＝（０００１００１１．００００）：
ここで、（０００１００１１）は整数部、（００００）は小数部である。
【００５５】
この場合に、図４に示す縮小率演算回路３０４では、先ず、ｑ選択回路３０２が出力したｑデータＳ３０２であるｑ（０００１００１１１０．１０１００）が、図４に示すプライオリティエンコーダ１０１およびシフト回路１０２に入力される。
次に、プライオリティエンコーダ１０１において、ｑ（０００１００１１１０．１０１００）の指数ｑｅ（０００１１０）が求められ、当該指数ｑｅ（０００１１０）のＭＳＢ側に（００）を付加した８ビットのデータであるａ（０００００１１０）が出力される。
次に、シフト回路１０２において、ｑ（０００１００１１１０．１０１００）が、ａ（０００００１１０）だけ、ＬＳＢ側に向けてシフトされ、シフト後の小数部が、仮数ｑｍ（００１１１０１）としてテーブル１０３に出力される。
次に、テーブル１０３において、仮数ｑｍ（００１１１０１）に対応する８ビットのデータ（「ｌｏｇ2 （｛１，ｑｍ｝）」）であるｂ（０１０００１０１）が得られ、ｂ（０１０００１０１）が得られて出力される。
【００５６】
次に、プライオリティエンコーダ１０１から出力されたａ（０００００１１０）と、ｂ（０１０００１０１）とがビット連結｛ａ，ｂ｝され、その結果である｛ａ，ｂ｝（０００００１１０．０１０００１０１）が、インバータ１０４に出力される。
【００５７】
次に、インバータ１０４において、｛ａ，ｂ｝（０００００１１０．０１０００１０１）の反転値が求められ、その結果である￣｛ａ，ｂ｝（１１１１１００１．１０１１１０１０）が加算回路１０６に出力される。
【００５８】
また、インバータ１０５において、図１に示すトライアングルＤＤＡ回路１１から入力したｍａｘｅデータＳ１１ｃであるｍａｘｅ（０００００００１．０００００００）の反転値が求められ、その結果である￣ｍａｘｅ（１１１１１１１０．１１１１１１１）が加算回路１０６に出力される。
【００５９】
次に、加算回路１０６において、１０進数の「２」を２進数で示す（０．０００００１０）と、￣｛ａ，ｂ｝（１１１１１００１．１０１１１０１０）と、￣ｍａｘｅ（１１１１１１１０．１１１１１１１）とが加算され、その加算結果であるデータγ（１１１１１０００．１０１１０１１）がシフト回路１０７に出力される。
【００６０】
次に、シフト回路１０７において、データγ（１１１１１０００．１０１１０１１）が、データＬ（０１）が示す値だけ、ＭＳＢに向けてシフトされ、その結果であるδ（１１１１０００１．０１１０１１０）が、加算回路１０８に出力される。
【００６１】
次に、加算回路１０８において、データδ（１１１１０００１．０１１０１１０）と、データＫ（０００１００１１．００００）とが加算され、その結果であるε（０００００１００．０１１０１１０）がクランプ回路１０９に出力される。
【００６２】
次に、クランプ回路１０９において、ε（０００００１００．０１１０１１０）が、整数部３ビット、小数部４ビットのデータにクランプされ、その結果であるＬＯＤ（１００．０１１０）が、図３に示すテクスチャデータ読み出し回路３０５に出力される。
【００６３】
〔テクスチャデータ読み出し回路３０５〕
テクスチャデータ読み出し回路３０５は、ＤＤＡデータＳ１１に含まれる８画素分の（ｓ，ｔ，ｑ）データＳ１１ａ1 〜Ｓ１１ａ8 と、縮小率演算回路３０４からの縮小率ＬＯＤと、テクスチャサイズＵＳＩＺＥおよびＶＳＩＺＥとを用いて、前述した処理対象となっている三角形内に位置し、かつ同時に処理される矩形領域内の８画素に対応したテクスチャデータＳ３０５をテクスチャバッファ２０から読み出してＭＩＰＭＡＰ処理回路３０７に出力する。
このとき、テクスチャデータ読み出し回路３０５は、縮小率ＬＯＤが整数の場合には、図５に示すテクスチャデータ３２０〜３２４のうち、当該縮小率ＬＯＤに対応する１個のテクスチャデータを読み出してＭＩＰＭＡＰ処理回路３０７に出力する。
また、テクスチャデータ読み出し回路３０５は、縮小率ＬＯＤが小数値を持つ場合には、図５に示すテクスチャデータ３２０〜３２４のうち、当該縮小率ＬＯＤの前後の整数の縮小率に対応する２個のテクスチャデータを読み出してＭＩＰＭＡＰ処理回路３０７に出力する。
【００６４】
図７は、テクスチャデータ読み出し回路３０５において、縮小率ＬＯＤに対応する１個のテクスチャデータを読み出す処理のフローチャートである。
ステップＳ２１：テクスチャデータ読み出し回路３０５は、８画素分の（ｓ，ｔ，ｑ）データＳ１１ａ1 〜Ｓ１１ａ8 のそれぞれについて、ｓデータをｑデータで除算する演算と、ｔデータをｑデータで除算する演算とを行い、除算結果「ｓ／ｑ」および「ｔ／ｑ」を算出する。
そして、除算結果「ｓ／ｑ」および「ｔ／ｑ」に、それぞれテクスチャサイズＵＳＩＺＥおよびＶＳＩＺＥを乗じて、各画素に対応したテクスチャ座標データ（ｕ1 ，ｖ1 ）〜（ｕ8 ，ｖ8 ）を算出する。
【００６５】
ステップＳ２２：テクスチャデータ読み出し回路３０５は、例えば、予め用意したアドレステーブルを参照して、縮小率演算回路３０４において生成した縮小率ＬＯＤに対応する基準アドレス（ｕｂａｓｅ，ｖｂａｓｅ）を得る。
そして、テクスチャデータ読み出し回路３０５は、基準アドレス（ｕｂａｓｅ，ｖｂａｓｅ）と、ステップＳ２１で算出したテクスチャ座標データ（ｕ1 ，ｖ1 ）〜（ｕ8 ，ｖ8 ）とを用いて、例えば「Ｕ＝ｕｂａｓｅ＋ｕ／２LOD 」および「Ｖ＝ｖｂａｓｅ＋ｖ／２LOD 」から、テクスチャバッファ２０のＵＶ座標系における物理アドレスであるテクスチャアドレス（Ｕ1 ，Ｖ1 ）〜（Ｕ8 ，Ｖ8 ）を生成する。
【００６６】
ステップＳ２３：テクスチャデータ読み出し回路３０５は、ステップＳ２２で生成したテクスチャアドレス（Ｕ1 ，Ｖ1 ）〜（Ｕ8 ，Ｖ8 ）を、図１に示すメモリＩ／Ｆ回路１３を介して、テクスチャバッファ２０に出力し、テクスチャデータである（Ｒ，Ｇ，Ｂ，ｔα）データＳ３０５1 〜Ｓ３０５8 を読み出す。
なお、ＳＲＡＭ１７には、テクスチャバッファ２０に記憶されているテクスチャデータのコピーが記憶されており、テクスチャエンジン回路１２は、実際には、メモリＩ／Ｆ回路１３を介してＳＲＡＭ１７に記憶されているテクスチャデータを読み出す。
【００６７】
ステップＳ２４：テクスチャデータ読み出し回路３０５は、ステップＳ２３で読み出した（Ｒ，Ｇ，Ｂ，ｔα）データＳ３０５1 〜Ｓ３０５8 をＭＩＰＭＡＰ処理回路３０７に出力する。
【００６８】
〔ＭＩＰＭＡＰ処理回路３０７〕
ＭＩＰＭＡＰ処理回路３０７は、縮小率ＬＯＤが小数値を持つ場合に、その前後の整数値の縮小率に対応する２個のテクスチャデータの（Ｒ，Ｇ，Ｂ，ｔα）データＳ３０５1 〜Ｓ３０５8 と、縮小率ＬＯＤとをテクスチャデータ読み出し回路３０５から入力する。そして、ＭＩＰＭＡＰ処理回路３０７は、当該入力した２個のテクスチャデータの（Ｒ，Ｇ，Ｂ，ｔα）データＳ３０５1 〜Ｓ３０５8 を縮小率ＬＯＤの小数部を用いて線形レベル補間処理して縮小率ＬＯＤに対応する（Ｒ，Ｇ，Ｂ，ｔα）データＳ３０７1 〜Ｓ３０７8 を生成し、これをテクスチャブレンド回路３０６に出力する。
ＭＩＰＭＡＰ処理回路３０７は、縮小率ＬＯＤが整数の場合には、テクスチャデータ読み出し回路３０５から入力した（Ｒ，Ｇ，Ｂ，ｔα）データＳ３０５1 〜Ｓ３０５8 を、そのまま（Ｒ，Ｇ，Ｂ，ｔα）データＳ３０７1 〜Ｓ３０７8 としてテクスチャブレンド回路３０６に出力する。
【００６９】
〔テクスチャブレンド回路３０６〕
テクスチャブレンド回路３０６は、ＤＤＡデータＳ１１に含まれる８画素分の（Ｒ，Ｇ，Ｂ，α）データＳ１１ｂ1 〜Ｓ１１ｂ8 と、ＭＩＰＭＡＰ処理回路３０７から入力した（Ｒ，Ｇ，Ｂ，ｔα）データＳ３０７1 〜Ｓ３０７8 とを、対応する要素同士で乗算し、（Ｒ，Ｇ，Ｂ，α）データＳ３０６1 〜Ｓ３０６8 を生成する。
そして、（Ｒ，Ｇ，Ｂ，α）データＳ３０６1 〜Ｓ３０６8 が、（Ｒ，Ｇ，Ｂ，α）データＳ１２1 〜Ｓ１２8 として、メモリＩ／Ｆ回路１３に出力される。
【００７０】
なお、テクスチャエンジン回路１２は、フルカラー方式の場合には、テクスチャバッファ２０から読み出した（Ｒ，Ｇ，Ｂ，ｔα）データを直接用いる。一方、テクスチャエンジン回路１２は、インデックスカラー方式の場合には、予め作成したカラールックアップテーブル（ＣＬＵＴ）をテクスチャＣＬＵＴバッファ２３から読み出して、内蔵するＳＲＡＭに転送および記憶し、このカラールックアップテーブルを用いて、テクスチャバッファ２０から読み出したカラーインデックスに対応する（Ｒ，Ｇ，Ｂ）データを得る。
【００７１】
メモリＩ／Ｆ回路１３
また、メモリＩ／Ｆ回路１３は、テクスチャエンジン回路１２から入力した（Ｒ，Ｇ，Ｂ，α）データＳ１２1 〜Ｓ１２8 、すなわち画素データＳ１２に対応するｚデータと、ｚバッファ２２に記憶されているｚデータとの比較を行い、入力した画素データＳ１２によって描画される画像が、前回、ディスプレイバッファ２１に書き込まれた画像より、手前（視点側）に位置するか否かを判断し、手前に位置する場合には、画素データＳ１２に対応するｚデータでｚバッファ２２に記憶されたｚデータを更新する。
また、メモリＩ／Ｆ回路１３は、必要に応じて、画素データＳ１２に含まれる（Ｒ，Ｇ，Ｂ）データと、既にディスプレイバッファ２１に記憶されている（Ｒ，Ｇ，Ｂ）データとを、画素データＳ１２に対応するαデータが示す混合値で混合する、いわゆるαブレンディング処理を行い、混合後の（Ｒ，Ｇ，Ｂ）データをディスプレイバッファ２１に書き込む（打ち込む）。
【００７２】
なお、メモリＩ／Ｆ回路１３によるＤＲＡＭ１６に対してのアクセスは、１６画素について同時に行なわれる。なお、メモリＩ／Ｆ回路１３によるＤＲＡＭ１６に対してのアクセスは、例えば、８画素あるいは３２画素について同時に行うようにしてもよい。
【００７３】
ＣＲＴコントローラ回路１４
ＣＲＴコントローラ回路１４は、与えられた水平および垂直同期信号に同期して、図示しないＣＲＴに表示するアドレスを発生し、ディスプレイバッファ２１から表示データを読み出す要求をメモリＩ／Ｆ回路１３に出力する。この要求に応じて、メモリＩ／Ｆ回路１３は、ディスプレイバッファ２１から一定の固まりで表示データを読み出す。ＣＲＴコントローラ回路１４は、ディスプレイバッファ２１から読み出した表示データを記憶するＦＩＦＯ(First In First Out)回路を内蔵し、一定の時間間隔で、ＲＡＭＤＡＣ回路１５に、ＲＧＢのインデックス値を出力する。
【００７４】
ＲＡＭＤＡＣ回路１５
ＲＡＭＤＡＣ回路１５は、各インデックス値に対応するＲ，Ｇ，Ｂデータを記憶しており、ＣＲＴコントローラ回路１４から入力したＲＧＢのインデックス値に対応するデジタル形式のＲ，Ｇ，Ｂデータを、Ｄ／Ａコンバータに転送し、アナログ形式のＲ，Ｇ，Ｂデータを生成する。ＲＡＭＤＡＣ回路１５は、この生成されたＲ，Ｇ，ＢデータをＣＲＴに出力する。
【００７５】
以下、３次元コンピュータグラフィックシステム１の動作について説明する。ポリゴンレンダリングデータＳ４が、メインバス６を介してメインプロセッサ４からＤＤＡセットアップ回路１０に出力され、ＤＤＡセットアップ回路１０において、三角形の辺と水平方向の差分を示す変分データＳ１０が生成される。
すなわち、（ｓ，ｔ，ｑ）のｘ方向の変分であるｄｓｄｘ，ｄｔｄｘ，ｄｑｄｘと、ｙ方向の変分であるｄｓｄｙ，ｄｔｄｙ，ｄｑｄｙが生成される。
そして、ＤＤＡセットアップ回路１０からトライアングルＤＤＡ回路１１に、変分データＳ１０が出力される。
【００７６】
次に、トライアングルＤＤＡ回路１１において、変分データＳ１０に基づいて、三角形内部の各画素における線形補間された（ｚ，Ｒ，Ｇ，Ｂ，α，ｓ，ｔ，ｑ，Ｆ）が生成される。
また、トライアングルＤＤＡ回路１１において、並行して処理を行う８画素について、処理対象となる三角形の内部に位置するか否かを示すそれぞれ１ビットの有効ビットデータが生成される。
そして、トライアングルＤＤＡ回路１１からテクスチャエンジン回路１２に、各画素の（ｘ，ｙ）データと、当該（ｘ，ｙ）座標における（ｚ，Ｒ，Ｇ，Ｂ，α，ｓ，ｔ，ｑ，Ｆ）データと、有効ビットデータＩ1 〜Ｉ8 と、処理対象となる三角形の頂点のｓ，ｔ，ｑデータの最大指数を示すｍａｘｅデータとが、ＤＤＡデータＳ１１として出力される。
【００７７】
次に、図３に示すテクスチャエンジン回路１２の代表点決定回路３０１において代表点が決定され、当該決定された代表点を示す代表点指示データＳ３０１がｑデータ選択回路３０２に出力される。
そして、ｑデータ選択回路３０２において、入力されたＤＤＡデータＳ１１に含まれる８画素分の（ｓ，ｔ，ｑ）データＳ１１ａ1 〜Ｓ１１ａ8 のうち、代表点指示データＳ３０１によって示される画素に対応するｑデータが選択され、これがｑデータＳ３０２として縮小率演算回路３０４に出力される。
【００７８】
次に、図４に示す縮小率演算回路３０４において、ｑデータＳ３０２およびｍａｘｅデータＳ１１ｃを用いて、図６に示す手順でテクスチャデータの縮小率ＬＯＤが算出され、当該縮小率ＬＯＤがテクスチャデータ読み出し回路３０５に出力される。
【００７９】
次に、テクスチャデータ読み出し回路３０５において、ＤＤＡデータＳ１１に含まれる８画素分の（ｓ，ｔ，ｑ）データＳ１１ａ1 〜Ｓ１１ａ8 と、縮小率演算回路３０４からの縮小率ＬＯＤと、テクスチャサイズＵＳＩＺＥおよびＶＳＩＺＥとを用いて、前述した処理対象となっている三角形内に位置し、かつ同時に処理される矩形領域内の８画素に対応したテクスチャデータＳ３０５がテクスチャバッファ２０から読み出されてＭＩＰＭＡＰ処理回路３０７に出力される。
このとき、縮小率ＬＯＤが整数の場合には、図５に示すテクスチャデータ３２０〜３２４のうち、当該縮小率ＬＯＤに対応する１個のテクスチャデータがテクスチャデータ読み出し回路３０５によって読み出されてＭＩＰＭＡＰ処理回路３０７に出力される。
また、縮小率ＬＯＤが小数値を持つ場合には、図５に示すテクスチャデータ３２０〜３２４のうち、当該縮小率ＬＯＤの前後の整数の縮小率に対応する２個のテクスチャデータがテクスチャデータ読み出し回路３０５によって読み出されてＭＩＰＭＡＰ処理回路３０７に出力される。
【００８０】
次に、ＭＩＰＭＡＰ処理回路３０７において、縮小率ＬＯＤが小数値を持つ場合に、その前後の整数値の縮小率に対応するテクスチャデータ読み出し回路３０５から入力した２個のテクスチャデータの（Ｒ，Ｇ，Ｂ，ｔα）データＳ３０５1 〜Ｓ３０５8 を用いて線形レベル補間処理が行われ、縮小率ＬＯＤに対応する（Ｒ，Ｇ，Ｂ，ｔα）データＳ３０７1 〜Ｓ３０７8 が生成され、これがテクスチャブレンド回路３０６に出力される。
また、ＭＩＰＭＡＰ処理回路３０７において、縮小率ＬＯＤが整数の場合には、テクスチャデータ読み出し回路３０５から入力した（Ｒ，Ｇ，Ｂ，ｔα）データＳ３０５1 〜Ｓ３０５8 が、そのまま（Ｒ，Ｇ，Ｂ，ｔα）データＳ３０７1 〜Ｓ３０７8 としてテクスチャブレンド回路３０６に出力される。
【００８１】
次に、テクスチャブレンド回路３０６において、ＤＤＡデータＳ１１に含まれる８画素分の（Ｒ，Ｇ，Ｂ，α）データＳ１１ｂ1 〜Ｓ１１ｂ8 と、ＭＩＰＭＡＰ処理回路３０７から入力した（Ｒ，Ｇ，Ｂ，ｔα）データＳ３０７1 〜Ｓ３０７8 とが、対応する要素同士で乗算され、（Ｒ，Ｇ，Ｂ，α）データＳ３０６1 〜Ｓ３０６8 が生成される。
そして、ＤＤＡデータに含まれるαデータＳ１１ｄ1 〜Ｓ１１ｄ8 と、（Ｒ，Ｇ，Ｂ，α）データＳ３０６1 〜Ｓ３０６8 とが、（Ｒ，Ｇ，Ｂ，α）データＳ１２1 〜Ｓ１２8 、すなわち、画素データＳ１２として、メモリＩ／Ｆ回路１３に出力される。
【００８２】
そして、メモリＩ／Ｆ回路１３において、テクスチャエンジン回路１２から入力した画素データＳ１２に対応するｚデータと、ｚバッファ２２に記憶されているｚデータとの比較が行なわれ、入力した画素データＳ１２によって描画される画像が、前回、ディスプレイバッファ２１に書き込まれた画像より、手前（視点側）に位置するか否かが判断され、手前に位置する場合には、画像データＳ１２に対応するｚデータでｚバッファ２２に記憶されたｚデータが更新される。
【００８３】
次に、メモリＩ／Ｆ回路１３において、必要に応じて、画像データＳ１２に含まれる（Ｒ，Ｇ，Ｂ）データと、既にディスプレイバッファ２１に記憶されている（Ｒ，Ｇ，Ｂ）データとが、画素データＳ１２に対応するαデータが示す混合値で混合され、混合後の（Ｒ，Ｇ，Ｂ）データがディスプレイバッファ２１に書き込まれる。
【００８４】
以上説明したように、３次元コンピュータグラフィックシステム１によれば、図１に示すテクスチャエンジン回路１２においてテクスチャバッファ２０からテクスチャデータを読み出す際に、図３および図４に示す縮小率演算回路３０４において、同時の処理される８画素のうち１画素のｑデータなどを用いて縮小率ＬＯＤが算出される。そして、テクスチャデータ読み出し回路３０５において、同時に処理れる８画素については、同じ縮小率ＬＯＤを用いてテクスチャデータが読み出される。
【００８５】
第２実施形態
本実施形態では、例えば、図３に示すＭＩＰＭＡＰ処理回路３０７が行う線形レベル補間処理において、２-4以上の精度（小数部の少なくとも上位４ビットが正しいこと）が要求される場合について例示する。
この場合には、縮小率ＬＯＤの誤差の要因となる前記式（１１）に示す「ｌｏｇ2 （１／ｑ）」の誤差を２-7にして、データＬが最大値「３」である場合でも、縮小率ＬＯＤの誤差を２-4程度にする必要がある。
本実施形態では、図３および図４に示す縮小率演算回路３０４に比べて、上述したように縮小率ＬＯＤの高精度化を図ることができ、しかも少ないゲート数（小規模な回路）で高速に演算を行うことができる縮小率演算回路を用いた３次元コンピュータグラフィックシステムについて説明する。
【００８６】
本実施形態の３次元コンピュータグラフィックシステムは、図１に示すテクスチャエンジン回路１２の構成を除いて、第１実施形態の３次元コンピュータグラフィックシステム１と同じである。
図８は、本実施形態の３次元コンピュータグラフィックシステムのテクスチャエンジン回路１２の構成図である。
図８において、図３と同じ符号を付した構成要素は、前述した第１実施形態で説明した同一符号の構成要素と同じである。
すなわち、本実施形態のテクスチャエンジン回路１２において、図８に示す縮小率演算回路５０４の構成が、前述した第１の実施形態の縮小率演算回路３０４とは異なる。
本実施形態のテクスチャエンジン回路１２が請求項７に係わる画像処理装置に対応している。
ここで、請求項７の構成要素と図８との対応は、テクスチャバッファ２０が記憶手段に対応し、代表点決定回路３０１が代表点決定回路に対応し、縮小率演算回路５０４が縮小率算出回路に対応し、テクスチャデータ読み出し回路３０５が読み出し回路に対応している。
また、縮小率演算回路５０４は、請求項４の演算処理回路にも対応している。
【００８７】
以下、縮小率演算回路５０４について詳細に説明する。
図９は、縮小率演算回路５０４の構成図である。
図９に示すように、縮小率演算回路５０４は、プライオリティエンコーダ１０１、シフト回路１０２、シフト回路２０１，２０２、テーブル２０３、インバータ２０４，２０５、加算回路２０６およびクランプ回路１０９を有する。
ここで、請求項４および請求項７の構成要素と図９との対応は、プライオリティエンコーダ１０１およびシフト回路１０２が正規化回路に対応し、シフト回路２０１が第１のシフト回路に対応し、インバータ２０４が第１の反転回路に対応し、テーブル２０３がデータ出力手段に対応し、シフト回路２０２が第２のシフト回路に対応し、インバータ２０５が第２の反転回路に対応し、加算回路２０６が加算回路に対応し、クランプ回路１０９がクランプ回路に対応している。
縮小率演算回路５０４は、前記式（１１）の演算を行い、その演算結果である縮小率ＬＯＤを図８に示すＭＩＰＭＡＰ処理回路３０７に出力する。
【００８８】
プライオリティエンコーダ１０１は、図８に示すｑ選択回路３０２から入力したデータｑの２の対数値「ｌｏｇ2 ｑ」を求め、当該２の対数値「ｌｏｇ2 ｑ」の整数値「ｉｎｔ（ｌｏｇ2 ｑ）」、すなわち指数ｑｅをデータａとしてシフト回路１０２，２０１に出力する。
【００８９】
シフト回路１０２は、ｑ選択回路３０２から入力したデータｑを、プライオリティエンコーダ１０１から入力した指数ｑｅだけ、ＬＳＢに向けてシフト演算した結果の小数部であるデータｑｍを、データｂ２としてシフト回路２０１およびテーブル２０３に出力する。
【００９０】
プライオリティエンコーダ１０１が出力したデータａと、シフト回路１０２が出力したデータｂ２とはビット結合され、その結果であるデータ｛ａ，ｂ２｝がシフト回路２０１に出力される。
【００９１】
シフト回路２０１は、入力したデータ｛ａ，ｂ２｝を、入力したデータＬだけ、ＭＳＢに向けてシフト演算した結果であるデータδ２をインバータ２０４に出力する。
【００９２】
インバータ２０４は、データδ２を反転し、その結果であるデータ￣δ２を加算回路２０６に出力する。
【００９３】
テーブル２０３は、データｑｍと、「ｌｏｇ2 （｛１，ｑｍ｝）−ｑｍ」との対応表を備え、シフト回路１０２から入力したデータｑｍ（＝ｂ２）をキーとして、当該データｑｍに対応する「ｌｏｇ2 （｛１，ｑｍ｝）−ｑｍ」を対応表から得て、これをデータμとしてシフト回路２０２に出力する。
なお、テーブル２０３の代わりに、入力したデータｑｍを用いて、「ｌｏｇ2 （｛１，ｑｍ｝）−ｑｍ」を自動的に生成するプログラムを用いてもよい。
【００９４】
トライアングルＤＤＡ回路１１から入力したデータｍａｘｅと、テーブル２０３から出力されたデータμとは、データｍａｘｅを整数部とし、小数部が７ビットとなるようにデータμの前に（０００）を結合して小数部として結合され、当該ビット結合後のデータ｛ｍａｘｅ，３’ｂ０，μ｝がシフト回路２０２に出力される。ここで、「３’ｂ０」は、Ｖｅｒｉｌｏｇ−ＨＤＬの表記で、３ビットの２進数の０を意味する。
【００９５】
シフト回路２０２は、入力したデータ｛ｍａｘｅ，３’ｂ０，μ｝を、入力したデータＬだけ、ＭＳＢに向けてシフト演算した結果であるγ２をインバータ２０５に出力する。
インバータ１０４は、データ｛ａ，ｂ｝を反転し、その結果であるデータ￣｛ａ，ｂ｝を加算回路１０６に出力する。
【００９６】
インバータ２０４は、データγ２を反転し、その結果であるデータ￣γ２を加算回路２０６に出力する。
【００９７】
また、データＫと「１０」とが、小数部が７ビットとなるように「１０」の前に１ビットの「０」を加えて結合され、当該ビット結合後のデータ｛Ｋ，３’ｂ０，１０｝が加算回路２０６に出力される。
【００９８】
加算回路２０６は、データ｛Ｋ，３’ｂ０，１０｝と、データ￣δ２と、データ￣γ２とを加算して、その加算結果であるε２をクランプ回路１０９に出力する。
【００９９】
クランプ回路１０９は、加算回路２０６から入力したデータε２を、整数部３ビット、小数部４ビットのデータにクランプし（丸め込み）、その結果を縮小率ＬＯＤとして図８に示すテクスチャデータ読み出し回路３０５に出力する。
【０１００】
図９に示す縮小率演算回路５０４では、入力したデータｑｍに対応するμ（＝「ｌｏｇ2 （｛１，ｑｍ｝）−ｑｍ」）を出力する図９に示すテーブル２０３を用いて、整数部のみからなるｍａｘｅデータと、小数部のみからなるデータμとをビット結合することで、ｍａｘｅデータに関しての加算処理を削減している。
これにより、縮小率演算回路５０４によれば、図３および図４に示す縮小率演算回路３０４に比べて、ゲート数の削減および演算処理の高速化を図れる。
また、縮小率演算回路５０４では、前記式（１１）における「ｌｏｇ2 （１／ｑ）」の小数部ｂと仮数ｑｍの上位４ビット（＝２-4）とが近似することと、縮小率ＬＯＤの７ビットの小数部のうち下位４ビットの精度を決定付ける「ｌｏｇ2 （１／ｑ）」の７ビットの小数部のうち下位４ビットをテーブル２０３を用いて得ることで、縮小率ＬＯＤの誤差の要因となる前記式（１１）に示す「ｌｏｇ2 （１／ｑ）」の誤差を２-7にでき、データＬが最大値「３」である場合でも、縮小率ＬＯＤの誤差を２-4程度にできる。
【０１０１】
図１０は、図９に示す縮小率演算回路５０４における処理を説明するための図である。
以下、図１０を参照しながら、図９に示す縮小率演算回路５０４の動作を具体例を用いて説明する。
ここでは、図６を用いて前述した場合と同様に、以下に示す値を用いて、前記式（１１）の演算処理を縮小率演算回路５０４において行う場合を例示する。
【０１０２】
ｑ＝（０００１００１１１０．１０１００）：
ｍａｘｅ＝（０００００００１．０００００００）：
Ｌ＝（０１）：
Ｋ＝（０００１００１１．００００）：
【０１０３】
ｑ選択回路３０２が出力したｑデータＳ３０２であるｑ（０００１００１１１０．１０１００）が、図９に示すプライオリティエンコーダ１０１およびシフト回路１０２に入力される。
次に、プライオリティエンコーダ１０１において、ｑ（０００１００１１１０．１０１００）の指数ｑｅ（０００１１０）が求められ、当該指数ｑｅ（０００１１０）のＭＳＢ側に（００）を付加した８ビットのデータであるａ（０００００１１０）が出力される。
【０１０４】
次に、シフト回路１０２において、ａ（０００１００１１１０．１０１００）が、ａ（０００００１１０）だけ、ＭＳＢ側に向けてシフトされ、シフト後の小数部である仮数ｑｍ（００１１１０１）が、データｂ２としてテーブル２０３に出力される。
次に、テーブル２０３において、仮数ｑｍ（００１１１０１）に対応する４ビットのデータμ（「ｌｏｇ2 （｛１，ｑｍ｝）−ｑｍ」）であるμ（１０００）が得られ、μ（１０００）が出力される。
【０１０５】
次に、トライアングルＤＤＡ回路１１から入力したデータｍａｘｅ（０００００００１）とデータμ（１０００）とが、小数部が７ビットとなるようにデータμの前に（０００）を結合して小数部として結合され、当該ビット結合後のデータ｛ｍａｘｅ，３’ｂ０，μ｝＝（０００００００１．０００１０００）がシフト回路２０２に出力される。
【０１０６】
次に、シフト回路２０２において、入力したデータ｛ｍａｘｅ，３’ｂ０，μ｝＝（０００００００１．０００１０００）を、入力したデータＬ＝（０１）だけ、ＭＳＢに向けてシフト演算した結果であるγ２（００００００１０．００１００００）がインバータ２０５に出力される。
次に、インバータ２０５において、データγ２（００００００１０．００１００００）が反転され、その結果であるデータ￣γ２（１１１１１１０１．１１０１１１１）が加算回路２０６に出力される。
【０１０７】
また、プライオリティエンコーダ１０１が出力したデータａ（０００００１１０）と、シフト回路１０２が出力したデータｂ２（００１１１０１）とがビット結合され、その結果であるデータ｛ａ，ｂ２｝＝（０００００１１０．００１１１０１）がシフト回路２０１に出力される。
【０１０８】
次に、シフト回路２０１において、データ｛ａ，ｂ２｝＝（０００００１１０．００１１１０１）が、入力したデータＬ（０１）だけ、ＭＳＢに向けてシフト演算され、その結果であるデータδ２（００００１１００．０１１１０１０）がインバータ２０４に出力される。
【０１０９】
次に、インバータ２０４において、データδ２（００００１１００．０１１１０１０）が反転され、その結果であるデータ￣δ２（１１１１００１１．１０００１０１）が加算回路２０６に出力される。
【０１１０】
また、データＫ（０００１００１１．００００）と「１０」とが、小数部が７ビットとなるように「１０」の前に１ビットの「０」を加えて結合され、当該ビット結合後のデータ｛Ｋ，３’ｂ０，１０｝＝（０００１００１１．０００００１０）が加算回路２０６に出力される。
【０１１１】
次に、加算回路２０６において、データ｛Ｋ，３’ｂ０，１０｝と、データ￣δ２と、データ￣γ２とが加算され、その加算結果であるε２（０００００１００．０１１０１１０）がクランプ回路１０９に出力される。
【０１１２】
次に、クランプ回路１０９において、加算回路２０６から入力したデータε２が、整数部３ビット、小数部４ビットのデータにクランプされ（丸め込まれ）、その結果である（１００．０１１０）が縮小率ＬＯＤとして図８に示すテクスチャデータ読み出し回路３０５に出力される。
【０１１３】
第３実施形態
図１１は、本実施形態の演算処理回路４００の構成図である。
演算処理回路４００は、下記式（１６）に示す演算を行う演算処理回路である。
【０１１４】
【数１６】
Ｒ＝ｌｏｇ2 （１／ｑ）＋ｍａｘｅ
…（１６）
【０１１５】
ここで、上記式（１６）において、
ｑ：整数部１０ビット、小数部５ビット、符号有り(signed)のデータ、
ｍａｘｅ：整数部８ビット、符号無し(unsigned)のデータ、
【０１１６】
図１１に示すように、演算処理回路４００は、プライオリティエンコーダ１０１、シフト回路１０２、テーブル２０３および加算回路２０６を有する。
演算処理回路４００は、請求項１の演算処理回路に対応しており、プライオリティエンコーダ１０１およびシフト回路１０２が正規化回路に対応し、テーブル２０３がデータ出力回路に対応し、加算回路４０１が加算回路に対応している。
【０１１７】
プライオリティエンコーダ１０１は、入力したデータｑの２の対数値「ｌｏｇ2 ｑ」を求め、当該２の対数値「ｌｏｇ2 ｑ」の整数値「ｉｎｔ（ｌｏｇ2 ｑ）」、すなわち指数ｑｅをデータａとして出力する。
【０１１８】
シフト回路１０２は、入力したデータｑを、プライオリティエンコーダ１０１から入力した指数ｑｅだけ、ＬＳＢに向けてシフト演算した結果の小数部であるデータｑｍを、データｂ２として出力する。
【０１１９】
プライオリティエンコーダ１０１が出力したデータａと、シフト回路１０２が出力したデータｂ２とはビット結合され、その結果であるデータ｛ａ，ｂ２｝が加算回路４０１に出力される。
【０１２０】
テーブル２０３は、データｑｍと、「ｌｏｇ2 （｛１，ｑｍ｝）−ｑｍ」との対応表を備え、シフト回路１０２から入力したデータｑｍ（＝ｂ２）をキーとして、当該データｑｍに対応する「ｌｏｇ2 （｛１，ｑｍ｝）−ｑｍ」を対応表から得て、これをデータμとして出力する。
なお、テーブル２０３の代わりに、入力したデータｑｍを用いて、「ｌｏｇ2 （｛１，ｑｍ｝）−ｑｍ」を自動的に生成するプログラムを用いてもよい。
【０１２１】
入力したデータｍａｘｅと、テーブル２０３から出力されたデータμとは、データｍａｘｅを整数部とし、小数部が７ビットとなるようにデータμの前に（０００）を結合して小数部として結合され、当該ビット結合後のデータ｛ｍａｘｅ，３’ｂ０，μ｝が加算回路４０１に出力される。
【０１２２】
加算回路４０１は、データ｛ａ，ｂ２｝と、データ｛ｍａｘｅ，３’ｂ０，μ｝とを加算し、その結果をデータＲとして出力する。
【０１２３】
演算処理回路４００では、入力したデータｑｍに対応するμ（＝「ｌｏｇ2 （｛１，ｑｍ｝）−ｑｍ」）を出力する図９に示すテーブル２０３を用いて、整数部のみからなるｍａｘｅデータと、小数部のみからなるデータμとをビット結合することで、ｍａｘｅデータに関しての加算処理を削減している。
これにより、ｍａｘｅデータに関して加算処理を行う加算回路を設けた場合に比べて、ゲート数の削減および演算処理の高速化を図れる。
【０１２４】
本発明は上述した実施形態には限定されない。
上述した実施形態では、図４および図９に示す演算処理回路を縮小率演算回路として用いる場合を例示したが、これらの回路は同様の演算を行うその他の装置に用いてもよい。
例えば、図１に示す３次元コンピュータグラフィックシステム１では、ポリゴンレンダリングデータを生成するジオメトリ処理を、メインプロセッサ４で行なう場合を例示したが、レンダリング回路５で行なう構成にしてもよい。
【０１２５】
【発明の効果】
以上説明したように、本発明の演算処理回路によれば、それぞれ前記式（１）および前記式（２）の演算を小規模な回路構成で高速に行うことができる。
また、本発明の演算処理回路によれば、ｑｍを入力して「ｌｏｇ2 （｛１，ｑｍ｝）−ｑｍ」を出力するデータ出力手段を用いることで、高い演算精度を実現できる。
また、本発明の演算処理方法によれば、演算処理の高速化および高精度化を実現できる。
また、本発明の第１の観点の画像処理装置によれば、小規模な装置構成で、高画質な画像表示を行うことができる
さらに、本発明の第２の観点の画像処理装置では、テクスチャデータの縮小率を算出する新たな回路構成を提供できる。
【図面の簡単な説明】
【図１】図１は、本発明の第１実施形態の３次元コンピュータグラフィックシステムのシステム構成図である。
【図２】図２は、図１に示すＤＤＡセットアップ回路における有効ビットデータの生成方法を説明するための図である。
【図３】図３は、図１に示すテクスチャエンジン回路の構成図である。
【図４】図４は、図３に示す縮小率演算回路の構成図である。
【図５】図５は、図１および図３に示すテクスチャバッファのアドレス空間を説明するための図である。
【図６】図６は、図４に示す縮小率演算回路の処理の具体例を説明するための図である。
【図７】図７は、図３に示すテクスチャデータ読み出し回路における処理のフローチャートである。
【図８】図８は、本発明の第２実施形態の３次元コンピュータグラフィックシステムのテクスチャエンジン回路の構成図である。
【図９】図９は、図８に示す縮小率演算回路の構成図である。
【図１０】図１０は、図９に示す縮小率演算回路の処理の具体例を説明するための図である。
【図１１】図１１は、本発明の第３実施形態に係わる演算処理回路の構成図である。
【符号の説明】
１…３次元コンピュータグラフィックシステム、２…メインメモリ、３…Ｉ／Ｏインタフェース回路、４…メインプロセッサ、５…レンダリング回路、１０…ＤＤＡセットアップ回路、１１…トライアングルＤＤＡ回路、１２…テクスチャエンジン回路、１３…メモリＩ／Ｆ回路、１４…ＣＲＴコントローラ回路、１５…ＲＡＭＤＡＣ回路、１６…ＤＲＡＭ、１７…ＳＲＡＭ、２０…テクスチャバッファ、２１…ディスプレイバッファ、２２…Ｚバッファ、２３…テクスチャＣＬＵＴバッファ、１０１…プライオリティエンコーダ、１０２，１０７，２０１，２０２…シフト回路、１０３，２０３…テーブル、１０４，１０５，２０４，２０５…インバータ、１０６，１０８，２０６…加算回路、１０９…クランプ回路、３０１…代表点決定回路、３０２…ｑデータ選択回路、３０４…縮小率演算回路、３０５…テクスチャデータ読み出し回路、３０６…テクスチャブレンド回路、３０７…ＭＩＰＭＡＰ処理回路、ＬＯＤ…縮小率
【図１】
0004300650.tif 000004
【図２】
0004300650.tif 000005
【図３】
0004300650.tif 000006
【図４】
0004300650.tif 000007
【図５】
0004300650.tif 000008
【図６】
0004300650.tif 000009
【図７】
0004300650.tif 000010
【図８】
0004300650.tif 000011
【図９】
0004300650.tif 000012
【図１０】
0004300650.tif 000013
【図１１】
0004300650.tif 000014