IP Library › Granted Patent US 12,273,565
Granted Patent B2
US 12,273,565 · App. 17/635,133 · Granted Apr 8, 2025

Apparatus, a method and a computer program for video coding and decoding

Inventor: Jani Lainema (Tampere, FI)
H04N19/70H04N19/12H04N19/176H04N19/18H04N19/184H04N19/60
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,273,565
App. No.
17/635,133
Granted
Apr 8, 2025
Kind
B2
Abstract

There is disclosed a method comprising obtaining a block of transform coefficients; searching a position of a last non-zero coefficient in a scan order in the block; selecting a secondary transform mode based on the position and encoding first syntax elements indicative of the selected secondary transform mode. A primary transform mode is selected based on the secondary transform mode. Second syntax elements indicative of the selected primary transform mode and third syntax elements defining the transform coefficients within the block are encoded. There is also disclosed a method comprising receiving encoded information related to a block of transform coefficients; decoding an indication of a position of a last non-zero coefficient in a scan order in the block and using the position to determine if an indication of a secondary transform mode is present in the bit stream. If so, first syntax elements indicative of the secondary transform mode are decoded and used to determine if an indication of a primary transform mode is present in the bit stream. If so, second syntax elements indicative of the primary transform mode are decoded. The transform coefficients are decoded and the determined transform modes are applied to select transforms and the transforms, if any, are applied to the transform coefficients.

Claims (75)

1. An apparatus comprising at least one processor and at least one memory, said at least one memory having code thereon, which when executed by said at least one processor, causes the apparatus to perform at least:

obtain a block of transform coefficients;

search a position of a last non-zero coefficient in a scan order in the block of transform coefficients;

select a secondary transform mode based on the position of the last non-zero coefficient, wherein the secondary transform mode corresponds to a secondary transform;

encode first syntax elements indicative of the selected secondary transform mode;

select a primary transform mode based on the selected secondary transform mode, wherein a primary transform corresponds to the primary transform mode;

encode second syntax elements indicative of the selected primary transform mode;

encode third syntax elements defining the transform coefficients within the block; and

sending the first, second, and third syntax elements as part of a bit stream, wherein indication of the primary transform mode is in the bit stream when the secondary transform mode is zero and indication of the primary transform mode is not in the bit stream when the secondary transform mode is non-zero, wherein the primary transform is implemented as a discrete cosine transform (DCT) when the secondary transform is used, and when the secondary transform mode is non-zero, a low-frequency non-separable transform is used as the secondary transform coupled with the DCT being used as the primary transform.

2. The apparatus according to claim 1 , wherein said at least one memory has code thereon, which when executed by said at least one processor, causes the apparatus to perform:

encode the first syntax elements indicative of the secondary transform mode based on the position of the last non-zero coefficient being within a certain range in the scan order in the block.

3. The apparatus according to claim 1 , wherein the said at least one memory has code thereon, which when executed by said at least one processor, causes the apparatus to select the primary or secondary transform mode at least by performing the following:

test different transform modes;

evaluate cost functions for the tested different transform modes to select a cost function; and

select one of the different transform modes which minimizes the selected cost function.

4. The apparatus according to claim 1 , wherein said at least one memory has code thereon, which when executed by said at least one processor, causes the apparatus to perform:

omit signaling of some or all syntax elements relating to the primary transform mode based on a non-zero secondary transform mode being included in a bitstream.

5. The apparatus according to claim 1 , wherein said at least one memory has code thereon, which when executed by said at least one processor, causes the apparatus to perform:

signal a transform skip mode based on both primary and secondary transforms being by-passed before signaling position of a last non-zero coefficient in the block of transform coefficients.

6. The apparatus according to claim 1 , wherein said at least one memory has code thereon, which when executed by said at least one processor, causes the apparatus to perform:

signal the position of the last non-zero coefficient; and

signal the first syntax elements indicative of the selected secondary transform mode after signaling the position of the last non-zero coefficient.

7. The apparatus according to claim 1 , wherein said at least one memory has code thereon, which when executed by said at least one processor, causes the apparatus to perform:

signal the secondary transform to be off for the block of transform coefficients; and

signal the second syntax elements indicative of the selected primary transform mode after signaling the first syntax elements indicative of the selected secondary transform mode.

