IP Library Granted Patent US 8,600,181
Granted Patent B2
US 8,600,181 · App. 13/002,936 · Granted Dec 3, 2013

Method for compressing images and a format for compressed images

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,600,181
App. No.
13/002,936
Granted
Dec 3, 2013
Kind
B2
Abstract

There is provided a method for compressing images and an image format. The method comprises performing a transform on pixel portions of image data and evaluating resulting coefficients from each transform in terms of a flatness condition. If the transform is found to be flat then the result from the transform is quantized according to a first quantizing scheme. If the transform is found not to be flat then the result from the transform is quantized according to a second quantizing scheme being different from the first quantizing scheme. Different block arranging schemes are proposed for the quantizing schemes. An indicator is stored in the block indicating that the image block is flat or not flat. The resulting bits are written into a compression data structure.

Claims (65)

1. An apparatus comprising at least a processor, a memory in communication with said processor, and computer coded instructions stored in said memory which, when executed by the processor, cause the apparatus to perform:

performing a block transform on blocks of pixel portions of image data;

evaluating resulting coefficients from each transform for flatness;

wherein in the instance of a flat transform, quantizing the result from the block transform according to a first quantizing scheme, by arranging the quantized bits into N−1 bits according to a first image block arranging scheme, where N>0 is an integer, and causing an indicator to be stored in the block indicating that the image block is flat, and

wherein in the instance of a not flat transform, quantizing the result from the block transform according to a second quantizing scheme, by arranging the quantized bits into N−1 bits according to a second image block arranging scheme, and causing an indicator to be stored in the block indicating that the image block is not flat; and

encoding said image data by performing with a processor writing the resulting N bits into a compression data structure.

2. An apparatus comprising at least a processor, a memory in communication with said processor, and computer coded instructions stored in said memory which, when executed by the processor, cause the apparatus to perform:

reading N bits from a compression data structure representing one block of coefficients of compressed image data, where N>0 is an integer, and wherein the block is associated with a flatness indicator bit;

determining if the block is flat by observing the flatness indicator bit; wherein

in the instance that the block is flat, de-quantizing the coefficients of the block according to a first de-quantizing scheme, and

in the instance that the block is not flat, de-quantizing the coefficients of the block according to a second de-quantizing scheme; and

decoding the image by performing with a processor on the block data of de-quantized coefficients an inverse block transform resulting in a block of reconstructed pixel portions of image data.

3. A computer program product comprising at least a computer readable storage medium having computer coded instructions stored therein, said instructions when executed by a processor, causing an apparatus to perform:

performing a block transform on blocks of pixel portions of image data;

evaluating resulting coefficients from each transform for flatness;

wherein in the instance of a flat transform, quantizing the result from the block transform according to a first quantizing scheme, by arranging the quantized bits into N−1 bits according to a first image block arranging scheme, where N>0 is an integer, and causing an indicator to be stored in the block indicating that the image block is flat, and

wherein in the instance of a not flat transform, quantizing the result from the block transform according to a second quantizing scheme, by arranging the quantized bits into N−1 bits according to a second image block arranging scheme, and causing an indicator to be stored in the block indicating that the image block is not flat; and

encoding said image data by performing with a processor writing the resulting N bits into a compression data structure.

4. A computer program product comprising at least a computer readable storage medium having computer coded instructions stored therein, said instructions when executed by a processor, causing an apparatus to perform:

reading N bits from a compression data structure representing one block of coefficients of compressed image data, where N>0 is an integer, and wherein the block is associated with a flatness indicator bit;

determining if the block is flat by observing the flatness indicator bit;

in the instance that the block is flat, de-quantizing the coefficients of the block according to a first de-quantizing scheme, and

in the instance that the block is not flat, de-quantizing the coefficients of the block according to a second de-quantizing scheme; and

decoding the image by performing with a processor on the block data of de-quantized coefficients an inverse block transform resulting in a block of reconstructed pixel portions of image data.

5. A method comprising:

performing a block transform on blocks of pixel portions of image data;

evaluating resulting coefficients from each transform for flatness;

wherein in the instance of a flat transform, quantizing the result from the block transform according to a first quantizing scheme, by arranging the quantized bits into N−1 bits according to a first image block arranging scheme, where N>0 is an integer, and causing an indicator to be stored in the block indicating that the image block is flat;

wherein in the instance of a not flat transform, quantizing the result from the block transform according to a second quantizing scheme, by arranging the quantized bits into N−1 bits according to a second image block arranging scheme, and causing an indicator to be stored in the block indicating that the image block is not flat; and

encoding said image data by performing with a processor writing the resulting N bits into a compression data structure.

6. The method according to claim 5 , wherein the image data to be transformed is derived from an at least twice as large block of image data.

7. The method according to claim 6 , wherein the block size of the block transform is 2×2 and said at least twice as large block of image data comprises one 4×4 Y block, one 4×4 U block and one 4×4 V block, said method further comprising

splitting said 4×4 Y block into four 2×2 Y blocks, and

sub-sampling said one 4×4 U block and one 4×4 V block of image data, respectively.

8. The method according to claim 7 , further comprising

transforming said 4×4 block of image data into a YUV representation of image data comprising one 4×4 Y block, one 4×4 U block and one 4×4 V block of image data, respectively.

9. The method according to claim 8 , wherein said at least twice as large block of image data further comprises one 4×4 alpha channel block.

10. The method according to claim 5 , wherein the block transform is performed as a matrix operation of B=T*b*T′, wherein T is a transform matrix, b is one block pixel portion of data and B is the result from the block forward transform of said one block pixel portion of data.

