IP Library Granted Patent US 7,746,928
Granted Patent B2
US 7,746,928 · App. 11/026,406 · Granted Jun 29, 2010

Method and apparatus for providing rate control

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,746,928
App. No.
11/026,406
Granted
Jun 29, 2010
Kind
B2
Abstract

The present invention discloses a system and method for providing a rate control to an encoder, e.g., a H.264/MPEG-4 AVC compliant encoder. Specifically, the rate control method computes a target rate for a segment, where the segment comprises at least one slice of macroblocks. In turn, a target rate is computed for the at least one slice of macroblocks from the target rate for the segment. In turn, a quantization parameter (QP j ) is computed for a macroblock (j) of the macroblocks from the target rate for the at least one slice. Finally, the macroblock (j) is encoded in accordance with said quantization parameter (QP j ).

Claims (339)

1. A method for providing a rate control in an encoder apparatus for encoding an image sequence, comprising:

computing a target rate for a segment, wherein said segment comprises at least one slice of macroblocks;

computing a target rate for said at least one slice of macroblocks from said target rate for said segment;

computing a quantization parameter (QP j ) for a macroblock (j) of said macroblocks from said target rate for said at least one slice; and

encoding said macroblock (j) in accordance with said quantization parameter (QP j ), wherein said quantization parameter (QP j ) is computed from a quantization stepsize Q j , and wherein said quantization parameter QP j is computed as follows:

QP j =└6×log 2 ( Q j )+ C┘,

where c is a constant.

2. The method of claim 1 , wherein said encoder is a H.264/MPEG-4 AVC compliant encoder.

3. The method of claim 1 , wherein said target rate for said segment (R segment ) is updated in accordance with a sliding window of slices or a consumption method.

4. The method according to claim 1 ,

wherein said target rate for said segment (R segment ) is nominally set as follows:

R

segment

=

MB_seg

MB_sec

×

bit_rate

,

where MB_seg is a total number of said macroblocks (MBs) in said segment, MB_sec is a total number of MBs per second, and where bit_rate is an output rate of said encoder,

wherein said target rate (R target ) for said at least one slice of macroblocks is computed as follows:

R

target

=

K

type

×

MB

slice

×

C

type

K

I

×

MB

I

×

C

I

+

K

P

×

MB

P

×

C

P

+

K

B

×

MB

B

×

C

B

R

segment

.

where type indicates a slice type of I, P or B, where C I , C P and C B are complex measure for the corresponding slice type of I, P and B, where K I , K P and K B are pre-set constants for corresponding slice type of I, P and B, and where MB I , MB P and MB B are total number of MBs in corresponding I, P and B slices in said segment.

5. The method of claim 1 , wherein said Q j is proportional to a fullness measure of a virtual buffer, d j , as follows:

Q j =α×dj,

where α is at least one of a function of bit_rate and picture_rate.

6. The method of claim 5 , wherein said α is computed as follows:

α

=

31

×

MB_sec

2

×

MB_slice

×

bit_rate

,

where MB_slice is a total number of MBs in a new slice.

7. The method of claim 1 , wherein said quantization parameter QP j is adjusted to account for human eye sensitivity.

8. A tangible computer-readable medium having stored thereon a plurality of instructions, the plurality of instructions including instructions which, when executed by a processor, cause the processor to perform the steps of a method for providing a rate control in an encoder for encoding an image sequence, comprising of:

computing a target rate for a segment, wherein said segment comprises at least one slice of macroblocks;

computing a target rate for said at least one slice of macroblocks from said target rate for said segment;

computing a quantization parameter (QP j ) for a macroblock (j) of said macroblocks from said target rate for said at least one slice; and

encoding said macroblock (j) in accordance with said quantization parameter (QP j ), wherein said quantization parameter (QP j ) is computed from a quantization stepsize Q j , and wherein said quantization parameter QP j is computed as follows:

QP j =└6×log 2 ( Q j )+ c┘,

where c is a constant.

9. The tangible computer-readable medium of claim 8 , wherein said target rate for said segment (R segment ) is updated in accordance with a sliding window of slices or a consumption method.

10. The tangible computer-readable carrier of claim 8 ,

wherein said target rate for said segment (R segment ) is nominally set as follows:

R

segment

=

MB_seg

MB_sec

×

bit_rate

,

where MB_seg is a total number of said macroblocks (MBs) in said segment, MB_sec is a total number of MBs per second, and where bit_rate is an output rate of said encoder, wherein said target rate (R target ) for said at least one slice of macroblocks is computed as follows:

R

target

=

K

type

×

MB

slice

×

C

type

K

I

×

MB

I

×

C

I

+

K

P

×

MB

P

×

C

P

+

K

B

×

MB

B

×

C

B

R

