IP Library › Granted Patent US 12,341,962
Granted Patent B2
US 12,341,962 · App. 17/888,377 · Granted Jun 24, 2025

Multi-level significance maps for encoding and decoding

Inventors: Nguyen Nguyen (Seattle, WA); Tianying Ji (Albany, CA); Dake He (Waterloo, CA)
Assignee: Velos Media, LLC
H04N19/122H04N19/132H04N19/136H04N19/157H04N19/18H04N19/196H04N19/61H04N19/70H04N19/91H04N19/13H04N19/159H04N19/172
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 12,341,962
App. No.
17/888,377
Granted
Jun 24, 2025
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 (61)

1. A method of encoding, comprising:

determining a value of one or more significant-coefficient flags each corresponding to a transform coefficient of a block among one or more non-overlapping blocks within a transform unit,

wherein the one or more significant-coefficient flags are members of a group of significant-coefficient flags corresponding to the block, and wherein a significant-coefficient group flag corresponds to the group of significant-coefficient flags, and

wherein a value of the significant-coefficient group flag indicates whether or not there is a non-zero significant-coefficient flag in the group of significant-coefficient flags;

when the group of significant-coefficient flags does not contain one of a significant-coefficient flag corresponding to a DC coefficient in the transform unit or a significant-coefficient flag corresponding to a last non-zero coefficient in the transform unit:

determining the value of the significant-coefficient group flag based on whether there is the non-zero significant-coefficient flag in the group of significant-coefficient flags, and

encoding, into a bitstream, the determined value of the significant-coefficient group flag;

when the group of significant-coefficient flags contains a significant-coefficient flag corresponding to a DC coefficient in the transform unit or a last non-zero coefficient in the transform unit, skipping encoding of the value of the significant-coefficient group flag into the bitstream; and

when the determined value for the significant-coefficient group flag is one:

determining that a significant-coefficient flag is at position (0,0) in the group of significant-coefficient flags and that all other significant-coefficient flags of the group of significant-coefficient flags have a value of zero; and

in response to the determining, skipping encoding a value of the significant-coefficient flag into the bitstream.

2. The method of claim 1 , further comprising:

when a significant-coefficient flag is not at position (0,0) in the group of significant-coefficient flags:

encoding a value of the significant-coefficient flag into the bitstream.

3. The method of claim 1 , further comprising:

when the determined value for the significant-coefficient group flag is one:

determining that a significant-coefficient flag is not at position (0,0) in the group of significant-coefficient flags; and

in response to the determining, encoding a value of the significant-coefficient flag into the bitstream.

4. The method of claim 1 , further comprising:

when the determined value for the significant-coefficient group flag is one, skipping encoding a value of a last significant-coefficient flag of the group of significant-coefficient flags into the bitstream.

5. The method of claim 4 , further comprising:

encoding a value of a significant-coefficient flag of the one or more significant-coefficient flags into the bitstream.

6. An encoding apparatus, comprising:

at least one processor configured to:

determine a value of one or more significant-coefficient flags each corresponding to a transform coefficient of a block among one or more non-overlapping blocks within a transform unit,

wherein the one or more significant-coefficient flags are members of a group of significant-coefficient flags corresponding to the block, and wherein a significant-coefficient group flag corresponds to the group of significant-coefficient flags, and

wherein a value of the significant-coefficient group flag indicates whether or not there is a non-zero significant-coefficient flag in the group of significant-coefficient flags;

when the group of significant-coefficient flags does not contain one of a significant-coefficient flag corresponding to a DC coefficient in the transform unit or a significant-coefficient flag corresponding to a last non-zero coefficient in the transform unit:

determine the value of the significant-coefficient group flag based on whether there is the non-zero significant-coefficient flag in the group of significant-coefficient flags, and

encode, into a bitstream, the determined value of the significant-coefficient group flag;

when the group of significant-coefficient flags contains a significant-coefficient flag corresponding to a DC coefficient in the transform unit or a last non-zero coefficient in the transform unit, skip encoding of the value of the significant-coefficient group flag into the bitstream;

when the determined value for the significant-coefficient group flag is one:

determine that a significant-coefficient flag is at position (0,0) in the group of significant-coefficient flags and that all other significant-coefficient flags of the group of significant-coefficient flags have a value of zero; and

in response to the determining, skip encoding a value of the significant-coefficient flag into the bitstream.

7. The encoding apparatus of claim 6 , wherein the at least one processor is further configured to:

when a significant-coefficient flag is not at position (0,0) in the group of significant-coefficient flags:

encode a value of the significant-coefficient flag into the bitstream.

8. The encoding apparatus of claim 6 , wherein the at least one processor is further configured to:

when the determined value for the significant-coefficient group flag is one:

determine that a significant-coefficient flag is not at position (0,0) in the group of significant-coefficient flags; and

in response to the determining, encode a value of the significant-coefficient flag into the bitstream.

9. The encoding apparatus of claim 6 , wherein the at least one processor is further configured to:

when the determined value for the significant-coefficient group flag is one, skip encoding a value of a last significant-coefficient flag of the group of significant-coefficient flags into the bitstream.

10. The encoding apparatus of claim 9 , wherein the at least one processor is further configured to:

encode a value of a significant-coefficient flag of the one or more significant-coefficient flags into the bitstream.

11. A non-transitory processor-readable medium storing processor-executable instructions, which, when executed by at least one processor cause the at least one processor to:

determine a value of one or more significant-coefficient flags each corresponding to a transform coefficient of a block among one or more non-overlapping blocks within a transform unit,

wherein the one or more significant-coefficient flags are members of a group of significant-coefficient flags corresponding to the block, and wherein a significant-coefficient group flag corresponds to the group of significant-coefficient flags, and

wherein a value of the significant-coefficient group flag indicates whether or not there is a non-zero significant-coefficient flag in the group of significant-coefficient flags;

when the group of significant-coefficient flags does not contain one of a significant-coefficient flag corresponding to a DC coefficient in the transform unit or a significant-coefficient flag corresponding to a last non-zero coefficient in the transform unit:

determine the value of the significant-coefficient group flag based on whether there is the non-zero significant-coefficient flag in the group of significant-coefficient flags, and

encode, into a bitstream, the determined value of the significant-coefficient group flag;

when the group of significant-coefficient flags contains a significant-coefficient flag corresponding to a DC coefficient in the transform unit or a last non-zero coefficient in the transform unit, skip encoding of the value of the significant-coefficient group flag into the bitstream;

when the determined value for the significant-coefficient group flag is one, a significant-coefficient flag is at position (0,0) in the group of significant-coefficient flags, and all other significant-coefficient flags of the group of significant-coefficient flags have a value of zero:

skip encoding a value of the significant-coefficient flag into the bitstream; and

when a significant-coefficient flag is not at position (0,0) in the group of significant-coefficient flags:

encode a value of the significant-coefficient flag into the bitstream.

12. The non-transitory processor-readable medium of claim 11 , wherein the instructions, when executed by the at least one processor, further cause the at least one processor to:

when the determined value for the significant-coefficient group flag is one, skip encoding a value of a last significant-coefficient flag of the group of significant-coefficient flags into the bitstream.

13. The non-transitory processor-readable medium of claim 12 , wherein the instructions, when executed by the at least one processor, further cause the at least one processor to:

encode a value of a significant-coefficient flag of the one or more significant-coefficient flags into the bitstream.

