Ring Buffer Motion Estimation Reduces System Bus Data Traffic
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing video signal encoding techniques face performance issues due to high data traffic on the system bus during motion estimation, which overloads the system bus and reduces performance, especially in embedded processors with limited computation capacities.
Innovation Solution
A ring buffer is allocated to store macro-blocks of luminance data from the reference frame, allowing for efficient construction of a search window with minimal additional data transmission, using Direct Memory Access (DMA) to reduce processor usage and data redundancy.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Power
If motion estimation is performed using a motion estimator with hardware assistance, then the computation capacity is sufficient, but the data traffic on the system bus becomes excessive causing overload
Solution Approach 1:
The patent applies preliminary action by pre-loading macro-blocks into the ring buffer before motion estimation is needed. The ring buffer is initialized with macro-blocks from the reference frame in advance, so that when motion estimation starts, the data is already available in the buffer without requiring continuous data transmission during the computation process.
Solution Approach 2:
The ring buffer serves as an intermediary between the reference frame data and the motion estimation process. Instead of directly transmitting all required macro-blocks during motion estimation, the ring buffer acts as a mediator that stores and provides only the necessary data, reducing the data traffic burden on the system bus.
2Reliability
If all macro-blocks are transmitted to the motion estimator for each current macro-block, then sufficient data is available for motion estimation, but redundant data transmission occurs causing system bus overload
Solution Approach 1:
The patent segments the data transmission process into two phases: initialization phase where macro-blocks are loaded into the ring buffer, and motion estimation phase where only necessary macro-blocks are retrieved from the buffer. This segmentation allows the system to transmit data only when needed rather than continuously, reducing redundant transmission.
Solution Approach 2:
The ring buffer provides local quality by storing macro-blocks in specific locations corresponding to their positions in the reference frame. When motion estimation needs data for a particular current macro-block, the system retrieves only the relevant macro-blocks from their predetermined locations in the ring buffer, rather than transmitting all macro-blocks, thus reducing data transmission volume.
3Measurement precision
If the system bus transmits data for each current macro-block independently, then complete data is available for motion estimation, but the system bus becomes overloaded reducing overall performance
Solution Approach 1:
The ring buffer enables continuity of useful action by maintaining a continuous supply of macro-blocks in the buffer during the motion estimation process. Once initialized, the buffer continuously provides the necessary macro-blocks for motion estimation without interrupting the computation flow or requiring additional data transmission, thus maintaining both accuracy and performance.
Data Source
AI summary
Efficient search window storage schemes for motion estimation in video signal processing are disclosed. According to one embodiment, motion estimation is carried out as follows: allocating a ring buffer to store at least critical number of macro-blocks of luminance data from a reference frame on the motion estimator, establishing a rule to relate each storage unit of the ring buffer with each of the macro-blocks of the reference frame, initializing the ring buffer by reading in one less than the critical number of macro-blocks from the reference frame, when the macro-block is located next to a border of the reference frame, generating one or more added border macro-blocks and storing into the corresponding position of the ring buffer in accordance with the rule, constructing the search window from the macro-blocks stored in the ring buffer, and conducting motion estimation of the current macro-block of the current frame with the search window.


