IP Library Granted Patent US 7,873,212
Granted Patent B2
US 7,873,212 · App. 11/339,341 · Granted Jan 18, 2011

Compression of images for computer graphics

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 7,873,212
App. No.
11/339,341
Granted
Jan 18, 2011
Kind
B2
Abstract

A method for encoding an image having color components of each image pixel represented by a value of a high dynamic range, the method comprising: decomposing the image into a plurality of image blocks; separating, from the high dynamic range value of each pixel, color information and intensity information of the pixels in said image blocks; and compressing the color information of the pixels in said image blocks and the intensity information of the pixels in said image blocks independently of each other to provide compressed image data.

Claims (110)

1. A method for encoding an image having color components of each image pixel represented by a value of a high dynamic range, the method comprising:

decomposing the image into a plurality of image blocks;

separating, from the high dynamic range value of each pixel, color information and intensity information of the pixels in said image blocks;

identifying a minimum intensity within said image blocks;

storing a floating-point exponent of the minimum intensity in a table of compressed block data as a bias value;

subtracting the bias value from the exponents of all intensity values within the image block to provide biased intensity values for each pixel;

storing the number of leading zero bits of the floating-point bit pattern of the largest biased intensity value in the table of compressed block data, whereby a sign bit is ignored from the number of leading zero bits;

compressing the intensity information of the pixels separately for each pixel in said image blocks; and

compressing the color information of the pixels in said image blocks independently of the intensity information of the pixels in said image blocks using lossy compression schemes to provide compressed image data.

2. The method according to claim 1 , the method further comprising:

removing from leading zero bits of the floating-point bit patterns of the biased intensity values of each pixel the number of leading zero bits of the floating-point bit pattern of the largest biased intensity value; and

storing a fixed number of leading bits from the resulting floating-point bit patterns of the biased intensity values of each pixel in the table of compressed block data.

3. The method according to claim 1 , the method further comprising:

dividing the image data in said image blocks into sub-blocks;

averaging the color information of the pixels in said sub-blocks such that each pixel in said sub-block is determined to have the same averaged color value.

4. The method according to claim 3 , the method further comprising:

normalizing the averaged color information by dividing it with the sum of its color components, and

leaving one of the normalized color components out of the compression process.

5. The method according to claim 4 , the method further comprising:

encoding the remaining color components as 7-bit fixed point numbers.

6. The method according to claim 1 , wherein the size of the image block is 4×4 pixels.

7. The method according to claim 3 , wherein the size of the sub-block is 2×2 pixels.

8. A method for decoding an image from encoded image data, the method comprising:

decomposing the encoded image data into a plurality of encoded image blocks;

decoding an averaged color information of pixels in a sub-block of said image blocks;

decoding intensity information of the pixels in said image blocks by decoding a fixed number of intensity value bits for each pixel, decoding a number of leading zero bits to be included in the intensity value bits for each pixel, and decoding a bias value, which is added to the intensity value bits for each pixel;

modulating the intensity information of each pixel with the averaged color information of the corresponding pixel; and

composing the decoded image blocks into an image with the original dynamic range.

9. The method according to claim 8 , the method further comprising:

representing the original dynamic range values of the color components of the pixels with 16-bit or 32-bit floating point arithmetic.

10. The method according to claim 8 , wherein for decoding any pixel of the encoded image data, the method further comprising:

identifying at least one pixel to be decoded;

determining, after decomposing the encoded image data into the image blocks, an address of the at least one image block including the at least one pixel to be decoded;

retrieving only the at least one image block including the at least one pixel for decoding; and

decoding the image data of said at least one image block to output decoded image data of said at least one pixel.

11. Apparatus comprising:

at least one processor; and

at least one memory including computer software code,

said at least one memory and the computer software code configured to, with the at least one processor, cause the apparatus at least to:

receive an image having color components of each image pixel represented by a value of a high dynamic range and decompose the image into a plurality of image blocks;

separate from the high dynamic range value of each pixel, color information and intensity information of the pixels in said image blocks,

identify a minimum intensity within said image blocks;

store a floating-point exponent of the minimum intensity in a table of compressed block data as a bias value;

subtract the bias value from the exponents of all intensity values within the image block to provide biased intensity values for each pixel;

