IP Library › Granted Patent US 12,401,784
Granted Patent B2
US 12,401,784 · App. 18/068,235 · Granted Aug 26, 2025

Encoder, a decoder and corresponding methods using history based motion vector prediction

Inventors: Anand Meher Kotra (Munich, DE); Jianle Chen (San Diego, CA); Semih Esenlik (Munich, DE); Biao Wang (Shenzhen, CN); Han Gao (Shenzhen, CN); Zhijie Zhao (Shenzhen, CN)
Assignee: HUAWEI TECHNOLOGIES CO., LTD.
H04N19/105H04N19/129H04N19/176H04N19/1883
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,401,784
App. No.
18/068,235
Granted
Aug 26, 2025
Kind
B2
Abstract

Embodiments provide methods and devices (encoder and/or decoder) of coding a picture. A History Based Motion Vector Prediction (HMVP) list for a current Coding Tree Unit (CTU) row within a tile of a picture is initialized and a CTU of the current CTU row is processed based on the initialized HMVP list.

Claims (42)

1. A method of coding a picture implemented by a decoding device, comprising:

initializing a history based motion vector prediction (HMVP) list for a current coding tree unit (CTU) row within a tile of a picture; and

processing a CTU of the current CTU row based on the initialized HMVP list;

wherein the initializing the HMVP list for the current CTU row is performed at the beginning of each CTU row of the tile, and

wherein initializing the HMVP list for the current CTU row comprises setting a length of the HMVP list to zero for processing a first CTU in the current CTU row in a coding or scanning order, wherein a CTU in a CTU row has a corresponding address, wherein an address of the first CTU in each CTU row inside a tile is identified by determining whether an address of a current CTU is same as an address of a CTU in a list or array storing an address of a left tile column boundary in units of coding tree blocks (CTBs), such that the first CTU of each CTU row inside a tile is deduced.

2. The method according to claim 1 , wherein the initializing the HMVP list for the current CTU row is performed before a first CTU in the current CTU row in a coding and/or scanning order is processed, and wherein the first CTU in the current CTU row comprises:

a first CTU in a tile group (TG) in the coding and/or scanning order, or

a first CTU in a tile in the coding and/or scanning order, or

a first CTU in a CTU row in the coding and/or scanning order.

3. The method according to claim 1 , wherein the resetting the HMVP list for the current CTU row further comprises:

incrementing a length of the HMVP list by one when a block of the first CTU is inter-coded using a motion vector and adding the motion vector to the HMVP list.

4. The method according to claim 3 , wherein the length of the HMVP list is only incremented and the motion vector is only added if motion information is not already contained in the HMVP list.

5. The method according to claim 4 , wherein the motion information comprises at least one of a motion vector and a reference picture index.

6. The method according to claim 1 , wherein the length of the HMVP list is only incremented until a maximum length of the HMVP list is reached.

7. The method according to claim 1 , wherein the method further comprises:

coding a current block of a current CTU by only considering a reduced number of HMVP list candidates according to a current length of the HMVP list, wherein the current length of the HMVP list is smaller than a maximum length of the HMVP list.

8. The method according to claim 7 , wherein the reduced number of HMVP list candidates corresponds to the current length of the HMVP list.

9. The method according to claim 1 , wherein a CTU in a CTU row has a corresponding address, wherein an address of the first CTU in a CTU row is identified by determining a first coding tree block (CTB) in a CTU row in a tile by using the expression:

FirstCtbInCtuRowInTile=((ctbAddrInTs−FirstCtbAddrTs[tileIdx]−

NumCtusInTile[tileIdx]) % ColWidth[tileIdx]==0)?1:0,

If ((tile_group_type != I ) && (FirstCtbInCtuRowInTile))

HMVPCandNum=0

where FirstCtbInCtuRowInTile denotes the first CTU in a CTU row in the tile, ctb AddrInTx denotes an address of a CTB in a tile, FirstCtbAddrTs denotes a first address of a CTB in a tile, tileIdx denotes an index of the respective tile, NumCtusInTile denotes a number of CTUs in a tile, ColWidth denotes a width of the tile in terms of number of CTUs, and “%” is a modulus operator; and tile_groupe_type denotes a type of tile group.

10. The method according to claim 1 , wherein a CTU in a CTU row has a corresponding address, wherein an address of the first CTU in a CTU row is identified by determining whether a modulus operation of the address j with respect to a current tile yields zero by using the following expression:

