Parallel Marker Detection in Video Decoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvesimplicity of implementationVSAvoidprocessing speed
Core Design Contradiction:
Ease of operationVSProductivity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #16Partial or excessive action

2Productivity

If parallel processing is implemented to speed up marker identification, then processing efficiency improves, but system complexity increases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #25Self-service

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

Engineering Contradiction:
Improveprocessing timeVSAvoidalgorithm complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

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.

Inventive Principle:
Principle #16Partial or excessive action

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.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10484698B2Detecting markers in an encoded video signal
Publication Date: 2019.11.19 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10484698B2 patent drawing
  • US10484698B2 patent drawing
  • US10484698B2 patent drawing

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.