CABAC Range Derivation Using Inverted Probability Lookup
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing entropy coding techniques for image and video coding, such as CABAC, face challenges in reducing computational complexity while maintaining coding performance, particularly due to large lookup tables that increase hardware costs and degrade efficiency.
Innovation Solution
The method involves deriving an LPS range using mathematical operations involving an LPS probability index and a range index, with the LPS probability index determined based on the current probability, and storing only the probability range from 0.0 to 0.5 in a lookup table, allowing the other half of the range to be inverted for efficient encoding and decoding.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If a full probability range lookup table (0.0 to 1.0) is used for CABAC, then coding accuracy is maintained, but hardware cost and computational complexity increase
Solution Approach 1:
The probability range [0, 1) is segmented into two halves: [0, 0.5) and [0.5, 1). The lookup table only stores rangeLPS values for the first half [0, 0.5). For probabilities in the second half [0.5, 1), the system inverts the probability to map it back to the first half, performs the lookup, and then inverts the result. This segmentation reduces the lookup table size by approximately half while maintaining coding accuracy.
Solution Approach 2:
When the current probability p is greater than or equal to 0.5, the system inverts the probability to (1-p), which maps it to the range [0, 0.5). The lookup table stores rangeLPS values for inverted probabilities. After retrieving rangeLPS from the table using the inverted probability as index, the system inverts the result to obtain the correct rangeLPS for the original probability. This inversion technique allows the use of a smaller lookup table without loss of precision.
2Productivity
If a large lookup table is used to store all probability ranges, then coding efficiency is maintained, but memory usage and processing overhead increase
Solution Approach 1:
The probability space is divided into two segments: probabilities less than 0.5 and probabilities greater than or equal to 0.5. The lookup table only needs to store entries for the first segment. For the second segment, the system uses probability inversion to map queries to the first segment, retrieves values from the table, and inverts the results. This segmentation reduces memory usage by approximately 50% while preserving coding efficiency.
Solution Approach 2:
Instead of storing duplicate rangeLPS values for both probability ranges [0, 0.5) and [0.5, 1), the system creates a virtual copy of the lookup table entries through mathematical inversion. When a probability p >= 0.5 is queried, the system looks up (1-p) in the table and inverts the result, effectively creating the needed value without physical storage duplication. This reduces memory requirements while maintaining full functionality.
3Device complexity
If probability inversion is used to reduce lookup table size, then hardware costs decrease, but computational steps increase
Solution Approach 1:
The system changes the parameter representation by using inverted probabilities as lookup table indices. Instead of directly indexing with probability p, the system uses (1-p) when p >= 0.5. This parameter transformation enables the use of a smaller lookup table. The additional inversion operations are simple bitwise or arithmetic operations that are computationally inexpensive compared to the memory access savings achieved by using a smaller table.
Data Source
Figure 1~2
Figure 3
AI summary
A method and apparatus of entropy coding of coding symbols using Context-Based Adaptive Binary Arithmetic Coder (CABAC) are disclosed. According to the present invention, CABAC encoding or decoding is applied to a current bin of a binary data of a current coding symbol according to a current probability for a binary value of the current bin and a current range associated with the current state of arithmetic coder. An LPS probability index corresponding to an inverted current probability or the current probability is derived depending on whether the current probability is greater than 0.5. A range index is derived for identifying one range interval containing the current range. An LPS range is then derived using one or more mathematical operations comprising calculating a multiplication of a first value related to the LPS probability index and a second value related to the range index n.