Parallel Entropy Coding with Shared Lookup Tables for Real-Time Compression
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data compression technologies face bottlenecks due to the serial nature of entropy encoding and decoding processes, which hinder real-time compression efficiency, especially in applications like video encoding standards like H.264.
Innovation Solution
A parallel implementation of entropy encoders and decoders using multiple encoding/decoding elements connected to shared or dedicated search tree lookup tables, with load balancing mechanisms to distribute computational workload evenly across processing engines, allowing for simultaneous processing of multiple probabilities.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If serial entropy encoding/decoding is used, then implementation simplicity is maintained, but processing speed and real-time compression efficiency deteriorate
Solution Approach 1:
The patent divides the entropy encoding/decoding process into multiple parallel processing elements (encoding elements and decoding elements). Each processing element handles a specific probability or subset of probabilities, allowing simultaneous processing of multiple data streams. This segmentation transforms the single-threaded serial operation into multi-threaded parallel operation, directly addressing the speed bottleneck while maintaining manageable complexity through modular design.
Solution Approach 2:
The patent introduces a parallel processing dimension by deploying multiple encoding elements and decoding elements that operate simultaneously on different probability spaces. Instead of processing probabilities sequentially in time (1D), the system processes multiple probabilities concurrently across multiple processing elements (transitioning to 2D/parallel space), thereby achieving real-time compression performance.
2Loss of substance
If CABAC is used instead of CAVLC, then compression ratio is improved, but computational complexity and processing time increase
Solution Approach 1:
The patent segments the computationally intensive CABAC decoding process into multiple parallel decoding elements, each handling specific probability intervals. This parallelization maintains the high compression ratio benefits of CABAC while distributing the computational burden across multiple elements, reducing the processing time and complexity burden on any single processing unit.
Solution Approach 2:
The patent pre-organizes the probability space into discrete intervals assigned to different decoding elements before processing begins. This preliminary organization of probability ranges allows each decoding element to operate independently with pre-computed probability models, eliminating the need for sequential probability updates and reducing computational complexity during actual decoding operations.
3Productivity
If more encoding/decoding elements are added for parallel processing, then processing capacity increases, but resource requirements and system complexity increase
Solution Approach 1:
The patent designs encoding elements and decoding elements as universal processing units that can handle multiple probability intervals. Each element is configured to process a specific range of probabilities, and the system dynamically assigns probability intervals to available elements. This multi-functionality allows the same hardware architecture to be reused across multiple processing elements, increasing throughput without proportionally increasing total hardware resource requirements.
Data Source
AI summary
An entropy encoder block for use in a context adaptive encoder and an entropy decoder block for use in a context adaptive decoder is presented. The encoder block includes a plurality of encoding elements, for processing encoding search tree look tables corresponding to encoding probabilities used by the context adaptive encoder, at least two of the encoding elements servicing the same probability. In an embodiment, at least one of the encoding search tree lookup tables comprises a set of shared encoding search tree lookup tables, accessible by at least two of the encoding elements. The decoder block includes a plurality of decoding elements, for processing decoding search tree lookup tables corresponding to the decoding probabilities used by the context adaptive decoder, at least two of the decoding elements servicing the same probability. In an embodiment, at least one of the decoding search tree lookup tables comprises a set of shared decoding search tree lookup tables, accessible by at least two of the decoding elements.


