Hybrid Three-Pass Video Encoding for Faster Bitrate Allocation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing multiple pass encoding techniques for video streaming are inefficient due to the use of the same encoder for computing complexity curves across different renditions, leading to sub-optimal bitrate allocation and increased computational complexity, especially in mobile environments with fluctuating bandwidth.
Innovation Solution
A hybrid three pass encoding method using a lower complexity encoder for the first pass to generate an overarching complexity curve, followed by two pass encoding of segments with a higher complexity encoder, reducing overall encoding time and complexity.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Manufacturing precision
If the same high complexity encoder is used for all passes and renditions, then encoding quality is optimized, but encoding time increases significantly
Solution Approach 1:
The video is divided into multiple segments that are processed independently in parallel. Each segment undergoes two-pass encoding, but the complexity curves from different segments are not shared, enabling parallel processing while maintaining quality optimization where needed.
Solution Approach 2:
Instead of performing full two-pass encoding on all segments with a high complexity encoder, the patent applies a simplified approach: only the first pass is performed on selected segments to generate complexity curves, while other segments reuse these curves. This partial application of the complex encoding process reduces overall encoding time while maintaining quality on critical segments.
2Manufacturing precision
If complexity curves are computed separately for every rendition using the same encoder, then bitrate allocation is optimized for each rendition, but computational complexity and processing time increase
Solution Approach 1:
The patent merges the complexity curve computation process across multiple renditions. Instead of independently computing complexity curves for each rendition using the same high complexity encoder, the system computes complexity curves once for the source video and reuses them across different renditions, significantly reducing computational complexity while maintaining optimized bitrate allocation.
Solution Approach 2:
The complexity curves generated from the first pass encoding serve multiple purposes: they are used for bitrate allocation in the second pass, for guiding encoding parameters across different renditions, and for optimizing the overall encoding process. This multi-functional use of the same data structure reduces redundant computations.
3Productivity
If videos are split into segments and encoded independently in parallel, then encoding speed is improved, but information between segments is not shared resulting in sub-optimal bitrate allocation
Solution Approach 1:
The first pass encoding is performed on selected segments before the second pass encoding on all segments. This preliminary action generates complexity curves that guide the subsequent encoding process, ensuring that even though segments are processed in parallel, the bitrate allocation is optimized based on pre-computed complexity information.
Solution Approach 2:
The complexity curves generated from the first pass encoding provide feedback that guides the second pass encoding process. This feedback mechanism ensures that bitrate allocation is optimized based on the actual complexity characteristics of each segment, even when segments are processed independently in parallel.
Data Source
AI summary
The technology described herein relates to hybrid three pass encoding for video streaming. A method for hybrid three pass encoding may include performing a first pass encoding of a video input using a lower complexity encoder, splitting the video input into segments, performing a two pass encoding of each of the segments using a higher complexity encoder and the complexity curve generated in the first pass encoding, and outputting an encoded version of the video input. The first pass using a lower complexity encoder significantly reduces the encoding time and end-to-end encoding complexity. In some embodiments, the first pass may be performed on one of many renditions of the video input, the resulting complexity curve being used for subsequent two pass encodings of many or all renditions of the video input.


