Methods and apparatus of MVD candidate number selection in AMVP with sbtmvp mode for video coding

By explicitly signaling and adaptively selecting MVD candidate numbers and patterns in video coding systems, the method addresses inefficiencies in AMVP with SbTMVP mode, enhancing coding efficiency and reducing latency.

WO2025218694A1PCT designated stage Publication Date: 2025-10-23MEDIATEK INC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/089251
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-04-18
Filing Date
2025-04-16
Publication Date
2025-10-23

AI Technical Summary

Technical Problem

Existing video coding systems face inefficiencies in determining the number of MVD candidates for AMVP with SbTMVP mode, leading to latency and parsing issues, as the number of candidates is often decided after statistical calculations, which can be time-consuming and inefficient.

Method used

The method involves explicitly signaling the number and patterns of MVD candidates in the picture header, slice header, or SPS, allowing for adaptive selection per block, CTU, or slice, and incorporating reordering mechanisms to improve efficiency and reduce latency.

Benefits of technology

This approach enhances coding efficiency by allowing for real-time determination of MVD candidates, reducing latency and improving parsing speed, thereby optimizing video coding performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025089251_23102025_PF_FP_ABST
    Figure CN2025089251_23102025_PF_FP_ABST
Patent Text Reader

Abstract

A method and apparatus for video coding using MVD candidates are disclosed. According to the method, syntax related to a number of MVD (Motion Vector Difference) candidates, one or more patterns of the MVD candidates, or both are signalled or parsed. A target MVD is determined from the MVD candidates for the current block. One or more reference blocks is determined according to the target MVD and one or more MVPs (Motion Vector Predictors). An inter prediction candidate is generated based on said one or more reference blocks for the current block. The current block is encoded or decoded by using coding information comprising the inter prediction candidate.
Need to check novelty before this filing date? Find Prior Art

Description

METHODS AND APPARATUS OF MVD CANDIDATE NUMBER SELECTION IN AMVP WITH SBTMVP MODE FOR VIDEO CODINGCROSS REFERENCE TO RELATED APPLICATIONS

[0001] The present invention is a non-Provisional Application of and claims priority to U.S. Provisional Patent Application No. 63 / 635, 671, filed on April 18, 2024. The U.S. Provisional Patent Application is hereby incorporated by reference in its entirety.FIELD OF THE INVENTION

[0002] The present invention relates to video coding system. In particular, the present invention relates to signalling of MVD candidates to improve the coding performance of video coding systems.BACKGROUND

[0003] Versatile video coding (VVC) is the latest international video coding standard developed by the Joint Video Experts Team (JVET) of the ITU-T Video Coding Experts Group (VCEG) and the ISO / IEC Moving Picture Experts Group (MPEG) . The standard has been published as an ISO standard: ISO / IEC 23090-3: 2021, Information technology -Coded representation of immersive media -Part 3: Versatile video coding, published Feb. 2021. VVC is developed based on its predecessor HEVC (High Efficiency Video Coding) by adding more coding tools to improve coding efficiency and also to handle various types of video sources including 3-dimensional (3D) video signals.

[0004] Fig. 1A illustrates an exemplary adaptive Inter / Intra video encoding system incorporating loop processing. For Intra Prediction 110, the prediction data is derived based on previously coded video data in the current picture. For Inter Prediction 112, Motion Estimation (ME) is performed at the encoder side and Motion Compensation (MC) is performed based on the result of ME to provide prediction data derived from other picture (s) and motion data. Switch 114 selects Intra Prediction 110 or Inter-Prediction 112 and the selected prediction data is supplied to Adder 116 to form prediction errors, also called residues. The prediction error is then processed by Transform (T) 118 followed by Quantization (Q) 120. The transformed and quantized residues are then coded by Entropy Encoder 122 to be included in a video bitstream corresponding to the compressed video data. The bitstream associated with the transform coefficients is then packed with side information such as motion and coding modes associated with Intra prediction and Inter prediction, and other information such as parameters associated with loop filters applied to underlying image area. The side information associated with Intra Prediction 110, Inter prediction 112 and in-loop filter 130, are provided to Entropy Encoder 122 as shown in Fig. 1A. When an Inter-prediction mode is used, a reference picture or pictures have to be reconstructed at the encoder end as well. Consequently, the transformed and quantized residues are processed by Inverse Quantization (IQ) 124 and Inverse Transformation (IT) 126 to recover the residues. The residues are then added back to prediction data 136 at Reconstruction (REC) 128 to reconstruct video data. The reconstructed video data may be stored in Reference Picture Buffer 134 and used for prediction of other frames.

[0005] As shown in Fig. 1A, incoming video data undergoes a series of processing in the encoding system. The reconstructed video data from REC 128 may be subject to various impairments due to a series of processing. Accordingly, in-loop filter 130 is often applied to the reconstructed video data before the reconstructed video data are stored in the Reference Picture Buffer 134 in order to improve video quality. For example, deblocking filter (DF) , Sample Adaptive Offset (SAO) and Adaptive Loop Filter (ALF) may be used. The loop filter information may need to be incorporated in the bitstream so that a decoder can properly recover the required information. Therefore, loop filter information is also provided to Entropy Encoder 122 for incorporation into the bitstream. In Fig. 1A, Loop filter 130 is applied to the reconstructed video before the reconstructed samples are stored in the reference picture buffer 134. The system in Fig. 1A is intended to illustrate an exemplary structure of a typical video encoder. It may correspond to the High Efficiency Video Coding (HEVC) system, VP8, VP9, H. 264 or VVC.

[0006] The decoder, as shown in Fig. 1B, can use similar or portion of the same functional blocks as the encoder except for Transform 118 and Quantization 120 since the decoder only needs Inverse Quantization 124 and Inverse Transform 126. Instead of Entropy Encoder 122, the decoder uses an Entropy Decoder 140 to decode the video bitstream into quantized transform coefficients and needed coding information (e.g. ILPF information, Intra prediction information and Inter prediction information) . The Intra prediction 150 at the decoder side does not need to perform the mode search. Instead, the decoder only needs to generate Intra prediction according to Intra prediction information received from the Entropy Decoder 140. Furthermore, for Inter prediction, the decoder only needs to perform motion compensation (MC 152) according to Inter prediction information received from the Entropy Decoder 140 without the need for motion estimation.

