Local Range Texture Compression for Memory-Limited Color Fidelity
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The limited availability of memory storage space in computer systems, particularly in applications like video games that require large texture data, necessitates more efficient data compression techniques to reduce memory size while maintaining high quality.
Innovation Solution
The use of locally varying numerical ranges in data compression, where each region of the data set has its own local minimum and maximum values, allows for encoding data as interpolation values between these extremes, reducing the number of bits required for storage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If conventional data compression schemes (e.g., BC7) are used, then memory storage space is reduced, but image quality and color precision are compromised
Solution Approach 1:
The patent applies local quality by determining separate minimum and maximum color values for each block region rather than using global extremes. This allows each region to use a customized numerical range tailored to its specific color characteristics, preserving color precision locally while enabling more aggressive compression overall. The block-by-block approach ensures that regions with limited color variation can use fewer bits, while regions with high variation maintain adequate precision.
Solution Approach 2:
The patent changes the parameter of numerical range by allowing texture data to be encoded outside the traditional 0-1 range. By using locally determined min/max values, the system can represent high dynamic range and wide gamut colors that exceed conventional specifications. This parameter change enables more efficient use of available bits while maintaining or exceeding original color fidelity.
2Quantity of substance
If aggressive compression schemes (e.g., BC1) are used, then memory storage space is significantly reduced, but image quality deteriorates
Solution Approach 1:
The patent enables use of aggressive compression schemes like BC1 by applying local quality adjustments. Each block's color data is encoded relative to its own local min/max range rather than the global 0-1 range. This local normalization allows BC1's limited 2-bit precision to effectively represent the actual color variations within each block, maintaining image quality while achieving the space savings of aggressive compression.
Solution Approach 2:
The patent segments the texture into multiple blocks and applies independent compression parameters to each segment. By dividing the texture data into manageable blocks and treating each separately with its own numerical range, the system can use highly aggressive compression on each segment while the collective effect maintains overall image quality through localized precision.
3Ease of manufacture
If fixed numerical ranges (0-1) are used for all texture data, then encoding is simple, but high dynamic range and wide gamut data cannot be represented
Solution Approach 1:
The patent introduces dynamics by transitioning from fixed numerical ranges to locally varying ranges. Instead of a static 0-1 encoding scheme applied uniformly, the system dynamically determines min/max values for each block based on the actual color data present. This dynamic adaptation allows the encoding scheme to flexibly accommodate high dynamic range and wide gamut data while maintaining relatively simple encoding logic.
Solution Approach 2:
The patent changes the numerical range parameter from fixed to variable. By allowing each block to have its own min/max values rather than enforcing a universal 0-1 range, the system gains the versatility to represent colors outside conventional specifications. This parameter change maintains encoding simplicity by using the same basic compression algorithm while adapting the numerical context to each local region's requirements.
Data Source
AI summary
Data compression techniques are described for saving memory space by using fewer bits to store information while achieving high fidelity. A data set may be partitioned into a plurality of regions. Locally varying numerical ranges of data values (e.g., the minimum and maximum extents) may be determined for the plurality of regions. The data in the individual regions may be encoded using a lower number of bits as interpolation values in reference to the local extents rather than being encoded using a higher number of bits as absolute values. Where there are multiple channels of data in the regions, the number of available bits for encoding the data may be dynamically allocated per region based on the relative degrees of variance in data among the multiple channels.


