# US 7,613,347 B1 · Low-complexity image coding

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

- Number: US 7,613,347 B1
- Document ID: US7613347B1
- Status: Granted
- Kind: B1
- Application number: 11/303,076
- Filed: 2005-12-13
- Granted: 2009-11-03
- Earliest claimed: 2005-12-13
- Assignees: Adobe Systems Incorporated
- Inventors: Anubha Rastogi; Balaji Krishnamurthy
- Web page: https://patentgrep.com/patent/US7613347B1

## CPC

- H04N 19/63: using sub-band based transform, e.g. wavelets
- H04N 19/13: Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A system that compresses a digital image. During operation, the system performs a transform operation on a digital image to produce transform domain coefficients, and then quantizes the transform domain coefficients to produce quantized coefficients. The system then separates the low entropy portions of the quantized coefficients from the high entropy portions of the quantized coefficients, wherein the low entropy portions of the quantized coefficients comprise the most-significant bitplanes of the quantized coefficients. Next, the system compresses the low entropy portions of the quantized coefficients while not substantially compressing the high entropy portions of the quantized coefficients.

## Claims

### Claim 1

A method, comprising:
using a computer to perform:
receiving a digital image;
performing a wavelet transform operation on the digital image to produce transform-domain coefficients;
quantizing the transform-domain coefficients to produce quantized coefficients; and
compressing one or more, but less than all, bitplanes of the quantized coefficients using a non-arithmetic encoding, wherein the one or more bitplanes that are compressed have a more significant bitplane position and less entropy than one or more bitplanes of the quantized coefficients that are not compressed.

### Claim 2 (depends on 1)

The method of claim 1, wherein said compressing comprises:
partitioning the quantized coefficients into two or more smaller blocks of coefficients;
for each smaller block of coefficients, determining whether the respective smaller block comprises a maximum number of bitplanes greater than zero;
in response to determining that the maximum number of bitplanes is greater than zero for a respective smaller block of coefficients:
for a given low-entropy bitplane:
partitioning the respective smaller block of coefficients into two or more sub-blocks of coefficients;
generating a bit pattern for the given low-entropy bitplane within a given sub-block by using a one to represent each column of the given low-entropy bitplane which contains ones, and using a zero to represent each column of the given low-entropy bitplane which does not contain ones;
encoding the bit pattern for the given low-entropy bitplane within the given sub-block, and
for each column of the given low-entropy bitplane within the given sub-block which contains ones, appending the column of bits to the encoded bit pattern for the given sub-block; and
for a given high-entropy bitplane:
appending a portion of the smaller block of coefficients corresponding to the given high entropy bitplane to a bitstream for the digital image without any compression.

### Claim 3 (depends on 2)

The method of claim 2, wherein if the maximum number of bitplanes for the smaller block of coefficients is zero, the method further comprises encoding the smaller block of coefficients with a zero.

### Claim 4 (depends on 2)

The method of claim 2, wherein if the sub-block of coefficients is a corner sub-block, which is not a standard sub-block size, the method further comprises generating a bit pattern for the given low-entropy bitplane within the corner sub-block by:
for each column of the given low-entropy bitplane within the corner sub-block which contains a one, using a one to represent the column, and appending the column of bits to the bit pattern for the given low-entropy bitplane within the corner sub-block; and
for each column of the given low-entropy bitplane within the corner sub-block which contains a zero, using a zero to represent the column.

### Claim 5 (depends on 4)

The method of claim 4, wherein the standard block size is n coefficients by n coefficients.

### Claim 6 (depends on 1)

The method of claim 1, wherein encoding the bit pattern for the given low-entropy bitplane involves using a Huffman coding technique.

### Claim 7 (depends on 6)

The method of claim 6, wherein the Huffman table used by the Huffman coding technique is a static table, or a custom-generated table saved with each image.

### Claim 8 (depends on 1)

The method of claim 1, wherein the method is used to compress a sequence of images or to compress motion-compensated difference frames.

### Claim 9 (depends on 1)

The method of claim 1, wherein the quantized coefficients include sign information and wherein the sign information of the quantized coefficients is not compressed.

### Claim 10 (depends on 1)

The method of claim 1, wherein the quantized coefficients include sign information, and wherein the sign information of the quantized coefficients is coded by signaling the sign bit only for non-zero coefficients.

### Claim 11 (depends on 1)

The method of claim 1, wherein the high-entropy portions of the quantized coefficients are not compressed, and are directly written to an output bitstream.

### Claim 12

A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for compressing a digital image, the method comprising:
receiving the digital image;
performing a wavelet transform operation on the digital image to produce transform-domain coefficients;
quantizing the transform-domain coefficients to produce quantized coefficients; and
compressing one or more, but less than all, bitplanes of the quantized coefficients using a non-arithmetic encoding, wherein the one or more bitplanes that are compressed have a more significant bitplane position and less entropy than one or more bitplanes of the quantized coefficients that are not compressed.

### Claim 13 (depends on 12)

