CABAC Transcoding State Storage for Smaller Video Buffers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing coder-decoder systems using entropy transcoding require large transcode buffers to prevent stalling, which increases storage requirements, especially when performing content adaptive binary arithmetic coding (CABAC), as they must operate on complete network abstraction layer (NAL) units without interruption.

Innovation Solution

A system that allows the transcode engine to stop and restart CABAC processing on a sub-NAL unit basis, using entropy state data storage to manage state information for sub-NAL units, reducing the need for large buffers by storing and restoring state data on a macroblock or row basis.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the transcode engine operates on complete NAL units without interruption, then processing reliability is improved, but storage requirements increase significantly

Engineering Contradiction:
Improveprocessing reliabilityVSAvoidstorage requirements
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent segments the NAL unit processing into smaller sub-NAL unit portions that can be processed independently. The transcode engine processes data in manageable chunks rather than requiring the entire NAL unit to be available, allowing state to be saved and restored at sub-NAL unit boundaries. This segmentation reduces the buffer size needed while maintaining processing integrity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by saving the entropy state data before processing each sub-NAL unit portion and restoring it after processing. This allows the transcode engine to interrupt and resume processing without losing state information, enabling reduced buffer sizes while maintaining the ability to process complete NAL units reliably.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If large transcode buffers are used to prevent stalling, then processing continuity is improved, but device complexity increases

Engineering Contradiction:
Improveprocessing continuityVSAvoiddevice complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

By segmenting processing into sub-NAL unit portions with save/restore capability, the system maintains processing continuity without requiring large buffers. The state save/restore mechanism allows the engine to efficiently manage smaller buffers while avoiding stalling conditions through proper state management.

Inventive Principle:
Principle #1Segmentation

3Device complexity

If the transcode engine cannot be interrupted during NAL unit processing, then state management is simplified, but adaptability decreases

Engineering Contradiction:
Improvestate management complexityVSAvoidadaptability
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The system dynamically switches between interruptible and non-interruptible processing modes. By implementing save/restore functionality at sub-NAL unit boundaries, the engine gains flexibility to be interrupted when needed while maintaining simple state management through standardized state saving and restoration procedures. This dynamic capability allows adaptation to different processing scenarios.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS7595743B1System and method for reducing storage requirements for content adaptive binary arithmetic coding
Publication Date: 2009.09.29 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
  • US7595743B1 patent drawing
  • US7595743B1 patent drawing
  • US7595743B1 patent drawing

AI summary

A system for reducing storage requirements for content-adaptive binary arithmetic coding (CABAC) is provided. The system includes a transcode engine performing CABAC on a video data stream. The transcode engine receives save data, stops CABAC, and converts the video data stream into sub-network abstraction layer (NAL) unit state data. An entropy state data storage system receiving the sub-NAL unit state data and stores the sub-NAL unit state data. The transcode engine subsequently receives restore data, extracts the sub-NAL unit state data from the entropy state data storage system, and re-starts CABAC on the video stream data.