Video encoding using variable bit rates
First Claim
Patent Images
1. A method of generating a frame quantization parameter for encoding a current frame of an incoming video stream having a plurality of frames, the method comprising:
- calculating a complexity ratio of the current frame, wherein the calculating a complexity ratio of the current frame comprises;
calculating a local complexity of the current frame;
wherein the calculating a local complexity of the current frame comprises;
calculating a new average local complexity; and
calculating a new value for the local complexity as a weighted average of a current value of the local complexity and the new average local complexity;
calculating a global complexity of a plurality of frames; and
setting the complexity ratio to equal the local complexity divided by the global complexity;
complexity ratio of the current frame;
calculating the frame quantization parameter based on the current frame bit rate.
5 Assignments
0 Petitions
Accused Products
Abstract
A system and method is provided for variable bit rate encoding using a complexity ratio. Quantization parameter is calculated using a complexity ratio, which is equal to a local complexity divided by a global complexity. Complex pictures are allocated a larger bit budget relative to simple pictures. With the larger bit budget the quality of complex pictures can be maintained while reducing the overall size of the encoded video stream.
31 Citations
21 Claims
-
1. A method of generating a frame quantization parameter for encoding a current frame of an incoming video stream having a plurality of frames, the method comprising:
-
calculating a complexity ratio of the current frame, wherein the calculating a complexity ratio of the current frame comprises; calculating a local complexity of the current frame;
wherein the calculating a local complexity of the current frame comprises;calculating a new average local complexity; and calculating a new value for the local complexity as a weighted average of a current value of the local complexity and the new average local complexity; calculating a global complexity of a plurality of frames; and setting the complexity ratio to equal the local complexity divided by the global complexity;
complexity ratio of the current frame;calculating the frame quantization parameter based on the current frame bit rate. - View Dependent Claims (2)
-
-
3. A method of generating a frame quantization parameter for encoding a current frame of an incoming video stream having a plurality of frames, the method comprising:
-
calculating a complexity ratio of the current frame, wherein the calculating a complexity ratio of the current frame comprises; calculating a local complexity of the current frame; calculating a global complexity of a plurality of frames, wherein a new value for global complexity is equal to a global complexity coefficient times the local complexity plus a current value of the global complexity times one minus the global complexity coefficient; and setting the complexity ratio to equal the local complexity divided by the global complexity; calculating a current frame bit rate using the complexity ratio of the current frame; calculating the frame quantization parameter based on the current frame bit rate.
-
-
4. A method of generating a frame quantization parameter for encoding a current frame of an incoming video stream having a plurality of frames, the method comprising:
-
calculating a complexity ratio of the current frame; calculating a current frame bit rate using the complexity ratio of the current frame; calculating the frame quantization parameter based on the current frame bit rate; and calculating a bit balance adjustment factor that is used in the calculating a current frame bit rate using the complexity ratio, wherein calculating a bit balance adjustment factor comprises; tracking a bit balance of a plurality of previously processed frames; and dividing the bit balance by a duration to generate the bit balance adjustment factor.
-
-
5. A method of generating a frame quantization parameter for encoding a current frame of an incoming video stream having a plurality of frames, the method comprising:
-
calculating a complexity ratio of the current frame; calculating a current frame bit rate using the complexity ratio of the current frame; calculating the frame quantization parameter based on the current frame bit rate; and calculating a bit balance adjustment factor that is used in the calculating a current frame bit rate using the complexity ratio, wherein the current frame bit rate is equal to the bit balance adjustment value plus a rate control parameter multiplied by the complexity ratio multiplied by a frame target rate plus the frame target rate multiplied by the difference between one and the rate control parameter.
-
-
6. A method of generating a frame quantization parameter for encoding a current frame of an incoming video stream having a plurality of frames, the method comprising:
-
calculating a complexity ratio of the current frame; calculating a current frame bit rate using the complexity ratio of the current frame; calculating a frame coding efficiency factor; and calculating the frame quantization parameter based on the current frame bit rate, wherein the calculating the frame quantization parameter based on the current frame bit rate comprises; calculating a bit budget for the current frame using the current frame bit rate; calculating an average macroblock quantization factor of a previous frame, wherein the previous frame and the current frame have a same frame type; and calculating the frame quantization parameter using the bit budget;
the average macroblock quantization factor of the previous frame, and a bit usage of the previous frame; andwherein the frame quantization parameter is equal to one fourth of the average macroblock quantization factor multiplied by the sum of three plus the bit usage divided by the bit budget.
-
-
7. A method of generating a frame quantization parameter for encoding a current frame of an incoming video stream having a plurality of frames, the method comprising:
-
calculating a complexity ratio of the current frame; calculating a current frame bit rate using the complexity ratio of the current frame; calculating the frame quantization parameter based on the current frame bit rate; and calculating an underflow quantization parameter for each macroblock of the current frame;
wherein the comprising calculating an underflow quantization parameter for each macroblock of the current frame comprises;calculating a maximum macroblock bit budget; tracking a total bit usage for the current frame; tracking a count of a number of processed macroblocks; and calculating the underflow quantization parameter using the maximum macroblock bit budget, the total bit usage, and the count, wherein a new value of the underflow quantization parameter is equal to a current value of underflow quantization parameter multiplied by one plus the total bit usage minus a product of the count and the maximum macroblock bit budget divided by the maximum macroblock bit budget. - View Dependent Claims (8)
-
-
9. A method of creating macroblock quantization parameters for a current frame using a frame quantization parameter, the method comprising:
-
setting an initial value of the macroblock quantization value to be equal to the frame quantization parameter; calculating a maximum macroblock bit budget; tracking a total bit usage for the current frame; tracking a count of a number of processed macroblocks; calculating the underflow quantization parameter using the maximum macroblock bit budget, the total bit usage, and the count, wherein a new value of the underflow quantization parameter is equal to a current value of underflow quantization parameter multiplied by one plus the total bit usage minus a product of the count and the maximum macroblock bit budget divided by the maximum macroblock bit budget. - View Dependent Claims (10, 11, 12)
-
-
13. A system for generating a frame quantization parameter for encoding a current frame of an incoming video stream having a plurality of frames, the system comprising:
-
means for calculating a complexity ratio of the current frame; means for calculating a current frame bit rate, using the complexity ratio of the current frame; and means for calculating the frame quantization parameter based on the current frame bit rate; and wherein the means for calculating a complexity ratio comprises; means for calculating a local complexity of the current frame; means for calculating a global complexity of a plurality of frames; and means for setting the complexity ratio to equal the local complexity divided by the global complexity; and wherein the means for calculating a local complexity comprises; means for calculating a new average local complexity; and means for calculating a new value for the local complexity as a weighted average of a current value of the local complexity and the new average local complexity. - View Dependent Claims (15, 16, 17)
-
-
14. A system for generating a frame quantization parameter for encoding a current frame of an incoming video stream having a plurality of frames, the system comprising:
-
means for calculating a complexity ratio of the current frame; means for calculating a current frame bit rate using the complexity ratio of the current frame; means for calculating the frame quantization parameter based on the current frame bit rate; and means for calculating a bit balance adjustment factor that is used by the means for calculating a current frame bit rate using the complexity ratio factor; wherein the means for calculating a bit balance adjustment factor comprises; means for tracking a bit balance of a plurality of previously processed frames; means for dividing the bit balance by a duration to generate the bit balance adjustment factor.
-
-
18. A system for creating macroblock quantization parameters for a current frame using a frame quantization parameter, the system comprising:
-
means for setting an initial value of the macroblock quantization value to be equal to the frame quantization parameter; means for calculating a maximum macroblock bit budget; means for tracking a total bit usage for the current frame; means for tracking a count of a number of processed macroblocks; means for calculating the underflow quantization parameter using the maximum macroblock bit budget, the total bit usage, and the count;
wherein a new value of the underflow quantization parameter is equal to a current value of underflow quantization parameter multiplied by one plus the total bit usage minus a product of the count and the maximum macroblock bit budget divided by the maximum macroblock bit budget. - View Dependent Claims (19, 20, 21)
-
Specification