Pre-Expanded Decompression Dictionaries for Lower CPU Overhead

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional data compression techniques focus primarily on compression efficiency, neglecting decompression efficiency, which can lead to increased CPU processing overhead during decompression, especially in lossless compression methods like the Ziv-Lempel algorithm.

Innovation Solution

The method involves pre-expanding a decompression dictionary to create a second decompression dictionary with uncompressed data portions and inserting instructions for self-decompression, allowing for efficient recovery of original data by applying compressed data to the second dictionary.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If traditional compression algorithms are used to achieve high compression efficiency, then data size is reduced, but CPU processing overhead during decompression increases

Engineering Contradiction:
Improvedata sizeVSAvoidCPU processing overhead
Core Design Contradiction:
Quantity of substanceVSUse of energy by moving object

Solution Approach 1:

The patent applies preliminary action by pre-expanding the decompression dictionary before actual decompression operations. The dictionary is pre-populated with uncompressed data portions and chain structures, so that during decompression, the system can directly retrieve and assemble data without performing complex expansion operations in real-time, thereby reducing CPU processing overhead during the actual decompression process

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements self-service through self-decompressing data elements that contain embedded instructions and pointers. The compressed data structure includes metadata that enables it to direct its own decompression process by pointing to relevant dictionary chains and data portions, reducing the need for external decompression logic and minimizing CPU intervention

Inventive Principle:
Principle #25Self-service

2Ease of manufacture

If traditional decompression methods are used, then implementation is simple, but decompression time increases

Engineering Contradiction:
Improveimplementation simplicityVSAvoiddecompression time
Core Design Contradiction:
Ease of manufactureVSLoss of time

Solution Approach 1:

The decompression dictionary is pre-expanded with all necessary chain structures and data portions organized before decompression. This preliminary organization allows the decompression process to simply follow pre-computed pointers and assemble data directly, dramatically reducing decompression time while maintaining implementation feasibility through the structured approach

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent segments the decompression dictionary into multiple chains, where each chain contains specific uncompressed data portions. This segmentation allows parallel processing and direct access to specific data segments during decompression, reducing overall decompression time while keeping each segment's structure simple and manageable

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8902087B1Data decompression utilizing pre-expanded dictionaries during decompression
Publication Date: 2014.12.02 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8902087B1 patent drawing
  • US8902087B1 patent drawing
  • US8902087B1 patent drawing

AI summary

According to one embodiment, a computer-implemented method of decompressing compressed data is described. A first decompression dictionary is analyzed, the first decompression dictionary including a plurality of chains each with uncompressed data portions distributed in a non-contiguous manner within the first decompression dictionary based on an addressing scheme, where the uncompressed data portions of each chain form a corresponding uncompressed version of compressed data. A second decompression dictionary is generated by combining the uncompressed data portions of each of the chains in the first decompression dictionary to form uncompressed versions of compressed data and instructions are inserted within the second decompression dictionary to decompress compressed data. The compressed data are decompressed by applying the compressed data to the second decompression dictionary. Embodiments further include a system and computer program product for decompressing compressed data in substantially the same manner described above.