Motion vector predictor

By dynamically checking and including motion information from specific positions in the collocated block as MVP candidates, the method addresses inefficiencies in existing video coding technologies, enhancing encoding and decoding processes and optimizing video quality and compression efficiency.

WO2026078572A1PCT designated stage Publication Date: 2026-04-16NOKIA TECHNOLOGIES OY
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
PCT/IB2025/060151
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-10-11
Filing Date
2025-10-07
Publication Date
2026-04-16

AI Technical Summary

Technical Problem

Existing video coding technologies face inefficiencies in managing motion vector predictor (MVP) candidates, particularly when the number of available slots in the merge candidate list is insufficient, leading to suboptimal encoding and decoding processes.

Method used

The proposed solution involves a method and apparatus that dynamically checks and includes motion information from specific positions in or around a collocated block as MVP candidates, increasing the number of candidates in the merge candidate list by evaluating their coding cost, ensuring sufficient candidates are available for encoding and decoding.

Benefits of technology

This approach enhances the efficiency of video coding by ensuring adequate MVP candidates are included in the merge candidate list, improving encoding and decoding processes, thereby optimizing video quality and compression efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure IB2025060151_16042026_PF_FP_ABST
    Figure IB2025060151_16042026_PF_FP_ABST
Patent Text Reader

Abstract

Various embodiments propose that for a current block in a current picture, there are multiple check positions around the collocated block in the collocated picture for TMVP candidates. These check positions may be grouped into groups (e.g. pairs). The groups are checked in a pre-set order. When there are positions in a group coded in inter mode, their motion information are included in the merge candidate list as TMVP candidates, when there are still slots available for motion vector prediction candidates
Need to check novelty before this filing date? Find Prior Art

Description

MOTION VECTOR PREDICTORTECHNICAL FIELD

[0001] The examples and non-limiting embodiments relate generally to video coding and, more particularly to, motion vector predictor.BACKGROUND

[0002] It is known to provide standardized formats for encoding, signaling, or decoding of media data.SUMMARY

[0003] Example 1: An apparatus comprising: at least one processor; at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to perform: when a number of motion vector predictor (MVP) candidates in a merge candidate list (n) is less than a number of slots allocated for MVP candidates in the merge candidate list (N), checking motion information at a first position (cO) in or around a collocated block; when the first position is coded in an inter mode, including motion information at the first position (cO) in the merge candidate list as a MVP candidate; increasing the number of MVP candidates in the merge candidate list by one, when the motion information at the first position (cO) is included in the merge candidate list as the MVP candidate; when the number of MVP candidates in the merge candidate list is less than the number of slots allocated for MVP candidates in the merge candidate list, checking motion information at a second position (cl) in or around the collocated block; when the second position is coded in an inter mode, including motion information at the second position (cl) in the merge candidate list as the MVP candidate; increasing the number of MVP candidates in the merge candidate list by one, when the motion information at the second position (cl) is included in the merge candidate list as MVP candidate; wherein the first position and the second position comprise a pair.

[0004] Example 2: The apparatus of example 1, wherein when first position and the second position are coded in the inter mode, the apparatus is further caused to perform a pre-selection process.

[0005] Example 3: The apparatus of example 2, wherein the pre-selection process comprises: evaluating the motion information at the first position (cO) and the second position (cl); based upon evaluation results, including the motion information at the first position (cO), the second position (cl), or any combination thereof in the merge candidate list as the MVP candidate, when the number of MVP candidates in the merge candidate list is less than the number of slots allocated for MVP candidates inthe merge candidate list.

[0006] Example 4: The apparatus of example 3, wherein the evaluating comprises using a cost function for estimating a coding cost of a current block based on a prediction block associated with the motion information at the first position and the second position.

[0007] Example 5: The apparatus of example 3, wherein the evaluating comprises using template costs associated with the motion information at first position and the second position with respect to a current block.

[0008] Example 6: The apparatus of any of the previous examples, wherein the apparatus is caused to perform the checking until the number of MVP candidates in the merge candidate list is equal to the number of slots allocated for MVP candidates in the merge candidate list, or a last pair over a checking area has been checked.

[0009] Example 7: The apparatus of any of the previous examples, wherein when none of the first position and the second position is coded in the inter mode, no MVP candidates are included in the merge candidate list.

[0010] Example 8: The apparatus of any of the previous examples, wherein the apparatus is further caused to perform: selecting one or more MVP candidates from the merge candidate list for the current block; signaling the selected one or more MVP candidate to a decoder.

[0011] Example 9: The apparatus of any of the examples 1 to 7, wherein the apparatus is further caused to perform: receiving a selected MVP candidate for a current block, wherein the selected MVP candidate is selected by an encoder from the merge candidate list; using the selected MVP candidate for the current block.

[0012] Example 10: An apparatus comprising: at least one processor; at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to perform: when a number of motion vector predictor (MVP) candidates in a merge candidate list (n) is less than a number of slots allocated for MVP candidates in the merge candidate list (N), checking motion information at a first position (cO) and a second position (cl) in or around a collocated block; when one of the first position or the second position is coded in an inter coded mode, including motion information at one of the first position (cO) or the second position (cl) in the merge candidate list as a MVP candidate; when the first position and the second position are coded in the inter coded mode, evaluating the motion information at the first position (cO) and the second position (cl); based on the evaluation, including the motion information at one the first position (cO) or the second position (cl) in the mergecandidate list as the MVP candidate; when the motion information at one of the first position (cO) or the second position (cl) is included in the merge candidate list as the MVP candidate, increasing the number of MVP candidates in the merge candidate list by one; wherein the first position and the second position comprise a pair.

[0013] Example 11: The apparatus of example 10, wherein the evaluating comprises using a cost function for estimating a coding cost of the current block based on a prediction block associated with the motion information at the first position and the second position.

[0014] Example 12: The apparatus of example 10, wherein the evaluating comprises using template costs associated with the motion information at first position and the second position with respect to the current block.

[0015] Example 13: The apparatus of any of the previous 10 to 12, wherein the apparatus is caused to perform the checking until the number of MVP candidates in the merge candidate list is equal to the number of slots allocated for MVP candidates in the merge candidate list, or a last pair over a checking area has been checked.

[0016] Example 14: The apparatus of any of the examples 10 to 13, wherein when none of the first position and the second position is coded in the inter mode, no MVP candidates are included in the merge candidate list.

[0017] Example 15: The apparatus of any of the examples 10 to 14, wherein the apparatus is further caused to perform: selecting a MVP candidate comprising from the merge candidate list for a current block; signaling the selected MVP candidate to a decoder.

[0018] Example 16: The apparatus of any of the examples 10 to 14, wherein the apparatus is further caused to perform: receiving a selected MVP candidate for a current block, wherein the selected MVP candidate is selected by an encoder from the merge candidate list; using the selected MVP candidate for the current block.

[0019] Example 17: An apparatus comprising: at least one processor; at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to perform: checking one or more pairs of positions in or around a collocated block in pre-set order; determining a pair of positions as valid when at least one position of a pair is coded in inter mode; continuing checking of the one or more pairs until a number of valid pairs is equal to a number of slots allocated for motion vector predictor (MVP) candidates in the merge candidate list (N) or all the one or more pairs have been checked; evaluating motion information at positions of the valid pairs; based on the evaluation,including up to N sets of motion information at the evaluated positions in the merge candidate list.

[0020] Example 18: The apparatus of example 17, wherein the evaluating comprises using a cost function for estimating a coding cost of the current block based on a prediction block associated with the motion information at the first position and the second position.

[0021] Example 19: The apparatus of example 17, wherein the evaluating comprises using template costs associated with the motion information at first position and the second position with respect to the current block.

[0022] Example 20: The apparatus of any of the examples 17 to 19, wherein the apparatus is further caused to perform: selecting a MVP candidate comprising from the merge candidate list for the current block; signaling the selected MVP candidate to a decoder.

[0023] Example 21: The apparatus of any of the examples 17 to 19, wherein the apparatus is further caused to perform: receiving a selected MVP candidate for the current block, wherein the selected MVP candidate is selected by an encoder from the merge candidate list; using the selected MVP candidate for the current block.

[0024] Example 22: An apparatus comprising: at least one processor; at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to perform: when a number of motion vector predictor (MVP) candidates in a merge candidate list (n) is less than a number of slots allocated for MVP candidates in the merge candidate list (N), checking motion information at a first position (cO) and a second position (cl) in or around a collocated block; when the first position is coded in an inter mode and the second position is not coded in the inter mode, collecting motion information at the first position in sets of collected motion information; when the motion information at the first position is collected, increasing the value of n by one; when the second position is coded in the inter mode and the first position is not coded in the inter mode, collecting motion information at the second position in the sets of collected motion information; when the motion information at the second position is collected, increasing the value of n by one; when the first position is coded and the second position are coded in the inter mode, collecting motion information at the first position and the second position in the sets of collected motion information; when the motion information at the first position and the second position are collected, increasing the value of n by two.

[0025] Example 23: The apparatus of example 22, wherein when none of the first position and the second position is coded in the inter mode, the motion information at the first position and the second position is not collected in the sets of collected motion information.

[0026] Example 24: The apparatus of any of the examples 22 or 23, wherein the apparatus further is caused to perform the checking until the number of MVP candidates in the merge candidate list is equal to the number of slots allocated for MVP candidates in the merge candidate list, or a last pair over a checking area has been checked.

[0027] Example 25: The apparatus of example 24, wherein the apparatus is further caused to perform: evaluating the sets of collected motion information; including up to N sets of motion information in the merge candidate list as MVP candidates.

[0028] Example 26: The apparatus of example 25, wherein the evaluating comprises using a cost function for estimating a coding cost of the current block based on a prediction block associated with the motion information at the first position and the second position.

[0029] Example 27: The apparatus of example 25, wherein the evaluating comprises using template costs associated with the motion information at first position and the second position with respect to the current block.

[0030] Example 28: The apparatus of any of the examples 22 to 27, wherein the apparatus is further caused to perform: selecting a MVP candidate comprising from the merge candidate list for the current block; signaling the selected MVP candidate to a decoder.

[0031] Example 29: The apparatus of any of the examples 22 to 27, wherein the apparatus is further caused to perform: receiving a selected MVP candidate for the current block, wherein the selected MVP candidate is selected by an encoder from the merge candidate list; using the selected MVP candidate for the current block.

[0032] Example 30: The apparatus of any of the examples 1 to 29, wherein, for the current block, the MVP candidates are applied to pictures with small temporal distances to corresponding collocated pictures.

[0033] Example 31: The apparatus of any of the examples 1 to 29, wherein, for the current block, the MVP candidates are applied to the pictures with temporal distances to corresponding collocated pictures is equal to one.

[0034] Example 32: The apparatus of any of the examples 1 to 31, wherein the MVP candidate comprises one of a temporal motion vector predictor (TMVP), an advanced motion vector predictor (AMVP), or an affine AMVP, and wherein the merge candidate list comprises one of a TMVP merge candidate list, an AMVP merge candidate list, affine merge candidate list, or an affine AMVP merge candidate list.

[0035] Example 33: An apparatus comprising: at least one processor; at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to perform: performing a checking process for a pair comprising a first position and a second position in or around a collated block, wherein there are one or more pairs in or around the collated block, and wherein the checking process comprises: when a number of motion vector predictor (MVP) candidates in a merge candidate list (n) is less than a number of slots allocated for MVP candidates in the merge candidate list (N), the apparatus is further caused to perform: checking motion information at the first position (cO); when the first position is coded in an inter mode, the apparatus is further caused to perform: including motion information at the first position (cO) in the merge candidate list as a MVP candidate; increasing the number of MVP candidates in the merge candidate list by one; when the number of MVP candidates in the merge candidate list is less than the number of slots allocated for MVP candidates in the merge candidate list, the apparatus is further caused to perform: checking motion information at the second position (cl); when the second position is coded in an inter mode, the apparatus is further caused to perform: including motion information at the second position (cl) in the merge candidate list as the MVP candidate; increasing the number of MVP candidates in the merge candidate list by one; performing the checking process for next pair of the one mor more pairs.

[0036] Example 34: An apparatus comprising: at least one processor; at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to perform: performing a checking process for a pair comprising a first position and a second position in or around a collated block, wherein there are one or more pairs in or around the collated block, and wherein the checking process comprises: when a number of motion vector predictor (MVP) candidates in a merge candidate list (n) is less than a number of slots allocated for MVP candidates in the merge candidate list (N), the apparatus is further caused to perform: checking motion information at a first position (cO) and a second position (cl) in or around the collocated block; when one of the first position or the second position is coded in an inter coded mode, the apparatus is further caused to perform: including motion information at one of the first position (cO) or the second position (cl) in the merge candidate list as a MVP candidate; increasing the number of MVP candidates in the merge candidate list by one; performing the checking process for the next pair of the one or more pairs; when the first position and the second position are coded in the inter coded mode, the apparatus is further caused to perform: evaluating the motion information at the first position (cO) and the second position (cl); based on the evaluation, including the motion information at one the first position (cO) or the second position (cl) in the merge candidate list as the MVP candidate; increasing the number of MVP candidates in the merge candidate list by one; performing the checking process for the next pair of the one or more pairs; when none of the first position and the second position are coded in the inter coded mode, the apparatus is further caused to perform: performing the checking process for the next pair of the one or more pairs.

[0037] Example 35: An apparatus comprising: at least one processor; at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to perform: performing a checking process for a pair comprising a first position and a second position in or around a collated block, wherein there are one or more pairs in or around the collated block, and wherein the checking process comprises: when a number of motion vector predictor (MVP) candidates in a merge candidate list (n) is less than a number of slots allocated for MVP candidates in the merge candidate list (N), the apparatus is further caused to perform: checking motion information at a first position (cO) and a second position (cl) in or around the collocated block; when the first position is coded in an inter mode and the second position is not coded in the inter mode, the apparatus is further caused to perform: collecting motion information at the first position in sets of collected motion information; increasing the number of MVP candidates in the merge candidate list by two; performing the checking process for the next pair of the one or more pairs; when the second position is coded in an inter mode and the first position is not coded in the inter mode, the apparatus is further caused to perform: collecting motion information at the second position in the sets of collected motion information; increasing the number of MVP candidates in the merge candidate list by one; performing the checking process for the next pair of the one or more pairs; when the first position and the second position are coded in the inter mode, the apparatus is further caused to perform: collecting motion information at the first and second positions in the sets of collected motion information; increasing the number of MVP candidates in the merge candidate list by two; performing the checking process for the next pair of the one or more pairs; when the first position and the second position are not coded in the inter mode, the apparatus is further caused to perform: performing the checking process for the next pair of the one or more pairs; evaluating the sets of collected motion information; including up to N sets of motion information in the merge candidate list as MVP candidates.

