Method and apparatus for accumulation buffering in the video graphics system
First Claim
1. An accumulation buffering system, comprising:
- a Z buffer that stores Z data for each pixel of a frame;
a drawing buffer that stores a color data set for each pixel of the frame, wherein each color data set includes color data and a valid indication;
a mask buffer, wherein the mask buffer includes a plurality of pixel block indicators, wherein each of the plurality of pixel block indicators corresponds to a plurality of pixels of the frame, wherein when a pixel block indicator is set, pixels included in a corresponding plurality of pixels that have set valid indications in the drawing buffer have valid color data stored in the drawing buffer and valid Z data stored in the Z buffer;
a first accumulation buffer, wherein the first accumulation buffer stores an accumulation data set for each pixel of the frame, wherein each accumulation data set includes accumulated color data and a counter value;
a rendering block operably coupled to the mask buffer, the drawing buffer, and the Z buffer, wherein the rendering block renders images into the drawing buffer and the Z buffer, wherein the rendering block sets valid indications and pixel block indicators to indicate valid color data and valid Z data resulting from rendering operations; and
a controller operably coupled to the rendering block, the drawing buffer, the mask buffer, and the first accumulation buffer, wherein when rendering of an image by the rendering block is completed, valid color data for pixels in pixel blocks corresponding to pixel block indicators that are set is blended by the controller with accumulated color data for corresponding pixels in the first accumulation buffer, wherein when blending of color data occurs for a pixel in the first accumulation buffer, the counter value for that pixel is incremented.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for supporting accumulation buffering in a video graphics system is presented. An accumulation buffer is included in the system, and the accumulation buffer stores an accumulation data set for each pixel of a frame. Preferably, each accumulation data set includes accumulated color data and a counter value. A Z buffer is included in the system, where the Z buffer stores Z data for each pixel of the frame. A drawing buffer stores a color data set for each pixel of the frame, where each color data set includes color data and a valid indication. A mask buffer includes a plurality of pixel block indicators, where each of the plurality of pixel block indicators corresponds to a plurality of pixels of the frame. When a pixel block indicator is set, pixels included in a corresponding plurality of pixels that have set valid indications in the drawing buffer are understood to have valid color data stored in the drawing buffer and valid Z data stored in the Z buffer. A rendering block renders images into the drawing buffer and the Z buffer while utilizing the pixel block indicators from the mask buffer and the valid indications of the drawing buffer. Utilization of the pixel block indicators and valid indications simplifies the rendering process. At the completion of each image rendering, a controller blends color data for those pixels that have valid color data stored in the drawing buffer with the currently accumulated color data for corresponding pixels stored in the accumulation buffer.
102 Citations
19 Claims
-
1. An accumulation buffering system, comprising:
-
a Z buffer that stores Z data for each pixel of a frame;
a drawing buffer that stores a color data set for each pixel of the frame, wherein each color data set includes color data and a valid indication;
a mask buffer, wherein the mask buffer includes a plurality of pixel block indicators, wherein each of the plurality of pixel block indicators corresponds to a plurality of pixels of the frame, wherein when a pixel block indicator is set, pixels included in a corresponding plurality of pixels that have set valid indications in the drawing buffer have valid color data stored in the drawing buffer and valid Z data stored in the Z buffer;
a first accumulation buffer, wherein the first accumulation buffer stores an accumulation data set for each pixel of the frame, wherein each accumulation data set includes accumulated color data and a counter value;
a rendering block operably coupled to the mask buffer, the drawing buffer, and the Z buffer, wherein the rendering block renders images into the drawing buffer and the Z buffer, wherein the rendering block sets valid indications and pixel block indicators to indicate valid color data and valid Z data resulting from rendering operations; and
a controller operably coupled to the rendering block, the drawing buffer, the mask buffer, and the first accumulation buffer, wherein when rendering of an image by the rendering block is completed, valid color data for pixels in pixel blocks corresponding to pixel block indicators that are set is blended by the controller with accumulated color data for corresponding pixels in the first accumulation buffer, wherein when blending of color data occurs for a pixel in the first accumulation buffer, the counter value for that pixel is incremented. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
a second accumulation buffer operably coupled to the controller, wherein the second accumulation buffer stores an accumulated data set for each pixel of the frame, wherein when accumulation operations are accumulating color data for the frame in the first accumulation buffer, the second accumulation buffer acts as an output buffer, and wherein when accumulation operations are accumulating color data for the frame in the second accumulation buffer, the first accumulation buffer acts as the output buffer.
-
-
5. The accumulation buffering system of claim 4 further comprises:
an output block operably coupled to the first and second accumulation buffers, wherein the output block normalizes color values in the output buffer by dividing accumulated color data for each pixel in the frame by the counter value corresponding to the pixel.
-
6. The accumulation buffering system of claim 5, wherein the output block is a display digital to analog converter.
-
7. The accumulation buffering system of claim 5, wherein the output block adds normalized color values to a frame buffer that includes additional image data.
-
8. The accumulation buffering system of claim 1 further comprises a write buffer operably coupled to the rendering block, wherein the write buffer stores at least a portion of an image for rendering.
-
9. A method for accumulation buffering of color data for a frame, comprising:
-
rendering images to a drawing buffer and a Z buffer, wherein the Z buffer stores Z data for each pixel of the frame, wherein the drawing buffer stores a color data set for each pixel of the frame, wherein each color data set includes color data and a valid indication;
when a color data set for a particular pixel is modified by a rendering operations, setting the valid bit within the color data set for the particular pixel in the drawing buffer and setting a pixel block indicator corresponding to a plurality of pixels that includes the particular pixel, wherein the pixel block indicator corresponding to the plurality of pixels that includes the particular pixel is included in a plurality of pixel indicators stored in a mask buffer, wherein each of the plurality of pixel indicators stored in the mask buffer corresponds to a plurality of pixels of the frame, wherein when a pixel block indicator is set, pixels included in a corresponding plurality of pixels that have set valid indications in the drawing buffer have valid color data stored in the drawing buffer and valid Z data stored in the Z buffer;
after each image is rendered, blending valid color data included in the drawing buffer with accumulated color data stored in a first accumulation buffer, wherein valid color data in the drawing buffer is indicated by valid pixel block indicators in the mask buffer and valid indications in the drawing buffer, wherein the first accumulation buffer stores an accumulation data set for, each pixel of the frame, wherein each accumulation data set includes accumulated color data and a counter value;
when accumulated color data for a pixel is modified by a blending operation, incrementing the counter value for the pixel; and
when accumulation operations for a predetermined number of images has completed, normalizing color values in the first accumulation buffer by dividing accumulated color data for each pixel in the frame by the counter value for the pixel, wherein normalizing the color values produces normalized color values. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. An accumulation buffering processor, comprising:
-
a processing module; and
memory operably coupled to the processing module, wherein the memory stores operating instructions that, when executed by the processing module, cause the processing module to perform functions that include;
rendering images to a drawing buffer and a Z buffer, wherein the Z buffer stores Z data for each pixel of a frame, wherein the drawing buffer stores a color data set for each pixel of the frame, wherein each color data set includes color data and a valid indication;
when a color data set for a particular pixel is modified by a rendering operations, setting the valid bit within the color data set for the particular pixel in the drawing buffer and setting a pixel block indicator corresponding to a plurality of pixels that includes the particular pixel, wherein the pixel block indicator corresponding to the plurality of pixels that includes the particular pixel is included in a plurality of pixel indicators stored in a mask buffer, wherein each of the plurality of pixel indicators stored in the mask buffer corresponds to a plurality of pixel of the frame, wherein when a pixel block indicator is set, pixels included in a corresponding plurality of pixels that have set valid indications in the drawing buffer have valid color data stored in the drawing buffer and valid Z data stored in the Z buffer;
after each image is rendered, blending valid color data included in the drawing buffer with accumulated color data stored in a first accumulation buffer, wherein valid color data in the drawing buffer is indicated by valid pixel block indicators in the mask buffer and valid indications in the drawing buffer, wherein the first accumulation buffer stores an accumulation data set for each pixel of the frame, wherein each accumulation data set includes accumulated color data and a counter value;
when accumulated color data for a pixel is modified by a blending operation, incrementing the counter value for the pixel; and
when accumulation operations for a predetermined number of images has completed, normalizing color values in the first accumulation buffer by dividing accumulated color data for each pixel in the frame by the counter value for the pixel, wherein normalizing the color values produces normalized color values. - View Dependent Claims (16, 17, 18, 19)
-
Specification