IP Library Granted Patent US 9,462,286
Granted Patent B2
US 9,462,286 · App. 13/524,583 · Granted Oct 4, 2016

Methods and devices for coding binary symbols as n-tuples

Inventors: Nguyen Nguyen (Waterloo, CA); Dake He (Waterloo, CA)
Assignee: BlackBerry Limited
H04N19/44H04N19/124H04N19/18H04N19/46
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,462,286
App. No.
13/524,583
Granted
Oct 4, 2016
Kind
B2
Abstract

Methods and devices for reconstructing coefficient levels from a bitstream of encoded video data for a coefficient group in a transform unit. Greater-than-one flags are encoded by grouping them into tuples and by encoding a tuple-based value that is a function of the greater-than-one flags within that tuple. The tuple-based value may permit the decoder to infer the greater-than-one flags in some cases, in which case they are not encoded in the bitstream.

Claims (49)

1. A method of decoding a bitstream of encoded video in a video decoder to reconstruct a plurality of greater-than-one flags for a coefficient group, wherein the plurality of greater-than-one flags are grouped in scan order into a plurality of 2-tuples of pairs of greater-than-one flags for the coefficient group, the method comprising:

for each of the plurality of 2-tuples of pairs of greater-than-one flags for the coefficient group,

context-adaptively decoding a tuple-based value from the bitstream for that tuple; and

inferring or decoding the greater-than-one flags for that tuple based on that tuple's decoded tuple-based value, wherein the tuple-based value is a logical OR of the greater-than-one flags in that tuple, and wherein decoding comprises non-context-based bypass decoding, and wherein the inferring or decoding includes

if the tuple-value is zero, inferring that both greater-than-one flags of that tuple are zero, and

if the tuple-value is non-zero, decoding a first greater-than-one flag of the pair for that tuple and, if the first greater-than-one flag is zero, then inferring that a second greater-than-one flag of the pair for that tuple is non-zero and, otherwise, decoding the second greater-than-one flag of the pair.

2. The method claimed in claim 1 , wherein each tuple contains two greater-than-one flags unless a number of greater-than-one flags in the coefficient group is odd, in which case a last tuple in the coefficient group contains one greater-than-one flag and a zero.

3. The method claimed in claim 1 , wherein decoding of greater-than-one flags comprises equiprobability decoding.

4. The method claimed in claim 1 , applied to reconstruct a set of coefficients for the coefficient group and further comprising:

decoding a significant coefficient flag for each coefficient in the coefficient group, each significant coefficient flag indicating whether its corresponding coefficient is non-zero;

decoding additional level information for each coefficient having a magnitude greater-than-one;

decoding sign information for at least one non-zero coefficient; and

reconstructing the set of coefficients based on the decoded significant coefficient flags, the decoded or inferred greater-than-one flags, the decoded additional level information, and the decoded sign information.

5. A method of encoding video in a video encoder to output a bitstream of encoded data by encoding a plurality of greater-than-one flags for a coefficient group, the method comprising:

grouping the greater-than-one flags in scan order into a plurality of non-overlapping 2-tuples of pairs of greater-than-one flags for the coefficient group;

for each of the plurality of 2-tuples of pairs of greater-than-one flags for the coefficient group,

determining a tuple-based value for that tuple as a logical OR of the greater-than-one flags in that tuple;

context-adaptively encoding the tuple-based values in the bitstream; and

for each greater-than-one flag in that tuple, if that greater-than-one flag is not inferable, then encoding that greater-than-one flag in the bitstream, wherein the encoding is non-context-based bypass encoding, including,

if the tuple-value is zero, not encoding either of the pairs of greater-than-one flags, and

if the tuple-value is non-zero, encoding a first greater-than-one flag of the pair for that tuple and, if the first greater-than-one flag is zero, not encoding a second greater-than-one flag of the pair of that tuple and, otherwise, encoding the second greater-than-one flag of the pair.

