Historical Motion Vector Reset for First-Block Prediction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing motion vector prediction methods, particularly historical motion vector prediction, face inefficiencies when coding the first blocks of each coding block row due to limited storage in the historical motion vector predictor list, leading to reduced accuracy and compression efficiency.

Innovation Solution

Implementing a dual-list storage model with a reset list that stores motion vectors from the left side of the frame, allowing for improved motion prediction accuracy and efficiency by using these vectors for the first blocks of each row, especially when wavefront parallel coding is employed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If historical motion vector prediction is used for first blocks of each row, then motion prediction accuracy should improve, but the limited storage in historical motion vector predictor list causes reduced accuracy

Engineering Contradiction:
Improvemotion prediction accuracyVSAvoidstorage capacity of historical motion vector predictor list
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent divides the frame into two distinct sets of blocks: first blocks of each row and other blocks. Different historical motion vector predictor lists are maintained for these two sets. The first blocks use a dedicated list that is reset for each row, while other blocks use a shared historical list. This segmentation allows optimized prediction for first blocks without being constrained by the limited storage capacity of a single unified list.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary actions by resetting the historical motion vector predictor list specifically for first blocks of each row before processing those blocks. This reset operation prepares the list with appropriate initial values (such as zero vectors or vectors from previous rows) that are suitable for predicting motion in the first blocks, ensuring accurate prediction before the main processing begins.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If wavefront parallel coding is employed, then processing efficiency should improve, but motion prediction accuracy for first blocks deteriorates due to limited historical data

Engineering Contradiction:
Improvetranscoding efficiencyVSAvoidmotion prediction accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent segments the coding process into two distinct pathways: one for first blocks of each row and another for other blocks. This segmentation enables wavefront parallel coding to proceed efficiently while maintaining prediction accuracy for first blocks through the dedicated reset list mechanism, resolving the conflict between processing efficiency and prediction accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The reset list acts as an intermediary structure between the wavefront parallel coding process and the motion prediction requirement. It provides the necessary historical motion vector data for first blocks without interfering with the parallel processing efficiency, mediating between the need for accurate prediction and the benefits of wavefront parallel coding.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12483693B2Reset of historical motion vector prediction
Publication Date: 2025.11.25 HULU LLC
  • US12483693B2 patent drawing
  • US12483693B2 patent drawing
  • US12483693B2 patent drawing

AI summary

In some embodiments, a method maintains a list that is configured to store motion vectors from one or more blocks that have been previously processed in a frame. When a current block is in a first set of positions in the frame, the method resets the list by storing a motion vector with a horizontal component and a vertical component equal to zero in the list. The motion vector with the horizontal component and the vertical component equal to zero from the list is used to transcode the current block. When the current block is not in the first set of positions, the method uses a motion vector from the list to transcode the current block.