Rate control with look-ahead for video transcoding
AssigneeDialogic Corporation
InventorsKyeong H. Yang, Ran Ding
Life of this patent
Estimating the term…
Abstract
Systems and methods of transcoding video bitstreams that employ look-ahead approaches to enhance the overall perceptual quality of transcoded video information, communications, and entertainment delivered to an end user. The disclosed systems and methods of transcoding video bitstreams take into account the scene characteristics and the local coding complexity of video frames in a video sequence before performing bit allocations for the video frames, thereby significantly improving the perceptual quality of transcoded video delivered to the end user.
Claims50
A method of performing rate control in a video transcoding system, comprising the steps of:
- receiving, by the video transcoding system, an input video bitstream including a plurality of video frames in an input video sequence, each video frame including a plurality of macroblocks, the input video bitstream being in a first coding format;
- for each of at least some of the plurality of video frames in the input video bitstream:
- decoding the video frame;
- obtaining frame complexity information for the video frame;
- obtaining local complexity information for each macroblock included in the video frame;
- performing bit allocation for the video frame using at least the obtained frame complexity information;
- selecting a quantization parameter appropriate for the bit allocation using at least the obtained local complexity information;
- and
- encoding the video frame in a second coding format using the selected quantization parameter;
- and
- providing the video frames encoded in the second coding format in an output video bitstream.
A video transcoding system, comprising:
- a look-ahead bitstream analyzer operative to receive an input video bitstream, the input video bitstream including a plurality of video frames in an input video sequence, each video frame including a plurality of macroblocks, the input video bitstream being in a first coding format;
- a video decoder operative to receive the input video bitstream including the plurality of video frames, and, for each of at least some of the plurality of video frames in the input video bitstream, to decode the video frame;
- and
- a video encoder operative to receive the decoded video frames, and, for each of at least some of the decoded video frames:
- to obtain frame complexity information for the video frame;
- to obtain local complexity information for each macroblock included in the video frame;
- to perform bit allocation for the video frame using at least the obtained frame complexity information;
- to select a quantization parameter appropriate for the bit allocation using at least the obtained local complexity information;
- and
- to encode the video frame in a second coding format using the selected quantization parameter;
- and
- providing the video frames encoded in the second coding format in an output video bitstream.
A video transcoding system, comprising:
- a look-ahead bitstream analyzer operative to receive an input video bitstream, the input video bitstream including a plurality of video frames in an input video sequence, each video frame including a plurality of macroblocks, each video frame having frame characteristics, the input video bitstream being in a first coding format;
- a video decoder operative to receive the input video bitstream including the plurality of video frames, and, for each of at least some of the plurality of video frames in the input video bitstream, to decode the video frame;
- and
- a video encoder operative to receive the decoded video frames, and, for each of at least some of the decoded video frames:
- to obtain frame complexity information for the video frame;
- to obtain local complexity information for each macroblock included in the video frame;
- to perform bit allocation for the video frame using at least the obtained frame complexity information;
- to select a quantization parameter appropriate for the bit allocation using at least the obtained local complexity information;
- to set a B-frame rate in an output video bitstream based on the frame characteristics of the video frame;
- and
- to encode the video frame in a second coding format using the selected quantization parameter;
- and
- providing the video frames encoded in the second coding format in the output video bitstream.
A method of performing rate control in a video transcoding system, comprising the steps of:
- receiving, by the video transcoding system, an input video bitstream including a plurality of video frames in an input video sequence, the plurality of video frames including at least one first video frame and at least one second video frame, each of the at least one first video frame being a P-frame or an I-frame, and each of the at least one second video frame being a B-frame, the at least one second video frame following the at least one first video frame in the input video sequence;
- decoding at least the at least one first video frame;
- forming a set of video frames, the set of video frames including the at least one first video frame followed by the at least one second video frame;
- obtaining an estimate of a total bit allocation for the plurality of video frames;
- obtaining an estimate of a bit allocation for the set of video frames, the estimate of the bit allocation for the set of video frames being a weighted portion of the total bit allocation for the plurality of video frames;
- performing a bit allocation for the at least one first video frame based at least in part on the estimate of the bit allocation for the set of video frames;
- selecting a quantization parameter appropriate for the performed bit allocation;
- encoding the at least one first video frame in a second coding format using the selected quantization parameter;
- and
- providing the at least one first video frame encoded in the second coding format in an output video bitstream.
A method of performing rate control in a video transcoding system, comprising the steps of:
- receiving, by the video transcoding system, a coded video bitstream including a plurality of video frames in a coded video sequence, the coded video bitstream being in a first coding format;
- for each of at least some of the plurality of video frames in the coded video bitstream:
- decoding the video frame;
- obtaining frame complexity information for the video frame, the obtaining of the frame complexity information for the video frame including, in the event the video frame is a P-frame, generating, at least at some times, an estimate of a frame complexity of the video frame based on one or more estimates of frame complexities for one or more previous P-frames in the coded video sequence, the one or more previous P-frames being in a same scene as the video frame;
- performing bit allocation for the video frame using at least the obtained frame complexity information;
- selecting a quantization parameter appropriate for the performed bit allocation;
- and
- encoding the video frame in a second coding format using at least the selected quantization parameter;
- and
- providing the video frames encoded in the second coding format in an output video bitstream.
A method of performing rate control in a video transcoding system, comprising the steps of:
- receiving, by the video transcoding system, a coded video bitstream including a plurality of video frames in a coded video sequence, the coded video bitstream being coded from at least an input video bitstream, the coded video bitstream being in a first coding format;
- for each of at least some of the plurality of video frames in the coded video bitstream:
- decoding the video frame;
- obtaining frame complexity information for the video frame, the obtaining of the frame complexity information for the video frame including, in the event the video frame is an I-frame, the I-frame in the coded video bitstream corresponding to a P-frame in the input video bitstream, generating, at least at some times, an estimate of a frame complexity of the video frame as a weighted average of a frame complexity of the P-frame, and at least one frame complexity of at least one previous I-frame in the coded video bitstream, the at least one previous I-frame being in a same scene as the video frame;
- performing bit allocation for the video frame using at least the obtained frame complexity information;
- selecting a quantization parameter appropriate for the performed bit allocation;
- and
- encoding the video frame in a second coding format using at least the selected quantization parameter;
- and
- providing the video frames encoded in the second coding format in an output video bitstream.
A method of performing rate control in a video transcoding system, comprising the steps of:
- receiving, by the video transcoding system, an input video bitstream including a plurality of video frames in an input video sequence, each video frame including a plurality of macroblocks, the input video bitstream being in a first coding format;
- for each of at least some of the plurality of video frames in the input video bitstream:
- decoding the video frame, the video frame including texture bits and header bits;
- partitioning the texture bits into at least luma texture bits and chroma texture bits;
- obtaining an estimate of a bit allocation for the video frame using at least the luma texture bits, the chroma texture bits, and the header bits;
- performing bit allocation for the video frame using at least the obtained estimate of the bit allocation;
- selecting a quantization parameter appropriate for the bit allocation;
- and
- encoding the video frame in a second coding format using at least the selected quantization parameter;
- and
- providing the video frames encoded in the second coding format in an output video bitstream.
Dependencies are inferred from the claim text.