Hierarchical Motion Estimation for Varying Image Dimensions
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing digital video compression methods face challenges in implementing hierarchical motion estimation efficiently, particularly when dealing with images of varying horizontal and vertical dimensions, as they require balancing computational cycles, memory bandwidth, and maintaining image quality, especially under limited CPU performance and adhering to standards like MPEG-4.
Innovation Solution
A method involving hierarchical motion estimation that performs searches on sub-sampled and non-sub-sampled images, applying adjustable biases to motion vector scores to select accurate motion vectors, allowing for efficient handling of varying image dimensions and adhering to MPEG-4 standards.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If sub-sampling is applied to reduce computational complexity, then CPU performance is optimized, but image quality deteriorates due to severe distortion
Solution Approach 1:
The motion estimation process is divided into multiple hierarchical levels: coarse search on sub-sampled images followed by fine search on non-sub-sampled images. This segmentation allows computational complexity to be reduced at coarse levels while preserving image quality at fine levels, resolving the contradiction between CPU performance and image quality.
Solution Approach 2:
The patent introduces a hierarchical dimension to the motion estimation process, adding a temporal/resolution dimension to the traditional spatial search. By performing searches at multiple resolution levels (sub-sampled then non-sub-sampled), the system optimizes CPU usage without sacrificing final image quality.
2Manufacturing precision
If search range is increased to improve motion vector accuracy, then prediction error reduction improves, but computational cycles increase significantly
Solution Approach 1:
The patent performs preliminary motion estimation on sub-sampled images to obtain initial motion vectors before conducting fine search on non-sub-sampled images. This preliminary action narrows the effective search range for the final high-precision search, improving motion vector accuracy while limiting the increase in computational cycles.
Solution Approach 2:
The search strategy dynamically adjusts based on the hierarchical level: coarse search uses larger effective ranges on sub-sampled images, while fine search uses targeted smaller ranges on non-sub-sampled images. This dynamic adaptation optimizes the balance between motion vector accuracy and computational cycles.
3Manufacturing precision
If multiple block sizes are supported to reduce prediction error, then encoding quality improves, but device complexity increases
Solution Approach 1:
The hierarchical motion estimation framework provides a universal structure that can handle multiple block sizes through the same two-stage process (coarse search on sub-sampled images, fine search on non-sub-sampled images). This multi-functionality allows the system to support various block sizes without proportionally increasing device complexity.
Data Source
AI summary
A method for implementing motion estimation comprising the steps of (A) performing a motion estimation search on one or more blocks of sub-sampled images to generate a first plurality of motion vector scores, (B) applying a first adjustable bias to any one or more of said first plurality of motion vector scores with a lowest sum of absolute differences score, (C) selecting a motion vector with a lowest adjusted score in response to applying the first adjustable bias, (D) performing a motion estimation search on one or more blocks of non-sub-sampled images to generate a second plurality of motion vector scores with the selected motion vector with the lowest adjusted score, (E) applying a second adjustable bias to any one or more of the second plurality of motion vector scores with the lowest sum of absolute differences score and (F) selecting a final motion vector for each target block position.


