Integer Sequence Encoding for Biased Small-Value Compression
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing encoding techniques, such as Golomb-Rice encoding, face challenges in efficiently compressing series of integer values significantly biased towards small values, leading to decreased compression performance and inability to achieve average bit counts less than 0.5 bits per integer value.
Innovation Solution
A novel encoding method that allocates specific bit codes to consecutive zero values and non-zero values, using predetermined code trees or correspondence tables to achieve a shorter bit length than traditional methods, ensuring decodability and optimal bit allocation based on the distribution of integer values.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If Golomb-Rice encoding is used for compressing integer series, then the encoding is simple and can be decoded, but the compression performance decreases when the integer series is significantly biased towards small values
Solution Approach 1:
The patent segments the encoding process into two distinct parts: (1) encoding the number of leading zero values using a fixed 1-bit code, and (2) encoding the non-zero value using a variable-length code based on its magnitude. This segmentation allows the encoder to optimize bit allocation for different value distributions, achieving better compression performance while maintaining decoding simplicity.
Solution Approach 2:
The patent applies different encoding strategies to different parts of the integer series based on local characteristics. Specifically, it uses a specialized code allocation scheme for leading zero values versus non-zero values, adapting the bit length and code structure to the local distribution pattern of zeros and non-zeros in the series.
2Productivity
If traditional variable-length encoding is used, then short codes can be allocated to high-probability integer values, but long codes must be allocated to low-probability values to maintain decodability
Solution Approach 1:
The patent extracts the leading zero values from the integer series and encodes them separately using a dedicated 1-bit code. This extraction allows the remaining non-zero value to be encoded independently with optimized bit allocation, reducing the overall expected bit length while maintaining decodability through the separation of zero and non-zero encoding.
3Productivity
If the code allocation is optimized for exponential distribution, then minimum expected bit length is achieved, but the method cannot handle distributions with significant bias towards small values effectively
Solution Approach 1:
The patent introduces a dynamic encoding approach where the code allocation adapts to the actual distribution characteristics of the integer series. By using a 1-bit code for leading zeros and variable-length codes for non-zero values, the system dynamically adjusts bit allocation based on the observed frequency and position of zero values, making it adaptable to various distributions including those with significant bias towards small values.
Data Source
AI summary
Provided is an encoding/decoding technique according to which it is possible to perform encoding with a small average bit count, even for a series of integer values with a distribution that is significantly biased to a small value, including small values that are not zero values. The present invention includes an integer encoding unit that, for an input series of non-negative values xn, n∈{1, 2, . . . , N} (hereinafter referred to as “integer series”), obtains a one-bit code with a bit value of “x” as a code corresponding to L consecutive integer values 0 included in the integer series, L being an integer that is 2 or more, and obtains a K×xn-bit or a K×xn+1-bit code that includes at least one bit value “x” and at least one bit value “y” in the first bit to the K-th bit and in which the bit values of the K×(xn−1) bits from the end are “y”, as a code corresponding to a set composed of 0 to L−1 consecutive integer values 0 included in the integer series and one integer value xn other than 0.


