JP4025796B2 - Image processing method and apparatus - Google Patents

Image processing method and apparatus Download PDF

Info

Publication number
JP4025796B2
JP4025796B2 JP2005237518A JP2005237518A JP4025796B2 JP 4025796 B2 JP4025796 B2 JP 4025796B2 JP 2005237518 A JP2005237518 A JP 2005237518A JP 2005237518 A JP2005237518 A JP 2005237518A JP 4025796 B2 JP4025796 B2 JP 4025796B2
Authority
JP
Japan
Prior art keywords
data
block
procedure
sub
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005237518A
Other languages
Japanese (ja)
Other versions
JP2006079601A (en
Inventor
豊史 岡田
章男 大場
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Priority to JP2005237518A priority Critical patent/JP4025796B2/en
Publication of JP2006079601A publication Critical patent/JP2006079601A/en
Application granted granted Critical
Publication of JP4025796B2 publication Critical patent/JP4025796B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Image Generation (AREA)

Description

本発明は画像処理方法および装置に関し、特に、データフォーマットの自由度を向上し、もって迅速な処理ができるようにした、画像処理方法および装置に関する。   The present invention relates to an image processing method and apparatus, and more particularly, to an image processing method and apparatus capable of improving the degree of freedom of a data format and enabling quick processing.

画像処理装置としてのゲーム機においては、様々な画像をディスプレイ上に表示し、使用者のボタンやスティックなどの操作に対応して、ディスプレイ上の表示を様々な状態に変化させ、ゲームを楽しむことができるようになされている。   In a game machine as an image processing device, various images are displayed on the display, and the display on the display is changed to various states corresponding to the operation of the user's buttons and sticks to enjoy the game. It is made to be able to.

このような従来のゲーム機においては、処理すべきデータのフォーマットが、予め規定されている。また、そのデータに対する処理も、規定されたデータフォーマットに対応して予め規定されている。   In such a conventional game machine, the format of data to be processed is defined in advance. Also, the processing for the data is defined in advance corresponding to the specified data format.

従って、従来のゲーム機においては、例えば任天堂のファミリーコンピュータ(商標)、ソニーのプレイステーション(商標)、セガのセガサターン(商標)といった各種のゲーム機において、実質的に同一のゲームを設計する場合でも、それぞれ専用の設計をしなければならず、開発費用が高くなる課題があった。   Therefore, even in the case of designing a substantially identical game in various game machines such as Nintendo Family Computer (trademark), Sony PlayStation (trademark), Sega Sega Saturn (trademark), etc. Each had to be designed exclusively, and there was a problem that the development cost was high.

また、同一の機種のゲーム機においても、他のゲームソフトにおいて開発されたデータやプログラムを利用して、他のゲームを開発するようなことが困難である課題があった。
本発明はこのような状況に鑑みてなされたものであり、データのフォーマットの自由度を向上し、もって、より低コストのソフトウエアの開発を可能にするものである。
Further, even in the same type of game machine, there is a problem that it is difficult to develop another game using data and programs developed in other game software.
The present invention has been made in view of such a situation, and improves the degree of freedom of data format, thereby enabling the development of lower-cost software.

請求項1に記載の画像処理方法は、手続ブロックとデータブロックとを設け、手続ブロックとデータブロックのそれぞれを、1つ以上のサブブロックで構成し、サブブロックに、ヘッダ部と、データ部とを設け、ヘッダ部に、手続ブロックとデータブロックの識別符号を配置し、データブロックのデータ部に画像データを配置するとともに、手続ブロックのデータ部に手続を配置し、データブロックのデータ部の画像データを、手続ブロックのデータ部の手続に対応して処理することを特徴とする。   The image processing method according to claim 1 includes a procedure block and a data block, each of the procedure block and the data block is composed of one or more sub-blocks, and each of the sub-blocks includes a header portion, a data portion, The procedure block and the identification code of the data block are arranged in the header part, the image data is arranged in the data part of the data block, the procedure is arranged in the data part of the procedure block, and the image of the data part of the data block is arranged. The data is processed corresponding to the procedure of the data part of the procedure block.

請求項3に記載の画像処理装置は、手続ブロックまたはデータブロックのいずれであるかを、手続ブロックまたはデータブロックを構成するサブブロックのヘッダから判定する判定手段と、データブロックに配置されている画像データを、手続ブロックに配置されている手続に対応して処理する処理手段とを備えることを特徴とする。   The image processing apparatus according to claim 3, a determination unit that determines whether the block is a procedure block or a data block from a header of a sub-block constituting the procedure block or the data block, and an image arranged in the data block And processing means for processing the data corresponding to the procedure arranged in the procedure block.

請求項4に記載の記録媒体は、手続ブロックとデータブロックのそれぞれが、1つ以上のサブブロックで構成され、サブブロックに、ヘッダ部と、データ部とが設けられ、ヘッダ部に、手続ブロックとデータブロックの識別符号が配置され、データブロックのデータ部に画像データが配置されているとともに、手続ブロックのデータ部に手続が配置されていることを特徴とする。   The recording medium according to claim 4, wherein each of the procedure block and the data block is composed of one or more subblocks, the subblock is provided with a header portion and a data portion, and the header portion is provided with the procedure block. And an identification code of the data block, image data is arranged in the data portion of the data block, and a procedure is arranged in the data portion of the procedure block.

請求項5に記載の画像処理方法は、画像をポリゴンに分割し、ポリゴンの1つの頂点を基準頂点として絶対座標で表し、ポリゴンの他の頂点、およびポリゴンに連結されている他のポリゴンの頂点の座標を、基準頂点または他の頂点に対する相対座標で表すことを特徴とする。   The image processing method according to claim 5, wherein the image is divided into polygons, expressed in absolute coordinates with one vertex of the polygon as a reference vertex, the other vertex of the polygon, and the vertex of another polygon connected to the polygon The coordinates are expressed by relative coordinates with respect to the reference vertex or other vertices.

請求項6に記載の画像処理装置は、画像をポリゴンに分割する手段と、ポリゴンの1つの頂点を基準頂点として絶対座標で表し、ポリゴンの他の頂点、およびポリゴンに連結されている他のポリゴンの頂点の座標を、基準頂点または他の頂点に対する相対座標で表す手段とを備えることを特徴とする。   7. The image processing apparatus according to claim 6, wherein the image is divided into means for dividing the image into polygons, one vertex of the polygon is expressed as an absolute coordinate, the other vertex of the polygon, and another polygon connected to the polygon. Means for expressing the coordinates of the vertices as relative coordinates with respect to the reference vertex or other vertices.

請求項7に記載の記録媒体は、ポリゴンの頂点のうちの1つの基準頂点の座標が、絶対座標で表され、ポリゴンの他の頂点、およびポリゴンに連結されている他のポリゴンの頂点の座標が、基準頂点または他の頂点に対する相対座標で表されていることを特徴とする。   The recording medium according to claim 7, wherein the coordinates of one reference vertex among the vertices of the polygon are expressed in absolute coordinates, and the coordinates of the other vertices of the polygon and the vertices of another polygon connected to the polygon Is expressed in relative coordinates with respect to the reference vertex or other vertices.

請求項8に記載の画像処理方法は、手続を実行可能な実行部を少なくとも2個設け、一方の実行部の処理状態に対応して手続を変更し、他方の実行部による処理状態を制御することを特徴とする。   The image processing method according to claim 8, wherein at least two execution units capable of executing a procedure are provided, the procedure is changed in accordance with the processing state of one execution unit, and the processing state by the other execution unit is controlled. It is characterized by that.

請求項9に記載の画像処理装置は、手続を実行する第1の手段と、手続を実行する第2の手段と、第1の手段の処理状態に対応して手続を変更し、第2の手段による処理状態を制御する手段とを備えることを特徴とする。   The image processing apparatus according to claim 9 changes the procedure in accordance with the first means for executing the procedure, the second means for executing the procedure, and the processing state of the first means. Means for controlling the processing state of the means.

請求項1に記載の画像処理方法、請求項3に記載の画像処理装置、および請求項4に記載の記録媒体においては、手続ブロックとデータブロックのそれぞれは、1つ以上のサブブロックで構成され、サブブロックには、ヘッダ部とデータ部とが設けられ、ヘッダ部には、手続ブロックとデータブロックの識別符号が配置され、データブロックのデータ部には画像データが配置され、手続ブロックのデータ部には手続が配置される。   In the image processing method according to claim 1, the image processing apparatus according to claim 3, and the recording medium according to claim 4, each of the procedure block and the data block includes one or more sub-blocks. The sub-block is provided with a header part and a data part, the procedure block and the identification code of the data block are arranged in the header part, the image data is arranged in the data part of the data block, and the data of the procedure block Procedures are placed in the department.

請求項5に記載の画像処理方法、請求項6に記載の画像処理装置、および請求項7に記載の記録媒体においては、ポリゴンの1つの頂点が基準頂点とされ、絶対座標で表される。そのポリゴンの他の頂点、およびそのポリゴンに連結されている他のポリゴンの頂点の座標は、基準頂点または他の頂点に対する相対座標で表される。   In the image processing method according to claim 5, the image processing apparatus according to claim 6, and the recording medium according to claim 7, one vertex of the polygon is set as a reference vertex and is expressed in absolute coordinates. The coordinates of the other vertices of the polygon and the vertices of other polygons connected to the polygon are represented by coordinates relative to the reference vertex or the other vertices.

請求項8に記載の画像処理方法、および請求項9に記載の画像処理装置においては、手続を実行可能な実行部が少なくとも2個設けられ、一方の処理状態に対応して手続が変更され、他方の処理状態が制御される。   In the image processing method according to claim 8 and the image processing apparatus according to claim 9, at least two execution units capable of executing a procedure are provided, and the procedure is changed corresponding to one processing state, The other processing state is controlled.

以上の如く請求項1に記載の画像処理方法および請求項3に記載の画像処理装置よれば、データブロックのデータ部のデータを手続ブロックのデータ部の手続に対応して処理するようにしたので、自由度が向上し、ソフトウエアの低コストの開発が可能となり、またデータの転送量を少なくし、迅速な画像処理が可能となる。   As described above, according to the image processing method of the first aspect and the image processing apparatus of the third aspect, the data of the data part of the data block is processed in accordance with the procedure of the data part of the procedure block. The degree of freedom is improved, software can be developed at a low cost, the amount of data transfer is reduced, and rapid image processing is possible.

請求項4に記載の記録媒体によれば、画像データを手続ブロックとデータブロックとに区分して記録するようにしたので、より変化に富んだ画像処理が可能なソフトウエアを提供することができる。   According to the recording medium of the fourth aspect, since the image data is divided and recorded into the procedure block and the data block, it is possible to provide software capable of more varied image processing. .

請求項5に記載の画像処理方法、請求項6に記載の画像処理装置および請求項7に記載の記録媒体によれば、ポリゴンの頂点のうちの1つの基準頂点の座標を絶対座標で表し、その他の頂点を、基準頂点または他の頂点に対する相対座標で表すようにしたので、ポリゴンを少ないデータ量で表現することが可能になる。従って、迅速な処理が可能となる。   According to the image processing method according to claim 5, the image processing device according to claim 6, and the recording medium according to claim 7, the coordinates of one reference vertex of the polygon vertices are expressed in absolute coordinates, Since the other vertices are expressed by relative coordinates with respect to the reference vertex or the other vertices, the polygon can be expressed with a small amount of data. Accordingly, rapid processing is possible.

請求項8に記載の画像処理方法および請求項9に記載の画像処理装置によれば、一方の実行部の処理状態に対応して手続を変更し、他方の実行部による処理状態を制御するようにしたので、効率的に画像データを処理することが可能となる。   According to the image processing method of claim 8 and the image processing apparatus of claim 9, the procedure is changed in accordance with the processing state of one execution unit, and the processing state by the other execution unit is controlled. Therefore, the image data can be processed efficiently.

図1乃至図3は、本発明の画像処理方法が適用されるビデオゲーム機の構成例を表している。これらの図に示すように、ビデオゲーム機1は、ゲーム機本体2と、ゲーム機本体2に対してケーブル27を介して接続されている操作装置17とにより、基本的に構成されている。ゲーム機本体2の上面の中央部には、ディスク装着部3が設けられ、その内部に図4に示すようなCD−ROM51が装着されるようになされている。ディスク装着部3の左側には、装置の電源をオンまたはオフするとき操作される電源スイッチ5と、ゲームを一旦リセットするとき操作されるリセットスイッチ4が設けられている。また、ディスク装着部3の右側には、ディスク装着部3に対してCD−ROM51を着脱するとき操作されるディスク操作スイッチ6が設けられている。   1 to 3 show a configuration example of a video game machine to which the image processing method of the present invention is applied. As shown in these drawings, the video game machine 1 is basically composed of a game machine body 2 and an operation device 17 connected to the game machine body 2 via a cable 27. A disc mounting portion 3 is provided at the center of the upper surface of the game machine main body 2, and a CD-ROM 51 as shown in FIG. 4 is mounted therein. On the left side of the disk mounting portion 3, there are provided a power switch 5 that is operated when the power of the apparatus is turned on or off, and a reset switch 4 that is operated when the game is temporarily reset. Further, on the right side of the disk mounting unit 3, a disk operation switch 6 is provided which is operated when the CD-ROM 51 is attached to or detached from the disk mounting unit 3.

ゲーム機本体2の正面には、接続部7Aと7Bが設けられている。これらの接続部7Aまたは7Bには、操作装置17に対してケーブル27を介して接続されている接続端子部26と、メモリカードなどよりなる記録装置38を、それぞれ接続することができるようになされている。すなわち、このゲーム機本体2には、2台の操作装置17を接続することができるようになされている。   Connection portions 7A and 7B are provided on the front surface of the game machine main body 2. These connection portions 7A or 7B can be connected to a connection terminal portion 26 connected to the operation device 17 via a cable 27 and a recording device 38 such as a memory card. ing. That is, two operation devices 17 can be connected to the game machine body 2.

図2には、右側の接続部7Bに接続端子部26が接続され、左側の接続部7Aには接続端子部26と記録装置38のいずれもが装着されていない状態が示されている。同図に示すように、記録装置38を装着する記録挿入部8には、シャッタ9が設けられており、記録装置38をゲーム機本体2に対して装着するとき、記録装置38の先端で、このシャッタ9を押し込むようにして、装着が行われる。   FIG. 2 shows a state in which the connection terminal portion 26 is connected to the right connection portion 7B, and neither the connection terminal portion 26 nor the recording device 38 is attached to the left connection portion 7A. As shown in the figure, the recording insertion portion 8 to which the recording device 38 is attached is provided with a shutter 9, and when the recording device 38 is attached to the game machine body 2, at the tip of the recording device 38, The shutter 9 is pushed in to be mounted.

接続端子部26の把持部31Aと記録装置38の把持部42Aには、それぞれ凹凸のある形状(ギザギザ模様)にした滑り止め加工(例えばローレット加工)が施されている。接続端子部26と、記録装置38の長さLは、ほぼ同一の長さとされている。   The gripping portion 31A of the connection terminal portion 26 and the gripping portion 42A of the recording device 38 are each subjected to anti-slip processing (for example, knurling) having an uneven shape (a knurled pattern). The connection terminal portion 26 and the recording device 38 have substantially the same length L.

操作装置17には、左右の手で把持される支持部20,21が設けられ、支持部20,21の先端には、操作部24,25が設けられている。また、支持部20,21の上面には、操作部18,19が設けられている。操作部24,25は、左右の手の人差し指で操作され、操作部18,19は、左右の手の親指で、それぞれ操作されるようになされている。   The operation device 17 is provided with support portions 20 and 21 that are gripped by the left and right hands, and operation portions 24 and 25 are provided at the tips of the support portions 20 and 21. In addition, operation portions 18 and 19 are provided on the upper surfaces of the support portions 20 and 21. The operation units 24 and 25 are operated with the index fingers of the left and right hands, and the operation units 18 and 19 are operated with the thumbs of the left and right hands, respectively.

操作部18と19の間には、ゲーム中においてセレクト操作を行うとき操作されるセレクトスイッチ22と、ゲームを開始するとき操作されるスタートスイッチ23が設けられている。   Between the operation units 18 and 19, there are provided a select switch 22 that is operated when performing a select operation during the game, and a start switch 23 that is operated when starting the game.

図5は、ゲーム機本体2の内部の構成例を表している。CPU(Central Processing Unit)61は、メインバスを介して各種の処理を実行するようになされている。このCPU61は、GTE(Geometry Transfer Engine)62とPKE(Programable Packet Engine)63とを有している。GTE62は、例えば複数の演算を並列に実行する並列演算機能を備え、CPU61からの演算要求に対応して、座標変換、光源計算、行列あるいはベクトルなどの演算を高速に実行する。PKE63は、GTE62の演算結果に基づいて作成された描画命令やデータをパケット化またはアンパケット化する。   FIG. 5 shows an internal configuration example of the game machine body 2. A CPU (Central Processing Unit) 61 executes various processes via a main bus. The CPU 61 includes a GTE (Geometry Transfer Engine) 62 and a PKE (Programmable Packet Engine) 63. The GTE 62 has a parallel operation function for executing, for example, a plurality of operations in parallel, and executes operations such as coordinate conversion, light source calculation, matrix or vector at high speed in response to the operation request from the CPU 61. The PKE 63 packetizes or unpackets a drawing command and data created based on the calculation result of the GTE 62.

メインバスには、CPU61の他、RAM(Random Access Meomory)からなるメインメモリ64、DMAC(Direct Memory Access Controller)65、およびレンダリングプロセッサとしてのGPU(Graphic Processing Unit)が接続されている。   In addition to the CPU 61, a main memory 64 composed of a RAM (Random Access Memory), a DMAC (Direct Memory Access Controller) 65, and a GPU (Graphic Processing Unit) as a rendering processor are connected to the main bus.

メインメモリ64には、各種のプログラムやデータなどが適宜記憶される。DMAC65は、メインメモリ64上のデータを、メインバスを介してGPU66のローカルメモリ83(図6)に転送する動作を実行する。   The main memory 64 stores various programs and data as appropriate. The DMAC 65 performs an operation of transferring data on the main memory 64 to the local memory 83 (FIG. 6) of the GPU 66 via the main bus.

GPU66は、例えば図6に示すように、PKE81、演算部82、および描画部84により構成されている。PKE81はPKE63と実質的に同一の機能を有し、メインバスを介してCPU61またはDMAC65より入力されたパケット化されたプログラム(手順)とデータをアンパケット化して、演算部82のローカルメモリ83に直接書き込みを行う。演算部82は、ローカルメモリ83に書き込まれたアンパケット化されたプログラム(手順)に対応して、ローカルメモリ83上のデータを処理する。   For example, as shown in FIG. 6, the GPU 66 includes a PKE 81, a calculation unit 82, and a drawing unit 84. The PKE 81 has substantially the same function as the PKE 63, and unpackets the packetized program (procedure) and data input from the CPU 61 or the DMAC 65 via the main bus and stores them in the local memory 83 of the arithmetic unit 82. Write directly. The arithmetic unit 82 processes data on the local memory 83 in response to the unpacketized program (procedure) written in the local memory 83.

描画部84は、演算部82から供給された描画命令を解釈し、頂点の色データと奥行きを表すZ値からポリゴン(三角形や四角形などの基本的な単位図形)を構成する全ての画素の色とZ値を考慮し、フレームメモリ67に画素データを書き込む処理(レンダリング処理)を行う。描画部84は、演算部82のローカルメモリ83の特定の領域から、描画部84の処理とは非同期に、描画命令を取り出すことができるようになされている。   The drawing unit 84 interprets the drawing command supplied from the calculation unit 82, and the colors of all the pixels constituting the polygon (basic unit graphic such as a triangle or a quadrangle) from the vertex color data and the Z value representing the depth. In consideration of the Z value, the pixel data is written into the frame memory 67 (rendering process). The drawing unit 84 can extract a drawing command from a specific area of the local memory 83 of the calculation unit 82 asynchronously with the processing of the drawing unit 84.

ローカルメモリ83は複数のバンクで構成されており、PKE81は、演算部82が他の処理を実行している最中に、所定のバンクにデータを書き込むことが可能である。また、ローカルメモリ83においては、データのみ、データの一部のみ、プログラム一部のみなどを、可変長の複数領域に書き込むことができる。   The local memory 83 is composed of a plurality of banks, and the PKE 81 can write data to a predetermined bank while the calculation unit 82 is executing other processes. In the local memory 83, only data, only a part of the data, only a part of the program, and the like can be written in a plurality of variable length areas.

GPU66の描画部84は、フレームメモリ67に書き込んだ画素データを適宜読み出して、CRTC(Cathode Ray Tube Controler)68を介して、CRT81に出力する。   The drawing unit 84 of the GPU 66 appropriately reads out the pixel data written in the frame memory 67 and outputs it to the CRT 81 via a CRTC (Cathode Ray Tube Controller) 68.

メインバスより低速のサブバスにはCD−ROM51をドライブするCD−ROMドライブ70、操作装置17、これらを制御するサブCPU71、サブメモリ72が接続されている。バスコントローラ69は、メインバスとサブバスのスイッチング処理を行う。   A CD-ROM drive 70 that drives the CD-ROM 51, the operating device 17, a sub CPU 71 that controls these, and a sub memory 72 are connected to a sub-bus that is slower than the main bus. The bus controller 69 performs a switching process between the main bus and the sub bus.

次に、その基本的な動作について説明する。サブCPU71は、操作装置17の操作に対応して、CD−ROMドライブ70を制御し、CD−ROM51を再生させ、再生データをサブメモリ72に記憶させる。   Next, the basic operation will be described. The sub CPU 71 controls the CD-ROM drive 70 in response to the operation of the operating device 17, reproduces the CD-ROM 51, and stores the reproduction data in the sub memory 72.

DMAC65は、サブメモリ72に記憶されたデータを所定のタイミングで読み出し、バスコントローラ69とメインバスを介してメインメモリ64にDMA転送させる。   The DMAC 65 reads the data stored in the sub memory 72 at a predetermined timing, and causes the DMA transfer to the main memory 64 via the bus controller 69 and the main bus.

CPU61は、メインメモリ64のデータを読み出し、GTE62に供給し、GTE62の演算結果に基づいて、ポリゴンの組み合わせてとして、CRT81に表示すべき三次元モデルを定義する。そして、三次元画像を描画するための各ポリゴンに対応する描画命令を作成し、この描画命令をコマンドパケットとしてPKE63でパケット化して、GPU66に転送する。   The CPU 61 reads the data in the main memory 64, supplies it to the GTE 62, and defines a three-dimensional model to be displayed on the CRT 81 as a combination of polygons based on the calculation result of the GTE 62. Then, a drawing command corresponding to each polygon for drawing a three-dimensional image is created, and this drawing command is packetized by the PKE 63 as a command packet and transferred to the GPU 66.

GPU66においては、PKE81で、この描画命令をアンパケット化し、ローカルメモリ83に記憶する。演算部82は、このローカルメモリ83に記憶された描画命令を解釈し、ポリゴンの頂点から中間の頂点を補間生成するなどしてポリゴンを描画する命令を作成する。描画部84は、この描画命令に対応して、ポリゴンの頂点の色データと奥行きを示すZ値から、ポリゴンを構成する全ての画素の色とZ値を考慮して、画素データをフレームメモリ67に描画するレンダリング処理を実行する。   In the GPU 66, the drawing instruction is unpacketized by the PKE 81 and stored in the local memory 83. The calculation unit 82 interprets the drawing command stored in the local memory 83 and creates a command for drawing a polygon by interpolating and generating an intermediate vertex from the vertex of the polygon. In response to this drawing command, the drawing unit 84 considers the color and Z value of all the pixels constituting the polygon from the color data of the vertex of the polygon and the Z value indicating the depth, and stores the pixel data in the frame memory 67. Execute the rendering process to draw on.

描画部84はまた、フレームメモリ67に描画された画素データを読み出して、CRTC68を介してCRT81に出力し、表示させる。   The drawing unit 84 also reads out the pixel data drawn in the frame memory 67 and outputs it to the CRT 81 via the CRTC 68 for display.

図7は、本実施例におけるデータフォーマットの構成例を表している。このフォーマットは、図7に示すように、手続ブロック(Procedure Block)と、データブロック(Data Block)とにより構成されている。手続ブロックとデータブロックは、それぞれ図8に示すような1つ以上のサブブロックにより構成されている。   FIG. 7 shows a configuration example of a data format in the present embodiment. As shown in FIG. 7, this format is composed of a procedure block and a data block. Each of the procedure block and the data block is composed of one or more sub-blocks as shown in FIG.

図8に示すように、サブブロックはヘッダ部とデータ部とにより構成され、ヘッダ部には、サイズ(SIZE)、アトリビュート(ATTR)、およびアドレス(ADDR)が配置されている。サイズは、このサブブロックのデータ部(Data Area)の大きさを表しており、アトリビュートには、このサブブロックが手続ブロックのサブブロックであるのか、データブロックのサブブロックであるのかを表す識別符号が配置されている。また、アドレスは、ローカルメモリ83のアドレスを表しており、このサブブロックのデータは、ローカルメモリ83のそのアドレスの位置に書き込まれる。サイズの0は、データ部が省略されていることを表す。   As shown in FIG. 8, the sub-block includes a header part and a data part, and a size (SIZE), an attribute (ATTR), and an address (ADDR) are arranged in the header part. The size represents the size of the data area of this sub-block, and the attribute has an identification code indicating whether this sub-block is a sub-block of a procedure block or a sub-block of a data block Is arranged. The address represents the address of the local memory 83, and the data of this sub-block is written at the position of the address of the local memory 83. A size of 0 indicates that the data portion is omitted.

データブロックのデータ部に配置されているデータは、手続ブロックのデータ部に配置されている手続に従って処理される。従って、本実施例においては、ブロック単位で任意のデータフォーマットを規定し、そのデータに対して任意の処理を行うようにすることができる。CRT81に表示する三次元オブジェクト(三次元画像)は、様々な形状をしているため、その形状によって、より適切な(データ量を低減することが可能な)データフォーマットが存在する。本実施例においては、任意のデータフォーマットを採用することができるため、三次元オブジェクトの形状を、より少ないデータ量で表現することができる。   The data arranged in the data part of the data block is processed according to the procedure arranged in the data part of the procedure block. Therefore, in this embodiment, an arbitrary data format can be defined in units of blocks, and arbitrary processing can be performed on the data. Since the three-dimensional object (three-dimensional image) displayed on the CRT 81 has various shapes, there is a more appropriate data format (data amount can be reduced) depending on the shape. In this embodiment, an arbitrary data format can be adopted, so that the shape of the three-dimensional object can be expressed with a smaller amount of data.

図9と図10は、第1のデータフォーマットの例を表している。この実施例においては、図9に示すように、三角形よりなるポリゴンが1つの辺を介して相互に隣接している。すなわち、頂点(代表点)P0,P1,P2により1つのポリゴンが形成され、頂点(代表点)P1,P2,P3により、他の1つのポリゴンが形成され、頂点(代表点)P2,P3,P4により、さらに他の1つのポリゴンが形成されている。そして、この実施例においては、頂点P0がポリゴン(三角形)の基準頂点とされ、絶対座標で表され、他の頂点P1,P2,P3,P4は、相対座標で表される。 9 and 10 show examples of the first data format. In this embodiment, as shown in FIG. 9, polygons made of triangles are adjacent to each other via one side. That is, one polygon is formed by the vertices (representative points) P 0 , P 1 , P 2 , and another polygon is formed by the vertices (representative points) P 1 , P 2 , P 3. Point) Another polygon is formed by P 2 , P 3 and P 4 . In this embodiment, the vertex P 0 is the reference vertex of the polygon (triangle) and is expressed by absolute coordinates, and the other vertices P 1 , P 2 , P 3 , and P 4 are expressed by relative coordinates. .

