Hardware Data Compressor with Concurrent Huffman Sorting

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional data compression methods using dynamic Huffman code tables in DEFLATE-style compression are inefficient due to sequential processing, which delays Huffman encoding until histograms are fully generated, and sorting frequencies is time-consuming, adding to the overall compression time.

Innovation Solution

A hardware data compressor that constructs dynamic-prime Huffman code tables after an initial portion of the input block is scanned and uses them in parallel with ongoing scanning, and sorts frequencies incrementally concurrently with input block scanning to hide sorting time behind scanning time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If sequential processing is used to generate histograms and sort frequencies before Huffman encoding, then processing simplicity is maintained, but total compression time increases

Engineering Contradiction:
Improveprocessing simplicityVSAvoidtotal compression time
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by constructing dynamic-prime Huffman code tables after scanning only an initial portion of the input block, before the complete histogram is available. This allows Huffman encoding to begin in parallel with the remaining scanning process, rather than waiting for sequential completion of histogram generation and sorting.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements continuity of useful action by overlapping three processes: LZ77 compression scanning, Huffman code table construction, and frequency sorting. These operations run concurrently rather than sequentially, keeping hardware resources continuously utilized and eliminating idle waiting time between processing stages.

Inventive Principle:
Principle #20Continuity of useful action

2Measurement precision

If complete histogram generation and frequency sorting are performed before Huffman encoding, then encoding accuracy is improved, but processing time increases

Engineering Contradiction:
Improveencoding accuracyVSAvoidprocessing time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent applies partial action by constructing Huffman code tables using only a portion of the input data (initial scan portion) rather than requiring the complete histogram. This partial construction provides sufficient accuracy for effective compression while enabling parallel processing with the remainder of the scanning process.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent implements dynamics by using dynamic-prime Huffman code tables that are constructed and updated during the scanning process rather than being static. The code tables adapt as more data becomes available, allowing the system to balance between early encoding benefits and final encoding accuracy.

Inventive Principle:
Principle #15Dynamics

3Productivity

If parallel processing is used to overlap Huffman coding with LZ77 compression, then compression speed is improved, but device complexity increases

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

Solution Approach 1:

The patent applies merging by combining multiple processing functions into unified hardware structures. The same scanning logic serves both LZ77 compression and histogram generation, and the sorting hardware simultaneously prepares data for Huffman encoding, reducing overall device complexity despite parallel operation.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent implements multi-functionality by designing hardware components that perform multiple roles. The scanning engine generates both compression data and frequency statistics, while the sorting mechanism prepares data for both immediate encoding and final histogram completion, allowing parallel processing without proportionally increasing hardware complexity.

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

4Loss of time

If frequency sorting is performed incrementally concurrent with scanning, then sorting time is hidden behind scanning time, but processing complexity increases

Engineering Contradiction:
Improvesorting timeVSAvoidprocessing complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by performing incremental frequency sorting during the scanning process rather than waiting for complete data collection. This preliminary sorting prepares frequency data for early Huffman code table construction while the scanning continues, effectively hiding sorting time within the scanning duration.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements continuity of useful action by maintaining continuous sorting operations throughout the scanning process. The sorting hardware operates continuously alongside scanning, ensuring that frequency data is always ready for Huffman encoding without creating idle time or processing gaps.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10027346B2Hardware data compressor that maintains sorted symbol list concurrently with input block scanning
Publication Date: 2018.07.17 VIA ALLIANCE SEMICON CO LTD
  • US10027346B2 patent drawing
  • US10027346B2 patent drawing
  • US10027346B2 patent drawing

AI summary

A hardware data compressor includes a first hardware engine that scans an input block of characters to produce a stream of tokens, the stream of tokens comprising replacement back pointers to matched strings of characters of the input block and non-replaced characters of the input block. The hardware data compressor also includes a second hardware engine that receives the stream of tokens and maintains a sorted list of symbols associated with the tokens. The hardware data compressor also includes the second hardware engine concurrently maintains the sorted list of symbols by frequency of occurrence as the first hardware engine produces the tokens of the stream.