IP Library Granted Patent US 9,781,449
Granted Patent B2
US 9,781,449 · App. 13/448,224 · Granted Oct 3, 2017

Rate distortion optimization in image and video encoding

Inventors: Mikhail Korman (St. Petersburg, RU); Andrey Sinitskiy (St. Petersburg, RU)
Assignee: Synopsys, Inc.
H04N19/85H04N19/124H04N19/126H04N19/157H04N19/19H04N19/147H04N19/159
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,781,449
App. No.
13/448,224
Granted
Oct 3, 2017
Kind
B2
Abstract

An offline quantization module is used to optimize a rate-distortion task. The offline quantization module calculates a quantization kernel for a range of computable block parameters and a range of rate-distortion slope values representing the rate and complexity of a coded video. A quantization kernel is utilized by an encoder application for content-adaptive quantization of transformed coefficients. The quantization kernel includes a block data model, a quality metric model, and an entropy coding model. The quantization kernel is suitable for existing and future coding standards. A rate-distortion slope selection process is performed on a per-frame basis for improved rate-distortion performance. The slope is selected by referring to the block model parameter value within the quantization kernel.

Claims (289)

1. A method of processing a video frame, comprising:

determining quantization parameters corresponding to Lagrangian multiplier values offline by computing a Lagrangian cost function including a Lagrange multiplier;

storing the quantization parameters corresponding to the Lagrangian multiplier values offline; and

encoding the uncompressed video frame by using the stored quantization parameters, the encoding comprising:

receiving an uncompressed video frame after storing the quantization parameters;

determining block model parameters of the uncompressed video frame responsive to receiving the uncompressed video frame, the block model parameters representing properties to be calculated or approximated from one or more macroblocks in the uncompressed video frame;

selecting a Lagrange multiplier value corresponding to the uncompressed video frame based on the determined block model parameters;

generating a plurality of transform coefficients of the uncompressed video frame; and

selecting quantization parameters for each of the plurality of blocks based on the selected Lagrange multiplier value.

2. The method of claim 1 , wherein the quantization parameters include a set of quantization thresholds and a set of quantization invariants.

3. The method of claim 1 , wherein the quantization parameters are selected in real-time during encoding of the video frame.

4. The method of claim 3 , wherein a rate-distortion slope is selected for the video frame in real-time based on the selected Lagrange multiplier value.

5. The method of claim 1 , wherein determining the quantization parameters comprises selecting a grid on a direct product of application domains for a set of de-quantization recoverable values, Lagrange multiplier and an estimate for a parameter of a parametric model.

6. The method of claim 5 , wherein determining the quantization parameters further comprises minimizing the Lagrangian cost function for each point of the grid, and outputs a block distortion and a block rate corresponding to the set of quantization thresholds at each point of the grid.

7. The method of claim 1 , wherein the Lagrangian cost function is represented as:

j

=

0

NM

-

1

c

C

j

P

c

j

l

=

0

t

l

j

,

c

t

l

+

1

j

,

c

D

(

x

j

,

Q

I

j

,

c

-

1

(

Q

T

j

,

c

(

x

j

)

)

)

+

Λ

v

l

,

c

d

μ

j

,

where N represents a number of columns in a macroblock, M represents a number of rows in the macroblock, C j represents a set of possible coding contexts for j-th coefficient, P c j represents probability of coding context C for the j-th coefficient for a selected block model, x j represents a coefficient in the macroblock, Q represents a scalar quantization process, Q −1 represents an inverse quantization process, T j,c represents a set of thresholds associated with ascending values t l j,c , I j,c represents applied invariants associated with ascending values i l j,c , D represents a distortion metric, |v l,c | is a codeword length for a given level l coded under context C, and Λ represents the Lagrange multiplier.

8. An encoder for encoding a video frame, the encoder comprising a memory and a processor coupled to the memory, the processor configured to:

determine quantization parameters corresponding to Lagrangian multiplier values offline by computing a Lagrangian cost function including a Lagrange multiplier;

storing the quantization parameters corresponding to the Lagrangian multiplier values offline; and

encode the uncompressed video frame based on the stored quantization parameters by at least:

receiving an uncompressed video frame after storing the quantization parameters;

determining block model parameters of the uncompressed video frame responsive to receiving the uncompressed video frame, the block model parameters representing properties to be calculated or approximated from one or more macroblocks in the uncompressed video frame;

selecting a Lagrange multiplier value corresponding to the uncompressed video frame based on the determined block model parameters;

generating a plurality of transform coefficients of the uncompressed video frame; and