segment

.

where type indicates a slice type of I, P or B, where C I , C P and C R are complex measure for the corresponding slice type of I, P and B, where K I , K P and K B are pre-set constants for corresponding slice type of I, P and B, and where MB I , MB P and MB B are total number of MBs in corresponding I, P and B slices in said segment.

11. The tangible computer-readable medium of claim 8 , wherein said Q j is proportional to a fullness measure of a virtual buffer, d j , as follows:

Q j =α×dj,

where α is at least one of a function of bit_rate and picture_rate.

12. The tangible computer-readable medium of claim 11 , wherein said α is computed as follows:

α

=

31

×

MB_sec

2

×

MB_slice

×

bit_rate

,

where MB_slice is a total number of MBs in a new slice.

13. The tangible computer-readable medium of claim 8 , wherein said encoder is a H.264/MPEG-4 AVC compliant encoder.

14. An apparatus for providing a rate control in an encoder for encoding an image sequence, comprising:

means for computing a target rate for a segment, wherein said segment comprises at least one slice of macroblocks;

means for computing a target rate for said at least one slice of macroblocks from said target rate for said segment;

means for computing a quantization parameter (QP j ) for a macroblock (j) of said macroblocks from said target rate for said at least one slice; and

means for encoding said macroblock (j) in accordance with said quantization parameter (QP j ), wherein said quantization parameter (QP j ) is computed from a quantization stepsize Q j , and wherein said quantization parameter QP j is computed as follows:

QP j =└6×log 2 ( Q j )+ c┘,

where c is a constant.

15. A method for providing a rate control in an encoder apparatus for encoding an image sequence, comprising:

computing a target rate for a segment, wherein said segment comprises at least one slice of macroblocks;

computing a target rate for said at least one slice of macroblocks from said target rate for said segment;

computing a quantization parameter (QP j ) for a macroblock (j) of said macroblocks from said target rate for said at least one slice; and

encoding said macroblock (j) in accordance with said quantization parameter (QP j ), wherein an adjustment of (QP j ) is computed as follows:

QP i =QP j +6×log 2 ( N _act j ),

wherein N_act j is a normalized local activity.

16. The method of claim 15 , wherein N_act j is computed as follows:

N_act

j

=

β

×

act

j

+

avg_act

act

j

+

β

×

avg_act

,

wherein β is a constant and avg_act is an average value of act j of a current slice, and wherein act j is computed as follows:

act j =1+min(var_block k |k= 1, 2, . . . 2×(16 /n )×(16 /m )),

wherein var_block is a variance of MB/sub_MB partition (k) computed as follows:

var_block

k

=

1

n

×

m

i

,

j

=

0

n

,

m

(

x

k

(

i

,

j

)

-

mean_block

k

)

2

,

wherein mean_block k is computed as follows:

mean_block

k

=

1

n

×

m

n

,

m

i

,

j

=

0

x

k

(

i

,

j

)

,

wherein x k (i,j) is the original pixel value of pixel (i,j) of MB/sub_MB partition (k).

17. The method of claim 7 , wherein the adjustment is proportional to a normalized local activity measure as follows:

QP j =QP j +6×log 2 ( N _act j ),

wherein N_act j is a normalized local activity.

18. The method of claim 17 , wherein N_act j is computed as follows:

N_act

j

=

β

×

act

j

+

avg_act

act

j

+

β

×

avg_act

,

wherein β is a constant and avg_act is an average value of act j of a current slice, and wherein act j is computed as follows:

act j =1+min(var_block k |k= 1, 2, . . . 2×(16 /n )×(16 /m )),

wherein var_block is a variance of MB/sub_MB partition (k) computed as follows:

var_block

k

=

1

n

×

m

i

,

j

=

0

n

,

m

(

x

k

(

i

,

j

)

-

mean_block

k

)

2

,

wherein mean_block k is computed as follows:

mean_block

k

=

1

n

×

m

n

,

m

i

,

j

=

0

x

k

(

i

,

j

)

,

wherein x k (i,j) is the original pixel value of pixel (i,j) of MB/sub_MB partition (k).

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 19, 2014
From: MOTOROLA MOBILITY LLC
To: GOOGLE TECHNOLOGY HOLDINGS LLC
Reel/Frame 034293/0138 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2013
From: GENERAL INSTRUMENT CORPORATION
To: GENERAL INSTRUMENT HOLDINGS, INC.
Reel/Frame 030764/0575 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2013
From: GENERAL INSTRUMENT HOLDINGS, INC.
To: MOTOROLA MOBILITY LLC
Reel/Frame 030866/0113 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2004
From: WANG, LIMIN; FANG, XUE
To: GENERAL INSTRUMENT CORPORATION
Reel/Frame 016157/0962 →