Rate control for parallel video encoding
AssigneeIntel Corporation
InventorsXimin Zhang, Sang-Hee Lee
Life of this patent
Estimating the term…
Abstract
Systems and methods for determining a target number of bits (target bitrate) for encoding a frame of video that will satisfy a buffer constraint in a parallel video encoder. The quantization parameter (QP) for a given encoding process may be determined for the frame based on the target bitrate to maintain a suitable average bitrate. In some embodiments, the bitrate used for one or more prior frame is estimated. In some embodiments, a buffer fullness update is made based on an estimated bitrate. In some embodiments, a bitrate to target for each frame is determined based on the frame type, estimated bitrate of a prior frame(s), and the updated buffer fullness.
Claims20
A computer-implemented method for parallel video encoding, the method comprising:
- processing a first video frame immediately preceding a current video frame, and a second video frame immediately preceding the first video frame, through one or more first encoding pipelines and generating intermediate parameters indicative of the processing, wherein the intermediate parameters comprise a first quantization parameter (QP) value, and at least one of an estimated prediction distortion (PD) and an actual PD associated with the encoding of the first video frame, and wherein the intermediate parameters further comprise an actual bitrate, an estimated bitrate, and a second QP value associated with encoding the second video frame;
- and
- processing the current video frame through a second encoding pipeline, wherein the processing of the current video frame further comprises:
- selecting the estimated PD or actual PD associated with the encoding of the first video frame based on synchronization information indicative of an availability of the estimated or actual PD from the first video frame processing;
- estimating a bitrate for the first video frame based, at least in part, on the first and second QP values, and the selected estimated or actual PD;
- updating a buffer fullness based, at least in part, on the bitrate estimate for the first video frame, the actual and the estimated bitrates for the second video frame;
- and
- determining a target bitrate for the current video frame based, at least in part, on the bitrate estimate for the first video frame and the buffer fullness update.
One or more non-transitory machine-readable media having a plurality of instructions stored thereon which, when executed on a computing device, cause the computing device to perform a method of parallel video coding, comprising:
- processing a first video frame immediately preceding a current video frame, and a second video frame immediately preceding the first video frame, through one or more first encoding pipelines and generating intermediate parameters indicative of the processing, wherein the intermediate parameters comprise a first quantization parameter (QP) value, and at least one of an estimated prediction distortion (PD) and an actual PD associated with the encoding of the first video frame, and wherein the intermediate parameters further comprise an actual bitrate, an estimated bitrate, and a second QP value associated with encoding the second video frame;
- and
- processing the current video frame, or portion thereof, through a second encoding pipeline, wherein the processing of the current video frame further comprises:
- selecting the estimated PD or actual PD associated with the encoding of the first video frame based on synchronization information indicative of an availability of the estimated or actual PD from the first video frame processing;
- estimating a bitrate for the first video frame based, at least in part, on the first and second QP values, and the selected estimated or actual PD;
- updating a buffer fullness based at least in part on the estimated bitrate for the first video frame, the actual and the estimated bitrates for the second video frame;
- and
- determining a target bitrate for the current video frame based, at least in part, on the bitrate estimate for the first video frame and the buffer fullness update.
An apparatus for parallel video encoding, the apparatus comprising:
- a memory to store a current video frame, a first video frame immediately preceding the current video frame, and a second video frame immediately preceding the first video frame;
- and
- a processor coupled to the memory, the processor to:
- process the first and second video frames through a first encoding pipeline and generate intermediate parameters indicative of the processing, wherein the intermediate parameters comprise a first quantization parameter (QP) value, and at least one of an estimated prediction distortion (PD) and an actual PD associated with the encoding of the first video frame, and wherein the intermediate parameters further comprise an actual bitrate, an estimated bitrate, and a second QP value associated with encoding the second video frame;
- process the current video frame through a second encoding pipeline, wherein to process the current video frame, the processor is to:
- select the estimated PD or actual PD associated with the encoding of the first video frame based on synchronization information indicative of an availability of the estimated or actual PD from the first video frame processing;
- estimate of a bitrate for the first video frame based, at least in part, on the first and second QP values, and the selected estimated or actual PD;
- update to a buffer fullness based at least in part on the bitrate estimate for the first video frame, the actual and the estimated bitrates for the second video frame;
- and
- determine a target bitrate for the current video frame based at least in part on the bitrate estimate for the first video frame and the buffer fullness update.
Dependencies are inferred from the claim text.