IP Library Granted Patent US 9,615,111
Granted Patent B2
US 9,615,111 · App. 14/771,703 · Granted Apr 4, 2017

Complexity-adaptive compression of color images using binary arithmetic coding

Inventors: Vasily Olegovich Zalunin (St. Petersburg, RU); Marat Ravilevich Gilmutdinov (St. Petersburg, RU); Nikolay Dmitrievich Egorov (St. Petersburg, RU)
Assignee: EMC IP Holding Company LLC
H04N19/91H04N19/13H04N19/182H04N19/186
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,615,111
App. No.
14/771,703
Filed
Aug 31, 2015
Granted
Apr 4, 2017
Kind
B2
Examiner
DO, ANH HONG
Art Unit
2666
USPC
382/166
Abstract

An improved technique of compressing image data involves separating a prediction error of image data into distinct factors and applying a separate set of context models to each factor. Such factors may take the form of a sign, a bit category, and a relative absolute value of the prediction error. For each factor, the improved technique provides a set of context models and a procedure for selecting a context model from each respective set. The context model for each factor determines a probability distribution of symbols that may represent that factor, which in turn enables compression of the prediction error. Additionally, the symbols that represent certain factors into which the prediction error is separated result from a binary representation whose form—either unary or uniform—depends on the size of the prediction error.

Claims (57)

1. A method of compressing single color image data stored in memory, the method comprising, for each of a set of pixels of the single color image data:

generating, by a processor coupled to the memory, a prediction error equal to a difference between the single color image data at that pixel and a predicted value of the single color image data at that pixel;

separating the prediction error into multiple factors;

selecting a respective context model for each of the multiple factors into which the prediction error at that pixel has been separated; and

encoding the prediction error based on the context model selected for each of the multiple factors to generate compressed image data.

2. A method as in claim 1 , wherein the multiple factors include (i) a sign of the prediction error at the respective pixel and (ii) an absolute value of the prediction error at that pixel; and

wherein selecting the context model for each of the multiple factors includes:

selecting a first context model for the sign of the prediction error at that pixel; and

selecting a second context model for the absolute value of the prediction error at that pixel.

3. A method as in claim 2 , wherein selecting the first context model for the sign of the prediction error at that pixel includes identifying, as the first context model, a context model of a set of sign context models based on respective signs of prediction errors at a pixel adjacent to and to the west of that pixel and at a pixel adjacent to and to the north of that pixel.

4. A method as in claim 2 , wherein separating the prediction error into multiple factors includes representing the absolute value of the prediction error as a pair including (i) a bit category of the prediction error and (ii) a relative absolute value of the prediction error, the bit category being the most significant bit of the absolute value of the prediction error, the relative absolute value being a difference between (i) the absolute value of the prediction error and (ii) a minimum value of the prediction error over all values of the prediction error having the bit category; and

wherein selecting the second context model for each pixel includes:

selecting a third context model for the bit category of the prediction error at that pixel; and

selecting a fourth context model for the relative absolute value of the prediction error at that pixel.

5. A method as in claim 4 , wherein selecting the third context model for the bit category of the prediction error at each pixel includes:

testing whether the prediction errors at pixels from a group of pixels are all zero to produce a testing result identifying one of a first set of bit category context models and a second set of bit category context models from which the third context model may be selected, the group of pixels containing the pixels adjacent to that pixel to the west, north, northwest, and northeast; and

identifying, as the third context model, a context model of one of the first set of bit category context models and the second set of bit category context models based on the testing result.

6. A method as in claim 4 , wherein selecting the third context model for the bit category of the prediction error at that pixel includes generating a maximum of bit categories at a set of neighboring pixels, the set of neighboring pixels containing the pixels adjacent to that pixel to the west (W), north (N), northwest (NW), and northeast (NE), the set of neighboring pixels further containing the pixel adjacent to W to the west, the pixel adjacent to NW to the west, the pixel adjacent to N to the north, and the pixel adjacent to NW to the north.

7. A method as in claim 6 , wherein selecting the fourth context model for the relative absolute value of the prediction error includes selecting the fourth context model based on i) the third context model for the bit category of the prediction error and ii) the bit category of the prediction error.

8. A method as in claim 4 , wherein the method further comprises:

performing a first binarization operation on the bit category of the prediction error at that pixel to produce a first binarized string; and

performing a second binarization operation on the relative absolute value of the prediction error at that pixel to produce a second binarized string.

9. A method as in claim 8 , wherein performing the first binarization operation on the bit category of the prediction error at each pixel includes computing a unary representation of the bit category of the prediction error at that pixel.

10. A method as in claim 8 , wherein performing the second binarization operation on the relative absolute value of the prediction error includes:

computing a unary representation of the relative absolute value of the prediction error when the bit category of the prediction error is less than or equal to a bit category threshold value; and

computing a uniform binary representation of the relative absolute value of the prediction error when the bit category of the prediction error is greater than the bit category threshold value.

