Motion Prediction Cache Data Replacement for Video Decoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Contemporary video compression algorithms require significant memory bandwidth due to large data transfers in decoder memory buffers, leading to inefficient use of motion prediction caches and increased cache thrashing, which limits data reuse and increases bandwidth usage.

Innovation Solution

An adaptive method for replacing image data in motion prediction caches by calculating tag distances between cached and uncached pixels, where pixels outside a dynamically defined local image area are replaced, and cache lines are organized into sets based on attributes like reference frames or coordinates to reduce cache thrashing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a motion prediction cache is used to store image pixel values for previously decoded macroblocks, then data reuse is improved, but cache thrashing occurs when two or more frequently needed data items map to the same cache address, causing cache misses and limiting data reuse

Engineering Contradiction:
Improvedata reuseVSAvoidcache efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The cache is divided into multiple sets, where each set contains multiple cache lines. This segmentation allows different data items to be distributed across different sets, reducing the probability of cache thrashing when multiple frequently needed items map to the same address space. The patent implements this by organizing the cache into sets indexed by a portion of the cache address, with each set containing multiple ways (cache lines).

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension to cache organization by using multiple sets instead of a single flat cache structure. This dimensional change from a one-dimensional cache to a two-dimensional cache (sets × ways) provides additional address space for distinguishing between frequently accessed data items, thereby reducing conflicts and improving cache efficiency.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Temperature

If data in the decoder memory buffer are transferred at high rates to support high definition video, then video quality is improved, but the memory bandwidth increases without benefit since the memory buffer provides data blocks larger than required

Engineering Contradiction:
Improvevideo qualityVSAvoidmemory bandwidth
Core Design Contradiction:
TemperatureVSLoss of energy

Solution Approach 1:

The motion prediction cache extracts and stores only the specific pixel data needed for motion prediction from the larger memory buffer transfers. By taking out only the relevant macroblock pixel values required for prediction, the system avoids transferring unnecessary data, thereby reducing memory bandwidth consumption while maintaining video quality.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The cache focuses on storing locally relevant pixel data for motion prediction, which is the specific quality needed for video decoding. Rather than caching all or large portions of image data, the system caches only the local pixel values required for prediction operations, optimizing memory bandwidth usage.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS7427990B2Data replacement method and circuit for motion prediction cache
Publication Date: 2008.09.23 ATI TECHNOLOGIES ULC
  • US7427990B2 patent drawing
  • US7427990B2 patent drawing
  • US7427990B2 patent drawing

AI summary

A system for decoding a video bitstream and a method for replacing image data in a motion prediction cache are described. For each of the cache lines, a tag distance between pixels stored in the cache line and uncached pixels that are to be stored in the cache is calculated. The calculated tag distance is used to determine whether the pixels are outside a local image area defined about the uncached pixels. Pixels determined to be outside the local image area are replaced with the uncached pixels. The motion prediction cache can be organized as sets of cache lines and the method can be performed for each of the cache lines in one of the sets. The definition of the sets can be changed in response to cache performance. Similarly, the local image area can be redefined in response to cache performance.