[0038] Example 36: The apparatus of any of the examples 33 to 35, wherein the apparatus is caused to perform the checking process until the number of MVP candidates in the merge candidate list is equal to the number of slots allocated for MVP candidates in the merge candidate list, or a last pair over a checking area has been checked.

[0039] Example 37: The apparatus of example 33, wherein when first position and the second position are coded in the inter mode, the apparatus is further caused to perform a pre-selection process, wherein the pre-selection process comprises: evaluating the motion information at the first position (cO) and the second position (cl); based upon evaluation results, including the motion information at the first position (cO), the second position (cl), or any combination thereof in the merge candidate list as the MVP candidate, when the number of MVP candidates in the merge candidate list is less than the number of slots allocated for MVP candidates in the merge candidate list.

[0040] Example 38: The apparatus of any of the examples 34 to 37, wherein the evaluating comprises using a cost function for estimating a coding cost of the current block based on a prediction block associated with the motion information at the first position and the second position.

[0041] Example 39: The apparatus of example 38, wherein the evaluating comprises using template costs associated with the motion information at first position and the second position with respect to the current block.

[0042] Example 40: The apparatus of any of the examples 33 to 39, wherein the apparatus is further caused to perform: selecting a MVP candidate comprising from the merge candidate list for the current block; signaling the selected MVP candidate to a decoder.

[0043] Example 41: The apparatus of any of the examples 33 to 39, wherein the apparatus is further caused to perform: receiving a selected MVP candidate for the current block, wherein the selected MVP candidate is selected by an encoder from the merge candidate list; using the selected MVP candidate for the current block.

[0044] Example 42: The apparatus of any of the examples 33 to 41, wherein, for the current block, the MVP candidates are applied to pictures with small temporal distances to corresponding collocated pictures.

[0045] Example 43: The apparatus of any of the examples 33 to 41, wherein, for the current block, the MVP candidates are applied to the pictures with temporal distances to corresponding collocated pictures is equal to one.

[0046] Example 44: The apparatus of any of the examples 33 to 43, wherein the MVP candidate comprises one of a temporal motion vector predictor (TMVP), an advanced motion vector predictor (AMVP), or an affine AMVP, and wherein the merge candidate list comprises one of a TMVP merge candidate list, an AMVP merge candidate list, affine merge candidate list, or an affine AMVP merge candidate list.

[0047] Example 45: A method comprising: when a number of motion vector predictor (MVP) candidates in a merge candidate list (n) is less than a number of slots allocated for MVP candidates in the merge candidate list (N), checking motion information at a first position (cO) in or around a collocated block; when the first position is coded in an inter mode, including motion information at the first position (cO) in the merge candidate list as a MVP candidate; increasing the number of MVP candidates in the merge candidate list by one, when the motion information at the first position (cO) is included in the merge candidate list as the MVP candidate; when the number of MVP candidates in themerge candidate list is less than the number of slots allocated for MVP candidates in the merge candidate list, checking motion information at a second position (cl) in or around the collocated block; when the second position is coded in an inter mode, including motion information at the second position (cl) in the merge candidate list as the MVP candidate; increasing the number of MVP candidates in the merge candidate list by one, when the motion information at the second position (cl) is included in the merge candidate list as MVP candidate; wherein the first position and the second position comprise a pair.

[0048] Example 46: The method of example 45, wherein when first position and the second position are coded in the inter mode, the method comprises performing a pre-selection process.

[0049] Example 47: The method of example 46, wherein the pre-selection process comprises: evaluating the motion information at the first position (cO) and the second position (cl); based upon evaluation results, including the motion information at the first position (cO), the second position (cl), or any combination thereof in the merge candidate list as the MVP candidate, when the number of MVP candidates in the merge candidate list is less than the number of slots allocated for MVP candidates in the merge candidate list.

[0050] Example 48: The method of example 47, wherein the evaluating comprises using a cost function for estimating a coding cost of a current block based on a prediction block associated with the motion information at the first position and the second position.

[0051] Example 49: The method of example 47, wherein the evaluating comprises using template costs associated with the motion information at first position and the second position with respect to a current block.

[0052] Example 50: The method of any of the examples 45 to 49, wherein the method comprises performing the checking until the number of MVP candidates in the merge candidate list is equal to the number of slots allocated for MVP candidates in the merge candidate list, or a last pair over a checking area has been checked.

[0053] Example 51: The method of any of the examples 45 to 50, wherein when none of the first position and the second position is coded in the inter mode, no MVP candidates are included in the merge candidate list.

[0054] Example 52: The method of any of the examples 45 to 51 further comprising: selecting one or more MVP candidates from the merge candidate list for the current block; signaling the selected one or more MVP candidate to a decoder.

[0055] Example 53: The method of any of the examples 45 to 51 further comprising: receiving a selected MVP candidate for a current block, wherein the selected MVP candidate is selected by an encoder from the merge candidate list; using the selected MVP candidate for the current block.

[0056] Example 54: A method comprising: when a number of motion vector predictor (MVP) candidates in a merge candidate list (n) is less than a number of slots allocated for MVP candidates in the merge candidate list (N), checking motion information at a first position (cO) and a second position (cl) in or around a collocated block; when one of the first position or the second position is coded in an inter coded mode, including motion information at one of the first position (cO) or the second position (cl) in the merge candidate list as a MVP candidate; when the first position and the second position are coded in the inter coded mode, evaluating the motion information at the first position (cO) and the second position (cl); based on the evaluation, including the motion information at one the first position (cO) or the second position (cl) in the merge candidate list as the MVP candidate; when the motion information at one of the first position (cO) or the second position (c 1) is included in the merge candidate list as the MVP candidate, increasing the number of MVP candidates in the merge candidate list by one; wherein the first position and the second position comprise a pair.

[0057] Example 55: The method of example 54, wherein the evaluating comprises using a cost function for estimating a coding cost of the current block based on a prediction block associated with the motion information at the first position and the second position.

[0058] Example 56: The method of example 54, wherein the evaluating comprises using template costs associated with the motion information at first position and the second position with respect to the current block.

[0059] Example 57: The method of any of the previous 54 to 56, wherein the method comprises performing the checking until the number of MVP candidates in the merge candidate list is equal to the number of slots allocated for MVP candidates in the merge candidate list, or a last pair over a checking area has been checked.

[0060] Example 58: The method of any of the examples 54 to 57, wherein when none of the first position and the second position is coded in the inter mode, no MVP candidates are included in the merge candidate list.

[0061] Example 59: The method of any of the examples 54 to 58 further comprising: selecting a MVP candidate comprising from the merge candidate list for a current block; signaling the selected MVP candidate to a decoder.

[0062] Example 60: The method of any of the examples 54 to 58 further comprising: receiving a selected MVP candidate for a current block, wherein the selected MVP candidate is selected by an encoder from the merge candidate list; using the selected MVP candidate for the current block.

[0063] Example 61: A method comprising: checking one or more pairs of positions in or around a collocated block in pre-set order; determining a pair of positions as valid when at least one position of a pair is coded in inter mode; continuing checking of the one or more pairs until a number of valid pairs is equal to a number of slots allocated for motion vector predictor (MVP) candidates in the merge candidate list (N) or all the one or more pairs have been checked; evaluating motion information at positions of the valid pairs; based on the evaluation, including up to N sets of motion information at the evaluated positions in the merge candidate list.

[0064] Example 62: The method of example 61, wherein the evaluating comprises using a cost function for estimating a coding cost of the current block based on a prediction block associated with the motion information at the first position and the second position.

[0065] Example 63: The method of example 61, wherein the evaluating comprises using template costs associated with the motion information at first position and the second position with respect to the current block.

[0066] Example 64: The method of any of the examples 61 to 63 further comprising: selecting a MVP candidate comprising from the merge candidate list for the current block; signaling the selected MVP candidate to a decoder.

[0067] Example 65: The method of any of the examples 61 to 63 further comprising: receiving a selected MVP candidate for the current block, wherein the selected MVP candidate is selected by an encoder from the merge candidate list; using the selected MVP candidate for the current block.

[0068] Example 66: A method comprising: when a number of motion vector predictor (MVP) candidates in a merge candidate list (n) is less than a number of slots allocated for MVP candidates in the merge candidate list (N), checking motion information at a first position (cO) and a second position (cl) in or around a collocated block; when the first position is coded in an inter mode and the second position is not coded in the inter mode, collecting motion information at the first position in sets of collected motion information; when the motion information at the first position is collected, increasing the value of n by one; when the second position is coded in the inter mode and the first position is not coded in the inter mode, collecting motion information at the second position in the sets of collected motion information; when the motion information at the second position is collected, increasing the value of n by one; when the first position is coded and the second position are coded in the inter mode,collecting motion information at the first position and the second position in the sets of collected motion information; when the motion information at the first position and the second position are collected, increasing the value of n by two.

[0069] Example 67: The method of example 66, wherein when none of the first position and the second position is coded in the inter mode, the motion information at the first position and the second position is not collected in the sets of collected motion information.

[0070] Example 68: The method of any of the examples 66 or 67, wherein the method comprises performing the checking until the number of MVP candidates in the merge candidate list is equal to the number of slots allocated for MVP candidates in the merge candidate list, or a last pair over a checking area has been checked.

[0071] Example 69: The method of example 68 further comprising: evaluating the sets of collected motion information; including up to N sets of motion information in the merge candidate list as MVP candidates.

[0072] Example 70: The method of example 69, wherein the evaluating comprises using a cost function for estimating a coding cost of the current block based on a prediction block associated with the motion information at the first position and the second position.

[0073] Example 71: The method of example 69, wherein the evaluating comprises using template costs associated with the motion information at first position and the second position with respect to the current block.

[0074] Example 72: The method of any of the examples 66 to 71 further comprising: selecting a MVP candidate comprising from the merge candidate list for the current block; signaling the selected MVP candidate to a decoder.

[0075] Example 73: The method of any of the examples 66 to 71 further comprising: receiving a selected MVP candidate for the current block, wherein the selected MVP candidate is selected by an encoder from the merge candidate list; using the selected MVP candidate for the current block.

[0076] Example 74: The method of any of the examples 45 to 73, wherein, for the current block, the MVP candidates are applied to pictures with small temporal distances to corresponding collocated pictures.

[0077] Example 75: The method of any of the examples 45 to 73, wherein, for the current block, the MVP candidates are applied to the pictures with temporal distances to corresponding collocatedpictures is equal to one.

[0078] Example 76: The method of any of the examples 45 to 75, wherein the MVP candidate comprises one of a temporal motion vector predictor (TMVP), an advanced motion vector predictor (AMVP), or an affine AMVP, and wherein the merge candidate list comprises one of a TMVP merge candidate list, an AMVP merge candidate list, affine merge candidate list, or an affine AMVP merge candidate list.

[0079] Example 77: A method comprising: performing a checking process for a pair comprising a first position and a second position in or around a collated block, wherein there are one or more pairs in or around the collated block, and wherein the checking process comprises: when a number of motion vector predictor (MVP) candidates in a merge candidate list (n) is less than a number of slots allocated for MVP candidates in the merge candidate list (N), the method further comprises: checking motion information at the first position (cO); when the first position is coded in an inter mode, the method further comprises: including motion information at the first position (cO) in the merge candidate list as a MVP candidate; increasing the number of MVP candidates in the merge candidate list by one; when the number of MVP candidates in the merge candidate list is less than the number of slots allocated for MVP candidates in the merge candidate list, the method further comprises: checking motion information at the second position (cl); when the second position is coded in an inter mode, the method further comprises: including motion information at the second position (cl) in the merge candidate list as the MVP candidate; increasing the number of MVP candidates in the merge candidate list by one; performing the checking process for next pair of the one mor more pairs.

[0080] Example 78: A method comprising: performing a checking process for a pair comprising a first position and a second position in or around a collated block, wherein there are one or more pairs in or around the collated block, and wherein the checking process comprises: when a number of motion vector predictor (MVP) candidates in a merge candidate list (n) is less than a number of slots allocated for MVP candidates in the merge candidate list (N), the method further comprises: checking motion information at a first position (cO) and a second position (cl) in or around the collocated block; when one of the first position or the second position is coded in an inter coded mode, the method further comprises: including motion information at one of the first position (cO) or the second position (cl) in the merge candidate list as a MVP candidate; increasing the number of MVP candidates in the merge candidate list by one; performing the checking process for the next pair of the one or more pairs; when the first position and the second position are coded in the inter coded mode, the method further comprises: evaluating the motion information at the first position (cO) and the second position (cl); based on the evaluation, including the motion information at one the first position (cO) or the second position (cl) in the merge candidate list as the MVP candidate; increasing the number of MVPcandidates in the merge candidate list by one; performing the checking process for the next pair of the one or more pairs; when none of the first position and the second position are coded in the inter coded mode, the method further comprises: performing the checking process for the next pair of the one or more pairs.

[0081] Example 79: A method comprising: performing a checking process for a pair comprising a first position and a second position in or around a collated block, wherein there are one or more pairs in or around the collated block, and wherein the checking process comprises: when a number of motion vector predictor (MVP) candidates in a merge candidate list (n) is less than a number of slots allocated for MVP candidates in the merge candidate list (N), the method further comprises: checking motion information at a first position (cO) and a second position (cl) in or around the collocated block; when the first position is coded in an inter mode and the second position is not coded in the inter mode, the method further comprises: collecting motion information at the first position in sets of collected motion information; increasing the number of MVP candidates in the merge candidate list by one; performing the checking process for the next pair of the one or more pairs; when the second position is coded in an inter mode and the first position is not coded in the inter mode, the method further comprises: collecting motion information at the second position in the sets of collected motion information; increasing the number of MVP candidates in the merge candidate list by two; and performing the checking process for the next pair of the one or more pairs; when the first position and the second position are coded in the inter mode, the method further comprises: collecting motion information at the first and second positions in the sets of collected motion information; increasing the number of MVP candidates in the merge candidate list by two; performing the checking process for the next pair of the one or more pairs; when the first position and the second position are not coded in the inter mode, the method further comprises: performing the checking process for the next pair of the one or more pairs; evaluating the sets of collected motion information; including up to N sets of motion information in the merge candidate list as MVP candidates.

