Preconditioning Block-Compressed Texture for Lossless Compression
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing texture compression methods, such as BCn formats, achieve significant compression but leave room for further reduction in memory and bandwidth usage, especially when combined with lossless compression techniques.
Innovation Solution
The processing system preconditions block-compressed texture blocks by separately streaming color components and index components for lossless compression, allowing for additional patterns in color components to be leveraged for higher compression ratios.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If block compression (BCn formats) is applied to reduce memory and bandwidth usage, then memory and bandwidth requirements are reduced, but further compression potential remains untapped
Solution Approach 1:
The patent segments the block-compressed texture data into separate color component streams and index component streams. By dividing the compressed data structure into distinct components that can be independently processed, the system enables lossless compression algorithms to identify and exploit compression patterns within each stream separately, achieving additional compression beyond what block compression alone can provide.
Solution Approach 2:
The patent applies preliminary lossless compression to the color and index component streams after block compression has been performed. This two-stage compression approach uses the output of block compression as input for lossless compression, allowing the system to build upon the initial compression results and achieve higher overall compression ratios.
2Loss of time
If block compression is used to improve loading times, then asset loading times are improved, but memory efficiency could be further enhanced
Solution Approach 1:
The patent changes the parameter of data organization by separating color and index components into independent streams. This structural transformation allows lossless compression algorithms to operate more effectively on each stream, reducing the overall data size stored in memory while maintaining the fast loading characteristics of block-compressed formats.
3Loss of information
If separate streaming of color and index components is implemented, then lossless compression effectiveness is improved, but processing complexity increases
Solution Approach 1:
The patent segments the block-compressed texture data into separate color component streams and index component streams. By dividing the compressed data structure into distinct components that can be independently processed, the system enables lossless compression algorithms to identify and exploit compression patterns within each stream separately, achieving additional compression beyond what block compression alone can provide.
Solution Approach 2:
The separation of color and index streams into independent processing paths allows each stream to be self-contained and processable by standard lossless compression algorithms without requiring complex custom processing logic. This modular approach reduces processing complexity compared to attempting to compress the combined data structure.
Data Source
AI summary
A processing system preconditions block-compressed texture blocks by separately streaming color components and index components for lossless compression. The processing system preconditions the color components for linear compression, such that color component data for adjacent compressed blocks in a row are further compressed using lossless compression. Lossless compression is performed for color components spanning multiple rows to leverage patterns in color components that extend vertically across a frame. The processing system further divides input color component and index component data into pages of memory (e.g., 64 kB pages), such that each page can be independently losslessly compressed and decompressed. The processing system applies delta encoding to color component data so that a single instance of color data and differences from the stored color data are stored for each page.


