Video Codec Motion Estimation In-Chip Memory Bank Shifting
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The motion estimation process in video codecs is hindered by frequent access to outer memory, causing delays and degrading system performance due to a high computation load and significant overlap in search window data between neighboring macroblocks.
Innovation Solution
A video codec system with an interface circuit, in-chip memory, and controller that loads reference frame data into in-chip memory and shifts the search window within this memory, reducing the need for frequent outer memory access by marking and replacing macroblocks as necessary.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the video codec sequentially processes each macroblock by accessing outer memory for search window data, then motion estimation can be performed on each macroblock, but frequent outer memory access causes delays and degrades system performance
Solution Approach 1:
The patent divides the reference frame data into multiple banks (e.g., Bank 0, Bank 1, Bank 2, Bank 3) in the in-chip memory, allowing parallel access to different macroblock data. This segmentation enables the system to retrieve search window data for multiple macroblocks simultaneously from different banks, eliminating the sequential access bottleneck and improving processing throughput without compromising motion estimation accuracy.
Solution Approach 2:
The patent pre-loads reference frame data into the in-chip memory before motion estimation begins. By preparing the search window data in advance and organizing it into ready-to-use banks, the system eliminates frequent outer memory access during the actual motion estimation process, thereby improving processing speed while maintaining data accuracy.
2Productivity
If the in-chip memory stores complete reference frame data, then all search window data can be retrieved without outer memory access, but the in-chip memory size would be too large
Solution Approach 1:
The patent segments the reference frame data into multiple smaller banks within the in-chip memory (e.g., 4 banks storing different portions of reference frames). This segmentation allows the system to store complete reference frame data in a distributed manner across smaller, manageable memory units, enabling fast access to required search window data without requiring a single large memory block, thus improving processing speed while controlling memory complexity.
Solution Approach 2:
The patent organizes reference frame data in multiple banks along the time dimension, storing different reference frames or different portions of reference frames in different banks. This dimensional organization allows efficient retrieval of search window data for multiple macroblocks by accessing different banks in parallel, achieving high-speed processing without requiring excessively large single-dimension memory storage.
3Ease of operation
If the search window data for neighboring macroblocks is retrieved separately from outer memory, then each macroblock can be processed independently, but the significant overlap in data causes redundant memory access and delays
Solution Approach 1:
The patent merges the search window data for multiple neighboring macroblocks into the same in-chip memory banks. By organizing the data structure to share common reference frame portions across multiple macroblocks, the system retrieves overlapping data only once and makes it available to all relevant macroblocks, eliminating redundant outer memory access while maintaining simple independent processing of each macroblock.
Solution Approach 2:
The patent pre-organizes overlapping search window data for multiple macroblocks in the in-chip memory banks before processing begins. This preliminary organization ensures that when motion estimation is performed on neighboring macroblocks, the shared data is already available in the fast memory, eliminating redundant outer memory access and reducing delays without complicating the independent processing of each macroblock.
Data Source
AI summary
The invention provides a video codec. In one embodiment, the video codec is coupled to an outer memory storing a reference frame, and comprises an interface circuit, an in-chip memory, a motion estimation circuit, and a controller. The interface circuit obtains in-chip data from the reference frame stored in the outer memory. The in-chip memory stores the in-chip data. The motion estimation circuit retrieves search window data from the in-chip data with a search window, and performs a motion estimation process on a current macroblock according to the search-window data. The controller shifts the location of the search window when the current macroblock is shifted, marks a macroblock shifted out from the search window as an empty macroblock, and controls the interface circuit to obtain an updated macroblock for replacing the empty macroblock in the in-chip memory from the reference frame stored in the outer memory.


