# US 12,113,989 B2 · Lossless decompression of digital images using prior image context

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

- Number: US 12,113,989 B2
- Document ID: US12113989B2
- Status: Granted
- Kind: B2
- Application number: 18/347,356
- Filed: 2023-07-05
- Published: 2023-10-26
- Granted: 2024-10-08
- Earliest claimed: 2016-09-15
- Assignees: Dropbox, Inc.
- Applicants: Dropbox, Inc.
- Inventors: Daniel Horn; Ken Elkabany; Keith Winstein
- Web page: https://patentgrep.com/patent/US12113989B2

## CPC

- H04N 19/176: the region being a block, e.g. a macroblock
- H04N 19/124: Quantisation
- H04N 19/13: Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
- H04N 19/14: Coding unit complexity, e.g. amount of activity or edge presence estimation (H04N19/146 takes precedence)
- H04N 19/18: the unit being a set of transform coefficients
- H04N 19/40: using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
- H04N 19/48: using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data (motion estimation in a transform domain H04N19/547; processing of decoded motion vectors H04N19/513)
- H04N 19/593: involving spatial prediction techniques
- H04N 19/625: using discrete cosine transform [DCT]
- H04N 19/91: Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
- H04N 19/132: Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
- H04N 19/42: characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation (H04N19/635 takes precedence)
- H04N 19/436: using parallelised computational arrangements
- H04N 19/46: Embedding additional information in the video signal during the compression process (H04N19/517, H04N19/68, H04N19/70 take precedence)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Techniques for lossless compression of a digital image using prior image context.

## Claims

### Claim 1

A method of recovering compressed digital images from further compressed image data, the method comprising:
identifying further compressed image data corresponding to an original compressed digital image;
determining, from the further compressed image data, a plurality of quantized AC coefficients of a target block of discrete cosine transform (DCT) coefficients corresponding to the original compressed digital image;
determining a DC coefficient for the target block based on the plurality of quantized AC coefficients and at least one neighboring block of DCT coefficients that borders the target block; and
generating the original compressed digital image based on the plurality of quantized AC coefficients and the DC coefficient.

### Claim 2 (depends on 1)

The method of claim 1, wherein determining the plurality of quantized AC coefficients of the target block is further based on one or more quantized AC coefficients of the at least one neighboring block of DCT coefficients.

### Claim 3 (depends on 1)

The method of claim 1, wherein determining the plurality of quantized AC coefficients of the target block comprises utilizing an adaptive probability model to decode a plurality of predicted AC coefficients.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
determining the at least one neighboring block of DCT coefficients that borders the target block by determining a plurality of quantized DCT coefficients for at least one of a left block of DCT coefficients positioned left of the target block or an above block of DCT coefficients positioned above the target block; and
utilizing the plurality of quantized DCT coefficients in determining the DC coefficient for the target block.

### Claim 5 (depends on 1)

The method of claim 1, wherein determining the DC coefficient for the target block is further based on calculating an overall brightness value to reduce one or more differences between one or more pairs of DCT coefficients at a shared border between the target block and the at least one neighboring block of DCT coefficients.

### Claim 6 (depends on 1)

The method of claim 1, wherein determining the DC coefficient for the target block is further based on calculating one or more differences between one or more edge gradients of DCT coefficients, the one or more edge gradients of DCT coefficients approaching a shared border of the target block and the at least one neighboring block of DCT coefficients.

### Claim 7 (depends on 1)

The method of claim 1, wherein determining the DC coefficient for the target block comprises:
identifying, from the further compressed image data, a DC error term comprising a difference between a predicted DC coefficient and the DC coefficient of the target block;
determining the predicted DC coefficient based on the plurality of quantized AC coefficients and the at least one neighboring block of DCT coefficients; and
determining the DC coefficient by calculating a difference between the predicted DC coefficient and the DC error term.

### Claim 8 (depends on 7)

The method of claim 7, further comprising:
determining a plurality of intermediate predicted DC coefficients for the target block by a plurality of different prediction methodologies;
determining a plurality of intermediate DC coefficients by calculating differences between the plurality of intermediate predicted DC coefficients and the DC error term; and
selecting the DC coefficient from the plurality of intermediate DC coefficients based on the differences.

### Claim 9 (depends on 8)

The method of claim 8, further comprising:
determining a lowest difference of the differences between the plurality of intermediate predicted DC coefficients and the DC error term; and
selecting as the DC coefficient an intermediate DC coefficient corresponding to the lowest difference.

### Claim 10

