Image compression to reduce pixel and texture memory requirements in a real-time image generator
First Claim
1. A method for generating display images at a computational rate greater than 10 Hz in an image generation system in which 3D graphical objects in a view volume are rendered to generate each of the display images, the method comprising:
- sorting object geometry of the 3D graphical objects among two or more image regions of a 2D view space, where each image region comprises a 2D array of view space coordinates, the object geometry comprises a collection of polygons representing surfaces of the 3D graphical objects and the polygons are spatially sorted such that each image region has a set of polygons that at least partially project into the image region when transformed to the 2D space;
separately rendering the sets of polygons to associated image regions to generate pixel data for the image regions;
independently compressing the pixel data for the image regions;
storing the compressed pixel data for the image regions such that each of the compressed image regions is randomly accessible;
generating a display image including selectively fetching and decompressing the compressed image regions and combining the selectively fetched and decompressed image regions into the display image;
wherein the sorting, rendering, compressing, storing, and generating steps are performed within a computational period of 1/10 of a second; and
repeating the sorting, rendering, compressing, storing, and generating steps to produce subsequent display images at the computational rate.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for supporting image compression in a real-time graphics rendering pipeline includes sorting object geometry for a scene among image regions called chunks. The object geometry for each chunk is rendered separately, and in a serial fashion. After the object geometry is completely rendered for a given chunk, the pixel data for that chunk is compressed and stored. Each chunk of an image can be generated and stored in this manner. To assemble a display image, compressed image chunks are retrieved, decompressed, and temporarily cached. Decompressed image data in the cache is combined into a display image. The process of generating a display image with compression can be performed at real-time rates.
-
Citations
24 Claims
-
1. A method for generating display images at a computational rate greater than 10 Hz in an image generation system in which 3D graphical objects in a view volume are rendered to generate each of the display images, the method comprising:
-
sorting object geometry of the 3D graphical objects among two or more image regions of a 2D view space, where each image region comprises a 2D array of view space coordinates, the object geometry comprises a collection of polygons representing surfaces of the 3D graphical objects and the polygons are spatially sorted such that each image region has a set of polygons that at least partially project into the image region when transformed to the 2D space; separately rendering the sets of polygons to associated image regions to generate pixel data for the image regions; independently compressing the pixel data for the image regions; storing the compressed pixel data for the image regions such that each of the compressed image regions is randomly accessible; generating a display image including selectively fetching and decompressing the compressed image regions and combining the selectively fetched and decompressed image regions into the display image;
wherein the sorting, rendering, compressing, storing, and generating steps are performed within a computational period of 1/10 of a second; andrepeating the sorting, rendering, compressing, storing, and generating steps to produce subsequent display images at the computational rate. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A real-time graphics rendering system for generating a new display image at a computational rate equal to or greater than 10 Hz, the system comprising:
-
a rasterizer operable to receive object geometry sorted among image regions of a 2D view space, where each image region comprises a 2D array of view space coordinates, the object geometry comprises a collection of polygons representing surfaces of the 3D graphical objects and the polygons are spatially sorted such that each image region has a set of polygons that at least partially project into the region when transformed to the 2D space, and the rasterizer is operable to convert independently the set of polygons for each image region to pixel data for the image regions; a rasterization buffer in communication with the rasterizer, the rasterization buffer operable to store the pixel data; a compression engine in communication with the rasterization buffer, the compression engine operable to compress the pixel data; a first memory in communication with the compression engine, the first memory operable to store the compressed pixel data such that each of the compressed image regions is independently accessible; a first decompression engine in communication with the first memory, the first decompression engine operable to decompress the compressed pixel data; and a display controller in communication with the first decompression engine, the display controller operable to selectively fetch and instruct the decompression engine to decompress fetched image regions and operable to combine the decompressed pixel data into at least a portion of a display image such that the display image is generated in less than 1/10 of a second. - View Dependent Claims (20, 21, 22, 23)
-
-
24. A method for supporting image compression in a real-time graphics rendering pipeline, the method including:
-
a) allocating 3D object geometry to two or more gsprites; b) sub-dividing each of the two or more gsprites into two or more image regions of a 2D view space, where each image region comprises a 2D array of view space coordinates; c) sorting object geometry associated with the gsprites among the two or more image regions of associated gsprites such that each region has an associated set of polygons representing 3D object geometry that projects into the region; d) separately rendering the object geometry corresponding to a first image region to generate pixel data for the first image region; e) storing the pixel data for the first image regions in a rasterization buffer; f) resolving the pixel data for the first image region; g) compressing the pixel data for the first image region; h) storing the compressed pixel data for the first image region; i) repeating steps d-i for the rest of the image regions for the two or more gsprites such that the compressed image regions are independently accessible; j) decompressing the pixel data for the image regions; k) generating a display image from the decompressed pixel data, including compositing pixel data from independently accessed and decompressed image regions of overlapping gsprites; l) repeating steps a-k to generate subsequent display images at a computational rate at least as fast as one-tenth of a second.
-
Specification