IP Library Granted Patent US 7,388,912
Granted Patent B1
US 7,388,912 · App. 10/452,768 · Granted Jun 17, 2008

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

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,388,912
App. No.
10/452,768
Granted
Jun 17, 2008
Kind
B1
Abstract

Methods and apparatus are provided to advantageously improve bit rate control in a video encoder, such as an MPEG video encoder. The targeted bit allocation for a picture to be encoded is advantageously varied based on an occupancy level of a buffer model, such as a video buffer verifier (VBV) buffer model.

Claims (296)

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, wherein the targeted bit allocation T prior to adaptive adjustment is an original targeted bit allocation T and the threshold is a second threshold, the second threshold corresponds to T high , where T high comprises:

T

high

=

V

status

-

V

high

+

bit_rate

picture_rate

,

where V status is the occupancy status, V high is the desired occupancy level, 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, and 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.

2. 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;

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,

wherein the first threshold corresponds to T mid and the second threshold corresponds to T high , where T mid and T high further comprise:

T mid =V status −V mid ; and

T

high

=

V

status

-

V

high

+

bit_rate

picture_rate

,

where V status is the occupancy status, V mid is a first one of the at least one desired occupancy level, V high is a second one of the at least one desired occupancy level, 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.

3. 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 b , respectively, where T i , T p , and T b further comprise:

T

i

=

max

{

(

R

(

1

+

N

p

X

p

X

i

K

p

+

N

b

X

b

X

i

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

and

T

b

=

max

{

R

(

N

p

+

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.

4. 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, wherein when the picture to be encoded corresponds to a P-picture with a scene change, computing the targeted bit allocation T corresponds to computing T p′ , where T p′ comprises:

T

p

=

max

{

(

R

(

1

+

(

N

p

-

1

)

X

p

X

i

K

p

+

N

b

X

b

X

i

K

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 p and K b 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.

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

6. 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.

7. 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.

8. The method as defined in claim 7 , wherein V low is about ⅜ of a capacity of the buffer model.

9. 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, further comprising bounding the targeted bit allocation T to a minimum value of T min , where T min comprises:

T

min

=

max

(

V

status

+

bit_rate

picture_rate

-

V

high

,

0

)

,

where V status is the occupancy status, V high is a desired occupancy level, 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.

10. The method as defined in claim 9 , where V high is about 63/64 of a capacity of the buffer model.

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

12. 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, further comprising bounding the targeted bit allocation T to a minimum value of T min , where T min comprises:

T

min

=

max

(

V

status

+

bit_rate

picture_rate

-

V

high

,

0

)

,

where V status is the occupancy status, V high is a desired occupancy level, bit_rate is a bit rate of a transmission channel from the encoder to a decoder and picture_rate is a display rate of pictures.

13. The method as defined in claim 12 , wherein the factor is 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.

14. The method as defined in claim 13 , where V target is about ⅞ 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 ⅜ of the capacity of the buffer model.

15. The method as defined in claim 12 , 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.

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

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

18. The method as defined in claim 12 , 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.

19. The method as defined in claim 12 , 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.

20. The method as defined in claim 19 , wherein V low is about ⅜ of a capacity of the buffer model.

21. The method as defined in claim 12 , where V high is about 63/64 of a capacity of the buffer model.

Assignments (11)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2019
From: COREL SOFTWARE LLC
To: COREL CORPORATION
Reel/Frame 048067/0586 →
CHANGE OF NAME Recorded Nov 29, 2018
From: 8324450 CANADA INC.
To: COREL SOFTWARE LLC
Reel/Frame 047675/0950 →
ENTITY DOMICILE CHANGE Recorded Dec 17, 2014
From: 8324450 CANADA INC.
To: 8324450 DELAWARE LLC
Reel/Frame 034651/0817 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE, AND REPLACE THE ASSIGNMENT PREVIOUSLY RECORDED ON REEL 030427 FRAME 0331. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT TO 8324450 CANADA INC. Recorded Aug 1, 2013
From: COREL CORPORATION
To: 8324450 CANADA INC.
Reel/Frame 030986/0268 →
RELEASE OF SECURITY INTEREST Recorded Jun 11, 2013
From: JPMORGAN CHASE BANK, N.A.
To: COREL CORPORATION; COREL INC.; WINZIP INTERNATIONAL LLC; WINZIP COMPUTING LP; WINZIP COMPUTING LLC; CAYMAN LTD. HOLDCO; WINZIP COMPUTING, S.L.U.; WINZIP HOLDINGS SPAIN, S.L.U.; COREL US HOLDINGS, LLC; INTERVIDEO, INC.; INTERVIDEO DIGITAL TECHNOLOGY CORP.
Reel/Frame 030591/0383 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2013
From: VECTOR CC HOLDINGS, SRL; VECTOR CC HOLDINGS III, SRL; VECTOR CC HOLDINGS IV, SRL
To: 8324450 CANADA INC.
Reel/Frame 030427/0403 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2013
From: COREL CORPORATION
To: VECTOR CC HOLDINGS, SRL; VECTOR CC HOLDINGS III, SRL; VECTOR CC HOLDINGS IV, SRL
Reel/Frame 030427/0331 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 1, 2010
From: COREL INCORPORATED
To: COREL CORPORATION
Reel/Frame 025404/0588 →
MERGER Recorded Mar 11, 2009
From: INTERVIDEO, INC.
To: COREL INC.
Reel/Frame 022380/0189 →
REAFFIRMATION AND JOINDER AGREEMENT Recorded Dec 28, 2006
From: COREL CORPORATION; COREL INC.; WINZIP INTERNATIONAL LLC; WINZIP COMPUTING LLC; WINZIP COMPUTING LP; CAYMAN LTD. HOLDCO; WINZIP COMPUTING, S.L.U.; WINZIP HOLDINGS SPAIN, S.L.U.; INTERVIDEO, INC.; INTERVIDEO DIGITAL TECHNOLOGY CORP.; COREL US HOLDINGS, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 018688/0199 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2004
From: KATSAVOUNIDIS, IOANNIS; HSU, KUO-WEI; ZHAO, LIFENG
To: INTERVIDEO INC.
Reel/Frame 014907/0261 →