[0082] Example 80: The method of any of the examples 77 to 79, wherein the method comprises performing the checking process until the number of MVP candidates in the merge candidate list is equal to the number of slots allocated for MVP candidates in the merge candidate list, or a last pair over a checking area has been checked.

[0083] Example 81 : The method of example 77, wherein when first position and the second position are coded in the inter mode, the method further comprises performing a pre-selection process, wherein the pre-selection process comprises: evaluating the motion information at the first position (cO) and the second position (cl); based upon evaluation results, including the motion information at the first position (cO), the second position (cl), or any combination thereof in the merge candidate list as theMVP candidate, when the number of MVP candidates in the merge candidate list is less than the number of slots allocated for MVP candidates in the merge candidate list.

[0084] Example 82: The method of any of the examples 78 to 81, wherein the evaluating comprises using a cost function for estimating a coding cost of the current block based on a prediction block associated with the motion information at the first position and the second position.

[0085] Example 83: The method of example 82, wherein the evaluating comprises using template costs associated with the motion information at first position and the second position with respect to the current block.

[0086] Example 84: The method of any of the examples 77 to 83 further comprising: selecting a MVP candidate comprising from the merge candidate list for the current block; signaling the selected MVP candidate to a decoder.

[0087] Example 85: The method of any of the examples 77 to 83 further comprising: receiving a selected MVP candidate for the current block, wherein the selected MVP candidate is selected by an encoder from the merge candidate list; using the selected MVP candidate for the current block.

[0088] Example 86: The method of any of the examples 77 to 85, wherein, for the current block, the MVP candidates are applied to pictures with small temporal distances to corresponding collocated pictures.

[0089] Example 87: The method of any of the examples 77 to 85, wherein, for the current block, the MVP candidates are applied to the pictures with temporal distances to corresponding collocated pictures is equal to one.

[0090] Example 88: The method of any of the examples 77 to 87, wherein the MVP candidate comprises one of a temporal motion vector predictor (TMVP), an advanced motion vector predictor (AMVP), or an affine AMVP, and wherein the merge candidate list comprises one of a TMVP merge candidate list, an AMVP merge candidate list, affine merge candidate list, or an affine AMVP merge candidate list.

[0091] Example 89: An apparatus comprising means for performing the methods as described in any of the examples 45 to 53.

[0092] Example 90: An apparatus comprising means for performing the methods as described in any of the examples 54 to 60.

[0093] Example 91: An apparatus comprising means for performing the methods as described in any of the examples 61 to 65.

[0094] Example 92: An apparatus comprising means for performing the methods as described in any of the examples 66 to 76.

[0095] Example 93: An apparatus comprising means for performing the methods as described in example 77.

[0096] Example 94: An apparatus comprising means for performing the methods as described in example 78.

[0097] Example 95: An apparatus comprising means for performing the methods as described in any of the examples 79 to 88.

[0098] Example 96: A computer readable medium comprising program instructions that, when executed by an apparatus, cause the apparatus to perform the methods as described in any of the examples 45 to 53.

[0099] Example 97: The computer readable medium of example 96, wherein the computer readable medium comprises a non-transitory computer readable medium.

[0100] Example 98: A computer readable medium comprising program instructions that, when executed by an apparatus, cause the apparatus to perform the methods as described in any of the examples 54 to 60.

[0101] Example 99: The computer readable medium of example 98, wherein the computer readable medium comprises a non-transitory computer readable medium.

[0102] Example 100: A computer readable medium comprising program instructions that, when executed by an apparatus, cause the apparatus to perform the methods as described in any of the examples 61 to 65.

[0103] Example 101: The computer readable medium of example 100, wherein the computer readable medium comprises a non-transitory computer readable medium.

[0104] Example 102: A computer readable medium comprising program instructions that, when executed by an apparatus, cause the apparatus to perform the methods as described in any of the examples 66 to 76.

[0105] Example 103: The computer readable medium of example 102, wherein the computer readable medium comprises a non-transitory computer readable medium.

[0106] Example 104: A computer readable medium comprising program instructions that, when executed by an apparatus, cause the apparatus to perform the method as described in example 77.

[0107] Example 105: The computer readable medium of example 104, wherein the computer readable medium comprises a non-transitory computer readable medium.

[0108] Example 106: A computer readable medium comprising program instructions that, when executed by an apparatus, cause the apparatus to perform the method as described in example 78.

[0109] Example 107: The computer readable medium of example 106, wherein the computer readable medium comprises a non-transitory computer readable medium.

[0110] Example 108: A computer readable medium comprising program instructions that, when executed by an apparatus, cause the apparatus to perform the methods as described in any of the examples 79 to 88.

[0111] Example 109: The computer readable medium of example 108, wherein the computer readable medium comprises a non-transitory computer readable medium.BRIEF DESCRIPTION OF THE DRAWINGS

[0112] The foregoing embodiments and other features are explained in the following description, taken in connection with the accompanying drawings, wherein:

[0113] FIG. 1 shows schematically an apparatus employing embodiments of the examples described herein.

[0114] FIG. 2 shows schematically a user equipment suitable for employing embodiments of the examples described herein.

[0115] FIG. 3 further shows schematically electronic devices employing embodiments of the examples described herein connected using wireless and wired network connections.

[0116] FIG. 4 is a block diagram illustrating a system in accordance with an example.

[0117] FIG. 5 shows a template of a current coding unit (CU) (Tc) 506 and a template of a corresponding prediction block (Tp).

[0118] FIG. 6 shows the two positions specified in versatile video coding (VVC).

[0119] FIG. 7 shows the check positions in the collocated picture for a current block, specified in enhanced compression model (ECM).

[0120] FIG. 8 shows an example of picture structure within a group of pictures (GOP) under random access configuration.

[0121] FIG. 9 shows an example of a temporal motion vector predictor (TMVP) search area in collocated picture.

[0122] FIG. 10 shows an example, where there are multiple check positions around a collocated block.

[0123] FIG. l lis an example apparatus, which may be implemented in hardware, and is caused to, implement examples described herein.

[0124] FIG. 12 shows a representation of an example of non-volatile memory media used to store instructions that implement the examples described herein.

[0125] FIG. 13 is an example method performed with an encoder or a decoder, based on the examples described herein.

[0126] FIG. 14 is another example method performed with an encoder or a decoder, based on the examples described herein.

[0127] FIG. 15 is yet another example method performed with an encoder or a decoder, based on the examples described herein.

[0128] FIG. 16 is still another example method performed with an encoder or a decoder, based on the examples described herein.DETAIEED DESCRIPTION OF EXAMPEE EMBODIMENTS

[0129] The following acronyms and abbreviations that may be found in the specification and / or the drawing figures are defined as follows (the abbreviations may be appended with each other or with other characters using e.g. a hyphen or dash (-), and may be case insensitive):4CC four character code5G fifth generation cellular network technology5GC 5G core network a.k.a. also known asAVC advanced video codingCU coding unitDSP digital signal processorDU distributed unit eNB (or eNodeB) evolved Node B (for example, an LTE base station)EN-DC E-UTRA -NR dual connectivity en-gNB or En-gNB node providing NR user plane and control plane protocol terminations towards the UE, and acting as secondary node in EN-DCE-UTRA evolved universal terrestrial radio access, for example, the LTE radio access technologyFl or Fl-C interface between CU and DU control interface gNB (or gNodeB) base station for 5G / NR, for example, a node providing NR user plane and control plane protocol terminations towards the UE, and connected via the NG interface to the 5GCIEC International Electrotechnical Commission loT internet of thingsISO International Organization for StandardizationISOBMFF ISO base media file formatJPEG joint photographic experts groupLTE long-term evolution mdat MediaDataBoxMIME Multipurpose Internet Mail ExtensionMME mobility management entity moov MovieBoxMP4 file format for MPEG-4 Part 14 filesMPEG moving picture experts groupMPEG-2 H.222 / H.262 as defined by the ITUMPEG-4 audio and video coding standard for ISO / IEC 14496 ng or NG new generation ng-eNB or NG-eNB new generation eNBNR new radio (5G radio)N / W or NW networkPDCP packet data convergence protocolPHY physical layerPNG portable network graphicsRAN radio access networkRFC request for commentsRLC radio link controlRRC radio resource controlRRH remote radio headRU radio unitRx receiverSDAP service data adaptation protocolSGW serving gatewaySMF session management functionSPS sequence parameter setSVC scalable video codingSI interface between eNodeBs and the EPC trak TrackBoxTx transmitterUE user equipmentUICC Universal Integrated Circuit CardUPF user plane functionURL uniform resource locatorX2 interconnecting interface between two eNodeBs in LTE networkXn interface between two NG-RAN nodes

[0130] Some embodiments will now be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all, embodiments may be shown. Indeed, various embodiments of the invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Like reference numerals refer to like elements throughout. As used herein, the terms ‘data,’ ‘content,’ ‘information,’ and similar terms may be used interchangeably to refer to data capable of being transmitted, received and / or stored in accordance withembodiments of the present invention. Thus, use of any such terms should not be taken to limit the spirit and scope of embodiments.

[0131] Described herein is a method and apparatus for motion vector predictor, for example, temporal motion vector predictor (TMVP) candidate selection for enhanced compression model (ECM).

[0132] The following describes in detail a suitable apparatus and possible method for motion vector predictor, for example, temporal motion vector predictor (TMVP) candidate selection for enhanced compression model (ECM) according to embodiments. In this regard reference is first made to FIG. 1 and FIG. 2, where FIG. 1 shows an example block diagram of an electronic device or apparatus 100. The apparatus 100 may be an Internet of Things (loT) apparatus configured to perform various functions, such as for example, gathering information by one or more sensors, receiving or transmitting information, analyzing information gathered or received by the apparatus, or the like. The apparatus may comprise a video coding system, which may incorporate a codec. FIG. 2 shows a layout of an apparatus according to an example embodiment. The elements of FIG. 1 and FIG. 2 are explained next.

[0133] The apparatus 100 may for example be a mobile terminal or user equipment of a wireless communication system, a sensor device, a tag, or other lower power device. However, it would be appreciated that embodiments of the examples described herein may be implemented within any electronic device or apparatus which may process data by neural networks.

[0134] The apparatus 100 may comprise a housing 101 for incorporating and protecting the device. The apparatus 100 further may comprise a display 102 in the form of a liquid crystal display. In other embodiments of the examples described herein the display may be any suitable display technology suitable to display an image or video. The apparatus 100 may further comprise a keypad 104. In other embodiments of the examples described herein any suitable data or user interface mechanism may be employed. For example the user interface may be implemented as a virtual keyboard or data entry system as part of a touch-sensitive display.

[0135] The apparatus may comprise a microphone 106 or any suitable audio input which may be a digital or analog signal input. The apparatus 100 may further comprise an audio output device which in embodiments of the examples described herein may be any one of: an earpiece 108, speaker, or an analog audio or digital audio output connection. The apparatus 100 may also comprise a battery (or in other embodiments of the examples described herein the device may be powered by any suitable mobile energy device such as solar cell, fuel cell or clockwork generator). The apparatus 100 may further comprise a camera 109 capable of recording or capturing images and / or video. The apparatus 100 may further comprise an infrared port for short range line of sight communication to other devices. In otherembodiments the apparatus 100 may further comprise any suitable short range communication solution such as for example a Bluetooth wireless connection or a USB / firewire wired connection.

[0136] The apparatus 100 may comprise a controller 110, processor or processor circuitry for controlling the apparatus 100. The controller 110 may be connected to memory 112 which in embodiments of the examples described herein may store both data in the form of image and audio data and / or may also store instructions for implementation on the controller 110. The controller 110 may further be connected to codec circuitry 114 suitable for carrying out coding and / or decoding of audio and / or video data or assisting in coding and / or decoding carried out by the controller.

[0137] The apparatus 100 may further comprise a card reader 118 and a smart card 116, for example a UICC and UICC reader for providing user information and being suitable for providing authentication information for authentication and authorization of the user at a network.

[0138] The apparatus 100 may comprise radio interface circuitry 120 connected to the controller and suitable for generating wireless communication signals for example for communication with a cellular communications network, a wireless communications system or a wireless local area network. The apparatus 100 may further comprise an antenna 122 connected to the radio interface circuitry 120 for transmitting radio frequency signals generated at the radio interface circuitry 120 to other apparatus(es) and / or for receiving radio frequency signals from other apparatus(es).

[0139] The apparatus 100 may comprise a camera capable of recording or detecting individual frames which are then passed to the codec circuitry 114 or the controller for processing. The apparatus may receive the video image data for processing from another device prior to transmission and / or storage. The apparatus 100 may also receive either wirelessly or by a wired connection the image for coding / decoding. The structural elements of apparatus 100 described above represent examples of means for performing a corresponding function.

[0140] With respect to FIG. 3, an example of a system within which embodiments of the examples described herein can be utilized is shown. The system 300 comprises multiple communication devices which can communicate through one or more networks. The system 300 may comprise any combination of wired or wireless networks including, but not limited to a wireless cellular telephone network (such as a GSM, UMTS, CDMA, LTE, 4G, 5G network, etc.), a wireless local area network (WLAN) such as defined by any of the IEEE 802.x standards, a Bluetooth personal area network, an Ethernet local area network, a token ring local area network, a wide area network, and the Internet.

[0141] The system 300 may include both wired and wireless communication devices and / or apparatus 100 suitable for implementing embodiments of the examples described herein.

[0142] For example, the system shown in FIG. 3 shows a mobile telephone network 301 and a representation of the internet 302. Connectivity to the internet 302 may include, but is not limited to, long range wireless connections, short range wireless connections, and various wired connections including, but not limited to, telephone lines, cable lines, power lines, and similar communication pathways.

[0143] The example communication devices shown in the system 300 may include, but are not limited to, an electronic device or apparatus 100, a combination of a personal digital assistant (PDA) and a mobile telephone 304, a PDA 306, an integrated messaging device (IMD) 308, a desktop computer 310, a notebook computer 312, or a head-mounted apparatus. The head-mounted apparatus may be a head-mounted display (HMD), or glasses having a device such as a camera configured to encode and / or decode images and / or video. The apparatus 100 may be stationary or mobile when carried by an individual who is moving. The apparatus 100 may also be located in a mode of transport including, but not limited to, a car, a truck, a taxi, a bus, a train, a boat, an airplane, a bicycle, a motorcycle or any similar suitable mode of transport.

[0144] The embodiments may also be implemented in a set-top box; e.g., a digital TV receiver, which may / may not have a display or wireless capabilities, in tablets or (laptop) personal computers (PC), which have hardware and / or software to process neural network data, in various operating systems, and in chipsets, processors, DSPs and / or embedded systems offering hardware / software based coding.

[0145] Some or further apparatus may send and receive calls and messages and communicate with service providers through a wireless connection 314 to a base station 316. The base station 316 may be connected to a network server 318 that allows communication between the mobile telephone network 301 and the internet 302. The system may include additional communication devices and communication devices of various types.

[0146] The communication devices may communicate using various transmission technologies including, but not limited to, code division multiple access (CDMA), global systems for mobile communications (GSM), universal mobile telecommunications system (UMTS), time divisional multiple access (TDMA), frequency division multiple access (FDMA), transmission control protocolinternet protocol (TCP-IP), short messaging service (SMS), multimedia messaging service (MMS), email, instant messaging service (IMS), Bluetooth, IEEE 802.11, 3GPP Narrowband loT and any similar wireless communication technology. A communications device involved in implementing various embodiments of the examples described herein may communicate using various media including, but not limited to, radio, infrared, laser, cable connections, and any suitable connection.

[0147] In telecommunications and data networks, a channel may refer either to a physical channel or to a logical channel. A physical channel may refer to a physical transmission medium such as a wire, whereas a logical channel may refer to a logical connection over a multiplexed medium, capable of conveying several logical channels. A channel may be used for conveying an information signal, for example a bitstream, from one or several senders (or transmitters) to one or several receivers.

[0148] The embodiments may also be implemented in so-called loT devices. The Internet of Things (loT) may be defined, for example, as an interconnection of uniquely identifiable embedded computing devices within the existing Internet infrastructure. The convergence of various technologies has and may enable many fields of embedded systems, such as wireless sensor networks, control systems, home / building automation, etc. to be included in the Internet of Things (loT). In order to utilize the Internet loT devices are provided with an IP address as a unique identifier. loT devices may be provided with a radio transmitter, such as a WLAN or Bluetooth transmitter or a RFID tag. Alternatively, loT devices may have access to an IP -based network via a wired network, such as an Ethernet-based network or a power-line connection (PLC).

[0149] FIG. 4 is a block diagram illustrating a system or apparatus 400 in accordance with several examples. In an example, the encoder 402 is used to encode an image or video, and the encoder 402 may be implemented in a transmitting apparatus 404. The encoder 402 produces a bitstream 406 comprising signaling that is received by the receiving apparatus 408, which implements a decoder 410. The encoder 402 sends the bitstream 406 that comprises the herein described signaling. The decoder 410 forms the image or video, and the receiving apparatus 408 may present this to the user, e.g., via a smartphone, television, or projector among many other options.

[0150] In some examples, the encoder 402 may reside in a separate apparatus from the transmitting apparatus 404. In some examples, the apparatus comprising the encoder 402 may be connected to the transmitting apparatus 404, e.g., through a memory bus. In some examples, the encoder 402 may produce the bitstream 406 that is stored, e.g. in a mass memory.

[0151] In some examples, the decoder 410 may reside in a separate apparatus from the receiving apparatus 408. In some examples, the apparatus comprising the decoder 410 may be operationally connected to the receiving apparatus 408, e.g., through a memory bus. In some examples, the decoder 410 may obtain the bitstream 406 from a mass memory.

[0152] In some examples, the transmitting apparatus 404 and the receiving apparatus 408 are at least partially within a common apparatus, and for example, are located within a common housing 412. For example, the common apparatus comprising the encoder 402 and decoder 410 implements a codec. Inother examples, the encoder 402 and the decoder 410 are at least partially not within a common apparatus and have at least partially different housings, but when together, may still implement a codec.

[0153] As indicated at 414, the decoder 410 performs an operation(s) or action(s) based on the received signaling.

[0154] In some examples, encoding 416 performs encoding of motion information, based on the examples described herein. In some examples, decoding 418 of motion information, based on the examples described herein.

[0155] Having thus introduced a suitable but non-limiting technical context for the practice of the example embodiments of the present disclosure, example embodiments will now be described in detail.

[0156] Features as described herein may generally relate, for example, to versatile video coding (VVC) and / or enhanced compression model (ECM).

[0157] Versatile video coding

[0158] Versatile Video Coding (VVC) is a video coding standard, and Enhanced Compression Model (ECM), built on top of VVC, is potentially a future video coding standard currently under development sponsored by JVET. Both VVC and ECM are block -based video coding standards, where an input picture is divided into Coding Tree Units (CTUs), and each CTU may be further split into Coding Units (CUs). A CU (or block) is coded in either inter-coding mode or intra-coding mode. When the block is in inter-coding mode, the encoder searches for a temporal prediction block in reference picture(s) and signals the decoder on how to find the same prediction block in reference picture(s) at the decoder end. When the block is in intra-coding mode, the encoder constructs a spatial prediction block from the current picture and signals the decoder on how to form the same spatial prediction block from the current picture at the decoder end.

[0159] For a current inter-CU in a current picture, the associated temporal prediction block in reference pictures is represented by motion information (e.g., motion vectors, reference pictures, reference lists) with respect to the current CU in the current picture. The encoder signals the motion information to the decoder, and the decoder uses the motion information to form the temporal prediction block from reference pictures.

[0160] In VVC and ECM, for a current CU, its motion information may include two parts: motion information prediction (e.g., motion vector prediction - MVP) and motion information delta (e.g., motion vector difference - MVD). For a current CU, its motion information prediction is derived from the motion information of the past inter coded CUs in the current picture or in reference pictures, andon the other hand, the motion information delta is often coded in an explicit manner.

[0161] VVC and ECM supports many new and refined coding tools for deriving the motion information prediction for a current CU. One of the coding tools is merge prediction, in which for a current CU, both encoder and decoder construct a same list of merge candidates. The merge candidates hold the motion information of the past inter coded CUs around the current CU both spatially and temporally. Encoder selects a merge candidate (motion information) from the merge candidate list for the current CU, and signals decoder which merge candidate in the merge candidate list to be used for the current CU.

[0162] In the current design of ECM, for a current CU in a current picture, encoder and decoder may collect an initial set of merge candidates, including the following types of candidates:

[0163] Spatial merge candidates;

[0164] Temporal merge candidates (TMVP);

[0165] Non-adjacent merge candidates;

[0166] History-based merge candidates (HMVP);

[0167] History-based merge candidates from Affine HMVP; and

[0168] Pairwise merge candidates (moved to next step).

