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.
Claims33
A method of performing rate control in a video transcoding system, comprising the steps of:
- receiving an input video bitstream including a plurality of video frames encoded in a first coding format;
- obtaining, at a look-ahead bitstream analyzer, frame coding complexity information for at least some of the plurality of video frames;
- for each of at least some of the plurality of video frames:
- decoding the video frame, the video frame including a plurality of macroblocks;
- obtaining local coding complexity information for each of at least some of the plurality of macroblocks included in the video frame;
- performing bit allocation for the video frame using at least some of the frame coding complexity information obtained at the look-ahead bitstream analyzer;
- selecting a quantization parameter (QP) appropriate for the bit allocation using at least the local coding complexity information for the video frame;
- and
- using the selected QP, encoding the video frame in a second coding format as one of a predictive frame (P-frame), an intra-coded frame (I-frame), and a bidirectional predictive frame (B-frame);
- having encoded at least some of the plurality of video frames in the second coding format as P-frames or I-frames, adaptively modifying a B-frame rate between at least one pair of P-frames or I-frames based at least on local coding complexity information obtained for a current video frame included in the plurality of video frames;
- and
- providing the plurality of 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 plurality of video frames being encoded in a first coding format;
- and
- to obtain frame coding complexity information for at least some of the plurality of video frames;
- 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, 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 local coding complexity information for each of at least some of the plurality of macroblocks included in the video frame;
- to perform bit allocation for the video frame using at least some of the frame coding complexity information obtained at the look-ahead bitstream analyzer;
- to select a quantization parameter (QP) appropriate for the bit allocation using at least the local coding complexity information for the video frame;
- and
- using the selected QP, to encode the video frame in a second coding format as one of a predictive frame (P-frame), an intra-coded frame (I-frame), and a bidirectional predictive frame (B-frame),
- wherein the video encoder is further operative:
- having encoded at least some of the plurality of video frames in the second coding format as P-frames or I-frames, to adaptively modify a B-frame rate between at least one pair of P-frames or I-frames based at least on local coding complexity information obtained for a current video frame received at the video encoder;
- and
- to provide the plurality of 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 plurality of video frames being encoded in a first coding format;
- and
- to obtain frame coding complexity information for at least some of the plurality of video frames;
- 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, 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 local coding complexity information for each of at least some of the plurality of macroblocks included in the video frame;
- to perform bit allocation for the video frame using at least some of the frame coding complexity information obtained at the look-ahead bitstream analyzer;
- to select a quantization parameter (QP) appropriate for the bit allocation using at least the local coding complexity information for the video frame;
- and
- using the selected QP, to encode the video frame in a second coding format as one of a predictive frame (P-frame), an intra-coded frame (I-frame), and a bidirectional predictive frame (B-frame),
- wherein the video encoder is further operative:
- having encoded a respective one of the plurality of video frames in the second coding format as a P-frame or an I-frame, to obtain local coding complexity information for a current video frame received at the video encoder;
- for the current video frame, to normalize the local coding complexity information for a predetermined QP;
- to obtain average local coding complexity information for the plurality of video frames;
- to update the average local coding complexity information as a weighted average of the average local coding complexity information and the normalized local coding complexity information;
- to obtain weighted complexity information as a function of the updated average local coding complexity information and at least some of the frame coding complexity information obtained at the look-ahead bitstream analyzer;
- to perform a comparison of the weighted complexity information and one or more predetermined threshold values;
- to modify the B-frame rate between at least one pair of P-frames or I-frames based at least on a result of the comparison;
- and
- to provide the plurality of video frames encoded in the second coding format in an output video bitstream.
Dependencies are inferred from the claim text.