IP Library Granted Patent US 9,640,149
Granted Patent B2
US 9,640,149 · App. 14/804,378 · Granted May 2, 2017

Methods for fixed rate block based compression of image data

Inventors: Georgios Keramidas (Patras, GR); Chrysa Kokkala (Patras, GR); Iakovos Stamoulis (Patras, GR); George Sidiropoulos (Patras, GR); Michael Koziotis (Patras, GR)
Assignee: THINK SILICON SA
G09G5/39G06T1/60G06T9/00G09G2360/18
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 9,640,149
App. No.
14/804,378
Granted
May 2, 2017
Kind
B2
Abstract

A set of methods, techniques and hardware is described for compressing image data for memory bandwidth and memory storage reduction in graphics processing systems. The disclosed technology can be used for compressing image data sent to the frame buffer and/or image data residing in the frame buffer. The compression process can be based on an adaptive number of base color points and an adaptive number of quantized color points. An adaptive technique for compressing alpha values based on pre-calculated maps or using an estimated alpha value based on thresholds is also disclosed. An implementation of the disclosed methods has, for example, a low hardware overhead, low buffering requirements, and low and predefined compression latency. Also, the disclosed methods allow, for example, random accesses to compressed image data.

Claims (53)

1. In a graphics processing system, a method for compressing source image data comprising:

dividing the source image into image blocks of a fixed number of pixels, each pixel having an associated color and alpha information;

encoding each image block in a compressed form of the image block including:

selecting an adaptive number of representative color components, the representative color components encoded with at least two precisions in the compressed form, the representative color components associated with pixels of the image block,

calculating an adaptive number of additional color components derived from the selected representative color components,

generating an index for each pixel in the image block,

associating the index with one representative color component or with one color component derived from the representative color components, wherein the index may be split in two partitions, and one partition may be used to select two of the at least two representative color components, and

selecting an adaptive number of alpha values for the image block wherein either a unified, computed alpha value is assigned to each pixel in the image block, or different pre-calculated alpha values are assigned to at least two pixels in the image block; and

composing the compressed forms of all blocks comprising the source image to generate a compressed image.

2. The method of claim 1 , the selection of representative color components is implemented with one or more arithmetic operations including subtractions, additions, comparisons, and shift operations.

3. The method of claim 1 , wherein calculating the additional color components from the selected representative color components is performed with arithmetic fixed point operations including one or more of additions and shift operations.

4. The method of claim 1 , wherein calculating the additional color components from the selected representative color components is performed with arithmetic operations in fixed point format.

5. The method of claim 1 , wherein calculating the additional color components from the selected representative color components is performed with arithmetic operations in floating point format.

6. The method of claim 1 , wherein associating the index for each pixel in the image block with one representative color component or with one color component derived from the representative color components further comprises:

computing a pixel color error value for each representative color component and for each derived color component; and

outputting the index producing the minimum computed color error value among all computed errors.

7. The method of claim 1 , wherein the encoding of the selected representative color components in the compressed form is done in fixed point format.

8. The method of claim 1 , wherein the encoding of the selected representative color components in the compressed form is done in floating point format.

9. The method of claim 1 , wherein further compression of the compressed form is achieved by associating one index to two contiguous pixels of the image block.

10. The method of claim 1 , wherein further compression of the compressed form is achieved by splitting an index of a pixel in the image block in two partitions and associating one partition to two contiguous pixels of the image block.

11. The method of claim 1 , wherein the encoding of the computed alpha value in the compressed form is done in fixed point format.

12. The method of claim 1 , wherein the encoding of the computed alpha value in the compressed form is done in floating point format.

13. The method of claim 1 , wherein the adaptive selection of either assigning a unified alpha value to all pixels of the image block or assigning at least two values to at least two pixels in the image block further comprises:

computing the unified alpha value;

computing a cumulative alpha error value between the unified alpha value and alpha values of all pixels in the image block;

selecting at least two pre-calculated values from a set of pre-calculated alpha values;