[0169] The initial set of merge candidates may have many (up to 25 in the current design) merge candidates. Each merge candidate holds the motion information (e.g., motion vectors, reference pictures, reference picture lists) of a post inter-coded CU. With the motion information of a merge candidate, encoder and decoder are able to find the corresponding prediction block in reference picture. The left and above reconstructed neighboring pixels of the current CU 502 and the prediction block 504 form the template of the current CU (T c) 506 and the template of the corresponding prediction block (Tpl' 508, respectively, as shown in FIG. 5.

[0170] The template cost of a merge candidate against the current CU is defined as the difference between the template of the merge candidate and the template of the current CU, as following:

[0171] template cost = diff(Tc — Tp)

[0172] One of possible metrics for difference is SAD (sum of absolute difference).

[0173] In the current design of ECM, encoder and decoder then sort the initial set of merge candidates based on their template costs, with the merge candidate having the lowest template cost appearing first in the sorted list.

[0174] The sorting process is followed by a diversity process, which removes some merge candidates with similar motion information.

[0175] The final merge candidate list contains a small set of (up to 10 in the current ECM design) merge candidates in the current ECM design.

[0176] Both encoder and decoder should have the same final merge candidate list.

[0177] Encoder may code the current CU by using one of merge candidate in the merge candidate list. When so, encoder needs to signal decoder which merge candidate is used to code the current CU.

[0178] One of merge types in ECM is temporal merge candidates or TMVP candidates. For a current CU in a current picture, TMVP candidates are derived from motion information at certain positions in the collocated pictures. In the current ECM design, those positions are distributed over an area of 5x5 blocks in the collocated picture, each block is of the same size as the current block and the top-left block of the area is the collocated block. These positions are grouped into pairs. For a pair, its two positions are checked in sequence. Specifically, one position is checked first. When the first position is coded in inter mode, motion information at the position will be included in merge candidate list, when there are still slots available for TMVP candidates, and the other position will not be checked. Only when the first position is not in inter mode or not available, the other position is then checked. As seen, ECM does not treat the two positions of a pair equally. In fact, ECM tends to bias toward one of the two positions in a pair.

[0179] Various embodiments propose that for a pair, both its positions are checked. When both positions are coded in inter mode, motion information at both positions will be included in the merge candidate list, when there are still slots available for TMVP candidates.

[0180] In VVC, for a current block, the merge candidate list includes one temporal merge candidate (TMVP). The TMVP candidate includes the motion information associated with the collocated block in collocated picture. For a current block in a current picture, its collocated block is a block of the same size at the same geometric location in the collocated picture. Up to two positions around the collocated block are checked.

[0181] FIG. 6 shows the two positions cO 602 and cl 604, specified in VVC. The position cO 602 is at the bottom-right corner of a collocated block 606 and the position cl 604 is at the center of thecollocated block 606.

[0182] In VVC, for a current block 608, position cO 602 is checked first. When position cO 602 is coded in inter mode, its motion information is included in the merge candidate list as the only TMVP candidate, and position cl 604 will not be checked. Otherwise, when position cO 602 is not coded in inter mode or not available, position cl 604 is then checked. When position cl 604 is coded in inter mode, its motion information is included in the merge candidate list as the only TMVP candidate. When none of position cO 602 and cl 604 is not coded in inter mode or not available, there will be no TMVP in the merge candidate list.

[0183] ECM increase the number of TMVP candidates in the merge candidate list for a current block. In the current ECM design, for a current picture, when all the reference pictures are in the past of the current picture, the merge candidate list can have up to N=8 TMVP candidates; otherwise, the merge candidate list can have up to N=4 TMVP candidates.

[0184] ECM also extends possible check positions for TMVP candidates in the collocated picture for a current block. As an example, FIG. 7 shows the check positions in the collocated picture for a current block, specified in ECM. The check positions are spread over an area of 5x5 blocks in the collocated picture. Each block is of the same size as the current and collocated blocks. The top-left block of the area is the collocated block 702.

[0185] The collocated block 702 includes four check positions, a red circle 704 and a red triangle 706; and a blue circle 708 and a blue triangle 710, as shown in FIG. 7. Assuming the top-left coordinate of the collocated block is (x,y), weight is w, and height is h, co-ordinates for four check positions, the red circle 704, the red triangle 706, the blue circle 708, and the blue triangle 710 may be determined as following:• The coordinate of red circle 704 position is (x+w-l,y+h-l).• The coordinate of red triangle 706 position is (x+w»l,y+h»l).• The coordinate of blue circle 708 position is (x+w,y+3*h»2).• The coordinate of blue triangle 710 position is (x+3*w»2,y+h).

[0186] Positions for the red circle 704 and the red triangle 706, in the collocated block, form a pair.

[0187] Positions for the blue circle 708 and the blue triangle 710, in the collocated block, form a pair.

[0188] Each block, along a diagonal line from the top-left to the bottom-right, includes two check positions: for example, the red circle and the red triangle, as shown in FIG. 7. Assuming the top-left coordinate of a block along the diagonal line is (x,y) and weight is w and height is h, co-ordinates for the red circle and the red triangle in the block may be determined as following:• The coordinate of red circle position in the block is (x+w-l,y+h-l).• The coordinate of red triangle position in the block is (x+w»l,y+h»l).

[0189] Position for red circle and red triangle in a block on the diagonal line form a pair. For example, positions for the red circle 704 and the red triangle 706 form a pair.

[0190] Each block on the first horizontal block row 712, except the collocated block 702, includes one check position (e.g., the blue circle 718) on the right, as shown in FIG. 7. Assuming the top-left coordinate of a block on the first horizontal block row is (x,y) and weight is w and height is h, coordinates for the blue circle in the block may be determined as following:• The coordinate of the blue circle position in the block is (x+w,y+h»l).

[0191] Each block on the first vertical block column 714 , except the collocated block 702, includes one check position (e.g., the blue triangle 720) at the bottom, as shown in FIG. 7. Assuming the top-left coordinate of a block on the first vertical block column is (x,y) and weight is w and height is h, coordinates for the blue triangle in the block may be determined as following:• The coordinate of the blue triangle position in the block is (x+w»l,y+h).

[0192] On each blue diagonal line in FIG. 7 (e.g., a diagonal line 730), there are one blue circle position (e.g., the blue circle 718 position) in the first horizontal block row 712 and one blue triangle position (e.g., position of the blue triangle 720) in the first vertical block column 714. The position of the blue circle 718 and the position of the blue triangle 720 form a pair.

[0193] In ECM, for a current block, pairs of positions in the collocated picture are checked and motion information at some of positions are included in the merge candidate list as TMVP candidates. Specifically, red pairs (e.g., the red circle 704 and the red triangle 706) and blue pairs (e.g., the blue circle 708 and the blue triangle 710) are checked alternatively across the area of 5x5 blocks from the top-left to the bottom-right, starting the red pair (e.g., the red circle 704 and the red triangle 706) in the collocated block at the top-left of 5x5 blocks.

[0194] In the following description, let the number of slots allocated for TMVP candidates in themerge candidate list be N, the number of TMVP candidates that have been included in the merge candidate list be n, and circle check position and triangle check position of a pair be cO 602 and cl 604, respectively.

[0195] The procedure for selecting TMVP candidates for a current block is as follows:1. Start with a red pair (e.g., the red circle 704 and the red triangle 706) in the collocated block and the number of included TMVP candidates n set to 0.2. For a red or blue pair (pair checking process), a. if the number of included TMVP candidates n is smaller than N, i. position cO is checked first. If it is coded in inter mode,1. motion information at position cO is included in the merge candidate list as TMVP candidate,2. n is updated to n+1,3. Move back to next pair in order or 2 (pair checking process). ii. Otherwise, if position cO is not coded in inter mode or not available, position cl is then checked. If position cl is coded in inter mode,1. motion information at position cl is included in the merge candidate list as TMVP candidate,2. n is updated to n+1,3. Move back to next pair in order or 2 (pair checking process). iii. Otherwise, if none of position cO and cl is not coded in inter mode or not available, no motion information from the pair will be included in the merge candidate list as TMVP candidate.1. Move back to next pair in order or 2 (pair checking process).

[0196] The pair checking process or 2 in the above continues until the number of included TMVP candidates is equal to N, or the last pair over the checking area of 5x5 blocks has been checked.

[0197] As seen, in ECM, for a pair, if position cO is coded in inter mode, position cl will not bechecked and motion information at position cl will not be included in the merge candidate list. Position cl will be checked and motion information at position cl will be included in the merge candidate list only if position cO is not coded in inter mode, or not available. ECM does not treat positions cO and cl of a pair equally. In fact, ECM tends to bias toward position cO in a pair.

[0198] The described embodiments propose that both positions cO and cl of a pair be checked, and motion information at both positions of a pair be included in the merge candidate list, when there are still slots available for TMVP candidates.

[0199] In an embodiment, the procedure for selecting TMVP candidates for a current block is as follows:1. Start with red pair (e.g., the red circle 704 and the red triangle 706) in the collocated block and the number of included TMVP candidates n set to 0.2. For a red or blue pair (pair checking process), a. if the number of included TMVP candidates n is smaller than N, i. position cO is checked. If it is coded in inter mode,1. motion information at position cO is included in the merge candidate list as TMVP candidate,2. n is updated to n+1, b. if the number of included TMVP candidates n is smaller than N, i. position cl is then checked. If position cl is coded in inter mode,1. motion information at position cl is included in the merge candidate list as TMVP candidate,2. n is updated to n+1, c. Move back to next pair in order or 2 (pair checking process).

[0200] The pair checking process or 2 in the above continues until the number of included TMVP candidates is equal to N, or the last pair over the checking area of 5x5 blocks has been checked.

[0201] In this embodiment, since motion information at both positions of a pair may be included inthe merger candidate, the number of included TMVP candidates n may reach to the number of slots allocated for TMVP candidates in the merge candidate list N faster than in ECM, or the number of pairs checked will be smaller than in ECM.

[0202] To have the same number of pair checked as in ECM, a pre-selection process may apply.

[0203] In one embodiment, a pre-selection process applies at pair level.

[0204] In this embodiment, for a pair, both positions of cO and cl are checked. When none of positions cO and cl is coded in inter mode, no TMVP will be included in the merge candidate list. When position cO or cl is coded in inter mode and the number of included TMVP candidate n is smaller than the number of slots allocated for TMVP candidates in the merge candidate list N, the associated motion information is included in the merge candidate list as TMVP candidate. When both of positions cO and cl are coded in inter, a pre-selection process applies. Motion information at positions cO and cl may be evaluated for the current block. Based upon the evaluation results, motion information at ether position cO or position cl or any combination will be included in the merge candidate list as TMVP candidate, when the number of included TMVP candidates n is smaller than the number of slots allocated for TMVP candidates in the merge candidate list N.

[0205] In another embodiment, the procedure for selecting TMVP candidates for a current block is as follows:1. Start with red pair (e.g., the red circle 704 and the red triangle 706) in the collocated block and the number of included TMVP candidates n set to 0.2. For a red or blue pair (pair checking process), a. if the number of included TMVP candidates n is smaller than N, i. both positions cO and cl are checked.1. If position cO is coded in inter mode, but not position cl, a. motion information at position cO is included in the merge candidate list as TMVP candidate, b. n is updated to n+1, c. move back to next pair in order or 2 (pair checking process)2. Otherwise, if position cl is coded in inter mode, but not position cO, a. motion information at position cl is included in the merge candidate list as TMVP candidate, b. n is updated to n+1, c. move back to next pair in order or 2 (pair checking process)3. Otherwise, if both positions cO and cl are coded in inter mode, a. motion information at positions cO and cl are evaluated for the current block, b. based upon the evaluation, motion information at position cO or cl is included in the merge candidate list as TMVP candidate, c. n is updated to n+1, d. move back to next pair in order or 2 (pair checking process)4. Otherwise, if none of positions cO and cl is coded in inter mode, a. Move back to next pair in order or 2 (pair checking process).

[0206] The pair checking process or 2 in the above embodiment continues until the number of included TMVP candidates is equal to N, or the last pair over the checking area of 5x5 blocks has been checked.

[0207] With this embodiment, for a current block, the same set of pairs will be checked as in ECM, and between the two sets of motion information at positions cO and c 1 of a pair, the better one is included in the merge candidate list.

[0208] Evaluation metrics can be any cost function that can be used to estimate the coding cost of the current block by using the prediction block associated with motion information at check positions.

[0209] In an embodiment, the template costs associated with motion information at positions cO and c 1 of a pair with respect to the current block may be used to evaluate motion information at position cO and cl.

[0210] In an embodiment, a pre-selection process applies at the end of pair checking.

[0211] In this embodiment, pairs are checked in the pre-set order, starting with the red pair in the collocated block (refer to FIG. 7). When at least one position of a pair is coded in inter mode, the pair is considered as a valid pair. The checking of pairs continues until the number of valid pairs becomes equal to the number of slots allocated for TMVP candidates in the merge candidate list N or the last pair has been checked. Then, motion information at positions of the valid pairs are evaluated. Based upon the evaluation, up to N sets of motion information at the evaluated positions are included in the merge candidate list.

[0212] In yet another embodiment, the procedure for selecting TMVP candidates for a current block is as follows:1. Start with red pair (e.g., the red circle 704 and the red triangle 706) in the collocated block and the number of included TMVP candidates n set to 0.2. For a red or blue pair (pair checking process), a. if the number of included TMVP candidates n is smaller than N, i. both positions cO and cl are checked.1. If position cO is coded in inter mode, but not position cl, a. motion information at position cO is collected, b. n is updated to n+1, c. move back to next pair in order or 2 (pair checking process)2. Otherwise, if position cl is coded in inter mode, but not position cO, a. motion information at position cl is collected, b. n is updated to n+1, c. move back to next pair in order or 2 (pair checking process)3. Otherwise, if both positions cO and cl are coded in inter mode, a. motion information at positions cO and c 1 are collected,b. n is updated to n+2, c. move back to next pair in order or 2 (pair checking process)4. Otherwise, if none of positions cO and cl is coded in inter mode, a. Move back to next pair in order or 2 (pair checking process).3. The sets of collected motion information are evaluated for the current block, and based upon the evaluation, up to N sets of motion information are included in the merge candidate list as TMVP candidates

[0213] The pair checking process or 2 in the above continues until the number of included TMVP candidates is equal to N, or the last pair over the checking area of 5x5 blocks has been checked.

[0214] With this embodiment, for a current block, the same set of pairs will be checked as in ECM, and among all the sets of collected motion information, up to N best ones are included in the merge candidate list.

[0215] Evaluation metrics can be any cost function that can be used to estimate the coding cost of the current block by using the prediction block associated with motion information at check positions.

[0216] In one embodiment, the template costs associated with the sets of collected motion information with respect to the current block may be used to evaluate the sets of collected motion information.

[0217] In general, there exist certain degree temporal correlation among consecutive pictures. If the temporal distance between current picture and its collocated picture is small, their temporal correlation tends to be strong, implying TMVP candidates may be more useful. On the other hand, if the temporal distance between current picture and its collocated picture is large, their temporal correlation tends to be weak, implying TMVP candidate may be less useful.

[0218] FIG. 8 shows an example of picture structure within a group of pictures (GOP) under random access configuration. In common test condition under random access configuration, the collocated picture for pictures of picture order count (POC)l 802 and POC3 804 is picture of POC2 806. A temporal distance between pictures of POC1 802 and its collocated picture of POC2 806, (as well as between POC3 804 and its collocated picture of POC2 806) is 1 (e.g., 2-1 = 1 and 3-2 = 1). On the other hand, the collocated picture for picture of POC4 808 is picture of POC8 810, and the collocated picture for picture of POC8 810 is picture of POC 16812. The temporal distance between pictures of POC4 808and its collocated picture of POC8 810 is 4 (e.g., 8-4 = 4). The temporal distance between pictures of POC8 810 and its collocated picture of POC16 812 is 8 (e.g., 16-8 = 8).

[0219] In an embodiment, for a current block, the above proposed embodiments on TMVP candidate selections may be applied to the pictures with small temporal distances to their collocated pictures.

[0220] In an embodiment, for a current block, the above proposed embodiments on TMVP candidate selections may be applied to the pictures with temporal distances to their collocated pictures is equal to 1.

[0221] The above embodiments can be extended to multiple positions in TMVP candidate search area in the collocated picture.

[0222] In one embodiment, for a current block, TMVP candidate search area should include the collocated block for the current block. The TMVP candidate search area may be further divided into blocks. Referring to FIG. 9 it shows an example of TMVP candidate search area 902 in collocated picture for a current block 904 in a current picture, where the TMVP candidate search area includes a collocated block 906, and also convers block rows above / below the collocated block and block columns on the left / right of the collocated block.

[0223] Check positions for TMVP candidates may be distributed over the TMVP candidates search area. Referring to FIG. 10, it shows an example, where there are multiple check positions (cO, cl, ..., clO) around a collocated block 1002.

[0224] Check positions in TMVP candidate search area in the collocated picture are checked in a pre-set order. When a check position is coded in inter mode, its motion information is included in the merge candidate list as TMVP candidates, when there are still slots allocated for TMVP candidates available.

[0225] In an embodiment, for a current block, check positions may be grouped into groups. These groups are checked in a pre-set order. When there are positions in a group coded in inter mode, their motion information are evaluated. Based upon the evaluation, a limited sets of motion information for a group are included in the merge candidate as TMVP candidates, when there are still slots allocated for TMVP candidates available.

[0226] In an embodiment, for a current block, check positions may be grouped into groups. These groups are checked in a pre-set order. When there are positions in a group coded in inter mode, their motion information are evaluated. Based upon the evaluation, one set of motion information for a group is included in the merge candidate as TMVP candidate, when there are still slots allocated for TMVPcandidates available.

[0227] In an embodiment, the template cost associated with motion information at a check position with respect to the current block may be used to evaluate motion information at the check position.

[0228] For a current block, both encoder and decoder should implement the same TMVP search and selection process (embodiment or embodiments) so that encoder and decoder will have the same set of TMVP candidates in the merge candidate list.

[0229] Though the above embodiments are described with help of TMVP in merge candidate list as an example, the above embodiments may also be extended to other candidate lists, such as advanced motion vector prediction (AMVP) merge candidate list, affine merge candidate list, affine AMVP candidate list, and the like.

[0230] FIG. 11 is an example apparatus 1100, which may be implemented in hardware, configured to implement the examples described herein. The apparatus 1100 comprises at least one processor 1102 (e.g., an FPGA and / or CPU), at least one memory 1104 including computer program code 110YY, the computer program code 110YY having instructions to carry out the methods described herein, wherein the at least one memory 1104 and the computer program code 110YY are configured to, with the at least one processor 1102, cause the apparatus 1100 to implement circuitry, a process, component, module, or function (implemented with control module 1106) to implement the examples described herein, including motion vector predictor, for example, temporal motion vector predictor (TMVP) candidate selection for enhanced compression model (ECM). Optionally included encoder 1108 of the control module 1106 implements encoding based on the examples described herein, and optionally included decoder 1110 implements decoding based on the examples described herein. The at least one memory 1104 may be a non-transitory memory, a transitory memory, a volatile memory (e.g. RAM), or a non-volatile memory (e.g., ROM).

[0231] The apparatus 1100 includes a display and / or RO interface 1112, which includes user interface (UI) circuitry and elements, that may be used to display features or a status of the methods described herein (e.g., as one of the methods is being performed or at a subsequent time), or to receive input from a user such as with using a keypad, camera, touchscreen, touch area, microphone, biometric recognition, one or more sensors, etc. The apparatus 1100 includes one or more communication e.g. network (N / W) interfaces (I / F(s)) 1114. The communication I / F(s) 1114 may be wired and / or wireless and communicate over the Internet / other network(s) via any communication technique including via one or more links 1116. The communication I / F(s) 1114 may comprise one or more transmitters or one or more receivers.

[0232] The transceiver 1118 comprises one or more transmitters 1120 and one or more receivers 1122. The transceiver 1118 and / or communication I / F(s) 1114 may comprise standard well-known components such as an amplifier, filter, frequency-converter, (de)modulator, and encoder / decoder circuitries and one or more antennas, such as antennas 1124 used for communication over wireless link 1126.

[0233] The control module 1106 of the apparatus 1100 comprises one of or both parts 1106-1 and / or 1106-2, which may be implemented in a number of ways. The control module 1106 may be implemented in hardware as control module 1106-1, such as being implemented as part of the at least one processor 1102. The control module 1106-1 may be implemented also as an integrated circuit or through other hardware such as a programmable gate array. In another example, the control module 1106 may be implemented as control module 1106-2, which is implemented as computer program code (having corresponding instructions) 110YY and is executed by the at least one processor 1102. For instance, the at least one memory 1104 store instructions that, when executed by the at least one processor 1102, cause the apparatus 1100 to perform one or more of the operations as described herein. Furthermore, the at least one processor 1102, the at least one memory 1104, and example algorithms (e.g., as flowcharts and / or signaling diagrams), encoded as instructions, programs, or code, are means for causing performance of the operations described herein.

[0234] The apparatus 1100 to implement the functionality of control module 1106 may correspond to any of the apparatuses depicted herein. Alternatively, apparatus 1100 and its elements may not correspond to any of the other apparatuses depicted herein, as apparatus 1100 may be part of a self- organizing / optimizing network (SON) node or other node, such as a node in a cloud.

[0235] The apparatus 1100 may also be distributed throughout the network including within and between apparatus 1100 and any network element (such as a base station and / or terminal device and / or user equipment).

[0236] Interface 1128 enables data communication and signaling between the various items of apparatus 1100, as shown in FIG. 11. For example, the interface 1128 may be one or more buses such as address, data, or control buses, and may include any interconnection mechanism, such as a series of lines on a motherboard or integrated circuit, fiber optics or other optical communication equipment, and the like. Computer program code (e.g. instructions) 110YY, including control module 1106 may comprise object-oriented software configured to pass data or messages between objects within computer program code 110YY. The apparatus 1100 need not comprise each of the features mentioned, or may comprise other features as well. The various components of apparatus 1100 may at least partially reside in a housing 1130, or a subset of the various components of apparatus 1100 may at least partially belocated in different housings, which different housings may include housing 1130.

[0237] FIG. 12 shows a schematic representation of non-volatile memory media 1200a (e.g. computer / compact disc (CD) or digital versatile disc (DVD)) and 1200b (e.g. universal serial bus (USB) memory stick) and 1200c (e.g. cloud storage for downloading instructions and / or parameters 1202 or receiving emailed instructions and / or parameters 1202) storing instructions and / or parameters 1202 which when executed by a processor allows the processor to perform one or more of the operations of the methods described herein. Instructions and / or parameters 1202 may represent or correspond to a non-transitory computer readable medium.

[0238] FIG. 13 is an example method 1300 performed with an encoder or a decoder, based on the examples described herein. At 1302, the method 1300 includes, when a number of motion vector predictor (MVP) candidates in a merge candidate list (n) is less than a number of slots allocated for MVP candidates in the merge candidate list (N), checking motion information at a first position (cO) in or around a collocated block. At 1304, the method 1300 includes, when the first position is coded in an inter mode, including motion information at the first position (cO) in the merge candidate list as a MVP candidate. At 1306, the method 1300 includes increasing the number of MVP candidates in the merge candidate list by one, when the motion information at the first position (cO) is included in the merge candidate list as the MVP candidate. At 1308, the method 1300 includes, when the number of MVP candidates in the merge candidate list is less than the number of slots allocated for MVP candidates in the merge candidate list, checking motion information at a second position (cl) in or around the collocated block. At 1310, the method 1300 includes, when the second position is coded in an inter mode, including motion information at the second position (cl) in the merge candidate list as the MVP candidate. At 1312, the method 1300 includes increasing the number of MVP candidates in the merge candidate list by one, when the motion information at the second position (cl) is included in the merge candidate list as MVP candidate. At 1314, the method 1300 includes, wherein the first position and the second position comprise a pair.

[0239] In an example, the method 1300 may be performed with an encoding apparatus, such as the apparatus 100, 1100, apparatuses depicted in FIG. 3 and FIG. 4, for example, the transmitting apparatus 404 with the encoder 402, or the apparatus 400 with the encoder 402. In another example, the method 1300 may be performed with a decoding apparatus, such as the apparatus 100, 1100, apparatuses depicted in FIG. 3 and FIG. 4, for example, the receiving apparatus 408 with the decoder 410, or the apparatus 400 with the decoder 410.

[0240] FIG. 14 is another example method 1400 performed with an encoder or a decoder, based on the example embodiments described herein. At 1402, the method 1400 includes, when a number ofmotion vector predictor (MVP) candidates in a merge candidate list (n) is less than a number of slots allocated for MVP candidates in the merge candidate list (N), checking motion information at a first position (cO) and a second position (cl) in or around a collocated block. At 1404, the method 1400 includes, when one of the first position or the second position is coded in an inter coded mode, including motion information at one of the first position (cO) or the second position (cl) in the merge candidate list as a MVP candidate. At 1406, the method 1400 includes, when the first position and the second position are coded in the inter coded mode, evaluating the motion information at the first position (cO) and the second position (cl). At 1408, the method 1400 includes, based on the evaluation, including the motion information at one the first position (cO) or the second position (cl) in the merge candidate list as the MVP candidate. At 1410, the method 1400 includes, when the motion information at one of the first position (cO) or the second position (cl) is included in the merge candidate list as the MVP candidate, increasing the number of MVP candidates in the merge candidate list by one. At 1412, the method 1400 includes, wherein the first position and the second position comprise a pair.

[0241] In an example, the method 1400 may be performed with an encoding apparatus, such as the apparatus 100, 1100, apparatuses depicted in FIG. 3 and FIG. 4, for example, the transmitting apparatus 404 with the encoder 402, or the apparatus 400 with the encoder 402. In another example, the method 1400 may be performed with a decoding apparatus, such as the apparatus 100, 1100, apparatuses depicted in FIG. 3 and FIG. 4, for example, the receiving apparatus 408 with the decoder 410, or the apparatus 400 with the decoder 410.

[0242] FIG. 15 is yet another example method 1500 performed with an encoder or a decoder, based on the example embodiments described herein. At 1502, the method 1500 includes checking one or more pairs of positions in or around a collocated block in pre-set order. At 1504, the method 1500 includes determining a pair of positions as valid when at least one position of a pair is coded in inter mode. At 1506, the method 1500 includes continuing checking of the one or more pairs until a number of valid pairs is equal to a number of slots allocated for motion vector predictor (MVP) candidates in the merge candidate list (N) or all the one or more pairs have been checked. At 1508, the method 1500 includes evaluating motion information at positions of the valid pairs. At 1510, the method 1500 includes, based on the evaluation, including up to N sets of motion information at the evaluated positions in the merge candidate list.

[0243] In an example, the method 1500 may be performed with an encoding apparatus, such as the apparatus 100, 1100, apparatuses depicted in FIG. 3 and FIG. 4, for example, the transmitting apparatus 404 with the encoder 402, or the apparatus 400 with the encoder 402. In another example, the method 1500 may be performed with a decoding apparatus, such as the apparatus 100, 1100, apparatuses depicted in FIG. 3 and FIG. 4, for example, the receiving apparatus 408 with the decoder 410, or theapparatus 400 with the decoder 410.

[0244] FIG. 16 is still another example method 1600 performed with an encoder or a decoder, based on the example embodiments described herein. At 1602, the method 1600 includes, when a number of motion vector predictor (MVP) candidates in a merge candidate list (n) is less than a number of slots allocated for MVP candidates in the merge candidate list (N), checking motion information at a first position (cO) and a second position (cl) in or around a collocated block. At 1604, the method 1600 includes, when the first position is coded in an inter mode and the second position is not coded in the inter mode, collecting motion information at the first position in sets of collected motion information. At 1606, the method 1600 includes, when the motion information at the first position is collected, increasing the value of n by one. At 1608, the method 1600 includes, when the second position is coded in the inter mode and the first position is not coded in the inter mode, collecting motion information at the second position in the sets of collected motion information. At 1610, the method 1600 includes, when the motion information at the second position is collected, increasing the value of n by one. At 1612, the method 1600 includes, when the first position is coded and the second position are coded in the inter mode, collecting motion information at the first position and the second position in the sets of collected motion information. At 1614, the method 1600 includes, when the motion information at the first position and the second position are collected, increasing the value of n by two.

[0245] In an example, the method 1600 may be performed with an encoding apparatus, such as the apparatus 100, 1100, apparatuses depicted in FIG. 3 and FIG. 4, for example, the transmitting apparatus 404 with the encoder 402, or the apparatus 400 with the encoder 402. In another example, the method 1600 may be performed with a decoding apparatus, such as the apparatus 100, 1100, apparatuses depicted in FIG. 3 and FIG. 4, for example, the receiving apparatus 408 with the decoder 410, or the apparatus 400 with the decoder 410.

[0246] As described above, FIGs. 13 to 16 include flowcharts of an apparatus (e.g. 100, 400, 1100, or any other apparatuses described herein), method, and computer program product according to certain example embodiments. It will be understood that each block of the flowcharts, and combinations of blocks in the flowcharts, may be implemented by various means, such as hardware, firmware, processor, circuitry, and / or other devices associated with execution of software including one or more computer program instructions. For example, one or more of the procedures described above may be embodied by computer program instructions. In this regard, the computer program instructions which embody the procedures described above may be stored by a memory (e.g. 112 or 1104) of an apparatus employing an embodiment of the present invention and executed by processing circuitry (e.g., 110 or 1102) of the apparatus. As will be appreciated, any such computer program instructions may be loaded onto a computer or other programmable apparatus (e.g., hardware) to produce a machine, such that theresulting computer or other programmable apparatus implements the functions specified in the flowchart blocks. These computer program instructions may also be stored in a computer-readable memory that may direct a computer or other programmable apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture, the execution of which implements the function specified in the flowchart blocks. The computer program instructions may also be loaded onto a computer or other programmable apparatus to cause a series of operations to be performed on the computer or other programmable apparatus to produce a computer-implemented process such that the instructions which execute on the computer or other programmable apparatus provide operations for implementing the functions specified in the flowchart blocks.

[0247] A computer program product is therefore defined in those instances in which the computer program instructions, such as computer-readable program code portions, are stored by at least one non- transitory computer -readable storage medium with the computer program instructions, such as the computer-readable program code portions, being configured, upon execution, to perform the functions described above, such as in conjunction with the flowchart(s) of FIGs. 13 to 16. In other embodiments, the computer program instructions, such as the computer-readable program code portions, need not be stored or otherwise embodied by a non-transitory computer-readable storage medium, but may, instead, be embodied by a transitory medium with the computer program instructions, such as the computer- readable program code portions, still being configured, upon execution, to perform the functions described above.

[0248] Accordingly, blocks of the flowcharts support combinations of means for performing the specified functions and combinations of operations for performing the specified functions for performing the specified functions. It will also be understood that one or more blocks of the flowcharts, and combinations of blocks in the flowcharts, may be implemented by special purpose hardware-based computer systems which perform the specified functions, or combinations of special purpose hardware and computer instructions.

[0249] In some embodiments, certain ones of the operations above may be modified or further amplified. Furthermore, in some embodiments, additional optional operations may be included. Modifications, additions, or amplifications to the operations above may be performed in any order and in any combination.

[0250] Some embodiments have been described in relation to one or more neural networks performing visual temporal extrapolation. It is to be understood that embodiments can be realized with any generative modelling neural networks.

[0251] In the above, some example embodiments have been described with the help of syntax of the bitstream. It needs to be understood, however, that the corresponding structure and / or computer program may reside at the encoder for generating the bitstream and / or at the decoder for decoding the bitstream.

[0252] In the above, where example embodiments have been described with reference to an encoder, it needs to be understood that the resulting bitstream and the decoder have corresponding elements in them. Likewise, where example embodiments have been described with reference to a decoder, it needs to be understood that the encoder has structure and / or computer program for generating the bitstream to be decoded by the decoder.

[0253] Many modifications and other embodiments of the inventions set forth herein will come to mind to one skilled in the art to which these inventions pertain having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the inventions are not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Moreover, although the foregoing descriptions and the associated drawings describe example embodiments in the context of certain example combinations of elements and / or functions, it should be appreciated that different combinations of elements and / or functions may be provided by alternative embodiments without departing from the scope of the appended claims. In this regard, for example, different combinations of elements and / or functions than those explicitly described above are also contemplated as may be set forth in some of the appended claims. Accordingly, the description is intended to embrace all such alternatives, modifications and variances which fall within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.

[0254] It should be understood that the foregoing description is only illustrative. Various alternatives and modifications may be devised by those skilled in the art. For example, features recited in the various dependent claims could be combined with each other in any suitable combination(s). In addition, features from different embodiments described above could be selectively combined into a new embodiment. Accordingly, the description is intended to embrace all such alternatives, modifications and variances which fall within the scope of the appended claims.

[0255] References to a ‘computer’, ‘processor’, etc. should be understood to encompass not only computers having different architectures such as single / multi-processor architectures and sequential (Von Neumann) / parallel architectures but also specialized circuits such as field-programmable gate arrays (FPGA), application specific circuits (ASIC), signal processing devices and other processingcircuitry. References to computer program, instructions, code etc. should be understood to encompass software for a programmable processor or firmware such as, for example, the programmable content of a hardware device such as instructions for a processor, or configuration settings for a fixed-function device, gate array or programmable logic device, and the like.

[0256] As used herein, the term ‘circuitry’ may refer to any of the following: (a) hardware circuit implementations, such as implementations in analog and / or digital circuitry, and (b) combinations of circuits and software (and / or firmware), such as (as applicable): (i) a combination of processor(s) or (ii) portions of processor(s) / software including digital signal processor(s), software, and memory(ies) that work together to cause an apparatus to perform various functions, and (c) circuits, such as a microprocessor(s) or a portion of a microprocessor(s), that require software or firmware for operation, even when the software or firmware is not physically present. This description of ‘circuitry’ applies to uses of this term in this application. As a further example, as used herein, the term ‘circuitry’ would also cover an implementation of merely a processor (or multiple processors) or a portion of a processor and its (or their) accompanying software and / or firmware. The term ‘circuitry’ would also cover, for example and when applicable to the particular element, a baseband integrated circuit or applications processor integrated circuit for a mobile phone or a similar integrated circuit in a server, a cellular network device, or another network device.

[0257] Circuitry or Circuit: As used in this application, the term ‘circuitry’ or ‘circuit’ may refer to one or more or all of the following:(a) hardware-only circuit implementations (such as implementations in only analog and / or digital circuitry); and(b) combinations of hardware circuits and software, such as (as applicable):(i) a combination of analog and / or digital hardware circuit(s) with software / firmware; and(ii) any portions of hardware processor(s) with software (including digital signal processor(s)), software, and memory(ies) that work together to cause an apparatus, such as a mobile phone or server, to perform various functions); and(c) hardware circuit(s) and or processor(s), such as a microprocessor(s) or a portion of a microprocessor(s), that requires software (e.g., firmware) for operation, but the software may not be present when it is not needed for operation.

