IP Library Patent Application 12010667
Patent Application
App. No. 12/010,667

Systems methods for adjusting targeted bit allocation based on an occupancy level of a VBV buffer model

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 None
App. No.
12/010,667
Abstract

The invention is related to methods and apparatus that advantageously improve bit rate control in a video encoder, such as an MPEG video encoder. One embodiment of the invention advantageously varies the targeted bit allocation for a picture to be encoded based on an occupancy level of a buffer model, such as a video buffer verifier (VBV) buffer model.

Claims (202)

1 . A method implemented in computer executable form in a video encoding process for adjusting a targeted bit allocation T for a picture that is to be encoded and transmitted to a decoder, the method comprising:

computing at an encoder a targeted bit allocation T for encoding the picture and storing in an encoder buffer;

determining a threshold from at least one desired occupancy level of a buffer model characterizing a decoder buffer status of the decoder;

adaptively adjusting the targeted bit allocation T at the encoder at least partially in response to a comparison of an occupancy status of the buffer model with the threshold; and

providing the adjusted targeted bit allocation T to the video encoding process.

2 . The method as defined in claim 1 , wherein the targeted bit allocation T prior to adaptive adjustment is an original targeted bit allocation T and the threshold is a first threshold, further comprising:

comparing the original targeted bit allocation T to the first threshold; and

adaptively adjusting the original targeted bit allocation T when the original targeted bit allocation T exceeds the first threshold but not otherwise.

3 . The method as defined in claim 2 , wherein the first threshold corresponds to T mid , where T mid comprises:

T mid =V status −V mid ,

where V status is the occupancy status and V mid is the desired occupancy level.

4 . The method as defined in claim 1 , wherein the targeted bit allocation T prior to adaptive adjustment is an original targeted bit allocation T and the threshold is a second threshold, further comprising:

comparing the original targeted bit allocation T to the second threshold; and

adaptively adjusting the original targeted bit allocation T when the original targeted bit allocation T is below the second threshold but not otherwise.

5 . The method as defined in claim 1 , wherein the targeted bit allocation T prior to adaptive adjustment is an original targeted bit allocation T and the threshold includes a first threshold and a second threshold, further comprising:

comparing the original targeted bit allocation T to at least one of the first threshold and the second threshold;

adaptively adjusting the original targeted bit allocation T when the original targeted bit allocation T exceeds the first threshold or when the targeted bit allocation T is below the second threshold, but not otherwise.

6 . The method as defined in claim 1 , wherein computing the targeted bit allocation T for I-pictures, for P-pictures, and for B-pictures corresponds to computing T i , T p , and T p , respectively, where T i , T p , and T b further comprise:

T

i

=

max

{

(

R

(

1

+

N

p

X

p

X

t

K

p

+

N

b

X

b

X

t

K

b

)

)

,

(

bit_rate

8

·

picture_rate

)

}

;

T

p

=

max

{

(

R

(

N

p

+

N

b

K

p

X

b

K

b

X

p

)

)

,

(

bit_rate

8

·

picture_rate

)

}

;

and

T

b

=

max

{

R

(

N

b

+

N

p

K

b

X

p

K

p

X

b

)

,

(

bit_rate

8

·

picture_rate

)

}

,

where R is a remaining number of bits allocated to a group of pictures to which the picture belongs, N p and N b are a number of P-pictures and B-pictures in the group of pictures, respectively, K b and K p are constants associated with complexity matrices for P-pictures and B-pictures, respectively, X i , X p and X b are complexity estimators for I-pictures, P-pictures and B-pictures, respectively, bit_rate is a bit rate of a transmission channel from the encoder to the decoder and picture_rate is a display rate of pictures.

7 . The method as defined in claim 1 , wherein the adaptively adjusting further comprises multiplying the targeted bit allocation T by a factor α, where α comprises:

α

=

1

+

V

status

-

V

target

V

high

-

V

low

,

where V status is the occupancy status, V target is a desired occupancy level of the buffer model, V high and V low are high and low occupancy levels of the buffer model, respectively.

8 . The method as defined in claim 7 , where V target is about 7/8 of a capacity of the buffer model, where V high is about 63/64 of the capacity of the buffer model, and where V low is about 3/8 of the capacity of the buffer model.

