Bitstream Format for Parallel Image Decompression
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing bitstream formats for compressed image data do not allow multiple processors to access and decompress different parts of the data in parallel, requiring a scan through the entire data stream, which is inefficient.
Innovation Solution
A bitstream format is introduced that includes a picture header, image scan data, and padding, where the picture header references an image scan index indicating the number and offset of macroblock rasterscans, enabling direct and random access to each macroblock rasterscan, allowing parallel processing by multiple processors.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a traditional bitstream format with slice markers is used, then the data can be stored in a compact serial stream format, but multiple processors cannot access different parts of the data in parallel without scanning through the entire data stream
Solution Approach 1:
The bitstream is segmented into fixed-size data blocks (e.g., 4K bytes) with explicit block markers, allowing processors to directly access specific blocks without scanning through the entire stream. Each block contains a predetermined number of macroblocks, enabling independent parallel access to different blocks by multiple processors simultaneously.
Solution Approach 2:
The data structure预先 organizes the bitstream into fixed-size blocks with markers placed at predetermined intervals before processing. This preliminary structuring allows processors to immediately locate and access any block using simple offset calculations, eliminating the need to scan through the data stream to find slice markers or block boundaries.
2Ease of operation
If slice markers are placed throughout the data stream to enable access to different slices, then random access to slices becomes possible, but the data structure becomes more complex and requires scanning to locate markers
Solution Approach 1:
The data stream is divided into uniform fixed-size blocks with simple numerical markers, replacing complex slice marker structures. Each block contains a predetermined number of macroblocks and is delimited by clear block markers, creating a regular, predictable structure that simplifies random access while reducing overall structural complexity.
Solution Approach 2:
The data structure uses fixed, predetermined parameters for block size and macroblock count per block, eliminating the need for variable-length slice structures. This parameter standardization simplifies the data structure while maintaining random access capability through direct offset calculations based on block size.
3Productivity
If the bitstream is organized as a single serial stream, then storage and transmission are efficient, but access to specific parts of the data requires scanning through the entire stream
Solution Approach 1:
The serial bitstream is segmented into fixed-size blocks with explicit markers, transforming the continuous stream into discrete, addressable units. Processors can directly access any block using offset calculations based on the known block size, eliminating the need to scan through preceding data and dramatically improving data access speed.
Solution Approach 2:
The data structure adds a block dimension to the traditional linear stream organization. By structuring data in fixed-size blocks with predetermined macroblock counts, the system enables direct jumping to any block position, effectively adding a random access dimension to the originally sequential data structure.
Data Source
AI summary
It is desirable to provide a bitstream format for compressed data that would allow multiple processors to access and decompress different parts of the data in parallel. Compressed images are usually defined in terms of macroblocks that have a width less than the image width and a height less than the image height. Thus, an image is divided several bands of multiple lines, and each band of multiple lines is divided into a macroblock. The set of macroblocks that define a band is called herein a macroblock rasterscan. The bit stream format includes, for each image, a picture header followed by image scan data. The image scan data includes data corresponding to a plurality of macroblock rasterscans. The data for each macroblock rasterscan includes data for a plurality of macroblocks for a band of lines in the image followed by padding. The padding ensures that data for each macroblock rasterscan terminates on a data boundary. The picture header references an image scan index that indicates a number of macroblock rasterscans in the image scan data and a number of lines per macroblock rasterscan, followed by entries of the index. Each entry in the index includes an offset of the macroblock rasterscan in image scan. The picture header may contain a reference to a picture header type, that references an I_frame_image_descriptor, which references the image scan index.