すなわち、基準頂点P0の絶対座標が(X0,Y0,Z0)とされるとき、頂点P1は、頂点P0からのX,Y,Zの各座標軸方向の距離dx1,dy1,dz1により表現される(なお図9においては、説明の便宜上、dz1は省略されている。後述する図11と図13でも同様)。すなわち頂点P1の絶対座標を(X1,Y1,Z1)とするとき、次の式が成立する。 That is, when the absolute coordinates of the reference vertex P 0 is the (X0, Y0, Z0), the vertex P 1 is, X from the vertex P 0, Y, a distance in the directions of the axes of Z dx1, dy1, represented by dz1 In FIG. 9, dz1 is omitted for convenience of explanation. The same applies to FIGS. 11 and 13 described later. That is, when the absolute coordinate of the vertex P 1 is (X1, Y1, Z1), the following equation is established.

dx1=X1−X0
dy1=Y1−Y0
dz1=Z1−Z0
そして、頂点P2は、頂点P1からの相対座標(dx2,dy2,dz2)で表される。すなわち、頂点P2の絶対座標を(X2,Y2,Z2)とするとき、頂点P2の座標は次式で表される。
dx1 = X1-X0
dy1 = Y1-Y0
dz1 = Z1-Z0
The vertex P 2 is represented by relative coordinates (dx2, dy2, dz2) from the vertex P 1 . That is, when the absolute coordinate of the vertex P 2 is (X2, Y2, Z2), the coordinate of the vertex P 2 is expressed by the following equation.