9 . The method as defined in claim 7 , wherein the targeted bit allocation T adaptively varies such that over time, the buffer occupancy level V status of the buffer model trends to the desired buffer occupancy level V target .

10 . The method as defined in claim 7 , where the desired buffer occupancy level V target is configured by a user.

11 . The method as defined in claim 1 , wherein the buffer model is a virtual buffer verifier (VBV) buffer model.

12 . The method as defined in claim 1 , wherein the video encoding process is performed in real time, and where a constant bit rate is used to update a calculation of the buffer occupancy level.

13 . The method as defined in claim 1 , further comprising bounding the targeted bit allocation T to a maximum value of T max , where T max comprises:

T max =V status −V low ,

where V status is the occupancy status and V low is a low occupancy level of the buffer model.

14 . The method as defined in claim 13 , wherein V low is about 3/8 of a capacity of the buffer model.

15 . The method as defined in claim 1 , wherein the video encoding process is performed in real time.

16 . A method implemented in computer executable form in a video encoding process for calculating a targeted bit allocation T for a picture that is to be encoded and transmitted to a decoder comprising:

computing at an encoder a targeted bit allocation T for encoding the picture and storing in an encoder buffer;

determining a threshold from at least one desired occupancy level of a buffer model characterizing a decoder buffer status of the decoder;

scaling the targeted bit allocation T at the encoder by a factor at least partially in response to a comparison of an occupancy status of the buffer model with the threshold; and

providing the adjusted targeted bit allocation T to the video encoding process.

17 . The method as defined in claim 16 , wherein the factor is a factor α, where α comprises:

α

=

1

+

V

status

-

V

target

V

high

-

V

low

,

where V status the occupancy status, V target is a desired occupancy level of the buffer model, V high and V low are high and low occupancy levels of the buffer model, respectively.

18 . The method as defined in claim 17 , where V target is about 7/8 of a capacity of the buffer model, where V high is about 63/64 of the capacity of the buffer model, and where V low is about 3/8 of the capacity of the buffer model.

19 . The method as defined in claim 16 , wherein the targeted bit allocation T adaptively varies such that over time, the buffer occupancy level of the buffer model trends to the desired buffer occupancy level.

20 . The method as defined in claim 16 , where the desired buffer occupancy level is configured by a user.

21 . The method as defined in claim 16 , wherein the buffer model is a virtual buffer verifier (VBV) buffer model.

22 . The method as defined in claim 16 , wherein the video encoding process is performed in real time, and where a constant bit rate is used to update a calculation of the buffer occupancy level.

23 . The method as defined in claim 16 , further comprising bounding the targeted bit allocation T to a maximum value of T max , where T max comprises:

T max =V status −V low ,

where V status is the occupancy status and V low is a low occupancy level of the buffer model.

24 . The method as defined in claim 23 , wherein V low is about 3/8 of a capacity of the buffer model.

25 . A computer readable medium with computer executable instructions for adjusting a targeted bit allocation T for a picture that is to be encoded and transmitted to a decoder, comprising:

instructions for computing a targeted bit allocation T for storage in an encoder buffer;

instructions for determining a threshold from a desired occupancy level of a buffer model characterizing a decoder buffer status of the decoder;

instructions for comparing an occupancy status of the buffer model with the threshold; and

instructions for adaptively adjusting the targeted bit allocation T at least partially in response to the comparison.

26 . A circuit for adjusting a targeted bit allocation T for a picture that is to be encoded in a real-time video encoder and transmitted to a decoder, comprising:

means at an encoder for computing a targeted bit allocation T for encoding the picture and storing in an encoder buffer;

means for determining a threshold from a desired occupancy level of a buffer model characterizing a decoder buffer status of the decoder;

means for comparing an occupancy status of the buffer model with the threshold;

means for adaptively adjusting the targeted bit allocation T at least partially in response to the comparison; and

means for providing the adjusted targeted bit allocation T to the video encoding process.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 1, 2010
From: COREL INCORPORATED
To: COREL CORPORATION
Reel/Frame 025404/0624 →
MERGER Recorded Mar 11, 2009
From: INTERVIDEO, INC.
To: COREL INC.
Reel/Frame 022381/0885 →