selecting quantization parameters for each of the plurality of blocks based on the selected Lagrange multiplier value.

9. The system of claim 8 , wherein the quantization parameters include a set of quantization thresholds and a set of quantization invariants.

10. The system of claim 8 , wherein the quantization parameters are selected in real-time during encoding of the video frame.

11. The system of claim 10 , wherein a rate-distortion slope is selected for the video frame in real-time based on the selected Lagrange multiplier value.

12. The encoder of claim 8 , wherein the processor is further configured to determine the quantization parameters by selecting a grid on a direct product of application domains for a set of de-quantization recoverable values, Lagrange multiplier and an estimate for a parameter of a parametric model.

13. The encoder of claim 12 , wherein the processor is further configured to determine the quantization parameters further by minimizing the Lagrangian cost function for each point of the grid, and outputs a block distortion and a block rate corresponding to the set of quantization thresholds at each point of the grid.

14. The encoder of claim 8 , wherein the Lagrangian cost function is represented as:

j

=

0

NM

-

1

c

C

j

P

c

j

l

=

0

t

l

j

,

c

t

l

+

1

j

,

c

D

(

x

j

,

Q

I

j

,

c

-

1

(

Q

T

j

,

c

(

x

j

)

)

)

+

Λ

v

l

,

c

d

μ

j

,

where N represents a number of columns in a macroblock, M represents a number of rows in the macroblock, C j represents a set of possible coding contexts for j-th coefficient, P c j represents probability of coding context C for the j-th coefficient for a selected block model, x j represents a coefficient in the macroblock, Q represents a scalar quantization process, Q −1 represents an inverse quantization process, T j,c represents a set of thresholds associated with ascending values t l j,c , I j,c represents applied invariants associated with ascending values i l j,c , D represents a distortion metric, |v l,c | is a codeword length for a given level l coded under context C, and Λ represents the Lagrange multiplier.

15. A non-transitory computer-readable storage medium storing instruction executable by a processor, the instructions when executed cause the processor to:

determine quantization parameters corresponding to Lagrangian multiplier values offline by computing a Lagrangian cost function including a Lagrange multiplier;

store the quantization parameters corresponding to the Lagrangian multiplier values offline; and

encode the uncompressed video frame based on the stored quantization parameters by at least:

receiving an uncompressed video frame after storing the quantization parameters;

determining block model parameters of the uncompressed video frame responsive to receiving the uncompressed video frame, the block model parameters representing properties to be calculated or approximated from one or more macroblocks in the uncompressed video frame;

selecting a Lagrange multiplier value corresponding to the uncompressed video frame based on the determined block model parameters;

generating a plurality of transform coefficients of the uncompressed video frame; and

selecting quantization parameters for each of the plurality of blocks based on the selected Lagrange multiplier value.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the quantization parameters include a set of quantization thresholds and a set of quantization invariants.

17. The non-transitory computer-readable storage medium of claim 15 , wherein the quantization parameters are selected in real-time during encoding of the video frame.

18. The non-transitory computer-readable storage medium of claim 17 , wherein a rate-distortion slope is selected for the video frame in real-time based on the selected Lagrange multiplier value.

19. The non-transitory computer-readable storage medium of claim 15 , wherein the Lagrangian cost function is represented as:

j

=

0

NM

-

1

c

C

j

P

c

j

l

=

0

t

l

j

,

c

t

l

+

1

j

,

c

D

(

x

j

,

Q

I

j

,

c

-

1

(

Q

T

j

,

c

(

x

j

)

)

)

+

Λ

v

l

,

c

d

μ

j

,

where N represents a number of columns in a macroblock, M represents a number of rows in the macroblock, C j represents a set of possible coding contexts for j-th coefficient, P c j represents probability of coding context C for the j-th coefficient for a selected block model, x j represents a coefficient in the macroblock, Q represents a scalar quantization process, Q −1 represents an inverse quantization process, T j,c represents a set of thresholds associated with ascending values t l j,c , I j,c represents applied invariants associated with ascending values i l j,c , D represents a distortion metric, |v l,c | is a codeword length for a given level l coded under context C, and Λ represents the Lagrange multiplier.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2026
From: SYNOPSYS, INC.
To: MIPS HOLDING, INC.
Reel/Frame 075801/0204 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 17, 2012
From: KORMAN, MIKHAIL; SINITSKIY, ANDREY
To: SYNOPSYS, INC.
Reel/Frame 028058/0097 →
Priority Claims (1)
RU 2011140631 · Oct 6, 2011 · national
Continuity (1)
Related Publication 20130089137A1 · Apr 11, 2013