IP Library Granted Patent US 7,492,820
Granted Patent B2
US 7,492,820 · App. 10/811,960 · Granted Feb 17, 2009

Rate control for video coder employing adaptive linear regression bits modeling

Assignee: Apple Inc.
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 7,492,820
App. No.
10/811,960
Granted
Feb 17, 2009
Kind
B2
Abstract

A rate control system is disclosed for video coding applications. The rate controller assigns a quantization parameter for video data in a picture in response to complexity indicators indicative of spatial complexity, motion complexity and/or bits per pel of the picture. A virtual buffer based quantizer parameter is proposed based on a virtual buffer fullness analysis and a target rate estimate, which is derived from the complexity indicators. A second quantizer parameter is proposed from a linear regression analysis of quantizer parameters used to code previously coded pictures of similar type (e.g., I pictures, P pictures or B pictures). A coding policy decision unit defines a final quantizer parameter from a comparison of the two proposed quantizer parameters.

Claims (456)

1. A quantizer estimator, comprising:

a linear regression unit to generate a quantizer estimate from input values of prior quantizer selections and coding rates,

first memory to store predetermined values of quantizer selections and coding rates, the table indexed by a complexity indicator signal,

second memory to store quantizer selections and coding rates of previously coded P pictures, and

a selector selectively coupling an input to the linear regression unit to the first memory when a picture type signal indicates an I picture and to the second memory when the picture type signal indicates a P picture.

2. The quantizer estimator of claim 1 , further comprising:

a second selector, coupled to the second memory, to select a maximum value of two previous quantizer selections,

wherein the first selector selectively enables the second selector when the picture type signal indicates a B picture.

3. The quantizer estimator of claim 2 , further comprising a quantizer rounder to round values output by the linear regression unit to a nearest integer.

4. The quantizer estimator of claim 1 , wherein the second memory has depth for storage of only three sets of quantizer selections and coding rates.

5. The quantizer estimator of claim 1 , further comprising a quantizer rounder to round values output by the linear regression unit to a nearest integer.

6. The quantizer estimator of claim 1 , further comprising

a median calculator coupled to the storage unit, to calculate a median of a last three quantizer selections,

a quantizer rounder, coupled to an output of the linear regression unit,

an estimate validity unit to determine, when the picture type signal indicates a P picture, whether the output of the linear regression unit is a valid value, and

a second selector, having inputs coupled to outputs of the median calculator and the quantizer rounder, an output coupled to an output of the quantizer estimator and controlled by the estimate validity unit.

7. The quantizer estimator of claim 6 , wherein, when the output of the linear regression unit is a valid value, the estimate validity unit causes the second selector to select the output from the quantizer rounder.

8. The quantizer estimator of claim 6 , wherein, when the output of the linear regression unit is a valid value, the estimate validity unit causes the second selector to select the output from the median calculator.

9. The quantizer estimator of claim 6 , wherein a quantizer estimate Q from the linear regression unit is valid if 15<Q≦45.

10. The quantizer estimator of claim 6 , wherein a quantizer estimate Q from the linear regression unit is valid if |Q−Q prev |<10, where Q prev is a quantizer selection of a most recently coded P picture.

11. A method of estimating a quantizer for pictures of a video sequence, comprising:

for an I picture, estimating a quantizer according to a linear regression analysis upon assumed values of quantizers and coding rates, the assumed values derived from a complexity indicator of the I picture,

for a P picture, estimating the quantizer according to the linear regression analysis upon values of quantizers and coding rates of prior P pictures, and

for a B picture, selecting the quantizer estimate from a maximum of quantizer selections of two most-recent P pictures.

12. The method of claim 11 , further comprising rounding the quantizer estimate to a nearest integer.

13. The method of claim 11 , further comprising retrieving the assumed quantizer and coding rate values from a table based on the complexity indicator of the I picture.

14. The method of claim 13 , wherein the complexity indicator represents spatial complexity of the I picture.

