Motion Estimation Apparatus Bank Memory Structure
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current picture encoders face performance bottlenecks due to high clock cycles required for reading pixel data from frame memory during motion estimation, leading to delayed processing and reduced overall performance, especially with increased picture resolution.
Innovation Solution
A high-speed motion estimation apparatus utilizing a sharable multiple input/output bank memory structure, which reduces the number of pixels and estimation range needed for calculating the Sum of Absolute Differences (SAD) by storing and sharing pixel data between integer- and decimal-times motion estimation units, thereby minimizing inputs/outputs with the external frame memory.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If pixel data is read from external frame memory for motion estimation, then motion estimation can be performed, but clock cycles increase significantly leading to processing delay
Solution Approach 1:
The frame memory is divided into multiple banks (first bank memory and second bank memory) that can operate independently. The first bank memory stores pixel data for the current region while the second bank memory stores pixel data for the estimation region, allowing simultaneous read operations without waiting for a single large memory access to complete.
Solution Approach 2:
Pixel data is pre-loaded into the bank memories during idle periods or previous processing cycles. The integer-times motion estimation unit loads estimation region pixel data into the second bank memory in advance, so that when decimal-times motion estimation needs to access this data, it is already available in the memory buffer, eliminating the need for time-consuming read operations from external frame memory.
2Reliability
If estimation region pixel data is stored in external frame memory, then complete motion estimation can be performed, but memory bandwidth becomes a bottleneck
Solution Approach 1:
The bank memories act as intermediary buffers between the external frame memory and the motion estimation units. Instead of directly accessing the external frame memory for every data request, the integer-times motion estimation unit loads data into the second bank memory first, which then serves as the data source for the decimal-times motion estimation unit, reducing the burden on external memory bandwidth.
3Measurement precision
If 6-tap filter is used for decimal-times motion estimation, then pixel interpolation accuracy improves, but calculation time and memory access requirements increase
Solution Approach 1:
The integer-times motion estimation unit performs preliminary loading of estimation region pixel data into the second bank memory before the decimal-times motion estimation unit needs it. This pre-loading action eliminates the need for the decimal-times motion estimation unit to perform time-consuming read operations from external frame memory, allowing it to focus only on the calculation-intensive SAD computation using data already in the buffer.
Data Source
AI summary
A high-speed motion estimation apparatus includes a current region memory, an integer-times motion estimation unit, and a decimal-times motion estimation unit. The current region memory receives pixel data of a current region from an external frame memory to store the pixel data. The integer-times motion estimation unit stores pixel data of an estimation region which are read from the frame memory, and predicts an integer-times motion vector by using the pixel data of the current region and the pixel data of the estimation region. The decimal-times motion estimation unit reads the pixel data of the estimation region, and predicts a decimal-times motion vector by using the read pixel data and the predicted integer-times motion vector.


