IP Library Granted Patent US 8,934,543
Granted Patent B2
US 8,934,543 · App. 12/704,641 · Granted Jan 13, 2015

Adaptive quantization with balanced pixel-domain distortion distribution in image processing

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 8,934,543
App. No.
12/704,641
Granted
Jan 13, 2015
Kind
B2
Abstract

Methods and encoders and decoders for adaptively quantizing transform domain coefficients in image and/or video encoding/decoding. For an image having a number of blocks, each block having N coefficients, the quantization step size for each coefficient is selected dynamically, thus resulting in a quantizer that may apply different step sizes to different coefficients. The selected step sizes for each coefficient are used for those coefficients within all blocks in the image/frame. In one aspect, the step sizes are selected on the basis of balancing pixel domain distortion when the image/frame is decoded.

Claims (232)

1. A method for block-based encoding of an image having a plurality of blocks of pixels, using a video encoder, the method comprising:

processing the image using an initial quantization step size to obtain predictions and residuals for each of the blocks of pixels;

transforming the respective residuals to obtain initial transform domain coefficients for each of the blocks of pixels;

calculating a variance for each coefficient position across all the initial transform domain coefficients;

determining a quantization distortion for each coefficient position in a block, based on a predetermined pixel domain distortion, by selecting the quantization distortions based on the variances for the coefficient positions, subject to linear constraints on the quantization distortions, wherein the linear constraints are based upon the predetermined pixel domain distortion;

selecting a quantization step size for each coefficient position in the block, based on the quantization distortion for that coefficient position;

applying the block-based transform to each of the blocks of pixels to generate a set of transform domain coefficients for each block of pixels;

for each set of transform domain coefficients, quantizing each of the transform domain coefficients using the selected quantization step size for that transform domain coefficient's coefficient position to produce a quantized coefficient; and

encoding the quantized coefficients to generate a bitstream of encoded image data.

2. The method claimed in claim 1 , wherein the predetermined pixel domain distortion comprises the average pixel domain distortion per block, and wherein determining the quantization distortion for each coefficient position includes solving the convex minimization problem defined as

min

D

1

,

,

D

n

i

log

σ

1

2

D

i

subject

to

(

A

A

)

·

(

D

1

D

n

)

=

(

D

0

D

0

)

and subject to D i <σ i 2 ,

where D 0 is the predetermined average pixel domain distortion, D i is the quantization distortion of coefficient position i, i is an index of the 1, . . . , n coefficients in the set of transform domain coefficients, σ i 2 is the variance of the initial transform domain coefficients in the ith coefficient position, and A is a one-dimensional spectral transform matrix.

3. The method claimed in claim 1 , wherein selecting the quantization step size based on the quantization distortion includes empirically searching for the quantization step size using a gradient descent algorithm until the corresponding quantization distortion is realized within a threshold range.

4. The method claimed in claim 1 , wherein the steps of calculating the variance, selecting quantization step size, and quantizing are repeated until a threshold value is met.

5. The method claimed in claim 1 , wherein selecting is performed once for the image, and wherein the selected quantization step sizes for the respective coefficient positions are used to quantize corresponding transform domain coefficients in those respective coefficient positions of each set of transform domain coefficients obtained from transforming the blocks of pixels from the image.

6. The method claimed in claim 1 , wherein the pixel domain distortion is preset and stored in memory.

7. The method claimed in claim 1 , wherein encoding includes encoding the selected quantization step sizes for the coefficient positions.

8. The method claimed in claim 1 , wherein the image comprises a frame in a video.

9. The method claimed in claim 1 , wherein the predetermined pixel domain distortion is a vector or matrix specifying desired pixel domain distortions for respective pixel positions in the block.

10. The method claimed in claim 9 , wherein a vector of the quantization distortions for respective coefficient positions is related to the vector or matrix of desired pixel domain distortions for respective pixel positions, based upon an inverse transform matrix.

11. The method claimed in claim 1 , wherein the predetermined pixel domain distortion comprises the average pixel domain distortion per block, and wherein determining the quantization distortion for each coefficient position includes solving the convex minimization problem defined as

min

D

1

,

,

D

n

i

log

σ

i

2

D

i

subject

to

E

(

z

i

-

z

^

i

)

2

=

D

0

,

