Parallel Progressive JPEG Decoding for Low Memory Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for decoding Progressive JPEG bitstreams require significant memory and computation resources, leading to increased latency and inefficiency, as they perform repeated Inverse Discrete Cosine Transform (IDCT) computations and store all DCT coefficients, which is particularly problematic for devices with limited memory like Set Top Boxes.
Innovation Solution
The method involves parallel decoding of Progressive JPEG bitstreams by assigning each scan of an image component to a separate thread or process, using synchronization signals for efficient resource management and double buffering to reduce memory requirements, allowing for simultaneous decoding of multiple data units and region-of-interest decoding to optimize resource usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If all DCT coefficients are stored in memory for progressive JPEG decoding, then complete image reconstruction is enabled, but memory requirements increase significantly
Solution Approach 1:
The patent segments the progressive JPEG bitstream into multiple scans, where each scan contains a subset of DCT coefficients. Instead of storing all coefficients simultaneously, the decoder processes and displays images incrementally as each scan is decoded, allowing complete image reconstruction over time while using minimal memory at any given moment.
Solution Approach 2:
The patent performs preliminary decoding of each scan as it becomes available, generating intermediate image approximations before all DCT coefficients are received. This allows the system to begin displaying coarse approximations early and progressively improve them, enabling complete reconstruction without requiring all data to be stored beforehand.
2Manufacturing precision
If repeated IDCT computations are performed for successive image improvements, then image quality progressively improves, but computation resources increase proportionally
Solution Approach 1:
The patent implements periodic action by performing IDCT computations only when new scan data becomes available, rather than continuously recomputing from all coefficients. Each scan triggers a discrete decoding and IDCT operation that updates the image approximation, reducing total computation while maintaining progressive quality improvement.
Solution Approach 2:
The patent applies partial action by computing IDCT only for the newly decoded scan coefficients and combining them with previously decoded coefficients, rather than performing full IDCT on all coefficients at each step. This reduces computation resources while still achieving successive image quality improvements.
3Quantity of substance
If sequential decoding of scans is performed, then memory usage is reduced, but decoding latency increases
Solution Approach 1:
The patent segments the decoding process into independent scan-level tasks that can be executed in parallel. Each scan is decoded independently using minimal memory, and multiple scan decoding operations are launched simultaneously as threads or processes, reducing overall decoding latency while maintaining low memory usage through proper synchronization.
Solution Approach 2:
The patent maintains continuity of useful action by overlapping scan decoding operations with bitstream reception and processing. Multiple scans are decoded in parallel without idle waiting, and synchronization mechanisms ensure that image reconstruction continuously progresses as scans become available, minimizing decoding latency.
4Productivity
If parallel decoding threads are used, then decoding speed increases, but synchronization complexity and resource management difficulty increase
Solution Approach 1:
The patent introduces intermediary synchronization mechanisms such as barriers, semaphores, and mutexes that mediate between parallel decoding threads and the image reconstruction process. These intermediaries coordinate thread execution, manage shared data structures, and ensure thread-safe access to DCT coefficients and intermediate images, enabling parallel decoding speed improvements while controlling synchronization complexity through standardized patterns.
Data Source
AI summary
A progressive JPEG bitstream may comprise an image component that is comprised of multiple scans of MCUs/data units that are in turn comprised of at least one MCU/data unit segment. Each MCU/data unit segment is successively scanned. The MCU/data unit segment is then reconstructed using multiple entropy decoders operating in parallel on different scans of each MCU/data unit segment.


