Decoder-Side Motion Vector Refinement with Bi-Predictive Optical Flow
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current inter prediction techniques in video compression require significant computational resources and memory, leading to increased processing time and load, particularly in decoder-side motion vector refinement and bi-predictive optical flow calculations.
Innovation Solution
An inter prediction method that involves selecting reference samples, performing interpolation, deriving integer distance delta motion vectors, and computing bi-predictive optical flow vectors for smaller pixel matrices within a target sub-prediction unit, followed by correction parameter calculation and bi-prediction, to reduce computational load and time.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If decoder-side motion vector refinement and bi-predictive optical flow calculations are performed, then prediction accuracy is improved, but computational load and processing time increase
Solution Approach 1:
The patent divides the current picture block into multiple sub-prediction units (SPUs) and processes them in parallel. Each SPU performs motion vector refinement and optical flow calculations independently, allowing concurrent processing and reducing overall computation time while maintaining accuracy through localized optimizations
Solution Approach 2:
The patent applies bi-predictive optical flow calculations selectively to smaller pixel matrices within sub-prediction units rather than the entire block. This partial application reduces computational complexity while maintaining sufficient prediction accuracy for each region
2Productivity
If motion vector refinement is performed on the decoder-side, then coding efficiency is improved, but device complexity increases
Solution Approach 1:
The patent segments the motion vector refinement process into sub-prediction unit level operations, reducing the complexity burden on any single processing unit while maintaining overall coding efficiency through distributed computation
Solution Approach 2:
The patent changes the granularity parameter from block-level to sub-prediction unit-level processing, which reduces computational complexity per unit while improving coding efficiency through more precise motion compensation
3Measurement precision
If bi-predictive optical flow is calculated for the entire picture block, then prediction accuracy is improved, but memory requirements increase
Solution Approach 1:
The patent segments the picture block into smaller sub-prediction units, reducing the amount of data that needs to be stored and processed in memory at any given time while maintaining prediction accuracy through localized optical flow calculations
Solution Approach 2:
The patent applies optical flow calculations and memory operations locally to each sub-prediction unit rather than globally to the entire block, reducing peak memory requirements while maintaining overall prediction quality
Data Source
AI summary
Methods and system, including decoders and encoders, for interprediction. In one aspect, a method includes selecting reference samples based on motion information of a current picture block of a current picture, deriving first interpolated samples by performing a first interpolation on the selected reference samples, deriving an integer distance delta motion vector for a target sub-prediction unit (PU) by performing integer-distance MVR, deriving M×M pixel matrix flow vectors by performing BPOF, for each M×M pixel matrix in the target sub-PU, based on the first interpolated samples and the integer distance delta motion vector, deriving second interpolated samples by performing a second interpolation on the reference samples, computing at least one correction parameter for the target sub-PU based on the M×M pixel matrix flow vectors, the first interpolated samples and the second interpolated samples, and performing bi-prediction based on the second interpolated samples and the at least one correction parameter.