15. The quantizer estimation method of claim 11 , wherein the quantizer estimate Q I is given by:

Q

l

=

b

T

I

-

a

,

where

a and b are the coefficients.

16. The quantizer estimation method of claim 11 , wherein the target coding rate T i is determined by:

T

i

=

max

{

R

(

1

+

N

P

X

P

X

I

K

P

+

N

B

X

B

X

I

K

B

)

,

bitrate

8

*

picturerate

}

,

where

R represents a number of bits allocated to code a group of pictures in which the I picture resides,

N P and N B respectively represent the number of P and B pictures that appear in a group of pictures,

X I and X P respectively represent complexity estimates for the I and P pictures in the group of pictures,

K P and K B determine relative bit allocations between P and B pictures in the group of pictures,

bitrate represents the number of bits allocated for coding of the group of pictures, and

picturerate represents the number of pictures in the group of pictures.

17. The method of claim 11 , wherein for a P picture, the linear regression analysis derives a quantizer estimate from a target bitrate assigned to the P picture.

18. The method of claim 17 , wherein the quantizer estimate for a P picture is given as:

Q

P

=

b

T

p

-

a

,

where

Q p is the quantizer estimate of the P picture, T p is a target bitrate calculated for the P picture and b and a are coefficients derived from a set of previous quantizer selections and previous coding rates (respectively Q and S) according to:

a

p

+

S

-

bQ

-

1

b

p

=

(

S

)

(

Q

-

1

)

-

n

(

S

_

)

(

Q

-

1

_

)

(

Q

-

1

)

2

-

n

(

Q

-

1

_

)

2

.

19. The method of claim 17 , wherein the target bitrate T p is given as:

T

P

=

max

{

R

(

N

P

+

N

B

K

P

X

B

K

B

X

P

)

,

bitrate

8

*

picturerate

}

,

where

R represents a number of bits allocated to code a group of pictures in which the P picture resides,

N P and N B respectively represent the number of P and B pictures that appear in a group of pictures,

X P and X B respectively represent complexity estimates for the P and B pictures in the group of pictures,

K P and K B determine relative bit allocations between P and B pictures in the group of pictures,

bitrate represents the number of bits allocated for coding of the group of pictures, and

picturerate represents the number of pictures in the group of pictures.

20. The method of claim 11 , further comprising:

testing a quantizer estimate for the P picture to determine if it is valid, and

if the P picture's quantizer estimate is not valid, calculating a substitute quantizer estimate as a median of a predetermined number of quantizers used for previous P pictures.

21. The method of claim 20 , wherein the P picture's quantizer estimate is valid if it falls within a predetermined window of quantizer values and if a difference between the quantizer estimate and a quantizer of a most recently processed P picture is less than a predetermined value.

22. A quantizer estimation method, comprising, for a new P picture:

performing a linear regression analysis on quantizer values and coding rates for a predetermined number of previously coded P pictures,

generating a first quantizer estimate for the new P picture based on the linear regression analysis and with reference to a target coding rate assigned to the new P picture,

generating a second quantizer estimate for the new P picture as a median of a second predetermined number of the previously coded P pictures,

based on a difference between the first quantizer estimate and a quantizer of a most recently coded P picture, selecting one of the first or the second quantizer estimates as a final quantizer estimate for the P picture.

23. The quantizer estimation method of claim 22 , wherein the P picture's quantizer estimate is valid if it falls within a predetermined window of quantizer values and if a difference between the quantizer estimate and a quantizer of a most recently processed P picture is less than a predetermined value.

24. The quantizer estimation method of claim 22 , wherein the quantizer estimate is given as:

Q

P

=

b

T

p

-

a

,

where

Q p is the quantizer estimate of the P picture, T p is a target bitrate calculated for the P picture and b and a are coefficients derived from a set of previous quantizer selections and previous coding rates (respectively Q and S) according to:

a

p

+

S

-

bQ

-

1

b

p

=

(

S

)

(

Q

-

1

)

-

n

(

S

_

)

