Metadata-Assisted Video Decoder Engine Selection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Modern GPUs are inefficient in handling videos encoded with Arbitrary Slice Order (ASO) and Flexible Macro-block Order (FMO) due to incorrectly set constraint flags in H.264/AVC encoders, leading to suboptimal decoding performance as they are treated as pure baseline profiles, which limits hardware-accelerated decoding.
Innovation Solution
A video decoder that utilizes metadata from the encoded video sequence to select the most efficient decoder engine, such as choosing between a CPU and a GPU based on metadata analysis, and dynamically removing emulation prevention bytes to skip start-code scanning, enabling hardware-accelerated decoding even for improperly flagged bitstreams.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If a GPU is used for decoding, then decoding speed is improved, but compatibility with ASO and FMO encoded videos deteriorates
Solution Approach 1:
The system dynamically switches between GPU and CPU decoding based on the video profile detected in the bitstream. When ASO or FMO is detected, the system transitions from GPU to CPU decoding to maintain compatibility while preserving decoding speed for compatible videos.
Solution Approach 2:
The system changes the decoding parameter (decoder engine selection) based on the constraint flag value in the bitstream. When the constraint flag indicates ASO or FMO, the system changes from GPU-based decoding to CPU-based decoding to ensure proper handling of these features.
2Measurement precision
If start-code scanning is performed, then decoding accuracy is improved, but processing time increases
Solution Approach 1:
The system performs preliminary analysis of the constraint flag in the bitstream header to determine whether start-code scanning is necessary. This preliminary action allows the system to skip unnecessary scanning operations while maintaining decoding accuracy when needed.
Solution Approach 2:
The system extracts and analyzes the constraint flag information from the bitstream header separately from the main decoding process. This extraction allows the system to make informed decisions about start-code scanning without affecting the overall decoding workflow.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A video decoder is disclosed that uses metadata in order to make optimization decisions. In one embodiment, metadata is used to choose which of multiple available decoder engines should receive a video sequence. In another embodiment, the optimization decisions can be based on length and location metadata information associated with a video sequence. Using such metadata information, a decoder engine can skip start-code scanning to make the decoding process more efficient. Also based on the choice of decoder engine, it can decide whether emulation prevention byte removal shall happen together with start code scanning or not.