computing another cumulative error between the at least two alpha values and alpha values of the pixels in the image block; and

outputting the selection producing the minimum computed cumulative alpha error value among the computed error values and the error values are computed in fixed point format.

14. The method of claim 1 , wherein the adaptive selection of either assigning a unified alpha value to all pixels of the image block or assigning at least two values to at least two pixels in the image block further comprises:

computing the unified alpha value;

computing alpha error values between the unified alpha value and alpha values of the pixels in the image block;

selecting at least two pre-calculated values from a set of pre-calculated alpha values;

computing an alpha error value between the at least two alpha values and alpha values of the pixels in the image block; and

outputting the selection producing the minimum computed alpha error value among the computed alpha error values and the alpha error values are computed in floating point format.

15. The method of claim 13 , wherein the cumulative alpha error value is the summary of the absolute differences generated for each pixel in the image block.

16. The method of claim 13 , wherein the cumulative alpha error value is computed based on a root-mean-square error for the image block.

17. The method of claim 14 , wherein a cumulative alpha error value is the summary of the absolute differences generated for each pixel in the image block.

18. The method of claim 14 , wherein a cumulative alpha error value is computed based on a root-mean-square error for the image block.

19. The method of claim 1 , wherein the number of pre-calculated alpha values is adaptive and the number is determined prior to compression.

20. The method of claim 1 , wherein the pre-calculated alpha values are generated by profiling, prior to compression, using image quality criteria.

21. The method of claim 1 , wherein at least two image blocks are encoded simultaneously.

22. A non-transitory computer readable information storage media having stored thereon instructions, that specifically configure one or more processors for execution of the instructions, to perform the method of claim 1 .

23. The method of claim 1 , wherein the method is performed in the processing system, and the processing system includes one or more of the following elements in communication: a CPU, memory, a display controller and a graphics processing unit.

24. A graphics processing system to compress image data comprising:

a CPU, geometry buffer, texture buffer; rendering logic and output buffer adapted to:

divide the source image into image blocks of a fixed number of pixels, each pixel having an associated color and alpha information;

encode each image block in a compressed form of the image block including:

select an adaptive number of representative color components, the representative color components encoded with at least two precisions in the compressed form, the representative color components associated with pixels of the image block,

calculate an adaptive number of additional color components derived from the selected representative color components,

generate an index for each pixel in the image block,

associate the index with one representative color component or with one color component derived from the representative color components, wherein the index may be split in two partitions, and one partition may be used to select two of the at least two representative color components, and

select an adaptive number of alpha values for the image block wherein either a unified, computed alpha value is assigned to each pixel in the image block, or different pre-calculated alpha values are assigned to at least two pixels in the image block; and

compose the compressed forms of all blocks comprising the source image to generate a compressed image.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2026
From: THINK SILICON SINGLE MEMBER P.C. AND APPLIED MATERIALS, INC.
To: QUALCOMM INCORPORATED
Reel/Frame 075735/0803 →
CHANGE OF NAME Recorded Mar 6, 2026
From: THINK SILICON RESEARCH AND TECHNOLOGY SA
To: THINK SILICON RESEARCH AND TECHNOLOGY SINGLE MEMBER S.A.
Reel/Frame 075031/0846 →
CHANGE OF NAME Recorded Mar 6, 2026
From: THINK SILICON RESEARCH AND TECHNOLOGY SINGLE MEMBER S.A.
To: THINK SILICON SINGLE MEMBER P.C.
Reel/Frame 075032/0035 →
CHANGE OF NAME Recorded Sep 15, 2015
From: THINK SILICON LTD
To: THINK SILICON SA
Reel/Frame 036610/0040 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 5, 2015
From: KERAMIDAS, GEORGIOS; KOKKALA, CHRYSA; STAMOULIS, IAKOVOS; SIDIROPOULOS, GEORGE; KOZIOTIS, MICHAEL
To: THINK SILICON LTD
Reel/Frame 036259/0651 →
Continuity (1)
Related Publication 20170025098A1 · Jan 26, 2017