Progressive JPEG Decoder Memory Reduction via Scan Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing progressive JPEG decoding methods require large memory buffers to store decoded quantized DCT coefficients, which is impractical for devices with limited memory resources, such as many Internet applications and mobile devices, leading to inefficiencies in displaying large images over limited bandwidth.
Innovation Solution
A progressive decoding method that decodes each scan into a partial decoded pixel and a non-zero indicator, accumulates these pixels, and updates a non-zero history, eliminating the need for an image-sized memory buffer by storing only the summed partial decoded pixels and non-zero history.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If large memory buffers are used to store decoded quantized DCT coefficients, then complete image decoding can be achieved, but memory resource consumption increases significantly
Solution Approach 1:
The patent segments the image decoding process into multiple progressive scans, where each scan decodes only a portion of the image data. Instead of storing all quantized DCT coefficients in memory, the decoder processes and displays incremental portions of the image sequentially, reducing peak memory requirements while maintaining complete image reconstruction capability
Solution Approach 2:
The patent introduces a time dimension to the decoding process by implementing progressive scanning. Image data is decoded and displayed across multiple time steps (scans) rather than requiring all data to be stored simultaneously in memory. This temporal dimension allows the system to reconstruct complete images with significantly reduced memory buffers by processing data incrementally
2Productivity
If progressive DCT decoding is implemented to display rough images first, then bandwidth utilization improves, but memory buffer requirements increase to store multiple scan data
Solution Approach 1:
The patent divides the progressive decoding process into sequential scans where each scan processes only the necessary portion of data for that scanning pass. Memory buffers are allocated dynamically for each scan rather than pre-allocating space for all scans simultaneously, enabling progressive image display with optimized memory usage that scales with actual processing needs
Solution Approach 2:
The patent implements preliminary processing of each scan before storing it in memory buffers. By pre-processing and filtering scan data to retain only essential information before storage, the system maintains the benefits of progressive decoding for bandwidth utilization while significantly reducing the memory buffer size required to store multiple scan datasets
3Manufacturing precision
If image-sized memory buffers are allocated for progressive JPEG decoding, then large images can be decoded, but device compatibility decreases for memory-constrained devices
Solution Approach 1:
The patent implements dynamic memory buffer management where buffer size adapts based on the actual image dimensions and complexity being processed. Rather than allocating fixed image-sized buffers, the system dynamically adjusts buffer allocation to match the specific decoding requirements, enabling large image decoding capability on memory-constrained devices through efficient, adaptive resource utilization
Solution Approach 2:
The patent changes the memory allocation parameter from fixed image-sized buffers to variable buffers that scale with actual processing needs. By implementing dynamic buffer size adjustment based on image characteristics and progressive scan requirements, the system maintains large image decoding capability while achieving compatibility with devices having limited memory resources
Data Source
AI summary
A progressive decoding method for decoding a bit-stream signal into corresponding image data is disclosed. The bit-stream signal includes a plurality of scans. The progressive decoding method includes receiving the plurality of scans according to a predetermined sequence, decoding each of the scans into a partial decoded pixel and a non-zero indicator, and summing each newly generated partial decoded pixel and updating a non-zero history with the non-zero indicator according to the predetermined sequence.