if ( j % ColWidth[tileIdx]==0),

where J is the address of a current CTU and ColWidth[tileIdx] indicates a width of the tile in terms of number of CTUs, tileIdx denotes an index of the respective tile, and “%” is a modulus operator.

11. The method according to claim 1 , wherein the determining whether an address of the current CTU is the same as an address of a CTU in the list storing an address of the left tile column boundary in units of CTBs uses the expression:

if(CtbAddrX==CtbToTileColBd[CtbAddrX]),

where list or array CtbToTileColBd[ctbAddrX] includes conversion from a horizontal CTB address to an address of a left tile column boundary in units of CTBs, for “ctbAddrX” ranging from “0 to PicWidthInCtbsY”, inclusively, where ctbAddrX indicates an index of a horizontal CTB.

12. A method of coding a picture implemented by an encoding device, comprising:

initializing a history based motion vector prediction (HMVP) list for a current coding tree unit (CTU) row within a tile of a picture; and

processing a CTU of the current CTU row based on the initialized HMVP list;

wherein the initializing the HMVP list for the current CTU row is performed at the beginning of each CTU row of the tile, and

wherein initializing the HMVP list for the current CTU row comprises setting a length of the HMVP list to zero for processing a first CTU in the current CTU row in a coding or scanning order, wherein a CTU in a CTU row has a corresponding address, wherein an address of the first CTU in each CTU row inside a tile is identified by determining whether an address of a current CTU is same as an address of a CTU in a list or array storing an address of a left tile column boundary in units of coding tree blocks (CTBs), such that the first CTU of each CTU row inside a tile is deduced.

13. A non-transitory computer-readable medium storing a program, including instructions which when executed on a processor cause the processor to perform the method according to claim 1 .

14. A non-transitory computer-readable medium storing a program, including instructions which when executed on a processor cause the processor to perform the method according to claim 12 .

15. A decoder, comprising:

one or more processors; and

a computer-readable storage medium coupled to the one or more processors and storing instructions for execution by the one or more processors, wherein the instructions, when executed by the one or more processors, configures the decoder to carry out the method according to claim 1 .

16. An encoder, comprising:

one or more processors; and

a machine-readable storage medium coupled to the one or more processors and storing instructions for execution by the one or more processors, wherein the instructions, when executed by the one or more processors, configures the encoder to carry out the method according to claim 12 .

