Local Range Data Compression for High-Fidelity Memory Savings

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The limited availability of memory storage space in computer systems, particularly in applications like computer graphics and video games, necessitates more efficient data compression techniques to reduce memory size while maintaining high quality, as conventional methods often require substantial storage and bandwidth.

Innovation Solution

The use of locally varying numerical ranges, where data is encoded using interpolation values within smaller local ranges rather than absolute values across the entire dataset, allowing for more aggressive compression schemes like BC1 instead of BC7, and enabling storage of high dynamic range or wide gamut data beyond the original specification limits.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If conventional data compression schemes (e.g., BC7) are used to maintain high quality, then image quality is preserved, but memory storage space is substantially consumed

Engineering Contradiction:
Improveimage qualityVSAvoidmemory storage space
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent applies local quality by determining separate minimum and maximum values for different regions (e.g., 2x2 blocks of texels) within the texture data. Each region has its own locally varying numerical range, allowing the compression scheme to optimize for local characteristics rather than applying a single global range. This enables more efficient bit allocation that adapts to local data variations, achieving high fidelity with reduced storage requirements compared to conventional uniform compression schemes.

Inventive Principle:
Principle #3Local quality

2Measurement precision

If more bits are allocated to encode data with higher precision, then measurement precision is improved, but memory storage space increases

Engineering Contradiction:
Improvedata encoding precisionVSAvoidmemory storage space
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent implements dynamic bit allocation where the number of bits allocated to encode texture data varies based on the local numerical range characteristics of different regions. The encoding process dynamically determines the appropriate precision needed for each region based on its minimum and maximum values, allocating more bits only where necessary to maintain fidelity. This dynamic approach allows the system to achieve high overall precision without uniformly allocating maximum bits across the entire texture, thereby reducing total storage space.

Inventive Principle:
Principle #15Dynamics

3Ease of manufacture

If conventional compression schemes are used, then ease of implementation is maintained, but memory storage space is substantially consumed

Engineering Contradiction:
Improveease of implementationVSAvoidmemory storage space
Core Design Contradiction:
Ease of manufactureVSQuantity of substance

Solution Approach 1:

The patent segments the texture data into smaller regions (such as 2x2 blocks of texels) and applies compression independently to each segment. This segmentation allows the implementation to process and store data in manageable chunks with locally optimized compression parameters. The segmented approach maintains relative ease of implementation by breaking down the complex global optimization problem into simpler local problems, while achieving significant storage space reductions through localized compression efficiency.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11783509B2Locally varying numerical ranges for data compression
Publication Date: 2023.10.10 MICROSOFT TECHNOLOGY LICENSING LLC
  • US11783509B2 patent drawing
  • US11783509B2 patent drawing
  • US11783509B2 patent drawing

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.