Multithreaded Video Decoder Error Concealment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing video decoding technologies face challenges in efficiently handling error detection, recovery, and concealment, particularly in multithreaded implementations and when using video acceleration, as they often fail to address these issues satisfactorily, leading to suboptimal performance in decoding high-quality, high-bit rate video.

Innovation Solution

A multithreaded video decoder identifies suitable neighbor pictures for error concealment, modifies syntax elements, and uses dynamic dependency edges to facilitate error concealment, employing additional GPU shaders and changing picture types to handle errors effectively, while also providing error recovery mechanisms for arbitrary bit stream positions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If error concealment is implemented in multithreaded video decoding, then error resilience is improved, but decoding complexity increases

Engineering Contradiction:
Improveerror resilienceVSAvoiddecoding complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-identifying suitable neighbor pictures and establishing task dependency data structures before error concealment is needed. The decoder proactively builds the task dependency graph and identifies candidate reference pictures in advance, so that when errors occur, the concealment process can proceed efficiently using pre-prepared data structures rather than searching for solutions during error recovery.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces task dependency data structures and suitable neighbor pictures as intermediaries between the error detection mechanism and the error concealment execution. These intermediaries facilitate the transfer of control information and coordinate the actions of multiple decoding threads, enabling complex error concealment operations to be managed through structured dependencies rather than direct complex interactions.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If error concealment techniques are added to video decoder, then error recovery capability is improved, but decoding speed decreases

Engineering Contradiction:
Improveerror recovery capabilityVSAvoiddecoding speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent pre-identifies suitable neighbor pictures and establishes task dependencies before errors occur, so that error concealment can be executed efficiently without adding significant processing overhead during normal decoding operations. The preliminary setup of task dependency data structures enables rapid error recovery while maintaining decoding speed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The error concealment mechanism serves itself by automatically selecting suitable neighbor pictures and establishing task dependencies without requiring external intervention or complex control logic during error recovery. The system uses its own decoded pictures and internal task dependency structures to perform concealment, eliminating the need for additional external processing resources.

Inventive Principle:
Principle #25Self-service

3Productivity

If multiple threads are used for video decoding, then decoding efficiency is improved, but error handling becomes more difficult

Engineering Contradiction:
Improvedecoding efficiencyVSAvoiderror handling complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the error handling process into distinct components: error detection in individual decoding threads, centralized task dependency data structure management, and coordinated error concealment execution. Each decoding thread operates independently on its assigned video data while sharing the task dependency structure, allowing parallel processing to continue while errors are handled through structured coordination rather than complex inter-thread communication.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The task dependency data structure serves as an intermediary that coordinates error handling across multiple decoding threads without requiring direct thread-to-thread communication. The structure centralizes the management of task dependencies and suitable neighbor picture identification, allowing multiple threads to access and update error recovery information in a standardized way, thereby simplifying multi-threaded error handling.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9788018B2Error concealment techniques in video decoding
Publication Date: 2017.10.10 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9788018B2 patent drawing
  • US9788018B2 patent drawing
  • US9788018B2 patent drawing

AI summary

Error concealment techniques for video decoding are described. For example, a video decoder after finding a corrupted picture in a bit stream, finds a suitable neighbor for the corrupted picture. For example, the video decoder favors pictures with the same parity as the corrupted picture and considers picture order count and picture corruption in choosing a neighbor. The decoder then modifies syntax elements for the encoded video in the bit stream to allow the neighbor to be used in concealing the corruption in the corrupted picture. The modification of syntax elements can depend on the particular video decoder implementation. For example, in a software-only multithreaded video decoder, a task graph is modified, while in a system utilizing video acceleration, syntax elements for reference lists are modified.