IP Library Granted Patent US 7,443,318
Granted Patent B2
US 7,443,318 · App. 11/694,311 · Granted Oct 28, 2008

High speed context memory implementation for H.264

Assignee: Hong Kong Applied Science and Technology Research Institute Co. Ltd.
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 7,443,318
App. No.
11/694,311
Granted
Oct 28, 2008
Kind
B2
Abstract

Disclosed is a context modeller ( 103 ) used in decoding data ( 202 ) encoded using Context Adaptive Binary Arithmetic Coding, said context modeler ( 103 ) comprising a Read Only Memory ( 1001 ) for storing uninitialized context model values, said uninitialized context model values being stored in the Read Only Memory ( 1001 ) in a manner that enables a plurality of uninitialized context model values to be read from the Read Only Memory ( 1001 ) in a single clock cycle, an Arithmetic Logic Module ( 1003 ) comprising a plurality of parallel processing paths ( 2202 - 2207 ), each said processing path comprising a plurality of pipeline stages, a Random Access Memory ( 1005 ) and a memory controller ( 1008 ) for determining, using the Arithmetic Logic Module ( 1005 ) operating on said plurality of uninitialized context model values read from the Read Only Memory ( 1001 ) in each clock cycle, initialized context model values for storage in the Random Access Memory ( 1001 ) based upon header information in said incoming encoded data ( 202 ).

Claims (55)

1. A method of decoding a data stream comprising a plurality of video frames that have been encoded using Context-based Adaptive Binary Arithmetic Coding, the method comprising the steps of:

decomposing a current video frame into slices each comprising slice data and slice header information;

storing a context model comprising a plurality of context model values in a manner that enables concurrent processing of a set of the context model values;

identifying a non-bypass slice;

initializing the context model using header information of the identified slice; and

decoding the slice data of the identified slice dependent upon the initialized context model.

2. The method of claim 1 , wherein the initializing step comprises concurrently applying sets of the stored context model values to an initialization formula to thereby determine corresponding sets of initialized context model values in the initialized context model.

3. The method of claim 2 comprising the further steps of

identifying another non-bypass slice of the current frame;

defining the initialized context model to be the context model for the storing step; and

repeating the storing, identifying, initializing and decoding steps using the slice data and the slice header information of the identified other slice.

4. The method of claim 3 , wherein the storing step comprises the steps of:

categorizing the context model values of the context model into categories defined by the H.264 standard;

decomposing each category into sub-groups according to the header information of the identified other slice;

padding sets of the sub-groups in each category to a uniform size; and

storing the sets of padded sub-groups in a parallel manner thereby enabling the concurrent processing of the sets of context model values.

5. The method of claim 4 , wherein:

each of the sub-groups has an identifier; and

the storing step comprises, for each set of padded sub-groups, storing the set of padded sub-groups in the same memory location which is addressable using an identifier of a sub-group in the set.

6. An apparatus for decoding a data stream comprising a plurality of video frames that have been encoded using Context-based Adaptive Binary Arithmetic Coding, said apparatus comprising:

a memory for storing a program; and

a processor for executing the program, said program comprising:

code for decomposing a current video frame into slices each comprising slice data and slice header information;

code for storing a context model comprising a plurality of context model values in a manner that enables concurrent processing of a set of the context model values;

code for identifying a non-bypass slice;

code for initializing the context model using header information of the identified slice; and

code for decoding the slice data of the identified slice dependent upon the initialized context model.

7. An apparatus for decoding a data stream comprising a plurality of video frames that have been encoded using Context-based Adaptive Binary Arithmetic Coding, the apparatus comprising:

means for decomposing a current video frame into slices each comprising slice data and slice header information;

means for storing a context model comprising a plurality of context model values in a manner that enables concurrent processing of a set of the context model values;

means for identifying a non-bypass slice;

means for initializing the context model using header information of the identified slice; and

means for decoding the slice data of the identified slice dependent upon the initialized context model.

8. The apparatus of claim 7 , wherein the means for initializing comprises means for concurrently applying sets of the stored context model values to an initialization formula to thereby determine corresponding sets of initialized context model values in the initialized context model.

9. The method of claim 8 further comprising;

means for identifying another non-bypass slice of the current frame;

means for defining the initialized context model to be the context model for the storing step; and

means for repeating the storing, identifying, initializing and decoding steps using the slice data and the slice header information of the identified other slice.

10. The method of claim 9 , wherein the means for storing comprises:

means for categorizing the context model values of the context model into categories defined by the H.264 standard;

means for decomposing each category into sub-groups according to the header information of the identified other slice;

means for padding sets of the sub-groups in each category to a uniform size; and

means for storing the sets of padded sub-groups in a parallel manner thereby enabling the concurrent processing of the sets of context model values.

11. The apparatus of claim 10 , wherein:

each of the sub-groups has an identifier; and

the means for storing comprises, for each set of padded sub-groups, means for storing the set of padded sub-groups in the same memory location which is addressable using an identifier of a sub-group in the set.

12. A context modeller used in decoding data encoded using Context Adaptive Binary Arithmetic Coding, said context modeler comprising:

a Read Only Memory for storing uninitialized context model values, said uninitialized context model values being stored in the Read Only Memory in a manner that enables a plurality of uninitialized context model values to be read from the Read Only Memory in a single clock cycle;

an Arithmetic Logic Module comprising a plurality of parallel processing paths, each said processing path comprising a plurality of pipeline stages;

a Random Access Memory; and

a memory controller for determining, using the Arithmetic Logic Module operating on said plurality of uninitialized context model values read from the Read Only Memory in each clock cycle, initialized context model values for storage in the Random Access Memory based upon header information in said incoming encoded data.

13. The method of claim 12 , wherein said the Read Only Memory stored the rearranged data structure which can simplify the hardware implementation.

14. The method of claim 13 , wherein said the data structure contains the dummy value which can pad the uninitialized data into a fixed amount of data.

15. The method of claim 13 , wherein said the data structure can be accessed by adjust the fixed offset.

16. The method of claim 13 , wherein said four set of the data can be access at the same time which can speed up the initialization time.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 2, 2007
From: HUNG, CHUN KIT; AN, KIN WING
To: HONG KONG APPLIED SCIENCE AND TECHNOLOGY RESEARCH INSTITUTE CO. LTD.
Reel/Frame 019103/0050 →
Continuity (1)
Related Publication 20080240234A1 · Oct 2, 2008