[0007] VVC Inter Prediction

[0008] For each inter-predicted CU, motion parameters consist of motion vectors, reference picture indices and reference picture list usage index, and additional information needed for the new coding feature of VVC to be used for inter-predicted sample generation. The motion parameter can be signalled in an explicit or implicit manner. When a CU is coded with skip mode, the CU is associated with one PU and has no significant residual coefficients, no coded motion vector delta or reference picture index. A merge mode is specified whereby the motion parameters for the current CU are obtained from neighbouring CUs, including spatial and temporal candidates, and additional schedules introduced in VVC. The merge mode can be applied to any inter-predicted CU, not only for skip mode. The alternative to merge mode is the explicit transmission of motion parameters, where motion vector, corresponding reference picture index for each reference picture list and reference picture list usage flag and other needed information are signalled explicitly per CU.

[0009] Affine Motion Compensated Prediction

[0010] In HEVC, only translation motion model is applied for motion compensation prediction (MCP) . While in the real world, there are many kinds of motion, e.g. zoom in / out, rotation, perspective motions and the other irregular motions. In VVC, a block-based affine transform motion compensation prediction is applied. As shown Figs. 2A-B, the affine motion field of the block 210 is described by motion information of two control point (4-parameter) in Fig. 2A or three control point motion vectors (6-parameter) in Fig. 2B.

[0011] For 4-parameter affine motion model, motion vector at sample location (x, y) in a block is derived as:

[0012] For 6-parameter affine motion model, motion vector at sample location (x, y) in a block is derived as:

[0013] Where (mv0x, mv0y) is motion vector of the top-left corner control point, (mv1x, mv1y) is motion vector of the top-right corner control point, and (mv2x, mv2y) is motion vector of the bottom-left corner control point.

[0014] In order to simplify the motion compensation prediction, block based affine transform prediction is applied. To derive motion vector of each 4×4 luma subblock, the motion vector of the centre sample of each subblock, as shown in Fig. 3, is calculated according to above equations, and rounded to 1 / 16 fraction accuracy. Then, the motion compensation interpolation filters are applied to generate the prediction of each subblock with the derived motion vector. The subblock size of chroma-components is also set to be 4×4. The MV of a 4×4 chroma subblock is calculated as the average of the MVs of the top-left and bottom-right luma subblocks in the collocated 8x8 luma region.

[0015] As is for translational-motion inter prediction, there are also two affine motion inter prediction modes: affine merge mode and affine AMVP (Advanced Motion Vector Prediction) mode.

[0016] Affine Merge Prediction

[0017] AF_MERGE mode can be applied for CUs with both width and height larger than or equal to 8. In this mode, the CPMVs (Control Point MVs) of the current CU is generated based on the motion information of the spatial neighbouring CUs. There can be up to five CPMVP (CPMV Prediction) candidates and an index is signalled to indicate the one to be used for the current CU. The following three types of CPVM candidate are used to form the affine merge candidate list: – Inherited affine merge candidates that are extrapolated from the CPMVs of the neighbour CUs – Constructed affine merge candidates CPMVPs that are derived using the translational MVs of the  neighbour CUs – Zero MVs

[0018] In VVC, there are two inherited affine candidates at most, which are derived from the affine motion model of the neighbouring blocks, one from left neighbouring CUs and one from above neighbouring CUs. The candidate blocks are the same as those shown in Fig. 4. For the left predictor, the scan order is A0→A1, and for the above predictor, the scan order is B0→B1→B2. Only the first inherited candidate from each side is selected. No pruning check is performed between two inherited candidates. When a neighbouring affine CU is identified, its control point motion vectors are used to derived the CPMVP candidate in the affine merge list of the current CU. As shown in Fig. 5, if the neighbouring left bottom block A of the current block 510 is coded in affine mode, the motion vectors v2 , v3 and v4 of the top left corner, above right corner and left bottom corner of the CU 520 containing block A are attained. When block A is coded with 4-parameter affine model, the two CPMVs of the current CU (i.e., v0 and v1) are calculated according to v2, and v3. In case that block A is coded with 6-parameter affine model, the three CPMVs of the current CU are calculated according to v2 , v3 and v4.

[0019] Constructed affine candidate means the candidate is constructed by combining the neighbouring translational motion information of each control point. The motion information for the control points is derived from the specified spatial neighbours and temporal neighbours for a current block 610 as shown in Fig. 6. CPMVk (k=1, 2, 3, 4) represents the k-th control point. For CPMV1, the B2→B3→A2 blocks are checked and the MV of the first available block is used. For CPMV2, the B1→B0 blocks are checked and for CPMV3, the A1→A0 blocks are checked. For TMVP is used as CPMV4 if it’s available.

[0020] After MVs of four control points are attained, affine merge candidates are constructed based on the motion information. The following combinations of control point MVs are used to construct in order: {CPMV1, CPMV2, CPMV3} , {CPMV1, CPMV2, CPMV4} , {CPMV1, CPMV3, CPMV4} ,  {CPMV2, CPMV3, CPMV4} , {CPMV1, CPMV2} , {CPMV1, CPMV3}

[0021] The combination of 3 CPMVs constructs a 6-parameter affine merge candidate and the combination of 2 CPMVs constructs a 4-parameter affine merge candidate. To avoid motion scaling process, if the reference indices of control points are different, the related combination of control point MVs is discarded.

[0022] After inherited affine merge candidates and constructed affine merge candidate are checked, if the list is still not full, zero MVs are inserted to the end of the list.

[0023] Affine AMVP Prediction

