JP2003099419A - High-speed interpolation computing element - Google Patents

High-speed interpolation computing element

Info

Publication number
JP2003099419A
JP2003099419A JP2001292434A JP2001292434A JP2003099419A JP 2003099419 A JP2003099419 A JP 2003099419A JP 2001292434 A JP2001292434 A JP 2001292434A JP 2001292434 A JP2001292434 A JP 2001292434A JP 2003099419 A JP2003099419 A JP 2003099419A
Authority
JP
Japan
Prior art keywords
matrix
interpolation
data
calculation
header
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.)
Pending
Application number
JP2001292434A
Other languages
Japanese (ja)
Inventor
Masaki Takeda
政樹 武田
Toru Kikuchi
徹 菊地
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.)
Namco Ltd
Original Assignee
Namco Ltd
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 Namco Ltd filed Critical Namco Ltd
Priority to JP2001292434A priority Critical patent/JP2003099419A/en
Publication of JP2003099419A publication Critical patent/JP2003099419A/en
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)
  • Image Generation (AREA)

Abstract

PROBLEM TO BE SOLVED: To perform matrix computing and interpolation computing by using a single computing unit. SOLUTION: A data string consists of the combination of a header for designating a matrix to be used for matrix computing and data to be matrix- computed. The data is inputted and a header part and a data part are identified from the data string. The matrix is selected by the header. The selected matrix and the identified data are computed by a computing part, and interpolation computing is performed with the result of the matrix computing and an interpolation ratio. Since the matrix to be used for computing and data to be computed are designated by the header, a series of matrix computing can continuously be performed. Further, by rewriting the header, the matrix to be used for computing can be changed and interpolation computing can simultaneously be selected without changing an instruction.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は、コンピュータを用
いた3次元空間のシミュレーション技術に関するもので
あり、特に、マトリクス演算器を用いた補間演算処理に
関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a three-dimensional space simulation technique using a computer, and more particularly to interpolation calculation processing using a matrix calculator.

【0002】[0002]

【背景技術】コンピュータを用いたゲーム・システム等
では、ゲーム中に登場するキャラクタやグラフィックス
を3次元で表現する「3Dゲーム」が主流となってい
る。その3Dゲームでは、ポリゴンで構成されたオブジ
ェクトを表示するために、オブジェクトの位置等、ゲー
ム・システムは莫大な量の演算を行っている。そのなか
でも、オブジェクトの回転・移動、視点の変更等でよく
用いるのがマトリクス演算である。そして人間を手足等
の関節で結合している節のモデルのようにオブジェクト
どうしが接続関係をもつと、その関係もマトリクス演算
で規定することができる。例えば、互いに関節で結合し
た節を構成する頂点群A,B,Cがあり、頂点群Aに頂
点群Bが、頂点群Bに頂点群Cが接続されている。それ
ぞれの節間の関係を定めているローカル・マトリクスを
Ma,Mb,Mcとする。この頂点群をワールド座標系
に変換して座標変換するためのワールド・マトリクスを
定めなければならない。この演算に使用するマトリクス
は、ローカル・マトリクスMa,Mb,Mcを、それぞ
れワールド・マトリクスMa’,Mb’,Mc’に、以
下の式により変換する必要がある。
2. Description of the Related Art In game systems and the like using a computer, a "3D game" in which characters and graphics appearing in the game are expressed in three dimensions has become mainstream. In the 3D game, in order to display an object composed of polygons, the game system performs a huge amount of calculation such as the position of the object. Among them, matrix operations are often used for rotating / moving objects, changing viewpoints, and the like. When objects have a connection relationship like a model of a node connecting humans with joints such as limbs, the relationship can also be defined by matrix calculation. For example, there are vertex groups A, B, and C that form nodes that are connected to each other by joints. The vertex group B is connected to the vertex group A, and the vertex group C is connected to the vertex group B. The local matrices that define the relationships between the nodes are Ma, Mb, and Mc. The world matrix for converting the coordinates of the vertices to the world coordinate system must be defined. As the matrix used for this calculation, it is necessary to convert the local matrices Ma, Mb, Mc into world matrices Ma ′, Mb ′, Mc ′ respectively by the following formula.

【数1】 Ma’=Ma Mb’=Mb・Ma’=Mb・Ma Mc’=Mc・Mb’=Mc・Mb・Ma[Equation 1] Ma '= Ma Mb '= Mb.Ma' = Mb.Ma Mc '= Mc.Mb' = Mc.Mb.Ma

【0003】頂点群の各頂点の座標を3次元で定義して
いる位置ベクトルV(x,y,z)を、先程のマトリク
スMa’,Mb’,Mc’のいずれか頂点に対応するマ
トリクスをMに代入して座標変換を行うと、ワールド座
標の原点を基準とした、新しい頂点の座標V’(x’,
y’,z’)を得ることができる。この座標変換のため
のマトリクス演算に用いる式として、以下の変換式のよ
うな頂点群とマトリクス間の演算がよく用いられてい
る。この演算においては、便宜的に冗長データ(0や
1)を加えた頂点座標のベクトルVとマトリクスMを用
いて計算している。この計算結果で得られたV’から冗
長データを無視することで得られるデータを用いること
で、回転・拡大・縮小と平行移動の変換が一度に行え
る。
The position vector V (x, y, z) defining the coordinates of each vertex of the vertex group in three dimensions is converted into a matrix corresponding to any one of the above-mentioned matrices Ma ', Mb', Mc '. When the coordinate conversion is performed by substituting it in M, the coordinates of the new vertex V ′ (x ′,
y ', z') can be obtained. As the formula used for the matrix calculation for this coordinate conversion, the calculation between the vertex group and the matrix as shown in the following conversion formula is often used. In this calculation, the vector V of the vertex coordinates to which the redundant data (0 or 1) is added and the matrix M are used for convenience. By using the data obtained by ignoring the redundant data from V'obtained by this calculation result, the conversion of rotation / enlargement / reduction and parallel movement can be performed at one time.

【数2】 これらの頂点群のうち、いくつか頂点の座標ベクトルを
利用して、新しい頂点を作ることができる。この新しく
作る頂点を使い、頂点を補間するのにしばしば用いられ
ている。また、この補間を利用することでいろいろな効
果を得ることができ、ゲームなどにも使われている。そ
の一例を次に挙げる。
[Equation 2] New vertices can be created using the coordinate vectors of some of these vertices. This newly created vertex is used and often used to interpolate vertices. Also, various effects can be obtained by using this interpolation, and it is also used in games. An example is given below.

【0004】図1は被補間頂点群A10と被補間頂点群
B20の被補間頂点群を用いて補間演算した結果である
補間結果頂点群30を示した図である。この図を見ても
わかる通り、紙面下方をそれぞれの頂点群の下部とする
と、補間結果頂点群30は最下部では被補間頂点群A1
0、最上部では被補間頂点群B20となっている。そし
て補間結果頂点群30は下部から上部にかけて被補間頂
点群A10から被補間頂点群B20の占める割合の比が
大きくなっている。被補間頂点群A10上の頂点の座標
をV、被補間頂点群B20上の頂点の座標をVとす
ると、補間された頂点Vは次のように表すことができ
る。
FIG. 1 is a diagram showing an interpolation result vertex group 30 which is the result of an interpolation calculation using the interpolated vertex groups A10 and B20. As can be seen from this figure, assuming that the lower part of the paper is the lower part of each vertex group, the interpolation result vertex group 30 is the interpolated vertex group A1 at the bottom.
0, at the top is the group of vertices to be interpolated B20. In the interpolation result vertex group 30, the ratio of the proportions of the interpolated vertex group A10 to the interpolated vertex group B20 increases from the bottom to the top. When the coordinates of the vertices on the interpolated vertex group A10 are V A and the coordinates of the vertices on the interpolated vertex group B20 are V B , the interpolated vertex V can be expressed as follows.

【数3】V=αV+βV (α+β=1,0≦α≦1,0≦β≦1) ここでαとβは補間を行う際の補間率である。この式を
用いて補間結果頂点群Vを構成する際に、補間結果頂点
群Vの下部から上部にかけてαを1から0に、βを0か
ら1にしていくことで図1のような補間結果頂点群30
を構成することができる。補間した頂点あるいは頂点群
を、例えば前に述べたローカル座標からワールド座標に
変換する場合、補間演算と座標変換とを同時に行うこと
ができる。変換前の被補間頂点をV,V,Vの3
点とし、被補間頂点ごとに座標変換に用いるマトリクス
をM,M,Mとすると、補間頂点を計算すると次
のようになる。
## EQU3 ## V = αV A + βV B (α + β = 1,0 ≦ α ≦ 1,0 ≦ β ≦ 1) where α and β are interpolation rates when performing interpolation. When constructing the interpolation result vertex group V using this formula, by changing α from 1 to 0 and β from 0 to 1 from the lower part to the upper part of the interpolation result vertex group V, the interpolation result as shown in FIG. Vertex group 30
Can be configured. When the interpolated vertices or vertices are converted from, for example, the local coordinates described above to the world coordinates, the interpolation calculation and the coordinate conversion can be performed at the same time. 3 of the interpolation vertex before conversion V 1, V 2, V 3
Assuming that the points are points and the matrix used for coordinate conversion for each interpolated vertex is M 1 , M 2 , and M 3 , the interpolated vertex is calculated as follows.

【数4】 V’=αV・M+βV・M+γV・M ここでα,β,γは補間を行う際の補間率である。この
ような座標変換を行い、かつ補間演算を1つの演算器を
用いてマトリクス演算を行うものが従来には存在しなか
った。
V ′ = αV 1 · M 1 + βV 2 · M 2 + γV 3 · M 3 Here, α, β, and γ are interpolation rates when performing interpolation. Conventionally, there has not existed one that performs such coordinate conversion and performs matrix calculation by using one calculation unit for interpolation calculation.

【0005】[0005]

【発明が解決しようとする課題】本発明の目的は、ビデ
オゲームに用いる3次元空間のシミュレーション等にお
いて、マトリクス演算および補間演算を1つの演算器を
用いて行うことである。
SUMMARY OF THE INVENTION An object of the present invention is to perform a matrix operation and an interpolation operation by using one arithmetic unit in a simulation of a three-dimensional space used in a video game.

【0006】[0006]

