Hybrid Window Video Compression Reference Frame Memory
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing video compression techniques, such as sliding window and growing window methods, face inefficiencies in bandwidth and memory usage due to the need to fetch large portions of reference frame data from external memory for motion estimation.
Innovation Solution
A hybrid window technique is implemented in on-chip memory, where a growing window stores rows and columns of a reference frame, and a sliding window stores additional columns and rows, allowing efficient access and reducing external memory bandwidth and on-chip memory requirements by using a combination of modulo-addressing in both horizontal and vertical directions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of information
If sliding window technique is used to allow reuse of reference frame data in horizontal direction, then data reuse efficiency is improved, but external memory bandwidth requirement increases
Solution Approach 1:
The reference frame data is segmented into two distinct portions: a first portion stored in on-chip memory for frequently accessed horizontal reuse, and a second portion stored in external memory for less frequently accessed vertical reuse. This segmentation allows the system to optimize bandwidth usage by keeping only essential data on-chip while maintaining data reuse efficiency through strategic data placement.
Solution Approach 2:
The patent transitions from a single-dimension sliding window approach to a two-dimension hybrid approach by adding vertical dimension consideration. The system now manages data in both horizontal (sliding window) and vertical (growing window) dimensions, allowing efficient reuse in both directions while controlling on-chip memory usage through selective data retention in each dimension.
2Loss of information
If growing window technique is used to allow reuse of data in horizontal and vertical directions, then data reuse efficiency is improved, but on-chip memory requirement increases
Solution Approach 1:
Different regions of the reference frame are assigned different storage locations based on their access patterns. The first portion (typically horizontally adjacent to current frame) is stored in on-chip memory for fast access, while the second portion (typically vertically adjacent or less frequently accessed) is stored in external memory. This local quality differentiation optimizes both speed and memory usage.
Solution Approach 2:
Instead of loading the entire reference frame into on-chip memory as the full growing window technique would require, the patent loads only a partial portion sufficient for horizontal reuse. Vertical reuse is achieved by selectively loading additional portions from external memory when needed, avoiding the excessive memory consumption of complete growing window implementation.
3Measurement precision
If large portion of reference frame data is fetched from external memory for motion estimation search, then motion estimation accuracy is improved, but external memory bandwidth consumption increases
Solution Approach 1:
The system performs preliminary action by pre-loading the first portion of reference frame data into on-chip memory before motion estimation begins. This preliminary loading of frequently accessed horizontal data ensures that the majority of motion estimation searches can be performed using on-chip memory, reducing the need for repeated external memory accesses and maintaining accuracy while minimizing bandwidth consumption.
Data Source
AI summary
A system and method for organizing pixel information in memory. A method according to an embodiment of the disclosure includes storing data representative of pixels of a scene in a growing window (“GW”) portion of a reference frame in an on-chip memory, storing data representative of pixels of the visual scene in a sliding window (“SW”) portion of the reference frame thereby forming a hybrid window, searching the memory to locate a portion of the stored data that corresponds with data representative of pixels in a current frame descriptive of the scene, performing motion estimation according to results of the search, generating a compressed version of the current frame according to results of the motion estimation, and storing the compressed version for later visual rendering. The system includes a processing unit and a video encoder. The processing unit includes an on-chip memory. The video encoder includes a motion estimation engine and a compression unit.


