Rate control and bit allocation for low bit rate video communication applications
First Claim
1. A computerized method for encoding a sequence of video frames at a bit rate, comprising the steps of:
- providing parameters, each parameter having a value that can be adjusted to control the bit rate at which the sequence of frames is encoded;
defining a first operating region and a second operating region, each operating region including a range of values for each of the parameters;
encoding the sequence of frames with the value of each parameter being in the first operating region;
determining to make an adjustment to the value of one of the parameters that would put that value out of the first operating region and in the second operating region; and
making the adjustment to that value if a predetermined criterion is satisfied, otherwise constraining the value of that one parameter to remain in the first operating region.
4 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus is described for encoding a sequence of video frames at a target bit rate. A controller controls the bit r ate by providing values for a coding frame rate and quantization parameter to a frame encoder. A set of operating regions, including a first operating region and a second operating region, is defined. Each operating region includes a range of values for each parameter. These operating regions may intersect each other or be disjoint. The encoder codes the frame sequence with the value of each parameter being in the first operating region. During the coding, the controller determines to make an adjustment to the value of one parameter that would put that value out of the first operating region and in the second operating region. The controller makes the adjustment if a predetermined criterion is satisfied, otherwise the controller constrains the value of that one parameter to remain in the first operating region. In one embodiment, the criterion is that the value of that one parameter and the value of another parameter would be in the same operating region if the adjustment were made. In another embodiment, the criterion is that, when it is determined to make the adjustment to the one parameter, the value of another one of the parameters is in a predetermined region of the first operating region.
-
Citations
23 Claims
-
1. A computerized method for encoding a sequence of video frames at a bit rate, comprising the steps of:
-
providing parameters, each parameter having a value that can be adjusted to control the bit rate at which the sequence of frames is encoded;
defining a first operating region and a second operating region, each operating region including a range of values for each of the parameters;
encoding the sequence of frames with the value of each parameter being in the first operating region;
determining to make an adjustment to the value of one of the parameters that would put that value out of the first operating region and in the second operating region; and
making the adjustment to that value if a predetermined criterion is satisfied, otherwise constraining the value of that one parameter to remain in the first operating region. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
adjusting the value of another one of the parameters when the predetermined criterion is unsatisfied and the value of the one parameter is constrained to remain in the first operating region.
-
-
5. The method of claim 4, further comprising the step of:
constraining the adjusted value of that another one of the parameters to be in the first operating region unless the predetermined criterion is satisfied.
-
6. The method of claim 1, wherein a first one of the parameters represents a frame rate at which to select video frames for encoding and a second one of the parameters represents a quantization parameter.
-
7. The method of claim 1 wherein the one parameter is a frame rate at which to select video frames for encoding, and further comprising the step of:
adjusting the frame rate when the predetermined criterion is satisfied if a predetermined interval of time has elapsed since a previous change to the frame rate, otherwise waiting for the predetermined interval of time to elapse before adjusting the frame rate.
-
8. The method of claim 7, further comprising the step of defining levels of frame rates;
- and wherein the step of making the adjustment to the frame rate adjusts the frame rate by at least one level.
-
9. The method of claim 8, further comprising the step of:
limiting the adjustment to the frame rate to one level.
-
10. The method of claim 7, further comprising the steps of:
-
determining a target number of bits for encoding a current frame; and
encoding the current frame and each subsequent frame according to the target number of bits until the frame rate subsequently changes.
-
-
11. The method of claim 7, further comprising the steps of:
-
determining a target number of bits for encoding the sequence of video frames;
encoding the sequence of video frames using an actual number of bits for each encoded frame; and
determining to adjust the frame rate when the actual number of bits used to encode each of a predetermined number of successively encoded frames differs from the target number of bits on average by a threshold value.
-
-
12. The method of claim 1, wherein the one parameter is a quantization parameter, and the step of making the adjustment when the predetermined criterion is satisfied adjusts the quantization parameter by at least one.
-
13. The method of claim 12, further comprising the step of limiting the adjustment to the quantization parameter to less than three.
-
14. The method of claim 12, further comprising the steps of:
-
modeling expected behavior of a decoder using a buffer;
determining a target number of bits for encoding a current frame;
encoding the current frame using an actual number of bits;
determining a signal-to-noise ratio (SNR) for the current frame; and
wherein the adjustment to the quantization parameter depends on a difference between the actual number and the target number if the buffer is at risk of under-flowing, otherwise the adjustment depends on the SNR.
-
-
15. The method of claim 1, wherein each operating region represents a subjective level of visual quality, and encoding with the values of the parameters in the first operating region produces a better visual quality than encoding with the values of the parameters in the second operating region.
-
16. The method of claim 1, wherein the first operating region and the second operating region intersect each other.
-
17. The method of claim 1, wherein the first operating region and the second operating region are non-intersecting with respect to each other.
-
18. The method of claim 1, further comprising the steps of:
-
determining a target number of bits for encoding a current frame;
encoding the current frame using an actual number of bits; and
determining to adjust one of the parameters when the actual number of bits used to encode the current frame differs from the target number of bits by a threshold value.
-
-
19. A system for encoding a sequence of video frames at a bit rate, comprising:
-
an encoder; and
a controller coupled to provide values of coding parameters to the encoder to control the bit rate at which the video frame sequence is encoded, the controller defining a first operating region and a second operating region, each operating region including a range of values for each parameter, wherein the encoder codes each selected frame while the controller constrains the values of the parameters to be in the first operating region until a predetermined criterion is satisfied, the controller then allowing an adjustment to the value of one of the parameters that would put that value out of the first operating region and in the second operating region. - View Dependent Claims (20, 21, 22, 23)
-
Specification