Claims
- 1. A graphics system comprising:
a dithering unit configured to (a) receive a plurality of sample values, (b) add dither values to the sample values to generate resultant addition values, and (c) truncate the resultant addition values to truncated values; a sample buffer configured to store the truncated values; and a sample-to-pixel calculation unit configured to read the truncated values from the sample buffer and generate a pixel value by filtering the truncated values.
- 2. The graphics system of claim 1, further comprising a rendering unit configured to compute the plurality of sample values at a corresponding plurality of sample positions in a two-dimensional virtual screen space.
- 3. The graphics system of claim 1, wherein the dither values have an average value of approximately ½.
- 4. The graphics system of claim 3, wherein the dithering unit is configured to add the dither values and the sample values so that the ½ bit position of the dither values aligns with the most significant bit position which is removed in truncating each of the resultant values.
- 5. The graphics system of claim 1, wherein the dither values have an average value of approximately zero, wherein the dithering unit is further configured to add one-half to the resultant addition values prior to truncation.
- 6. The graphics system of claim 1, wherein the dither values approximate a uniform distribution of numbers between −A+½ and A+½, where A is a number greater than or equal to one.
- 7. The graphics system of claim 6, wherein A equals one.
- 8. The graphics system of claim 1, wherein the dither values approximate a uniform distribution of numbers between −A and A, where A is a number greater than or equal to one, wherein the dithering unit is further configured to add one-half to the resultant addition values prior to truncation.
- 9. The graphics system of claim 1, wherein the sample-to-pixel calculation unit is configured to filter the truncated values by computing a weighted average of at least a subset of the truncated values.
- 10. The graphics system of claim 1, wherein the sample values comprise color values.
- 11. The graphics system of claim 1, wherein the sample values comprise alpha values.
- 12. The graphics system of claim 1, wherein the truncated values comprise L-bit quantities, wherein L is an integer, wherein the pixel value comprises an M-bit quantity, wherein M is an integer larger than L.
- 13. The graphics system of claim 10, wherein L equals to ten.
- 14. The graphics system of claim 1, wherein the sample-to-pixel calculation unit is further configured to determine a gamma corrected pixel value in response to the pixel value.
- 15. The graphics system of claim 12, wherein the pixel value comprises at least 12 bits and the gamma corrected pixel value has at least 10 bits of precision.
- 16. A method for image generation comprising:
receiving a plurality of sample values; adding dither values to the sample values to generated resultant addition values; truncating the resultant addition values to truncated values; storing the truncated values into a sample buffer; reading the truncated values from the sample buffer; and generating a pixel value by filtering the truncated values.
- 17. The method of claim 16 further comprising computing the plurality of sample values at a corresponding plurality of sample positions in a two-dimensional virtual screen space, wherein said computing is performed prior to said receiving.
- 18. The method of claim 16, wherein the dither values have an average value of approximately one-half.
- 19. The graphics system of claim 18, wherein said adding the dither values to each of the sample values is performed so that the ½ bit position of the dither values aligns with the most significant bit position which is removed in truncating each of the resultant values.
- 20. The method of claim 16 further comprising adding one-half to the resultant addition values prior to said truncating, wherein the dither values have an average value of approximately zero.
- 21. The method of claim 16, wherein the dither values approximate a uniform distribution of numbers between −A+½ and A+½, wherein A is a number greater than or equal to one.
- 22. The method of claim 21, wherein A equals one.
- 23. The method of claim 16 further comprising adding one-half to the resultant addition values prior to said truncating, wherein the dither values approximate a uniform distribution of numbers between −A and A, wherein A is a number greater than or equal to one.
- 24. The method of claim 16, wherein said filtering the truncated values comprises computing a weighted average of at least a subset of the truncated values.
- 25. The method of claim 16, wherein the sample values comprise color values.
- 26. The method of claim 16, wherein the sample values comprise alpha values.
- 27. The method of claim 16, wherein the truncated values comprise L-bit quantities, wherein L is an integer, wherein the pixel value comprises an M-bit quantity, wherein M is an integer larger than L.
- 28. The method of claim 27, wherein L equals ten.
- 29. The method of claim 16 further comprising determining a gamma corrected pixel value in response to the pixel value.
- 30. The method of claim 29, wherein the pixel value comprises at least 12 bits and the gamma corrected pixel value has at least 10 bits of precision.
- 31. A graphics system comprising:
a processor configured to (a) receive a plurality of sample values, (b) add dither values to the sample values to generate resultant addition values, and (c) truncate the resultant addition values to truncated values; a sample buffer configured to store the truncated values; a sample-to-pixel calculation unit configured to read the truncated values from the sample buffer and generate a pixel value by filtering the truncated values.
- 32. The graphics system of claim 31, wherein the processor is further to configured to receive graphics data, and, in response to the graphics data, to compute the plurality of sample values at a corresponding plurality of sample positions in a two-dimensional virtual screen space.
- 33. The graphics system of claim 31, wherein the dither values have an average value of approximately ½.
- 34. The graphics system of claim 31, wherein the dither values have an average value of approximately zero, wherein the processor is further configured to add one-half to the resultant addition values prior to truncation.
- 35. The graphics system of claim 31, wherein the truncated values comprise L-bit quantities, wherein L is an integer, wherein the pixel value comprises an M-bit quantity, wherein M is an integer larger than L.
- 36. A system comprising:
a dithering unit configured to receive a set of data values, to add dither values to the data values to generate resultant addition values, and to truncate the resultant addition values to truncated values; a storage medium configured to store the truncated values; an averaging unit configured to read the truncated values from the storage medium, and to compute an average value using at least a subset of the truncated values.
- 37. The system of claim 36, wherein the dither values have an average value of approximately one-half.
- 38. The system of claim 36, wherein the dither values have an average value of approximately zero, wherein the dithering unit is further configured to add one-half to the resultant addition values prior to truncation.
- 39. The system of claim 36, wherein the dither values approximate a uniform distribution of numbers between −A+½ and A+½, wherein A is greater than or equal to one.
- 40. The system of claim 36, wherein the dither values approximate a uniform distribution of numbers between −A and A, wherein A is greater than or equal to one, wherein the dithering unit is further configured to add one-half to the resultant addition values prior to truncation.
- 41. The system of claim 36, wherein the truncated values comprise L-bit quantities, wherein L is an integer, wherein the average value comprises an M-bit quantity, wherein M is an integer larger than L.
- 42. A system comprising:
a dithering unit configured to receive a first stream of data values, to add dither values to the data values, and to truncate the resultant addition values in order to generate a second stream of L-bit truncated values; a temporal averaging unit configured to receive the second stream of L-bit truncated values, and to compute a time-average on the second stream of L-bit truncated values.
- 43. The system of claim 42 further comprising a storage medium, wherein the dithering unit is configured to write the second stream of L-bit truncated values in the storage medium, and wherein the temporal averaging unit is configured to receive the second stream of L-bit truncated values from the storage medium.
- 44. The system of claim 42 further comprising a transmission medium, wherein the dithering unit is configured to transmit the second stream of L-bit truncated values onto the transmission medium, and wherein the temporal averaging unit is configured to receive the second stream of L-bit truncated values from the transmission medium.
- 45. The system of claim 42, wherein the time-average comprises a finite impulse response (FIR) filtration of the second stream of L-bit truncated values.
- 46. A computer system comprising:
a central processing unit (CPU) coupled to a system bus and configured to generate graphics data; a rendering unit configured to (a) receive the graphics data, (b) compute a plurality of sample values in response to the graphics data, (c) add dither values to the sample values to generate resultant addition values, and (d) truncate the resultant addition values to truncated values; a sample buffer configured to store the truncated values; a sample-to-pixel calculation unit configured to read the truncated values from the sample buffer and generate a pixel value by filtering the truncated values; a display device configured to receive the pixel value and generate a visual output in response to the pixel value; one or more input devices operatively coupled to the system bus and configured to provide input signals to the computer system in response to user manipulations of the one or more input devices.
- 47. The graphics system of claim 46, wherein the dither values have an average value of approximately ½.
- 48. The graphics system of claim 47, wherein the dithering unit is configured to add the dither values and the sample values so that the ½ bit position of the dither values aligns with the most significant bit position which is removed in truncating each of the resultant values.
- 49. The graphics system of claim 46, wherein the dither values have an average value of approximately zero, wherein the rendering unit is further configured to add one-half to the resultant addition values prior to truncation.
- 50. The graphics system of claim 46, wherein the truncated values comprise L-bit quantities, wherein L is an integer, wherein the pixel value comprises an M-bit quantity, wherein M is an integer larger than L.
- 51. A graphics system comprising:
a graphics processor configured to render pixel values in response to received graphics data, and to generate dithered pixel values by adding dither values to the pixel values; a frame buffer coupled to the graphics processor and configured to receive and store the dithered pixel values, and to transmit the dithered pixel values to a display device.
- 52. The graphics system of claim 51, wherein the dither values comprise zero-mean spatial noise.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Application No. 60/214,597, filed on Jun. 27, 2000, and titled “Recovering Added Precision from L-Bit Samples by Dithering the Samples Prior to an Averaging Computation”.
[0002] This application claims the benefit of U.S. Provisional Application No. 60/175,384, filed on Jan. 11, 2000, and titled “Photorealistic Hardware Antialiasing”.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60214597 |
Jun 2000 |
US |
|
60175384 |
Jan 2000 |
US |