HMVP Row Buffer Handling for Parallel Tile Video Coding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing video coding technologies do not effectively manage the history motion vector prediction buffer (HMVP) during parallel processing, leading to inefficiencies and improper retention of irrelevant data.

Innovation Solution

The method involves resetting the HMVP buffer when a current block is the beginning of a row in a grid of blocks being decoded in parallel, ensuring relevant data is retained and irrelevant data is removed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the HMVP buffer is not reset during parallel processing, then decoding can continue without interruption, but irrelevant data is retained and encoding/decoding efficiency is reduced

Engineering Contradiction:
Improvedecoding efficiencyVSAvoidirrelevant data retention
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent divides the picture into multiple rows and resets the HMVP buffer at row boundaries during parallel processing. This segmentation allows different processor threads to work on different rows independently while maintaining correct buffer state at each row transition, resolving the contradiction between continuous decoding and data relevance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a row buffer as an intermediary structure between the HMVP buffer and the current picture data. The row buffer temporarily stores motion vector predictors for each row, allowing parallel processing to access relevant data without retaining irrelevant data from previous rows in the main HMVP buffer.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If the HMVP buffer is reset at every block, then relevant data is maintained for current block processing, but unnecessary resets occur during parallel processing reducing efficiency

Engineering Contradiction:
Improvedata relevanceVSAvoidprocessing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies different reset policies to different parts of the buffer based on their functional requirements. The HMVP buffer is reset at row boundaries rather than at every block boundary, providing local quality control that maintains data relevance while avoiding unnecessary resets during parallel processing of multiple blocks within the same row.

Inventive Principle:
Principle #3Local quality

3Speed

If parallel processing is used, then decoding speed increases, but buffer management complexity increases due to multiple processor threads

Engineering Contradiction:
Improvedecoding speedVSAvoidbuffer management complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent segments the picture into rows that can be processed in parallel by different threads. Each thread manages its own row's buffer state independently, simplifying the buffer management complexity that would otherwise arise from coordinating a single shared buffer across all parallel threads.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent uses a row buffer that copies relevant motion vector predictor data from the HMVP buffer for each row. This copying mechanism allows multiple processor threads to access row-specific data without complex synchronization, reducing buffer management complexity while maintaining parallel processing speed benefits.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS12634494B2Management of HMVP buffer for parallel coding
Publication Date: 2026.05.19 TENCENT AMERICA LLC
  • US12634494B2 patent drawing
  • US12634494B2 patent drawing
  • US12634494B2 patent drawing

AI summary

A method of video encoding includes, prior to encoding a first tile of s plurality of tiles of a current picture, initializing a shared row buffer that is shared among multiple processor threads associated with the first tile. The method also includes encoding a first unit of a plurality of units in a first row of the first tile by a first processor thread and using a corresponding first HMVP buffer. The method also includes, when all of the plurality of blocks in the first unit have been encoded, copying contents of the first HMVP buffer into the shared row buffer, copying contents of the shared row buffer into a second HMVP buffer, starting encoding of a unit in a second row of the plurality of rows by the second processor thread using the second HMVP buffer, and resetting the first HMVP buffer.