[0258] This definition of circuitry applies to all uses of this term in this application, including in anyclaims. As a further example, as used in this application, the term circuitry also covers an implementation of merely a hardware circuit or processor (or multiple processors) or portion of a hardware circuit or processor and its (or their) accompanying software and / or firmware. The term circuitry also covers, for example, and when applicable to the particular claim element, a baseband integrated circuit or processor integrated circuit for a mobile device or a similar integrated circuit in server, a cellular network device, or other computing or network device.

Claims

CLAIMSWhat is claimed is:

1. An apparatus comprising: at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to perform: when a number of motion vector predictor (MVP) candidates in a merge candidate list (n) is less than a number of slots allocated for MVP candidates in the merge candidate list (N), checking motion information at a first position (cO) in or around a collocated block; when the first position is coded in an inter mode, including motion information at the first position (cO) in the merge candidate list as a MVP candidate; increasing the number of MVP candidates in the merge candidate list by one, when the motion information at the first position (cO) is included in the merge candidate list as the MVP candidate; when the number of MVP candidates in the merge candidate list is less than the number of slots allocated for MVP candidates in the merge candidate list, checking motion information at a second position (cl) in or around the collocated block; when the second position is coded in an inter mode, including motion information at the second position (cl) in the merge candidate list as the MVP candidate; increasing the number of MVP candidates in the merge candidate list by one, when the motion information at the second position (cl) is included in the merge candidate list as MVP candidate; and wherein the first position and the second position comprise a pair.

2. The apparatus of claim 1, wherein when first position and the second position are coded in the inter mode, the apparatus is further caused to perform a pre-selection process.

