IP Library Granted Patent US 7,903,894
Granted Patent B2
US 7,903,894 · App. 11/543,576 · Granted Mar 8, 2011

Color image coding using inter-color correlation

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,903,894
App. No.
11/543,576
Granted
Mar 8, 2011
Kind
B2
Abstract

Described is an image compression technology by which a coefficient representative of a chrominance component corresponding to an (x, y) coordinate pair is coded into a symbol, along with plurality of context events associated with that symbol, to facilitate more efficient context-based arithmetic coding. For example, four context events may be generated, including one context event based on the corresponding (x, y) coefficient value in the luminance component, and three context events based on other luminance coefficients that have adjacent horizontal, vertical and diagonal relationships with the corresponding luminance component's coefficient, respectively. In one example implementation, coding the chrominance coefficient and computing the plurality of context events occurs in a zero coding pass of an entropy coder. A sign coding pass and a magnitude refinement pass may be performed to obtain further symbols for the context-based arithmetic coding.

Claims (37)

1. At least one computer storage medium having computer executable instructions that, when executed by a computer, cause the computer to perform a method comprising:

coding a coefficient representative of a chrominance component corresponding to an (x, y) coordinate pair into a symbol;

computing a plurality of context events based upon a corresponding coefficient of a luminance component at the (x, y) coordinate pair and at least one other coefficient of another luminance component having a coordinate relationship with the (x, y) coordinate pair, wherein the computing the plurality of context events comprises comparing coefficients that have adjacent horizontal, vertical and diagonal relationships with the corresponding coefficient against a threshold value, and wherein the computing the plurality of context events further comprises separately comparing each horizontally-related coefficient against the threshold value and logically combining a result of each horizontally-related luminance coefficient comparison to obtain one value for one context event, and separately comparing each vertically-related coefficient against the threshold value and logically combining a result of each vertically-related coefficient comparison to obtain another value for another context event, and separately comparing each diagonally-related coefficient against the threshold value and logically combining a result of each diagonally-related coefficient comparison to obtain yet another value for yet another context event;

comparing the coefficients against a decreasing threshold value until the coefficient representative of the chrominance component meets the threshold value;

halving the threshold value into a new threshold value when the coefficient representative of the chrominance component does not meet the threshold value; and

associating the symbol with the context events for context-based arithmetic coding.

2. The at least one computer storage medium of claim 1 wherein the steps of coding the coefficient and computing the plurality of context events occurs in a zero coding pass of coding via an entropy coder.

3. The at least one computer storage medium of claim 1 , the method further comprising performing a sign coding pass and a magnitude refinement pass to obtain further symbols for the context-based arithmetic coding.

4. The at least one computer storage medium of claim 1 wherein computing the plurality of context events based upon the corresponding coefficient of the luminance component at the (x, y) coordinate pair and at least one other coefficient of another luminance component having a coordinate relationship with the (x, y) coordinate pair comprises, generating four context events, including one context event based on the corresponding coefficient in the luminance component, and three context events based on other luminance coefficients that have adjacent horizontal, vertical and diagonal relationships with the corresponding coefficient.

5. The at least one computer storage medium of claim 1 wherein computing the plurality of context events based upon the corresponding coefficient of the luminance component at the (x, y) coordinate pair and at least one other coefficient of another luminance component having a coordinate relationship with the (x, y) coordinate pair comprises, generating four context events C 1 -C 4 based upon the following computations, where each |S Y (x-coordinate identifier, y-coordinate identifier)| refers to an absolute value of a coefficient of the luminance component at coordinates relative to the (x, y) coordinate pair, and T refers to a threshold value:

C 1 = 1, if |S Y (x,y)| >= T; otherwise, C 1 = 0;

C 2 = 1, if |S Y (x,y−1)| >= T OR |S Y (x,y+1)| >= T; otherwise, C 2 = 0;

C 3 = 1, if |S Y (x−1,y)| >= T OR |S Y (x+1,y)| >= T; otherwise, C 3 = 0;

C 4 = 1, if |S Y (x−1,y−1)| >= T OR |S Y (x+1,y−1)| >= T OR |S Y (x−1,y+1)| >=

  T OR |S Y (x+1,y+1)| >= T; otherwise, C 4 = 0.

6. In an image processing environment, a system comprising:

an encoder configured to input source data and configured to output compressed image data based on the source image data, the encoder including a zero coding pass component, a sign coding pass component and a magnitude refinement coding pass component configured to provide symbols and associated context events to a context-based arithmetic coding component, the zero coding pass component comprising:

a symbol generator configured to generate at least one zero pass symbol representative of a selected chrominance component; and

an inter-color context events generator configured to generate the context events for association with each zero pass symbol, the generator configured to generate the context events based on a set of at least two luminance components that each have a relationship with the selected chrominance component,

