Arithmetic Encoding Instruction for Faster CABAC Video Coding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

General purpose instructions for context-based adaptive binary arithmetic coding (CABAC) encoding are inefficient due to large processing times, which hampers the encoding speed of video streams in devices like wireless telephones.

Innovation Solution

A dedicated arithmetic encoding instruction is introduced that recursively updates the range and offset of a code interval, allowing for efficient encoding of video streams by executing a single instruction that accepts a range, offset, and state, and produces outputs to realign and store new ranges and offsets, reducing processor execution cycles.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If general purpose instructions are used for CABAC encoding, then the encoding can be performed using standard processor instructions, but the processing time is large and encoding speed is slow

Engineering Contradiction:
Improveencoding capabilityVSAvoidprocessing time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent changes the parameter of instruction type from general-purpose to dedicated arithmetic encoding instruction. The dedicated instruction is specifically designed for CABAC encoding operations, accepting range, offset, and state parameters directly, which eliminates the need for multiple general-purpose instructions and significantly reduces processing time while maintaining encoding capability

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent replaces the mechanical system of multiple sequential general-purpose instructions with a single dedicated arithmetic encoding instruction. This substitution consolidates multiple operations (range update, offset update, state management) into one atomic instruction, reducing the mechanical overhead of instruction execution and improving encoding speed

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Reliability

If multiple general purpose instructions are used to encode a bin, then the encoding can be completed, but it requires more than 2 processor execution cycles

Engineering Contradiction:
Improveencoding correctnessVSAvoidencoding speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent merges multiple general-purpose instructions into a single dedicated arithmetic encoding instruction. This instruction combines range update, offset update, and state management operations into one atomic operation that completes in 2 processor cycles, maintaining encoding correctness while doubling the encoding speed compared to using multiple separate instructions

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The dedicated arithmetic encoding instruction performs multiple functions simultaneously: it updates the range based on the bin value, updates the offset (low) accordingly, manages the state, and handles renormalization. This multi-functionality within a single instruction ensures encoding correctness while improving productivity by reducing the number of execution cycles required

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9455743B2Dedicated arithmetic encoding instruction
Publication Date: 2016.09.27 QUALCOMM INC
  • US9455743B2 patent drawing
  • US9455743B2 patent drawing
  • US9455743B2 patent drawing

AI summary

A method includes executing, at a processor, a dedicated arithmetic encoding instruction. The dedicated arithmetic encoding instruction accepts a plurality of inputs including a first range, a first offset, and a first state and produces one or more outputs based on the plurality of inputs. The method also includes storing a second state, realigning the first range to produce a second range, and realigning the first offset to produce a second offset based on the one or more outputs of the dedicated arithmetic encoding instruction.