Video Prediction Cache Subcaches for Memory Bandwidth Efficiency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional caching systems display suboptimal performance in handling the increasing demands of emerging video coding applications due to memory bandwidth limitations, particularly exacerbated by higher resolutions and frame rates, and the use of various prediction modes and larger interpolation filters in standards like HEVC.
Innovation Solution
An integrated circuit with a video prediction cache comprising independently- and synchronously-addressable subcaches, connected to a cache controller that controls synchronous reads from multiple subcaches to efficiently store and retrieve video prediction data, reducing memory bandwidth usage by distributing cache back-end words across multiple subcaches.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of energy
If conventional caching systems are used, then memory bandwidth is reduced, but system performance deteriorates due to inability to handle high-resolution and high-frame-rate video coding demands
Solution Approach 1:
The cache is divided into multiple independently-addressable subcaches, each handling a portion of the cache back-end word. This segmentation allows parallel access to different subcaches, enabling the system to serve multiple video prediction requests simultaneously, thereby maintaining high video coding performance while efficiently utilizing memory bandwidth
Solution Approach 2:
The patent introduces a new dimension of parallelism by organizing the cache into multiple subcaches that can be accessed independently and synchronously. This dimensional transformation from a single-cache sequential access model to a multi-subcache parallel access model enables the system to handle the increased data demands of high-resolution and high-frame-rate video coding without proportionally increasing memory bandwidth usage
2Measurement precision
If higher resolutions and frame rates are used, then video quality is improved, but memory bandwidth requirements increase
Solution Approach 1:
By segmenting the cache into multiple subcaches, the system can store and retrieve video prediction data for high-resolution frames more efficiently. Each subcache handles a portion of the data, allowing parallel retrieval operations that reduce the total memory bandwidth required to support high-resolution and high-frame-rate video coding
Solution Approach 2:
The patent changes the organizational parameter of the cache from a single unified structure to multiple subcaches with independent addressing. This parameter change enables the cache to accommodate the increased data volume of high-resolution video while maintaining efficient access patterns that reduce memory bandwidth consumption
3Measurement precision
If larger interpolation filters are used for motion prediction, then prediction accuracy is improved, but memory access overhead increases
Solution Approach 1:
The multi-subcache structure segments the memory access operations, allowing different parts of the interpolation filter data to be retrieved from different subcaches in parallel. This reduces the memory access overhead associated with using larger interpolation filters, as the segmented access pattern eliminates sequential access bottlenecks
Solution Approach 2:
The cache stores video prediction data from memory in a pre-organized manner across multiple subcaches, performing preliminary data preparation so that when large interpolation filters are needed, the data is already positioned for efficient parallel access, reducing the overhead of memory access operations
Data Source
AI summary
In some embodiments, a video prediction (reference block) cache includes multiple (e.g. 4) independently-addressable subcaches, each storing a predetermined part of a cache back-end (memory subsystem) word. For example, a 16-byte word received by the cache from memory may be split between four 4-byte subcaches. Each subcache line/block stores the data of a 2-D pixel array. Retrieving a cached prediction may be performed by accessing different subcaches synchronously (on the same clock cycle) to assemble the prediction from parts stored in different subcaches. A cache tag may be defined by a 4-D vector having x-position, y-position, frame ID, and color component (luma/chroma) fields. Using sub-word, independently-addressable subcaches allows increasing the efficiency of cache access and allows addressing memory bandwidth limitations facing emerging video coding standards and applications, which employ relatively large and varied prediction sizes.


