US8941660B2 - Image generating apparatus, image generating method, and image generating integrated circuit - Google Patents
Image generating apparatus, image generating method, and image generating integrated circuit Download PDFInfo
- Publication number
- US8941660B2 US8941660B2 US13/142,460 US201013142460A US8941660B2 US 8941660 B2 US8941660 B2 US 8941660B2 US 201013142460 A US201013142460 A US 201013142460A US 8941660 B2 US8941660 B2 US 8941660B2
- Authority
- US
- United States
- Prior art keywords
- shape data
- data
- cache
- vertex
- polygon
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/363—Graphics controllers
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/121—Frame memory handling using a cache memory
Definitions
- the present invention relates to computer graphics techniques, and to image generating techniques for generating computer graphics images.
- an information processing apparatus which performs image generation processing in real time includes, separately from a CPU (Central Processing Unit), an image generating apparatus (a graphics processing unit) which exclusively performs image generation processing.
- a CPU Central Processing Unit
- an image generating apparatus a graphics processing unit
- FIG. 1 is a flowchart indicating processes of an image generating method performed by a conventional general image generating apparatus.
- the conventional general image generating apparatus first loads vertex data of each of input polygon models from an information storage device (memory) (S 101 ). It is to be noted that the vertex data includes coordinate data indicating the positions of the vertices of each of the input polygon models, and shape data that is data other than the coordinate data. Next, the image generating apparatus performs processing for transforming the coordinates of the coordinate data in the vertex data into world coordinates, and further performs processing for transforming the world coordinates to display coordinates (S 102 ).
- the image generating apparatus makes, based on the transformed coordinate data, either a clipping determination on whether or not each polygon is within a visible space or a culling determination on whether or not each polygon shows its surface that should be displayed when viewed from a view point, and thereby makes a determination on whether or not the rendering of the polygon is valid (S 103 ).
- the image generating apparatus modifies data (shape data) that is other than the coordinate data in the loaded vertex data of only the polygon(s) for which the rendering is already determined to be valid (S 104 ).
- the image generating apparatus performs polygon rendering processing using the modified vertex data (S 105 ).
- the image generating apparatus determines whether or not the aforementioned processing is already completed for all the polygons (S 106 ).
- the image generating apparatus repeats the respective processes (S 101 to S 105 ).
- the image generating apparatus outputs a rendered image (S 107 ).
- a conventional general image generating method is intended to process shape data after processing coordinate data as described above.
- vertex data composed of a set of coordinate data and shape data as described above there is a need to load the whole vertex data that is both the coordinate data and the shape data even when only the coordinate data is to be processed. Accordingly, the image generating method entails a problem that the shape data that is unnecessary in such a case is unnecessarily loaded. Likewise, even when the shape data is to be processed, the whole vertex data is unnecessarily loaded. Accordingly, the image generating method entails a problem that the coordinate data that is unnecessary in this case is unnecessarily loaded.
- PTL (Patent Literature) 1 discloses a technique for separately managing coordinate data and shape data. This makes it possible to prevent either the shape data or the coordinate data from being unnecessarily loaded.
- PTL 1 entails a problem that it is impossible to sufficiently reduce the amount of memory access and/or a calculation amount. For example, it is possible to reduce the amount of memory access and/or the calculation amount by preventing the loading and calculation of the same data from being executed more than once and thereby effectively utilizing a cache memory.
- PTL 1 fails to disclose a shape data cache for storing such shape data. Without efficiently utilizing such a shape data cache, it is impossible to effectively utilize the resource of the shape data cache.
- the present invention has an object to provide an image generating apparatus, an image generating method, and an image generating integrated circuit for making it possible to reduce the amount of memory access and/or a calculation amount by effectively utilizing a resource of a shape data cache.
- an image generating apparatus which generates a graphics image by rendering a polygon
- the image generating apparatus including: a coordinate processing unit configured to load, from a memory, coordinate data indicating a position of a vertex of the polygon and perform coordinate transform on the loaded coordinate data to generate transformed coordinate data, the coordinate data being included in vertex data that indicates information of the vertex; a determining unit configured to determine whether or not the vertex indicated by the transformed coordinate data is a rendering object, using the transformed coordinate data generated by the coordinate processing unit; a shape data cache for storing shape data that is included in the vertex data to and other than the coordinate data; a shape data processing unit configured to load, from the memory, the shape data of the vertex indicated by the transformed coordinate data, and store the loaded shape data of the vertex in the shape data cache when both of following conditions are satisfied: the determining unit determines that the vertex is the rendering object; and the shape data of the vertex is not yet stored in the shape data cache; and a polygon rendering processing unit configured
- modified shape data generated by modifying the shape data may be stored in the shape data cache
- the shape data processing unit may include: a shape data check unit configured to judge whether or not the modified shape data of the vertex determined to be the rendering object by the determining unit is already stored in the shape data cache; a shape data loading unit configured to load the shape data of the vertex from the memory when the shape data check unit judges that the modified shape data is not yet stored; and a shape data modifying unit configured to modify the shape data loaded by the shape data loading unit to generate the modified shape data, and store the resulting modified shape data into the shape data cache.
- the modified shape data is stored in the shape data cache. This prevents loading of the same shape data and processing for generating same modified shape data from being executed more than once. Therefore, it is possible to reduce the amount of memory access and the calculation amount.
- the determining unit may be configured to generate a rendering vertex list indicating only the vertex determined to be the rendering object
- the shape data check unit may be configured to judge whether or not the modified shape data of the vertex indicated in the rendering vertex list generated by the determining unit is already stored in the shape data cache.
- the image generating apparatus may further include a coordinate data cache for storing transformed coordinate data generated by the coordinate processing unit, wherein the determining unit may be configured to determine whether or not the vertex indicated by the transformed coordinate data is the rendering object, using the transformed coordinate data stored in the coordinate data cache, when the transformed coordinate data is already stored in the coordinate data cache.
- the present invention can be implemented not only as an image generating apparatus, but also as a method including the steps corresponding to the processing units of the image generating apparatus. Furthermore, the present invention may be implemented as a program causing a computer to execute these steps. Furthermore, the present invention may be implemented as recording media such as a computer-readable CD-ROM (Compact Disc-Read Only Memory) having the program recorded thereon, and also as information, data and/or a signal representing the program. These program, information, data and signal may be distributed through communication networks such as the Internet.
- CD-ROM Compact Disc-Read Only Memory
- each of the above-described image generating apparatuses may be configured in a single system LSI (Large Scale Integration).
- the system LSI is a super-multi-functional LSI manufactured by integrating plural structural units on a single chip. More specifically, the system LSI is a computer system configured to include a microprocessor, a ROM, a RAM (Random Access Memory), etc.
- the image generating apparatus can provide an advantageous effect of being able to effectively utilize a shape data cache because the image generating apparatus does not need to store shape data of vertices which are of a polygon and not required for rendering the polygon into a cache.
- FIG. 1 is a flowchart indicating operations performed by a conventional image generating apparatus.
- FIG. 2 is a block diagram of an exemplary structure of an image generating apparatus according to an embodiment of the present invention.
- FIG. 3 is a diagram showing an example of input data that is input to the image generating apparatus according to the embodiment.
- FIG. 4 is a diagram illustrating a polygon erase determination.
- FIG. 5 is a flowchart indicating operations performed by the image generating apparatus according to the embodiment.
- FIG. 6 is a diagram showing a flow of processes according to the embodiment.
- FIG. 7 is a flowchart indicating an example of a method of generating a shape data access vertex ID (the ID of a vertex for access to shape data) in processing according to the embodiment.
- FIG. 8 is a diagram showing an exemplary structure of each of a transformed coordinate data cache and a modified shape data cache according to the embodiment.
- FIG. 9 is a diagram showing a data flow between processing units of the image generating apparatus according to the embodiment.
- FIG. 10A is a diagram showing an example of data transform in the case of applying the image generating apparatus according to the embodiment to polygon rendering in a polygon strip method.
- FIG. 10B is a diagram showing an example of data transform in the case of applying the image generating apparatus according to the embodiment to polygon rendering in a polygon fan method.
- FIG. 10C is a diagram showing an example of data transform in the case of applying the image generating apparatus according to the embodiment to polygon rendering in an independent polygon method.
- FIG. 11 is a block diagram of an exemplary structure of an image generating apparatus according to a variation of the embodiment.
- FIG. 12 is a block diagram of another exemplary structure of an image generating apparatus according to a variation of the embodiment.
- FIG. 13 is a block diagram of a structure of an image processing apparatus according to the embodiment.
- An image generating apparatus determines whether or not each of the vertices of each of one or more polygons is necessary for rendering the polygon, and judges whether or not modified shape data of only the vertices determined to be necessary is already stored in a shape data cache.
- the image generating apparatus loads the shape data from a memory, processes the loaded shape data to generate modified shape data, and stores the modified shape data in the shape data cache.
- the image generating apparatus renders the polygon using the modified shape data stored in the shape data cache.
- FIG. 2 is a block diagram of an exemplary structure of an image generating apparatus 100 according to this embodiment.
- the image generating apparatus 100 in the diagram is an apparatus intended to, generate a graphics image by rendering the polygon. More specifically, the image generating apparatus 100 executes the polygon rendering by reading out (loading) necessary data from a memory 200 in which input data 201 relating to the polygon rendering is stored. First, a description is given of the input data 201 stored in the memory 200 .
- FIG. 3 is a diagram showing an example of the input data 201 that is input to the image generating apparatus 100 according to this embodiment.
- the input data 201 is composed of a rendering instruction list 202 , and a vertex data list 203 for the input polygon models.
- the rendering instruction list 202 includes a rendering instruction 204 indicating various kinds of information relating to the polygon rendering instruction.
- the rendering instruction 204 indicates: representation formats of the input polygons (examples of the representation formats include a polygon strip, a polygon fan, a polygon mesh, an independent polygon, etc.); setting for loading each of parameters (address setting for various kinds of data); rendering options; and the like.
- the vertex data list 203 is a list of vertex data of the respective input polygon models, and is composed of a vertex ID list 205 , a coordinate data list 206 , and a shape data list 207 . It is to be noted that the vertex data is data indicating information about a vertex of a polygon and is composed of the coordinate data and the shape data. The coordinate data is data indicating the position of the vertex. The shape data is data other than the coordinate data in the vertex data.
- the vertex data list 203 may be divided into the vertex ID list 205 , the coordinate data list 206 , and the shape data list 207 , and the respective lists may be stored in separate memory areas.
- the burst memory access is for loading a large number of data items in areas having consecutive memory addresses collectively in one-time memory access.
- the vertex ID list 205 is a list of pieces of vertex ID 208 each indicating the ID of the corresponding one of the vertices of the input polygon models. Each piece of the vertex ID 208 is ID associating the coordinate data and the shape data of the corresponding one of the vertices. Accordingly, the coordinate data and shape data are generated for each piece of the vertex ID 208 for the corresponding one of the vertices.
- the vertex ID 208 is stored at the position indicated by either a pointer or an address indicated by vertex ID address setting of the rendering instruction 204 .
- the coordinate data list 206 is a list of coordinate data 209 indicating the positions of the respective vertices of each of the input polygon models.
- the coordinate data 209 can be represented by 2 to 4 words per vertex.
- the coordinate ID 209 is stored at the position indicated by either a pointer or an address indicated by coordinate data address setting of the rendering instruction 204 .
- the shape data list 207 is a list of shape data 210 indicating information other than the coordinate data of the respective vertices in the vertex data.
- FIG. 3 shows normal line data, color data, and texture coordinate data of the respective vertices.
- the amounts of such data are increased or decreased depending on the rendering option(s). For example, when a complex scene is rendered, the amount of the shape data 210 is several tens of words per vertex.
- the respective normal line data, color data, and texture coordinate data of the shape data 210 are stored at either the positions indicated by pointers or the positions indicated by the addresses specified by normal line data address setting, color data address setting, and texture coordinate data address setting.
- the image generating apparatus 100 in FIG. 2 includes: a host interface 110 ; a control unit 120 ; a coordinate data processing unit 130 ; a transformed coordinate data cache 140 ; a determining unit 150 ; a shape data processing unit 160 ; a modified shape data cache 170 ; a polygon rendering processing unit 180 ; and a memory interface 190 .
- the host interface 110 conveys a rendering start instruction that is input from the CPU to the control unit 120 .
- the control unit 120 Upon receiving the rendering start instruction, the control unit 120 loads the rendering instruction list 202 from the memory 200 via a memory bus (not shown) and the memory interface 190 , and conveys the rendering instruction 204 to a coordinate data check unit 131 , a coordinate data loading unit 132 , and a shape data loading unit 162 .
- the coordinate data processing unit 130 loads the coordinate data 209 in the vertex data from the memory 200 , and performs coordinate transform on the loaded coordinate data 209 to generate transformed coordinate data. As shown in FIG. 2 , the coordinate data processing unit 130 includes: the coordinate data check unit 131 ; the coordinate data loading unit 132 ; and the coordinate transform unit 133 .
- the coordinate data check unit 131 judges whether or not the transformed coordinate data of the vertices of each of the polygons is already stored in the transformed coordinate data cache 140 . More specifically, the coordinate data check unit 131 accesses the vertex ID list 205 in the vertex data list 203 according to the rendering instruction 204 , and loads the vertex ID 208 . Next, the coordinate data check unit 131 checks whether or not the transformed coordinate data of each of the vertices indicated by the loaded ID 208 is already stored in the transformed coordinate data cache 140 . Next, only when the transformed coordinate data is not yet stored therein, the coordinate data check unit 131 outputs the vertex ID 208 to the coordinate data loading unit 132 .
- the coordinate data loading unit 132 loads the coordinate data 209 of the vertices from the memory 200 when the coordinate data check unit 131 determines that the transformed coordinate data is not yet stored therein. More specifically, when the coordinate data loading unit 132 receives the vertex ID 208 from the coordinate data check unit 131 , the coordinate data loading unit 132 accesses the coordinate data list 206 in the vertex data list 203 according to the rendering instruction 204 , loads the coordinate data 209 for each of the vertices, and outputs the loaded coordinate data 209 to the coordinate transform unit 133 .
- the coordinate transform unit 133 performs coordinate transform on the coordinate data loaded by the coordinate data loading unit 132 to generate transformed coordinate data. More specifically, the coordinate transform unit 133 performs coordinate transform processing on the input coordinate data 209 , and outputs the transformed coordinate data to the transformed coordinate data cache 140 .
- the coordinate transform processing is to transform the coordinate data 209 into world coordinates and then into display coordinates. In other words, the transformed coordinate data is coordinate data indicating the positions of the vertices in the display coordinates.
- the transformed coordinate data cache 140 is a cache memory for storing the transformed coordinate data generated by the coordinate data processing unit 130 .
- the transformed coordinate data cache 140 receives the vertex ID, 208 from the coordinate data check unit 131 .
- the transformed coordinate data cache 140 requests the transformed coordinate data from the coordinate data loading unit 132 and the coordinate transform unit 133 , and stores the transformed coordinate data output from the coordinate transform unit 133 .
- the transformed coordinate data cache 140 skips these processes and outputs the transformed coordinate data to the polygon erase determining unit 151 .
- the determining unit 150 determines whether or not the vertex indicated by the transformed coordinate data is a rendering object, using the transformed coordinate data generated by the coordinate data processing unit 130 . As shown in FIG. 2 ; the determining unit 150 includes: a polygon erase determining unit 151 , a vertex erase determining unit 152 , and a shape data access vertex ID generating unit 153 .
- the polygon erase determining unit 151 generates, using the transformed coordinate data, a flag indicating whether or not a current polygon is a rendering object, that is, a flag indicating whether or not the rendering of the polygon is valid (this flag is hereinafter referred to as a polygon rendering validity flag). More specifically, first, the polygon erase determining unit 151 makes a determination on whether or not the rendering of the current polygon is valid (hereinafter referred to as a polygon erase determination), using the transformed coordinate data of the vertices of the polygon that is the object for the determination.
- the polygon erase determining unit 151 generates the polygon rendering validity flag based on the result of the determination, and outputs the polygon rendering validity flag to the vertex erase determination unit 152 .
- the polygon rendering validity flag shows True when the current polygon is valid, and shows False when the current polygon is invalid. Specific examples of the polygon erase determinations are described later.
- the vertex erase determining unit 152 generates a flag indicating whether or not the current vertex (the flag is hereinafter referred to as a vertex validity flag), using the polygon rendering validity flag. More specifically, first, the vertex erase determining unit 152 makes a determination on whether or not the current vertex of the polygon that is the object for the polygon erase determination is valid, using the polygon rendering validity flag output from the polygon erase determining unit 151 . Next, the vertex erase determining unit 152 generates the vertex validity flag based on the result of the determination, and outputs the vertex validity flag to the shape data access vertex ID generating unit 153 . The vertex validity flag shows True when the current vertex is valid, and shows False when the current vertex is invalid.
- the shape data access vertex ID generating unit 153 outputs, to the shape data check unit 161 , the vertex ID 208 used by the coordinate data check unit 131 of only the valid vertex data, with reference to the vertex validity flag output from the vertex erase determining unit 152 .
- the shape data processing unit 160 loads the shape data 210 from the memory 200 , and processes the loaded shape data 210 to generate modified shape data, when both of the following conditions are satisfied: the determining unit 150 determines that the vertex indicated by the transformed coordinate data is the rendering object; and the modified shape data of the vertex is not yet stored in the modified shape data cache 170 . Next, the shape data processing unit 160 stores the resulting modified shape data into the modified shape data cache 170 . As shown in FIG. 2 , the shape data processing unit 160 includes a shape data check unit 161 , a shape data loading unit 162 , and a shape data modifying unit 163 .
- the shape data check unit 161 determines whether or not the modified shape data of the vertex determined to be the rendering object by the determining unit 150 is already stored in the modified shape data cache 170 . More specifically, the shape data check unit 161 obtains the vertex ID 208 output from the shape data access vertex ID generating unit 153 , and checks whether or not the modified shape data of the vertex indicated by the obtained vertex ID 208 is already stored in the modified shape data cache 170 . Next, the shape data check unit 161 outputs the vertex ID 208 to the shape data loading unit 162 only when the modified shape data is not yet stored therein.
- the shape data loading unit 162 loads the shape data 210 of the vertex from the memory 200 when the shape data check unit 161 judges that the modified shape data is not yet stored therein. More specifically, when the shape data loading unit 162 receives the vertex ID 208 from the shape data check unit 161 , the shape data loading unit 162 accesses the shape data list 207 in the vertex data list 203 according to the rendering instruction 204 , loads the shape data 210 , and outputs the loaded shape data 210 to the shape data modifying unit 163 together with the transformed coordinate data.
- the shape data modifying unit 163 processes the shape data 210 loaded by the shape data loading unit 162 to generate modified shape data, and stores the resulting modified shape data into the modified shape data cache 170 . More specifically, the shape data modifying unit 163 performs shape data modification on the input shape data 210 , and outputs the modified shape data to the modified shape data cache 170 .
- the shape data modification is processes that are calculation processes performed on the vertex data and that are other than the coordinate transform processes.
- the calculation processes include a calculation process of calculating a color value by performing an optical source estimation, and a calculation process of calculating a texture coordinate value by performing a texture coordinate estimation.
- the modified shape data is data which is already subjected to the calculation processes that are other than the aforementioned coordinate transform processes.
- the modified shape data cache 170 is a cache memory for storing the modified shape data.
- the modified shape data cache 170 receives the vertex ID 208 from the shape data check unit 161 .
- the modified shape data cache 170 requests the modified shape data from the shape data loading unit 162 and the shape data modifying unit 163 , and stores the modified shape data output from the shape data modifying unit 163 .
- the modified shape data cache 170 skips these processes, and outputs the transformed coordinate data and the modified shape data to the polygon rendering processing unit 180 .
- the polygon rendering processing unit 180 renders the polygon using the transformed coordinate data generated by the coordinate data processing unit 130 and the modified shape data generated by the shape data processing unit 160 . More specifically, the polygon rendering processing unit 180 performs polygon rendering processing using the input vertex data (the transformed coordinate data and the modified shape data) to generate a polygon image. The polygon rendering processing is executed according to general processing for use in computer graphics processing. The polygon rendering processing unit 180 outputs the polygon image to the memory 200 via the memory interface 190 .
- the memory interface 190 exchanges the data between the respective processing units of the image generating apparatus 100 and the memory 200 .
- FIG. 4 is a diagram illustrating the polygon erase determination.
- the polygon erase determination is a process for determining whether or not a current polygon defined by plural vertices is used in the generation of an image.
- a view point 301 that is of a user and indicates an origin of the coordinates and a view volume 302 that is a hexahedron representing the three-dimensional space of a view field when seen from the view point 301 of the user are provided, as coordinate values, to the graphics processing unit (the image generating apparatus 100 in this embodiment).
- the polygon erase determination is made using transformed coordinate data that is the coordinate data transformed into a coordinate system (display coordinate system) having, as the origin, the view point 301 .
- the polygon erase determination is made according to either clipping determination and culling determination.
- the clipping determination is a process for determining whether or not the transformed coordinate data of the vertices of each polygon is within the view volume 302 . This process is performed to render only the polygon(s) present within the view field of the user. When the coordinates of all of the vertices defining a polygon are outside the view volume 302 , the rendering of the polygon is made invalid. In other words, when at least one of the vertices defining a polygon is inside the view volume 302 , the rendering of the polygon is made valid. For example, as in the case of a polygon such as a polygon 305 whose vertices are all outside the view volume 302 , the rendering of the polygon is made invalid by the clipping determination.
- the culling determination is a process for determining whether or not a surface of a polygon within the view volume 302 faces front when seen from the view point. This process is performed to render only the polygon(s) facing outward (toward the front surface of) an object among the polygons that define the object.
- the culling determination makes it possible to determine the front surface and the back surface of the polygon by calculating a surface normal line vector N indicating the orientation of a surface from the coordinates of the vertices defining the polygon, and checking the sign of a scalar product N ⁇ V with a view point direction vector V that shows a view point direction from the polygon.
- the rendering of the polygon is made invalid.
- the rendering of the polygon is made invalid by the culling determination.
- the polygon erase determining unit 151 determines the polygon(s) to be valid polygon(s) which can be rendered by performing projection on a display screen 303 .
- FIG. 5 is a flowchart indicating exemplary operations performed by the image generating apparatus 100 according to this embodiment.
- the image generation processes in this embodiment starts when the control unit 120 receives a rendering instruction 204 from the CPU via a host interface 110 .
- the coordinate data check unit 131 loads the vertex ID 208 in the vertex data of an input polygon model (S 201 ). Next the coordinate data check unit 131 makes an inquiry to the transformed coordinate data cache 140 using the loaded vertex ID 208 (S 202 ). In other words, the coordinate data check unit 131 checks whether or not the transformed coordinate data of the vertex indicated by the loaded ID 208 is already stored in the transformed coordinate data cache 140 .
- the vertex ID 208 is output to the coordinate data loading unit 132 in order to execute the loading of the coordinate data 209 of the vertex from the memory 200 and the as coordinate transform processing on the coordinate data 209 .
- the coordinate data loading unit 132 loads the coordinate data 209 corresponding to the vertex ID 208 in the vertex data of the input polygon model (S 203 ).
- the coordinate transform unit 133 transforms the loaded coordinate data 209 into world coordinates and then into display coordinates to generate transformed coordinate data, and stores the resulting transformed coordinate data into the transformed coordinate data cache 140 (S 204 ).
- the polygon erase determining unit 151 makes a polygon erase determination using the transformed coordinate data of the vertices defining the polygon that is the object for the determination (S 205 ). More specifically, the polygon erase determining unit 151 performs the clipping determination and the culling determination as described with reference to FIG. 4 .
- the vertex erase determining unit 152 performs, for example, a vertex erase determination using a polygon validity flag (S 206 ), depending on the result of the polygon erase determination made on the polygon including at least one vertex that is the object for the determination.
- a polygon validity flag S 206
- the vertex erase determining unit 152 determines that the vertex in the determination-object polygon is valid vertex data.
- the vertex erase determining unit 152 determines that the vertex in the object polygon is invalid vertex data.
- the shape data access vertex ID generating unit 153 outputs the vertex ID 208 of only the vertex data determined to be valid to the shape data check unit 161 , for example, with reference to a vertex validity flag (S 207 ). This eliminates the necessity of storing the shape data unnecessary for the rendering into the cache, and thus it is possible to effectively utilize the modified shape data cache 170 . It is to be noted that detailed operations performed by the shape data access vertex ID generating unit 153 are described later.
- the shape data check unit 161 makes an inquiry to the modified shape data cache 170 using the vertex ID 208 received from the shape data access vertex ID generating unit 153 (S 208 ).
- the modified shape data of the vertex corresponding to the vertex ID 208 is already stored therein (“Data stored” in S 208 )
- the loading of the shape data 210 of the vertex from the memory 200 and the shape data modification are not executed.
- the vertex ID 208 is output to the shape data loading unit 162 in order to execute the loading of the shape data 210 of the vertex from the memory 200 and the shape data modification.
- the shape data loading unit 162 loads the shape data 210 corresponding to the vertex ID 208 in the vertex data of the input polygon model (S 209 ).
- the shape data modifying unit 163 performs the modification using the loaded shape data 210 to generate modified shape data, and stores the resulting modified shape data into the modified shape data cache 170 (S 210 ).
- the polygon rendering processing unit 180 performs polygon rendering processing using the vertex data (transformed coordinate data and modified shape data) received from the modified shape data cache 170 (S 211 ).
- the image generating apparatus 100 determines whether or not the aforementioned processing is already completed for all the polygons (S 212 ). When determining that the processing is not yet completed (“Repeat” in S 212 ), the image generating apparatus 100 repeats the respective processes (S 201 to S 211 ). When determining that the processing is already completed (“Completion” in S 212 ), the image generating apparatus 100 outputs a rendered image (S 213 ).
- the image generating apparatus 100 in this embodiment accesses the transformed coordinate data cache 140 for each of all the pieces of vertex ID, and accesses the modified shape data cache 170 only for each of the vertices determined to be valid. For this reason, it is possible to assign an area/areas of cache memory to the essential vertex data for use in the polygon rendering, and thereby to effectively utilize the resource of the cache memory.
- the image generating apparatus 100 is capable of is reducing the amount of memory access and the calculation amount required in the loading of the input polygon data more significantly than the conventional image processing apparatus. Furthermore, the image generating apparatus 100 in this embodiment is applicable to interactive applications because the image generating apparatus 100 determines whether or not the vertices are necessary for the polygon rendering in parallel with image rendering processing.
- the image generating apparatus 100 in this embodiment is described in more detail.
- the description is given of a case where the representation format of a polygon is a polygon mesh.
- FIG. 6 is a diagram showing a flow of processes performed in the case where the input polygon model is formed in a polygon mesh format.
- the polygon mesh format is a format in which many number of internal polygons share vertexes with each other.
- the vertex data of the polygon mesh 401 is specified according to the following exemplary order: P 0 (V 0 , V 1 , V 2 ) ⁇ P 1 (V 1 , V 3 , V 2 ) ⁇ P 2 (V 2 , V 3 , V 4 ) ⁇ P 3 (V 0 , V 2 , V 5 ) ⁇ P 4 (V 5 , V 2 , V 6 ) ⁇ P 5 (V 2 , V 4 , V 6 ).
- the polygon mesh is a highly flexible format, and thus the aforementioned specification order is not necessarily used.
- a time chart 402 is a time chart indicating a flow of processes from the loading of the vertex ID to the generation of modified shape data.
- the flow of processes using the polygon mesh icy format is described with reference to a time chart 402 .
- the coordinate data loading unit 132 loads the coordinate data Mi in the vertex data.
- the coordinate transform unit 133 performs coordinate transform on the loaded coordinate data Mi to generate transformed coordinate data Di.
- the coordinate transform unit 133 stores the transformed coordinate data Di into the transformed coordinate data cache 140 .
- the transformed coordinate data Di of the vertex is already stored therein, the coordinate data of the same vertex on the polygon mesh is referred to, and thus the same processing is not executed more than once.
- the pieces of vertex ID are loaded according to the following order of V 0 ⁇ V 1 ⁇ V 2 ⁇ V 1 ⁇ V 3 ⁇ V 2 ⁇ V 2 ⁇ V 3 ⁇ V 4 ⁇ V 0 ⁇ V 2 ⁇ V 5 ⁇ V 2 ⁇ V 6 ⁇ V 5 ⁇ V 2 ⁇ V 4 ⁇ V 6 ;
- the processes performed on the coordinate data that are, the loading and coordinate transform of the coordinate data are performed according to the order of V 0 ⁇ V 1 ⁇ V 2 ⁇ V 3 ⁇ V 4 ⁇ V 5 ⁇ V 6 ; and each of the vertices for which an inquiry is already made at least once is not re-processed.
- the loading and coordinate transform of the coordinate data are executed only once per vertex.
- the coordinate data M 1 and M 2 among the coordinate data of the vertices of a polygon P 1 are not loaded, and thus no coordinate transform (generation of transformed coordinate data D 1 and D 2 ) is executed on the coordinate data M 1 and M 2 . It is to be noted that these processes are already executed in the processing of the polygon P 0 .
- the polygon rendering validity flag FPj shows True (T) when the corresponding polygon is valid, and shows False (F) when the corresponding polygon is invalid.
- the polygon erase determination is performed according to the order of P 0 ⁇ P 1 ⁇ P 2 ⁇ P 3 ⁇ P 4 ⁇ P 5 .
- the vertex validity flag FVk of the vertex Vk is also assumed to be True.
- FVk ( FPj &( Vk is an element of Pj )) (Expression 1)
- the vertex Vk is a vertex indicating the vertex ID input as the k+1-th vertex ID by the vertex erase determining unit 152 .
- the vertex V 0 in the vertex erase determination is the vertex indicated by the first input vertex ID, that is, the vertex V 0 of the polygon P 0 .
- the vertex V 4 is the vertex indicated by the fifth input vertex ID, that is, the vertex V 3 of the polygon P 1 .
- the number of the vertex validity flags FVk corresponds to the number of vertices input by the vertex erase determining unit 152 .
- plural vertex validity flags FVk are generated for each identical vertex.
- the shape data access vertex ID generating unit 153 generates pieces of vertex ID for accessing the shape data check unit 161 , using the vertex validity flags FVk.
- FIG. 7 shows a flowchart of a method of generating shape data access vertex ID.
- the shape data access vertex ID generating unit 153 obtains the original vertex ID loaded and used by the coordinate data processing unit 130 (S 301 ). Next, the shape data access vertex ID generating unit 153 determines whether or not the vertex validity flag FVk of a current vertex is True (S 302 ).
- the shape data access vertex ID generating unit 153 When the vertex validity flag FVk is True (“True” in S 302 ), the shape data access vertex ID generating unit 153 outputs the input vertex ID as the shape data access vertex ID (S 303 ). When the vertex validity flag FVk is False (“False” in S 302 ), the shape data access vertex ID generating unit 153 does not output the input vertex ID.
- the shape data access vertex ID generating unit 153 outputs the vertex ID of only each of the vertices corresponding to the vertex validity flag FVk indicating “True” to the shape data check unit 161 .
- the pieces of vertex ID output to the shape data check unit 161 are generated according to the order of V 0 ⁇ V 1 ⁇ V 2 ⁇ V 0 ⁇ V 2 ⁇ V 5 ⁇ V 2 ⁇ V 6 ⁇ V 5 .
- the shape data access vertex ID generating unit 153 has a function of generating a rendering vertex list indicating only the vertices determined to be rendering objects.
- the rendering vertex list is a list indicating the order of V 0 ⁇ V 1 ⁇ V 2 V 0 ⁇ V 2 ⁇ V 5 ⁇ V 2 ⁇ V 6 ⁇ V 5 as shown in FIG. 6 .
- the shape data loading unit 162 loads the shape data Ni in the vertex data.
- the shape data modifying unit 163 processes the loaded shape data Ni to generate modified shape data Ci.
- the shape data modifying unit 163 stores the resulting modified shape data Ci into the modified shape data cache 170 .
- the shape data of the same vertex on the polygon mesh is referred to, and thus the same processing is not executed more than once.
- the pieces of vertex ID are generated according to the order of V 0 ⁇ V 1 ⁇ V 2 ⁇ V 0 ⁇ V 2 ⁇ V 5 ⁇ V 2 ⁇ V 6 ⁇ V 5 .
- processes on the shape data that are, the loading and modification of the shape data are performed according to the order of V 0 ⁇ V 1 ⁇ V 2 ⁇ V 5 ⁇ V 6 , and the vertices for which an inquiry is already made at least once are not re-modified. In short, the loading and modification of the shape data are executed only once per vertex.
- the shape data N 0 and N 2 in the vertices of the polygon P 3 are not loaded, and thus no process (generation of modified data C 0 and C 2 ) is executed on the shape data N 0 and N 2 . It is to be noted that these processes are already executed in the processing of the polygon P 0 .
- FIG. 8 is a diagram showing a structure of the transformed coordinate data cache 140 and a structure of the modified shape data cache 170 .
- a cache memory is divided into units of cache lines, and each of the cache lines is is assigned with a unique entry number.
- each cache line includes an entry number, a vertex ID (cache tag), a reference counter, a cache line validity flag, and a cache line memory.
- the entry number is an identifier for associating with data inside the cache.
- the vertex ID (cache tag) is a vertex ID identifying the vertex managed in the cache line.
- the reference counter is a counter for counting the number of reference vertices whose data is currently being referred to.
- the cache line validity flag is flag information indicating whether or not valid data is already stored in the cache line.
- Each of the cache lines in the cache memory is a data storage unit for storing either transformed coordinate data or modified shape data.
- the reference counter of a cache line When the reference counter of a cache line is 0, it is possible to register a new vertex ID assuming that the cache line is vacant.
- the reference counter is incremented each time the vertex ID is required, and more specifically, each time an inquiry for the vertex ID is made.
- the reference counter is decremented each time a polygon is rendered using either the corresponding transformed coordinate data or the corresponding modified shape data.
- FIG. 8 shows a cache in the case where the polygons P 0 to P 5 as shown in FIG. 6 are ready to be rendered because all the pre-processes are already successfully completed but these polygons are not yet rendered.
- each cache (either the transformed coordinate data cache 140 or the modified shape data cache 170 ) in FIG. 8 .
- the cache searches the pieces of vertex ID of the cache lines for the cache line that satisfies one of the conditions of (i) the reference counter is not 0 and (ii) the cache line validity flag shows True, to find out whether or not the cache line having the identical vertex ID value is included.
- the cache increments the reference counter of the cache line by 1, and neither re-loads nor re-calculates the data.
- the cache searches for the cache line whose reference counter shows 0, registers therein the vertex ID for which the inquiry is already made, and sets 1 to the reference counter.
- the cache sets the cache line validity flag to False (F), and waits until the data is loaded and modified.
- the cache stores the modified data into the cache line memory, and sets the cache line validity flag to True (T).
- the cache loads, from the cache line memory, the data of the vertex ID for which the inquiry for polygon rendering is already made, and decrements the reference counter of the cache line by 1.
- the cache in FIG. 8 which operates as described above executes the processes in this embodiment, access is made to every piece of vertex ID in the vertex ID list in the transformed coordinate data cache 140 .
- the coordinate data of each vertex is modified at least once irrespective of whether the polygon rendering is valid or invalid, and the modified coordinate data is stored in the cache lines in the cache memory.
- the modified shape data cache 170 access is made to only each piece of the vertices necessary for the rendering.
- the minimum shape data is modified and stored in the cache lines in the cache memory. Accordingly, it is possible to effectively utilize the area(s) of the cache line(s) in the cache memory, and thereby to make it possible to reduce the amount of memory access and the amount of calculation more significantly than the conventional image processing apparatus.
- FIG. 9 is a diagram showing a data flow between processing units of the image generating apparatus 100 according to this embodiment. As shown in the diagram, it is assumed that a vertex ID list 501 of the input polygon model, a coordinate data list 502 , and a shape data list 503 are arranged in a memory 200 . Furthermore, the memory 200 also stores an output image 504 that is to be output by the polygon rendering processing unit 180 .
- the coordinate data check unit 131 loads a vertex ID 505 by accessing the vertex ID list 501 in the memory 200 . Next, the coordinate data check unit 131 makes an inquiry about transformed coordinate data of the vertex to the transformed coordinate data cache 140 . When the transformed coordinate data is not yet stored as therein, the coordinate data check unit 131 outputs the vertex ID to the coordinate data loading unit 132 .
- the coordinate data loading unit 132 accesses the coordinate data list 502 in the memory 200 , loads the coordinate data 506 corresponding to the vertex ID 505 , and outputs the loaded coordinate data 506 to the coordinate transform unit 133 .
- the coordinate transform unit 133 performs coordinate transform on the coordinate data 506 to generate transformed coordinate data 507 , and stores the resulting transformed coordinate data 507 into the transformed coordinate data cache 140 .
- the polygon erase determining unit 151 receives, as data 508 , the vertex ID and the transformed coordinate data of each of the vertices of the determination-object polygon from the transformed coordinate data cache 140 , and generates a polygon rendering validity flag. Next, the polygon erase determining unit 151 outputs, as data 509 , the vertex ID; the transformed coordinate data, and the polygon rendering validity flag to the vertex erase determining unit 152 .
- the vertex erase determining unit 152 generates a vertex validity flag using the vertex ID, the transformed coordinate data, and the polygon rendering validity flag (data 509 ) output from the polygon erase determining unit 151 .
- the vertex erase determining unit 152 outputs, as data 510 , the vertex ID, the transformed coordinate data, and the vertex validity flag to the shape data access vertex ID generating unit 153 .
- the shape data access vertex ID generating unit 153 refers to the vertex ID, the transformed coordinate data, and the vertex validity flag (data 510 ) output from the vertex erase determining unit 152 . Next, the shape data access vertex ID generating unit 153 outputs the vertex ID and the transformed coordinate data as data 511 to the shape data check unit 161 only when the vertex validity flag shows True.
- the shape data check unit 161 makes an inquiry to the modified shape data cache 170 using the vertex ID of the data 511 output from the shape data access vertex ID generating unit 153 . Next, the shape data check unit 161 outputs, as data 512 , the vertex ID and the transformed coordinate data included in the data 511 to the shape data loading unit 162 when no modified shape data of the vertex is already stored therein.
- the shape data loading unit 162 accesses the shape data list 503 in the memory 200 , and loads the vertex ID of the transformed coordinate data (data 512 ) and the shape data corresponding to the vertex ID. Next, the shape data loading unit 162 outputs, as data 513 , the transformed coordinate data and the loaded shape data to the shape data modifying unit 163 .
- the shape data modifying unit 163 calculates the modified shape data 514 using the transformed coordinate data and the shape data (data 513 ). Next, the shape data modifying unit 163 stores the modified shape data 514 into the modified shape data cache 170 .
- the polygon rendering processing unit 180 receives, from the modified shape data cache 170 , the transformed coordinate data and the modified shape data (data 515 ) of the polygon that is a rendering object, and performs polygon rendering processing to generate an output image 504 in the memory 200 .
- the image generating apparatus and the image generating method according to this embodiment are intended to access the modified shape data cache that stores the shape data other than the coordinate data among the vertex data of each of the input polygon models, by using only the pieces of vertex ID of the vertices determined to be valid by the vertex erase determinations.
- any other representation format than the aforementioned polygon mesh format may be included.
- a vertex ID list may be generated inside or outside the image generating apparatus 100 .
- FIG. 10A to FIG. 10C show examples of transform from representation formats (a polygon strip, a polygon fan, an independent polygon) other than the polygon mesh format to the polygon mesh format.
- Each of vertex ID lists 604 , 607 , and 610 provided in the form of either the polygon strip 601 , the polygon fan 602 , or the independent polygon 603 can be transformed into a corresponding one of vertex ID lists 605 , 608 , and 611 in the form of the polygon mesh format.
- vertex ID lists 606 , 609 , and 612 in the form of the polygon mesh format.
- arrows showing the vertex ID lists 605 and 606 mean that the order therein is an inverse order with respect to the order in the vertex list for the polygon strip format.
- a vertex ID is used to associate the coordinate data and the shape data of the vertex in this embodiment, it is also possible to use other data such as a memory address pointer that shows the coordinate data and the shape data of the vertex instead of using the vertex ID.
- the polygon erase determining unit 151 makes clipping determinations and culling determinations, but it is also possible to perform only one of the two kinds of determinations depending on rendering options.
- an erase determination that is made assuming that an arbitrary plane within a three-dimensional space is a boundary.
- an erase determination that is made assuming that an arbitrary area on a display screen 303 is a boundary.
- some or all of the functional blocks of the image generating apparatus 100 as shown in FIG. 2 may be parallelized or perform pipe line processing. Alternatively, some of the functional blocks may be integrated into one block.
- the functions of the coordinate data check unit 131 and the transformed coordinate data cache 140 of the image generating apparatus 100 as shown in FIG. 2 may be either included in the shape data check unit 161 or the modified shape data cache 170 , or eliminated.
- the image generating apparatus 100 as shown in FIG. 2 is configured to include the modified shape data cache 170 and to store the modified shape data into the modified shape data cache 170 .
- the image generating apparatus 100 may store the original shape data read out from the memory 200 into a cache.
- the image generating apparatus 100 may store the original shape data in a cache instead of storing the modified shape data.
- FIG. 11 is a block diagram of an exemplary structure of an image generating apparatus 700 according to a variation of this embodiment of the present invention.
- the image generating apparatus 700 includes a coordinate data processing unit 130 , a determining unit 150 , a shape data processing unit 760 , a shape data cache 770 , and a polygon rendering processing unit 180 . It is to be noted that the same structural elements as in FIG. 2 are assigned with the same reference signs.
- the coordinate data processing unit 130 loads coordinate data in the vertex data from a memory 200 , and performs coordinate transform on the loaded coordinate data to generate transformed coordinate data.
- the determining unit 150 determines whether or not the vertex indicated by the transformed coordinate data is a rendering object, using the transformed coordinate data generated by the coordinate data processing unit 130 .
- the shape data processing unit 760 outputs shape data to the polygon rendering processing unit 180 when the determining unit 150 determines that the vertex indicated by the transformed coordinate data is the rendering object.
- the shape data processing unit 760 loads the shape data from the memory 200 , and stores the loaded shape data into the shape data cache 770 when both the following conditions are satisfied: the determining unit 150 determines that the vertex indicated by the transformed coordinate data is the rendering object; and the shape data of the vertex is not yet stored in the shape data cache 770 .
- the shape data processing unit 760 causes the shape data cache 770 to output the shape data to the polygon rendering processing unit 180 when both the following conditions are satisfied: the determining unit 150 determines that the vertex indicated by the transformed coordinate data is the rendering object; and the shape data of the vertex is already stored in the shape data cache 770 .
- the polygon rendering processing unit 180 renders the polygon using the transformed coordinate data generated by the coordinate data processing unit 130 and the shape data stored in the shape data cache 770 .
- the image generating apparatus 700 stores the shape data loaded from the memory 200 into the shape data cache 770 without modifying the shape data. In this way, it is possible to reduce the amount of access to the memory 200 . Furthermore, the aforementioned image generating apparatus 700 is also effective even when there is no need to modify the shape data.
- FIG. 12 is a block diagram of an exemplary structure of an image generating apparatus 800 according to a variation of the embodiment of the present invention.
- the image generating apparatus 800 differs from the image generating apparatus 700 as shown in FIG. 11 in the point of further including a transformed coordinate data cache 140 .
- the same structural elements as in FIG. 2 and FIG. 11 are assigned with the same reference signs, and the same descriptions are not repeated here.
- a determining unit 150 determines whether or not the vertex indicated by the transformed coordinate data stored in the transformed coordinate data cache 140 is a rendering object using the transformed coordinate data.
- the present invention can be implemented as an information processing apparatus including the image generating apparatuses 100 , 700 , or 800 as shown in FIG. 2 , 11 , or 12 , respectively.
- FIG. 13 is a block diagram showing a structure of an image processing apparatus 900 including the image generating apparatus 100 as shown in FIG. 2 .
- the image processing apparatus 900 includes an integrated circuit 901 , a memory 908 , and a display 909 .
- the integrated circuit 901 is, for example, a system LSI, and includes a CPU 902 , a graphics processing unit 903 (the image generating apparatus 100 in FIG. 2 ), a memory controller 904 , a display controller 905 , a CPU bus 906 , and a memory bus 907 .
- the CPU 902 stores a rendering instruction list 202 and a vertex data list 203 into the memory 908 via the memory bus 907 and the memory controller 904 .
- the CPU 902 conveys the rendering instruction to the graphics processing unit 903 via the CPU bus 906 .
- the graphics processing unit 903 accesses the rendering instruction list 202 and the vertex data list 203 stored in the memory 908 via the memory bus 907 and the memory controller 904 , and performs the aforementioned image generating processing.
- the resulting image is stored in the memory 908 via the memory bus 907 and the memory controller 904 .
- the generated image stored in the memory 908 is output to the display 909 via the display controller 905 .
- the CPU 902 may divide the vertex data list 203 into a vertex ID list 205 that is always loaded, a coordinate data list 206 that is loaded only once, and a shape data list 207 that is not loaded when the vertex is already determined to be invalid in a vertex erase determination or when the shape data list 207 is already loaded before, and may store the respective lists to separate memory areas. In this way, it is possible to prevent shape data determined to be unnecessary from being loaded together with the associated coordinate data when the memory bus 907 and the memory controller 904 load the vertex data list 203 in the memory 908 by memory access, and thereby to make it possible to increase the memory access efficiency.
- each of the functional blocks such as the CPU 902 and the graphics processing unit 903 of the integrated circuit 901 as shown in FIG. 13 may be individually formed as an integrated circuit. Alternatively, some or all of the functional blocks may be integrated into a single integrated circuit.
- the integrated circuit 901 may include any other functional block such as an AV (Audio Visual) processing unit or a streaming processing unit.
- the memory 908 may be mounted inside the integrated circuit 901 . Alternatively, plural memories 908 may be mounted inside the integrated circuit 901 or provided outside the integrated circuit 901 .
- the image generating apparatus is typically implemented as an LSI that is a semiconductor integrated circuit.
- LSI that is a semiconductor integrated circuit.
- Each of these structural elements may be made into one chip individually, or all or some of the structural elements may be made into one chip.
- the name used here is LSI, but it may also be called IC, system LSI, super LSI, or ultra LSI depending on the degree of integration.
- ways to achieve integration are not limited to the LSI, and a special circuit or a general purpose processor and so forth can also achieve the integration.
- Field Programmable Gate Array (FPGA) that can be programmed after manufacturing LSI or a reconfigurable processor that allows re-configuration of the connection or configuration of LSI can be used for the same purpose.
- FPGA Field Programmable Gate Array
- rendering apparatuses suitable for various applications by combining a semiconductor chip on which the image generating apparatus according to the embodiment of the present invention is integrated and a display for rendering an image.
- the present invention can be used as information rendering means included in mobile phones, television sets, digital video recorders, digital video cameras, car navigation systems, etc.
- a display provided thereto it is possible to combine the display with (i) a Braun tube (CRT: Cathode Ray Tube), (ii) a liquid crystal display, a PDP (Plasma Display Panel) etc., (iii) a flat display such as an organic EL (Electro luminescence) display, (iv) a projector display represented by a projector.
- An image generating apparatus is useful for various applications.
- the present invention is highly useful as information display means for menu display, Web browsers, editors, EPGs (Electronic Program Guides), map display, etc., (i) in cell-driven mobile display terminals such as mobile phones, mobile music players, digital cameras, digital video cameras, etc., and/or (ii) in high-resolution information display devices such as television sets, digital video recorders, car navigation systems, etc.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Image Generation (AREA)
Abstract
Description
- PCT International Publication No. 2008/126392
FVk=(FPj&(Vk is an element of Pj)) (Expression 1)
- 100, 700, 800 Image generating apparatus
- 110 Host interface
- 120 Control unit
- 130 Coordinate data processing unit
- 131 Coordinate data check unit
- 132 Coordinate data loading unit
- 133 Coordinate transform unit
- 140 Transformed coordinate data cache
- 150 Determining unit
- 151 Polygon erase determining unit
- 152 Vertex erase determining unit
- 153 Shape data access vertex ID generating unit
- 160, 760 Shape data processing unit
- 161 Shape data check unit
- 162 Shape data loading unit
- 163 Shape data modifying unit
- 170 Modified shape data cache
- 180 Polygon rendering processing unit
- 190 Memory interface
- 200, 908 Memory
- 201 Input data
- 202 Rendering instruction list
- 203 Vertex data list
- 204 Rendering instruction
- 205, 501 Vertex ID list
- 206, 502 Coordinate data list
- 207, 503 Shape data list
- 208, 505 Vertex ID
- 209, 506 Coordinate data
- 210 Shape data
- 301 Viewpoint
- 302 View volume
- 303 Display screen
- 304, 305, 306 Polygon
- 401 Polygon mesh
- 402 Time chart
- 504 Output image
- 507 Transformed coordinate data
- 508, 509, 510, 511, 512, 513, 515 Data
- 514 Modified shape data
- 601 Polygon strip
- 602 Polygon fan
- 603 Independent polygon
- 604, 605, 606, 607, 608, 609, 610, 611, 612 Vertex ID list
- 770 Shape data cache
- 900 Information processing apparatus
- 901 Integrated circuit
- 902 CPU
- 903 Graphics processing unit
- 904 Memory controller
- 905 Display controller
- 906 CPU bus
- 907 Memory bus
- 909 Display
Claims (7)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009143846 | 2009-06-17 | ||
JP2009-143846 | 2009-06-17 | ||
PCT/JP2010/003952 WO2010146828A1 (en) | 2009-06-17 | 2010-06-15 | Image generation device, image generation method, and integrated circuit |
Publications (2)
Publication Number | Publication Date |
---|---|
US20110267354A1 US20110267354A1 (en) | 2011-11-03 |
US8941660B2 true US8941660B2 (en) | 2015-01-27 |
Family
ID=43356161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/142,460 Expired - Fee Related US8941660B2 (en) | 2009-06-17 | 2010-06-15 | Image generating apparatus, image generating method, and image generating integrated circuit |
Country Status (5)
Country | Link |
---|---|
US (1) | US8941660B2 (en) |
EP (1) | EP2444938A4 (en) |
JP (1) | JP5318202B2 (en) |
CN (1) | CN102369557B (en) |
WO (1) | WO2010146828A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9905040B2 (en) | 2016-02-08 | 2018-02-27 | Apple Inc. | Texture sampling techniques |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014056496A (en) * | 2012-09-13 | 2014-03-27 | Mitsubishi Heavy Ind Ltd | Virtual camera image generation device, virtual camera image generation system, virtual camera image generation method and program |
CN103617790A (en) * | 2013-12-19 | 2014-03-05 | 大连辽无二电器有限公司 | Field programmable gate array (FPGA)-based graphic controller |
CN105719268B (en) * | 2014-12-02 | 2019-05-07 | 北京四维图新科技股份有限公司 | A kind of processing method and processing device of map datum |
GB2545398B (en) * | 2015-12-08 | 2020-02-19 | Advanced Risc Mach Ltd | Advance loading of memory page access data in data processing systems |
JP7359558B2 (en) * | 2019-03-26 | 2023-10-11 | 株式会社バンダイナムコエンターテインメント | Program, image generation device and image generation method |
CN112419137A (en) * | 2020-07-30 | 2021-02-26 | 上海幻电信息科技有限公司 | Method and device for displaying mask picture and method and device for displaying mask picture |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05270093A (en) | 1992-01-29 | 1993-10-19 | Canon Inc | Method and apparatus for processing image |
JPH07295787A (en) | 1994-04-21 | 1995-11-10 | Ricoh Co Ltd | Arithmetic processor |
US5587800A (en) | 1992-01-29 | 1996-12-24 | Canon Kabushiki Kaisha | Image processing method and apparatus |
US5933844A (en) * | 1991-11-04 | 1999-08-03 | Sun Microsystems, Inc. | Write through virtual cache memory, alias addressing, and cache flushes |
US6437779B1 (en) * | 1999-02-23 | 2002-08-20 | Sega Enterprises, Ltd. | Image processing method image processing unit and recording medium recording integrated shaping model data and image processing program to be used thereof |
CN1377013A (en) | 2001-03-26 | 2002-10-30 | 矽统科技股份有限公司 | Method and module for removing 3D image |
US20040233208A1 (en) * | 1999-12-22 | 2004-11-25 | Microsoft Corporation | Efficient graphics pipeline with a pixel cache and data pre-fetching |
US20070050641A1 (en) * | 2005-08-26 | 2007-03-01 | International Business Machines Corporation | Cryptography methods and apparatus |
WO2008126392A1 (en) | 2007-04-11 | 2008-10-23 | Panasonic Corporation | Image generating apparatus and image generating method |
US7551182B2 (en) * | 2005-01-18 | 2009-06-23 | Oculus Info Inc. | System and method for processing map data |
US20090324039A1 (en) * | 2008-06-30 | 2009-12-31 | Texas Instruments Incorporated | System and method for converting scan data |
US20100030968A1 (en) * | 2008-07-31 | 2010-02-04 | International Business Machines Corporation | Methods of Cache Bounded Reference Counting |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4745839B2 (en) * | 2005-01-28 | 2011-08-10 | 富士通株式会社 | Data transfer system, transmission program, reception program, and data transmission method |
JP2008126392A (en) | 2006-11-24 | 2008-06-05 | Fuji Mach Mfg Co Ltd | Workpiece supply device |
-
2010
- 2010-06-15 US US13/142,460 patent/US8941660B2/en not_active Expired - Fee Related
- 2010-06-15 CN CN201080003882.7A patent/CN102369557B/en not_active Expired - Fee Related
- 2010-06-15 EP EP10789210.1A patent/EP2444938A4/en not_active Withdrawn
- 2010-06-15 JP JP2011519549A patent/JP5318202B2/en not_active Expired - Fee Related
- 2010-06-15 WO PCT/JP2010/003952 patent/WO2010146828A1/en active Application Filing
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5933844A (en) * | 1991-11-04 | 1999-08-03 | Sun Microsystems, Inc. | Write through virtual cache memory, alias addressing, and cache flushes |
US5587800A (en) | 1992-01-29 | 1996-12-24 | Canon Kabushiki Kaisha | Image processing method and apparatus |
JPH05270093A (en) | 1992-01-29 | 1993-10-19 | Canon Inc | Method and apparatus for processing image |
JPH07295787A (en) | 1994-04-21 | 1995-11-10 | Ricoh Co Ltd | Arithmetic processor |
US5692163A (en) | 1994-04-21 | 1997-11-25 | Ricoh Company, Ltd. | Process system which generates sets of output data from sets of predetermined input data with duplicate data |
US6437779B1 (en) * | 1999-02-23 | 2002-08-20 | Sega Enterprises, Ltd. | Image processing method image processing unit and recording medium recording integrated shaping model data and image processing program to be used thereof |
US20040233208A1 (en) * | 1999-12-22 | 2004-11-25 | Microsoft Corporation | Efficient graphics pipeline with a pixel cache and data pre-fetching |
CN1377013A (en) | 2001-03-26 | 2002-10-30 | 矽统科技股份有限公司 | Method and module for removing 3D image |
US7551182B2 (en) * | 2005-01-18 | 2009-06-23 | Oculus Info Inc. | System and method for processing map data |
US20070050641A1 (en) * | 2005-08-26 | 2007-03-01 | International Business Machines Corporation | Cryptography methods and apparatus |
WO2008126392A1 (en) | 2007-04-11 | 2008-10-23 | Panasonic Corporation | Image generating apparatus and image generating method |
US20100066739A1 (en) | 2007-04-11 | 2010-03-18 | Yudai Ishibashi | Image generating apparatus and image generating method |
US20090324039A1 (en) * | 2008-06-30 | 2009-12-31 | Texas Instruments Incorporated | System and method for converting scan data |
US20100030968A1 (en) * | 2008-07-31 | 2010-02-04 | International Business Machines Corporation | Methods of Cache Bounded Reference Counting |
Non-Patent Citations (2)
Title |
---|
English translation of Reply to Written Opinion (Aug. 2010). |
International Search Report issued Aug. 24, 2010 in International (PCT) Application No. PCT/JP2010/003952. |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9905040B2 (en) | 2016-02-08 | 2018-02-27 | Apple Inc. | Texture sampling techniques |
US10192349B2 (en) | 2016-02-08 | 2019-01-29 | Apple Inc. | Texture sampling techniques |
Also Published As
Publication number | Publication date |
---|---|
CN102369557B (en) | 2014-05-14 |
EP2444938A4 (en) | 2015-09-02 |
WO2010146828A1 (en) | 2010-12-23 |
JPWO2010146828A1 (en) | 2012-11-29 |
US20110267354A1 (en) | 2011-11-03 |
JP5318202B2 (en) | 2013-10-16 |
EP2444938A1 (en) | 2012-04-25 |
CN102369557A (en) | 2012-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8941660B2 (en) | Image generating apparatus, image generating method, and image generating integrated circuit | |
US8823705B2 (en) | Image generating apparatus and image generating method for generating images by rendering a polygon | |
US7663621B1 (en) | Cylindrical wrapping using shader hardware | |
JP4938850B2 (en) | Graphic processing unit with extended vertex cache | |
JP5166552B2 (en) | Multi-buffer support for off-screen surfaces in graphics processing systems | |
EP2068279A1 (en) | System and method for using a secondary processor in a graphics system | |
JP2007525768A (en) | Register-based queuing for texture requests | |
CN111754381A (en) | Graphics rendering method, apparatus, and computer-readable storage medium | |
US9299182B2 (en) | Divided-area-based rendering device and divided-area-based rendering method | |
US7400325B1 (en) | Culling before setup in viewport and culling unit | |
CN112652046B (en) | Game picture generation method, device, equipment and storage medium | |
US7898549B1 (en) | Faster clears for three-dimensional modeling applications | |
JP4234089B2 (en) | Entertainment device, object display device, object display method, program, and character display method | |
US7292239B1 (en) | Cull before attribute read | |
CN111862342B (en) | Augmented reality texture processing method and device, electronic equipment and storage medium | |
US6404428B1 (en) | Method and apparatus for selectively providing drawing commands to a graphics processor to improve processing efficiency of a video graphics system | |
US7525551B1 (en) | Anisotropic texture prefiltering | |
US20080043019A1 (en) | Method And Apparatus For Transforming Object Vertices During Rendering Of Graphical Objects For Display | |
CN114419299A (en) | Virtual object generation method, device, equipment and storage medium | |
CN113051491B (en) | Map data processing method, apparatus, storage medium, and program product | |
CN116310227B (en) | Three-dimensional dense reconstruction method, three-dimensional dense reconstruction device, electronic equipment and medium | |
US20230168510A1 (en) | Head-mounted display device, control method, and non-transitory computer readable storage medium | |
US9823889B2 (en) | Method and apparatus for estimating a fragment count for the display of at least one three-dimensional object | |
CN116245995A (en) | Image rendering method, device and equipment | |
CN115803769A (en) | Thread group creation method, graphic processing unit and electronic equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: PANASONIC CORPORATION, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ISHIBASHI, YUDAI;REEL/FRAME:026795/0160 Effective date: 20110604 |
|
AS | Assignment |
Owner name: PANASONIC INTELLECTUAL PROPERTY MANAGEMENT CO., LTD., JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PANASONIC CORPORATION;REEL/FRAME:034194/0143 Effective date: 20141110 Owner name: PANASONIC INTELLECTUAL PROPERTY MANAGEMENT CO., LT Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PANASONIC CORPORATION;REEL/FRAME:034194/0143 Effective date: 20141110 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FEPP | Fee payment procedure |
Free format text: SURCHARGE FOR LATE PAYMENT, LARGE ENTITY (ORIGINAL EVENT CODE: M1554); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
AS | Assignment |
Owner name: SOVEREIGN PEAK VENTURES, LLC, TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PANASONIC INTELLECTUAL PROPERTY MANAGEMENT CO., LTD.;REEL/FRAME:048268/0916 Effective date: 20181012 |
|
AS | Assignment |
Owner name: PANASONIC INTELLECTUAL PROPERTY MANAGEMENT CO., LTD., JAPAN Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE ERRONEOUSLY FILED APPLICATION NUMBERS 13/384239, 13/498734, 14/116681 AND 14/301144 PREVIOUSLY RECORDED ON REEL 034194 FRAME 0143. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT;ASSIGNOR:PANASONIC CORPORATION;REEL/FRAME:056788/0362 Effective date: 20141110 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20230127 |