Processor for controlling the display of rendered image layers and method for controlling same
First Claim
1. A gsprite engine circuit comprising:
- a memory interface controller for reading a list of gsprites for display, and for reading gsprite control data and gsprite image data for each of the gsprites from external memory;
the gsprite control data including memory locations of the gsprite image data for the gsprites in the external memory, and further including gsprite transform data for each of the gsprites used to transform the gsprites to physical output device coordinates, wherein the gsprite transform data includes data describing affine transforms used to transform corresponding gsprites and thereby simulate motion of three-dirnensional graphical objects rendered to the corresponding gsprites, the affine transforms being derived from motion of characteristic points of the three-dimensional graphical objects;
a set-up processor in communication with the memory interface for interpreting the gsprite control data and issuing read requests for the gsprite image data, the set-up processor operable to control timing for accesses of the gsprite image and control data from the external memory;
a gsprite cache in communication with the memory interface controller for receiving and storing the gsprite image data; and
a gsprite processor in communication with the set-up processor for receiving the gsprite transform data and in response, retrieving samples of the gsprite image data from the gsprite cache, the gsprite processor operable to transform the samples of the gsprite image data to the physical output device coordinates according to the gsprite transform data.
2 Assignments
0 Petitions
Accused Products
Abstract
A gsprite engine circuit reads a display list identifying gsprite image layers to be composited for display, retrieves gsprite image data from an external memory, and transforms the gsprite data to display device coordinates. The gsprite image layers represent independently rendered graphical objects in a graphics scene. The gsprite engine can simulate the motion of the graphical objects in a sequence of display images by performing affine transformations on the gsprite image layers. The interface to the gsprite engine circuit includes the display list and gsprite header blocks. The display list enumerates the gsprites to be composited as a display image. The header blocks describe a gsprite transform, which can be an affine transform, used to transform gsprites to display device coordinates. The header blocks also provide an array of references to image blocks or "chunks" comprising the gsprite.
-
Citations
20 Claims
-
1. A gsprite engine circuit comprising:
-
a memory interface controller for reading a list of gsprites for display, and for reading gsprite control data and gsprite image data for each of the gsprites from external memory;
the gsprite control data including memory locations of the gsprite image data for the gsprites in the external memory, and further including gsprite transform data for each of the gsprites used to transform the gsprites to physical output device coordinates, wherein the gsprite transform data includes data describing affine transforms used to transform corresponding gsprites and thereby simulate motion of three-dirnensional graphical objects rendered to the corresponding gsprites, the affine transforms being derived from motion of characteristic points of the three-dimensional graphical objects;a set-up processor in communication with the memory interface for interpreting the gsprite control data and issuing read requests for the gsprite image data, the set-up processor operable to control timing for accesses of the gsprite image and control data from the external memory; a gsprite cache in communication with the memory interface controller for receiving and storing the gsprite image data; and a gsprite processor in communication with the set-up processor for receiving the gsprite transform data and in response, retrieving samples of the gsprite image data from the gsprite cache, the gsprite processor operable to transform the samples of the gsprite image data to the physical output device coordinates according to the gsprite transform data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A display controller comprising:
-
a memory interface controller for reading a display list of gsprites for a display image, and for reading gsprite control and image data from memory, the gsprite control data including gsprite transform data for each of the gsprites, the gsprite transform data for at least one of the gsprites being derived from motion of characteristic points of a 3D object, and the 3D object being previously rendered to the at least one gsprite; a set-up processor in communication with the memory interface controller for receiving the display list and the gsprite control data, the set-up processor in communication with the memory interface controller for instructing the memory interface controller to read selected gsprite image data from memory based on the gsprites identified in the display list; a cache in communication with the memory interface controller for receiving and storing the selected gsprite image data; a gsprite processor in communication with the set-up processor for receiving the gsprite transform data, and in response, transforming the selected gsprite image data to physical output device coordinates; and a compositing buffer in communication with the gsprite processor for receiving the transformed image data gsprites and compositing the gsprites at a computational rate for display. - View Dependent Claims (13)
-
-
14. A gsprite engine circuit comprising:
-
a display control processor for receiving a gsprite display list comprising a list of gsprites to composite into a current frame of image data for display on a display monitor, and for retrieving gsprite header structures for gsprites in the list, each header structure including edge parameters defining how edges of a corresponding gsprite map view space coordinates; a gsprite queue in communication with the display control processor for storing the edge parameters for the gsprites; a pre-rasterizer in communication with the queue for reading the parameters for a gsprite, and for generating gsprite data requests, the pre-rasterizer being operable to determine a gsprite block having a sprite sample or samples that corresponds to a view space coordinate from the edge parameters, the gsprite block comprising a group of gsprite samples; a gsprite cache; a gsprite cache control in communication with the pre-rasterizer and the gsprite cache for receiving the gsprite data requests and for fetching gsprite blocks from gsprite memory and transferring the gsprite blocks to the gsprite cache; a rasterizer in communication with the gsprite queue and the gsprite cache for reading the edge parameters for a current gsprite from the gsprite queue, and computing filter parameters for view space coordinates within the edges of the current gsprite; and a gsprite filter in communication with the texture cache and the rasterizer for receiving the filter parameters from the rasterizer, and for filtering gsprite data from the texture cache to transform pixel values in the gsprite to view space coordinates. - View Dependent Claims (15, 16, 17)
-
-
18. A method for compositing image layers to generate a display image for display on a display monitor, the method comprising:
-
reading a display list listing gsprites to be composited into a display image; for each display band on the display monitor; a) determining whether the gsprites in the display list intersect a current display band; b) queuing the intersecting gsprites for rasterization; c) pre-rasterizing the queued gsprites to generate a first set of gsprite sample requests; d) fetching gsprite blocks to satisfy the gsprite sample requests; e) decompressing the gsprite blocks to produce decompressed gsprite data; f) rasterizing the queued gsprites to generate a second set of gsprite sample requests; g) for each gsprite sample request in the second set, filtering the decompressed gsprite data to compute pixel values at screen coordinates in the display image; and h) compositing the pixel values from the gsprites in a compositing buffer repeating steps a-h for each display band to compute the display image; and repeating all of the above steps to compute subsequent display images at a rate greater than 12 Hz. - View Dependent Claims (19)
-
-
20. A gsprite engine circuit comprising:
-
a display processor operable to generate timing signals to control timing for accessing gsprite data from external gsprite memory and operable to generate video refresh signals to control the refresh of a display device, the display processor operable to read a display list from the external gsprite memory to identify gsprites to be composited to form a display image in screen space of the display device, wherein the display list includes references to gsprite header structures corresponding to the gsprites; a header register in communication with the display processor for storing the gsprite header structures, the gsprite header structures including edge equation parameters defining gsprite transforms from gsprite space to the screen space for the gsprites; a header decoder in communication with the header registers for reading the header structures and issuing read requests for gsprite image data; a queue in communication with the header decoder for queuing the read requests; a gsprite cache; a gsprite address generator in communication with the queue for reading the read requests and for determining memory addresses of the gsprite image data from the read requests, the gsprite address generator operable to fetch the gsprite image data and cause the gsprite image data to be stored in the gsprite cache; an image processor address generator in communication with the header decoder for receiving the edge equation parameters, the image processor address generator operable to compute addresses for gsprite image data in the gsprite cache from the edge equation parameters; and a filter engine in communication with the image processor address generator for receiving the addresses for the gsprite image data in the gsprite cache, and for calculating color and alpha data at screen space coordinates for pixels covered by the gsprites.
-
Specification