Parallel Marker Detection in Video Decoding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current video decoding methods are computationally inefficient due to the need for straightforward byte-by-byte scanning to identify emulation prevention bytes and start code prefixes in byte streams, particularly in formats like H.264 and HEVC, which hampers performance.
Innovation Solution
An optimized byte pattern scan algorithm utilizing Single Instruction Multiple Data (SIMD) capabilities, such as ARM NEON and x86/amd64 SSE, is applied to parallel processing units to adaptively search for known patterns in video data, improving the efficiency of marker identification and separation in video decoding.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If straightforward byte-by-byte scanning is used to identify markers in video streams, then the decoding process is simple to implement, but the processing speed and efficiency deteriorate
Solution Approach 1:
The patent divides the video stream into multiple segments or chunks that can be processed simultaneously. By segmenting the data stream and assigning different segments to multiple processing threads or cores, the marker detection process achieves parallel execution, thereby improving processing speed while maintaining implementation simplicity through modular design.
Solution Approach 2:
The patent applies partial action by focusing the parallel processing effort specifically on marker detection tasks rather than entire video decoding. This selective parallelization provides performance improvement where needed (marker identification) without requiring full parallelization of the entire decoding pipeline, balancing complexity and benefit.
2Productivity
If parallel processing is implemented to speed up marker identification, then processing efficiency improves, but system complexity increases
Solution Approach 1:
The patent segments the parallel processing task into independent marker detection units that can operate concurrently. Each processing unit handles a specific portion of the stream independently, reducing inter-thread dependencies and synchronization complexity while maintaining parallel efficiency.
Solution Approach 2:
The patent implements self-service through automatic thread management and adaptive parallel processing where the system automatically determines the optimal degree of parallelization based on available resources and stream characteristics. This reduces the burden on developers to manually configure complex parallel processing parameters.
3Loss of time
If adaptive parallel processing is used for byte pattern scanning, then processing time is reduced by 60-80%, but the algorithm complexity increases
Solution Approach 1:
The patent applies partial action by implementing parallel processing specifically for the byte pattern scanning portion of video decoding rather than the entire decoding pipeline. This targeted approach achieves significant time reduction (60-80%) for the critical marker detection path without requiring parallelization of less critical decoding stages, thus limiting algorithm complexity increase to only where necessary.
Solution Approach 2:
The patent utilizes parameter changes by dynamically adjusting parallel processing parameters such as thread count, chunk size, and scanning depth based on available computational resources and stream characteristics. This adaptability allows the system to optimize processing time while managing algorithm complexity through parameter tuning rather than fundamental algorithmic changes.
Data Source
AI summary
A video decoding method is implemented by a computer having multiple parallel processing units. A stream of data elements is received, some of which encode video content. The stream comprises marker sequences, each marker sequence comprising a marker which does not encode video content. A known pattern of data elements occurs in each marker sequence. A respective part of the stream is supplied to each parallel processing unit. Each parallel processing unit processes the respective part of the stream, whereby multiple parts of the stream are processed in parallel, to detect whether any of the multiple parts matches the known pattern of data elements, thereby identifying the markers. The encoded video content is separated from the identified markers. The separated video content is decoded, and the decoded video content outputted on a display.