3. The apparatus of claim 2, wherein the pre-selection process comprises:evaluating the motion information at the first position (cO) and the second position (cl); and based upon evaluation results, including the motion information at the first position (cO), the second position (cl), or any combination thereof in the merge candidate list as the MVP candidate, when the number of MVP candidates in the merge candidate list is less than the number of slots allocated for MVP candidates in the merge candidate list.

4. The apparatus of claim 3, wherein the evaluating comprises using a cost function for estimating a coding cost of a current block based on a prediction block associated with the motion information at the first position and the second position.

5. The apparatus of claim 3, wherein the evaluating comprises using template costs associated with the motion information at first position and the second position with respect to a current block.

6. The apparatus of any of the previous claims, wherein the apparatus is caused to perform the checking until the number of MVP candidates in the merge candidate list is equal to the number of slots allocated for MVP candidates in the merge candidate list, or a last pair over a checking area has been checked.

7. The apparatus of any of the previous claims, wherein when none of the first position and the second position is coded in the inter mode, no MVP candidates are included in the merge candidate list.

8. The apparatus of any of the previous claims, wherein the apparatus is further caused to perform: selecting one or more MVP candidates from the merge candidate list for the current block; and signaling the selected one or more MVP candidate to a decoder.

9. The apparatus of any of the claims 1 to 7, wherein the apparatus is further caused to perform: receiving a selected MVP candidate for the current block, wherein the selected MVP candidate is selected by an encoder from the merge candidate list; andusing the selected MVP candidate for the current block.

10. An apparatus comprising: at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to perform: when a number of motion vector predictor (MVP) candidates in a merge candidate list (n) is less than a number of slots allocated for MVP candidates in the merge candidate list (N), checking motion information at a first position (cO) and a second position (cl) in or around a collocated block; when one of the first position or the second position is coded in an inter coded mode, including motion information at one of the first position (cO) or the second position (cl) in the merge candidate list as a MVP candidate; when the first position and the second position are coded in the inter coded mode, evaluating the motion information at the first position (cO) and the second position (cl); based on the evaluation, including the motion information at one the first position (cO) or the second position (cl) in the merge candidate list as the MVP candidate; when the motion information at one of the first position (cO) or the second position (cl) is included in the merge candidate list as the MVP candidate, increasing the number of MVP candidates in the merge candidate list by one; and wherein the first position and the second position comprise a pair.

11. The apparatus of claim 10, wherein the evaluating comprises using a cost function for estimating a coding cost of the current block based on a prediction block associated with the motion information at the first position and the second position.

12. The apparatus of claim 10, wherein the evaluating comprises using template costs associated with the motion information at first position and the second position with respect to the current block.

13. The apparatus of any of the previous 10 to 12, wherein the apparatus is caused to perform the checking until the number of MVP candidates in the merge candidate list is equalto the number of slots allocated for MVP candidates in the merge candidate list, or a last pair over a checking area has been checked.

14. The apparatus of any of the claims 10 to 13, wherein when none of the first position and the second position is coded in the inter mode, no MVP candidates are included in the merge candidate list.

15. The apparatus of any of the claims 10 to 14, wherein the apparatus is further caused to perform: selecting a MVP candidate comprising from the merge candidate list for a current block; and signaling the selected MVP candidate to a decoder.

16. The apparatus of any of the claims 10 to 14, wherein the apparatus is further caused to perform: receiving a selected MVP candidate for a current block, wherein the selected MVP candidate is selected by an encoder from the merge candidate list; and using the selected MVP candidate for the current block.

17. An apparatus comprising: at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to perform: checking one or more pairs of positions in or around a collocated block in pre-set order; determining a pair of positions as valid when at least one position of a pair is coded in inter mode; continuing checking of the one or more pairs until a number of valid pairs is equal to a number of slots allocated for motion vector predictor (MVP) candidates in the merge candidate list (N) or all the one or more pairs have been checked; evaluating motion information at positions of the valid pairs; andbased on the evaluation, including up to N sets of motion information at the evaluated positions in the merge candidate list.

18. The apparatus of claim 17, wherein the evaluating comprises using a cost function for estimating a coding cost of the current block based on a prediction block associated with the motion information at the first position and the second position.

19. The apparatus of claim 17, wherein the evaluating comprises using template costs associated with the motion information at first position and the second position with respect to the current block.

20. The apparatus of any of the claims 17 to 19, wherein the apparatus is further caused to perform: selecting a MVP candidate comprising from the merge candidate list for the current block; and signaling the selected MVP candidate to a decoder.

21. The apparatus of any of the claims 17 to 19, wherein the apparatus is further caused to perform: receiving a selected MVP candidate for the current block, wherein the selected MVP candidate is selected by an encoder from the merge candidate list; and using the selected MVP candidate for the current block.

22. An apparatus comprising: at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to perform: when a number of motion vector predictor (MVP) candidates in a merge candidate list (n) is less than a number of slots allocated for MVP candidates in the merge candidate list (N), checking motion information at a first position (cO) and a second position (cl) in or around a collocated block; when the first position is coded in an inter mode and the second position is not codedin the inter mode, collecting motion information at the first position in sets of collected motion information; when the motion information at the first position is collected, increasing the value of n by one; when the second position is coded in the inter mode and the first position is not coded in the inter mode, collecting motion information at the second position in the sets of collected motion information; when the motion information at the second position is collected, increasing the value of n by one; when the first position is coded and the second position are coded in the inter mode, collecting motion information at the first position and the second position in the sets of collected motion information; and when the motion information at the first position and the second position are collected, increasing the value of n by two.

23. The apparatus of claim 22, wherein when none of the first position and the second position is coded in the inter mode, the motion information at the first position and the second position is not collected in the sets of collected motion information.

24. The apparatus of any of the claims 22 or 23, wherein the apparatus further is caused to perform the checking until the number of MVP candidates in the merge candidate list is equal to the number of slots allocated for MVP candidates in the merge candidate list, or a last pair over a checking area has been checked.

25. The apparatus of claim 24, wherein the apparatus is further caused to perform: evaluating the sets of collected motion information; and including up to N sets of motion information in the merge candidate list as MVP candidates.

26. The apparatus of claim 25, wherein the evaluating comprises using a cost function for estimating a coding cost of the current block based on a prediction block associated with the motion information at the first position and the second position.

27. The apparatus of claim 25, wherein the evaluating comprises using template costs associated with the motion information at first position and the second position with respect to the current block.

28. The apparatus of any of the claims 22 to 27, wherein the apparatus is further caused to perform: selecting a MVP candidate comprising from the merge candidate list for the current block; and signaling the selected MVP candidate to a decoder.

29. The apparatus of any of the claims 22 to 27, wherein the apparatus is further caused to perform: receiving a selected MVP candidate for the current block, wherein the selected MVP candidate is selected by an encoder from the merge candidate list; and using the selected MVP candidate for the current block.

30. The apparatus of any of the claims 1 to 29, wherein, for the current block, the MVP candidates are applied to pictures with small temporal distances to corresponding collocated pictures.

31. The apparatus of any of the claims 1 to 29, wherein, for the current block, the MVP candidates are applied to the pictures with temporal distances to corresponding collocated pictures is equal to one.

32. The apparatus of any of the claims 1 to 31, wherein the MVP candidate comprises one of a temporal motion vector predictor (TMVP), an advanced motion vector predictor (AMVP), or an affine AMVP, and wherein the merge candidate list comprises one of a TMVP merge candidate list, an AMVP merge candidate list, affine merge candidate list, or an affine AMVP merge candidate list.

33. An apparatus comprising: at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to perform:performing a checking process for a pair comprising a first position and a second position in or around a collated block, wherein there are one or more pairs in or around the collated block, and wherein the checking process comprises: when a number of motion vector predictor (MVP) candidates in a merge candidate list (n) is less than a number of slots allocated for MVP candidates in the merge candidate list (N), the apparatus is further caused to perform: checking motion information at the first position (cO); when the first position is coded in an inter mode, the apparatus is further caused to perform: including motion information at the first position (cO) in the merge candidate list as a MVP candidate; and increasing the number of MVP candidates in the merge candidate list by one; when the number of MVP candidates in the merge candidate list is less than the number of slots allocated for MVP candidates in the merge candidate list, the apparatus is further caused to perform: checking motion information at the second position (cl); when the second position is coded in an inter mode, the apparatus is further caused to perform: including motion information at the second position (cl) in the merge candidate list as the MVP candidate; and increasing the number of MVP candidates in the merge candidate list by one; and performing the checking process for next pair of the one mor more pairs.

34. An apparatus comprising: at least one processor; andat least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to perform: performing a checking process for a pair comprising a first position and a second position in or around a collated block, wherein there are one or more pairs in or around the collated block, and wherein the checking process comprises: when a number of motion vector predictor (MVP) candidates in a merge candidate list (n) is less than a number of slots allocated for MVP candidates in the merge candidate list (N), the apparatus is further caused to perform: checking motion information at a first position (cO) and a second position (cl) in or around a collocated block; when one of the first position or the second position is coded in an inter coded mode, the apparatus is further caused to perform: including motion information at one of the first position (cO) or the second position (cl) in the merge candidate list as a MVP candidate; increasing the number of MVP candidates in the merge candidate list by one; and performing the checking process for the next pair of the one or more pairs; when the first position and the second position are coded in the inter coded mode, the apparatus is further caused to perform: evaluating the motion information at the first position (cO) and the second position (cl); based on the evaluation, including the motion information at one the first position (cO) or the second position (cl) in the merge candidate list as the MVP candidate; increasing the number of MVP candidates in the merge candidate list by one; andperforming the checking process for the next pair of the one or more pairs; and when none of the first position and the second position are coded in the inter coded mode, the apparatus is further caused to perform: performing the checking process for the next pair of the one or more pairs.

35. An apparatus comprising: at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to perform: performing a checking process for a pair comprising a first position and a second position in or around a collated block, wherein there are one or more pairs in or around the collated block, and wherein the checking process comprises: when a number of motion vector predictor (MVP) candidates in a merge candidate list (n) is less than a number of slots allocated for MVP candidates in the merge candidate list (N), the apparatus is further caused to perform: checking motion information at a first position (cO) and a second position (cl) in or around a collocated block; when the first position is coded in an inter mode and the second position is not coded in the inter mode, the apparatus is further caused to perform: collecting motion information at the first position in sets of collected motion information; increasing the number of MVP candidates in the merge candidate list by one; and performing the checking process for the next pair of the one or more pairs;when the second position is coded in an inter mode and the first position is not coded in the inter mode, the apparatus is further caused to perform: collecting motion information at the second position in the sets of collected motion information; increasing the number of MVP candidates in the merge candidate list by one; and performing the checking process for the next pair of the one or more pairs; when the first position and the second position are coded in the inter mode, the apparatus is further caused to perform: collecting motion information at the first and second positions in the sets of collected motion information; increasing the number of MVP candidates in the merge candidate list by two; and performing the checking process for the next pair of the one or more pairs; when the first position and the second position are not coded in the inter mode, the apparatus is further caused to perform: performing the checking process for the next pair of the one or more pairs; evaluating the sets of collected motion information; and including up to N sets of motion information in the merge candidate list as MVP candidates.

36. The apparatus of any of the claims 33 to 35, wherein the apparatus is caused to perform the checking process until the number of MVP candidates in the merge candidate list is equal to the number of slots allocated for MVP candidates in the merge candidate list, or a last pair over a checking area has been checked.

37. The apparatus of claim 33, wherein when first position and the second position are coded in the inter mode, the apparatus is further caused to perform a pre-selection process, wherein the pre-selection process comprises: evaluating the motion information at the first position (cO) and the second position (cl); and based upon evaluation results, including the motion information at the first position (cO), the second position (cl), or any combination thereof in the merge candidate list as the MVP candidate, when the number of MVP candidates in the merge candidate list is less than the number of slots allocated for MVP candidates in the merge candidate list.

38. The apparatus of any of the claims 34 to 37, wherein the evaluating comprises using a cost function for estimating a coding cost of the current block based on a prediction block associated with the motion information at the first position and the second position.

39. The apparatus of claim 38, wherein the evaluating comprises using template costs associated with the motion information at first position and the second position with respect to the current block.

40. The apparatus of any of the claims 33 to 39, wherein the apparatus is further caused to perform: selecting a MVP candidate comprising from the merge candidate list for the current block; and signaling the selected MVP candidate to a decoder.

41. The apparatus of any of the claims 33 to 39, wherein the apparatus is further caused to perform: receiving a selected MVP candidate for the current block, wherein the selected MVP candidate is selected by an encoder from the merge candidate list; and using the selected MVP candidate for the current block.

42. The apparatus of any of the claims 33 to 41, wherein, for the current block, the MVP candidates are applied to pictures with small temporal distances to corresponding collocated pictures.

43. The apparatus of any of the claims 33 to 41, wherein, for the current block, the MVP candidates are applied to the pictures with temporal distances to corresponding collocated pictures is equal to one.

44. The apparatus of any of the claims 33 to 43, wherein the MVP candidate comprises one of a temporal motion vector predictor (TMVP), an advanced motion vector predictor (AMVP), or an affine AMVP, and wherein the merge candidate list comprises one of a TMVP merge candidate list, an AMVP merge candidate list, affine merge candidate list, or an affine AMVP merge candidate list.

45. A method comprising: when a number of motion vector predictor (MVP) candidates in a merge candidate list (n) is less than a number of slots allocated for MVP candidates in the merge candidate list (N), checking motion information at a first position (cO) in or around a collocated block; when the first position is coded in an inter mode, including motion information at the first position (cO) in the merge candidate list as a MVP candidate; increasing the number of MVP candidates in the merge candidate list by one, when the motion information at the first position (cO) is included in the merge candidate list as the MVP candidate; when the number of MVP candidates in the merge candidate list is less than the number of slots allocated for MVP candidates in the merge candidate list, checking motion information at a second position (cl) in or around the collocated block; when the second position is coded in an inter mode, including motion information at the second position (cl) in the merge candidate list as the MVP candidate; increasing the number of MVP candidates in the merge candidate list by one, when the motion information at the second position (cl) is included in the merge candidate list as MVP candidate; and wherein the first position and the second position comprise a pair.

46. The method of claim 45, wherein when first position and the second position are coded in the inter mode, the method comprises performing a pre-selection process.

47. The method of claim 46, wherein the pre-selection process comprises: evaluating the motion information at the first position (cO) and the second position (cl); and based upon evaluation results, including the motion information at the first position (cO), the second position (cl), or any combination thereof in the merge candidate list as the MVP candidate, when the number of MVP candidates in the merge candidate list is less than the number of slots allocated for MVP candidates in the merge candidate list.

