LZ77 Matching String Segmentation for Overlap-Free Decompression
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In the LZ77 data compression algorithm, when a copy source overlaps a copy destination, high-speed multi-byte copying is hindered, requiring a complicated process for individual byte copying, and it is necessary to confirm whether a copy source overlaps a copy destination before decompression can proceed efficiently.
Innovation Solution
The algorithm subdivides and encodes matching strings such that the relative position is greater than the matching length, preventing overlap between the copy source and destination, allowing for high-speed decompression without conditional branch processing by dividing the matching string in a way that the copy source does not overlap the copy destination.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the LZ77 algorithm is used for data compression, then data can be compressed by replacing repeated symbol strings with pointers, but when a copy source overlaps a copy destination during decompression, high-speed multi-byte copying is hindered and complicated individual byte copying is required
Solution Approach 1:
The patent segments the matching string into multiple parts by introducing a division point. The matching string is divided such that the copy source and copy destination do not overlap, allowing independent processing of each segment. This segmentation enables the use of efficient multi-byte copying operations without conditional branch processing.
Solution Approach 2:
The patent performs preliminary division of the matching string during the compression phase, establishing division points that prevent overlap between copy source and destination. This preliminary action ensures that during decompression, the copy operations can proceed directly without needing to check for overlaps or take conditional branches, thereby achieving high-speed decompression.
2Reliability
If conditional branch processing is used to handle overlapping copy source and destination, then correct decompression can be achieved, but decompression speed is reduced due to the need for conditional checks
Solution Approach 1:
The patent performs preliminary division of the matching string during compression to establish division points that guarantee non-overlapping copy source and destination. This preliminary action eliminates the need for conditional branch processing during decompression, as the structure is already optimized to prevent overlaps, thereby achieving both correctness and high speed.
Solution Approach 2:
The patent converts the potential harm of overlapping copy operations into a benefit by deliberately introducing division points that prevent overlaps. This design choice transforms what could be a problematic situation into an optimized structure that enables faster, simpler decompression operations without conditional checks.
3Device complexity
If the matching string is not divided, then the compression structure is simple, but the copy source may overlap the copy destination requiring complex processing
Solution Approach 1:
The patent segments the matching string by introducing division points that split it into multiple parts. This segmentation prevents overlap between copy source and destination, enabling efficient decompression. The segmentation is performed in a way that maintains compression effectiveness while eliminating the need for complex overlap handling during decompression.
Solution Approach 2:
The patent performs preliminary division of the matching string during compression, establishing division points that prevent overlap. This preliminary action simplifies the decompression process by ensuring that copy operations can proceed directly without conditional checks, thereby improving decompression efficiency while maintaining a manageable compression structure.
Data Source
AI summary
A data compression apparatus includes a memory and a processor. The processor extracts a second character string as a matching string from a character string after a first character string in a character string of data before compression that is stored in the memory, the second character string being identical with the first character string, and identifies a length of the matching string, and a relative position indicating how many addresses the first character string precedes the second character string by. The processor extracts a third character string having a length that is less than the relative position from the extracted second character string. The processor encodes a length of the third character string. The processor encodes the relative position.