dx2=X2−X1
dy2=Y2−Y1
dz2=Z2−Z1
同様に頂点P3は次式で示す相対座標(dx3,dy3,dz3)で表される。
dx2 = X2-X1
dy2 = Y2-Y1
dz2 = Z2-Z1
Similarly, the vertex P 3 is represented by relative coordinates (dx3, dy3, dz3) represented by the following expression.

dx3=X3−X2
dy3=Y3−Y2
dz3=Z3−Z2
従って、図9に示すポリゴンのデータは、図10に示すように、基準頂点の絶対座標(X0,Y0,Z0)と、他の頂点P1,P2,P3の相対座標(dx1,dy1,dz1),(dx2,dy2,dz2),(dx3,dy3,dz3),・・・により表される。
dx3 = X3-X2
dy3 = Y3-Y2
dz3 = Z3-Z2
Accordingly, the polygon data shown in FIG. 9 includes the absolute coordinates (X0, Y0, Z0) of the reference vertex and the relative coordinates (dx1, dy1) of the other vertices P 1 , P 2 , P 3 as shown in FIG. , Dz1), (dx2, dy2, dz2), (dx3, dy3, dz3),.

一方、図11においては、頂点P0を中心として、5つのポリゴンが放射状に配置されている。この場合のデータフォーマットは、例えば図12に示すように規定することができる。すなわち、頂点P0の絶対座標を(X0,Y0,Z0)とするとき、頂点P1の座標は頂点P0に対する相対座標(dx1,dy1,dz1)で表す。他の頂点P2乃至P5も同様に、頂点P0からの相対座標で表される。 On the other hand, in FIG. 11, five polygons are arranged radially with the vertex P 0 as the center. The data format in this case can be defined as shown in FIG. 12, for example. That is, when the absolute coordinates of the vertex P 0 are (X0, Y0, Z0), the coordinates of the vertex P 1 are expressed as relative coordinates (dx1, dy1, dz1) with respect to the vertex P 0 . Similarly, the other vertices P 2 to P 5 are represented by relative coordinates from the vertex P 0 .

