EP4696015A1 - Enhanced geometrical partitioning mode - Google Patents

Enhanced geometrical partitioning mode

Info

Publication number
EP4696015A1
EP4696015A1 EP24789137.7A EP24789137A EP4696015A1 EP 4696015 A1 EP4696015 A1 EP 4696015A1 EP 24789137 A EP24789137 A EP 24789137A EP 4696015 A1 EP4696015 A1 EP 4696015A1
Authority
EP
European Patent Office
Prior art keywords
motion vector
motion information
information
motion
new
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
EP24789137.7A
Other languages
German (de)
French (fr)
Inventor
Ruoyang YU
Per Wennersten
Jack ENHORN
Kenneth Andersson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of EP4696015A1 publication Critical patent/EP4696015A1/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Definitions

  • VVC Versatile Video Coding
  • ECM Enhanced Coding Model
  • a video sequence consists of a series of pictures.
  • each picture is identified with a picture order count (POC) value.
  • POC picture order count
  • the POC value also represents display order of the picture.
  • a picture with a smaller POC value is displayed before another picture with a larger POC value.
  • Each component can be described as a two-dimensional rectangular array of sample values. It is common that each picture consists of three components; one luma component Y, where the sample values are luma values; and two chroma components Cb and Cr, where the sample values are chroma values.
  • the dimensions of the chroma components are smaller than the luma components by a factor of two in each dimension.
  • the size of the luma component of an HD picture would be 1920x1080 and the chroma components would each have the dimension of 960x540.
  • Components are sometimes referred to as color components.
  • Coding Unit and Coding Block A block is one two-dimensional array of samples.
  • each component is split into blocks and the coded video bitstream consists of a series of coded blocks. It is common in video coding that pictures are split into units that cover a specific area of the picture.
  • Each unit consists of all blocks from all components that make up that specific area and each block belongs fully to one unit.
  • the Coding Unit (CU) in VVC is an example of units. In VVC the CUs may be split recursively to smaller CUs. The CU at the top level is referred to as the coding tree unit (CTU).
  • CTU coding tree unit
  • a CU usually contains three coding blocks, i.e., one coding block for luma and two coding blocks for chroma.
  • the size of luma coding block is the same as the CU.
  • the CUs can have size of 4x4 up to 128x128.
  • the CUs can have size of 4x4 up to 256x256.
  • VVC specifies three types of parameter sets, the picture parameter set (PPS), the sequence parameter set (SPS) and the video parameter set (VPS).
  • PPS picture parameter set
  • SPS sequence parameter set
  • VPS video parameter set
  • the PPS contains data that is common for a whole picture
  • the SPS contains data that is common for a coded layer video sequence (CLVS)
  • CLVS coded layer video sequence
  • the VPS contains data that is common for multiple CLVSs, e.g., data for multiple layers in the bitstream.
  • slices divides the picture into independently coded slices, where decoding of one slice in a picture is independent of other slices of the same picture.
  • Each slice has a slice header comprising syntax elements. Decoded slice header values from these syntax elements are used when decoding the slice.
  • a coded picture contains a picture header.
  • the picture header contains parameters that are common for all slices of the coded picture.
  • intra prediction also known as spatial prediction
  • a block is predicted using the previous decoded blocks within the same picture.
  • the samples from the previously decoded blocks within the same picture are used to predict the samples inside the current block.
  • a picture consisting of only intra-predicted blocks is referred to as an intra picture.
  • inter prediction also known as temporal prediction
  • blocks of the current picture are predicted using blocks from previously decoded pictures.
  • the samples from blocks in the previously decoded pictures are used to predict the samples inside the current block.
  • inter picture A picture that allows inter-predicted block is referred to as an inter picture.
  • the previous decoded pictures used for inter prediction are referred to as reference pictures.
  • MV motion vector
  • Each MV consists of x and y components which represents the displacements between current block and the referenced block in x or y dimension.
  • the value of a component may have a resolution finer than an integer position.
  • a filtering typically interpolation
  • FIG. 1 shows an example of a MV for the current block C.
  • An inter picture may use several reference pictures.
  • the reference pictures are usually put into two reference picture lists, L0 and LI.
  • the reference pictures that are output before the current picture are typically the first pictures in L0.
  • the reference pictures that are output after the current picture are typically the first pictures in LI.
  • Inter predicted blocks can use one of two prediction types, uni- and bi-prediction.
  • a uni-predicted block predicts from one reference picture, either using L0 or LI.
  • Bi-prediction predicts from two reference pictures, one from L0 and the other from LI.
  • FIG. 2 shows an example of the prediction types.
  • a low-delay picture is a picture that has all its reference pictures displayed before the picture. In other words, for a low delay picture, all its reference pictures have smaller POC values than the current POC.
  • a non-low-delay picture is a picture that has at least one of its reference pictures displayed after the picture. In other words, a non-low-delay picture has at least one reference picture with a larger POC value than the current POC.
  • the value of the MV’s x or y component may corresponds to a sample position which has finer granularity than integer (sample) position. Those positions are also referred to as fractional (sample) positions.
  • the MV can be at 1/16 sample position.
  • FIG. 3 depicts several fractional positions in the horizontal (x-) dimension.
  • the solid square blocks represent integer positions.
  • the circles represent 1/16-position.
  • MV (4, 10) means the x component is at 4/16 position, the y component is at 10/16 position.
  • a MV rounding process is sometimes used to convert a MV at one position to another target position.
  • rounding is to round a fractional MV position to the nearest integer position.
  • the transform coefficients are then quantized by a quantization parameter (QP) to control the fidelity of the residual block and thus also the bitrate required to compress the block.
  • QP quantization parameter
  • a coded block flag (CBF) is used to indicate if there are any non-zero quantized transform coefficients. All coding parameters are then entropy coded at the encoder and decoded at the decoder. If the coded block flag is one, a reconstructed block can then be derived by inverse quantization and inverse transformation of the quantized transform coefficients and then add that to the prediction block. If the coded block flag is zero, the reconstructed block is identical to the prediction block.
  • Inter prediction information / Motion information [0039]
  • inter prediction information / Motion information
  • a reference picture list flag (RefPicListFlag). The flag signals which reference picture list is used for the block.
  • the value of the flag When the value of the flag is equal to 0, it means only L0 is used for predicting the current block. When the value of the flag is equal to 1, it means only LI is used for predicting the current block. When the value of the flag is equal to 2, it means both L0 and LI are used for predicting the current block.
  • the index signals which reference picture inside the reference list to be used for predicting the current block.
  • the inter prediction information is also referred to as motion information.
  • the decoder stores the motion information for each inter block. In other words, an inter block maintains its own motion information.
  • the RD cost is calculated as D + * R.
  • the D (Distortion) measures the difference between the reconstructed block and the corresponding source block.
  • the R (rate) is usually an estimation of the bits to be spent on encoding the mode. The is a trade-off parameter between R and D.
  • VVC and ECM includes several methods for implicit signaling of motion information for each block, including the merge method and the subblock merge method.
  • a common motivation behind the implicit methods is to inherit or reuse motion information from neighboring coded blocks. This often works in practice due to spatial correlation of close-by blocks, i.e., the fact that nearby blocks often behave similarly.
  • the merge list construction process usually checks the previously coded blocks in a predefined order, for example, T - L - TR - LB - TL. For each previously coded block being checked, if this previously coded block is inter coded and its motion information has no duplicates in the list, then the motion information of this previously coded block is added to the merge list.
  • the merge list is generated, one of the candidates inside the list is used to derive the motion information of the current block.
  • the candidate selection process is done on the encoder side. An encoder would select a best candidate from the list and encode an index (merge index) in the bitstream to signal to a decoder. The decoder receives the index, it follows the same merge list derivation process as the encoder, and uses the index to retrieve the correct candidate.
  • non-adjacent spatial blocks are also considered as sources of motion information during the merge list construction.
  • FIG. 5 shows some examples (marked with NA1, NA2, and NA3) of those non-adjacent spatial blocks.
  • VVC and ECM also include the subblock merge method. It splits a current block into a number of subblocks and allows each subblock to have its own motion information.
  • FIG. 1 A block diagram illustrating an exemplary computing environment in accordance with the present disclosure.
  • each subblock maintains its own motion information. It should be noted that the subblocks are all rectangular.
  • the motion information derivation relies on generating a GPM motion information candidate list first. After the list is generated, one of the candidates inside the list is used to derive the motion information of the partition.
  • An encoder would select a candidate from the list and encode an index in the bitstream to signal to a decoder.
  • the decoder receives the index, it follows the same candidate list generation process as the encoder and uses the index to retrieve the correct motion information for the partition.
  • the GPM motion information list generation comprises two steps.
  • the first step is to derive an initial motion information list.
  • the initial motion information list process is the same as the block merge candidate list derivation process.
  • an extraction process is invoked to extract motion information containing only Uni-MV from entries in the initial motion information list.
  • the following table shows an example of a GPM motion information list with uni-motion information entries.
  • each entry in the GPM motion information list is extracted from the corresponding entry in the initial motion information list.
  • each entry in the GPM motion information list only contains L0 motion vector or LI motion vector.
  • the current ECM extends the GPM design in VVC with a tool GPM-MMVD to add possibilities of explicitly signaling an MVD (motion vector difference) to the inherited motion vector (of the inherited motion information).
  • GPM-MMVD motion vector difference
  • the motivation of GPM-MMVD is to further adjust the inherited motion vector to better cater for the corresponding GPM partition, since in some cases, the motion vector used for the previously decoded block may not well- suitable for the content of the current partition.
  • GPM-MMVD only modifies the motion vector, the inherited reference picture list flag and inherited reference picture index are kept unmodified.
  • the MVD is signaled as a pair of distance and direction. There are nine candidate distances (Vi-sample, ⁇ -sample, 1 -sample, 2-sample, 3-sample, 4-sample, 6-sample, 8-sample, 16-sample), and eight candidate directions (four horizontal/vertical directions and four diagonal directions).
  • FIG. 9 shows an example of GPM-MMVD where the 8 possible MVD direction is shown with dashed arrows.
  • the “baseMVPartl” is the base MV (the inherited MV) for the MVD.
  • the “modifiedMvPartl” is the adjusted MV from the base MV and the MVD.
  • a GPM-MMVD flag is signaled to indicate the usage of GPM- MMVD.
  • the value of the flag is 1, a GPM-MMVD index is further signaled for the MVD.
  • ECM adds a method called GPM-TM to refine the inherited motion vector.
  • GPM-TM implicitly refines the inherited motion vector with the help of template matching method.
  • GPM-TM only refines the motion vector, the inherited reference picture list flag and inherited reference picture index are kept unmodified.
  • a template is assigned to each partition.
  • the template can be constructed using left, above, or left and above neighboring reconstructed samples.
  • FIG. 10 shows the GPM mode index 10 (with angle index of 4 and distance index of 0).
  • partition PartO its template is from the above neighboring reconstructed samples.
  • partition Parti its template is from the left neighboring reconstructed samples.
  • the motion vector is refined further by minimizing the difference between the template in the current picture and the template in the reference picture.
  • the existing design in GPM-TM is uni-template matching since the associated MV (from the associated motion information) are uni-MV.
  • the template matching process searches an area near the base MV baseMvPartO (i.e., the inherited MV) to find whether there is another MV refinedMvPartO that gives the best template matching results.
  • the refined MV refinedMvPartO is then used as the MV for generating prediction samples of the partition.
  • a GPM-TM flag is signaled to indicate the usage of GPM-TM.
  • the GPM-TM method is applied on both partitions. In other words, current ECM does not allow to use GPM-TM for one partition but not the other when GPM-TM is enabled for the GPM block.
  • ECM includes a tool called GPM-Intra to allow usage intra prediction for one of the partitions in GPM.
  • OBMC is a tool included in ECM which operates at the block boundaries or subblock boundaries of a current inter block. OBMC blends the current block’s or subblock’s prediction sample (generated using the current associated motion information) with another set of prediction samples which are generated using the neighboring motion information. The OBMC may give better prediction for samples that are close to the block or subblock boundary.
  • BDOF is a tool included in VVC and the current ECM that can be used to refine prediction samples that are generated from a Bi-MV. BDOF relies on optical flow estimation to derive a pair of refinement parameter (Vx, Vy) which can be further used to refine the prediction samples.
  • DMVR is a tool included in VVC and the current ECM to refine motion vectors for a Bi-MV.
  • DMVR operates on subblock level, usually 16x16. Different from BDOF that relies on optical flow estimation, DMVR relies on bilateral matching of two reference blocks to refine the Bi-MV.
  • the DMVR searches within a window around the Bi-MV to find whether there exists another Bi-MV (Bi-MV’) that gives a better match between the L0 reference block and the LI reference block. If so, the Bi-MV’ is further used instead for generating the prediction samples of the current block.
  • Bi-MV Bi-MV
  • Embodiments modify the existing GPM design to allow usage of more than one motion vector for generating prediction samples for each partition in GPM. Embodiments also modify the existing GPM related tools such as GPM-MMVD and GPM-TM are to allow for usage of more than one motion vector.
  • a method for decoding a current block within a current picture inside a coded video bitstream comprises determining that the current block is coded using geometric partition mode, GPM.
  • the method comprises, in response to determining that the current block is coded using GPM, determining that at least one partition, PX, of the current block is inter coded.
  • the method comprises, in response to determining that at least one partition, PX, is inter coded, generating a GPM motion information list, LIST FINAL.
  • the method further comprises determining motion information, MI PX, associated with the partition, PX, based on the GPM motion information list, LIST FINAL, and an index value, IDX, wherein the associated motion information, MI PX, contains more than one motion vector.
  • the method comprises determining prediction samples of the partition PX based on the associated motion information MI PX.
  • a decoder adapted to perform the method according the first aspect.
  • a computer program comprising instructions which when executed by processing circuitry of a node, causes the node to perform the method according the first aspect.
  • a carrier containing the computer program according to the third aspect wherein the carrier is one of an electronic signal, an optical signal, a radio signal, and a computer readable storage medium.
  • At least one of the embodiments have an advantage of improved coding efficiency.
  • FIG. 1 illustrates an example of a MV for the current block C.
  • FIG. 2 illustrates an example of the prediction types.
  • FIG. 3 illustrates several fractional positions in the horizontal (x-) dimension.
  • FIG. 4 illustrates the spatial neighboring blocks: left (L), top(T), top-right(TR), left-bottom (LB) and top-left (TL).
  • FIG. 5 illustrates some examples (marked with NA1, NA2, and NA3) of nonadj acent spatial blocks.
  • FIG. 6 illustrates an example of a current block and its subblocks.
  • FIG. 7 illustrates a splitting line using an angle index (a) and a distance index (p).
  • FIG. 8 illustrates examples of different partitions in GPM.
  • FIG. 9 illustrates an example of GPM-MMVD where the 8 possible MVD direction is shown with dashed arrows.
  • FIG. 10 illustrates the GPM mode index 10 (with angle index of 4 and distance index of 0).
  • FIG. 12 illustrates an approach of applying the signaled MVD on top of the Bi- MV in GPM-MMVD according to an embodiment.
  • FIG. 13 illustrates an approach of applying the signaled MVD on top of the Bi- MV in GPM-MMVD according to an embodiment.
  • FIG. 14 illustrates step one of a proposed GPM-TM design with Bi-MV according to an embodiment.
  • FIG. 15 illustrates step two of a proposed GPM-TM design with Bi-MV according to an embodiment.
  • FIG. 16 illustrates step three of a proposed GPM-TM design with Bi-MV according to an embodiment.
  • FIG. 17 illustrates a flowchart according to an embodiment.
  • FIG. 18 is a block diagram of an apparatus according to an embodiment.
  • the proposed method can be used in a video encoder or a video decoder to generate prediction samples of a block that coded using GPM.
  • Embodiments provide for at least four main features, which are described below as features A, B, C, and D.
  • Variation A a.
  • the extraction process that converts the initial motion information list into a list of motion information containing only uni-MVs is modified to be conditionally invoked.
  • the extraction process is invoked.
  • Variation A.a.b In another alternative, when the current block has size smaller than 256 (e.g., 8x8, 8x16, and 16x8), the extraction process is invoked.
  • 256 e.g., 8x8, 8x16, and 16x8
  • the extraction process is bypassed, and the initial motion information list is directly used as the GPM motion information list.
  • the previously decoded block uses Bi-MV for prediction and the Bi-MV is added into the initial list.
  • the Bi- MV may be carried on into the GPM motion information list and further be used for at least one partition in GPM.
  • Variation A.b When generating the initial motion information list, a different MV difference threshold may be used.
  • the MV difference threshold controls whether a candidate is different enough (compared to those already added in the list) to be worthy of adding into the list. In other words, when the candidate’s MV has a difference to the already added candidates that is below the MV difference threshold, the candidate is considered to be redundant and is not further added into the list.
  • the MV difference threshold is set to be 1 (in 1/16-pel precision).
  • Variation A.b.a the MV difference threshold is made dependent on the current block size as well as the picture type (whether the picture is a low-delay picture or a non-low-delay picture).
  • the following table shows exemplary settings.
  • Variation A.b.b. the MV difference threshold is dependent on the current block size.
  • the following table shows an example setting.
  • the extraction process is always bypassed, i.e., the initial motion information list is always determined to be the final GPM motion information list.
  • the first approach is to switch the Bi-MV into a Uni-MV first, then apply the MVD on top of the Uni-MV.
  • FIG. 12 shows an example of this approach.
  • the base Bi-MV contains two MVs, MvL0_Pl and MvLI Pl.
  • the MV for L0 (MvL0_Pl) is dropped first but the MV for LI (MvLI Pl) is kept, the signaled MVD is then applied on top of the LI MV to arrive at a new MV for LI MvLl ’ Pl .
  • the corresponding index of the Bi-MV in the GPM motion information list determines which MV is to be dropped and which MV is to be kept. For example, when the index is dividable by 2, then the L0 MV of the Bi-MV is kept and the LI MV of the Bi-MV is dropped. When the index is not dividable by 2, then the LI MV of the Bi-MV is kept and the L0 Mv of the Bi-MV is dropped.
  • the second approach is to apply the MVD on top of one MV and apply a scaled version of the MVD on top of the other MV.
  • FIG. 13 shows an example of this approach.
  • the signaled MVD is directly applied to the MvLO Pl to arrive at a new MV for L0, MvLO’ Pl .
  • a scaled version of MVD Mvd scaled is applied to the MvLI Pl to arrive at a new MV for LI, MvLl’ Pl.
  • the scaled version Mvd scaled can be derived using the POC of current picture POCO, the POC of the reference picture L0 POC LO, and the POC of the reference picture POC-L1.
  • the corresponding reference picture determines which MV of the Bi_MV to have the MVD directly applied on its top. For example, when the corresponding reference picture of L0 MV has a larger absolute picture distance to the current picture than the corresponding reference picture of the LI MV, then the MVD is directly applied on top of the L0 MV and the scaled MVD is applied on top of the LI MV.
  • a scale value SC is derived based on the ratio between the POC distances for generating the scaled MVD.
  • SC (POC Ll - POCO)/(POCLO - POCO). Otherwise (when L0 MV to have the scaled MVD applied on its top), the scaled value SC may be derived as (POC LO - POCO)/(POC_L1 - POCO). [0140] The switch between the first approach and the second approach may be made dependent on the picture coding type (whether the picture is a low-delay picture or a non-low- delay picture) and/or the magnitude of the MVD.
  • Variation B.a In one example, when the picture is a non-low-delay picture, the first approach is used, otherwise (the picture is a low-delay picture), the second approach is used.
  • Variation B.b In another example, when the picture is a non-low-delay picture and the signaled MVD exceeds a certain threshold (e.g., 4 in 1/16 precision, i.e., quarter-pel), the first approach is used. Otherwise, the second approach is used.
  • a certain threshold e.g., 4 in 1/16 precision, i.e., quarter-pel
  • FIGS. 14-16 illustrate the three steps of a proposed GPM-TM design with Bi-MV in accordance with an embodiment.
  • the extended GPM-TM has following three steps.
  • Step 1 and Step 2 invoke uni-template matching to find the best refined Uni-MV for L0 and LI respectively, i.e., refinedMvLO Uni and refmedMvLI Uni. And each refined Uni MV is associated with a uni-template cost, COST UNI LO and COST UNI LL
  • Step 3 invokes bi-template matching to find the best refined Bi-MV that resulted in the best matching (compares the current template and the combined template from L0 and LI).
  • the resulted best refined Bi-MV is refmedMvLO Bi and refmedMvLI Bi.
  • the best refined Bi- MV is also associated with a bi-template cost COST BI.
  • the best template cost from using Bi-MV COST BI exceeds 75% of the best template cost of Uni-MV (the minimum of COST UNI LO and COST UNI Ll)
  • the best refined Uni-MV from the uni-template matching step (refinedMvLO Uni or refmedMvLI Uni depending on which gives smaller uni -template cost) may be used as the final refined MV for the partition.
  • the refined motion information only contains one motion vector.
  • Other thresholds are also possible.
  • the refined Bi-MV (refmedMvLO Bi and refmedMvLI Bi) from the bi-template matching step is used as the final refined MV for the partition.
  • the refined motion information keeps the number of motion vectors from the inherited MV.
  • an 8x8 BDOF process is invoked to derive a MV refinement parameter (Vx, Vy) for each 8x8 block in the partition.
  • the MV refinement parameter is further used to refine the prediction samples.
  • the BDOF MV refinement parameter are stored on top of the Bi-MV in the motion storage buffer associated with the current partition, which can then be used for OBMC or predicting future inter blocks’ MVs.
  • Embodiments 1 - 3 correspond to the feature A.
  • Embodiments 4 - 8 correspond to feature B.
  • Embodiments 9 - 10 correspond to the feature C.
  • Embodiments 11 - 12 correspond to the feature D.
  • the decoder may implement the proposed method with at least one of the following steps:
  • the decoder may determine whether the current block is coded using GPM.
  • the decoder may further determine whether at least one of its partitions is inter coded.
  • the decoder may generate a GPM motion information list (LIST FINAL). Generating this list may include generating an initial list of motion information (LIST INIT) based on previously decoded blocks. Generating this list may further include determining whether to apply an extraction process to the initial motion information list (LIST INIT) based on whether a first criterion Cl is fulfilled. When Cl is fulfilled, the output of the extraction process is determined to be LIST FINAL. Otherwise, LIST FINAL is directly determined to be LIST INIT.
  • the decoder may further determine the motion information (MI PX) associated with the partition (PX) based on the GPM motion information list (LIST FINAL) and an index value (IDX).
  • the index value (IDX) may be determined from the coded video bitstream.
  • the decoder may determine the prediction samples of the partition (PX) based on the associated motion information (MI PX).
  • Embodiment 1 builds on Embodiment 1.
  • the generation of the initial list LIST INIT may further comprise using a MV difference value to control whether a candidate can be added into the list or not.
  • the MV difference value can be made based on the current block size as well as the current picture’s coding type (whether the current picture is a low-delay picture or a non-low-delay picture).
  • One example of the MV difference value is shown in the following table.
  • the MV difference value is made based on the current block size.
  • One example of the MV difference value is shown in the following table.
  • Embodiments 1 and 2 This embodiment builds on any one of Embodiments 1 and 2.
  • the criterion Cl may depend on the current block size and/or the current picture coding type (whether the current picture is a low-delay picture or a non-low-delay picture).
  • the criterion Cl is determined to be fulfilled when the current block size is below a threshold (for example, 256). In one alternative, the criterion Cl is determined to be fulfilled when the current block size is below a threshold (for example, 256) and the current picture is a non-low-delay picture.
  • the decoding step of determining the motion information may comprise the following steps:
  • the decoder may determine whether a motion vector difference MVD information is present for the inter partition PX.
  • the decoder may further determine the MVD.
  • the decoder may determine a base motion information (BASE MI) based on the GPM motion information list LIST FINAL and the index value IDX.
  • BASE MI base motion information
  • the decoder may determine a modified motion information (NEW MI) based on the BASE MI and MVD. This step may further comprise the following.
  • the decoder may further determine whether a second criterion C2 is fulfilled.
  • the decoder may determine the modified motion information (NEW MI) contains only one motion vector NEW_MV (i.e, Uni -MV, L0 or LI MV), and derive the motion vector NEW_MV based on the corresponding MV of the Bi-MV and MVD.
  • NEW_MV i.e, Uni -MV, L0 or LI MV
  • the decoder may determine the modified motion information contains at least two motion vectors (NEW_MV0 and NEW_MV1), and derive the two motion vectors (NEW_MV0 and NEW_MV1) based on the two motion vectors MVO and MV1 of the BASE_MI and the MVD.
  • the criterion C2 may depend on the current picture coding type. The criterion C2 may be determined to be fulfilled when the current picture is a non-low-delay picture. Otherwise, when the current picture is a low-delay picture, the criterion C2 may be determined to be not fulfilled.
  • the criterion C2 may further comprise determining whether the magnitude of the MVD exceeds a certain threshold.
  • the criterion C2 may be determined to be fulfilled when the magnitude of the motion vector difference’s x or y component exceeds a quarter-pel distance.
  • This embodiment builds on any one of Embodiments 4 - 6.
  • the modified motion information (NEW MI) is determined to contain only L0 MV when the BASE MI’s associated index value (IDX) is dividable by 2. Otherwise (the associated index value (IDX) is not dividable by 2), the NEW MI is determined to contain the LI MV.
  • This embodiment builds on any one of Embodiments 4 - 6.
  • the determination of the two motion vectors NEW_MV0 and NEW_M1 may further comprise the following steps.
  • the decoder may determine a reference picture distance value for each of the MV0 and MV1 of the BASE MI.
  • the decoder may determine the MVD to be applied on top of the MV that has a larger reference picture distance value.
  • the decoder may determine a scaled version of MVD, and apply the scaled MVD on top of the other MV (that has a smaller reference picture distance value).
  • This embodiment builds on any one of Embodiments 1 - 8.
  • the decoding step of determining the motion information (MI PX) may further comprise the following steps.
  • the decoder may determine whether template matching refinement is enabled for the inter prediction PX.
  • the decoder may determine a base motion information (BASE MI) based on the GPM motion information list (LIST FINAL) and the index value (IDX).
  • BASE MI base motion information
  • IDX index value
  • the decoder may determine a refined motion information (TM MI) based on BASE MI and a template associated with the current block.
  • the step may comprise the following.
  • the decoder may determine whether the BASE MI contains more than one MV (i.e., Bi-MV: MV0 and MV1).
  • the decoder may do one or more of the following.
  • the decoder may perform Uni template matching MV refinement for at least one of the MV (of BASE MI) to find a best refined Uni-MV, NEW_MV0_UNI, and a best Uni-MV template cost, UNI_COST.
  • the decoder may perform Bi template matching refinement based on both MV0 and MV1, to get refined NEW MV0 BI and NEW MV1 BI and a best Bi-MV template cost BI COST.
  • the decoder may determine whether the third criterion C3 is fulfilled. In response to determining that the third criterion C3 is fulfilled, the decoder may determine the refined motion information MI PX to only contain one MV from the uni template matching, which is the refined NEW MV0 UNI. On the other hand, in response to determining that the third criterion C3 is not fulfilled, the decoder may determine the refined motion information MI PX to contain both refined MVO and MV1 from the bi template matching, which are NEW_MV0_BI and NEW MV1 BI.
  • Embodiment 9 builds on Embodiment 9.
  • the third criterion C3 may be based on checking the current picture type and/or the best uni template cost UNI COST and the best template cost BI COST.
  • This embodiment builds on any one of Embodiments 1 - 10.
  • a refinement process may be further invoked to generate a pair of MV refinement parameters (Vx, Vy) for each of the NxN subblocks in the partition PX.
  • the MV refinement parameters (Vx, Vy) may further be used to refine the prediction samples for the corresponding NxN subblock in the partition PX.
  • the refinement parameters may be stored on top of the motion information MI PX in the motion storage buffer associated with the partition.
  • Embodiment 11 builds on Embodiment 11.
  • the refinement process may be a BDOF process.
  • the dimension of the subblock N may be equal to 8.
  • Embodiment 11 builds on Embodiment 11.
  • the refinement process may be a DMVR process.
  • FIG. 17 is a flowchart illustrating a process 1700, according to an embodiment, for decoding a current block within a current picture inside a coded video bitstream.
  • Process 1700 may begin in step si 702.
  • Step si 702 comprises determining that the current block is coded using geometric partition mode (GPM).
  • GPS geometric partition mode
  • Step si 704 comprises, in response to determining that the current block is coded using GPM, determining that at least one partition (PX) of the current block is inter coded.
  • Step si 706 comprises, in response to determining that at least one partition (PX) is inter coded, generating a GPM motion information list (LIST FINAL).
  • Step si 708 comprises determining motion information (MI PX) associated with the partition (PX) based on the GPM motion information list (LIST FINAL) and an index value (IDX).
  • the associated motion information (MI PX) contains more than one motion vector.
  • Step s 1710 comprises determining prediction samples of the partition PX based on the associated motion information MI PX.
  • (LIST FINAL) further comprises: (i) generating an initial motion information list (LIST INIT) based on previously decoded blocks; (ii) determining whether to apply an extraction process to the initial motion information list (LIST INIT) based on whether a first criterion (Cl) is fulfilled, wherein the extraction process extracts motion information containing only one motion vector; and (iii) if the first criterion is fulfilled, performing the extraction process to the initial motion information list (LIST INIT) and setting the GPM motion information list
  • generating the initial motion information list (LIST INIT) based on previously decoded blocks comprises determining whether to add a candidate motion information to the initial motion information list (LIST INIT) based on whether a difference between a motion vector of the candidate motion information and a motion vector of each of the motion information in the initial motion information list (LIST INIT) is not smaller than a motion vector difference threshold value.
  • the motion vector difference threshold value is based on a size of the current block.
  • the MV TH A is set to be 1 in 1/16-pel precision and the MV TH B is set to be 16 in 1/16-pel precision
  • SIZE TH is a size threshold.
  • the SIZE TH is set to be 256.
  • the motion vector difference threshold value is based on a picture coding type of the current picture.
  • the first criterion (Cl) is based on a size of the current block and/or picture coding type of the current picture. In some embodiments, the first criterion (Cl) is fulfilled when the size of the current block is below a size threshold. In some embodiments, the first criterion (Cl) is fulfilled when a size of the current block is below a size threshold and the current picture is a non-low-delay picture.
  • determining motion information (MI PX) associated with the partition (PX) based on the GPM motion information list (LIST FINAL) and the index value (IDX) comprises: determining that a motion vector difference (MVD) information is present for the partition (PX); in response to determining that the MVD information is present for the partition (PX), determining the MVD information; determining a base motion information (BASE MI) based on the GPM motion information list (LIST FINAL) and the index value IDX; and determining a modified motion information (NEW MI) based on the base motion information (BASE MI) and the MVD information.
  • MVD motion vector difference
  • determining the modified motion information (NEW MI) based on the base motion information (BASE MI) and the MVD information comprises: determining that the modified motion information (NEW MI) contains only one motion vector, either a L0 motion vector or a LI motion vector; and deriving the modified motion information (NEW MI) based on the corresponding motion vector of the base motion information (BASE MI) and the MVD information, such that the modified motion information (NEW MI) is determined based on the first motion vector (MVO) and the MVD information if the modified motion information (NEW MI) is determined to contain the LO motion vector, and the modified motion information (NEW MI) is determined based on the second motion vector (MV1) and the MVD information if the modified motion information (NEW MI) is determined to contain the LI motion vector.
  • determining the modified motion information (NEW MI) based on the base motion information (BASE MI) and the MVD information comprises: determining that the modified motion information (NEW MI) contains at least a third motion vector (NEW_MV0) and a fourth motion vector (NEW_MV1); and deriving the third motion vector (NEW_MV0) based on the first motion vector (MVO) and the MVD information, and deriving the fourth motion vector (NEW MVl) based on the second motion vector (MV1) and the MVD information.
  • determining the modified motion information (NEW MI) based on the base motion information (BASE MI) and the MVD information comprises: determining whether a second criterion (C2) is fulfilled, wherein the base motion information (BASE MI) contains at least a first motion vector (MVO) and a second motion vector (MV1); if the second criterion (C2) is fulfilled, (i) determining that the modified motion information (NEW MI) contains only one motion vector, either a LO motion vector or a LI motion vector; (ii) deriving the modified motion information (NEW MI) based on the corresponding motion vector of the base motion information (BASE MI) and the MVD information, such that the modified motion information (NEW MI) is determined based on the first motion vector (MVO) and the MVD information if the modified motion information (NEW MI) is determined to contain the LO motion vector, and the modified motion information (NEW MI) is determined based on the second motion vector (MV1) and the
  • the second criterion (C2) is based on a picture coding type of the current picture. In some embodiments, the second criterion (C2) is fulfilled when the current picture is a non-low-delay picture and the second criterion (C2) is not fulfilled when the current picture is a low-delay picture. In some embodiments, the second criterion (C2) is further based on whether a magnitude of the MVD information exceeds an MVD threshold. In some embodiments, the second criterion (C2) is fulfilled when the magnitude of the MVD information exceeds a quarter-pel distance in an x-component or y-component.
  • the modified motion information (NEW MI) is determined to contain only the L0 motion vector when an associated index value (IDX) of the base motion information (BASE MI) is divisible by 2, and otherwise the modified motion information (NEW MI) is determined to contain only the LI motion vector.
  • the steps (ii) deriving the third motion vector (NEW_MV0) based on the first motion vector (MVO) and the MVD information, and (iii) deriving the fourth motion vector (NEW MVl) based on the second motion vector (MV1) and the MVD information further comprise: determining a reference picture distance value for each of the first motion vector (MVO) and the second motion vector (MV1); determining the MVD information to be applied on top of the motion vector having a larger reference picture distance value of the first motion vector (MVO) and the second motion vector (MV1); determining a scaled version of the MVD information; and applying the scaled version of the MVD information on top of the motion vector having a smaller reference picture distance value of the first motion vector (MVO) and the second motion vector (MV1).
  • determining motion information (MI PX) associated with the partition (PX) based on the GPM motion information list (LIST FINAL) and an index value (IDX) comprises: determining that template matching refinement is enabled for the partition (PX); determining a base motion information (BASE MI) based on the GPM motion information list (LIST FINAL) and the index value (IDX); determining a refined motion information (TM MI) based on the base motion information (BASE MI) and a template associated with the current block.
  • determining a refined motion information (TM MI) based on the base motion information (BASE MI) and a template associated with the current block comprises: determining that the base motion information (BASE MI) contains at least a first motion vector (MVO) and a second motion vector (MV1); performing uni-template matching motion vector refinement for at least one of the first motion vector (MVO) and the second motion vector (MV1) to find a refined uni-motion vector (NEW_MV0_UNI) and a uni-motion-vector template cost (UNI COST); performing bi-template matching refinement based on both the first motion vector (MVO) and the second motion vector (MV1) to get a refined first motion vector (NEW MVO BI) and a refined second motion vector (NEW MV1 BI) and a bi-motion-vector template cost (BI COST); determining whether a third criterion (C3) is fulfilled; if the third criterion (C3) is fulfilled, determining refined motion information (MI P
  • the third criterion (C3) is based on checking a picture type of the current picture and checking the uni-template cost (UNI COST) and the bi-template cost (BI COST). In some embodiments, the third criterion (C3) is fulfilled when the current picture is a non-low-delay picture and the bi-template cost (BI COST) is larger than a cost threshold and otherwise the third criterion (C3) is not fulfilled, wherein the cost threshold is a function of the uni-template cost (UNI COST).
  • the method further comprises invoking a refinement process, when the associated motion information (MI PX) contains at least one motion vector, to generate a pair of motion vector refinement parameters (Vx, Vy) for each NxN subblock in the partition (PX); and using the motion vector refinement parameters (Vx, Vy) to refine the prediction samples for the corresponding NxN subblock in the partition PX.
  • the refinement process is a bi-directional optimal flow (BDOF) process.
  • the refinement process is a decoder-side motion vector refinement (DMVR) process.
  • FIG. 18 is a block diagram of apparatus 1800 (e.g., an encoder or decoder), according to some embodiments, for performing the methods disclosed herein.
  • apparatus 1800 may comprise: processing circuitry (PC) 1802, which may include one or more processors (P) 1855 (e.g., a general purpose microprocessor and/or one or more other processors, such as an application specific integrated circuit (ASIC), field-programmable gate arrays (FPGAs), and the like), which processors may be co-located in a single housing or in a single data center or may be geographically distributed (i.e., apparatus 1800 may be a distributed computing apparatus); at least one network interface 1848 comprising a transmitter (Tx) 1845 and a receiver (Rx) 1847 for enabling apparatus 1800 to transmit data to and receive data from other nodes connected to a network 1810 (e.g., an Internet Protocol (IP) network) to which network interface 1848 is connected (directly or indirectly) (e.g., network interface
  • IP Internet Protocol
  • Interface 1860 may connect PC 1802 and storage unit 1808, interface 1862 may connect PC 1802 and network interface 1848, and interface 1864 may connect network interface 1848 and network 1810.
  • PC 1802 includes a programmable processor
  • CPP 1841 includes a computer readable medium (CRM) 1842 storing a computer program (CP) 1843 comprising computer readable instructions (CRI) 1844.
  • CRM 1842 may be a non-transitory computer readable medium, such as, magnetic media (e.g., a hard disk), optical media, memory devices (e.g., random access memory, flash memory), and the like.
  • the CRI 1844 of computer program 1143 is configured such that when executed by PC 1802, the CRI causes apparatus 1800 to perform steps described herein (e.g., steps described herein with reference to the flow charts).
  • apparatus 1800 may be configured to perform steps described herein without the need for code. That is, for example, PC 1802 may consist merely of one or more ASICs.
  • the features of the embodiments described herein may be implemented in hardware and/or software.
  • ECM-8.0 One embodiment has been implemented in the current ECM (i.e., ECM-8.0).
  • ECM-8.0 The following table shows the objective performance of this embodiment (incorporating features A.a.a, A.b.a, B.a, C, and D) compared to ECM-8.0 (under the ECM random access and low delay common test configuration).
  • the numbers in the table show the relative bit-cost for the embodiment to achieve equivalent objective video quality (measured in PSNR) as ECM-8.0.
  • the BD-rate number -O.X% means the proposed solution requires O.X% less bits than ECM-8.0 for the same objective quality for different classes of video sequences.
  • the EncT/DecT show the encoding and decoding run time measurement respectively, where a number of 100% means the test and anchor has the same amount of run time.
  • the embodiment provides -0.2% bit reduction for Random Access with 1% encoding time increase and no decoding time increase, and -0.30% bit rate reduction for Low delay with 2% encoding time and 1-2% decoding time increase. It is asserted that such a tradeoff between bit reduction and enc/dec run time impact is reasonable.
  • Another embodiment (incorporating features A.a.a, A.b.a, B.b, C, and D) is also implemented and tested.
  • the objective numbers compared to ECM-8.0 under Random access configuration are shown below. Based on the numbers, feature B.b may be a better alternative than B.a in terms of bit reduction.
  • Yet another embodiment (incorporating features A.a.b, A.b.b, B.a, C, and D) is also implemented and tested.
  • the objective numbers compared to ECM-8.0 under random access and low delay configuration are show below. This version has lower complexity comparing to the versions above, since the version uses uni motion vectors for small blocks (for all pictures) and only uses bi motion vectors for larger blocks.
  • a method for decoding a current block within a current picture inside a coded video bitstream comprising: determining that the current block is coded using geometric partition mode (GPM); in response to determining that the current block is coded using GPM, determining that at least one partition (PX) of the current block is inter coded; in response to determining that at least one partition (PX) is inter coded, generating a GPM motion information list (LIST FINAL); determining motion information (MI PX) associated with the partition (PX) based on the GPM motion information list (LIST FINAL) and an index value (IDX), wherein the associated motion information (MI PX) contains more than one motion vector; and determining prediction samples of the partition PX based on the associated motion information MI PX.
  • GPM geometric partition mode
  • generating the GPM motion information list further comprises:
  • generating the initial motion information list (LIST INIT) based on previously decoded blocks comprises determining whether to add a candidate motion information to the initial motion information list (LIST INIT) based on whether a difference between a motion vector of the candidate motion information and a motion vector of each of the motion information in the initial motion information list (LIST INIT) is not smaller than a motion vector difference threshold value.
  • A6 The method of claim A3-A5, wherein the motion vector difference threshold value is based on a picture coding type of the current picture.
  • determining motion information (MI PX) associated with the partition (PX) based on the GPM motion information list (LIST FINAL) and the index value (IDX) comprises: determining that a motion vector difference (MVD) information is present for the partition (PX); in response to determining that the MVD information is present for the partition (PX), determining the MVD information; determining a base motion information (BASE MI) based on the GPM motion information list (LIST FINAL) and the index value IDX; and determining a modified motion information (NEW MI) based on the base motion information (BASE MI) and the MVD information.
  • MVD motion vector difference
  • determining the modified motion information (NEW MI) based on the base motion information (BASE MI) and the MVD information comprises: determining that the modified motion information (NEW MI) contains only one motion vector, either a LO motion vector or a LI motion vector; and deriving the modified motion information (NEW MI) based on the corresponding motion vector of the base motion information (BASE MI) and the MVD information, such that the modified motion information (NEW MI) is determined based on the first motion vector (MVO) and the MVD information if the modified motion information (NEW MI) is determined to contain the LO motion vector, and the modified motion information (NEW MI) is determined based on the second motion vector (MV1) and the MVD information if the modified motion information (NEW MI) is determined to contain the LI motion vector.
  • determining the modified motion information (NEW MI) based on the base motion information (BASE MI) and the MVD information comprises: determining that the modified motion information (NEW MI) contains at least a third motion vector (NEW_MV0) and a fourth motion vector (NEW_MV1); and deriving the third motion vector (NEW_MV0) based on the first motion vector (MVO) and the MVD information, and deriving the fourth motion vector (NEW MVl) based on the second motion vector (MV1) and the MVD information.
  • determining the modified motion information (NEW MI) based on the base motion information (BASE MI) and the MVD information comprises: determining whether a second criterion (C2) is fulfilled, wherein the base motion information (BASE MI) contains at least a first motion vector (MVO) and a second motion vector (MV1); if the second criterion (C2) is fulfilled, (i) determining that the modified motion information (NEW MI) contains only one motion vector, either a LO motion vector or a LI motion vector; (ii) deriving the modified motion information (NEW MI) based on the corresponding motion vector of the base motion information (B ASE MI) and the MVD information, such that the modified motion information (NEW MI) is determined based on the first motion vector (MVO) and the MVD information if the modified motion information (NEW MI) is determined to contain the LO motion vector, and the modified motion information (NEW MI) is determined based on the second motion vector (MV1)
  • the steps (ii) deriving the third motion vector (NEW_MV0) based on the first motion vector (MVO) and the MVD information, and (iii) deriving the fourth motion vector (NEW MVl) based on the second motion vector (MV1) and the MVD information further comprise: determining a reference picture distance value for each of the first motion vector (MVO) and the second motion vector (MV1); determining the MVD information to be applied on top of the motion vector having a larger reference picture distance value of the first motion vector (MVO) and the second motion vector (MV1); determining a scaled version of the MVD information; and applying the scaled version of the MVD information on top of the motion vector having a smaller reference picture distance value of the first motion vector (MVO) and the second motion vector (MV1).
  • determining motion information (MI PX) associated with the partition (PX) based on the GPM motion information list (LIST FINAL) and an index value (IDX) comprises: determining that template matching refinement is enabled for the partition (PX); determining a base motion information (BASE MI) based on the GPM motion information list (LIST FINAL) and the index value (IDX); determining a refined motion information (TM MI) based on the base motion information (BASE MI) and a template associated with the current block.
  • determining a refined motion information (TM MI) based on the base motion information (BASE MI) and a template associated with the current block comprises: determining that the base motion information (BASE MI) contains at least a first motion vector (MVO) and a second motion vector (MV1); performing uni-template matching motion vector refinement for at least one of the first motion vector (MVO) and the second motion vector (MV1) to find a refined uni-motion vector (NEW_MV0_UNI) and a uni-motion-vector template cost (UNI_COST); performing bi-template matching refinement based on both the first motion vector (MVO) and the second motion vector (MV1) to get a refined first motion vector (NEW MVO BI) and a refined second motion vector (NEW MV1 BI) and a bi-motion-vector template cost (BI COST); determining whether a third criterion (C3) is fulfilled; if the third criterion (C3) is fulfilled,
  • C3 is based on checking a picture type of the current picture and checking the uni-template cost (UNI COST) and the bitemplate cost (BI COST).
  • A23 The method of claim A21, wherein the third criterion (C3) is fulfilled when the current picture is a non-low-delay picture and the bi-template cost (BI COST) is larger than a cost threshold and otherwise the third criterion (C3) is not fulfilled, wherein the cost threshold is a function of the uni-template cost (UNI COST).
  • the third criterion (C3) is fulfilled when the current picture is a non-low-delay picture and the bi-template cost (BI COST) is larger than a cost threshold and otherwise the third criterion (C3) is not fulfilled, wherein the cost threshold is a function of the uni-template cost (UNI COST).
  • A24 The method of any one of claims A1-A23, further comprising: invoking a refinement process, when the associated motion information (MI PX) contains at least one motion vector, to generate a pair of motion vector refinement parameters (Vx, Vy) for each NxN subblock in the partition (PX); and using the motion vector refinement parameters (Vx, Vy) to refine the prediction samples for the corresponding NxN subblock in the partition PX.
  • A25 The method of claim A24, wherein the refinement process is a bi-directional optimal flow (BDOF) process.
  • BDOF bi-directional optimal flow
  • A26 The method of claim A24, wherein the refinement process is a decoder-side motion vector refinement (DMVR) process.
  • DMVR decoder-side motion vector refinement
  • a decoder compri sing : processing circuitry (1802); and a memory, the memory containing instructions (1844) executable by the processing circuitry (1802), whereby when executed the processing circuitry (1802) is configured to: determine that the current block is coded using geometric partition mode (GPM); in response to determining that the current block is coded using GPM, determine that at least one partition (PX) of the current block is inter coded; in response to determining that at least one partition (PX) is inter coded, generate a GPM motion information list (LIST FINAL); determine motion information (MI PX) associated with the partition (PX) based on the GPM motion information list (LIST FINAL) and an index value (IDX), wherein the associated motion information (MI PX) contains more than one motion vector; and determine prediction samples of the partition PX based on the associated motion information MI PX.
  • GPM geometric partition mode
  • CL A decoder adapted to: determine that the current block is coded using geometric partition mode (GPM); in response to determining that the current block is coded using GPM, determine that at least one partition (PX) of the current block is inter coded; in response to determining that at least one partition (PX) is inter coded, generate a GPM motion information list (LIST FINAL); determine motion information (MI PX) associated with the partition (PX) based on the GPM motion information list (LIST FINAL) and an index value (IDX), wherein the associated motion information (MI PX) contains more than one motion vector; and determine prediction samples of the partition PX based on the associated motion information MI PX.
  • GPM geometric partition mode
  • a computer program (1843) comprising instructions which when executed by processing circuitry (1802) of a node (1800), causes the node (1800) to perform the method of any one of embodiments A1-A26. D2.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

A method for decoding a current block within a current picture inside a coded video bitstream. The method comprises determining that the current block is coded using geometric partition mode, GPM. The method comprises, in response to determining that the current block is coded using GPM, determining that at least one partition, PX, of the current block is inter coded. The method further comprises, in response to determining that at least one partition, PX, is inter coded, generating a GPM motion information list, LIST_FINAL. The method comprises determining motion information, MI_PX, associated with the partition, PX, based on the GPM motion information list, LIST_FINAL, and an index value, IDX, wherein the associated motion information, MI_PX, contains more than one motion vector. The method comprises determining prediction samples of the partition PX based on the associated motion information MI_PX.

Description

ENHANCED GEOMETRICAL PARTITIONING MODE
TECHNICAL FIELD
[0001] Disclosed are embodiments related to enhanced geometrical partitioning mode.
BACKGROUND
[0002] VVC and ECM
[0003] Versatile Video Coding (VVC) is a block-based video codec standardized by ITU-T and MPEG.
[0004] Enhanced Coding Model (ECM) is an exploratory codec which is currently under development. The aim of ECM is to demonstrate and try providing evidence of video coding capabilities beyond VVC. The current ECM version (as of the writing of this disclosure) is ECM-8.0.
[0005] Video and Picture
[0006] A video sequence consists of a series of pictures. In VVC, each picture is identified with a picture order count (POC) value. The POC value also represents display order of the picture. A picture with a smaller POC value is displayed before another picture with a larger POC value.
[0007] Components
[0008] Each component can be described as a two-dimensional rectangular array of sample values. It is common that each picture consists of three components; one luma component Y, where the sample values are luma values; and two chroma components Cb and Cr, where the sample values are chroma values.
[0009] It is also common that the dimensions of the chroma components are smaller than the luma components by a factor of two in each dimension. For example, the size of the luma component of an HD picture would be 1920x1080 and the chroma components would each have the dimension of 960x540. Components are sometimes referred to as color components.
[0010] Coding Unit and Coding Block [0011] A block is one two-dimensional array of samples. In video coding, each component is split into blocks and the coded video bitstream consists of a series of coded blocks. It is common in video coding that pictures are split into units that cover a specific area of the picture.
[0012] Each unit consists of all blocks from all components that make up that specific area and each block belongs fully to one unit. The Coding Unit (CU) in VVC is an example of units. In VVC the CUs may be split recursively to smaller CUs. The CU at the top level is referred to as the coding tree unit (CTU).
[0013] A CU usually contains three coding blocks, i.e., one coding block for luma and two coding blocks for chroma. The size of luma coding block is the same as the CU.
[0014] In VVC, the CUs can have size of 4x4 up to 128x128. In current ECM, the CUs can have size of 4x4 up to 256x256.
[0015] Parameter sets, slice headers and picture headers
[0016] VVC specifies three types of parameter sets, the picture parameter set (PPS), the sequence parameter set (SPS) and the video parameter set (VPS). The PPS contains data that is common for a whole picture, the SPS contains data that is common for a coded layer video sequence (CLVS), and the VPS contains data that is common for multiple CLVSs, e.g., data for multiple layers in the bitstream.
[0017] The concept of slices divides the picture into independently coded slices, where decoding of one slice in a picture is independent of other slices of the same picture. Each slice has a slice header comprising syntax elements. Decoded slice header values from these syntax elements are used when decoding the slice.
[0018] In VVC, a coded picture contains a picture header. The picture header contains parameters that are common for all slices of the coded picture.
[0019] Intra prediction
[0020] In intra prediction, also known as spatial prediction, a block is predicted using the previous decoded blocks within the same picture. The samples from the previously decoded blocks within the same picture are used to predict the samples inside the current block. [0021] A picture consisting of only intra-predicted blocks is referred to as an intra picture.
[0022] Inter prediction
[0023] In inter prediction, also known as temporal prediction, blocks of the current picture are predicted using blocks from previously decoded pictures. The samples from blocks in the previously decoded pictures are used to predict the samples inside the current block.
[0024] A picture that allows inter-predicted block is referred to as an inter picture. The previous decoded pictures used for inter prediction are referred to as reference pictures.
[0025] The location of the referenced block inside the reference picture is indicated using a motion vector (MV). Each MV consists of x and y components which represents the displacements between current block and the referenced block in x or y dimension. The value of a component may have a resolution finer than an integer position. When that is the case, a filtering (typically interpolation) is done to calculate values used for prediction. FIG. 1 shows an example of a MV for the current block C.
[0026] An inter picture may use several reference pictures. The reference pictures are usually put into two reference picture lists, L0 and LI. The reference pictures that are output before the current picture are typically the first pictures in L0. The reference pictures that are output after the current picture are typically the first pictures in LI.
[0027] Inter predicted blocks can use one of two prediction types, uni- and bi-prediction. A uni-predicted block predicts from one reference picture, either using L0 or LI. Bi-prediction predicts from two reference pictures, one from L0 and the other from LI. FIG. 2 shows an example of the prediction types.
[0028] Picture coding type (low-delay picture and non-low-delay picture)
[0029] A low-delay picture is a picture that has all its reference pictures displayed before the picture. In other words, for a low delay picture, all its reference pictures have smaller POC values than the current POC. [0030] A non-low-delay picture is a picture that has at least one of its reference pictures displayed after the picture. In other words, a non-low-delay picture has at least one reference picture with a larger POC value than the current POC.
[0031] Fractional MVs, Interpolation filter, and MV rounding
[0032] The value of the MV’s x or y component may corresponds to a sample position which has finer granularity than integer (sample) position. Those positions are also referred to as fractional (sample) positions.
[0033] In VVC and current ECM, the MV can be at 1/16 sample position. FIG. 3 depicts several fractional positions in the horizontal (x-) dimension. The solid square blocks represent integer positions. The circles represent 1/16-position. For example, MV = (4, 10) means the x component is at 4/16 position, the y component is at 10/16 position.
[0034] In video coding, a MV rounding process is sometimes used to convert a MV at one position to another target position. One example of rounding is to round a fractional MV position to the nearest integer position.
[0035] When a MV is at a fractional position, filtering (typically interpolation) is done to calculate the sample values at those positions. In VVC, the length (number of filter taps) of the interpolation filter for luma component is 8, as shown in the table below. In ECM, the length of the interpolation filter for luma component has been increased to 12.
[0036] Residual, transform and quantization
[0037] The difference between samples of a source block (contains original samples) and samples of the prediction block, also called residual block, is then typically compressed by a spatial transform to remove further redundancy. The transform coefficients are then quantized by a quantization parameter (QP) to control the fidelity of the residual block and thus also the bitrate required to compress the block. A coded block flag (CBF) is used to indicate if there are any non-zero quantized transform coefficients. All coding parameters are then entropy coded at the encoder and decoded at the decoder. If the coded block flag is one, a reconstructed block can then be derived by inverse quantization and inverse transformation of the quantized transform coefficients and then add that to the prediction block. If the coded block flag is zero, the reconstructed block is identical to the prediction block.
[0038] Inter prediction information / Motion information [0039] For an inter block inside an inter picture in VVC, its inter prediction information consists of the following three elements:
[0040] (1) A reference picture list flag (RefPicListFlag). The flag signals which reference picture list is used for the block.
[0041] When the value of the flag is equal to 0, it means only L0 is used for predicting the current block. When the value of the flag is equal to 1, it means only LI is used for predicting the current block. When the value of the flag is equal to 2, it means both L0 and LI are used for predicting the current block.
[0042] (2) A reference picture index (RefPicIdx) per reference picture list used. The index signals which reference picture inside the reference list to be used for predicting the current block.
[0043] (3) A motion vector (MV) per reference picture used. It signals the position inside the reference picture that is used for predicting the current block.
[0044] The inter prediction information is also referred to as motion information. The decoder stores the motion information for each inter block. In other words, an inter block maintains its own motion information.
[0045] Encoder decision and Rate Distortion (RD) cost
[0046] In practice for an encoder to decide the best prediction mode for a current block, it would evaluate all the possible prediction modes for the current block and select the prediction mode that yields the smallest Rate-Distortion (RD) cost.
[0047] The RD cost is calculated as D + * R. The D (Distortion) measures the difference between the reconstructed block and the corresponding source block. One commonly used metric for calculating D is the sum of squared error SSE = Sx,y(^i(x<y) — %j))2 , where the and PB are the sample values in the two blocks A and B respectively. The R (rate) is usually an estimation of the bits to be spent on encoding the mode. The is a trade-off parameter between R and D.
[0048] Motion information signaling [0049] VVC and ECM includes several methods for implicit signaling of motion information for each block, including the merge method and the subblock merge method. A common motivation behind the implicit methods is to inherit or reuse motion information from neighboring coded blocks. This often works in practice due to spatial correlation of close-by blocks, i.e., the fact that nearby blocks often behave similarly.
[0050] Merge (block merge) method and merge mode
[0051] The merge method derives a set of motion information from previously decoded blocks and use the derived motion information for generating the samples of the entire block. The merge method is sometimes referred to as the block merge method.
[0052] The method first generates a list of motion information candidates. The list is also referred to as the merge list. The candidates are derived from previously coded blocks. These previously coded blocks can be spatially adjacent neighboring blocks or temporal collocated blocks relative to the current block. FIG. 4 shows the spatial neighboring blocks: left (L), top(T), top-right(TR), left-bottom (LB) and top-left (TL).
[0053] The merge list construction process usually checks the previously coded blocks in a predefined order, for example, T - L - TR - LB - TL. For each previously coded block being checked, if this previously coded block is inter coded and its motion information has no duplicates in the list, then the motion information of this previously coded block is added to the merge list.
[0054] After the merge list is generated, one of the candidates inside the list is used to derive the motion information of the current block. The candidate selection process is done on the encoder side. An encoder would select a best candidate from the list and encode an index (merge index) in the bitstream to signal to a decoder. The decoder receives the index, it follows the same merge list derivation process as the encoder, and uses the index to retrieve the correct candidate.
[0055] The blocks that use the block merge method are sometimes referred to as blocks in merge mode. [0056] In the current ECM, non-adjacent spatial blocks are also considered as sources of motion information during the merge list construction. FIG. 5 shows some examples (marked with NA1, NA2, and NA3) of those non-adjacent spatial blocks.
[0057] Subblock merge method
[0058] VVC and ECM also include the subblock merge method. It splits a current block into a number of subblocks and allows each subblock to have its own motion information. FIG.
6 shows an example of a current block and its subblocks. Each subblock maintains its own motion information. It should be noted that the subblocks are all rectangular.
[0059] Geometric partitioning mode (GPM)
[0060] VVC and ECM also include a more flexible partition method called GPM, where a block can be split into two partitions by a splitting line. And the splitting line is defined using an angle index (a) and a distance index (p), as shown in FIG. 7.
[0061] GPM adds possibilities of splitting a block into two parts which are not necessarily always rectangular. FIG. 8 shows some more examples of different partitions in GPM, where the black area corresponding to one partition and the white area corresponding to the other partition. The corresponding angle index and distance index are shown as ordered pairs in FIG. 8 for each given mode.
[0062] In VVC and the current ECM, GPM allows 64 different modes. Each mode corresponds to a unique way to split a block into two parts, in other words, each mode corresponds to a unique splitting line. Each mode is indicated with an index in a coded video bitstream. The following table shows the mapping between the 64 different modes with the corresponding angle and distance index.
[0063] Each partition in GPM is associated with a set of motion information, and each partition inherits its motion information from previously coded blocks.
[0064] The motion information derivation relies on generating a GPM motion information candidate list first. After the list is generated, one of the candidates inside the list is used to derive the motion information of the partition.
[0065] An encoder would select a candidate from the list and encode an index in the bitstream to signal to a decoder. The decoder receives the index, it follows the same candidate list generation process as the encoder and uses the index to retrieve the correct motion information for the partition.
[0066] GPM motion information list generation
[0067] The motion information list used in the existing GPM design is a list of unimotion information where each motion information entry only contains L0 or LI motion vector. In other words, each motion information entry in the list only uses L0 motion vector or LI motion vector.
[0068] The GPM motion information list generation comprises two steps. The first step is to derive an initial motion information list. In VVC and current ECM, the initial motion information list process is the same as the block merge candidate list derivation process. After the initial motion information list is derived, an extraction process is invoked to extract motion information containing only Uni-MV from entries in the initial motion information list.
[0069] The following table shows an example of the initial motion information list with 4 entries.
[0070] The following table shows an example of a GPM motion information list with uni-motion information entries. As can be noticed, each entry in the GPM motion information list is extracted from the corresponding entry in the initial motion information list. And each entry in the GPM motion information list only contains L0 motion vector or LI motion vector.
[0071] GPM-MMVD (GPM with Merge Motion Vector Difference)
[0072] The current ECM extends the GPM design in VVC with a tool GPM-MMVD to add possibilities of explicitly signaling an MVD (motion vector difference) to the inherited motion vector (of the inherited motion information). The motivation of GPM-MMVD is to further adjust the inherited motion vector to better cater for the corresponding GPM partition, since in some cases, the motion vector used for the previously decoded block may not well- suitable for the content of the current partition.
[0073] It should be noted that GPM-MMVD only modifies the motion vector, the inherited reference picture list flag and inherited reference picture index are kept unmodified.
[0074] The MVD is signaled as a pair of distance and direction. There are nine candidate distances (Vi-sample, ^-sample, 1 -sample, 2-sample, 3-sample, 4-sample, 6-sample, 8-sample, 16-sample), and eight candidate directions (four horizontal/vertical directions and four diagonal directions). [0075] FIG. 9 shows an example of GPM-MMVD where the 8 possible MVD direction is shown with dashed arrows. The “baseMVPartl” is the base MV (the inherited MV) for the MVD. And the “modifiedMvPartl” is the adjusted MV from the base MV and the MVD.
[0076] For each partition, a GPM-MMVD flag is signaled to indicate the usage of GPM- MMVD. When the value of the flag is 1, a GPM-MMVD index is further signaled for the MVD.
[0077] GPM-TM (GPM with Template Matching)
[0078] ECM adds a method called GPM-TM to refine the inherited motion vector. Comparing to GPM-MMVD which relies on explicitly signaling of MVD to adjust an inherited motion vector, GPM-TM implicitly refines the inherited motion vector with the help of template matching method. However, similar to GPM-MMVD, GPM-TM only refines the motion vector, the inherited reference picture list flag and inherited reference picture index are kept unmodified.
[0079] Based on the GPM partition mode, a template is assigned to each partition. The template can be constructed using left, above, or left and above neighboring reconstructed samples.
[0080] For example, FIG. 10 shows the GPM mode index 10 (with angle index of 4 and distance index of 0). For partition PartO, its template is from the above neighboring reconstructed samples. For partition Parti, its template is from the left neighboring reconstructed samples.
[0081] For each partition, the motion vector is refined further by minimizing the difference between the template in the current picture and the template in the reference picture. The existing design in GPM-TM is uni-template matching since the associated MV (from the associated motion information) are uni-MV. FIG. 11 shows an example for the template matching process for PartO (when GPM mode index = 10). The template matching process searches an area near the base MV baseMvPartO (i.e., the inherited MV) to find whether there is another MV refinedMvPartO that gives the best template matching results. The refined MV refinedMvPartO is then used as the MV for generating prediction samples of the partition.
[0082] For a GPM block, a GPM-TM flag is signaled to indicate the usage of GPM-TM. When the value of the flag is 1, the GPM-TM method is applied on both partitions. In other words, current ECM does not allow to use GPM-TM for one partition but not the other when GPM-TM is enabled for the GPM block.
[0083] GPM-Intra
[0084] In VVC, both partitions of GPM are inter-coded. ECM includes a tool called GPM-Intra to allow usage intra prediction for one of the partitions in GPM.
[0085] Overlapped Block Motion Compensation (OBMC)
[0086] OBMC is a tool included in ECM which operates at the block boundaries or subblock boundaries of a current inter block. OBMC blends the current block’s or subblock’s prediction sample (generated using the current associated motion information) with another set of prediction samples which are generated using the neighboring motion information. The OBMC may give better prediction for samples that are close to the block or subblock boundary.
[0087] Bi-Directional Optical Flow (BDOF)
[0088] BDOF is a tool included in VVC and the current ECM that can be used to refine prediction samples that are generated from a Bi-MV. BDOF relies on optical flow estimation to derive a pair of refinement parameter (Vx, Vy) which can be further used to refine the prediction samples.
[0089] Decoder-side Motion Vector Refinement (DMVR)
[0090] DMVR is a tool included in VVC and the current ECM to refine motion vectors for a Bi-MV. DMVR operates on subblock level, usually 16x16. Different from BDOF that relies on optical flow estimation, DMVR relies on bilateral matching of two reference blocks to refine the Bi-MV. The DMVR searches within a window around the Bi-MV to find whether there exists another Bi-MV (Bi-MV’) that gives a better match between the L0 reference block and the LI reference block. If so, the Bi-MV’ is further used instead for generating the prediction samples of the current block.
SUMMARY
[0091] The current GPM scheme in ECM as well as in VVC only uses one motion vector (Uni-MV) for generating prediction samples for each partition, which may lead to inferior prediction accuracy. [0092] Embodiments modify the existing GPM design to allow usage of more than one motion vector for generating prediction samples for each partition in GPM. Embodiments also modify the existing GPM related tools such as GPM-MMVD and GPM-TM are to allow for usage of more than one motion vector.
[0093] According to a first aspect of the present disclosure, there is provided a method for decoding a current block within a current picture inside a coded video bitstream. The method comprises determining that the current block is coded using geometric partition mode, GPM. The method comprises, in response to determining that the current block is coded using GPM, determining that at least one partition, PX, of the current block is inter coded. The method comprises, in response to determining that at least one partition, PX, is inter coded, generating a GPM motion information list, LIST FINAL. The method further comprises determining motion information, MI PX, associated with the partition, PX, based on the GPM motion information list, LIST FINAL, and an index value, IDX, wherein the associated motion information, MI PX, contains more than one motion vector. The method comprises determining prediction samples of the partition PX based on the associated motion information MI PX.
[0094] According to a second aspect of the present disclosure, there is provided a decoder adapted to perform the method according the first aspect.
[0095] According to a third aspect of the present disclosure, there is provided a computer program comprising instructions which when executed by processing circuitry of a node, causes the node to perform the method according the first aspect.
[0096] According to a fourth aspect of the present disclosure, there is provided a carrier containing the computer program according to the third aspect, wherein the carrier is one of an electronic signal, an optical signal, a radio signal, and a computer readable storage medium.
[0097] At least one of the embodiments have an advantage of improved coding efficiency.
BRIEF DESCRIPTION OF THE DRAWINGS
[0098] The accompanying drawings, which are incorporated herein and form part of the specification, illustrate various embodiments. [0099] FIG. 1 illustrates an example of a MV for the current block C.
[0100] FIG. 2 illustrates an example of the prediction types.
[0101] FIG. 3 illustrates several fractional positions in the horizontal (x-) dimension.
[0102] FIG. 4 illustrates the spatial neighboring blocks: left (L), top(T), top-right(TR), left-bottom (LB) and top-left (TL).
[0103] FIG. 5 illustrates some examples (marked with NA1, NA2, and NA3) of nonadj acent spatial blocks.
[0104] FIG. 6 illustrates an example of a current block and its subblocks.
[0105] FIG. 7 illustrates a splitting line using an angle index (a) and a distance index (p).
[0106] FIG. 8 illustrates examples of different partitions in GPM.
[0107] FIG. 9 illustrates an example of GPM-MMVD where the 8 possible MVD direction is shown with dashed arrows.
[0108] FIG. 10 illustrates the GPM mode index 10 (with angle index of 4 and distance index of 0).
[0109] FIG. 11 illustrates an example for the template matching process for PartO (when GPM mode index = 10).
[0110] FIG. 12 illustrates an approach of applying the signaled MVD on top of the Bi- MV in GPM-MMVD according to an embodiment.
[OHl] FIG. 13 illustrates an approach of applying the signaled MVD on top of the Bi- MV in GPM-MMVD according to an embodiment.
[0112] FIG. 14 illustrates step one of a proposed GPM-TM design with Bi-MV according to an embodiment.
[0113] FIG. 15 illustrates step two of a proposed GPM-TM design with Bi-MV according to an embodiment.
[0114] FIG. 16 illustrates step three of a proposed GPM-TM design with Bi-MV according to an embodiment. [0115] FIG. 17 illustrates a flowchart according to an embodiment.
[0116] FIG. 18 is a block diagram of an apparatus according to an embodiment.
DETAILED DESCRIPTION
[0117] The proposed method can be used in a video encoder or a video decoder to generate prediction samples of a block that coded using GPM.
[0118] Embodiments provide for at least four main features, which are described below as features A, B, C, and D.
[0119] Feature A. Modified the GPM motion information list generation process.
[0120] Variation A. a. The extraction process that converts the initial motion information list into a list of motion information containing only uni-MVs is modified to be conditionally invoked.
[0121] Variation A. a. a. In one alternative, when the current block is in a non-low-delay picture and has size smaller than 256 (e.g., 8x8, 8x16, and 16x8), the extraction process is invoked.
[0122] Variation A.a.b. In another alternative, when the current block has size smaller than 256 (e.g., 8x8, 8x16, and 16x8), the extraction process is invoked.
[0123] Otherwise, the extraction process is bypassed, and the initial motion information list is directly used as the GPM motion information list. In this case, when the previously decoded block uses Bi-MV for prediction and the Bi-MV is added into the initial list. The Bi- MV may be carried on into the GPM motion information list and further be used for at least one partition in GPM.
[0124] Variation A.b. When generating the initial motion information list, a different MV difference threshold may be used. The MV difference threshold controls whether a candidate is different enough (compared to those already added in the list) to be worthy of adding into the list. In other words, when the candidate’s MV has a difference to the already added candidates that is below the MV difference threshold, the candidate is considered to be redundant and is not further added into the list. [0125] In the existing design, the MV difference threshold is set to be 1 (in 1/16-pel precision).
[0126] Variation A.b.a. In one alternative, the MV difference threshold is made dependent on the current block size as well as the picture type (whether the picture is a low-delay picture or a non-low-delay picture). The following table shows exemplary settings.
[0127] Variation A.b.b. In another alternative, the MV difference threshold is dependent on the current block size. The following table shows an example setting.
[0128] It should be noted that it is possible that in another alternative, the extraction process is always bypassed, i.e., the initial motion information list is always determined to be the final GPM motion information list.
[0129] Feature B. Extend the GPM-MMVD to incorporate with the Bi-MV as the base motion vector.
[0130] Two different approaches of applying the signaled MVD on top of the Bi-MV in GPM-MMVD are added.
[0131] The first approach is to switch the Bi-MV into a Uni-MV first, then apply the MVD on top of the Uni-MV. [0132] FIG. 12 shows an example of this approach. As shown, the base Bi-MV contains two MVs, MvL0_Pl and MvLI Pl. When applying the MVD, the MV for L0 (MvL0_Pl) is dropped first but the MV for LI (MvLI Pl) is kept, the signaled MVD is then applied on top of the LI MV to arrive at a new MV for LI MvLl ’ Pl .
[0133] The corresponding index of the Bi-MV in the GPM motion information list determines which MV is to be dropped and which MV is to be kept. For example, when the index is dividable by 2, then the L0 MV of the Bi-MV is kept and the LI MV of the Bi-MV is dropped. When the index is not dividable by 2, then the LI MV of the Bi-MV is kept and the L0 Mv of the Bi-MV is dropped.
[0134] The second approach is to apply the MVD on top of one MV and apply a scaled version of the MVD on top of the other MV.
[0135] FIG. 13 shows an example of this approach. The signaled MVD is directly applied to the MvLO Pl to arrive at a new MV for L0, MvLO’ Pl . A scaled version of MVD Mvd scaled is applied to the MvLI Pl to arrive at a new MV for LI, MvLl’ Pl.
[0136] The scaled version Mvd scaled can be derived using the POC of current picture POCO, the POC of the reference picture L0 POC LO, and the POC of the reference picture POC-L1.
[0137] The corresponding reference picture’s absolute distance to the current picture determines which MV of the Bi_MV to have the MVD directly applied on its top. For example, when the corresponding reference picture of L0 MV has a larger absolute picture distance to the current picture than the corresponding reference picture of the LI MV, then the MVD is directly applied on top of the L0 MV and the scaled MVD is applied on top of the LI MV.
[0138] A scale value SC is derived based on the ratio between the POC distances for generating the scaled MVD. The scaled MVD Mvd scaled (x scaled, y scaled) may be derived as: x scaled = SC * x, and y scaled = SC * y where x, and y are the components of the Mvd.
[0139] When it is the LI MV to have the scaled MVD applied on its top, SC = (POC Ll - POCO)/(POCLO - POCO). Otherwise (when L0 MV to have the scaled MVD applied on its top), the scaled value SC may be derived as (POC LO - POCO)/(POC_L1 - POCO). [0140] The switch between the first approach and the second approach may be made dependent on the picture coding type (whether the picture is a low-delay picture or a non-low- delay picture) and/or the magnitude of the MVD.
[0141] Variation B.a. In one example, when the picture is a non-low-delay picture, the first approach is used, otherwise (the picture is a low-delay picture), the second approach is used.
[0142] Variation B.b. In another example, when the picture is a non-low-delay picture and the signaled MVD exceeds a certain threshold (e.g., 4 in 1/16 precision, i.e., quarter-pel), the first approach is used. Otherwise, the second approach is used.
[0143] Feature C. Extend the GPM-TM to work with the Bi-MV.
[0144] FIGS. 14-16 illustrate the three steps of a proposed GPM-TM design with Bi-MV in accordance with an embodiment.
[0145] The extended GPM-TM has following three steps.
[0146] Step 1 and Step 2 invoke uni-template matching to find the best refined Uni-MV for L0 and LI respectively, i.e., refinedMvLO Uni and refmedMvLI Uni. And each refined Uni MV is associated with a uni-template cost, COST UNI LO and COST UNI LL
[0147] Step 3 invokes bi-template matching to find the best refined Bi-MV that resulted in the best matching (compares the current template and the combined template from L0 and LI). The resulted best refined Bi-MV is refmedMvLO Bi and refmedMvLI Bi. The best refined Bi- MV is also associated with a bi-template cost COST BI.
[0148] For non-low-delay pictures, when the best template cost from using Bi-MV COST BI exceeds 75% of the best template cost of Uni-MV (the minimum of COST UNI LO and COST UNI Ll), the best refined Uni-MV from the uni-template matching step (refinedMvLO Uni or refmedMvLI Uni depending on which gives smaller uni -template cost) may be used as the final refined MV for the partition. In other words, the refined motion information only contains one motion vector. Other thresholds are also possible.
[0149] For low-delay pictures, the refined Bi-MV (refmedMvLO Bi and refmedMvLI Bi) from the bi-template matching step is used as the final refined MV for the partition. In other words, the refined motion information keeps the number of motion vectors from the inherited MV.
[0150] For an inter GPM partition that is associated with a Bi-MV, after prediction samples are generated from the normal motion compensation, an 8x8 BDOF process is invoked to derive a MV refinement parameter (Vx, Vy) for each 8x8 block in the partition. The MV refinement parameter is further used to refine the prediction samples. Furthermore, the BDOF MV refinement parameter are stored on top of the Bi-MV in the motion storage buffer associated with the current partition, which can then be used for OBMC or predicting future inter blocks’ MVs.
[0151] It can be noticed from the above features A-D that some of the criteria are based on the current picture coding type (whether the current picture is a low-delay picture or a non- low-delay picture). The motivation is that for non-low-delay pictures, it is more about providing more variants of MVs for prediction (i.e., provide easy flexibility of switching to use Uni-MV in a group of neighboring Bi-MVs). For low-delay pictures, it is more about keeping the Bi-MVs which can be valuable for future blocks (in low-delay picture, the inter prediction quality is generally low since the prediction always comes from the same direction, Bi-MV is more likely to be better as it at least can provide another hypothesis for the block than using Uni-MV, it is thus more important to keep the Bi-MV propagating to the future blocks).
[0152] The followings embodiments utilize one or more of these features. Embodiments 1 - 3 correspond to the feature A. Embodiments 4 - 8 correspond to feature B. Embodiments 9 - 10 correspond to the feature C. Embodiments 11 - 12 correspond to the feature D.
[0153] Embodiment 1
[0154] For decoding a current block within a current picture inside a coded video bitstream, the decoder may implement the proposed method with at least one of the following steps:
[0155] The decoder may determine whether the current block is coded using GPM.
[0156] In response to determining that the current block is coded using GPM, the decoder may further determine whether at least one of its partitions is inter coded. [0157] In response to determining that at least one partition (PX) is inter coded, the decoder may generate a GPM motion information list (LIST FINAL). Generating this list may include generating an initial list of motion information (LIST INIT) based on previously decoded blocks. Generating this list may further include determining whether to apply an extraction process to the initial motion information list (LIST INIT) based on whether a first criterion Cl is fulfilled. When Cl is fulfilled, the output of the extraction process is determined to be LIST FINAL. Otherwise, LIST FINAL is directly determined to be LIST INIT.
[0158] The decoder may further determine the motion information (MI PX) associated with the partition (PX) based on the GPM motion information list (LIST FINAL) and an index value (IDX). The index value (IDX) may be determined from the coded video bitstream.
[0159] The decoder may determine the prediction samples of the partition (PX) based on the associated motion information (MI PX).
[0160] Embodiment 2
[0161] This embodiment builds on Embodiment 1. The generation of the initial list LIST INIT may further comprise using a MV difference value to control whether a candidate can be added into the list or not.
[0162] In one alternative, the MV difference value can be made based on the current block size as well as the current picture’s coding type (whether the current picture is a low-delay picture or a non-low-delay picture). One example of the MV difference value is shown in the following table.
[0163] In another alternative, the MV difference value is made based on the current block size. One example of the MV difference value is shown in the following table.
[0164] Embodiment 3
[0165] This embodiment builds on any one of Embodiments 1 and 2. The criterion Cl may depend on the current block size and/or the current picture coding type (whether the current picture is a low-delay picture or a non-low-delay picture).
[0166] In one alternative, the criterion Cl is determined to be fulfilled when the current block size is below a threshold (for example, 256). In one alternative, the criterion Cl is determined to be fulfilled when the current block size is below a threshold (for example, 256) and the current picture is a non-low-delay picture.
[0167] Embodiment 4
[0168] This embodiment builds on any one of Embodiments 1-3. The decoding step of determining the motion information (MI PX) may comprise the following steps:
[0169] The decoder may determine whether a motion vector difference MVD information is present for the inter partition PX.
[0170] In response to determining that MVD information is present, the decoder may further determine the MVD.
[0171] The decoder may determine a base motion information (BASE MI) based on the GPM motion information list LIST FINAL and the index value IDX.
[0172] The decoder may determine a modified motion information (NEW MI) based on the BASE MI and MVD. This step may further comprise the following. When the BASE MI contains more than one MV (i.e., Bi-MV: MV0, MV1), the decoder may further determine whether a second criterion C2 is fulfilled. In response to determining that the criterion C2 is fulfilled, the decoder may determine the modified motion information (NEW MI) contains only one motion vector NEW_MV (i.e, Uni -MV, L0 or LI MV), and derive the motion vector NEW_MV based on the corresponding MV of the Bi-MV and MVD. In other words, if NEW_MI contains only LO MV, then the NEW_MV is determined based on MVO of BASE MI and MVD. If NEW MI contains only LI MV, then the NEW_MV is determined based on MV1 of BASE MI and MVD. On the other hand, in response to determining that the criterion C2 is not fulfilled, the decoder may determine the modified motion information contains at least two motion vectors (NEW_MV0 and NEW_MV1), and derive the two motion vectors (NEW_MV0 and NEW_MV1) based on the two motion vectors MVO and MV1 of the BASE_MI and the MVD.
[0173] Embodiment 5
[0174] This embodiment builds on Embodiment 4. The criterion C2 may depend on the current picture coding type. The criterion C2 may be determined to be fulfilled when the current picture is a non-low-delay picture. Otherwise, when the current picture is a low-delay picture, the criterion C2 may be determined to be not fulfilled.
[0175] Embodiment 6
[0176] This embodiment builds on Embodiment 5. The criterion C2 may further comprise determining whether the magnitude of the MVD exceeds a certain threshold.
[0177] In one example, the criterion C2 may be determined to be fulfilled when the magnitude of the motion vector difference’s x or y component exceeds a quarter-pel distance.
[0178] Embodiment 7
[0179] This embodiment builds on any one of Embodiments 4 - 6. When the criterion C2 is fulfilled, the modified motion information (NEW MI) is determined to contain only L0 MV when the BASE MI’s associated index value (IDX) is dividable by 2. Otherwise (the associated index value (IDX) is not dividable by 2), the NEW MI is determined to contain the LI MV.
[0180] Embodiment 8
[0181] This embodiment builds on any one of Embodiments 4 - 6. When the criterion C2 is not fulfilled, the determination of the two motion vectors NEW_MV0 and NEW_M1 may further comprise the following steps. [0182] The decoder may determine a reference picture distance value for each of the MV0 and MV1 of the BASE MI.
[0183] The decoder may determine the MVD to be applied on top of the MV that has a larger reference picture distance value.
[0184] The decoder may determine a scaled version of MVD, and apply the scaled MVD on top of the other MV (that has a smaller reference picture distance value).
[0185] Embodiment 9
[0186] This embodiment builds on any one of Embodiments 1 - 8. The decoding step of determining the motion information (MI PX) may further comprise the following steps.
[0187] The decoder may determine whether template matching refinement is enabled for the inter prediction PX.
[0188] The decoder may determine a base motion information (BASE MI) based on the GPM motion information list (LIST FINAL) and the index value (IDX).
[0189] The decoder may determine a refined motion information (TM MI) based on BASE MI and a template associated with the current block. The step may comprise the following. The decoder may determine whether the BASE MI contains more than one MV (i.e., Bi-MV: MV0 and MV1). In response to determining that the BASE MI contains more than one MV (MV0 and MV1), the decoder may do one or more of the following. The decoder may perform Uni template matching MV refinement for at least one of the MV (of BASE MI) to find a best refined Uni-MV, NEW_MV0_UNI, and a best Uni-MV template cost, UNI_COST. The decoder may perform Bi template matching refinement based on both MV0 and MV1, to get refined NEW MV0 BI and NEW MV1 BI and a best Bi-MV template cost BI COST. The decoder may determine whether the third criterion C3 is fulfilled. In response to determining that the third criterion C3 is fulfilled, the decoder may determine the refined motion information MI PX to only contain one MV from the uni template matching, which is the refined NEW MV0 UNI. On the other hand, in response to determining that the third criterion C3 is not fulfilled, the decoder may determine the refined motion information MI PX to contain both refined MVO and MV1 from the bi template matching, which are NEW_MV0_BI and NEW MV1 BI.
[0190] Embodiment 10
[0191] This embodiment builds on Embodiment 9. The third criterion C3 may be based on checking the current picture type and/or the best uni template cost UNI COST and the best template cost BI COST.
[0192] In one alternative, the third criterion C3 is determined to be fulfilled when the current picture is a non-low-delay picture and the BI COST is larger than a ratio (preferably less than 1.0) of the UNI COST. In one example, the ratio = 0.75.
[0193] Embodiment 11
[0194] This embodiment builds on any one of Embodiments 1 - 10. When the associated motion information MI PX contains at least one MV, a refinement process may be further invoked to generate a pair of MV refinement parameters (Vx, Vy) for each of the NxN subblocks in the partition PX. The MV refinement parameters (Vx, Vy) may further be used to refine the prediction samples for the corresponding NxN subblock in the partition PX. Furthermore, the refinement parameters may be stored on top of the motion information MI PX in the motion storage buffer associated with the partition.
[0195] Embodiment 12
[0196] This embodiment builds on Embodiment 11. The refinement process may be a BDOF process. Furthermore, in one alternative, the dimension of the subblock N may be equal to 8.
[0197] Embodiment 13
[0198] This embodiment builds on Embodiment 11. The refinement process may be a DMVR process.
[0199] FIG. 17 is a flowchart illustrating a process 1700, according to an embodiment, for decoding a current block within a current picture inside a coded video bitstream. Process 1700 may begin in step si 702. [0200] Step si 702 comprises determining that the current block is coded using geometric partition mode (GPM).
[0201] Step si 704 comprises, in response to determining that the current block is coded using GPM, determining that at least one partition (PX) of the current block is inter coded.
[0202] Step si 706 comprises, in response to determining that at least one partition (PX) is inter coded, generating a GPM motion information list (LIST FINAL).
[0203] Step si 708 comprises determining motion information (MI PX) associated with the partition (PX) based on the GPM motion information list (LIST FINAL) and an index value (IDX). The associated motion information (MI PX) contains more than one motion vector.
[0204] Step s 1710 comprises determining prediction samples of the partition PX based on the associated motion information MI PX.
[0205] In some embodiments, generating the GPM motion information list
(LIST FINAL) further comprises: (i) generating an initial motion information list (LIST INIT) based on previously decoded blocks; (ii) determining whether to apply an extraction process to the initial motion information list (LIST INIT) based on whether a first criterion (Cl) is fulfilled, wherein the extraction process extracts motion information containing only one motion vector; and (iii) if the first criterion is fulfilled, performing the extraction process to the initial motion information list (LIST INIT) and setting the GPM motion information list
(LIST FINAL) to be an output of the extraction process; and, if the first criterion is not fulfilled, setting the GPM motion information list (LIST FINAL) to be the initial motion information list (LIST INIT ).
[0206] In some embodiments, generating the initial motion information list (LIST INIT) based on previously decoded blocks comprises determining whether to add a candidate motion information to the initial motion information list (LIST INIT) based on whether a difference between a motion vector of the candidate motion information and a motion vector of each of the motion information in the initial motion information list (LIST INIT) is not smaller than a motion vector difference threshold value. In some embodiments, the motion vector difference threshold value is based on a size of the current block. In some embodiments, the motion vector difference threshold value is set as follows: If size < SIZE TH, set the motion vector difference threshold value to MV TH A, otherwise, set the motion vector difference threshold value to MV TH B (MV TH B is greater than MV TH A) where size = W*H, for a width (W) of the current block and a height (H) of the current block. In some embodiments, the MV TH A is set to be 1 in 1/16-pel precision and the MV TH B is set to be 16 in 1/16-pel precision, and SIZE TH is a size threshold. In some embodiments, the SIZE TH is set to be 256.
[0207] In some embodiments, the motion vector difference threshold value is based on a picture coding type of the current picture. In some embodiments, the motion vector difference threshold value is set as follows: if ( size ) < 256, and a picture coding type of the current picture is a non-low-delay picture, set the motion vector difference threshold value to 1; if ( size ) < 256, and a picture coding type of the current picture is a low-delay picture, set the motion vector difference threshold value to 8; and if (size ) > 256, set the motion vector difference threshold value to 16, where size = W*H, for a width (W) of the current block and a height (H) of the current block, and wherein the motion vector difference threshold is given in 1/16-pel precision.
[0208] In some embodiments, the first criterion (Cl) is based on a size of the current block and/or picture coding type of the current picture. In some embodiments, the first criterion (Cl) is fulfilled when the size of the current block is below a size threshold. In some embodiments, the first criterion (Cl) is fulfilled when a size of the current block is below a size threshold and the current picture is a non-low-delay picture. In some embodiments, determining motion information (MI PX) associated with the partition (PX) based on the GPM motion information list (LIST FINAL) and the index value (IDX) comprises: determining that a motion vector difference (MVD) information is present for the partition (PX); in response to determining that the MVD information is present for the partition (PX), determining the MVD information; determining a base motion information (BASE MI) based on the GPM motion information list (LIST FINAL) and the index value IDX; and determining a modified motion information (NEW MI) based on the base motion information (BASE MI) and the MVD information.
[0209] In some embodiments, determining the modified motion information (NEW MI) based on the base motion information (BASE MI) and the MVD information comprises: determining that the modified motion information (NEW MI) contains only one motion vector, either a L0 motion vector or a LI motion vector; and deriving the modified motion information (NEW MI) based on the corresponding motion vector of the base motion information (BASE MI) and the MVD information, such that the modified motion information (NEW MI) is determined based on the first motion vector (MVO) and the MVD information if the modified motion information (NEW MI) is determined to contain the LO motion vector, and the modified motion information (NEW MI) is determined based on the second motion vector (MV1) and the MVD information if the modified motion information (NEW MI) is determined to contain the LI motion vector.
[0210] In some embodiments, determining the modified motion information (NEW MI) based on the base motion information (BASE MI) and the MVD information comprises: determining that the modified motion information (NEW MI) contains at least a third motion vector (NEW_MV0) and a fourth motion vector (NEW_MV1); and deriving the third motion vector (NEW_MV0) based on the first motion vector (MVO) and the MVD information, and deriving the fourth motion vector (NEW MVl) based on the second motion vector (MV1) and the MVD information.
[0211] In some embodiments, determining the modified motion information (NEW MI) based on the base motion information (BASE MI) and the MVD information comprises: determining whether a second criterion (C2) is fulfilled, wherein the base motion information (BASE MI) contains at least a first motion vector (MVO) and a second motion vector (MV1); if the second criterion (C2) is fulfilled, (i) determining that the modified motion information (NEW MI) contains only one motion vector, either a LO motion vector or a LI motion vector; (ii) deriving the modified motion information (NEW MI) based on the corresponding motion vector of the base motion information (BASE MI) and the MVD information, such that the modified motion information (NEW MI) is determined based on the first motion vector (MVO) and the MVD information if the modified motion information (NEW MI) is determined to contain the LO motion vector, and the modified motion information (NEW MI) is determined based on the second motion vector (MV1) and the MVD information if the modified motion information (NEW MI) is determined to contain the LI motion vector; and if the second criterion (C2) is not fulfilled, (i) determining that the modified motion information (NEW MI) contains at least a third motion vector (NEW_MV0) and a fourth motion vector (NEW_MV1), (ii) deriving the third motion vector (NEW_MV0) based on the first motion vector (MVO) and the MVD information, and (iii) deriving the fourth motion vector (NEW MVl) based on the second motion vector (MV1) and the MVD information.
[0212] In some embodiments, the second criterion (C2) is based on a picture coding type of the current picture. In some embodiments, the second criterion (C2) is fulfilled when the current picture is a non-low-delay picture and the second criterion (C2) is not fulfilled when the current picture is a low-delay picture. In some embodiments, the second criterion (C2) is further based on whether a magnitude of the MVD information exceeds an MVD threshold. In some embodiments, the second criterion (C2) is fulfilled when the magnitude of the MVD information exceeds a quarter-pel distance in an x-component or y-component. In some embodiments, when the second criterion (C2) is fulfilled, the modified motion information (NEW MI) is determined to contain only the L0 motion vector when an associated index value (IDX) of the base motion information (BASE MI) is divisible by 2, and otherwise the modified motion information (NEW MI) is determined to contain only the LI motion vector.
[0213] In some embodiments, when the second criterion (C2) is not fulfilled, the steps (ii) deriving the third motion vector (NEW_MV0) based on the first motion vector (MVO) and the MVD information, and (iii) deriving the fourth motion vector (NEW MVl) based on the second motion vector (MV1) and the MVD information further comprise: determining a reference picture distance value for each of the first motion vector (MVO) and the second motion vector (MV1); determining the MVD information to be applied on top of the motion vector having a larger reference picture distance value of the first motion vector (MVO) and the second motion vector (MV1); determining a scaled version of the MVD information; and applying the scaled version of the MVD information on top of the motion vector having a smaller reference picture distance value of the first motion vector (MVO) and the second motion vector (MV1).
[0214] In some embodiments, determining motion information (MI PX) associated with the partition (PX) based on the GPM motion information list (LIST FINAL) and an index value (IDX) comprises: determining that template matching refinement is enabled for the partition (PX); determining a base motion information (BASE MI) based on the GPM motion information list (LIST FINAL) and the index value (IDX); determining a refined motion information (TM MI) based on the base motion information (BASE MI) and a template associated with the current block. In some embodiments, determining a refined motion information (TM MI) based on the base motion information (BASE MI) and a template associated with the current block comprises: determining that the base motion information (BASE MI) contains at least a first motion vector (MVO) and a second motion vector (MV1); performing uni-template matching motion vector refinement for at least one of the first motion vector (MVO) and the second motion vector (MV1) to find a refined uni-motion vector (NEW_MV0_UNI) and a uni-motion-vector template cost (UNI COST); performing bi-template matching refinement based on both the first motion vector (MVO) and the second motion vector (MV1) to get a refined first motion vector (NEW MVO BI) and a refined second motion vector (NEW MV1 BI) and a bi-motion-vector template cost (BI COST); determining whether a third criterion (C3) is fulfilled; if the third criterion (C3) is fulfilled, determining refined motion information (MI PX) to only contain one motion vector from the uni-template matching (NEW MVO UNI); and if the third criterion (C3) is not fulfilled, determining refined motion information (MI PX) to contain both refined first motion vector (NEW MVO BI) and refined second motion vector (NEW MV1 BI) from the bitemplate matching.
[0215] In some embodiments, the third criterion (C3) is based on checking a picture type of the current picture and checking the uni-template cost (UNI COST) and the bi-template cost (BI COST). In some embodiments, the third criterion (C3) is fulfilled when the current picture is a non-low-delay picture and the bi-template cost (BI COST) is larger than a cost threshold and otherwise the third criterion (C3) is not fulfilled, wherein the cost threshold is a function of the uni-template cost (UNI COST). In some embodiments, the method further comprises invoking a refinement process, when the associated motion information (MI PX) contains at least one motion vector, to generate a pair of motion vector refinement parameters (Vx, Vy) for each NxN subblock in the partition (PX); and using the motion vector refinement parameters (Vx, Vy) to refine the prediction samples for the corresponding NxN subblock in the partition PX. In some embodiments, the refinement process is a bi-directional optimal flow (BDOF) process. In some embodiments, the refinement process is a decoder-side motion vector refinement (DMVR) process.
[0216] FIG. 18 is a block diagram of apparatus 1800 (e.g., an encoder or decoder), according to some embodiments, for performing the methods disclosed herein. As shown in FIG. 18, apparatus 1800 may comprise: processing circuitry (PC) 1802, which may include one or more processors (P) 1855 (e.g., a general purpose microprocessor and/or one or more other processors, such as an application specific integrated circuit (ASIC), field-programmable gate arrays (FPGAs), and the like), which processors may be co-located in a single housing or in a single data center or may be geographically distributed (i.e., apparatus 1800 may be a distributed computing apparatus); at least one network interface 1848 comprising a transmitter (Tx) 1845 and a receiver (Rx) 1847 for enabling apparatus 1800 to transmit data to and receive data from other nodes connected to a network 1810 (e.g., an Internet Protocol (IP) network) to which network interface 1848 is connected (directly or indirectly) (e.g., network interface 1848 may be wirelessly connected to the network 1810, in which case network interface 1848 is connected to an antenna arrangement); and a storage unit (a.k.a., “data storage system”) 1808, which may include one or more non-volatile storage devices and/or one or more volatile storage devices. Interface 1860 may connect PC 1802 and storage unit 1808, interface 1862 may connect PC 1802 and network interface 1848, and interface 1864 may connect network interface 1848 and network 1810. In embodiments where PC 1802 includes a programmable processor, a computer program product (CPP) 1141 may be provided. CPP 1841 includes a computer readable medium (CRM) 1842 storing a computer program (CP) 1843 comprising computer readable instructions (CRI) 1844. CRM 1842 may be a non-transitory computer readable medium, such as, magnetic media (e.g., a hard disk), optical media, memory devices (e.g., random access memory, flash memory), and the like. In some embodiments, the CRI 1844 of computer program 1143 is configured such that when executed by PC 1802, the CRI causes apparatus 1800 to perform steps described herein (e.g., steps described herein with reference to the flow charts). In other embodiments, apparatus 1800 may be configured to perform steps described herein without the need for code. That is, for example, PC 1802 may consist merely of one or more ASICs. Hence, the features of the embodiments described herein may be implemented in hardware and/or software.
[0217] One embodiment has been implemented in the current ECM (i.e., ECM-8.0). The following table shows the objective performance of this embodiment (incorporating features A.a.a, A.b.a, B.a, C, and D) compared to ECM-8.0 (under the ECM random access and low delay common test configuration). The numbers in the table show the relative bit-cost for the embodiment to achieve equivalent objective video quality (measured in PSNR) as ECM-8.0. The BD-rate number -O.X% means the proposed solution requires O.X% less bits than ECM-8.0 for the same objective quality for different classes of video sequences. The EncT/DecT show the encoding and decoding run time measurement respectively, where a number of 100% means the test and anchor has the same amount of run time.
[0218] As can be noticed from the table, the embodiment provides -0.2% bit reduction for Random Access with 1% encoding time increase and no decoding time increase, and -0.30% bit rate reduction for Low delay with 2% encoding time and 1-2% decoding time increase. It is asserted that such a tradeoff between bit reduction and enc/dec run time impact is reasonable.
[0219] Another embodiment (incorporating features A.a.a, A.b.a, B.b, C, and D) is also implemented and tested. The objective numbers compared to ECM-8.0 under Random access configuration are shown below. Based on the numbers, feature B.b may be a better alternative than B.a in terms of bit reduction. [0220] Yet another embodiment (incorporating features A.a.b, A.b.b, B.a, C, and D) is also implemented and tested. The objective numbers compared to ECM-8.0 under random access and low delay configuration are show below. This version has lower complexity comparing to the versions above, since the version uses uni motion vectors for small blocks (for all pictures) and only uses bi motion vectors for larger blocks.
[0221] Concise Description of Certain Embodiments
Al . A method for decoding a current block within a current picture inside a coded video bitstream, the method comprising: determining that the current block is coded using geometric partition mode (GPM); in response to determining that the current block is coded using GPM, determining that at least one partition (PX) of the current block is inter coded; in response to determining that at least one partition (PX) is inter coded, generating a GPM motion information list (LIST FINAL); determining motion information (MI PX) associated with the partition (PX) based on the GPM motion information list (LIST FINAL) and an index value (IDX), wherein the associated motion information (MI PX) contains more than one motion vector; and determining prediction samples of the partition PX based on the associated motion information MI PX.
A2. The method of claim Al, wherein generating the GPM motion information list (LIST FINAL) further comprises:
(i) generating an initial motion information list (LIST INIT) based on previously decoded blocks;
(ii) determining whether to apply an extraction process to the initial motion information list (LIST INIT) based on whether a first criterion (Cl) is fulfilled, wherein the extraction process extracts motion information containing only one motion vector; and (iii) if the first criterion is fulfilled, performing the extraction process to the initial motion information list (LIST INIT) and setting the GPM motion information list (LIST FINAL) to be an output of the extraction process; and, if the first criterion is not fulfilled, setting the GPM motion information list (LIST FINAL) to be the initial motion information list (LIST INIT).
A3. The method of any one of claims A1-A2, wherein generating the initial motion information list (LIST INIT) based on previously decoded blocks comprises determining whether to add a candidate motion information to the initial motion information list (LIST INIT) based on whether a difference between a motion vector of the candidate motion information and a motion vector of each of the motion information in the initial motion information list (LIST INIT) is not smaller than a motion vector difference threshold value.
A4. The method of claim A3, wherein the motion vector difference threshold value is based on a size of the current block.
A5. The method of claim A3-A4, wherein the motion vector difference threshold value is set as follows:
If size < SIZE TH, set the motion vector difference threshold value to 1, otherwise, set the motion vector difference threshold value to 16, where size = W*H, for a width (W) of the current block and a height (H) of the current block, and wherein the motion vector difference threshold is given in 1/16-pel precision, and SIZE TH is a size threshold.
A6. The method of claim A3-A5, wherein the motion vector difference threshold value is based on a picture coding type of the current picture.
A7. The method claims of any one of claims A3- A6, wherein the motion vector difference threshold value is set as follows: if ( size ) < 256, and a picture coding type of the current picture is a non-low-delay picture, set the motion vector difference threshold value to 1; if ( size ) < 256, and a picture coding type of the current picture is a low-delay picture, set the motion vector difference threshold value to 8; and if (size ) > 256, set the motion vector difference threshold value to 16, where size = W*H, for a width (W) of the current block and a height (H) of the current block, and wherein the motion vector difference threshold is given in 1/16-pel precision.
A8. The method of any one of claims A1-A7, wherein the first criterion (Cl) is based on a size of the current block and/or picture coding type of the current picture.
A9. The method of any one of claims A1-A8, wherein the first criterion (Cl) is fulfilled when a size of the current block is below a size threshold and the current picture is a non-low- delay picture.
A10. The method of any one of claims A1-A9, wherein determining motion information (MI PX) associated with the partition (PX) based on the GPM motion information list (LIST FINAL) and the index value (IDX) comprises: determining that a motion vector difference (MVD) information is present for the partition (PX); in response to determining that the MVD information is present for the partition (PX), determining the MVD information; determining a base motion information (BASE MI) based on the GPM motion information list (LIST FINAL) and the index value IDX; and determining a modified motion information (NEW MI) based on the base motion information (BASE MI) and the MVD information.
Al 1. The method of claim A10, wherein determining the modified motion information (NEW MI) based on the base motion information (BASE MI) and the MVD information comprises: determining that the modified motion information (NEW MI) contains only one motion vector, either a LO motion vector or a LI motion vector; and deriving the modified motion information (NEW MI) based on the corresponding motion vector of the base motion information (BASE MI) and the MVD information, such that the modified motion information (NEW MI) is determined based on the first motion vector (MVO) and the MVD information if the modified motion information (NEW MI) is determined to contain the LO motion vector, and the modified motion information (NEW MI) is determined based on the second motion vector (MV1) and the MVD information if the modified motion information (NEW MI) is determined to contain the LI motion vector.
A12. The method of claim A10, wherein determining the modified motion information (NEW MI) based on the base motion information (BASE MI) and the MVD information comprises: determining that the modified motion information (NEW MI) contains at least a third motion vector (NEW_MV0) and a fourth motion vector (NEW_MV1); and deriving the third motion vector (NEW_MV0) based on the first motion vector (MVO) and the MVD information, and deriving the fourth motion vector (NEW MVl) based on the second motion vector (MV1) and the MVD information.
Al 3. The method of claim A10, wherein determining the modified motion information (NEW MI) based on the base motion information (BASE MI) and the MVD information comprises: determining whether a second criterion (C2) is fulfilled, wherein the base motion information (BASE MI) contains at least a first motion vector (MVO) and a second motion vector (MV1); if the second criterion (C2) is fulfilled, (i) determining that the modified motion information (NEW MI) contains only one motion vector, either a LO motion vector or a LI motion vector; (ii) deriving the modified motion information (NEW MI) based on the corresponding motion vector of the base motion information (B ASE MI) and the MVD information, such that the modified motion information (NEW MI) is determined based on the first motion vector (MVO) and the MVD information if the modified motion information (NEW MI) is determined to contain the LO motion vector, and the modified motion information (NEW MI) is determined based on the second motion vector (MV1) and the MVD information if the modified motion information (NEW MI) is determined to contain the LI motion vector; and if the second criterion (C2) is not fulfilled, (i) determining that the modified motion information (NEW MI) contains at least a third motion vector (NEW MVO) and a fourth motion vector (NEW_MV1), (ii) deriving the third motion vector (NEW_MV0) based on the first motion vector (MVO) and the MVD information, and (iii) deriving the fourth motion vector (NEW MVl) based on the second motion vector (MV1) and the MVD information.
A14. The method of claim A13, wherein the second criterion (C2) is based on a picture coding type of the current picture.
Al 5. The method of claim A 14, wherein the second criterion (C2) is fulfilled when the current picture is a non-low-delay picture and the second criterion (C2) is not fulfilled when the current picture is a low-delay picture.
A16. The method of any one of claims A13-A15, wherein the second criterion (C2) is further based on whether a magnitude of the MVD information exceeds an MVD threshold.
A17. The method of claims A16, wherein the second criterion (C2) is fulfilled when the magnitude of the MVD information exceeds a quarter-pel distance in an x-component or y- component.
A18. The method of any one of claims A13-A17, wherein, when the second criterion (C2) is fulfilled, the modified motion information (NEW MI) is determined to contain only the LO motion vector when an associated index value (TDX) of the base motion information (BASE MI) is divisible by 2, and otherwise the modified motion information (NEW MI) is determined to contain only the LI motion vector.
A19. The method of any one of claims A13-A17, wherein, when the second criterion (C2) is not fulfilled, the steps (ii) deriving the third motion vector (NEW_MV0) based on the first motion vector (MVO) and the MVD information, and (iii) deriving the fourth motion vector (NEW MVl) based on the second motion vector (MV1) and the MVD information further comprise: determining a reference picture distance value for each of the first motion vector (MVO) and the second motion vector (MV1); determining the MVD information to be applied on top of the motion vector having a larger reference picture distance value of the first motion vector (MVO) and the second motion vector (MV1); determining a scaled version of the MVD information; and applying the scaled version of the MVD information on top of the motion vector having a smaller reference picture distance value of the first motion vector (MVO) and the second motion vector (MV1).
A20. The method of any one of claims Al -Al 9, wherein determining motion information (MI PX) associated with the partition (PX) based on the GPM motion information list (LIST FINAL) and an index value (IDX) comprises: determining that template matching refinement is enabled for the partition (PX); determining a base motion information (BASE MI) based on the GPM motion information list (LIST FINAL) and the index value (IDX); determining a refined motion information (TM MI) based on the base motion information (BASE MI) and a template associated with the current block.
A21. The method of claim A20, wherein determining a refined motion information (TM MI) based on the base motion information (BASE MI) and a template associated with the current block comprises: determining that the base motion information (BASE MI) contains at least a first motion vector (MVO) and a second motion vector (MV1); performing uni-template matching motion vector refinement for at least one of the first motion vector (MVO) and the second motion vector (MV1) to find a refined uni-motion vector (NEW_MV0_UNI) and a uni-motion-vector template cost (UNI_COST); performing bi-template matching refinement based on both the first motion vector (MVO) and the second motion vector (MV1) to get a refined first motion vector (NEW MVO BI) and a refined second motion vector (NEW MV1 BI) and a bi-motion-vector template cost (BI COST); determining whether a third criterion (C3) is fulfilled; if the third criterion (C3) is fulfilled, determining refined motion information (MI PX) to only contain one motion vector from the uni-template matching (NEW MVO UNI); and if the third criterion (C3) is not fulfilled, determining refined motion information (MI PX) to contain both refined first motion vector (NEW MVO BI) and refined second motion vector (NEW MV1 BI) from the bi-template matching.
A22. The method of claim A21, wherein the third criterion (C3) is based on checking a picture type of the current picture and checking the uni-template cost (UNI COST) and the bitemplate cost (BI COST).
A23. The method of claim A21, wherein the third criterion (C3) is fulfilled when the current picture is a non-low-delay picture and the bi-template cost (BI COST) is larger than a cost threshold and otherwise the third criterion (C3) is not fulfilled, wherein the cost threshold is a function of the uni-template cost (UNI COST).
A24. The method of any one of claims A1-A23, further comprising: invoking a refinement process, when the associated motion information (MI PX) contains at least one motion vector, to generate a pair of motion vector refinement parameters (Vx, Vy) for each NxN subblock in the partition (PX); and using the motion vector refinement parameters (Vx, Vy) to refine the prediction samples for the corresponding NxN subblock in the partition PX.
A25. The method of claim A24, wherein the refinement process is a bi-directional optimal flow (BDOF) process.
A26. The method of claim A24, wherein the refinement process is a decoder-side motion vector refinement (DMVR) process.
Bl. A decoder compri sing : processing circuitry (1802); and a memory, the memory containing instructions (1844) executable by the processing circuitry (1802), whereby when executed the processing circuitry (1802) is configured to: determine that the current block is coded using geometric partition mode (GPM); in response to determining that the current block is coded using GPM, determine that at least one partition (PX) of the current block is inter coded; in response to determining that at least one partition (PX) is inter coded, generate a GPM motion information list (LIST FINAL); determine motion information (MI PX) associated with the partition (PX) based on the GPM motion information list (LIST FINAL) and an index value (IDX), wherein the associated motion information (MI PX) contains more than one motion vector; and determine prediction samples of the partition PX based on the associated motion information MI PX.
B2. The decoder of claim Bl, wherein the processing circuitry (1802) is further configured to perform the steps of any one of claims A2-A26.
CL A decoder adapted to: determine that the current block is coded using geometric partition mode (GPM); in response to determining that the current block is coded using GPM, determine that at least one partition (PX) of the current block is inter coded; in response to determining that at least one partition (PX) is inter coded, generate a GPM motion information list (LIST FINAL); determine motion information (MI PX) associated with the partition (PX) based on the GPM motion information list (LIST FINAL) and an index value (IDX), wherein the associated motion information (MI PX) contains more than one motion vector; and determine prediction samples of the partition PX based on the associated motion information MI PX.
C2. The decoder of claim Cl, further adapted to perform the steps of any one of claims A2-A26.
DI. A computer program (1843) comprising instructions which when executed by processing circuitry (1802) of a node (1800), causes the node (1800) to perform the method of any one of embodiments A1-A26. D2. A carrier containing the computer program (1843) of embodiment DI, wherein the carrier is one of an electronic signal, an optical signal, a radio signal, and a computer readable storage medium (1842).
[0222] While various embodiments are described herein, it should be understood that they have been presented by way of example only, and not limitation. Thus, the breadth and scope of this disclosure should not be limited by any of the above described exemplary embodiments. Moreover, any combination of the above-described embodiments in all possible variations thereof is encompassed by the disclosure unless otherwise indicated herein or otherwise clearly contradicted by context.
[0223] Additionally, while the processes described above and illustrated in the drawings are shown as a sequence of steps, this was done solely for the sake of illustration. Accordingly, it is contemplated that some steps may be added, some steps may be omitted, the order of the steps may be re-arranged, and some steps may be performed in parallel.

Claims

1. A method for decoding a current block within a current picture inside a coded video bitstream, the method comprising: determining that the current block is coded using geometric partition mode, GPM; in response to determining that the current block is coded using GPM, determining that at least one partition, PX, of the current block is inter coded; in response to determining that at least one partition, PX, is inter coded, generating a GPM motion information list, LIST FINAL; determining motion information, MI PX, associated with the partition, PX, based on the GPM motion information list, LIST FINAL, and an index value, IDX, wherein the associated motion information, MI PX, contains more than one motion vector; and determining prediction samples of the partition PX based on the associated motion information MI PX.
2. The method of claim 1, wherein generating the GPM motion information list,
LIST FINAL, further comprises: generating an initial motion information list, LIST INIT, based on previously decoded blocks; determining whether to apply an extraction process to the initial motion information list, LIST INIT, based on whether a first criterion, Cl, is fulfilled, wherein the extraction process extracts motion information containing only one motion vector; and if the first criterion is fulfilled, performing the extraction process to the initial motion information list, LIST INIT, and setting the GPM motion information list, LIST FINAL, to be an output of the extraction process; and, if the first criterion is not fulfilled, setting the GPM motion information list, LIST FINAL, to be the initial motion information list, LIST INIT.
3. The method of any one of claims 1-2, wherein generating the initial motion information list, LIST INIT, based on previously decoded blocks comprises determining whether to add a candidate motion information to the initial motion information list, LIST INIT, based on whether a difference between a motion vector of the candidate motion information and a motion vector of each of the motion information in the initial motion information list, LIST INIT, is not smaller than a motion vector difference threshold value.
4. The method of claim 3, wherein the motion vector difference threshold value is based on a size of the current block.
5. The method of any one of claims 3-4, wherein the motion vector difference threshold value is set as follows:
If size < SIZE TH, set the motion vector difference threshold value to 1, otherwise, set the motion vector difference threshold value to 16, where size = W*H, for a width, W, of the current block and a height, H, of the current block, and wherein the motion vector difference threshold is given in 1/16-pel precision, and SIZE TH is a size threshold.
6. The method of any one of claims 3-5, wherein the motion vector difference threshold value is based on a picture coding type of the current picture.
7. The method claims of any one of claims 3- 6, wherein the motion vector difference threshold value is set as follows: if size < 256, and a picture coding type of the current picture is a non-low-delay picture, set the motion vector difference threshold value to 1; if size < 256, and a picture coding type of the current picture is a low-delay picture, set the motion vector difference threshold value to 8; and if size > 256, set the motion vector difference threshold value to 16, where size = W*H, for a width, W, of the current block and a height, H, of the current block, and wherein the motion vector difference threshold is given in 1/16-pel precision.
8. The method of any one of claims 1-7, wherein the first criterion, Cl, is based on a size of the current block and/or picture coding type of the current picture.
9. The method of any one of claims 1-8, wherein the first criterion, Cl, is fulfilled when a size of the current block is below a size threshold and the current picture is a non-low-delay picture.
10. The method of any one of claims 1-9, wherein determining motion information, MI PX, associated with the partition, PX, based on the GPM motion information list, LIST FINAL, and the index value, IDX, comprises: determining that a motion vector difference, MVD, information is present for the partition, PX; in response to determining that the MVD information is present for the partition, PX, determining the MVD information; determining a base motion information, BASE MI, based on the GPM motion information list, LIST FINAL, and the index value IDX; and determining a modified motion information, NEW MI, based on the base motion information, BASE MI, and the MVD information.
11. The method of claim 10, wherein determining the modified motion information, NEW MI, based on the base motion information, BASE MI, and the MVD information comprises: determining that the modified motion information, NEW MI, contains only one motion vector, either a L0 motion vector or a LI motion vector; and deriving the modified motion information, NEW MI, based on the corresponding motion vector of the base motion information, BASE MI, and the MVD information, such that the modified motion information, NEW MI, is determined based on the first motion vector, MVO, and the MVD information if the modified motion information, NEW MI, is determined to contain the L0 motion vector, and the modified motion information, NEW MI, is determined based on the second motion vector, MV1, and the MVD information if the modified motion information, NEW MI, is determined to contain the LI motion vector.
12. The method of claim 10, wherein determining the modified motion information, NEW MI, based on the base motion information, BASE MI, and the MVD information comprises: determining that the modified motion information, NEW MI, contains at least a third motion vector, NEW_MV0, and a fourth motion vector, NEW_MV1; and deriving the third motion vector, NEW_MV0, based on the first motion vector, MVO, and the MVD information, and deriving the fourth motion vector, NEW MVl, based on the second motion vector, MV1, and the MVD information.
13. The method of claim 10, wherein determining the modified motion information, NEW MI, based on the base motion information, BASE MI, and the MVD information comprises: determining whether a second criterion, C2, is fulfilled, wherein the base motion information, BASE MI, contains at least a first motion vector, MVO, and a second motion vector, MV 1 ; if the second criterion, C2, is fulfilled, (i) determining that the modified motion information, NEW MI, contains only one motion vector, either a L0 motion vector or a LI motion vector; (ii) deriving the modified motion information, NEW MI, based on the corresponding motion vector of the base motion information, BASE MI, and the MVD information, such that the modified motion information, NEW MI, is determined based on the first motion vector, MVO, and the MVD information if the modified motion information, NEW MI, is determined to contain the L0 motion vector, and the modified motion information, NEW MI, is determined based on the second motion vector, MV1, and the MVD information if the modified motion information, NEW MI, is determined to contain the LI motion vector; and if the second criterion, C2, is not fulfilled, (i) determining that the modified motion information, NEW MI, contains at least a third motion vector, NEW MVO, and a fourth motion vector, NEW_MV1, (ii) deriving the third motion vector, NEW_MV0, based on the first motion vector, MVO, and the MVD information, and (iii) deriving the fourth motion vector, NEW_MV1, based on the second motion vector, MV1, and the MVD information.
14. The method of claim 13, wherein the second criterion, C2, is based on a picture coding type of the current picture.
15. The method of claim 14, wherein the second criterion, C2, is fulfilled when the current picture is a non-low-delay picture and the second criterion, C2, is not fulfilled when the current picture is a low-delay picture.
16. The method of any one of claims 13-15, wherein the second criterion, C2, is further based on whether a magnitude of the MVD information exceeds an MVD threshold.
17. The method of claim 16, wherein the second criterion, C2, is fulfilled when the magnitude of the MVD information exceeds a quarter-pel distance in an x-component or y- component.
18. The method of any one of claims 13-17, wherein, when the second criterion, C2, is fulfilled, the modified motion information, NEW MI, is determined to contain only the LO motion vector when an associated index value, IDX, of the base motion information, BASE MI, is divisible by 2, and otherwise the modified motion information, NEW MI, is determined to contain only the LI motion vector.
19. The method of any one of claims 13-17, wherein, when the second criterion, C2, is not fulfilled, the steps (ii) deriving the third motion vector, NEW MVO, based on the first motion vector, MVO, and the MVD information, and (iii) deriving the fourth motion vector, NEW MVl, based on the second motion vector, MV1, and the MVD information further comprise: determining a reference picture distance value for each of the first motion vector, MVO, and the second motion vector, MV1; determining the MVD information to be applied on top of the motion vector having a larger reference picture distance value of the first motion vector, MVO, and the second motion vector, MV 1 ; determining a scaled version of the MVD information; and applying the scaled version of the MVD information on top of the motion vector having a smaller reference picture distance value of the first motion vector, MVO, and the second motion vector, MV 1.
20. The method of any one of claims 1-19, wherein determining motion information, MI PX, associated with the partition, PX, based on the GPM motion information list, LIST FINAL, and an index value, IDX, comprises: determining that template matching refinement is enabled for the partition, PX; determining a base motion information, BASE MI, based on the GPM motion information list, LIST FINAL, and the index value, IDX; determining a refined motion information, TM MI, based on the base motion information, BASE MI, and a template associated with the current block.
21. The method of claim A20, wherein determining a refined motion information, TM MI, based on the base motion information, BASE MI, and a template associated with the current block comprises: determining that the base motion information, BASE MI, contains at least a first motion vector, MVO, and a second motion vector, MV1; performing uni-template matching motion vector refinement for at least one of the first motion vector, MVO, and the second motion vector, MV1, to find a refined uni-motion vector, NEW_MVO_UNI, and a uni -motion-vector template cost, UNI_COST; performing bi-template matching refinement based on both the first motion vector, MVO, and the second motion vector, MV1, to get a refined first motion vector, NEW MVO BI, and a refined second motion vector, NEW MV1 BI, and a bi-motion-vector template cost, BI COST; determining whether a third criterion, C3 is fulfilled; if the third criterion, C3, is fulfilled, determining refined motion information, MI PX, to only contain one motion vector from the uni-template matching, NEW MVO UNI; and if the third criterion, C3, is not fulfilled, determining refined motion information, MI PX, to contain both refined first motion vector, NEW MVO BI, and refined second motion vector, NEW MV1 BI, from the bi-template matching.
22. The method of claim 21, wherein the third criterion, C3, is based on checking a picture type of the current picture and checking the uni-template cost, UNI COST, and the bi- template cost, BI COST.
23. The method of claim A21, wherein the third criterion, C3, is fulfilled when the current picture is a non-low-delay picture and the bi-template cost, BI COST, is larger than a cost threshold and otherwise the third criterion, C3, is not fulfilled, wherein the cost threshold is a function of the uni-template cost, UNI COST.
24. The method of any one of claims 1-23, further comprising: invoking a refinement process, when the associated motion information, MI PX, contains at least one motion vector, to generate a pair of motion vector refinement parameters (Vx, Vy) for each NxN subblock in the partition, PX; and using the motion vector refinement parameters (Vx, Vy) to refine the prediction samples for the corresponding NxN subblock in the partition PX.
25. The method of claim 24, wherein the refinement process is a bi-directional optimal flow, BDOF, process.
26. The method of claim 24, wherein the refinement process is a decoder-side motion vector refinement, DMVR, process.
27. A decoder adapted to perform the method according to any one of claims 1-26.
28. A computer program (1843) comprising instructions which when executed by processing circuitry (1802) of a node (1800), causes the node (1800) to perform the method of any one of claims 1-26.
29. A carrier containing the computer program (1843) of claim 28, wherein the carrier is one of an electronic signal, an optical signal, a radio signal, and a computer readable storage medium (1842).
EP24789137.7A 2023-04-13 2024-03-26 Enhanced geometrical partitioning mode Pending EP4696015A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202363458988P 2023-04-13 2023-04-13
PCT/SE2024/050274 WO2024215235A1 (en) 2023-04-13 2024-03-26 Enhanced geometrical partitioning mode

Publications (1)

Publication Number Publication Date
EP4696015A1 true EP4696015A1 (en) 2026-02-18

Family

ID=93059823

Family Applications (1)

Application Number Title Priority Date Filing Date
EP24789137.7A Pending EP4696015A1 (en) 2023-04-13 2024-03-26 Enhanced geometrical partitioning mode

Country Status (3)

Country Link
EP (1) EP4696015A1 (en)
CN (1) CN121079979A (en)
WO (1) WO2024215235A1 (en)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102711166B1 (en) * 2018-11-06 2024-09-30 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Position-dependent storage of motion information
US11570442B2 (en) * 2019-06-05 2023-01-31 Qualcomm Incorporated Reducing motion field storage for prediction of video data using non-rectangular prediction modes
US12413737B2 (en) * 2020-04-03 2025-09-09 Nokia Technologies Oy Geometric partitioning merge mode with merge mode with motion vector difference
US12022085B2 (en) * 2021-04-12 2024-06-25 Qualcomm Incorporated Template matching refinement in inter-prediction modes
WO2022222930A1 (en) * 2021-04-22 2022-10-27 Beijing Bytedance Network Technology Co., Ltd. Method, device, and medium for video processing
CN117597922A (en) * 2021-06-28 2024-02-23 北京达佳互联信息技术有限公司 Method and apparatus for geometric partitioning mode utilizing motion vector refinement
KR20240087718A (en) * 2021-09-28 2024-06-19 퀄컴 인코포레이티드 Motion vector difference sign prediction for video coding
WO2023194334A1 (en) * 2022-04-07 2023-10-12 Interdigital Ce Patent Holdings, Sas Video encoding and decoding using reference picture resampling

Also Published As

Publication number Publication date
WO2024215235A1 (en) 2024-10-17
CN121079979A (en) 2025-12-05

Similar Documents

Publication Publication Date Title
US20250317596A1 (en) Predictor candidates for motion compensation
JP2020526066A (en) Multiple predictor candidates for motion compensation
EP2230849A1 (en) Encoding and decoding video data using motion vectors
KR20190084271A (en) Image decoding method and apparatus in video coding system
US12604010B2 (en) Method, device, and medium for video processing
WO2022184052A1 (en) Inter-prediction on non-dyadic blocks
US11758144B2 (en) Method and apparatus for encoding/decoding a video signal based on weighted prediction, and a recording medium storing a bitstream
US12439076B2 (en) Selective subblock-based motion refinement
US20250220157A1 (en) Method, apparatus, and medium for video processing
US20250119570A1 (en) Motion refinement and weighted prediction
EP4696015A1 (en) Enhanced geometrical partitioning mode
US20240276004A1 (en) Method, device, and medium for video processing
US20250142108A1 (en) Motion vector difference derivation
US12531996B2 (en) Enhanced multi-hypothesis prediction
US20240236332A1 (en) Overlapped decoder side motion refinement
WO2025075541A1 (en) Motion vector derivation based on block boundary distortion
WO2025067875A1 (en) Sample value generation
WO2024245299A1 (en) Method, apparatus, and medium for video processing
US20260039812A1 (en) Method, apparatus, and medium for video processing
US20260032253A1 (en) Method, apparatus, and medium for video processing
WO2026005668A1 (en) Obtaining motion compensated prediction samples
US20250386012A1 (en) Method, apparatus, and medium for video processing
US20250254297A1 (en) Enhanced interpolation filtering
US20250220236A1 (en) Method, apparatus, and medium for video processing
WO2025108465A1 (en) Method, apparatus, and medium for video processing

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20251015

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC ME MK MT NL NO PL PT RO RS SE SI SK SM TR