Video Block Sub-partition Motion Refinement and Padding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current video coding standards, such as HEVC and VVC, face challenges in efficiently refining motion vectors for inter prediction, particularly in handling large blocks and complex motion patterns, which affects coding efficiency and computational complexity.
Innovation Solution
The method involves partitioning blocks into sub-partitions and performing motion refinement using a refined motion vector, with padding of boundary pixels and bi-linear interpolation to generate predictors, reducing computational complexity and improving coding efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If motion refinement is performed on the entire block, then motion accuracy is improved, but computational complexity increases significantly
Solution Approach 1:
The current block is divided into multiple sub-partitions, and motion refinement is performed independently on each sub-partition rather than on the entire block. This segmentation reduces the computational complexity of motion refinement while maintaining motion accuracy in different regions of the block with complex motion patterns.
Solution Approach 2:
Different regions of the block are treated differently through sub-partitioning. Motion refinement is applied locally to each sub-partition based on its specific motion characteristics, allowing the system to allocate computational resources efficiently to regions that require higher motion accuracy while reducing complexity in regions with simpler motion.
2Productivity
If block size is increased to reduce overhead, then coding efficiency improves, but motion representation accuracy deteriorates for complex motion patterns
Solution Approach 1:
Large blocks are divided into smaller sub-partitions for motion refinement purposes. This allows the system to maintain large block sizes for coding efficiency while applying fine-grained motion analysis to sub-partitions, thereby preserving motion representation accuracy for complex motion patterns within large blocks.
Solution Approach 2:
The solution introduces a new dimension of processing by dividing blocks into sub-partitions. This dimensional transformation allows simultaneous achievement of large block coding efficiency and fine motion representation accuracy by operating at both block and sub-partition levels.
3Device complexity
If sub-partitioning is applied to reduce complexity, then computational complexity decreases, but motion refinement accuracy deteriorates
Solution Approach 1:
Motion refinement is applied locally to each sub-partition with tailored processing. This local quality approach ensures that motion refinement accuracy is maintained for each sub-region even though the overall block is divided, preventing the deterioration of motion refinement accuracy that would occur with uniform coarse processing.
Solution Approach 2:
Motion refinement is applied partially to sub-partitions rather than to the entire block. This partial action reduces computational complexity by limiting the scope of refinement operations to smaller regions, while the cumulative effect across all sub-partitions maintains overall motion refinement accuracy.
Data Source
AI summary
Exemplary video processing methods and apparatuses for encoding or decoding a current block by inter prediction are disclosed. Input data of a current block is received and partitioned into sub-partitions and motion refinement is independently performed on each sub-partition. A reference block for each sub-partition is obtained from one or more reference pictures according to an initial motion vector (MV). A refined MV for each sub-partition is derived by searching around the initial MV with N-pixel refinement. One or more boundary pixels of the reference block for a sub-partition is padded for motion compensation of the sub-partition. A final predictor for the current block is generated by performing motion compensation for each sub-partition according to its refined MV. The current block is then encoded or decoded according to the final predictor.


