IP Library Granted Patent US 8,446,301
Granted Patent B2
US 8,446,301 · App. 13/087,462 · Granted May 21, 2013

Methods and devices for coding and decoding the position of the last significant coefficient

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 8,446,301
App. No.
13/087,462
Granted
May 21, 2013
Kind
B2
Abstract

Methods and devices are described for entropy coding data using an entropy coder to encode quantized transform domain coefficient data. Last significant coefficient information is signaled in the bitstream using two-dimensional coordinates for the last significant coefficient. The context for bins of one of the coordinates is based, in part, upon the value of the other of the coordinates. In one case, instead of signaling last significant coefficient information, the number of non-zero coefficients is binarized and entropy encoded.

Claims (58)

1. A method for encoding quantized transform domain coefficient data including last significant coefficient information, the method comprising:

binarizing, with a processor, each of two positions of two-dimensional coordinates of the last significant coefficient;

determining, with the processor, a context for each bin of one of the positions;

determining, with the processor, a context for each bin of the other of the positions, wherein the context of each bin of the other of the positions is based, in part, upon said one of the positions; and

entropy encoding the binarized positions based upon the context determined for each of the bins of the binarized positions to produce encoded data.

2. The method claimed in claim 1 , wherein binarizing comprises encoding each of the two positions as a fixed length binary code.

3. The method claimed in claim 1 , wherein determining a context for each bin of the other of the positions includes calculating a context index that specifies the determined context, and wherein the context index is calculated based upon said one of the positions, a transform block size, and previous bins in the other of the positions, if any.

4. The method claimed in claim 1 , wherein the two positions comprise an x-position and a y-position within a block.

5. The method claimed in claim 1 , wherein determining a context for each bin of the other of the positions includes calculating a context index that specifies the determined context, wherein the context index is based upon a binary logarithm of said one of the positions.

6. The method claimed in claim 1 , further comprising:

determining that the two-dimensional coordinates are not [0,0] before performing said binarizing, determining the context for each bin of each position, and entropy encoding.

7. The method claimed in claim 1 , further comprising counting a number of non-zero coefficients in the quantized transform domain coefficient data and determining that the number meets or exceeds a threshold before said binarizing, said determining a context for each bin of one of the positions and said determining a context for each bin of the other of the positions.

8. An encoder for encoding quantized transform domain coefficient data, the encoder comprising:

a processor;

a memory; and

an encoding application stored in memory and containing instructions for configuring the processor to

binarize each of two positions of two-dimensional coordinates of the last significant coefficient;

determine a context for each bin of one of the positions;

determine a context for each bin of the other of the positions, wherein the context of each bin of the other of the positions is based, in part, upon said one of the positions; and

entropy encode the binarized positions based upon the context determined for each of the bins of the binarized positions to produce encoded data.

9. The encoder claimed in claim 8 , wherein the processor is configured to binarize by encoding each of the two positions as a fixed length binary code.

10. The encoder claimed in claim 8 , wherein the processor is configured to determining a context for each bin of the other of the positions by calculating a context index that specifies the determined context, and wherein the context index is calculated based upon said one of the positions, a transform block size, and previous bins in the other of the positions, if any.

11. The encoder claimed in claim 8 , wherein the two positions comprise an x-position and a y-position within a block.

12. The encoder claimed in claim 8 , wherein the processor is configured to determine a context for each bin of the other of the positions by calculating a context index that specifies the determined context, wherein the context index is based upon a binary logarithm of said one of the positions.

13. The encoder claimed in claim 8 , wherein the processor is configured to determine that the two-dimensional coordinates are not [0,0] before performing said binarizing, determining the context for each bin of each position, and entropy encoding.

14. The encoder claimed in claim 8 , wherein the processor is configured to count a number of non-zero coefficients in the quantized transform domain coefficient data and determine that the number meets or exceeds a threshold before said binarizing, said determining a context for each bin of one of the positions and said determining a context for each bin of the other of the positions.

15. A method for decoding a bitstream of encoded data to reconstruct quantized transform domain coefficient data, the method comprising:

entropy decoding, with a processor, a portion of the encoded data to produce two binarized positions defining two-dimensional coordinates of a last significant coefficient, wherein entropy decoding the portion of the data includes

determining a context for each bin of one of the positions, and

determining a context for each bin of the other of the positions, wherein the context of each bin of the other of the positions is based, in part, upon said one of the positions;

entropy decoding, with the processor, a significant coefficient sequence based upon the two-dimensional coordinates of the last significant coefficient;

entropy decoding, with the processor, level information based upon the significant coefficient sequence; and

reconstructing, with the processor, the quantized transform domain coefficient data using the level information and the significant coefficient sequence.

16. The method claimed in claim 15 , wherein the two binarized positions each comprise a fixed-length binary code.

17. The method claimed in claim 15 , wherein entropy decoding the significant coefficient sequence includes converting the two-dimensional coordinates of the last significant coefficient to a one-dimensional index indicating the end of the significant coefficient sequence.

18. The method claimed in claim 15 , wherein determining a context for each bin of the other of the positions includes calculating a context index that specifies the determined context, and wherein the context index is calculated based upon said one of the positions, a transform block size, and previous bins in said other of the positions, if any.

19. The method claimed in claim 15 , wherein the two positions comprises an x-position and a y-position within a block.

20. The method claimed in claim 15 , wherein determining a context for each bin of the other of the positions includes calculating a context index that specifies the determined context, wherein the context index is based upon a binary logarithm of said one of the positions.

21. The method claimed in claim 15 , further comprising entropy decoding a zero flag and determining from the zero flag that the two-dimensional coordinate position is not [0,0] before decoding said portion.

22. The method claimed in claim 15 , further comprising entropy decoding a non-zero coefficient flag and, based on the value of the non-zero coefficient flag, performing said entropy decoding a portion.

23. A decoder for decoding a bitstream of encoded data to reconstruct a sequence of symbols, the symbols belonging to a finite alphabet, the decoder comprising:

a processor;

a memory; and

a decoding application stored in memory and containing instructions for configuring the processor to

entropy decode a portion of the encoded data to produce two binarized positions defining two-dimensional coordinates of a last significant coefficient, wherein entropy decoding the portion of the data includes

determining a context for each bin of one of the positions, and

determining a context for each bin of the other of the positions, wherein the context of each bin of the other of the positions is based, in part, upon said one of the positions;

entropy decode a significant coefficient sequence based upon the two-dimensional coordinates of the last significant coefficient;

entropy decode level information based upon the significant coefficient sequence; and

reconstruct the quantized transform domain coefficient data using the level information and the significant coefficient sequence.

24. The decoder claimed in claim 23 , wherein the two binarized positions each comprise a fixed-length binary code.

25. The decoder claimed in claim 23 , wherein the processor is configured to entropy decode the significant coefficient sequence by converting the two-dimensional coordinates of the last significant coefficient to a one-dimensional index indicating the end of the significant coefficient sequence.

26. The decoder claimed in claim 23 , wherein the processor is configured to determine a context for each bin of the other of the positions by calculating a context index that specifies the determined context, and wherein the context index is calculated based upon said one of the positions, a transform block size, and previous bins in said other of the positions, if any.

27. The decoder claimed in claim 23 , wherein the two positions comprises an x-position and a y-position within a block.

28. The decoder claimed in claim 23 , wherein the processor is configured to determine a context for each bin of the other of the positions by calculating a context index that specifies the determined context, wherein the context index is based upon a binary logarithm of said one of the positions.

29. The decoder claimed in claim 23 , wherein the processor is configured to entropy decode a zero flag and determining from the zero flag that the two-dimensional coordinate position is not [0,0] before decoding said portion.

30. The decoder claimed in claim 23 , wherein the processor is configured to entropy decode a non-zero coefficient flag and, based on the value of the non-zero coefficient flag, performing said entropy decoding a portion.

31. A non-transitory computer-readable medium having stored thereon computer-executable instructions which, when executed by a processor, configure the processor to execute the method claimed in claim 1 .

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE ADDED PATENT NUMBER TO REMOVE PATENT NO. 8,873,407 AT PREVIOUSLY RECORDED ON REEL 64066 FRAME 1. ASSIGNOR(S) HEREBY CONFIRMS THE NUNC PRO TUNC ASSIGNMENT EFFECTIVE DATE MARCH 20, 2023. Recorded Feb 2, 2026
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 074921/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT 12817157 APPLICATION NUMBER PREVIOUSLY RECORDED AT REEL: 064015 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 5, 2023
From: OT PATENT ESCROW, LLC
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064807/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE COVER SHEET AT PAGE 50 TO REMOVE 12817157 PREVIOUSLY RECORDED ON REEL 063471 FRAME 0474. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 5, 2023
From: BLACKBERRY LIMITED
To: OT PATENT ESCROW, LLC
Reel/Frame 064806/0669 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064066/0001 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 16, 2023
From: OT PATENT ESCROW, LLC
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064015/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2023
From: BLACKBERRY LIMITED
To: OT PATENT ESCROW, LLC
Reel/Frame 063471/0474 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 17, 2017
From: HE, DAKE; WANG, JING
To: SLIPSTREAM DATA INC.
Reel/Frame 043315/0603 →
CHANGE OF NAME Recorded Mar 7, 2016
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 038025/0078 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2012
From: SLIPSTREAM DATA INC.
To: RESEARCH IN MOTION LIMITED
Reel/Frame 028434/0013 →