IP Library Granted Patent US 9,578,347
Granted Patent B2
US 9,578,347 · App. 15/050,625 · Granted Feb 21, 2017

Multi-bit information hiding using overlapping subsets

Inventors: Dake He (Waterloo, CA); Jing Wang (Waterloo, CA); Xiang Yu (Kitchener, CA)
Assignee: BlackBerry Limited
H04N19/44H04N19/463H04N19/467H04N19/48H04N19/91
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,578,347
App. No.
15/050,625
Granted
Feb 21, 2017
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. Sign bits are hidden in the parity of partially overlapping subsets of a set of coefficients. This enables the hiding of multiple sign bits per coefficient group. Other information bits may be hidden instead of sign bits in some cases.

Claims (53)

1. A method of decoding a bitstream of encoded video in a video decoder to reconstruct coefficients of a set, the set comprising a first nonempty subset of coefficients and a second nonempty subset of coefficients, the method comprising:

for each coefficient of the second subset, determining a respective absolute value of that coefficient;

determining a first sum of the respective absolute values of the coefficients of the second subset;

determining, for a first coefficient belonging to the first subset, a parity of the first coefficient based on the first sum;

if the determined parity is odd, then determining that a flag which indicates whether the absolute value of the first coefficient is greater than zero or equal to zero is not present in the bitstream and decoding a first flag which indicates whether the absolute value of the first coefficient is greater than one or equal to one; and

if the determined parity is even, then decoding a flag which indicates whether the absolute value of the first coefficient is greater than zero or equal to zero and if it is greater than zero, determining that a flag which indicates whether the absolute value of the first coefficient is greater than one or equal to one is not present in the bitstream and decoding a flag which indicates whether the absolute value of the first coefficient is greater than two or equal to two.

2. The method claimed in claim 1 , further comprising, if the first flag is decoded to be 1,

determining that a flag which indicates whether the absolute value of the first coefficient is greater than two or equal to two is not present in the bitstream; and

decoding remaining level information for the first coefficient, wherein the remaining level information specifies the absolute value of the first coefficient minus three.

3. The method claimed in claim 1 , further comprising decoding remaining level information, wherein the remaining level information comprises a difference between a decoded level and a scalar, divided by two.

4. The method claimed in claim 1 , wherein the set further comprises a third nonempty subset and the second and third subsets contain at least one coefficient in common and each contains at least one coefficient that is not in the other subset, the method further comprising:

for each coefficient of the third subset, determining a respective absolute value of that coefficient;

determining a second sum of the respective absolute values of coefficients of the third subset; and

determining, for a second coefficient different from the first coefficient belonging to the first subset, a parity of the second coefficient based on the second sum.

5. The method claimed in claim 1 , further comprising determining a sign bit of one of the coefficients of the set based on a second sum of absolute values of coefficients from the set.

6. The method claimed in claim 1 , wherein determining the parity of the first coefficient further comprises determining that parity hiding is enabled for the set of coefficients.

7. The method claimed in claim 6 , wherein determining that parity hiding is enabled comprises determining that the set of coefficients includes more than a threshold number of non-zero coefficients.

8. A decoder for decoding a bitstream of encoded video to reconstruct coefficients of a set, the set comprising a first nonempty subset of coefficients and a second nonempty subset of coefficients, the decoder comprising:

a processor;

a memory; and

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

for each coefficient of the second subset, determine a respective absolute value of that coefficient;

determine a first sum of the respective absolute values of the coefficients of the second subset;

determine, for a first coefficient belonging to the first subset, a parity of the first coefficient based on the first sum;

if the determined parity is odd, then determine that a flag which indicates whether the absolute value of the first coefficient is greater than zero or equal to zero is not present in the bitstream and decode a first flag which indicates whether the absolute value of the first coefficient is greater than one or equal to one; and

if the determined parity is even, then decode a flag which indicates whether the absolute value of the first coefficient is greater than zero or equal to zero and if it is greater than zero, determine that a flag which indicates whether the absolute value of the first coefficient is greater than one or equal to one is not present in the bitstream and decode a flag which indicates whether the absolute value of the first coefficient is greater than two or equal to two.

9. The decoder claimed in claim 8 , further comprising instructions that, when executed, cause the processor to, if the first flag is decoded to be 1,

determine that a flag which indicates whether the absolute value of the first coefficient is greater than two or equal to two is not present in the bitstream; and

decode remaining level information for the first coefficient, wherein the remaining level information specifies the absolute value of the first coefficient minus three.

10. The decoder claimed in claim 8 , further comprising instructions that, when executed, cause the processor to decode remaining level information, wherein the remaining level information comprises a difference between a decoded level and a scalar, divided by two.

11. The decoder claimed in claim 8 , wherein the set further comprises a third nonempty subset and the second and third subsets contain at least one coefficient in common and each contains at least one coefficient that is not in the other subset, the decoder further comprising instructions that, when executed, cause the processor to:

for each coefficient of the third subset, determine a respective absolute value of that coefficient;

determine a second sum of the respective absolute values of coefficients of the third subset;

determine, for a second coefficient different from the first coefficient belonging to the first subset, a parity of the second coefficient based on the second sum.

12. The decoder claimed in claim 8 , further comprising instructions that cause the processor to determine a sign bit of one of the coefficients of the set based on a second sum of absolute values of coefficients from the set.

13. The decoder claimed in claim 8 , wherein the instructions, when executed, cause the processor to determine that parity hiding is enabled for the set of coefficients.

14. The decoder claimed in claim 13 , wherein the instructions, when executed, cause the processor to determine that parity hiding is enabled by determining that the set of coefficients includes more than a threshold number of non-zero coefficients.

15. A non-transitory processor-readable medium storing processor-executable instructions for decoding a bitstream of encoded video in a video decoder to reconstruct coefficients of a set, the set comprising a first nonempty subset of coefficients and a second nonempty subset of coefficients, the instructions which, when executed, cause a processor to:

for each coefficient of the second subset, determine a respective absolute value of that coefficient;

determine a first sum of the respective absolute values of the coefficients of the second subset;

determine, for a first coefficient belonging to the first subset, a parity of the first coefficient based on the first sum;

if the determined parity is odd, then determine that a flag which indicates whether the absolute value of the first coefficient is greater than zero or equal to zero is not present in the bitstream and decode a first flag which indicates whether the absolute value of the first coefficient is greater than one or equal to one; and

if the determined parity is even, then decode a flag which indicates whether the absolute value of the first coefficient is greater than zero or equal to zero and if it is greater than zero, determine that a flag which indicates whether the absolute value of the first coefficient is greater than one or equal to one is not present in the bitstream and decode a flag which indicates whether the absolute value of the first coefficient is greater than two or equal to two.

16. The non-transitory processor-readable medium claimed in claim 15 , further comprising instructions which, when executed, cause the processor to, if the first flag is decoded to be 1,

determine that a flag which indicates whether the absolute value of the first coefficient is greater than two or equal to two is not present in the bitstream; and

decode remaining level information for the first coefficient, wherein the remaining level information specifies the absolute value of the first coefficient minus three.

17. The non-transitory processor-readable medium claimed in claim 15 , further comprising instructions which, when executed, cause the processor to decode remaining level information, wherein the remaining level information comprises a difference between a decoded level and a scalar, divided by two.

18. The non-transitory processor-readable medium claimed in claim 15 , wherein the set further comprises a third nonempty subset and the second and third subsets contain at least one coefficient in common and each contains at least one coefficient that is not in the other subset, further comprising instructions which, when executed, cause the processor to:

for each coefficient of the third subset, determine a respective absolute value of that coefficient;

determine a second sum of the respective absolute values of coefficients of the third subset;

determine, for a second coefficient different from the first coefficient belonging to the first subset, a parity of the second coefficient based on the second sum.

19. The non-transitory processor-readable medium claimed in claim 15 , wherein determining the parity of the first coefficient comprises determining that parity hiding is enabled for the set of coefficients.

20. The non-transitory processor-readable medium claimed in claim 15 , further comprising instructions which, when executed, cause the processor to determine a sign bit of one of the coefficients of the set based on a second sum of absolute values of coefficients from the set.

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 →
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 Feb 23, 2016
From: SLIPSTREAM DATA INC.
To: RESEARCH IN MOTION LIMITED
Reel/Frame 037796/0328 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2016
From: HE, DAKE; WANG, JING; YU, XIANG
To: SLIPSTREAM DATA INC.
Reel/Frame 037796/0243 →
Continuity (2)
Continuation 13524117 · Jun 15, 2012
Related Publication 20160173901A1 · Jun 16, 2016