Overlay graphics memory management method and apparatus
First Claim
1. In a system comprised of a display monitor and a graphic processor for processing an overlay window image and a background image for simultaneous display on the monitor, and wherein the system comprises a background buffer for storing data corresponding to the background image and an overlay buffer for storing data corresponding to the overlay window image, a method for reducing the amount of data that must be processed when the overlay window image is updated, the method comprising:
- defining a plurality of overlay;
window cells which correspond to the overlay window;
determining which overlay window cells are visible and thus subject to change over a given period of time, and which are transparent and thus not subject to change over the same period of time;
identifying which of one or more visible overlay window cells has actually changed over the given period of time;
allocating within an update buffer, one or more update buffer cells corresponding to each of one or more visible overlay window cells that has been identified as changing over the given period of time; and
processing data to create a blended image that includes both the background image and the overlay image as it changes, by blending (i) only that data from the one or more update buffer cells that have been allocated for each of the one or more visible overlay window cells identified as changing, with (ii) data for the background image that corresponds to the location of the one or more visible overlay window cells identified as changing.
3 Assignments
0 Petitions
Accused Products
Abstract
The invention frees up memory to other uses by allocating memory to video graphics buffering only to the extent required. It also saves graphic processor bandwidth by processing, e.g. blending, only to the extent required. It does so by defining a regular grid of so-called tiles or cells in the overlay graphic data window, e.g orthogonally arrayed squares of 32-pixel sides, and allocating memory only to those requiring update, i.e. only those that are visible and subject to change between successive frames. Allocation is dynamic and requires little tagging overhead to keep track of the tiles in memory by location in the video graphic window. Processing is only of those tiles for which memory is allocated, since entirely transparent tiles within the window require no blending or processing whatsoever because they are invisible. In one implementation, only onscreen buffered graphics are tiled and the offscreen buffered graphics require full-sized memory allocation and in another offscreen buffered graphics are tiled also by clipping within variously sized buffers during successive passes through a drawing operation wherein the various sized buffers all are smaller than the entire window. New offscreen buffer-processed tiles may be swapped as they are processed for existing (visible) onscreen tiles directly, when there is less available memory, or new tiles may be processed and block-stored in memory until a wholesale swap can occur invisibly, when there is more memory available.
154 Citations
26 Claims
-
1. In a system comprised of a display monitor and a graphic processor for processing an overlay window image and a background image for simultaneous display on the monitor, and wherein the system comprises a background buffer for storing data corresponding to the background image and an overlay buffer for storing data corresponding to the overlay window image, a method for reducing the amount of data that must be processed when the overlay window image is updated, the method comprising:
-
defining a plurality of overlay;
window cells which correspond to the overlay window;
determining which overlay window cells are visible and thus subject to change over a given period of time, and which are transparent and thus not subject to change over the same period of time;
identifying which of one or more visible overlay window cells has actually changed over the given period of time;
allocating within an update buffer, one or more update buffer cells corresponding to each of one or more visible overlay window cells that has been identified as changing over the given period of time; and
processing data to create a blended image that includes both the background image and the overlay image as it changes, by blending (i) only that data from the one or more update buffer cells that have been allocated for each of the one or more visible overlay window cells identified as changing, with (ii) data for the background image that corresponds to the location of the one or more visible overlay window cells identified as changing. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
swapping the one or more new offscreen update buffer cells with the at least one existing onscreen update buffer cell, such that one or more new offscreen update buffer cells become one or more onscreen update buffer cells, and such that the at least one existing onscreen update buffer cell is no longer used; and
deallocating the at least one existing onscreen update buffer cell after it is no longer used.
-
-
9. The method of claim 8, wherein only a portion of the one or more update buffer cells corresponding to each of the one or more visible overlay windows cells that has been identified as changing over the given period of time are allocated initially, and wherein the method further comprises iteratively allocating, swapping, and deallocating, until all of the one or more update buffer cells have been allocated.
-
10. The method of claim 1, wherein the overlay buffer stores only a portion of the data corresponding to the overlay window image at any given time.
-
11. The method of claim 1, wherein none of doe one of more visible overlay window cells is identified as actually changing over the given period of time.
-
12. In a system comprised of a display monitor and a graphic processor for processing an overlay window image and a background image for simultaneous display on the monitor, and wherein the system comprises a background buffer for storing data corresponding to the background image and an overlay buffer for storing data corresponding to the overlay window image, a method for reducing the amount of data that must be processed when the overlay window image is updated, the method comprising:
-
defining a plurality of overlay window cells which correspond to the overlay window;
identifying which of one or more overlay window cells has actually changed over a given period of time;
allocating within an update buffer, one or more update buffer cells corresponding to each of one or more overlay window cells that has been identified as changing over the given period of time, wherein each of the allocated one or more update buffer cells is either an onscreen update buffer cell or a new offscreen update buffer cell, and wherein changes to the corresponding overlay window cell are made directly to the one or more update buffer cells; and
processing data to create a blended image that includes both the background image and the overlay image as it changes, by blending (i) only tat data from the one or more update buffer cells that have been allocated for each of the one or more overlay window cells identified as changing, with (ii) data for the background image that corresponds to the location of the one or more overlay window cells identified as changing. - View Dependent Claims (13, 14, 15, 16)
swapping the one or more new offscreen update buffer cells with the at least one existing onscreen update buffer cell, such that one or more new offscreen update buffer cells become one or more onscreen update buffer cells, and such that the at least one existing onscreen update buffer cell is no longer used; and
deallocating the at least one existing onscreen update buffer cell after it is no longer used.
-
-
14. The method of claim 13, wherein only a portion of the one or more update buffer cells corresponding to each of the one or more overlay windows cells that has been identified as changing over the given period of time are allocated initially, and wherein the method further comprises iteratively allocating, swapping, and deallocating, until all of the one or more update buffer cells have been allocated.
-
15. The method of claim 12, further comprising determining which overlay window cells are visible and thus subject to change over a given period of time, and which are transparent and thus not subject to change over the same period of time.
-
16. The method of claim 12, wherein the overlay buffer stores only a portion of the data corresponding to the overlay window image at any given time.
-
17. A graphics system for using a display monitor to display a blended image comprised of a background image and an overlay window image, comprising:
-
a graphic processor for processing the overlay window image and the background image for simultaneous display on the display monitor;
a background buffer for storing data corresponding to the background image, and for communicating data to the graphic processor;
an overlay buffer for storing data corresponding to the overlay window image, and for communicating data to the graphic processor; and
buffer control means for controlling the amount of data that must be processed when the overlay window image is updated, said buffer control means comprising;
means for defining a plurality of overlay window cells which correspond to the overlay window;
means for determining which overlay window cells are visible and thus subject to change over a given period of time, and which are transparent and thus not subject to change over the same period of time;
means for identifying which of one or more visible overlay window cells has actually changed over the given period of time;
means for allocating within an update buffer, one or more update buffer cells corresponding to each of one or more visible overlay window cells that has been identified as changing over the given period of time; and
means for communicating data as determined by the buffer control means to the graphic processor, the graphic processor thereafter processing the received data to create a blended image that includes both the background image and the overlay image as it changes, by blending (i) only that data from the one or more update buffer cells that have been allocated for each of the one or more visible overlay window cells identified as changing, with (ii) data for the background image that corresponds to the location of the one or more visible overlay window cells identified as changing. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26)
means for swapping the one or more new offscreen update buffer cells with the at least one existing onscreen update buffer cell, such that one or more new onscreen update buffer cells become one or more onscreen update buffer cells, and such that the at least one existing onscreen update buffer cell is no longer used; and
means for deallocating the at least one existing onscreen update buffer cell after it is no longer used.
-
-
24. The graphics system of claim 23, wherein only a portion of the one or more update buffer cells corresponding to each of the one or more visible overlay windows cells that has been identified as changing over the given period of time are allocated initially, and wherein the graphics system further comprises means for iteratively allocating, swapping, and deallocating, until all of the one or more update buffer cells have been allocated.
-
25. The graphics system of claim 17, wherein the overlay buffer is sized so as to store only a portion of the overlay window image at any given time.
-
26. The graphics system of claim 17, wherein the means for identifying does not identify any of the one or more visible overlay window cells as actually changing over the given period of time.
Specification