IP Library Granted Patent US 8,941,660
Granted Patent B2
US 8,941,660 · App. 13/142,460 · Granted Jan 27, 2015

Image generating apparatus, image generating method, and image generating integrated circuit

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,941,660
App. No.
13/142,460
Granted
Jan 27, 2015
Kind
B2
Abstract

An image generating apparatus, which can reduce a calculation amount by effectively utilizing a cache resource, generates a graphics image by rendering a polygon and includes a coordinate processing unit loading, from a memory, coordinate data included in vertex data and performing coordinate transform on the loaded coordinate data. The image generating apparatus also includes a determining unit determining whether or not the vertex is a rendering object, using the transformed coordinate data, a shape data cache storing shape data, a shape data processing unit loading, from the memory, the shape data, and storing the loaded shape data in the shape data cache when both of following conditions are satisfied: the vertex is determined to be the rendering object; and the shape data is not yet stored in the shape data cache, and a polygon rendering processing unit rendering the polygon using the transformed coordinate data and the shape data.

Claims (68)

1. A graphics processing unit which generates a graphics image by rendering a polygon according to a rendering instruction from a central processing unit, said graphics processing unit comprising:

a coordinate processing unit configured to load, from a memory, coordinate data indicating a position of each of vertices 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 vertices of the polygon;

a determining unit configured to determine whether or not the polygon is a rendering object, using the transformed coordinate data generated by said coordinate processing unit, and, when the polygon is determined to be the rendering object, generate a vertex list indicating the vertices of the polygon;

a shape data cache for storing, for each of the vertices, shape data that is included in the vertex data and other than the coordinate data;

a shape data processing unit configured to (i) determine whether or not the shape data for each of the vertices indicated in the vertex list generated by said determining unit is stored in said shape data cache and (ii) when the shape data for each of the vertices indicated in the vertex list is not yet stored in said shape data cache, load the shape data from the memory and store the loaded shape data for each of the vertices indicated in the vertex list in said shape data cache in association with the vertices indicated in the vertex list; and

a polygon rendering processing unit configured to render the polygon using the transformed coordinate data generated by said coordinate processing unit and the shape data stored in said shape data cache,

wherein modified shape data generated by modifying the shape data is stored in said shape data cache,

wherein said shape data processing unit includes:

a shape data check unit configured to judge whether or not the modified shape data for each of the vertices indicated in the vertex list generated by said determining unit is already stored in said shape data cache;

a shape data loading unit configured to load the shape data for each of the vertices from the memory when said 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 said shape data loading unit to generate the modified shape data, and store the resulting modified shape data into said shape data cache,

wherein said shape data cache includes a plurality of cache lines,

wherein each of said cache lines includes:

a cache tag indicating an ID of one of the vertices;

a line memory for storing the modified shape data for the one of the vertices indicated by said cache tag; and

a flag indicating whether or not the modified shape data stored in said line memory is valid,

wherein said shape data check unit is configured to judge, for each of said cache lines, whether or not the ID of the one of the vertices indicated in the vertex list is already stored in said cache tag corresponding to said flag indicating that the modified shape data is valid,

wherein said shape data loading unit is configured to load, for each of said cache lines, the shape data for the one of the vertices from the memory when said shape data check unit judges that the ID of the one of the vertices is not yet stored in said cache tag, and

wherein each of said cache lines includes a reference counter for counting the number of times the modified shape data stored in said line memory is referred to.

2. The graphics processing unit according to claim 1 , further comprising a coordinate data cache for storing the transformed coordinate data generated by said coordinate processing unit,

wherein said determining unit is configured to determine whether or not the polygon is the rendering object, using the transformed coordinate data stored in said coordinate data cache, when the transformed coordinate data is already stored in said coordinate data cache.

3. The graphics processing unit according to claim 1 , wherein the modified shape data is not stored in the memory, such that the shape data processing unit does not load the modified shape data from the memory and the shape data processing unit does not store the modified shape data to the memory.

4. The graphics processing unit according to claim 1 ,

wherein the modified shape data stored in said shape data cache is generated by performing, on the shape data, at least one of a calculation for obtaining a modified color value through an optical source estimation and a calculation for obtaining a modified texture coordinate value through a texture coordinate estimation.

5. The graphics processing unit according to claim 1 ,

wherein said shape data processing unit is configured to, when said shape data check unit judges that the modified shape data is not yet stored, store the modified shape data into said line memory of one of said cache lines whose reference counter shows 0, and set said reference counter of said cache line in which the modified shape data is stored to 1,

wherein when said shape data check unit judges that the modified shape data is stored, increment said reference counter of one of said cache lines in which the modified shape data is stored by 1, and

wherein when said polygon rendering processing unit refers to the modified shape data stored in said shape data cache, decrement a reference counter of one of said cache lines in which the modified shape data is stored by 1.

6. An image generating method used in a graphics processing unit which generates a graphics image by rendering a polygon according to a rendering instruction from a central processing unit, said image generating method comprising:

loading, from a memory, coordinate data indicating a position of each of vertices of the polygon and performing 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 vertices of the polygon;

