Parallel CABAC Entropy Encoder for Faster Multi-Bin Video Coding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current video data compression techniques, particularly those using context-based adaptive binary arithmetic coding (CABAC), face challenges in achieving efficient encoding due to complex algorithms and long coding times, especially when handling high-resolution video data.
Innovation Solution
An entropy encoder is designed with a binarizer, bin buffer, and multiple bin encoding circuits, allowing for single-bin and multi-bin encoding operations based on context values, and a bit generator to produce a bit stream efficiently, with the bin buffer independently managing the flow of bin values and context information to optimize encoding processes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of substance
If context-based adaptive binary arithmetic coding (CABAC) is used for video data compression, then compression efficiency is improved, but coding time increases and algorithm complexity increases
Solution Approach 1:
The entropy encoder is divided into multiple independent bin encoding circuits (first bin encoding circuit, second bin encoding circuit, third bin encoding circuit) that can process different bin sequences in parallel. The binarizer generates multiple bin sequences that are distributed to different encoding circuits, enabling simultaneous encoding operations that reduce overall coding time while maintaining CABAC compression efficiency.
Solution Approach 2:
The patent transitions from sequential single-bin encoding to parallel multi-bin encoding by adding a temporal dimension to the processing. Multiple bin sequences are encoded simultaneously across different circuits rather than one after another, effectively using parallel processing dimensions to reduce coding time while preserving the compression benefits of CABAC.
2Loss of substance
If context-based adaptive binary arithmetic coding (CABAC) is used for video data compression, then compression efficiency is improved, but device complexity increases
Solution Approach 1:
The complex CABAC algorithm is segmented into multiple independent bin encoding circuits, each handling a specific bin sequence. This segmentation distributes the computational complexity across parallel units rather than concentrating it in a single sequential processor, making the overall system more manageable and efficient despite the inherent complexity of CABAC.
Solution Approach 2:
Multiple bin encoding circuits are designed with identical functional capabilities, each able to perform complete CABAC encoding operations independently. This universality allows the system to handle different bin sequences through identical proven logic, reducing design complexity compared to creating specialized circuits for different encoding tasks.
3Device complexity
If multiple bin sequences are processed sequentially in a single encoding circuit, then device complexity is reduced, but productivity decreases
Solution Approach 1:
The encoding task is segmented into multiple bin sequences that are distributed to separate encoding circuits. Each circuit processes its assigned sequences independently and simultaneously, transforming a single-threaded sequential process into a multi-threaded parallel process that dramatically increases encoding throughput and productivity.
Solution Approach 2:
The binarizer performs preliminary action by generating and organizing multiple bin sequences before distribution to encoding circuits. This preprocessing step ensures that each encoding circuit receives ready-to-process data in advance, enabling immediate parallel encoding operations without waiting for sequential data preparation, thus maximizing encoding speed.
Data Source
AI summary
An entropy encoder includes a binarizer, a bin buffer, a plurality of bin encoding circuits and a bit generator. The binarizer generates a plurality of bin values based on a plurality of syntax elements. The bin buffer sequentially stores the plurality of bin values, and outputs at least some of the plurality of bin values based on a storing condition of the bin buffer. The plurality of bin encoding circuits performs an encoding operation on a single bin value based on a single context value when the bin buffer outputs the single bin value, and perform a multi-bin encoding operation on two or more bin values based on two or more context values when the bin buffer outputs the two or more bin values. The bit generator generates a bit stream based on bit values output from the plurality of bin encoding circuits.


