Transmission bit-rate control in a video encoder
Abstract
A video encoder receives a minimum number of bits (MIN) and a maximum number of bits (MAX) to be used to encode a segment of a sequence of image frames, the segment including a set of pictures contained in the sequence of image frames. The video encoder encodes the set of pictures using a total number of bits greater than the minimum number of bits (MIN), and not exceeding the maximum number of bits (MAX). Thus, the transmission bit-rate of the video encoder can be constrained to lie within a maximum and minimum rate. In an embodiment, the constraints are enforced over relatively short time intervals.
Claims
exact text as granted — not AI-modified1 . A method of encoding a sequence of image frames, the method comprising:
receiving a minimum number of bits and a maximum number of bits to be used to encode a segment of the sequence, wherein the segment comprises a set of pictures contained in the sequence of image frames; and encoding the set of pictures using a total number of bits greater than the minimum number of bits, and not exceeding the maximum number of bits.
2 . The method of claim 1 , wherein the encoding further comprises:
identifying that the total number of bits is less than the minimum number of bits by a specific number; and adding a number of filler bits equal to the specific number to the total number of bits such that the encoding of the set of pictures is performed using the minimum number of bits.
3 . The method of claim 1 , wherein the encoding further comprises:
computing corresponding ones of a first set of number of bits for each of the set of pictures, wherein each of the set of pictures is to encoded using a number of bits less than the corresponding one of the first set of number of bits; encoding each of the set of pictures using a number of bits less than the corresponding ones of the first set of number of bits such that the total number of bits calculated as the sum of the number of bits used to encode each of the set of pictures does not exceed the maximum number of bits.
4 . The method of claim 3 , wherein the computing computes each of the first set of number of bits as a corresponding one of a first set of quantization scales, each quantization scale being inversely proportional to the number of bits, wherein each of the set of pictures is to be encoded using a quantization scale greater than the corresponding one of the first set of quantization scales.
5 . The method of claim 4 , wherein the computing computes each of the first set of quantization scales using an average quantization scale value, a first number of pictures already encoded, a second number of pictures that are yet to be encoded, the maximum number of bits and a current total of number of bits already used to encode the first number of pictures.
6 . The method of claim 5 , wherein the computing computes the average quantization scale value as a weighted average of a second set of quantization scales used for encoding the pictures in a previous segment and the first set of quantization scales computed for the first number of pictures, the previous segment preceding the segment in the sequence of image frames.
7 . The method of claim 4 , wherein each of the set of pictures are of different picture type based on encoding techniques used to encode the picture, wherein the computing further comprises:
mapping the quantization scale used to encode each of the set of pictures to a corresponding mapped quantization scale corresponding to a common picture type; and mapping a first number of pictures already encoded and a second number of pictures yet to be encoded to a corresponding first mapped number of pictures and a second mapped number of pictures of the common picture type, wherein the computing computes each of a mapped set of quantization scales for each of the set of picture using a average quantization scale value calculated based on the mapped quantization scale, the first mapped number of pictures, the second mapped number of pictures, the maximum number of bits and a current total of number of bits already used to encode the first number of pictures, wherein the computing further comprises: remapping each of the mapped set of quantization scales based on the picture type of the corresponding picture in the set of pictures to obtain the first set of quantization scales.
8 . An encoder for encoding a sequence of image frames, the encoder comprising:
a rate control block for providing as an output a corresponding quantization scale to be used for encoding each of a set of pictures contained in the sequence of image frames; and a quantizer for encoding each of the set of pictures using a corresponding quantization scale provided as the output of the rate control block, wherein the rate control block comprises:
a min-max control block for computing a first quantization scale to be used to encode a first picture of the set of pictures such that the total number of bits used for encoding all of the set of pictures is greater than a minimum number of bits and does not exceed a maximum number of bits;
an average controller for computing a second quantization scale to be used for the first picture such that the average number of bits used to encode the pictures in the sequence of image frames is within a limit; and
a max operator for determining the maximum of the first quantization scale and the second quantization scale and providing the determined maximum quantization scale as the output of the rate control block,
wherein the quantizer block encodes the first picture using the determined maximum of the first quantization scale and the second quantization scale.
9 . The encoder of claim 8 , wherein the rate control block further checks whether a difference between the first quantization scale and the second quantization scale is allowable,
wherein the rate control block allows the difference if the first quantization scale and the second quantization scale are each less than a threshold value, the rate control block limiting the difference to a pre-defined value otherwise.
10 . The encoder of claim 9 , wherein the min-max control block computes the first quantization scale using an average quantization scale value, a first number of pictures already encoded before the first picture in the set of pictures, a second number of pictures that are yet to be encoded after the first picture in the set of pictures, the maximum number of bits and a current total of number of bits already used to encode the first number of pictures.
11 . The encoder of claim 10 , wherein the min-max control block computes the average quantization scale value as a weighted average of a second set of quantization scales used for encoding a previous set of pictures and a first set of quantization scales computed for the first number of pictures encode before the first picture, the previous set of pictures preceding the set of pictures in the sequence of image frames.
12 . The encoder of claim 8 , wherein each of the set of pictures are of different picture type based on encoding techniques used to encode the picture,
wherein the min-max control block further maps the quantization scale used to encode each of the set of pictures to a corresponding mapped quantization scale corresponding to a common picture type and also a first number of pictures already encoded before the first picture and a second number of pictures yet to be encoded after the first picture to a corresponding first mapped number of pictures and a second mapped number of pictures of the common picture type, wherein the min-max control block computes the first quantization scale using a average quantization scale value calculated based on the mapped quantization scales for the set of pictures, the first mapped number of pictures, the second mapped number of pictures, the maximum number of bits and a current total of number of bits already used to encode the first number of pictures before the first picture. wherein the min-max control block computes a first mapped quantization scale for the first picture using an average quantization scale value calculated based on the mapped quantization scales of the set of pictures, the first mapped number of pictures, the second mapped number of pictures, the maximum number of bits and a current total of number of bits already used to encode the first number of pictures, wherein the min-max control block further remaps the first mapped quantization scale based on the picture type of the first picture to obtain the first quantization scale.
13 . The encoder of claim 12 , wherein encoding of the sequence of image frames is performed according to H.264 standard, wherein the picture type of the set of pictures is one of I-type, P-type and B-type and the common picture type is P-type.
14 . A machine readable medium storing one or more sequences of instructions for encoding a sequence of image frames in an encoder, wherein execution of the one or more sequences of instructions by one or more processors contained in the video encoder causes the video encoder to perform the actions of:
receiving a minimum number of bits and a maximum number of bits to be used to encode a segment of the sequence, wherein the segment comprises a set of pictures contained in the sequence of image frames; computing a first quantization scale to be used to encode a first picture of the set of pictures using an average quantization scale value, a first number of pictures already encoded before the first picture in the segment, a second number of pictures that are yet to be encoded after the first picture in the segment, the maximum number of bits and a current total number of bits already used to encode the first number of pictures; encoding the first picture using a quantization scale greater than the first quantization scale, wherein the first picture is encoded using a first number of bits; and performing iteratively the steps of computing and encoding for each of the set of pictures such that a total of the first number of bits used to encode all of the set of pictures is less than the maximum number of bits.
15 . The machine readable medium of claim 14 , further comprising one or more instructions for:
identifying that the total number of the first number of bits is less than the minimum number of bits by a specific number; and adding a number of filler bits equal to the specific number to the total number of bits such that the encoding of the set of pictures is performed using the minimum number of bits.Join the waitlist — get patent alerts
Track US2011110422A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.