Screen compression
First Claim
1. A method of reducing memory bandwidth required for a screen refresh, the method comprising:
- reading a tile from a memory, the tile comprising a plurality of pixels;
determining whether the tile should be compressed, and if the tile should be compressed, then compressing the tile to form a compressed tile;
storing the compressed tile in the memory;
reading the compressed tile from the memory; and
uncompressing the compressed tile; and
if the tile should not be compressed, then not compressing the tile,wherein compressing the tile comprises;
reading a first pixel in the tile, the first pixel comprising a first plurality of color values;
reading a second pixel in the tile, the second pixel comprising a second plurality of color values;
determining a difference between the first plurality of color values of the first pixel and the second plurality of color values of the second pixel to generate a first plurality of difference values;
interleaving bits of the first plurality of difference values to generate a first interleaved value;
encoding the first interleaved value to generate a first encoded value; and
concatenating the first pixel and the first encoded value, andwherein the tile should be compressed if it has not been updated for a first number of screen refreshes, the first number having a value in a range of numbers between a second number plus one and twice the second number, and fewer than a third number of tiles have already been compressed during the first screen refresh.
0 Assignments
0 Petitions
Accused Products
Abstract
Methods, circuits, and apparatus for reducing memory bandwidth used by a graphics processor. Uncompressed tiles are read from a display buffer portion of a graphics memory and received by an encoder. The uncompressed tiles are compressed and written back to the graphics memory. When a tile is needed again before it has been modified, the compressed version is read from memory, uncompressed, and displayed. To reduce the number of unnecessary writes of compressed tiles to memory, a tile is only written to memory if it has remained static for some number of refresh cycles. Also, to prevent a large number of compressed tiles being written to the display buffer in one refresh cycle, the encoder can be throttled after a number of tiles have been written. Validity information can be stored for use by a CRTC. If a tile is updated, the validity information is updated such that invalid compressed data is not read from memory and displayed.
14 Citations
13 Claims
-
1. A method of reducing memory bandwidth required for a screen refresh, the method comprising:
-
reading a tile from a memory, the tile comprising a plurality of pixels; determining whether the tile should be compressed, and if the tile should be compressed, then compressing the tile to form a compressed tile; storing the compressed tile in the memory; reading the compressed tile from the memory; and uncompressing the compressed tile; and if the tile should not be compressed, then not compressing the tile, wherein compressing the tile comprises; reading a first pixel in the tile, the first pixel comprising a first plurality of color values; reading a second pixel in the tile, the second pixel comprising a second plurality of color values; determining a difference between the first plurality of color values of the first pixel and the second plurality of color values of the second pixel to generate a first plurality of difference values; interleaving bits of the first plurality of difference values to generate a first interleaved value; encoding the first interleaved value to generate a first encoded value; and concatenating the first pixel and the first encoded value, and wherein the tile should be compressed if it has not been updated for a first number of screen refreshes, the first number having a value in a range of numbers between a second number plus one and twice the second number, and fewer than a third number of tiles have already been compressed during the first screen refresh. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of compressing a tile including a plurality of pixels comprising:
-
reading the tile from a memory; determining whether the tile should be compressed, and if the tile should be compressed, then compressing the tile; and storing the compressed tile in the memory, wherein compressing the tile comprises; subtracting color values for a pixel in the tile from color values for a previous pixel to generate color difference values comprising a plurality of bits; interleaving the plurality of bits of the difference values to generate an interleaved difference value; and compressing the interleaved difference value; and if the tile should not be compressed, then not compressing the tile, wherein the tile should be compressed if it has not been updated for a first number of screen refreshes, the first number having a value in a range of numbers between a second number plus one and twice the second number, and fewer than a third number of tiles have already been compressed during the first screen refresh. - View Dependent Claims (9, 10)
-
-
11. A method of reducing memory bandwidth required for a screen refresh, the method comprising:
-
during a first screen refresh, reading a tile from a memory, the tile comprising a plurality of pixels; determining whether the tile should be compressed; and if the tile should be compressed, compressing the tile and writing the compressed tile to the memory; during a second screen refresh, determining whether the tile has been updated after it was compressed, and if the tile has not been updated, reading the compressed tile from the memory;
otherwise reading the tile from the memory; andif the tile should not be compressed, then not compressing the tile, wherein the tile should be compressed if it has not been updated for a first number of screen refreshes, the first number having a value in a range of numbers between a second number plus one and twice the second number, and fewer than a third number of tiles have already been compressed during the first screen refresh. - View Dependent Claims (12, 13)
-
Specification