IP Library › Granted Patent US 9,191,670
Granted Patent B2
US 9,191,670 · App. 13/710,212 · Granted Nov 17, 2015

Throughput improvement for CABAC coefficient level coding

Inventors: Marta Karczewicz (San Diego, CA); Jianle Chen (San Diego, CA); Wei-Jung Chien (San Diego, CA); Rajan Laxman Joshi (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/00775H04N19/13H04N19/60H04N19/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 9,191,670
App. No.
13/710,212
Granted
Nov 17, 2015
Kind
B2
Abstract

This disclosure proposes various techniques for limiting the number of bins that are coded using an adaptive context model with context adaptive binary arithmetic coding (CABAC). In particular, this disclosure proposes to limit the number of bins that use CABAC for coding level information of transform coefficients in a video coding process.

Claims (114)

1. A method of coding transform coefficients in a video coding process, the method comprising:

coding a significance map flag for transform coefficients in a chunk of transform coefficients, wherein the significance map flag indicates whether or not a particular transform coefficient has an absolute value greater than zero;

coding a greater-than-one flag for a first M1 transform coefficients in an inverse scan order in the chunk indicated as having an absolute value larger than zero by the significance map flag, wherein the greater-than-one flag indicates whether or not the particular transform coefficient has an absolute value greater than one, and wherein M1 is less than a maximum number of transform coefficients in the chunk;

coding a greater-than-two flag for transform coefficients in the chunk indicated as having an absolute value larger than one by the greater-than-one flag, wherein the greater-than-two flag indicates whether or not the particular transform coefficients has an absolute value greater than two; and

coding a level remaining value for transform coefficients in the chunk,

wherein the level remaining value represents the absolute value of a corresponding coefficient minus three for transform coefficients in the chunk having a coded greater-than-two flag that indicates that the particular transform coefficient has an absolute value greater than two, and

wherein the level remaining value represents the absolute value of a corresponding coefficient minus one for transform coefficients in the chunk that are non-zero but do not have a coded greater-than-one flag.

2. The method of claim 1 , wherein coding the greater-the-two flag comprises coding the greater-than-one flag for a first N transform coefficients in the inverse scan order in the chunk indicated as having an absolute value larger than one by the greater-than-one flag, wherein N is less than a maximum number of transform coefficients in the chunk, and

wherein the level remaining value represents the absolute value of a corresponding coefficient minus two for transform coefficients in the chunk having a coded greater-than-one flag that indicates that the particular transform coefficient has an absolute value greater than one, but the greater-than-two flag is not coded.

3. The method of claim 2 , wherein the value of M1 is 8.

4. The method of claim 1 ,

wherein the level remaining value represents the absolute value of a corresponding coefficient minus one for transform coefficients in the chunk having a coded significance map flag, but for which the greater-than-one flag is not coded.

5. The method of claim 4 , further comprising:

coding a sign flag for transform coefficients in the chunk, wherein the sign flag indicates the sign of the particular transform coefficient.

6. The method of claim 5 , wherein the significance map flag, the greater-than-one flag, and the greater-than-two flag are coded using context adaptive binary arithmetic coding (CABAC) with an adaptive context model, and wherein the level remaining value is coded in CABAC bypass mode, and wherein the sign flag is coded in CABAC bypass mode.

7. The method of claim 6 , further comprising:

coding the level remaining value using a Golomb parameter, and wherein the Golomb Parameter is determined based on at least one of a quantization parameter, a transform unit size, a transform unit depth, a prediction mode, a color component type, and coefficients statistics of neighboring chunks of transform coefficients.

8. The method of claim 5 , further comprising coding the significance map flag first, the greater-than-one flag second, the greater-than-two flag third, and the level remaining value after the greater-than-two flag.

9. The method of claim 8 , further comprising coding each of the significance map flag, the greater-than-one flag, the greater-than-two flag, and the level remaining value for the transform coefficients in the chunk according to the inverse scan order.

10. The method of claim 9 , wherein the inverse scan order is an inverse diagonal scan order.

11. The method of claim 1 , wherein the chunk is a subblock of a transform unit.

12. The method of claim 1 , wherein the chunk is a subblock of 16 transform coefficients of a transform unit.

13. The method of claim 1 , wherein the chunk is a transform unit.

14. The method of claim 1 , wherein the chunk is a number of consecutive transform coefficients along the inverse scan order within a transform unit.

15. The method of claim 14 , wherein the scan order is an inverse diagonal scan order.

16. The method of claim 1 , wherein the value of M1 is 8.

17. The method of claim 1 , wherein the value of M1 is based on at least one of a quantization parameter, a transform unit size, a transform unit depth, a color component type, a position of the chunk in a transform unit, a presence of a last significant coefficient in the chunk, and coefficient statistics of a neighboring chunk.

18. The method of claim 1 , wherein the video coding process is a video encoding process, the method further comprising:

encoding pixel data to produce residual video data;

transforming the residual video data to produce the chunk of transform coefficients; and

signaling the coded significance map flag, the coded greater-than-one flag, and the coded greater-than-two flag in an encoded video bitstream.

19. The method of claim 1 , further comprising:

signaling the value of M1 in an encoded video bitstream.

20. The method of claim 19 , wherein the value of M1 is signaled in at least one of a sequence parameter set, a picture parameter set, an adaptation parameter set, and a slice header.

21. The method of claim 1 , wherein the video coding process is a video decoding process, the method further comprising:

receiving the significance map flag, the greater-than-one flag, and the greater-than-two flag in an encoded video bitstream;

inverse transforming the chunk of transform coefficients to produce residual video data; and

decoding the residual video data to produce pixel data.

22. An apparatus configured to code transform coefficients in a video coding process, the apparatus comprising:

a memory configured to store transform coefficients; and

a video coder configured to:

code a significance map flag for the transform coefficients in a chunk of transform coefficients, wherein the significance map flag indicates whether or not a particular transform coefficient has an absolute value greater than zero;

code a greater-than-one flag for a first M1 transform coefficients in an inverse scan order in the chunk indicated as having an absolute value larger than zero by the significance map flag, wherein the greater-than-one flag indicates whether or not the particular transform coefficient has an absolute value greater than one, and wherein M1 is less than a maximum number of transform coefficients in the chunk;

code a greater-than-two flag for transform coefficients in the chunk indicated as having an absolute value larger than one by the greater-than-one flag, wherein the greater-than-two flag indicates whether or not the particular transform coefficients has an absolute value greater than two; and

code a level remaining value for transform coefficients in the chunk,

wherein the level remaining value represents the absolute value of a corresponding coefficient minus three for transform coefficient in the chunk having a coded greater-than-two flag that indicates that the particular transform coefficient has an absolute value greater than two, and

wherein the level remaining value represents the absolute value of a corresponding coefficient minus one for transform coefficients in the chunk that are non-zero but do not have a coded greater-than-one flag.

23. The apparatus of claim 22 , wherein the video coder is further configured to code the greater-than-two flag for a first N transform coefficients in the inverse scan order in the chunk indicated as having an absolute value larger than one by the greater-than-one flag, wherein N is less than a maximum number of transform coefficients in the chunk, and

wherein the level remaining value represents the absolute value of a corresponding coefficient minus two for transform coefficients in the chunk having a coded greater-than-one flag that indicates that the particular transform coefficient has an absolute value greater than one, but the greater-than-two flag is not coded.

24. The apparatus of claim 23 , wherein the value of N is 1.

25. The apparatus of claim 22 ,

wherein the level remaining value represents the absolute value of a corresponding coefficient minus one for transform coefficients in the chunk having a coded significance map flag, but for which the greater-than-one flag is not coded.

26. The apparatus of claim 25 , the video coder further configured to:

code a sign flag for transform coefficients in the chunk, wherein the sign flag indicates the sign of the particular transform coefficient.

27. The apparatus of claim 26 , wherein the significance map flag, the greater-than-one flag, and the greater-than-two flag are coded using context adaptive binary arithmetic coding (CABAC) with an adaptive context model, and wherein the level remaining value is coded in CABAC bypass mode, and wherein the sign flag is coded in CABAC bypass mode.

28. The apparatus of claim 27 , the video coder further configured to:

code the level remaining value using a Golomb parameter, and wherein the Golomb Parameter is determined based on at least one of a quantization parameter, a transform unit size, a transform unit depth, a prediction mode, a color component type, and coefficients statistics of neighboring chunks of transform coefficients.

29. The apparatus of claim 26 , the video coder further configured to code the significance map flag first, the greater-than-one flag second, the greater-than-two flag third, and the level remaining value after the greater-than-two flag.

30. The apparatus of claim 29 , the video coder further configured to code each of the significance map flag, the greater-than-one flag, the greater-than-two flag, and the level remaining value for the transform coefficients in the chunk according to the inverse scan order.

31. The apparatus of claim 30 , wherein the inverse scan order is an inverse diagonal scan order.

32. The apparatus of claim 22 , wherein the chunk is a subblock of a transform unit.

33. The apparatus of claim 22 , wherein the chunk is a subblock of 16 transform coefficients of a transform unit.

34. The apparatus of claim 22 , wherein the chunk is a transform unit.

35. The apparatus of claim 22 , wherein the chunk is a number of consecutive transform coefficients along the inverse scan order within a transform unit.

36. The apparatus of claim 35 , wherein the inverse scan order is an inverse diagonal scan order.

37. The apparatus of claim 22 , wherein the value of M1 is 8.

38. The apparatus of claim 22 , wherein the value of M1 is based on at least one of a quantization parameter, a transform unit size, a transform unit depth, a color component type, a position of the chunk in a transform unit, a presence of a last significant coefficient in the chunk, and coefficient statistics of a neighboring chunk.

39. The apparatus of claim 22 , wherein the video coder is a video encoder, the video encoder further configured to:

encode pixel data to produce residual video data;

transform the residual video data to produce the chunk of transform coefficients; and

signal the coded significance map flag, the coded greater-than-one flag, and the coded greater-than-two flag in an encoded video bitstream.

40. The apparatus of claim 22 , the video coder further configured to:

signal the value of M1 in an encoded video bitstream.

41. The apparatus of claim 40 , wherein value of M1 is signaled in at least one of a sequence parameter set, a picture parameter set, an adaptation parameter set, and a slice header.

42. The apparatus of claim 22 , wherein the video coder is a video decoder, the video decoder further configured to:

receive the significance map flag, the greater-than-one flag, and the greater-than-two flag in an encoded video bitstream;

inverse transform the chunk of transform coefficients to produce residual video data; and

decode the residual video data to produce pixel data.

43. An apparatus configured to code transform coefficients in a video coding process, the apparatus comprising:

means for coding a significance map flag for transform coefficients in a chunk of transform coefficients, wherein the significance map flag indicates whether or not a particular transform coefficient has an absolute value greater than zero;

means for coding a greater-than-one flag for a first M1 transform coefficients in an inverse scan order in the chunk indicated as having an absolute value larger than zero by the significance map flag, wherein the greater-than-one flag indicates whether or not the particular transform coefficient has an absolute value greater than one, and wherein M1 is less than a maximum number of transform coefficients in the chunk;

means for coding a greater-than-two flag for transform coefficients in the chunk indicated as having an absolute value larger than one by the greater-than-one flag, wherein the greater-than-two flag indicates whether or not the particular transform coefficients has an absolute value greater than two; and

means for coding a level remaining value for transform coefficients in the chunk,

wherein the level remaining value represents the absolute value of a corresponding coefficient minus three for transform coefficient in the chunk having a coded greater-than-two flag that indicates that the particular transform coefficient has an absolute value greater than two, and

wherein the level remaining value represents the absolute value of a corresponding coefficient minus one for transform coefficients in the chunk that are non-zero but do not have a coded greater-than-one flag.

44. A non-transitory computer-readable storage medium storing instructions that, when executed, cause one or more processors of a device configured to code video data to:

code a significance map flag for transform coefficients in a chunk of transform coefficients, wherein the significance map flag indicates whether or not a particular transform coefficient has an absolute value greater than zero;

code a greater-than-one flag for a first M1 transform coefficients in an inverse scan order in the chunk indicated as having an absolute value larger than zero by the significance map flag, wherein the greater-than-one flag indicates whether or not the particular transform coefficient has an absolute value greater than one, and wherein M1 is less than a maximum number of transform coefficients in the chunk;

code a greater-than-two flag for transform coefficients in the chunk indicated as having an absolute value larger than one by the greater-than-one flag, wherein the greater-than-two flag indicates whether or not the particular transform coefficients has an absolute value greater than two; and

code a level remaining value for transform coefficients in the chunk,

wherein the level remaining value represents the absolute value of a corresponding coefficient minus three for transform coefficient in the chunk having a coded greater-than-two flag that indicates that the particular transform coefficient has an absolute value greater than two, and

wherein the level remaining value represents the absolute value of a corresponding coefficient minus one for transform coefficients in the chunk that are non-zero but do not have a coded greater-than-one flag.

45. A method of coding transform coefficients in a video coding process, the method comprising:

coding a significance map flag for transform coefficients in a chunk of transform coefficients, wherein the significance map flag indicates whether or not a particular transform coefficient has an absolute value greater than zero;

coding a greater-than-one flag for transform coefficients in the chunk of transform coefficients indicated as having an absolute value larger than zero by the significance map flag, wherein the greater-than-one flag indicates whether or not a particular transform coefficient has an absolute value greater than one;

coding a greater-than-two flag for a first N transform coefficients in an inverse scan order in the chunk indicated as having an absolute value larger than one by the greater-than-one flag, wherein the greater-than-two flag indicates whether or not the particular transform coefficient has an absolute value greater than two, and wherein N is less than a maximum number of transform coefficients in the chunk; and

coding a level remaining value for transform coefficients in the chunk,

wherein the level remaining value represents the absolute value of a corresponding coefficient minus three for transform coefficients in the chunk having a coded greater-than-two flag that indicates that the particular transform coefficient has an absolute value greater than two, and

wherein the level remaining value represents the absolute value of a corresponding coefficient minus two for transform coefficients in the chunk having a coded greater-than-one flag that indicates that the particular transform coefficient has an absolute value greater than one, but the greater-than-two flag is not coded.

46. The method of claim 45 , further comprising:

coding a sign flag for transform coefficients in the chunk, wherein the sign flag indicates the sign of the particular transform coefficient.

47. The method of claim 45 , wherein the value of N is 1.

48. An apparatus configured to code transform coefficients in a video coding process, the apparatus comprising:

a memory configured to store transform coefficients; and

a video coder configured to:

code a significance map flag for the transform coefficients in a chunk of transform coefficients, wherein the significance map flag indicates whether or not a particular transform coefficient has an absolute value greater than zero;

code a greater-than-one flag for transform coefficients in the chunk of transform coefficients indicated as having an absolute value larger than zero by the significance map flag, wherein the greater-than-one flag indicates whether or not a particular transform coefficient has an absolute value greater than one;

code a greater-than-two flag for a first N transform coefficients in an inverse scan order in the chunk indicated as having an absolute value larger than one by the greater-than-one flag, wherein the greater-than-two flag indicates whether or not the particular transform coefficient has an absolute value greater than two, and wherein N is less than a maximum number of transform coefficients in the chunk; and

code a level remaining value for transform coefficients in the chunk,

wherein the level remaining value represents the absolute value of a corresponding coefficient minus three for transform coefficients in the chunk having a coded greater-than-two flag that indicates that the particular transform coefficient has an absolute value greater than two, and

wherein the level remaining value represents the absolute value of a corresponding coefficient minus two for transform coefficients in the chunk having a coded greater-than-one flag that indicates that the particular transform coefficient has an absolute value greater than one, but the greater-than-two flag is not coded.

49. The apparatus of claim 48 , the video coder further configured to:

code a sign flag for transform coefficients in the chunk, wherein the sign flag indicates the sign of the particular transform coefficient.

50. The apparatus of claim 48 , wherein the value of N is 1.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2012
From: KARCZEWICZ, MARTA; CHEN, JIANLE; CHIEN, WEI-JUNG; JOSHI, RAJAN LAXMAN
To: QUALCOMM INCORPORATED
Reel/Frame 029440/0300 →
Continuity (6)
Provisional Application 61587624 · Jan 17, 2012
Provisional Application 61589290 · Jan 20, 2012
Provisional Application 61591772 · Jan 27, 2012
Provisional Application 61606347 · Mar 2, 2012
Provisional Application 61622785 · Apr 11, 2012
Related Publication 20130182757A1 · Jul 18, 2013