IP Library Granted Patent US 9,756,360
Granted Patent B2
US 9,756,360 · App. 13/551,458 · Granted Sep 5, 2017

Coefficient scanning in video coding

Inventors: Rajan Laxman Joshi (San Diego, CA); Joel Sole Rojals (La Jolla, CA); Marta Karczewicz (San Diego, CA); Yunfei Zheng (Cupertino, CA); Xianglin Wang (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/625H04N19/129H04N19/147H04N19/159H04N19/176H04N19/436H04N19/61
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,756,360
App. No.
13/551,458
Granted
Sep 5, 2017
Kind
B2
Abstract

In an example, aspects of this disclosure relate to a method for decoding transform coefficients in a video decoding process that includes decoding a one-dimensional array of transform coefficients, and performing a scan on the one-dimensional array of transform coefficients according to a sub-block scan order and a coefficient scan order to produce a block of transform coefficients, where the sub-block scan order comprises an order in which each sub-block of a plurality of sub-blocks within the block is scanned, and where the coefficient scan order comprises an order in which the transform coefficients corresponding to each sub-block of the plurality of sub-blocks are scanned.

Claims (106)

1. A method for decoding transform coefficients in a video decoding process comprising:

obtaining, from an encoded bitstream, a one-dimensional array of transform coefficients associated with a block of transform coefficients;

determining a plurality of sub-blocks of transform coefficients for the block of transform coefficients, each sub-block of the plurality of sub-blocks having an equal size;

decoding, from an encoded bitstream, data that represents a unified scan order for scanning a set of information of the block, wherein the set of information comprises significance information of the transform coefficients of respective sub-blocks, coefficient level information of the transform coefficients of respective sub-blocks, and the plurality of sub-blocks;

determining, based on the data that represents the unified scan order for the set of information, a unified diagonal scan for scanning the significance information of the transform coefficients of respective sub-blocks, the coefficient level information of the transform coefficients of respective sub-blocks, and the plurality of sub-blocks;

scanning the one-dimensional array of transform coefficients according to the unified diagonal scan, wherein the scanning comprises scanning the significance information of the transform coefficients and the coefficient level information of the transform coefficients for each sub-block of the plurality of sub-blocks using the unified diagonal scan and scanning the plurality of sub-blocks using the unified diagonal scan to produce the block of transform coefficients; and

decoding the block of transform coefficients.

2. The method of claim 1 , wherein the unified diagonal scan comprises a reverse diagonal orientation such that scanning comprises reverse diagonally scanning transform coefficients of each of the plurality of sub-blocks from a lower-right corner to an upper-left corner of each of the plurality of sub-blocks and diagonally scanning across each of the plurality of sub-blocks from a lower-right sub-block of the block to a upper-left sub-block of the block.

3. The method of claim 1 , wherein the unified diagonal scan comprises a forward diagonal orientation such that scanning comprises forward diagonally scanning transform coefficients of each of the plurality of sub-blocks from an upper-left corner to a lower-right corner of each of the plurality of sub-blocks and diagonally scanning across each of the plurality of sub-blocks from an upper-left sub-block to a lower-right sub-block of the block.

4. The method of claim 1 , wherein scanning comprises beginning the scanning in a sub-block of the plurality of sub-blocks that contains a last significant coefficient of the array of transform coefficients.

5. The method of claim 1 , wherein scanning comprises beginning the scanning in each of the plurality of sub-blocks from a last significant coefficient in the unified diagonal scan.

6. The method of claim 1 , wherein scanning comprises scanning all bins associated with transform coefficients of a current sub-block of the plurality of sub-blocks before scanning bins associated with transform coefficients of a next sub-block of the plurality of sub-blocks.

7. The method of claim 1 , wherein scanning comprises scanning the significance information prior to scanning the transform coefficient level information.

8. The method of claim 1 , wherein determining the unified diagonal scan comprises selecting the unified diagonal scan based on one of a rate-distortion metric, a block size, a prediction mode, and information associated with a neighboring block.

9. The method of claim 1 , wherein decoding the one-dimensional array of transform coefficients comprises context adaptive binary arithmetic decoding the one-dimensional array of transform coefficients.

10. The method of claim 9 , further comprising:

determining a context for decoding the significance information associated with the transform coefficients in parallel, wherein the context varies based on a position of a transform coefficient currently being decoded in the block.

11. An apparatus for decoding transform coefficients in a video decoding process, the apparatus comprising:

a memory configured to store a one-dimensional array of transform coefficients associated with a block of transform coefficients; and

one or more processors configured to:

obtain, from an encoded bitstream, the one-dimensional array of transform coefficients;

determine a plurality of sub-blocks of transform coefficients for the block of transform coefficients, each sub-block of the plurality of sub-blocks having an equal size;

decode, from an encoded bitstream, data that represents a unified scan order for scanning a set of information of the block, wherein the set of information comprises significance information of the transform coefficients of respective sub-blocks, coefficient level information of the transform coefficients of respective sub-blocks, and the plurality of sub-blocks;

determine, based on the data that represents the unified scan order for the set of information, a unified diagonal scan for scanning the significance information of the transform coefficients of respective sub-blocks, the coefficient level information of the transform coefficients of respective sub-blocks, and the plurality of sub-blocks;

scan on the one-dimensional array of transform coefficients according to the unified diagonal scan, the scan comprising scanning the significance information of the transform coefficients and the coefficient level information of the transform coefficients for each sub-block of the plurality of sub-blocks using the unified diagonal scan and scanning the plurality of sub-blocks using the unified diagonal scan to produce the block of transform coefficients; and

decode the block of transform coefficients.

12. The apparatus of claim 11 , wherein the unified diagonal scan comprises a reverse diagonal orientation such that scanning comprises reverse diagonally scanning transform coefficients of each of the plurality of sub-blocks from a lower-right corner to an upper-left corner of each of the plurality of sub-blocks and diagonally scanning across each of the plurality of sub-blocks from a lower-right sub-block of the block to a upper-left sub-block of the block.

13. The apparatus of claim 11 , wherein the unified diagonal scan comprises a forward diagonal orientation such that scanning comprises forward diagonally scanning transform coefficients of each of the plurality of sub-blocks from an upper-left corner to a lower-right corner of each of the plurality of sub-blocks and diagonally scanning across each of the plurality of sub-blocks from an upper-left sub-block to a lower-right sub-block of the block.

14. The apparatus of claim 11 , wherein to scan, the one or more processors are configured to begin the scan in a sub-block of the plurality of sub-blocks that contains a last significant coefficient of the array of transform coefficients.

15. The apparatus of claim 11 , wherein to scan, the one or more processors are configured to begin the scan in each of the plurality of sub-blocks from a last significant coefficient in the unified diagonal scan.

16. The apparatus of claim 11 , wherein to scan, the one or more processors are configured to scan all bins associated with transform coefficients of a current sub-block of the plurality of sub-blocks before scanning bins associated with transform coefficients of a next sub-block of the plurality of sub-blocks.

17. The apparatus of claim 11 , wherein to scan, the one or more processors are configured to scan significance bins for the block prior to scanning transform coefficient level bins for the block.

18. The apparatus of claim 11 , wherein to determine the unified diagonal scan, the one or more processors are configured to select the unified diagonal scan based on one of a rate-distortion metric, a block size, a prediction mode, and information associated with a neighboring block.

19. The apparatus of claim 11 , wherein to decode the one-dimensional array of transform coefficients, the one or more processors are configured to context adaptive binary arithmetic decode the one-dimensional array of transform coefficients.

20. The apparatus of claim 19 , wherein the one or more processors are further configured to:

determine a context for decoding the significance information associated with the transform coefficients in parallel, wherein the context varies based on a position of a transform coefficient currently being decoded in the block.

21. An apparatus for decoding transform coefficients in a video decoding process, the apparatus comprising:

means for obtaining, from an encoded bitstream, a one-dimensional array of transform coefficients associated with a block of transform coefficients;

means for determining a plurality of sub-blocks of transform coefficients for the block of transform coefficients, each sub-block of the plurality of sub-blocks having an equal size;

means for decoding, from an encoded bitstream, data that represents a unified scan order for scanning a set of information of the block, wherein the set of information comprises significance information of the transform coefficients of respective sub-blocks, coefficient level information of the transform coefficients of respective sub-blocks, and the plurality of sub-blocks:

means for determining, based on the data that represents the unified scan order for the set of information, a unified diagonal scan for scanning the significance information of the transform coefficients of respective sub-blocks, the coefficient level information of the transform coefficients of respective sub-blocks, and the plurality of sub-blocks;

means for scanning the one-dimensional array of transform coefficients according to the unified diagonal scan, wherein the means for scanning comprises means for scanning the significance information of the transform coefficients and the coefficient level information of the transform coefficients for each sub-block of the plurality of sub-blocks using the unified diagonal scan and means for scanning the plurality of sub-blocks using the unified diagonal scan to produce the block of transform coefficients; and

means for decoding the block of transform coefficients.

22. The apparatus of claim 21 , wherein means for decoding comprises means for context adaptive binary arithmetic decoding the one-dimensional array of transform coefficients.

23. The apparatus of claim 22 , further comprising:

means for determining a context for decoding the significance information associated with the transform coefficients in parallel, wherein the context varies based on a position of a transform coefficient currently being decoded in the block.

24. A non-transitory computer-readable storage medium having instructions stored thereon that, when executed, cause one or more processors to:

obtain, from an encoded bitstream, a one-dimensional array of transform coefficients associated with a block of transform coefficients;

determine a plurality of sub-blocks of transform coefficients for the block of transform coefficients, each sub-block of the plurality of sub-blocks having an equal size;

decode, from an encoded bitstream, data that represents a unified scan order for scanning a set of information of the block, wherein the set of information comprises significance information of the transform coefficients of respective sub-blocks, coefficient level information of the transform coefficients of respective sub-blocks, and the plurality of sub-blocks

determine, based on the data that represents the unified scan order for the set of information, a unified diagonal scan for scanning the significance information of the transform coefficients of respective sub-blocks, the coefficient level information of the transform coefficients of respective sub-blocks, and the plurality of sub-blocks;

scan on the one-dimensional array of transform coefficients according to the unified diagonal scan, the scan comprising scanning the significance information of the transform coefficients and the coefficient level information of the transform coefficients for each sub-block of the plurality of sub-blocks using the unified diagonal scan and scanning the plurality of sub-blocks using the unified diagonal scan to produce the block of transform coefficients; and

decode the block of transform coefficients.

25. The non-transitory computer-readable storage medium of claim 24 , wherein the instructions further cause the one or more processors to context adaptive binary arithmetic decode the one-dimensional array of transform coefficients.

26. The non-transitory computer-readable storage medium of claim 25 , further comprising:

instructions that cause the one or more processors to determine a context for decoding the significance information associated with the transform coefficients in parallel, wherein the context varies based on a position of a transform coefficient currently being decoded in the block.

27. A method for encoding transform coefficients in a video encoding process comprising:

dividing a block of transform coefficients into a plurality of sub-blocks, each sub-block of the plurality of sub-blocks having an equal size;

determining, for the block of transform coefficients, a unified diagonal scan for scanning a set of information for the block, wherein the set of information comprises significance information of the transform coefficients of respective sub-blocks, coefficient level information of the transform coefficients of respective sub-blocks, and the plurality of sub-blocks;

scanning the block of transform coefficients according to the unified diagonal scan, wherein the scanning comprises scanning the significance information of the transform coefficients and the coefficient level information of the transform coefficients for each sub-block of the plurality of sub-blocks using the unified diagonal scan and scanning the plurality of sub-blocks using the unified diagonal scan to produce a one-dimensional array of transform coefficients; and

encoding the transform coefficients and the data that represents the unified diagonal scan order.

28. The method of claim 27 , wherein the unified diagonal scan comprises a reverse diagonal orientation such that scanning comprises reverse diagonally scanning transform coefficients of each of the plurality of sub-blocks from a lower-right corner to an upper-left corner of each of the plurality of sub-blocks and diagonally scanning across each of the plurality of sub-blocks from a lower-right sub-block of the block to a upper-left sub-block of the block.

29. The method of claim 27 , wherein the unified diagonal scan comprises a forward diagonal orientation such that scanning comprises forward diagonally scanning transform coefficients of each of the plurality of sub-blocks from an upper-left corner to a lower-right corner of each of the plurality of sub-blocks and diagonally scanning across each of the plurality of sub-blocks from an upper-left sub-block to a lower-right sub-block of the block.

30. The method of claim 27 , wherein scanning comprises beginning the scanning in a sub-block of the plurality of sub-blocks that contains a last significant coefficient of the array of transform coefficients.

31. The method of claim 27 , wherein scanning comprises beginning the scanning in each of the plurality of sub-blocks from a last significant coefficient in the unified diagonal scan.

32. The method of claim 27 , wherein scanning comprises scanning all bins associated with transform coefficients of a current sub-block of the plurality of sub-blocks before scanning bins associated with transform coefficients of a next sub-block of the plurality of sub-blocks.

33. The method of claim 27 , wherein scanning comprises scanning the significance information prior to scanning the transform coefficient level information.

34. The method of claim 27 , wherein determining the unified diagonal scan comprises selecting the unified diagonal scan based on one of a rate-distortion metric, a block size, a prediction mode, and information associated with a neighboring block.

35. The method of claim 27 , wherein encoding comprises context adaptive binary arithmetic encoding.

36. The method of claim 35 , further comprising:

determining a context for encoding the significance information associated with the transform coefficients in parallel, wherein the context varies based on a position of a transform coefficient currently being encoded in the block.

37. An apparatus for encoding transform coefficients in an encoding process, the apparatus comprising:

a memory configured to store a block of transform coefficients; and

one or more processors configured to:

divide the block of transform coefficients into a plurality of sub-blocks, each sub-block of the plurality of sub-blocks having an equal size;

determine, for the block of transform coefficients, a unified diagonal scan for scanning a set of information for the block, wherein the set of information comprises significance information of the transform coefficients of respective sub-blocks, coefficient level information of the transform coefficients of respective sub-blocks, and the plurality of sub-blocks;

scan the block of transform coefficients according to the unified diagonal scan, wherein to scan the block the one or more processors are configured to scan the significance information of the transform coefficients and the coefficient level information of the transform coefficients for each sub-block of the plurality of sub-blocks using the unified diagonal scan and scan the plurality of sub-blocks using the unified diagonal scan to produce a one-dimensional array of transform coefficients; and

encode the transform coefficients and the data that represents the unified diagonal scan order.

38. The apparatus of claim 37 , wherein the unified diagonal scan comprises a reverse diagonal orientation such that scanning comprises reverse diagonally scanning transform coefficients of each of the plurality of sub-blocks from a lower-right corner to an upper-left corner of each of the plurality of sub-blocks and diagonally scanning across each of the plurality of sub-blocks from a lower-right sub-block of the block to a upper-left sub-block of the block.

39. The apparatus of claim 37 , wherein the unified diagonal scan comprises a forward diagonal orientation such that scanning comprises forward diagonally scanning transform coefficients of each of the plurality of sub-blocks from an upper-left corner to a lower-right corner of each of the plurality of sub-blocks and diagonally scanning across each of the plurality of sub-blocks from an upper-left sub-block to a lower-right sub-block of the block.

40. The apparatus of claim 37 , wherein to scan, the one or more processors are configured to begin the scan in a sub-block of the plurality of sub-blocks that contains a last significant coefficient of the array of transform coefficients.

41. The apparatus of claim 37 , wherein to scan, the one or more processors are configured to begin the scan in each of the plurality of sub-blocks from a last significant coefficient in the unified diagonal scan.

42. The apparatus of claim 37 , wherein to scan, the one or more processors are configured to scan all bins associated with transform coefficients of a current sub-block of the plurality of sub-blocks before scanning bins associated with transform coefficients of a next sub-block of the plurality of sub-blocks.

43. The apparatus of claim 37 , wherein to scan, the one or more processors are configured to scan the significance information prior to scanning the transform coefficient level information.

44. The apparatus of claim 43 , wherein to determine the unified diagonal scan, the one or more processors are configured to select the unified diagonal scan based on one of a rate-distortion metric, a block size, a prediction mode, and information associated with a neighboring block.

45. The apparatus of claim 37 , wherein to encode, the one or more processors are configured to context adaptive binary arithmetic encode the one-dimensional array of transform coefficients.

46. The apparatus of claim 45 , wherein the one or more processors are further configured to:

determine a context for encoding the significance information associated with the transform coefficients in parallel, wherein the context varies based on a position of a transform coefficient currently being encoded in the block.

47. An apparatus for encoding transform coefficients in a video encoding process, the apparatus comprising:

means for dividing a block of transform coefficients into a plurality of sub-blocks, each sub-block of the plurality of sub-blocks having an equal size;

means for determining, for the block of transform coefficients, a unified diagonal scan for scanning a set of information for the block, wherein the set of information comprises significance information of the transform coefficients of respective sub-blocks, coefficient level information of the transform coefficients of respective sub-blocks, and the plurality of sub-blocks;

means for scanning on the block of transform coefficients according to the unified diagonal scan, wherein the means for scanning comprises means for scanning the significance information of the transform coefficients and the coefficient level information of the transform coefficients for each sub-block of the plurality of sub-blocks using the unified diagonal scan and means for scanning the plurality of sub-blocks using the unified diagonal scan; and

means for encoding the transform coefficients and the data that represents the unified diagonal scan order.

48. The apparatus of claim 47 , wherein means for encoding comprises means for context adaptive binary arithmetic encoding the one-dimensional array of transform coefficients.

49. The apparatus of claim 48 , further comprising:

means for determining a context for encoding the significance information associated with the transform coefficients in parallel, wherein the context varies based on a position of a transform coefficient currently being encoded in the block.

50. A non-transitory computer-readable storage medium having instructions stored thereon that, when executed, cause one or more processors to:

divide a block of transform coefficients into a plurality of sub-blocks, each sub-block of the plurality of sub-blocks having an equal size;

determine, for the block of transform coefficients, a unified diagonal scan for scanning a set of information for the block, wherein the set of information comprises significance information of the transform coefficients of respective sub-blocks, coefficient level information of the transform coefficients of respective sub-blocks, and the plurality of sub-blocks;

scan perform a scan on the block of transform coefficients according to the unified diagonal scan, the scanning comprising scanning the significance information of the transform coefficients and the coefficient level information of the transform coefficients for each sub-block of the plurality of sub-blocks using the unified diagonal scan and scanning the plurality of sub-blocks using the unified diagonal scan to produce a one-dimensional array of transform coefficients; and

encode the transform coefficients and the data that represents the unified diagonal scan order.

51. The apparatus of claim 11 , wherein the one or more processors are configured to:

decode a block of video data based on the block of transform coefficients, wherein the apparatus further comprises a display configured to display the block.

52. The apparatus of claim 37 , further comprising a camera configured to capture a picture comprising a block of video data, wherein the one or more processors is configured to generate the block of transform coefficients based on the block of video data.

53. The method of claim 1 , wherein the block of transform coefficients is 8 transform coefficients by 8 transform coefficients or greater in size, and wherein determining the plurality of sub-blocks of transform coefficients comprises determining sub-blocks that are 4 transform coefficients by 4 transform coefficients in size.

54. The method of claim 1 , wherein the block of transform coefficients is 8 transform coefficients by 8 transform coefficients or greater in size, and wherein determining the plurality of sub-blocks of transform coefficients having the equal size comprises determining sub-blocks having a fixed size regardless of the size of the block of transform coefficients.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 10, 2012
From: JOSHI, RAJAN LAXMAN; SOLE ROJALS, JOEL; KARCZEWICZ, MARTA; WANG, XIANGLIN; ZHENG, YUNFEI
To: QUALCOMM INCORPORATED
Reel/Frame 028929/0331 →
Continuity (5)
Provisional Application 61509522 · Jul 19, 2011
Provisional Application 61509926 · Jul 20, 2011
Provisional Application 61550829 · Oct 24, 2011
Provisional Application 61554292 · Nov 1, 2011
Related Publication 20130051475A1 · Feb 28, 2013