(

Q

-

1

_

)

(

Q

-

1

)

2

-

n

(

Q

-

1

_

)

2

.

25. The quantizer estimation method of claim 22 , wherein the target bitrate T p is given as:

T

P

=

max

{

R

(

N

P

+

N

B

K

P

X

B

K

B

X

P

)

,

bitrate

8

*

picturerate

}

,

where

R represents a number of bits allocated to code a group of pictures in which the P picture resides,

N P and N B respectively represent the number of P and B pictures that appear in a group of pictures,

X P and X B respectively represent complexity estimates for the P and B pictures in the group of pictures,

K P and K B determine relative bit allocations between P and B pictures in the group of pictures,

bitrate represents the number of bits allocated for coding of the group of pictures, and

picturerate represents the number of pictures in the group of pictures.

26. The method of claim 22 , further comprising rounding the quantizer estimate to a nearest integer.

27. A quantizer estimation method, comprising, for an I picture:

deriving coefficients for linear regression analysis by referring a complexity indicator of the I picture to a lookup table of coefficient values,

performing linear regression analysis based on the coefficients, and

generating a quantizer estimate for the I picture based on the linear regression analysis and with reference to a target coding rate assigned to the I picture.

28. The quantizer estimation method of claim 27 , wherein the lookup table stores values as shown in the following tables:

Linear regression coefficients a

Complexity indicator

Coefficient value

 0

−68134.59213

 1

−87003.98467

 2

−106202.60465

 3

−125401.23463

 4

−133506.23620

 5

−141558.73699

 6

−149611.24778

 7

−151588.19751

 8

−220858.39744

 9

−293963.81117

10

−254808.46319

11

−215653.11522

12

−207487.50918

13

−1993321.90315

14

−191155.48428

15

−182989.06541

16

−178235.75132

17

−169521.36854

and

Linear regression coefficients b

Complexity indicator

Coefficient value

 0

3313453.21342

 1

3993567.19336

 2

4565785.16255

 3

5138003.13174

 4

5715464.15501

 5

6104194.66665

 6

6492925.17829

 7

6678722.15535

 8

9084900.80067

 9

11517856.77655

10

10611605.70466

11

9705354.63278

12

9777071.15962

13

9848787.68646

14

9920504.21330

15

9992220.74014

16

10623397.89991

17

11435042.39299.

29. The quantizer estimation method of claim 27 , further comprising deriving the complexity indicator from image content of the I picture.

30. The quantizer estimation method of claim 27 , wherein the complexity indicator represents spatial complexity of the I picture.

31. The quantizer estimation method of claim 27 , wherein the quantizer estimate Q I is given by:

Q

I

=

b

T

I

-

a

,

where

a and b are the coefficients.

32. The quantizer estimation method of claim 27 , wherein the target coding rate T i is determined by:

T

i

=

max

{

R

(

1

+

N

P

X

P

X

I

K

P

+

N

B

X

B

X

I

K

B

)

,

bitrate

8

*

picturerate

}

,

where

R represents a number of bits allocated to code a group of pictures in which the I picture resides,

N P and N B respectively represent the number of P and B pictures that appear in a group of pictures,

X I and X P respectively represent complexity estimates for the I and P pictures in the group of pictures,

K P and K B determine relative bit allocations between P and B pictures in the group of pictures,

bitrate represents the number of bits allocated for coding of the group of pictures, and

picturerate represents the number of pictures in the group of pictures.

33. The method of claim 27 , further comprising rounding the quantizer estimate to a nearest integer.

Assignments (2)
CHANGE OF NAME Recorded Apr 23, 2007
From: APPLE COMPUTER, INC.
To: APPLE INC.
Reel/Frame 019219/0721 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2004
From: PURI, ATUL
To: APPLE COMPUTER, INC.
Reel/Frame 015161/0170 →
Continuity (2)
Provisional Application 6054190700 · Feb 6, 2004
Related Publication 20050180502A1 · Aug 18, 2005