Video Decoder Error Handling via Segmented Task Verification
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing video decoding technologies face challenges in efficiently detecting, recovering from, and concealing errors, particularly in multithreaded systems and when handling computationally intensive operations like H.264 and VC-1 standards, where error detection and recovery mechanisms are not adequately addressed.
Innovation Solution
The implementation of error handling and recovery frameworks that include parsing network abstraction layer units, picture extent discovery tasks, entropy decoding verification, and error concealment strategies, such as marking corrupted macroblocks and disabling deblocking across boundaries, allowing for efficient error detection and recovery in multithreaded video decoding systems.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If error detection and recovery mechanisms are implemented in video decoding, then reliability is improved, but device complexity increases
Solution Approach 1:
The decoding process is divided into distinct stages (PED task, entropy decoding task, motion compensation task, deblocking task) with error detection at multiple points. Each stage handles errors independently and passes control information to subsequent stages, allowing localized error management without overwhelming the entire system.
Solution Approach 2:
Error detection is performed in advance at the PED task stage by verifying macroblocks before they are processed by subsequent decoding tasks. Corrupted macroblocks are identified and marked early, preventing propagation of errors through the decoding pipeline and reducing the burden on later stages.
2Measurement precision
If comprehensive error verification is performed during decoding, then measurement precision is improved, but productivity decreases
Solution Approach 1:
Error verification is applied selectively rather than uniformly to all data. The PED task verifies macroblocks and sets control information, but subsequent tasks use this pre-verified information to avoid redundant verification. This partial application of verification maintains high detection accuracy while preserving decoding speed.
Solution Approach 2:
Control information about verified macroblocks is fed back through the decoding pipeline. The PED task generates verification results that are used by entropy decoding, motion compensation, and deblocking tasks to adjust their processing, avoiding redundant verification steps and maintaining high decoding efficiency.
3Reliability
If error recovery mechanisms are implemented in multithreaded systems, then reliability is improved, but device complexity increases
Solution Approach 1:
The multithreaded decoding system is segmented into independent tasks (PED, entropy decoding, motion compensation, deblocking) that can execute in parallel. Each task has its own error detection and handling mechanisms, allowing errors to be managed locally without requiring complex coordination between threads.
Solution Approach 2:
Control information acts as an intermediary carrying error verification results between tasks. The PED task generates control information that mediates the processing of subsequent tasks, enabling error recovery without requiring direct communication or complex synchronization between multiple threads.
Data Source
AI summary
Error detecting and protection innovations for video decoders are described. For example, in a multithreaded video decoder, a picture extent discovery (PED) task detects an error in a video bitstream which corrupts a picture. The PED task then determines any PED sub-stage which have been completed for the picture, and based on this determination, performs error-handing PED operations. In another example, an entropy decoding (ED) task checks validity on a macroblock-by-macroblock basis using a redundant buffer to avoid overflows. Additionally, error recovery innovations are described which facilitate playback of a video bit stream at an arbitrary position. For example, a video decoder chooses a picture in the bit stream after the arbitrary position at which to begin decoding based on a determination of acceptable recovery time and/or acceptable picture quality.