[0024] Affine AMVP mode can be applied for CUs with both width and height larger than or equal to 16. An affine flag in the CU level is signalled in the bitstream to indicate whether affine AMVP mode is  used and then another flag is signalled to indicate whether 4-parameter affine or 6-parameter affine is used. In this mode, the difference of the CPMVs of current CU and their predictors CPMVPs is signalled in the bitstream. The affine AVMP candidate list size is 2 and it is generated by using the following four types of CPVM candidate in order: – Inherited affine AMVP candidates that extrapolated from the CPMVs of the neighbour CUs  – Constructed affine AMVP candidates CPMVPs that are derived using the translational MVs of  the neighbour CUs – Translational MVs from neighbouring CUs – Zero MVs

[0025] The checking order of inherited affine AMVP candidates is the same as the checking order of inherited affine merge candidates. The only difference is that, for AMVP candidate, only the affine CU that has the same reference picture as current block is considered. No pruning process is applied when inserting an inherited affine motion predictor into the candidate list.

[0026] Constructed AMVP candidate is derived from the specified spatial neighbours shown in Fig. 6. The same checking order is used as that in the affine merge candidate construction. In addition, the reference picture index of the neighbouring block is also checked. In the checking order, the first block that is inter coded and has the same reference picture as in current CUs is used. When the current CU is coded with the 4-parameter affine mode, and mv0 and mv1 are both availlalbe, they are added as one candidate in the affine AMVP list. When the current CU is coded with 6-parameter affine mode, and all three CPMVs are available, they are added as one candidate in the affine AMVP list. Otherwise, the constructed AMVP candidate is set as unavailable.

[0027] If the number of affine AMVP list candidates is still less than 2 after valid inherited affine AMVP candidates and constructed AMVP candidate are inserted, mv0, mv1 and mv2 will be added as the translational MVs in order to predict all control point MVs of the current CU, when available. Finally, zero MVs are used to fill the affine AMVP list if it is still not full.

[0028] Affine Motion Information Storage

[0029] In VVC, the CPMVs of affine CUs are stored in a separate buffer. The stored CPMVs are only used to generate the inherited CPMVPs in the affine merge mode and affine AMVP mode for the lately coded CUs. The subblock MVs derived from CPMVs are used for motion compensation, MV derivation of merge / AMVP list of translational MVs and de-blocking.

[0030] To avoid the picture line buffer for the additional CPMVs, affine motion data inheritance from the CUs of the above CTU is treated differently for the inheritance from the normal neighbouring CUs. If the candidate CU for affine motion data inheritance is in the above CTU line, the bottom-left and bottom-right subblock MVs in the line buffer instead of the CPMVs are used for the affine MVP derivation. In this way, the CPMVs are only stored in a local buffer. If the candidate CU is 6-parameter affine coded, the affine model is degraded to 4-parameter model. As shown in Fig. 7, along the top CTU boundary, the bottom-left and bottom right subblock motion vectors of a CU are used for affine inheritance of the CUs in bottom CTUs. In Fig. 7, line 710 and line 712 indicate the x and y coordinates of the picture with the origin (0, 0) at the upper left corner. Legend 720 shows the meaning of various motion vectors, where arrow 722 represents the CPMVs for affine inheritance in the local buff, arrow 724 represents sub-block vectors for MC / merge / skip / AMVP / deblocking / TMVPs in the local buffer and for affine inheritance in the line buffer, and arrow 1126 represents sub-block vectors for MC / merge / skip / AMVP / deblocking / TMVPs.

[0031] Prediction Refinement with Optical Flow (PROF) for Affine Mode

[0032] Subblock based affine motion compensation can save memory access bandwidth and reduce computation complexity compared to pixel based motion compensation, at the cost of prediction accuracy penalty. To achieve a finer granularity of motion compensation, Prediction Refinement with Optical Flow (PROF) is used to refine the subblock based affine motion compensated prediction without increasing the memory access bandwidth for motion compensation. In VVC, after the subblock based affine motion compensation is performed, luma prediction sample is refined by adding a difference derived by the optical flow equation. The PROF is described as following four steps:

[0033] Step 1) The subblock-based affine motion compensation is performed to generate subblock prediction I (i, j) .

[0034] Step2) The spatial gradients gx (i, j) and gy (i, j) of the subblock prediction are calculated at each sample location using a 3-tap filter [-1, 0, 1] . The gradient calculation is exactly the same as gradient calculation in BDOF: gx (i, j) = (I (i+1, j) >>shift1) - (I (i-1, j) >>shift1) , gy (i, j) = (I (i, j+1)>>shift1) - (I (i, j-1) >>shift1) .

[0035] In the above equations, shift1 is used to control the gradient’s precision. The subblock (i.e. 4x4) prediction is extended by one sample on each side for the gradient calculation. To avoid additional memory bandwidth and additional interpolation computation, those extended samples on the extended borders are copied from the nearest integer pixel position in the reference picture.

[0036] Step 3) The luma prediction refinement is calculated by the following optical flow equation: ΔI (i, j) = gx (i, j) *Δvx (i, j) +gy (i, j) *Δvy (i, j) .       (3)

[0037] where the Δv (i, j) is the difference between sample MV computed for sample location (i, j) , denoted by v (i, j) , and the subblock MV of the subblock to which sample (i, j) belongs, as shown in Fig. 8. The Δv (i, j) is quantized in the unit of 1 / 32 luma sample precision. In Fig. 8, sub-block 822 corresponds to a reference sub-block for sub-block 820 as pointed by the motion vector vSB (812) . The reference sub-block 822 represents a reference sub-block resulted from translational motion of block 820. Reference sub-block 824 corresponds to a reference sub-block with PROF. The motion vector for each pixel is refined by Δv (i, j) . For example, the refined motion vector v (i, j) 814 for the top-left pixel of the sub-block 820 is derived based on the sub-block MV vSB (812) modified by Δv (i, j) 816.

[0038] Since the affine model parameters and the sample location relative to the subblock centre are not changed from subblock to subblock, Δv (i, j) can be calculated for the first subblock, and reused for other subblocks in the same CU. Let dx (i, j) and dy (i, j) be the horizontal and vertical offset from the sample location (i, j) to the center of the subblock (xSB, ySB) , Δv (x, y) can be derived by the following equation:

[0039] In order to keep accuracy, the enter of the subblock (xSB, ySB) is calculated as ( (WSB -1 )  / 2, (HSB -1 )  / 2 ) , where WSB and HSB are the subblock width and height, respectively.

[0040] For 4-parameter affine model,

[0041] For 6-parameter affine model,

[0042] where (v0x, v0y) , (v1x, v1y) , (v2x, v2y) are the top-left, top-right and bottom-left control point motion vectors, w and h are the width and height of the CU.

[0043] Step 4) Finally, the luma prediction refinement ΔI (i, j) is added to the subblock prediction I (i, j) . The final prediction I’ is generated as the following equation. I′ (i, j) = I (i, j) +ΔI (i, j)

[0044] PROF is not applied in two cases for an affine coded CU: 1) all control point MVs are the same, which indicates the CU only has translational motion; 2) the affine motion parameters are greater than a specified limit because the subblock based affine MC (Motion Compensation) is degraded to CU based MC to avoid large memory access bandwidth requirement.

[0045] A fast encoding method is applied to reduce the encoding complexity of affine motion estimation with PROF. PROF is not applied at affine motion estimation stage in following two situations: a) if this CU is not the root block and its parent block does not select the affine mode as its best mode, PROF is not applied since the possibility for current CU to select the affine mode as best mode is low; b) if the magnitude of four affine parameters (C, D, E, F) are all smaller than a predefined threshold and the current picture is not a low delay picture, PROF is not applied because the improvement introduced by PROF is small for this case. In this way, the affine motion estimation with PROF can be accelerated.

[0046] Merge mode with MVD (MMVD)

[0047] In addition to merge mode, where the implicitly derived motion information is directly used for prediction samples generation of the current CU, the merge mode with motion vector differences (MMVD) is introduced in VVC. An MMVD flag is signalled right after sending a regular merge flag to specify whether MMVD mode is used for a CU.

[0048] In MMVD, after a merge candidate is selected, it is further refined by the signalled MVDs information. The further information includes a merge candidate flag, an index to specify motion magnitude, and an index for indication of motion direction. In MMVD mode, one of the first two candidates in the merge list is selected to be used as MV basis. The MMVD candidate flag is signalled to specify which one is used between the first and second merge candidates.

[0049] Distance index specifies motion magnitude information and indicates the pre-defined offset from the starting points (912 and 922) for a L0 reference block 910 and L1 reference block 920 as shown in Fig. 9. In Fig. 9, an offset is added to either the horizontal component or the vertical component of the starting MV, where small circles in different styles correspond to different offsets from the centre. The relation between the distance index and pre-defined offset is specified in Table 1. Table 1-The relation of distance index and pre-defined offset

[0050] Direction index represents the direction of the MVD relative to the starting point. The direction index can represent of the four directions as shown below. Direction index represents the direction of the MVD relative to the starting point. The direction index can represent the four directions as shown in Table 2. It is noted that the meaning of MVD sign could be variant according to the information of starting MVs. When the starting MVs are an uni-prediction MV or bi-prediction MVs with both lists pointing to the same side of the current picture (i.e. POCs of two references both larger than the POC of the current picture, or both smaller than the POC of the current picture) , the sign in Table 2 specifies the sign of the MV offset added to the starting MV. When the starting MVs are bi-prediction MVs with the two MVs pointing to the different sides of the current picture (i.e. the POC of one reference larger than the POC of the current picture, and the POC of the other reference smaller than the POC of the current picture) , and the difference of POC in list 0 is greater than the one in list 1, the sign in Table 2 specifies the sign of MV offset added to the list0 MV component of the starting MV and the sign for the list1 MV has an opposite value. Otherwise, if the difference of POC in list 1 is greater than list 0, the sign in Table 2 specifies the sign of the MV offset added to the list1 MV component of starting MV and the sign for the list 0 MV has an opposite value.

[0051] The MVD is scaled according to the difference of POCs in each direction. If the differences of POCs in both lists are the same, no scaling is needed. Otherwise, if the difference of POC between list 0 (i.e., L0) reference picture and the current picture is larger than the one between list 1 (i.e., L1) picture and the current picture, the MVD for list 1 is scaled according to a ratio of td and tb, where td corresponds to the POC difference of L0 reference picture and the current picture and tb corresponds to POC difference of L1 reference picture and the current picture. If the difference of POC between L1 reference picture and the current picture is greater than the one between L0 reference picture and the current picture, the MVD for list 0 is scaled in the similar way. If the starting MV is uni-predicted, the MVD is added to the available MV. Table 2. Sign of MV offset specified by direction index

[0052] TM Based Reordering for MMVD and Affine MMVD

[0053] The MMVD offsets are extended for MMVD and affine MMVD modes. Additional refinement positions along k×π / 8 diagonal angles (circles 1010) are added shown in Fig. 10, thus increasing the number of directions from 4 to 16. Second, based on the SAD cost between the template (one row above and one column left to the current block) and its reference for each refinement position, all the possible MMVD refinement positions (16×6) for each base candidate are reordered. Finally, the top 1 / 8 refinement positions with the smallest template SAD costs are kept as available positions, consequently for MMVD index coding. The MMVD index is binarized by the Rice code with the parameter equal to 2. The affine MMVD reordering is extended, in which additional refinement positions along k×π / 4 diagonal angles are added. After reordering top 1 / 2 refinement positions with the smallest template SAD costs are kept.

[0054] The first N motion candidates in the candidate list before being reordered are utilized as the base candidates for MMVD and affine MMVD. N is equal to 3 for MMVD, and [1, 3] depending on the neighbouring block affine flags for affine MMVD. Two ways of adding MMVD offsets are allowed, including the ‘two-side’ and ‘one-side’ , depending on whether the offset of the other reference picture list is mirrored or directly set to zero. Which way is applied to one block is dependent on the TM cost.

