CABAC Entropy Encoder Normalization in a Single Clock Cycle

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing CABAC encoding methods in FPGAs face bottlenecks due to inefficient normalization and renormalization processes, particularly in real-time encoding of HD sequences, which limit performance and efficiency.

Innovation Solution

An entropy encoder module is designed to perform normalization in a single clock cycle, utilizing a series of calculation blocks and registers to normalize and propagate LOW values efficiently, allowing for the output of an encoded bitstream while separating outstanding bit insertion from the normalization process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If traditional normalization and renormalization processes are used in CABAC encoding, then encoding accuracy is maintained, but encoding speed and real-time performance deteriorate due to multiple clock cycles required

Engineering Contradiction:
Improveencoding speedVSAvoidnormalization time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent divides the normalization process into multiple calculation blocks (first calculation block, second calculation block, third calculation block) that operate in parallel. Each block handles a specific portion of the normalization task, allowing simultaneous processing of different parts of the data, thereby reducing the total time required for normalization while maintaining encoding accuracy.

Inventive Principle:
Principle #1Segmentation

2Productivity

If multiple calculation blocks are used to perform normalization in parallel, then encoding efficiency is improved, but device complexity increases

Engineering Contradiction:
Improveencoding efficiencyVSAvoidencoder structure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The normalization function is segmented into three independent calculation blocks that can be implemented using standard logic circuit elements. This modular approach allows parallel processing while keeping each individual block relatively simple, balancing the trade-off between productivity and device complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Registers are introduced as intermediary elements between the calculation blocks to store intermediate results. These registers act as buffers that facilitate data flow between blocks without requiring complex inter-block communication logic, thereby managing device complexity while enabling parallel operation.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Speed

If normalization is performed completely within a single clock cycle, then real-time encoding capability is achieved, but the complexity of the normalization process increases

Engineering Contradiction:
Improvenormalization speedVSAvoidnormalization circuit complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

By dividing the normalization task across three calculation blocks that operate simultaneously within a single clock cycle, the patent achieves complete normalization in one cycle. The segmentation allows the complex task to be distributed, making the overall circuit complexity manageable through modular design.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The calculation blocks are pre-configured with the necessary logic to perform their specific normalization operations. This preliminary setup allows each block to execute its function immediately upon receiving input data, enabling complete normalization within a single clock cycle without requiring sequential processing steps.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7535387B1Methods and systems for implementing context adaptive binary arithmetic coding
Publication Date: 2009.05.19 XILINX INC
  • US7535387B1 patent drawing
  • US7535387B1 patent drawing
  • US7535387B1 patent drawing

AI summary

An entropy encoder module (350) is configured to completely perform normalization of each binary input in a single clock cycle for Context Adaptive Binary Arithmetic Coding (CABAC). Outstanding bits are separated out from other bits of a portion of a frame for Context Adaptive Binary-Arithmetic Coding (CABAC). The outstanding bits are parsed responsive to location marking, counting, and bit masking to provide insert bits. The insert bits are inserted into the encoded bitstream for output. A Context Adaptive Binary Arithmetic Coding (“CABAC”) system includes: digital information storage (301) having digital video information stored therein; and a CABAC encoder (200) coupled to the digital information storage (301) to receive a portion of the digital video information at a time.