IP Library › Granted Patent US 12,267,532
Granted Patent B2
US 12,267,532 · App. 18/295,986 · Granted Apr 1, 2025

Video processing method, video processing apparatus, encoder, decoder, medium and computer program

Inventors: Anand Meher Kotra (Munich, DE); Semih Esenlik (Munich, DE); Jianle Chen (San Diego, CA); Biao Wang (Shenzhen, CN); Han Gao (Shenzhen, CN); Zhijie Zhao (Shenzhen, CN)
Assignee: HUAWEI TECHNOLOGIES CO., LTD.
H04N19/96H04N19/172H04N19/52
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,267,532
App. No.
18/295,986
Granted
Apr 1, 2025
Kind
B2
Abstract

A video processing method, comprising: initializing a HMVP list for a current CTU row when the current CTU is the beginning CTU of a current CTU row; and processing the current CTU row based on the HMVP list. By performing the method, the encoding efficiency and decoding efficiency are improved.

Claims (74)

1. A video processing method, comprising:

obtaining a current frame of a video;

partitioning the current frame into one or more areas including a current area, wherein the current area includes one or more coding tree unit (CTU) rows including a first CTU row and a second CTU row;

obtaining the first CTU row, the first CTU row comprising multiple CTUs in a first sequence;

detecting a first beginning CTU in the first sequence of the multiple CTUS;

in response to detecting the first beginning CTU, initializing a first history-based motion vector prediction (HMVP) list for the first CTU row;

processing the first CTU row based on the initialized first HMVP list;

obtaining the second CTU row, the second CTU row comprising multiple CTUs in a second sequence;

detecting a second beginning CTU in the second sequence of the multiple CTUS;

in response to detecting the second beginning CTU, initializing a second HMVP list for the second CTU row; and

processing the second CTU row based on the initialized second HMVP list.

2. The video processing method according to claim 1 , wherein initializing the first HVMP list further comprises

setting a quantity of candidate motion vectors in the first HMVP list to zero.

3. The video processing method according to claim 1 , wherein processing the first CTU row based on the first HMVP list further comprises:

processing the first beginning CTU in the first sequence;

updating the first HMVP list based on a processed first beginning CTU to obtain a first updated HMPV list; and

processing a second CTU of the first CTU row based on the first updated HMVP list, wherein the second CTU is subsequent to the first beginning CTU in the first sequence.

4. The video processing method according to claim 3 , further comprising:

updating the first updated HMVP list based on a processed second CTU of the first CTU row.

5. The video processing method according to claim 1 , wherein initializing the second HMVP list for the second CTU row further comprises:

emptying the second HMVP list.

6. The video processing method according to claim 1 , wherein the one or more CTU rows are processed in wavefront parallel processing (WPP) mode.

7. The video processing method according to claim 6 , wherein the second CTU row is processed after a particular CTU of the first CTU row is processed.

8. A video encoder comprising:

one or more processors; and

a first non-transitory computer-readable storage medium coupled to the processors and storing a program for execution by the processors, wherein the program, when executed by the processors, causes the one or more processors to:

obtain a current frame of a video;

partition the current frame into one or more areas including a current area, wherein the current area includes one or more coding tree unit (CTU) rows including a first CTU row and a second CTU row;

obtain the first CTU row, the first CTU row comprising multiple CTUs in a first sequence;

detect a first beginning CTU in the first sequence of the multiple CTUs;

in response to detecting the first beginning CTU, initialize a first history-based motion vector prediction (HMVP) list for the first CTU row;

process the first CTU row based on the initialized first HMVP list;

obtain the second CTU row, the second CTU row comprising multiple CTUs in a second sequence;

detect a second beginning CTU in the second sequence of the multiple CTUS;

in response to detecting the second beginning CTU, initialize a second HMVP list for the second CTU row;

process the second CTU row based on the initialized second HMVP list; and

obtain a bitstream based on a processed first CTU row and a processed second CTU row; and

a second storage medium coupled to the first non-transitory computer-readable storage medium, configured to storage the bitstream for transmitting.

