IP Library Granted Patent US 9,357,185
Granted Patent B2
US 9,357,185 · App. 13/669,096 · Granted May 31, 2016

Context optimization for last significant coefficient position 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,357,185
App. No.
13/669,096
Granted
May 31, 2016
Kind
B2
Abstract

A video encoder is configured to encode a binary sting indicating a position of a last significant coefficient within a video block. A video decoder is configured to decode the encoded binary string. The string may be coded using context adaptive binary arithmetic coding (CABAC). Binary indices of the binary string may be assigned a context. The context may be determined according to a mapping function. A context may be a assigned to one or more binary indices where each index is associated with a different block size. The last binary index of a 16×16 video block may share a context with the last binary index of a 32×32 video block.

Claims (96)

1. A method of encoding transform coefficients for a video block, the method comprising:

determining a binary string indicating a position of a last significant coefficient within a transform block of transform coefficients associated with the video block, the binary string including a prefix portion and a suffix portion;

determining a context for a binary index in the prefix portion of the binary string based on the size of the transform block, wherein the context is assigned to at least two binary indices according to a context index (ctx_index) defined by the function:

ctx_index=( n >>(log 2 ( T )−2))+15,

wherein n is the binary index, >> represents a binary shift operation, and T is a dimension of the transform block, and wherein each of the at least two binary indices are associated with different transform block sizes; and

encoding the binary string using context adaptive binary arithmetic coding (CABAC) based at least in part on the determined context.

2. The method of claim 1 , wherein the context is assigned to a last binary index of an 16×16 transform block and a last binary index of a 32×32 transform block.

3. The method of claim 2 , wherein a second context is assigned to adjacent binary indices of the 16×16 transform block.

4. The method of claim 1 , wherein encoding the binary string using CABAC based at least in part on the determined context includes updating the context based on the value of the binary string, and wherein the transform block is a first transform block, the method further comprising:

determining a second binary string indicating a position of a last significant coefficient within a second transform block, wherein the first transform block and the second transform block are different sizes; and

encoding the second binary string using CABAC based at least in part on the updated context.

5. A method of decoding transform coefficients for a video block, the method comprising:

obtaining an encoded binary string indicating a position of a last significant coefficient within a transform block of transform coefficients associated with the video block, the encoded binary string including a prefix portion and a suffix portion, wherein the encoded binary string is encoded using context adaptive binary arithmetic coding (CABAC);

determining a context for a binary index in the prefix portion of the encoded binary string based on the size of the transform block, wherein the context is assigned to at least two binary indices according to a context index (ctx_index) defined by the function:

ctx_index=( n >>(log 2 ( T )−2))+15,

wherein n is the binary index, >> represents a binary shift operation, and T is a dimension of the transform block, and wherein each of the at least two binary indices are associated with different transform block sizes;

decoding the encoded binary string using CABAC based at least in part on the determined context; and

determining the position of the last significant coefficient in the transform block of the transform coefficients associated with the video block based on the decoded binary string.

6. The method of claim 5 , wherein the context is assigned to a last binary index of an 16×16 transform block and a last binary index of a 32×32 transform block.

7. The method of claim 6 , wherein a second context is assigned to adjacent binary indices of the 16×16 transform block.

8. The method of claim 5 , wherein decoding the encoded binary string using CABAC based at least in part on the determined context includes updating the context based on the value of the encoded binary string, and wherein the transform block is a first transform block; and further comprising:

obtaining a second encoded binary string indicating a position of a last significant coefficient within a second transform block, wherein the first transform block and the second transform block are different sizes; and

decoding the second encoded binary string using CABAC based at least in part on the updated context.

9. An apparatus configured to encode transform coefficients for a video block, the apparatus comprising:

means for determining a binary string indicating a position of a last significant coefficient within a transform block of transform coefficients associated with the video block, the binary string including a prefix portion and a suffix portion;

means for determining a context for a binary index in the prefix portion of the binary string based on the size of the transform block, wherein the context is assigned to at least two binary indices according to a context index (ctx_index) defined by the function:

ctx_index=( n >>(log 2 ( T )−2))+15,

wherein n is the binary index, >> represents a binary shift operation, and T is a dimension of the transform block, and wherein each of the at least two binary indices are associated with different transform block sizes; and

