Aligned Fixed-Length Compression for Parallel Block Decoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data compression techniques, such as Huffman encoding, are computationally costly and inefficient due to their reliance on variable-length codes, which hinder parallel decoding and increase processing overhead.

Innovation Solution

A method involving a data storage controller that performs frequency analysis on equal-sized blocks of data, encoding frequently occurring blocks with unique fixed-length codes and infrequently occurring blocks with a common fixed-length code, organized in a compressed buffer with a header and masks, allowing for efficient compression and decompression.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If variable-length encoding (Huffman encoding) is used to compress data, then data size is reduced, but decoding cannot be performed in parallel and processing becomes computationally costly

Engineering Contradiction:
Improvedata sizeVSAvoiddecoding speed
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent changes the encoding parameter from variable-length to fixed-length codes. Each symbol is encoded with a predetermined fixed number of bits, allowing the decoder to process multiple symbols in parallel by reading fixed-width bit sequences simultaneously, thereby resolving the contradiction between compression ratio and decoding speed

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent segments the compressed data into fixed-length code words that can be independently decoded. By organizing the compressed bitstream into aligned fixed-length units, the decoder can process multiple segments in parallel without needing to track variable boundaries, improving productivity while maintaining data size reduction

Inventive Principle:
Principle #1Segmentation

2Quantity of substance

If variable-length encoding is used to compress data, then data size is reduced, but computational complexity increases

Engineering Contradiction:
Improvedata sizeVSAvoidcomputational complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent simplifies the encoding parameter structure by using fixed-length codes instead of variable-length codes. This eliminates the need for complex decoding logic to determine symbol boundaries, reducing computational complexity while maintaining effective data compression through selective encoding of frequent symbols

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent uses simple fixed-length binary codes instead of complex variable-length Huffman codes. These simple codes are computationally inexpensive to encode and decode, reducing the computational complexity burden while still achieving compression goals through the selective application to frequent symbols

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

3Productivity

If fixed-length codes are used for all blocks, then decoding can be performed in parallel, but compression efficiency decreases

Engineering Contradiction:
Improvedecoding speedVSAvoidcompressed data size
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent applies different encoding strategies to different parts of the data based on local characteristics. Frequently occurring symbols are encoded with fixed-length codes for efficient parallel decoding, while less frequent symbols may use different encoding approaches, optimizing both decoding speed and compression efficiency locally across different symbol types

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS8497788B1Efficient techniques for aligned fixed-length compression
Publication Date: 2013.07.30 PURE STORAGE INC
  • US8497788B1 patent drawing
  • US8497788B1 patent drawing
  • US8497788B1 patent drawing

AI summary

Systems and methods for performing compression of data. A data buffer is separated into equal-sized segments of data. A frequency count is performed to determine how often each segment of data appears in the data buffer. Frequently occurring segments are encoded with unique compression codes, while all other infrequently occurring segments are encoded with a common compression code. The compressed data buffer includes the compression codes, which are all of the same bit-length, and the uncompressed segments. The compression codes and the uncompressed segments are stored in the compressed data buffer in the order in which the corresponding segments appear in the original data buffer.