Decoding Data Arrays Using Tree Structure for Texture Compression

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Graphics processing systems face high storage and bandwidth requirements when handling texture data, particularly in mobile devices, due to the need for storing and processing uncompressed texture data, which can lead to performance losses.

Innovation Solution

A method and apparatus for determining data values from encoded representations using a tree structure where each leaf node represents a data element, with node values determined by summing values along the branch, allowing for efficient compression and decoding without extracting full payload, enabling downscaled representations directly from the tree structure.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If texture data is stored in uncompressed form, then image quality is improved, but storage and bandwidth requirements increase

Engineering Contradiction:
Improveimage qualityVSAvoidstorage and bandwidth requirements
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The texture data is divided into multiple levels of detail, with each level representing a different resolution. The decoding circuit can selectively process only the necessary levels based on the required output resolution, avoiding the need to decode and store all detailed information. This segmentation allows the system to maintain high image quality when needed while reducing storage and bandwidth requirements by only transmitting and processing essential data levels.

Inventive Principle:
Principle #1Segmentation

2Quantity of substance

If texture data is compressed to reduce storage and bandwidth, then storage and bandwidth requirements are reduced, but processing complexity increases

Engineering Contradiction:
Improvestorage and bandwidth requirementsVSAvoidprocessing complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The texture data is pre-processed and organized into a hierarchical structure during encoding, with difference values and level information prepared in advance. This preliminary organization allows the decoding circuit to efficiently retrieve and process only the necessary data for the desired resolution, significantly reducing processing complexity compared to traditional compression methods that require full decoding regardless of output requirements.

Inventive Principle:
Principle #10Preliminary action

3Measurement precision

If full texture data is decoded for high quality output, then image quality is improved, but processing time and power consumption increase

Engineering Contradiction:
Improveimage qualityVSAvoidprocessing time and power consumption
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The decoding circuit performs only the necessary decoding operations required to achieve the desired output resolution. Instead of fully decoding all texture data to the highest detail level, the system selectively processes only the difference values and levels needed for the target resolution. This partial action approach maintains high image quality for the required output while significantly reducing processing time and power consumption by avoiding unnecessary decoding of excessive detail information.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11263786B2Decoding data arrays
Publication Date: 2022.03.01 ARM LTD
  • US11263786B2 patent drawing
  • US11263786B2 patent drawing
  • US11263786B2 patent drawing

AI summary

When decoding a data array that has been encoded using a tree structure representation, the encoded tree representation of the array of data elements comprising a set of tree node data representing the respective node values for the different nodes of the tree and a set of bit count data indicating the number of bits that has been used for signalling the node values for each non-root node in the tree a data value for a set of one or more data elements associated with a first node of the tree structure is determined by determining an initial data value for the first node using the stored tree node data, and modifying the initial data value using a modifier value based on the number of bits used for signalling the node values for the child nodes of the first node in at least the next level of the tree.