means for encoding the binary string using context adaptive binary arithmetic coding (CABAC) based at least in part on the determined context.

10. The apparatus of claim 9 , wherein encoding the binary string using CABAC based at least in part on the determined context includes updating the context based on the value of the binary string, and wherein the transform block is a first transform block; and further comprising:

means for determining a second binary string indicating a position of a last significant coefficient within a second transform block, wherein the first transform block and the second transform block are different sizes; and

means for entropy coding the second binary string using CABAC based at least in part on the updated context.

11. An apparatus configured to decode transform coefficients for a video block, the apparatus comprising:

means for obtaining an encoded binary string indicating a position of a last significant coefficient within a transform block of transform coefficients associated with the video block, the encoded binary string including a prefix portion and a suffix portion, wherein the encoded binary string is encoded using context adaptive binary arithmetic coding (CABAC);

means for determining a context for a binary index in the prefix portion of the encoded binary string based on the size of the transform block, wherein the context is assigned to at least two binary indices according to a context index (ctx_index) defined by the function:

ctx_index=( n >>(log 2 ( T )−2))+15,

wherein n is the binary index, >> represents a binary shift operation, and T is a dimension of the transform block, and wherein each of the at least two binary indices are associated with different transform block sizes;

means for decoding the encoded binary string using CABAC based at least in part on the determined context; and

means for determining the position of the last significant coefficient in the transform block of the transform coefficients associated with the video block based on the decoded binary string.

12. The apparatus of claim 11 , wherein decoding the encoded binary string using CABAC based at least in part on the determined context includes updating the context based on the value of the encoded binary string, and wherein the transform block is a first transform block; and further comprising:

means for obtaining a second encoded binary string indicating a position of a last significant coefficient within a second transform block, wherein the first transform block and the second transform block are different sizes; and

means for decoding the second encoded binary string using CABAC based at least in part on the updated context.

13. A device configured to encode transform coefficients for a video block, the device comprising:

a memory configured to store the transform coefficients; and

a video encoder configured to:

determine a binary string indicating a position of a last significant coefficient within a transform block of the transform coefficients associated with the video block, the binary string including a prefix portion and a suffix portion;

determine a context for a binary index in the prefix portion of the binary string based on the size of the transform block, wherein the context is assigned to at least two binary indices according to a context index (ctx_index) defined by the function:

ctx_index=( n >>(log 2 ( T )−2))+15,

 wherein n is the binary index, >> represents a binary shift operation, and T is a dimension of the transform block, and wherein each of the at least two binary indices are associated with different transform block sizes; and

encode the binary string using context adaptive binary arithmetic coding (CABAC) based at least in part on the determined context.

14. The device of claim 13 , wherein the context is assigned to a last binary index of an 16×16 transform block and a last binary index of a 32×32 transform block.

15. The device of claim 14 , wherein a second context is assigned to adjacent binary indices of the 16×16 transform block.

16. The device of claim 13 , wherein encoding the binary string using (CABAC) based at least in part on the determined context includes updating the context based on the value of the binary string, and wherein the transform block is a first transform block; and wherein the video encoder is further configured to:

determine a second binary string indicating a position of a last significant coefficient within a second transform block, wherein the first transform block and the second transform block are different sizes; and

encode the second binary string using CABAC based at least in part on the updated context.

17. A device configured to decode transform coefficients for a video block, the device comprising:

a memory configured to store the transform coefficients; and

a video decoder configured to:

obtain an encoded binary string indicating a position of a last significant coefficient within a transform block of the transform coefficients associated with the video block, the encoded binary string including a prefix portion and a suffix portion, wherein the encoded binary string is encoded using context adaptive binary arithmetic coding (CABAC);

determine a context for a binary index in the prefix portion of the encoded binary string based on the size of the transform block, wherein the context is assigned to at least two binary indices according to a context index (ctx_index) defined by the function:

ctx_index=( n >>(log 2 ( T )−2))+15,

 wherein n is the binary index, >> represents a binary shift operation, and T is a dimension of the transform block, and wherein each of the at least two binary indices are associated with different transform block sizes;

decode the encoded binary string using CABAC based at least in part on the determined context; and

determine the position of the last significant coefficient in the transform block of the transform coefficients associated with the video block based on the decoded binary string.

