Texture Encoding via Resolution Downsampling and Difference Data
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current texture compression techniques in computer graphics systems face challenges in balancing image quality with storage and bandwidth requirements, particularly in mobile devices, where they often compromise on either quality or performance.
Innovation Solution
The method involves encoding texture data by determining a lower resolution representation and a full resolution set of difference data, where the lower resolution data represents low frequencies and the difference data represents high frequencies, allowing for efficient compression while maintaining acceptable image quality.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Manufacturing precision
If texture data is stored in full resolution with complete colour values for each texel, then image quality is maintained, but storage requirements and bandwidth consumption increase significantly
Solution Approach 1:
The texture data is divided into 4×4 pixel blocks, with each block represented by 4 base colour values. This segmentation allows efficient compression while maintaining the ability to reconstruct high-quality texture data through interpolation within each block.
Solution Approach 2:
The patent transforms the representation parameters from storing individual texel colours to storing base colour values and gradient information. By changing from direct colour storage to a parametric representation (base colours + gradients), the patent achieves compression while preserving image quality through mathematical reconstruction.
2Quantity of substance
If texture data is compressed using block truncation coding with base colours, then storage requirements are reduced, but image quality deteriorates
Solution Approach 1:
The patent divides texture data into 4×4 blocks and represents each block with 4 base colour values, creating a structured segmentation that balances compression efficiency with quality preservation.
Solution Approach 2:
The patent introduces gradient information as an additional dimension to the base colour values. By adding gradient data that captures spatial variations within each block, the patent reconstructs texture data with higher fidelity than simple base colour averaging, thus improving image quality while maintaining compression.
3Manufacturing precision
If more data is stored per texture block to improve image quality, then manufacturing precision increases, but bandwidth consumption and processing complexity increase
Solution Approach 1:
The patent uses a parametric representation with base colours and gradients that allows quality reconstruction through simple mathematical operations, avoiding the need to store and process large amounts of raw texture data while maintaining image quality.
Solution Approach 2:
The patent pre-calculates and stores gradient information during compression, which enables efficient quality reconstruction during decompression. This preliminary preparation of gradient data simplifies the decompression process while ensuring high image quality output.
Data Source
AI summary
To encode a texture to be used in a graphics processing system, the texture is first downscaled to generate a lower resolution representation of the texture 41. An upscaled version 42 of the lower resolution version of the texture is then compared to the original texture to determine a set of difference values indicating for each texel the difference between the value of the texel in the upscaled version of the texture and in the original texture 43. An encoded texture data block is then generated for each 8×8 block of texels in the original texture 44. Each encoded texture data block contains a base color value taken from the lower resolution representation of the texture and a set of index values indicating the difference data from the determined set of difference data to be used when decoding the block of texture data to generate the data values to be used for the texture data elements that the block of texture data represents.


