LOSSLESS FRAME BUFFER COLOR COMPRESSION
First Claim
1. A method for compressing color data, the method comprising:
- receiving the color data for a packet including multiple samples;
selecting a predictor map based on a sampling mode of a graphics surface, wherein the predictor map identifies one of the multiple samples in the packet as an anchor that is represented exactly and a neighboring sample for each one of the other samples in the packet;
calculating per-channel differences between each neighboring sample and the other samples to produce difference samples;
truncating the difference samples to produce truncated difference samples;
encoding the truncated difference samples and the anchor in a compressed color data format to produce output color data for the packet; and
storing the output color data in a portion of memory allocated to the graphics surface.
1 Assignment
0 Petitions
Accused Products
Abstract
One embodiment of the present invention sets forth a technique for lossless compression of color data. Color data for a packet including multiple sub-pixel samples is compressed using a predictor map that is selected based on the sampling format specified for the graphics surface storing the color data. The predictor map defines one of the samples as an anchor that is represented exactly and a transform indicating which neighboring samples are used to compute difference samples for the other samples in the packet. The difference samples are truncated and tested to determine if the difference samples can fit into one or more compressed data formats, i.e., if the color data can be compressed without loss. When compression can be performed without loss, the transformed packet is output. Otherwise, the original packet is output.
-
Citations
21 Claims
-
1. A method for compressing color data, the method comprising:
-
receiving the color data for a packet including multiple samples; selecting a predictor map based on a sampling mode of a graphics surface, wherein the predictor map identifies one of the multiple samples in the packet as an anchor that is represented exactly and a neighboring sample for each one of the other samples in the packet; calculating per-channel differences between each neighboring sample and the other samples to produce difference samples; truncating the difference samples to produce truncated difference samples; encoding the truncated difference samples and the anchor in a compressed color data format to produce output color data for the packet; and storing the output color data in a portion of memory allocated to the graphics surface. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to compress color data, by performing the steps of:
-
receiving the color data for a packet including multiple samples; selecting a predictor map based on a sampling mode of a graphics surface, wherein the predictor map identifies one of the multiple samples in the packet as an anchor that is represented exactly and a neighboring sample for each one of the other samples in the packet; calculating per-channel differences between each neighboring sample and the other samples to produce difference samples; truncating the difference samples to produce truncated difference samples; encoding the truncated difference samples and the anchor in a compressed color data format to produce output color data for the packet; and storing the output color data in a portion of memory allocated to the graphics surface.
-
-
13. A system for compressing color data, the system comprising:
a processor configured to; receive the color data for a packet including multiple samples; select a predictor map based on a sampling mode of a graphics surface, wherein the predictor map identifies one of the multiple samples in the packet as an anchor that is represented exactly and a neighboring sample for each one of the other samples in the packet; calculate per-channel differences between each neighboring sample and the other samples to produce difference samples; truncate the difference samples to produce truncated difference samples; encode the truncated difference samples and the anchor in a compressed color data format to produce output color data for the packet; and store the output color data in a portion of a frame buffer allocated to the graphics surface. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21)
Specification