History-Based Motion Vector Prediction for Parallel Video Decoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The challenge of efficiently encoding and decoding high-definition video data, such as 4K×2K or 8K×4K, while maintaining image quality is a constant issue due to the exponential growth in video data volume.

Innovation Solution

Implementing history-based motion vector prediction (HMVP) for parallel processing during video encoding and decoding, utilizing a history-based motion vector predictor (HMVP) table to enhance motion vector prediction accuracy and efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If history-based motion vector prediction is implemented for parallel processing, then encoding and decoding efficiency is improved, but device complexity increases due to the HMVP table management

Engineering Contradiction:
Improveencoding and decoding efficiencyVSAvoiddevice complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the video processing into parallel wavefront threads, with each thread maintaining its own HMVP table. This segmentation allows independent processing of different picture rows while managing complexity through modular, thread-local data structures rather than a single global table.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The HMVP table acts as an intermediary structure that stores historical motion vector information. By introducing this intermediate storage mechanism, the system enables efficient motion vector prediction without requiring complex real-time calculations, thus improving efficiency while keeping the added complexity manageable.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If HMVP table is maintained for each wavefront thread in parallel processing, then processing speed is improved, but memory usage increases

Engineering Contradiction:
Improveprocessing speedVSAvoidmemory usage
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

Instead of using a single large HMVP table for the entire picture, the patent segments the HMVP table into smaller thread-local tables, one for each wavefront thread. This segmentation reduces the memory footprint accessible to each thread while enabling parallel processing, thus improving speed without requiring proportionally more total memory.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each wavefront thread maintains an HMVP table that is sufficient for its specific processing needs rather than all threads sharing a comprehensive table. This partial action approach provides the necessary historical motion vector information for parallel processing while avoiding the excessive memory usage that would result from full redundancy across all threads.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS12556739B2Methods and apparatus of video coding using history-based motion vector prediction
Publication Date: 2026.02.17 BEIJING DAJIA INTERNET INFORMATION TECH CO LTD
  • US12556739B2 patent drawing
  • US12556739B2 patent drawing
  • US12556739B2 patent drawing

AI summary

A computing device performs a method of decoding video data by acquiring a video bitstream including data associated with multiple encoded pictures, each picture including multiple rows of coding tree units (CTUs) and each CTU including one or more coding units (CUs). A data buffer storing a plurality of history-based motion vector predictors is used for encoding the rows of CTUs and the decoding process resets the buffer before decoding a first CU of a current row of CTUs. For a current CU of the row of CTUs, a motion vector candidate list is constructed from exploiting spatial and temporal correlation of motion vectors of neighbouring code units as well as the history-based motion vector predictors in the buffer. Finally, one motion vector predictor is selected, from the motion vector candidate list, for decoding the current CU and the buffer is updated based on the selected one.