JP3538826B2 - 演算回路および演算方法 - Google Patents

演算回路および演算方法

Info

Publication number
JP3538826B2
JP3538826B2 JP34731196A JP34731196A JP3538826B2 JP 3538826 B2 JP3538826 B2 JP 3538826B2 JP 34731196 A JP34731196 A JP 34731196A JP 34731196 A JP34731196 A JP 34731196A JP 3538826 B2 JP3538826 B2 JP 3538826B2
Authority
JP
Japan
Prior art keywords
binary number
texture
data
result
bits
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
Application number
JP34731196A
Other languages
English (en)
Other versions
JPH10187419A (ja
Inventor
睦弘 大森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP34731196A priority Critical patent/JP3538826B2/ja
Publication of JPH10187419A publication Critical patent/JPH10187419A/ja
Application granted granted Critical
Publication of JP3538826B2 publication Critical patent/JP3538826B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)
  • Controls And Circuits For Display Device (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、演算回路および演
算方法に関し、特に、例えば、コンピュータグラフィッ
クスシステムなどにおいて、固定小数点で表されたMビ
ットの2進数Aと、固定小数点で表されたNビットの2
進数であって、小数点がMSB(Most Significant Bi
t)とその1ビット上位との間に設定されている2進数
Bとを乗算し、その乗算結果として、Mビットの2進数
Cを得る場合に、その誤差を低減することができるよう
にする演算回路および演算方法に関する。
【0002】
【従来の技術】例えば、コンピュータグラフィックスシ
ステムにおいては、ある物体と他の物体との重なり部分
を描画する際に、いわゆるブレンディング(blending)
処理が行われる。即ち、例えば、ある物体に対応する画
像データをAとするとともに、他の物体に対応する画像
データをBとするとき、ブレンド係数として、0以上1
以下の実数であるαを用意し、これらの物体の重なり部
分の画像データCが、次式により求められる。 C=αA+(1−α)B・・・(1)
【0003】
【発明が解決しようとする課題】ところで、コンピュー
タグラフィックスシステムでは、その処理の高速化のた
めに、画像データA乃至Cや、ブレンド係数αは、固定
小数点とされた2進数で表される(扱われる)。このた
め、特に、ブレンド係数αが1の場合、ブレンド係数α
を乗数(または被乗数)として行われる乗算には、誤差
が生じる課題があった。
【0004】即ち、いま、コンピュータグラフィックス
システムにおいて、ブレンド係数αが、例えば4ビット
で表され、そのMSB(Most Significant Bit)と、そ
の1つ上位のビットとの間に小数点が設定されていると
すると、このようなブレンド係数αによれば、例えば、
2進数で、0.0000b,0.0001b,0.00
10b,・・・,0.1111b(bは、その前の数字
が2進数であることを表す)を、つまり、10進数で、
0,1/16,2/16,・・・,15/16を表すこ
とができる。
【0005】しかしながら、この場合、1は表すことが
できないため、固定小数点で表現された画像データA
に、ブレンド係数αとして1を乗算したいときには、4
ビットで表現し得る最大のブレンド係数αとしての0.
1111bが乗算される。このため、本来ならば、その
演算結果としてAが得られるはずが、それよりも小さい
値が得られることになる。
【0006】そして、このような演算が繰り返し行われ
る場合には、その誤差が累積され、最終的に得られる値
には、大きな誤差が含まれることになる。
【0007】即ち、図7に示すように、ある画像データ
A,Bをブレンドし、そのブレンド結果Cに、さらに、
他の画像データDをブレンドする場合においては、ま
ず、式(1)にしたがい、乗算器41で、Aとブレンド
係数α1とが乗算されるとともに、乗算器42で、Bと
(1−α1)とが乗算され、いずれも加算器43に供給
されて加算される。この加算結果としての画像データC
は、やはり式(1)にしたがい、乗算器44でブレンド
係数α2と乗算され、加算器46に出力される。また、
乗算器45では、画像データDと(1−α2)とが乗算
され、その乗算結果が、加算器46に出力される。加算
器46では、乗算器44と45との出力が加算され、こ
れにより、求めるべき画像データEが算出される。
【0008】この場合において、ブレンド係数α1およ
びα2がいずれも1であるときには、本来は、画像デー
タA,C,Eは、同一の値となるはずであるが、演算器
41または44において、4ビットで表現し得る最大値
0.1111bがブレンド係数α1またはα2としてそれ
ぞれ乗算された場合、その大小関係は、A>C>Eとな
り、従って、式(1)にしたがったブレンド処理が行わ
れるたびに、元の画像データAを小さくした値が得られ
ることになる。
【0009】そこで、ブレンド係数を表すのに、もう1
ビット使用する(上位に1ビット追加する)方法がある
が、これでは、グラフィックスアプリケーションで取り
扱うブレンド係数すべてのビット数が1ビット増加する
ことになり、1でないブレンド係数については、いわば
無駄にビット数が増加されることになる。
【0010】また、例えば、小数点を、MSBとその1
つ下位のビットとの間に設定するなどのように、ブレン
ド係数αのデータ形式を変更する方法もあるが、この場
合、既に存在するグラフィックスアプリケーションに対
処することが困難である。さらに、この場合、1を越え
る値も表現することが可能となるが、ブレンド係数αは
0以上1以下の範囲を表現することができれば充分であ
り、1を越える値の範囲については無駄になる。また、
この場合、小数点以下のビット数が1ビット減るため、
微妙なブレンドを行うのが困難となる。
【0011】本発明は、このような状況に鑑みてなされ
たものであり、Mビットの2進数Aと、小数点がMSB
とその1ビット上位との間に設定されているNビットの
2進数Bとを乗算し、その乗算結果として、Mビットの
2進数Cを得る場合に、その誤差を低減することができ
るようにするものである。
【0012】
【課題を解決するための手段】請求項1に記載の演算回
路は、2進数AとBとを乗算する乗算手段と、乗算手段
の乗算結果に2進数Aを加算する加算手段と、加算手段
の加算結果の上位Mビットを、Mビットの2進数Cとし
て取り出す取り出し手段とを備えることを特徴とする。
【0013】請求項3に記載の演算方法は、2進数Aと
Bとを乗算し、その乗算結果に2進数Aを加算し、その
加算結果の上位Mビットを、Mビットの2進数Cとして
取り出すことを特徴とする。
【0014】請求項1に記載の演算回路においては、乗
算手段は、2進数AとBとを乗算し、加算手段は、乗算
手段の乗算結果に2進数Aを加算し、取り出し手段は、
加算手段の加算結果の上位Mビットを、Mビットの2進
数Cとして取り出すようになされている。
【0015】請求項3に記載の演算方法においては、2
進数AとBとを乗算し、その乗算結果に2進数Aを加算
し、その加算結果の上位Mビットを、Mビットの2進数
Cとして取り出すようになされている。
【0016】
【発明の実施の形態】図1は、本発明を適用した3次元
グラフィックスシステムの構成例を示している。
【0017】メインプロセッサ(main processor)1
は、3次元グラフィックスシステムを構成する各ブロッ
クを制御するとともに、所定の画像処理、その他の各種
の処理を行うようになされている。
【0018】I/Oインターフェイス(I/O periphera
l)2は、例えば、図示せぬ記録媒体や通信回線から供
給される3次元グラフィックスデータを受信し、バス3
を介して、メインプロセッサ1や、メインメモリ4、ジ
オメトリ処理回路6に供給するようになされている。バ
ス3は、メインプロセッサ1、I/Oインターフェイス
2、メインメモリ4、およびジオメトリ処理回路6を相
互に接続している。
【0019】メインメモリ(main memory)4は、I/
Oインターフェイス2で受信されたグラフィックスデー
タや、メインプロセッサ1で処理されたデータなどを必
要に応じて記憶するようになされている。
【0020】ジオメトリ(geometry)処理回路6は、そ
こに供給されるデータに対して、例えば、座標変換や、
クリッピング(Clipping)処理、ライティング(Lighti
ng)処理等のジオメトリ(Geomerty)処理を施し、その
結果得られる、例えば、3角形(triangle)のポリゴン
のデータ(ポリゴンデータ)X,Y,Z,R,G,B,
α,S,T,Q,FをDDA(Digital Differential A
narizer)セットアップ回路7に出力するようになされ
ている。即ち、この3次元グラフィックスシステムで
は、3次元画像をポリゴン(単位図形)としての3角形
に分解し、このポリゴンを描画することで、その3次元
画像全体の描画が行われるようになされており、ジオメ
トリ処理回路6では、そのような3角形を描画するのに
必要なデータとしてのポリゴンデータX,Y,Z,R,
G,B,α,S,T,Q,Fが求められる。
【0021】ここで、ポリゴンデータX,Y,Z,R,
G,B,α,S,T,Qのうち、X,Y,Zは、3角形
のポリゴンの3頂点それぞれの物理座標系におけるx,
y,z座標をそれぞれ表し、R,G,Bは、その3頂点
それぞれにおける赤(Red)、緑(Green)、青(Blue)
の輝度値を表している。
【0022】また、αは、これから描画しようとしてい
る画素のRGBと、後述するディスプレイバッファ12
に既に記憶されている画素のRGBとのブレンドの割合
を表すブレンド(Blend)係数を表している。なお、α
は、例えば、0以上1以下の実数で、これから描画しよ
うとしている画素の画素値(カラー値)をFcとすると
ともに、ディスプレイバッファ12に記憶されている画
素の画素値をBcとするとき、これらのブレンド結果と
しての画素値Ccは、前述した式(1)と同様の次式に
より与えられる。 Cc=αFc+(1−α)Bc
【0023】さらに、S,T,Qは、3角形のポリゴン
の3頂点それぞれにおけるテクスチャ座標(テクスチャ
についての同次座標)を表す。即ち、この3次元グラフ
ィックスシステムでは、テクスチャマッピング(textur
e mapping)によって、物体の表面に模様(テクスチ
ャ)が付されるようになされており、S,T,Qは、こ
のテクスチャマッピングにおいて用いられる。なお、S
/Q,T/Qそれぞれに、テクスチャサイズ(Texture
Size)(ミップマップのレベル)を乗じた値がテクスチ
ャアドレスとなる。
【0024】また、Fは、これから描画しようとしてい
る画素をぼやけさせる場合のそのぼやけの程度を表すフ
ォグ(fog)値で、例えば、この値が大きいほど、ぼや
けて表示される。
【0025】DDAセットアップ回路7は、ジオメトリ
処理回路6からのポリゴンデータX,Y,Z,R,G,
B,α,S,T,Qを用いて、後段のDDA演算回路8
において行われるDDA演算のためのセットアップ演算
を行い、その演算結果を、DDA演算回路8に出力する
ようになされている。DDA演算回路8は、DDAセッ
トアップ回路7における演算結果を用いて、DDA演算
を行い、その演算結果を、テクスチャプロセッサ9に供
給するようになされている。
【0026】ここで、DDA演算とは、2点間におい
て、例えば線型補間により、その2点間を結ぶ線分を構
成する画素についての各値を求める演算である。即ち、
例えば、2点のうちの一方を始点とするとともに、他方
を終点とし、その始点および終点に、ある値が与えられ
ているとき、終点に与えられている値と、始点に与えら
れている値との差分を、その始点と終点との間にある画
素数で除算することで、始点および終点に与えられてい
る値の変化分(変化の割合)が求められ、これを、始点
から終点の方向に進むにつれて、始点に与えられている
値に順次加算(積算)することで、始点と終点との間に
ある各画素における値が求められる。
【0027】本実施の形態では、DDA演算回路8にお
いて、ポリゴンの3頂点をp1,p2,p3とすると
き、点p1とp2、点p2とp3、および点p1とp3
に対して、このようなDDA演算が施され、これによ
り、ポリゴンの3辺上にある画素についてのポリゴンデ
ータZ,R,G,B,α,S,T,Qが、さらには、そ
のポリゴン内部にある画素についてのポリゴンデータ
Z,R,G,B,α,S,T,Qが、x,y座標を変数
として求められる。
【0028】なお、この場合、ポリゴンデータZ,R,
G,B,α,S,T,Qの、x,y軸方向についての変
化分が必要となるが、この変化分が、DDAセットアッ
プ回路7において行われるセットアップ演算により求め
られるようになされている。
【0029】テクスチャプロセッサ9は、DDA演算回
路8からのDDA演算結果、即ち、ポリゴンを構成する
各画素のx,y座標と、そのx,y座標における画素に
ついてのポリゴンデータZ,R,G,B,α,S,T,
Qを受信し、そのデータに基づいてテクスチャマッピン
グを行うようになされている。
【0030】即ち、テクスチャプロセッサ9は、例え
ば、S,TそれぞれをQで除算することにより、テクス
チャアドレスU(∝S/Q),V(∝T/Q)を算出
し、必要に応じて各種のフィルタリング処理を行うこと
で、与えられたx,y座標におけるテクスチャの色を算
出する。具体的には、テクスチャアドレスU,Vととも
に、リード要求(Read Request)を、メモリI/F10
に出力することで、テクスチャバッファ11から、テク
スチャアドレスU,Vに対応するテクスチャデータ(Te
xture Color Data)を読み出す。このテクスチャデータ
は、メモリI/F10を介して、テクスチャプロセッサ
9に供給されるようになされており、テクスチャプロセ
ッサ9は、このテクスチャデータとしてのR,G,B値
と、DDA演算回路8からのR,G,B値とに各種のフ
ィルタリング(Filtering)処理を施し、即ち、例え
ば、両者を所定の割合で混合し、さらに、あらかじめ設
定された色を、フォグ値Fにしたがって混合し、ポリゴ
ンを構成する各画素の最終的なR,G,B値を算出す
る。
【0031】テクスチャプロセッサ9において最終的に
得られた画素のR,G,B値は、その画素のx,y座
標、およびその他必要なポリゴンデータとともに、メモ
リI/F10に転送されるようになされている。
【0032】メモリI/F10は、メモリ20に対する
データの読み出しおよび書き込みを制御するようになさ
れている。即ち、メモリI/F10は、例えば、テクス
チャプロセッサ9から、リード要求とともに、テクスチ
ャアドレスU,Vを受信すると、テクスチャバッファ1
1から、そのテクスチャアドレスU,Vに記憶されてい
るテクスチャデータを読み出し、テクスチャプロセッサ
9に供給するようになされている。
【0033】また、メモリI/F10は、テクスチャプ
ロセッサ9から供給されるポリゴンデータに基づいて、
そのポリゴンのZ値(ポリゴンの所定の代表点の深さを
表すもの)と、Zバッファ13に既に記憶されているポ
リゴンのZ値とを比較し、テクスチャプロセッサ9から
のポリゴンが、Zバッファ13に記憶されているポリゴ
ンよりも手前に位置する場合には、Zバッファ13に記
憶されているZ値を更新するとともに、テクスチャプロ
セッサ9からのR,G,B値を、ディスプレイバッファ
12に書き込むようになされている。なお、メモリI/
F10は、テクスチャプロセッサ9からのR,G,B値
に付随するブレンド係数αがある場合には、ディスプレ
イバッファ12から、対応する画素のR,G,B値を読
み出し、テクスチャプロセッサ9からのR,G,B値
を、例えばブレンド係数αにしたがってブレンドして、
そのブレンド結果を、ディスプレイバッファ12に書き
込むようになされている。
【0034】さらに、メモリI/F10は、CRTコン
トローラ14からの要求に応じて、ディスプレイバッフ
ァ12に記憶されたデータを読み出し、CRTコントロ
ーラ14に供給するようにもなされている。
【0035】なお、以上のジオメトリ処理回路6、DD
Aセットアップ回路7、DDA演算回路8、テクスチャ
プロセッサ9、およびメモリI/F10が、描画の高速
化を図るための描画専用のレンダリングエンジン(rend
ering engine)21を構成している。
【0036】メモリ20は、テクスチャバッファ11、
ディスプレイバッファ12、およびZバッファ13で構
成されている。テクスチャバッファ11は、ミップマッ
プ(MIPMAP)の各レベル(Level)に対応した縮小率の
テクスチャデータを記憶するようになされている。ディ
スプレイバッファ12は、CRT(Cathod Ray Tube)
16に表示する画像に対応するデータを記憶するように
なされている。Zバッファ13は、最も手前にあるポリ
ゴンについてのデータを、そのZ値とともに記憶するよ
うになされている。なお、メモリI/F10が、受信し
たデータのうちのZ値を、Zバッファに既に記憶されて
いるZ値と比較し、受信したデータに対応するポリゴン
の方が手前にある場合に、ディスプレイバッファ12に
対するデータの書き込みと、Zバッファ13に記憶され
たZ値の更新を行うようになされている。
【0037】CRTコントローラ14は、図示せぬ回路
から与えられる水平、垂直同期信号に同期して、表示ア
ドレス(表示Address)を発生し、その表示アドレスか
らのデータの読み出し要求を、メモリI/F10に出力
し、その要求に応じて、メモリI/F10から供給され
る所定のまとまったR,G,B値を、表示データ(表示
Data)として受信するようになされている。さらに、C
RTコントローラ14は、例えば、FIFO(First In
First Out)方式のメモリ(以下、適宜、FIFOメモ
リという)を内蔵しており、そのFIFOメモリに、受
信した表示データを記憶させ、所定の一定の間隔で、そ
の表示データを、RAMDAC15に転送するようにな
されている。
【0038】RAMDAC15は、RGBへのインデッ
クス値と、RGB値を対応付けて記憶しているCLUT
(Color Look Up Table)およびD/A変換器(Digital
Analog Converter)を内蔵しており、CRTコントロ
ーラ14からのインデックス値を、それに対応するRG
B値に変換し、さらにD/A変換してアナログ信号に変
換し、CRT16に供給するようになされている。CR
T16は、RAMDAC15からの信号にしたがった表
示を行うようになされている。
【0039】次に、その動作について説明する。
【0040】I/Oインターフェイス2でグラフィック
データが受信されると、例えば、メインプロセッサ1で
は、そのグラフィックデータに対して必要な処理(例え
ば、光源計算処理など)が施され、メインメモリ4に転
送されて記憶される。メインメモリ4に記憶されたデー
タは、適宜読み出され、ジオメトリ処理回路6に転送さ
れる。ジオメトリ処理回路6では、そこに供給されたデ
ータに対してジオメトリ処理が施されることにより、ポ
リゴンデータX,Y,Z,R,G,B,α,S,T,Q
が算出される。このポリゴンデータは、DDAセットア
ップ回路7に供給される。
【0041】DDAセットアップ回路7では、ジオメト
リ処理回路6からのポリゴンデータに対して、セットア
ップ演算が施され、DDA演算回路8に供給される。D
DA演算回路8では、DDAセットアップ回路7におけ
る演算結果を用いて、DDA演算が行われ、その演算結
果が、必要なポリゴンデータとともに、テクスチャプロ
セッサ9に供給される。
【0042】テクスチャプロセッサ9では、DDA演算
回路8の出力に基づいて、テクスチャアドレスU,Vが
算出され、そのテクスチャアドレスU,Vからのリード
要求が、メモリI/F10に対して出力される。メモリ
I/F10は、テクスチャプロセッサ9からリード要求
とともにテクスチャアドレスU,Vを受信すると、テク
スチャバッファ11から、テクスチャアドレスU,Vに
対応するテクスチャデータを読み出し、テクスチャプロ
セッサ9に供給する。テクスチャプロセッサ9は、メモ
リI/F10からテクスチャデータを受信すると、その
テクスチャデータを用いて、各種のフィルタリング処理
を行い、その処理結果を、メモリI/F10に供給する
ことで、ディスプレイバッファ12に書き込む。
【0043】一方、CRTコントローラ14では、表示
アドレスが発生され、その表示アドレスからのデータの
読み出し要求が、メモリI/F10に出力される。メモ
リI/F10では、CRTコントローラ14からの要求
に応じて、ディスプレイバッファ12から表示データを
読み出し、CRTコントローラ14に転送する。CRT
コントローラ14は、メモリI/F10から表示データ
を受信すると、その表示データを、RAMDAC15を
介して、CRT16に供給し、これにより、CRT16
においては、ポリゴンで構成される3次元画像が表示さ
れる。
【0044】次に、図2を参照して、レンダリングエン
ジン21において各画素ごとに行われるレンダリング処
理について説明する。
【0045】レンダリング処理においては、まず最初
に、ポリゴンに貼り付けるテクスチャの拡大率(縮小
率)などに基づいて、ミップマップ(MIPMAP(Multum In
Parvo MAP))の解像度のレベル(level)が選択され
る。さらに、DDA演算により求められたテクスチャの
同次表現でのアドレス(address)(同次座標)(S,
T)がQで除算され、その除算結果に、選択された解像
度のレベル(テクスチャのサイズ)が乗算されること
で、テクスチャアドレスが算出される。そして、このテ
クスチャアドレスは、テクセル(Texel)におけるテク
スチャに対応するから、これから、ピクセル(画素)
(pixel)におけるテクスチャが求められる。即ち、あ
るピクセルの周囲にある、例えば、4つのテクセルを用
いてバイリニア(Bi-Liner)補間などを行うことによ
り、そのピクセルにおけるテクスチャ(テクスチャカラ
ー)が求められる(1)。
【0046】次に、DDA演算で求められた物体のカラ
ー(color)と、上述の(1)で求められたテクスチャ
カラーとを、同じくDDA演算で求められたテクスチャ
用のブレンド係数αt(Texture α)にしたがって混合
し、即ち、物体のカラーまたはテクスチャカラーをそれ
ぞれCDDAまたはCtとするとき、前述の式(1)に対応
する演算である式Cb=αt×CDDA+(1−αt)×Ct
を演算し、混合カラーCbを求める(2)。
【0047】さらに、この混合カラーCbに対して、フ
ォグ効果をだすためのフォグブレンディング(Fog Blen
ding)処理を施し、即ち、フォグ値(フォグ係数)また
はフォグとして使用するカラーをそれぞれFまたはCf
とするとき、前述の式(1)に対応する演算である式C
s=F×Cb+(1−F)×Cfを演算し、これにより、
ソースカラーCsを求める(3)。
【0048】その後は、透明処理などを行う場合に有効
な処理として知られている、いわゆるアルファテスト
(α Test)が行われる。即ち、DDA演算により求め
られたブレンド係数αsと、あらかじめ設定された固定
のブレンド係数αrとを比較し、その比較結果に基づい
て、ピクセルの描画を行うかどうかが決定される
(4)。
【0049】さらに、Zバッファ13を参照することに
より、そこに記憶されているZ値(Zd)と、DDA演
算により求められたZ値(ZDDA)とが比較され、ピク
セルが、描画対象であるかどうかが最終的に判定される
(5)。
【0050】そして、描画対象であると判定され、かつ
描画が決定されたピクセルについては、そのピクセルの
カラーをCsと、既に描画されている、対応するピクセ
ルのカラーをCdと、それぞれするとき、前述の式
(1)にしたがって、式Cfb=α×Cs+(1−α)×
dが演算されることにより、カラーCsとCdとが、D
DA演算で求めたブレンド係数αを用いてブレンドさ
れ、ブレンド後のカラーCfbが求められる(6)。
【0051】その後、このブレンド後のカラーCfbに対
して、減色処理が施される(7)。
【0052】そして、減色処理の結果得られた値がディ
スプレイバッファ12に書き込まれる(描画される)
(8)。
【0053】次に、図3を参照して、テクスチャをポリ
ゴンに貼り付けるときに行われる合成処理について説明
する。
【0054】図1のグラフィックスシステムでは、ライ
ティング(lighting)計算(光源計算)が行われること
により、照明と視点位置からの、物体の表面を構成する
ポリゴン(3角形)の各頂点における色(カラー)が決
定され、また、DDA演算により、ポリゴン内部を構成
するピクセルそれぞれの色が決定される。
【0055】ここで、このようにして決定された色は、
フラグメントカラー(Fragment Color(FC))と呼ばれ
る。
【0056】そして、ライティング計算により得られた
フラグメントカラーに対して、テクスチャカラー(Text
ure Color(TC))をどのように影響させるかによって、
様々な効果を得ることができる(なお、テクスチャを貼
り付けず、また、光源計算もしない場合があるが、この
場合は、単に物体色として、テクスチャカラーの指定が
行われることがある)。
【0057】フラグメントカラーに対して、テクスチャ
カラーを影響させる方法としては、図3に示すように、
映し絵(decal)、モジュレイト(modulate)、ブレン
ド(blend)と呼ばれるものなどがある。
【0058】これらの方法のうち、通常用いられるの
が、モジュレイトであり、モジュレイトでは、図3に示
すように、フラグメントカラーにテクスチャカラーが乗
算され、その乗算結果が用いられる。例えば、物体に赤
色の照明があたっている場合、青色のテクスチャは黒色
に、赤色のテクスチャは赤色に、それぞれ見えるが、モ
ジュレイトによれば、そのような実際に見える色に描画
がなされる。
【0059】映し絵は、ライティングの状態に無関係
に、テクスチャを、そのまま物体に貼り付けるような場
合などに使用される。映し絵では、テクスチャのブレン
ド係数αtも与えられている場合、図3に示すように、
そのブレンド係数にしたがって、ライティングされた物
体に、テクスチャがブレンドされるため、例えば、半透
明のテクスチャを物体に貼り付けることができる。な
お、半透明でない(かつ透明でもない)テクスチャを物
体に貼り付ける場合に映し絵を使用した場合、その結果
得られる色は、通常、実際に見える色とは異なるものと
なる。
【0060】ブレンドでは、図3に示すように、ある決
められた固定の色Cenvが、テクスチャのデータ(textu
re data)をブレンド係数(混合比)として用いて、フ
ラグメントカラーにブレンドされる。
【0061】なお、テクスチャのデータの種類として
は、テクスチャの明るさ、そのブレンドに用いるブレン
ド係数、および色(R,G,B)があり、ここでは、映
し絵、モジュレイト、またはブレンドそれぞれにおいて
用いることのできるデータは決まっている。即ち、映し
絵では、色または色とブレンド係数だけが用いられる。
モジュレイトでは、明るさ、明るさとブレンド係数、
色、または色とブレンド係数のうちのいずれも用いるこ
とができる。ブレンドでは、明るさまたは明るさとブレ
ンド係数だけが用いられる。
【0062】図1のグラフィックスシステムでは、以上
の図2または図3でそれぞれ説明したレンダリング処理
または合成処理だけでも、0以上1未満の乗数または被
乗数としてのブレンド係数やフォグ値などを用いた乗算
が、数多く行われる。
【0063】そして、図1のグラフィックスシステムで
は、このような乗算が、図4に示すような演算回路によ
って行われるようになされている。
【0064】この演算回路では、固定小数点で表された
Mビットの2進数Aと、固定小数点で表されたNビット
の2進数であって、小数点がMSBとその1ビット上位
との間に設定されている2進数Bとの乗算結果として、
次のような、2進数Aと同一ビット数であるMビットの
2進数Cが出力される。
【0065】即ち、演算回路は、乗算器31(乗算手
段)、加算器32(加算手段)、およびシフタ33(取
り出し手段)で構成され、2進数AとBとは、乗算器3
1で乗算される。この乗算結果は、加算器32に出力さ
れる。加算器32には、乗算器31の出力の他、2進数
Aも供給されており、そこでは、これらが加算されて、
シフタ33に出力される。シフタ33では、加算器32
の出力が、2進数Bと同一ビット数であるNビットだけ
右シフトされることにより、加算器32の出力の上位M
ビットが取り出され、これが、2進数AとBの乗算結果
としての2進数Cとして出力される。
【0066】以上のような演算回路によれば、2進数A
に1を乗算する場合には、Nビットの2進数Bで表現し
得る最大値を用いることで、誤差のない乗算結果を得る
ことができる。
【0067】即ち、例えば、いま、2進数Bのビット数
を4ビットとすると、その最大値は、0.1111b、
即ち、10進数では、15/16であるから、これを、
2進数Aに乗算した場合、A×15/16が得られる。
従って、A×1の演算結果を得るためには、A×15/
16にA×1/16を加算すれば良い。そこで、いま、
X>>Yが、2進数XのYビット右シフト(2Yによる
除算)を表すものとすると、A×1は、次式で計算する
ことができる。
【0068】 A×1=A×15/16+A×1/16 =A×15/24+A/24 =(A×15)>>4+A>>4 =(A×1111b+A)>>4
【0069】上式から、2進数Aに、2進数Bで表現し
得る最大値(1111b)を乗算し、その乗算結果に、
2進数Aを加算し、その加算結果を、2進数Bのビット
数(ここでは4ビット)だけシフトすることにより、そ
のMSBから、2進数Aのビット数だけ取り出せば、A
×1の演算結果を得ることができることがわかる。
【0070】即ち、図4の演算回路によれば、2進数A
と、2進数Bで表現し得る最大値とを入力することで、
A×1の正しい演算結果を得ることができる。
【0071】具体的には、例えば、A=1111b,B
=11bの場合、乗算器31による乗算結果は、図5
(A)に示すように、101101bとなる。さらに、
この乗算器31の出力に、Aを加算した値、即ち、加算
器32の加算結果は、図5(B)に示すように、111
100bとなる。そして、この加算結果のMSBから、
Aのビット数である4ビットを取り出したもの、即ち、
シフタ33でBと同一のビット数である2ビット右シフ
トしたものは、1111bとなり、Aと同一の値を得る
ことができる。
【0072】また、例えば、A=11b,B=1111
bの場合、乗算器31による乗算結果は、図6(A)に
示すように、101101bとなる。さらに、この乗算
器31の出力に、Aを加算した値、即ち、加算器32の
加算結果は、図6(B)に示すように、110000b
となる。そして、この加算結果のMSBから、Aのビッ
ト数である2ビットを取り出したもの、即ち、シフタ3
3でBと同一のビット数である4ビット右シフトしたも
のは、11bとなり、やはり、Aと同一の値を得ること
ができる。
【0073】以上、本発明を、グラフィックシステムに
適用した場合について説明したが、本発明は、その他、
0以上1以下の値を乗数または被乗数とする乗算を行
う、あらゆる装置に適用可能である。
【0074】なお、Aに1を乗算するのではなく、0以
上1未満の範囲の値を乗算する場合には、図4の演算回
路では誤差が生じることがあるので、この場合は、通常
の乗算器(例えば、図4に示す乗算器31だけ)を用い
るようにすれば良い。
【0075】
【発明の効果】請求項1に記載の演算回路および請求項
3に記載の演算方法によれば、2進数AとBとが乗算さ
れ、その乗算結果に2進数Aが加算される。そして、そ
の加算結果の上位Mビットが、Mビットの2進数Cとし
て取り出される。従って、2進数Bの小数点が、そのM
SBと1ビット上位との間に設定されている場合であっ
ても、Aに1を乗算した、正しい乗算結果としてのMビ
ットの2進数Cを得ることが可能となる。
【図面の簡単な説明】
【図1】本発明を適用したグラフィックシステムの構成
例を示すブロック図である。
【図2】レンダリング処理を説明するための図である。
【図3】合成処理を説明するための図である。
【図4】本発明の演算回路の一実施の形態の構成例を示
すブロック図である。
【図5】図4の演算回路による演算の具体例を説明する
ための図である。
【図6】図4の演算回路による演算の具体例を説明する
ための図である。
【図7】従来の、ブレンディング処理を行う回路の一例
の構成を示すブロック図である。
【符号の説明】
1 メインプロセッサ, 2 I/Oインターフェイ
ス, 3 バス, 4メインメモリ, 6 ジオメトリ
処理回路, 7 DDAセットアップ回路,8 DDA
演算回路, 9 テクスチャプロセッサ, 10 メモ
リI/F,11 テクスチャバッファ, 12 ディス
プレイバッファ, 13 Zバッファ, 14 CRT
コントローラ, 15 RAMDAC, 16 CR
T,20 メモリ, 21 レンダリングエンジン,
31 乗算器(乗算手段),32 加算器(加算手
段), 33 シフタ(取り出し手段)

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 固定小数点で表されたMビットの2進数
    Aと、固定小数点で表されたNビットの2進数であっ
    て、小数点がMSB(Most Significant Bit)とその1
    ビット上位との間に設定されている2進数Bとを乗算
    し、その乗算結果として、Mビットの2進数Cを出力す
    る演算回路において、 2進数AとBとを乗算する乗算手段と、 前記乗算手段の乗算結果に2進数Aを加算する加算手段
    と、 前記加算手段の加算結果の上位Mビットを、前記Mビッ
    トの2進数Cとして取り出す取り出し手段とを備えるこ
    とを特徴とする演算回路。
  2. 【請求項2】 2進数Bは、Nビットの2進数が表現し
    得る最大値であることを特徴とする請求項1に記載の演
    算回路。
  3. 【請求項3】 固定小数点で表されたMビットの2進数
    Aと、固定小数点で表されたNビットの2進数であっ
    て、小数点がMSB(Most Significant Bit)とその1
    ビット上位との間に設定されている2進数Bとを乗算
    し、その乗算結果として、Mビットの2進数Cを出力す
    る演算方法において、 2進数AとBとを乗算し、 その乗算結果に2進数Aを加算し、 その加算結果の上位Mビットを、前記Mビットの2進数
    Cとして取り出すことを特徴とする演算方法。
  4. 【請求項4】 2進数Bは、Nビットの2進数が表現し
    得る最大値であることを特徴とする請求項3に記載の演
    算方法。
JP34731196A 1996-12-26 1996-12-26 演算回路および演算方法 Expired - Fee Related JP3538826B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP34731196A JP3538826B2 (ja) 1996-12-26 1996-12-26 演算回路および演算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP34731196A JP3538826B2 (ja) 1996-12-26 1996-12-26 演算回路および演算方法

Publications (2)

Publication Number Publication Date
JPH10187419A JPH10187419A (ja) 1998-07-21
JP3538826B2 true JP3538826B2 (ja) 2004-06-14

Family

ID=18389367

Family Applications (1)

Application Number Title Priority Date Filing Date
JP34731196A Expired - Fee Related JP3538826B2 (ja) 1996-12-26 1996-12-26 演算回路および演算方法

Country Status (1)

Country Link
JP (1) JP3538826B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7272082B2 (ja) * 2019-04-18 2023-05-12 セイコーエプソン株式会社 表示方法及び表示装置

Also Published As

Publication number Publication date
JPH10187419A (ja) 1998-07-21

Similar Documents

Publication Publication Date Title
EP1025558B1 (en) A method and apparatus for performing chroma key, transparency and fog operations
US5896136A (en) Computer graphics system with improved blending
US6005580A (en) Method and apparatus for performing post-process antialiasing of polygon edges
US6038031A (en) 3D graphics object copying with reduced edge artifacts
US6275235B1 (en) High precision texture wrapping method and device
US6987518B2 (en) Graphics and video integration with alpha and video blending
JPH05307610A (ja) テクスチャマッピング方法およびその装置
JP3529759B2 (ja) 画像処理プログラム、画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体、プログラム実行装置、画像処理装置、及び画像処理方法
US6927778B2 (en) System for alpha blending and method thereof
US6859209B2 (en) Graphics data accumulation for improved multi-layer texture performance
US6778188B2 (en) Reconfigurable hardware filter for texture mapping and image processing
US20070291045A1 (en) Multiple texture compositing
US6867778B2 (en) End point value correction when traversing an edge using a quantized slope value
US6943791B2 (en) Z-slope test to optimize sample throughput
JP3538826B2 (ja) 演算回路および演算方法
US20030169271A1 (en) Magnified texture-mapped pixel performance in a single-pixel pipeline
US6927775B2 (en) Parallel box filtering through reuse of existing circular filter
US6693634B1 (en) Reduction rate processing circuit and method with logarithmic operation and image processor employing same
CA2261245C (en) Division circuit and graphic display processing apparatus
US20030164842A1 (en) Slice blend extension for accumulation buffering
US6329999B1 (en) Encoder, method thereof and graphic processing apparatus
US6847372B2 (en) Magnified texture-mapped pixel performance in a single-pixel pipeline
US6750862B1 (en) Method and system for performing enhanced lighting functions for texture map data
JPH10187124A (ja) 描画装置および描画方法
US6847368B2 (en) Graphics system with a buddy / quad mode for faster writes

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040130

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: 20040301

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040314

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080402

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090402

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100402

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100402

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110402

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120402

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130402

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees