IP Library Granted Patent US 9,906,802
Granted Patent B2
US 9,906,802 · App. 15/408,790 · Granted Feb 27, 2018

Multi-bit information hiding using overlapping subsets

Inventors: Dake He (Waterloo, CA); Jing Wang (Waterloo, CA); Xiang Yu (Kitchener, CA)
Assignee: BLACKBERRY LIMITED
H04N19/18H04N19/184H04N19/44H04N19/467H04N19/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,906,802
App. No.
15/408,790
Granted
Feb 27, 2018
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 (47)

1. A method of encoding video in a video encoder to output a bitstream of encoded data, the video encoder converting a block of video data to coefficients of a set, the set comprising a first nonempty subset of coefficients and a second nonempty subset of coefficients, the method comprising:

summing coefficients within the second subset to obtain a first sum;

determining whether a parity of a first coefficient belonging to the first subset is even or odd and determining whether a parity of the first sum corresponds to the parity of the first coefficient and, if not, adjusting the value of one of the coefficients in the second subset so as to match the parity of the first sum to the parity of the first coefficient;

if the parity of the first coefficient is even, then dividing a level of the first coefficient by two and entropy encoding the result; and

if the parity of the first coefficient is odd, then subtracting one from the level of the first coefficient and dividing the result by two to obtain a quotient, and entropy encoding the quotient.

2. The method claimed in claim 1 , wherein entropy encoding the result comprises encoding a significance flag which indicates whether an absolute value of the first coefficient is greater than zero or equal to zero and, if it is greater than zero, not encoding a greater-than-one flag which indicates whether the absolute value of the first coefficient is greater than one or equal to one and encoding a greater-than-two flag which indicates whether the absolute value of the first coefficient is greater than two or equal to two.

3. The method claimed in claim 1 , wherein entropy encoding the quotient comprises not encoding a significance flag which indicates whether an absolute value of the first coefficient is greater than zero or equal to zero and encoding a greater-than-one flag which indicates whether the absolute value of the first coefficient is greater than one or equal to one.

4. The method claimed in claim 3 , further comprising, if the parity of the first coefficient is odd and the first coefficient is greater than one, then

not encoding a greater-than-two flag which indicates whether the absolute value of the first coefficient is greater than two or equal to two; and

encoding remaining level information for the quotient.

5. The method claimed in claim 1 , further comprising determining whether a parity of a second sum of coefficients matches a parity of another of the coefficients in the first subset and, if not, then adjusting the value of one of the coefficients in the second sum other than said first coefficient or said another of the coefficients so as to ensure that the parity of the second sum matches the parity of the another of the coefficients.

6. The method claimed in claim 1 , further comprising first 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 minimum number of non-zero coefficients.

8. An encoder for encoding video to output a bitstream of encoded data, the video encoder converting a block of video data to coefficients of a set, the set comprising a first nonempty subset of coefficients and a second nonempty subset of coefficients, the encoder comprising:

a processor;

a memory; and

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

sum coefficients within the second subset to obtain a first sum;

determine whether a parity of a first coefficient belonging to the first subset is even or odd and determine whether a parity of the first sum corresponds to the parity of the first coefficient and, if not, adjust the value of one of the coefficients in the second subset so as to match the parity of the first sum to the parity of the first coefficient;

if the parity of the first coefficient is even, then divide a level of the first coefficient by two and entropy encode the result; and

if the parity of the first coefficient is odd, then subtract one from the level of the first coefficient and divide the result by two to obtain a quotient, and entropy encode the quotient.

9. The encoder claimed in claim 8 , wherein the instructions, when executed, cause the processor to entropy encode the result by encoding a significance flag which indicates whether an absolute value of the first coefficient is greater than zero or equal to zero and, if it is greater than zero, not encoding a greater-than-one flag which indicates whether the absolute value of the first coefficient is greater than one or equal to one and encoding a greater-than-two flag which indicates whether the absolute value of the first coefficient is greater than two or equal to two.

10. The encoder claimed in claim 8 , wherein the instructions, when executed, cause the processor to entropy encode the quotient by not encoding a significance flag which indicates whether an absolute value of the first coefficient is greater than zero or equal to zero and encoding a greater-than-one flag which indicates whether the absolute value of the first coefficient is greater than one or equal to one.

11. The encoder claimed in claim 10 , further comprising instructions that, when executed, cause the processor to, if the parity of the first coefficient is odd and the first coefficient is greater than one,

not encode a greater-than-two flag which indicates whether the absolute value of the first coefficient is greater than two or equal to two; and

encode remaining level information for the quotient.

12. The encoder claimed in claim 8 , further comprising instructions that cause the processor to determine whether a parity of a second sum of coefficients matches a parity of another of the coefficients in the first subset and, if not, then adjust the value of one of the coefficients in the second sum other than said first coefficient or said another of the coefficients so as to ensure that the parity of the second sum matches the parity of the another of the coefficients.

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

14. The encoder 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 minimum number of non-zero coefficients.

15. A non-transitory processor-readable medium storing processor-executable instructions for encoding video to output a bitstream of encoded data, the video encoder converting a block of video data to coefficients of a set, the set comprising a first nonempty subset of coefficients and a second nonempty subset of coefficients, wherein the instructions, when executed, cause a processor to:

sum coefficients within the second subset to obtain a first sum;

determine whether a parity of a first coefficient belonging to the first subset is even or odd and determine whether a parity of the first sum corresponds to the parity of the first coefficient and, if not, adjust the value of one of the coefficients in the second subset so as to match the parity of the first sum to the parity of the first coefficient;

if the parity of the first coefficient is even, then divide a level of the first coefficient by two and entropy encode the result; and

if the parity of the first coefficient is odd, then subtract one from the level of the first coefficient and divide the result by two to obtain a quotient, and entropy encode the quotient.

16. The non-transitory processor-readable medium claimed in claim 15 , further comprising instructions which, when executed, cause the processor to entropy encode the result by encoding a significance flag which indicates whether an absolute value of the first coefficient is greater than zero or equal to zero and, if it is greater than zero, not encoding a greater-than-one flag which indicates whether the absolute value of the first coefficient is greater than one or equal to one and encoding a greater-than-two flag which indicates whether the absolute value of the first coefficient is greater than two or equal to two.

17. The non-transitory processor-readable medium claimed in claim 15 , further comprising instructions which, when executed, cause the processor to entropy encode the quotient by not encoding a significance flag which indicates whether an absolute value of the first coefficient is greater than zero or equal to zero and encoding a greater-than-one flag which indicates whether the absolute value of the first coefficient is greater than one or equal to one.

18. The non-transitory processor-readable medium claimed in claim 15 , further comprising instructions which, when executed, cause the processor to, if the parity of the first coefficient is odd and the first coefficient is greater than one,

not encode a greater-than-two flag which indicates whether the absolute value of the first coefficient is greater than two or equal to two; and

encode remaining level information for the quotient.

19. The non-transitory processor-readable medium claimed in claim 15 , further comprising instructions that cause the processor to determine whether a parity of a second sum of coefficients matches a parity of another of the coefficients in the first subset and, if not, then adjust the value of one of the coefficients in the second sum other than said first coefficient or said another of the coefficients so as to ensure that the parity of the second sum matches the parity of the another of the coefficients.

20. The non-transitory processor-readable medium claimed in claim 15 , wherein the instructions, when executed, cause the processor to first determine that parity hiding is enabled for the set of coefficients.

21. 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 value of that coefficient;

summing the respective values of coefficients within the second subset to obtain a first sum;

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 the level of the first coefficient by decoding level information for the first coefficient, multiplying the decoded level information by two, and adding one; and

if the determined parity is even, then determining the level of the first coefficient by decoding level information for the first coefficient and multiplying the decoded level information by two.

Assignments (10)
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 8, 2017
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 041913/0140 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2017
From: SLIPSTREAM DATA INC.
To: RESEARCH IN MOTION LIMITED
Reel/Frame 041391/0877 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2017
From: SLIPSTREAM DATA INC.
To: RESEARCH IN MOTION LIMITED
Reel/Frame 041391/0804 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2017
From: HE, DAKE; WANG, JING; YU, XIANG
To: SLIPSTREAM DATA INC.
Reel/Frame 041006/0673 →
Continuity (3)
Continuation 15050625 · Feb 23, 2016
Continuation 13524117 · Jun 15, 2012
Related Publication 20170127066A1 · May 4, 2017