そして、この実施例では、各頂点の色データ(例えば、頂点P0の色データ(B0,G0,R0)、頂点P1の色データ(B1,G1,R1))が、頂点座標とともに指定されている。 Then, in this embodiment, the color data of each vertex (e.g., color data (B0, G0, R0 vertex P 0), the color data of the vertex P 1 (B1, G1, R1 )) is specified with vertex coordinates ing.

図13は、さらに他のポリゴンの配置例を表している。この実施例では、頂点P0,P1,P2からなるポリゴンと、頂点P2,P3,P4からなるポリゴンは、頂点P2を介して結合されているのに対し、頂点P2,P3,P4からなるポリゴンと頂点P3,P5,P6からなるポリゴンは、頂点P3と頂点P6を結ぶ直線で接している。すなわち、この実施例においては、各ポリゴンの連結の状態に特定の規則は存在しない。 FIG. 13 shows another example of arrangement of polygons. In this embodiment, while the polygon consisting of the vertices P 0, P 1, P 2, a polygon composed of vertex P 2, P 3, P 4, which is attached via a vertex P 2, the vertex P 2 , P 3 , P 4 and the polygon composed of vertices P 3 , P 5 , P 6 are in contact with a straight line connecting the vertices P 3 and P 6 . That is, in this embodiment, there is no specific rule for the connection state of each polygon.