6. A decoder for decoding a bitstream of encoded video in a video decoder to reconstruct a plurality of greater-than-one flags for a coefficient group, wherein the plurality of greater-than-one flags partitioned in scan order form a plurality of 2-tuples of pairs of greater-than-one flags for the coefficient group, the decoder comprising:

a processor;

a memory; and

a decoding application stored in memory and containing instructions that, when executed, cause the processor to

for each of the plurality of 2-tuples of pairs of greater-than-one flags for the coefficient group,

context-adaptively decode a tuple-based value from the bitstream for that tuple; and

infer or decode the greater-than-one flags for that tuple based on that tuple's decoded tuple-based value, wherein the tuple-based value is a logical OR of the greater-than-one flags in that tuple, and wherein decoding comprises non-context-based bypass decoding, and wherein the processor is to infer or decode by

if the tuple-value is zero, inferring that both greater-than-one flags of that tuple are zero, and

if the tuple-value is non-zero, decoding a first greater-than-one flag of the pair for that tuple and, if the first greater-than-one flag is zero, then inferring that a second greater-than-one flag of the pair for that tuple is non-zero and, otherwise, decoding the second greater-than-one flag of the pair.

7. The decoder claimed in claim 6 , wherein each tuple contains two greater-than-one flags unless a number of greater-than-one flags in the coefficient group is odd, in which case a last tuple in the coefficient group contains one greater-than-one flag and a zero.

8. The decoder claimed in claim 6 , wherein the decoder is configured to decode greater-than-one flags using equiprobability decoding.

9. The decoder claimed in claim 6 , applied to reconstruct a set of coefficients for the coefficient group and wherein the decoder is further configured to:

decode a significant coefficient flag for each coefficient in the coefficient group, each significant coefficient flag indicating whether its corresponding coefficient is non-zero;

decode additional level information for each coefficient having a magnitude greater-than-one;

decode sign information for at least one non-zero coefficient; and

reconstruct the set of coefficients based on the decoded significant coefficient flags, the decoded or inferred greater-than-one flags, the decoded additional level information, and the decoded sign information.

10. A non-transitory processor-readable medium storing processor-executable instructions which, when executed, configures one or more processors to perform the method claimed in claim 1 .

11. An encoder for encoding video in a video encoder to output a bitstream of encoded data by encoding a plurality of greater-than-one flags for a coefficient group, the encoder comprising:

a processor;

a memory; and

an encoding application stored in memory and containing instructions that, when executed, cause the processor to:

group the greater-than-one flags in scan order into a plurality of non-overlapping 2-tuples of pairs of greater-than-one flags for the coefficient group;

for each of the plurality of 2-tuples of pairs of greater-than-one flags for the coefficient group,

determine a tuple-based value for that tuple as a logical OR of the greater-than-one flags in that tuple;

context-adaptively encode the tuple-based values in the bitstream; and

for each greater-than-one flag in that tuple, if that greater-than-one flag is not inferable, then encode that greater-than-one flag in the bitstream using non-context-based bypass encoding, including,

if the tuple-value is zero, not encoding either of the pairs of greater-than-one flags, and

if the tuple-value is non-zero, encoding a first greater-than-one flag of the pair for that tuple and, if the first greater-than-one flag is zero, not encoding a second greater-than-one flag of the pair of that tuple and, otherwise, encoding the second greater-than-one flag of the pair.

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 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 →
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 →
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 →
CHANGE OF NAME Recorded Mar 15, 2016
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 038087/0963 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2012
From: SLIPSTREAM DATA INC.
To: RESEARCH IN MOTION LIMITED
Reel/Frame 028764/0951 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 18, 2012
From: NGUYEN, NGUYEN; HE, DAKE
To: SLIPSTREAM DATA INC.
Reel/Frame 028392/0855 →
Continuity (1)
Related Publication 20130336410A1 · Dec 19, 2013