Integer Bitstream Compression Using Separate Run and Data Coding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing encoding schemes for integer-valued bitstreams, such as those representing videos and images, face inefficiencies when data values frequently differ, leading to reduced compression efficiency or increased computational burden due to adaptive switching between run-length and differential coding.
Innovation Solution
A new compression scheme that entropy encodes run/data value pairs separately, selecting codewords based on length and magnitude, and concatenates them in an encoded bitstream, allowing for efficient encoding and decoding by reducing the need for frequent calculations and serial processing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If adaptive switching between run-length coding and differential coding is implemented, then compression efficiency is improved for diverse data patterns, but device complexity increases due to switching logic and side-information requirements
Solution Approach 1:
The patent segments the encoding process into distinct modes (run-length mode and differential mode) with dedicated encoding paths for each. The encoder selectively applies run-length encoding when consecutive identical values are detected, and differential encoding when values change, avoiding the need for complex adaptive switching logic while maintaining compression efficiency for diverse data patterns.
Solution Approach 2:
Instead of using complex switching logic to decide when to apply each encoding type, the patent inverts the approach by using simple condition checks (whether consecutive values are identical) to naturally route to the appropriate encoding mode. This simplifies the encoder structure while preserving the benefits of adaptive compression.
2Measurement precision
If differential coding is performed before run-length coding, then encoding accuracy is improved, but computational burden increases due to sum calculations required at the decoder
Solution Approach 1:
The patent segments the decoding process into two independent stages: first decoding the differential components to reconstruct original values, then applying run-length expansion. This eliminates the need for sum calculations during decoding, reducing computational burden while maintaining encoding accuracy through the sequential processing of differential and run-length components.
Solution Approach 2:
The patent performs differential encoding first to capture value changes, then applies run-length encoding to the differential results. During decoding, this ordering allows direct reconstruction of original values from differential components without requiring additional sum calculations, thereby reducing computational burden while preserving encoding precision.
3Productivity
If run-length coding is used for data with frequent value changes, then compression ratio deteriorates, but switching to differential coding increases encoder complexity
Solution Approach 1:
The patent implements a dynamic encoding strategy that automatically adapts to data characteristics by detecting whether consecutive values are identical. When values change frequently, the system naturally transitions to differential encoding without requiring complex switching logic, thereby maintaining compression ratio while avoiding increased encoder complexity.
Solution Approach 2:
The encoding system uses the data's own characteristics (whether consecutive values are identical) to self-determine the appropriate encoding mode. This self-service mechanism eliminates the need for external switching logic or side-information, allowing the system to maintain optimal compression ratio across diverse data patterns without increasing encoder complexity.
Data Source
Figure 1
Figure 2
Figure 3~4
AI summary
A method and system are provided to minimize the size and complexity of bitstreams associated with encoded data by using a new compression scheme. An entropy encoder receives a list of run/data value pairs and entropy encodes separately the runs and data values, selecting their codewords according to length and magnitude, respectively, and catenates the resulting codeword pairs - run codeword first - in an encoded bitstream.