Continuity (7)
Continuation 17164766 · Feb 1, 2021
Continuation 16865272 · May 1, 2020
Continuation 16226870 · Dec 20, 2018
Continuation 15884535 · Jan 31, 2018
Continuation 14621552 · Feb 13, 2015
Continuation 13286336 · Nov 1, 2011
Related Publication 20220394260A1 · Dec 8, 2022
References Cited (51)
US 8964849B2 · Nguyen et al. · 2015 [cited by applicant]
US 10116950B2 · He et al. · 2018 [cited by applicant]
US 10659782B2 · Nguyen et al. · 2020 [cited by applicant]
US 10681362B2 · He et al. · 2020 [cited by applicant]
US 20070041450A1 · Kim et al. · 2007 [cited by applicant]
US 20070071331A1 · Liu · 2007 [cited by applicant]
US 20070110153A1 · Cho et al. · 2007 [cited by applicant]
US 20070160133A1 · Bao et al. · 2007 [cited by applicant]
US 20080219578A1 · Lee · 2008 [cited by applicant]
US 20090175332A1 · Karczewicz et al. · 2009 [cited by applicant]
US 20100086030A1 · Chen · 2010 [cited by examiner]
US 20100189180A1 · Narroschke et al. · 2010 [cited by applicant]
US 20110009683A1 · Lebedev et al. · 2011 [cited by applicant]
US 20110096834A1 · Cheon · 2011 [cited by examiner]
US 20110200110A1 · Chen et al. · 2011 [cited by applicant]
US 20110249721A1 · Karczewicz et al. · 2011 [cited by applicant]
US 20120082233A1 · Sze et al. · 2012 [cited by applicant]
US 20130016771A1 · Misra et al. · 2013 [cited by applicant]
US 20130083855A1 · Kottke · 2013 [cited by applicant]
EP 2154894A1 · 2010 [cited by applicant]
JP 02239776 · 1990 [cited by applicant]
JP 2004064725A · 2004 [cited by applicant]
WO 2008108534A1 · 2008 [cited by applicant]
WO 2010018138A1 · 2010 [cited by applicant]
WO 2011128303A3 · 2012 [cited by applicant]
Australian Patent Office, AU Office Action relating to Application No. 2012244144, dated Oct. 30, 2013. [cited by applicant]
Blackberry Limited's and Blackberry Corporation's Compliant for Patent Infringement, Demand for Jury Trial, filed Jul. 27, 2016. [cited by applicant]
Bross, B., et al., WD4: Working Draft 4 of High-Efficiency Video Coding, 6 JCT-VC Meeting; 97 MPEG Meeting; Jul. 14, 2011-Jul. 22, 2011; Torino; (Joint Collaborative Team on Video Coding of ISO/IEC JTC1/SC29/WG11 and IT… [cited by applicant]
EPO, EP Office Action relating to EP Application No. 14200316.9 dated May 30, 2018. [cited by applicant]
EPO, European Office Action relating to Application No. 11187410.3, dated May 2, 2013. [cited by applicant]
EPO, Extended European Search Report relating to application No. 11187410.3 dated Jun. 19, 2012. [cited by applicant]
EPO, Extended European Search Report relating to Application No. 14200316.9, dated Apr. 16, 2015. [cited by applicant]
EPO, Partial Search Report relating to application No. 11187410.3 dated Feb. 15, 2012. [cited by applicant]
European Search Report received in European Application No. 19152375.2, dated May 16, 2019, 14 pages. [cited by applicant]
Extended European Search Report relating to Application No. 12164134.4, dated Feb. 15, 2013. [cited by applicant]
F. Bossen, “Common Test Conditions and Software References Configurations”, JCTVC-F900, JCT-VC of ITU-T SC16 WP3 and ISO/IEC JTC1/SC29/WG11, 6th Meeting, Torino, Jul. 2011. [cited by applicant]
Iain E. Richardson, “The H.264 Advanced Video Compression Standard, 2nd Edition, Chapter 3, Video Coding Concepts”, Apr. 20, 2010, XP2126854A. [cited by applicant]
Intellectual Property India, Examination Report relating to application No. 4376/CHE/2012, dated Jan. 17, 2018. [cited by applicant]
JPO, Japanese Office Action relating to JP application No. 2012-239852 dated Sep. 30, 2013. [cited by applicant]
KIPO, KR Office Action relating to KR application No. 10-2012-0122364 dated Nov. 1, 2013. [cited by applicant]
Marpe D et al.; “Context-based adaptive binary arithmetic coding in the H.264/AVC video compression standard”, IEEE Transactions on Circuits and Systems for Video Technology, IEEE Service Center, Piscataway, NJ, US, vol… [cited by applicant]
Nguyen et al.; “Multi-Level significance maps for Large Transform Units”, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, No. JCTVC-G644, Nov. 9, 2011, XPO55016838. [cited by applicant]
Office Action received in Chinese Application No. 201610335065.0, dated Jan. 31, 2019, 9 pages. [cited by applicant]
Pennebaker, et al., JPEG Still Image Data Compression Standard, Jan. 1, 1992, XP2126854A. [cited by applicant]
Richardson, Iain E.G., H264/MPEG-4 Part 10 White Paper—Prediction of Intra Macroblocks, XP002281494, www.vcodex.com, dated Apr. 30, 2003, 6 pages. [cited by applicant]
SIPO, CN Office Action relating to CN Application No. 201610335062.0, dated Jun. 1, 2018. [cited by applicant]
SIPO, CN Office Action relating to CN Application No. 201610335065.0, dated Jun. 1, 2018. [cited by applicant]
T. Nguyen, T. Winken, D. Marpe, et al., “Reduced-Complexity Entropy Coding of Transform Coefficient Levels Using a Combination of VLC and PIPE”, May 9, 2014. [cited by applicant]
United States District Court, Northern District of Texas, Dallas Division, Case 3:16-cv-02185-G Document 1 Filed Jul. 27, 2016 p. 1 of 115. [cited by applicant]
USPTO letter dated Aug. 18, 2016. [cited by applicant]
W.J. Han, J-R Ohm, G.J. Sullivan, and T. Wiegand, “WD4:Working Draft of High-Efficiency Video Coding,” JCT-VC of ITU-TSG16WP3 and ISO/IEC JTC1/SC29/WG11, 6th Meeting, Torino, Jul. 2011. [cited by applicant]