The computer-readable storage medium of claim 12, wherein said compressing comprises:
partitioning the quantized coefficients into two or more smaller blocks of coefficients;
for each smaller block of coefficients determining whether the respective smaller block comprises a maximum number of bitplanes greater than zero;
in response to determining that the maximum number of bitplanes is greater than zero for a respective smaller block of coefficients:
for a given low-entropy bitplane:
partitioning the respective smaller block of coefficients into two or more sub-blocks of coefficients;
generating a bit pattern for the given low-entropy bitplane within a given sub-block by using a one to represent each column of the given low-entropy bitplane which contains ones, and using a zero to represent each column of the given low-entropy bitplane which does not contain ones;
encoding the bit pattern for the given low-entropy bitplane within the given sub-block, and
for each column of the given low-entropy bitplane within the given sub-block which contains ones, appending the column of bits to the encoded bit pattern for the given sub-block; and
for a given high-entropy bitplane:
appending a portion of the smaller block of coefficients corresponding to the given high entropy bitplane to a bitstream for the digital image without any compression.

### Claim 14 (depends on 13)

The computer-readable storage medium of claim 13, wherein if the maximum number of bitplanes for the smaller block of coefficients is zero, the method further comprises encoding the smaller block of coefficients with a zero.

### Claim 15 (depends on 13)

The computer-readable storage medium of claim 13, wherein if the sub-block of coefficients is a corner sub-block, which is not a standard sub-block size, the method further comprises generating a bit pattern for the given low-entropy bitplane within the corner sub-block by:
for each column of the given low-entropy bitplane within the corner sub-block which contains a one, using a one to represent the column, and appending the column of bits to the bit pattern for the given low-entropy bitplane within the corner sub-block; and
for each column of the given low-entropy bitplane within the corner sub-block which contains a zero, using a zero to represent the column.

### Claim 16 (depends on 15)

The computer-readable storage medium of claim 15, wherein the standard block size is n coefficients by n coefficients.

### Claim 17 (depends on 12)

The computer-readable storage medium of claim 12, wherein encoding the bit pattern for the given low-entropy bitplane involves using a Huffman coding technique.

### Claim 18 (depends on 17)

The computer-readable storage medium of claim 17, wherein the Huffman table used by the Huffman coding technique is a static table, or a custom-generated table saved with each image.

### Claim 19 (depends on 12)

The computer-readable storage medium of claim 12, wherein the method is used to compress a sequence of images or to compress motion-compensated difference frames.

### Claim 20 (depends on 12)

The computer-readable storage medium of claim 12, wherein the quantized coefficients include sign information, and wherein the sign information of the quantized coefficients is not compressed.

### Claim 21 (depends on 12)

The computer-readable storage medium of claim 12, wherein the quantized coefficients include sign information, and wherein the sign information of the quantized coefficients is coded by signaling the sign bit only for non-zero coefficients.

### Claim 22 (depends on 12)

The computer-readable storage medium of claim 12, wherein the high-entropy portions of the quantized coefficients are not compressed, and are directly written to an output bitstream.

### Claim 23

An apparatus that compresses a digital image, comprising:
a receiving mechanism configured to receive the digital image;
a transform mechanism configured to perform a wavelet transform operation on the digital image to produce transform-domain coefficients;
a quantizing mechanism configured to quantize the transform-domain coefficients to produce quantized coefficients; and
a compression mechanism configured to compress one or more, but less than all, bitplanes of the quantized coefficients using a non-arithmetic encoding, wherein the one or more bitplanes that are compressed have a more significant bitplane position and less entropy than one or more bitplanes of the quantized coefficients that are not compressed.

### Claim 24

A method for decompressing a compressed digital image, comprising:
using a computer to perform:
receiving the compressed digital image which contains compressed quantized transform-domain coefficients;
decompressing one or more compressed bitplanes of the quantized coefficients using a non-arithmetic decoding, wherein not all bitplanes are compressed, and wherein the one or more bitplanes that are compressed have a more significant bitplane position and less entropy than one or more bitplanes of the quantized coefficients that are not compressed;
de-quantizing the decompressed quantized transform-domain coefficients to produce transform-domain coefficients; and
performing an inverse wavelet transform operation on the transform-domain coefficients to reproduce the decompressed digital image.

### Claim 25 (depends on 24)

The method of claim 24, wherein for a given low-entropy bitplane within a given sub-block, decompressing the low-entropy portions of the compressed quantized transform-domain coefficients involves:
decoding the Huffman code for the given bitplane within the given sub-block to produce a bit pattern which indicates whether a given column within the given bitplane contains ones, wherein a one in the bit pattern indicates that the corresponding column for the bit contains ones, and wherein a zero in the bit pattern indicates that the corresponding column for the bit contains all zeros; and
generating the given uncompressed bitplane within the given sub-block by inserting the corresponding bit pattern for each column into the given uncompressed bitplane within the given sub-block, wherein the corresponding bit pattern for each column follows the Huffman code for the given bitplane within the given sub-block.

### Claim 26 (depends on 25)

The method of claim 25, wherein if the Huffman code for the sub-block is zero, the sub-block contains all zeros.
