Claims
- 1. A circuit for filtering oversampled data, the circuit comprising:
a memory interface configured to read data values corresponding to sample points from a frame buffer containing the oversampled data; and a filter configured to receive the data values provided by the memory interface, to compute a pixel value from the data values, and to transmit the pixel value for displaying by a display device, wherein the filter computes the pixel value during a scanout operation.
- 2. The circuit of claim 1, wherein a data value corresponds to a plurality of pixels.
- 3. The circuit of claim 1, wherein the filter is configured to compute the pixel value by computing an average of the data values corresponding to two or more sample points associated with a pixel.
- 4. The circuit of claim 3, wherein the average is a weighted average.
- 5. The circuit of claim 1, further comprising:
a latency buffer coupled between the memory interface and the filter and configured to provide the data values to the filter in groups corresponding to rows of display pixels.
- 6. The circuit of claim 5, wherein a data value corresponds to a plurality of pixels.
- 7. A circuit for filtering oversampled data, the circuit comprising:
a memory interface configured to read data values from a frame buffer containing the oversampled data; a latency buffer configured to receive the data values from the memory interface and to provide a set of data values corresponding to a group of sample points; a line store configured to receive sets of data values from the latency buffer and to store at least a subset of the data values; and a filter configured to receive a first set of data values corresponding to a current group of samples from the latency buffer and a second set of data values corresponding to a previous group of samples from the line store, to compute a pixel value using data values from the current set of data values and the previous set of data values, and to transmit the pixel value for displaying by a display device, wherein the filter computes the pixel value during a scanout operation.
- 8. The circuit of claim 7, wherein the filter is configured to compute the pixel value by computing a weighted average of data values corresponding to a plurality of sample points associated with a pixel.
- 9. The circuit of claim 8, wherein the sample points are located at a center point of the pixel and each corner of the pixel.
- 10. The circuit of claim 9, wherein the filter obtains the data values corresponding to the center of the pixel and lower corners of the pixel from the latency buffer and obtains the data values corresponding to upper corners of the pixel from the line store.
- 11. The circuit of claim 10, wherein the line store does not store a data value corresponding to a center point of a pixel.
- 12. The circuit of claim 7, wherein the line store stores sample values at a reduced precision.
- 13. A circuit for decompressing and filtering oversampled data, the circuit comprising:
a latency buffer configured to accept oversampled data from a frame buffer; a memory configured to store a plurality of compression bits indicating which sections of the oversampled data in the frame buffer are compressed; a decompression unit configured to receive the oversampled data from the latency buffer and the compression bits from the memory and further configured to decompress the oversampled data when one of the compression bits indicates that the oversampled data is compressed; and a filter configured to compute a pixel value from a plurality of sample values provided by the decompression unit, the sample values including at least a portion of the decompressed data, and to transmit the pixel value for displaying by a display device, wherein the filter computes the pixel value during a scanout operation.
- 14. The circuit of claim 13, wherein the memory is in a frame buffer interface.
- 15. The circuit of claim 13, wherein the memory is an external memory chip.
- 16. A circuit for filtering oversampled data stored in a frame buffer, the circuit comprising:
a memory configured to store a plurality of compression bits indicating which sections of the data in the frame buffer are compressed; a decompression unit configured to receive data from the frame buffer and the compression bits from the memory and further configured to decompress the received data when the compression bits indicate that the received data is compressed; a line store configured to store at least a subset of the decompressed data; and a filter configured to receive at least one current data value from the decompression unit and at least one previous data value from the line store, to compute a pixel value from the at least one current data value and the at least one previous data value, and to transmit the pixel value for displaying by the display device, wherein the filter computes the pixel value during a scanout operation.
- 17. The circuit of claim 16, further comprising:
a latency buffer configured to accept data from the frame buffer and to provide the data to the decompression unit.
- 18. The circuit of claim 16, further comprising:
a cache coupled to the decompression unit for storing the received data.
- 19. The circuit of claim 18, wherein the decompression unit performs compression on the received data prior to storing the received data in the cache.
- 20. The circuit of claim 19, wherein the performed compression is lossy.
- 21. The circuit of claim 16, wherein the line store is further coupled to the decompression unit and wherein the decompression unit accesses the line store to retrieve compressed data.
- 22. A circuit for filtering oversampled data stored in a frame buffer, comprising:
a memory configured to store a plurality of compression bits indicating which sections of the data in the frame buffer are compressed; a cache configured to store data received from the frame buffer; a decompression unit configured to receive cache data from the cache and the compression bits from the memory and further configured to decompress the received cache data when the compression flag indicates that the data is compressed; and a filter configured to compute a pixel value from sample data, the sample data including at least a portion of the decompressed data, and to transmit the pixel value for displaying by a display device, wherein the filter computes the pixel value during a scanout operation.
- 23. The circuit of claim 22, further comprising:
a latency buffer configured to accept data from the frame buffer and to supply data to the cache.
- 24. The circuit of claim 22, further comprising:
a latency buffer configured to accept data from the frame buffer and to supply data to the decompression unit.
- 25. A system for generating graphical image data to be displayed, comprising:
a graphics processor configured to generate oversampled data representing an image and to store the oversampled data in a frame buffer; a memory interface configured to fetch data values from the frame buffer; and a display pipe configured to perform a scanout operation, the display pipe comprising:
a latency buffer configured to receive data values from the memory interface and to provide groups of data values corresponding to a set of sample points; and a filter configured to receive the groups of data values from the latency buffer, to compute a pixel value from the data values and to transmit the pixel value for displaying by a display device, wherein the filter computes the pixel value during a scanout operation.
- 26. The system of claim 25, wherein the display pipe further comprises:
a line store configured to receive data values from the latency buffer, to store at least a subset of the received data values, and to provide the stored data values to the filter after a delay.
- 27. The system of claim 26, wherein the line store stores data values at a reduced precision.
- 28. The system of claim 26, wherein the filter is configured to compute the pixel value by computing a weighted average of the data values corresponding to the center of the pixel and each corner of the pixel.
- 29. The system of claim 28, wherein the filter obtains the data values corresponding to the center of the pixel and lower corners of the pixel from the latency buffer and obtains the data values corresponding to upper corners of the pixel from the line store.
- 30. The system of claim 25, wherein the display pipe further comprises:
a decompression unit coupled between the latency buffer and the filter, the decompression unit configured to receive data values from the latency buffer, to determine whether the data values correspond to compressed data, and to perform decompression when the data values correspond to compressed data, wherein the decompression unit provides decompressed data to the filter.
- 31. The system of claim 30, further comprising:
a cache coupled to the decompression unit for storing the data values corresponding to compressed data.
- 32. A method for filtering oversampled data during a scanout operation, comprising:
reading the oversampled data from a frame buffer; computing a weighted average of a plurality of values selected from the oversampled data, thereby obtaining a pixel value; and transmitting the pixel value for displaying by a display device.
- 33. The method of claim 32, further comprising:
prior to computing the weighted average, using a line store to hold at least a subset of the oversampled data while additional oversampled data is read from the frame buffer.
- 34. The method of claim 32, further comprising:
after reading the oversampled data from the frame buffer, determining whether any of the oversampled data is compressed; and decompressing the oversampled data when the oversampled data is compressed.
- 35. The method of claim 34, further comprising:
storing the compressed oversampled data in a cache.
- 36. The method of claim 35, further comprising:
performing additional compression on the compressed oversampled data prior to storing the compressed oversampled data in the cache.
- 37. The method of claim 36 wherein the additional compression is lossy.
CROSS-REFERENCES TO RELATED APPLICATIONS
[0001] This application discloses subject matter related to commonly-assigned U.S. patent application Ser. No. 10/006,409, “System and Method for Real-Time Compression of Pixel Colors,” filed Nov. 30, 2001, by Bengt-Olaf Schneider et al., the disclosure of which is hereby incorporated by reference in its entirety for all purposes.