Claims
- 1. A method of compositing digital images, comprising:
providing a programmable graphics processor; receiving digital image data from a graphics memory coupled to the programmable graphics processor; receiving shader program instructions; and processing the digital image data using the shader program instructions to generate composited image data.
- 2. The method of claim 1, further comprising:
providing at least one programmable computation unit within the programmable graphics processor; configuring the at least one programmable computation unit to perform at least one compositing operation specified by the shader program instructions; and processing the digital image data using the at least one programmable computation unit to generate the composited image data.
- 3. The method of claim 1, further comprising the step of storing the composited image data in the graphics memory.
- 4. The method of claim 1, wherein the at least one programmable computation unit is configured to perform at least one high-precision compositing operation.
- 5. The method of claim 1, wherein the processing uses floating point precision.
- 6. The method of claim 1, wherein the composited image data is represented in a data format using at least 32 bits per pixel.
- 7. The method of claim 1, wherein a component of a pixel within the composited image data is represented in at least one of a 16 bit floating point data format, a 32 bit floating point data format, and a 64 bit floating point data format.
- 8. The method of claim 1, wherein the processing uses fixed point precision.
- 9. The method of claim 1, wherein a component of a pixel within the composited image data is represented in a fixed point data format.
- 10. The method of claim 9, wherein the fixed point data format uses at least 24 bits.
- 11. The method of claim 1, wherein the processing is performed in a single pass through a fragment processing pipeline within the programmable graphics processor.
- 12. The method of claim 1, further comprising:
receiving additional digital image data of at least one additional digital image from the graphics memory; and processing the composited image data and the additional digital image data using at least one further compositing operation to generate further composited image data.
- 13. The method of claim 2, further comprising:
receiving additional digital image data of at least one additional digital image from the graphics memory; configuring the at least one programmable computation unit to perform at least one further compositing operation specified by the shader program instructions; and processing the composited image data and the additional digital image data using the at least one further compositing operation to generate further composited image data.
- 14. The method of claim 12, further comprising storing the further composited image in the graphics memory.
- 15. The method of claim 13, further comprising storing the further composited image in the graphics memory.
- 16. The method of claim 12, wherein the processing is performed in a single pass through a fragment processing pipeline within the programmable graphics processor.
- 17. The method of claim 1, wherein the digital image data is read from locations in the graphics memory determined using vertices.
- 18. The method of claim 1, the digital image data is read from locations in the graphics memory determined using texture map parameters associated with vertices.
- 19. The method of claim 1, wherein the processing uses an alpha component to generate each fragment in the composited image data.
- 20. The method of claim 1, wherein the processing includes performing at least one point compositing operation.
- 21. The method of claim 20, wherein the at least one point compositing operation is one of a color correction operation, an over operation and a matte extraction operation.
- 22. The method of claim 1, wherein the processing includes performing at least one region compositing operation.
- 23. The method of claim 22, wherein the at least one region compositing operation is one of a warp operation and a blur operation.
- 24. The method of claim 1, wherein the shader program instructions specify at least one compositing operation, the at least one compositing operation including over, under and premultiply.
- 25. A method of compositing digital images, comprising:
providing a programmable graphics processor; receiving digital image data from a graphics memory coupled to the programmable graphics processor; receiving additional digital image data from the graphics memory; receiving shader program instructions; and processing the digital image data and the additional digital image data using the shader program instructions to generate composited image data.
- 26. The method of claim 25, further comprising:
providing at least one programmable computation unit within the programmable graphics processor; configuring the at least one programmable computation unit to perform at least one compositing operation specified by the shader program instructions; and processing the digital image data and the additional digital image data using the at least one programmable computation unit to generate the composited image data.
- 27. A method of compositing digital image data, comprising:
providing a programmable graphics processor; reading a portion of digital image data from a graphics memory coupled to the programmable graphics processor; processing the portion of digital image data using the at least one compositing operation to generate a portion of a composited image; and repeating reading and processing for each portion within the composited image.
- 28. The method of claim 27, further comprising:
providing at least one programmable computation unit within the programmable graphics processor; configuring the at least one programmable computation unit to perform at least one compositing operation specified by shader program instructions; and processing the portion of digital image data using the at least one compositing operation to generate the portion of the composited image.
- 29. The method of claim 28, further comprising repeating configuring the at least one programmable computation unit for each portion within the composited image.
- 30. The method of claim 27, further comprising storing the portion of the composited image in the graphics memory.
- 31. The method of claim 28, further comprising storing the portion of the composited image in the graphics memory.
- 32. A method of compositing digital image data, comprising:
providing a programmable graphics processor; reading a portion of first digital image data from a graphics memory coupled to the programmable graphics processor; reading a portion of second digital image data from the graphics memory; processing the portion of first digital image data and the portion of second digital image data using the at least one compositing operation to generate a portion of a composited image; and repeating reading and processing for each portion within the composited image.
- 33. The method of claim 32, further comprising:
storing the portion of first digital image data into the graphics memory; and storing the portion of second digital image data into the graphics memory.
- 34. A method of compositing digital image data, comprising:
providing a programmable graphics processor; receiving digital video image data; reading digital image data from a graphics memory coupled to the graphics processor; and processing the digital image data and the digital video image data to generate composited image data.
- 35. The method of claim 34, further comprising:
providing at least one programmable computation unit within the programmable graphics processor; configuring the at least one programmable computation unit to perform at least one compositing operation specified by shader program instructions; and processing the digital image data and the digital video image data using the at least one programmable computation unit to generate the composited image data.
- 36. The method of claim 34, further comprising writing the composited image to the graphics memory.
- 37. The method of claim 35, further comprising writing the composited image to the graphics memory.
- 38. A programmable graphics processor, comprising:
a memory interface configured to read digital image data from a graphics memory; and a fragment processing pipeline configured to generate composited image data by performing at least one compositing operation specified by shader program instructions on the digital image data.
- 39. The programmable graphics processor of claim 38, wherein the memory interface is further configured to write the composited image data to the graphics memory.
- 40. The graphics processor of claim 38, wherein the fragment processing pipeline further comprises an instruction processing unit configured to receive shader program instructions and generate codewords.
- 41. The graphics processor of claim 38, wherein the fragment processing pipeline further comprises at least one programmable computation unit configured by the codewords to perform high-precision floating point computations to generate a component of each pixel within the composited image data.
- 42. The graphics processor of claim 41, wherein the floating point computations are performed using fragment data represented in at least one of a 16 bit format, a 32 bit format, a 64 bit format, and a 128 bit format.
- 43. The graphics processor claim 38, wherein the fragment processing pipeline further comprises at least one programmable computation unit configured by the codewords to perform fixed point computations.
- 44. The graphics processor of claim 43, wherein the fixed point computations are performed using a fixed point data format with at least 24 bits.
- 45. The graphics processor of claim 38, wherein the fragment processing pipeline is configured by the codewords to generate the composited image data in a single pass through the fragment processing pipeline.
- 46. The graphics processor of claim 38, wherein the fragment processing pipeline is configured by the codewords to generate additional composited image data by performing at least one compositing operation specified by the shader program instructions on the composited image data.
- 47. The graphics processor of claim 46, wherein the fragment processing pipeline is configured by the codewords to generate the additional composited image data in a single pass through the fragment processing pipeline.
- 48. The graphics processor of claim 38, wherein the digital image data is read from locations in the graphics memory determined using vertices.
- 49. The graphics processor of claim 38, wherein the digital image data is read from locations in the graphics memory determined using texture map parameters associated with vertices.
- 50. The graphics processor of claim 38, wherein the at least one compositing operation uses an alpha component to generate each fragment in the composited image data.
- 51. The programmable graphics processor of claim 38, wherein the at least one compositing operation is a point compositing operation.
- 52. The programmable graphics processor of claim 51, wherein the point compositing operation is one of a color correction operation, an over operation and a matte extraction operation.
- 53. The programmable graphics processor of claim 38, wherein the at least one compositing operation is a region compositing operation.
- 54. The programmable graphics processor of claim 53, wherein the region compositing operation is one of a warp operation and a blur operation.
- 55. A programmable graphics processor, comprising:
a digital video interface configured to receive digital video image data; a memory interface configured to read digital image data from a graphics memory; and a fragment processing pipeline configured to perform at least one compositing operation specified by shader program instructions on the digital video image data and the digital image data to generate a composited frame.
- 56. The programmable graphics processor of claim 55, wherein the memory interface is configured to write the composited frame to the graphics memory.
- 57. A high-precision programmable graphics processor, comprising:
a memory interface configured to read high-precision digital image data from a graphics memory; and a fragment processing pipeline configured to generate high-precision composited image data by performing at least one compositing operation on the high-precision digital image data.
- 58. The high-precision programmable graphics processor of claim 57, wherein the memory interface is configured to write the high-precision composited image data to the graphics memory.
- 59. The high-precision graphics processor of claim 57, wherein the fragment processing pipeline further comprises at least one programmable computation unit configured to perform high-precision floating point computations.
- 60. The high-precision graphics processor claim 57, wherein the fragment processing pipeline further comprises at least one programmable computation unit configured to perform fixed point computations.
- 61. A computing system comprising:
a host processor; a host memory, the host memory storing programs for the host processor; a system interface configured to interface with the host processor; and a programmable graphics processor, including:
a memory interface configured to read digital image data from a graphics memory; and a fragment processing pipeline configured to generate composited image data by performing at least one compositing operation on the digital image data specified by shader program instructions.
- 62. The computing system of claim 61, wherein the host memory is configured to interface with the system interface.
- 63. The computing system of claim 61, wherein the host memory is configured to directly interface with the host processor.
CROSS-REFERENCE TO RELATED APPLICATION(S)
[0001] This application claims priority from commonly owned co-pending provisional U.S. patent application Ser. No. 60/445,902 entitled “Digital Image Compositing Using a Programmable Graphics Processor,” filed Feb. 6, 2003, having common inventors and assignee as this application, which is incorporated by reference as though fully set forth herein. This application also incorporates by reference as though fully set forth herein commonly owned co-pending U.S. patent application Ser. No. 10/302,465 entitled “Programmable Graphics System and Method Using Flexible, High-Precision Data Formats,” filed Nov. 22, 2002, having a common inventor and assignee as this application.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60445902 |
Feb 2003 |
US |