11. A method as in claim 8 , wherein encoding the prediction error based on the context model selected for each of the multiple factors includes:

for a binarized string equal to one of the first binarized string and the second binarized string, for each bit position of the binarized string, forming a binary symbol from the binarized string and a number of previous binarized strings at that bit position;

selecting a binary context model based on the binary symbols and the indices of the first context model, the third context model, and the fourth context model; and

computing an estimated probability distribution for encoding the prediction error based on the binary context model.

12. A method as in claim 11 , wherein forming the binary symbol from the binarized string and a number of previous binarized strings includes, at each bit position, concatenating the binary digits of the binarized string and the previous binarized strings at that bit position.

13. A computerized apparatus constructed and arranged to compress single color image data, the apparatus comprising:

memory for storing the single color image data; and

controlling circuitry coupled to the memory, the controlling circuitry being constructed and arranged to:

generate, by the computerized device and for each pixel of the image, a prediction error equal to a difference between the single color image data at that pixel and a predicted value of the single color image data at that pixel;

separate the prediction error at each pixel into multiple factors;

select a respective context model for each of the multiple factors into which the prediction error at that pixel has been separated; and

encode the prediction error at each pixel based the context model selected for each of the multiple factors to generate compressed image data.

14. An apparatus as in claim 13 , wherein the multiple factors include (i) a sign of the prediction error at the respective pixel and (ii) an absolute value of the prediction error at that pixel; and

wherein the controlling circuitry constructed and arranged to select the context model for each of the multiple factors is further constructed and arranged to:

select a first context model for the sign of the prediction error at that pixel; and

select a second context model for the absolute value of the prediction error at that pixel.

15. An apparatus as in claim 14 , wherein the controlling circuitry constructed and arranged to select the first context model for the sign of the prediction error is further constructed and arranged to identify, as the first context model, a context model of a set of sign context models based on respective signs of prediction errors at a pixel adjacent to and to the west of that pixel and at a pixel adjacent to and to the north of that pixel.

16. An apparatus as in claim 14 , wherein the controlling circuitry constructed and arranged to separate the prediction error into multiple factors is further constructed and arranged to represent the absolute value of the prediction error as a pair including (i) a bit category of the prediction error and (ii) a relative absolute value of the prediction error, the bit category being the most significant bit of the absolute value of the prediction error, the relative absolute value being a difference between (i) the absolute value of the prediction error and (ii) a minimum value of the prediction error over all values of the prediction error having the bit category; and

wherein the controlling circuitry constructed and arranged to select the second context model for the absolute value of the prediction error is further constructed and arranged to:

select a third context model for the bit category of the prediction error at that pixel; and

select a fourth context model for the relative absolute value of the prediction error at that pixel.

17. An apparatus as in claim 16 , wherein the controlling circuitry constructed and arranged to select the third context model for the bit category of the prediction error is further constructed and arranged to:

whether the prediction errors at pixels from a group of pixels are all zero to produce a testing result identifying one of a first set of bit category context models and a second set of bit category context models from which the third context model may be selected, the group of pixels containing the pixels adjacent to that pixel to the west, north, northwest, and northeast; and

identify, as the third context model, a context model of one of the first set of bit category context models and the second set of bit category context models based on the testing result.

18. An apparatus as in claim 16 , wherein the controlling circuitry constructed and arranged to select the third context model for the bit category of the prediction error is further constructed and arranged to generate a maximum of bit categories at a set of neighboring pixels, the set of neighboring pixels containing the pixels adjacent to that pixel to the west (W), north (N), northwest (NW), and northeast (NE), the set of neighboring pixels further containing the pixel adjacent to W to the west, the pixel adjacent to NW to the west, the pixel adjacent to N to the north, and the pixel adjacent to NW to the north.

19. An apparatus as in claim 16 , wherein the controlling circuitry constructed and arranged to select the fourth context model for the relative absolute value of the prediction error is further constructed and arranged to select the index of the fourth context model based on i) the index of the third context model computed for the bit category of the prediction error at that pixel and ii) the bit category of the prediction error at that pixel.

20. A computer program product comprising a non-transitory, computer-readable storage medium which stores executable code, which when executed by a processor, causes the processor to perform a method of compressing single color image data stored in memory, the method comprising:

generating a prediction error equal to a difference between the single color image data at that pixel and a predicted value of the single color image data at that pixel;

separating the prediction error into multiple factors;

selecting a respective context model for each of the multiple factors into which the prediction error at that pixel has been separated; and

encoding the prediction error based on the context model selected for each of the multiple factors to generate compressed image data.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 27, 2016
From: ZALUNIN, VASILY OLEGOVICH; GILMUTDINOV, MARAT RAVILEVICH; EGOROV, NIKOLAY DMITRIEVICH
To: EMC CORPORATION
Reel/Frame 038737/0814 →
Continuity (1)
Related Publication 20160366446A1 · Dec 15, 2016