9. The video encoder according to claim 8 , wherein in initializing the first HVMP list, the program, when executed by the processors, causes the one or more processors to:

set a quantity of candidate motion vectors in the first HMVP list to zero.

10. The video encoder according to claim 8 , wherein in processing the first CTU row based on the first HMVP list, the program, when executed by the processors, causes the one or more processors to:

process the first beginning CTU in the first sequence;

update the first HMVP list based on a processed first beginning CTU to obtain a first updated HMPV list; and

process a second CTU of the first CTU row based on the first updated HMVP list, wherein the second CTU is subsequent to the first beginning CTU in the first sequence.

11. The video encoder according to claim 10 , the program, when executed by the processors, causes the one or more processors further to:

update the first updated HMVP list based on a processed second CTU of the first CTU row.

12. The video encoder according to claim 8 , wherein in initializing the second HMVP list for the second CTU row, the program, when executed by the processors, causes the one or more processors to:

empty the second HMVP list.

13. The video encoder according to claim 8 , wherein the one or more CTU rows are processed in wavefront parallel processing (WPP) mode.

14. The video encoder according to claim 13 , wherein the second CTU row is processed after a particular CTU of the first CTU row is processed.

15. A video decoder comprising:

one or more processors; and

a non-transitory computer-readable storage medium coupled to the processors and storing a program for execution by the processors, wherein the program, when executed by the processors, causes the one or more processors to:

obtain a current frame of a video;

partition the current frame into one or more areas including a current area, wherein the current area includes one or more coding tree unit (CTU) rows including a first CTU row and a second CTU row;

obtain the first CTU row, the first CTU row comprising multiple CTUs in a first sequence;

detect a first beginning CTU in the first sequence of the multiple CTUS;

in response to detecting the first beginning CTU, initialize a first history-based motion vector prediction (HMVP) list for the first CTU row;

process the first CTU row based on the initialized first HMVP list;

obtain the second CTU row, the second CTU row comprising multiple CTUs in a second sequence;

detect a second beginning CTU in the second sequence of the multiple CTUS;

in response to detecting the second beginning CTU, initialize a second HMVP list for the second CTU row; and

process the second CTU row based on the initialized second HMVP list.

16. The video decoder according to claim 15 , wherein in initializing the first HVMP list, the program, when executed by the processors, causes the one or more processors to:

set a quantity of candidate motion vectors in the first HMVP list to zero.

17. The video decoder according to claim 15 , wherein in processing the first CTU row based on the first HMVP list, the program, when executed by the processors, causes the one or more processors to:

process the first beginning CTU in the first sequence;

update the first HMVP list based on a processed first beginning CTU to obtain a first updated HMPV list; and

process a second CTU of the first CTU row based on the first updated HMVP list, wherein the second CTU is subsequent to the first beginning CTU in the first sequence.

18. The video decoder according to claim 17 , the program, when executed by the processors, causes the one or more processors further to:

update the first updated HMVP list based on a processed second CTU of the first CTU row.

19. The video decoder according to claim 15 , wherein in initializing the second HMVP list for the second CTU row, the program, when executed by the processors, causes the one or more processors to:

empty the second HMVP list.