[0055] JVET-W0097 EE2-related: Combination of EE2-3.3, EE2-3.4 and EE2-3.5

[0056] At the JVET-V meeting, several methods were proposed to improve the coding efficiency of the GPM (Geometric Partitioning Mode) in the VVC. The methods were included in the exploration experiment (EE2) for further evaluations, the main technical aspects of which are described as follows:

[0057] EE2-3.3 on GPM with MMVD (GPM-MMVD) : 1) additional MVDs are added to the existing GPM merge candidates; 2) the MVDs are signalled in the same manner as the MMVD in the VVC (i.e., one distance index plus one direction index) ; 3) two flags are signalled to separately control whether the MMVD is applied to each GPM partition or not.

[0058] EE2-3.4-3.5 on GPM with template matching (GPM-TM) : 1) template matching is extended to the GPM mode by refining the GPM MVs based on the left and above neighbouring samples of the current CU; 2) the template samples are selected dependent on the GPM split direction; 3) one single flag is signalled to jointly control whether the template matching is applied to the MVs of two GPM partitions or not.

[0059] This contribution proposes a combination of EE2-3.3, EE2-3.4 and EE2-3.5 to further improve the coding efficiency of the GPM mode. Specifically, in the proposed combination, the existing designs in EE2-3.3, EE2-3.4 and EE2-3.5 are kept unchanged while the following modifications are further applied for the harmonization of the two coding tools: 1) The GPM-MMVD and GPM-TM are exclusively enabled to one GPM CU. This is done by firstly  signalling the GPM-MMVD syntax. When both the two GPM-MMVD control flags are equal to false (i.e., the GPM-MMVD being disabled for the two GPM partitions) , the GPM-TM flag is signalled to indicate whether the template matching is applied to the two GPM partitions. Otherwise (at least one GPM-MMVD flag being equal to true) , the value of the GPM-TM flag is inferred to be false. 2) The GPM merge candidate list generation methods in EE2-3.3 and EE2-3.4-3.5 are directly  combined in a manner that the MV pruning scheme in EE2-3.4-3.5 (where the MV pruning threshold is adapted based on the current CU size) is applied to replace the default MV pruning scheme applied in EE2-3.3; additionally, as in EE2-3.4-3.5, multiple zero MVs are added until the GPM candidate list is fully filled.

[0060] JVET-AG0098 EE2-2.7: AMVP with SbTMVP Mode

[0061] In the proposed AMVP with SbTMVP (Subblock-based Temporal Motion Vector Prediction) mode, a CU is split into 4x4 subblocks, and each subblock derives its own motion from a corresponding subblock in the collocated picture. One collocated picture is used for non-low delay pictures, whereas two collocated pictures are used for low delay pictures. The corresponding subblock is obtained using MVP with a signalled MVD. The MVP is derived in the same way as that of AMVP mode. The number of MVD is determined according to the percentage of the area of the blocks coded in the proposed mode in the previous coded picture with the same temporal layer as follows: · If the current picture is the first coded picture in a temporal layer, the number of MVD is set to  8, as shown in Fig. 11A, where the empty circle corresponds to MVP with MVD equal to 0 and the dark circles correspond to the locations of MVP with various MVD values. · Otherwise, if the percentage of the area of the proposed mode is smaller than threshold1, the  number of MVD is set to 4, as shown in Fig. 11B. · Otherwise, if the percentage of the area of the proposed mode is smaller than threshold2, the  number of MVD is set to 8, as shown in Fig. 11A. · Otherwise, the number of MVD is set to 12, as shown in Fig. 11C.

[0062] In the 1st test, threshold1 and threshold2 are set to 3%and 6%, respectively. In the 2nd test, threshold1 and threshold2 are set to 4%and 7%, respectively.

[0063] When deriving the motion for subblocks, the reference pictures are fixed to the one with the reference picture index equal to 0. Then, the temporal motion vector scaling is applied to the motion vectors of the corresponding subblocks to obtain motion vectors for the subblocks. When the corresponding subblock in collocated picture is non-inter coded, the temporal motion information is considered unavailable and the motion of centre subblock of the CU is used instead. When the motion of the centre subblock of the CU is also unavailable, the MVP with the signalled MVD is used instead.

[0064] When combining the proposed mode with other inter prediction modes, LIC, MHP are not applied. The OBMC mode is always enabled for the proposed mode. The AMVR is enabled for picture resolution larger than or equal to 3840x2160 luma samples. When the AMVR is enabled for a AMVP with SbTMVP coded block, the MVD magnitudes are increased from {4, 8, 12} -pel to larger values. In the 1st test, MVD magnitudes are {16, 32, 48} -pel when AMVR is enabled, whereas in the 2nd test, MVD magnitudes are {16, 24, 32} -pel.

[0065] To reduce the encoder complexity, when the POC distance between collocated pictures and the current picture is larger than threshold3, the proposed mode is disabled for the current picture. The threshold3 is set to 2 and 4 for 1st and 2nd tests, respectively. Besides, in the 2nd test, the AMVP affine ME process is skipped if current best coding mode is SbTMVP or the proposed AMVP with SbTMVP modes at the encoder.

[0066] In this invention, methods and apparatus for signalling the number and or patterns of MVD candidates in AMVP mode are disclosed. BRIEF SUMMARY OF THE INVENTION

[0067] A method and apparatus for video coding using MVD (Motion Vector Difference) candidates are disclosed. According to the method, input data associated with a current block is received, wherein the input data comprise pixel data for the current block to be encoded at an encoder side or encoded data associated with the current block to be decoded at a decoder side, and wherein the current block is coded in an inter prediction mode. Syntax related to a number of MVD (Motion Vector Difference) candidates, one or more patterns of the MVD candidates, or both are signalled or parsed. A target MVD is determined from the MVD candidates for the current block. One or more reference blocks is determined according to the target MVD and one or more MVPs (Motion Vector Predictors) . An inter prediction candidate is generated based on said one or more reference blocks for the current block. The current block is encoded or decoded by using coding information comprising the inter prediction candidate.