8. The apparatus according to claim 1 , wherein said at least one memory has code thereon, which when executed by said at least one processor, causes the apparatus to perform:

signal syntax elements defining the transform coefficients of the block of transform coefficients after signaling the second syntax elements indicative of the selected primary transform mode.

9. A method comprising obtaining a block of transform coefficients;

searching a position of a last non-zero coefficient in a scan order in the block of transform coefficients;

selecting a secondary transform mode based on the position of the last non-zero coefficient, wherein the secondary transform mode corresponds to a secondary transform, and encoding first syntax elements indicative of the selected secondary transform mode;

selecting the primary transform mode based on the selected secondary transform mode, wherein a primary transform corresponds to the primary transform mode;

encoding second syntax elements indicative of the selected primary transform mode;

encoding third syntax elements defining the transform coefficients within the block; and

sending the first, second, and third syntax elements as part of a bit stream, wherein indication of the primary transform mode is in the bit stream when the secondary transform mode is zero and indication of the primary transform mode is not in the bit stream when the secondary transform mode is non-zero, wherein the primary transform is implemented as a discrete cosine transform (DCT) when the secondary transform is used, and when the secondary transform mode is non-zero, a low-frequency non-separable transform is used as the secondary transform coupled with the DCT being used as the primary transform.

10. The method according to claim 9 further comprising:

encoding the first syntax elements indicative of the secondary transform mode if the position of the last non-zero coefficient is within a certain range in the scan order in the block.

11. The method according to claim 9 further comprising:

omitting signaling of some or all syntax elements relating to the primary transform mode based on a non-zero secondary transform mode being included in a bitstream.

12. The method according to claim 9 further comprising:

signaling a transform skip mode based on both primary and secondary transforms being by-passed before signaling a position of a last non-zero coefficient in the block of transform coefficients.

13. The method according to claim 9 further comprising:

signaling the position of the last non-zero coefficient; and

signaling the first syntax elements indicative of the selected secondary transform mode after signaling the position of the last non-zero coefficient.

14. An apparatus comprising:

at least one processor and at least one memory, said at least one memory having code thereon, which when executed by said at least one processor, causes the apparatus to perform at least:

receive a bit stream comprising encoded information related to a block of transform coefficients;

decode from the bit stream an indication of a position of a last non-zero coefficient in a scan order in the block of transform coefficients;

use the position of the last non-zero coefficient to determine when an indication of a secondary transform mode is present in the bit stream;

determine an indication of a secondary transform mode is present in the bit stream, and determine the secondary transform mode by decoding first syntax elements indicative of the secondary transform mode;

use the determined secondary transform mode to determine when an indication of a primary transform mode is present in the bit stream, wherein indication of the primary transform mode is in the bit stream when the secondary transform mode is zero and indication of the primary transform mode is not in the bit stream when the secondary transform mode is non-zero;

determine the primary transform mode by decoding second syntax elements indicative of the primary transform mode when the indication of the primary transform mode is in the bit stream;

decode the transform coefficients;

apply the determined primary and secondary transform modes to select corresponding primary and secondary transforms, wherein the primary transform is based on the secondary transform; and

apply the determined primary and secondary transforms to the transform coefficients, wherein indication of the primary transform mode is in the bit stream when the secondary transform mode is zero and indication of the primary transform mode is not in the bit stream when the secondary transform mode is non-zero, the secondary transform is implemented as a low-frequency non-separable transform, and the primary transform is implemented as a discrete cosine transform (DCT) when the secondary transform mode is non-zero.

15. The apparatus according to claim 14 , said at least one memory has code thereon, which when executed by said at least one processor, causes the apparatus to:

omit decoding coefficient areas that are not applicable for the determined primary transform or a determined primary-secondary transform pair.

16. The apparatus according to claim 14 , said at least one memory has code thereon, which when executed by said at least one processor, causes the apparatus to:

apply at least one of the primary transform and the secondary transform to one or more transform blocks following the transform block which included indication indicative of the at least one of the primary transform mode and the secondary transform mode.

17. The apparatus according to claim 14 , said at least one memory has code thereon, which when executed by said at least one processor, causes the apparatus to:

decode from the bit stream the indication of the primary transform mode based on a predetermined condition being fulfilled.

18. The apparatus according to claim 17 , wherein said predetermined condition includes one of:

a minimum dimension of the block of transform coefficients; or

a maximum dimension of the block of transform coefficients.

19. A method comprising:

receiving a bit stream comprising encoded information related to a block of transform coefficients;

decoding from the bit stream an indication of a position of a last non-zero coefficient in a scan order in the block of transform coefficients;

using the position of the last non-zero coefficient to determine when an indication of a secondary transform mode is present in the bit stream;

determining an indication of a secondary transform mode is present in the bit stream, and determining the secondary transform mode by decoding first syntax elements indicative of the secondary transform mode;

using the determined secondary transform mode to determine when an indication of a primary transform mode is present in the bit stream, wherein indication of the primary transform mode is in the bit stream when the secondary transform mode is zero and indication of the primary transform mode is not in the bit stream when the secondary transform mode is non-zero;

determining the primary transform mode by decoding second syntax elements indicative of the primary transform mode, when the indication of the primary transform mode is present in the bit stream;

decoding the transform coefficients;

applying the determined primary and secondary transform modes to select corresponding primary and secondary transforms, wherein the primary transform is based on the secondary transform; and

apply the determined primary and secondary transforms to the transform coefficients, wherein indication of the primary transform mode is in the bit stream when the secondary transform mode is zero and indication of the primary transform mode is not in the bit stream when the secondary transform mode is non-zero, wherein the secondary transform is implemented as a low-frequency non-separable transform. and the primary transform is implemented as a discrete cosine transform (DCT) when the secondary transform mode is non-zero.

20. The method according to claim 19 , comprising:

omitting decoding coefficient areas that are not applicable for the determined primary transform or a determined primary-secondary transform pair.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2022
From: LAINEMA, JANI
To: NOKIA TECHNOLOGIES OY
Reel/Frame 059000/0393 →
Continuity (2)
Provisional Application 62903116 · Sep 20, 2019
Related Publication 20220295104A1 · Sep 15, 2022
References Cited (46)
US 20080170613A1 · Tian et al. · 2008 [cited by applicant]
US 20180103252A1 · Hsieh et al. · 2018 [cited by applicant]
US 20190007682A1 · Kanoh et al. · 2019 [cited by applicant]
US 20190104322A1 · Tsukuba · 2019 [cited by applicant]
US 20210076070A1 · Jung · 2021 [cited by examiner]
US 20210392327A1 · Zhang · 2021 [cited by examiner]
US 20220159300A1 · Chiang · 2022 [cited by examiner]
US 20220182675A1 · Zhang · 2022 [cited by examiner]
US 20230038161A1 · Zhang · 2023 [cited by examiner]
CN 1145553A · 1997 [cited by applicant]
CN 1764278A · 2006 [cited by applicant]
CN 106031177A · 2016 [cited by applicant]
CN 107918360A · 2018 [cited by applicant]
CN 108141596A · 2018 [cited by applicant]
RU 2682838C1 · 2019 [cited by applicant]
WO 2017192705A1 · 2017 [cited by applicant]
WO 2018123644A1 · 2018 [cited by applicant]
WO 2018165397A1 · 2018 [cited by applicant]
WO WO2018231488A1 · 2018 [cited by applicant]
Chiang et al., “CE6-related: Constraint and simplification for LFNST signalling”, Joint Video Experts Team (JVET) of ItuTU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-00291-v2, 15th Meeting, Jul. 3-12, 2019, pp. 1-… [cited by applicant]
Chiang et al., “CE6-related: Latency reduction for LFNST signalling”, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-00293-v2, 15th Meeting, Jul. 3-12, 2019, pp. 1-7. [cited by applicant]
Bross et al., “Versatile Video Coding (Draft 6)”, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-O2001-vE, 15th Meeting, Jul. 3-12, 2019, 455 pages. [cited by applicant]
Bross et al., “Versatile Video Coding (Draft 5)”, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-N1001-v10, 14th Meeting, Mar. 19-27, 2019, 406 pages. [cited by applicant]
Office action received for corresponding Canadian Patent Application No. 3151584, dated Apr. 12, 2023, 3 pages. [cited by applicant]
Chen et al., “Algorithm Description of Joint Exploration Test Model 7 (JEM 7)”, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-G1001-v1, 7th Meeting, Jul. 13-21, 2017, 50 pag… [cited by applicant]
“IEEE 802.11”, Wikipedia, Retrieved on Feb. 13, 2022, Webpage available at : https://en.wikipedia.org/wiki/IEEE_802.11. [cited by applicant]
“Information Technology—Generic Coding of Moving Pictures and Associated Audio Information: Systems”, Series H: Audiovisual and Multimedia Systems, Infrastructure of Audiovisual Services—Transmission Multiplexing and Sy… [cited by applicant]
“Information Technology—Coding Of Audio-Visual Objects—Part 12: ISO Base Media File Format”, ISO/IEC 14496-12, Fifth edition, Dec. 15, 2015, 248 pages. [cited by applicant]
“Information Technology—Coding Of Audio-Visual Objects—Part 15: Advanced Video Coding (AVC) File Format”, ISO/IEC 14496-15, First edition, Apr. 15, 2004, 29 pages. [cited by applicant]
“Video Coding For Low Bit Rate Communication”, Series H: Audiovisual And Multimedia Systems, Infrastructure of audiovisual services—Coding of moving Video, ITU-T Recommendation H.263, Jan. 2005, 226 pages. [cited by applicant]
“Advanced Video Coding For Generic Audiovisual services”, Series H: Audiovisual And Multimedia Systems, Infrastructure of audiovisual services—Coding of moving Video, Recommendation ITU-T H.264, Apr. 2017, 812 pages. [cited by applicant]
“High Efficiency Video Coding”, Series H: Audiovisual And Multimedia Systems, Infrastructure of audiovisual services—Coding of moving video, Recommendation ITU-T H.265, Feb. 2018, 692 pages. [cited by applicant]
“Versatile Video Coding”, Series H: Audiovisual and Multimedia Systems Infrastructure of audiovisual services—Coding of moving video, Recommendation ITU-T H.266, Aug. 2020, 516 pages. [cited by applicant]
“Parameter Values for Ultra-High Definition Television Systems for Production And International Programme Exchange”, Recommendation ITU-R BT.2020, Aug. 2012, 7 pages. [cited by applicant]
“Parameter Values for the HDTV Standards for Production and International Programme Exchange”, Recommendation ITU-R BT.709-6, Jun. 2015, 19 pages. [cited by applicant]
International Search Report and Written Opinion received for corresponding Patent Cooperation Treaty Application No. PCT/EP2020/075191, dated Oct. 12, 2020, 14 pages. [cited by applicant]
Jung et al., “Non-CE6: Simplified LFNST signalling”, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-00458-v1, 15th Meeting, Jul. 3-12, 2019, 4 pages. [cited by applicant]
Lainema, “CE6-related: Simplified LFNST”, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-00349, 15th Meeting, Jul. 3-12, 2019, 5 pages. [cited by applicant]
Koo et al., “CE6: Reduced Secondary Transform (RST) (CE6-3.1)”, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-N0193, 14th Meeting, Mar. 19-27, 2019, pp. 1-16. [cited by applicant]
Lainema, “CE6-related: Latency reduction for LFNST signalling”, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-P0196-v3, 16th Meeting, Oct. 1-11, 2019, 4 pages. [cited by applicant]
Office action received for corresponding Indian Patent Application No. 202247021526, dated Aug. 8, 2022, 6 pages. [cited by applicant]
Office action received for corresponding Vietnamese Patent Application No. 1-2022-01598, dated Jun. 2, 2022, 1 page of office action and 1 page of translation available. [cited by applicant]
Office action received for corresponding Russian Patent Application No. 2022106711, dated Dec. 1, 2022, 5 pages of office action and no page of translation available. [cited by applicant]
Koo, Moonmo et al., “Non-CE6 : LFNST simplification based on the methods proposed in CE6-2.1a”, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-00209, Jul. 2019, 15 pages. [cited by applicant]
Le Leannec, F., et al., « Non-CE6 : interaction between MTS and LFNST », Joint Video Experts Team (JVET) of ITU-T SG 16 WP3 and ISO/IEC JTC 1/SC 29/WG11, JVET-00466, Jul. 2019. [cited by applicant]
Song, Shichang, “Master Thesis submitted to University of Electronic Science and Technology of China, Research on Inter Prediction and Transform Coding in Next Generation Video Coding Standard”, China Academic Journal E… [cited by applicant]