determining whether or not the polygon is a rendering object, using the transformed coordinate data generated by said performing of the coordinate transform, and, when the polygon is determined to be the rendering object, generating a vertex list indicating the vertices of the polygon;

storing, for each of the vertices, shape data that is included in the vertex data and other than the coordinate data, the shape data being stored in a shape data cache;

determining whether or not the shape data for each of the vertices indicated in the generated vertex list is stored in the shape data cache and, when the shape data for each of the vertices indicated in the vertex list is not yet stored in the shape data cache, loading the shape data from the memory and storing the loaded shape data for each of the vertices indicated in the vertex list in the shape data cache in association with the vertices indicated in the vertex list; and

rendering the polygon using the generated transformed coordinate data and the shape data stored in the shape data cache,

wherein modified shape data generated by modifying the shape data is stored in the shape data cache,

wherein said determining of whether or not the shape data for each of the vertices indicated in the generated vertex list is stored in the shape data cache further includes:

judging whether or not the modified shape data for each of the vertices indicated in the vertex list generated by said generating of the vertex list is already stored in the shape data cache;

loading the shape data for each of the vertices from the memory when said judging judges that the modified shape data is not yet stored; and

modifying the shape data loaded by said loading of the shape data for each of the vertices to generate the modified shape data, and storing the resulting modified shape data into the shape data cache,

wherein the shape data cache includes a plurality of cache lines,

wherein each of the cache lines includes:

a cache tag indicating an ID of one of the vertices;

a line memory for storing the modified shape data for the one of the vertices indicated by the cache tag; and

a flag indicating whether or not the modified shape data stored in the line memory is valid,

wherein said judging includes judging, for each of the cache lines, whether or not the ID of the one of the vertices indicated in the vertex list is already stored in the cache tag corresponding to the flag indicating that the modified shape data is valid,

wherein said loading includes loading, for each of the cache lines, the shape data for the one of the vertices from the memory when it is judged in said judging that the ID of the one of the vertices is not yet stored in the cache tag, and

wherein each of the cache lines includes a reference counter for counting the number of times the modified shape data stored in the line memory is referred to.

7. An image generating integrated circuit comprising:

a central processing unit; and

a graphics processing unit configured to generate a graphics image by rendering a polygon according to a rendering instruction from said central processing unit, said graphics processing unit including:

a coordinate processing unit configured to load, from a memory, coordinate data indicating a position of each of vertices 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 vertices of the polygon;

a determining unit configured to determine whether or not the polygon is a rendering object, using the transformed coordinate data generated by said coordinate processing unit, and, when the polygon is determined to be the rendering object, generate a vertex list indicating the vertices of the polygon;

a shape data cache for storing, for each of the vertices, shape data that is included in the vertex data and other than the coordinate data;

a shape data processing unit configured to (i) determine whether or not the shape data for each of the vertices indicated in the vertex list generated by said determining unit is stored in said shape data cache and (ii) when the shape data for each of the vertices indicated in the vertex list is not yet stored in said shape data cache, load the shape data from the memory and store the loaded shape data for each of the vertices indicated in the vertex list in said shape data cache in association with the vertices indicated in the vertex list; and

a polygon rendering processing unit configured to render the polygon using the transformed coordinate data generated by said coordinate processing unit and the shape data stored in said shape data cache,

wherein modified shape data generated by modifying the shape data is stored in said shape data cache,

wherein said shape data processing unit includes:

a shape data check unit configured to judge whether or not the modified shape data for each of the vertices indicated in the vertex list generated by said determining unit is already stored in said shape data cache;

a shape data loading unit configured to load the shape data for each of the vertices from the memory when said 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 said shape data loading unit to generate the modified shape data, and store the resulting modified shape data into said shape data cache,

wherein said shape data cache includes a plurality of cache lines,

wherein each of said cache lines includes:

a cache tag indicating an ID of one of the vertices;

a line memory for storing the modified shape data for the one of the vertices indicated by said cache tag; and

a flag indicating whether or not the modified shape data stored in said line memory is valid,

wherein said shape data check unit is configured to judge, for each of said cache lines, whether or not the ID of the one of the vertices indicated in the vertex list is already stored in said cache tag corresponding to said flag indicating that the modified shape data is valid,

wherein said shape data loading unit is configured to load, for each of said cache lines, the shape data for the one of the vertices from the memory when said shape data check unit judges that the ID of the one of the vertices is not yet stored in said cache tag, and

wherein each of said cache lines includes a reference counter for counting the number of times the modified shape data stored in said line memory is referred to.

Assignments (4)
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. Recorded Dec 24, 2020
From: PANASONIC CORPORATION
To: PANASONIC INTELLECTUAL PROPERTY MANAGEMENT CO., LTD.
Reel/Frame 056788/0362 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2018
From: PANASONIC INTELLECTUAL PROPERTY MANAGEMENT CO., LTD.
To: SOVEREIGN PEAK VENTURES, LLC
Reel/Frame 048268/0916 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2014
From: PANASONIC CORPORATION
To: PANASONIC INTELLECTUAL PROPERTY MANAGEMENT CO., LTD.
Reel/Frame 034194/0143 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 24, 2011
From: ISHIBASHI, YUDAI
To: PANASONIC CORPORATION
Reel/Frame 026795/0160 →