IP Library Granted Patent US 9,900,597
Granted Patent B2
US 9,900,597 · App. 14/621,552 · Granted Feb 20, 2018

Multi-level significance maps for encoding and decoding

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,900,597
App. No.
14/621,552
Granted
Feb 20, 2018
Kind
B2
Abstract

Methods of encoding and decoding for video data are described in which multi-level significance maps are used in the encoding and decoding processes. The significant-coefficient flags that form the significance map are grouped into contiguous groups, and a significant-coefficient-group flag signifies for each group whether that group contains no non-zero significant-coefficient flags. If there are no non-zero significant-coefficient flags in the group, then the significant-coefficient-group flag is set to zero. The set of significant-coefficient-group flags is encoded in the bitstream. Any significant-coefficient flags that fall within a group that has a significant-coefficient-group flag that is non-zero are encoded in the bitstream, whereas significant-coefficient flags that fall within a group that has a significant-coefficient-group flag that is zero are not encoded in the bitstream.

Claims (28)

1. A method for use in a decoder of a bitstream of encoded data for determining a value of a significant-coefficient flag corresponding to a transform coefficient of a block among one or more non-overlapping blocks within a transform unit, the significant-coefficient flag being a member of a group of significant-coefficient flags corresponding to the block, the block corresponding to a significant-coefficient-group flag indicating whether there is a non-zero significant coefficient in the group, the method comprising:

decoding the value of the significant-coefficient-group flag from the bitstream by determining a context for the significant-coefficient-group flag based on values of significant-coefficient-group flags corresponding to two blocks which are, respectively, adjacent to the right and below the block, and wherein the context is determined to be a first context when the values of significant-coefficient-group flags of the two blocks are both zero and the context is determined to be a second context otherwise; and

upon determining that the decoded value of the significant-coefficient-group flag is one, determining the value of the significant-coefficient flag:

to be one when all of the other significant-coefficient flags of the group have been previously determined to have a value of zero, and

otherwise by decoding the value from the bitstream.

2. The method of claim 1 further comprising determining that the value of the significant-coefficient-group flag is to be decoded from the bitstream based on one or more of (1) the block not being first or last in a block decoding order of blocks of the transform unit, or (2) at least one of the significant-coefficient-group flags of the two blocks having a value of zero.

3. The method of claim 1 , wherein the block is not square.

4. The method of claim 1 , wherein the block is square.

5. The method of claim 4 , wherein the block is 4×4.

6. The method of claim 1 , wherein the transform unit size is one of 8×8, 16×16, 32×32, or 64×64.

7. A decoder for decoding a bit stream of encoded data for determining a value of a significant-coefficient flag corresponding to a transform coefficient of a block among one or more non-overlapping blocks within a transform unit, the significant-coefficient flag being a member of a group of significant- coefficient flags corresponding to the block, the block corresponding to a significant-coefficient-group flag indicating whether there is a non-zero significant coefficient in the group, the decoder comprising:

a processor;

a memory; and

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

decode the value of the significant-coefficient-group flag from the bitstream by determining a context for the significant-coefficient-group flag based on values of significant-coefficient-group flags corresponding to two blocks which are, respectively, adjacent to the right and below the block, and wherein the context is determined to be a first context when the values of significant-coefficient-group flags of the two blocks are both zero and the context is determined to be a second context otherwise, and

upon determining that the decoded value of the significant-coefficient-group flag is one, determine the value of the significant-coefficient flag:

to be one when all of the other significant-coefficient flags of the group have been previously determined to have a value of zero, and

otherwise by decoding the value from the bitstream.

8. The decoder of claim 7 wherein the instructions, when executed, further cause the processor to determine that the value of the significant-coefficient-group flag is to be decoded from the bitstream based on one or more of (1) the block not being first or last in a block decoding order of blocks of the transform unit, or (2) at least one of the significant-coefficient-group flags of the two blocks having a value of zero.

9. The decoder of claim 7 , wherein the block is not square.

10. The decoder of claim 7 , wherein the block is square.

11. The decoder of claim 10 , wherein the block is 4×4.

12. The decoder of claim 7 , wherein the transform unit size is one of 8×8, 16×16, 32×32, or 64×64.

13. A non-transitory processor-readable medium storing processor-executable instructions which, when executed, configures one or more processors to decode a bitstream of encoded data by determining a value of a significant-coefficient flag corresponding to a transform coefficient of a block among one or more non-overlapping blocks within a transform unit, the significant-coefficient flag being a member of a group of significant-coefficient flags corresponding to the block, the block corresponding to a significant-coefficient-group flag indicating whether there is a non-zero significant coefficient in the group, wherein the instructions comprise:

instructions to decode the value of the significant-coefficient-group flag from the bitstream by determining a context for the significant-coefficient-group flag based on values of significant-coefficient-group flags corresponding to two blocks which are, respectively, adjacent to the right and below the block, and wherein the context is determined to be a first context when the values of significant-coefficient-group flags of the two blocks are both zero and the context is determined to be a second context otherwise; and

instructions to, upon determining that the decoded value of the significant-coefficient-group flag is one, determine the value of the significant-coefficient flag:

to be one when all of the other significant-coefficient flags of the group have been previously determined to have a value of zero, and

otherwise by decoding the value from the bitstream.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 16, 2018
From: BLACKBERRY LIMITED
To: VELOS MEDIA, LLC
Reel/Frame 047525/0606 →
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 13, 2015
From: NGUYEN, NGUYEN; HE, DAKE
To: SLIPSTREAM DATA INC.
Reel/Frame 034957/0059 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2015
From: JI, TIANYING
To: RESEARCH IN MOTION LIMITED
Reel/Frame 034957/0096 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2015
From: SLIPSTREAM DATA INC.
To: RESEARCH IN MOTION LIMITED
Reel/Frame 034957/0128 →