CABAC Coefficient Coding Switch for HEVC Throughput Bottlenecks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

High bit-rate encoding and decoding in video coding standards like HEVC using CABAC face throughput performance issues due to high computational complexity and resource consumption, especially when dealing with high bit-rate cases and large Absolute-3 values.

Innovation Solution

Implementing a method that involves arithmetic decoding and encoding of transform coefficients using k-th order Exp-Golomb coding, and dynamically switching between Golomb-Rice and Exponential-Golomb coding based on the magnitude of Absolute-3 values and block sizes to optimize processing efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If CABAC encoding is used for high bit-rate cases, then compression efficiency is improved, but throughput performance deteriorates due to high computational complexity

Engineering Contradiction:
Improvecompression efficiencyVSAvoidthroughput performance
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The patent implements dynamic switching between Golomb-Rice coding and Exponential-Golomb coding based on the magnitude of Absolute-3 values. When Absolute-3 values are large (indicating high bit-rate cases), the system switches to Exponential-Golomb coding which provides better compression efficiency. When Absolute-3 values are small, Golomb-Rice coding is used for faster processing. This dynamic adaptation resolves the contradiction by selecting the appropriate coding method based on real-time conditions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the coding parameter (coding method) based on the magnitude of Absolute-3 values. By monitoring this parameter and switching between coding schemes, the system optimizes both compression efficiency and throughput performance for different bit-rate scenarios.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If Golomb-Rice coding is used for all cases, then processing speed is improved, but compression efficiency deteriorates for large Absolute-3 values

Engineering Contradiction:
Improveprocessing speedVSAvoidcompression efficiency
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent applies different coding methods to different ranges of Absolute-3 values. For small Absolute-3 values, Golomb-Rice coding is applied to maintain processing speed. For large Absolute-3 values, Exponential-Golomb coding is applied to improve compression efficiency. This localized application of different coding strategies resolves the contradiction between speed and efficiency.

Inventive Principle:
Principle #3Local quality

3Loss of information

If Exponential-Golomb coding is used for all cases, then compression efficiency is improved, but processing complexity increases

Engineering Contradiction:
Improvecompression efficiencyVSAvoidprocessing complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The patent applies Exponential-Golomb coding only partially - specifically when Absolute-3 values are large and indicate high bit-rate cases. For normal or low bit-rate cases, the simpler Golomb-Rice coding is used. This partial application of the more complex coding method reduces overall processing complexity while maintaining compression efficiency where it is most needed.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11039169B2GOLOMB-RICE/EG coding technique for CABAC in HEVC
Publication Date: 2021.06.15 DOLBY INTERNATIONAL AB
  • US11039169B2 patent drawing
  • US11039169B2 patent drawing
  • US11039169B2 patent drawing

AI summary

A system utilizing a high throughput coding mode for CABAC in HEVC is described. The system may include an electronic device configured to obtain a block of data to be encoded using an arithmetic based encoder; to generate a sequence of syntax elements using the obtained block; to compare an Absolute-3 value of the sequence or a parameter associated with the Absolute-3 value to a preset value; and to convert the Absolute-3 value to a codeword using a first code or a second code that is different than the first code, according to a result of the comparison.