IP Library Granted Patent US 10,848,786
Granted Patent B2
US 10,848,786 · App. 14/723,786 · Granted Nov 24, 2020

Acceleration of context adaptive binary arithmetic coding (CABAC) in video CODECS

Inventors: Padmassri Chandrashekar (Bangalore, IN); Padmagowri Pichumani (Bangalore, IN); Vinay Kulkarni (Bangalore, IN); Shailesh Ramamurthy (Bengaluru, IN); AnilKumar Nellore (Bangalore, IN); Chetan Kumar Viswanath Gubbi (Bangalore, IN)
Assignee: ARRIS Enterprises LLC
H04N19/91H04N19/13H04N19/70
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,848,786
App. No.
14/723,786
Filed
May 28, 2015
Granted
Nov 24, 2020
Kind
B2
Art Unit
2482
USPC
375/240.03
Abstract

A method is provided for determining a context-index when performing Context-based Adaptive Binary Arithmetic Coding (CABAC) for video compression or decompression includes initializing to an initialized value each of a plurality of context-indexes of chosen syntax elements associated with a given block (e.g., a macroblock). The context-index of dependent neighboring blocks of the given block is evaluated. The dependent neighboring blocks are blocks that have a context-index that depends on coding of a current bin position. The context-index of the dependent neighboring blocks is updated if and only if their context-index changes from the initialized values.

Claims (32)

1. A method of determining a context-index when performing Context-based Adaptive Binary Arithmetic Coding (CABAC) for video compression or decompression, the method comprising:

initializing to an initialized value each of a plurality of context-indexes of chosen syntax elements associated with given blocks, the given blocks including at least two next rows of blocks to be coded;

evaluating the context-index of dependent neighboring blocks of a first block in the given blocks prior to coding of the neighboring blocks, the dependent neighboring blocks being blocks that have a context-index that depends on the coding of a current bin position within the first block; and

updating the context-index of the dependent neighboring blocks from the initialized values while coding the first block and prior to coding of the dependent neighboring blocks.

2. The method of claim 1 , wherein the selected syntax elements are specified in an H.264/MPEG 4 AVC standard and are selected from the group consisting of a mb_type, mb_skip_flag, transform_size_8×8_flag, mb_qp_delta, mb_field_decoding_flag, intra_chroma_pred_mode, mvd (horizontal)_l0, mvd (vertical)_l0, mvd (horizontal)_l1, mvd (vertical)_l1, ref_idx_l0 and ref_idx_l1, coded_block_pattern and coded_block_flag.

3. The method of claim 1 , wherein the selected syntax elements are specified in a HEVC standard and are selected from the group consisting of a split_cu_flag, cu_skip_flag, sig_coeff_flag if the video compression or decompression performed using HEVC.

4. The method of claim 1 , wherein the context-index of the dependent neighboring blocks only depends on the coding of a current bin position within the given blocks when at least one specified condition is satisfied, one of the specified conditions being dependent on the block type.

5. The method of claim 1 , wherein initializing the plurality of context-indexes includes selectively initializing all context-indexes to a minimum possible context-index for the selected syntax element being coded or to a maximum possible context-index for the selected syntax element being coded.

6. The method of claim 5 , wherein initializing and updating the context-index of the dependent neighboring blocks includes incrementing the context-index based on block type and a bit rate of a video stream being compressed or decompressed.

7. The method of claim 5 , wherein initializing and updating the context-index of the dependent neighboring blocks includes decrementing the context-index based on block type and a bit rate of a video stream being compressed or decompressed.

8. A CABAC encoder, comprising:

a binarization module for converting a syntax element into a sequence of bins;

a context-index module for obtaining one or more context models for the syntax element based on the sequence of bins, each of the context models being associated with a context model, wherein the context-index module obtains the one or more context models by initializing a context-index of the syntax element associated with given blocks including at least one two next rows of blocks to be coded and evaluates the context-index of dependent neighboring blocks of a first block in the given blocks prior to coding of the dependent neighboring blocks, the dependent neighboring blocks being blocks that have a context-index that depends on the coding of a current bin position within the first block of the given blocks; and