where D 0 is the predetermined average pixel domain distortion, D i is the quantization distortion of each coefficient position i, i is an index of the 1, . . . , n coefficient in the set of transform domain coefficients, and σ i 2 is the variance of the initial transform domain coefficients in the ith coefficient position.

12. An encoder for encoding an image having a plurality of blocks of pixels, the encoder comprising:

a processor;

a memory storing the blocks of pixels; and

an encoding application stored in memory and containing instructions for configuring the processor to encode the image by

processing the image using an initial quantization step size to obtain predictions and residuals for each of the blocks of pixels,

transforming the respective residuals to obtain initial transform domain coefficients for each of the blocks of pixels,

calculating a variance for each coefficient position across all initial transform domain coefficients,

determining a quantization distortion for each coefficient position in a block, based on a predetermined pixel domain distortion, by selecting the quantization distortions based on the variances for the coefficient positions, subject to linear constraints on the quantization distortions, wherein the linear constraints are based upon the predetermined pixel domain distortion;

selecting a quantization step size for each coefficient position in the block, based on the quantization distortion determined for that coefficient position,

applying the block-based transform to each of the blocks of pixels to generate a set of transform domain coefficients for each block of pixels,

for each set of transform domain coefficients, quantizing each of the transform domain coefficients using the selected quantization step size for that transform domain coefficient's coefficient position to produce a quantized coefficient, and encoding the quantized coefficients to generate a bitstream of encoded image data.

13. The encoder claimed in claim 12 , wherein the predetermined pixel domain distortion comprises the average pixel domain distortion per block, and wherein the encoding application contains instructions for configuring the processor to determine the quantization distortion for each coefficient position by solving the convex minimization problem defined as

min

D

1

,

,

D

n

i

log

σ

1

2

D

i

subject

to

(

A

A

)

·

(

D

1

D

n

)

=

(

D

0

D

0

)

and subject to D i <σ i 2 ,

where D 0 is the predetermined average pixel domain distortion, D i is the quantization distortion of each coefficient position i, i is an index of the 1, . . . , n coefficient in the set of transform domain coefficients, σ i 2 is the variance of the initial transform domain coefficients in the ith coefficient position, and A is a one-dimensional spectral transform matrix.

14. The encoder claimed in claim 12 , wherein the encoding application contains instructions for configuring the processor to empirically search for the quantization step size using a gradient descent algorithm until the corresponding quantization distortion is realized within a threshold range.

15. The encoder claimed in claim 12 , wherein the encoding application contains instructions for configuring the processor to recalculate a variance of each coefficient position, reselect quantization step sizes for each coefficient position, and re-quantize the transform domain coefficients using the reselected quantization step sizes, until a threshold value is met.

16. The encoder claimed in claim 12 , wherein the encoding application contains instructions for configuring the processor to select quantization steps sizes for respective coefficient positions once for the image, and to use the selected quantization step sizes to quantize corresponding transform domain coefficients in those respective coefficient positions of each set of transform domain coefficients obtained from transforming the blocks of pixels from the image.

17. The encoder claimed in claim 12 , wherein the pixel domain distortion is preset and stored in the memory.

18. The encoder claimed in claim 12 , wherein the encoding application further contains instructions to configure the processor to encode the selected quantization step sizes for the coefficient positions within the bitstream.

19. The encoder claimed in claim 12 , wherein the image comprises a frame in a video.

20. The encoder claimed in claim 12 , wherein the predetermined pixel domain distortion is a vector or matrix specifying desired pixel domain distortions for respective pixel positions in the block.

21. The encoder claimed in claim 20 , wherein a vector of the quantization distortions for respective coefficient positions is related to the vector or matrix of desired pixel domain distortions for respective pixel positions, based upon an inverse transform matrix.

22. The encoder claimed in claim 12 , wherein the predetermined pixel domain distortion comprises the average pixel domain distortion per block, and wherein determining the quantization distortion for each coefficient position includes solving the convex minimization problem defined as

min

D

1

,

,

D

n

i

log

σ

i

2

D

i

subject

to

E

(

z

i

-

z

^

i

)

2

=

D

0

,

where D 0 is the predetermined average pixel domain distortion, D i is the quantization distortion of each coefficient position i, i is an index of the 1, . . . , n coefficient in the set of transform domain coefficients, and σ i 2 is the variance of the initial transform domain coefficients in the ith coefficient position.

Assignments (2)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064270/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →