Dual-Pipeline CABAC Encoder for Faster H.264 Compression

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The H.264 video coding standard's context-adaptive binary arithmetic coding (CABAC) method offers higher compression efficiency than CAVLC but requires significantly more computational resources and time, making it impractical for certain applications that need faster execution or smaller compressed file sizes.

Innovation Solution

A dual-pipeline architecture is implemented for the H.264 CABAC encoder, where binarization and context modeling are processed in parallel pipelines to reduce computational time while maintaining high compression efficiency, using binarization modules, context lookup modules, and arithmetic encoders to efficiently encode video data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of substance

If CABAC encoding is used, then compression efficiency is improved, but computational time and resource requirements increase significantly

Engineering Contradiction:
Improvecompressed file sizeVSAvoidcomputational time
Core Design Contradiction:
Loss of substanceVSLoss of time

Solution Approach 1:

The CABAC encoder is divided into two parallel pipelines: a first pipeline processing even-numbered bins and a second pipeline processing odd-numbered bins. This segmentation allows simultaneous processing of different bin sequences, effectively doubling the throughput and reducing computational time while maintaining the compression efficiency of full CABAC encoding.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The invention introduces a temporal dimension to the encoding process by implementing parallel processing streams. Instead of sequentially processing bins one after another in a single pipeline, the system processes multiple bin sequences concurrently in parallel pipelines, transforming the time complexity from sequential to parallel execution.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Loss of substance

If CABAC encoding is used, then compression efficiency is improved, but device complexity increases

Engineering Contradiction:
Improvecompressed file sizeVSAvoidencoder architecture
Core Design Contradiction:
Loss of substanceVSDevice complexity

Solution Approach 1:

The encoder architecture is segmented into two independent but synchronized pipelines, each handling a subset of bins. This segmentation distributes the computational load and complexity across parallel structures rather than concentrating it in a single complex sequential processor, making the overall system more manageable and implementable.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The invention creates a copy of the CABAC encoding logic in a second pipeline that mirrors the first pipeline's structure. Both pipelines implement identical context modeling and arithmetic encoding functions but operate on different bin sequences simultaneously, reducing the complexity of each individual pipeline while maintaining full CABAC functionality.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS8798139B1Dual-pipeline CABAC encoder architecture
Publication Date: 2014.08.05 NXP USA INC
  • US8798139B1 patent drawing
  • US8798139B1 patent drawing
  • US8798139B1 patent drawing

AI summary

A method and system are disclosed for the lossless compression of video data in a synchronous pipelined environment. One or more syntax elements of video data are binarized into one or more ordered bins. A first context model associated with a first bin and a second context model associated with a second bin are received. The first bin is encoded based on the first context model and the second bin is encoded based on the second context model, both bins being encoded within the same clock cycle. One or more encoded bits are outputted based on encoding the first and second bin. In one embodiment, the first bin is encoded in a first pipeline and the second bin is encoded in a second pipeline. In this embodiment, two bins may be encoded every clock cycle, one per pipeline. Further, in one embodiment, multiple context models are received and one context model is selected by each pipeline for encoding. After encoding, one or more context models may be updated and stored.