# US 12,010,296 B2 · Lossless image compression using block based prediction and optimized context adaptive entropy coding

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,010,296 B2
- Document ID: US12010296B2
- Status: Granted
- Kind: B2
- Application number: 17/891,057
- Filed: 2022-08-18
- Published: 2022-12-15
- Granted: 2024-06-11
- Earliest claimed: 2021-02-17
- Assignees: Adobe Inc.
- Applicants: Adobe Inc.
- Inventors: Stefano Petrangeli; Viswanathan Swaminathan; Haoliang Wang
- Web page: https://patentgrep.com/patent/US12010296B2

## CPC

- H04N 19/105: Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
- H04N 19/176: the region being a block, e.g. a macroblock
- H04N 19/182: the unit being a pixel
- H04N 19/186: the unit being a colour or a chrominance component
- H04N 19/91: Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Embodiments are disclosed for lossless image compression using block-based prediction and context adaptive entropy coding. A method of lossless image compression using block-based prediction and context adaptive entropy coding comprises dividing an input image into a plurality of blocks, determining a pixel predictor for each block based on a block strategy, determining a plurality of residual values using the pixel predictor for each block, selecting a subset of features associated with the plurality of residual values, performing context modeling on the plurality of residual values based on the subset of features to identify a plurality of residual clusters, and entropy coding the plurality of residual clusters.

## Claims

### Claim 1

A computer-implemented method comprising:
dividing an input image into a plurality of blocks, each block of the plurality of blocks being a portion of the input image;
determining a plurality of residual values using a pixel predictor for each block;
performing a classification of each feature of a set of features using a machine learning model feature selector trained to receive the input image and classify each feature of the set of features as belonging to a first subset of features or a second subset of features, wherein the set of features is defined by an image compression algorithm;
generating, by a machine learning context modeler, a residual cluster using the first subset of features and the plurality of residual values, wherein the generated residual cluster clusters one of more residual values of the plurality of residual values that have similar properties; and
entropy coding the residual clusters.

### Claim 2 (depends on 1)

The method of claim 1, wherein the plurality of blocks includes one or more blocks that are noncontiguous.

### Claim 3 (depends on 1)

The method of claim 1, wherein the pixel predictor determines a predicted pixel value by computing an average value of adjacent pixels by combining values of adjacent pixels.

### Claim 4 (depends on 1)

The method of claim 1, wherein the plurality of blocks includes one or more blocks that have different sizes.

### Claim 5 (depends on 1)

The method of claim 1, wherein generating, by the machine learning context modeler, the residual cluster using the first subset of features and the plurality of residual values, wherein the generated residual cluster clusters one of more residual values of the plurality of residual values that have similar properties:
identifying a set of properties using a lower resolution representation of the image; and
selecting from the set of properties, a third subset of features for input to the machine learning context modeler, the third subset of features representing a best compression result.

### Claim 6 (depends on 5)

The method of claim 5, wherein determining the plurality of residual values using a pixel predictor for each block comprises:
assigning a pixel predictor to a block in each color plane;
determining a compression performance of each pixel predictor for each block; and
identifying a subset of blocks for reassignment to a different pixel predictor using a threshold compression performance and the compression performance.

### Claim 7 (depends on 6)

The method of claim 6, wherein determining the compression performance comprises determining the compression performance on a representative version of the input image using a third subset of different sets of the features.

### Claim 8

A system, comprising:
a memory component; and
a processing device coupled to the memory component, the processing device to perform operations comprising:
dividing an input image into a plurality of blocks, each block of the plurality of blocks being a portion of the input image;
determining a plurality of residual values using a pixel predictor for each block;
performing a classification of each feature of a set of features using a machine learning model feature selector trained to receive the input image and classify each feature of the set of features as belonging to a first subset of features or a second subset of features, wherein the set of features is defined by an image compression algorithm;
generating, by a machine learning context modeler, a residual cluster using the first subset of features and the plurality of residual values, wherein the generated residual cluster clusters one of more residual values of the plurality of residual values that have similar properties; and
entropy coding the residual clusters.

### Claim 9 (depends on 8)

The system of claim 8, wherein the plurality of blocks includes one or more blocks that are noncontiguous.

### Claim 10 (depends on 8)

The system of claim 8, wherein the pixel predictor determines a predicted pixel value by computing an average value of adjacent pixels by combining values of adjacent pixels.

### Claim 11 (depends on 8)

The system of claim 8, wherein the plurality of blocks includes one or more blocks that have different sizes.

### Claim 12 (depends on 8)

The system of claim 8, the operation for generating, by the machine learning context modeler, the residual cluster using the first subset of features and the plurality of residual values, wherein the generated residual cluster clusters one of more residual values of the plurality of residual values that have similar properties comprises operations further causing the processing device to perform operations comprising:
identifying a set of properties using a lower resolution representation of the image; and
selecting from the set of properties, a third subset of features for input to the machine learning context modeler, the third subset of features representing a best compression result.

### Claim 13 (depends on 12)

The system of claim 12, the operation for determining the plurality of residual values using a pixel predictor for each block comprises operations further causing the processing device to perform operations comprising:
assigning a pixel predictor to a block in each color plane;
determining a compression performance of each pixel predictor for each block; and
identifying a subset of blocks for reassignment to a different pixel predictor using a threshold compression performance and the compression performance.

### Claim 14 (depends on 13)

The system of claim 13, the operation determining the compression performance comprises operations further causing the processing device to perform operations comprising determining the compression performance on a representative version of the input image using a third subset of features.

### Claim 15

A non-transitory computer-readable medium storing executable instructions, which when executed by a processing device, causes the processing device to perform operations comprising:
dividing an input image into a plurality of blocks, each block of the plurality of blocks being a portion of the input image;
determining a plurality of residual values using a pixel predictor for each block;
performing a classification of each feature of a set of features using a machine learning model feature selector trained to receive the input image and classify each feature of the set of features as belonging to a first subset of features or a second subset of features, wherein the set of features is defined by an image compression algorithm;
generating, by a machine learning context modeler, a residual cluster using the first subset of features and the plurality of residual values, wherein the generated residual cluster clusters one of more residual values of the plurality of residual values that have similar properties; and
entropy coding the residual clusters.

### Claim 16 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the plurality of blocks includes one or more blocks that are noncontiguous.

### Claim 17 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the pixel predictor determines a predicted pixel value by computing an average value of adjacent pixels by combining values of adjacent pixels.

### Claim 18 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the plurality of blocks includes one or more blocks that have different sizes.

### Claim 19 (depends on 15)

The non-transitory computer-readable medium of claim 15, the instructions for generating, by the machine learning context modeler, the residual cluster using the first subset of features and the plurality of residual values, wherein the generated residual cluster clusters one of more residual values of the plurality of residual values that have similar properties further cause the processing device to perform operations comprising:
identifying a set of properties using a lower resolution representation of the image; and
selecting from the set of properties, a third subset of features for input to the machine learning context modeler, the third subset of features representing a best compression result.

### Claim 20 (depends on 19)

The non-transitory computer-readable medium of claim 19, the instructions for determining the plurality of residual values using a pixel predictor for each block further cause the processing device to perform operations comprising:
assigning a pixel predictor to a block in each color plane;
determining a compression performance of each pixel predictor for each block; and
identifying a subset of blocks for reassignment to a different pixel predictor using a threshold compression performance and the compression performance.
