Parallel Symbol Decoding for Variable-Length Decompression
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Efficient parallel decoding of data compressed into variable length symbols is challenging due to the unknown starting location of the next symbol in a compressed data stream, making it difficult to parallelize decompression operations effectively.
Innovation Solution
A data decompressor system that uses multiple symbol decoders to speculatively decode windows of data in parallel, with a symbol strider selecting valid decoder outputs based on the size of previously decoded symbols, ensuring efficient decomposition by determining the location of the next valid symbol.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple symbol decoders operate in parallel to decode variable length symbols, then decompression speed is improved, but determining the correct starting location of each symbol becomes more complex
Solution Approach 1:
The patent performs preliminary speculative decoding at multiple potential starting locations before knowing which location is correct. Multiple symbol decoders speculatively decode symbols starting at different positions in parallel, and the correct decoded symbols are identified afterward by validation, allowing the system to prepare multiple possibilities in advance without sequential processing
Solution Approach 2:
The patent segments the decompression task by dividing the data stream into multiple potential symbol starting locations, with each symbol decoder handling a specific segment or starting position. This segmentation allows parallel processing of different symbol candidates simultaneously, transforming a single-threaded complex problem into multiple simpler parallel tasks
2Loss of time
If speculative decoding is performed at multiple starting locations, then the location of the next valid symbol is determined faster, but more decoding operations are required
Solution Approach 1:
The system performs preliminary speculative decoding at multiple potential starting locations simultaneously to determine where the next valid symbol actually begins. By preparing multiple decoding possibilities in parallel before validation, the system avoids sequential searching and identifies the correct symbol location faster, despite performing more total decoding operations
Solution Approach 2:
The patent creates multiple copies of the decoding functionality at different starting positions, with each copy attempting to decode a symbol from its assumed starting location. These parallel decoding copies are then validated to identify which one produced the correct symbol, allowing the system to explore multiple possibilities simultaneously rather than one at a time
Data Source
Figure 1
Figure 2
Figure 3
AI summary
In some data compression algorithms and/or standards, the compressed data comprises variable length symbols. A set of parallel decoders speculatively decode/decompress a window (i.e., sub-block) of data. Each of the decoders attempts to decode/decompress a symbol that starts at a different location in the compressed data block. Once the decoders have finished decoding a symbol (or determined that a valid symbol does not begin at the beginning of the window assigned to that decoder), a symbol strider selects the decoder outputs corresponding to valid symbols. The symbol strider successively selects decoder outputs based on the size of the previous symbols that were found to be valid. When the next valid symbol begins outside the current window, its location is stored to indicate the location of the next valid symbol in a subsequent window.