an arithmetic encoder for updating the one or more context models based on the sequence of bins and using the one or more context models to encode each of the bins in the sequence, wherein the arithmetic encoder updates the one or more context models by updating the associated context-indices of the dependent neighboring blocks while coding the first block and prior to coding of the dependent neighboring blocks, when their context-indices changes from the initialized values.

9. The CABAC encoder of claim 8 , wherein the context-index module is further configured to assign a context model to each bin the sequence of bins.

10. The CABAC encoder of claim 8 , wherein the context-index of the dependent neighboring blocks only depends on the coding of a current bin position within the given blocks when at least one specified condition is satisfied, one of the specified conditions being dependent on the block type.

11. The CABAC encoder of claim 8 , wherein the context-index module is further configured to initialize the plurality of context-indexes by selectively initializing all context-indexes to a minimum possible context-index for the selected syntax element being coded or to a maximum possible context-index for the selected syntax element being coded.

12. The CABAC encoder of claim 11 , wherein the context-index module is further configured to initialize and update the context-index of the dependent neighboring blocks by incrementing the context-index based on macroblock type and a bit rate of a video stream being compressed or decompressed.

13. The CABAC encoder of claim 11 , wherein the context-index module is further configured to initialize and update the context-index of the dependent neighboring blocks by decrementing the context-index based on block type and a bit rate of a video stream being compressed or decompressed.

14. A method of debinarizing Context-based Adaptive Binary Arithmetic Coding (CABAC) data during video decompression, the method comprising:

identifying all coded syntax elements in an arrangement, and which are coded with a specific bit pattern and bit length that is pre-defined by a protocol;

rearranging the codes of the syntax elements that are identified such that the codes with an equal number of bits are arranged sequentially without any intervening codes having a different number of bits; and

performing de-binarization using the rearranged codes of the syntax elements.

15. The method of claim 14 , wherein performing the de-binarization comprises:

checking if a number of decoded bins in a bin string formed during the decoding of one of the syntax elements can result in a valid syntax element;

if the said number of decoded bins can potentially yield a valid syntax element, searching only those sequentially arranged codes that contain the given number of bins; and

identifying a valid syntax element that matches the bin string formed during the decoding of the syntax element.

16. The method of claim 14 , wherein the protocol conforms to an H.264/MPEG 4 AVC standard.

17. The method of claim 1 , further comprising:

identifying the chosen syntax elements which are coded with a specific bit pattern and bit length that is pre-defined by a protocol;

arranging the codes of the identified syntax elements that are identified such that the codes with an equal number of bits are arranged sequentially without any intervening codes having a different number of bits; and

performing de-binarization using the arranged codes of the identified syntax elements.

Assignments (11)
RELEASE OF SECURITY INTEREST AT REEL/FRAME 049905/0504 Recorded Dec 19, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: ARRIS ENTERPRISES LLC (F/K/A ARRIS ENTERPRISES, INC.); ARRIS TECHNOLOGY, INC.; ARRIS SOLUTIONS, INC.; COMMSCOPE, INC. OF NORTH CAROLINA; COMMSCOPE TECHNOLOGIES LLC; RUCKUS WIRELESS, LLC (F/K/A RUCKUS WIRELESS, INC.)
Reel/Frame 071477/0255 →
SECURITY INTEREST Recorded Dec 17, 2024
From: ARRIS ENTERPRISES LLC; COMMSCOPE TECHNOLOGIES LLC; COMMSCOPE INC., OF NORTH CAROLINA; OUTDOOR WIRELESS NETWORKS LLC; RUCKUS IP HOLDINGS LLC
To: APOLLO ADMINISTRATIVE AGENCY LLC
Reel/Frame 069889/0114 →
SECURITY INTEREST Recorded Nov 19, 2021
From: ARRIS SOLUTIONS, INC.; ARRIS ENTERPRISES LLC; COMMSCOPE TECHNOLOGIES LLC; COMMSCOPE, INC. OF NORTH CAROLINA; RUCKUS WIRELESS, INC.
To: WILMINGTON TRUST
Reel/Frame 060752/0001 →
PATENT SECURITY AGREEMENT Recorded Jul 3, 2019
From: ARRIS ENTERPRISES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 049820/0495 →
TERM LOAN SECURITY AGREEMENT Recorded Jul 3, 2019
From: COMMSCOPE, INC. OF NORTH CAROLINA; COMMSCOPE TECHNOLOGIES LLC; ARRIS ENTERPRISES LLC; ARRIS TECHNOLOGY, INC.; RUCKUS WIRELESS, INC.; ARRIS SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 049905/0504 →
ABL SECURITY AGREEMENT Recorded Jul 3, 2019
From: COMMSCOPE, INC. OF NORTH CAROLINA; COMMSCOPE TECHNOLOGIES LLC; ARRIS ENTERPRISES LLC; ARRIS TECHNOLOGY, INC.; RUCKUS WIRELESS, INC.; ARRIS SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 049892/0396 →
CHANGE OF NAME Recorded Jun 25, 2019
From: ARRIS ENTERPRISES, INC.
To: ARRIS ENTERPRISES LLC
Reel/Frame 049586/0470 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Apr 8, 2019
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: ARRIS GROUP, INC.; ARRIS ENTERPRISES, INC.; ARRIS INTERNATIONAL LIMITED; ARRIS TECHNOLOGY, INC.; ARCHIE U.S. MERGER LLC; ARCHIE U.S. HOLDINGS LLC; ARRIS GLOBAL SERVICES, INC.; ARRIS HOLDINGS CORP. OF ILLINOIS, INC.; ARRIS SOLUTIONS, INC.; BIG BAND NETWORKS, INC.; TEXSCAN CORPORATION; POWER GUARD, INC.; JERROLD DC RADIO, INC.; NEXTLEVEL SYSTEMS (PUERTO RICO), INC.; GIC INTERNATIONAL HOLDCO LLC; GIC INTERNATIONAL CAPITAL LLC
Reel/Frame 050721/0401 →
CHANGE OF NAME Recorded Mar 14, 2017
From: ARRIS ENTERPRISES INC
To: ARRIS ENTERPRISES LLC
Reel/Frame 041995/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 6, 2015
From: CHANDRASHEKAR, PADMASSRI; PICHUMANI, PADMAGOWRI; KULKARNI, VINAY; RAMAMURTHY, SHAILESH; NELLORE, ANILKUMAR; GUBBI, CHETAN KUMAR VISWANATH
To: ARRIS ENTERPRISES, INC.
Reel/Frame 036268/0701 →
SECURITY INTEREST Recorded Jun 26, 2015
From: ARRIS GROUP, INC.; ARRIS ENTERPRISES, INC.; ARRIS INTERNATIONAL LIMITED; ARRIS TECHNOLOGY, INC.; ARCHIE U.S. MERGER LLC; ARCHIE U.S. HOLDINGS LLC; ARRIS GLOBAL SERVICES, INC.; ARRIS HOLDINGS CORP. OF ILLINOIS, INC.; ARRIS SOLUTIONS, INC.; BIG BAND NETWORKS, INC.; TEXSCAN CORPORATION; POWER GUARD, INC.; JERROLD DC RADIO, INC.; NEXTLEVEL SYSTEMS (PUERTO RICO), INC.; GIC INTERNATIONAL HOLDCO LLC; GIC INTERNATIONAL CAPITAL LLC
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 036020/0789 →
Continuity (2)
Provisional Application 62003711 · May 28, 2014
Related Publication 20150373379A1 · Dec 24, 2015