[0068] In one embodiment, the inter prediction mode corresponds to an SbTMVP (Subblock-based Temporal Motion Vector Prediction) mode. In one embodiment, an SbTMVP candidate for the current block is generated using subblock motion information from corresponding subblocks in one or more collocated pictures derived for subblocks of the current block according to the target MVD and said one or more MVPs.

[0069] In one embodiment, one or more syntax elements are signalled or parsed in picture header, slice header, PPS (Picture Parameter Set) , SPS (Sequence Parameter Set) , or a combination thereof.

[0070] In one embodiment, one or more syntax elements are signalled or parsed to indicate said one or more patterns of the MVD candidates in the inter prediction mode, and wherein the inter prediction mode comprises one or more candidate modes using the MVD candidates. In one embodiment, the inter prediction mode comprises regular MMVD (Merge mode with Motion Vector Differences) in merge mode, GPM (Geometric Partitioning Mode) with MMVD, affine MMVD, AMVP (Advanced Motion Vector Prediction) with SbTMVP (Subblock-based Temporal Motion Vector Prediction) mode, or a combination thereof.

[0071] In one embodiment, said one or more patterns of MVD candidates contains either the number of the MVD candidates or locations of the MVD candidates.

[0072] In one embodiment, said one or more patterns of MVD candidates is changed adaptively per coding block, per CTU (Coding Tree Unit) , or per slice.

[0073] In one embodiment, said one or more patterns of MVD candidates corresponds to one of non-adjacent patterns used in other prediction modes.BRIEF DESCRIPTION OF THE DRAWINGS

[0074] Fig. 1A illustrates an exemplary adaptive Inter / Intra video coding system incorporating loop processing.

[0075] Fig. 1B illustrates a corresponding decoder for the encoder in Fig. 1A.

[0076] Fig. 2A illustrates an example of the affine motion field of a block described by motion information of two control point (4-parameter) .

[0077] Fig. 2B illustrates an example of the affine motion field of a block described by motion information of three control point motion vectors (6-parameter) .

[0078] Fig. 3 illustrates an example of block based affine transform prediction, where the motion vector of each 4×4 luma subblock is derived from the control-point MVs.

[0079] Fig. 4 illustrates the neighbouring blocks used for deriving spatial merge candidates for VVC.

[0080] Fig. 5 illustrates an example of derivation for inherited affine candidates based on control-point MVs of a neighbouring block.

[0081] Fig. 6 illustrates an example of affine candidate construction affine merge mode by combining the translational motion information of each control point from spatial neighbours and temporal.

[0082] Fig. 7 illustrates an example of motion vector usage for combined method.

[0083] Fig. 8 illustrates an example of sub-block based affine motion compensation, where the motion vectors for individual pixels of a sub-block are derived according to motion vector refinement.

[0084] Fig. 9 illustrates an example of Merge mode with MVD (MMVD) , where distance index specifies motion magnitude information and indicates the pre-defined offset from the starting points for a L0 reference block and L1 reference block.

[0085] Fig. 10 illustrates an example of additional directions along k×π / 8 diagonal angles (positions shown in dark colour) .

[0086] Fig. 11 illustrates examples of possible MVs of the proposed mode, where Fig. 11A contains 8 MVD values, Fig. 11B contains 4 MVD values, and Fig. 11C contains 12 MVD values.

[0087] Fig. 12 illustrates an exemplary pattern of the non-adjacent spatial merge candidates.

[0088] Figs. 13A-B illustrate two search patterns for inheriting non-adjacent spatial neighbouring models.

[0089] Fig. 14 illustrates a flowchart of an exemplary video coding system that signals syntax related to a number of MVD candidates, one or more patterns of the MVD candidates, or both according to an embodiment of the present invention.DETAILED DESCRIPTION OF THE INVENTION

[0090] It will be readily understood that the components of the present invention, as generally described and illustrated in the figures herein, may be arranged and designed in a wide variety of different configurations. Thus, the following more detailed description of the embodiments of the systems and methods of the present invention, as represented in the figures, is not intended to limit the scope of the invention, as claimed, but is merely representative of selected embodiments of the invention. References throughout this specification to “one embodiment, ” “an embodiment, ” or similar language mean that a particular feature, structure, or characteristic described in connection with the embodiment may be included in at least one embodiment of the present invention. Thus, appearances of the phrases “in one embodiment” or “in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment.

[0091] Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. One skilled in the relevant art will recognize, however, that the invention can be practiced without one or more of the specific details, or with other methods, components, etc. In other instances, well-known structures, or operations are not shown or described in detail to avoid obscuring aspects of the invention. The illustrated embodiments of the invention will be best understood by reference to the drawings, wherein like parts are designated by like numerals throughout. The following description is intended only by way of example, and simply illustrates certain selected embodiments of apparatus and methods that are consistent with the invention as claimed herein.

[0092] Several new methods of MVD candidate number selection in AMVP with SbTMVP mode are disclosed. In existing ECM, the number of MVD candidates for a current picture is determined by area percentage calculation in previous pictures or some default settings. Existing MVD candidate number may create latency issues or parsing issues since the number of MVD candidates for the current picture can only be decided after statistics calculation for the proposed AMVP with SbTMVP mode is finished. In the proposed method, the number of MVD candidates can be determined by explicitly signalling in picture header, slice header, PPS, or SPS. Alternatively, in the proposed method, multiple different MVD candidate patterns can be selected by signalling, and those different MVD candidate patterns contain the number of MVD candidates and positions (or locations) of MVD candidates. The pattern of MVD candidate selection can be performed per block, per CTU, or per slice. Furthermore, reordering mechanism is also proposed to AMVP with SbTMVP mode. Besides, a unification of MVD candidate patterns in prediction mode is also proposed. Furthermore, for bi-predicted blocks, the pattern of MVD candidates can be selected in either one reference picture or in multiple reference pictures. The bi-predicted blocks may select its pattern of MVD candidates in true bi-prediction or both forward / backward prediction (low-delay) .

