JPH10187419A - Circuit and method for arithmetic - Google Patents
Circuit and method for arithmeticInfo
- Publication number
- JPH10187419A JPH10187419A JP8347311A JP34731196A JPH10187419A JP H10187419 A JPH10187419 A JP H10187419A JP 8347311 A JP8347311 A JP 8347311A JP 34731196 A JP34731196 A JP 34731196A JP H10187419 A JPH10187419 A JP H10187419A
- Authority
- JP
- Japan
- Prior art keywords
- binary number
- texture
- result
- bits
- data
- 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.)
- Granted
Links
Landscapes
- Processing Or Creating Images (AREA)
- Image Processing (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は、演算回路および演
算方法に関し、特に、例えば、コンピュータグラフィッ
クスシステムなどにおいて、固定小数点で表されたMビ
ットの2進数Aと、固定小数点で表されたNビットの2
進数であって、小数点がMSB(Most Significant Bi
t)とその1ビット上位との間に設定されている2進数
Bとを乗算し、その乗算結果として、Mビットの2進数
Cを得る場合に、その誤差を低減することができるよう
にする演算回路および演算方法に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an arithmetic circuit and an arithmetic method, and more particularly to, for example, an M-bit binary number A represented by a fixed point and N represented by a fixed point in a computer graphics system or the like. Bit 2
A decimal number, and the decimal point is MSB (Most Significant Bi
In order to reduce the error when multiplying a binary number B set between t) and one bit higher than that and obtaining an M-bit binary number C as a result of the multiplication. The present invention relates to an arithmetic circuit and an arithmetic method.
【0002】[0002]
【従来の技術】例えば、コンピュータグラフィックスシ
ステムにおいては、ある物体と他の物体との重なり部分
を描画する際に、いわゆるブレンディング(blending)
処理が行われる。即ち、例えば、ある物体に対応する画
像データをAとするとともに、他の物体に対応する画像
データをBとするとき、ブレンド係数として、0以上1
以下の実数であるαを用意し、これらの物体の重なり部
分の画像データCが、次式により求められる。 C=αA+(1−α)B・・・(1)2. Description of the Related Art For example, in a computer graphics system, when an overlapping portion between an object and another object is drawn, so-called blending is performed.
Processing is performed. That is, for example, when the image data corresponding to a certain object is A and the image data corresponding to another object is B, a blend coefficient of 0 or more and 1
The following real number α is prepared, and the image data C of the overlapping portion of these objects is obtained by the following equation. C = αA + (1−α) B (1)
【0003】[0003]
【発明が解決しようとする課題】ところで、コンピュー
タグラフィックスシステムでは、その処理の高速化のた
めに、画像データA乃至Cや、ブレンド係数αは、固定
小数点とされた2進数で表される(扱われる)。このた
め、特に、ブレンド係数αが1の場合、ブレンド係数α
を乗数(または被乗数)として行われる乗算には、誤差
が生じる課題があった。By the way, in the computer graphics system, in order to speed up the processing, the image data A to C and the blend coefficient α are represented by a fixed-point binary number ( Treated). Therefore, especially when the blend coefficient α is 1, the blend coefficient α
There is a problem that an error occurs in the multiplication performed by using as a multiplier (or multiplicand).
【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を表すこ
とができる。That is, in the computer graphics system, the blend coefficient α is represented by, for example, 4 bits, and a decimal point is set between its MSB (Most Significant Bit) and the next higher bit. Then, according to such a blend coefficient α, for example,
0.0000b, 0.0001b, 0.00 in binary
.., 0.1111b (b indicates that the number preceding it is a binary number), that is, in decimal number,
0, 1/16, 2/16,..., 15/16.
【0005】しかしながら、この場合、1は表すことが
できないため、固定小数点で表現された画像データA
に、ブレンド係数αとして1を乗算したいときには、4
ビットで表現し得る最大のブレンド係数αとしての0.
1111bが乗算される。このため、本来ならば、その
演算結果としてAが得られるはずが、それよりも小さい
値が得られることになる。However, in this case, since 1 cannot be represented, the image data A represented by a fixed point
To multiply by 1 as the blend coefficient α,
0 as the maximum blend coefficient α that can be expressed in bits.
1111b is multiplied. For this reason, A should normally be obtained as a result of the operation, but a smaller value is obtained.
【0006】そして、このような演算が繰り返し行われ
る場合には、その誤差が累積され、最終的に得られる値
には、大きな誤差が含まれることになる。When such calculations are repeatedly performed, the errors are accumulated, and the finally obtained value contains a large error.
【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が算出される。That is, as shown in FIG. 7, certain image data A and B are blended, and
In the case of blending other image data D, first, according to equation (1), A is multiplied by the blend coefficient α 1 in the multiplier 41, and B and (1−α 1 ) are multiplied, and both are supplied to the adder 43 and added. Image data C as a result of this addition
Is also multiplied by the blend coefficient α 2 by the multiplier 44 according to the equation (1), and is output to the adder 46. Also,
The multiplier 45 multiplies the image data D by (1−α 2 ), and outputs the multiplication result to the adder 46. In the adder 46, the outputs of the multipliers 44 and 45 are added, whereby the image data E to be obtained is calculated.
【0008】この場合において、ブレンド係数α1およ
びα2がいずれも1であるときには、本来は、画像デー
タA,C,Eは、同一の値となるはずであるが、演算器
41または44において、4ビットで表現し得る最大値
0.1111bがブレンド係数α1またはα2としてそれ
ぞれ乗算された場合、その大小関係は、A>C>Eとな
り、従って、式(1)にしたがったブレンド処理が行わ
れるたびに、元の画像データAを小さくした値が得られ
ることになる。In this case, when the blend coefficients α 1 and α 2 are both 1, the image data A, C, and E should originally have the same value. When the maximum value, which can be expressed by 4 bits, 0.1111b is multiplied as the blend coefficient α 1 or α 2 , respectively, the magnitude relation becomes A>C> E, and therefore, the blend processing according to the equation (1) is performed. Is performed, a value obtained by reducing the original image data A is obtained.
【0009】そこで、ブレンド係数を表すのに、もう1
ビット使用する(上位に1ビット追加する)方法がある
が、これでは、グラフィックスアプリケーションで取り
扱うブレンド係数すべてのビット数が1ビット増加する
ことになり、1でないブレンド係数については、いわば
無駄にビット数が増加されることになる。Therefore, to express the blend coefficient, one more
There is a method of using bits (adding one bit to the higher order), but this increases the number of bits of all the blend coefficients handled by the graphics application by one bit. The number will be increased.
【0010】また、例えば、小数点を、MSBとその1
つ下位のビットとの間に設定するなどのように、ブレン
ド係数αのデータ形式を変更する方法もあるが、この場
合、既に存在するグラフィックスアプリケーションに対
処することが困難である。さらに、この場合、1を越え
る値も表現することが可能となるが、ブレンド係数αは
0以上1以下の範囲を表現することができれば充分であ
り、1を越える値の範囲については無駄になる。また、
この場合、小数点以下のビット数が1ビット減るため、
微妙なブレンドを行うのが困難となる。Also, for example, the decimal point is represented by the MSB and its 1
There is also a method of changing the data format of the blend coefficient α, such as setting between the next lower bits, but in this case, it is difficult to deal with an existing graphics application. Further, in this case, a value exceeding 1 can be expressed, but it is sufficient if the blend coefficient α can express a range of 0 or more and 1 or less, and a range of values exceeding 1 is useless. . Also,
In this case, the number of bits after the decimal point is reduced by one bit.
Subtle blending becomes difficult.
【0011】本発明は、このような状況に鑑みてなされ
たものであり、Mビットの2進数Aと、小数点がMSB
とその1ビット上位との間に設定されているNビットの
2進数Bとを乗算し、その乗算結果として、Mビットの
2進数Cを得る場合に、その誤差を低減することができ
るようにするものである。The present invention has been made in view of such a situation, and has a binary A of M bits and a decimal point of MSB.
When an M-bit binary number C is multiplied by an N-bit binary number B which is set between the bit number and the one-bit higher bit, and the multiplication result is obtained, the error can be reduced. Is what you do.
【0012】[0012]
【課題を解決するための手段】請求項1に記載の演算回
路は、2進数AとBとを乗算する乗算手段と、乗算手段
の乗算結果に2進数Aを加算する加算手段と、加算手段
の加算結果の上位Mビットを、Mビットの2進数Cとし
て取り出す取り出し手段とを備えることを特徴とする。An arithmetic circuit according to claim 1 includes a multiplying means for multiplying binary numbers A and B, an adding means for adding a binary number A to a multiplication result of the multiplying means, and an adding means. And a take-out means for taking out the upper M bits of the result of addition as an M-bit binary number C.
【0013】請求項3に記載の演算方法は、2進数Aと
Bとを乗算し、その乗算結果に2進数Aを加算し、その
加算結果の上位Mビットを、Mビットの2進数Cとして
取り出すことを特徴とする。According to a third aspect of the present invention, a binary number A is multiplied by B, a binary number A is added to the result of the multiplication, and the upper M bits of the addition result are defined as an M-bit binary number C. It is characterized by taking out.
【0014】請求項1に記載の演算回路においては、乗
算手段は、2進数AとBとを乗算し、加算手段は、乗算
手段の乗算結果に2進数Aを加算し、取り出し手段は、
加算手段の加算結果の上位Mビットを、Mビットの2進
数Cとして取り出すようになされている。In the arithmetic circuit according to the first aspect, the multiplying means multiplies the binary numbers A and B, the adding means adds the binary number A to the result of the multiplication by the multiplying means, and the extracting means comprises:
The upper M bits of the addition result of the adding means are taken out as an M-bit binary number C.
【0015】請求項3に記載の演算方法においては、2
進数AとBとを乗算し、その乗算結果に2進数Aを加算
し、その加算結果の上位Mビットを、Mビットの2進数
Cとして取り出すようになされている。[0015] In the operation method according to the third aspect, 2
The binary numbers A and B are multiplied, the binary number A is added to the multiplication result, and the upper M bits of the addition result are extracted as an M-bit binary number C.
【0016】[0016]
【発明の実施の形態】図1は、本発明を適用した3次元
グラフィックスシステムの構成例を示している。FIG. 1 shows a configuration example of a three-dimensional graphics system to which the present invention is applied.
【0017】メインプロセッサ(main processor)1
は、3次元グラフィックスシステムを構成する各ブロッ
クを制御するとともに、所定の画像処理、その他の各種
の処理を行うようになされている。Main processor 1
Is designed to control each block constituting the three-dimensional graphics system and perform predetermined image processing and other various processing.
【0018】I/Oインターフェイス(I/O periphera
l)2は、例えば、図示せぬ記録媒体や通信回線から供
給される3次元グラフィックスデータを受信し、バス3
を介して、メインプロセッサ1や、メインメモリ4、ジ
オメトリ処理回路6に供給するようになされている。バ
ス3は、メインプロセッサ1、I/Oインターフェイス
2、メインメモリ4、およびジオメトリ処理回路6を相
互に接続している。I / O interface (I / O peripheral)
l) 2 receives, for example, three-dimensional graphics data supplied from a recording medium or a communication line (not shown), and
To the main processor 1, the main memory 4, and the geometry processing circuit 6. The bus 3 interconnects the main processor 1, the I / O interface 2, the main memory 4, and the geometry processing circuit 6.
【0019】メインメモリ(main memory)4は、I/
Oインターフェイス2で受信されたグラフィックスデー
タや、メインプロセッサ1で処理されたデータなどを必
要に応じて記憶するようになされている。The main memory (main memory) 4 has an I / O
The graphics data received by the O interface 2 and the data processed by the main processor 1 are stored as needed.
【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が求められる。The geometry processing circuit 6 performs, for example, coordinate conversion,
Clipping processing, lighting (Lighti
ng) processing, and the like, and data (polygon data) X, Y, Z, R, G, B, and the like of the resulting polygon, for example, a triangle.
Let α, S, T, Q, and F be DDA (Digital Differential A)
narizer) output to the setup circuit 7. That is, in the three-dimensional graphics system, the three-dimensional image is decomposed into triangles as polygons (unit figures), and the polygon is drawn, whereby the entire three-dimensional image is drawn. In the geometry processing circuit 6, polygon data X, Y, Z, R,
G, B, α, S, T, Q, and F are obtained.
【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)
の輝度値を表している。Here, polygon data X, Y, Z, R,
Of G, B, α, S, T, and Q, X, Y, and Z are x, Y in the physical coordinate system of each of the three vertices of the triangular polygon.
R, G, B represent red, red, green, and blue at each of the three vertices.
Represents the luminance value of.
【0022】また、αは、これから描画しようとしてい
る画素のRGBと、後述するディスプレイバッファ12
に既に記憶されている画素のRGBとのブレンドの割合
を表すブレンド(Blend)係数を表している。なお、α
は、例えば、0以上1以下の実数で、これから描画しよ
うとしている画素の画素値(カラー値)をFcとすると
ともに、ディスプレイバッファ12に記憶されている画
素の画素値をBcとするとき、これらのブレンド結果と
しての画素値Ccは、前述した式(1)と同様の次式に
より与えられる。 Cc=αFc+(1−α)Bc Α is the RGB of the pixel to be drawn and the display buffer 12 to be described later.
Represents a blending (Blend) coefficient indicating the ratio of the pixel already stored in the RGB to the RGB. Note that α
Is, for example, 0 or 1 with the following real, pixel values of pixels that is intended to be drawn (color values) as well as the F c, when the pixel value of the pixel stored in the display buffer 12 and B c , the pixel value C c of the resulting blends is given by the following equation similar to equation (1) described above. C c = αF c + (1−α) B c
【0023】さらに、S,T,Qは、3角形のポリゴン
の3頂点それぞれにおけるテクスチャ座標(テクスチャ
についての同次座標)を表す。即ち、この3次元グラフ
ィックスシステムでは、テクスチャマッピング(textur
e mapping)によって、物体の表面に模様(テクスチ
ャ)が付されるようになされており、S,T,Qは、こ
のテクスチャマッピングにおいて用いられる。なお、S
/Q,T/Qそれぞれに、テクスチャサイズ(Texture
Size)(ミップマップのレベル)を乗じた値がテクスチ
ャアドレスとなる。Further, S, T, and Q represent texture coordinates (homogeneous coordinates for the texture) at each of the three vertices of the triangular polygon. That is, in this three-dimensional graphics system, texture mapping (textur
e mapping), a pattern (texture) is attached to the surface of the object, and S, T, and Q are used in this texture mapping. Note that S
/ Q, T / Q, texture size (Texture
The value multiplied by (Size) (the level of the mipmap) becomes the texture address.
【0024】また、Fは、これから描画しようとしてい
る画素をぼやけさせる場合のそのぼやけの程度を表すフ
ォグ(fog)値で、例えば、この値が大きいほど、ぼや
けて表示される。F is a fog value representing the degree of blurring when a pixel to be drawn is blurred. For example, the larger the value, the more blurry the image is displayed.
【0025】DDAセットアップ回路7は、ジオメトリ
処理回路6からのポリゴンデータX,Y,Z,R,G,
B,α,S,T,Qを用いて、後段のDDA演算回路8
において行われるDDA演算のためのセットアップ演算
を行い、その演算結果を、DDA演算回路8に出力する
ようになされている。DDA演算回路8は、DDAセッ
トアップ回路7における演算結果を用いて、DDA演算
を行い、その演算結果を、テクスチャプロセッサ9に供
給するようになされている。The DDA setup circuit 7 receives the polygon data X, Y, Z, R, G,
Using the B, α, S, T, and Q, the subsequent DDA operation circuit 8
Performs a setup operation for the DDA operation performed in step (1), and outputs the operation result to the DDA operation circuit 8. The DDA operation circuit 8 performs the DDA operation using the operation result in the DDA setup circuit 7 and supplies the operation result to the texture processor 9.
【0026】ここで、DDA演算とは、2点間におい
て、例えば線型補間により、その2点間を結ぶ線分を構
成する画素についての各値を求める演算である。即ち、
例えば、2点のうちの一方を始点とするとともに、他方
を終点とし、その始点および終点に、ある値が与えられ
ているとき、終点に与えられている値と、始点に与えら
れている値との差分を、その始点と終点との間にある画
素数で除算することで、始点および終点に与えられてい
る値の変化分(変化の割合)が求められ、これを、始点
から終点の方向に進むにつれて、始点に与えられている
値に順次加算(積算)することで、始点と終点との間に
ある各画素における値が求められる。Here, the DDA operation is an operation for obtaining each value of a pixel constituting a line segment connecting the two points between two points by, for example, linear interpolation. That is,
For example, one of the two points is set as a start point, the other is set as an end point, and when a certain value is given to the start point and the end point, a value given to the end point and a value given to the start point Is divided by the number of pixels between the start point and the end point to obtain a change (ratio of change) in the value given to the start point and the end point. As the vehicle travels in the direction, the value at each pixel between the start point and the end point is obtained by sequentially adding (accumulating) the value given to the start point.
【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座標を変数
として求められる。In this embodiment, when the three vertices of the polygon are p1, p2, and p3 in the DDA operation circuit 8, the points p1 and p2, the points p2 and p3, and the points p1 and p3
Is subjected to such a DDA operation, whereby polygon data Z, R, G, B, α, S, T, and Q for pixels on three sides of the polygon are further processed. Polygon data Z, R, G, B, α, S, T, and Q for pixels inside are obtained using x and y coordinates as variables.
【0028】なお、この場合、ポリゴンデータZ,R,
G,B,α,S,T,Qの、x,y軸方向についての変
化分が必要となるが、この変化分が、DDAセットアッ
プ回路7において行われるセットアップ演算により求め
られるようになされている。In this case, the polygon data Z, R,
A change in G, B, α, S, T, and Q in the x and y axis directions is required. The change is determined by a setup operation performed in the DDA setup circuit 7. .
【0029】テクスチャプロセッサ9は、DDA演算回
路8からのDDA演算結果、即ち、ポリゴンを構成する
各画素のx,y座標と、そのx,y座標における画素に
ついてのポリゴンデータZ,R,G,B,α,S,T,
Qを受信し、そのデータに基づいてテクスチャマッピン
グを行うようになされている。The texture processor 9 calculates the DDA operation result from the DDA operation circuit 8, that is, the x and y coordinates of each pixel constituting the polygon, and the polygon data Z, R, G, and G for the pixel at the x and y coordinates. B, α, S, T,
Q is received, and texture mapping is performed based on the data.
【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値を算出す
る。That is, the texture processor 9 calculates the texture addresses U (∝S / Q) and V (∝T / Q) by, for example, dividing each of S and T by Q, and , The texture color at the given x, y coordinates is calculated. Specifically, a read request (Read Request) is sent to the memory I / F 10 together with the texture addresses U and V.
Output from the texture buffer 11 to the texture data (Te
xture Color Data). The texture data is supplied to the texture processor 9 via the memory I / F 10, and the texture processor 9 outputs the R, G, and B values as the texture data, and outputs the texture data from the DDA operation circuit 8. Various filtering processes are performed on the R, G, and B values, that is, for example, both are mixed at a predetermined ratio, and further, a preset color is mixed according to the fog value F, and a polygon is formed. The final R, G, B values of each of the constituent pixels are calculated.
【0031】テクスチャプロセッサ9において最終的に
得られた画素のR,G,B値は、その画素のx,y座
標、およびその他必要なポリゴンデータとともに、メモ
リI/F10に転送されるようになされている。The R, G and B values of the pixel finally obtained by the texture processor 9 are transferred to the memory I / F 10 together with the x and y coordinates of the pixel and other necessary polygon data. ing.
【0032】メモリI/F10は、メモリ20に対する
データの読み出しおよび書き込みを制御するようになさ
れている。即ち、メモリI/F10は、例えば、テクス
チャプロセッサ9から、リード要求とともに、テクスチ
ャアドレスU,Vを受信すると、テクスチャバッファ1
1から、そのテクスチャアドレスU,Vに記憶されてい
るテクスチャデータを読み出し、テクスチャプロセッサ
9に供給するようになされている。The memory I / F 10 controls reading and writing of data from and to the memory 20. That is, when the memory I / F 10 receives the texture addresses U and V together with the read request from the texture processor 9, for example, the texture buffer 1
1, the texture data stored in the texture addresses U and V are read and supplied to the texture processor 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に書き
込むようになされている。Further, the memory I / F 10 is based on polygon data supplied from the texture processor 9 and
The Z value of the polygon (representing the depth of a predetermined representative point of the polygon) is compared with the Z value of the polygon already stored in the Z buffer 13, and the polygon from the texture processor 9 is compared with the Z buffer 13. If it is located before the polygon stored in the display buffer 12, the Z value stored in the Z buffer 13 is updated, and the R, G, B values from the texture processor 9 are written into the display buffer 12. Has been made. The memory I /
F10 reads the R, G, and B values of the corresponding pixel from the display buffer 12 when there is a blend coefficient α associated with the R, G, and B values from the texture processor 9; , G, B values are blended according to, for example, a blend coefficient α,
The result of the blending is written in the display buffer 12.
【0034】さらに、メモリI/F10は、CRTコン
トローラ14からの要求に応じて、ディスプレイバッフ
ァ12に記憶されたデータを読み出し、CRTコントロ
ーラ14に供給するようにもなされている。Further, in response to a request from the CRT controller 14, the memory I / F 10 reads data stored in the display buffer 12 and supplies the data to the CRT controller 14.
【0035】なお、以上のジオメトリ処理回路6、DD
Aセットアップ回路7、DDA演算回路8、テクスチャ
プロセッサ9、およびメモリI/F10が、描画の高速
化を図るための描画専用のレンダリングエンジン(rend
ering engine)21を構成している。The above-described geometry processing circuit 6, DD
The A setup circuit 7, the DDA operation circuit 8, the texture processor 9, and the memory I / F 10 include a rendering engine (rend) dedicated to rendering for speeding up rendering.
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値の更新を行うようになされている。The memory 20 stores the texture buffer 11,
It comprises a display buffer 12 and a Z buffer 13. The texture buffer 11 stores texture data at a reduction ratio corresponding to each level (Level) of a mipmap (MIPMAP). The display buffer 12 is a CRT (Cathod Ray Tube)
The data corresponding to the image to be displayed at 16 is stored. The Z buffer 13 stores data on the foremost polygon together with its Z value. Note that the memory I / F 10 compares the Z value of the received data with the Z value already stored in the Z buffer, and when the polygon corresponding to the received data is in the foreground, the display buffer The writing of data to the memory 12 and the updating of the Z value stored in the Z buffer 13 are performed.
【0037】CRTコントローラ14は、図示せぬ回路
から与えられる水平、垂直同期信号に同期して、表示ア
ドレス(表示Address)を発生し、その表示アドレスか
らのデータの読み出し要求を、メモリI/F10に出力
し、その要求に応じて、メモリI/F10から供給され
る所定のまとまったR,G,B値を、表示データ(表示
Data)として受信するようになされている。さらに、C
RTコントローラ14は、例えば、FIFO(First In
First Out)方式のメモリ(以下、適宜、FIFOメモ
リという)を内蔵しており、そのFIFOメモリに、受
信した表示データを記憶させ、所定の一定の間隔で、そ
の表示データを、RAMDAC15に転送するようにな
されている。The CRT controller 14 generates a display address (display Address) in synchronization with horizontal and vertical synchronizing signals supplied from a circuit (not shown), and issues a data read request from the display address to the memory I / F 10. And outputs predetermined R, G, and B values supplied from the memory I / F 10 in accordance with the request to display data (display data).
Data). Further, C
The RT controller 14 is, for example, a FIFO (First In)
First Out) type memory (hereinafter referred to as FIFO memory as appropriate), the received display data is stored in the FIFO memory, and the display data is transferred to the RAMDAC 15 at predetermined constant intervals. It has been made like that.
【0038】RAMDAC15は、RGBへのインデッ
クス値と、RGB値を対応付けて記憶しているCLUT
(Color Look Up Table)およびD/A変換器(Digital
Analog Converter)を内蔵しており、CRTコントロ
ーラ14からのインデックス値を、それに対応するRG
B値に変換し、さらにD/A変換してアナログ信号に変
換し、CRT16に供給するようになされている。CR
T16は、RAMDAC15からの信号にしたがった表
示を行うようになされている。The RAMDAC 15 stores a CLUT storing RGB index values in association with RGB index values.
(Color Look Up Table) and D / A converter (Digital
Analog Converter) is built in, and the index value from the CRT controller 14 is stored in the corresponding RG
The signal is converted to a B value, further D / A converted, converted to an analog signal, and supplied to the CRT 16. CR
At T16, a display according to the signal from the RAMDAC 15 is performed.
【0039】次に、その動作について説明する。Next, the operation will be described.
【0040】I/Oインターフェイス2でグラフィック
データが受信されると、例えば、メインプロセッサ1で
は、そのグラフィックデータに対して必要な処理(例え
ば、光源計算処理など)が施され、メインメモリ4に転
送されて記憶される。メインメモリ4に記憶されたデー
タは、適宜読み出され、ジオメトリ処理回路6に転送さ
れる。ジオメトリ処理回路6では、そこに供給されたデ
ータに対してジオメトリ処理が施されることにより、ポ
リゴンデータX,Y,Z,R,G,B,α,S,T,Q
が算出される。このポリゴンデータは、DDAセットア
ップ回路7に供給される。When graphic data is received by the I / O interface 2, for example, the main processor 1 performs necessary processing (for example, light source calculation processing) on the graphic data and transfers the graphic data to the main memory 4. Is stored. The data stored in the main memory 4 is appropriately read out and transferred to the geometry processing circuit 6. The geometry processing circuit 6 performs a geometry process on the data supplied thereto, so that the polygon data X, Y, Z, R, G, B, α, S, T, Q
Is calculated. This polygon data is supplied to the DDA setup circuit 7.
【0041】DDAセットアップ回路7では、ジオメト
リ処理回路6からのポリゴンデータに対して、セットア
ップ演算が施され、DDA演算回路8に供給される。D
DA演算回路8では、DDAセットアップ回路7におけ
る演算結果を用いて、DDA演算が行われ、その演算結
果が、必要なポリゴンデータとともに、テクスチャプロ
セッサ9に供給される。The DDA setup circuit 7 performs a setup operation on the polygon data from the geometry processing circuit 6, and supplies the polygon data to the DDA operation circuit 8. D
In the DA operation circuit 8, the DDA operation is performed using the operation result in the DDA setup circuit 7, and the operation result is supplied to the texture processor 9 together with necessary polygon data.
【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に書き込む。The texture processor 9 calculates texture addresses U and V based on the output of the DDA operation circuit 8, and outputs a read request from the texture addresses U and V to the memory I / F 10. When receiving the texture addresses U and V from the texture processor 9 together with the read request, the memory I / F 10 reads the texture data corresponding to the texture addresses U and V from the texture buffer 11 and supplies the texture data to the texture processor 9. When receiving the texture data from the memory I / F 10, the texture processor 9 performs various filtering processes using the texture data and supplies the processing result to the memory I / F 10 to write the result into the display buffer 12. .
【0043】一方、CRTコントローラ14では、表示
アドレスが発生され、その表示アドレスからのデータの
読み出し要求が、メモリI/F10に出力される。メモ
リI/F10では、CRTコントローラ14からの要求
に応じて、ディスプレイバッファ12から表示データを
読み出し、CRTコントローラ14に転送する。CRT
コントローラ14は、メモリI/F10から表示データ
を受信すると、その表示データを、RAMDAC15を
介して、CRT16に供給し、これにより、CRT16
においては、ポリゴンで構成される3次元画像が表示さ
れる。On the other hand, in the CRT controller 14, a display address is generated, and a request to read data from the display address is output to the memory I / F 10. The memory I / F 10 reads out display data from the display buffer 12 and transfers it to the CRT controller 14 in response to a request from the CRT controller 14. CRT
When receiving the display data from the memory I / F 10, the controller 14 supplies the display data to the CRT 16 via the RAMDAC 15.
, A three-dimensional image composed of polygons is displayed.
【0044】次に、図2を参照して、レンダリングエン
ジン21において各画素ごとに行われるレンダリング処
理について説明する。Next, a rendering process performed for each pixel in the rendering engine 21 will be described with reference to FIG.
【0045】レンダリング処理においては、まず最初
に、ポリゴンに貼り付けるテクスチャの拡大率(縮小
率)などに基づいて、ミップマップ(MIPMAP(Multum In
Parvo MAP))の解像度のレベル(level)が選択され
る。さらに、DDA演算により求められたテクスチャの
同次表現でのアドレス(address)(同次座標)(S,
T)がQで除算され、その除算結果に、選択された解像
度のレベル(テクスチャのサイズ)が乗算されること
で、テクスチャアドレスが算出される。そして、このテ
クスチャアドレスは、テクセル(Texel)におけるテク
スチャに対応するから、これから、ピクセル(画素)
(pixel)におけるテクスチャが求められる。即ち、あ
るピクセルの周囲にある、例えば、4つのテクセルを用
いてバイリニア(Bi-Liner)補間などを行うことによ
り、そのピクセルにおけるテクスチャ(テクスチャカラ
ー)が求められる(1)。In the rendering process, first, based on the enlargement ratio (reduction ratio) of the texture to be attached to the polygon, a mipmap (MIPMAP (Multum In
Parvo MAP)) resolution level is selected. Furthermore, an address (homogeneous coordinates) (S,
T) is divided by Q, and the division result is multiplied by the selected resolution level (texture size) to calculate a texture address. And since this texture address corresponds to the texture in texel (Texel),
The texture at (pixel) is required. That is, a texture (texture color) at a pixel is obtained by performing, for example, bi-linear interpolation using four texels around the pixel (1).
【0046】次に、DDA演算で求められた物体のカラ
ー(color)と、上述の(1)で求められたテクスチャ
カラーとを、同じくDDA演算で求められたテクスチャ
用のブレンド係数αt(Texture α)にしたがって混合
し、即ち、物体のカラーまたはテクスチャカラーをそれ
ぞれCDDAまたはCtとするとき、前述の式(1)に対応
する演算である式Cb=αt×CDDA+(1−αt)×Ct
を演算し、混合カラーCbを求める(2)。Next, the color of the object obtained by the DDA operation and the texture color obtained by the above (1) are combined with the texture blend coefficient α t (Texture) also obtained by the DDA operation. α), that is, when the color or texture color of the object is C DDA or C t , respectively, the expression C b = α t × C DDA + (1 −α t ) × C t
Calculates the obtained mixed colors C b (2).
【0047】さらに、この混合カラーCbに対して、フ
ォグ効果をだすためのフォグブレンディング(Fog Blen
ding)処理を施し、即ち、フォグ値(フォグ係数)また
はフォグとして使用するカラーをそれぞれFまたはCf
とするとき、前述の式(1)に対応する演算である式C
s=F×Cb+(1−F)×Cfを演算し、これにより、
ソースカラーCsを求める(3)。[0047] Further, this mixed color C b, fog blending for issuing a fog effect (Fog Blen
ding) processing, that is, the fog value (fog coefficient) or the color used as the fog is F or C f , respectively.
, The expression C, which is an operation corresponding to the above expression (1),
s = F × C b + (1−F) × C f
Determine the source color C s (3).
【0048】その後は、透明処理などを行う場合に有効
な処理として知られている、いわゆるアルファテスト
(α Test)が行われる。即ち、DDA演算により求め
られたブレンド係数αsと、あらかじめ設定された固定
のブレンド係数αrとを比較し、その比較結果に基づい
て、ピクセルの描画を行うかどうかが決定される
(4)。Thereafter, a so-called alpha test (α test), which is known as an effective process when performing a transparent process or the like, is performed. That is, the blend coefficient α s obtained by the DDA operation is compared with a preset fixed blend coefficient α r, and it is determined whether or not to perform pixel drawing based on the comparison result (4). .
【0049】さらに、Zバッファ13を参照することに
より、そこに記憶されているZ値(Zd)と、DDA演
算により求められたZ値(ZDDA)とが比較され、ピク
セルが、描画対象であるかどうかが最終的に判定される
(5)。Further, by referring to the Z buffer 13, the Z value (Z d ) stored therein is compared with the Z value (Z DDA ) obtained by the DDA operation, and the pixel is set as the object to be drawn. Is finally determined (5).
【0050】そして、描画対象であると判定され、かつ
描画が決定されたピクセルについては、そのピクセルの
カラーをCsと、既に描画されている、対応するピクセ
ルのカラーをCdと、それぞれするとき、前述の式
(1)にしたがって、式Cfb=α×Cs+(1−α)×
Cdが演算されることにより、カラーCsとCdとが、D
DA演算で求めたブレンド係数αを用いてブレンドさ
れ、ブレンド後のカラーCfbが求められる(6)。[0050] Then, it is determined as the drawing object, and the pixel is determined drawn, and the color C s of the pixel have already been drawn, the color of the corresponding pixel and C d, respectively Then, according to the above equation (1), the equation C fb = α × C s + (1−α) ×
By calculating C d , the colors C s and C d become D
Blending is performed using the blend coefficient α obtained by the DA operation, and a color C fb after blending is obtained (6).
【0051】その後、このブレンド後のカラーCfbに対
して、減色処理が施される(7)。Thereafter, a color reduction process is performed on the color C fb after the blending (7).
【0052】そして、減色処理の結果得られた値がディ
スプレイバッファ12に書き込まれる(描画される)
(8)。Then, the value obtained as a result of the color reduction processing is written (drawn) in the display buffer 12.
(8).
【0053】次に、図3を参照して、テクスチャをポリ
ゴンに貼り付けるときに行われる合成処理について説明
する。Next, referring to FIG. 3, a description will be given of a combining process performed when a texture is pasted on a polygon.
【0054】図1のグラフィックスシステムでは、ライ
ティング(lighting)計算(光源計算)が行われること
により、照明と視点位置からの、物体の表面を構成する
ポリゴン(3角形)の各頂点における色(カラー)が決
定され、また、DDA演算により、ポリゴン内部を構成
するピクセルそれぞれの色が決定される。In the graphics system shown in FIG. 1, by performing lighting calculation (light source calculation), the colors (vertex) at each vertex of a polygon (triangle) constituting the surface of the object from the illumination and the viewpoint position are calculated. Color) is determined, and the color of each pixel constituting the inside of the polygon is determined by the DDA operation.
【0055】ここで、このようにして決定された色は、
フラグメントカラー(Fragment Color(FC))と呼ばれ
る。Here, the color determined in this way is
It is called fragment color (Fragment Color (FC)).
【0056】そして、ライティング計算により得られた
フラグメントカラーに対して、テクスチャカラー(Text
ure Color(TC))をどのように影響させるかによって、
様々な効果を得ることができる(なお、テクスチャを貼
り付けず、また、光源計算もしない場合があるが、この
場合は、単に物体色として、テクスチャカラーの指定が
行われることがある)。Then, the texture color (Text) is added to the fragment color obtained by the lighting calculation.
ure Color (TC))
Various effects can be obtained (note that the texture may not be pasted or the light source may not be calculated. In this case, the texture color may be simply specified as the object color).
【0057】フラグメントカラーに対して、テクスチャ
カラーを影響させる方法としては、図3に示すように、
映し絵(decal)、モジュレイト(modulate)、ブレン
ド(blend)と呼ばれるものなどがある。As a method of affecting the texture color on the fragment color, as shown in FIG.
There are what are called decals, modulates, and blends.
【0058】これらの方法のうち、通常用いられるの
が、モジュレイトであり、モジュレイトでは、図3に示
すように、フラグメントカラーにテクスチャカラーが乗
算され、その乗算結果が用いられる。例えば、物体に赤
色の照明があたっている場合、青色のテクスチャは黒色
に、赤色のテクスチャは赤色に、それぞれ見えるが、モ
ジュレイトによれば、そのような実際に見える色に描画
がなされる。Of these methods, the one usually used is the modulate. In the modulate, as shown in FIG. 3, the fragment color is multiplied by the texture color, and the result of the multiplication is used. For example, if the object is illuminated with red light, the blue texture will appear black and the red texture will appear red, but according to the modulate, the drawing is made in such an actually visible color.
【0059】映し絵は、ライティングの状態に無関係
に、テクスチャを、そのまま物体に貼り付けるような場
合などに使用される。映し絵では、テクスチャのブレン
ド係数αtも与えられている場合、図3に示すように、
そのブレンド係数にしたがって、ライティングされた物
体に、テクスチャがブレンドされるため、例えば、半透
明のテクスチャを物体に貼り付けることができる。な
お、半透明でない(かつ透明でもない)テクスチャを物
体に貼り付ける場合に映し絵を使用した場合、その結果
得られる色は、通常、実際に見える色とは異なるものと
なる。The projected picture is used, for example, when the texture is directly attached to an object regardless of the lighting state. In the reflection picture, when the texture blend coefficient α t is also given, as shown in FIG.
Since the texture is blended with the lit object according to the blend coefficient, a translucent texture can be attached to the object, for example. When a non-translucent (and non-transparent) texture is applied to an object and a picture is used, the resulting color is usually different from the actually visible color.
【0060】ブレンドでは、図3に示すように、ある決
められた固定の色Cenvが、テクスチャのデータ(textu
re data)をブレンド係数(混合比)として用いて、フ
ラグメントカラーにブレンドされる。In the blending, as shown in FIG. 3, a predetermined fixed color C env is converted to texture data (textu).
re data) is used as a blend coefficient (mixing ratio) to blend into a fragment color.
【0061】なお、テクスチャのデータの種類として
は、テクスチャの明るさ、そのブレンドに用いるブレン
ド係数、および色(R,G,B)があり、ここでは、映
し絵、モジュレイト、またはブレンドそれぞれにおいて
用いることのできるデータは決まっている。即ち、映し
絵では、色または色とブレンド係数だけが用いられる。
モジュレイトでは、明るさ、明るさとブレンド係数、
色、または色とブレンド係数のうちのいずれも用いるこ
とができる。ブレンドでは、明るさまたは明るさとブレ
ンド係数だけが用いられる。The types of the texture data include the brightness of the texture, the blend coefficient used for blending the texture, and the color (R, G, B). In this case, the texture data, the modulate, and the blend are used. The data that can be determined is fixed. In other words, only a color or a color and a blend coefficient are used in a projected picture.
Modulate includes brightness, brightness and blend factor,
Any of the colors or the color and blend coefficients can be used. In blending, only brightness or brightness and a blend coefficient are used.
【0062】図1のグラフィックスシステムでは、以上
の図2または図3でそれぞれ説明したレンダリング処理
または合成処理だけでも、0以上1未満の乗数または被
乗数としてのブレンド係数やフォグ値などを用いた乗算
が、数多く行われる。In the graphics system shown in FIG. 1, multiplication using a blend coefficient or a fog value as a multiplier or a multiplicand that is 0 or more and less than 1 can be performed only by the rendering processing or the synthesis processing described with reference to FIG. 2 or FIG. There are many things to do.
【0063】そして、図1のグラフィックスシステムで
は、このような乗算が、図4に示すような演算回路によ
って行われるようになされている。In the graphics system of FIG. 1, such multiplication is performed by an arithmetic circuit as shown in FIG.
【0064】この演算回路では、固定小数点で表された
Mビットの2進数Aと、固定小数点で表されたNビット
の2進数であって、小数点がMSBとその1ビット上位
との間に設定されている2進数Bとの乗算結果として、
次のような、2進数Aと同一ビット数であるMビットの
2進数Cが出力される。In this arithmetic circuit, an M-bit binary number A represented by a fixed point and an N-bit binary number represented by a fixed point, the decimal point being set between the MSB and one bit higher than the MSB As a result of multiplication with the binary number B,
An M-bit binary number C having the same number of bits as the binary number A is output as follows.
【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として出力される。That is, the arithmetic circuit is composed of a multiplier 31 (multiplication means), an adder 32 (addition means), and a shifter 33 (extraction means).
Multiplied by one. This multiplication result is output to the adder 32. In addition to the output of the multiplier 31, the binary number A is also supplied to the adder 32, where they are added and
Output to the shifter 33. In the shifter 33, the adder 32
Of the output of the adder 32 is shifted to the right by N bits having the same number of bits as the binary number B.
The bits are fetched and output as a binary number C as a result of the multiplication of the binary numbers A and B.
【0066】以上のような演算回路によれば、2進数A
に1を乗算する場合には、Nビットの2進数Bで表現し
得る最大値を用いることで、誤差のない乗算結果を得る
ことができる。According to the above arithmetic circuit, the binary number A
Is multiplied by 1, a multiplication result without error can be obtained by using the maximum value that can be expressed by an N-bit binary number 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は、次式で計算する
ことができる。That is, for example, if the number of bits of the binary number B is 4 bits, the maximum value is 0.1111b,
That is, since the decimal number is 15/16,
When multiplying the binary number A, A × 15/16 is obtained.
Therefore, to obtain the calculation result of A × 1, it is necessary to obtain A × 15 /
A × 1/16 may be added to 16. So, now
Assuming that X >> Y represents a right shift of the binary number X by Y bits (division by 2 Y ), A × 1 can be calculated by the following equation.
【0068】 A×1=A×15/16+A×1/16 =A×15/24+A/24 =(A×15)>>4+A>>4 =(A×1111b+A)>>4A × 1 = A × 15/16 + A × 1/16 = A × 15/2 4 + A / 2 4 = (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の演算結果を得ることができることがわかる。From the above equation, the binary number A is multiplied by the maximum value (1111b) that can be represented by the binary number B, and the result of the multiplication is
By adding the binary number A and shifting the result of the addition by the number of bits of the binary number B (here, 4 bits), by extracting the number of bits of the binary number A from the MSB, A
It can be seen that a calculation result of × 1 can be obtained.
【0070】即ち、図4の演算回路によれば、2進数A
と、2進数Bで表現し得る最大値とを入力することで、
A×1の正しい演算結果を得ることができる。That is, according to the arithmetic circuit of FIG.
By inputting the maximum value that can be expressed by the binary number B,
A correct calculation result of A × 1 can be obtained.
【0071】具体的には、例えば、A=1111b,B
=11bの場合、乗算器31による乗算結果は、図5
(A)に示すように、101101bとなる。さらに、
この乗算器31の出力に、Aを加算した値、即ち、加算
器32の加算結果は、図5(B)に示すように、111
100bとなる。そして、この加算結果のMSBから、
Aのビット数である4ビットを取り出したもの、即ち、
シフタ33でBと同一のビット数である2ビット右シフ
トしたものは、1111bとなり、Aと同一の値を得る
ことができる。More specifically, for example, A = 1111b, B
= 11b, the result of the multiplication by the multiplier 31 is as shown in FIG.
As shown in FIG. further,
The value obtained by adding A to the output of the multiplier 31, that is, the addition result of the adder 32 is, as shown in FIG.
100b. Then, from the MSB of this addition result,
Extracted 4 bits that are the number of bits of A, that is,
The shifter 33 shifts to the right by 2 bits, which is the same bit number as B, becomes 1111b, and the same value as A can be obtained.
【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と同一の値を得ること
ができる。Further, for example, A = 11b, B = 1111
In the case of b, the multiplication result by the multiplier 31 becomes 101101b as shown in FIG. Further, the value obtained by adding A to the output of the multiplier 31, that is, the addition result of the adder 32 is, as shown in FIG.
Becomes Then, two bits that are the number of bits of A are extracted from the MSB of the addition result, that is, the shifter 3
The result of shifting right by 4 bits, which is the same bit number as B at 3, is 11b, and the same value as A can be obtained.
【0073】以上、本発明を、グラフィックシステムに
適用した場合について説明したが、本発明は、その他、
0以上1以下の値を乗数または被乗数とする乗算を行
う、あらゆる装置に適用可能である。While the present invention has been described for the case where the present invention is applied to a graphic system, the present invention
The present invention is applicable to any device that performs multiplication using a value of 0 or more and 1 or less as a multiplier or a multiplicand.
【0074】なお、Aに1を乗算するのではなく、0以
上1未満の範囲の値を乗算する場合には、図4の演算回
路では誤差が生じることがあるので、この場合は、通常
の乗算器(例えば、図4に示す乗算器31だけ)を用い
るようにすれば良い。In the case where A is not multiplied by 1 but multiplied by a value in a range of 0 or more and less than 1, an error may occur in the arithmetic circuit of FIG. A multiplier (for example, only the multiplier 31 shown in FIG. 4) may be used.
【0075】[0075]
【発明の効果】請求項1に記載の演算回路および請求項
3に記載の演算方法によれば、2進数AとBとが乗算さ
れ、その乗算結果に2進数Aが加算される。そして、そ
の加算結果の上位Mビットが、Mビットの2進数Cとし
て取り出される。従って、2進数Bの小数点が、そのM
SBと1ビット上位との間に設定されている場合であっ
ても、Aに1を乗算した、正しい乗算結果としてのMビ
ットの2進数Cを得ることが可能となる。According to the arithmetic circuit according to the first aspect and the arithmetic method according to the third aspect, the binary numbers A and B are multiplied, and the binary number A is added to the result of the multiplication. Then, the upper M bits of the addition result are extracted as an M-bit binary number C. Therefore, the decimal point of the binary number B is
Even if it is set between SB and one bit higher, it is possible to obtain an M-bit binary number C as a correct result of multiplying A by 1.
【図1】本発明を適用したグラフィックシステムの構成
例を示すブロック図である。FIG. 1 is a block diagram illustrating a configuration example of a graphic system to which the present invention has been applied.
【図2】レンダリング処理を説明するための図である。FIG. 2 is a diagram illustrating a rendering process.
【図3】合成処理を説明するための図である。FIG. 3 is a diagram for explaining a combining process.
【図4】本発明の演算回路の一実施の形態の構成例を示
すブロック図である。FIG. 4 is a block diagram illustrating a configuration example of an embodiment of an arithmetic circuit according to the present invention.
【図5】図4の演算回路による演算の具体例を説明する
ための図である。FIG. 5 is a diagram for explaining a specific example of a calculation by the calculation circuit of FIG. 4;
【図6】図4の演算回路による演算の具体例を説明する
ための図である。6 is a diagram for explaining a specific example of a calculation by the calculation circuit of FIG. 4;
【図7】従来の、ブレンディング処理を行う回路の一例
の構成を示すブロック図である。FIG. 7 is a block diagram showing a configuration of an example of a conventional circuit for performing a blending process.
【符号の説明】 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 シフタ(取り出し手段)[Description of Signs] 1 main processor, 2 I / O interface, 3 bus, 4 main memory, 6 geometry processing circuit, 7 DDA setup circuit, 8 DDA
Arithmetic circuit, 9 texture processor, 10 memory I / F, 11 texture buffer, 12 display buffer, 13 Z buffer, 14 CRT
Controller, 15 RAMDAC, 16 CR
T, 20 memory, 21 rendering engine,
31 Multiplier (multiplication means), 32 Adder (addition means), 33 Shifter (extraction means)
Claims (3)
Aと、固定小数点で表されたNビットの2進数であっ
て、小数点がMSB(Most Significant Bit)とその1
ビット上位との間に設定されている2進数Bとを乗算
し、その乗算結果として、Mビットの2進数Cを出力す
る演算回路において、 2進数AとBとを乗算する乗算手段と、 前記乗算手段の乗算結果に2進数Aを加算する加算手段
と、 前記加算手段の加算結果の上位Mビットを、前記Mビッ
トの2進数Cとして取り出す取り出し手段とを備えるこ
とを特徴とする演算回路。1. An M-bit binary number A represented by a fixed point and an N-bit binary number represented by a fixed point, where the decimal point is MSB (Most Significant Bit) and its 1
A multiplying means for multiplying the binary numbers A and B by an arithmetic circuit that multiplies the binary number B set between the upper bits and a multiplication result and outputs an M-bit binary number C as a result of the multiplication; An arithmetic circuit comprising: an adding unit that adds a binary number A to a multiplication result of the multiplying unit; and a extracting unit that extracts upper M bits of the addition result of the adding unit as the M-bit binary number C.
得る最大値であることを特徴とする請求項1に記載の演
算回路。2. The arithmetic circuit according to claim 1, wherein the binary number B is a maximum value that can be represented by an N-bit binary number.
Aと、固定小数点で表されたNビットの2進数であっ
て、小数点がMSB(Most Significant Bit)とその1
ビット上位との間に設定されている2進数Bとを乗算
し、その乗算結果として、Mビットの2進数Cを出力す
る演算方法において、 2進数AとBとを乗算し、 その乗算結果に2進数Aを加算し、 その加算結果の上位Mビットを、前記Mビットの2進数
Cとして取り出すことを特徴とする演算方法。3. An M-bit binary number A represented by a fixed point and an N-bit binary number represented by a fixed point, where the decimal point is MSB (Most Significant Bit) and its 1
In an operation method of multiplying a binary number B set between the upper bits and a binary number, and outputting an M-bit binary number C as a result of the multiplication, multiplying the binary numbers A and B, An arithmetic method comprising adding a binary number A and taking out the upper M bits of the addition result as the M-bit binary number C.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34731196A JP3538826B2 (en) | 1996-12-26 | 1996-12-26 | Arithmetic circuit and arithmetic method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34731196A JP3538826B2 (en) | 1996-12-26 | 1996-12-26 | Arithmetic circuit and arithmetic method |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10187419A true JPH10187419A (en) | 1998-07-21 |
JP3538826B2 JP3538826B2 (en) | 2004-06-14 |
Family
ID=18389367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP34731196A Expired - Fee Related JP3538826B2 (en) | 1996-12-26 | 1996-12-26 | Arithmetic circuit and arithmetic method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3538826B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020177127A (en) * | 2019-04-18 | 2020-10-29 | セイコーエプソン株式会社 | Display method and display unit |
-
1996
- 1996-12-26 JP JP34731196A patent/JP3538826B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020177127A (en) * | 2019-04-18 | 2020-10-29 | セイコーエプソン株式会社 | Display method and display unit |
Also Published As
Publication number | Publication date |
---|---|
JP3538826B2 (en) | 2004-06-14 |
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 | |
JP3478568B2 (en) | Image data processing method and apparatus | |
US6181352B1 (en) | Graphics pipeline selectively providing multiple pixels or multiple textures | |
JP2582999B2 (en) | Color palette generation method, apparatus, data processing system, and lookup table input generation method | |
JP3763136B2 (en) | Drawing method and drawing apparatus | |
US6275235B1 (en) | High precision texture wrapping method and device | |
US6987518B2 (en) | Graphics and video integration with alpha and video blending | |
JPH05307610A (en) | Texture mapping method and its device | |
JPH06215151A (en) | Method and device for processing image data | |
JP3529759B2 (en) | Image processing program, computer-readable recording medium storing image processing program, program execution device, image processing device, and image processing method | |
US20030214508A1 (en) | System for alpha blending and method thereof | |
US20020171672A1 (en) | Graphics data accumulation for improved multi-layer texture performance | |
US20030160799A1 (en) | Reconfigurable hardware filter for texture mapping and image processing | |
US6867778B2 (en) | End point value correction when traversing an edge using a quantized slope value | |
JP3538826B2 (en) | Arithmetic circuit and arithmetic method | |
US20030169271A1 (en) | Magnified texture-mapped pixel performance in a single-pixel pipeline | |
US6731297B1 (en) | Multiple texture compositing | |
US6927775B2 (en) | Parallel box filtering through reuse of existing circular filter | |
US5900882A (en) | Determining texture coordinates in computer graphics | |
CA2261245C (en) | Division circuit and graphic display processing apparatus | |
US6693634B1 (en) | Reduction rate processing circuit and method with logarithmic operation and image processor employing same | |
US20030164842A1 (en) | Slice blend extension for accumulation buffering | |
US6329999B1 (en) | Encoder, method thereof and graphic processing apparatus |
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 |