HMVP Row Buffer Handling for Parallel Tile Video Coding
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
3Speed
If parallel processing is used, then decoding speed increases, but buffer management complexity increases due to multiple processor threads
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.
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.
Data Source
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.