図14は、図13に示すポリゴンのデータのフォーマットの例を表している。この実施例においては、各ポリゴンの頂点の座標(例えば(X0,Y0,Z0),、各頂点における法線方向のベクトル(NX0,NY0,NZ0)、このポリゴンに対するテクスチャの記憶されているアドレス(フレームメモリ67のアドレス(TU0,TV0)、および頂点の色データ(R0,G0,B0)により表されている。   FIG. 14 shows an example of the format of polygon data shown in FIG. In this embodiment, the coordinates of the vertices of each polygon (for example, (X0, Y0, Z0), vectors in the normal direction at the vertices (NX0, NY0, NZ0), and the addresses of stored textures for the polygons ( It is represented by an address (TU0, TV0) of the frame memory 67 and vertex color data (R0, G0, B0).

本発明においては、以上のような3つのフォーマットのいずれをも、同一のビデオゲームのソフトウエア上で適宜、場合によって採用することができる。   In the present invention, any of the three formats as described above can be adopted as appropriate on the same video game software.

また、同一のフォーマットのデータであったとしても、その手続(処理方法)を変更することで、異なる画像を表現することができる。例えば、図15は、正方形の4つの頂点P0乃至P3の座標データと、水平または垂直方向に隣接する2つの頂点間の間を4等分して、16個のポリゴンを生成する手続を与えた場合における処理結果を表している。 Even if the data has the same format, different images can be expressed by changing the procedure (processing method). For example, FIG. 15 shows a procedure for generating 16 polygons by dividing the coordinate data of four vertices P 0 to P 3 of a square and two vertices adjacent in the horizontal or vertical direction into four equal parts. The processing result when given is shown.

これに対して、正方形の4つの頂点P0乃至P3のうち、2つの頂点の間を、図15における場合と同様に4等分するように手続を規定するとともに、更に生成された点に対する法線を、4つの頂点P0乃至P3上の法線を線形に内挿補間することで生成し、その生成した法線に対応して、各点を移動するように、手続を規定すれば、図16に示すようなポリゴンを表示することができる。 On the other hand, the procedure is defined to divide the two vertices among the four vertices P 0 to P 3 into four equal parts as in the case of FIG. The normal is generated by linearly interpolating the normals on the four vertices P 0 to P 3 , and the procedure is defined so that each point is moved corresponding to the generated normal. For example, a polygon as shown in FIG. 16 can be displayed.

次に、図17のフローチャートを参照して、メインメモリ64上に記憶されているデータをGPU66で処理し、CRT81に表示させる処理について説明する。最初にステップS1において、CPU61は、PKE63に対して、転送するデータのメインメモリ64上のアドレスと、そのデータをパッキングする手順を通知する。PKE63は、ステップS2において、この通知に対応する処理を実行する。すなわち、通知されたメインメモリ64のアドレスからデータを読み出し、これをやはり通知されたパッキング手順に従ってパケットにパッキングする。   Next, a process of processing data stored on the main memory 64 by the GPU 66 and displaying it on the CRT 81 will be described with reference to a flowchart of FIG. First, in step S1, the CPU 61 notifies the PKE 63 of the address of the data to be transferred on the main memory 64 and the procedure for packing the data. In step S2, the PKE 63 executes a process corresponding to this notification. That is, data is read from the notified address of the main memory 64, and is packed into a packet according to the notified packing procedure.

次に、PKE63は、ステップS3において、転送先のGPU66のPKE81が、いま受信可能な状態であるか否かを判定する。受信可能であると判定された場合、ステップS4に進み、PKE63は、PKE81に対して、データを転送する。   Next, in step S3, the PKE 63 determines whether or not the PKE 81 of the transfer destination GPU 66 is in a receivable state. If it is determined that the data can be received, the process proceeds to step S 4, and the PKE 63 transfers data to the PKE 81.

これに対して、ステップS3において、PKE81が、いま受信可能な状態にはないと判定された場合、ステップS5に進み、PKE63は、DMAC65に対して、メインメモリ64上のFIFO(Fast In Fast Out)への転送を要求する。DMAC65は、この要求に対応して、メインメモリ64上のデータをFIFOに転送する。そして、ステップS6において、DMAC65は、PKE81が受信可能な状態になったとき、メインメモリ64のFIFOのデータをPKE81に転送する処理を実行する。   On the other hand, if it is determined in step S3 that the PKE 81 is not in a receivable state, the process proceeds to step S5, where the PKE 63 sends a FIFO (Fast In Fast Out on the main memory 64 to the DMAC 65. ) Request to transfer to. In response to this request, the DMAC 65 transfers the data on the main memory 64 to the FIFO. In step S6, the DMAC 65 executes a process of transferring the FIFO data in the main memory 64 to the PKE 81 when the PKE 81 is ready to receive.

PKE81は、CPU61のPKE63またはDMAC65よりデータの転送を受けたとき、これをアンパッキングし、そのデータをヘッダに表されているローカルメモリ83のアドレスに展開する。   When the PKE 81 receives the data transfer from the PKE 63 or the DMAC 65 of the CPU 61, the PKE 81 unpacks the data and expands the data to the address of the local memory 83 shown in the header.

PKE81は、データのローカルメモリ83に対する展開を終了したとき、ステップS8で演算部82を起動し、手続を実行させる。演算部82は、記憶された手続(手続ブロックのサブブロックのデータ部に配置されていた手続)に従って、記憶されたデータ(データブロックのサブブロックのデータ部に配置されていた画像データ)を処理し、三次元オブジェクトを表現するためのポリゴンデータ列を生成し、ローカルメモリ83の所定のアドレスに記憶させる。   When the PKE 81 finishes developing the data in the local memory 83, the PKE 81 activates the calculation unit 82 in step S8 to execute the procedure. The calculation unit 82 processes the stored data (image data arranged in the data part of the sub-block of the data block) according to the stored procedure (procedure arranged in the data part of the sub-block of the procedure block). Then, a polygon data string for representing the three-dimensional object is generated and stored at a predetermined address in the local memory 83.

次にステップS9に進み、描画部84は、演算部82からポリゴンデータ列の配置アドレスの供給を受け、そのデータ列に対応するレンダリング処理を実行する。すなわち、フレームメモリ67に画素データを描画する。そして、この画素データが描画部84により読み出され、CRTC68を介してCRT81に出力され、表示される。   In step S9, the drawing unit 84 receives the polygon data string arrangement address supplied from the calculation unit 82, and executes rendering processing corresponding to the data string. That is, the pixel data is drawn in the frame memory 67. Then, the pixel data is read out by the drawing unit 84 and output to the CRT 81 via the CRTC 68 and displayed.

ステップS8における演算部82のポリゴンデータ列生成処理について更に説明すると、次のようになる。すなわち、いま、演算部82が、例えば図18に示すようなデータ(データブロックのサブブロックのデータ部に配置されていたデータ)を受け取り、このデータから、図19に示すようなポリゴンを生成するものとすると、このデータに対応する手続(手続ブロックのサブブロックのデータ部に配置される手続)としては、図20のフローチャートに示すような手続が規定される。図18のTYPEには、この手続を指定する情報が配置される。   The polygon data string generation processing of the calculation unit 82 in step S8 will be further described as follows. That is to say, the calculation unit 82 receives data as shown in FIG. 18 (data arranged in the data part of the sub-block of the data block), for example, and generates a polygon as shown in FIG. 19 from this data. Assuming that the procedure corresponding to this data (procedure arranged in the data part of the sub-block of the procedure block) is the procedure shown in the flowchart of FIG. Information specifying this procedure is arranged in TYPE in FIG.

最初にステップS21において、データを解析する処理が実行される。この実施例の場合、図18に示すNi,Njは、ポリゴンのi,jの各方向(図19における右方向と右斜め下方向)の分割数とされる。すなわち、Niは、頂点(代表点)P0(X0,Y0,Z0)と頂点(代表点)P1(X1,Y1,Z1)の間を分割する数とされ、Njは、頂点(代表点)P0(X0,Y0,Z0)と頂点(代表点)P2(X2,Y2,Z2)の間を分割する数とされる。Mi,Mjは、データ内に保持されているi,j各方向の法線データ数とされる。(X0,Y0,Z0),・・・,(X3,Y3,Z3)は、代表点の座標とされる。RGB0,RGB1,RGB2,RGB3は、それぞれ各代表点の輝度値とされる。 First, in step S21, processing for analyzing data is executed. In the case of this embodiment, Ni and Nj shown in FIG. 18 are the numbers of divisions in the respective directions of the polygons i and j (the right direction and the diagonally downward direction in FIG. 19). That is, Ni is a number dividing the vertex (representative point) P 0 (X0, Y0, Z0) and the vertex (representative point) P 1 (X1, Y1, Z1), and Nj is the vertex (representative point). ) The number is divided between P 0 (X0, Y0, Z0) and the vertex (representative point) P 2 (X2, Y2, Z2). Mi and Mj are the number of normal data in the i and j directions held in the data. (X0, Y0, Z0), ..., (X3, Y3, Z3) are the coordinates of the representative points. RGB0, RGB1, RGB2, and RGB3 are the luminance values of the representative points, respectively.

また、dXi,dYi,dZi,dXj,dYj,dZjは、代表点の間をNi,Nj個に分割した際の各方向のX,Y,Z軸上の変位量とされる。NX,NY,NZは、X,Y,Z軸方向の、それぞれ代表法線とされ、N00,N01,・・・,N79,N80は、代表点の間をMi,Mj個に分割して生成される分割点上の法線の大きさとされる。   Further, dXi, dYi, dZi, dXj, dYj, and dZj are displacement amounts on the X, Y, and Z axes in the respective directions when the interval between the representative points is divided into Ni and Nj. NX, NY, and NZ are representative normals in the X, Y, and Z axis directions, respectively, and N00, N01,..., N79, and N80 are generated by dividing Mi and Mj between the representative points. It is set as the size of the normal on the division point.

次にステップS22に進み、1つの頂点(代表点と分割点により構成される点の中の1つ)が選択される。例えば図21における頂点P0が選択される。そして、ステップS23において、ステップS22で選択した頂点の座標と輝度値が計算される。 Next, proceeding to step S22, one vertex (one of points constituted by representative points and division points) is selected. For example, the vertex P 0 in FIG. 21 is selected. In step S23, the coordinates and luminance values of the vertex selected in step S22 are calculated.

さらにステップS24に進み、ステップS22で選択した頂点の法線の大きさから頂点上の法線ベクトルを計算する。そして、ステップS25においては、ステップS24で求めた頂点上の法線ベクトルを変位ベクトルとして、頂点座標を移動する処理が行われる。   In step S24, the normal vector on the vertex is calculated from the normal size of the vertex selected in step S22. In step S25, the process of moving the vertex coordinates is performed using the normal vector on the vertex obtained in step S24 as the displacement vector.

ステップS26では、ステップS25で得られた頂点座標を回転マトリックスで変換し、所定の方向の画像となるようにする。次にステップS27において、ステップS26の三次元座標を、二次元上の座標に透視変換する。   In step S26, the vertex coordinates obtained in step S25 are converted by a rotation matrix so that an image in a predetermined direction is obtained. Next, in step S27, the three-dimensional coordinates in step S26 are perspective-transformed into two-dimensional coordinates.

ステップS28において、演算部82は、描画部84に対する描画命令のパラメータとして、頂点の座標と輝度値をローカルメモリ83上に設定する。   In step S <b> 28, the calculation unit 82 sets the vertex coordinates and the luminance value on the local memory 83 as parameters of a drawing command for the drawing unit 84.

次にステップS29に進み、演算部82は、描画部84に対して描画命令の格納アドレスを通知し、描画部84にレンダリング処理を開始させる。描画部84は、この通知を受けたとき、演算部82が、ステップS28においてローカルメモリ83上に設定した頂点座標と輝度値を読み取り、レンダリング処理を行う。   In step S29, the calculation unit 82 notifies the drawing unit 84 of the storage address of the drawing command, and causes the drawing unit 84 to start rendering processing. When the drawing unit 84 receives this notification, the calculation unit 82 reads the vertex coordinates and luminance values set on the local memory 83 in step S28, and performs rendering processing.

ステップS30においては、例えば図21に示す全ての頂点の処理が終了したか否かを判定し、まだ処理を行っていない頂点が存在すると判定された場合においては、ステップS22に戻り、新たな頂点を選択し、同様の処理を実行する。そして、ステップS30において、全ての頂点の処理が終了したと判定された場合、処理が終了される。   In step S30, for example, it is determined whether or not the processing of all the vertices shown in FIG. 21 has been completed. If it is determined that there are vertices that have not yet been processed, the process returns to step S22, and new vertices are obtained. And execute the same process. If it is determined in step S30 that the processing for all vertices has been completed, the processing is terminated.

なお、図18のデータは、頂点P0乃至P3によるポリゴンを、16×16個に分割することができるように、N00乃至N80のデータが用意されているが、図19(図21)の実施例では、そのうちの一部のデータのみを使用し、4×4個に分割している。 Note that the data in FIG. 18 includes data from N00 to N80 so that the polygons with the vertices P 0 to P 3 can be divided into 16 × 16 pieces, but the data in FIG. 19 (FIG. 21). In the embodiment, only a part of the data is used and divided into 4 × 4.

なお、CPU61が、GPU66に転送するデータは、同一の処理(手続)が連続するように、予めソーティングされる。GPU66においては、データに対して同一の処理を行う場合、手続ブロックは省略可能とされる。このためソーティングをかけることにより、データ転送量を軽減することができる。   Note that the data transferred by the CPU 61 to the GPU 66 is sorted in advance so that the same processing (procedure) is continued. In the GPU 66, the procedure block can be omitted when the same processing is performed on the data. Therefore, the amount of data transfer can be reduced by performing sorting.

以上のように、転送されるデータ中に、データ固有の解釈プログラム(手続)を内包させることにより、データ自身のフォーマットの自由度を向上させることができる。また、その処理の自由度も向上させることができる。   As described above, the degree of freedom of the format of the data itself can be improved by including the interpretation program (procedure) unique to the data in the transferred data. In addition, the degree of freedom of the processing can be improved.

更に、処理と手続をまとめて扱うことが可能となるため、メモリの連続した領域に、そのデータが記憶されることとなり(メモリの極所性を高めることができ)、DMA転送を効率よく行うことが可能となる。   Furthermore, since processing and procedures can be handled together, the data is stored in a continuous area of the memory (the extreme nature of the memory can be improved), and DMA transfer is performed efficiently. It becomes possible.

また、CPU61(DTE62)とGPU66の間において、その負荷に隔たりがある場合、データに内包される処理プログラム(手続)を適宜変更することにより、負荷を動的に調節することができる。例えば、基本的にメインバスの高速性を確保するために、CPU61(GTE62)における処理ができるだけ少なくなるようにして、GPU66に対してできるだけ多くの処理を行わせるようにするが、GPU66が過負荷になった場合においては、CPU61(GET62)において、GPU66が行う処理の一部を肩代わりして実行するようにすることができる。   Further, when there is a gap between the load between the CPU 61 (DTE 62) and the GPU 66, the load can be dynamically adjusted by appropriately changing the processing program (procedure) included in the data. For example, basically, in order to ensure the high speed of the main bus, the processing in the CPU 61 (GTE 62) is reduced as much as possible so that the GPU 66 performs as much processing as possible, but the GPU 66 is overloaded. In such a case, the CPU 61 (GET 62) can execute a part of the processing performed by the GPU 66 instead.

図22のフローチャートは、この場合の処理例を表している。すなわち、最初にステップS41において、GPU66の演算部82の計算負荷が、CPU61の計算負荷に較べて非常に大きいか否かを判定する。図17のステップS3とS5を参照して説明したように、CPU61のPKE63は、GPU66のPKE81が受信可能な状態でないと判定したとき、DMAC65にメインメモリ64上のFIFOへの転送を要求する。この要求が発生するということは、GPU66が、他の計算を行っていることを意味する。そこで、CPU61は、この要求の回数をカウントし、そのカウント値が、予め設定してある基準値より大きくなったとき、GPU66の計算負荷が、CPU61の計算負荷に較べて非常に大きい状態になったものと判定することができる。   The flowchart of FIG. 22 represents an example of processing in this case. That is, first, in step S41, it is determined whether or not the calculation load of the calculation unit 82 of the GPU 66 is much larger than the calculation load of the CPU 61. As described with reference to steps S3 and S5 of FIG. 17, when the PKE 63 of the CPU 61 determines that the PKE 81 of the GPU 66 is not in a receivable state, it requests the DMAC 65 to transfer to the FIFO on the main memory 64. The occurrence of this request means that the GPU 66 is performing another calculation. Therefore, the CPU 61 counts the number of requests, and when the count value becomes larger than a preset reference value, the calculation load of the GPU 66 becomes very large compared to the calculation load of the CPU 61. Can be determined.

あるいはまた、ソフトウエアを開発する段階において、所定の状況で操作装置17により、所定の操作が行われたとき、GPU66の演算部82の計算負荷が大きくなることを、予め予測できる場合がある。このような場合においては、CPU61は、所定の状況下で操作装置17から所定の操作が行われたことを示す信号が供給されたとき、GPU66の計算負荷が非常に大きくなったものと判定するようにすることができる。   Alternatively, in the stage of developing software, it may be possible to predict in advance that the calculation load of the calculation unit 82 of the GPU 66 will increase when a predetermined operation is performed by the operating device 17 in a predetermined situation. In such a case, the CPU 61 determines that the calculation load of the GPU 66 has become very large when a signal indicating that a predetermined operation has been performed from the controller device 17 in a predetermined situation. Can be.

ステップS41において、GPU66の演算部82の計算負荷が非常に大きい状態になったと判定された場合、ステップS42に進み、CPU61は、次に実行させるデータの手続ブロックの手続を解析する。そして、ステップS43において、対応するデータブロックのデータに対して、ステップS42で解析した手続を実行し、GPU66の描画部84の描画命令を生成する。すなわち、GPU66の演算部82が行う処理を、CPU61(GTE62)が実行する。   If it is determined in step S41 that the calculation load of the calculation unit 82 of the GPU 66 has become very large, the process proceeds to step S42, and the CPU 61 analyzes the procedure block of the data to be executed next. In step S43, the procedure analyzed in step S42 is executed on the data of the corresponding data block, and a drawing command of the drawing unit 84 of the GPU 66 is generated. That is, the CPU 61 (GTE 62) executes the process performed by the calculation unit 82 of the GPU 66.

次にステップS44に進み、CPU61(GTE62)は、次のような手続ブロックとデータブロックとを生成する。   In step S44, the CPU 61 (GTE 62) generates the following procedure block and data block.

すなわち、その手続ブロックの手続には、描画部84にデータブロックの格納アドレスを通知し、レンダリングを開始させる手続を規定する。また、それに対応するデータブロックのデータとしては、ステップS43で生成した描画部84の描画命令を配置する。   In other words, the procedure block procedure defines a procedure for notifying the drawing unit 84 of the storage address of the data block and starting rendering. In addition, as the data of the corresponding data block, the drawing command of the drawing unit 84 generated in step S43 is arranged.

ステップS45においては、ステップS44で生成したデータをGPU66に転送するように、PKE63に通知する。PKE63は、この通知を受けたとき、ステップS44で生成されたデータをGPU66に転送する処理を実行する。   In step S45, the PKE 63 is notified to transfer the data generated in step S44 to the GPU 66. When receiving this notification, the PKE 63 executes a process of transferring the data generated in step S44 to the GPU 66.

GPU66は、このデータの供給を受けたとき、通常の場合と同様の処理を実行するが、その手続ブロックの手続には、ステップS44で説明したように、描画部84にデータブロックの格納アドレスを通知し、レンダリングを開始させる手続が規定されているため、この処理を実行する。その結果、描画部84は、通知を受けたローカルメモリ83の格納アドレスからデータを読み取るが、このデータは、ステップS44で説明しように、描画部84の描画命令そのものとなっている。そこで、描画部84は、直ちに、この描画命令を実行することになる。   When the GPU 66 receives this data supply, it executes the same processing as in the normal case. However, as described in step S44, the drawing block 84 is provided with the storage address of the data block. Since a procedure for notifying and starting rendering is defined, this processing is executed. As a result, the drawing unit 84 reads data from the storage address of the local memory 83 that has received the notification, and this data is the drawing command itself of the drawing unit 84, as will be described in step S44. Therefore, the drawing unit 84 immediately executes this drawing command.

なお、ステップS41において、GPU66の演算部82の計算負荷が過負荷になっていないと判定された場合においては、ステップS42乃至S45の処理はスキップされる。すなわち、この場合においては、通常通り、GPU66により手続の実行処理が行われる。   If it is determined in step S41 that the calculation load of the calculation unit 82 of the GPU 66 is not overloaded, the processes in steps S42 to S45 are skipped. That is, in this case, procedure execution processing is performed by the GPU 66 as usual.

このように、この実施例においては、手続ブロックとデータとブロックとによりデータを構成するようにしたので、手続を適宜変更することが可能となり、CPU61(GTE62)とGPU66(演算部82)の一方が過負荷の状態となっているとき、その処理の一部を他方に実行させるようにすることができる。これにより、より効率的に、迅速に描画処理を行うことができる。   As described above, in this embodiment, the procedure block, the data, and the block constitute data, so that the procedure can be changed as appropriate, and one of the CPU 61 (GTE 62) and the GPU 66 (calculation unit 82) can be changed. When is overloaded, a part of the processing can be executed by the other. Thereby, a drawing process can be performed more efficiently and rapidly.

次に、以上のような手続ブロックとデータブロックとにより構成されるデータを有するCD−ROM51を形成する装置の構成例を図23を参照して説明する。図23においては、高度なグラフィックス処理能力を有するワークステーション100により生成された三次元オブジェクトのイメージデータが、記録装置101に出力されるようになされている。記録装置101は、このデータを原盤102に記録し、この原盤102から、CD−ROM51が生成されるようになされている。   Next, a configuration example of an apparatus for forming the CD-ROM 51 having data constituted by the above procedure blocks and data blocks will be described with reference to FIG. In FIG. 23, image data of a three-dimensional object generated by a workstation 100 having advanced graphics processing capability is output to the recording apparatus 101. The recording apparatus 101 records this data on the master 102, and the CD-ROM 51 is generated from the master 102.

次に、図24のフローチャートを参照して、図23の実施例の動作について説明する。最初にステップS61において、使用者は、ワークステーション100を利用して、オブジェクトデータを作成する処理を実行する。このとき、形状や材質などの情報も定義する。   Next, the operation of the embodiment of FIG. 23 will be described with reference to the flowchart of FIG. First, in step S61, the user uses the workstation 100 to execute processing for creating object data. At this time, information such as shape and material is also defined.

次にステップS62に進み、使用者は、このオブジェクトを複数のパッチに分割する処理を実行する。これにより、一定の曲率を有する曲面や、一定の材質の平面などの特定の処理単位で表現される部分(パッチ)にオブジェクトデータが分割される。   In step S62, the user executes processing for dividing the object into a plurality of patches. As a result, the object data is divided into portions (patches) expressed by specific processing units such as a curved surface having a certain curvature and a plane made of a certain material.

更にステップS63においては、使用者は、パッチ毎の処理手続を作成する。例えばスプライン補間で補間することができる頂点データを削除し、その頂点データは残った代表点からスプライン補間により生成するプログラムを作成する。これにより、1つのパッチは、1つのデータブロックと、それに対応する1つの手続ブロックにより構成される。   Further, in step S63, the user creates a processing procedure for each patch. For example, vertex data that can be interpolated by spline interpolation is deleted, and the vertex data is generated from the remaining representative points by spline interpolation. Thus, one patch is composed of one data block and one procedure block corresponding thereto.

次に、ステップS64に進み、データのアロケーションのシミュレーションを実行する。すなわち、ローカルメモリ83の配置情報を作成するために、配置シミュレーションを行う。またこのとき、同時に類似する処理プログラムの差分データも生成する。例えば1つのパッチにおいて、1つの手続が規定された場合、その手続に類似する他のパッチの手続は、その手続との違いだけを記述して規定することができる。このように規定された手続は、前定となる(類似する)手続と合成された手続として処理される。これにより、効率的な処理が可能となる。   In step S64, a data allocation simulation is executed. That is, in order to create the arrangement information of the local memory 83, an arrangement simulation is performed. At this time, difference data of similar processing programs is also generated. For example, if one procedure is defined in one patch, the procedure of another patch similar to that procedure can be defined by describing only the differences from the procedure. The procedure defined in this way is processed as a procedure combined with a predetermined (similar) procedure. Thereby, efficient processing becomes possible.

次にステップS65において、以上のようにして生成されたデータと処理手順を合成する処理が実行される。すなわち、ステップS63で生成された手続が、手続ブロックのサブブロックのデータ部に配置され、その手続に対応する画像データが、データブロックのサブブロックのデータ部に配置される。そして、ステップS64で得られた配置情報が、サブブロックのアドレス(ADDR)に配置される。   Next, in step S65, a process of combining the data generated as described above and the processing procedure is executed. That is, the procedure generated in step S63 is arranged in the data part of the sub block of the procedure block, and the image data corresponding to the procedure is arranged in the data part of the sub block of the data block. Then, the arrangement information obtained in step S64 is arranged at the sub-block address (ADDR).

次にステップS66に進み、記録処理が実行される。すなわち、ワークステーション100で生成されたデータが記録装置101に供給される。記録装置101は、ワークステーション100より供給されたデータを原盤102に記録する処理を実行する。この原盤102から、レプリカとしてのCD−ROM51が大量に生成される。   Next, the process proceeds to step S66, and a recording process is executed. That is, data generated by the workstation 100 is supplied to the recording apparatus 101. The recording apparatus 101 executes processing for recording data supplied from the workstation 100 on the master 102. A large number of CD-ROMs 51 as replicas are generated from the master disk 102.

以上、本発明をビデオゲーム機に応用した場合と例として説明したが、本発明は、その他の画像処理装置に応用することも可能である。また、記録媒体としては、CD−ROM以外の光ディスク、磁気ディスク、光磁気ディスク、メモリカードなどを用いることができる。   As described above, the present invention is applied to a video game machine as an example, but the present invention can also be applied to other image processing apparatuses. As the recording medium, an optical disk other than a CD-ROM, a magnetic disk, a magneto-optical disk, a memory card, or the like can be used.

本発明の画像処理方法を適用したビデオゲーム機の構成を示す平面図である。It is a top view which shows the structure of the video game machine to which the image processing method of this invention is applied. 図1のゲーム機本体の正面の構成を示す正面図である。It is a front view which shows the structure of the front of the game machine main body of FIG. 図1のゲーム機本体の側面の構成を示す右側面図である。It is a right view which shows the structure of the side surface of the game machine main body of FIG. 図1のゲーム機本体に装着されるCD−ROMの構成を示す図である。It is a figure which shows the structure of CD-ROM with which the game machine main body of FIG. 1 is mounted | worn. 図1のゲーム機本体の内部の構成を示すブロック図である。It is a block diagram which shows the structure inside the game machine main body of FIG. 図5のGPUの内部の構成を示すブロック図である。It is a block diagram which shows the structure inside GPU of FIG. データのフォーマットを説明する図である。It is a figure explaining the format of data. サブブロックのフォーマットを説明する図である。It is a figure explaining the format of a subblock. ポリゴンの配置を説明する図である。It is a figure explaining arrangement | positioning of a polygon. 図9のポリゴンを表すデータのフォーマットを示す図である。It is a figure which shows the format of the data showing the polygon of FIG. ポリゴンの他の配置状態を示す図である。It is a figure which shows the other arrangement | positioning state of a polygon. 図11のポリゴンを表すデータフォーマットを示す図である。It is a figure which shows the data format showing the polygon of FIG. ポリゴンの他の配置例を示す図である。It is a figure which shows the other example of arrangement | positioning of a polygon. 図13のポリゴンのデータフォーマットを示す図である。It is a figure which shows the data format of the polygon of FIG. ポリゴン分割の例を示す図である。It is a figure which shows the example of a polygon division | segmentation. ポリゴン分割の他の例を示す図である。It is a figure which shows the other example of a polygon division | segmentation. 図5の実施例の表示処理の動作を説明するフローチャートである。It is a flowchart explaining the operation | movement of the display process of the Example of FIG. データフォーマットの例を示す図である。It is a figure which shows the example of a data format. 図18のデータフォーマットに対応する手続を説明する図である。It is a figure explaining the procedure corresponding to the data format of FIG. 図17のステップS8の処理例を示すフローチャートである。It is a flowchart which shows the process example of FIG.17 S8. 図20のステップS23の処理を説明する図である。It is a figure explaining the process of step S23 of FIG. 図5の実施例の他の動作を説明するフローチャートである。It is a flowchart explaining the other operation | movement of the Example of FIG. データを記録する装置の構成例をブロック図である。It is a block diagram of the structural example of the apparatus which records data. 図23の実施例の動作を説明するフローチャートである。It is a flowchart explaining the operation | movement of the Example of FIG.

符号の説明Explanation of symbols

61 CPU, 62 GTE, 63 PKE, 64 メインメモリ, 65 DMAC, 66 GPU, 67 フレームメモリ, 68 CRTC, 69 CRT, 81 PKE, 82 演算部, 83 ローカルメモリ, 84 描画部   61 CPU, 62 GTE, 63 PKE, 64 main memory, 65 DMAC, 66 GPU, 67 frame memory, 68 CRTC, 69 CRT, 81 PKE, 82 arithmetic unit, 83 local memory, 84 drawing unit

Claims (6)

データブロックと、該データブロックを処理対象とする手続ブロックとを設け、
前記手続ブロックと前記データブロックのそれぞれを、1つ以上のサブブロックで構成し、
前記サブブロックに、ヘッダ部と、データ部とを設け、
前記ヘッダ部に、前記手続ブロック或いは前記データブロックの識別符号を配置し、
前記データブロックを構成する前記サブブロックの前記データ部に画像データを配置するとともに、前記手続ブロックを構成する前記サブブロックの前記データ部に、前記画像データ毎に定めた処理の手順を示す手続を配置し、
前記データブロックおよび前記手続ブロックを、同じ手続が連続するようにソーティングを行い、
前記データブロックのデータ部の画像データを、前記手続ブロックのデータ部の手続に対応して処理すること
を特徴とする画像処理方法。
Providing a data block and a procedure block for processing the data block;
Each of the procedure block and the data block is composed of one or more sub-blocks,
In the sub-block, a header part and a data part are provided,
In the header part, the identification code of the procedure block or the data block is arranged,
The image data is arranged in the data part of the sub-block constituting the data block, and a procedure indicating a procedure of processing determined for each image data in the data part of the sub-block constituting the procedure block. Place and
Sorting the data block and the procedure block so that the same procedure continues,
An image processing method comprising: processing image data in a data portion of the data block in accordance with a procedure in the data portion of the procedure block.
前記ヘッダ部には、さらに、対応する前記データ部の大きさ、または前記ブロックを記憶するメモリのアドレスの少なくとも一方が配置されていること
を特徴とする請求項1に記載の画像処理方法。
The image processing method according to claim 1, wherein at least one of a size of the corresponding data part and an address of a memory storing the block is further arranged in the header part.
画像データを配置するためのデータブロックと、該画像データに対する手続を配置するための手続ブロックとを備えたデータであって、前記手続ブロックおよび前記データブロックのそれぞれが1つ以上のサブブロックで構成され、且つ前記サブブロックに、ヘッダ部と、データ部とが設けられているデータを生成し、該生成したデータを転送する制御手段と、
前記転送されたデータを受付け、該受付けたデータを処理する描画手段と、を有し、
前記制御手段は、
前記ヘッダ部に、前記手続ブロック或いは前記データブロックの識別符号を配置し、前記手続ブロックを構成する前記サブブロックの前記データ部に、前記画像データ毎に定めた処理の手順を示す手続を配置するとともに、前記データブロックを構成する前記サブブロックの前記データ部に、画像データおよび該画像データに対応する手続を指定する指定情報を配置し、さらに、前記手続ブロックに配置された手続用いて前記データをソートした上で転送を行い、
前記描画手段は、
前記データブロックのデータ部の前記画像データに対応する手続を、当該データ部に配置されている前記指定情報を用いて前記手続ブロックに配置されている手続の中から選択し、該画像データを該選択した手続を用いて処理すること
を特徴とする画像処理装置。
Data comprising a data block for arranging image data and a procedure block for arranging a procedure for the image data, each of the procedure block and the data block being composed of one or more sub-blocks And a control means for generating data in which a header part and a data part are provided in the sub-block, and transferring the generated data,
Drawing means for receiving the transferred data and processing the received data;
The control means includes
An identification code of the procedure block or the data block is arranged in the header portion, and a procedure indicating a procedure of processing determined for each image data is arranged in the data portion of the sub-block constituting the procedure block. together, the said data part of the sub-blocks constituting the data block, the specifying information for specifying a procedure corresponding to the image data and the image data are arranged, furthermore, with the placed procedures the procedure block the Transfer after sorting the data,
The drawing means includes
A procedure corresponding to the image data in the data portion of the data block is selected from the procedures arranged in the procedure block using the designation information arranged in the data portion, and the image data is selected from the procedure An image processing apparatus that performs processing using a selected procedure.
請求項3に記載の画像処理装置であって、
前記制御手段は、
前記ソートの結果、前記手続ブロックの中に同じ手続を配置したサブブロックが連続する場合、連続するサブロックを省略して、前記データの転送を行うこと
を特徴とする画像処理装置。
The image processing apparatus according to claim 3,
The control means includes
Said sort result, if the sub-block placed the same procedure in the procedure block is continuous, skip sub blocks contiguous, the image processing apparatus, characterized in that for transferring the data.
請求項3または4に記載の画像処理装置であって、
前記制御手段は、前記データブロックに、様々なデータ構造を持つ画像データを配置可能に構成されていること
を特徴とする画像処理装置。
The image processing apparatus according to claim 3, wherein:
The image processing apparatus, wherein the control means is configured to be able to arrange image data having various data structures in the data block.
制御部および描画処理部を有する画像処理装置が行う画像処理方法であって、
前記制御部は、
画像データを配置するためのデータブロックと、該画像データに対する手続を配置するための手続ブロックとを備えたデータであって、前記手続ブロックおよび前記データブロックのそれぞれが1つ以上のサブブロックで構成され、且つ前記サブブロックに、ヘッダ部と、データ部とが設けられているデータを生成するステップと、
前記生成したデータを転送するステップと、を行い、
前記描画処理部は、前記転送された前記データを受付け、該受付けたデータを処理するステップを行い、
前記データを生成するステップは、前記ヘッダ部に、前記手続ブロック或いは前記データブロックの識別符号を配置し、前記手続ブロックを構成する前記サブブロックの前記データ部に、前記画像データ毎に定めた処理の手順を示す手続を配置するとともに、前記データブロックを構成する前記サブブロックの前記データ部に、画像データおよび該画像データに対応する手続を指定する指定情報を配置し、
前記転送するステップは、前記手続ブロックに配置された手続用いて前記データをソートした上で転送を行い、
前記データを処理するステップは、前記データブロックのデータ部の前記画像データに対応する手続を、当該データ部に配置されている前記指定情報を用いて前記手続ブロックに配置されている手続の中から選択し、該画像データを該選択した手続を用いて処理すること
を特徴とする画像処理方法。
An image processing method performed by an image processing apparatus having a control unit and a drawing processing unit,
The controller is
Data comprising a data block for arranging image data and a procedure block for arranging a procedure for the image data, each of the procedure block and the data block being composed of one or more sub-blocks And generating data in which a header part and a data part are provided in the sub-block,
Transferring the generated data, and
The drawing processing unit receives the transferred data and performs a step of processing the received data.
In the step of generating the data, the identification code of the procedure block or the data block is arranged in the header portion, and the processing determined for each image data in the data portion of the sub-block constituting the procedure block In addition, a procedure indicating the procedure is arranged, and in the data portion of the sub-block constituting the data block, designation information that designates image data and a procedure corresponding to the image data is arranged,
Wherein the step of transferring performs transfer on that sorting the data using the arranged procedures to the procedure block,
The step of processing the data includes a procedure corresponding to the image data in the data portion of the data block, from among the procedures arranged in the procedure block using the designation information arranged in the data portion. An image processing method comprising: selecting and processing the image data using the selected procedure.
JP2005237518A 2005-08-18 2005-08-18 Image processing method and apparatus Expired - Fee Related JP4025796B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005237518A JP4025796B2 (en) 2005-08-18 2005-08-18 Image processing method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005237518A JP4025796B2 (en) 2005-08-18 2005-08-18 Image processing method and apparatus

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP8116302A Division JPH09305738A (en) 1996-05-10 1996-05-10 Image processing method and device therefor

Publications (2)

Publication Number Publication Date
JP2006079601A JP2006079601A (en) 2006-03-23
JP4025796B2 true JP4025796B2 (en) 2007-12-26

Family

ID=36158962

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005237518A Expired - Fee Related JP4025796B2 (en) 2005-08-18 2005-08-18 Image processing method and apparatus

Country Status (1)

Country Link
JP (1) JP4025796B2 (en)

Also Published As

Publication number Publication date
JP2006079601A (en) 2006-03-23

Similar Documents

Publication Publication Date Title
US6326963B1 (en) Method and apparatus for efficient animation and collision detection using local coordinate systems
US5784070A (en) Method and apparatus for producing a polygonal image representation through operation of plotting commands on image data
EP1331606A1 (en) Image processing method for realizing quick bump mapping, image processing device, computer program, and semiconductor device
US7212215B2 (en) Apparatus and method for rendering an antialiased image
JP4749198B2 (en) Program, information storage medium, and image generation system
JP5304443B2 (en) Drawing data processing method, drawing system, and drawing data creation program
JP3530095B2 (en) Three-dimensional object transformation method and video game apparatus in video game, and computer-readable recording medium on which video game program is recorded
JP4025796B2 (en) Image processing method and apparatus
JP3809294B2 (en) GAME DEVICE, GAME METHOD, COMPUTER-READABLE RECORDING MEDIUM
JP2004317878A (en) Graphics processor, graphics card and graphics processing system
JPH09305738A (en) Image processing method and device therefor
JP4394211B2 (en) Image generation system and information storage medium
JP5063022B2 (en) Program, information storage medium, and image generation system
JP3735325B2 (en) Image generator
JP3706545B2 (en) Image generation method and program used therefor
JP2830765B2 (en) Polygon data sorting method and game device using the same
JP5464630B2 (en) Image display device
JP3652586B2 (en) Image drawing system
JP4391633B2 (en) Image generation system and information storage medium
JPH11238145A (en) Two-dimensional display method of three-dimensional stereoscopic structure
JP4521811B2 (en) Program, information storage medium, and image generation system
JP4528056B2 (en) Program, information storage medium, and image generation system
JP2611599B2 (en) Computer graphics data processing method and apparatus
JP4936521B2 (en) Data structure, file data processing program, information storage medium
JP4554834B2 (en) Image processing apparatus and method, and program thereof

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070529

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070613

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071005

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20101012

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111012

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121012

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20131012

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees