IP Library Granted Patent US 8,810,562
Granted Patent B2
US 8,810,562 · App. 12/468,757 · Granted Aug 19, 2014

Hierarchical lossless compression

Inventor: Alexander M Lyashevsky (Cupertino, CA)
Assignee: Advanced Micro Devices, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,810,562
App. No.
12/468,757
Granted
Aug 19, 2014
Kind
B2
Abstract

A method is provided for data compression. The data compression method transforms a square of data into a tile of data. The tile of data is then divided into quads of data that are converted into a representative element, a first delta element, a second delta element, a third delta element, and a control word. A new tile of data is then formed with the representative elements, and the process is repeated until a single representative element remains. The single representative element is then embedded into an output stream with the control words and corresponding delta elements. Decompression of the data is symmetrical to the encoding once the bit stream has been parsed.

Claims (48)

1. A graphics data compression method, carried out by a computer, comprising:

providing a square of graphics data;

transforming the square of graphics data into a tile of data;

dividing the tile of data into quads of data, each quad having an upper left pixel, an upper right pixel, a lower left pixel, and a lower right pixel;

converting each quad into a representative element, a first delta element, a second delta element, a third delta element, and a control word;

forming a new tile of data with the representative elements converted from each converted quad of data;

repeating the dividing, the converting, and the forming operations until a single representative element remains, and

wherein the new tile of data becomes the tile of data for a next repetition of dividing, converting and forming in the repetition; and

embedding the single representative element, the control words and the delta elements into an output stream.

2. The method of claim 1 , wherein the square of graphics data is a division of a two-dimensional surface of data.

3. The method of claim 1 , wherein the graphics data is at least one of: Z-buffer data, color buffer data and normal map data.

4. The method of claim 3 , wherein transforming the square of graphics data into a tile of data comprises replacing each data value with a new data value, the new data value being equal to the data value subtracted by an adjacent data value.

5. The method of claim 1 , wherein transforming the square of graphics data into a tile of data comprises replacing each data value with a decorrelated data value.

6. The method of claim 1 , wherein transforming the square of graphics data into a tile of data comprises replacing each data value with a new data value having one less component.

7. The method of claim 1 , wherein converting each quad comprises:

setting the upper left pixel as the representative element;

subtracting the upper right pixel by the upper left pixel, thereby forming the first delta element;

subtracting the lower left pixel by the upper left pixel, thereby forming the second delta element;

subtracting the lower right pixel by the lower left pixel, thereby forming the third delta; and

setting the control word according to a correlation between the delta elements.

8. The method of claim 1 , wherein control information is embedded into the output stream.

9. The method of claim 1 , wherein a directory of sub-tiles is embedded into the output stream, the directory of sub-tiles being formed from the results of the dividing, the converting and the forming operations.

10. The method of claim 1 , wherein the embedding follows a sub-tile pattern.

11. The method of claim 1 , further comprising encoding the delta elements according to their associated control words.

12. A non-transitory program storage device readable by a machine, tangibly embodying a program of instructions executable to perform a data compression method comprising:

providing a square of data;

transforming the square of data into a tile of data;

dividing the tile of data into quads of data, each quad having an upper left pixel, an upper right pixel, a lower left pixel, and a lower right pixel;

converting each quad into a representative element, a first delta element, a second delta element, a third delta element, and a control word;

forming a new tile of data with the representative elements converted from each converted quad of data;

repeating the dividing, the converting, and the forming operations until a single representative element remains, and

wherein the new tile of data becomes the tile of data for a next repetition of dividing, converting and forming in the repetition; and

embedding the single representative element, the control words and the delta elements into an output stream.

13. The non-transitory program storage device of claim 12 , wherein the square of data is a division of a two-dimensional surface of data.

14. The non-transitory program storage device of claim 12 , wherein the data is at least one of: Z-buffer data, color buffer data and normal map data.

15. The non-transitory program storage device of claim 14 , wherein transforming the square of data into a tile of data comprises replacing each data value with a new data value, the new data value being equal to the data value subtracted by an adjacent data value.

16. The non-transitory program storage device of claim 12 , wherein transforming the square of data into a tile of data comprises replacing each data value with a decorrelated data value.

17. The non-transitory program storage device of claim 12 , wherein transforming the square of data into a tile of data comprises replacing each data value with a new data value having one less component.

18. The non-transitory program storage device of claim 12 , wherein converting each quad comprises:

setting the upper left pixel as the representative element;

subtracting the upper right pixel by the upper left pixel, thereby forming the first delta element;

subtracting the lower left pixel by the upper left pixel, thereby forming the second delta element;

subtracting the lower right pixel by the lower left pixel, thereby forming the third delta; and

setting the control word according to a correlation between the delta elements.

19. The non-transitory program storage device of claim 12 , wherein control information is embedded into the output stream.

20. The non-transitory program storage device of claim 12 , wherein a directory of sub-tiles is embedded into the output stream, the directory of sub-tiles being formed from the results of the dividing, the converting and the forming operations.

21. The non-transitory program storage device of claim 12 , wherein the embedding follows a sub-tile pattern.

22. The non-transitory program storage device of claim 12 , further comprising encoding the delta elements according to their associated control words.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 20, 2009
From: LYASHEVSKY, ALEXANDER M.
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 022715/0414 →
Continuity (1)
Related Publication 20100299454A1 · Nov 25, 2010