48. The method of claim 47, wherein the evaluating comprises using a cost function for estimating a coding cost of a current block based on a prediction block associated with the motion information at the first position and the second position.

49. The method of claim 47, wherein the evaluating comprises using template costs associated with the motion information at first position and the second position with respect to a current block.

50. The method of any of the claims 45 to 49, wherein the method comprises performing the checking until the number of MVP candidates in the merge candidate list is equal to the number of slots allocated for MVP candidates in the merge candidate list, or a last pair over a checking area has been checked.

51. The method of any of the claims 45 to 50, wherein when none of the first position and the second position is coded in the inter mode, no MVP candidates are included in the merge candidate list.

52. The method of any of the claims 45 to 51 further comprising: selecting one or more MVP candidates from the merge candidate list for the current block; and signaling the selected one or more MVP candidate to a decoder.

53. The method of any of the claims 45 to 51 further comprising: receiving a selected MVP candidate for a current block, wherein the selected MVP candidate is selected by an encoder from the merge candidate list; and using the selected MVP candidate for the current block.

54. A method comprising: when a number of motion vector predictor (MVP) candidates in a merge candidate list (n) is less than a number of slots allocated for MVP candidates in the merge candidate list (N), checking motion information at a first position (cO) and a second position (cl) in or around a collocated block; when one of the first position or the second position is coded in an inter coded mode, including motion information at one of the first position (cO) or the second position (cl) in the merge candidate list as a MVP candidate; when the first position and the second position are coded in the inter coded mode, evaluating the motion information at the first position (cO) and the second position (cl); based on the evaluation, including the motion information at one the first position (cO) or the second position (cl) in the merge candidate list as the MVP candidate; when the motion information at one of the first position (cO) or the second position (cl) is included in the merge candidate list as the MVP candidate, increasing the number of MVP candidates in the merge candidate list by one; and wherein the first position and the second position comprise a pair.

55. The method of claim 54, wherein the evaluating comprises using a cost function for estimating a coding cost of the current block based on a prediction block associated with the motion information at the first position and the second position.

56. The method of claim 54, wherein the evaluating comprises using template costs associated with the motion information at first position and the second position with respect to the current block.

57. The method of any of the previous 54 to 56, wherein the method comprises performing the checking until the number of MVP candidates in the merge candidate list is equal to the number of slots allocated for MVP candidates in the merge candidate list, or a last pair over a checking area has been checked.

58. The method of any of the claims 54 to 57, wherein when none of the first position and the second position is coded in the inter mode, no MVP candidates are included in the merge candidate list.

59. The method of any of the claims 54 to 58 further comprising: selecting a MVP candidate comprising from the merge candidate list for a current block; and signaling the selected MVP candidate to a decoder.

60. The method of any of the claims 54 to 58 further comprising: receiving a selected MVP candidate for a current block, wherein the selected MVP candidate is selected by an encoder from the merge candidate list; and using the selected MVP candidate for the current block.

61. A method comprising: checking one or more pairs of positions in or around a collocated block in pre-set order; determining a pair of positions as valid when at least one position of a pair is coded in inter mode; continuing checking of the one or more pairs until a number of valid pairs is equal to a number of slots allocated for motion vector predictor (MVP) candidates in the merge candidate list (N) or all the one or more pairs have been checked; evaluating motion information at positions of the valid pairs; and based on the evaluation, including up to N sets of motion information at the evaluated positions in the merge candidate list.

62. The method of claim 61, wherein the evaluating comprises using a cost function for estimating a coding cost of the current block based on a prediction block associated with the motion information at the first position and the second position.

63. The method of claim 61, wherein the evaluating comprises using template costs associated with the motion information at first position and the second position with respect to the current block.

64. The method of any of the claims 61 to 63 further comprising: selecting a MVP candidate comprising from the merge candidate list for the currentblock; and signaling the selected MVP candidate to a decoder.

65. The method of any of the claims 61 to 63 further comprising: receiving a selected MVP candidate for the current block, wherein the selected MVP candidate is selected by an encoder from the merge candidate list; and using the selected MVP candidate for the current block.

66. A method comprising: when a number of motion vector predictor (MVP) candidates in a merge candidate list (n) is less than a number of slots allocated for MVP candidates in the merge candidate list (N), checking motion information at a first position (cO) and a second position (cl) in or around a collocated block; when the first position is coded in an inter mode and the second position is not coded in the inter mode, collecting motion information at the first position in sets of collected motion information; when the motion information at the first position is collected, increasing the value of n by one; when the second position is coded in the inter mode and the first position is not coded in the inter mode, collecting motion information at the second position in the sets of collected motion information; when the motion information at the second position is collected, increasing the value of n by one; when the first position is coded and the second position are coded in the inter mode, collecting motion information at the first position and the second position in the sets of collected motion information; and when the motion information at the first position and the second position are collected, increasing the value of n by two.

67. The method of claim 66, wherein when none of the first position and the secondposition is coded in the inter mode, the motion information at the first position and the second position is not collected in the sets of collected motion information.

68. The method of any of the claims 66 or 67, wherein the method comprises performing the checking until the number of MVP candidates in the merge candidate list is equal to the number of slots allocated for MVP candidates in the merge candidate list, or a last pair over a checking area has been checked.

69. The method of claim 68 further comprising: evaluating the sets of collected motion information; and including up to N sets of motion information in the merge candidate list as MVP candidates.

70. The method of claim 69, wherein the evaluating comprises using a cost function for estimating a coding cost of the current block based on a prediction block associated with the motion information at the first position and the second position.

71. The method of claim 69, wherein the evaluating comprises using template costs associated with the motion information at first position and the second position with respect to the current block.

72. The method of any of the claims 66 to 71 further comprising: selecting a MVP candidate comprising from the merge candidate list for the current block; and signaling the selected MVP candidate to a decoder.

73. The method of any of the claims 66 to 71 further comprising: receiving a selected MVP candidate for the current block, wherein the selected MVP candidate is selected by an encoder from the merge candidate list; and using the selected MVP candidate for the current block.

74. The method of any of the claims 45 to 73, wherein, for the current block, the MVP candidates are applied to pictures with small temporal distances to corresponding collocated pictures.

75. The method of any of the claims 45 to 73, wherein, for the current block, the MVP candidates are applied to the pictures with temporal distances to corresponding collocated pictures is equal to one.

76. The method of any of the claims 45 to 75, wherein the MVP candidate comprises one of a temporal motion vector predictor (TMVP), an advanced motion vector predictor (AMVP), or an affine AMVP, and wherein the merge candidate list comprises one of a TMVP merge candidate list, an AMVP merge candidate list, affine merge candidate list, or an affine AMVP merge candidate list.

77. A method comprising: performing a checking process for a pair comprising a first position and a second position in or around a collated block, wherein there are one or more pairs in or around the collated block, and wherein the checking process comprises: when a number of motion vector predictor (MVP) candidates in a merge candidate list (n) is less than a number of slots allocated for MVP candidates in the merge candidate list (N), the method further comprises: checking motion information at the first position (cO); when the first position is coded in an inter mode, the method further comprises: including motion information at the first position (cO) in the merge candidate list as a MVP candidate; and increasing the number of MVP candidates in the merge candidate list by one; when the number of MVP candidates in the merge candidate list is less than the number of slots allocated for MVP candidates in the merge candidate list, the method further comprises: checking motion information at the second position (cl); when the second position is coded in an inter mode, the method further comprises:including motion information at the second position (cl) in the merge candidate list as the MVP candidate; and increasing the number of MVP candidates in the merge candidate list by one; and performing the checking process for next pair of the one mor more pairs.

78. A method comprising: performing a checking process for a pair comprising a first position and a second position in or around a collated block, wherein there are one or more pairs in or around the collated block, and wherein the checking process comprises: when a number of motion vector predictor (MVP) candidates in a merge candidate list (n) is less than a number of slots allocated for MVP candidates in the merge candidate list (N), the method further comprises: checking motion information at a first position (cO) and a second position (cl) in or around a collocated block; when one of the first position or the second position is coded in an inter coded mode, the method further comprises: including motion information at one of the first position (cO) or the second position (cl) in the merge candidate list as a MVP candidate; increasing the number of MVP candidates in the merge candidate list by one; and performing the checking process for the next pair of the one or more pairs; when the first position and the second position are coded in the inter coded mode, the method further comprises: evaluating the motion information at the first position (cO) and the second position (cl);based on the evaluation, including the motion information at one the first position (cO) or the second position (cl) in the merge candidate list as the MVP candidate; increasing the number of MVP candidates in the merge candidate list by one; and performing the checking process for the next pair of the one or more pairs; and when none of the first position and the second position are coded in the inter coded mode, the method further comprises: performing the checking process for the next pair of the one or more pairs.

79. A method comprising: performing a checking process for a pair comprising a first position and a second position in or around a collated block, wherein there are one or more pairs in or around the collated block, and wherein the checking process comprises: when a number of motion vector predictor (MVP) candidates in a merge candidate list (n) is less than a number of slots allocated for MVP candidates in the merge candidate list (N), the method further comprises: checking motion information at a first position (cO) and a second position (cl) in or around a collocated block; when the first position is coded in an inter mode and the second position is not coded in the inter mode, the method further comprises: collecting motion information at the first position in sets of collected motion information; increasing the number of MVP candidates in the merge candidate list by one; and performing the checking process for the next pair of the one or more pairs;when the second position is coded in an inter mode and the first position is not coded in the inter mode, the method further comprises: collecting motion information at the second position in the sets of collected motion information; increasing the number of MVP candidates in the merge candidate list by one; and performing the checking process for the next pair of the one or more pairs; when the first position and the second position are coded in the inter mode, the method further comprises: collecting motion information at the first and second positions in the sets of collected motion information; increasing the number of MVP candidates in the merge candidate list by two; and performing the checking process for the next pair of the one or more pairs; when the first position and the second position are not coded in the inter mode, the method further comprises: performing the checking process for the next pair of the one or more pairs; evaluating the sets of collected motion information; and including up to N sets of motion information in the merge candidate list as MVP candidates.

80. The method of any of the claims 77 to 79, wherein the method comprises performing the checking process until the number of MVP candidates in the merge candidate list is equal to the number of slots allocated for MVP candidates in the merge candidate list, or a last pair over a checking area has been checked.

81. The method of claim 77, wherein when first position and the second position are coded in the inter mode, the method further comprises performing a pre-selection process, wherein the pre-selection process comprises: evaluating the motion information at the first position (cO) and the second position (cl); and based upon evaluation results, including the motion information at the first position (cO), the second position (cl), or any combination thereof in the merge candidate list as the MVP candidate, when the number of MVP candidates in the merge candidate list is less than the number of slots allocated for MVP candidates in the merge candidate list.

82. The method of any of the claims 78 to 81, wherein the evaluating comprises using a cost function for estimating a coding cost of the current block based on a prediction block associated with the motion information at the first position and the second position.

83. The method of claim 82, wherein the evaluating comprises using template costs associated with the motion information at first position and the second position with respect to the current block.

84. The method of any of the claims 77 to 83 further comprising: selecting a MVP candidate comprising from the merge candidate list for the current block; and signaling the selected MVP candidate to a decoder.

85. The method of any of the claims 77 to 83 further comprising: receiving a selected MVP candidate for the current block, wherein the selected MVP candidate is selected by an encoder from the merge candidate list; and using the selected MVP candidate for the current block.

86. The method of any of the claims 77 to 85, wherein, for the current block, the MVP candidates are applied to pictures with small temporal distances to corresponding collocated pictures.

87. The method of any of the claims 77 to 85, wherein, for the current block, the MVP candidates are applied to the pictures with temporal distances to corresponding collocatedpictures is equal to one.

88. The method of any of the claims 77 to 87, wherein the MVP candidate comprises one of a temporal motion vector predictor (TMVP), an advanced motion vector predictor (AMVP), or an affine AMVP, and wherein the merge candidate list comprises one of a TMVP merge candidate list, an AMVP merge candidate list, affine merge candidate list, or an affine AMVP merge candidate list.

89. An apparatus comprising means for performing the methods as claimed in any of the claims 45 to 53.

90. An apparatus comprising means for performing the methods as claimed in any of the claims 54 to 60.

91. An apparatus comprising means for performing the methods as claimed in any of the claims 61 to 65.

92. An apparatus comprising means for performing the methods as claimed in any of the claims 66 to 76.

93. An apparatus comprising means for performing the methods as claimed in claim 77.

94. An apparatus comprising means for performing the methods as claimed in claim 78.

95. An apparatus comprising means for performing the methods as claimed in any of the claims 79 to 88.

96. A computer readable medium comprising program instructions that, when executed by an apparatus, cause the apparatus to perform the methods as claimed in any of the claims 45 to 53.

97. The computer readable medium of claim 96, wherein the computer readable medium comprises a non-transitory computer readable medium.

98. A computer readable medium comprising program instructions that, when executed by an apparatus, cause the apparatus to perform the methods as claimed in any of the claims 54 to 60.

99. The computer readable medium of claim 98, wherein the computer readable medium comprises a non-transitory computer readable medium.

100. A computer readable medium comprising program instructions that, when executed by an apparatus, cause the apparatus to perform the methods as claimed in any of the claims 61 to 65.

101. The computer readable medium of claim 100, wherein the computer readable medium comprises a non-transitory computer readable medium.

102. A computer readable medium comprising program instructions that, when executed by an apparatus, cause the apparatus to perform the methods as claimed in any of the claims 66 to 76.

103. The computer readable medium of claim 102, wherein the computer readable medium comprises a non-transitory computer readable medium.

104. A computer readable medium comprising program instructions that, when executed by an apparatus, cause the apparatus to perform the method as claimed in claim 77.

105. The computer readable medium of claim 104, wherein the computer readable medium comprises a non-transitory computer readable medium.

106. A computer readable medium comprising program instructions that, when executed by an apparatus, cause the apparatus to perform the method as claimed in claim 78.

107. The computer readable medium of claim 106, wherein the computer readable medium comprises a non-transitory computer readable medium.

108. A computer readable medium comprising program instructions that, when executed by an apparatus, cause the apparatus to perform the methods as claimed in any of the claims 79 to 88.

109. The computer readable medium of claim 108, wherein the computer readable medium comprises a non-transitory computer readable medium.

Citation Information

Patent Citations

  • Encoding method, decoding method and apparatus

    CN111698504B

  • Method and apparatus for derivation of temporal motion data candidates in video coding

    WO2019061537A1