Rational Number Compression Using Exponent-Difference Huffman Coding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data compression techniques, particularly for seismic data, face limitations in achieving high lossless compression ratios efficiently, leading to storage and transmission challenges due to the large size of seismic datasets and the need for preserving data precision.

Innovation Solution

A rational compression algorithm that represents numbers using their rational form, employing Huffman encoding and decoding based on the length and exponent differences of integer and floating-point numbers, allowing for efficient encoding and decoding without additional data structures, and utilizing multi-core computers for parallel processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If traditional compression algorithms are used on seismic data, then storage space is reduced, but compression ratio is limited and data precision may be lost

Engineering Contradiction:
Improvestorage spaceVSAvoiddata precision
Core Design Contradiction:
Quantity of substanceVSMeasurement precision

Solution Approach 1:

The patent changes the representation parameters of numerical data by decomposing floating-point numbers into exponent and significand components, then encoding these components separately using Huffman coding based on their statistical distributions. This parameter transformation enables higher compression ratios while preserving the exact numerical values, thus maintaining data precision.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent segments the floating-point number representation into distinct components (exponent and significand) and applies separate encoding strategies to each component. By analyzing and encoding the statistical distribution of each segment independently, the algorithm achieves better compression efficiency without losing any numerical information.

Inventive Principle:
Principle #1Segmentation

2Quantity of substance

If compression algorithms process large seismic datasets, then storage efficiency improves, but processing time increases

Engineering Contradiction:
Improvestorage efficiencyVSAvoidprocessing time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent performs preliminary statistical analysis of the exponent and significand distributions before compression, building Huffman coding tables in advance. This preliminary characterization of data patterns allows the main compression process to proceed efficiently by simply looking up pre-computed codes, rather than performing complex optimization during compression itself.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If lossless compression is applied to maintain data precision, then data integrity is preserved, but compression ratio is reduced compared to lossy methods

Engineering Contradiction:
Improvedata integrityVSAvoidcompression ratio
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent transforms the numerical representation parameters into a form that is more amenable to compression while maintaining exactness. By representing floating-point numbers as pairs of integers (exponent and significand) and encoding their statistical distributions, the method achieves lossless compression ratios comparable to or better than lossy methods, while fully preserving data integrity.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9209833B1Methods and apparatus for rational compression and decompression of numbers
Publication Date: 2015.12.08 EMC IP HLDG CO LLC
  • US9209833B1 patent drawing
  • US9209833B1 patent drawing
  • US9209833B1 patent drawing

AI summary

Methods and apparatus are provided for rational compression of numbers. One or more numbers are compressed by obtaining a plurality of numbers (e.g., integer numbers and/or floating point numbers), wherein each of the plurality of numbers is represented using zero or more bits to indicate an exponent at a given base of the given number and has a length representing a number of significant bits of the given number; for each of the plurality of numbers, computing the length and a difference between the length and the exponent and counting occurrences of the length given the occurrence of the difference; generating a Huffman encoding comprising at least one Huffman tree based on the counting of the occurrences; generating one or more encoding maps comprising an array mapping each of the difference and the length to a corresponding Huffman prefix code; and encoding at least one of the plurality of numbers using the one or more encoding maps.