[0093] Example 1: Signalling of MVD candidate number and patterns

[0094] In one embodiment, the number of MVD candidate in AMVP with SbTMVP mode is directly determined based on explicit signal from picture header, slice header, PPS, or SPS.

[0095] In another embodiment, the pattern of MVD candidates can be one of non-adjacent patterns used in other prediction modes. For instance, as shown in Fig. 12 and Figs. 13A-B, non-adjacent patterns are used as MVD candidate patterns. The patterns of MVD candidates may contain either the number of MVD candidates or the locations of MVD candidates.

[0096] In another embodiment, the patterns of MVD candidates in AMVP with SbTMVP mode are determined by the signal from picture header, slice header, PPS, or SPS.

[0097] In another embodiment, the patterns of MVD candidates in AMVP with SbTMVP is adaptively changed per block, per CTU, or per slice, instead of per picture. The patterns of MVD candidates may contain either the number of MVD candidate or the locations of MVD candidates.

[0098] In another embodiment, one or more MVD candidate pattern selection syntax elements are signalled to indicate the MVD candidate pattern in inter-prediction mode, which contains one or more modes using MVD candidates (e.g. regular MMVD in merge mode, GPM with MMVD, affine MMVD, AMVP with SbTMVP mode) . The patterns of MVD candidate may contain either the number of MVD candidate or locations of MVD candidate.

[0099] Example 2: AMVP with SbTMVP with MVD candidate reordering

[0100] In one embodiment, template-matching-based reordering is performed among MVD candidates in AMVP with SbTMVP mode.

[0101] In another embodiment, boundary-matching-based reordering is performed among MVD candidates in AMVP with SbTMVP mode.

[0102] In another embodiment, after reordering is performed in AMVP with SbTMVP mode, the codeword design is shorter for the first N candidates and longer for the last M candidates, where N and M are both integer larger or equal to 0.

[0103] Example 3: Unification of MVD candidate patterns in inter-prediction mode

[0104] In one embodiment, one or more MVD candidate patterns in inter-prediction mode are unified or the same (e.g. regular MMVD in merge mode, GPM with MMVD, affine MMVD, AMVP with SbTMVP mode) .

[0105] In another embodiment, one or more MVD candidate numbers in inter-prediction mode are unified or the same (e.g. regular MMVD in merge mode, GPM with MMVD, affine MMVD, AMVP with SbTMVP mode) .

[0106] In another embodiment, one or more MVD candidate positions in inter-prediction mode are unified or the same (regular MMVD in merge mode, GPM with MMVD, affine MMVD, AMVP with SbTMVP mode) . The pel-distance can be different or the same while the MMVD candidate position is the same.

[0107] Example 4: Patterns of MVD candidate selection in bi-prediction

[0108] In one embodiment, for bi-predicted blocks, patterns of MVD candidates can be selected adaptively. For example, according to POC distance, the reference picture in either L0 or L1 that is closer to the current picture (i.e., smaller POC distance) can determine its MVD candidate patterns by signalling. The other reference picture uses pre-defined or default MVD candidate patterns.

[0109] In another embodiment, for bi-predicted blocks, patterns of MVD candidates can be selected adaptively. For example, according to temporal layer, the reference picture that is in lower temporal layer can determine its MVD candidate patterns by signalling. The other reference picture uses pre-defined or default MVD candidate patterns.

[0110] In another embodiment, for bi-predicted blocks, patterns of MVD candidates can be selected adaptively in multiple reference pictures.

[0111] In another embodiment, for bi-predicted blocks, when one reference picture is forward prediction and the other reference picture is backward prediction (i.e., true bi-prediction) , one or multiple reference pictures is allowed to signal the patterns of MVD candidates. For those reference pictures not using signalled MVD candidate, pre-defined or default MVD candidate patterns are used.

[0112] In another embodiment, for bi-predicted blocks, when both reference pictures are forward prediction or backward prediction, one or multiple reference pictures are allowed to signal the patterns of MVD candidates. For those reference pictures not using signalled MVD candidate, pre-defined or default MVD candidate patterns are used.

[0113] In another embodiment, for bi-predicted blocks in true bi-prediction, an iterative MVD candidate pattern search of MVD candidate is performed if signalled. For instance, MVD candidate pattern in L0 is searched while maintaining pre-defined MVD candidate pattern in L1. Then the best MVD candidate pattern in L0 is used while searching MVD candidate pattern in L1. After that, the MVD candidate pattern can be updated in L0 while using the best searched MVD candidate pattern in L1. The process can continue until some conditions are met to terminate the search, such as a threshold or a number of iterations.

[0114] Any of the foregoing proposed methods can be implemented in encoders and / or decoders. For example, any of the proposed methods can be implemented in predictor derivation module of an encoder, and / or a predictor derivation module of a decoder. Alternatively, any of the proposed methods can be implemented as a circuit coupled to the predictor derivation module of the encoder and / or the predictor derivation module of the decoder, so as to provide the information needed by the predictor derivation module. With reference to the exemplary encoder and decoder in Fig. 1A and Fig. 1B, any of the proposed signalling the number and or patterns of MVD candidates in AMVP mode can be implemented in an Inter coding module (e.g. MC 152 in Fig. 1B) in a decoder or an Inter coding module is an encoder (e.g. Inter Pred. 112 in Fig. 1A) . Furthermore, Entropy Encoder 122 at the encoder and Entropy Decoder 140 at the decoder are also used. The proposed methods may also be implemented by using executable software or firmware codes stored on a media, such as hard disk or flash memory, for a CPU (Central Processing Unit) or programmable devices (e.g. DSP (Digital Signal Processor) or FPGA (Field Programmable Gate Array) ) .

