IP Library Granted Patent US 9,363,517
Granted Patent B2
US 9,363,517 · App. 14/182,172 · Granted Jun 7, 2016

Indexed color history in image coding

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,363,517
App. No.
14/182,172
Granted
Jun 7, 2016
Kind
B2
Abstract

An encoder may implement an indexed color history that stores color values for previously encoded pixels. The encoder may obtain a current pixel or current group of pixels for encoding and determine whether to encode the current pixel using the indexed color history. In doing so, the encoder may compare a color value of the current pixel with color values of the previously coded pixels to determine whether the current pixel is sufficiently similar to a previously coded pixel color value, e.g., by satisfying one or more similarity criteria. When the similarity criteria are satisfied, the encoder may encode the current pixel as an index value referencing the entry in the indexed color history storing a color value that satisfies the similarity criteria. When the similarity criteria are not satisfied, the encoder may encode the current pixel using another encoding method or technique.

Claims (55)

1. A system comprising:

a memory storing:

an indexed color history comprising an entry storing a color value of a previously coded pixel;

encoding circuitry in communication with the memory and configured to:

obtain a current pixel for encoding;

determine whether to encode the current pixel by referencing the indexed color history by determining when a color value of the current pixel is within a difference threshold of the color value of the previously coded pixel; and

when it is determined to encode the current pixel using the indexed color history:

encode the pixel as an index value referencing the entry in the indexed color history.

2. The system of claim 1 , wherein the color value of the previously coded pixel is within the difference threshold only when the color value of the current pixel is identical to the color value of the previously coded pixel.

3. The system of claim 1 , wherein the color value of the previously coded pixel is within the difference threshold when a component value of the color value of the current pixel is within the difference threshold from a corresponding component value of the color value of the previously coded pixel.

4. The system of claim 1 , wherein the encoding circuitry is further configured to:

access a quantization parameter for the current pixel; and

determine the difference threshold as a function of the quantization parameter for the current pixel.

5. The system of claim 4 , wherein the encoding circuitry is configured to determine the difference threshold as a maximum quantization error for the quantization parameter for the current pixel.

6. The system of claim 4 , wherein the encodings circuitry is configured to determine the difference threshold as:

a maximum quantization error based on the quantization parameter for the current pixel when the maximum quantization error does not exceed an error threshold; and

a value less than the maximum quantization error for the quantization parameter for the current pixel when the maximum quantization error exceeds the error threshold.

7. The system of claim 1 , wherein the encoding circuitry is further configured to explicitly signal, in an encoded bit stream, that the current pixel is encoded as the index value into the indexed color history.

8. The system of claim 1 , wherein the encoding circuitry is further configured to:

determine not to encode the current pixel using the indexed color history when no color value stored in the indexed color history is within the difference threshold for the color value of the current pixel; and.

encode the current pixel without referencing the indexed color history.

9. The system of claim 8 , wherein the encoding circuitry is further configured to:

when it is determined not to encode the current pixel using the indexed color history:

insert the color value of the current pixel into the indexed color history; and

indicate the color value of the current pixel as a most recently used color value.

10. The system of claim 9 , wherein the encoding circuitry is further configured to insert the color value of the current pixel into the indexed color history by removing a least recently used color value from the indexed color history.

11. A method comprising:

obtaining image data for a current pixel, the image data comprising a color value of the current pixel;

determining to encode the current pixel by referencing an indexed color history when:

the indexed color history includes a history entry storing a color value of a previously coded pixel that meets a similarity criterion with respect to the color value for the current pixel; and

an evaluation function of bit length indicates that encoding using the indexed color history has a compression advantage over encoding without using the indexed color history; and

encoding the current pixel by referencing the history entry in indexed color history.

12. The method of claim 11 , where encoding the current pixel by referencing the history entry comprises encoding the current pixel as an index value corresponding to the history entry.

13. The method of claim 11 , further comprising maintaining the indexed color history to indicate that the history entry is a most recently used entry of the indexed color history.

14. The method of claim 11 , further comprising:

signaling in an encoded bit stream that the current pixel was encoded by referencing the indexed color history.

15. The method of claim 14 , where signaling comprises coding an escape code into a prefix corresponding to the current pixel.

16. A product comprising:

a machine-readable medium other than a transitory signal; and

instructions stored on the machine-readable medium that when executed by a processor, cause the processor to:

obtain a current pixel for encoding;

access an indexed color history to determine whether an entry in the indexed color history stores a color value for a previously coded pixel for which a color value for the current pixel is within a difference threshold; and

when the indexed color history includes an entry for which the color value for the current pixel is within the difference threshold:

encode the pixel as an index value to the entry; and

when the indexed color history does not include an entry for which the color value for the current pixel is within the difference threshold:

encode the pixel without referencing the indexed color history.

17. The product of claim 16 , where the instructions further cause the processor to:

determine that the indexed color history includes multiple entries that store a color value for which the current pixel is within the difference threshold, and in response:

select an index value of one of the multiple entries as the index value to encode the pixel.

18. The product of claim 17 , where the instructions cause the processor to select the index value of one of the multiple entries by:

identifying which of the multiple entries has a color value with a lowest sum of absolute differences of color components.

19. The product of claim 16 , where the instructions are further configured to:

when the indexed color history does not include an entry for which the color value for the current pixel is within the difference threshold:

store the color value of the current pixel as a new entry in the index color history.

20. The system of claim 7 , where the encoding circuitry configured to explicitly signal that the current pixel is encoded as the index value into the indexed color history by inserting an escape code into the encoded bit stream.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT NUMBER 9,385,856 TO 9,385,756 PREVIOUSLY RECORDED AT REEL: 47349 FRAME: 001. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 22, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 051144/0648 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE PREVIOUSLY RECORDED ON REEL 047229 FRAME 0408. ASSIGNOR(S) HEREBY CONFIRMS THE THE EFFECTIVE DATE IS 09/05/2018. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047349/0001 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047229/0408 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 18, 2014
From: MACINNIS, ALEXANDER GARLAND; WALLS, FREDERICK GEORGE
To: BROADCOM CORPORATION
Reel/Frame 032232/0270 →