A non-transitory computer-readable medium storing executable instructions that, when executed by at least one processor, cause a computing device to:
identify compressed image data corresponding to an original digital image;
determine, from the compressed image data, a plurality of AC coefficients of a target block of discrete cosine transform (DCT) coefficients corresponding to the original digital image;
determine a DC coefficient for the target block based on the plurality of AC coefficients and at least one neighboring block of DCT coefficients that borders the target block; and
generate the original digital image based on the plurality of AC coefficients and the DC coefficient.

### Claim 11 (depends on 10)

The non-transitory computer-readable medium of claim 10, wherein generating the original digital image comprises lossless decompression of the compressed image data.

### Claim 12 (depends on 10)

The non-transitory computer-readable medium of claim 10, wherein:
the at least one neighboring block of DCT coefficients comprises an additional plurality of AC coefficients; and
the at least one neighboring block of DCT coefficients comprises at least one of a left block of DCT coefficients positioned left of the target block or an above block of DCT coefficients positioned above the target block.

### Claim 13 (depends on 12)

The non-transitory computer-readable medium of claim 12, further comprising executable instructions that, when executed by the at least one processor, cause the computing device to:
identify a first set of AC coefficients of the plurality of AC coefficients of the target block, the first set of AC coefficients abutting a shared border of the target block and the at least one neighboring block;
identify a second set of AC coefficients of the additional plurality of AC coefficients of the at least one neighboring block, the second set of AC coefficients abutting the shared border; and
determine an overall brightness value to reduce differences between the first and second sets of AC coefficients to determine the DC coefficient for the target block.

### Claim 14 (depends on 10)

The non-transitory computer-readable medium of claim 10, further comprising executable instructions that, when executed by the at least one processor, cause the computing device to:
determine one or more pairs of corresponding edge gradients between AC coefficients of the target block and the at least one neighboring block;
determine one or more gradient differences between the one or more pairs of corresponding edge gradients; and
determine the DC coefficient by calculating an average of the one or more gradient differences.

### Claim 15 (depends on 10)

The non-transitory computer-readable medium of claim 10, further comprising executable instructions that, when executed by the at least one processor, cause the computing device to:
determine a first intermediate DC coefficient prediction for the target block based on calculating an overall brightness value to reduce one or more differences between one or more pairs of AC coefficients at a shared border between the target block and the at least one neighboring block;
determine a second intermediate DC coefficient prediction for the target block based on calculating one or more differences between one or more edge gradients of AC coefficients, the one or more edge gradients of AC coefficients approaching a shared border of the target block and the at least one neighboring block; and
determine the DC coefficient based on comparing the first and second intermediate DC coefficient predictions to a DC error term, from the compressed image data, for the target block.

### Claim 16

A system comprising:
at least one processor:
at least one non-transitory computer readable medium storing instruction thereon that, when executed by the at least one processor, cause the system to:
identify further compressed image data corresponding to an original compressed digital image;
determine, from the further compressed image data, a plurality of frequency-space coefficients of a target block corresponding to the original compressed digital image;
determine an average-value coefficient for the target block based on the plurality of frequency-space coefficients of the target block and at least one neighboring block of frequency-space coefficients that border the target block; and
generate the original compressed digital image based on the plurality of frequency-space coefficients and the average-value coefficient.

### Claim 17 (depends on 16)

The system of claim 16, wherein the at least one neighboring block comprises at least one of a left block of frequency-space coefficients positioned left of the target block or an above block of frequency-space coefficients positioned above the target block.

### Claim 18 (depends on 16)

The system of claim 16, further comprising instruction that, when executed by the at least one processor, cause the system to determine the average-value coefficient for the target block by:
determining an overall brightness value to reduce a difference between frequency-space coefficients at a shared border of the target block and the at least one neighboring block; or
determining an average gradient difference between corresponding edge gradients of frequency-space coefficients of the target block and the at least one neighboring block.

### Claim 19 (depends on 16)

The system of claim 16, further comprising instruction that, when executed by the at least one processor, cause the system to:
determine, from the further compressed image data, an error term comprising a difference between a predicted average-value coefficient and the average-value coefficient of the target block;
determine the predicted average-value coefficient based on the plurality of frequency-space coefficients of the target block and the at least one neighboring block of frequency-space coefficients; and
determine the average-value coefficient by calculating a difference between the predicted average-value coefficient and the error term.

### Claim 20 (depends on 16)

The system of claim 16, wherein:
the original compressed digital image comprises multiple blocks of direct cosine transform (DCT) coefficients representing an original image;
the plurality of frequency-space coefficients of the target block comprises a plurality of AC coefficients; and
the average-value coefficient for the target block comprises a DC coefficient.