Continuity (6)
Continuation 17351783 · Jun 18, 2021
Continuation PCTCN2019126842 · Dec 20, 2019
Provisional Application 62784338 · Dec 21, 2018
Provisional Application 62787725 · Jan 2, 2019
Provisional Application 62792856 · Jan 15, 2019
Related Publication 20230209043A1 · Jun 29, 2023
References Cited (65)
US 10362330B1 · Li et al. · 2019 [cited by applicant]
US 10491902B1 · Xu · 2019 [cited by examiner]
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 20180176565A1 · Tanner · 2018 [cited by applicant]
US 20180199052A1 · He · 2018 [cited by applicant]
US 20200014948A1 · Lai et al. · 2020 [cited by applicant]
US 20200059658A1 · Chien et al. · 2020 [cited by applicant]
US 20200137398A1 · Zhao et al. · 2020 [cited by applicant]
US 20200186821A1 · Park et al. · 2020 [cited by applicant]
US 20200260072A1 · Park · 2020 [cited by examiner]
US 20200260107A1 · Han et al. · 2020 [cited by applicant]
US 20200359039A1 · Zhao et al. · 2020 [cited by applicant]
US 20200382770A1 · Zhang et al. · 2020 [cited by applicant]
US 20210136405A1 · Chen · 2021 [cited by examiner]
US 20210218957A1 · Jang · 2021 [cited by applicant]
US 20220014774A1 · Choi · 2022 [cited by examiner]
CA 2966522A1 · 2016 [cited by applicant]
CA 3105379A1 · 2020 [cited by applicant]
CN 101669368A · 2010 [cited by applicant]
CN 105359527A · 2016 [cited by applicant]
CN 105981386A · 2016 [cited by applicant]
CN 106464896A · 2017 [cited by applicant]
CN 108293131A · 2018 [cited by applicant]
CN 108540814A · 2018 [cited by applicant]
CN 108650514A · 2018 [cited by applicant]
EP 2744204B1 · 2018 [cited by applicant]
EP 3813369A1 · 2021 [cited by applicant]
JP 2002223441A · 2002 [cited by applicant]
JP 2021516514A · 2021 [cited by applicant]
KR 20130067280A · 2013 [cited by applicant]
KR 101793623B1 · 2017 [cited by applicant]
RU 2624560C2 · 2017 [cited by applicant]
RU 2752644C1 · 2021 [cited by applicant]
WO 2015090219A1 · 2015 [cited by applicant]
WO 2018128071A1 · 2018 [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 2020030187A1 · 2020 [cited by applicant]
Xu (Huawei) W et al: “CE4-related: CTU-level Initialization of HistorybasedMotion Vector Prediction”, 12. JVET Meeting; Oct. 3, 2018-Oct. 12, 2018; JVET-L0575-v1, 4 pages. [cited by applicant]
XP030194029. 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, Document: JVET-L0106, 12th Mee… [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 andISO/IEC JTC 1/SC 29/WG 11 12th Meeting: Macao, CN, Oct. 3-12, 2018, JV… [cited by applicant]
Li Zhang et al: “CE4-related: History-based Motion Vector Prediction”, 11 .JVET Meeting;Jul. 11, 2018-Jul. 18, 2018. Ljubljana; (The Jointvideo Exploration Team of ISO/IEC JTC1/SC29/WG11 and ITU-TSG.16) No. JVET-K0104_v… [cited by applicant]
Zhu Xiuchang et al., Video display stream compression technologies and standards, Journal of Data Acquisition and Processing, May 2017, with an English abstract total 11 pages. [cited by applicant]
ITU-T H.264(Apr. 2017), Series H: Audiovisual and Multimedia Systems, Infrastructure of audiovisual services-Coding of moving video, Advanced video coding for generic audiovisual services, total 812 pages. [cited by applicant]
Document: JVET-L0106_WD, 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… [cited by applicant]
Document: JVET-L0266-v1, Li Zhang et al., CE4: History-based Motion Vector Prediction (Test 4.4.7), 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, … [cited by applicant]
Document: JVET-L0359_r4, Yukinobu Yasugi et al., AHG12: Flexible Tile Splitting, 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, total 6 pages. [cited by applicant]
Document: JVET-L0686-v2, Ye-Kui Wang et al., Spec text for the agreed starting point on slicing and tiling, 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… [cited by applicant]
Document: JVET-L1001-v6, Benjamin Bross et al., Versatile Video Coding (Draft 3), 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, total 203 pa… [cited by applicant]
ITU-T H.265(Feb. 2018), Series H: Audiovisual and Multimedia Systems Infrastructure of audiovisual services-Coding of moving video, High efficiency video coding, total 692 pages. [cited by applicant]
JVET-L0106, Yi-Wen Chen et al., “CE4-related: Modified History-based MVP to support parallel processing” ,oint 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… [cited by applicant]
JVET-L0158, Naeri Park et al., “CE4-related: History-Based Motion Vector Prediction considering parallel processing” ,oint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,12th Meeting: Macau,… [cited by applicant]
JVET-L0575-V2, Weiwei Xu et al., “CE4-related: CTU-level Initialization of History-based Motion Vector Prediction” ,oint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 12th Meeting: Macao, … [cited by applicant]
Document: JVET-M300-v3 , Jianle Chen et al., CE4-related: HMVP and parallel processing with tiles and tile groups, Joint Video Experts Team (JVET) ofITU-T SG 16 WP 3 and ISO/IECJTC 1/SC 29/WG11, 13th Meeting: Marrakech,… [cited by applicant]
CE4-related: CTU-level Initialization of HistorybasedMotion Vector Prediction “, 12. JVET Meeting; Oct. 3, 2018-Oct. 12, 2018; JVET-L0575-v1, 4 pages.” [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 M… [cited by applicant]
Li Zhang et al., History-based Motion Vector Prediction in Versatile Video Coding, 2019 data Compression conference (DCC), total 10 pages. [cited by applicant]
Zhang, Li 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, JVET-K0104-v1, 11th Meeting: Ljubljana, SI, Jul. 1… [cited by applicant]
V. Sze et al. 5.3.2.2 Inter-picture Prediction Block Merging, High Efficiency Video Coding (HEVC), Algorithms and Architectures, 2014. total 3 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]