Motion Estimation Processor On-the-Fly SAD Calculation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional motion estimation methods require significant time and processing power due to the extensive calculations of Sum of Absolute Differences (SAD) for each sub-block comparison, especially as the size of the blocks increases, leading to inefficient performance in identifying similar sub-blocks within a reference image.
Innovation Solution
Calculating SAD values on the fly by reading a target block into registers and updating calculations as segments of the reference window are read, using a scanning pattern to determine minimum SAD values efficiently, and repeating the process for subsequent segments until all necessary calculations are complete.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If conventional block matching algorithm is used to calculate SAD for each sub-block comparison, then motion estimation accuracy is maintained, but processing time and computational power increase significantly
Solution Approach 1:
The reference window is divided into multiple segments that can be processed independently and in parallel. The target block comparison is segmented into multiple SAD calculation units that operate simultaneously on different segments, reducing the sequential processing time while maintaining complete coverage of the reference window for accurate motion estimation.
Solution Approach 2:
SAD calculations are initialized and started in advance for multiple segments before all reference data is fully loaded. The processor begins computing SAD values for segments whose data is already available in buffers, performing preliminary calculations that can be completed as data becomes available, thereby overlapping data loading with computation operations.
2Productivity
If hierarchical motion estimation with down-sampling is used, then the number of SAD calculations is reduced, but processing complexity increases due to multiple layers
Solution Approach 1:
The patent introduces a temporal dimension to the processing architecture by implementing multi-stage pipelining. Different stages of the pipeline process different segments or blocks simultaneously at different processing steps, transforming the single-dimensional sequential processing into multi-dimensional parallel processing across time stages, thereby reducing total SAD calculations without adding spatial complexity.
3Ease of operation
If one SAD calculation is performed at a time sequentially, then processor resource requirements are reduced, but overall processing speed decreases
Solution Approach 1:
Multiple SAD calculation operations are merged into a unified parallel processing framework. The patent combines multiple calculation units, data buffers, and processing stages into an integrated system where operations that were previously sequential are now executed in parallel, achieving both high throughput and efficient resource utilization through the merged architecture.
Solution Approach 2:
The processing system maintains continuous useful action by eliminating idle periods. While one SAD calculation is completing, the system is simultaneously loading data for the next segment, initializing the following calculation, and preparing subsequent operations. This continuous pipeline ensures that processor resources are constantly engaged in productive work without gaps, maximizing processing speed.
Data Source
AI summary
A method for comparing a target block to a reference window in motion estimation calculations, comprises the steps of: determining SAD calculations as a function of the target block and the reference window; reading the target block into registers; reading a segment of the reference window; updating the determined SAD calculations on the fly as a function of the read target block and the read segment of the reference window; and determining one or more sub-blocks of the reference window having minimum SAD values as a function of the updated SAD calculations; and if one or more of the minimum SAD values are not found, repeating the reading a segment step, the updating step and the determining step for a next segment of the reference window.


