Hierarchical Quad Compression for Symmetric Lossless Decoding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current lossless data compression techniques, such as Huffman coding and Lempel-Ziv-Welch, are complex, memory-intensive, and asymmetrical, making them unsuitable for hardware implementation and unable to efficiently compress and decompress various data formats like normal map data, which requires a uniform and adaptable method.
Innovation Solution
A hierarchical data compression method that transforms a two-dimensional surface of data into tiles, then into quads, converting them into representative elements, delta elements, and control words, forming a hierarchy that can be compressed and decompressed symmetrically, allowing for efficient compression and decompression of multiple data formats.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If Huffman coding is used for lossless compression, then compression efficiency is improved, but device complexity and memory requirements increase
Solution Approach 1:
The patent segments the data compression process into fixed-size blocks (e.g., 16x16 pixel blocks) that are processed independently. Each block is divided into smaller units (e.g., 4x4 sub-blocks) for hierarchical processing. This segmentation eliminates the need for analyzing the entire file before compression, allowing parallel processing and reducing memory requirements while maintaining compression efficiency.
2Productivity
If Huffman coding is used for lossless compression, then compression efficiency is improved, but decompression speed decreases due to asymmetry
Solution Approach 1:
The patent employs an asymmetrical block structure where each block contains a representative element followed by delta elements. The representative element (first 4 pixels) is stored in full, while subsequent pixels are stored as differences from their predecessors. This asymmetric representation optimizes both compression efficiency and decompression speed, as the decompression process can quickly reconstruct pixels using simple addition operations rather than complex decoding.
3Adaptability or versatility
If LZW method is used for lossless compression, then adaptability to different data patterns is improved, but memory requirements and device complexity increase
Solution Approach 1:
The patent changes the fundamental parameter of how data is represented by using delta encoding instead of dictionary-based encoding. Rather than building a large dictionary of patterns, the method transforms the data by storing differences between adjacent pixels. This parameter change maintains adaptability to different data patterns while dramatically reducing memory requirements and simplifying the compression procedure for hardware implementation.
4Productivity
If traditional compression methods are used, then compression capability is improved, but uniformity across different data formats is worsened
Solution Approach 1:
The patent creates a universal compression method that works across multiple data formats including color buffer data, depth buffer data, and normal map data. The hierarchical block-based approach with representative elements and delta encoding can be applied uniformly to different data types without requiring format-specific algorithms, thereby achieving both compression capability and uniformity across data formats.
Data Source
AI summary
A method is provided for data compression. The data compression method transforms a square of data into a tile of data. The tile of data is then divided into quads of data that are converted into a representative element, a first delta element, a second delta element, a third delta element, and a control word. A new tile of data is then formed with the representative elements, and the process is repeated until a single representative element remains. The single representative element is then embedded into an output stream with the control words and corresponding delta elements. Decompression of the data is symmetrical to the encoding once the bit stream has been parsed.


