Method of performing rate control for a compression system
AssigneeApple Inc.
InventorsXiaochun Nie, Thomas Pun, Roger Kumar, Hsi-Jung Wu
Life of this patent
Estimating the term…
Abstract
A rate controller for allocating a bit budget for video frames to be encoded is disclosed. The rate controller of the present invention considers many different factors when determining the frame bit budget including: desired video quality, target bit rate, frame type (intra-frame or inter-frame), frame duration, intra-frame frequency, frame complexity, intra-block frequency within an intra-frame, buffer overflow, buffer underflow, and the encoded video frame quality for a possible second pass.
Claims18
A method of encoding digital video content comprising a plurality of video frames into a bit stream, said method comprising:
- determining a default bit budget for a particular video frame of the plurality of video frames;
- adjusting said default bit budget to generate a target bit budget for said video frame based on a plurality of different factors comprising an average frame display duration, the average frame display duration comprising a historical average frame display duration, each factor in the plurality of factors assigned a different weight such that adjusting the default bit budget occurs disproportionately based on the different weights assigned to each of the different factors;
- and
- encoding the particular video frame using the target bit budget.
A method of encoding a set of frames of a video content into an encoded bit stream, said method comprising:
- identifying a first default bit budget for encoding a first intra-frame type video frame of the plurality of video frames;
- encoding the first video frame using a modified first default bit budget that is modified based on an average frame display duration comprising a historical average frame display duration of a plurality of frames, a plurality of factors related to the first video frame, and an available bandwidth for transmission of the bit stream, each factor in the plurality of factors related to the first video frame assigned a different weight such that adjusting the bit budget occurs disproportionately based on the different weights assigned to each of the factors;
- identifying a second default bit budget for encoding a second intra-frame type video frame of the plurality of video frames, wherein the first and second default bit budgets are different;
- and
- encoding the second video frame using a modified second default bit budget that is modified based on an average frame display duration comprising a historical average frame display duration of a plurality of frames, a plurality of factors related to the second video frame, and the available bandwidth for transmission of the bit stream, each factor in the plurality of factors related to the second video frame assigned a different weight such that adjusting the bit budget occurs disproportionately based on the different weights assigned to each of the factors.
A method of encoding a plurality of video frames of a video content into a bit stream, said method comprising:
- encoding a particular video frame using a bit budget based on a plurality of encoding factors comprising an average frame display duration, the average frame display duration comprising a historical average frame display duration, each factor in the plurality of encoding factors assigned a different weight such that adjusting the bit budget occurs disproportionately based on the different weights assigned to each of the encoding factors;
- increasing the bit budget when a bits per pixel per frame quality of the encoded video frame is below a threshold;
- and
- re-encoding the particular video frame using the increased bit budget.
A method of encoding a plurality of video frames of a video content into an encoded bit stream that satisfies a threshold for decoding said encoded bit stream at a decoding unit, said method comprising:
- identifying a default bit budget for encoding at least one particular video frame of the plurality of video frames into said encoded bit stream;
- optimizing the default bit budget based on a plurality of factors related to the particular video frame, a historical average frame display duration of a plurality of neighboring video frames, and transmission of the bit stream to produce a modified bit budget that satisfies the threshold, each factor in the plurality of factors assigned a different weight such that adjusting the bit budget occurs disproportionately based on the different weights assigned to each of the factors;
- and
- encoding the particular video frame into the bit stream using the modified bit budget.
A non-transitory computer readable storage medium storing a computer program for encoding a plurality of video frames of a video content into a bit stream, the computer program for execution by at least one processor, the computer program comprising sets of instructions for:
- determining a default bit budget for a particular video frame of the plurality of video frames;
- adjusting said default bit budget to generate a target bit budget for said video frame based on a plurality of factors comprising an average frame display duration, the average frame display duration comprising a historical average frame display duration, each factor in the plurality of factors assigned a different weight such that adjusting the default bit budget occurs disproportionately based on the different weights assigned to each of the different factors;
- and
- encoding the particular video frame using the adjusted target bit budget.
Dependencies are inferred from the claim text.