20. The video decoder according to claim 15 , wherein the one or more CTU rows are processed in wavefront parallel processing (WPP) mode.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 17, 2023
From: KOTRA, ANAND MEHER; ESENLIK, SEMIH; CHEN, JIANLE; WANG, BIAO; GAO, HAN; ZHAO, ZHIJIE
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 063343/0905 →
Continuity (4)
Continuation 16994554 · Aug 15, 2020
Continuation PCTCN2019100226 · Aug 12, 2019
Provisional Application 62717004 · Aug 10, 2018
Related Publication 20230319322A1 · Oct 5, 2023
References Cited (39)
US 20140286427A1 · Fukushima et al. · 2014 [cited by applicant]
US 20170094271A1 · Liu et al. · 2017 [cited by applicant]
US 20170127086A1 · Lai et al. · 2017 [cited by applicant]
US 20180109786A1 · Kim et al. · 2018 [cited by applicant]
US 20200014948A1 · Lai · 2020 [cited by examiner]
US 20200036997A1 · Li · 2020 [cited by examiner]
US 20200045319A1 · Xu · 2020 [cited by examiner]
US 20200336755A1 · Lai et al. · 2020 [cited by applicant]
US 20200382770A1 · Zhang et al. · 2020 [cited by applicant]
US 20210136405A1 · Chen et al. · 2021 [cited by applicant]
US 20210218957A1 · Jang · 2021 [cited by applicant]
CA 2966522A1 · 2016 [cited by applicant]
CA 3105379A1 · 2020 [cited by applicant]
CN 106464896A · 2017 [cited by applicant]
EP 3813369A1 · 2021 [cited by applicant]
JP 2021516509A · 2021 [cited by applicant]
JP 2021516514A · 2021 [cited by applicant]
KR 102542433B1 · 2023 [cited by applicant]
RU 2624560C2 · 2017 [cited by applicant]
RU 2752644C1 · 2021 [cited by applicant]
WO 2015090219A1 · 2015 [cited by applicant]
WO 2020014389A1 · 2020 [cited by applicant]
WO 2020018241A1 · 2020 [cited by applicant]
WO 2020018486A1 · 2020 [cited by applicant]
WO 2020023202A1 · 2020 [cited by applicant]
WO 2020071829A1 · 2020 [cited by applicant]
Li Zhang et al., “CE4-related: History-based Motion Vector Prediction”, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, Document: JVET-K0104-v5, 11th Meeting: Ljubljana, SI. Jul. 10-18… [cited by applicant]
Haitao Yang et al, “Description of Core Experiment 4 (CE4): Inter prediction and motion vector coding”, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 291WG 11, Document: JVET-K1024-v3, 11th Me… [cited by applicant]
Yi-Wen Chen et al. “CE4-related: Modified History-based MVP to support parallel processing.” Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11. 12th Meeting: Macao, CN. Oct. 3-12, 2018. 3… [cited by applicant]
Anand Meher Kotra et al. “CE4-related: HMVP and parallel processing with tiles and tile groups.” Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and I50/IEC JTC 1/SC 29/WG 11. 13th Meeting: Marrakech, MA. Jan. 9-18,… [cited by applicant]
Li Zhang et al. “CE4-related: History-based Motion Vector Prediction.” Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11. 11th Meeting: Ljubljana, SI. Jul. 10-18, 2018. 5 pages. [cited by applicant]
Li Zhang et al. “History-based Motion Vector Prediction in Versatile Video Coding.” 2019 Data Compression Conference (DCC). 10 pages. [cited by applicant]
Park, Naeri et al., “CE4-related: History-Based Motion Vector Prediction considering parallel processing”, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 12th Meeting, JVET-L0158, 12th… [cited by applicant]
Kotra, A. M. et al., “CE4-related: HMVP and parallel processing with tiles and tile groups”, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 13th Meeting, JVET-M0300-v3, 13th Meeting: M… [cited by applicant]
Chen, Yiwen et al., “CE4-related: Modified History-based MVP to support parallel processing”, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 12th Meeting, JVET-L0106, 12th Meeting: Mac… [cited by applicant]
V. Sze et al. 5.2.2 Inter-picture Prediction Block Merging, High Efficiency Video Coding (HEVC), Algorithms and Architectures, 2014. total 8 pages. [cited by applicant]
V. Sze et al. 3.3.2.2 Wavefront Parallel Processing (WPP), High Efficiency Video Coding (HEVC), Algorithms and Architectures, 2014. total 3 pages. [cited by applicant]
Xu et al., “CE4-related: CTU-level Initialization of History-based Motion Vector Prediction”, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-L0575-v2, 12th Meeting: Macao, China,… [cited by applicant]
Kotra et al., “CE4-related: HMVP and parallel processing with tiles and tile groups”, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, Document: JVET-M300-v1, Jan. 9, 2019, 3 pages. [cited by applicant]