wherein the encoder includes a preprocessor configured to separate color data signals into luminance components corresponding to a grayscale image and chrominance components configured to provide color information, a transformer coupled to the preprocessor configured to perform frequency transformation on the output of preprocessor into frequency-transformed data values, a quantizer coupled to the transformer configured to aggregate the data values into aggregated data values, and an entropy coder coupled to the quantizer configured to generate the compressed image data from the aggregated data values, the entropy coder including the zero coding pass component, the sign coding pass component, the magnitude refinement coding pass component, and the context-based arithmetic coding component.

7. The system of claim 6 wherein the relationship with the selected chrominance component comprises is based upon an (x, y) coordinate pair of the selected chrominance component, and wherein the inter-color context events generator generates four context events by processing coefficients of luminance components, including a first luminance component at an (x, y) coordinate pair that corresponds to the chrominance component's (x, y) coordinate pair, a second context event based on luminance coefficients that have a horizontal relationship with the (x, y) coordinate pair, a third context event based on luminance coefficients that have a vertical relationship with the (x, y) coordinate pair, and a fourth context event based on luminance coefficients that have a diagonal relationship with the (x, y) coordinate pair.

8. The system of claim 6 further comprising a channel for transmitting or storing the compressed image data, or for both storing and transmitting the compressed image data, and further comprising a decoder including an entropy decoder that processes the compressed image data into aggregated data values, a dequantizer coupled to the entropy decoder to convert the aggregated data values into frequency transformed data values, and an inverse transformer coupled to the dequantizer to process frequency transformed data values into luminance components corresponding to a grayscale image and chrominance components that provide color information.

9. A method comprising:

coding a coefficient representative of a chrominance component corresponding to an (x, y) coordinate pair into a symbol;

computing a plurality of context events based upon a corresponding coefficient of a luminance component at the (x, y) coordinate pair and at least one other coefficient of another luminance component having a coordinate relationship with the (x, y) coordinate pair, wherein the computing the plurality of context events comprises comparing coefficients that have adjacent horizontal, vertical and diagonal relationships with the corresponding coefficient against a threshold value, and wherein the computing the plurality of context events further comprises separately comparing each horizontally-related coefficient against the threshold value and logically combining a result of each horizontally-related luminance coefficient comparison to obtain one value for one context event, and separately comparing each vertically-related coefficient against the threshold value and logically combining a result of each vertically-related coefficient comparison to obtain another value for another context event, and separately comparing each diagonally-related coefficient against the threshold value and logically combining a result of each diagonally-related coefficient comparison to obtain yet another value for yet another context event;

comparing the coefficients against a decreasing threshold value until the coefficient representative of the chrominance component meets the threshold value;

halving the threshold value into a new threshold value when the coefficient representative of the chrominance component does not meet the threshold value; and

associating the symbol with the context events for context-based arithmetic coding.

10. The method of claim 9 wherein the steps of coding the coefficient and computing the plurality of context events occurs in a zero coding pass of coding via an entropy coder.

11. The method of claim 9 , the method further comprising performing a sign coding pass and a magnitude refinement pass to obtain further symbols for the context-based arithmetic coding.

12. The method of claim 9 wherein computing the plurality of context events based upon the corresponding coefficient of the luminance component at the (x, y) coordinate pair and at least one other coefficient of another luminance component having a coordinate relationship with the (x, y) coordinate pair comprises, generating four context events, including one context event based on the corresponding coefficient in the luminance component, and three context events based on other luminance coefficients that have adjacent horizontal, vertical and diagonal relationships with the corresponding coefficient.

13. The method of claim 9 wherein computing the plurality of context events based upon the corresponding coefficient of the luminance component at the (x, y) coordinate pair and at least one other coefficient of another luminance component having a coordinate relationship with the (x, y) coordinate pair comprises, generating four context events C 1 -C 4 based upon the following computations, where each |S Y (x-coordinate identifier, y-coordinate identifier)| refers to an absolute value of a coefficient of the luminance component at coordinates relative to the (x, y) coordinate pair, and T refers to a threshold value:

C 1 = 1, if |S Y (x,y)| >= T; otherwise, C 1 = 0;

C 2 = 1, if |S Y (x,y−1)| >= T OR |S Y (x,y+1)| >= T; otherwise, C 2 = 0;

C 3 = 1, if |S Y (x−1,y)| >= T OR |S Y (x+1,y)| >= T; otherwise, C 3 = 0;

C 4 = 1, if |S Y (x−1,y−1)| >= T OR |S Y (x+1,y−1)| >= T OR |S Y (x−1,y+1)| >=

  T OR |S Y (x+1,y+1)| >= T; otherwise, C 4 = 0.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2006
From: CAI, HUA; LI, JIANG
To: MICROSOFT CORPORATION
Reel/Frame 018540/0187 →