Real-time single pass variable bit rate control strategy and encoder
First Claim
1. A method of processing groups of frames, said method comprising:
- encoding at least one group of frames of an input stream;
determining, prior to encoding the entire input stream, a number of bits to be allocated to another group of frames of said input stream, said another group of frames to be encoded in a self-variable bit rate mode, and wherein said determining uses one or more parameter values obtained from said encoding; and
encoding said another group of frames in a single pass variable bit rate mode, wherein said another group of frames is encoded in only one encoding pass;
wherein said encoding said another group of frames comprises adjusting an ideal number of target bits of a picture type, within said another group of frames, wherein said adjusting comprises scaling a sub-error accumulation of previously encoded groups of frames of said input stream using a first scaling factor and scaling a sub-error accumulation of frames of said another group of frames using a second scaling factor.
1 Assignment
0 Petitions
Accused Products
Abstract
A real-time single pass variable bit rate control strategy is provided to achieve variable bit rate (VBR) MPEG-2 encoding in a video compression system. For a sequence of frames, the level of encoding difficulty of a video interval (i.e., a group of pictures (GOP)) is determined by a perceptual rate-quantization ({overscore (C)}-{overscore (Q)}) model. This model assigns a composite ({overscore (C)}-{overscore (Q)}) curve to each video interval from which the number of bits for the video interval is estimated. The estimation relies on a causal predictive model using the parameters obtained from previously encoded video intervals. The R-Q relationship of each picture type is updated and picture bits are assigned, based on the total rate of the video interval under analysis. Robustness of the variable bit rate control strategy is ensured throughout scene transitions and instabilities by applying, for example, a non-linear median filter, and a low pass filter, respectively.
-
Citations
29 Claims
-
1. A method of processing groups of frames, said method comprising:
-
encoding at least one group of frames of an input stream;
determining, prior to encoding the entire input stream, a number of bits to be allocated to another group of frames of said input stream, said another group of frames to be encoded in a self-variable bit rate mode, and wherein said determining uses one or more parameter values obtained from said encoding; and
encoding said another group of frames in a single pass variable bit rate mode, wherein said another group of frames is encoded in only one encoding pass;
wherein said encoding said another group of frames comprises adjusting an ideal number of target bits of a picture type, within said another group of frames, wherein said adjusting comprises scaling a sub-error accumulation of previously encoded groups of frames of said input stream using a first scaling factor and scaling a sub-error accumulation of frames of said another group of frames using a second scaling factor. - View Dependent Claims (2, 8)
-
-
3. A method of processing groups of frames, said method comprising:
-
encoding at least one group of frames of an input stream; and
determining, prior to encoding the entire input stream, a number of bits to be allocated to another group of frames of said input stream, said another group of frames to be encoded in a self-variable bit rate mode, and wherein said determining uses one or more parameter values obtained from said encoding;
wherein said determining comprises;
modulating, for said another group of frames, a slope of a predefined perceptual function; and
using said modulated slope in a bit rate equation to determine said number of bits. - View Dependent Claims (4, 5)
-
-
5. The method of claim 3, wherein said bit rate equation comprises:
-
wherein Rk,tot represents a number of remaining bits in a bit budget, Nk represents an adjusted number of groups of frames in an input stream, Pk represents a number of remaining frames of said another group of frames to be encoded, Zk represents a summation of the measures of encoding difficulty, ξ
k is Δ
{overscore (C)}k/Δ
{overscore (Q)}k in which {overscore (C)}k is an average bits and {overscore (Q)}k is an average quantization factor, η
k is equal to {overscore (C)}k−
1,actual+ξ
k{overscore (Q)}k−
1,actual, and a1 and a2 are constants.
-
-
6. A method of processing groups of frames, said method comprising:
-
encoding at least one group of frames of an input stream; and
determining, prior to encoding the entire input stream, a number of bits to be allocated to another group of frames of said input stream, said another group of frames to be encoded in a self-variable bit rate mode, and wherein said determining uses one or more parameter values obtained from said encoding;
wherein said determining comprises;
determining, for said another group of frames, a translation factor for a predefined perceptual function; and
using said translation factor in a bit rate equation to determine said number of bits. - View Dependent Claims (7)
wherein Pk represents a number of remaining frames of said another group of frames to be encoded, Rk,tot represents a number of remaining bits in a bit budget, {overscore (C)}gop is a rate of said input stream, Yk represents a summation of average quantization factors per group of frames, Nk represents an adjusted number of groups of frames in an input stream, and a2 is a constant.
-
-
9. A method of processing groups of frames, said method comprising:
-
determining a plurality of parameter values from one or more previously encoded group of frames;
computing, for a group of frames to be encoded in a single pass variable bit rate mode, a slope of a predefined function, said computing using one or more of said plurality of parameter values; and
obtaining a bit rate for said group of frames to be encoded using said computed slope and one or more of said plurality of parameter values. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
wherein f is a frame rate of said input stream, Rk,tot is a remaining number of bits in a bit budget, Nk represents an adjusted number of groups of frames in an input stream, Pk represents a number of remaining frames of said another group of frames to be encoded and Zk represents a summation of the measures of encoding difficulty.
-
-
14. The method of claim 9, wherein said obtaining comprises using a predefined function to obtain said bit rate.
-
15. The method of claim 14, wherein said predefined function comprises:
-
wherein Rk,tot represents a number of remaining bits in a bit budget, Nk represents an adjusted number of groups of frames in an input stream, Pk represents a number of remaining frames of said another group of frames to be encoded, Zk represents a summation of the measures of encoding difficulty, ξ
k is Δ
{overscore (C)}k/Δ
{overscore (Q)}k in which {overscore (C)}k is an average bits and {overscore (Q)}k is an average quantization factor, ω
k is equal to {overscore (C)}k−
1,actual+ξ
k{overscore (Q)}k−
1,actual, and a1 and a2 are constants.
-
-
16. The method of claim 14, wherein said predefined function represents an instantaneous rate-quantization behavior of said another group of frames and a perceptual model indicating a complexity of said another group of frames.
-
17. The method of claim 16, wherein said rate-quantization behavior is defined by:
-
18. The method of claim 16, wherein said perceptual model is defined by:
-
19. The method of claim 9, wherein said determining comprises compensating for one or more instability conditions of said input stream.
-
20. A single pass self-variable bit rate encoder comprising:
-
an encoding engine adapted to encode at least one group of frames of an input stream; and
means for determining, prior to encoding the entire input stream, a number of bits to be allocated to another group of frames of said input stream, said another group of frames to be encoded in a self-variable bit rate mode, and wherein said means for determining uses one or more parameter values obtained from encoding said at least one group of frames, wherein said means for determining comprises;
means for modulating, for said another group of frames, a slope of a predefined perceptual function; and
means for using said modulated slope in a bit rate equation to determine said number of bits.
-
-
21. A single pass self-variable bit rate encoder comprising:
-
an encoding engine adapted to encode at least one group of frames of an input stream; and
means for determining prior to encoding the entire input stream, a number of bits to be allocated to another group of frames of said input stream, said another group of frames to be encoded in a self-variable bit rate mode, and wherein said means for determining uses one or more parameter values obtained from encoding said at least one group of frames, wherein said means for determining comprises;
means for determining, for said another group of frames, a translation factor for a predefined perceptual function; and
means for using said translation factor in a bit rate equation to determine said number of bits. - View Dependent Claims (22)
-
-
23. A single pass variable bit rate encoder comprising:
-
means for determining a plurality of parameter values from one or more previously encoded group of frames;
means for computing, for a group of frames to be encoded in a single pass variable bit rate mode, a slope of a predefined function, said computing using one or more of said plurality of parameter values; and
means for obtaining a bit rate for said group of frames to be encoded using said computed slope and one or more of said plurality of parameter values. - View Dependent Claims (24, 25, 26, 27)
-
-
28. An article of manufacture, comprising:
-
at least one computer usable medium having computer readable program code means embodied therein for causing the processing of groups of frames, the computer readable program code means in said article of manufacture comprising;
computer readable program code means for causing a computer to encode at least one group of frames of an input stream; and
computer readable program code means for causing a computer to determine, prior to encoding the entire input stream, a number of bits to be allocated to another group of frames of said input stream, said another group of frames to be encoded in a self-variable bit rate mode, and wherein said computer readable program code means for causing a computer to determine uses one or more parameter values obtained from said encoding;
wherein said computer readable program code means for causing a computer to determine comprises;
computer readable program code means for causing a computer to modulate, for said another group of frames, a slope of a predefined perceptual function; and
computer readable program code means for causing a computer to use said modulated slope in a bit rate equation to determine said number of bits.
-
-
29. An article of manufacture, comprising:
-
at least one computer usable medium having computer readable program code means embodied therein for causing the processing of groups of frames, the computer readable program code means in said article of manufacture comprising;
computer readable program code means for causing a computer to encode at least one group of frames of an input stream; and
computer readable program code means for causing a computer to determine, prior to encoding the entire input stream, a number of bits to be allocated to another group of frames of said input stream, said another group of frames to be encoded in a self-variable bit rate mode, and wherein said computer readable program code means for causing a computer to determine uses one or more parameter values obtained from said encoding;
wherein said computer readable program code means for causing a computer to determine comprises;
computer readable program code means for causing a computer to determine, for said another group of frames, a translation factor for a predefined perceptual function; and
computer readable program code means for causing a computer to use said translation factor in a bit rate equation to determine said number of bits.
-
Specification