【課題を解決するための手段】上記目的を達成するため
に、本発明は、マトリクスを指定するヘッダと、マトリ
クス演算されるデータとの組み合わせで構成されるデー
タ列を入力して、補間演算を含めたマトリクス演算を行
う高速補間演算器であって、マトリクス演算に用いる複
数のマトリクスを記憶しているマトリクス記憶部と、補
間演算に用いる補間率を記憶している補間率記憶部と、
入力された前記データ列から前記ヘッダとデータとを識
別し、前記ヘッダにより前記マトリクス記憶部に記憶さ
れているマトリクスを選択し、補間演算の場合は補間率
とデータを選択して出力するデータ解析/マトリクス選
択部と、マトリクス演算を行うマトリクス演算器と、前
記の演算結果を一時記憶しておく、マトリクス演算結果
記憶部とを備え、マトリクス演算のみを行う場合は、前
記マトリクス演算器は、選択されたマトリクスとデータ
とのマトリクス演算を行い、補間演算を行う場合は、前
記マトリクス演算器は、選択されたマトリクスとデータ
とのマトリクス演算をおこなった結果を、前記マトリク
ス演算結果記憶部に格納し、前記マトリクス演算結果記
憶部に一時記憶した、前記の演算結果と前記補間率記憶
部に記憶している補間率とを入力して、補間演算を行
う。これにより、マトリクス演算および補間演算を1つ
の演算器を用いて高速に行うことができる。
In order to achieve the above object, the present invention inputs a data string formed by a combination of a header designating a matrix and data to be matrix-operated, and performs an interpolation operation. A high-speed interpolation calculator that performs matrix calculation including: a matrix storage section that stores a plurality of matrices used for matrix calculation; an interpolation rate storage section that stores an interpolation rate used for interpolation calculation;
Data analysis in which the header and data are identified from the input data string, the matrix stored in the matrix storage unit is selected by the header, and in the case of interpolation calculation, the interpolation rate and data are selected and output. / Matrix selection unit, a matrix operation unit for performing matrix operation, and a matrix operation result storage unit for temporarily storing the operation result, and when performing only matrix operation, the matrix operation unit selects When performing a matrix operation of the selected matrix and data and performing an interpolation operation, the matrix operator stores the result of the matrix operation of the selected matrix and data in the matrix operation result storage unit. , The matrix calculation result storage unit temporarily stores the calculation result and the interpolation rate storage unit. Enter the between rates, performs interpolation calculation. Thereby, the matrix calculation and the interpolation calculation can be performed at high speed by using one arithmetic unit.

【0007】前記補間演算の実行の指定は、前記ヘッダ
内のデータにより行い、前記データ解析/マトリクス選
択部により検出されて、補間演算を行う。さらに、前記
マトリクス記憶部と前記マトリクス演算器との間にバッ
ファを設け、前記バッファを、マトリクスのキャッシュ
および/または前記マトリクス演算結果記憶部として使
用することができる。前記補間演算は、2つのデータま
たは3つのデータを用いて行うこともでき、補間に用い
るデータごとに異なるマトリクスを指定することもでき
る。また、前記記憶されている補間率は、複数記憶で
き、各補間率の使用回数を指定することもできる。
The execution of the interpolation calculation is designated by the data in the header, and is detected by the data analysis / matrix selection unit to perform the interpolation calculation. Further, a buffer may be provided between the matrix storage unit and the matrix operation unit, and the buffer may be used as a matrix cache and / or the matrix operation result storage unit. The interpolation calculation can be performed using two data or three data, and a different matrix can be designated for each data used for interpolation. Further, a plurality of the stored interpolation rates can be stored, and the number of times of use of each interpolation rate can be designated.

【0008】[0008]

【発明の実施の形態】本発明の実施形態を、図面を参照
して詳細に説明する。本発明は、ゲーム等の3次元空間
のシミュレーション技術に関するものであり、頂点デー
タを指定するヘッダ情報において、演算に使用するマト
リクスを選択できる構成としている。これにより、マト
リクスを指定するヘッダと、マトリクス演算されるデー
タとの組み合わせで構成されるデータ列で指定してい
る、一連のマトリクス演算を連続して行うことができ、
例えば複数のマトリクスを連続的に用いる関節構造の頂
点群を処理するのに適している。またヘッダ情報によ
り、補間演算をするかどうかも指定できるようになって
いる。指定した頂点データを被補間頂点とし、補間演算
を行うマトリクス演算も行える。これらに関しては図2
および図3を参照して説明する。
Embodiments of the present invention will be described in detail with reference to the drawings. The present invention relates to a three-dimensional space simulation technique for games and the like, and has a configuration in which a matrix used for calculation can be selected in header information that specifies vertex data. As a result, it is possible to continuously perform a series of matrix operations, which are specified by a data string composed of a header specifying a matrix and data to be matrix-operated,
For example, it is suitable for processing a group of vertices of a joint structure that continuously uses a plurality of matrices. In addition, it is possible to specify whether or not to perform interpolation calculation by the header information. The specified vertex data is used as the vertex to be interpolated, and a matrix operation for performing an interpolation operation can be performed. For these, see Figure 2.
And it demonstrates with reference to FIG.

【0009】図2で、本発明のデータ構造を説明する。
図2(a)は、本発明で用いているデータ構造を説明し
ている図である。図2(a)では、関節構造の頂点群デ
ータを、1頂点の座標データを1ワードとした例を示し
ており、横に付した数字はワード数を示している。図2
(a)で示すように、複数の頂点データを、それぞれに
1ワードのヘッダを付加して連続的な頂点群のデータに
まとめている。このヘッダには演算を行なう場合の必要
最低限の情報が埋め込まれている。このような複数のヘ
ッダと頂点群データを合わせたものを、説明上「ベクト
ル・データ」と呼ぶことにする。図2(b)はベクトル
・データ中のヘッダを示したものである。ヘッダ領域に
埋め込まれている1つ目の情報として、図2(b)
(i)のように、このヘッダの情報が演算に影響するデ
ータのワード数が埋め込まれている。また、ヘッダに格
納すべき情報として、ワード数ではなくても、ベクトル
・データからヘッダとデータを識別できるものであれば
よい。他の例としては、図2(b)(ii)に示すよう
に、ヘッダであることを示すフラグを用いてもよい。ま
た、次のヘッダまでのオフセットでもよい。ヘッダ領域
に埋めこまれている2つ目の情報として、そのヘッダ以
降のデータの演算に使用するマトリクスを指定する情報
が埋め込まれている。この例では、後に図3にて説明す
る、マトリクス格納領域内の格納場所を示すマトリクス
番号を指定している。演算する際に使用するマトリクス
の番号ではなく、あらかじめ基準となる番号を決めてお
き、その基準となる番号からのオフセット値を埋め込む
こともできる。このヘッダ内に含まれているオフセット
値と基準番号を加算して得られる番号をもとに、演算に
使用するマトリクスを選択するようにすることもでき
る。例えば、基準となる番号Mbaseを0x11と
し、ヘッダに含まれるオフセット値Mnが0x0Eだと
すれば、演算に使用するマトリクスの番号は0x1Fで
ある。ヘッダ領域に埋め込まれている3つ目の情報とし
て、補間演算のON/OFFフラグが埋め込まれてい
る。このフラグがONの場合は、ヘッダ領域に埋め込ま
れている1つ目の情報として示した、ヘッダが影響する
以下に続くデータを用いて、マトリクス演算を行うと同
時に補間演算も行なう。逆に、OFFの場合は通常通り
のマトリクス演算のみを行なう。補間演算の場合、ヘッ
ダにより指定されているマトリクスは先頭のマトリクス
であり、例えば、3点で補間する場合、それぞれの点で
異なるマトリクスを用いるときは、ヘッダにより指定さ
れているマトリクスから3つのマトリクスを用いてい
る。また、補間演算は2点もしくは3点分のデータを基
に1点分のデータを算出するので、ヘッダに埋め込まれ
ているヘッダが影響するデータ数としては、補間後のデ
ータ数が対象となるように設定することもできる。この
場合、3点分のデータを基に1点分のデータを算出する
とき、ヘッダにはデータ数として3と設定されている
が、入力する頂点群データとしては9個の頂点群データ
が存在している。
The data structure of the present invention will be described with reference to FIG.
FIG. 2A is a diagram explaining the data structure used in the present invention. In FIG. 2A, the vertex group data of the joint structure is shown as an example in which the coordinate data of one vertex is one word, and the numeral attached to the side indicates the number of words. Figure 2
As shown in (a), a plurality of vertex data items are combined into a continuous vertex group data by adding a 1-word header to each. In this header, the minimum necessary information for performing calculation is embedded. Such a combination of a plurality of headers and vertex group data will be referred to as "vector data" for the sake of explanation. FIG. 2B shows the header in the vector data. As the first information embedded in the header area, as shown in FIG.
As in (i), the number of data words in which the information in this header affects the operation is embedded. Further, the information to be stored in the header is not limited to the number of words, but may be any information that can identify the header and the data from the vector data. As another example, as shown in FIGS. 2 (b) and (ii), a flag indicating a header may be used. It may also be an offset to the next header. As the second information embedded in the header area, information designating a matrix used for calculation of the data after the header is embedded. In this example, a matrix number indicating a storage location in the matrix storage area, which will be described later with reference to FIG. 3, is designated. Instead of the matrix number used in the calculation, a reference number may be determined in advance and an offset value from the reference number may be embedded. It is also possible to select the matrix used for the calculation based on the number obtained by adding the offset value and the reference number included in this header. For example, if the reference number M base is 0x11 and the offset value Mn included in the header is 0x0E, the number of the matrix used for the calculation is 0x1F. As third information embedded in the header area, an ON / OFF flag for interpolation calculation is embedded. When this flag is ON, the matrix operation is performed at the same time as the interpolation operation is performed by using the following data which is shown as the first information embedded in the header area and which is influenced by the header. On the contrary, when it is OFF, only the usual matrix calculation is performed. In the case of interpolation calculation, the matrix specified by the header is the first matrix. For example, in the case of interpolating at 3 points, if different matrices are used at each point, the matrix specified by the header will be 3 matrices. Is used. In addition, since the interpolation calculation calculates the data for one point based on the data for two points or three points, the number of data after the interpolation is targeted as the number of data affected by the header embedded in the header. You can also set In this case, when the data for one point is calculated based on the data for three points, the number of data is set to 3 in the header, but there are nine vertex group data as input vertex group data. is doing.

