Block Compression Using 3- and 6-Byte Sequence Dictionaries

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Dictionary coders frequently reset when compressing print streams with large amounts of image and font data, leading to inefficient compression due to forgetting previously encountered sequences and treating repeated image data as new, resulting in suboptimal storage and transfer efficiency.

Innovation Solution

A block compression algorithm that processes data in 6-byte windows, using a lookup table and binary trees to identify and compress repeating sequences of 3 and 6 bytes, assigning codewords with locations and lengths, and emitting sequences to manage code word changes and matches, thereby reducing resets and enhancing compression efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a dictionary coder is used to compress print streams with image and font data, then compression is performed, but the dictionary coder frequently resets when running out of code words, causing loss of previously learned sequences and reducing compression efficiency

Engineering Contradiction:
Improvecompression efficiencyVSAvoidloss of previously encountered sequences
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The invention segments the dictionary into multiple separate dictionaries (first dictionary for image data, second dictionary for text data) instead of using a single unified dictionary. This segmentation prevents the exhaustion of code words in one dictionary from affecting the other, eliminating the need for frequent resets and preserving learned sequences across different data types.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The invention changes the parameter of dictionary capacity by providing each dictionary with a different maximum number of code words (first maximum number for image dictionary, second maximum number for text dictionary). This allows optimization of code word allocation based on the specific characteristics of different data types, preventing premature exhaustion in either dictionary.

Inventive Principle:
Principle #35Parameter changes

2Ease of operation

If a dictionary coder resets frequently due to image data, then image data is processed, but the coder forgets sequences from both before and within the image data, treating repeated image data as new

Engineering Contradiction:
Improvehandling of image dataVSAvoidcompression of repeated data
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The invention segments the compression process by directing image data to a dedicated first dictionary while text data uses a second dictionary. This allows the first dictionary to accumulate image sequences without being constrained by the code word limits of a unified dictionary, enabling recognition and compression of repeated image data even after processing large amounts of unique image content.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The invention performs preliminary classification of data types before compression, routing image data to the first dictionary and text data to the second dictionary. This preliminary action ensures that image sequences are captured and stored in the appropriate dictionary before repetition occurs, enabling efficient compression of repeated image data without requiring resets.

Inventive Principle:
Principle #10Preliminary action

3Quantity of substance

If print streams with thousands of recipients are compressed, then storage and transfer efficiency is improved, but bandwidth-limited networks still require significant transfer time

Engineering Contradiction:
Improvedata volumeVSAvoidtransfer time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The invention merges two compression approaches by combining the specialized image data compression (using the first dictionary for image sequences) with text data compression (using the second dictionary for text sequences). This combined approach achieves superior overall compression ratios for print streams containing both image and text data, reducing the total data volume and consequently the transfer time over bandwidth-limited networks.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS7870160B2Block compression algorithm
Publication Date: 2011.01.11 UPLAND SOFTWARE INC LOGICIELS UPLAND INC
  • US7870160B2 patent drawing
  • US7870160B2 patent drawing
  • US7870160B2 patent drawing

AI summary

A method for compressing a data stream based on a 3 byte sequence is used. Each three byte sequence is assigned a code word including a location and a length of the data associated with the code word. When a 6 byte sequence is located, a binary tree of 6 byte sequences sharing the same first three bytes is built, associating each 6 byte sequence with a position in the stream where the 6 byte sequence is found. When the length of a code word is changed, a byte sequence is emitted that identifies the code word to be changed and updating the length of the code word, so that when a match is found, a byte sequence is emitted that identifies the code word associated with the matched data. The method finds particular application in data streams that are sent to printers, and which contain large blocks of identical data.