Motion Estimation Pipelining for Video Coding Cycle Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current video compression systems face high computational complexity in performing motion estimation for variable block size, sub-pixel motion vectors, especially when dealing with multiple reference frames and sub-pixel resolutions, due to the need for exhaustive searches and repetitive calculations.
Innovation Solution
The proposed solution enhances the unrestricted center biased diamond search (UCBDS) algorithm by pipelining and parallelizing SAD calculations, allowing for simultaneous processing of different block sizes and sub-pixel resolutions, reducing the number of necessary cycles through efficient data reuse and storage of repetitive calculations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If exhaustive search methods are used for motion estimation with variable block sizes and sub-pixel resolutions, then motion vector accuracy is improved, but computational complexity increases significantly
Solution Approach 1:
The motion estimation process is segmented into multiple stages: integer-pixel level search using UCBDS algorithm, followed by fractional-pixel refinement. This segmentation allows the computationally intensive exhaustive search to be limited to integer positions only, while fractional positions use simpler interpolation, thus reducing overall complexity while maintaining accuracy.
Solution Approach 2:
The UCBDS algorithm performs preliminary action by quickly identifying the optimal integer-pixel motion vector before fractional-pixel refinement. This preliminary estimation narrows down the search space significantly, allowing subsequent fractional-pixel calculations to focus only on a small neighborhood around the integer optimum, thereby reducing computational burden.
2Measurement precision
If multiple reference frames are processed with different block sizes, then motion estimation accuracy is improved, but processing time increases
Solution Approach 1:
The processing is segmented by block size hierarchy: 16x16 macroblocks are processed first to establish coarse motion, then subdivided into 8x8 sub-blocks for refined motion compensation. This segmentation enables early termination for blocks with sufficient match quality, reducing processing time for complex multi-reference frame scenarios.
Solution Approach 2:
The system performs partial action by selectively applying full fractional-pixel refinement only to blocks that require it based on integer-level assessment. Many blocks can be processed with integer-pixel precision alone, avoiding unnecessary computational overhead while maintaining adequate quality for those cases.
3Measurement precision
If sub-pixel resolution motion vectors are calculated for all blocks, then video quality is improved, but power consumption increases
Solution Approach 1:
Fractional-pixel motion estimation is applied partially rather than universally. The system first performs integer-pixel estimation for all blocks, then applies computationally expensive fractional-pixel refinement only to blocks where it provides measurable quality improvement, thereby reducing overall power consumption while maintaining video quality where needed.
Solution Approach 2:
Different levels of motion estimation precision are applied to different spatial regions and block types based on their specific requirements. High-motion or complex-texture regions receive full fractional-pixel treatment, while static or simple regions use integer-pixel estimation, optimizing the balance between quality and power consumption locally rather than uniformly across the entire frame.
Data Source
AI summary
A framework for efficient sum of absolute difference (SAD) computations for variable block size, sub-pixel motion estimation is presented. Simultaneous, or parallelized, SAD computations can be performed by storing and re-using previous SAD computational information, which can speed up the performance of a motion estimation module by reducing the number of cycles necessary to perform a particular motion estimation algorithm.


