Claims
- 1. A method of data compression comprising:
grouping a plurality of pixel data into a plurality of tiles; evaluating said tiles for compression suitability, wherein said compression recognizes duplicate data and reduces amount of duplicate data stored within said tiles; compressing said tiles if said tiles are deemed suitable for said compression.
- 2. The method of claim 1 wherein said pixel data is color information.
- 3. The method of claim 1 wherein said step of evaluating further comprises:
determining whether a tile is suitable for full compression; designating said tile for full compression if it is deemed to be suitable.
- 4. The method of claim 3 wherein said step of determining further comprises:
determining whether said tile is wholly covered by a triangle primitive.
- 5. The method of claim 3 wherein said step of compressing further comprises:
storing a single color entry for each pixel in said tile.
- 6. The method of claim 3 wherein said full compression compresses said pixel data into one word per pixel.
- 7. The method of claim 1 wherein said step of evaluating further comprises:
determining whether a tile is suitable for partial compression; designating said tile for partial compression if it is deemed to be suitable.
- 8. The method of claim 7 wherein said step of determining further comprises:
determining whether said tile is covered by less than two triangle primitives.
- 9. The method of claim 7 wherein said step of compressing further comprises:
assigning an order to triangle primitives covering said tile; determining the color type of each sample of said tile; creating a compressed format of color entries out of said pixel data; creating a pointer to said compressed format.
- 10. The method of claim 9 wherein said pointer comprises a bit encoding associated with each sample in said tile, wherein each bit represents an index to entries in said compressed format.
- 11. The method of claim 10 wherein said pointer further comprises a short-hand bit encoding scheme for encoding a pixel with no replacement colors.
- 12. The method of claim 7 wherein said partial compression compresses said pixel data into two words per pixel.
- 13. The method of claim 1 wherein said tiles are 2×2 in size.
- 14. A method for compressing image data, comprising:
retrieving tiles of pixel data from a main memory; resizing said tiles; compressing said tiles, wherein said tiles are stored in cache memory after compression; processing said tiles in a graphics processor.
- 15. The method of claim 14 further comprising:
returning said tiles from said graphics processor to cache memory; resizing said tiles in cache memory for storage in said main memory; and returning said tiles to main memory.
- 16. The method of claim 15 wherein said graphics processor comprises:
a first Tile Format Table (TFT), wherein said graphics processor uses information from said TFT to process said tiles.
- 17. The method of claim 16 wherein said first TFT comprises:
a compression format entry for each of said tiles in said main memory.
- 18. The method of claim 17 wherein said entry comprises an encoding for a plurality of states for each of said tiles, said states comprising:
a full compression state; a partial compression state; an uncompressed state; and a clear state.
- 19. The method of claim 16 wherein said graphics processor comprises:
a second TFT, wherein said second TFT comprises a compression format entry for each of said tiles in said cache memory.
- 20. The method of claim 19 wherein said entry in said second TFT comprises an encoding for a plurality of states for each of said tiles, said states comprising:
a full compression state; a partial compression state; an uncompressed state; and a clear state.
- 21. The method of claim 20 wherein said size of tiles in said main memory and size of tiles in said cache memory differ.
- 22. The method of claim 20 wherein tiles in said main memory is of size 4×4 and tiles in said cache memory is of size 2×2.
- 23. The method of claim 22 wherein said step of resizing said tiles in cache memory for storage in said main memory further comprises:
combining four 2×2 tiles in said cache memory into a 4×4 tile; choosing a lowest common compression level from among said four 2×2 tiles; and using said lowest common compression level to compress said 4×4 tile, wherein said 4×4 is returned for storage in said main memory.
- 24. The method of claim 20 wherein said step of processing further comprises:
clearing entries in said cache memory by setting each entry of said second TFT to said clear state; writing a clear color storied on said graphics processor in said entries in said cache memory.
- 25. The method of claim 14 wherein said step of processing does not decompress said tiles prior to processing said tiles in a graphics processor.
- 26. The method of claim 14 further comprising:
accessing color information of samples in each of said pixel in said tiles, wherein duplicate color information is accessed once; combining color information samples to obtain one color for said pixel.
- 27. The method of claim 14 wherein said step of compressing further comprise:
evaluating said tiles for compression suitability, wherein said compression recognizes duplicate data and reduces amount of duplicate data stored within said tiles; compressing said tiles if said tiles are deemed suitable for said compression.
- 28. The method of claim 27 wherein said step of evaluating further comprises:
determining whether a tile is suitable for full compression; designating said tile for full compression if it is deemed to be suitable.
- 29. The method of claim 28 wherein said step of determining further comprises:
determining whether said tile is wholly covered by a triangle primitive.
- 30. The method of claim 28 wherein said step of compressing further comprises:
storing a single color entry for each pixel in said tile.
- 31. The method of claim 27 wherein said step of evaluating further comprises:
determining whether a tile is suitable for partial compression; designating said tile for partial compression if it is deemed to be suitable.
- 32. The method of claim 31 wherein said step of determining further comprises:
determining whether said tile is covered by less than two triangle primitives.
- 33. The method of claim 31 wherein said step of compressing further comprises:
assigning an order to triangle primitives covering said tile; determining the color type of each sample of said tile; creating a compressed format of color entries out of said pixel data; creating a pointer to said compressed format.
- 34. A graphics processing apparatus comprising:
a grouping unit configured to group a plurality of pixel data into a plurality of tiles; an evaluation unit configured to evaluate said tiles for compression suitability, wherein said compression recognizes duplicate data and reduces amount of duplicate data stored within said tiles; a compression unit configured to compress said tiles if said tiles are deemed suitable for said compression.
- 35. The graphics processing apparatus of claim 34, wherein said pixel data is color information.
- 36. The graphics processing apparatus of claim 34, further comprising:
a main memory for storing said tiles; a cache memory for receiving said tiles from said main memory; and a graphics processor, wherein said compression unit is configured to compress said tiles when they are brought into said cache memory from said main memory.
- 37. The graphics processing apparatus of claim 36 wherein said graphics processor further comprises:
a first TFT.
- 38. The graphics processing apparatus of claim 37 wherein said first TFT comprises:
a compression format entry for each of said tiles in said main memory.
- 39. The graphics processing apparatus of claim 38 wherein said entry comprises an encoding for a plurality of states for each of said tiles, said states comprising:
a full compression state; a partial compression state; an uncompressed state; and a clear state.
- 40. The graphics processing apparatus of claim 39 wherein said graphics processor comprises:
a second TFT, wherein said second TFT comprises a compression format entry for each of said tiles in said cache memory.
- 41. The graphics processing apparatus of claim 40 wherein said entry in said second TFT comprises an encoding for a plurality of states for each of said tiles, said states comprising:
a full compression state; a partial compression state; an uncompressed state; and a clear state.
- 42. The graphics processing apparatus of claim 41 wherein said size of tiles in said main memory and size of tiles in said cache memory differ.
- 43. The graphics processing apparatus of claim 41 wherein tiles in said main memory is of size 4×4 and tiles in said cache memory is of size 2×2.
- 44. The graphics processing apparatus of claim 43 wherein said compression unit is configured to:
combine four 2×2 tiles in said cache memory into a 4×4 tile; choose a lowest common compression level from among said four 2×2 tiles; and use said lowest common compression level to compress said 4×4 tile, wherein said 4×4 is returned for storage in said main memory.
- 45. The graphics processing apparatus of claim 41 wherein said graphics processor is configured to clear entries in said cache memory by setting each entry of said second TFT to said clear state and write a clear color storied on said graphics processor in said entries in said cache memory.
- 46. The graphics processing apparatus of claim 36 wherein said tiles are not decompressed prior to being processed by said graphics processor.
- 47. The graphics processing apparatus of claim 36 wherein said evaluation unit is further configured to determine whether a tile is suitable for full compression and designate said tile for full compression if it is deemed to be suitable.
- 48. The graphics processing apparatus of claim 47 wherein said evaluation unit is further configured to determine whether said tile is wholly covered by a triangle primitive.
- 49. The graphics processing apparatus of claim 48 wherein said compression unit is further configured to store a single color entry for each pixel in said tile.
- 50. The graphics processing apparatus of claim 36 wherein said evaluation unit is further configured to determine whether a tile is suitable for partial compression and designate said tile for partial compression if it is deemed to be suitable.
- 51. The graphics processing apparatus of claim 50 wherein said evaluation unit is further configured to determine whether said tile is covered by less than two triangle primitives.
- 52. The graphics processing apparatus of claim 50 wherein said compression unit is further configured to:
assign an order to triangle primitives covering said tile; determine the color type of each sample of said tile; create a compressed format of color entries out of said pixel data; create a pointer to said format.
- 53. The graphics processing apparatus of claim 52 wherein said pointer comprises a bit encoding associated with each sample in said tile, wherein each bit represents an index to entries in said compressed format.
- 54. The graphics processing apparatus of claim 53 wherein said pointer further comprises a short-hand bit encoding scheme for encoding a pixel with no replacement colors.
- 55. The graphics processing apparatus of claim 34 wherein said tiles are 2×2 in size.
- 56. A computer program product comprising:
a computer usable medium having computer readable program code embodied therein configured for data compression, comprising: computer readable code configured to cause a computer to group a plurality of pixel data into a plurality of tiles; computer readable code configured to cause a computer to evaluate said tiles for compression suitability, wherein said compression recognizes duplicate data and reduces amount of duplicate data stored within said tiles; computer readable code configured to cause a computer to compress said tiles if said tiles are deemed suitable for said compression.
- 57. The computer program product of claim 56 wherein said pixel data is color information.
- 58. The computer program product of claim 56 wherein said computer readable code configured to cause a computer to evaluate further comprises:
computer readable code configured to cause a computer to determine whether a tile is suitable for full compression; computer readable code configured to cause a computer to designate said tile for full compression if it is deemed to be suitable.
- 59. The computer program product of claim 58 wherein said computer readable code configured to cause a computer to determine further comprises:
computer readable code configured to cause a computer to determine whether said tile is wholly covered by a triangle primitive.
- 60. The computer program product of claim 58 wherein said computer readable code configured to cause a computer to compress further comprises:
computer readable code configured to cause a computer to store a single color entry for each pixel in said tile.
- 61. The computer program product of claim 58 wherein said full compression compresses said pixel data into one word per pixel.
- 62. The computer program product of claim 56 wherein said computer readable code configured to cause a computer to evaluate further comprises:
computer readable code configured to cause a computer to determine whether a tile is suitable for partial compression; computer readable code configured to cause a computer to designate said tile for partial compression if it is deemed to be suitable.
- 63. The computer program product of claim 62 wherein said computer readable code configured to cause a computer to determine further comprises:
computer readable code configured to cause a computer to determine whether said tile is covered by less than two triangle primitives.
- 64. The computer program product of claim 62 wherein said computer readable code configured to cause a computer to compress further comprises:
computer readable code configured to cause a computer to assign an order to triangle primitives covering said tile; computer readable code configured to cause a computer to determine the color type of each sample of said tile; computer readable code configured to cause a computer to create a compressed format of color entries out of said pixel data; computer readable code configured to cause a computer to create a pointer to said compressed format.
- 65. The computer program product of claim 64 wherein said pointer comprises a bit encoding associated with each sample in said tile, wherein each bit represents an index to entries in said compressed format.
- 66. The computer program product of claim 65 wherein said pointer further comprises a short-hand bit encoding scheme for encoding a pixel with no replacement colors.
- 67. The computer program product of claim 62 wherein said partial compression compresses said pixel data into two words per pixel.
- 68. The computer program product of claim 56 wherein said tiles are 2×2 in size.
- 69. A computer program product comprising:
a computer usable medium having computer readable program code embodied therein configured for data compression, comprising: computer readable code configured to cause a computer to retrieve tiles of pixel data from a main memory; computer readable code configured to cause a computer to resize said tiles; computer readable code configured to cause a computer to compress said tiles, wherein said tiles are stored in cache memory after compression; computer readable code configured to cause a computer to process said tiles in a graphics processor.
- 70. The computer program product of claim 69 further comprising:
computer readable code configured to cause a computer to return said tiles from said graphics processor to cache memory; computer readable code configured to cause a computer to resize said tiles in cache memory for storage in said main memory; and computer readable code configured to cause a computer to return said tiles to main memory.
- 71. The computer program product of claim 70 wherein said graphics processor comprises:
a first Tile Format Table (TFT), wherein said graphics processor uses information from said TFT to process said tiles.
- 72. The computer program product of claim 71 wherein said first TFT comprises:
a compression format entry for each of said tiles in said main memory.
- 73. The computer program product of claim 72 wherein said entry comprises an encoding for a plurality of states for each of said tiles, said states comprising:
a full compression state; a partial compression state; an uncompressed state; and a clear state.
- 74. The computer program product of claim 71 wherein said graphics processor comprises:
a second TFT, wherein said second TFT comprises a compression format entry for each of said tiles in said cache memory.
- 75. The computer program product of claim 74 wherein said entry in said second TFT comprises an encoding for a plurality of states for each of said tiles, said states comprising:
a full compression state; a partial compression state; an uncompressed state; and a clear state.
- 76. The computer program product of claim 75 wherein said size of tiles in said main memory and size of tiles in said cache memory differ.
- 77. The computer program product of claim 75 wherein tiles in said main memory is of size 4×4 and tiles in said cache memory is of size 2×2.
- 78. The computer program product of claim 77 wherein said computer readable code configured to cause a computer to resize said tiles in cache memory for storage in said main memory further comprises:
computer readable code configured to cause a computer to combine four 2×2 tiles in said cache memory into a 4×4 tile; computer readable code configured to cause a computer to choose a lowest common compression level from among said four 2×2 tiles; and computer readable code configured to cause a computer to use said lowest common compression level to compress said 4×4 tile, wherein said 4×4 is returned for storage in said main memory.
- 79. The computer program product of claim 75 wherein said computer readable code configured to cause a computer to process further comprises:
computer readable code configured to cause a computer to clear entries in said cache memory by setting each entry of said second TFT to said clear state; computer readable code configured to cause a computer to write a clear color storied on said graphics processor in said entries in said cache memory.
- 80. The computer program product of claim 69 wherein said computer readable code configured to cause a computer to process does not decompress said tiles prior to processing said tiles in a graphics processor.
- 81. The computer program product of claim 69 further comprising:
computer readable code configured to cause a computer to access color information of samples in each of said pixel in said tiles, wherein duplicate color information is accessed once; computer readable code configured to cause a computer to combine color information samples to obtain one color for said pixel.
- 82. The computer program product of claim 69 wherein said computer readable code configured to cause a computer to compress further comprise:
computer readable code configured to cause a computer to evaluate said tiles for compression suitability, wherein said compression recognizes duplicate data and reduces amount of duplicate data stored within said tiles; computer readable code configured to cause a computer to compress said tiles if said tiles are deemed suitable for said compression.
- 83. The computer program product of claim 82 wherein said computer readable code configured to cause a computer to evaluate further comprises:
computer readable code configured to cause a computer to determine whether a tile is suitable for full compression; computer readable code configured to cause a computer to designate said tile for full compression if it is deemed to be suitable.
- 84. The computer program product of claim 83 wherein said computer readable code configured to cause a computer to determine further comprises:
computer readable code configured to cause a computer to determine whether said tile is wholly covered by a triangle primitive.
- 85. The computer program product of claim 83 wherein said computer readable code configured to cause a computer to compress further comprises:
computer readable code configured to cause a computer to store a single color entry for each pixel in said tile.
- 86. The computer program product of claim 82 wherein said computer readable code configured to cause a computer to evaluate further comprises:
computer readable code configured to cause a computer to determine whether a tile is suitable for partial compression; computer readable code configured to cause a computer to designate said tile for partial compression if it is deemed to be suitable.
- 87. The computer program product of claim 86 wherein said computer readable code configured to cause a computer to determine further comprises:
computer readable code configured to cause a computer to determine whether said tile is covered by less than two triangle primitives.
- 88. The computer program product of claim 86 wherein said computer readable code configured to cause a computer to compress further comprises:
computer readable code configured to cause a computer to assign an order to triangle primitives covering said tile; computer readable code configured to cause a computer to determine the color type of each sample of said tile; computer readable code configured to cause a computer to create a compressed format of color entries out of said pixel data; computer readable code configured to cause a computer to create a pointer to said compressed format.
Parent Case Info
[0001] This application claims priority to U.S. Provisional Application Serial No. 60/447,206, filed Feb. 13, 2003 and is hereby fully incorporated by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60447206 |
Feb 2003 |
US |