IP Library Granted Patent US 10,102,608
Granted Patent B2
US 10,102,608 · App. 15/463,348 · Granted Oct 16, 2018

Memory management for systems for generating 3-dimensional computer images

Inventor: Stephen Morphet (St. Albans, GB)
Assignee: Imagination Technologies Limited
G06T1/60G06T15/80G06T17/20H04N19/42G06T2200/04
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 10,102,608
App. No.
15/463,348
Granted
Oct 16, 2018
Kind
B2
Abstract

A memory management system for generating 3-dimensional computer images is provided. The memory management system includes a device for subdividing an image into a plurality of rectangular areas, a memory for storing object data pertaining to objects in the image which fall in each rectangular area, a device for storing the object data in the memory, a device for deriving image data and shading data for each rectangular area from the object data, a device for supplying object data for each rectangular area from the respective portion of the memory and, if the rectangular area contains objects also falling in at least one other rectangular area, also from the global list, to the deriving device, and a device for storing the image data and shading data derived by the deriving device for display. The memory includes at least one portion allocated to each rectangular area and at least one portion allocated as a global list.

Claims (69)

1. A method of rendering in a graphics system having an image plane subdivided into a plurality of tiles and the tiles grouped into a plurality of macrotiles, each macrotile comprising a plurality of the tiles, the method comprising the steps of:

loading object data for at least one of the macrotiles into a display list until a threshold level is reached;

selecting a macrotile to render, responsive to the threshold being reached;

deriving image data and shading data for each of the tiles in the selected macrotile from the object data;

storing the derived image data and shading data in a memory;

releasing for further use areas of the display list containing object data used to derive image data and shading data stored in the memory;

subsequently loading additional object data for the selected macrotile into the display list;

retrieving the image data stored in the memory;

deriving additional image data and shading data for the tiles in the selected macrotile from the additional object data stored in the display list and the retrieved image data from the memory;

storing the additional derived image data and shading data in the memory; and

providing shading data stored in the memory for display.

2. The method according to claim 1 , comprising the steps of:

compressing at least one of the derived image data and shading data prior to the step of storing the derived image data and shading data; and

decompressing the compressed data prior to the step of deriving the additional image data and shading data.

3. The method according to claim 2 , in which the step of compressing comprises at least one of:

compressing depth data; and

compressing intermediate data in the memory.

4. The method according to claim 2 , in which the step of compressing comprises compressing data by at least one of:

storing a face plane equation of a surface;

run length encoding;

J-PEG compression;

wavelet compression; and

vector quantisation.

5. The method according to claim 1 , in which object pointers for the plurality of macrotiles are stored in areas in the memory, the method comprising the step of compressing an object pointer stored in an area by representing the object pointer by a number of least significant bits where that object pointer points to an object in that same area.

6. The method according to claim 1 , comprising the step of indicating whether data retrieved from the memory has been modified since it was last read and, responsive to a store request, saving the data in dependence on the indication.

7. The method according to claim 1 , comprising selecting all the macrotiles to render, responsive to the threshold being reached.

8. The method according to claim 1 , comprising releasing for further use an area of the display list, responsive to determining that all of the macrotiles that reference that area have been rendered.

9. The method according to claim 1 , comprising selecting the macrotile to render responsive to determining which of the plurality of macrotiles would release the greatest area in the memory on being rendered.

10. An apparatus for rendering in a graphics system having an image plane subdivided into a plurality of tiles and the tiles grouped into a plurality of macrotiles, each macrotile comprising a plurality of the tiles, the apparatus comprising:

at least one processor configured to:

load object data for at least one of the macrotiles into a display list until a threshold level is reached;

select a macrotile to render, responsive to the threshold being reached;

derive image data and shading data for each of the tiles in the selected macrotile from the object data;

store the image data and the shading data in a memory;

release for further use areas of the display list containing object data used to derive image data and shading data stored in the memory;

subsequently load additional object data for the selected macrotile into the display list;

retrieve the image data stored in the memory;

derive additional image data and shading data for the tiles in the selected macrotile from the additional object data stored in the display list and the retrieved image data from the memory;

store the additional derived image data and shading data in the memory; and

provide shading data stored in the memory for display.

11. The apparatus according to claim 10 , in which the processor is configured to:

compress at least one of the derived image data and shading data prior to storing the derived image data and shading data; and

decompress the compressed data prior to deriving the additional image data and shading data.

12. The apparatus according to claim 11 , in which the processor is configured to at least one of:

compress depth data; and

compress intermediate data in the memory.

13. The apparatus according to claim 11 , in which the processor is configured to compress data by at least one of:

storing a face plane equation of a surface;

run length encoding;

J-PEG compression;

wavelet compression; and

vector quantisation.

14. The apparatus according to claim 10 , configured to store object pointers for the plurality of macrotiles in areas in the memory, the processor being configured to compress an object pointer stored in an area by representing the object pointer by a number of least significant bits where that object pointer points to an object in that same area.

15. The apparatus according to claim 10 , in which the processor is configured to indicate whether data retrieved from the memory has been modified since it was last read and, responsive to a store request, save the data in dependence on the indication.

16. The apparatus according to claim 10 , in which the processor is configured to select all the macrotiles to render, responsive to the threshold being reached.

17. The apparatus according to claim 10 , in which the processor is configured to release for further use an area of the display list, responsive to determining that all of the macrotiles that reference that area have been rendered.

18. The apparatus according to claim 10 , in which the processor is configured to select the macrotile to render responsive to determining which of the plurality of macrotiles would release the greatest area in the memory on being rendered.

19. A method of rendering in a graphics system having an image plane subdivided into a plurality of tiles, the method comprising the steps of:

loading object data for at least one of the tiles into a display list until a threshold level is reached, the threshold level for the display list being less than the largest allowable display list;

selecting a tile to render, responsive to the threshold being reached;

deriving image data and shading data for the selected tile from the object data;

storing the derived image data and shading data in a memory;

releasing for further use areas of the display list containing object data used to derive image data and shading data stored in the memory;

subsequently loading additional object data for the at least one of the tiles into the display list;

retrieving the image data stored in the memory;

deriving additional image data and shading data for the at least one of the tiles from the additional object data stored in the display list and the retrieved image data from the memory;

storing the additional derived image data and shading data in the memory; and

providing shading data stored in the memory for display.

20. The method according to claim 19 , in which object pointers for the at least one of the tiles are stored in areas in the memory, the method comprising the step of compressing an object pointer stored in an area by representing the object pointer by a number of least significant bits where that object pointer points to an object in that same area.

Priority Claims (2)
GB 0014037.6 · Jun 8, 2000 · national
GB 0027897.8 · Nov 15, 2000 · national
Continuity (6)
Continuation 14817486 · Aug 4, 2015
Continuation 12798134 · Mar 30, 2010
Continuation 11704483 · Feb 9, 2007
Continuation 10798160 · Mar 11, 2004
Continuation 09877708 · Jun 8, 2001
Related Publication 20170193631A1 · Jul 6, 2017
Cited By (2)
US 12,293,462 US 12,579,726