Decoder Motion Vector Derivation Parallel Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In traditional video coding systems, decoder-side motion vector derivation (DMVD) increases computational complexity and slows down decoding due to dependencies on spatially neighboring reconstructed pixels and motion vector prediction, limiting parallel processing efficiency.

Innovation Solution

Implementing a self MV derivation module that uses temporally neighboring reconstructed pixels for motion estimation, removing dependencies on spatially neighboring pixels and allowing parallel decoding of DMVD and non-DMVD blocks by marking DMVD blocks as unavailable for motion vector prediction, and employing fast candidate search algorithms to reduce computational overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If decoder-side motion estimation uses spatially neighboring reconstructed pixels, then motion vector derivation accuracy is improved, but decoding parallelization is limited because DMVD blocks must wait for neighboring blocks to be decoded

Engineering Contradiction:
Improvemotion vector derivation accuracyVSAvoiddecoding parallelization efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent divides the motion estimation process into two independent parts: (1) estimating motion vectors for DMVD blocks using temporal reference pictures, and (2) estimating motion vectors for non-DMVD blocks using spatial neighboring blocks. This segmentation allows both types of blocks to be processed in parallel without waiting for each other, resolving the dependency bottleneck while maintaining accuracy through temporal reference usage.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces temporal reference pictures as an intermediary resource that DMVD blocks can use to estimate motion vectors independently. Instead of requiring spatial neighboring blocks to be decoded first, the system uses temporal references (previous or future frames) as mediators, enabling parallel processing while maintaining motion vector derivation accuracy.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If exhaustive search algorithms are used for motion vector search, then motion vector accuracy is improved, but computational complexity and processing time increase significantly

Engineering Contradiction:
Improvemotion vector accuracyVSAvoidcomputational complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent applies partial search action by limiting the search scope to a predefined search window around the temporal collocated block's motion vector rather than performing exhaustive search across the entire reference picture. This partial search approach maintains sufficient accuracy for most cases while dramatically reducing computational complexity and processing time.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent changes the search parameters by restricting the search range to a window defined by the temporal collocated block's motion vector and a predetermined search radius. This parameter modification transforms the exhaustive search into a localized search, reducing the number of candidates to evaluate while maintaining acceptable motion vector accuracy.

Inventive Principle:
Principle #35Parameter changes

3Measurement precision

If motion vectors of DMVD blocks are used for motion vector prediction of neighboring blocks, then prediction accuracy is improved, but decoding dependencies increase causing sequential processing requirements

Engineering Contradiction:
Improvemotion vector prediction accuracyVSAvoiddecoding time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent segments the motion vector prediction process into two independent paths: (1) DMVD blocks estimate their own motion vectors using temporal references, and (2) non-DMVD blocks use spatial neighboring blocks for prediction. This segmentation eliminates the sequential dependency where non-DMVD blocks would have to wait for DMVD block motion vectors to be computed, enabling parallel processing and reducing decoding time.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary motion vector estimation for DMVD blocks using temporal references before using these vectors for predicting neighboring blocks. By preparing the motion vectors in advance through temporal estimation, the system eliminates the need for sequential processing and enables parallel decoding of both DMVD and non-DMVD blocks.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9509995B2System and method for enhanced DMVD processing
Publication Date: 2016.11.29 TAHOE RES LTD
  • US9509995B2 patent drawing
  • US9509995B2 patent drawing
  • US9509995B2 patent drawing

AI summary

To let decoder side motion vector derivation (DMVD) coded blocks be decoded in parallel, decoder side motion estimation (ME) dependency on spatially neighboring reconstructed pixels can be removed. Mirror ME and projective ME are only performed on two reference pictures, and the spatially neighboring reconstructed pixels will not be considered in the measurement metric of the decoder side ME. Also, at a video decoder, motion estimation for a target block in a current picture can be performed by calculating a motion vector for a spatially neighboring DMVD block, using the calculated motion vector to predict motion vectors of neighboring blocks of the DMVD block, and decoding the DMVD block and the target block in parallel. In addition, determining a best motion vector for a target block in a current picture can be performed by searching only candidate motion vectors in a search window, wherein candidate motion vectors are derived from a small range motion search around motion vectors of neighboring blocks.