【0010】図3は、図2で説明したデータ構造を用い
て、マトリクス演算を行う演算器300の構成と動作を
示す図である。この演算器300は、CPUとは独立し
た、マトリクス演算命令を実行するための演算器として
作動している構成例として説明する。ヘッダの補間演算
のON/OFFフラグにより、補間演算を行う場合と、
補間演算を行わないで、通常のマトリクス演算を行う場
合とを選択できる。このマトリクス演算を行うための演
算器300の構成は、図3(a)に示すように、演算に
使用するマトリクスを格納するマトリクス格納領域31
0、ヘッダの解析等を行うベクトル・データ解析・マト
リクス選択器350、マトリクス演算器370、補間値
格納領域380とマトリクス演算結果格納領域390を
有している。マトリクス演算器370は、[数2]で示
したマトリクス演算を行うことができる。
FIG. 3 is a diagram showing the configuration and operation of a computing unit 300 that performs a matrix computation using the data structure described with reference to FIG. The arithmetic unit 300 will be described as an example of a configuration that is independent of the CPU and operates as an arithmetic unit for executing a matrix arithmetic instruction. When the interpolation calculation is performed by the ON / OFF flag of the interpolation calculation of the header,
A case where a normal matrix calculation is performed without performing an interpolation calculation can be selected. As shown in FIG. 3A, the configuration of the arithmetic unit 300 for performing this matrix operation is such that the matrix storage area 31 for storing the matrix used for the operation
0, a vector / data analysis / matrix selector 350 for analyzing a header, a matrix calculator 370, an interpolation value storage area 380, and a matrix calculation result storage area 390. The matrix calculator 370 can perform the matrix calculation shown in [Equation 2].

【0011】まず、[数4]に示した3点でそれぞれ異
なるマトリクスを用いて補間演算を行う場合を説明す
る。まず、演算器300の動作の設定を行う。この設定
は、演算器300の動作を変えることができ、その動作
に対応するデータを用意することによって、後述する補
間演算の動作を選択することができる。そして、図3
(b)に示すように、マトリクス格納領域310中に、
図2の頂点群Aの補間演算で使用するマトリクスM1,
M2,M3をそれぞれマトリクス番号1,2,3の場所
に格納する。補間値格納領域380には補間演算に用い
る補間率α,β,γを格納する。このように演算の準備
を行った後、マトリクス演算命令を発行する。
First, a case will be described in which the interpolation calculation is performed by using different matrices at the three points shown in [Equation 4]. First, the operation of the arithmetic unit 300 is set. This setting can change the operation of the arithmetic unit 300, and by preparing data corresponding to the operation, it is possible to select the operation of the interpolation calculation described later. And FIG.
As shown in (b), in the matrix storage area 310,
A matrix M1 used in the interpolation calculation of the vertex group A in FIG.
M2 and M3 are stored in the locations of matrix numbers 1, 2, and 3, respectively. The interpolation value storage area 380 stores interpolation rates α, β, and γ used for interpolation calculation. After preparing for the operation in this way, the matrix operation instruction is issued.

【0012】マトリクス演算命令により、図3(c)に
示すように、演算器300にベクトル・データが入力さ
れる。演算器300は、入力されるベクトル・データを
ベクトル・データ解析・マトリクス選択器350に入力
し、ベクトル・データ解析・マトリクス選択器350
は、入力されるベクトル・データの各ワードがヘッダか
頂点データかを分別する。最初に入力されたワードがヘ
ッダであることを識別し、ベクトル・データ解析・マト
リクス選択器350は、演算に使用するマトリクスをヘ
ッダのマトリクス番号を参照し、マトリクス格納領域3
10より選択して、選択したマトリクスをマトリクス演
算器370の一方に入力する。また、この例では補間演
算を行うので、ヘッダの補間演算のON/OFFフラグ
はONであり、演算器300はヘッダより補間演算を行
うことを認識する。
By the matrix operation instruction, vector data is input to the operator 300, as shown in FIG. The arithmetic unit 300 inputs the input vector data to the vector / data analysis / matrix selector 350, and the vector / data analysis / matrix selector 350.
Separates each word of the input vector data from the header or the vertex data. The first input word is identified as a header, and the vector / data analysis / matrix selector 350 refers to the matrix number of the header as the matrix to be used for calculation, and the matrix storage area 3
Select from 10 and input the selected matrix to one of the matrix calculators 370. Further, since the interpolation calculation is performed in this example, the ON / OFF flag of the interpolation calculation of the header is ON, and the calculator 300 recognizes that the interpolation calculation is performed from the header.

【0013】次に入力されるワードは1つめの頂点デー
タであるので、頂点データはマトリクス演算器370に
送られ、選択されているマトリクス(M1)と、マトリ
クス演算器370においてマトリクス演算を行ない、演
算結果をマトリクス演算結果格納領域390に出力して
格納しておく。同様に2つめと3つめの頂点データも選
択されているマトリクス(M2,M3)とマトリクス演
算をし、演算結果をマトリクス演算結果格納領域390
に格納する。図3(d)に示すように、マトリクス演算
結果格納領域390に格納されている3点のベクトルデ
ータの演算結果をマトリクスとし、補間値格納領域38
0に格納されている補間値α,β,γを成分としたベク
トル(α,β,γ)として、演算器370にてマトリク
ス演算を行う。そして演算結果を出力する。以後、次の
ヘッダが識別されるまで、入力される頂点データに対し
て、同様の処理を行う。次のヘッダがベクトル・データ
解析・マトリクス選択器350に入力されると、補間演
算を行うかをヘッダにより判定して演算器300の動作
を決定する。このようにして、ヘッダでマトリクスを指
定したり、補間演算するかを指定することで、図2
(a)に示したベクトル・データに対するマトリクス演
算を終了することができる。
Since the word to be input next is the first vertex data, the vertex data is sent to the matrix calculator 370, and the matrix calculation is performed on the selected matrix (M1) and the matrix calculator 370. The calculation result is output to and stored in the matrix calculation result storage area 390. Similarly, the second and third vertex data are also subjected to matrix calculation with the selected matrix (M2, M3), and the calculation result is stored in the matrix calculation result storage area 390.
To store. As shown in FIG. 3D, the interpolated value storage area 38 is formed by using the operation result of the vector data of three points stored in the matrix operation result storage area 390 as a matrix.
A matrix calculation is performed by the calculator 370 as a vector (α, β, γ) having the interpolation values α, β, γ stored in 0 as components. Then, the calculation result is output. Thereafter, similar processing is performed on the input vertex data until the next header is identified. When the next header is input to the vector / data analysis / matrix selector 350, the operation of the calculator 300 is determined by determining whether the interpolation calculation is to be performed by the header. In this way, by specifying the matrix in the header and specifying whether to perform interpolation calculation,
The matrix operation on the vector data shown in (a) can be completed.

【0014】上述では3点でそれぞれ異なるマトリクス
を用いて補間演算を行う場合を説明したが、先ほどの演
算命令を発行する前にした演算器300の動作の設定に
よって、2点での補間演算を行うこともできる。その
際、演算器300は入力する頂点データとして2つの被
補間頂点を用いて補間演算をする。したがって、対応す
るデータとして、1つの補間頂点を導き出すために入力
される補間用の頂点データはあらかじめ2点1組用意し
なければならない。また、同様に演算器300の動作の
設定により、被補間頂点3点や2点がすべて同一のマト
リクスを用いるようにすることもできる。この場合、演
算器300は設定により、上述したマトリクス格納領域
310よりM2,M3を選択せずにM1だけを選択する
ようになる。なお、2点での補間で座標変換等の演算の
別の実施形態として、演算器300は常に3点による補
間演算をするものと固定し、2点による補間演算をする
等の設定をしないこともできる。このときは入力するベ
クトル・データとして、被補間頂点2点とダミー1点の
3点を1組にしたものを用意する。補間レジスタには補
間値γ=0と設定しておき、補間値γとダミーのデータ
とを掛けるようにすれば実質2点による補間演算とな
る。
In the above description, the case where the interpolating operation is performed using the three different matrixes has been described. However, the interpolating operation at the two points can be performed by setting the operation of the arithmetic unit 300 before issuing the operation instruction. You can also do it. At that time, the calculator 300 performs an interpolation calculation using two interpolated vertices as the input vertex data. Therefore, as the corresponding data, it is necessary to prepare in advance a set of two points for interpolation, which is input to derive one interpolation vertex. Similarly, by setting the operation of the arithmetic unit 300, it is possible to use the same matrix for all three points and two points of the interpolated vertices. In this case, depending on the setting, the calculator 300 selects only M1 from the matrix storage area 310 described above without selecting M2 and M3. As another embodiment of calculation such as coordinate conversion by interpolation at two points, the calculator 300 is fixed to always perform interpolation calculation at three points, and setting such as interpolation calculation at two points is not performed. You can also At this time, as the vector data to be input, a set of 3 points of the interpolated vertex 2 points and the dummy 1 point is prepared. If the interpolation value γ = 0 is set in the interpolation register and the interpolation value γ is multiplied by the dummy data, the interpolation calculation by substantially two points is performed.

【0015】次に補間演算を行わない場合について説明
をする。補間演算を行わない場合は、本発明の発明者が
出願した「高速マトリクス演算器(特願2001−26
6423)」と同等な演算器となり、これを用いて座標
変換や補間演算等に用いるマトリクス演算処理を連続し
て行える。まず、図3(b)に示すように、メモリ31
0中に、図2の頂点群A,B,Cの演算で使用するマト
リクスM1,M2,M3を格納する。そして、演算命令
を発行する。
Next, a case where no interpolation calculation is performed will be described. When the interpolation calculation is not performed, the “high-speed matrix calculator (Japanese Patent Application No. 2001-26
6423) ”, which can be used to continuously perform matrix calculation processing used for coordinate conversion, interpolation calculation, and the like. First, as shown in FIG.
The matrixes M1, M2 and M3 used in the calculation of the vertex groups A, B and C of FIG. 2 are stored in 0. Then, the arithmetic instruction is issued.

