Parallel Compressed Data Decoding for Faster Decompression
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional decompression methods for large files incur significant resource and time costs due to serial sequential execution, limiting performance.
Innovation Solution
A parallel decompression process is employed, utilizing multiple threads to decompress portions of a compressed data file simultaneously, with on-chip caching to reduce off-chip memory access frequency and latency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If conventional serial sequential decompression methods are used, then implementation simplicity is maintained, but decompression speed is significantly reduced
Solution Approach 1:
The patent divides the compressed data stream into multiple independent blocks that can be decompressed in parallel. Each block is processed by a separate processing thread, allowing simultaneous decomposition of different segments of the input data. This segmentation enables the system to achieve high-speed decompression by utilizing multiple cores or processing units without requiring complex inter-thread synchronization for the core decompression logic.
2Productivity
If parallel processing is implemented to accelerate decompression, then decompression speed increases, but resource consumption and system complexity increase
Solution Approach 1:
The patent performs preliminary actions by pre-organizing the compressed data into independently decompressible blocks before parallel processing begins. Each block is prepared with its own context information and parameters, allowing processing threads to start decompression immediately without requiring complex runtime coordination. This preliminary organization reduces the computational overhead during actual parallel decompression, improving throughput while controlling resource consumption.
Data Source
AI summary
Techniques described herein relate to methods for decompressing a compressed data stream. An example method includes reading groups of data from the compressed data stream and, for each group of data read from the compressed data stream, identifying symbols in the group of data, the symbols having a type corresponding to Literal bytes or Copy bytes of data in the compressed data stream, processing each symbol in one of a plurality of processing stream to produce decompressed data bytes, the processing stream used to process the symbol being selected according to the symbol's type, and merging the uncompressed data bytes from the different processing streams into a decompressed output data stream, where the uncompressed data bytes from the different processing streams are merged to preserve their order corresponding to an order or corresponding symbols in the compressed data stream.


