Parallel Huffman Block Coding for Local Symbol Clustering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Huffman coding techniques do not effectively exploit local symbol clustering and the capabilities of modern multi-processor systems, leading to suboptimal data compression efficiency.

Innovation Solution

The method involves analyzing data files to identify local disparities in symbol probability, partitioning them into blocks with separate Huffman coding trees for each, and processing these blocks in parallel using multiple processors or cores, allowing for more efficient encoding and decoding.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If a single Huffman coding tree is used for the entire data file, then the encoding process is simple and can be implemented on a single processor, but the compression efficiency is suboptimal because it cannot exploit local symbol clustering

Engineering Contradiction:
Improveencoding simplicityVSAvoidcompression efficiency
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The data file is divided into multiple blocks, with each block processed by a separate Huffman coding tree. This segmentation allows the system to capture local symbol probability variations in different blocks while maintaining parallel processing capability across multiple processors or cores, thereby improving compression efficiency without significantly increasing encoding complexity

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different Huffman coding trees are constructed for different blocks based on their local symbol probability distributions. Each block receives a customized coding tree that optimizes compression for its specific local characteristics, allowing the system to exploit local symbol clustering and achieve better overall compression efficiency

Inventive Principle:
Principle #3Local quality

2Productivity

If multiple Huffman coding trees are used for different blocks, then compression efficiency improves by exploiting local symbol clustering, but the complexity of encoding and decoding increases

Engineering Contradiction:
Improvecompression efficiencyVSAvoidencoding complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The data file is divided into multiple blocks, with each block processed by a separate Huffman coding tree. This segmentation allows the system to capture local symbol probability variations in different blocks while maintaining parallel processing capability across multiple processors or cores, thereby improving compression efficiency without significantly increasing encoding complexity

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system design allows a single processor or core to handle multiple Huffman coding trees through time-multiplexed processing. The processor can switch between different coding trees for different blocks, effectively making one processor perform the work of multiple processors and reducing the overall system complexity

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

3Productivity

If parallel processing is implemented across multiple processors, then compression efficiency and processing speed improve, but the system complexity and coordination overhead increase

Engineering Contradiction:
Improveprocessing speedVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The data file is divided into multiple blocks that can be independently processed by different processors or cores. This natural segmentation enables parallel processing without requiring complex inter-processor coordination, as each processor works independently on its assigned block with its own Huffman coding tree

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system design allows a single processor or core to handle multiple Huffman coding trees through time-multiplexed processing. The processor can switch between different coding trees for different blocks, effectively making one processor perform the work of multiple processors and reducing the overall system complexity

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

Data Source

PatentUS9258013B1Data compression with Huffman code on multicore processors
Publication Date: 2016.02.09 ROCKWELL COLLINS INC
  • US9258013B1 patent drawing
  • US9258013B1 patent drawing
  • US9258013B1 patent drawing

AI summary

An encoding system analyzes a data file to determine if portions of the data file include significant disparities in symbol probability. Huffman coding trees are produced for each of the portions of the data file and the portions are separately encoded according to specific Huffman coding trees. Encoded portions and the corresponding Huffman coding tree are packaged together and transmitted to a decoder. The encoder and decoder processes portions using different Huffman coding trees in parallel via multiple processors or processing cores.