Unified Code Alphabet for Lower-Complexity Data Compression

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data compression techniques, such as Huffman coding and Streaming Lossless Data Compression (SLDC), require large code alphabets with variable length codings that are complex to implement and maintain, especially when aiming for efficient compression and decompression of data streams.

Innovation Solution

A method to generate a first code alphabet with variable length codewords that are then merged into a second code alphabet with fewer symbols, maintaining an average codeword length similar to the original while reducing the number of symbols, thus simplifying implementation and use.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If Huffman coding or SLDC algorithms are used to achieve lossless data compression, then compression efficiency is improved, but the code alphabet size increases and implementation complexity increases

Engineering Contradiction:
Improvecompression efficiencyVSAvoidcode alphabet size and implementation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges multiple code alphabets (e.g., literal symbols, copy pointers, end-of-block markers) into a single unified code alphabet. This consolidation reduces the total number of distinct symbols that need to be managed and processed, thereby simplifying the implementation while preserving the compression efficiency gains from algorithms like Huffman coding and SLDC.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The unified code alphabet serves multiple functions simultaneously: it represents literal data symbols, copy pointers for reference to previous data, and control symbols for compression scheme transitions. This multi-functionality eliminates the need for separate code alphabets for each symbol type, reducing overall system complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Productivity

If variable length code tables are generated based on symbol occurrence probability, then compression ratio is improved, but the complexity of maintaining and updating the code table increases

Engineering Contradiction:
Improvecompression ratioVSAvoidcode table maintenance complexity
Core Design Contradiction:
ProductivityVSEase of manufacture

Solution Approach 1:

The patent combines multiple variable-length code tables (for literals, copy pointers, and control symbols) into a single unified code table. This merger reduces the number of separate tables that need to be maintained and updated during compression operations, thereby lowering the maintenance complexity while preserving the adaptive compression ratio benefits.

Inventive Principle:
Principle #5Merging (Combining)

3Measurement precision

If separate code alphabets are used for different symbol types (literals, copy pointers, control symbols), then decoding accuracy is improved, but the overall system complexity increases

Engineering Contradiction:
Improvedecoding accuracyVSAvoidsystem complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent merges separate code alphabets for different symbol types into a single unified code alphabet. This unified structure maintains the ability to accurately decode each symbol type by preserving distinct codewords for literals, copy pointers, and control symbols, while simplifying the overall system by eliminating the need to manage multiple separate code alphabets.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9998144B2Generating a code alphabet of symbols to generate codewords for words used with a program
Publication Date: 2018.06.12 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9998144B2 patent drawing
  • US9998144B2 patent drawing
  • US9998144B2 patent drawing

AI summary

Provided are a computer program product, system, and method for generating a code alphabet for use by a deployed program to determine codewords for words. A first code alphabet has a first number of symbols that provide variable length codings of the words. A second code alphabet is generated having a second number of symbols formed by merging the symbols in the first code alphabet, wherein the second code alphabet comprises the code alphabet used by the deployed program.