store the number of leading zero bits of the floating-point bit pattern of the largest biased intensity value in the table of compressed block data, whereby a sign bit is ignored from the number of leading zero bits;

compress the intensity information of the pixels separately for each pixel in said image blocks;

compress the color information of the pixels in said image blocks independently of the intensity information of the pixels in said image blocks using lossy compression schemes to provide compressed image data; and

compose an encoded image file from the compressed image data of said plurality of encoded image blocks.

12. The apparatus according to claim 11 , wherein said at least one memory and the computer software code are configured to, with the at least one processor, cause the apparatus at least to

remove from leading zero bits of the floating-point bit patterns of the biased intensity values of each pixel the number of leading zero bits of the floating-point bit pattern of the largest biased intensity value; and

store a fixed number of leading bits from the resulting floating-point bit patterns of the biased intensity values of each pixel in the table of compressed block data.

13. The apparatus according to claim 11 , wherein said at least one memory and the computer software code are configured to, with the at least one processor, cause the apparatus at least to

divide the image data in said image blocks into sub-blocks;

average the color information of the pixels in said sub-blocks such that each pixel in said sub-block is determined to have the same averaged color value.

14. The apparatus according to claim 13 , wherein said at least one memory and the computer software code are configured to with the at least one processor, cause the apparatus at least to

normalize the averaged color information by dividing it with the sum of its color components, and

leave one of the normalized color components out of the compression process.

15. The apparatus according to claim 14 , wherein said at least one memory and the computer software code are configured to, with the at least one processor, cause the apparatus at least to

encode the remaining color components as 7-bit fixed point numbers.

16. The apparatus according to claim 11 , wherein the size of the image block is 4×4 pixels.

17. The apparatus according to claim 11 , wherein the size of the sub-block is 2×2 pixels.

18. Apparatus, comprising:

at least one processor; and

at least one memory including computer software code,

said at least one memory and the computer software code configured to, with the at least one processor, cause the apparatus at least to:

receive an encoded image data;

decompose the encoded image data into a plurality of encoded image blocks;

decode an averaged color information of pixels in a sub-block of said image blocks;

decode intensity information of the pixels in said image blocks by decoding a fixed number of intensity value bits for each pixel;

decode a number of leading zero bits to be included in the intensity value bits for each pixel, and

decode a bias value and add said bias value to the intensity value bits for each pixel;

modulate the intensity information of each pixel with the averaged color information of the corresponding pixel; and

compose the decoded image blocks into an image with the original dynamic range.

19. The apparatus according to claim 18 , at least one memory and the computer software code are configured to, with the at least one processor, cause the apparatus to:

represent the original dynamic range values of the color components of the pixels with 16-bit or 32-bit floating point arithmetic.

20. The apparatus according to claim 18 , at least one memory and the computer software code are configured to, with the at least one processor, cause the apparatus to:

identify at least one pixel to be decoded;

determine, after decomposing the encoded image data into the image blocks, an address of the at least one image block including the at least one pixel to be decoded;

retrieve only the at least one image block including the at least one pixel for decoding; and

decode the image data of said at least one image block to output decoded image data of said at least one pixel.

21. An image processing device for encoding an image having color components of each image pixel represented by a value of a high dynamic range, the device including an image encoder comprising:

an image decomposer for receiving image data of said image and for decomposing the image into a plurality of image blocks;

at least one block encoder for separating, from the high dynamic range value of each pixel, color information and intensity information of the pixels in said image blocks, said at least one block encoder configured to

identify a minimum intensity within said image blocks;

store a floating-point exponent of the minimum intensity in a table of compressed block data as a bias value;

subtract the bias value from the exponents of all intensity values within the image block to provide biased intensity values for each pixel;

store the number of leading zero bits of the floating-point bit pattern of the largest biased intensity value in the table of compressed block data, whereby a sign bit is ignored from the number of leading zero bits;

compress the intensity information of the pixels separately for each pixel in said image blocks; and

compress the color information of the pixels in said image blocks independently of the intensity information of the pixels in said image blocks using lossy compression schemes to provide compressed image data; and

an encoded image composer for composing an encoded image file from the compressed image data of said plurality of encoded image blocks.

22. An image processing device for decoding an encoded image data, the device including an image decoder comprising:

