Video Processor Frame Buffer Compression for Bandwidth Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Modern video processing devices face challenges in reducing memory bandwidth requirements as pixel resolution increases, especially when storing large video or graphical frames, which can exceed the memory capacity of the device, leading to inefficiencies in encoding and decoding processes.
Innovation Solution
The implementation of frame buffer compression techniques using span units and tile units, where video and graphical frames are segmented into smaller, compressible data objects (span units) and processed in a two-dimensional manner, reducing memory bandwidth needs by storing and processing these units efficiently within compressed frame buffers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If video frames are stored in uncompressed format in external memory, then image quality is maintained, but memory bandwidth requirements increase significantly
Solution Approach 1:
The video frame buffer is segmented into multiple span units, where each span unit contains a portion of the frame data. This segmentation allows selective compression of individual span units while maintaining the ability to access specific regions without decompressing the entire frame, thus reducing memory bandwidth requirements while preserving image quality in displayed regions.
Solution Approach 2:
Different compression techniques (lossless or lossy) are applied to different span units based on their importance and usage patterns. Regions of interest or frequently accessed span units may use lossless compression to maintain quality, while less critical regions use lossy compression to maximize bandwidth reduction, achieving a balance between image quality and memory bandwidth.
2Quantity of substance
If frame buffer compression is implemented, then memory bandwidth requirements are reduced, but processing complexity increases
Solution Approach 1:
Span units are pre-compressed and stored in the frame buffer before video processing operations. The compression state is tracked with metadata indicating which span units are compressed and their compression type. This preliminary action eliminates the need for real-time compression/decompression during video processing, reducing processing complexity while maintaining bandwidth benefits.
Solution Approach 2:
A span engine is introduced as an intermediary component that manages compressed span units in the frame buffer. This intermediary handles compression, decompression, and span unit management operations, isolating the complexity from the main video processing pipeline and enabling efficient access to compressed data without burdening the primary processing logic.
3Quantity of substance
If lossy compression is used to reduce bandwidth, then memory bandwidth requirements decrease, but image quality deteriorates
Solution Approach 1:
The system applies different compression strategies to different span units based on their importance. Critical regions or span units that require high fidelity maintain lossless compression, while non-critical regions use lossy compression with adjustable quality parameters. This selective approach reduces overall memory bandwidth while preserving image quality in important regions.
Solution Approach 2:
The compression quality parameters for lossy compression of span units can be dynamically adjusted based on system conditions, such as available memory bandwidth, processing load, and quality requirements. This dynamic adjustment allows the system to optimize the trade-off between bandwidth reduction and image quality maintenance in real-time.
Data Source
AI summary
A video processing device includes a video processing unit that decodes a video input signal into a decoded video signal in accordance with a video compression protocol, based on uncompressed video frame data. A data object compression/decompression module generates compressed video frame data by compressing a plurality of video data objects into a plurality of compressed video data objects, storing the plurality of compressed video data objects in a compressed frame buffer. The data object compression/decompression module retrieves a selected portion of video frame data from the compressed video frame buffer by identifying selected ones of plurality of compressed video data objects that correspond to the selected portion of video frame data, retrieving the selected ones of the plurality of compressed video data objects and generating the uncompressed video frame data by decompressing the selected ones of the plurality of compressed video data objects.


