IP Library Granted Patent US 9,042,440
Granted Patent B2
US 9,042,440 · App. 13/303,015 · Granted May 26, 2015

Coding the position of a last significant coefficient within a video block based on a scanning order for the block in video coding

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,042,440
App. No.
13/303,015
Granted
May 26, 2015
Kind
B2
Abstract

In one example, an apparatus is disclosed for coding coefficients associated with a block of video data during a video coding process, wherein the apparatus includes a video coder configured to code x- and y-coordinates that indicate a position of a last non-zero coefficient within the block according to a scanning order associated with the block when the scanning order comprises a first scanning order, and code interchanged x- and y-coordinates that indicate the position of the last non-zero coefficient within the block according to the scanning order when the scanning order comprises a second scanning order, wherein the second scanning order is different than the first scanning order.

Claims (72)

1. A method of coding coefficients associated with a block of video data during a video coding process, the method comprising:

determining contexts for performing context adaptive entropy coding of the x- and y-coordinates indicating a horizontal position and a vertical position, respectively, of a last non-zero coefficient within the block, wherein the contexts indicate a probability of each of x- and y-coordinates comprising a given value when the coefficients of the block of video data are scanned in a first scanning order;

when the coefficients of the block of video data are scanned in the first scanning order, coding the x-coordinate and the y-coordinate using the determined contexts such that the x-coordinate is coded based on the probability of the x-coordinate comprising a given value and the y-coordinate is coded based on the probability of the y-coordinate comprising a given value; and

interchanging the x- and y-coordinates when the coefficients of the block of video data are scanned in the second scanning order and coding the interchanged x-coordinate and the interchanged y-coordinate using the determined contexts such that the interchanged x-coordinate is coded based on the probability of the y-coordinate comprising a given value and the interchanged y-coordinate is coded based on the probability of the x-coordinate comprising a given value.

2. The method of claim 1 , wherein the first scanning order and the second scanning order are symmetrical with respect to one another.

3. The method of claim 1 , wherein the first scanning order comprises a horizontal scanning order and the second scanning order comprises a vertical scanning order, and wherein the horizontal scanning order and the vertical scanning order originate at a common position within the block.

4. The method of claim 1 , wherein the scanning order further comprises one of the first scanning order, the second scanning order, and a third scanning order that is different than the first scanning order and the second scanning order, the method further comprising:

when the scanning order comprises the third scanning order, coding the x- and y-coordinates using the determined contexts such that the x-coordinate is coded based on the probability of the x-coordinate comprising a given value and the y-coordinate is coded based on the probability of the y-coordinate comprising a given value.

5. The method of claim 4 , wherein the first scanning order comprises a horizontal scanning order, the second scanning order comprises a vertical scanning order, and the third scanning order comprises a zig-zag scanning order, wherein the horizontal scanning order, the vertical scanning order, and the zig-zag scanning order originate at a common position within the block.

6. The method of claim 1 , further comprising:

updating the contexts based on the x- and y-coordinates and the interchanged x- and y-coordinates, including updating the probability of the x-coordinate comprising [the given value when the scanning order comprises the first scanning order using the x-coordinate and the interchanged y-coordinate, and updating the probability of the y-coordinate comprising the given value when the scanning order comprises the first scanning order using the y-coordinate and the interchanged x-coordinate.

7. The method of claim 1 , wherein coding the x- and y-coordinates and the interchanged x- and y-coordinates comprises coding a sequence of one or more bins, wherein the contexts indicate probabilities of each of the bins having a given value.

8. The method of claim 1 , wherein each of the x- and y-coordinates and the interchanged x- and y-coordinates comprises a sequence of one or more bins, the method further comprising coding the one or more bins of the sequence corresponding to one of the coordinates and the one or more bins of the sequence corresponding to the other coordinate in an interleaved manner.

9. The method of claim 1 , further comprising:

coding information that identifies the scanning order.

10. The method of claim 9 , further comprising:

coding information that identifies positions of other non-zero coefficients within the block.

11. The method of claim 1 , wherein coding comprises encoding, the method further comprising:

encoding values of non-zero coefficients associated with the block of video data based on the respective ones of the x- and y-coordinates and the interchanged x- and y-coordinates; and

outputting the encoded values of the non-zero coefficients in a bitstream.

12. The method of claim 1 , wherein coding comprises decoding, the method further comprising:

receiving encoded values of non-zero coefficients associated with the block of video data in a bitstream; and

decoding the encoded values of the non-zero coefficients based on the respective ones of the x- and y-coordinates and the interchanged x- and y-coordinates.

13. An apparatus for coding coefficients associated with a block of video data during a video coding process, the apparatus comprising a video coder configured to:

determine contexts for performing context adaptive entropy coding of the x- and y-coordinates indicating a horizontal position and a vertical position, respectively, of a last non-zero coefficient within the block, wherein the contexts indicate a probability of each of x- and y-coordinates comprising a given value when the coefficients of the block of video data are scanned in a first scanning order;

when the coefficients of the block of video data are scanned in the first scanning order, code the x-coordinate and the y-coordinate using the determined contexts such that the x-coordinate is coded based on the probability of the x-coordinate comprising a given value and the y-coordinate is coded based on the probability of the y-coordinate comprising a given value; and

interchange the x- and y-coordinates when the coefficients of the block of video data are scanned in the second scanning order and code the interchanged x-coordinate and the interchanged y-coordinate using the determined contexts such that the interchanged x-coordinate is coded based on the probability of the y-coordinate comprising a given value and the interchanged y-coordinate is coded based on the probability of the x-coordinate comprising a given value.

14. The apparatus of claim 13 , wherein the first scanning order and the second scanning order are symmetrical with respect to one another.

15. The apparatus of claim 13 , wherein the first scanning order comprises a horizontal scanning order and the second scanning order comprises a vertical scanning order, and wherein the horizontal scanning order and the vertical scanning order originate at a common position within the block.

16. The apparatus of claim 13 , wherein the scanning order further comprises one of the first scanning order, the second scanning order, and a third scanning order that is different than the first scanning order and the second scanning order, and wherein the video coder is further configured to:

when the scanning order comprises the third scanning order, code the x- and y-coordinates using the determined contexts such that the x-coordinate is coded based on the probability of the x-coordinate comprising a given value and the y-coordinate is coded based on the probability of the y-coordinate comprising a given value.

17. The apparatus of claim 16 , wherein the first scanning order comprises a horizontal scanning order, the second scanning order comprises a vertical scanning order, and the third scanning order comprises a zig-zag scanning order, wherein the horizontal scanning order, the vertical scanning order, and the zig-zag scanning order originate at a common position within the block.

18. The apparatus of claim 13 , wherein the video coder is further configured to:

update the contexts based on the x- and y-coordinates and the interchanged x- and y-coordinates, that includes the video coder updating the probability of the x-coordinate comprising the given value when the scanning order comprises the first scanning order using the x-coordinate and the interchanged y-coordinate, and updating the probability of the y-coordinate comprising the given value when the scanning order comprises the first scanning order using the y-coordinate and the interchanged x-coordinate.

19. The apparatus of claim 13 , wherein to code each of the x-and y-coordinates and the interchanged x- and y-coordinates, the video coder is configured to code a sequence of one or more bins, wherein the contexts indicate probabilities of each of the bins having a given value.

20. The apparatus of claim 13 , wherein each of the x- and y-coordinates and the interchanged x- and y-coordinates comprises a sequence of one or more bins, wherein the video coder is further configured to code the one or more bins of the sequence corresponding to one of the coordinates and the one or more bins of the sequence corresponding to the other coordinate in an interleaved manner.

21. The apparatus of claim 13 , wherein the apparatus comprises at least one of:

an integrated circuit;

a microprocessor; or

a wireless communication device that includes the video coder.

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

encode values of non-zero coefficients associated with the block of video data based on the respective ones of the x- and y-coordinates and the interchanged x- and y-coordinates; and

output the encoded values of the non-zero coefficients in a bitstream.

23. The apparatus of claim 13 , wherein the video coder comprises a video decoder, and wherein the video decoder is further configured to:

receive encoded values of non-zero coefficients associated with the block of video data in a bitstream; and

decode the encoded values of the non-zero coefficients based on the respective ones of the x- and y-coordinates and the interchanged x- and y-coordinates.

24. A device for coding coefficients associated with a block of video data during a video coding process, the device comprising:

means for determining contexts for performing context adaptive entropy coding of the x-and y-coordinates indicating a horizontal position and a vertical position, respectively, of a last non-zero coefficient within the block, wherein the contexts indicate a probability of each of x-and y-coordinates comprising a given value when the coefficients of the block of video data are scanned in a first scanning order;

when the coefficients of the block of video data are scanned in the first scanning order, means for coding the x-coordinate and the y-coordinate using the determined contexts such that the x-coordinate is coded based on the probability of the x-coordinate comprising a given value and the y-coordinate is coded based on the probability of the y-coordinate comprising a given value; and

means for interchanging the x- and y-coordinates when the coefficients of the block of video data are scanned in the second scanning order and coding the interchanged x-coordinate and the interchanged y-coordinate using the determined contexts such that the interchanged x-coordinate is coded based on the probability of the y-coordinate comprising a given value and the interchanged y-coordinate is coded based on the probability of the x-coordinate comprising a given value.

25. The device of claim 24 , wherein the first scanning order and the second scanning order are symmetrical with respect to one another.

26. The device of claim 24 , wherein the first scanning order comprises a horizontal scanning order and the second scanning order comprises a vertical scanning order, and wherein the horizontal scanning order and the vertical scanning order originate at a common position within the block.

27. The device of claim 24 , wherein the scanning order further comprises one of the first scanning order, the second scanning order, and a third scanning order that is different than the first scanning order and the second scanning order, further comprising:

means for, when the scanning order comprises the third scanning order, coding the x- and y-coordinates using the determined contexts such that the x-coordinate is coded based on the probability of the x-coordinate comprising a given value and the y-coordinate is coded based on the probability of the y-coordinate comprising a given value.

28. The device of claim 27 , wherein the first scanning order comprises a horizontal scanning order, the second scanning order comprises a vertical scanning order, and the third scanning order comprises a zig-zag scanning order, wherein the horizontal scanning order, the vertical scanning order, and the zig-zag scanning order originate at a common position within the block.

29. The device of claim 24 , further comprising:

means for updating the contexts based on the x- and y-coordinates and the interchanged x- and y-coordinates, including means for updating the probability of the x-coordinate comprising the given value when the scanning order comprises the first scanning order using the x-coordinate and the interchanged y-coordinate, and means for updating the probability of the y-coordinate comprising the given value when the scanning order comprises the first scanning order using the y-coordinate and the interchanged x-coordinate.

30. The device of claim 24 , wherein the means for coding the x- and y-coordinates and the interchanged x- and y-coordinates comprises means for coding a sequence of one or more bins, wherein the contexts indicate probabilities of each of the bins having a given value.

31. The device of claim 24 , wherein each of the x- and y-coordinates and the interchanged x- and y-coordinates comprises a sequence of one or more bins, further comprising means for coding the one or more bins of the sequence corresponding to one of the coordinates and the one or more bins of the sequence corresponding to the other coordinate in an interleaved manner.

32. A non-transitory computer-readable medium comprising instructions that, when executed, cause a processor to code coefficients associated with a block of video data during a video coding process, wherein the instructions cause the processor to:

determine contexts for performing context adaptive entropy coding of the x- and y-coordinates indicating a horizontal position and a vertical position, respectively, of a last non-zero coefficient within the block, wherein the contexts indicate a probability of each of x- and y-coordinates comprising a given value when the coefficients of the block of video data are scanned in a first scanning order;

when the coefficients of the block of video data are scanned in the first scanning order, code the x-coordinate and the y-coordinate using the determined contexts such that the x-coordinate is coded based on the probability of the x-coordinate comprising a given value and the y-coordinate is coded based on the probability of the y-coordinate comprising a given value; and

interchange the x- and y-coordinates when the coefficients of the block of video data are scanned in the second scanning order and code the interchanged x-coordinate and the interchanged y-coordinate using the determined contexts such that the interchanged x-coordinate is coded based on the probability of the y-coordinate comprising a given value and the interchanged y-coordinate is coded based on the probability of the x-coordinate comprising a given value.

33. The non-transitory computer-readable medium of claim 32 , wherein the first scanning order and the second scanning order are symmetrical with respect to one another.

34. The non-transitory computer-readable medium of claim 32 , wherein the first scanning order comprises a horizontal scanning order and the second scanning order comprises a vertical scanning order, and wherein the horizontal scanning order and the vertical scanning order originate at a common position within the block.

35. The non-transitory computer-readable medium of claim 32 , wherein the scanning order further comprises one of the first scanning order, the second scanning order, and a third scanning order that is different than the first scanning order and the second scanning order, further comprising instructions that cause the processor to:

when the scanning order comprises the third scanning order, code the x- and y-coordinates using the determined contexts such that the x-coordinate is coded based on the probability of the x-coordinate comprising a given value and the y-coordinate is coded based on the probability of the y-coordinate comprising a given value.

36. The non-transitory computer-readable medium of claim 35 , wherein the first scanning order comprises a horizontal scanning order, the second scanning order comprises a vertical scanning order, and the third scanning order comprises a zig-zag scanning order, wherein the horizontal scanning order, the vertical scanning order, and the zig -zag scanning order originate at a common position within the block.

37. The non-transitory computer-readable medium of claim 32 , further comprising instructions that cause the processor to:

update the contexts based on the x- and y-coordinates and the interchanged x- and y-coordinates, including instructions that cause the processor to update the probability of the x-coordinate comprising the given value when the scanning order comprises the first scanning order using the x-coordinate and the interchanged y-coordinate, and instructions that cause the processor to update the probability of the y-coordinate comprising the given value when the scanning order comprises the first scanning order using the y-coordinate and the interchanged x -coordinate.

38. The non-transitory computer-readable medium of claim 32 , wherein the instructions that cause the processor to code the x- and y-coordinates and the interchanged x- and y-coordinates comprise instructions that cause the processor to code a sequence of one or more bins, wherein the contexts indicate probabilities of each of the bins having a given value.

39. The non-transitory computer-readable medium of claim 32 , wherein each of the x- and y-coordinates and the interchanged x- and y-coordinates comprises a sequence of one or more bins, further comprising instructions that cause the processor to code the one or more bins of the sequence corresponding to one of the coordinates and the one or more bins of the sequence corresponding to the other coordinate in an interleaved manner.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Jul 26, 2022
From: CORTLAND CAPITAL MARKET SERVICES LLC
To: VELOS MEDIA, LLC AND VELOS MEDIA MANAGEMENT, LLC
Reel/Frame 060923/0407 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2021
From: VELOS MEDIA, LLC
To: QUALCOMM INCORPORATED
Reel/Frame 057575/0431 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2021
From: CORTLAND CAPITAL MARKET SERVICES LLC
To: VELOS MEDIA, LLC AND VELOS MEDIA MANAGEMENT, LLC
Reel/Frame 057554/0540 →
SECOND AMENDED AND RESTATED MEMBER INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Apr 2, 2018
From: VELOS MEDIA MANAGEMENT, LLC; VELOS MEDIA, LLC
To: CORTLAND CAPITAL MARKET SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 045806/0030 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2017
From: QUALCOMM INCORPORATED
To: VELOS MEDIA, LLC
Reel/Frame 043173/0291 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2012
From: ROJALS, JOEL SOLE; COBAN, MUHAMMED ZEYD; ZHENG, YUNFEI; JOSHI, RAJAN LAXMAN; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 027555/0104 →