an image decomposer for receiving an encoded image data and for decomposing the encoded image data into a plurality of encoded image blocks;

at least one block decoder for decoding an averaged color information of pixels in a sub-block of said image blocks; for decoding intensity information of the pixels in said image blocks by decoding a fixed number of intensity value bits for each pixel, decoding a number of leading zero bits to be included in the intensity value bits for each pixel, and decoding a bias value and add said bias value to the intensity value bits for each pixel; and for modulating the intensity information of each pixel with the averaged color information of the corresponding pixel; and

an image composer for composing the decoded image blocks into an image with the original dynamic range.

23. A non-transitory computer readable medium comprising a computer program stored thereon the computer program executable in a data processing device, for encoding an image having color components of each image pixel represented by a value of a high dynamic range, the computer program comprising:

a computer program code section for receiving image data of said image and for decomposing the image into a plurality of image blocks;

a computer program code section for separating, from the high dynamic range value of each pixel, color information and intensity information of the pixels in said image blocks;

a computer program code section for identifying a minimum intensity within said image blocks;

a computer program code section for storing a floating-point exponent of the minimum intensity in a table of compressed block data as a bias value;

a computer program code section for subtracting the bias value from the exponents of all intensity values within the image block to provide biased intensity values for each pixel;

a computer program code section for storing the number of leading zero bits of the floating-point bit pattern of the largest biased intensity value in the table of compressed block data, whereby a sign bit is ignored from the number of leading zero bits;

a computer program code section for compressing the intensity information of the pixels separately for each pixel in said image blocks;

a computer program code section for compressing the color information of the pixels in said image blocks independently of the intensity information of the pixels in said image blocks to provide compressed image data; and

a computer program code section for composing an encoded image file from the compressed image data of said plurality of encoded image blocks.

24. A non-transitory computer readable medium comprising a computer program stored thereon, the computer program executable in a data processing device, for decoding an encoded image data, the computer program product comprising:

a computer program code section for decomposing the encoded image data into a plurality of encoded image blocks;

a computer program code section for decoding an averaged color information of pixels in a sub-block of said image blocks;

a computer program code section for decoding intensity information of the pixels in said image blocks by decoding a fixed number of intensity value bits for each pixel, decoding a number of leading zero bits to be included in the intensity value bits for each pixel, and decoding a bias value and add said bias value to the intensity value bits for each pixel;

a computer program code section for modulating the intensity information of each pixel with the averaged color information of the corresponding pixel; and

a computer program code section for composing the decoded image blocks into an image with the original dynamic range.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2021
From: PROVENANCE ASSET GROUP LLC
To: RPX CORPORATION
Reel/Frame 059352/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2021
From: NOKIA US HOLDINGS INC.
To: PROVENANCE ASSET GROUP HOLDINGS LLC; PROVENANCE ASSET GROUP LLC
Reel/Frame 058363/0723 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2021
From: CORTLAND CAPITAL MARKETS SERVICES LLC
To: PROVENANCE ASSET GROUP HOLDINGS LLC; PROVENANCE ASSET GROUP LLC
Reel/Frame 058983/0104 →
ASSIGNMENT AND ASSUMPTION AGREEMENT Recorded Feb 14, 2019
From: NOKIA USA INC.
To: NOKIA US HOLDINGS INC.
Reel/Frame 048370/0682 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2017
From: NOKIA TECHNOLOGIES OY; NOKIA SOLUTIONS AND NETWORKS BV; ALCATEL LUCENT SAS
To: PROVENANCE ASSET GROUP LLC
Reel/Frame 043877/0001 →
SECURITY INTEREST Recorded Sep 13, 2017
From: PROVENANCE ASSET GROUP HOLDINGS, LLC; PROVENANCE ASSET GROUP LLC
To: NOKIA USA INC.
Reel/Frame 043879/0001 →
SECURITY INTEREST Recorded Sep 13, 2017
From: PROVENANCE ASSET GROUP HOLDINGS, LLC; PROVENANCE ASSET GROUP, LLC
To: CORTLAND CAPITAL MARKET SERVICES, LLC
Reel/Frame 043967/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2015
From: NOKIA CORPORATION
To: NOKIA TECHNOLOGIES OY
Reel/Frame 035603/0543 →