WO1995009390A1 - Pipeline processor, clipping processor, three-dimensional simulator and pipeline processing method - Google Patents
Pipeline processor, clipping processor, three-dimensional simulator and pipeline processing method Download PDFInfo
- Publication number
- WO1995009390A1 WO1995009390A1 PCT/JP1994/001596 JP9401596W WO9509390A1 WO 1995009390 A1 WO1995009390 A1 WO 1995009390A1 JP 9401596 W JP9401596 W JP 9401596W WO 9509390 A1 WO9509390 A1 WO 9509390A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- pipeline
- data
- processing
- input
- signal
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/30—Clipping
Definitions
- the present invention relates to a pipeline processing device, a clipping processing device using the same, a three-dimensional simulator device, and a pipeline processing method.
- three-dimensional simulators such as three-dimensional simulators used for video games of pseudo three-dimensional images, flight control of aircraft and various vehicles, and the like, are required to perform processing in real time.
- Data processing is generally performed using a technique called pipeline processing.
- pipeline processing refers to a data processing method in which hardware for each function is arranged in series, and the processing load of each is equalized.
- FIGS. 20 (A) and (B) there are known conventional pipeline processing devices which employ two methods of clock driven pipeline processing or data driven pipeline processing. I have.
- registers 450 to 4553 clocked by a common clock signal are connected in series, whereby the data processing unit 45 An overnight process is performed at 5 to 4 5 8.
- the flow of data to be processed is controlled at the same timing in synchronization with a common clock signal, so that the control method is extremely simple. is there.
- registers 460 to 463 driven only when processing data exists in the preceding stage are connected in series.
- data processing in the data processing units 465 to 468 is performed.
- each of the registers 460 to 463 is driven only when processing data exists in the preceding stage, and moves forward. Therefore, when pipeline processing is being performed, there will always be a processing delay at all registry nights. As a result, the uniformity of data processing, which is the purpose of pipeline processing, can be achieved more efficiently.
- clock-driven pipeline processing device and the data-driven pipeline processing device have problems as described below.
- a common clock is supplied to all the registers 450 to 453, thereby transferring the processing data. Therefore, even if there is no processing data before the register evening, The processing data will be transferred one after another. As a result, if there is a register where no processing data is input, there will be a register without processing data during pipeline processing, and the data processing, which is the purpose of pipeline processing, will be uniformed. Can not do.
- the clock-driven pipeline processing device has the advantage that the control method is simple, but has the drawback that it is difficult to achieve uniform pipeline processing.
- a pipeline processor with a single-drive type has the advantage that the pipeline processing can be made uniform to some extent, but the control method is not easy, and in some cases, the overall pipeline processing is not possible.
- the present invention has been made in view of the above-described conventional problems, and an object of the present invention is to optimize a pipeline processing, and furthermore, a pipeline processing apparatus having a simple configuration and control method.
- An object of the present invention is to provide a clipping processing device and a pipeline processing method using the same.
- the present invention provides a method for processing data by pipeline processing.
- a plurality of pipeline registers that sequentially transfer data through the processing data divided into a plurality of sections
- Pipeline control means for receiving the pipeline drive signal and the flash signal, and controlling the data transfer in the pipeline register based on the pipeline drive signal and the flash signal;
- the pipeline control means controls the pipeline control means
- processing of one pipeline register evening of the plurality of pipeline registry evenings is performed in a pipeline register evening preceding the one pipeline registry evening.
- the processing data is transferred only when the processing data is present at the preceding stage, and the processing data divided into a plurality of pieces is automatically set by validating the flash signal after the input is completed. Can be discharged. That is, when the pipeline drive signal is valid (asserted), the data transfer is always performed only when the processing data is present in the preceding stage, so that the pipeline processing is uniformed, Processing speed can be increased. On the other hand, by making the flash signal valid, the processing data after the input is completed can be automatically discharged regardless of whether or not the processing data exists in the previous stage, and this processing data can be used for the next processing. Can be used quickly. As a result, the present invention is an optimal pipeline processing device for an image calculation process in which a calculation process must be performed in real time, for example, a click processing device.
- the present invention is also a pipeline processing device for transferring processed data overnight by pipeline processing,
- a plurality of pipeline registers for sequentially transferring the processed data, which is divided into a plurality of sections, using a transfer clock
- a plurality of pipeline control means connected to each of the plurality of pipeline registers and generating and outputting a signal for permitting data transfer to the connected pipeline register using the transfer clock;
- the pipeline controller means controls the pipeline controller means,
- the input flash signal input from the preceding pipeline control means is
- first, data driven pipeline processing is realized as follows. That is, when the input pipeline drive signal of the first-stage pipeline control means is enabled (for example, "1"), data transfer to the first-stage pipeline register is permitted, and the first-stage pipeline register is enabled. “1" is stored in the first storage means. Then, when the input pipeline drive signal becomes “1”, the output pipeline drive signal becomes “1” in the first-stage pipeline control means because both the previous and current input pipeline drive signals become “1”. It becomes “1". This allows data transfer to the second stage pipeline register. As described above, it is guaranteed that the processing data is transferred only when the processing data exists at the preceding stage, and the data-driven pipeline processing is realized.
- the pipeline drive permission unit includes a unit for clearing data held in the first storage unit, and the pipeline drive permission unit holds the data held in the first storage unit by the data clear unit. The pipeline processing device is initialized by clearing the data.
- the data held in the first storage means is cleared by the data clear means.
- the data clear means As a result, it is possible to return to the initial state in which no processing data to be subjected to the data-driven pipeline processing is input. And this In the case of, for example, by enabling the clear signal and the flash signal at the same time, it is possible to input new data to the pipeline register while automatically discharging all data already in the pipeline register. It becomes possible.
- the present invention is also a clipping processing apparatus for performing a clipping process using a plurality of clipping planes on a three-dimensional object represented by a set of a plurality of polygons,
- An internal dividing point calculating means for calculating an internal dividing point for the polygon by using the input polygon image data when the inside / outside determining means determines that the polygon is internally divided;
- Output control means for generating a pipeline drive signal and a flash signal and outputting the generated signal to the internally dividing point calculating means
- a plurality of pipeline registers for sequentially transferring polygon image data divided into a plurality of sections
- Pipeline control means for receiving the pipeline drive signal and the flash signal from the output control means, and controlling the data transfer in the pipeline register based on the pipeline drive signal and the flash signal;
- the pipeline control means controls the pipeline control means
- the polygon image data is output in the pipeline register of the preceding stage of the one pipeline register of the plurality of pipeline registers.
- the present invention in the internal dividing point calculation processing in the clipping processing device, it is possible to realize a pipeline processing method that enables not only overnight driving-type pipeline processing but also automatic discharge using a flash signal.
- the polygon image data used in the clipping processing device is a very long data that is divided into a plurality of sections, the clipping processing method of the present invention is very effective.
- the present invention further includes a dividing unit that performs division for internally dividing a distance between vertex coordinates of the polygon,
- Means for detecting completion of division by the division means Means for validating the pipeline drive signal when division completion is detected by the detection means.
- the division processing by the internal dividing point calculation means takes the longest time, and further data processing cannot be performed until the result of the division processing is output. Therefore, in this case, the internal dividing point calculation processing is performed by a data driven pipeline method. That is, after detecting the completion of the division, the output control means makes the pipeline drive signal valid, and shifts the polygon image data in the pipeline register one step forward. On the other hand, when the internal dividing point calculation processing for the polygon image data of one section is completed, the flash signal is enabled, and Regardless of whether the pipeline drive signal is valid or invalid, that is, without waiting for division by the division means, the polygon image data is automatically discharged, thereby speeding up the processing.
- the present invention provides the polygon image data which has been subjected to the clipping process using the clipping plane to the interior / outside determination means and the interior dividing point calculation means again, thereby enabling the polygon image data to be output. It is characterized by including means for performing a clipping process by another clipping surface.
- a single clipping processing device can perform clipping processing using a plurality of clipping planes, and can also perform perspective projection conversion processing. Further, in the present invention, since the polygon image data of one section can be automatically discharged by the flash signal, the polygon image data which has been subjected to the clipping processing by one clipping surface is immediately replaced by another clipping surface. The clipping process can be performed by using this method, and the speed of the process can be increased.
- the present invention also provides a three-dimensional simulator including the clipping processing device,
- It is characterized by including at least an image synthesizing means for synthesizing a field-of-view image viewed from a viewer in a virtual three-dimensional space using the polygons subjected to the clipping processing by the clipping processing device.
- the number of polygons that must be processed by the image synthesis means can be significantly reduced, and a three-dimensional simulator apparatus capable of real-time image synthesis can be provided. It can be provided.
- FIG. 1 is a block diagram showing a preferred example of a pipeline processing device according to the present invention.
- FIG. 2 is a block diagram illustrating an example of a pipeline register.
- FIG. 3 is a block diagram illustrating an example of the pipeline control unit.
- FIG. 4 is a schematic diagram for explaining the basic operation of the present embodiment.
- FIG. 5 is a schematic diagram for explaining a characteristic operation of the present embodiment.
- FIG. 6 is an evening timing diagram illustrating the basic operation of the present embodiment.
- FIG. 7 is a timing chart showing a characteristic operation of the present embodiment.
- FIG. 8 is a timing chart showing the state of the flash signal at the subsequent stage after the flash signal is asserted.
- FIG. 9 is a schematic explanatory diagram for explaining the concept of the three-dimensional simulator device to which the present embodiment is applied.
- FIG. 10 is a schematic block diagram showing an example of a three-dimensional simulator device to which the present embodiment is applied.
- FIG. 11 is a schematic explanatory diagram for describing an image processing operation in the three-dimensional operation unit.
- FIG. 12 is a schematic explanatory diagram illustrating the concept of texture mapping.
- FIGS. 13A and 13B show an example of a data format of data handled by the three-dimensional simulator.
- FIG. 14 is a schematic explanatory diagram for explaining a clipping calculation method in the clipping processing device.
- FIG. 15 is a block diagram showing a specific circuit configuration of the clipping processing device.
- FIGS. 16 (A), (B) and (C) are schematic illustrations showing a case where the clipping processing device is used in a self-loop mode.
- FIGS. 17 (A), (B), (C), and (D) are schematic illustrations for explaining the operation of the clipping processing device.
- FIGS. 18 (A) and (B) are schematic explanatory diagrams for explaining the operation of the clipping processing device.
- FIGS. 19 (A), (B) and (C) are schematic illustrations for explaining the operation of the clipping processing device.
- FIGS. 20 (A) and (B) are schematic block diagrams showing a conventional clock driven pipeline processing device and a data driven pipeline processing device.
- FIG. 1 shows a block diagram of an embodiment of a pipeline processing device according to the present invention.
- the pipeline processing apparatus is configured to include a pipeline register section 500 to 506 and a pipeline control section 530 to 536.
- the pipeline register section 500-506 has the function of actually storing the processing data to be processed in the pipeline
- FIG. 1 shows the case where the 4-bit data is pipeline processed for simplicity. Is shown. That is, a 4-bit input data D [0: 3] is input to each of the pipeline register units 500 to 506, and an output data Q [0: 3] is input to the subsequent data processing unit. Output. However, if the data processing is not performed in the data processing units 520 to 524 and the data is shifted as it is, the output data Q [0: 3] is directly input to the subsequent pipeline register.
- the overnight transfer in the pipeline register section 500 to 506 is performed by a clock BCLK which is a transfer signal. However, overnight transfer by the clock BCLK is valid only when transfer is enabled by the transfer enable signal LD.
- the transfer permission signal LD is generated by the pipeline control units 530 to 536.
- the pipeline control units 530 to 536 have a function of controlling data pipeline processing in the pipeline register units 500 to 506. Specifically, a transfer permission signal LD is generated, thereby permitting / disabling data transfer in the pipeline register sections 530 to 536, and performing this control.
- Clocks BCLK for clock synchronization, an input pipeline drive signal ENIN for pipeline drive, and an input flash signal FLASH IN for flash operation are input to the respective pipeline control units 530 to 536. Is done. Then, the transfer enable signal LD, the output pipeline drive signal ENOT, and the output flash signal FLASHOUT are generated by these input signals.
- the transfer permission signal LD is output to the pipeline register, thereby enabling or disabling the overnight transfer.
- the output pipeline drive signal ENOUT and the output flash signal FLASH OUT are input to the subsequent pipeline control unit as the input pipeline drive signal ENIN and the input flash signal FLASH IN, respectively.
- the RST signal is input to the pipeline register sections 500 to 506 and the pipeline control sections 530 to 536, and an initial reset at power-on is performed.
- an inverted signal of the CLE AR signal (hereinafter, referred to as a * CLEAR signal) is input to the pipeline control units 530 to 536, and when desired at the time of data processing, the pipeline control units 530 to 536 Clear the content — you can do it. As a result, it is possible to clear the control contents of the data processing sequentially stored in the pipeline control unit, and to perform the data processing again according to the control contents in the initial state.
- FIG. 2 shows the detailed configuration of the pipeline register section 500-506.
- the pipeline registers 500 to 506 are provided with pipeline registers 510 to 516 for holding and transferring data, and the transfer clocks of these pipeline registers 510 to 516 are CLK.
- a NAND circuit 518 that generates
- the input data D [0: 3] is input to the pipeline registers 510 to 516, which are held in accordance with the transfer clock RCLK, and transferred to the subsequent stage as output data Q [0: 3].
- the transfer permission signal LD and the clock BCLK are input to the NAND circuit 518.
- the clock BCLK is valid only when the transfer permission signal LD is “1”, and the transfer clock RCLK is generated. This makes it possible to permit or prohibit overnight transfer.
- FIG. 3 shows a detailed configuration of the pipeline control units 530 to 536.
- the pipeline control units 530 to 536 include a flash permission unit 540 and a pipeline drive permission unit 550.
- the inverter circuit 546 generates an inverted signal of the clock B CLK (hereinafter, referred to as * BCLK).
- the flash permission unit 540 has a function of generating an output flash signal FLASHOUT from the input flash signal FLASH IN from the preceding stage, and includes a register 542 and an OR circuit 544.
- the register 542 holds the input flash signal FLASH IN in synchronization with the * BCLK signal, and outputs this to the OR circuit 544.
- the OR circuit 544 outputs this as the FLA SHOUT signal.
- This FLASHOUT signal becomes the FLASHIN signal of the pipeline control unit at the subsequent stage, and becomes a signal enabling the flash operation at the subsequent stage.
- the pipeline drive permission unit 550 includes a register with selector 552, AND circuits 556, 558, 560, and an OR circuit 554.
- the register with selector 552 holds the data input to the DA terminal when the SA terminal is '1', and stores the data input to the DB terminal when the SA terminal is '0'. Will be retained.
- the output of the AND circuit 556 is input to the SA terminal, and the LD signal and the * CLEAR signal are input to the AND circuit 556.
- EN IN signal is input to DA terminal.
- the output of the AND circuit 558 is input to the DB terminal, and the output of the selector-equipped register 552 and the water CLEAR signal are input to the AND circuit 558.
- the output pipeline drive signal EN 0 UT is generated.
- This EN OUT signal becomes the EN IN signal of the subsequent-stage pipeline control section, and becomes a signal that enables the subsequent-stage pipeline drive.
- FIGS. Figure 4 shows the basic operation of the pipeline processing device.
- Al, A2, A3 to An represent actual processing data stored in the pipeline register section 500 to 506.
- the EN IN signal becomes active ('1,)
- the transfer of the pipeline register is enabled, and the data stored in the pipeline register is transferred one stage at a time. Is done.
- processing data A1 is input to the first stage pipeline register at the next time 2.
- the EN IN signal becomes “1” at times 3 and 4
- the processing data A2 and A3 are input to the device at times 4 and 5, respectively, and the processing data already input are output.
- the FLASH IN signal is in the active state ('1') after the input of the processing data A1 to A3, which has been divided into a plurality of sections, is completed.
- the input processing data A1 to A3 are automatically discharged regardless of the ENIN signal.
- the FLASH signal becomes “1”.
- the processing data A1 to A3 are transferred to the subsequent stage one after another in synchronization with the clock BCLK, and are automatically discharged.
- FIG. 5 shows a more characteristic operation of the pipeline processing apparatus.
- the ENIN signal becomes '1', so processing data A1 to A3 are input.
- the EN IN signal and the FLASH signal become “1” simultaneously. This means that the input of processing data A1 to A3 ends, and at the same time This means that B1 is input to the pipeline processor. Therefore, at time 7, processing data B1 is input to the first row. The processing data A3 is transferred to the second stage. By the way, at time 7, the ENIN signal is not in the active state. Therefore, even at time 8, the processing data B1 remains held at the first stage.
- the processed data A1 to A3 are already driven by the FLASH signal once, regardless of the ENIN signal, they are shifted one after another in synchronization with the clock BCLK, It will be automatically discharged outside.
- this pipeline processing device has such features, the control unit at the previous stage that controls this device only needs to output the processing data to this device and after finishing the FLASH signal to just £ 1 '. Thereafter, there is no need to control the processing data. Therefore, the control unit at the previous stage for controlling the present apparatus only needs to control the processing data to be output next. As a result, the circuit configuration can be extremely simplified, the circuit scale can be made very small, and the design of a complicated control circuit becomes unnecessary, so that the design period can be shortened.
- the processing data in the pipeline register is kept valid, only the contents of the pipeline processing are cleared, and immediately after the clear, the processing is newly performed. It is possible to restart the pipeline processing by inputting the data.
- the operation of the pipeline processing device in this case will be described.
- the basic operation timing of the present pipeline processing device shown in FIG. 6 will be described. This is the operation when the FLASH signal is not input.
- the * CLEAR signal is negated, ready for processing input.
- negation means changing a signal from a logically active state to an inactive state.
- the EN IN signal ⁇ asserted by preceding pipeline control unit, wherein c of the processing in the pipeline register of the preceding stage data show that came, and is asserted, logically signal Means to change from an inactive state to an active state.
- the LD signal is asserted by the OR circuit 554 shown in FIG. 3, and the processing data is taken into the pipeline register at this stage.
- the ENOUT signal that is output to the subsequent stage is not asserted. That is, the EN IN signal indicating whether the processing data of the previous stage is valid is asserted, but the output of the register-equipped register 552 indicating whether the processing data of this stage is valid is not asserted. The output of AND circuit 560 will not be asserted.
- the EN IN signal is also asserted, and processing data is continuously input from the preceding stage.
- the information that the processing data of this stage is valid is already stored in the register with selector 552. Therefore, the output of the register with selector 552 is asserted, and the output of the AND circuit 560 is asserted. As a result, an EN OUT signal for sending the data of this stage to the next stage is output.
- the EN IN signal is asserted again, and the ENOUT signal is immediately asserted accordingly. This point is different from the above-mentioned time 2 in that the EN OUT signal is immediately asserted in this way.
- the register-with-selection register 552 indicating whether the processing data of this stage is valid or not is displayed. Is already asserted.
- FIG. 7 differs from FIG. 6 in that the * CLEAR signal is asserted and the FLASH IN signal is asserted at the same time.
- the LD signal is also asserted by the OR circuit 554, so that the processing data of the preceding stage is transferred to the subsequent stage and stored.
- the FLASH IN signal is stored by the register 542, and the FLASH HOUT signal is output with a length of two clocks. Then, as shown in FIG. 8, the FLASHOUT signal is asserted for one clock time longer at each subsequent stage.
- the register 552 with a selector to which the EMIN signal is input is cleared. Therefore, even while the flash operation is being performed and the processing data is being automatically ejected, the LD signal is asserted only when the processing data is present at the previous stage.
- various devices have been known as a three-dimensional simulation device for use in, for example, a three-dimensional game or a flight control of airplanes and various vehicles.
- image information on the three-dimensional object 300 shown in FIG. 9 is stored in the device in advance.
- the three-dimensional object 300 represents a display object such as a landscape that the player (viewer) 302 can see through the screen 306.
- the image information of the three-dimensional object 300, which is the display object is perspectively transformed on the screen 306, thereby forming a pseudo three-dimensional image (projected image). 8 is displayed as an image on the screen 36.
- predetermined three-dimensional arithmetic processing is performed based on the operation signals. Specifically, first, a calculation process is performed to determine how the viewpoint position, the line-of-sight direction of the player 302 or the position, the direction, and the like of the moving object on which the player 302 rides change according to the operation signal. Next, an arithmetic process is performed to determine how the image of the three-dimensional object 300 looks on the screen 300 with the change in the viewpoint position, the line-of-sight direction, and the like. The above arithmetic processing is performed in real time following the operation of the player 302.
- the player 302 can view, in real time, a change in the scenery or the like accompanying a change in his / her own viewpoint position, line-of-sight direction or the position or direction of the moving body on which the player is riding, as a pseudo 3D image. You will be able to experience a virtual 3D space.
- FIG. 10 shows an example of the configuration of the present three-dimensional simulator device.
- the description will be made by taking as an example a case in which the three-dimensional simulated device is applied to a three-dimensional game.
- the three-dimensional simulation apparatus includes an operation unit 412, a virtual three-dimensional space operation unit 413, an image synthesis unit 401, and a CRT 446.
- the virtual three-dimensional space calculation unit 4 13 the virtual three-dimensional space is set according to the operation signal from the operation unit 4 12 and the game program stored in the central processing unit 4 14. That is, an operation of locating the three-dimensional object 300 in which position and in which direction is performed.
- the image synthesizing unit 401 includes an image supply unit 410 and an image forming unit 428. Then, in the image synthesizing unit 401, image synthesis of the pseudo three-dimensional image is performed according to the setting information of the virtual three-dimensional space by the virtual three-dimensional space calculation unit 500.
- the three-dimensional object constituting the virtual three-dimensional space is represented as a polyhedron divided into three-dimensional polygons.
- a three-dimensional object 300 is represented as a polyhedron divided into three-dimensional polygons (1) to (6) (polygons (4) to (6) are not shown).
- the coordinates of each vertex of the three-dimensional polygon and accompanying data (hereinafter, referred to as vertex image information) are stored in the three-dimensional image information storage unit 416.
- various calculations such as rotation and translation, and various coordinate conversions such as perspective projection conversion are performed on the vertex image information in accordance with the setting information of the virtual three-dimensional space calculation unit 413. Then, the vertex image information for which the arithmetic processing has been completed is rearranged in a predetermined order, and then output to the image forming unit 428.
- image information in the polygon is calculated from the polygon data including the vertex coordinates.
- This image information is converted to RGB data by a pallet and mixer circuit 444, and the image is output from a CRT 446.
- a three-dimensional object 300 representing a steering wheel, a building, a signboard, etc. read from the three-dimensional image information storage unit 416, 3 3 3 and 3 3 4 are arranged in a three-dimensional space represented by the world coordinate system (XW, YW, ZW). Thereafter, the image information representing these three-dimensional objects is coordinate-transformed into a viewpoint coordinate system (Xv, Yv, ⁇ ) based on the viewpoint of the player 302.
- the clipping process means image information outside the field of view of the player 302 (or outside the field of view of the window opened in three-dimensional space), that is, the clipping planes 1, 2, 3, 4, 5, 6 Refers to image processing for removing image information outside the area (hereinafter referred to as display area 20) surrounded by.
- the image information required for the subsequent processing by the three-dimensional simulator is only the image information within the field of view of the player 302. Therefore, if other information is removed in advance, the load of subsequent processing can be reduced. That is, since objects exist in all directions around 360 degrees around the player 302, if only objects within the field of view are processed, the amount of data to be processed thereafter is This is a drastic reduction, especially for a 3D simulator that performs real-time image processing.
- the image information of the object outside the field of view of the player 302 (outside the display area 20), for example, a three-dimensional object 334 representing a signboard passing out of the field of view and passing later is removed. It is.
- This removal processing is performed by determining whether each of the clipping planes 1 to 6 is inside or outside the display area, and removing only the outside objects for all the planes. It is.
- the part outside the display area 20 is removed, and only the part inside the display area 20 is thereafter removed. Used for image processing. Further, the image information of the three-dimensional object 300 such as the handle completely included in the display area 20 is used as it is for the subsequent image processing.
- perspective projection transformation to the screen coordinate system (XS, YS) is performed only on the object within the display area 20, and then sorting processing is performed.
- the three-dimensional object is The polygons are divided into three-dimensional polygons (1) to (80) (three-dimensional polygons (41) to (80) are not shown), and image processing is performed on all these polygons.
- the color in one polygon can be filled with only one designated color.
- processing such as rotation, translation, coordinate transformation such as perspective projection transformation, and clipping of the 3D object 3332 is performed for each of the 3D polygons A, B, and C constituting each surface.
- grid and striped patterns are treated as textures, and are processed separately from polygon processing. That is, as shown in FIG. 10, a texture information storage section 442 is provided in the image forming section 428, and texture information to be attached to each three-dimensional polygon, that is, a grid shape, a stripe shape, The image information such as the pattern of the image is stored.
- the address of the texture information storage unit 442 for designating the texture information is given as the texture coordinates V TX and V TY of each vertex of each three-dimensional polygon. Specifically, as shown in FIG. 12, for each vertex of polygon A, (V TX0, V TY0), (V TX1, V TY1), (V TX2, V TY2), (V TX3 , VTY3) are set.
- the processor unit 4330 in the image forming unit 428 obtains the texture coordinates TX and TY for all the dots in the polygon from the texture coordinates VTX and VTY of each vertex. Then, based on the obtained texture coordinates TX and TY, the corresponding texture information is read from the texture information storage section 442 and output to the pallet & mixer circuit 444. As a result, it is possible to synthesize an image of a three-dimensional object on which a texture such as a lattice or stripe is applied as shown in FIG.
- the three-dimensional object 332 is represented as a set of three-dimensional polygons. Therefore, the continuity of the luminance information at the boundary of each 3D polygon becomes a problem. For example, when trying to represent a sphere using multiple 3D polygons, if all the dots in the 3D polygon are set to the same brightness, we actually want to represent "roundness”, but we want to represent each 3D polygon. May not be represented as “roundness”. Therefore, in the 3D simulation and installation device, this is avoided by a method called go-mouth-and-shading.
- luminance information VBR10 to VBRI3 of each vertex is given to each vertex of the three-dimensional polygon as shown in FIG.
- the luminance information for all dots in the three-dimensional polygon is obtained by interpolation from the luminance information VBR 10 to VBR 13 of each vertex.
- the three-dimensional simulation apparatus is configured to enable high-quality and high-speed image processing using the texture mapping method and the Gouraud shading method.
- the image information of the polygon is configured as a set of a plurality of polygonal display coordinates, vertex texture coordinates, vertex luminance information, and the like, which are separated by one.
- object data which is data common to the same three-dimensional object
- frame data which is data common within the same frame.
- FIG. 13 shows an example of these data formats. Therefore, how to efficiently and properly process a plurality of divided data as shown in the figure in the image supply unit 410 is one of the major technical issues.
- the vertex luminance information V BRIO to VBRI3 is 10 to; [3, the vertex texture coordinates V TX0 to VTY3 are T T0 to ⁇ 3, and the vertex The coordinates VXO to VZ3 are represented as X0 to Z3.
- the image supply unit 410 incorporates a cribing processing device 420 for performing a cribing process.
- the clipping processing device 420 will be described.
- FIG. 14 shows a case where the polygon 70 is clipped by the clipping plane 1.
- ⁇ (X0, Y0, Z0)
- vl (XI, Y1, Zl)
- v2 (X2, Y2, Z2)
- h (V) aX + bY + cZ + d is a plane equation of the clipping plane 1.
- an inside / outside determination is made as to whether the vertex coordinates VO to V3 are in the area outside or inside the clipping plane 1. For this purpose, first, the following calculation is performed.
- Vn Vn is determined to be in the display area
- h (Vn)> 0 Vn is in the non-display area.
- h (V0) and h (V3)> 0 indicate that V0 and V3 are in the non-display area
- h (VI) and h (V2) ⁇ 0 VI and V2 in the display area. Is determined to be in the area.
- clipping points that is, internally dividing points Vk and VI are obtained. Then, the vertices V0 and V3 are excluded from the target of the subsequent processing. Instead, the subdivision points Vk and VI are set as the vertices of the polygon 70 and used for the subsequent processing.
- Vk V0 + tk (VI-VO)
- VI V2 + 11 (V3-V2)
- V2 + 11 (V3-V2) Although all the calculations of the interior dividing points above are described using the example of the interior dividing point calculation of the vertex coordinates, in the present embodiment, other vertex texture coordinates and vertex luminance information
- the subdivision by clipping is calculated.
- the number of vertices of a polygon is described using a four-vertex polygon as an example.However, in the present embodiment, the clipping process can be performed on a polygon having any n vertices. it can. Therefore, in this case, the above formula can be represented by the following general formula, and the output data Wout is obtained by this.
- Wout Wa + 1 i (Wb -Wa)
- W vertex luminance coordinates 10 0 to: tn, vertex texture coordinates TX0, ⁇ 0 to ⁇ , ⁇ , vertex coordinates ⁇ , ⁇ , ⁇ ⁇ to ⁇ , ⁇ , ⁇
- the one to be clipped a, b to be clipped Point pick-up between two points
- FIG. 15 shows an example of a block diagram of a clicking processing device 420 to which the pipeline processing device is applied.
- the clipping processing device includes an input / output determination unit 2 10 composed of an input unit 2 12, a plane equation calculation unit 2 16 and a clipping instruction unit 2 18, and a polygon data register 2. 14 ⁇ Output control unit 220 which controls the pipeline processing device ⁇ Internal division point operation unit 230 which actually computes the internal division point ⁇ To feed back the output data to the input unit 2 1 2 It is configured to include the output multiplexer 260.
- Data for controlling the frame data, object data, polygon data, and the clipping processing device after the coordinate conversion into the viewpoint coordinate system is sequentially input to the input unit 212. Then, from these data, necessary data extraction and various data format conversion are performed in the clipping processing device. For example, the angle, size, etc. of the monitor displaying the image are extracted from the frame data, and the coefficients of the plane equation for clipping are extracted. In addition, data necessary for the processing of each object is extracted from the object data. From the polygon data, vertex coordinates, vertex texture coordinates, vertex luminance information, and the like of the polygon are extracted, and necessary data format conversion is performed. The vertex coordinates are converted to the plane equation calculation unit 211 and the vertex coordinates are calculated. Coordinates, vertex texture coordinates, vertex luminance information, etc. are output to the polygon data register.
- the polygon data register 2 14 sequentially stores vertex coordinates, vertex texture coordinates, vertex luminance information, and the like input from the input unit 2 12, and stores data (Wa, Wb) according to the instruction of the clipping instruction unit 2 18. Output to the internal dividing point calculation unit 230.
- the inside / outside determination is performed for all the vertex coordinates Vn of the polygon according to the following calculation formula.
- the coefficients a, b, c, and d are set by the frame data.
- h (Vn) a Xn + b Yn + c Zn + d
- the clipping instructing unit 218 instructs the polygon data register 218 to output the vertex coordinates, vertex texture coordinates, and vertex luminance information of the polygon corresponding to the index data. Similarly, the clipping instructing unit 218 instructs the output control unit 220 to control the internal dividing point calculation corresponding to the index data. Further, in this case, h (Vm) and h (Vn) (hereinafter, hm and hn) calculated by the plane equation calculation unit 216 by the clipping instruction unit 218 are internally divided point calculation units. Output to 230.
- this polygon will be a clipped-out polygon. Therefore, in this case, an instruction is issued to the polygon data register 210 and the output control unit 220 to invalidate all the image configuration data corresponding to the polygon. Conversely, if all vertices of the polygon are determined to be within the display area, this polygon is a polygon that does not require an internal point calculation. Therefore, in this case, the polygon data register 214 and the output control unit 220 are instructed not to perform the internal dividing point calculation for the polygon.
- the internal dividing point calculation section 230 is an absolute value calculation section 23, 23, a division section 240, and a subtraction section.
- the configuration of 30 to 536 is the same as that described above.
- the BCLK signal, the * CLEAR signal, and the RST signal are omitted.
- are calculated from hm and hn output from the clipping instructing unit 2 18 and then to the division unit 2 40. Is output.
- Wb-Wa is calculated from the polygon data registers Wa and Wb input from the polygon data register 210 through the pipeline register registers 504 and 510, and the pipeline register is calculated.
- the signal is output to the multiplication unit 248 via the evening unit 502.
- Wa and W include not only vertex coordinates of the polygon but also vertex texture coordinates and vertex luminance information. This is because these data are necessary for later image processing calculations when polygons are internally divided.
- the multiplication unit 248 calculates t i (Wb ⁇ Wa) from the t i and Wb ⁇ W a, and outputs the calculated t i (Wb ⁇ Wa) to the addition unit 250 through the pipeline register unit 504.
- the adder 250 the ti (Wb-Wa) input through the pipeline register evening section 504 and the polygon register overnight section register 214, and the pipeline register evening section 501, 50 3, from Wa input via 5 0 5
- Wout Wa + 1 i (Wb — Wa) is calculated. This means that the internal dividing point has been obtained.
- the calculation result Wout in the internally dividing point calculation unit 230 is input to the output multiplexer 260 through the pipeline control unit 506.
- FIG. 11 when performing clipping processing, as shown in FIG. 11, one polygon must be subjected to clipping processing using a plurality of clipping surfaces 1 to 6.
- the inner loop operation is performed so that the clipping process using the plurality of clipping surfaces can be performed by one or a plurality of clipping devices.
- the output multiplexer 260 is provided to form an inner loop in this case.
- FIGS. 16 (A) to 16 (C) show the connections when the inner loop is formed in this manner.
- FIG. 16 (A) after outputting the processed data, new data is input, and the clipping process is performed by the clipping plane to be performed first. Thereafter, as shown in FIG. 1B, the input and output are connected by the output multiplexer 260 to form an inner loop. As a result, the data clipped by the first clipping plane is returned to the input, and the clipping processing by the next clipping plane is performed on the returned data. In this way, after the clipping process is sequentially performed according to the predetermined clipping plane order, the inner loop is released, and the data is output to the next stage.
- the clipping processing device is provided in a plurality of stages and the above processing is performed.
- An example of such a case is shown. In this case, for example, the first stage clipping.
- a coordinate transformation unit 418 is a block for performing coordinate transformation of a polygon into a viewpoint coordinate system
- an output format transformation unit 421 transforms a polygon transformed into a polygon by clipping processing into, for example, a quadrangle. This is a block that performs the process of format-converting the polygon into a polygon.
- the clipping processing in the clipping processing apparatus is performed by pipeline processing using the pipeline registers 500 to 506 and the pipeline control units 530 to 536.
- pipeline processing using the pipeline registers 500 to 506 and the pipeline control units 530 to 536.
- the input data may be data that comes from the previous stage of the clipping processing device or data that is input / output to / from a self-loop from the output multiplexer 260.
- the input data is subjected to a predetermined format conversion in the input unit 212, and then output to the inside / outside determination unit 210, the polygon data register 214, and the like.
- the vertex coordinates (XO to Z3) in FIG. 13 are output to the inside / outside determination unit 210 to perform the inside / outside determination operation.
- the polygon data register 214 outputs vertex luminance information (10 to 13), vertex texture coordinates (TX0 to TY3), vertex coordinates (X0 to $ 3), and the like.
- the plane equation calculation unit 216 in the inside / outside determination unit 210 performs inside / outside determination on this polygon based on the input vertex coordinates (X0 to ⁇ 3). For example, when clipping occurs at vertices V0 and VI and V2 and V3, the indexing result (2, 3) is stored in the clipping instruction unit 218 as the result of the inside / outside determination.
- the vertex luminance information, the vertex texture information, and the vertex coordinates are output by the polygon data register 214 in a predetermined format based on the index data.
- (Wa, Wb) (I0, I1), (11, —), (12, —), (12, 13), (TX0, TX1), ( ⁇ , TY1), (TX1, ), (TY1, one), (TX2, one), (TY2, one), (TX2, TX3), (TY2, TY3), (XO, X1), (YO, Yl), (ZO, Zl) , (XI, one), (Yl,-), (Zl,-), (X2,-), (Y2,-), (Z2,-), (X2, X3), (Y2, Y3), ( The data in the format of Z2, Z3) are sequentially output to the pipeline registers 500 and 501.
- the pipeline register is driven by the EN IN signal.
- the output of hm and hn to the absolute value calculation units 232 and 234 by the clipping instruction unit 218 is output when the data processing in the division unit 240 for the previous polygon data is completed.
- the overnight processing in the divider 240 takes the longest time, for example, the time of 12 clocks.
- data processing takes one clock time. Therefore, as shown in FIG. 17A, the data output from the polygon data register 214 is the result of the operation performed by the division unit 240 when the data is transferred to the pipeline registers 502 and 503. Wait for and stop. That is, while (10, I 1 -10) is stored in the pipeline register sections 503 and 502, EN IN is negated and the pipeline processing stops. Then, after the elapse of a predetermined time, when the operation result is output from the divider 240, the EN IN signal is asserted, and the pipeline processing is restarted, and the state shown in FIG.
- the pipeline register 500 and 500 are synchronized in synchronization with the clock BCLK.
- (D) of the figure II is input to the pipeline register section 506 as it is without performing the internal dividing point calculation.
- (12, 13-12) is input to the pipeline register 503, 502 in order to find the subdivision of the vertices V2 and V3.
- the vertex luminance information (10, II, 12, 13) of the polygon is changed to (IK, II, 12, IL).
- the vertex texture coordinates (TXO to TY3) and the vertex coordinates ( ⁇ to ⁇ 3) are subjected to the internal dividing point calculation, and a new polygon after clipping processing is formed.
- FIG. 18 (A) shows a state in which the last data (Z2, Z3) of this polygon is output from polygon data register 214.
- the output control unit 220 asserts the FLASHIN signal at the end of the input of the data which is divided into a plurality of blocks. Then, the data that is divided into one by these plural numbers is automatically driven and discharged independently of the pipeline driving by the EN IN signal. That is, as shown in FIG. 18B, although data to be processed next has not been input to the pipeline registers 500 and 501, the data driven once by the FLASH IN signal is It is automatically shifted to the next pipeline register. Further, in FIG. 19A, the brightness information (10, II) of the polygon to be processed next is input to the pipeline registers 501 and 500, and in FIG. 19B, the division result 240 Is waiting to be output. Even in such a case, as shown in FIGS. 19 (B) and (C), the data on the polygon before being driven once is automatically discharged regardless of the output of the division result.
- the data once driven by the FLASHIN signal does not need to be controlled at all thereafter, the control method becomes very simple, and the design period can be shortened. Further, as shown in FIGS. 19B and 19C, once the data is driven by the FLASHIN signal, there is no need to wait for the division unit 240 to output the division result. As a result, the data for which the arithmetic processing has been completed can be used immediately for the next arithmetic processing.
- a self-loop is formed as shown in FIGS. 15 and 16, and the data on which the clipping process by one surface has been completed is returned to the input unit 212 via the output multiplexer 260. Then, for the returned data, the inside / outside determination unit 210 makes an inside / outside determination for the next plane, and performs a clipping process on the next plane. For this reason, it is necessary to return to the inside / outside determination unit 210 via the output multiplexer 260 as soon as possible after the completion of the calculation by the internal division point calculation unit.
- a conventional pipeline processing device using the overnight drive method as shown in Figs.
- the pipeline processing apparatus of the present embodiment has the advantages of both a pipeline driven pipeline processing apparatus that can improve the efficiency of pipeline processing and a clock driven pipeline processing apparatus that has a simple control method.
- it is the most suitable pipeline processing device for 3D simulation equipment that requires real-time pipeline processing.
- the instantaneous arithmetic processing to which the present invention is applied is not limited to the above-described clipping processing, but can be applied to, for example, various pipeline processing that requires real-time arithmetic processing.
- the input position of the input flash signal in the present invention is not limited to the first stage, but may be input to, for example, the second stage, the third stage, or the like.
- the present invention can be applied to various things such as a game machine for business use, a game machine for home use, a flight simulator, a driving simulator used in a driving school, and the like. Furthermore, the present invention can be applied to a large attraction type game device and a simulation device in which many players participate. Further, the arithmetic processing performed in the virtual three-dimensional space arithmetic means, the image synthesizing means, the clipping processing device, and the like described in the present invention may be performed using a dedicated image processing device, or may be a general-purpose microcontroller. The processing may be performed softly using a pew or DSP.
- the arithmetic processing performed by the virtual three-dimensional space arithmetic means, the image synthesizing means, and the like is not limited to those described in the present embodiment.
- the three-dimensional simulator apparatus to which the present invention is applied includes a configuration in which a pseudo three-dimensional image obtained by image synthesis is displayed on a display called a head mounted display (HMD).
- HMD head mounted display
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
- Image Generation (AREA)
- Advance Control (AREA)
Description
明 細 書 パイプライン処理装置、 クリッピング処理装置、 3次元シミュレータ装置及 びパイプライン処理方法
[技術分野]
本発明はパイプライン処理装置およびこれを用いたクリッビング処理装置、 3 次元シミュレータ装置、 パイプライン処理方法に関する。
[背景技術]
従来、 3次元シミュレータ装置、 例えば疑似 3次元画像のビデオゲーム、 飛行 機および各種乗物の操縦シュミレー夕等に使用される 3次元シミユレ一夕装置で は、 リアルタイムに処理を行うことの必要性から、 一般にパイプライン処理と呼 ばれる手法によりデータ処理を行っている。
ここで、 パイプライン処理とは、 機能別のハードウェアを直列に配置し、 それ それの処理負荷を均一化するデータ処理手法をいう。
さて、 従来のパイプライン処理装置としては、 図 2 0 ( A ) 、 ( B ) に示すよ うに、 クロック駆動型パイプライン処理またはデータ駆動型パイプライン処理の 2つの手法の処理装置が知られている。
図 2 0 ( A ) に示すクロック駆動型パイプライン処理装置では、 共通のクロヅ ク信号によりクロック駆動されるレジス夕 4 5 0〜4 5 3が直列に接続され、 こ れによりデータ処理部 4 5 5〜4 5 8でのデ一夕処理が行われる。 このクロック 駆動型パイプライン処理装置によれば、 処理されるべきデータの流れは、 全て共 通のクロック信号により同期して、 同じタイミングで制御されるため、 制御方法 が極めて簡単であるという利点がある。
また、 図 2 0 ( B ) に示すデ一夕駆動型パイプライン処理装置は、 前段に処理 データが存在する場合にのみ駆動されるレジスタ 4 6 0〜4 6 3が直列に接続さ れ、 これによりデータ処理部 4 6 5〜4 6 8でのデータ処理が行われる。 このデ 一夕駆動型のパイプライン処理装置によれば、 各レジス夕 4 6 0〜4 6 3は前段 に処理データが存在する場合にのみ駆動され前に進む。 したがって、 パイプライ ン処理を行っている際に、 全てのレジス夕に必ず処理デ一夕が存在することにな る。 この結果、 パイプライン処理の目的であるデータ処理の均一化をより効率よ く図ることができる。
しかし、 上記クロック駆動型パイプライン処理装置およびデ一夕駆動型パイプ ライン処理装置には、 以下に述べるよう問題点があった。
まず、 クロック駆動型パイプライン処理装置では、 全てのレジス夕 4 5 0〜 4 5 3に共通のクロックを供給し、 これにより処理デ一夕を転送している。 したが つて、 レジス夕の前段に処理データが存在しない場合でも、 クロックに同期して
次々に処理デ一夕が転送されてしまうことになる。 この結果、 処理デ一夕が入力 されないレジス夕が存在すると、 パイプライン処理の際に、 処理データのないレ ジス夕が存在することとなり、 パイプライン処理の目的であるデータ処理の均一 化を図ることができない。
次に、 データ駆動型パイプライン処理装置であるが、 これについては、 まず、 その制御方法、 構成方法がなかなか容易ではないという欠点がある。 即ち、 この 手法によれば、 前段に処理データが存在する場合にのみ処理データを前に進める よう制御するコントロール回路を設けなければならない。 しかし、 このようなコ ントロール回路を設けた場合、 その構成、 制御方法をどのようなものにするかは、 なかなか容易な問題ではない。 また、 このコントロール回路は全てのレジス夕 4 6 0〜4 6 3に接続されるため、 ハードウェアの負担を軽減するためにも、 その 構成はなるべく簡易で、 回路点数の少ないものである必要があり、 この点が大き な技術的課題となる。
また、 データ駆動型パイプライン処理装置では、 前段にデータが存在する場合 にしか前に進むことができない。 したがって、 例えば図 2 0 ( B ) において、 レ ジス夕 4 6 1は、 レジス夕 4 6 0に処理デ一夕が存在する場合にしか、 処理デ一 夕を後段のデ一夕処理部 4 6 6 , 4 6 7 , 4 6 8、 レジス夕 4 6 2 , 4 6 3に転 送することができない。 したがって、 前段の状態とは無関係にレジスタ 4 6 1の デ一夕を後段に転送したいというような事情が生じた場合、 パイブラィン処理の 効率化を図ることができず、 全体として処理時間の適正化を図ることができない ことになる。
以上のように、 クロック駆動型パイプライン処理装置には、 制御方法は簡易で あるという長所はあるが、 パイプライン処理の均一化を図るのが困難であるとい う欠点がある。 逆に、 デ一夕駆動型パイプライン処理装置には、 ある程度パイプ ライン処理の均一化を図ることはできるという長所はあるが、 制御方法が容易で はなく、 場合によってはパイプライン処理の全体的な適正化を図ることができな いという欠点がある。 したがって、 両者のパイプライン処理の長所を兼ね備えた パイプライン処理装置、 例えば両者のパイプライン処理を混在できるようなパイ プライン処理装置の存在が望まれている。
[発明の開示]
本発明は、 以上ような従来の課題に鑑みなされたものであり、 その目的とする ことは、 パイプライン処理の最適化を図ることができ、 しかも、 構成、 制御方法 が簡易なパイプライン処理装置、 これを用いたクリッピング処理装置、 パイプラ ィン処理方法を提供することにある。
前記目的を達成するために本発明は、 処理データをパイプライン処理によりデ
一夕転送するパイプライン処理装置であって、
複数個で 1区切りとなった処理デ一夕を順次データ転送する複数のパイプライ ンレジス夕と、
パイプライン駆動信号及びフラッシュ信号が入力され、 該パイプライン駆動信 号及びフラッシュ信号に基づいて前記パイプラインレジス夕における前記データ 転送を制御するパイプラインコントロール手段とを含み、
前記パイプラインコントロール手段が、
前記パイプライン駆動信号が有効になった場合には、 前記複数のパイプライン レジス夕の中の 1のパイプラインレジス夕について該 1のパイプラインレジス夕 の前段のパイプラインレジス夕に処理デ一夕が存在する場合にのみ該 1のパイプ ラインレジス夕へのデ一夕転送を許可する手段と、
前記フラッシュ信号が有効となった場合には、 前記パイプライン駆動信号の有 効 ·無効に無関係に既に入力が終了した 1区切りの処理データを前記複数のパイ プラインレジス夕から自動排出する手段とを含むことを特徴とする。
本発明によれば、 前段に処理デ一夕が存在する場合にのみ処理データが転送さ れ、 複数個で 1区切りとなった処理データは、 入力終了後にフラッシュ信号を有 効とすることで自動排出することができる。 即ち、 パイプライン駆動信号が有効 (アサート) の場合には、 常に前段に処理デ一夕が存在する場合にのみデ一夕転 送が行われることになるため、 パイプライン処理が均一化され、 処理の高速化が 図れる。 一方、 フラッシュ信号を有効とすることで、 前段に処理データが存在す るか否かにかかわらず入力終了後の処理デ一夕を自動排出でき、 これにより、 こ の処理データを次の処理に迅速に利用することができる。 この結果、 本発明は、 特にリアルタイムに演算処理を行わなければならない画像演算処理、 例えば、 ク リッビング処理装置等に最適なパイプライン処理装置となる。
また、 本発明は、 処理データをパイブライン処理によりデ一夕転送するパイプ ライン処理装置であって、
複数個で 1区切りとなった処理データを転送クロックを用いて順次デ一夕転送 する複数のパイプラインレジス夕と、
前記複数のパイプラインレジス夕の各々に接続され、 接続された前記パイブラ インレジス夕への前記転送クロックを用いたデータ転送を許可する信号を生成し 出力する複数のパイプラインコントロール手段とを含み、
前記パイプラインコント口一ル手段が、
前段のパイプラインコントロール手段から入力される入力パイプライン駆動信 号あるいは入力フラッシュ信号のうちいずれかが有効となった場合には当該パイ プラインコントロール手段が接続されるパイプラインレジス夕へのデ一夕転送を 許可する信号を生成するとともに、 該入力パイブラィン駆動信号を第 1の記憶手
段に保持し、 前回にデータ転送が許可された時に該第 1の記憶手段に保持された 入力パイプライン駆動信号及び現在前段から入力される入力パイプライン駆動信 号が共に有効な場合には、 後段のパイプラインコントロール手段へと出力する出 力パイプライン駆動信号を有効とするパイプライン駆動許可手段と、
前段のパイプラインコントロール手段から入力される入力フラッシュ信号を第
2の記憶手段に保持し、 1転送ク口ック期間前に該第 2の記憶手段に保持された 入力フラッシュ信号あるいは現在前段から入力される入力フラッシュ信号のうち のいずれかが有効な場合には、 後段のパイプラインコントロール手段へと出力す る出力フラッシュ信号を有効とするフラッシュ許可手段とを含むことを特徴とす る。
本発明では、 まず、 以下のようにしてデータ駆動型のパイプライン処理が実現 される。 即ち、 1段目のパイプラインコントロール手段の入力パイプライン駆動 信号を有効 (例えば" 1 " ) にすると、 1段目のパイプラインレジス夕へのデー 夕転送が許可されるとともに、 1段目の第 1の記憶手段に" 1 " が記憶される。 そして、 次に、 入力パイプライン駆動信号が" 1 " になると、 1段目のパイプラ インコントロール手段では前回及び現在の入力パイプライン駆動信号が共に" 1 " となるため、 出力パイプライン駆動信号が" 1 " となる。 これにより 2段目の パイプラインレジス夕へのデータ転送が許可される。 以上のようにして、 前段に 処理デ一夕が存在する場合にのみ処理デー夕が転送されることが保証され、 デー 夕駆動型のパイプライン処理が実現される。
一方、 本発明では、 以下のようにして処理データの自動排出が実現される。 即 ち、 1段目のパイプラインコントロール手段の入力フラッシュ信号が" 1 " とな ると、 2段目以降の入力フラッシュ信号についても全て" 1 " となり、 全てのパ ィプラインレジス夕のデータ転送がまず許可される。 そして、 この入カフラッシ ュ信号は第 2の記憶手段に保持される。 これにより、 1段目の出力フラッシュ信 号は少なくとも 1転送クロック期間、 2段目は少なくとも 2転送クロック期間と いうように、 出力フラッシュ信号は、 1段後段になる毎に 1転送クロック期間長 く有効となる。 これにより、 フラッシュ信号が有効になった時点においてパイプ ラインレジス夕に存在する処理データを全て自動排出することが可能となる。 また、 本発明は、 前記パイプライン駆動許可手段が、 前記第 1の記憶手段に保 持されるデータをクリア一する手段を含み、 該デ一タクリア一手段により前記第 1の記憶手段に保持されるデータをクリア一することでパイプライン処理装置の 初期化を行うことを特徴とする。
本発明によれば、 データクリア手段により第 1の記憶手段に保持されるデータ がクリアされる。 これにより、 デ一夕駆動型のパイブライン処理を施すべき処理 データが何も入力されていないという初期状態に戻すことができる。 そして、 こ
の場合、 例えばクリア一信号とフラッシュ信号を同時に有効とすることで、 パイ プラインレジス夕内に既にあるデ一夕については全て自動排出しながら、 新たな データをパイプラインレジス夕に入力することが可能となる。
また、 本発明は、 複数のポリゴンの集合で表現された 3次元オブジェクトに対 して複数のクリッビング面を用いたクリッビング処理を施すためのクリッビング 処理装置であって、
入力されるポリゴン画像デ一夕に基づいて、 該ポリゴンが前記クリッビング面 により内分されるか否かを判定する内外判定手段と、
前記内外判定手段によりポリゴンが内分されると判定された場合に、 入力され るポリゴン画像デ一夕を用いて該ポリゴンについての内分点を演算する内分点演 算手段と、
パイプライン駆動信号及びフラッシュ信号を生成し前記内分点演算手段に対し て出力する出力コントロール手段とを含み、
前記内分点演算手段が、
複数個で 1区切りとなったポリゴン画像データを順次データ転送する複数のパ ィプラインレジス夕と、
前記出力コントロール手段から前記パイプライン駆動信号及び前記フラッシュ 信号が入力され、 該パイプライン駆動信号及びフラッシュ信号に基づいて前記パ ィプラインレジス夕における前記デ一夕転送を制御するパイプラインコントロー ル手段とを含み、
前記パイプラインコントロール手段が、
前記パイプライン駆動信号が有効になった場合には、 前記複数のパイプライン レジス夕の中の 1のパイプラインレジス夕について該 1のパイプラインレジス夕 の前段のパイプラインレジス夕にポリゴン画像デ一夕が存在する場合にのみ該 1 のパイプラインレジス夕へのデ一夕転送を許可する手段と、
前記フラッシュ信号が有効となつた場合には、 前記パィプライン駆動信号の有 効 ·無効に無関係に既に入力が終了した 1区切りのポリゴン画像デ一夕を前記複 数のパイプラインレジス夕から自動排出する手段とを含むことを特徴とする。 本発明によれば、 クリッピング処理装置における内分点演算処理において、 デ 一夕駆動型のパイブラィン処理が可能となるとともに、 フラッシュ信号による自 動排出も可能なパイプライン処理手法を実現できる。 特に、 クリッピング処理装 置に使用されるポリゴン画像データは、 複数個で 1区切りになった非常に長いデ 一夕となるため、 本発明のクリッビング処理手法は非常に有効なものとなる。 また、 本発明は、 前記内分点演算手段が、 ポリゴンの頂点座標間の距離を内分 するための除算を行う除算手段を含み、
前記出力コントロール手段が、 前記除算手段の除算完了を検出する手段と、 該
検出手段により除算完了が検出された場合に前記パイプライン駆動信号を有効に する手段とを含むことを特徴とする。
本発明では、 内分点演算手段における除算処理が最も時間がかかり、 また、 こ の除算処理の結果が出力されるまでは、 その後のデータ処理を行うことができな い。 そこで、 この場合には、 データ駆動型のパイプライン方式で内分点演算処理 を行うことになる。 即ち、 出力コントロール手段は、 除算完了を検出した後に、 パイブラィン駆動信号を有効とし、 パイプラインレジス夕内のポリゴン画像デ一 夕を 1つ前にシフトさせることになる。 一方、 1区切りのポリゴン画像データに ついての内分点演算処理が終了すると、 フラッシュ信号を有効にすることで、 ノヽ。 ィプライン駆動信号の有効 ·無効に関係なく、 即ち除算手段における除算完了を 待つことなく、 ポリゴン画像データが自動排出され、 これにより処理の高速化が 図られる。
また、 本発明は、 1のクリッピング面を用いたクリッピング処理が完了したポ リゴン画像データを再度前記内外判定手段及び前記内分点演算手段に入力させ、 これにより該ポリゴン画像デ一夕に対して他のクリッビング面によるクリッピン グ処理を施させる手段を含むことを特徴とする。
本発明によれば、 1つのクリッピング処理装置により、 複数のクリッピング面 によるクリッピング処理を行わせることができ、 更に、 透視投影変換処理を行わ せることもできる。 そして、 本発明では、 フラッシュ信号により 1区切りのポリ ゴン画像デ一夕を自動排出できるため、 1のクリッピング面によりクリッピング 処理が施されたポリゴン画像デ一夕に対して、 即座に他のクリッビング面による クリッビング処理を施すことができ、 処理の高速化を図ることができる。
また、 本発明は、 上記クリッピング処理装置を含む 3次元シミュレータ装置で あって、
前記クリッビング処理装置によりクリッビング処理が施されたポリゴンを用い て、 仮想 3次元空間において観者から見える視界画像を合成する画像合成手段を 少なくとも含むことを特徴とする。
本発明によれば、 クリッピング処理装置によりクリツピング処理を施すことで、 画像合成手段において処理しなければならないポリゴンの数を大幅に減少させる ことができ、 リアルタイムに画像合成が可能な 3次元シミュレータ装置を提供で きることとなる。
[図面の簡単な説明]
図 1は、 本発明に係るパイプライン処理装置の好適な一例について示すプロッ ク図である。
図 2は、 パイプラインレジス夕部の一例を示すブロック図である。
図 3は、 パイプラインコントロール部の一例を示すプロック図である。
図 4は、 本実施例の基本的な動作を説明するための概略図である。
図 5は、 本実施例の特徴的な動作を説明するための概略図である。
図 6は、 本実施例の基本的な動作を示す夕イミング図である。
図 7は、 本実施例の特徴的な動作を示すタイミング図である。
図 8は、 フラッシュ信号がアサートされた後の後段のフラッシュ信号の状態を 示すタイミング図である。
図 9は、 本実施例が適用される 3次元シミュレータ装置の概念について説明す るための概略説明図である。
図 1 0は、 本実施例が適用される 3次元シミュレータ装置の一例について示す 概略プロック図である。
図 1 1は、 3次元演算部での画像処理演算について説明するための概略説明図 である。
図 1 2は、 テクスチャマッピングの概念について説明する概略説明図である。 図 1 3 (A) 、 (B ) .は、 3次元シミュレータ装置により取り扱われるデータ のデータフォーマッ トの一例を示すものである。
図 1 4は、 クリッビング処理装置におけるクリッビング演算手法を説明するた めの概略説明図である。
図 1 5は、 クリッピング処理装置の具体的な回路構成を示すブロック図である。 図 1 6 (A) 、 (B ) 、 (C ) は、 クリッピング処理装置を自己ループモード で使用する場合について示す概略説明図である。
図 1 7 (A) 、 (B ) 、 (C ) 、 (D ) は、 クリッピング処理装置の動作につ いて説明するための概略説明図である。
図 1 8 (A) 、 ( B ) は、 クリッピング処理装置の動作について説明するため の概略説明図である。
図 1 9 (A ) 、 ( B ) 、 ( C ) は、 クリッピング処理装置の動作について説明 するための概略説明図である。
図 2 0 (A) 、 (B ) は、 従来のクロック駆動型パイプライン処理装置とデー 夕駆動型パイプライン処理装置を示す概略プロック図である。
[発明を実施するための最良の形態]
1 . パイプラインレジスタ部およびパイプラインコントロール部の説明
図 1には、 本発明に係るパイプライン処理装置の実施例のプロック図が示され る。 同図に示されるように本パイプライン処理装置は、 パイプラインレジス夕部 5 0 0〜5 0 6、 およびパイプラインコントロール部 5 3 0〜5 3 6を含んで構 成される。 これにより、 データ処理部 5 2 0〜5 2 4に対し処理すべきデ一夕が 供給される。
パイプラインレジスタ部 500-506は、 パイプライン処理すべき処理デ一 夕を実際に記憶する機能を持ち、 図 1には、 説明を簡単にするため 4ビットのデ 一夕をパイプライン処理する場合について示されている。 即ち、 それそれのパイ プラインレジスタ部 500〜 506には 4ビッ卜の入力デ一夕 D [0 : 3] が入 力され、 後段のデータ処理部に出力デ一夕 Q [0 : 3] を出力している。 ただし、 デ一夕処理部 520〜524においてデータ処理を行わず、 データをそのままシ フ トするのであれば、 出力データ Q [0 : 3] は後段のパイプラインレジス夕に そのまま入力される。
パイプラインレジス夕部 500〜506におけるデ一夕転送は、 転送信号であ るクロック BCLKにより行われる。 ただし、 クロック B CLKによるデ一夕の 転送は、 転送許可信号 LDにより転送が許可された場合にのみ有効となる。 そし て、 この転送許可信号 LDは、 パイプラインコントロール部 530〜 536によ り生成される。
パイプラインコントロール部 530〜 536は、 パイプラインレジス夕部 50 0〜506におけるデータのパイプライン処理を制御する機能を持つ。 具体的に は、 転送許可信号 LDを生成して、 これによりパイプラインレジス夕部 530〜 536におけるデータ転送の許可 ·不許可を行い、 この制御を行っている。
それそれのパイプラインコントロール部 530〜536には、 クロック同期を とるためのクロック B CLK、 パイプライン駆動を行うための入力パイプライン 駆動信号 E N I N、 フラッシュ動作を行うための入力フラッシュ信号 F L A S H INが入力される。 そして、 これらの入力信号により、 転送許可信号 LD、 出力 パイプライン駆動信号 E NO UT、 出力フラッシュ信号 F LAS HOUTが生成 される。 転送許可信号 LDはパイプラインレジス夕部に出力され、 これによりデ 一夕転送の許可 ·不許可が行われる。 また、 出力パイプライン駆動信号 ENOU Tおよび出力フラッシュ信号 FLASH OUTは、 それそれ入力パイプライン駆 動信号 ENIN、 入力フラッシュ信号 FLASH I Nとして、 後段のパイプライ ンコントロール部に入力される。
なお、 パイプラインレジス夕部 500〜 506およびパイプラインコントロー ル部 530〜 536には R S T信号が入力され、 電源投入時における初期リセッ 卜が行われる。 また、 パイプラインコントロール部 530〜536には、 CLE AR信号の反転信号 (以下、 * CLEAR信号と表す) が入力され、 データ処理 の際の所望の時に、 パイプラインコントロ一ル部 530〜536の内容をクリア —することが可能となる。 これにより、 パイプラインコントロール部に順次記憶 されたデータ処理の制御内容を、 ー クリア一して、 初期状態の制御内容により 再度データ処理をやり直すことが可能となる。
図 2には、 パイプラインレジス夕部 500〜506の詳細な構成が示される。
同図に示されるように、 パイプラインレジスタ部 500〜 506は、 デ一夕を保 持 ·転送するためのパイプラインレジス夕 510〜 516と、 これらのパイブラ インレジスタ 510〜 516の転送クロック: CLKを生成する NAN D回路 5 18を含んで構成される。
パイプラインレジス夕 510〜516には入力データ D [0 : 3] が入力され、 転送クロック RCLKに従ってこれが保持され、 出力デ一夕 Q [0 : 3] として 後段に転送される。
NAND回路 518には、 転送許可信号 LDとクロック BCLKが入力される。 そして、 転送許可信号 LDが ' 1' の場合のみクロック BCLKが有効となり、 前記転送クロック RCLKが生成される。 これにより、 デ一夕転送の許可 '不許 可が可能となる。
図 3には、 パイプラインコントロール部 530〜536の詳細な構成が示され る。 同図に示されるように、 パイプラインコントロール部 530〜536は、 フ ラッシュ許可部 540およびパイプライン駆動許可部 550を含んで構成される。 なお、 インバー夕回路 546は、 クロック B CLKの反転信号 (以下、 *BCL Kと表す) を生成するものである。
フラッシュ許可部 540は、 前段からの入力フラッシュ信号 FLASH I Nに より出力フラッシュ信号 FLASHOUTを生成する機能を有し、 レジス夕 54 2、 OR回路 544を含んで構成される。 レジス夕 542は、 *BCLK信号に '同期して入力フラッシュ信号 FLASH I Nを保持し、 これを OR回路 544に 出力している。 OR回路 544は、 FLASH I N信号またはレジス夕 542に 記憶されたデータのいずれか一方が有効な場合 ( '1, の場合) 、 これを FLA SHOUT信号として出力する。 この FLASHOUT信号は、 後段のパイプラ インコントロール部の FLA SH I N信号となり、 後段のフラッシュ動作を許可 する信号となる。
パイプライン駆動許可部 550は、 セレクタ付レジス夕 552、 AND回路 5 56, 558, 560、 0 R回路 554を含んで構成される。
OR回路 554では、 入力パイプライン駆動信号 EN I Nまたは入カフラッシ ュ信号 FLASH I Nのうちいずれか一方が有効な場合 ( '1' の場合) 、 LD 信号が生成され、 パイプラインレジス夕部および AND回路 556に出力される。 これによりこの段のパイプラインレジス夕部のパイプライン駆動が許可されるこ とになる。
セレクタ付レジス夕 552では、 SA端子が ' 1' の場合には DA端子に入力 されたデ一夕が保持され、 SA端子が '0, の場合には DB端子に入力されたデ 一夕が保持される。 この SA端子には、 AND回路 556の出力が入力され、 こ の AND回路 556には、 LD信号と *CLEAR信号が入力されている。 また、
DA端子には EN I N信号が入力される。 さらに、 DB端子には、 AND回路 5 58の出力が入力され、 この AND回路 558にはセレクタ付レジス夕 552の 出力と水 CLE AR信号が入力されている。
この構成により、 * CLEAR信号が '0' となると、 SA端子、 DB端子が ともに '0, となり、 セレクタ付レジス夕 552の記憶データがクリア一される ことになる。
また、 EN I N信号または FLASH I N信号のいずれかが '1' となり LD 信号が '1' となると、 SA端子が '1' となり、 EN I N信号の内容が記憶さ れ、 セレクタ付レジス夕 552の記憶データが更新される。 逆に、 LD信号が ' 05 である場合は、 セレクタ付レジスタ 552の出力デ一夕が入力にフィードバ ックされ、 前回の記憶データが保持されることになる。
EN I N信号およびセレクタ付レジスタ 552の出力がともに '1' の場合、 即ち前段のパイプラインレジス夕部およびこの段のパイプラインレジスタ部のデ 一夕がともに有効な場合は、 出力パィプライン駆動信号 E N 0 U Tが生成される。 この EN OUT信号は、 後段のパイプラインコントロール部の EN I N信号とな り、 後段のパイプライン駆動を許可する信号となる。
次に、 本パイプライン処理装置の動作について図 4、 図 5を用いて説明する。 図 4には、 本パイプライン処理装置の基本的な動作が示される。 Al, A2, A 3〜Anはパイプラインレジス夕部 500〜506に記憶される実際の処理デ —夕を表している。 同図に示されるように EN I N信号がアクティブ状態 ( '1 , ) になるとパイプラインレジス夕部の転送が許可され、 パイプラインレジス夕 部に記憶されるデ一夕が 1段ずつ後段に転送される。 例えば、 同図では、 時刻 1 において EN IN信号が ' 1, となるため、 次の時刻 2で処理デ一夕 A 1が 1段 目のパイプラインレジス夕部に入力される。 また、 同様に時刻 3, 4において E N IN信号が ' 1' となるため、 それそれ時刻 4, 5において処理デ一夕 A 2, A 3が本装置に入力され、 既に入力された処理デ一夕は順次後段にシフ卜される。 同図では、 このような複数個で 1区切りとなった処理デ一夕 A 1〜A3の入力 が終了した後、 FLASH I N信号がアクティブ状態 ( '1' ) となっている。 これにより入力された処理デ一夕 A 1〜A 3は、 EN I N信号とは無関係に自動 排出されることになる。 例えば、 同図では、 時刻 6において FLASH信号が ' 1' となる。 これにより時刻 7より、 処理デ一夕 A1〜A3は、 クロック BCL Kに同期して、 次々に後段に転送され、 自動排出されることになる。
図 5には、 本パイプライン処理装置のさらに特徴的な動作が示される。 時刻 1, 3, 4においては, ENIN信号が '1, となるため、 処理デ一夕 A1〜A3が 入力される。 次に、 時刻 6において、 EN I N信号および FLASH信号が同時 に ' 1' となる。 これは、 処理デ一夕 A 1〜A 3の入力が終了し、 同時に次の処
理デ一夕 B 1が本パイプライン処理装置に入力されることを意味している。 した がって、 時刻 7において処理デ一夕 B 1が 1段目に入力される。 また、 処理デ一 夕 A 3は、 2段目に転送される。 さて、 時刻 7では、 E N I N信号がアクティブ 状態となっていない。 したがって、 時刻 8においても処理データ B 1は 1段目に 保持されたままとなる。 これに対して、 処理データ A 1〜A 3については、 一度、 既に F L A S H信号により駆動されているため、 E N I N信号とは全く無関係に、 クロック B C L Kに同期して、 次々に後段にシフトして、 自動的に外部に排出さ れることになる。
本パイプライン処理装置は、 このような特徴を持っため、 本装置を制御する前 段のコントロール部は、 本装置に処理デ一夕を出力し終わつた後 F L A S H信号 を £ 1 ' とするだけで、 それ以降、 この処理データについての制御を行う必要が なくなる。 したがって、 本装置を制御する前段のコントロール部は、 次に出力す る処理データの制御のみを行えばよくなる。 この結果、 回路構成が非常に単純化 でき、 回路規模を非常に小さくできるとともに、 複雑な制御回路の設計が必要な くなるため、 設計期間の短縮化を図ることも可能となる。
2 . クリァ一動作への適用
さて、 従来のパイプライン処理装置において、 パイプライン処理の内容を一度 クリア一にして、 パイプライン処理を新たにやり直そうとする場合、 パイプライ ンレジスタ部内の記憶内容を全てクリア一する必要があった。 しかし、 このよう にパイプラインレジス夕部の記憶内容を全てクリァ一にすると、 クリァー動作の 前にパイプラインレジス夕部に記憶されているデータが失われてしまうことにな る。 しかし、 場合によっては、 この記憶データを有効なままにして、 パイプライ ン処理の内容だけをクリア一したい場合がある。 このような場合には、 例えば、 パイプラインレジス夕部の先頭にダミーのデータを入力して、 これにより必要な データを押し出してやる手法も考えられるが、 これには無駄な動作、 無駄な時間 が必要となる。 本パイプライン処理装置によれば、 このような場合にも、 パイプ ラインレジス夕部内の処理データは有効なままとして、 パイプライン処理の内容 だけをクリア一にして、 クリア一後、 即座に新たにデ一夕を入力してパイプライ ン処理をやり直すことが可能となる。 以下、 この場合の本パイプライン処理装置 の動作について説明する。
まず、 図 6に示される本パイプライン処理装置の基本的な動作のタイミングに ついて説明する。 これは、 F L A S H信号が^:く入力されない場合の動作である。 時刻 1では、 * C L E A R信号がネゲートされ、 処理デ一夕の入力の準備がで きる。 ここで、 ネゲートとは、 信号を論理的にアクティブな状態からアクティブ でない状態にすることをいう。
次に、 時刻 2で、 前段のパイプラインコントロール部により EN I N信号がァ サートされ、 前段のパイプラインレジスタ部に処理データが来たことが示される c ここで、 アサートとは、 信号を論理的にアクティブでない状態からアクティブな 状態にすることをいう。 このように、 ENIN信号がアサートされると、 図 3に 示す OR回路 554により LD信号がアサートされ、 この段のパイプラインレジ ス夕部に処理データが取り込まれる。 しかし、 時刻 2においては、 この段には有 効なデ一夕が存在しないため、 後段への出力である ENOUT信号はアサートさ れない。 即ち、 前段の処理デ一夕が有効か否かを示す EN I N信号はアサートさ れているが、 この段の処理データが有効か否かを示すセレクタ付レジス夕 552 の出力がアサートされないため、 AND回路 560の出力はアサートされないこ とになる。
次に、'時刻 3においても EN I N信号がアサートされ、 引き続き前段から処理 デ一夕が入力される。 この場合、 時刻 2において、 既にセレクタ付レジス夕 55 2にはこの段の処理データが有効であるという情報が記憶されている。 したがつ て、 セレクタ付レジス夕 552の出力はアサートされ、 AND回路 560の出力 はアサートされる。 この結果、 この段のデータを次段に送るための EN OUT信 号が出力されることになる。
次に、 時刻 4では、 前段からの処理デ一夕は入力されず、 EN IN信号はアサ ートされない。 したがって、 AND回路 560の出力である ENOUT信号もァ サートされない。
時刻 5では再び EN I N信号がアサートされ、 それに従って ENOUT信号も すぐにアサートされる。 この点が上記の時刻 2の場合と異なり、 このように EN OUT信号がすぐにアサートされるのは、 時刻 5においては、 この段の処理デー 夕が有効か否かを示すセレクタ付レジス夕 552の出力が既にアサートされてい るからである。
時刻 8では、 *CLEAR信号がアサートされ、 これにより再び、 全てのパイ プラインレジス夕部 500〜 506がクリア一される。
時刻 10からは、 また新しい処理デ一夕が入力される。
さて、 時刻 8において * CLEAR信号が入力された時、 この段の処理データ およびこの段以外の全ての段の処理データは保持されたままなので、 この処理デ 一夕が、 このままでは失われてしまう。 したがって、 これらの処理データはクリ ァー動作の前に全て出力されていなければならない。 これを行う一つの手法とし て、 ダミーとなるデ一夕をパイプラインレジス夕部の初段にロードして、 これに より必要な処理データを押し出してやる手法も考えられる。 しかし、 この手法で は、 無駄なデータをロードしてやらなくてはならず時間的にも不利であり、 制御 も複雑となる。 そこで、 本パイプライン処理装置では、 このような場合に FLA
SH信号 (FLASHIN信号および FLASHOUT信号) を使用 ることに なる。 この FLASH信号まで含めたタイミング図が図 7に示される。
図 7が図 6と異なるところは、 * CLEAR信号がアサートされるのと同時に FLASH I N信号もアサートされているところである。 FLASH I N信号が アサートされると、 OR回路 554により LD信号もアサートされるため、 前段 の処理データは後段に転送され記憶される。 また、 レジスタ 542により、 この FLASH I N信号は記憶され、 F LAS HOUT信号は 2クロックの長さで出 力されることになる。 そして、 FLASHOUT信号は、 図 8に示されるように、 1段後段になる毎に 1クロック時間だけ長くアサートされることになる。
これにより、 この段から後ろのパイプラインレジス夕部は、 今この段にまであ る処理データを全て排出することができる。 この場合、 * CLEAR信号により
ENI N信号が入力されるセレクタ付レジスタ 552はクリア一されている。 し たがって、 フラッシュ動作が行われ処理データが自動排出されている間でも、 再 び処理デ—夕が前段に存在している場合にしか、 LD信号はアサ一トされない
(図 7の時刻 10) 。 正確には、 時刻 9において既に初期化が終わっているので、 この段のパイプラインコント nr—ル部は全く通常と同じ動作が可能となる。 そし て時刻 10には、 次の段のパイプラインコントロール部も通常の動作状態に戻る。 同様に、 時刻 11にはさらに次の段のパイプラインコントロール部も通常の状態 に戻ることになる。 このことは、 時刻 9より、 1段目に連続して通常に処理デー 夕が入力されても、 本パイブラィン処理装置の正常な動作が保証されることを示 している。 これによつて、 クリア一動作後、 後段側では、 パイプラインレジスタ 部に残された処理データを自動排出する FLASH動作を行いながら、 前段側で は、 通常通り、 入力された処理データに対するパイプライン処理が可能となる。 3. クリツピング処理への適用
以下、 本パイプライン処理装置を、 画像処理におけるクリッピング処理に適用 した場合の例について示す。
(1) 3次元シミュレータ装置全体の説明
まず、 本パイプライン処理装置が適用された 3次元シミユレ一夕装置の全体に ついて説明する。
従来、 例えば 3次元ゲームあるいは飛行機及び各種乗物の操縦シュミレー夕等 に使用される 3次元シミユレ一夕装置として種々のものが知られている。 このよ うな 3次元シミュレータ装置では、 図 9に示す 3次元物体 300に関する画像情 報が、 あらかじめ装置に記憶されている。 この 3次元物体 300は、 プレーヤ (観者) 302がスクリーン 306を介して見ることができる風景等の表示物を 表すものである。 そして、 この表示物である 3次元物体 300の画像情報をスク リーン 306上に透視投影変換することにより疑似 3次元画像 (投影画像) 30
8をスクリーン 3 0 6上に画像表示している。 この装置では、 プレーヤ 3 0 2が、 操作パネル 3 0 4により回転、 並進等の操作を行うと、 この操作信号に基づいて 所定の 3次元演算処理が行われる。 具体的には、 まず、 操作信号によりプレーヤ 3 0 2の視点位置、 視線方向あるいはプレーヤ 3 0 2の搭乗する移動体の位置、 方向等がどのように変化するかを求める演算処理が行われる。 次に、 この視点位 置、 視線方向等の変化に伴い、 3次元物体 3 0 0の画像がスクリーン 3 0 6上で どのように見えるかを求める演算処理が行われる。 そして、 以上の演算処理はプ レ一ャ 3 0 2の操作に追従してリアルタイムで行われる。 これによりプレーヤ 3 0 2は、 自身の視点位置、 視線方向の変化あるいは自身の搭乗する移動体の位置、 方向の変化に伴う風景等の変化を疑似 3次元画像としてリアルタイムに見ること が可能となり、 仮想的な 3次元空間を疑似体験できることとなる。
図 1 0には、 本 3次元シミュレータ装置の構成の一例が示される。 なお、 以下 の説明では、 3次元シミユレ一夕装置を 3次元ゲームに適用した場合を例にとり 説明を進める。
図 1 0に示すように、 この 3次元シミュレ一夕装置は、 操作部 4 1 2、 仮想 3 次元空間演算部 4 1 3、 画像合成部 4 0 1、 C R T 4 4 6により構成される。 仮想 3次元空間演算部 4 1 3では、 操作部 4 1 2からの操作信号、 中央処理部 4 1 4に記憶されたゲームプログラムに従って、 仮想 3次元空間の設定が行われ る。 即ち、 3次元物体 3 0 0をどの位置に、 どの方向で配置するかの演算が行わ れる。
画像合成部 4 0 1は、 画像供給部 4 1 0、 画像形成部 4 2 8を含んで構成され る。 そして、 画像合成部 4 0 1では、 仮想 3次元空間演算部 5 0 0による仮想 3 次元空間の設定情報に従って疑似 3次元画像の画像合成が行われる。
さて、 本 3次元シミュレータ装置では、 仮想 3次元空間を構成する 3次元物体 は、 3次元のポリゴンに分割された多面体として表現されている。 例えば、 図 9 において 3次元物体 3 0 0は、 3次元のポリゴン(1 ) 〜(6 ) (ポリゴン(4) 〜(6 ) は図示せず) に分割された多面体として表現される。 そして、 この 3次元のポリ ゴンの各頂点の座標および付随データ等 (以下、 頂点画像情報と呼ぶ) が 3次元 画像情報記憶部 4 1 6に記憶されている。
画像供給部 4 1 0では、 仮想 3次元空間演算部 4 1 3の設定情報に従って、 こ の頂点画像情報に対する回転、 並進等の各種の演算および透視投影変換等の各種 の座標変換が行われる。 そして、 演算処理の終了した頂点画像情報は、 所定の順 序に並び換えられた後、 画像形成部 4 2 8に出力される。
画像形成部 4 2 8では、 頂点座標等からなるポリゴンデ一夕から、 ポリゴン内 の画像情報が演算される。 この画像情報はパレツ ト&ミキサ回路 4 4 4で R G B デ一夕に変換され、 C R T 4 4 6より画像出力される。
さて、 以上の構成の 3次元シミュレータ装置では、 画像供給部 4 1 0にて以下 のような演算を行っている。
即ち、 ドライビングゲームを例にとれば、 図 1 1に示すように、 3次元画像情 報記憶部 4 1 6から読み出されたハンドル、 ビル、 看板等を表す 3次元オブジェ ク ト 3 0 0、 3 3 3、 3 3 4が、 ワールド座標系 (XW、 YW、 ZW ) で表現さ れる 3次元空間上に配置される。 その後、 これらの 3次元オブジェク トを表す画 像情報は、 プレーヤ 3 0 2の視点を基準とした視点座標系 (X v、 Y v、 Ζ ν ) へと座標変換される。
次に、 いわゆるクリッピング処理と呼ばれる画像処理が行われる。 ここで、 ク リッビング処理とはプレーヤ 3 0 2の視野外 (または 3次元空間上で開かれたゥ インドウの視野外) にある画像情報、 即ちクリッピング面 1、 2、 3、 4、 5、 6により囲まれる領域 (以下表示領域 2 0とする) の外にある画像情報を除去す る画像処理をいう。 つまり、 本 3次元シミュレータ装置によりその後の処理に必 要とされる画像情報は、 プレーヤ 3 0 2の視野内にある画像情報のみである。 し たがって、 これ以外の情報をあらかじめ除去しておけば、 その後の処理の負担を 減らすことができる。 即ち、 プレーヤ 3 0 2の周りには、 3 6 0度全方向に物体 が存在するので、 このうちの視野内にある物体のみを処理するようにすれば、 そ の後に処理すべきデータ量は大幅に減り、 特に、 リアルタイムにて画像処理を行 う 3次元シミュレータ装置においては、 必須の画像処理となる。
これを図 1 1によりさらに詳しく説明すると以下のようになる。 つまり、 プレ —ャ 3 0 2の視野外 (表示領域 2 0の外) にある物体、 例えば視野から外れて後 ろに通り過ぎて行く看板等を表す 3次元オブジェクト 3 3 4の画像情報が除去さ れる。 この除去処理は、 クリッピング面 1〜6のそれそれの面について、 表示領 域の内にあるか外にあるかを判断し、 全ての面ついて外にあった物体のみを除去 することで行われれる。
これに対して、 表示領域 2 0の境界にあるビル等の 3次元オブジェクト 3 3 3 では、 表示領域 2 0の外にある部分が除去され、 表示領域 2 0の内にある部分の みがその後の画像処理に使用される。 また、 表示領域 2 0内に完全に含まれてい るハンドル等の 3次元オブジェクト 3 0 0の画像情報は、 そのままその後の画像 処理に使用されることとなる。
最後に、 表示領域 2 0内にある物体に対してのみ、 スクリーン座標系 (XS 、 Y S ) への透視投影変換が行われ、 その後、 ソーティング処理が行われる。
なお、 本 3次元シミュレータ装置では、 より高品質の画像をより効率よく画像 合成すべく、 テクスチャマツビング手法およびグーローシヱーディング手法と呼 ぶ手法により画像合成を行っている。 以下、 これらの手法の概念について簡単に 説明する。
図 1 2には、 テクスチャマツビング手法の概念について示される。
図 1 2に示すような 3次元オブジェク ト 3 3 2の各面に例えば格子状、 縞状の 模様等が施されたものを画像合成する場合には、 従来は、 3次元オブジェク トを、 3次元ポリゴン(1 ) 〜(80 ) ( 3次元ポリゴン(41 )〜(80 )については図示せず) に 分割し、 これらの全てのポリゴンに対して画像処理を行っていた。 その理由は、 従来の 3次元シミュレータ装置では、 1つのポリゴン内の色の塗りつぶしは、 指 定された一つの色でしか行えなかったためである。 この結果、 複雑な模様等が施 された高品質な画像を合成する場合には、 ポリゴン数が非常に増加してしまうた め、 実質的に、 このような高品質の画像を合成することは不可能であった。
そこで、 本 3次元シミュレータ装置では、 3次元オブジェクト 3 3 2の回転、 並進、 透視投影変換等の座標変換およびクリッピング等の処理を、 各面を構成す る 3次元ポリゴン A、 B、 Cごとに行い (具体的には各 3次元ポリゴンの頂点ご と) 、 格子状、 縞状の模様については、 テクスチャとして取り扱い、 ポリゴンの 処理と分割して処理を行っている。 即ち、 図 1 0に示すように画像形成部 4 2 8 内にはテクスチャ情報記憶部 4 4 2が設けられ、 この中には各 3次元ポリゴンに はり付けるべきテクスチャ情報、 つまり格子状、 縞状の模様等の画像情報が記憶 されている。
そして、 このテクスチャ情報を指定するテクスチャ情報記憶部 4 4 2のァドレ スを、 各 3次元ポリゴンの各頂点のテクスチャ座標 V TX、 V TY として与えて おく。 具体的には、 図 1 2に示すように、 ポリゴン Aの各頂点に対しては、 (V TX0、 V TY0) 、 (V TX1、 V TY1) 、 (V TX2、 V TY2) 、 (V TX3、 V TY3) のテクスチャ座標が設定される。
画像形成部 4 2 8内のプロセッサ部 4 3 0では、 この各頂点のテクスチャ座標 V TX、 V TY から、 ポリゴン内の全てのドットについてのテクスチャ座標 TX、 TY が求められる。 そして、 求められたテクスチャ座標 TX、 TY により、 テク スチヤ情報記憶部 4 4 2から対応するテクスチャ情報が読み出され、 パレツ ト& ミキサ回路 4 4 4に出力される。 これにより、 図 1 2に示すような、 格子状、 縞 状等のテクスチャが施された 3次元オブジェクトを画像合成することが可能とな る。
また、 本 3次元シミュレータ装置では前記したように 3次元オブジェクト 3 3 2を 3次元ポリゴンの固まりとして表現している。 したがって、 各 3次元ポリゴ ンの境界における輝度情報の連続性が問題となる。 例えば複数の 3次元ポリゴン を用いて球を表現しょうとする場合、 3次元ポリゴン内の全ドッ卜が全て同じ輝 度に設定されると、 実際は 「丸み」 を表現したいのに、 各 3次元ポリゴンの境界 が 「丸み」 として表現されない事態が生じる。 そこで、 本 3次元シミュレ一夕装 置では、 グー口一シェーディングと呼ばれる手法によりこれを回避している。 こ
の手法では、 前記したテクスチャマッピング手法と同様に、 3次元ポリゴンの各 頂点に図 12に示すように各頂点の輝度情報 VBR 10 〜VBRI3 を与えてお き、 画像形成部 428で最終的に画像表示する際に、 この各頂点の輝度情報 VB R 10〜VBR 13 より 3次元ポリゴン内の全てのドッ トについての輝度情報を 補間により求めている。
以上のように、 本 3次元シミュレ一夕装置は、 テクスチャマッピング手法およ びグーローシエーディング手法を用いて、 高画質で高速の画像処理が可能となる 構成となっている。 そして、 これにより、 ポリゴンの画像情報は、 ポリゴンの頂 点表示座標、 頂点テクスチャ座標、 頂点輝度情報等の複数個で 1区切りになった デ一夕として構成されることになる。 さらに、 同一の 3次元オブジェクトに共通 のデータであるオブジェクトデ一夕、 同一のフレーム内で共通のデータであるフ レームデータも存在する。 図 13には、 これらのデータフォーマットの一例が示 される。 したがって、 同図に示すような複数個で一区切りとなったデータを、 画 像供給部 410内において、 どのようにして効率よく、 適正に処理するかが、 一 つの大きな技術的課題となる。
なお、 以下、 説明を簡単にするために、 図 13に示すように、 頂点輝度情報 V BRIO〜VBRI3 を 10〜; [3 と、 頂点テクスチャ座標 V TX0〜 V TY3を T Χ0〜ΤΥ3と、 頂点座標 VXO 〜VZ3 を X0〜Z3 と表すこととする。
(2) クリツピング処理装置の説明
図 10に示すように、 画像供給部 410にはクリッビング処理を行うためのク リツビング処理装置 420が内蔵されている。 以下、 このクリッピング処理装置 420について説明する。
(A) クリッビング処理の手法
まず、 本実施例におけるクリッピング処理の手法について、 図 14を用いて説 明する。 図 14には、 クリッピング面 1によりポリゴン 70をクリッピングする 場合が示される。 同図において、 νθ = (X0、 Y0、 Z0 ) 、 vl = (XI、 Yl、 Zl ) 、 v2 = (X2、 Y2、 Z2 ) 、 v3 = (X3、 Y3、 Z3 ) は、 ポリゴン 10の頂点座標であり、 h (V) =aX + bY + c Z + dは、 クリッピ ング面 1の平面方程式である。
•各頂点座標の内外判定
ポリゴンデータの入力と同時に、 頂点座標 VO〜V3 がクリッピング面 1の外 の領域にあるか内の領域にあるかの内.外判定が行われる。 このために、 まず、 以 下の演算が行われる。
h (V0 ) 二 aXO +b YO + c ΖΟ +d
h (VI ) = aXl +b Yl + c Zl + d
h (V2 ) =aX2 +b Y2 +c Z2 +d
h (V3 ) 二 aX3 +b Y3 +c Z3 +d 上記の演算により、 h (Vn ) ≤0となった場合は Vnは表示領域にあると判 断され、 h (Vn ) 〉0となった場合は Vn は表示外領域にあると判断される。 例えば、 図 14においては、 h (V0 ) 、 h (V3 ) >0より V0、 V3 は表示 外領域にあると判断され、 h (VI ) 、 h (V2 ) ≤0より VI 、 V2 は表示領 域にあると判断される。
•内分点の演算
図 14において、 全頂点が表示領域にあると判断されたポリゴン 72について は、 全頂点がそのまま次の処理 (例えば次の平面に対するクリツピング処理また は透視投影変換) に供されることになる。 また、 全頂点が表示外領域にあると判 断されたポリゴン 74については、 全頂点が次の処理の対象から外される。
これに対して、 クリッビング面 1によりクリヅビングされたポリゴン 70につ いてはクリッピング点、 即ち内分点 Vk、 VI が求められる。 そして、 頂点 V0、 V3 はその後の処理の対象から外され、 その代わりに内分点 Vk、 VI がポリゴ ン 70の頂点とされ、 その後の処理に使用されることとなる。
内分点 Vk、 VI を求めるために、 まず、 それぞれの内分比 tk、 11 が以下 の演算式により求められる。
tk = ( I h (V0 ) I ) / ( I h (VI ) -h (VO ) I )
tl = ( I h (V2 ) I ) / ( I h (V3 ) -h (V2 ) I ) 次に上記の内分比 tk、 tl を用いて、 以下の演算式により内分点 Vk、 VI が求められる。
Vk =V0 + tk (VI - VO )
VI =V2 + 11 (V3 -V2 ) 以上の内分点の演算は全て、 頂点座標の内分点演算を例にして説明したが、 本 実施例では、 これ以外の頂点テクスチヤ座標、 頂点輝度情報についてもクリッピ ングによる内分点を求めている。 また、 ポリゴンの頂点数についても上記の説明 では 4頂点のポリゴンを例にして説明したが、 本実施例ではこれに限らず任意の n個の頂点を持つポリゴンに対してクリッビング処理を行うことができる。 した がって、 この場合、 上記の^算式は以下のような一般式によって表すことができ、 これにより出力データ Wout を求めている。
Wout =Wa + 1 i (Wb -Wa )
W:頂点輝度座標 1 0 〜: t n 、 頂点テクスチャ座標 TX0、 ΤΥ0~ ΤΧη、 ΤΥη、 頂点座標 ΧΟ、 ΥΟ、 Ζ Ο〜Χη、 Υη、 Ζη のうちクリッビングされるもの a、b : クリツビングされるべき 2点間のポィントナンパ
t i :その時の内分比
( B ) クリッピング処理装置の構成および動作
さて、 本実施例のクリッピング処理装置 4 2 0では、 上記の内外判定、 内分点 の演算を、 図 1に示したパイプライン処理装置によりパイプライン処理して、 処 理の高速化を図っている。 図 1 5には、 このパイプライン処理装置を適用したク リッビング処理装置 4 2 0のブロック図の一例が示される。
図 1 5に示すように、 クリッピング処理装置は、 入力部 2 1 2、 平面方程式演 算部 2 1 6およびクリッビング指示部 2 1 8から構成される内外判定部 2 1 0、 ポリゴンデータレジス夕 2 1 4、 パイプライン処理装置の制御を行う出力コント ロール部 2 2 0、 実際に内分点を演算する内分点演算部 2 3 0、 出力データを入 力部 2 1 2にフィードバックするための出力マルチプレクサ 2 6 0を含んで構成 される。
入力部 2 1 2には、 視点座標系へ座標変換された後のフレームデ一夕、 ォブジ ェクトデ一夕、 ポリゴンデ一夕およびクリッビング処理装置の制御を行うための データ等が順次入力される。 そして、 これらのデータから、 クリッピング処理装 置において必要なデ一夕の抽出および各種のデータフォーマッ ト変換が行われる。 例えば、 フレームデータからは画像を表示するモニタの角度、 大きさ等を抽出 し、 これによりクリッピングを行う平面方程式の係数等が抽出される。 また、 ォ ブジェク トデ一夕からは、 オブジェクト毎の処理に必要なデータが抽出される。 また、 ポリゴンデータからは、 ポリゴンの頂点座標、 頂点テクスチャ座標、 頂点 輝度情報等が抽出され、 これに必要なデータフォーマッ ト変換が行われ、 頂点座 標が平面方程式演算部 2 1 6へ、 頂点座標、 頂点テクスチャ座標、 頂点輝度情報 等がポリゴンデータレジス夕 2 1 4へと出力される。
ポリゴンデータレジスタ 2 1 4では、 入力部 2 1 2から入力された頂点座標、 頂点テクスチャ座標、 頂点輝度情報等が順次記憶され、 クリッピング指示部 2 1 8の指示に従って、 データ (Wa、 Wb ) が内分点演算部 2 3 0へと出力される。 平面方程式演算部 2 1 6では、 前記演算手法で説明したように、 下記の演算式 に従い、 ポリゴンの全頂点座標 Vn に対する内外判定が行われる。 ここで、 係数 a, b , c, dは、 フレームデータにより設定されたものである。
h ( Vn ) = a Xn + b Yn + c Zn + d 上記の演算により、 h ( Vn ) ≤0となった場合は Vn は表示領域内にあると 判定され、 h ( Vn ) > 0となった場合は Vn は表示外領域にあると判定される。 クリッピング指示部 2 1 8では、 まず、 前記した平面方程式演算部 2 1 6での 判定結果が、 ポリゴンの各頂点のインデックスデータとして記憶される。 例えば、 図 1 4に示すようにポリゴン 7 0が頂点 V 0と V I、 V 2と V 3で内分されると 判定された場合は、 インデックスデ一夕 (0、 1 ) 、 (2、 3 ) が記憶される。 そして、 クリッピング指示部 2 1 8は、 ポリゴンデ一夕レジス夕 2 1 4に対して、 このィンデックスデ一夕に対応するポリゴンの頂点座標、 頂点テクスチャ座標、 頂点輝度情報を出力するよう指示を行う。 同様にして、 クリッピング指示部 2 1 8は、 出力コントロール部 2 2 0に対して、 このインデックスデ一夕に対応する 内分点演算の制御を行うよう指示を行う。 さらに、 この場合は、 クリッピング指 示部 2 1 8により、 平面方程式演算部 2 1 6で演算された h ( Vm ) 、 h ( Vn ) (以下、 hm 、 hn と呼ぶ) が内分点演算部 2 3 0へと出力される。
また、 ポリゴンの全ての頂点が表示領域外にあるとされた場合、 このポリゴン はクリッピングアウトされたポリゴンとなる。 したがってこの場合は、 当該ポリ ゴンに対応する画像構成デ一夕を全て無効にするよう、 ポリゴンデータレジス夕 2 1 4および出力コントロール部 2 2 0に対して指示が出される。 また、 逆に、 ポリゴンの全ての頂点が表示領域内にあるとされた場合は、 このポリゴンは内分 点演算の必要のないポリゴンとなる。 したがってこの場合は、 ポリゴンデ一タレ ジス夕 2 1 4および出力コントロール部 2 2 0に対して、 当該ポリゴンに対する 内分点演算を行わないよう指示が出される。
出力コント口ール部 2 2 0は、 クリッピング指示部 2 1 8の指示に従つて、 ノヽ' ィプラインレジス夕部 5 0 0〜5 0 6 (図 1 5では" P " と表す) 、 パイプライ ンコントロール部 5 3 0〜5 3 6 (図 1 5では" P C" と表す) の制御を行う。 この制御は、 具体的には、 E N I N信号および F L A S H I N信号により行われ る。
内分点演算部 2 3 0は、 絶対値演算部 2 3 2, 2 3 4、 除算部 2 4 0、 減算部
2 4 2、 乗算部 2 4 8、 加算部 2 5 0、 パイプラインレジス夕部 5 0 0〜 5 0 6、 パイプラインコントロール部 5 3 0〜5 3 6を含んで構成される。
パイプラインレジス夕部 5 0 0〜5 0 6およびパイプラインコントロール部 5
3 0〜5 3 6の構成は前述したものと同様である。 なお、 図 1 5では、 B C L K 信号、 * C L E AR信号、 R S T信号を省略している。
絶対値演算部 2 3 2 , 2 3 4ではクリッビング指示部 2 1 8から出力された h m 、 hn より、 それそれ I hm — hn |、 | hm |が演算され、 除算部 2 4 0へ
と出力される。 除算部 2 4 0では、 これらのデータより内分比 t i = I hm | / I hm - hn | が演算され、 乗算部 2 4 8へと出力される。
減算部 2 4 2では、 ポリゴンデータレジス夕 2 1 4からパイプラインレジス夕 部 5 0 0 , 5 0 1を介して入力されたポリゴンデ一夕 Wa、 Wb より Wb -Wa が演算され、 パイプラインレジス夕部 5 0 2を介して乗算部 2 4 8へと出力され る。 なお、 ここで Wa、 W には、 ポリゴンの頂点座標のみならず、 頂点テクス チヤ座標、 頂点輝度情報も含まれる。 これらのデータは、 ポリゴンが内分される 場合に、 後の画像処理の演算に必要となるものだからである。
乗算部 2 4 8では、 前記 t i、 Wb 一 Wa より、 t i (Wb -Wa ) が演算さ れ、 パイプラインレジス夕部 5 0 4を介して加算部 2 5 0へと出力される。 加算部 2 5 0では、 パイプラインレジス夕部 5 0 4を介して入力された前記 t i (Wb -Wa ) と、 ポリゴンデ一夕レジス夕 2 1 4よりパイプラインレジス夕 部 5 0 1、 5 0 3、 5 0 5を介して入力された Wa より、
Wout =Wa + 1 i (Wb — Wa ) が演算される。 これにより内分点が求められたことになる。
内分点演算部 2 3 0での演算結果 Wout は、 パイプラインコントロール部 5 0 6を介して出力マルチプレクサ 2 6 0に入力される。
さて、 通常、 クリッピング処理を行う場合、 図 1 1に示されるように、 1つの ポリゴンに対して複数のクリツビング面 1〜6によるクリッビング処理を行わな ければならない。 本実施例では、 内部ループ動作を行うことにより、 この複数の クリッビング面によるクリッビング処理を 1つまたは複数のクリッビング処理装 置により行うことができるよう形成されている。 出力マルチプレクサ 2 6 0はこ の場合の内部ループを形成するために設けられたものである。 図 1 6 ( A) 〜 ( C ) には、 このように内部ループを形成した場合の接続が示される。
即ち、 まず、 図 1 6 (A) に示すように、 処理の終了したデ一夕を出力後、 新 たなデータが入力され、 一番初めに行うべきクリッビング面によりクリッビング 処理が行われる。 その後、 同図 (B ) に示すように、 出力マルチプレクサ 2 6 0 により入力と出力が接続され内部ループが作られる。 これにより、 一番初めのク リッビング面によりクリッビング処理されたデータが入力に戻され、 この戻され たデ一夕に対して次のクリッビング面によるクリッビング処理が行われる。 このようにして、 順次、 あらかじめ定められたクリッピング面の順序に従って クリッピング処理が行われた後、 内部ループが解除されて、 データが次段へと出 力される。
図 1 6 ( C ) には、 このクリッピング処理装置を複数段設けて、 上記処理を行
う場合の例が示される。 この場合には、 例えば、 一段目のクリッピング.処理装置
420 aにて、 初めの 3面のクリヅピング面によるクリツピング処理が行われ、 二段目のクリッビング処理装置 420 bにて、 残る 3面のクリッビング処理が行 われる。 なお、 同図において、 座標変換部 418はポリゴンを視点座標系への座 標変換を行うブロックであり、 出力フォーマット変換部 421は、 クリッピング 処理により多角形に変形してしまったポリゴンを例えば 4角形のポリゴンにフォ 一マツ ト変換する処理を行うブロックである。
さて、 本実施例では、 クリッピング処理装置におけるクリッピング処理を、 ノヽ' ィプラインレジス夕部 500〜 506、 パイプラインコントロール部 530〜5 36を用いて、 パイプライン処理により行っている。 以下、 本実施例の特徴的な 動作の一例について説明する。
まず、 入力部 212に、 図 13に示したフォーマットのデ一夕が入力される。 この入力されるデ一夕としては、 クリッビング処理装置の前段から来るデータで ある場合と、 出力マルチプレクサ 260より、 自己ループ出入力されるデータで ある場合がある。
さて、 この入力されたデ一夕は、 入力部 212にて所定のフォーマット変換が なされた後、 内外判定部 210、 ポリゴンデ一夕レジス夕 214等に出力される。 例えば、 内外判定部 210には、 内外判定演算を行うべく、 図 13における頂点 座標 (XO〜Z3 ) が出力される。 また、 ポリゴンデータレジス夕 214には、 頂点輝度情報 (10〜13 ) 頂点テクスチャ座標 (TX0〜TY3)、 頂点座標 (X 0〜Ζ3 )等が出力される。
内外判定部 210内の平面方程式演算部 216では、 入力された頂点座標 (X 0〜Ζ3 ) により、 このポリゴンに対する内外判定が行われる。 内外判定の結果 は、 例えば、 頂点 V0と VI、 V2と V3でクリッピングが生じた場合は (0、 1) 、 (2、 3) というインデックスデ一夕がクリッピング指示部 218に記憶 される。
内外判定部 210での内外判定が終了すると、 ポリゴンデータレジス夕 214 により、 前記したインデックスデ一夕を基に所定のフォーマツ 卜で頂点輝度情報、 頂点テクスチャ情報、 頂点座標が出力される。 ここでは、 例えば (Wa、 Wb ) = (I0、 I1 ) 、 (11 、 —) 、 (12 、 —) 、 (12、 13 ) 、 (TX0、 TX1 ) 、 (ΤΥΟ、 TY1 ) 、 (TX1 、 一) 、 (TY1、 一) 、 (TX2、 一) 、 (TY2、 一) 、 (TX2、 TX3 ) 、 (TY2、 TY3 )、 (XO、 X 1 )、 (YO、 Yl ) 、 (ZO、 Zl ) 、 (XI、 一) 、 (Yl、 -) 、 (Zl、 -)、 (X2、 -) 、 (Y2 、 -) 、 (Z2、 -) 、 (X2、 X3 ) 、 (Y2、 Y3 ) 、 (Z2、 Z3 ) というフォーマツ トのデ一夕が、 順次パイプラインレジ ス夕部 500、 501に出力される。 ここで、 "一" はドントケア一を意味する。
この場合のパイプラインレジス夕部の駆動は EN I N信号により行わ ることに なる。 また、 クリッピング指示部 218による絶対値演算部 232, 234への hm、 hnの出力は、 前回のポリゴンデ一夕に対する除算部 240でのデータ処 理が終わった時点で出力されることになる。
さて、 図 15に示す本実施例では、 除算部 240でのデ一夕処理が最も時間が かかり、 例えば、 12クロックの時間がかかる。 そして、 これ以外の絶対値演算 部 232、 234、 減算部 242、 乗算部 248、 加算部 250では、 データ処 理に 1クロックの時間がかかる。 したがって、 ポリゴンデータレジス夕 214か ら出力されたデータは、 図 17 (A) に示すように、 パイプラインレジス夕部 5 02、 503にデータが転送された時点で、 除算部 240での演算結果を待って 停止する状態となる。 即ちパイプラインレジス夕部 503, 502に (10、 I 1 -10 ) が記憶された状態で、 EN INがネゲートされ、 パイプライン処理が 停止する。 そして、 所定時間経過後、 除算部 240から演算結果が出力されると、 EN IN信号がアサートされパイプライン処理が再開され、 図 17 (B) の状態 になる。
この例では、 頂点 VIと V 2'の間は内分されないため、 II は内分点演算を行 わずそのままの状態で出力する必要がある。 したがって、 この場合は、 除算部 2
40の出力である t iは t i = 0に設定される。 また、 除算部 240での除算の 必要もないため、 クロック BCLKに同期してパイプラインレジス夕部 500〜
506はシフトすることになる。 これにより、 同図 (C) の状態となる。
同図 (C) では、 前記した同図 (B) で t i = 0と設定されているため、 パイ プラインレジス夕部 504には" 0"が入力される。 また、 パイプラインレジス 夕部 506には、 最終演算結果である頂点 V0と V 1の内分点 IK =10 + t i (II 一 10 ) が入力される。 さらに、 パイプラインレジスタ部 503、 502 には (12、 -) が入力される。 この場合、 II と同様に 12 も内分点演算を行 わずにそのままの状態で出力する必要があるため、 t i = 0に設定される。 この 状態で、 パイプラインレジス夕部 500〜506がシフ トすると、 同図 (D) の 状態となる。
同図 (D) に示すように、 パイプラインレジス夕部 506には、 II が内分点 演算を行わないそのままの状態で入力される。 また、 パイプラインレジス夕部 5 03、 502には、 頂点 V 2と V 3の内分点を求めるため (12、 13 - 12 ) が入力される。 このように次々とパイプライン処理されることにより、 ポリゴン の頂点輝度情報 (10、 II 、 12、 13 ) は、 (IK、 II 、 12、 IL ) へ と変更される。 同様にして、 頂点テクスチャ座標 (TXO〜TY3 ) 、 頂点座標 (ΧΟ〜Ζ3 ) についても内分点演算が行われ、 クリッピング処理後の新たなポ リゴンデ一夕が形成されることになる。
さて、 図 18 (A) には、 ポリゴンデータレジス夕 214から、 このポリゴン の最後のデ一夕 (Z2、 Z3 ) が出力された場合の状態が示される。 このように 複数個で 1区切りとなったデ一夕の入力が終了した時点で、 出力コントロール部 220は FLASHIN信号をアサートする。 すると、 これらの複数個で 1区切 りとなったデ一夕は、 EN I N信号によるパイプライン駆動とは無関係に自動的 に駆動され排出されることになる。 即ち、 図 18 (B) に示すように、 次に処理 すべきデータがパイプラインレジス夕部 500, 501に入力されていないにも かかわらず、 この 1度 FLASH IN信号により駆動されたデータは、 次のパイ プラインレジスタ部に自動的にシフトされる。 さらに、 図 19 (A) では、 次に 処理されるポリゴンの輝度情報 (10、 II ) がパイプラインレジス夕部 501, 500に入力され、 図 19 (B) では、 除算部 240から除算結果 t iが出力さ れるのを待つ状態となっている。 このような場合でも、 図 19 (B) , (C) に 示すように、 一度駆動された前のポリゴンに関するデ一夕は、 除算結果の出力と 無関係に自動排出されて行く。
以上のように本実施例では一度 F L A S H I N信号により駆動されたデータは その後、 全く制御を行う必要がなくなり、 制御方法が非常に簡易なものとなり、 設計期間の短縮化等を図ることができる。 また、 図 19 (B) , (C) に示した ように、 一度 FLASHIN信号により駆動されたデータは、 除算部 240から 除算結果が出力されるのを待つ必要が全くなくなる。 この結果、 演算処理が終了 したデータをすぐに次の演算処理に使用することができる。
例えば、 本実施例では、 図 15, 図 16に示したように自己ループを形成し、 1つの面によるクリッビング処理が終了したデータを、 出力マルチプレクサ 26 0を介して入力部 212に戻している。 そして、 その後、 この戻したデータに対 して、 内外判定部 210により次の面に対する内外判定を行い、 次の面に対する クリッピング処理を行うことになる。 このため、 内分点演算部により演算が終了 したデ一夕は、 できるだけ早く出力マルチプレクサ 260を介して内外判定部 2 10に戻してやる必要がある。 ところが、 従来のデ一夕駆動方式によるパイプラ イン処理装置では、 図 19 (B) , (C) に示すように次のデータがパイプライ ンレジス夕部 502, 503で除算結果を待っているような状況では、 パイプラ インレジス夕部 504, 505, 506にあるデ一夕を前に進めることができな かった。 このため、 従来のパイプライン処理装置では、 このような状況において パイプライン処理を効率よく行うことができず、 リアルタイムにパイプライン処 理を行う必要がある 3次元シミュレータ装置には非常に不向きなものとなってい た。.
このような場合、 例えば、 ダミーのデータをパイプラインレジス夕部に入力し て前のデータを押し出してやる等の特別な手法を用いてこの状況を回避すること
も考えられる。 しかし、 このクリッピング処理装置内でのパイプライン処理の夕 イミングは、 プレーヤの操作状況、 ゲーム状況等の種々の要素により複雑に変化 するものである。 即ち、 プレーヤの操作により、 場合によってはほとんどのポリ ゴンに対して内分点演算を行わなければならない状況が生じる。 また、 ゲーム状 況によりポリゴンが表示画面上の中央部に集中しているような場合は、 ほとんど のポリゴンに対して内分点演算を行わなくてもよい状況も生じる。 さらに、 この パイプライン処理装置の前段にある処理部が、 処理が遅れたため、 デ一夕をこの パイプライン処理装置に出力できないという状況が生じる場合がある。 したがつ て、 このような種々の状況が生じてクリッビング処理のタイミングが複雑に変化 したような場合には、 前記した特別な手法によりパイプラインの処理の非効率化 を回避することは容易なことではない。
これに対して、 本実施例では、 このような種々の状況が生じてクリッピング処 理のタイミングが複雑に変化しても、 E N I N信号によりデータをパイプライン 駆動して、 データの入力終了後、 ただ単に F L A S H I N信号をアサートしてや るという非常に簡易な制御手法により、 効率よくパイブラィン処理を行うことが 可能となる。 しかも、 各パイプラインレジス夕部 5 0 0〜5 0 6に接続されるパ ィプラインコントロール部 5 3 0〜5 3 6の構成も非常に簡易であり、 回路点数 も非常に少ないものとなる。 したがって、 本実施例のパイプライン処理装置は、 パイプライン処理の効率化を図れるデ一夕駆動型パイプライン処理装置と、 制御 方法が簡易なクロック駆動型パイプライン処理装置の双方の長所を兼ね備えてお り、 リアルタイムにパイブラィン処理を行わなければならない 3次元シミュレ一 夕装置に最適なパイプライン処理装置となる。
なお、 本発明は上記実施例に限定されるものではなく、 本発明の要旨の範囲内 で種々の変形実施が可能である。
例えば本発明が適用されるデ一夕の演算処理としては、 前記したクリッビング 処理に限らず、 例えばリアルタイムな演算処理が必要な種々のパイプライン処理 に適用できる。
また、 本発明における入力フラッシュ信号の入力位置は、 初段に限らず例えば 2段目、 3段目等に入力してやることも可能である。
また、 本発明において、 クリッピング演算手段により行われるクリッピング処 理の演算手法としては、 上記した演算手法に限らず種々のアルゴリズムを用いた 演算手法を用いることができる。
また、 本発明は、 業務用のゲーム機、 家庭用のゲーム装置、 フライ トシミュレ 一夕、 教習所等で使用されるドライビングシミュレータ等、 種々のものに適用で きる。 .更に、 多数のプレーヤが参加する大型アトラクション型のゲーム装置、 シ ミュレ一シヨン装置にも適用できる。
また、 本発明で説明した仮想 3次元空間演算手段、 画像合成手段、 クリツピン グ処理装置等において行われる演算処理は、 専用の画像処理デバイスを用いて処 理してもよいし、 汎用のマイクロコンピュー夕、 D S P等を利用してソフ トゥェ ァ的に処理してもよい。
更に、 仮想 3次元空間演算手段、 画像合成手段等で行われる演算処理も本実施 例で説明したものに限定されるものではない。
また、 本発明を適用した 3次元シミュレータ装置には、 画像合成された疑似 3 次元画像をヘッ ドマウントディスプレイ (H MD ) と呼ばれるディスプレイに表 示する構成のものも含まれる。
Claims
( 1 ) 処理デ一夕をパイプライン処理によりデ一夕転送するパイプライン処理装 置であって、
複数個で 1区切りとなった処理データを順次データ転送する複数のパイプライ パイプライン駆動信号及びフラッシュ信号が入力され、 該パイプライン駆動信 号及びフラッシュ信号に基づいて前記パイプラインレジス夕における前記データ 転送を制御するパイプラインコントロール手段とを含み、
前記パイプラインコントロール手段が、
前記パイプライン駆動信号が有効になった場合には、 前記複数のパイプライン レジス夕の中の 1のパイプラインレジス夕について該 1のパイプラインレジス夕 の前段のパイプラインレジス夕に処理デ一夕が存在する場合にのみ該 1のパイプ ラインレジス夕へのデータ転送を許可する手段と、
前記フラッシュ信号が有効となつた場合には、 前記パイブラィン駆動信号の有 効 ·無効に無関係に既に入力が終了した 1区切りの処理データを前記複数のパイ プラインレジス夕から自動排出する手段と、
を含むことを特徴とするパイプライン処理装置。
( 2 ) 処理データをパイブラィン処理によりデータ転送するパイブラィン処理装 置であって、
複数個で 1区切りとなった処理データを転送クロックを用いて順次データ転送 する複数のパイプラインレジス夕と、
前記複数のパイプラインレジス夕の各々に接続され、 接続された前記パイプラ インレジスタへの前記転送クロックを用いたデ一夕転送を許可する信号を生成し 出力する複数のパイプラインコントロール手段とを含み、
前記パイプラインコントロール手段が、
前段のパイプラインコントロール手段から入力される入力パイプライン駆動信 号あるいは入力フラッシュ信号のうちいずれかが有効となった場合には当該パイ プラインコントロール手段が接続されるパイプラインレジス夕へのデータ転送を 許可する信号を生成するとともに、 該入力パイブラィン駆動信号を第 1の記憶手 段に保持し、 前回にデータ転送が許可された時に該第 1の記憶手段に保持された 入力パイプライン駆動信号及び現在前段から入力される入力パイプライン駆動信 号が共に有効な場合には、 後段のパイプラインコントロール手段へと出力する出 力パイプライン駆動信号を有効とするパイプライン駆動許可手段と、
前段のパイプラインコントロール手段から入力される入力フラッシュ信号を第
2の記憶手段に保持し、 1転送クロック期間前に該第 2の記憶手段に保持された
入力フラッシュ信号あるいは現在前段から入力される入力フラッシュ信号のうち のいずれかが有効な場合には、 後段のパイプラインコントロール手段へと出力す る出力フラッシュ信号を有効とするフラッシュ許可手段と、
を含むことを特徴とするパイプライン処理装置。
( 3 ) 請求項 2において、
前記パイプライン駆動許可手段が、 前記第 1の記憶手段に保持されるデータを クリァーする手段を含み、 該デ一夕クリァ一手段により前記第 1の記憶手段に保 持されるデ一夕をクリア一することでパイプライン処理装置の初期化を行うこと を特徴とするパイプライン処理装置。
( 4 ) 複数のポリゴンの集合で表現された 3次元オブジェク卜に対して複数のク リッビング面を用いたクリッピング処理を施すためのクリッピング処理装置であ つて、
入力されるポリゴン画像デ一夕に基づいて、 該ポリゴンが前記クリッビング面 により内分されるか否かを判定する内外判定手段と、
前記内外判定手段によりポリゴンが内分されると判定された場合に、 入力され るポリゴン画像データを用いて該ポリゴンについての内分点を演算する内分点演 算手段と、
パイプライン駆動信号及びフラッシュ信号を生成し前記内分点演算手段に対し て出力する出力コントロール手段とを含み、
前記内分点演算手段が、
複数個で 1区切りとなったポリゴン画像デ一夕を順次デ一夕転送する複数のパ ィプラインレジス夕と、
前記出力コン トロール手段から前記パイプライン駆動信号及び前記フラッシュ 信号が入力され、 該パイプライン駆動信号及びフラッシュ信号に基づいて前記パ ィプラインレジス夕における前記データ転送を制御するパイプラインコントロー ル手段とを含み、
前記パイプラインコントロ一ル手段が、
前記パイプライン駆動信号が有効になった場合には、 前記複数のパイプライン レジス夕の中の 1のパイプラインレジス夕について該 1のパイプラインレジス夕 の前段のパイプラインレジス夕にポリゴン画像データが存在する場合にのみ該 1 のパイプラインレジス夕へのデータ転送を許可する手段と、
前記フラッシュ信号が有効となった場合には、 前記パイプライン駆動信号の有 効 ·無効に無関係に既に入力が終了した 1区切りのポリゴン画像データを前記複 数のパイプラインレジス夕から自動排出する手段と、
を含むことを特徴とする'クリッビング処理装置。
( 5 ) 請求項 4において、
前記内分点演算手段が、 ポリゴンの頂点座標間の距離を内分するための除算を 行う除算手段を含み、
前記出力コントロール手段が、 前記除算手段の除算完了を検出する手段と、 該 検出手段により除算完了が検出された場合に前記パイプライン駆動信号を有効に する手段とを含むことを特徴とするクリッビング処理装置。
( 6 ) 請求項 4において、
1のクリッビング面を用いたクリッビング処理が完了したポリゴン画像デ一夕 を再度前記内外判定手段及び前記内分点演算手段に入力させ、 これにより該ポリ ゴン画像データに対して他のクリッピング面によるクリッピング処理を施させる 手段を含むことを特徴とするクリッビング処理装置。
( 7 ) 請求項 4乃至 6のいずれかのクリツビング処理装置を含む 3次元シミュレ 一夕装置であって、
前記クリッビング処理装置によりクリツピング処理が施されたポリゴンを用い て、 仮想 3次元空間において観者から見える視界画像を合成する画像合成手段を 少なくとも含むことを特徴とする 3次元シミュレータ装置。
( 8 ) パイプライン駆動信号及びフラッシュ信号を用い、 複数個で 1区切りとな つた処理データが入力される複数のパイプラインレジス夕のデータ転送をコント ロールするパイプライン処理方法であって、
前記パイプライン駆動信号が有効になった場合には、 前記複数のパイプライン レジス夕の中の 1のパイプラインレジス夕について該 1のパイプラインレジス夕 の前段のパイプラインレジス夕に処理デ一夕が存在する場合にのみ該 1のパイプ ラインレジス夕へのデータ転送を許可し、 前記フラッシュ信号が有効となった場 合には、 前記パイプライン駆動信号の有効 ·無効に無関係に既に入力が終了した
1区切りの処理データを前記複数のパイプラインレジス夕から自動排出すること を特徴とするパイプライン処理方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9510798A GB2288677B (en) | 1993-09-28 | 1994-09-28 | Pipeline processing device, clipping processing device, three-dimensional simulator device and pipeline processing method |
JP51021495A JP3594309B2 (ja) | 1993-09-28 | 1994-09-28 | パイプライン処理装置,クリッピング処理装置,3次元シミュレータ装置及びパイプライン処理方法 |
US08/436,425 US5734808A (en) | 1993-09-28 | 1994-09-28 | Pipeline processing device, clipping processing device, three-dimensional simulator device and pipeline processing method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP26441093 | 1993-09-28 | ||
JP5/264410 | 1993-09-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO1995009390A1 true WO1995009390A1 (en) | 1995-04-06 |
Family
ID=17402783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP1994/001596 WO1995009390A1 (en) | 1993-09-28 | 1994-09-28 | Pipeline processor, clipping processor, three-dimensional simulator and pipeline processing method |
Country Status (4)
Country | Link |
---|---|
US (1) | US5734808A (ja) |
JP (1) | JP3594309B2 (ja) |
GB (1) | GB2288677B (ja) |
WO (1) | WO1995009390A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103971325A (zh) * | 2011-10-14 | 2014-08-06 | 美国亚德诺半导体公司 | 可动态配置的流水线预处理器 |
USRE48845E1 (en) | 2002-04-01 | 2021-12-07 | Broadcom Corporation | Video decoding system supporting multiple standards |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6188381B1 (en) * | 1997-09-08 | 2001-02-13 | Sarnoff Corporation | Modular parallel-pipelined vision system for real-time video processing |
JP4505866B2 (ja) * | 1998-04-03 | 2010-07-21 | ソニー株式会社 | 画像処理装置および映像信号処理方法 |
US6509905B2 (en) * | 1998-11-12 | 2003-01-21 | Hewlett-Packard Company | Method and apparatus for performing a perspective projection in a graphics device of a computer graphics display system |
JP4371283B2 (ja) * | 1999-09-09 | 2009-11-25 | 株式会社バンダイナムコゲームス | 画像生成システム及び情報記憶媒体 |
US7405734B2 (en) * | 2000-07-18 | 2008-07-29 | Silicon Graphics, Inc. | Method and system for presenting three-dimensional computer graphics images using multiple graphics processing units |
TW567695B (en) * | 2001-01-17 | 2003-12-21 | Ibm | Digital baseband system |
US7489779B2 (en) * | 2001-03-22 | 2009-02-10 | Qstholdings, Llc | Hardware implementation of the secure hash standard |
US7653710B2 (en) | 2002-06-25 | 2010-01-26 | Qst Holdings, Llc. | Hardware task manager |
US7400668B2 (en) * | 2001-03-22 | 2008-07-15 | Qst Holdings, Llc | Method and system for implementing a system acquisition function for use with a communication device |
US20040133745A1 (en) * | 2002-10-28 | 2004-07-08 | Quicksilver Technology, Inc. | Adaptable datapath for a digital processing system |
US7962716B2 (en) * | 2001-03-22 | 2011-06-14 | Qst Holdings, Inc. | Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements |
US6836839B2 (en) | 2001-03-22 | 2004-12-28 | Quicksilver Technology, Inc. | Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements |
US7752419B1 (en) | 2001-03-22 | 2010-07-06 | Qst Holdings, Llc | Method and system for managing hardware resources to implement system functions using an adaptive computing architecture |
US8843928B2 (en) | 2010-01-21 | 2014-09-23 | Qst Holdings, Llc | Method and apparatus for a general-purpose, multiple-core system for implementing stream-based computations |
US6577678B2 (en) * | 2001-05-08 | 2003-06-10 | Quicksilver Technology | Method and system for reconfigurable channel coding |
US20020184291A1 (en) * | 2001-05-31 | 2002-12-05 | Hogenauer Eugene B. | Method and system for scheduling in an adaptable computing engine |
US7046635B2 (en) * | 2001-11-28 | 2006-05-16 | Quicksilver Technology, Inc. | System for authorizing functionality in adaptable hardware devices |
US8412915B2 (en) * | 2001-11-30 | 2013-04-02 | Altera Corporation | Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements |
US6986021B2 (en) | 2001-11-30 | 2006-01-10 | Quick Silver Technology, Inc. | Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements |
US7215701B2 (en) * | 2001-12-12 | 2007-05-08 | Sharad Sambhwani | Low I/O bandwidth method and system for implementing detection and identification of scrambling codes |
US7231508B2 (en) * | 2001-12-13 | 2007-06-12 | Quicksilver Technologies | Configurable finite state machine for operation of microinstruction providing execution enable control value |
US7403981B2 (en) * | 2002-01-04 | 2008-07-22 | Quicksilver Technology, Inc. | Apparatus and method for adaptive multimedia reception and transmission in communication environments |
US7200738B2 (en) * | 2002-04-18 | 2007-04-03 | Micron Technology, Inc. | Reducing data hazards in pipelined processors to provide high processor utilization |
US7328414B1 (en) | 2003-05-13 | 2008-02-05 | Qst Holdings, Llc | Method and system for creating and programming an adaptive computing engine |
US7660984B1 (en) | 2003-05-13 | 2010-02-09 | Quicksilver Technology | Method and system for achieving individualized protected space in an operating system |
US8108656B2 (en) | 2002-08-29 | 2012-01-31 | Qst Holdings, Llc | Task definition for specifying resource requirements |
US7937591B1 (en) | 2002-10-25 | 2011-05-03 | Qst Holdings, Llc | Method and system for providing a device which can be adapted on an ongoing basis |
US8276135B2 (en) | 2002-11-07 | 2012-09-25 | Qst Holdings Llc | Profiling of software and circuit designs utilizing data operation analyses |
US7225301B2 (en) | 2002-11-22 | 2007-05-29 | Quicksilver Technologies | External memory controller node |
US7200837B2 (en) * | 2003-08-21 | 2007-04-03 | Qst Holdings, Llc | System, method and software for static and dynamic programming and configuration of an adaptive computing architecture |
US7950026B1 (en) * | 2004-06-24 | 2011-05-24 | Julian Michael Urbach | Virtual application execution system and method |
TWI259659B (en) * | 2005-05-13 | 2006-08-01 | Ind Tech Res Inst | Pipelined datapath with dynamically reconfigurable pipeline stages |
US8429384B2 (en) * | 2006-07-11 | 2013-04-23 | Harman International Industries, Incorporated | Interleaved hardware multithreading processor architecture |
US7958483B1 (en) * | 2006-12-21 | 2011-06-07 | Nvidia Corporation | Clock throttling based on activity-level signals |
US7797561B1 (en) | 2006-12-21 | 2010-09-14 | Nvidia Corporation | Automatic functional block level clock-gating |
US7802118B1 (en) * | 2006-12-21 | 2010-09-21 | Nvidia Corporation | Functional block level clock-gating within a graphics processor |
US10162491B2 (en) | 2011-08-12 | 2018-12-25 | Otoy Inc. | Drag and drop of objects between applications |
CN106293641B (zh) * | 2016-07-27 | 2018-12-25 | 北京计算机技术及应用研究所 | 基于流水线重构的超长指令字体系架构性能模拟方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6316388A (ja) * | 1986-07-08 | 1988-01-23 | Matsushita Electric Ind Co Ltd | クリツピング装置 |
JPH0281185A (ja) * | 1988-09-16 | 1990-03-22 | Fujitsu Ltd | 折線列クリッピング処理装置 |
JPH0475143A (ja) * | 1990-07-17 | 1992-03-10 | Matsushita Electric Ind Co Ltd | タスク切換機能付プロセッサ |
JPH04152432A (ja) * | 1990-10-17 | 1992-05-26 | Hitachi Ltd | パイプライン |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4449201A (en) * | 1981-04-30 | 1984-05-15 | The Board Of Trustees Of The Leland Stanford Junior University | Geometric processing system utilizing multiple identical processors |
US4945500A (en) * | 1987-11-04 | 1990-07-31 | Schlumberger Technologies, Inc. | Triangle processor for 3-D graphics display system |
US5297240A (en) * | 1989-01-13 | 1994-03-22 | Sun Microsystems, Inc. | Hardware implementation of clipping and intercoordinate comparison logic |
US5224210A (en) * | 1989-07-28 | 1993-06-29 | Hewlett-Packard Company | Method and apparatus for graphics pipeline context switching in a multi-tasking windows system |
US5208909A (en) * | 1989-10-23 | 1993-05-04 | International Business Machines Corporation | Pre-drawing pick detection in a graphics display system |
-
1994
- 1994-09-28 WO PCT/JP1994/001596 patent/WO1995009390A1/ja active Application Filing
- 1994-09-28 US US08/436,425 patent/US5734808A/en not_active Expired - Lifetime
- 1994-09-28 JP JP51021495A patent/JP3594309B2/ja not_active Expired - Fee Related
- 1994-09-28 GB GB9510798A patent/GB2288677B/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6316388A (ja) * | 1986-07-08 | 1988-01-23 | Matsushita Electric Ind Co Ltd | クリツピング装置 |
JPH0281185A (ja) * | 1988-09-16 | 1990-03-22 | Fujitsu Ltd | 折線列クリッピング処理装置 |
JPH0475143A (ja) * | 1990-07-17 | 1992-03-10 | Matsushita Electric Ind Co Ltd | タスク切換機能付プロセッサ |
JPH04152432A (ja) * | 1990-10-17 | 1992-05-26 | Hitachi Ltd | パイプライン |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE48845E1 (en) | 2002-04-01 | 2021-12-07 | Broadcom Corporation | Video decoding system supporting multiple standards |
CN103971325A (zh) * | 2011-10-14 | 2014-08-06 | 美国亚德诺半导体公司 | 可动态配置的流水线预处理器 |
JP2014238861A (ja) * | 2011-10-14 | 2014-12-18 | アナログ・デバイシズ・インコーポレーテッド | 動的に再構成可能なパイプライン型プリプロセッサ |
JP2016167809A (ja) * | 2011-10-14 | 2016-09-15 | アナログ・デバイシズ・インコーポレーテッド | 動的に再構成可能なパイプライン型プリプロセッサ |
Also Published As
Publication number | Publication date |
---|---|
JP3594309B2 (ja) | 2004-11-24 |
US5734808A (en) | 1998-03-31 |
GB2288677B (en) | 1998-05-13 |
GB2288677A (en) | 1995-10-25 |
GB9510798D0 (en) | 1995-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO1995009390A1 (en) | Pipeline processor, clipping processor, three-dimensional simulator and pipeline processing method | |
US5729672A (en) | Ray tracing method and apparatus for projecting rays through an object represented by a set of infinite surfaces | |
US7061488B2 (en) | Lighting and shadowing methods and arrangements for use in computer graphic simulations | |
US4992780A (en) | Method and apparatus for storing a two-dimensional image representing a three-dimensional scene | |
US6181352B1 (en) | Graphics pipeline selectively providing multiple pixels or multiple textures | |
US4862392A (en) | Geometry processor for graphics display system | |
US5315692A (en) | Multiple object pipeline display system | |
US5966132A (en) | Three-dimensional image synthesis which represents images differently in multiple three dimensional spaces | |
JP3759971B2 (ja) | 3次元像を陰影付けする方法 | |
US6549203B2 (en) | Lighting and shadowing methods and arrangements for use in computer graphic simulations | |
US5559937A (en) | Clipping processing device, three-dimensional simulator device, and clipping processing method | |
WO1994029813A1 (fr) | Synthetiseur d'image et appareil de jeu pourvu d'un tel synthetiseur | |
US6377265B1 (en) | Digital differential analyzer | |
JPS6295666A (ja) | 画像発生装置 | |
US6597357B1 (en) | Method and system for efficiently implementing two sided vertex lighting in hardware | |
US6157393A (en) | Apparatus and method of directing graphical data to a display device | |
KR910009102B1 (ko) | 화상합성 장치 | |
JP2001084404A (ja) | レンダリング方法及び装置、ゲーム装置、並びに立体モデルをレンダリングするプログラムを格納するコンピュータ読み取り可能な記録媒体 | |
JPH10295934A (ja) | ビデオゲーム装置及びモデルのテクスチャの変化方法 | |
US5724602A (en) | Multiprocessor apparatus | |
US6292196B1 (en) | Rendering processor | |
JP2002222435A (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
US5892516A (en) | Perspective texture mapping circuit having pixel color interpolation mode and method thereof | |
JP3350655B2 (ja) | ゲームシステム及び情報記憶媒体 | |
JP2002202964A (ja) | 並列演算装置、エンタテインメント装置、演算処理方法、コンピュータプログラム、半導体デバイス |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): GB JP US |
|
WWE | Wipo information: entry into national phase |
Ref document number: 08436425 Country of ref document: US |