【0016】演算命令の発行により、図3(c)に示す
ように、演算器300にベクトル・データが入力され
る。演算器300は、入力されるベクトル・データをベ
クトル・データ解析・マトリクス選択器350に入力
し、ベクトル・データ解析・マトリクス選択器350
は、入力されるベクトル・データの各ワードがヘッダか
頂点データかを分別する。入力されたワードがヘッダで
あることを識別した場合、ベクトル・データ解析・マト
リクス選択器350は、演算に使用するマトリクスをヘ
ッダのマトリクス番号によりメモリ310より選択し
て、選択したマトリクスをマトリクス演算器370の一
方に入力する。また、この例では補間演算を行わないの
で、ヘッダの補間演算のON/OFFフラグはOFFで
あり、演算器300は補間演算を行わないことを認識す
る。
By issuing the operation instruction, vector data is input to the operation unit 300 as shown in FIG. The arithmetic unit 300 inputs the input vector data to the vector / data analysis / matrix selector 350, and the vector / data analysis / matrix selector 350.
Separates each word of the input vector data from the header or the vertex data. When the input word is identified as a header, the vector / data analysis / matrix selector 350 selects the matrix to be used for the operation from the memory 310 according to the matrix number of the header, and the selected matrix is the matrix operator. Input to one side of 370. Further, since the interpolation calculation is not performed in this example, the ON / OFF flag of the interpolation calculation of the header is OFF, and the calculator 300 recognizes that the interpolation calculation is not performed.

【0017】次に入力されるワードは頂点データである
ので、この頂点データはマトリクス演算器370に送ら
れ、ヘッダにより選択されているマトリクスと、マトリ
クス演算器370においてマトリクス演算を行う。図3
(c)ではこのマトリクス演算の結果をマトリクス演算
結果格納領域390に対して出力しているが、ここでは
補間演算を行わないので、外部に演算結果をそのまま出
力する。以後、次のヘッダが識別されるまで、入力され
る頂点データに対して、同様の処理を行う。次のヘッダ
がベクトル・データ解析・マトリクス選択器350に入
力されると、ベクトル・データ解析・マトリクス選択器
350は、ヘッダにより指定されているマトリクスを新
たに選択して、マトリクス演算器370に入力する。続
く頂点データは、ベクトル・データ解析・マトリクス選
択器350により、マトリクス演算器370に入力さ
れ、選択されているマトリクスとの間でマトリクス演算
が行われる。このようにして、図2(a)に示したベク
トル・データに対するマトリクス演算を終了することが
できる。
Since the next word to be input is the vertex data, this vertex data is sent to the matrix calculator 370, and the matrix selected by the header is subjected to matrix calculation in the matrix calculator 370. Figure 3
In (c), the result of this matrix calculation is output to the matrix calculation result storage area 390, but since the interpolation calculation is not performed here, the calculation result is output to the outside as it is. Thereafter, similar processing is performed on the input vertex data until the next header is identified. When the next header is input to the vector / data analysis / matrix selector 350, the vector / data analysis / matrix selector 350 newly selects the matrix specified by the header and inputs it to the matrix calculator 370. To do. The subsequent vertex data is input to the matrix calculator 370 by the vector / data analysis / matrix selector 350, and matrix calculation is performed with the selected matrix. In this way, the matrix operation on the vector data shown in FIG. 2A can be completed.

【0018】図2に示すように、本発明では、ヘッダで
演算に使用するマトリクス、補間演算のON/OFFお
よびそのマトリクスで演算すべきデータを指定してい
る。これにより、図3に示す演算器を用いて、従来なら
節を構成する頂点群ごとに処理を分けなければならない
複数の頂点群に対する補間演算や座標変換などを、1度
の演算処理(演算命令発行)で行うことができる。この
構成により、例えば関節構造のようなデータを高速に演
算でき、かつ、簡単で直感的にデータを作成することが
可能になる。また、頂点データを一元管理できるので、
節を構成する頂点群の関係などがわかりやすい。このた
め、頂点データを作成するときにも作りやすく、ベクト
ル・データ内にマトリクスの指定情報もあるので、頂点
データの管理もしやすい。また、ヘッダを書き換えるこ
とで命令を変えることなく、演算に使用するマトリクス
を変更したり、補間演算のON/OFFの切替えをする
ことができる。そのため、途中で補間がかかるような関
節構造の表現が可能となる。
As shown in FIG. 2, in the present invention, a header specifies a matrix used for calculation, ON / OFF of interpolation calculation, and data to be calculated by the matrix. Thus, by using the arithmetic unit shown in FIG. 3, it is possible to perform interpolation calculation and coordinate conversion for a plurality of vertex groups, which conventionally must be divided for each vertex group forming a node, by performing a single calculation process (calculation instruction). Issue). With this configuration, data such as joint structure can be calculated at high speed, and the data can be created easily and intuitively. Also, since vertex data can be centrally managed,
It is easy to understand the relationship between the vertices that compose a node. Therefore, it is easy to create the vertex data, and the vector data also has the matrix designation information, so that the vertex data can be easily managed. Further, by rewriting the header, it is possible to change the matrix used for the calculation and switch ON / OFF of the interpolation calculation without changing the command. Therefore, it is possible to represent a joint structure that is interpolated on the way.

【0019】[0019]

【実施例】以下に、図4〜図7を用いて、具体的なデー
タおよび回路構成例を説明する。図4は、この回路構成
における動作を説明するためのデータの例であり、1種
類のマトリクスを使用する補間演算のベクトル・データ
を示す図である。図4(a)は、第1頂点群1−1,2
−1,3−1(図においては黒で表記)、第2頂点群1
−2,2−2,3−2(図においては白で表記)、第3
頂点群1−3,2−3,3−3(図においては灰色で表
記)によって3点補間演算された頂点m(頂点1−
1,1−2,1−3によって補間),頂点m(頂点2
−1,2−2,2−3によって補間),頂点m(頂点
3−1,3−2,3−3によって補間)となるような構
造を持つ頂点のデータを示している。これらすべての補
間用として用いられる頂点群はマトリクスM1によって
ワールド座標系の原点に対して回転等の座標変換を行う
必要がある。このマトリクスM1は、それぞれの頂点群
とワールド座標系の原点の関係を定めているワールド・
マトリクスである。図4(b)は、図4(a)の頂点群
をベクトル・データとして作成したものである。1ワー
ド目はヘッダであり、その他のワードは補間演算に用い
る各頂点の座標データである。3点補間演算であるの
で、補間に用いられる3点のデータが補間後の1頂点の
データとなる。ヘッダにはその演算に使用するマトリク
ス番号(1)、補間演算のON/OFFフラグ(1=O
N)およびそのヘッダが影響する補間後の頂点のデータ
数(3)が記されている。なお、このヘッダが影響する
データ数は3点補間であるので、3×3の9ワードであ
る。なお、以上のワールド・マトリクスとベクトル・デ
ータを例にして、後で図6および図7に示す回路を用い
て動作の説明する。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Specific data and circuit configuration examples will be described below with reference to FIGS. FIG. 4 is an example of data for explaining the operation in this circuit configuration, and is a diagram showing vector data of an interpolation calculation using one type of matrix. FIG. 4A shows the first vertex group 1-1 and 1-2.
-1, 3-1 (shown in black in the figure), second vertex group 1
-2, 2-2, 3-2 (shown in white in the figure), 3rd
Vertex m 1 (vertex 1-performed by 3-point interpolation calculation by the vertex group 1-3, 2-3, 3-3 (shown in gray in the figure)
1, 1-2, 1-3 interpolation), vertex m 2 (vertex 2
The data of the vertices has a structure such that -1, 2, 2 and 2-3 interpolate) and a vertex m 3 (interpolates vertices 3-1, 3-2 and 3-3). The vertex group used for all of these interpolations needs to be subjected to coordinate conversion such as rotation with respect to the origin of the world coordinate system by the matrix M1. This matrix M1 is the world that defines the relationship between each vertex group and the origin of the world coordinate system.
It is a matrix. FIG. 4B shows the vertex group of FIG. 4A created as vector data. The first word is the header, and the other words are the coordinate data of each vertex used for the interpolation calculation. Since it is a three-point interpolation calculation, the data of three points used for the interpolation becomes the data of one vertex after the interpolation. The header has a matrix number (1) used for the calculation, an ON / OFF flag for the interpolation calculation (1 = O
N) and the data number (3) of the vertices after the interpolation which the header influences. Since the number of data affected by this header is three-point interpolation, it is 3 × 3 = 9 words. The operation will be described later using the circuits shown in FIGS. 6 and 7 using the above world matrix and vector data as an example.

【0020】図5は、この回路構成における動作を説明
するためのデータの他の1つであり、個別のマトリクス
を使用する補間演算のベクトル・データを示す図であ
る。図5(a)は、第1頂点群1−1,2−1,3−1
(図においては黒で表記)、第2頂点群1−2,2−
2,3−2(図においては白で表記)、第3頂点群1−
3,2−3,3−3(図においては灰色で表記)によっ
て3点補間演算された頂点m(頂点1−1,1−2,
1−3によって補間),頂点m(頂点2−1,2−
2,2−3によって補間),頂点m(頂点3−1,3
−2,3−3によって補間)となるような構造を持つ頂
点のデータを示している。これらの第1頂点群はマトリ
クスM1によって、第2頂点群はマトリクスM2によっ
て、第3頂点群はマトリクスM3によって、それぞれワ
ールド座標系の原点に対して回転等の座標変換を行う必
要がある。すなわち、これらのマトリクスM1,M2,
M3は、それぞれの頂点群とワールド座標系の原点の関
係を定めているワールド・マトリクスである。
FIG. 5 is another diagram of data for explaining the operation in this circuit configuration, and is a diagram showing vector data of an interpolation operation using an individual matrix. FIG. 5A shows the first vertex group 1-1, 2-1, 3-1.
(Indicated in black in the figure), second vertex group 1-2, 2-
2, 3-2 (shown in white in the figure), third vertex group 1-
Vertexes m 1 (vertices 1-1, 1-2, 3-2) which are interpolated by three points 3, 2, 3, 3-3 (shown in gray in the figure)
1 to 3), vertex m 2 (vertices 2-1 and 2-
2, 2-3 interpolated), vertex m 3 (vertices 3-1 and 3
The data of the vertices having a structure such that (interpolated by -2, 3-3) is shown. It is necessary to perform coordinate conversion such as rotation with respect to the origin of the world coordinate system by the matrix M1, the second vertex group by the matrix M2, and the third vertex group by the matrix M3. That is, these matrices M1, M2
M3 is a world matrix that defines the relationship between each vertex group and the origin of the world coordinate system.

【0021】図5(b)は、図5(a)の頂点群をベク
トル・データとして作成したものである。1ワード目は
ヘッダであり、その他のワードは補間演算に用いる各頂
点の座標データである。図4(b)のベクトル・データ
と同様に3点補間演算であるので、補間に用いられる3
点のデータが補間後の1頂点のデータとなる。ヘッダに
はその演算に使用する3つあるうちの先頭のマトリクス
番号、補間演算のON/OFFフラグおよびそのヘッダ
が影響する補間後の頂点のデータ数が記されている。
FIG. 5B shows the vertex group of FIG. 5A created as vector data. The first word is the header, and the other words are the coordinate data of each vertex used for the interpolation calculation. Similar to the vector data of FIG. 4B, since it is a three-point interpolation calculation, the 3
The point data becomes the data of one vertex after interpolation. In the header, the top matrix number of the three used for the calculation, the ON / OFF flag of the interpolation calculation, and the number of data points of the vertices after the interpolation which the header affects are described.

【0022】図6は高速補間演算器600の回路図を示
したものである。これは以前に本発明の発明者が出願し
た「高速マトリクス演算器(特願2000−26642
3)」と基本的な構成は同様であるが、相違点は乗加算
器からの演算結果がバッファに書き戻されるフィードバ
ック経路があることおよび補間レジスタや補間値セレク
タの構成が追加されたことである。高速補間演算器60
0は、ヘッダとデータに分別するヘッダ/データ分別器
610、ヘッダ解析/演算器コントローラ620、補間
値を格納する補間値レジスタ700、ヘッダ/データ分
別器610からのデータと補間値レジスタ700からの
データを選別して演算器に送る補間値セレクタ690、
マトリクス・データを格納するメモリ630、マトリク
ス・データの一時的なキャッシュとして使うためのバッ
ファ1 642,バッファ2 644,バッファ3 6
46,バッファ4 648、メモリと乗加算器のどちら
からのデータをバッファに取り込むか選択するMtoB
マルチプレクサ641,643,645,647、4つ
あるバッファを選択するマルチプレクサ650を有して
いる。実際にマトリクス演算を行う演算器は、3個の乗
加算器660,670,680で構成している。この乗
加算器660,670,680はそれぞれ、3つの乗算
器と1つの加算器で構成している。例えば乗加算器68
0は、乗算器682,684,686と加算器688と
で構成しており、乗加算器1つで1列分の演算が実現で
きるようになっている。この乗加算器が3個あるため
に、[数2]で示した座標変換で必要な3列分の演算が
1度にできる。
FIG. 6 is a circuit diagram of the high speed interpolation calculator 600. This is a "high-speed matrix calculator (Japanese Patent Application No. 2000-26642) previously applied by the inventor of the present invention.
3) ”, but the difference is that there is a feedback path through which the operation result from the multiplier / adder is written back to the buffer and the configuration of the interpolation register and interpolation value selector is added. is there. High-speed interpolation calculator 60
0 is a header / data classifier 610 for classifying into a header and data, a header analysis / arithmetic unit controller 620, an interpolation value register 700 for storing an interpolation value, data from the header / data classifier 610 and an interpolation value register 700. An interpolated value selector 690 that selects data and sends it to a computing unit,
Memory 630 for storing matrix data, buffer 1 642, buffer 2 644, buffer 3 6 for use as a temporary cache of matrix data
46, buffer 4 648, MtoB for selecting which of the memory and the multiplier / adder takes data into the buffer
The multiplexers 641, 643, 645, 647 have multiplexers 650 for selecting four buffers. An arithmetic unit that actually performs a matrix operation is composed of three power adders 660, 670, and 680. Each of the multipliers / adders 660, 670, 680 is composed of three multipliers and one adder. For example, the multiplier / adder 68
0 is composed of multipliers 682, 684, 686 and an adder 688, and one multiplication / adder can realize an operation for one column. Since there are three multiply-adders, the operations for the three columns necessary for the coordinate conversion shown in [Equation 2] can be performed once.

【0023】ヘッダ/データ分別器610は、高速補間
演算器600に経路vaから入力されるベクトル・デー
タを受けて、ヘッダとデータとに分別し、ヘッダはヘッ
ダ解析/演算器コントローラ620に、データは補間値
セレクタ690に出力する。補間値セレクタ690は、
ヘッダ/データ分別器610からのデータと、補間値レ
ジスタ700からのデータを選別し、経路vbより各乗
加算器660〜680へ送るセレクタである。メモリ6
30には、経路maから例えば64個のマトリクスを格
納することができる。格納されているマトリクスの指定
は、メモリ630の格納場所と対応した1〜64のマト
リクス番号により行っている。バッファ1〜バッファ4
は、演算で使用するマトリクス・データを4つ格納する
ことができるキャッシュとして使用する。また補間演算
時には、バッファ4はテンポラリとして使用するのでキ
ャッシュ動作に制限が生じる。この補間演算時には乗加
算器660〜680の演算結果をテンポラリとして使用
しているバッファ4にフィードバックする。この経路は
バッファ入口でMtoBマルチプレクサ641,64
3,645,647によってメモリの経路と選択され
る。このバッファの管理は、ヘッダ解析/演算器コント
ローラ620により、バッファとマトリクス番号の対応
や、バッファの補間演算時のテンポラリとしての使用な
どを記憶している管理テーブルを用いて行っている。な
お、この高速補間演算器600は、マトリクス演算命令
を実行するために、CPUとは独立した演算器として動
作する。
The header / data classifier 610 receives the vector data input from the path va to the high-speed interpolation calculator 600 and separates it into a header and data. Is output to the interpolation value selector 690. The interpolation value selector 690 is
It is a selector that selects the data from the header / data classifier 610 and the data from the interpolation value register 700 and sends it to each of the power adders 660 to 680 via the route vb. Memory 6
The matrix 30 can store, for example, 64 matrices from the route ma. The matrix to be stored is designated by the matrix numbers 1 to 64 corresponding to the storage locations of the memory 630. Buffer 1 to buffer 4
Is used as a cache that can store four pieces of matrix data used in calculations. Further, at the time of interpolation calculation, the buffer 4 is used as a temporary, so that the cache operation is limited. At the time of this interpolation calculation, the calculation results of the multipliers / adders 660 to 680 are fed back to the buffer 4 used as a temporary. This path is the buffer entrance at the MtoB multiplexer 641, 64
3, 645 and 647 select a memory path. The management of this buffer is performed by the header analysis / operation unit controller 620 using a management table which stores the correspondence between the buffer and the matrix number and the temporary use during the interpolation operation of the buffer. The high-speed interpolation calculator 600 operates as a calculator independent of the CPU in order to execute the matrix calculation instruction.

【0024】次に高速補間演算器600内にある、補間
値レジスタ700の回路の説明を、図7を用いて行う。
図7は高速補間演算器の補間値レジスタ700を示した
ブロック図である。補間値レジスタ700は、補間値レ
ジスタ・コントローラ710、外部より補間値を書き込
むインターフェースである補間値格納インターフェース
720、この補間値格納インターフェース720を通じ
て補間値などを格納しておくレジスタ731〜739、
格納してある補間値などを選択して補間値セレクタ69
0に出力するnto1マルチプレクサ740を有してい
る。この補間値レジスタ700は外部より経路paを通
して書き込みが行えるレジスタで、補間率α、β、γを
保持するレジスタ群である。この例では、補間値α,
β,γ、そしてこの補間値α,β,γを演算に何回使用
するかを表す値numの4つの値を1組として、16組
の補間値をレジスタ731〜739で保持できるように
なっている。補間値レジスタ・コントローラ710は、
nto1マルチプレクサ740を操作し、16組のレジ
スタの中から1組の補間値α,β,γを補間値セレクタ
690へ、numを補間値レジスタ・コントローラ71
0へ送る。
Next, the circuit of the interpolation value register 700 in the high speed interpolation calculator 600 will be described with reference to FIG.
FIG. 7 is a block diagram showing the interpolation value register 700 of the high speed interpolation calculator. The interpolated value register 700 includes an interpolated value register controller 710, an interpolated value storage interface 720 that is an interface for writing an interpolated value from the outside, and registers 731 to 739 for storing interpolated values and the like through the interpolated value storage interface 720.
The stored interpolation value is selected and the interpolation value selector 69 is selected.
It has an nto1 multiplexer 740 which outputs to 0. The interpolation value register 700 is a register that can be written from the outside through the path pa, and is a group of registers that holds the interpolation rates α, β, γ. In this example, the interpolation value α,
It is possible to store 16 sets of interpolation values in the registers 731 to 739, with 4 sets of β, γ, and a value num representing how many times the interpolation values α, β, γ are used for calculation. ing. The interpolation value register controller 710 is
By operating the nto1 multiplexer 740, one set of interpolation values α, β, γ from 16 sets of registers is input to the interpolation value selector 690, and num is an interpolation value register controller 71.
Send to 0.

【0025】補間演算の際に補間値α,β,γをリクエ
ストするとき、ヘッダ解析/演算器コントローラ620
は「補間値リクエスト」という信号を補間値レジスタ・
コントローラ710に対して送る。補間値レジスタ・コ
ントローラ710は、このリクエストの回数をカウント
し、値が格納されているnum(1≦k≦16)の値
と一致すると、次の補間値を出力するためkを1つ増加
する。その結果、補間値はαk+1、βk+1、γ
k+1が出力され、この値が次の演算に使用される。例
えば、numが2のときは、補間値レジスタ・コント
ローラ710に対して補間値リクエストが来たら、補間
値セレクタ690に補間値α,β,γを送る。次
の補間値リクエストが来ても同様に補間値α,β
γを送る。numの値である2回補間値α
β,γを送った後に、補間値レジスタ・コントロー
ラ710は次の組の補間値を出力する準備をし、次のリ
クエストではα,β,γを送る。2組目の補間値
を送る回数はnumの値の回数だけである。このよう
に続けていき、本実施例のシステムでは最高α16,β
16,γ16まで送る。なお、補間演算が進み、k=1
6となったときには、補間値レジスタ・コントローラ7
10内にあるフラグにより、次にk=1とするか、k=
16とするかを選ぶことができる。このフラグは、演算
命令を発行する前にあらかじめ選択して設定しておく。
When requesting the interpolation values α, β, γ in the interpolation calculation, the header analysis / calculator controller 620 is used.
Is the interpolation value register
Send to controller 710. The interpolation value register controller 710 counts the number of times of this request, and if the value matches the stored value of num k (1 ≦ k ≦ 16), k is incremented by 1 to output the next interpolation value. To do. As a result, the interpolated values are α k + 1 , β k + 1 , γ
k + 1 is output, and this value is used for the next calculation. For example, when num 1 is 2, when the interpolated value request comes to the interpolated value register controller 710, the interpolated values α 1 , β 1 , and γ 1 are sent to the interpolated value selector 690. Even if the next interpolation value request comes, the interpolation values α 1 , β 1 ,
Send γ 1 . num 1, the value of the two-time interpolation value α 1 ,
After sending β 1 , γ 1 , the interpolated value register controller 710 prepares to output the next set of interpolated values and sends α 2 , β 2 , γ 2 on the next request. The number of times the second set of interpolation values is sent is only the number of times the value of num 2 . Continuing in this way, the system of the present embodiment has a maximum of α 16 , β.
16 up to γ 16 . Note that the interpolation calculation proceeds and k = 1
When it becomes 6, the interpolation value register controller 7
Depending on the flag in 10, then either k = 1 or k =
You can choose 16 or not. This flag is selected and set in advance before issuing the operation instruction.

【0026】次に図4のような座標変換等の演算に用い
るマトリクスを1種類しか使用しない場合の、図6の高
速補間演算器600の動作について図8,図9を用いて
詳細に説明する。図8,図9は補間演算する際の乗加算
器と演算結果を格納するテンポラリ・バッファの動作を
示した図である。このテンポラリ・バッファは本実施例
ではバッファ4 648を使用している。このバッファ
は4行3列のマトリクスが格納できるようになってお
り、バッファ4 648にはマトリクスの1行目の格納
領域649a、2行目の格納領域649b、3行目の格
納領域649c、4行目の格納領域649dを有してい
る。テンポラリ・バッファであるバッファ4以外の3つ
のバッファは、補間演算に使用されるマトリクスを一時
的に記憶するマトリクス・キャッシュとして使用され
る。マトリクス・キャッシュとは、以前にメモリからバ
ッファへマトリクス・データの転送が行われた際にその
マトリクス番号をテーブルに記憶しておき、バッファ上
にそのマトリクス・データが保存されている限り、次回
から同じ番号のマトリクスがリクエストされた際には、
メモリからバッファへのマトリクス・データ転送を行わ
ずにマトリクスが保存されているバッファを直接指定す
る方法である。これを行うことで、同じマトリクスを使
用する場合にはメモリ転送時間が省かれるために高速に
演算が行える。
Next, the operation of the high-speed interpolation calculator 600 shown in FIG. 6 when only one type of matrix used for calculations such as coordinate conversion shown in FIG. 4 is used will be described in detail with reference to FIGS. 8 and 9. . FIG. 8 and FIG. 9 are diagrams showing the operations of the multiplier / adder and the temporary buffer for storing the operation result when performing the interpolation operation. This temporary buffer uses buffer 4648 in this embodiment. This buffer can store a matrix of 4 rows and 3 columns. The buffer 4648 stores a storage area 649a in the first row of the matrix, a storage area 649b in the second row, a storage area 649c in the third row, and a storage area 649c in the third row. It has a storage area 649d for the row. Three buffers other than the buffer 4, which is a temporary buffer, are used as a matrix cache for temporarily storing the matrix used for the interpolation calculation. Matrix cache is the matrix number stored in the table when the matrix data was previously transferred from the memory to the buffer, and as long as the matrix data is stored in the buffer, it will be used from the next time. When the same number matrix is requested,
This is a method of directly specifying the buffer in which the matrix is stored without performing the matrix data transfer from the memory to the buffer. By doing this, when the same matrix is used, the memory transfer time is saved, so that the operation can be performed at high speed.

【0027】図6において、補間演算で使用するマトリ
クスM1と、補間値α,β,γおよびnumを高速補間
演算器600のメモリ630内にあるマトリクス番号1
の場所と補間値レジスタ700にそれぞれ格納する。高
速補間演算器600の動作の設定と、上述した補間値レ
ジスタ・コントローラ710内にあるフラグの設定も行
う。図4に示す例を実行するには、被補間頂点がすべて
同一のマトリクスを用いる3点補間演算をするように高
速補間演算器600を設定している。その後、高速補間
演算器600がマトリクス演算命令により起動すると、
高速補間演算器600は3点による同一のマトリクスを
用いる補間演算を行うよう動作する。その後、経路va
からベクトル・データが高速補間演算器600に入力さ
れる。この例では、図4(b)に示す10ワードのベク
トル・データが入力される。1ワード目はヘッダなの
で、ヘッダ分別器610を通りヘッダ解析/演算器コン
トローラ620に送られる。ベクトル・データのヘッダ
に示された、メモリ630内にあるマトリクス番号1の
場所にある演算に使用するマトリクスM1をメモリ63
0からバッファ1642へ転送する。同時に、ヘッダ解
析器では、ヘッダにかかれている数を記録しておく。ベ
クトル・データは図4(b)の場合であるので、1ワー
ド目のヘッダには「3」が書かれており、この3を記録
しておく。
In FIG. 6, the matrix M1 used in the interpolating operation and the interpolated values α, β, γ and num are stored in the memory 630 of the high speed interpolating operation unit 600 as the matrix number 1
And the interpolation value register 700. It also sets the operation of the high-speed interpolation calculator 600 and sets the flag in the interpolation value register controller 710 described above. In order to execute the example shown in FIG. 4, the high-speed interpolation calculator 600 is set so as to perform a three-point interpolation calculation using a matrix in which all the interpolated vertices are the same. After that, when the high-speed interpolation calculator 600 is activated by the matrix calculation command,
The high-speed interpolation calculator 600 operates to perform an interpolation calculation using the same matrix of three points. After that, the route va
From the vector data is input to the high speed interpolation calculator 600. In this example, the 10-word vector data shown in FIG. 4B is input. Since the first word is the header, it is sent to the header analysis / operation unit controller 620 through the header classifier 610. The matrix M1 used in the operation at the location of the matrix number 1 in the memory 630, which is shown in the vector data header, is stored in the memory 63.
Transfer from 0 to buffer 1642. At the same time, the header analyzer records the number written in the header. Since the vector data is the case of FIG. 4B, "3" is written in the header of the first word, and this 3 is recorded.

【0028】図6とともに図8(a)を参照して、ベク
トル・データである1番目の補間演算用の頂点データV
1が経路vbを通して乗加算器660〜680に入力さ
れる。同じくマトリクスM1もバッファ1 642から
経路mcを通り乗加算器660〜680に入力される。
そして乗加算器660〜680で以下に示すマトリクス
演算を行う。
Referring to FIG. 8 and FIG. 8A, the vertex data V for the first interpolation operation which is vector data.
1 is input to the multipliers / adders 660 to 680 through the route vb. Similarly, the matrix M1 is also input from the buffer 1642 to the power adders 660 to 680 via the path mc.
Then, the following matrix operations are performed by the multipliers / adders 660 to 680.

【数5】V1’=V1・M1 そして演算した結果V1’の成分であるx1’,y
1’,z1’はMtoBマルチプレクサ641,64
3,645,647を操作して、補間演算のテンポラリ
として使うバッファ4 648のマトリクスの1行目の
格納領域649aに格納する。演算後のテンポラリ・バ
ッファ648の内容は図8(a)に示されるようになっ
ている。また、マトリクスの4行目の格納領域649d
は演算に用いないので(0,0,0)を入れてある。
## EQU00005 ## V1 '= V1.M1 and x1', y which are the components of the calculated result V1 '
1 ′ and z1 ′ are MtoB multiplexers 641 and 64
3, 645 and 647 are operated to store them in the storage area 649a in the first row of the matrix of the buffer 4648 used as a temporary for the interpolation calculation. The contents of the temporary buffer 648 after the calculation are as shown in FIG. Also, the storage area 649d in the fourth row of the matrix
Since it is not used in the calculation, (0,0,0) is entered.

【0029】次に、 同様に、図8(b)、図9(c)
に示すように、2番目、3番目の補間演算用の頂点デー
タV2,V3についても、以下に示すマトリクス演算を
行い、その結果をバッファ4 648の第2行目649
b、第3行目649cに格納する。
Next, similarly, FIG. 8 (b) and FIG. 9 (c)
As shown in, the following matrix operation is performed on the vertex data V2 and V3 for the second and third interpolation operations, and the result is stored in the second row 649 of the buffer 4648.
b, stored in the third row 649c.

【数6】 V2’=V2・M1 V3’=V3・M1 3回目の補間用の頂点データの演算を終え、テンポラリ
・バッファ648の格納領域がすべて埋まったら、マル
チプレクサ650を操作して、経路mcにテンポラリ・
バッファであるバッファ4 648の内容を出力させ
る。同時に、補間値セレクタ690を操作し、補間値レ
ジスタ700より補間値α,β,γを経路vbに出力さ
せる。そして乗加算器660〜680で以下に示す補間
演算である、マトリクス演算を行う。
## EQU00006 ## V2 '= V2.M1 V3' = V3.M1 When the calculation of the vertex data for the third interpolation is completed and the storage area of the temporary buffer 648 is completely filled, the multiplexer 650 is operated to operate the route mc. Temporary
The contents of buffer 4648, which is a buffer, are output. At the same time, the interpolation value selector 690 is operated to output the interpolation values α, β, γ from the interpolation value register 700 to the route vb. Then, the multiplication / adders 660 to 680 perform matrix calculation, which is the following interpolation calculation.

【数7】V’=αV1’+βV2’+γV3’ この座標変換を含めた補間演算された結果である、補間
結果頂点V’が経路vcに出力される。以降同様に[数
5]〜[数7]の演算を繰り返し、記憶されている数の
分の演算を繰り返したら、次のヘッダの解析を行う。本
実施例で用いている図5(b)のベクトル・データの場
合、[数5]〜[数7]の演算を3回繰り返したあと、
次の11ワード目のヘッダを解析する。
## EQU00007 ## V '=. Alpha.V1' +. Beta.V2 '+. Gamma.V3' The interpolation result vertex V ', which is the result of the interpolation calculation including this coordinate transformation, is output to the route vc. After that, the operations of [Equation 5] to [Equation 7] are repeated in the same manner, and after the operation for the stored number is repeated, the next header is analyzed. In the case of the vector data of FIG. 5B used in this embodiment, after the operations of [Equation 5] to [Equation 7] are repeated three times,
The next 11th word header is analyzed.

【0030】次に図5のベクトル・データのようなベク
トル・データを用いて、座標変換等の演算に用いるマト
リクスを補間データごとに切替える場合の、図6の高速
補間演算器600の動作について説明する。3点の補間
用頂点による補間演算では、図5のデータの説明のとこ
ろでも述べたように、ヘッダで指定される演算に使用す
るマトリクスが第1頂点群に対するマトリクスとして使
用される。つまりマトリクス番号がnの場合、nが第1
頂点群にマトリクスとして使用され、さらにn+1、n
+2が第2、第3頂点群に対するマトリクスとして演算
に使用される。よって、図5の例ではヘッダで「演算に
使用するマトリクス」を1に指定しているので、第1頂
点群にはマトリクス番号1に格納してあるM1、第2頂
点群にはマトリクス番号2に格納してあるM2、第3頂
点群にはマトリクス番号3に格納してあるM3が座標変
換等のマトリクスとして用いられる。基本的な動作は前
述した、座標変換等の演算に用いるマトリクスを1種類
しか使用しない場合と同様であるが、各頂点群ごとに別
々のマトリクスを使用するので1回の補間演算で3つの
マトリクスを使用しなくてはならない。この補間演算で
は、使用するマトリクスをあらかじめバッファに格納す
るため、4つあるバッファのうち3つが使用される。さ
らに補間演算のためにバッファの1つをテンポラリ・バ
ッファとして使用するので、全てのバッファを演算に使
用している。
Next, the operation of the high-speed interpolation calculator 600 shown in FIG. 6 when the matrix used for calculation such as coordinate conversion is switched for each interpolation data using vector data such as the vector data shown in FIG. To do. In the interpolation calculation using the three vertexes for interpolation, the matrix used for the calculation specified by the header is used as the matrix for the first vertex group, as described in the description of the data in FIG. That is, when the matrix number is n, n is the first
Used as a matrix for a group of vertices, and n + 1, n
+2 is used in the calculation as a matrix for the second and third vertex groups. Therefore, in the example of FIG. 5, "matrix used for calculation" is designated as 1 in the header, so M1 stored in the matrix number 1 for the first vertex group and matrix number 2 for the second vertex group. 2 and M3 stored in the matrix number 3 for the third vertex group are used as a matrix for coordinate conversion and the like. The basic operation is the same as the case where only one type of matrix used for the calculation such as the coordinate conversion is used as described above, but since a separate matrix is used for each vertex group, three matrices can be obtained by one interpolation calculation. Must be used. In this interpolation calculation, since the matrix to be used is stored in the buffer in advance, three of the four buffers are used. Further, since one of the buffers is used as a temporary buffer for interpolation calculation, all buffers are used for calculation.

【0031】上述の被補間頂点群である、第1〜第3頂
点群の1頂点の座標ベクトルをV1〜V3、これらの被
補間頂点群の座標変換後の各頂点の座標ベクトルをV
1’〜V3’、補間値をα,β,γとして以下のマトリ
クス演算を行い、座標変換を含めた補間演算された補間
結果頂点V’を求めることができる。
The coordinate vectors of one vertex of the first to third vertex groups, which are the above-mentioned interpolated vertex groups, are V1 to V3, and the coordinate vector of each vertex after the coordinate conversion of these interpolated vertex groups is V.
1'-V3 'and the interpolation values α, β, γ are used to perform the following matrix calculation, and the interpolation result vertex V'which has been subjected to the interpolation calculation including the coordinate conversion can be obtained.

【数8】 V1’=V1・M1 V2’=V2・M2 V3’=V3・M3 V’=αV1’+βV2’+γV3’[Equation 8] V1 '= V1 · M1 V2 '= V2 · M2 V3 '= V3 · M3 V '= αV1' + βV2 '+ γV3'

【0032】図10は頂点群で構成されている2つの節
と指定した関節部分にだけ補間演算を施す場合の関節構
造の頂点群とそのベクトル・データである。このような
通常の関節演算との混在を、ベクトル・データ内のヘッ
ダに埋め込まれている補間演算のON/OFFフラグの
操作により、いくつかの節で構成されるような関節構造
の物体の指定した間接部分にだけ補間演算を施すような
ことができる。図10(a)は、頂点a,b,cを節
1、頂点d,e,fを補間用頂点群、頂点g,h,iを
節2とした関節構造を持つ頂点群と、頂点d,e,fの
3点の補間演算により補間演算された頂点mを示してい
る。そして、頂点mを関節とした節1と節2の関節構造
となっており、ワールド座標系の原点と節1との関係を
M1,節1と頂点mとの関係をM2、頂点mと節2の関
係をM3のローカル・マトリクスで定めている。図10
(b)は、図10(a)の頂点群をベクトル・データと
して作成したものである。1ワード目は節1のヘッダ1
であり、5ワード目は補間演算用頂点群のヘッダ2、9
ワード目は節2のヘッダ3であり、その他のワードは節
を構成する頂点および補間用頂点の座標データである。
各ヘッダにはその節および補間用頂点群が演算に使用す
るマトリクス番号およびそのヘッダが影響するデータ数
が記されているとともに、ヘッダ2のみ補間演算を行う
ことが示されている。このとき、あらかじめ[数1]と
同様な計算によってローカル・マトリクスM1,M2,
M3をワールド・マトリクスM1’,M2’,M3’に
変換しておき、それらをマトリクス格納領域であるメモ
リ630上のマトリクス番号l,m,nのそれぞれの場
所に格納しておいてある。
FIG. 10 shows a vertex group of a joint structure and its vector data when an interpolation operation is performed only on two joints formed by the vertex group and a designated joint portion. Such a mixture with ordinary joint calculation is designated by the operation of the ON / OFF flag of the interpolation calculation embedded in the header in the vector data to specify an object having a joint structure composed of several sections. Interpolation calculation can be performed only on the indirect portion. FIG. 10A shows a vertex group having a joint structure in which vertices a, b, and c are nodes 1, vertexes d, e, and f are interpolation vertices, and vertices g, h, and i are nodes 2, and vertex d. , E, and f, the vertex m interpolated is shown. Then, the joint structure of the nodes 1 and 2 with the vertex m as a joint is provided, and the relationship between the origin of the world coordinate system and the node 1 is M1, the relationship between the node 1 and the vertex m is M2, and the node m is the node. The relationship of 2 is defined by the local matrix of M3. Figure 10
10B shows the vertex group of FIG. 10A created as vector data. The first word is header 1 of section 1
And the fifth word is the header 2 and 9 of the vertex group for interpolation calculation.
The word th is the header 3 of the section 2, and the other words are the coordinate data of the vertices and the interpolation vertices that form the section.
In each header, the node number and the matrix number used by the interpolation vertex group for calculation and the number of data affected by the header are described, and it is shown that only the header 2 is subjected to interpolation calculation. At this time, the local matrices M1, M2, and
M3 is converted into world matrices M1 ', M2', M3 ', and these are stored in respective locations of matrix numbers l, m, n on the memory 630 which is a matrix storage area.

【0033】なお、上述では、ヘッダで補間演算を行う
かどうかを指定したが、例えば演算命令等により、外部
からマトリクス演算器の演算動作を指定して、補間演算
を実行させてもよい。この場合は、図10で示したよう
に、マトリクス演算のみとマトリクス演算および補間演
算とを1つのデータとして扱うことはできない。また、
補間演算の動作の指定(使用マトリクス数や補間演算の
データ数)を演算命令の発行前に演算器に対して設定す
ることで行ったが、この演算器の動作の指定をヘッダで
行ってもよい。この場合、ヘッダ解析/演算器コントロ
ーラ620は、このヘッダでの設定情報により、演算器
の動作を制御する。このように、関節構造の物体を表現
した際、特定の関節部分に補間演算を施すような指定を
することができ、補間演算した関節部をゴムのように滑
らかに曲げるなどの表現が容易に行える。このために、
ゲーム等の映像表現に幅が広がる。
In the above description, whether or not the interpolation calculation is performed is specified by the header, but the calculation operation of the matrix calculation unit may be externally specified by an operation command or the like to execute the interpolation calculation. In this case, as shown in FIG. 10, it is not possible to handle only the matrix calculation and the matrix calculation and the interpolation calculation as one data. Also,
Although the operation specification of the interpolation calculation (the number of matrices used and the number of data of the interpolation calculation) was set to the arithmetic unit before issuing the operation instruction, even if the operation specification of this arithmetic unit is specified in the header. Good. In this case, the header analysis / operation unit controller 620 controls the operation of the operation unit according to the setting information in this header. In this way, when an object with a joint structure is expressed, it is possible to specify that a specific joint part should be subjected to interpolation calculation, and it is easy to express such that the joint part after interpolation calculation is bent smoothly like rubber. You can do it. For this,
The range of image expression for games and the like expands.

【0034】[0034]

【発明の効果】本発明により、ビデオゲームに用いる3
次元空間のシミュレーション等において、マトリクス演
算と、補間演算とを1つの演算器を用いて行うことでき
る。
According to the present invention, it is used in a video game.
In a simulation of a dimensional space or the like, the matrix calculation and the interpolation calculation can be performed using one calculator.

【図面の簡単な説明】[Brief description of drawings]

【図1】 被補間頂点群を用いて補間演算した結果を示
した図である。
FIG. 1 is a diagram showing a result of an interpolation calculation using a group of interpolated vertices.

【図2】 本発明の実施形態の1つである、ヘッダと頂
点データを合わせたベクトル・データである。
FIG. 2 is vector data in which a header and vertex data are combined, which is one of the embodiments of the present invention.

【図3】 本発明の実施形態の1つである、座標変換や
補間演算に関する技術を示した図である。
FIG. 3 is a diagram showing a technique relating to coordinate conversion and interpolation calculation, which is one of the embodiments of the present invention.

【図4】 1種類のマトリクスを使用する補間演算の頂
点群とそのベクトル・データである。
FIG. 4 shows a group of vertices for interpolation calculation using one type of matrix and vector data thereof.

【図5】 個別のマトリクスを使用する補間演算の頂点
群とそのベクトル・データである。
FIG. 5 shows a group of vertices for interpolation calculation using a separate matrix and vector data thereof.

【図6】 本発明の一例である、高速補間演算器を示し
たブロック図である。
FIG. 6 is a block diagram showing a high-speed interpolation calculator, which is an example of the present invention.

【図7】 高速補間演算器の補間値レジスタを示したブ
ロック図である。
FIG. 7 is a block diagram showing an interpolation value register of a high speed interpolation calculator.

【図8】 補間演算する際の乗加算器とテンポラリバッ
ファの動作を示した図である。
FIG. 8 is a diagram showing operations of a multiplier / adder and a temporary buffer when performing interpolation calculation.

【図9】 補間演算する際の乗加算器とテンポラリバッ
ファの動作を示した図である。
FIG. 9 is a diagram showing operations of a multiplier / adder and a temporary buffer when performing interpolation calculation.

【図10】 2つの節と指定した関節部分にだけ補間演
算を施した構成である関節構造の頂点群とそのベクトル
・データである。
FIG. 10 shows a group of vertices of a joint structure and vector data thereof, which is a configuration in which interpolation calculation is performed only on two joints and designated joint portions.

【符号の説明】[Explanation of symbols]

10 被補間頂点群A 20 被補間頂点群B 30 補間結果頂点群 300 演算器 310 メモリ 350 ベクトル・データ解析・マトリクス
選択器 370 マトリクス演算器 380 補間値格納領域 390 マトリクス演算結果格納領域 600 高速補間演算器 610 ヘッダ/データ分別器 620 ヘッダ解析/演算器コントローラ 630 メモリ 641,643,645,647 MtoB
マルチプレクサ 642 バッファ1 644 バッファ2 646 バッファ3 648 バッファ4 649a〜649d マトリクス演算結果格納領域 650 マルチプレクサ 660,670,680 乗加算器 682,684,686 乗算器 688 加算器 690 補間値セレクタ 700 補間値レジスタ 710 補間値レジスタ・コントローラ 720 補間値格納インターフェース 731〜739 レジスタ 740 nto1マルチプレクサ
10 Interpolated vertex group A 20 Interpolated vertex group B 30 Interpolation result vertex group 300 Operator 310 Memory 350 Vector / data analysis / matrix selector 370 Matrix operator 380 Interpolated value storage area 390 Matrix operation result storage area 600 High-speed interpolation operation Device 610 Header / Data sorter 620 Header analysis / arithmetic unit controller 630 Memory 641, 643, 645, 647 MtoB
Multiplexer 642 Buffer 1 644 Buffer 2 646 Buffer 3 648 Buffer 4 649a to 649d Matrix operation result storage area 650 Multiplexer 660, 670, 680 Multiplier adder 682, 684, 686 Multiplier 688 Adder 690 Interpolation value selector 700 Interpolation value register 710 Interpolation value register / controller 720 Interpolation value storage interface 731 to 739 register 740 nto1 multiplexer

フロントページの続き Fターム(参考) 2C001 BA03 BC05 CB01 CB02 CB03 CC01 5B056 AA02 BB31 BB52 FF01 FF05 HH03 5B080 DA06 FA16 Continued front page    F-term (reference) 2C001 BA03 BC05 CB01 CB02 CB03                       CC01                 5B056 AA02 BB31 BB52 FF01 FF05                       HH03                 5B080 DA06 FA16

Claims (6)

【特許請求の範囲】[Claims] 【請求項1】 マトリクスを指定するヘッダと、マトリ
クス演算されるデータとの組み合わせで構成されるデー
タ列を入力して、補間演算を含めたマトリクス演算を行
う高速補間演算器であって、 マトリクス演算に用いる複数のマトリクスを記憶してい
るマトリクス記憶部と、 補間演算に用いる補間率を記憶している補間率記憶部
と、 入力された前記データ列から前記ヘッダとデータとを識
別し、前記ヘッダにより前記マトリクス記憶部に記憶さ
れているマトリクスを選択し、補間演算の場合は補間率
とデータを選択して出力するデータ解析/マトリクス選
択部と、 マトリクス演算を行うマトリクス演算器と、 前記の演算結果を一時記憶しておく、マトリクス演算結
果記憶部とを備え、 マトリクス演算のみを行う場合は、前記マトリクス演算
器は、選択されたマトリクスとデータとのマトリクス演
算を行い、 補間演算を行う場合は、前記マトリクス演算器は、選択
されたマトリクスとデータとのマトリクス演算をおこな
った結果を、前記マトリクス演算結果記憶部に格納し、
前記マトリクス演算結果記憶部に一時記憶した、前記の
演算結果と前記補間率記憶部に記憶している補間率とを
入力して、補間演算を行うことを特徴する高速補間演算
器。
1. A high-speed interpolation calculator for performing a matrix calculation including an interpolation calculation by inputting a data string composed of a header designating a matrix and data to be matrix-calculated. A matrix storage unit that stores a plurality of matrices used for the interpolation, an interpolation ratio storage unit that stores the interpolation ratio used for the interpolation calculation, and the header and the data are identified from the input data string, and the header Selects a matrix stored in the matrix storage unit, and in the case of interpolation calculation, selects and outputs an interpolation rate and data, a data analysis / matrix selection unit, a matrix calculation unit for performing matrix calculation, and the calculation described above. A matrix calculation result storage unit for temporarily storing results is provided. The calculator performs a matrix operation on the selected matrix and the data, and when performing the interpolation operation, the matrix operator outputs the result of the matrix operation on the selected matrix and the data to the matrix operation result. Stored in the memory,
A high-speed interpolation calculator, which performs interpolation calculation by inputting the calculation result and the interpolation rate stored in the interpolation rate storage section, which are temporarily stored in the matrix calculation result storage section.
【請求項2】 請求項1に記載の高速補間演算器におい
て、 前記補間演算の実行の指定は、前記ヘッダ内のデータに
より行い、前記データ解析/マトリクス選択部により検
出されて、補間演算を行うことを特徴とする高速補間演
算器。
2. The high-speed interpolation calculator according to claim 1, wherein the execution of the interpolation calculation is designated by the data in the header, and the interpolation calculation is performed by being detected by the data analysis / matrix selection unit. A high-speed interpolation calculator characterized in that
【請求項3】 請求項1または2に記載の高速補間演算
器において、 さらに、前記マトリクス記憶部と前記マトリクス演算器
との間にバッファを設け、 前記バッファを、マトリクスのキャッシュおよび/また
は前記マトリクス演算結果記憶部として使用することを
特徴とする高速補間演算器。
3. The high-speed interpolation arithmetic unit according to claim 1, further comprising a buffer provided between the matrix storage unit and the matrix arithmetic unit, the buffer being a matrix cache and / or the matrix. A high-speed interpolation calculator which is used as a calculation result storage unit.
【請求項4】 請求項1〜3のいずれかに記載の高速補
間演算器において、 前記補間演算は、補間に用いるデータごとに異なるマト
リクスを指定できることを特徴とする高速補間演算器。
4. The high-speed interpolation calculator according to claim 1, wherein the interpolation calculation can specify a different matrix for each data used for interpolation.
【請求項5】 請求項1〜4のいずれかに記載の高速補
間演算器において、 前記補間演算は2つのデータまたは3つのデータを用い
て行うことを特徴とする高速補間演算器。
5. The high-speed interpolation calculator according to claim 1, wherein the interpolation calculation is performed using two data or three data.
【請求項6】 請求項1〜5のいずれかに記載の高速補
間演算器において、 前記記憶されている補間率は、複数記憶でき、各補間率
の使用回数を指定することができることを特徴とする高
速補間演算器。
6. The high-speed interpolation calculator according to claim 1, wherein a plurality of the stored interpolation rates can be stored, and the number of times of use of each interpolation rate can be designated. A high-speed interpolation calculator.
JP2001292434A 2001-09-25 2001-09-25 High-speed interpolation computing element Pending JP2003099419A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001292434A JP2003099419A (en) 2001-09-25 2001-09-25 High-speed interpolation computing element

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001292434A JP2003099419A (en) 2001-09-25 2001-09-25 High-speed interpolation computing element

Publications (1)

Publication Number Publication Date
JP2003099419A true JP2003099419A (en) 2003-04-04

Family

ID=19114396

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001292434A Pending JP2003099419A (en) 2001-09-25 2001-09-25 High-speed interpolation computing element

Country Status (1)

Country Link
JP (1) JP2003099419A (en)

Similar Documents

Publication Publication Date Title
US5317682A (en) Parametric curve evaluation method and apparatus for a computer graphics display system
WO2000002165A1 (en) Method for generating polygon data and image display using the same
JP2618951B2 (en) 3D graphics processor
JPH10275460A (en) Memory device and picture processing device using this
US5537520A (en) Method and system for displaying a three dimensional object
JPH08329261A (en) Parameteric curve generator
US7113189B2 (en) Recording medium storing 3D model deformation program, 3D model deformation program, 3D model deformation method and video game device
JPH1069547A (en) Volume rendering device and method suitable for the same
EP0670560B1 (en) A method for sorting polygon data, a video game machine employing the same and acomputer program performing the method
JP2003099419A (en) High-speed interpolation computing element
JP3066596B2 (en) Address translation device
US6476818B1 (en) Storage circuit control device and graphic computation device
KR100313846B1 (en) Method and device for calculating lod in bilinear mips mapping
JP2003077005A (en) High speed matrix calculator
JP4479957B2 (en) Curved surface subdivision device
JPH0766451B2 (en) Computer graphic equipment
JP3066060B2 (en) Polygonal approximation method for Besee curve section
JP3039387B2 (en) Apparatus for calculating intersection of B-spline curve and straight line in three-dimensional CAD
JP3583443B2 (en) Arithmetic device and arithmetic method
JPH11328438A (en) Method and device for high-efficiency floating-point z buffering
JP3229384B2 (en) Vector shape editing device
JP2656753B2 (en) Image data processing apparatus and system using the same
JP3511301B2 (en) Surface data generation method
JPH0580017B2 (en)
JP2602492B2 (en) Surface display method