18. The device of claim 17 , wherein the context is assigned to a last binary index of an 16×16 transform block and a last binary index of a 32×32 transform block.

19. The device of claim 18 , wherein a second context is assigned to adjacent binary indices of the 16×16 transform block.

20. The device of claim 17 , wherein decoding the encoded binary string using CABAC based at least in part on the determined context includes updating the context based on the value of the encoded binary string, and wherein the transform block is a first transform block; and wherein the video decoder is further configured to:

obtain a second encoded binary string indicating a position of a last significant coefficient within a second transform block, wherein the first transform block and the second transform block are different sizes; and

decode the second encoded binary string using CABAC based at least in part on the updated context.

21. A non-transitory computer-readable storage medium having instructions stored thereon that upon execution cause one or more processors of a video encoding device to:

determine a binary string indicating a position of a last significant coefficient within a transform block of transform coefficients associated with a video block, the binary string including a prefix portion and a suffix portion;

determine a context for a binary index in the prefix portion of the binary string based on the size of the transform block, wherein the context is assigned to at least two binary indices according to a context index (ctx_index) defined by the function:

ctx_index=( n >>(log 2 ( T )−2))+15,

wherein n is the binary index, >> represents a binary shift operation, and T is a dimension of the transform block, and wherein each of the at least two binary indices are associated with different transform block sizes; and

encode the binary string using context adaptive binary arithmetic coding (CABAC) based at least in part on the determined context.

22. The non-transitory computer-readable storage medium of claim 21 , wherein the context is assigned to a last binary index of an 16×16 transform block and a last binary index of a 32×32 transform block.

23. The non-transitory computer-readable storage medium of claim 22 , wherein a second context is assigned to adjacent binary indices of the 16×16 transform block.

24. The non-transitory computer-readable storage medium of claim 21 , wherein encoding the binary string using CABAC based at least in part on the determined context includes updating the context based on the value of the binary string, and wherein the transform block is a first transform block; and wherein the instructions upon execution further cause one or more processors of a video encoding device to:

determine a second binary string indicating a position of a last significant coefficient within a second transform block, wherein the first transform block and the second transform block are different sizes; and

encode the second binary string using CABAC based at least in part on the updated context.

25. A non-transitory computer-readable storage medium having instructions stored thereon that upon execution cause one or more processors of a video decoding device to:

obtain an encoded binary string indicating a position of a last significant coefficient within a transform block of transform coefficients associated with a video block, the encoded binary string including a prefix portion and a suffix portion, wherein the encoded binary string is encoded using context adaptive binary arithmetic coding (CABAC);

determine a context for a binary index in the prefix portion of the encoded binary string based on the size of the transform block, wherein the context is assigned to at least two binary indices according to a context index (ctx_index) defined by the function:

ctx_index=( n >>(log 2 ( T )−2))+15,

wherein n is the binary index, >> represents a binary shift operation, and T is a dimension of the transform block, and wherein each of the at least two binary indices are associated with different transform block sizes;

decode the encoded binary string using CABAC based at least in part on the determined context; and

determine the position of the last significant coefficient in the transform block of the transform coefficients associated with the video block based on the decoded binary string.

26. The non-transitory computer-readable storage medium of claim 25 , wherein the context is assigned to a last binary index of an 16×16 transform block and a last binary index of a 32×32 transform block.

27. The non-transitory computer-readable storage medium of claim 26 , wherein a second context is assigned to adjacent binary indices of the 16×16 transform block.

28. The non-transitory computer-readable storage medium of claim 25 , wherein decoding the encoded binary string using CABAC based at least in part on the determined context includes updating the context based on the value of the encoded binary string, and wherein the transform block is a first transform block; and wherein the instructions upon execution further cause one or more processors of a video encoding device to:

obtain a second encoded binary string indicating a position of a last significant coefficient within a second transform block, wherein the first transform block and the second transform block are different sizes; and

decode the second encoded binary string using CABAC based at least in part on the updated context.

29. The apparatus of claim 17 , wherein the device comprises one or more of:

a wireless communication device comprising at least one of a display configured to display a picture that includes the video block or a camera configured to capture the a picture that includes the video block;

a microprocessor; or

an integrated circuit.

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 7, 2013
From: GUO, LIWEI; CHIEN, WEI-JUNG; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 029580/0145 →