[0115] Fig. 14 illustrates a flowchart of an exemplary video coding system that signals syntax related to a number of MVD candidates, one or more patterns of the MVD candidates, or both according to an embodiment of the present invention. The steps shown in the flowchart may be implemented as program codes executable on one or more processors (e.g., one or more CPUs) at the encoder side. The steps shown in the flowchart may also be implemented based hardware such as one or more electronic devices or processors arranged to perform the steps in the flowchart. According to the method, input data associated with a current block is received in step 1410, wherein the input data comprise pixel data for the current block to be encoded at an encoder side or encoded data associated with the current block to be decoded at a decoder side, and wherein the current block is coded in an inter prediction mode. Syntax related to a number of MVD (Motion Vector Difference) candidates, one or more patterns of the MVD candidates, or both are signalled or parsed in step 1420. A target MVD is determined from the MVD candidates for the current block in step 1430. One or more reference blocks is determined according to the target MVD and one or more MVPs (Motion Vector Predictors) in step 1440. An inter prediction candidate is generated based on said one or more reference blocks for the current block in step 1450. The current block is encoded or decoded by using coding information comprising the inter prediction candidate in step 1460.

[0116] The flowchart shown is intended to illustrate an example of video coding according to the present invention. A person skilled in the art may modify each step, re-arranges the steps, split a step, or combine steps to practice the present invention without departing from the spirit of the present invention. In the disclosure, specific syntax and semantics have been used to illustrate examples to implement embodiments of the present invention. A skilled person may practice the present invention by substituting the syntax and semantics with equivalent syntax and semantics without departing from the spirit of the present invention.

[0117] The above description is presented to enable a person of ordinary skill in the art to practice the present invention as provided in the context of a particular application and its requirement. Various modifications to the described embodiments will be apparent to those with skill in the art, and the general principles defined herein may be applied to other embodiments. Therefore, the present invention is not intended to be limited to the particular embodiments shown and described, but is to be accorded the widest scope consistent with the principles and novel features herein disclosed. In the above detailed description, various specific details are illustrated in order to provide a thorough understanding of the present invention. Nevertheless, it will be understood by those skilled in the art that the present invention may be practiced.

[0118] Embodiment of the present invention as described above may be implemented in various hardware, software codes, or a combination of both. For example, an embodiment of the present invention can be one or more circuit circuits integrated into a video compression chip or program code integrated into video compression software to perform the processing described herein. An embodiment of the present invention may also be program code to be executed on a Digital Signal Processor (DSP) to perform the processing described herein. The invention may also involve a number of functions to be performed by a computer processor, a digital signal processor, a microprocessor, or field programmable gate array (FPGA) . These processors can be configured to perform particular tasks according to the invention, by executing machine-readable software code or firmware code that defines the particular methods embodied by the invention. The software code or firmware code may be developed in different programming languages and different formats or styles. The software code may also be compiled for different target platforms. However, different code formats, styles and languages of software codes and other means of configuring code to perform the tasks in accordance with the invention will not depart from the spirit and scope of the invention.

[0119] The invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described examples are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.

Claims

1.A method of video coding, the method comprising:receiving input data associated with a current block, wherein the input data comprise pixel data for the current block to be encoded at an encoder side or encoded data associated with the current block to be decoded at a decoder side, and wherein the current block is coded in an inter prediction mode;signalling or parsing syntax related to a number of MVD (Motion Vector Difference) candidates, one or more patterns of the MVD candidates, or both;determining a target MVD from the MVD candidates for the current block;determining one or more reference blocks according to the target MVD and one or more MVPs (Motion Vector Predictors) ;generating an inter prediction candidate based on said one or more reference blocks for the current block; andencoding or decoding the current block by using coding information comprising the inter prediction candidate.2.The method of Claim 1, wherein the inter prediction mode corresponds to an SbTMVP (Subblock-based Temporal Motion Vector Prediction) mode.3.The method of Claim 2, wherein an SbTMVP candidate for the current block is generated using subblock motion information from corresponding subblocks in one or more collocated pictures derived for subblocks of the current block according to the target MVD and said one or more MVPs.4.The method of Claim 1, wherein one or more syntax elements are signalled or parsed in picture header, slice header, PPS (Picture Parameter Set) , SPS (Sequence Parameter Set) , or a combination thereof.5.The method of Claim 1, wherein one or more syntax elements are signalled or parsed to indicate said one or more patterns of the MVD candidates in the inter prediction mode, and wherein the inter prediction mode comprises one or more candidate modes using the MVD candidates.6.The method of Claim 5, wherein the inter prediction mode comprises regular MMVD (Merge mode with Motion Vector Differences) in merge mode, GPM (Geometric Partitioning Mode) with MMVD, affine MMVD, AMVP (Advanced Motion Vector Prediction) with SbTMVP (Subblock-based Temporal Motion Vector Prediction) mode, or a combination thereof.7.The method of Claim 1, wherein said one or more patterns of MVD candidates contains either the number of the MVD candidates or locations of the MVD candidates.8.The method of Claim 1, wherein said one or more patterns of MVD candidates is changed adaptively per coding block, per CTU (Coding Tree Unit) , or per slice.9.The method of Claim 1, wherein said one or more patterns of MVD candidates corresponds to one of non-adjacent patterns used in other prediction modes.10.An apparatus of video coding, the apparatus comprising one or more electronic circuits or processors arranged to:receive input data associated with a current block, wherein the input data comprise pixel data for the current block to be encoded at an encoder side or encoded data associated with the current block to be decoded at a decoder side, and wherein the current block is coded in an inter prediction mode;signal or parse syntax related to a number of MVD (Motion Vector Difference) candidates, one or more patterns of the MVD candidates, or both;determine a target MVD from the MVD candidates for the current block;determine one or more reference blocks according to the target MVD and one or more MVPs (Motion Vector Predictors) ;generate an inter prediction candidate based on said one or more reference blocks for the current block; andencode or decode the current block by using coding information comprising the inter prediction candidate.

Citation Information

Patent Citations

  • Method for processing image on basis of inter-prediction mode and apparatus therefor

    US20230188728A1

  • Signaling of base merge candidate index in MMVD mode

    US20240031590A1

  • Hybrid inter BI-prediction in video coding

    WO2022272025A1