Texture Data Block Compression via Same-Value Encoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data processing systems face challenges in efficiently storing and accessing texture data in graphics processing due to high storage and bandwidth requirements, particularly in mobile devices, and the need for random access to texture data.

Innovation Solution

The method involves dividing data arrays into blocks and sub-blocks, with header data blocks containing information about sub-blocks, and determining if all data positions in a block have the same value to facilitate better compression and reduce processing and bandwidth needs by eliminating the need for separate sub-block data for identical blocks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If texture data is stored in a compressed form, then storage and bandwidth requirements are reduced, but random access efficiency deteriorates

Engineering Contradiction:
Improvestorage requirementsVSAvoidrandom access efficiency
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

The texture data array is divided into multiple blocks, with each block containing a subset of texture elements. This segmentation allows the system to store and access only the required blocks rather than the entire texture map, reducing storage requirements while maintaining random access efficiency through selective block loading and processing.

Inventive Principle:
Principle #1Segmentation

2Speed

If texture data is stored in uncompressed form, then random access efficiency is improved, but storage and bandwidth requirements increase

Engineering Contradiction:
Improverandom access efficiencyVSAvoidstorage requirements
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent applies different data representations to different blocks of texture data based on their characteristics. Some blocks may be stored in uncompressed form for rapid access, while others use compressed representations, allowing the system to optimize for both storage efficiency and random access performance on a block-by-block basis rather than applying a uniform approach to the entire texture map.

Inventive Principle:
Principle #3Local quality

3Measurement precision

If detailed sub-block data is stored for each block, then data precision is improved, but device complexity increases

Engineering Contradiction:
Improvedata precisionVSAvoidprocessing complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent pre-calculates and stores representative data for each block during the texture upload process. This preliminary action allows the graphics processor to later retrieve pre-processed block data without performing complex real-time calculations, thereby maintaining data precision while reducing processing complexity during actual rendering operations.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10430099B2Data processing systems
Publication Date: 2019.10.01 ARM LTD
  • US10430099B2 patent drawing
  • US10430099B2 patent drawing
  • US10430099B2 patent drawing

AI summary

A data array to be stored is first divided into a plurality of blocks. Each block is further sub-divided into a set of sub-blocks.Data representing sub-blocks of the data array is stored, together with a header data block for each block that the data array has been divided into.For each block, it is determined whether all the data positions for the block have the same data value associated with them, and, if so, an indication that all of the data positions within the block have the same data value associated with them, and an indication of the same data value that is associated with each of the data positions in the block, is stored in the header data block for that block of the data array.