11. The method according to claim 5 , wherein the block transform is performed as a matrix operation of B=T*b*T′, wherein T is a transform matrix, b is one block pixel portion of data and B is the result from the block forward transform of said one block pixel portion of data, and wherein T represents one from a group of a Discrete Walsh Hadamard Transform and a Discrete Cosine Transform.

12. The method according to claim 5 , wherein the processing of the image blocks is performed in parallel, where two N-bit words are processed in a 2*N-bit operation.

13. The method according to claim 5 , wherein the block of data is denoted a first block of data, said method further comprising receiving a second block of data, and packing bits of the first block of data and bits of the second block of data to form a packed block of data, wherein each coefficient from the first block of data is packed with a corresponding coefficient from said second block of data, thereby allowing for parallel calculations of said packed block of data.

14. The method according to claim 5 , wherein the block of data is denoted a first block of data, said method further comprising receiving a second block of data, and packing bits of the first block of data and bits of the second block of data to form a packed block of data, wherein each coefficient from the first block of data is packed with a corresponding coefficient from said second block of data, thereby allowing for parallel calculations of said packed block of data; and wherein said packed block of data is obtained by shifting all bits of said first block of data and then adding all bits of said second block.

15. The method according to claim 5 , wherein the block size of the block transform is one from a group of:

2×2, and where N>15 bits,

3×3, and where N>23 bits, and

4×4, and where N>31 bits.

16. The method according to claim 5 , wherein said compression data structure is associated with a plurality of images.

17. The method according to claim 5 , wherein at least N−1 bits from said N bits compression data structure is split into at least a first bitstream of data bits and a second bitstream of data bits, and wherein said first bitstream of data bits is associated with a first lookup table and wherein said second bitstream of data bits is associated with a second lookup table, and wherein each one of said first bitstream and said second bitstream comprises the flatness indicator bit.

18. The method according to claim 5 , wherein at least N−1 bits from said N bits compression data structure is split into at least a first bitstream of data bits and a second bitstream of data bits, and wherein said first bitstream of data bits is associated with a first lookup table and wherein said second bitstream of data bits is associated with a second lookup table, and wherein said first and second lookup tables comprise entries representing pixel colour values representing influence of the entries on colour values on the pixels of said block.

19. A method comprising:

reading N bits from a compression data structure representing one block of coefficients of compressed image data, where N>0 is an integer, and wherein the block is associated with a flatness indicator bit;

determining if the block is flat by observing the flatness indicator bit;

in the instance that the block is flat, de-quantizing the coefficients of the block according to a first de-quantizing scheme;

in the instance that the block is not flat, de-quantizing the coefficients of the block according to a second de-quantizing scheme; and

decoding the image by performing with a processor on the block data of de-quantized coefficients an inverse block transform resulting in a block of reconstructed pixel portions of image data.

20. The method according to claim 19 , wherein said N bits comprise bits pertaining to one DC component and more than one AC component, said method further comprising:

exclusively processing the coefficients of the block pertaining to the DC component.

21. The method according to claim 19 , wherein in-place editing of an image is enabled by decoding bytes of a predetermined block, modifying the decoded block, encoding the block, and storing the block over the original bytes of the block.

22. The method according to claim 19 , wherein N is a multiple of 8.

23. The method according to claim 19 , wherein at least N−1 bits from said N-bit compression data structure are associated with at least one lookup table.

24. The method according to claim 19 , wherein at least N−1 bits from said N bits compression data structure are split into at least a first bitstream of data bits and a second bitstream of data bits, and wherein said first bitstream of data bits is associated with a first lookup table and wherein said second bitstream of data bits is associated with a second lookup table.

25. The method according to claim 19 , wherein the block transform is performed as a matrix operation of B=T*b*T′, wherein T is a transform matrix, b is one block pixel portion of data and B is the result from the block forward transform of said one block pixel portion of data, and wherein T represents one from a group of a Discrete Walsh Hadamard Transform and a Discrete Cosine Transform.

26. The method according to claim 19 , wherein the block of data is denoted a first block of data, said method further comprising receiving a second block of data, and packing bits of the first block of data and bits of the second block of data to form a packed block of data wherein each coefficient from the first block of data is packed with a corresponding coefficient from said second block of data, thereby allowing for parallel calculations of said packed block of data; and wherein said packed block of data is obtained by shifting all bits of said first block of data and then adding all bits of said second block.

27. The method according to claim 19 , wherein at least N−1 bits from said N bits compression data structure are split into at least a first bitstream of data bits and a second bitstream of data bits, and wherein said first bitstream of data bits is associated with a first lookup table and wherein said second bitstream of data bits is associated with a second lookup table, and wherein each one of said first bitstream and said second bitstream comprises the flatness indicator bit.

28. The method according to claim 19 , wherein at least N−1 bits from said N bits compression data structure are split into at least a first bitstream of data bits and a second bitstream of data bits, and wherein said first bitstream of data bits is associated with a first lookup table and wherein said second bitstream of data bits is associated with a second lookup table, and wherein said first and second lookup tables comprise entries representing pixel colour values representing influence of the entries on colour values on the pixels of said block.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2012
From: SCALADO AB
To: MOBILE IMAGING IN SWEDEN AB
Reel/Frame 028499/0047 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2011
From: NIEMI, SAMI; JACOBSSON, MARTIN
To: SCALADO AB
Reel/Frame 025599/0285 →