Method and device for video processing and medium

By applying multiple deduplication processes in video encoding and decoding technology to construct a motion vector prediction (MVP) candidate list, the problem of redundant candidates and insufficient diversity is solved, and the encoding and decoding efficiency and effectiveness are improved.

CN120019655APending Publication Date: 2025-05-16DOUYIN VISION CO LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380071760.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-10-08
Filing Date
2023-10-08
Publication Date
2025-05-16

AI Technical Summary

Technical Problem

The existing video encoding and decoding technology has problems of redundant candidates and insufficient diversity in the construction of motion vector prediction (MVP) candidate lists, resulting in low encoding and decoding efficiency and effectiveness.

Method used

By applying multiple deduplication processes, the motion vector prediction (MVP) candidate list of video blocks is determined, and the redundant candidates in the candidate list are avoided and the diversity of the candidate list is improved.

Benefits of technology

Improve the encoding and codec efficiency and effectiveness of video encoding and codec, reduce redundant candidates, and improve the diversity of candidate lists.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120019655A_ABST
    Figure CN120019655A_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure provide a solution for video processing. A method for video processing is presented. The method includes determining a plurality of motion vector prediction (MVP) candidates of a current video block for a conversion between the current video block of the video and a bitstream of the video; determining a candidate list of the current video block by applying a plurality of deduplication processes to the plurality of MVP candidates; and performing a conversion based on the candidate list.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present disclosure relate generally to video processing techniques, and more particularly, to motion candidate list construction. Background Art

[0002] Nowadays, digital video capabilities are being applied to all aspects of people's lives. For video encoding / decoding, various types of video compression technologies have been proposed, such as MPEG-2, MPEG-4, ITU-TH.263, ITU-TH.264 / MPEG-4 Part 10 Advanced Video Codec (AVC), ITU-TH.265 High Efficiency Video Codec (HEVC) standard, and Versatile Video Codec (VVC) standard. However, it is generally expected to further improve the encoding and decoding efficiency of video encoding and decoding technologies. Summary of the invention

[0003] Embodiments of the present disclosure provide a solution for video processing.

[0004] In a first aspect, a method for video processing is proposed. The method includes: determining multiple motion vector prediction (MVP) candidates for the current video block for conversion between a current video block of a video and a bitstream of the video; determining a candidate list for the current video block by applying multiple deduplication processes to the multiple MVP candidates; and performing conversion based on the candidate list. The method according to the first aspect of the present disclosure determines the candidate list for the current video block by applying multiple deduplication processes, thereby avoiding redundant candidates in the candidate list and improving the diversity of the candidate list. This can improve codec efficiency and codec effectiveness.

[0005] In a second aspect, a device for video processing is provided. The device includes a processor and a non-volatile memory having instructions thereon. These instructions, when executed by the processor, cause the processor to perform the method according to the first aspect of the present disclosure.

[0006] In a third aspect, a non-transitory computer-readable storage medium is provided, wherein the non-transitory computer-readable storage medium stores instructions for causing a processor to execute the method according to the first aspect of the present disclosure.

[0007] In a fourth aspect, another non-transitory computer-readable recording medium is provided. The non-transitory computer-readable recording medium stores a bitstream of a video generated by a method performed by an apparatus for video processing. The method includes: determining a plurality of motion vector prediction (MVP) candidates for a current video block of the video; determining a candidate list for the current video block by applying a plurality of deduplication processes to the plurality of MVP candidates; and performing a conversion based on the candidate list. .

[0008] In a fifth aspect, a method for storing a bitstream of a video is provided. The method includes: determining a plurality of motion vector prediction (MVP) candidates for a current video block of the video; determining a candidate list for the current video block by applying a plurality of deduplication processes to the plurality of MVP candidates; generating a bitstream based on the candidate list; and storing the bitstream in a non-transitory computer-readable recording medium.

[0009] This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] The above and other objects, features and advantages of the exemplary embodiments of the present disclosure will become more apparent through the following detailed description with reference to the accompanying drawings. In the exemplary embodiments of the present disclosure, the same reference numerals generally refer to the same components.

[0011] Figure 1 A block diagram illustrating an example video encoding and decoding system is shown according to some embodiments of the present disclosure;

[0012] Figure 2 A block diagram illustrating a first example video encoder is shown according to some embodiments of the present disclosure;

[0013] Figure 3 shows a block diagram illustrating an example video decoder according to some embodiments of the present disclosure;

[0014] Figure 4 The positions of spatial and temporal neighboring blocks used in Advanced Motion Vector Prediction (AMVP) or Merge candidate list construction are shown;

[0015] Figure 5 An example diagram illustrating the locations of non-neighboring candidates in an ECM is shown;

[0016] Figure 6 An example diagram showing template matching performed on a search area around an initial MV;

[0017] Figure 7 An example diagram showing a template and a corresponding reference template;

[0018] Figure 8 An example diagram showing a template of a block with sub-block motion and a reference template using motion information of a sub-block of a current block is shown;

[0019] Fig. 9 An example diagram showing an example of locations of non-adjacent temporal motion vector prediction (TMVP) candidates is shown;

[0020] Fig.10 is an example diagram showing an example of a template;

[0021] Fig.11 A flowchart showing a video processing method according to some embodiments of the present invention; and

[0022] Fig.12 A block diagram illustrating a computing device in which various embodiments of the present disclosure may be implemented is shown.

[0023] Same or similar reference numbers generally refer to same or similar elements throughout the drawings. DETAILED DESCRIPTION

[0024] The principle of the present disclosure will now be described with reference to some embodiments. It should be understood that these embodiments are described only for the purpose of illustrating and helping those skilled in the art to understand and implement the present disclosure, without implying any limitation on the scope of the present disclosure. In addition to the methods described below, the disclosure described herein can also be implemented in various ways.

[0025] In the following description and claims, unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs.

[0026] References in this disclosure to "one embodiment," "an embodiment," "an example embodiment," and the like indicate that the described embodiment may include a particular feature, structure, or characteristic, but not every embodiment must include the particular feature, structure, or characteristic. Furthermore, these phrases do not necessarily refer to the same embodiment. Furthermore, when a particular feature, structure, or characteristic is described in conjunction with an example embodiment, it is claimed that such feature, structure, or characteristic, whether or not explicitly described, is within the knowledge of those skilled in the art to affect correlation with other embodiments.

[0027] It should be understood that, although the terms "first" and "second" etc. may be used herein to describe various elements, these elements should not be limited to these terms. These terms are only used to distinguish one element from another element. For example, a first element may be referred to as a second element, and similarly, a second element may be referred to as a first element without departing from the scope of the exemplary embodiments. As used herein, the term "and / or" includes any and all combinations of one or more of the listed terms.

[0028] The terms used herein are only used for the purpose of describing specific embodiments and are not intended to limit the exemplary embodiments. As used herein, the singular forms "a", "an" and "the" are also intended to include plural forms unless the context clearly indicates otherwise. It should also be understood that the terms "include", "comprises", "has", "has", "includes" and / or "comprising" are used herein to indicate the presence of the features, elements and / or components, etc., but do not exclude the presence or addition of one or more other features, elements, components and / or combinations thereof. Example Environment

[0029] Figure 1 1 is a block diagram illustrating an example video codec system 100 that may utilize the techniques of the present disclosure. As shown, the video codec system 100 may include a source device 110 and a destination device 120. The source device 110 may also be referred to as a video encoding device, and the destination device 120 may also be referred to as a video decoding device. In operation, the source device 110 may be configured to generate encoded video data, and the destination device 120 may be configured to decode the encoded video data generated by the source device 110. The source device 110 may include a video source 112, a video encoder 114, and an input / output (I / O) interface 116.

[0030] The video source 112 may include a source such as a video acquisition device. Examples of a video acquisition device include, but are not limited to, an interface for receiving video data from a video content provider, a computer graphics system for generating video data, and / or a combination thereof.

[0031] The video data may include one or more pictures. The video encoder 114 encodes the video data from the video source 112 to generate a bitstream. The bitstream may include a bit sequence that forms a coded representation of the video data. The bitstream may include coded pictures and associated data. The coded pictures are coded representations of pictures. The associated data may include sequence parameter sets, picture parameter sets, and other grammatical structures. The I / O interface 116 may include a modulator / demodulator and / or a transmitter. The coded video data may be directly transmitted to the destination device 120 via the network 130A via the I / O interface 116. The coded video data may also be stored on a storage medium / server 130B for access by the destination device 120.

[0032] The destination device 120 may include an I / O interface 126, a video decoder 124, and a display device 122. The I / O interface 126 may include a receiver and / or a modem. The I / O interface 126 may obtain encoded video data from the source device 110 or the storage medium / server 130B. The video decoder 124 may decode the encoded video data. The display device 122 may display the decoded video data to the user. The display device 122 may be integrated with the destination device 120, or may be outside the destination device 120, which is configured to be connected to an external display device interface.

[0033] The video encoder 114 and the video decoder 124 may operate according to a video compression standard, such as the High Efficiency Video Codec (HEVC) standard, the Versatile Video Codec (VVC) standard, and other existing and / or future standards.

[0034] Figure 2 is a block diagram showing an example of a video encoder 200 according to some embodiments of the present disclosure, which may be Figure 1 An example of a video encoder 114 in the system 100 is shown.

[0035] Video encoder 200 may be configured to implement any or all of the techniques of this disclosure. Figure 2 In the example of , video encoder 200 includes multiple functional components. The techniques described in this disclosure can be shared between the various components of video encoder 200. In some examples, a processor can be configured to perform any or all of the techniques described in this disclosure.

[0036] In some embodiments, the video encoder 200 may include a segmentation unit 201, a prediction unit 202, a residual generation unit 207, a transformation unit 208, a quantization unit 209, an inverse quantization unit 210, an inverse transformation unit 211, a reconstruction unit 212, a cache 213 and an entropy coding unit 214, and the prediction unit 202 may include a mode selection unit 203, a motion estimation unit 204, a motion compensation unit 205 and an intra-frame prediction unit 206.

[0037] In other examples, the video encoder 200 may include more, fewer, or different functional components. In one example, the prediction unit 202 may include an intra-block copy (IBC) unit. The IBC unit may perform prediction in an IBC mode in which at least one reference picture is a picture in which the current video block is located.

[0038] Furthermore, although some components (such as the motion estimation unit 204 and the motion compensation unit 205) may be integrated, for the purpose of explanation, these components are described in detail below. Figure 2are shown separately in the example.

[0039] The partitioning unit 201 may partition a picture into one or more video blocks. The video encoder 200 and the video decoder 300 may support various video block sizes.

[0040] The mode selection unit 203 may select one of a plurality of encoding modes (intra-frame encoding or inter-frame encoding), for example, based on the error result, and provide the generated intra-frame encoded block or inter-frame encoded block to the residual generation unit 207 to generate residual block data, and to the reconstruction unit 212 to reconstruct the encoded block for use as a reference picture. In some examples, the mode selection unit 203 may select a combined intra-frame and inter-frame prediction (CIIP) mode in which the prediction is based on an inter-frame prediction signal and an intra-frame prediction signal. In the case of inter-frame prediction, the mode selection unit 203 may also select a resolution for the motion vector (e.g., sub-pixel precision or integer pixel precision) for the block.

[0041] To perform inter-frame prediction on the current video block, the motion estimation unit 204 may generate motion information for the current video block by comparing the current video block with one or more reference frames from the cache 213. The motion compensation unit 205 may determine a predicted video block for the current video block based on the motion information and decoded samples of pictures from the cache 213 other than the picture associated with the current video block.

[0042] The motion estimation unit 204 and the motion compensation unit 205 may perform different operations on the current video block, for example, depending on whether the current video block is in an I slice, a P slice, or a B slice. As used herein, an "I slice" may refer to a portion of a picture consisting of macroblocks, all of which are based on macroblocks within the same picture. Furthermore, as used herein, in some aspects, a "P slice" and a "B slice" may refer to a portion of a picture consisting of macroblocks that are independent of macroblocks in the same picture.

[0043] In some examples, the motion estimation unit 204 may perform unidirectional prediction on the current video block, and the motion estimation unit 204 may search the reference pictures of list 0 or list 1 to find the reference video block for the current video block. The motion estimation unit 204 may then generate a reference index and a motion vector, the reference index indicating the reference picture in list 0 or list 1 containing the reference video block, and the motion vector indicating the spatial displacement between the current video block and the reference video block. The motion estimation unit 204 may output the reference index, the prediction direction indicator, and the motion vector as the motion information of the current video block. The motion compensation unit 205 may generate a predicted video block for the current video block based on the reference video block indicated by the motion information of the current video block.

[0044] Alternatively, in other examples, the motion estimation unit 204 may perform bidirectional prediction on the current video block. The motion estimation unit 204 may search the reference pictures in list 0 to find a reference video block for the current video block, and may also search the reference pictures in list 1 to find another reference video block for the current video block. The motion estimation unit 204 may then generate a plurality of reference indexes and a plurality of motion vectors, the plurality of reference indexes indicating a plurality of reference pictures in list 0 and list 1 containing a plurality of reference video blocks, and the plurality of motion vectors indicating a plurality of spatial displacements between the plurality of reference video blocks and the current video block. The motion estimation unit 204 may output the plurality of reference indexes and the plurality of motion vectors of the current video block as the motion information of the current video block. The motion compensation unit 205 may generate a predicted video block for the current video block based on the plurality of reference video blocks indicated by the motion information of the current video block.

[0045] In some examples, motion estimation unit 204 may output a complete set of motion information for use in a decoding process by a decoder. Alternatively, in some embodiments, motion estimation unit 204 may signal motion information of a current video block with reference to motion information of another video block. For example, motion estimation unit 204 may determine that motion information of a current video block is sufficiently similar to motion information of a neighboring video block.

[0046] In one example, motion estimation unit 204 may indicate a value in a syntax structure associated with the current video block that indicates to video decoder 300 that the current video block has the same motion information as another video block.

[0047] In another example, the motion estimation unit 204 may identify another video block and a motion vector difference (MVD) in a syntax structure associated with the current video block. The motion vector difference indicates the difference between the motion vector of the current video block and the motion vector of the indicated video block. The video decoder 300 may use the motion vector of the indicated video block and the motion vector difference to determine the motion vector of the current video block.

[0048] As discussed above, the video encoder 200 may signal motion vectors in a predictive manner.Two examples of prediction signaling techniques that may be implemented by the video encoder 200 include Advanced Motion Vector Prediction (AMVP) and Merge mode signaling.

[0049] The intra prediction unit 206 may perform intra prediction on the current video block. When the intra prediction unit 206 performs intra prediction on the current video block, the intra prediction unit 206 may generate prediction data for the current video block based on decoded samples of other video blocks in the same picture. The prediction data for the current video block may include a prediction video block and various syntax elements.

[0050] The residual generation unit 207 can generate residual data for the current video block by subtracting (e.g., indicated by a minus sign) the predicted video block(s) of the current video block from the current video block. The residual data of the current video block may include residual video blocks corresponding to different sample components of samples in the current video block.

[0051] In other examples, such as in skip mode, there may be no residual data for the current video block, and the residual generation unit 207 may not perform a subtraction operation.

[0052] Transform processing unit 208 may generate one or more transform coefficient video blocks for a current video block by applying one or more transforms to the residual video block associated with the current video block.

[0053] After transform processing unit 208 generates a transform coefficient video block associated with the current video block, quantization unit 209 may quantize the transform coefficient video block associated with the current video block based on one or more quantization parameter (QP) values ​​associated with the current video block.

[0054] The inverse quantization unit 210 and the inverse transform unit 211 may apply inverse quantization and inverse transform to the transform coefficient video block, respectively, to reconstruct a residual video block from the transform coefficient video block. The reconstruction unit 212 may add the reconstructed residual video block to corresponding samples from one or more prediction video blocks generated by the prediction unit 202 to generate a reconstructed video block associated with the current video block for storage in the buffer 213.

[0055] After reconstruction unit 212 reconstructs the video block, a loop filtering operation may be performed to reduce video blocking artifacts in the video block.

[0056] The entropy encoding unit 214 may receive data from other functional components of the video encoder 200. When the entropy encoding unit 214 receives the data, the entropy encoding unit 214 may perform one or more entropy encoding operations to generate entropy-encoded data and output a bitstream including the entropy-encoded data.

[0057] Figure 3 is a block diagram showing an example of a video decoder 300 according to some embodiments of the present disclosure, which may be Figure 1 An example of a video decoder 124 in the system 100 is shown.

[0058] Video decoder 300 may be configured to perform any or all of the techniques of this disclosure. Figure 3In the example of , video decoder 300 includes multiple functional components. The techniques described in this disclosure can be shared between the various components of video decoder 300. In some examples, a processor can be configured to perform any or all of the techniques described in this disclosure.

[0059] exist Figure 3 In the example of , the video decoder 300 includes an entropy decoding unit 301, a motion compensation unit 302, an intra prediction unit 303, an inverse quantization unit 304, an inverse transform unit 305, and a reconstruction unit 306 and a buffer 307. In some examples, the video decoder 300 can perform a decoding process that is generally opposite to the encoding process described with respect to the video encoder 200.

[0060] The entropy decoding unit 301 can retrieve the encoded bitstream. The encoded bitstream may include entropy encoded video data (e.g., encoded blocks of video data). The entropy decoding unit 301 can decode the entropy encoded video data, and the motion compensation unit 302 can determine motion information from the entropy decoded video data, the motion information including motion vectors, motion vector precision, reference picture list indexes, and other motion information. The motion compensation unit 302 can determine such information, for example, by performing AMVP and Merge mode. AMVP is used, including deriving several most likely candidates based on data and reference pictures from adjacent PBs. The motion information typically includes horizontal motion vector displacement values ​​and vertical motion vector displacement values, one or two reference picture indexes, and in the case of prediction areas in B strips, also includes an identification of which reference picture list is associated with each index. As used herein, in some aspects, "Merge mode" may refer to deriving motion information from spatial neighboring blocks or temporal neighboring blocks.

[0061] The motion compensation unit 302 may generate a motion compensated block, possibly performing interpolation based on an interpolation filter.Identifiers for the interpolation filters used with sub-pixel precision may be included in the syntax elements.

[0062] The motion compensation unit 302 may calculate interpolated values ​​for sub-integer pixels of a reference block using interpolation filters used by the video encoder 200 during encoding of the video block. The motion compensation unit 302 may determine the interpolation filters used by the video encoder 200 based on received syntax information, and the motion compensation unit 302 may use the interpolation filters to generate a prediction block.

[0063] The motion compensation unit 302 may use at least part of the syntax information to determine the size of blocks used to encode (multiple) frames and / or (multiple) slices of the encoded video sequence, partition information describing how each macroblock of a picture of the encoded video sequence is partitioned, a mode indicating how each partition is encoded, one or more reference frames (and reference frame lists) for each inter-coded block, and other information for decoding the encoded video sequence. As used herein, in some aspects, a "slice" may refer to a data structure that can be decoded independently of other slices of the same picture in terms of entropy coding and decoding, signal prediction, and residual signal reconstruction. A slice may be an entire picture, or it may be a region of a picture.

[0064] The intra prediction unit 303 may use, for example, an intra prediction mode received in the bitstream to form a prediction block from spatially neighboring blocks. The inverse quantization unit 304 inverse quantizes (i.e., dequantizes) the quantized video block coefficients provided in the bitstream and decoded by the entropy decoding unit 301. The inverse transform unit 305 applies an inverse transform.

[0065] The reconstruction unit 306 may obtain the decoded block, for example, by adding the residual block to the corresponding prediction block generated by the motion compensation unit 302 or the intra prediction unit 303. If necessary, a deblocking filter may also be applied to filter the decoded block to remove blocking artifacts. The decoded video block is then stored in a buffer 307, which provides reference blocks for subsequent motion compensation / intra prediction, and the buffer 307 also generates the decoded video for presentation on a display device.

[0066] Some exemplary embodiments of the present disclosure will be described in detail below. It should be noted that the section titles used in this document are for ease of understanding, and the embodiments disclosed in the section are not limited to that section. In addition, although some embodiments are described with reference to multifunctional video codecs or other specific video codecs, the disclosed technology is also applicable to other video coding and decoding technologies. In addition, although some embodiments describe the video encoding steps in detail, it should be understood that the corresponding decoding steps of de-encoding will be implemented by the decoder. In addition, the term video processing includes video encoding or compression, video decoding or decompression, and video transcoding, in which video pixels are represented from one compression format to another compression format or at different compression bit rates. 1. Brief Overview The present disclosure relates to video coding technology. Specifically, it is about a motion vector prediction (MVP) construction method in video coding. This concept can be applied to any video coding standard or non-standard video codec alone or in various combinations. 2. Introduction The exponential growth of multimedia data has brought severe challenges to video coding and decoding. In order to meet the growing demand for more efficient compression technology, ITU-T and ISO / IEC have developed a series of video coding and decoding standards in the past few decades. Specifically, ITU-T developed H.261 and H.263, ISO / IEC developed MPEG-1 and MPEG-4 video, and the two organizations jointly developed H.262 / MPEG-2 video, H.264 / MPEG-4 Advanced Video Codec (AVC), H.265 / HEVC and the latest VVC standards. Starting with H.262 / MPEG-2, a hybrid video coding and decoding framework was adopted, in which intra / inter prediction plus transform coding and decoding were used. Figure 4 A diagram 400 showing the locations of spatial and temporal neighboring blocks used in AMVP / Merge candidate list construction is shown. 2.1. MVP in video encoding and decoding Inter-frame prediction aims to remove the temporal redundancy between adjacent frames, which is an indispensable part of the hybrid video coding framework. Specifically, inter-frame prediction uses the content specified by the motion vector (MV) as the predicted version of the current block to be coded, so that only the residual signal and motion information are transmitted in the bitstream. In order to reduce the cost of MV signaling, motion vector prediction (MVP) has emerged as an effective mechanism for transmitting motion information. Early strategies simply used the MV of the specified neighboring block or the median MV of the neighboring block as the MVP. In H.265 / HEVC, a competition mechanism is involved, in which the optimal MVP is selected from multiple candidates through rate-distortion optimization (RDO). In particular, the Advanced MVP (AMVP) mode and the Merge mode are designed to have different motion information signaling strategies. In the AMVP mode, the reference index, the reference AMVP candidate list, and the MVP candidate index of the motion vector difference (MVD) are transmitted by signal. As for the Merge mode, only the Merge index of the reference Merge candidate list is transmitted by signal, and all motion information associated with the Merge candidate is inherited. Both the AMVP mode and the Merge mode require the construction of an MVP candidate list. The details of the construction process of these two modes are described as follows. AMVP mode: AMVP uses the spatial-temporal correlation of motion vectors with neighboring blocks for explicit transmission of motion parameters. For each reference picture list, a motion vector candidate list is constructed by first checking the availability of the left and upper temporal neighbors, removing redundant candidates and adding zero vectors to make the candidate list length constant. For spatial motion vector candidate derivation, such as Figure 4As shown in FIG. 1 , two motion vector candidates are finally derived based on the motion vectors of blocks located at five different positions. The five neighboring blocks located at B0, B1, B2 and A0, A1 are divided into two groups, where group A includes the three spatial neighboring blocks above and group B includes the two spatial neighboring blocks on the left. In a predefined order, the two motion vector candidates are derived from the first available candidates in group A and group B, respectively. For the derivation of temporal motion vector candidates, as shown in FIG. Figure 4 As shown, a motion vector candidate is derived based on two different co-located positions (lower right (C0) and center (C1)) checked in sequence. To avoid MV candidate redundancy, repeated motion vector candidates in the list are discarded. If the number of potential candidates is less than two, an additional zero motion vector candidate is added to the list. Figure 5 Diagram 500 shows the locations of non-neighboring candidates in an ECM. Merge mode: Similar to the AMVP mode, the MVP candidate list for the Merge mode also includes spatial candidates and temporal candidates. For spatial motion vector candidate derivation, after performing availability and redundancy checks, up to four candidates are selected in the order of A1, B1, B0, A0 and B2. For temporal Merge candidate (TMVP) derivation, up to one candidate is selected from two temporal neighboring blocks (C0 and C1). When there are not enough Merge candidates using spatial candidates and temporal candidates, the combined bidirectional prediction Merge candidate and zero MV candidate are added to the MVP candidate list. Once the number of available Merge candidates reaches the maximum allowed number transmitted by signal, the Merge candidate list construction process is terminated. In VVC, the construction process for Merge mode is further improved by introducing history-based MVP (HMVP), which combines the motion information of previously coded blocks that may be far away from the current block. In VVC, HMVP Merge candidates are appended to the Merge list, after the spatial MVP and TMVP. In this method, the motion information of previously coded blocks is stored in a table and used as the MVP for the current CU. During the encoding / decoding process, a table with multiple HMVP candidates is maintained using a first-in-first-out strategy. Whenever there is a non-sub-block inter-coded CU, the associated motion information is added to the last entry of the table as a new HMVP candidate. During the VVC standardization process, non-adjacent MVP was proposed to promote better motion information derivation by adopting non-adjacent regions. In ECM software, non-adjacent MVP is inserted between TMVP and HMVP, where the distance between non-adjacent spatial candidates and the current codec block is based on the width and height of the current codec block, such as Figure 5 2.2. Interpolation filter in VVC In VVC, interpolation filters are used in both intra-frame and inter-frame coding and decoding processes. Intra-frame coding and decoding utilizes interpolation filters to generate fractional positions in angular prediction mode. In HEVC, a 2-tap linear interpolation filter is used to generate intra-frame prediction blocks in directional prediction mode (i.e., excluding plane and DC predictors). In VVC, a four-tap intra-frame interpolation filter is used to improve the accuracy of angular intra-frame prediction. Specifically, two sets of 4-tap interpolation filters are used in VVC intra-frame coding and decoding, which are DCT-based interpolation filters (DCTIF) and smoothing interpolation filters (SIF). DCTIF is constructed in the same way as used for chrominance component motion compensation in HEVC and VVC. SIF is obtained by convolving a 2-tap linear interpolation filter with a [1 21] / 4 filter. In VVC, the highest precision of motion vectors explicitly transmitted through signals is quarter luma sample. In some inter-frame prediction modes (such as affine mode), motion vectors are derived with 1 / 16 luma sample precision, and motion compensated prediction is performed with 1 / 16 sample precision. VVC allows different MVD precisions, ranging from 1 / 16 luma sample to 4 luma samples. For half luma sample precision, a 6-tap interpolation filter is used. For other fractional precisions, the default 8-tap filter is used. In addition, a bilinear interpolation filter is used to generate fractional samples for the search process of decoder-side motion vector refinement (DMVR) in VVC. 2.3. Template matching Merge / AMVP mode in ECM Template Matching (TM) Merge / AMVP mode is a decoder-side MV derivation method that refines the motion information of the current CU by finding the closest match between a template in the current picture (i.e., the neighboring blocks above and / or to the left of the current CU) and a block in the reference picture (i.e., the same size as the template). Figure 6 As shown, a better MV is searched around the initial motion of the current CU within the [-8, +8] pixel search range. Figure 6 An example diagram 600 showing template matching performed on a search area around an initial MV is shown. In AMVP mode, MVP candidates are determined based on template matching error to select the MVP candidate that achieves the minimum difference between the current block and the reference block template, and then TM performs MV refinement only for this specific MVP candidate. TM refines this MVP candidate starting from full-pixel MVD accuracy (or 4-pixel AMVR mode) in the [–8, +8] pixel search range using iterative diamond search. The AMVP candidate can be further refined by using a cross search with full-pixel MVD accuracy (or 4-pixel AMVR mode), followed by half-pixel and quarter-pixel searches according to the AMVR mode. This search process ensures that the MVP candidate still maintains the same MV accuracy as indicated by the adaptive motion vector resolution (AMVR) mode after TM processing. In Merge mode, a similar search method is applied to the Merge candidates indicated by the Merge index. TMMerge can be performed all the way down to 1 / 8 pixel MVD accuracy, or skip accuracy beyond half-pixel MVD accuracy, depending on whether an alternative interpolation filter (used when AMVR is in half-pixel mode) is used to merge motion information. In addition, when TM mode is enabled, template matching can be performed as an independent process between block-based and sub-block-based bilateral matching (BM) methods or as an additional MV refinement process, depending on whether BM can be enabled according to the enable condition check. When BM and TM are enabled on a CU at the same time, the search process of TM will stop at half-pixel MVD accuracy, and the resulting MV will be further refined by using the same model-based MVD derivation method as in DMVR. 2.4. Adaptive Reordering of Merge Candidates (ARMC) Inspired by the spatial correlation between reconstructed neighboring pixels and the current codec block, Adaptive Reordering of Merge Candidates (ARMC) is proposed to refine the candidate order in a given candidate list. The basic assumption is that candidates with lower template matching cost have a higher probability of being selected by the RDO process and should therefore be placed at the front of the list to reduce signaling cost. This reordering method is applied to the normal Merge mode, the Template Matching (TM) Merge mode and the Affine Merge mode (excluding SbTMVP candidates). For the TM Merge mode, the Merge candidates are reordered before the refinement process. After constructing the Merge candidate list, the Merge candidates are divided into several subgroups. The subgroup size is set to 5. The Merge candidates in each subgroup are reordered in ascending order according to the cost value based on template matching. For simplicity, the Merge candidates in the last subgroup but not in the first subgroup are not reordered. The template matching cost is measured by the sum of absolute differences (SAD) between the samples of the template of the current block and its corresponding reference template. The template consists of a set of reconstructed samples adjacent to the current block, while the reference template is located by the same motion information of the current block, such as Figure 7 When the Merge candidate uses bidirectional prediction, the reference samples of the template of the Merge candidate are also generated by bidirectional prediction. Figure 7 Diagram 700 of a template and a corresponding reference template is shown. Figure 8 Diagram 800 shows a template of a block with sub-block motion and a reference template using motion information of a sub-block of a current block. For a sub-block-based Merge candidate with a sub-block size equal to Wsub*Hsub, the upper template includes several sub-templates of size Wsub×1, and the left template includes several sub-templates of size 1×Hsub. Figure 8 As shown, the motion information of the sub-block in the first row and first column of the current block is used to derive the reference sample of each sub-template. Fig. 9 An example diagram 900 is shown for the locations of non-adjacent TMVP candidates. 2.5. Enhanced MVP Candidate Derivation (EMCD) An EMCD based on template matching cost re-ranking is proposed. Instead of constructing the MVP list based on a predefined traversal order, a method is studied to optimize the MVP selection by utilizing the matching cost in the reconstructed template region so that more suitable candidates are included in the list. It should be noted that the proposed MVP list construction strategy can be used in the normal Merge and AMVP list construction process, and can also be easily extended to other modules that require MVP derivation, such as Merge with Motion Vector Difference (MMVD), affine motion compensation, sub-block based temporal motion vector prediction (SbTMVP), etc. Non-adjacent TMVP 1. It is proposed to utilize TMVP in non-adjacent areas to further improve the effectiveness of the MVP list. a) In one example, the non-adjacent region may be any block (eg, a 4×4 block) in the reference picture and is neither located inside the co-located block in the reference picture of the current block nor adjacent to the co-located block of the current block. b) In one example, the positions of non-adjacent TMVP candidates are as follows: Fig. 9As shown, the black blocks represent potential non-adjacent TMVP positions. It should be noted that this figure only provides examples for non-adjacent TMVPs, and the positions are not limited to the indicated blocks. In other cases, the non-adjacent TMVP can be located at any other position in one or more reconstructed frames. 2. The maximum number of non-adjacent TMVPs allowed in the MVP list may be signaled in the bitstream. a) In one example, the maximum allowed number may be signaled in the SPS or PPS. 3. Non-neighboring TMVP candidates may be located in the closest reconstructed frame, but they may also be located in other reconstructed frames. a) Alternatively, non-neighboring TMVP candidates may be located in co-located pictures. b) Alternatively, by signaling in which picture the non-adjacent TMVP candidates may be located. 4. Non-adjacent TMVP candidates can be located in multiple reference pictures. Fig.10 An example diagram 1000 of a template is shown. 5. The distance between the non-neighboring region associated with the TMVP candidate and the current codec block may be related to the properties of the current block. a) In one example, the distance depends on the width and height of the current codec block. b) In other cases, the distance may be signaled as a constant in the bit stream. Template definition 6. The template represents the reconstruction region, which can be used to estimate the priority of MVP candidates. The region can be located in different positions and have variable shapes. a) In one example, the template may include reconstruction regions in three locations, namely, the top pixel, the left pixel, and the top-left pixel, as Fig.10 shown. b) It should be noted that the template does not have to be rectangular in shape, it can be any shape, such as a triangle or a polygon. c) In one example, template regions can be utilized individually or in combination. d) A template may include samples from only one component (eg, luma) or from multiple components (eg, luma and chroma). 7. The template may have to be located in the current frame, it may be located in any other reconstructed frame. 8. In one example, MV can be used to locate a reference template region having the same shape as the template of the current block, such as Figure 7 shown. 9. In one example, the template may not necessarily be located in the adjacent area, it may be located in a non-adjacent area far away from the current block. 10. In one example, the template may not necessarily contain all pixels in a particular region, it may contain a portion of the pixels in the region. MVP candidate ranking based on template matching 11. In the present disclosure, the template matching cost associated with a certain MVP candidate is used as a metric to evaluate the consistency of the candidate with the true motion information. Based on this metric, a more efficient order is generated by sorting the priority of each MVP candidate. a) In one example, the template matching cost C is evaluated using the mean square error (MSE) and is calculated as follows: Where T represents the template area, and RT represents the corresponding reference template area specified by the MV in the MVP candidate (Figure 7), N is the number of pixels in the template. b) In one example, the template matching cost may be evaluated using squared error (SSE), sum of absolute difference (SAD), sum of absolute transformed difference (SATD), or any other criterion that can measure the difference between two regions. 12. Sort all candidate MVPs in ascending order according to the corresponding template matching costs, and traverse the candidate sequence in the sorted order to build an MVP list until the number of MVPs reaches the maximum allowed number. In this way, candidates with lower matching costs have higher priority and are included in the final MVP list. a) In one example, a ranking process may be performed on all MVP candidates. b) Alternatively, this process can also be applied to a portion of the candidates, such as non-adjacent MVP candidates, HMVP candidates or any other group of candidates. c) Alternatively, furthermore, the categories of MVP candidates that should be reordered (e.g., non-adjacent MVP candidates belong to one category and HMVP candidates belong to another category) and / or the type of candidate groups that should be reordered may depend on decoded information, such as block size / coding method (e.g., CIIP / MMVD) and / or how many MVP candidates are available before reordering for a given category / group. 1. In one example, the ranking process may be performed on a joint group of MVP candidates containing only one category. 2. In one example, the ranking process may be performed on a joint group of MVP candidates containing more than one category. a) In one example, for a first encoding / decoding method (eg, conventional / CIIP / MMVD / GPM / TPM / Sub-block Merge mode), the sorting process can be performed on the joint group of non-adjacent MVP, non-adjacent TMVP and HMVP candidates. For the second encoding and decoding method (e.g., template matching Merge mode), the sorting process can be performed on the joint group of adjacent MVP, non-adjacent TMVP, non-adjacent MVP and HMVP candidates. b) Alternatively, for the first coding method (e.g., conventional / CIIP / MMVD / GPM / TPM / sub-block Merge mode), the sorting process can be performed on the joint group of non-adjacent MVP and HMVP candidates. For the second coding method (e.g., template matching Merge mode), the sorting process can be performed on the joint group of adjacent MVP, non-adjacent MVP and HMVP candidates. 3. In one example, a ranking process may be performed on a joint group containing a portion of available MVP candidates within a category. a) In one example, for the Normal / CIIP / MMVD / TM / GPM / TPM / Sub-Block Merge modes, or for the Normal / Affine AMVP modes, a ranking process may be performed on a joint group of all or part of the candidates from one or more categories. 4. In the above example, the categories could be: i. Adjacent neighboring MVP; ii. adjacent neighboring MVPs at a particular location(s); iii.TMVP MVP; iv.HMVP MVP; v. Non-adjacent MVP; vi. Constructed MVP (e.g. paired MVP); vii. Inherited affine MV candidates; viii. Constructed affine MV candidates; ix.SbTMVP candidate. d) In one example, this process can be performed multiple times for different candidate sets. 1. For example, a set of candidates (such as non-adjacent MVP candidates) can be sorted, and the N non-adjacent MVP candidates with the lowest cost can be put into a candidate list. After the entire candidate list is constructed, the cost of the candidates in the list can be calculated, and the candidates can be re-sorted based on the cost. 13. It is proposed that the MVP list construction process may involve re-ranking of single groups / categories and re-ranking of joint groups containing candidates from more than one category. a) In one example, the joint group may include candidates from the first category and the second category. 1. Alternatively, furthermore, the first category and the second category may be defined as non-adjacent MVP categories and HMVP categories. 2. Alternatively, furthermore, the first category and the second category may be defined as non-adjacent MVP category and HMVP category, and the joint group may include candidates from a third category (eg, TMVP category). b) In one example, a single group may include candidates from the fourth category. 1. Alternatively, in addition, a fourth category may be defined as the adjacent MVP category. 14. Multiple groups or categories can be reordered separately to build the MVP list. a) In one example, only a single group (all candidates belong to one category, eg, adjacent MVP, non-adjacent MVP, HMVP, etc.) is constructed and re-ranked during the MVP list construction process. b) In one example, only one joint group (containing some or all candidates from multiple categories) is constructed and re-ranked during the MVP list construction process. c) In one example, more than one group (whether a single group or a combined group) is separately constructed and reordered during the MVP list construction process. 1. In one example, two or more individual groups are constructed and reordered separately during the MVP list construction process. 2. In one example, two or more joint groups are constructed and reordered separately during the MVP list construction process. 3. In one example, one or more single groups and one or more joint groups are reordered separately during the MVP list construction process. a) In one example, a single group and a joint group are constructed and reordered to construct MVP list. b) In one example, a single group and multiple joint groups are constructed and reordered to construct MVP list. c) In one example, multiple single groups and a joint group are constructed and reordered to construct MVP list. d) In one example, multiple single groups and multiple joint groups are constructed and reordered to construct MVP list. d) In one example, candidates belonging to the same category may be divided into different groups and re-ranked in the corresponding groups, respectively. e) In one example, only some of the candidates in a particular category are put into a single group or a joint group, and the remaining candidates in the category are not re-ranked. f) In the above example, the categories could be: 1. Adjacent MVP; 2. Adjacent neighboring MVPs at a specific location(s); 3.TMVP MVP; 4.HMVP MVP; 5. Non-adjacent MVPs; 6. Constructed MVP (such as paired MVP); 7. Inherited affine MV candidates; 8. Constructed affine MV candidates; 9.SbTMVP candidate. 15. The proposed ranking method can also be applied to the AMVP model. a) In one example, the MVP in the AMVP mode can utilize non-adjacent MVP, non-adjacent TMVP, and HMVP to expand. b) In one example, the MVP list for AMVP mode includes K candidates selected from M categories, such as adjacent MVP, non-adjacent MVP, non-adjacent TMVP, and HMVP, where K and M are integers. 1. In one example, K may be less than M, or equal to M, or greater than M. 2. In one example, one candidate is selected from each category. 3. Alternatively, for a given category, no candidate is selected. 4. Alternatively, for a given category, more than 1 candidate is selected. 5. In one example, the MVP list for the AMVP mode includes 4 candidates, selected from adjacent MVP, non-adjacent MVP, non-adjacent TMVP and HMVP. 6. In one example, the MVP candidates of each category are sorted separately using the template matching cost, and the MVP candidate with the minimum cost in the corresponding category is selected and included in the MVP list. 7. Alternatively, the joint group of non-adjacent MVP, non-adjacent TMVP and HMVP candidates and the adjacent MVP candidates are sorted using template matching cost respectively. One adjacent candidate with the minimum template matching cost is selected from the adjacent MVP candidates, and the other three candidates are derived by traversing the candidates in the joint group in ascending order of template matching cost. 8. In one example, the MVP list for the AMVP mode includes 2 candidates, one from the adjacent MVP and the other from the non-adjacent MVP, non-adjacent TMVP or HMVP. Specifically, the joint group of non-adjacent MVP, non-adjacent TMVP and HMVP and the adjacent MVP candidates are sorted together using the template matching cost, and the MVP candidate with the minimum cost in the corresponding category (or group) is included in the MVP list. 16. The proposed sorting method can be applied to other coding and decoding methods, for example, to construct a list of block vectors for blocks coded and decoded by IBC. a) In one example, it can be used for affine coded blocks. b) Alternatively, furthermore, how the template cost is defined may depend on the encoding and decoding method. 17. The use of this method can utilize different codec level syntax controls, including but not limited to one or more of PU, CU, CTU, slice, picture, and sequence levels. 18. About how to insert the sorted candidates into the MVP list. a) In one example, which candidates within the joint group or the individual groups are included in the MVP list depends on the ranking result of the template matching cost. b) In one example, whether to put candidates in a separate group or a joint group into the MVP list depends on the ranking result of the template matching cost. c) In one example, how many candidates within a single group or a joint group are included into the MVP list depends on the ranking result of the template matching cost. 1. In one example, only one candidate with the minimum template matching cost is included in the MVP list. 2. In one group, the top N candidates in ascending order with respect to template matching cost are included in the MVP list, where N is the maximum allowed number of candidates that can be inserted into the MVP list in the corresponding single group or joint group. a) In one example, for each single group or joint group, N may be a predefined constant. b) Alternatively, N can be adaptively derived based on the template matching cost within a single group or a joint group. c) Alternatively, N may be signaled in the bit stream. d) In one example, different candidate groups share the same N value. e) Alternatively, different single groups or joint groups may have different N values. Deduplication of MVP candidates 19. Deduplication of MVP candidates aims to increase the diversity within the MVP list, which can be achieved by using appropriate thresholds TH to achieve this. a) In one example, if two candidates point to the same reference frame, they may both be included in the MVP list only if the absolute difference between the corresponding X and Y components is greater than (or not less than) TH. 20. The deduplication threshold may be signaled in the bitstream. b) In one example, the deduplication threshold may be signaled in PU, CU, CTU or slice level. 21. The deduplication threshold may depend on the characteristics of the current block. c) In one example, the threshold can be derived by analyzing the diversity among the candidates. d) In one example, the optimal threshold can be derived through RDO. 22. Deduplication for MVP candidates can be performed first within a single group or a joint group before classification. a) Alternatively, furthermore, for two candidates belonging to two different groups or one belonging to a joint group and the other not belonging to the joint group, deduplication between the two MVP candidates is not performed before sorting. b) Alternatively, furthermore, deduplication between multiple groups may be applied after sorting. 23. Deduplication for MVP candidates may be performed first among multiple groups, and ranking may be further applied to one or more single / joint groups. a) Alternatively, the MVP list may be first constructed with deduplication among the available MVP candidates involved. Then, further sorting may be applied to reorder one or more individual / joint groups. b) Alternatively, furthermore, for two MVP candidates belonging to two different groups or one belonging to a joint group and the other not belonging to the joint group, deduplication between the two MVP candidates is performed before sorting. Interaction with other codecs 24. After applying the MVP list of the above sorting method, the Adaptive Reorder Merging Candidates (ARMC) process can also be applied. a) In one example, the template costs used in the sorting process during MVP list construction can be further utilized in ARMC. b) In another example, different template costs may be used in the classification process and the ARMC process. 1. In one example, the templates may be different for the sequencing and ARMC processes. 25. Whether and / or how the sorting process is enabled may depend on the codec tool. a) In one example, when a certain tool (eg, MMVD or affine mode) is enabled for a block, sorting is disabled. b) In one example, the ordering rules may be different for two different tools (eg, applied to different groups or different template settings). 2.6. Simplification of video encoding and decoding methods based on template matching The video coding and decoding method based on template matching is optimized in two aspects. First, the reference template derivation process is modified, and the interpolation process in the prediction block generation process is replaced by a different method. Second, several fast strategies are designed to accelerate the tools related to template matching. It should be noted that the proposed method can be used for ARMC, EMCD and template matching MV refinement, and can also be easily extended to other potential uses that require a template matching process, such as template matching-based candidate reordering for Merge with Motion Vector Difference (MMVD), affine motion compensation, sub-block-based temporal motion vector prediction (SbTMVP), etc. In yet another example, the proposed method can be applied to other codec tools that require a motion information refinement process, such as codec tools based on bilateral matching. The following detailed implementation examples should be considered as examples for explaining the general concept. These embodiments should not be interpreted narrowly. In addition, these embodiments can be combined in any way. The combination between this patent application and other documents is also applicable. 1. It is proposed to use other methods to replace the interpolation filtering process involved in the motion compensation process of the inter-frame prediction signal generation process in the reference template generation process. a) It is proposed to exclude the interpolation filtering process to generate the reference template even if the motion vectors point to fractional locations. i. In one example, it is proposed to use integer precision to generate a reference template. ii. In one example, if the motion vector points to a fractional position, it is first rounded to an integer MV. 1. In one example, fractional positions are rounded towards zero (ie, negative motion vector prediction values ​​are rounded towards positive infinity, and positive motion vector prediction values ​​are rounded towards negative infinity). 2. In one example, the rounding step size can be greater than 1. b) It is proposed to use different interpolation filters to generate reference templates for motion vectors pointing to fractional positions. i. In one example, a simplified interpolation filter may be applied. 1. In one example, the simplified interpolation filter can be a 2-tap bilinear, alternatively, it can also be a 4-tap, 6-tap, or any other interpolation type. Tap or 8-tap filter. ii. In one example, a more complex interpolation filter (eg, with longer filter taps) may be applied. c) The above method can be used to reorder the Merge candidates for the template matching Merge mode. i. In one example, integer precision can be used in ARMC, EMCD, LIC, and any other potential scenarios. ii. The above method can be used to reorder candidates for the regular Merge mode. 1. In one example, integer precision can be used to reorder candidates for regular Merge mode. d) In one example, whether to use the above method (e.g., integer precision, different interpolation filters) and / or Or how to use the above method can be transmitted by signal in the bit stream or determined on the fly based on decoded information. i. In one example, the method to be applied may depend on the codec tool. ii. In one example, the method to be applied may depend on the block size. iii. In one example, integer precision may be used for a given color component (eg, luma only). iv. Alternatively, integer precision can be used for all three components. 2. Whether and / or how to perform EMCD may be based on the maximum allowed number of candidates within the candidate list and / or the number of available candidates before being added to the candidate list. a) In one example, assuming that the number of available candidates (valid candidates that can be used to construct the candidate list) is NAVAL, and the maximum allowed number of candidates is NMAX (i.e., at most NMAX candidates can be included in the final Merge list), EMCD is enabled only when NAVAL-NMAX is greater than a constant or adaptively derived threshold T. 3. Propose to organize the available Merge candidates into subgroups. a) In one example, the available candidates can be classified into subgroups, each subgroup contains a fixed or adaptively derived number of candidates, and each subgroup selects a fixed number of candidates into the list. At the decoder side, only the candidates within the selected subgroup need to be reordered. b) In one example, the candidates may be classified into subgroups according to their categories, such as non-neighborhood MVP, time domain MVP (TMVP), or HMVP, etc. 4. It is proposed that a piece of information calculated by a first codec tool using at least one template cost can be reused by a second codec tool using at least one template cost. a) Propose to build a unified storage shared by ARMC, EMCD and any other potential tools to store each Merge candidate information. b) In one example, the storage may be a map, table, or other data structure. c) In one example, the stored information may be the template matching cost. d) In one example, EMCD first traverses all MVs associated with available candidates and stores the corresponding information (including but not limited to template matching cost) in the storage. ARMC and / or other potential tools can then simply access the required information from the shared storage without performing repeated calculations. 2.7. Extension of motion vector prediction list construction based on template matching cost sorting The present disclosure proposes an optimized MVP list derivation method based on template matching cost sorting. An optimized MVP selection method is studied by utilizing the matching cost in the reconstructed template area, rather than constructing the MVP list based on a predefined traversal order, so that more suitable candidates are included in the list. It should be noted that the proposed strategy for MVP list construction can be used in the conventional Merge and AMVP list construction processes, and can also be easily extended to other modules that require MVP derivation, such as Merge with Motion Vector Difference (MMVD), affine motion compensation, sub-block based temporal motion vector prediction (SbTMVP), etc. In the following discussion, a category indicates the belonging of an MVP candidate, for example, a non-adjacent MVP candidate belongs to one category and an HMVP candidate belongs to another category. A group indicates a set of MVP candidates that contains one or more MVP candidates. In one example, a single group indicates an MVP candidate set in which all candidates belong to one category, for example, adjacent MVP, non-adjacent MVP, HMVP, etc. In another example, a joint group indicates an MVP candidate set that contains candidates from multiple categories. The following detailed embodiments should be considered as examples for explaining the general concept. These embodiments should not be interpreted narrowly. In addition, these embodiments can be combined in any way. The combination between this patent application and other documents is also applicable. 5. In the candidate deduplication process, multiple thresholds can be used to determine whether a candidate can be added to the candidate list. a) A threshold may be used to determine whether a potential candidate can be placed in a candidate list. i. For example, if the absolute difference between at least one component of the MV of a potential candidate and at least one component of the MV of a candidate present in the candidate list is less than a threshold, the potential candidate is not put into the list. ii. For example, if the absolute difference between all components of the MV of a potential candidate and all components of the MV of a candidate present in the candidate list is less than a threshold, the potential candidate is not put into the list. b) In one example, the candidate is an MVP candidate, the candidate deduplication process is an MVP candidate deduplication process, and the candidate list is a motion candidate list. i. In one example, the motion candidate list is a Merge candidate list. ii. In one example, the sports candidate list is an AMVP candidate list. iii. In one example, the motion candidate list is an extended Merge or AMVP list, such as a sub-block Merge candidate list, an affine Merge candidate list, an MMVD list, a GPM list, a template matching Merge list, a bilateral matching Merge list, etc. c) In one example, the deduplication threshold may be different for two groups, where the group may be a single group (containing candidates of only one category) or a joint group (containing candidates of at least two categories). d) Alternatively, only one threshold is used for all potential MVP candidates, regardless of category and / or group. e) In one example, N (eg, N=2) thresholds are used in the deduplication process. i. Assuming A is an MVP set containing all available MVP candidates, regardless of category, in one example, a first threshold is used for a first subset of candidates in set A, and a second threshold is used for a second subset of candidates in set A (e.g., excluding the remaining candidates in the first subset). ii. In one example, a first threshold is used for a single group represented by A, and a second threshold is used for another group (single group or joint group) / multiple other groups / remaining candidates that do not have the same categories as those in A. 1) In one example, a first threshold is used for a single group of adjacent candidates, and a second threshold is used for the remaining candidates, including but not limited to non-adjacent MVPs, HMVPs, paired MVPs, and zero MVPs. iii. The first threshold may be greater or less than the second threshold. f) Alternatively, furthermore, the threshold for the MVP category or group may depend on decoded information, such as block size / coding method (eg CIIP / MMVD) and / or variance of motion information within the category or group. 6. Multiple reordering passes can be performed to build the MVP list. a) In one example, multiple passes may involve different reordering criteria. b) In one example, multiple passes of reordering may be performed on multiple single / joint groups, where at least two of the single / joint groups may have (or not have) overlapping MVP candidates. c) In one example, K passes (eg, K=2) of reordering are used to construct the MVP list. i. In one example, in a first pass, first based on a first cost (e.g., template matching cost) The sorting reorders a single group / joint group A and identifies the candidate with the maximum cost (CL) in A, which is then transferred to another single group / joint group B (e.g., B may include the remaining candidates that do not have the same category as the candidates in A). Group B is then reordered 2 to K times based on the first cost (or other cost metric) sorting. Finally, candidates in groups A (except CL) and B (including CL) are included in the MVP list according to the sorting order. ii. In one example, group A in the above case is a single group of neighboring candidates, and group B is a joint group of non-neighboring candidates and HMVPs. iii. Alternatively, groups A and B may be any other single or joint candidate groups. iv. In one example, in a first pass, first based on a first cost (eg, template matching cost) Sorting reorders one or more single / joint groups. Then, a preliminary MVP list is constructed by inserting some candidates in each group into a list with sorted order. Subsequently, the preliminary MVP list performs a second reordering to select some candidates into the final MVP list. 1) In one example, different single / joint groups may have (or not have) overlapping candidates. 2) In one example, all candidates in the preliminary MVP list are selected from the sorted single / joint group. 3) Alternatively, select some of the candidates in the preliminary MVP list from the sorted group, and include the remaining candidates in a list with other rules. 4) In one example, in the second pass, all candidates in the preliminary list are sorted based on cost (eg, template matching cost), regardless of the corresponding class, and only a limited number of candidates are included in the final MVP list based on the sorted order. a) Alternatively, in addition, all candidates in the preliminary MVP list are included in the final MVP list according to the sorted order. 5) Costs computed in previous passes (e.g., template matching costs) can be reused in later passes. a) In one example, when the cost for a candidate is calculated in a previous pass, it will be saved in a variable or any other data structure in case the same cost is needed in a later pass. b) In one example, in a later pass, if the cost for a candidate is needed, It will first check whether the cost has been calculated before. If the cost has been calculated and / or saved before the current pass, and / or is accessible in the current pass, it will be obtained in the current pass instead of being calculated again. 7. At least one virtual candidate (eg, Paired MVP and Zero MVP) may be involved in at least one group. a) In one example, all virtual candidates are processed using one joint group. i. Alternatively, the virtual candidates of each category are considered as a single group. ii. In one example, paired MVPs and / or zero MVPs are included in a single / joint group. iii. Alternatively, further, the groups containing virtual candidates are reordered and then put into the candidate list. b) Alternatively, virtual candidates (eg, Paired MVPs and / or Zero MVPs) are not included in any single / joint group. i. Alternatively, furthermore, no re-ranking process is applied to the virtual candidates. 6) Alternatively, in addition, they may be further appended to the candidate list. ii. In one example, one or more single / joint groups are constructed, where some or all of the groups are reordered. In this case, at least one position in the MVP list is reserved for a virtual candidate (e.g., a paired MVP and / or a zero MVP), which is appended to the MVP list as the last entry or any other entry. iii. In one example, further, a single group of adjacent candidates is first included in the MVP list, and then the joint group of non-adjacent candidates and HMVP is reordered and subsequently appended to the MVP list. In this case, at least one position is reserved for a virtual candidate (e.g., a paired MVP and / or a zero MVP), and the virtual candidate is appended to the MVP list as the last entry or any other entry. iv. In addition, in one example, the joint group of adjacent candidates, non-adjacent candidates, and HMVPs are reordered and subsequently appended to the MVP list, and virtual candidates (e.g., paired MVPs and / or zero MVPs) As the last entry or any other entry is appended to the MVP list. c) Alternatively, virtual candidates of one category (eg, pairwise MVPs) are included in a single / joint group, and virtual candidates of another category are not included. d) In one example, when a reordering operation is performed for MVP list construction, virtual candidates (eg, paired MVPs and / or zero MVPs) do not appear in the final MVP list. 8. The number of candidates for a single / joint group may not be allowed to exceed the maximum number of candidates. a) In one example, a single / joint group is constructed with a maximum number N i The finite number of candidates for the constraint, where i∈[0,1,…,K] is the index of the corresponding group. For different i, N i It may be the same or it may be different. b) In one example, some candidates in a single / joint group are subject to a maximum number N i restrictions. i. In one example, candidates for one or more categories in a group are constructed to have a finite number N i , while other categories in the same group can include any number. 7) In one example, the categories include but are not limited to adjacent candidates, non-adjacent candidates, HMVP, Paired candidates, etc. c) Alternatively, the first single / joint group can be constructed with at most N i MVP candidate, and the second single / Join groups can be exempt from this constraint. d) In one example, N i is a fixed value shared by both the encoder and the decoder. i. Alternatively, N i is determined by the encoder and signaled in the bitstream. And the decoder decodes N i value, and then construct the corresponding with up to N i candidate i-th single / joint group. ii. Alternatively, N is derived in both the encoder and decoder with the same operation i , so that there is no need to transmit N i value. 1) In one example, the encoder and decoder can derive N based on the variance of all available motion information of the i-th group. i value. 2) Alternatively, the encoder and decoder can derive N based on the number of all available candidates in the i-th group. i value. 3) In one example, the encoder and decoder can derive N based on the number of available neighboring candidates. i value. a) In one example, N i is set to NN ADJ , where N is a constant, N ADJ is the number of available neighboring candidates. 4) Alternatively, in addition, the encoder and decoder can derive N based on any information that the encoder / decoder has access to when constructing the MVP list i value. e) In one example, all or part of a single / joint group may share the same maximum number of candidates N. 9. The construction of a single / joint group can depend on the maximum number constraint N i . a) In one example, all available MVP candidates for the i-th group are included in the group according to a specific order. Once the number of candidates in the current group reaches N i , the construction of group i is terminated. b) In one example, in the above case, the order for group construction may be derived based on the distance between the CU to be encoded and the MVP candidate, where closer MVP candidates are assigned higher priorities. c) Alternatively, the order may be derived based on cost (eg template matching), where MVPs with lower costs have higher priority. d) In one example, construction of a single / joint group is performed using at least one deduplication operation within or between at least one group. e) In one example, the constructed single / joint group is further re-ranked based on at least one cost method (eg, template matching cost), and then some or all candidates in the group may be included in the MVP list. i. Alternatively, the candidates in the constructed single / joint group will not be further reordered, and some or all candidates in the group are included into the MVP list in the same order as they were included in the group. 10. About how to deduplicate MVP candidates. a) In one example, K passes (eg, K=2) of deduplication are performed to build the MVP list. 1) In one example, a first pass deduplication may be performed within at least one single / joint group, and a second pass deduplication may be performed between at least two candidates belonging to different groups. a) In one example, in the first pass of deduplication, the deduplication thresholds for the two single / joint groups may be the same, or may be different. b) In one example, furthermore, in the first pass of deduplication, some of the single / joint groups may share the same threshold, while other single / joint groups may use different thresholds. 2) In one example, further, the threshold for a particular pass or group is determined by decoding information including, but not limited to, block size, used codec tools (e.g., TM, DMVR, Adaptive DMVR, CIIP, AFFINE, AMVP-Merge). a) Alternatively, the threshold may be determined by at least one syntax element signaled to the decoder. 3. Question 1) The goal of existing MVP list construction methods is to build a subset with a constant number of MVPs from a given candidate set, which is usually achieved by selecting available candidates in a predefined order. However, this strategy does not utilize the prior information generated during the encoding / decoding process, which may lead to a mismatch between the actual motion information and the motion information of the candidates in the constructed MVP list. 2) The existing deduplication process for MVP candidates only considers identical MVs as redundant. Therefore, the constructed MVP list may contain very similar MVs, making the diversity within the list limited. 4. Detailed solution In this disclosure, an enhanced MVP list derivation method based on template matching cost sorting is proposed. Instead of constructing the MVP list based on a predetermined traversal order, an optimized MVP selection method is studied by utilizing the matching cost in the reconstructed template region so that more suitable candidates are included in the list. It should be noted that the proposed strategy for MVP list construction can be used in the normal Merge and AMVP list construction processes, and can also be easily extended to other modules that require MVP derivation, such as Merge with Motion Vector Difference (MMVD), affine motion compensation, sub-block based temporal motion vector prediction (SbTMVP), etc. In the following discussion, a category refers to a property of MVP candidates, e.g., non-adjacent MVP candidates belong to one category and HMVP candidates belong to another category. A group refers to a set of MVP candidates that contains one or more MVP candidates. In one example, a single group refers to an MVP candidate set in which all candidates belong to one category, e.g., adjacent MVP, non-adjacent MVP, HMVP, etc. In another example, a joint group refers to an MVP candidate set that contains candidates from multiple categories. In the following discussion, the “cost” of a candidate may be derived based on template matching or bilateral matching using functions such as SAD / SATD / SSD / MR-SAD (Mean Removed SAD). The following detailed embodiments should be considered as examples for explaining the general concept. These embodiments should not be interpreted in a narrow manner. In addition, these embodiments can be combined in any way. The combination between this patent application and other patent applications is also applicable. 1. During the candidate deduplication process, multiple thresholds can be used to determine whether a candidate can be added to the candidate list. a) A threshold may be used to determine whether a potential candidate can be placed in a candidate list. i. For example, if the absolute difference between at least one component of the MV of a potential candidate and at least one component of a candidate present in the candidate list is less than a threshold, the potential candidate is not put into the list. ii. For example, if the absolute difference between all components of the MV of a potential candidate and all components of a candidate present in the candidate list is less than a threshold, the potential candidate is not put into the list. b) In one example, the candidate is an MVP candidate, the candidate deduplication process is an MVP candidate deduplication process, and the candidate list is a motion candidate list. i. In one example, the motion candidate list is a Merge candidate list. ii. In one example, the sports candidate list is an AMVP candidate list. iii. In one example, the motion candidate list is an extended Merge or AMVP list, such as a sub-block Merge candidate list, an affine Merge candidate list, an MMVD list, a GPM list, a template matching Merge list, a bilateral matching Merge list, etc. iv. In one example, the motion candidate list is an IBC Merge candidate list. v. In one example, the sports candidate list is an IBC AMVP candidate list. vi. In one example, the motion candidate list is an extended IBC Merge or IBC AMVP list, such as an IBC-MMVD list. c) In one example, the deduplication threshold may be different for two groups, where the group may be a single group (containing candidates of only one category) or a joint group (containing candidates of at least two categories). d) In one example, N (eg, N=2) thresholds are used in the deduplication process. i. Assuming A is an MVP set containing all available MVP candidates (regardless of category), in one example, a first threshold is used for a first subset of the candidates in set A, and a second threshold is used for a second subset of the candidates in set A (e.g., excluding the remaining candidates in the first subset). ii. In one example, a first threshold is used for a single group represented by A, and a second threshold is used for another group (single group or joint group) / multiple other groups / remaining candidates that do not have the same category as those in A. 1) In one example, a first threshold is used for a single group of adjacent candidates, and a second threshold is used for the remaining candidates, including but not limited to non-adjacent MVPs, HMVPs, paired MVPs, and zero MVPs. iii. The first threshold may be greater or less than the second threshold. e) In one example, K passes (eg, K=4) of deduplication are performed to construct the MVP list. i. In one example, a first pass of deduplication (referred to as P1) is performed within a single group or a joint group to avoid duplicate candidates. 1) In one example, some or all groups may be sequenced after P1 (ie, ARMC). ii. In one example, when multiple groups are merged into one or more hybrid groups, a second pass of deduplication (referred to as P2) is performed. 1) In one example, after P2P, the hybrid group(s) may or may not perform sorting. iii. In one example, some new candidates may be inserted into the hybrid group and a third pass of deduplication is triggered to ensure that there are no duplications after adding the new candidates. iv. In one example, a fourth pass of deduplication (referred to as P4) is performed to further increase Diversity within mixed groups. v. In one example, the above-mentioned multi-pass deduplication can be utilized alone or in combination. 1) In one example, only some passes are used to build the MVP list, i.e. P1->P2->p4, P1->P2->p3, P1->P2, P1->P3, P1->P3->p4, P1->p4, etc. 2) In one example, the order of each pass can be changed during the construction process, that is, later pass deduplication can be performed before earlier pass deduplication. 3) In one example, a deduplication process may be performed multiple times during a build. a) In one example, deduplication may be performed in the order of P1->P4->P2->P3->P4. vi. In one example, the thresholds used in different passes may be the same or different. 1) In one example, the threshold in a certain deduplication pass may be a constant. 2) In one example, the threshold in a certain pass of deduplication can be derived from the bitstream. a) In one example, all available threshold values ​​may be stored in a lookup table or any other data structure and the index of the selected threshold signaled in the bitstream. The decoder may first parse the threshold index and then obtain the threshold from a corresponding lookup table or other data structure. b) In one example, the threshold may be derived based on information of the current block (ie, the QP or Lagrangian multiplier (Lamda) used in the RDO process). 2. About how to build an MVP list. a) One or more groups may be constructed first, where each group includes candidates belonging to one or more categories. i. In one example, the categories may include, but are not limited to, adjacent MVP, non-adjacent MVP, HMVP, Paired MVP, Build MVP, etc. ii. In one example, the number of candidates in each group may not be allowed to exceed a certain value. 1) In one example, the maximum allowed number for each group may be a constant or determined on the fly. 2) In one example, the maximum allowed number for each group may be different. iii. In one example, if only one group is constructed, candidates belonging to different categories are inserted into the group based on a predefined order. 1) In one example, specifically, in a constructed group, the number of candidates for a particular category or categories cannot exceed a constant or a value determined at run time. iv. Deduplication can be performed during the construction of each group. 1) In one example, specifically, deduplication is performed within the group, that is, there is no duplication for any two candidates from any group. 2) Alternatively, deduplication is performed between groups, ie, there is no duplication for any two candidates from either one or both groups. v. The deduplication threshold for any two groups can be the same or different. b) If multiple groups have been constructed, some or all of the groups can be merged into a mixed group. i. In one example, if only one group is constructed in a), no merging process is performed, and This group will be considered a special case of a mixed group. ii. In one example, specifically, if deduplication has not been performed on the group(s) before the merge or intra-group deduplication has been performed, a second pass of deduplication is performed during the merge process. iii. Alternatively, specifically, if the group(s) before the merge have performed inter-group deduplication, deduplication is not performed during the merge process. c) The hybrid groups may then be ranked based on ARMC or any other metric. i. In one example, specifically, before or after sorting the mixed group, all or part of the candidates within the group can be refined by template or bilateral matching. ii. In one example, specifically, the zero MVP is excluded in the sorting process and can be forced to be placed at the end of the sorted list. d) Constructed candidates (ie, pairwise candidates) may be generated and / or inserted into the hybrid set, and / or another round of sorting may be invoked to re-rank the expanded set. i. In one example, candidates for construction may be generated based on the sorted groups. 1) In one example, specifically, the constructed candidates may be paired candidates. 2) In one example, specifically, the constructed candidates are inserted into a hybrid group (along with a deduplication operation). e) Finally, a final round of deduplication is performed to further increase the diversity within the larger group(s). i. In one example, the template matching costs for all candidates in the sorted list are calculated, and the minimum cost difference between a candidate and its previous candidate among all candidates in the list is determined. If the minimum cost difference is less than TH, the candidate will be discarded and moved to another position in the list. The other position is the first position where the cost difference relative to its previous candidate is greater than TH. The algorithm stops after a finite number of iterations or the number of remaining candidates reaches the target value for the MVP list. a) In one example, TH may be derived based on information of the current block (ie, the QP or Lagrange multiplier (Lam da) used in the RDO process). 3. The disclosed method can be applied to potential candidates before being placed in a candidate list, or can be applied to candidates after being placed in a candidate list. 4. General claims 1) Whether and / or how to apply the method disclosed above can be transmitted by signal at the sequence level / picture group level / picture level / slice level / slice group level, such as in the sequence header / picture header / SPS / VPS / DPS / DCI / PPS / APS / strip header / slice group header. 2) Whether and / or how the above disclosed methods can be applied to transmit signals in PB / TB / CB / PU / TU / CU / VPDU / CTU / CTU row / slice / slice / sub-picture / other types of regions containing more than one sample or pixel. 3) Whether and / or how to apply the method disclosed above may depend on the coded information, such as block size, color format, single / dual tree partitioning, color component, slice / picture type. 5. Examples In one example, when the encoder / decoder starts to build the MVP candidate list, a plurality of small groups are first constructed, each of which includes candidates from one or more categories. Specifically, the number of candidates in each group should not exceed the maximum allowed number, wherein the maximum number can vary from one group to another. In addition, the intra-group deduplication operation using a constant threshold is performed together with the construction of each group. After each group is constructed, all or part of them will be further merged into a mixed group, where the second pass of deduplication is triggered to exclude redundant candidates in a larger group. Then, all or part of the candidates in the mixed group are sorted based on the ARMC method, and it should be noted that before ARMC, all or part of the candidates can be first refined by template matching or bilateral matching. Based on the sorted mixed group, some constructed candidates (i.e., paired candidates) can be generated and then inserted into the mixed group (together with the third pass of deduplication operation). And the extended mixed group performs ARMC again, and all candidates are sorted based on the TM cost. Finally, if the number of candidates in the mixed group is greater than the maximum allowed value for the MVP list, the final pass of deduplication operation is performed. Specifically, the template matching cost for all candidates in the sorted group is calculated, and the minimum cost difference between a candidate and its previous candidate among all candidates is determined. If the minimum cost difference is less than a constant TH, the candidate will be discarded and moved to a farther position in the list. The farther position is the first position where the cost difference relative to its previous candidate is greater than TH. The algorithm stops after a finite number of iterations, or after the number of remaining candidates reaches a target value for the MVP list.

[0067] Fig.11 A flow chart of a method 1100 for video processing according to an embodiment of the present disclosure is shown. The method 1100 may be implemented for conversion between a current video block of a video and a bit stream of the video.

[0068] At block 1110, a plurality of motion vector prediction (MVP) candidates for the current video block are determined. At block 1120, a candidate list for the current video block is determined by applying a plurality of deduplication processes to the plurality of MVP candidates. For example, a deduplication process may be performed K times (K is an integer greater than 1, e.g., K=4) to construct the MVP list. At block 1130, a conversion is performed based on the candidate list.

[0069] Method 1100 enables determining a candidate list for a current video block by applying multiple deduplication processes, thereby avoiding redundant candidates in the candidate list and improving the diversity of the candidate list, thereby improving coding efficiency and coding effectiveness.

[0070] In some embodiments, the plurality of deduplication processes include a first pass deduplication process, and determining the candidate list includes: determining a group of MVP candidates based on the plurality of MVP candidates; applying the first pass deduplication process to the group of MVP candidates; and determining the candidate list based on the deduplicated group of MVP candidates. For example, the first pass deduplication (referred to as P1) is performed within a single group or a joint group to avoid duplicate candidates.

[0071] In some embodiments, the group includes at least one of: a single group of MVP candidates of a single candidate class, or a joint group of MVP candidates of multiple candidate classes.

[0072] In some embodiments, the method 1100 further includes sorting at least a portion of the deduplicated set of MVP candidates.

[0073] In some embodiments, the ordering is based on an Adaptive Reorder Merge Candidate (ARMC) process. For example, some or all groups may be ordered after P1 (ie, ARMC).

[0074] In some embodiments, the plurality of deduplication processes include a second pass deduplication process, and determining the candidate list includes: determining a plurality of groups of MVP candidates based on the plurality of MVP candidates; determining at least one hybrid group of MVP candidates based on the plurality of groups; applying the second pass deduplication process to the at least one hybrid group of MVP candidates; and determining the candidate list based on the at least one deduplicated hybrid group of MVP candidates. For example, a second pass deduplication (referred to as P2) is performed when the plurality of groups are merged into one or more hybrid groups.

[0075] In some embodiments, the method 1100 further includes: sorting the at least one hybrid group of MVP candidates after deduplication. Alternatively, in some embodiments, the at least one hybrid group of MVP candidates after deduplication is not sorted.

[0076] In some embodiments, the plurality of deduplication processes include a third pass deduplication process, and determining the candidate list includes: determining a plurality of groups of MVP candidates based on the plurality of MVP candidates; determining at least one hybrid group of MVP candidates based on the plurality of groups; updating at least one hybrid group by adding at least one MVP candidate to the at least one hybrid group; applying the third pass deduplication process to the at least one hybrid group; and determining the candidate list based on the at least one hybrid group of MVP candidates that has been deduplicated. For example, some new candidates may be inserted into the hybrid group, and the third pass deduplication is triggered to ensure that there are no duplications after the new candidates are added.

[0077] In some embodiments, the plurality of deduplication processes include a fourth pass deduplication process, and determining the candidate list based on at least one deduplicated hybrid group includes: applying the fourth pass deduplication process to at least one deduplicated hybrid group; and determining the candidate list based on at least one deduplicated hybrid group of MVP candidates. For example, a fourth pass deduplication (referred to as P4) is performed to further increase diversity within the hybrid group(s).

[0078] In some embodiments, multiple deduplication processes are utilized individually or in combination. For example, the above-described multiple-pass deduplication can be used individually or in combination.

[0079] In some embodiments, applying the plurality of deduplication processes to the plurality of MVP candidates includes applying at least a portion of the plurality of deduplication processes to the plurality of MVP candidates based on an order of the plurality of deduplication processes.

[0080] In some embodiments, the order of the plurality of deduplication processes includes one of the following: a first order of the first deduplication process, the second deduplication process, and the fourth deduplication process, a second order of the first deduplication process, the second deduplication process, and the third deduplication process, a third order of the first deduplication process and the second deduplication process, a fourth order of the first deduplication process, the third deduplication process, and the fourth deduplication process, a fifth order of the first deduplication process, the third deduplication process, and the fourth deduplication process, a sixth order of the first deduplication process and the fourth deduplication process, or a seventh order of the first deduplication process, the fourth deduplication process, the second deduplication process, the third deduplication process, and the fourth deduplication process. That is, some passes are used to construct the MVP list, i.e., P1->P2->p4, P1->P2->p3, P1->P2, P1->P3, P1->P3->p4, P1->p4, etc.

[0081] In some embodiments, the order of multiple deduplication processes is changed during conversion. For example, the order of each pass can be changed during the construction process, that is, later pass deduplication can be performed before earlier pass deduplication.

[0082] In some embodiments, a first deduplication process of the plurality of deduplication processes is performed multiple times during the conversion.

[0083] In some embodiments, applying multiple deduplication processes to the multiple MVP candidates includes applying multiple deduplication processes to the multiple MVP candidates based on multiple thresholds, wherein a threshold of the multiple thresholds is used to determine whether an MVP candidate of the multiple MVP candidates is to be added to a candidate list.

[0084] In some embodiments, multiple thresholds used for multiple deduplication processes are the same or different. For example, the thresholds used in different passes can be the same or different.

[0085] In some embodiments, a first threshold associated with a deduplication process in the plurality of deduplication processes is a constant.

[0086] In some embodiments, the first threshold is determined from a bitstream. In some embodiments, the method 1100 further comprises: determining the first threshold based on codec information of the current video block.

[0087] In some embodiments, the coding information of the current video block includes at least one of the following: a quantization parameter (QP) of the current video block, or a parameter associated with a rate-distortion optimization (RDO) process.

[0088] In some embodiments, a plurality of candidate threshold values ​​are stored in a data structure, and the first threshold is determined by: determining an index of the first threshold from the bitstream; and obtaining the first threshold from the data structure based on the index. For example, the data structure may include a lookup table.

[0089] In some embodiments, determining a candidate list by applying multiple deduplication processes to multiple MVP candidates includes: for a first deduplication process among the multiple deduplication processes, determining whether an absolute difference between at least one component of a motion vector (MV) of an MVP candidate among the multiple MVP candidates and at least one component of a candidate in the candidate list is less than a threshold; and if it is determined that the absolute difference is greater than or equal to the threshold, adding the MVP candidate to the candidate list.

[0090] In some embodiments, the candidate list includes a motion candidate list. In some embodiments, the motion candidate list includes at least one of the following: a Merge candidate list, an Advanced Motion Vector Prediction (AMVP) candidate list, an Extended Merge or AMVP list, a Sub-block Merge candidate list, an Affine Merge candidate list, a Merge with Motion Vector Difference (MMVD) list, a Geometric Partitioning Mode (GPM) list, a Template Matching Merge list, a Bilateral Matching Merge list, an Intra-Block Copy (IBC) Merge candidate list, an IBC AMVP candidate list, an Extended IBC Merge or IBC AMVP list, or an IBC-MMVD list.

[0091] In some embodiments, a first threshold for a first deduplication process among multiple deduplication processes is different from a second threshold for a second deduplication process among multiple deduplication processes, the first deduplication process is applied to a first group of candidates, and the second deduplication process is applied to a second group of candidates.

[0092] In some embodiments, the first group or the second group includes at least one of: a single group of MVP candidates of a single candidate category, or a joint group of MVP candidates of multiple candidate categories.

[0093] In some embodiments, a first threshold for a first deduplication process among multiple deduplication processes is different from a second threshold for a second deduplication process among multiple deduplication processes, the first deduplication process is applied to a first subset of candidates among multiple MVP candidates, and the second deduplication process is applied to a remaining subset of candidates among the multiple MVP candidates.

[0094] In some embodiments, the first subset of candidates includes a single group of candidates associated with a first candidate category, and the candidates in the remaining subset are associated with a second candidate category different from the first candidate category.

[0095] In some embodiments, the first subset includes adjacent candidates and the remaining subset includes at least one of: non-adjacent MVP candidates, history-based MVP (HMVP) candidates, paired MVP candidates, or zero MVP candidates. In some embodiments, the first threshold is greater than or less than the second threshold.

[0096] In some embodiments, determining a candidate list includes: determining at least one group of candidates based on multiple MVP candidates, the group of candidates including MVP candidates associated with at least one candidate category; determining a mixed group of candidates based on the at least one group; sorting the mixed group of candidates; updating the sorted mixed group by adding at least one candidate to the sorted mixed group; and determining the candidate list by applying a final round of deduplication to the updated mixed group of candidates.

[0097] In some embodiments, the at least one candidate category includes at least one of: an adjacent MVP candidate category, a non-adjacent MVP candidate category, a history-based MVP (HMVP) candidate category, a pairwise MVP candidate category, or a constructed MVP candidate category.

[0098] In some embodiments, the number of candidates in at least one group is less than or equal to a threshold number.

[0099] In some embodiments, the threshold is a constant or is determined during a conversion. In some embodiments, the threshold number is different for each group in at least one group.

[0100] In some embodiments, the at least one group comprises a single group, and determining the single group comprises: adding the plurality of MVP candidates to the single group based on a predefined candidate category order.

[0101] In some embodiments, the number of candidates associated with a candidate class is less than or equal to a threshold number, which is a constant or determined during conversion.

[0102] In some embodiments, at least one deduplication process is applied to at least one group of candidates, or at least one deduplication process is not applied to at least one group of candidates.

[0103] In some embodiments, at least one deduplication process is performed within at least one group. In some embodiments, at least one deduplication process is performed between at least one group.

[0104] In some embodiments, at least one deduplication threshold for at least one group is the same or different.

[0105] In some embodiments, if at least one group includes a single group, the mixed group is a single group.

[0106] In some embodiments, the at least one group includes a plurality of groups to which the first pass deduplication process is not applied, and determining the hybrid group includes applying a second pass deduplication process during a merging process for merging the plurality of groups into the hybrid group.

[0107] In some embodiments, the at least one group includes a plurality of groups to which a first pass deduplication process is applied, and determining the hybrid group includes: merging the plurality of groups into the hybrid group without applying a second pass deduplication process.

[0108] In some embodiments, the candidate merge groups are ordered based on at least one of: Adaptive Reorder Merge Candidates (ARMC), or another metric.

[0109] In some embodiments, the method 1100 further includes: before or after sorting the mixed group, refining at least a portion of the mixed group based on at least one of: template matching or bilateral matching.

[0110] In some embodiments, the zero MVP in a hybrid group is placed at the end of the ordered hybrid group.

[0111] In some embodiments, the at least one candidate comprises a constructed candidate.

[0112] In some embodiments, method 1100 further includes: sorting the candidate updated hybrid groups.

[0113] In some embodiments, constructed candidates are generated based on the sorted hybrid groups.

[0114] In some embodiments, the constructed candidates include paired candidates.

[0115] In some embodiments, a deduplication process is applied to the updated hybrid group.

[0116] In some embodiments, applying a final round of deduplication to an updated hybrid group of candidates includes: determining multiple template matching costs for candidates in the updated hybrid group of candidates; and selecting a first candidate from the updated hybrid group and determining whether to discard the first candidate by: determining the minimum cost difference between the first candidate in the updated hybrid group and the remaining candidates in the updated hybrid group; and discarding the first candidate from the updated hybrid group if the minimum cost difference is determined to be less than a threshold; and selecting a second candidate from the updated hybrid group and determining whether to discard the second candidate.

[0117] In some embodiments, the second candidate is in a position where the cost difference relative to the candidates in the MVP candidate list is greater than a threshold. In some embodiments, selecting the second candidate and determining whether to discard the second candidate is stopped after a predefined number of iterations, or after the number of candidates in the MVP candidate list reaches a predefined number.

[0118] In some embodiments, the template matching costs for all candidates in the sorted list are calculated, and the minimum cost difference between a candidate in the list and its previous candidate among all candidates is determined. If the minimum cost difference is less than a threshold (TH), the candidate is discarded and moved to another position in the list. The other position is the first position where the cost difference relative to its previous candidate is greater than TH. The algorithm stops after a finite number of iterations, or after the number of remaining candidates reaches a target value for the MVP list.

[0119] In some embodiments, the threshold is determined based on the codec information of the current video block. In some embodiments, the codec information of the current video block includes at least one of the following: a quantization parameter (QP) of the current video block, or a parameter associated with a rate-distortion optimization (RDO) process. For example, TH can be derived based on information of the current block (i.e., a QP or a Lagrange multiplier (Lamda) used in the RDO process).

[0120] In some embodiments, the method is applied to the first candidate before the first candidate is added to the candidate list, or the method is applied to the second candidate after the second candidate is added to the candidate list.

[0121] In some embodiments, information about applying the method is included in the bitstream.

[0122] In some embodiments, the information is included in at least one of the following: sequence level, picture group level, picture level, slice level, slice group level, sequence header, picture header, sequence parameter set (SPS), video parameter set (VPS), decoding parameter set (DPS), decoding capability information (DCI), picture parameter set (PPS), adaptation parameter set (APS), slice header, or slice group header.

[0123] In some embodiments, the information is included in regions containing more than one sample or pixel.

[0124] In some embodiments, the region includes one of the following: a prediction block (PB), a transform block (TB), a codec block (CB), a prediction unit (PU), a transform unit (TU), a codec unit (CU), a virtual pipeline data unit (VPDU), a codec tree unit (CTU), a CTU row, a slice, a slice, and a sub-picture.

[0125] In some embodiments, this information is based on encoded information of the current video block.

[0126] In some embodiments, the encoded information includes at least one of: a codec mode, a block size, a color format, a single or double tree partitioning, a color component, a slice type, or a picture type.

[0127] According to another embodiment of the present disclosure, a non-transitory computer-readable recording medium is provided. The non-transitory computer-readable recording medium stores a bitstream of a video generated by a method performed by an apparatus for video processing. In the method, multiple motion vector prediction (MVP) candidates for a current video block of the video are determined. A candidate list for the current video block is determined by applying multiple deduplication processes to the multiple MVP candidates. A bitstream is generated based on the candidate list.

[0128] According to some other embodiments of the present disclosure, a method for storing a bitstream of a video is provided. In the method, multiple motion vector prediction (MVP) candidates for a current video block of the video are determined. A candidate list of the current video block is determined by applying multiple deduplication processes to the multiple MVP candidates. A bitstream is generated based on the candidate list. The bitstream is stored in a non-transitory computer-readable recording medium.

[0129] Embodiments of the present disclosure may be described according to the following items, features of which may be combined in any reasonable way.

[0130] Item 1. A method for video processing, comprising: determining a plurality of motion vector prediction (MVP) candidates for a current video block of a video and a bitstream of the video for conversion between the current video block; determining a candidate list for the current video block by applying a plurality of deduplication processes to the plurality of MVP candidates; and performing the conversion based on the candidate list.

[0131] Item 2. A method according to Item 1, wherein the multiple deduplication processes include a first-pass deduplication process, and determining the candidate list includes: determining a group of MVP candidates based on the multiple MVP candidates; applying the first-pass deduplication process to the group of MVP candidates; and determining the candidate list based on the deduplicated group of MVP candidates.

[0132] Clause 3. The method of clause 2, wherein the group comprises at least one of: a single group of MVP candidates of a single candidate class, or a joint group of MVP candidates of multiple candidate classes.

[0133] Item 4. The method of Item 2 or Item 3, further comprising: sorting at least a portion of the deduplicated group of MVP candidates.

[0134] Item 5. A method according to Item 4, wherein the ordering is based on an Adaptive Reorder Merge Candidate (ARMC) process.

[0135] Item 6. A method according to any one of Items 1 to 5, wherein the multiple deduplication processes include a second deduplication process, and determining the candidate list includes: determining multiple groups of MVP candidates based on the multiple MVP candidates; determining at least one mixed group of MVP candidates based on the multiple groups; applying the second deduplication process to the at least one mixed group of MVP candidates; and determining the candidate list based on the at least one deduplicated mixed group of MVP candidates.

[0136] Item 7. The method according to Item 6 further includes: sorting the at least one mixed group of MVP candidates that have been deduplicated.

[0137] Clause 8. The method of clause 6, wherein the at least one hybrid group of deduplicated MVP candidates is not sorted.

[0138] Item 9. A method according to any one of Items 1 to 8, wherein the multiple deduplication processes include a third deduplication process, and determining the candidate list includes: determining multiple groups of MVP candidates based on the multiple MVP candidates; determining at least one mixed group of MVP candidates based on the multiple groups; updating the at least one mixed group by adding at least one MVP candidate to the at least one mixed group; applying the third deduplication process to the at least one mixed group; and determining the candidate list based on the at least one mixed group of MVP candidates that has been deduplicated.

[0139] Item 10. A method according to Item 9, wherein the multiple deduplication processes include a fourth deduplication process, and determining the candidate list based on the at least one deduplicated mixed group includes: applying the fourth deduplication process to the at least one deduplicated mixed group; and determining the candidate list based on the at least one deduplicated mixed group of MVP candidates.

[0140] Item 11. A method according to any one of Items 1 to 10, wherein the multiple deduplication processes are utilized individually or in combination.

[0141] Item 12. A method according to any one of Items 1 to 11, wherein applying the multiple deduplication processes to the multiple MVP candidates includes: applying at least part of the multiple deduplication processes to the multiple MVP candidates based on the order of the multiple deduplication processes.

[0142] Item 13. A method according to Item 12, wherein the order of the multiple de-duplication processes includes one of the following: a first order of a first de-duplication process, a second de-duplication process and a fourth de-duplication process, a second order of a first de-duplication process, a second de-duplication process and a third de-duplication process, a third order of a first de-duplication process and a second de-duplication process, a fourth order of a first de-duplication process, a third de-duplication process and a fourth de-duplication process, a fifth order of a first de-duplication process, a third de-duplication process and a fourth de-duplication process, a sixth order of a first de-duplication process and a fourth de-duplication process, or a seventh order of a first de-duplication process, a fourth de-duplication process, a second de-duplication process, a third de-duplication process and a fourth de-duplication process.

[0143] Item 14. A method according to Item 13, wherein the order of the multiple deduplication processes is changed during the conversion.

[0144] Item 15. A method according to any one of Items 12 to 14, wherein a first deduplication process of the plurality of deduplication processes is performed multiple times during the conversion.

[0145] Item 16. A method according to any one of Items 1 to 11, wherein applying the multiple deduplication processes to the multiple MVP candidates includes: applying the multiple deduplication processes to the multiple MVP candidates based on multiple thresholds, wherein thresholds among the multiple thresholds are used to determine whether an MVP candidate among the multiple MVP candidates is to be added to the candidate list.

[0146] Item 17. A method according to Item 16, wherein the multiple thresholds for the multiple deduplication processes are the same or different.

[0147] Item 18. A method according to Item 16 or Item 17, wherein a first threshold associated with a deduplication process in the plurality of deduplication processes is a constant.

[0148] Item 19. The method of Item 18, wherein the first threshold is determined from the bitstream.

[0149] Item 20. The method according to Item 18 or Item 19 further includes: determining the first threshold based on encoding and decoding information of the current video block.

[0150] Item 21. The method of Item 20, wherein the encoding and decoding information of the current video block comprises at least one of the following: a quantization parameter (QP) of the current video block, or a parameter associated with a rate-distortion optimization (RDO) process.

[0151] Item 22. A method according to Item 18 or Item 19, wherein multiple candidate threshold values ​​are stored in a data structure, and the first threshold is determined by the following operations: determining an index of the first threshold from the bitstream; and obtaining the first threshold from the data structure based on the index.

[0152] Item 23. A method according to Item 22, wherein the data structure includes a lookup table.

[0153] Item 24. A method according to any one of Items 1 to 23, wherein determining the candidate list by applying multiple deduplication processes to the multiple MVP candidates includes: for a first deduplication process among the multiple deduplication processes, determining whether an absolute difference between at least one component of a motion vector (MV) of an MVP candidate among the multiple MVP candidates and at least one component of a candidate in the candidate list is less than a threshold; and if it is determined that the absolute difference is greater than or equal to the threshold, adding the MVP candidate to the candidate list.

[0154] Item 25. A method according to any one of Items 1 to 24, wherein the candidate list comprises a motion candidate list.

[0155] Item 26. A method according to Item 25, wherein the motion candidate list includes at least one of the following: a Merge candidate list, an Advanced Motion Vector Prediction (AMVP) candidate list, an Extended Merge or AMVP list, a Sub-block Merge candidate list, an Affine Merge candidate list, a Merge with Motion Vector Difference (MMVD) list, a Geometric Partitioning Mode (GPM) list, a Template Matching Merge list, a Bilateral Matching Merge list, an Intra Block Copy (IBC) Merge candidate list, an IBC AMVP candidate list, an Extended IBC Merge or IBC AMVP list, or an IBC-MMVD list.

[0156] Item 27. A method according to any one of Items 1 to 26, wherein a first threshold for a first deduplication process among the multiple deduplication processes is different from a second threshold for a second deduplication process among the multiple deduplication processes, the first deduplication process is applied to a first group of candidates, and the second deduplication process is applied to a second group of candidates.

[0157] Item 28. The method of Item 27, wherein the first group or the second group comprises at least one of: a single group of MVP candidates of a single candidate class, or a joint group of MVP candidates of multiple candidate classes.

[0158] Item 29. A method according to any one of Items 1 to 28, wherein a first threshold for a first deduplication process among the multiple deduplication processes is different from a second threshold for a second deduplication process among the multiple deduplication processes, the first deduplication process is applied to a first subset of candidates among the multiple MVP candidates, and the second deduplication process is applied to a remaining subset of candidates among the multiple MVP candidates.

[0159] Item 30. A method according to Item 29, wherein the first subset of candidates includes a single group of candidates associated with a first candidate category, and the candidates in the remaining subset are associated with a second candidate category, which is different from the first candidate category.

[0160] Item 31. A method according to Item 29 or Item 30, wherein the first subset includes adjacent candidates and the remaining subset includes at least one of the following: non-adjacent MVP candidates, history-based MVP (HMVP) candidates, paired MVP candidates, or zero MVP candidates.

[0161] Item 32. A method according to any one of Items 27 to 31, wherein the first threshold is greater than or less than the second threshold.

[0162] Item 33. A method according to any one of Items 1 to 32, wherein determining the candidate list includes: determining at least one group of candidates based on the multiple MVP candidates, the group of candidates including MVP candidates associated with at least one candidate category; determining a mixed group of candidates based on the at least one group; sorting the mixed group of candidates; updating the sorted mixed group by adding at least one candidate to the sorted mixed group; and determining the candidate list by applying a final round of deduplication to the updated mixed group of candidates.

[0163] Item 34. The method of Item 33, wherein the at least one candidate category comprises at least one of: an adjacent MVP candidate category, a non-adjacent MVP candidate category, a history-based MVP (HMVP) candidate category, a paired MVP candidate category, or a constructed MVP candidate category.

[0164] Item 35. A method according to Item 33 or Item 34, wherein the number of candidates in the at least one group is less than or equal to a threshold number.

[0165] Item 36. The method of Item 35, wherein the threshold is a constant or is determined during the conversion.

[0166] Item 37. A method according to Item 35, wherein the threshold number is different for each of the at least one group.

[0167] Item 38. A method according to any one of Items 33 to 37, wherein the at least one group comprises a single group, and determining the single group comprises: adding the plurality of MVP candidates to the single group based on a predefined candidate category order.

[0168] Item 39. A method according to Item 38, wherein the number of candidates associated with a candidate category is less than or equal to a threshold number, the threshold number is a constant or is determined during the conversion.

[0169] Item 40. A method according to any one of items 33 to 39, wherein at least one deduplication process is applied to the at least one group of candidates, or at least one deduplication process is not applied to the at least one group of candidates.

[0170] Item 41. A method according to Item 40, wherein the at least one deduplication process is performed within the at least one group.

[0171] Item 42. A method according to Item 40, wherein the at least one deduplication process is performed between the at least one group.

[0172] Item 43. A method according to any one of Items 40 to 42, wherein at least one deduplication threshold for the at least one group is the same or different.

[0173] Item 44. A method according to any one of Items 33 to 43, wherein if the at least one group comprises a single group, the mixed group is the single group.

[0174] Item 45. A method according to any one of Items 33 to 43, wherein the at least one group includes multiple groups to which the first deduplication process has not been applied, and determining the mixed group includes: applying a second deduplication process during a merging process for merging the multiple groups into the mixed group.

[0175] Item 46. A method according to any one of Items 33 to 43, wherein the at least one group includes multiple groups to which a first deduplication process is applied, and determining the mixed group includes: merging the multiple groups into the mixed group without applying a second deduplication process.

[0176] Item 47. A method according to any one of items 33 to 46, wherein the hybrid group of candidates is ordered based on at least one of: Adaptive Reorder Merge Candidates (ARMC), or another metric.

[0177] Item 48. The method according to any one of Items 33 to 47 further includes: before or after sorting the mixed group, refining at least a portion of the mixed group based on at least one of the following: template matching or bilateral matching.

[0178] Item 49. A method according to any one of Items 33 to 48, wherein the zero MVP in the hybrid group is placed at the end of the sorted hybrid group.

[0179] Item 50. A method according to any one of items 33 to 49, wherein the at least one candidate comprises a constructed candidate.

[0180] Item 51. The method according to Item 50 also includes: sorting the candidate updated hybrid groups.

[0181] Item 52. A method according to Item 50 or Item 51, wherein the constructed candidates are generated based on the sorted mixed group.

[0182] Item 53. A method according to any one of items 50 to 52, wherein the constructed candidates include pairs of candidates.

[0183] Item 54. A method according to any one of Items 50 to 53, wherein a deduplication process is applied to the updated mixed group.

[0184] Item 55. A method according to any one of Items 33 to 54, wherein applying a final round of deduplication to the updated mixed group of candidates comprises: determining a plurality of template matching costs for candidates in the updated mixed group of candidates; and selecting a first candidate from the updated mixed group, and determining whether to discard the first candidate by: determining a minimum cost difference between the first candidate in the updated mixed group and the remaining candidates in the updated mixed group; and discarding the first candidate from the updated mixed group if it is determined that the minimum cost difference is less than a threshold; and selecting a second candidate from the updated mixed group, and determining whether to discard the second candidate.

[0185] Item 56. The method of Item 55, wherein the second candidate is in a position where the cost difference relative to a candidate in the MVP candidate list is greater than the threshold.

[0186] Item 57. A method according to Item 55 or Item 56, wherein the selecting the second candidate and determining whether to discard the second candidate is stopped after a predefined number of iterations, or after the number of candidates in the MVP candidate list reaches a predefined number.

[0187] Item 58. The method of any one of Items 55 to 57, wherein the threshold is determined based on codec information of the current video block.

[0188] Item 59. The method of Item 58, wherein the codec information of the current video block comprises at least one of: a quantization parameter (QP) of the current video block, or a parameter associated with a rate-distortion optimization (RDO) process.

[0189] Item 60. A method according to any one of items 1 to 59, wherein the method is applied to a first candidate before the first candidate is added to the candidate list, or the method is applied to a second candidate after the second candidate is added to the candidate list.

[0190] Item 61. A method according to any one of items 1 to 60, wherein information about applying the method is included in the bitstream.

[0191] Item 62. The method of Item 61, wherein the information is included in at least one of: a sequence level, a group of pictures level, a picture level, a slice level, a slice group level, a sequence header, a picture header, a sequence parameter set (SPS), a video parameter set (VPS), a decoding parameter set (DPS), decoding capability information (DCI), a picture parameter set (PPS), an adaptation parameter set (APS), a slice header, or a slice group header.

[0192] Item 63. A method according to Item 61, wherein the information is included in a region containing more than one sample or pixel.

[0193] Item 64. A method according to item 63, wherein the area includes one of the following: a prediction block (PB), a transform block (TB), a codec block (CB), a prediction unit (PU), a transform unit (TU), a codec unit (CU), a virtual pipeline data unit (VPDU), a codec tree unit (CTU), a CTU row, a slice, a slice, or a sub-picture.

[0194] Item 65. A method according to any one of Items 61 to 64, wherein the information is based on encoded information of the current video block.

[0195] Item 66. The method of Item 65, wherein the encoded information comprises at least one of: a codec mode, a block size, a color format, a single or double tree partitioning, a color component, a slice type, or a picture type.

[0196] Item 67. A method according to any one of Items 1 to 66, wherein the converting comprises encoding the current video block into the bitstream.

[0197] Item 68. A method according to any one of Items 1 to 66, wherein the converting comprises decoding the current video block from the bitstream.

[0198] Item 69. An apparatus for video processing, comprising a processor and a non-volatile memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to perform a method according to any one of Items 1 to 68.

[0199] Item 70. A non-transitory computer-readable storage medium storing instructions that cause a processor to perform a method according to any one of Items 1 to 68.

[0200] Item 71. A non-transitory computer-readable recording medium storing a bitstream of a video, the bitstream being generated by a method performed by a device for video processing, wherein the method comprises: determining a plurality of motion vector prediction (MVP) candidates for a current video block of the video; determining a candidate list for the current video block by applying a plurality of deduplication processes to the plurality of MVP candidates; and generating the bitstream based on the candidate list.

[0201] Item 72. A method for storing a bitstream of a video, comprising: determining a plurality of motion vector prediction (MVP) candidates for a current video block of the video; determining a candidate list for the current video block by applying a plurality of deduplication processes to the plurality of MVP candidates; generating the bitstream based on the candidate list; and storing the bitstream in a non-transitory computer-readable recording medium. Example Device

[0202] Fig.12 A block diagram of a computing device 1200 in which various embodiments of the present disclosure may be implemented is shown. The computing device 1200 may be implemented as a source device 110 (or video encoder 114 or 200) or a destination device 120 (or video decoder 124 or 300), or may be included in a source device 110 (or video encoder 114 or 200) or a destination device 120 (or video decoder 124 or 300).

[0203] It should be understood that Fig.12 The computing device 1200 shown in the figure is for illustration purposes only and is not intended to in any way imply any limitation on the functionality and scope of the embodiments of the present disclosure.

[0204] like Fig.12 As shown, computing device 1200 includes a general computing device 1200. Computing device 1200 may include at least one or more processors or processing units 1210, memory 1220, storage unit 1230, one or more communication units 1240, one or more input devices 1250, and one or more output devices 1260.

[0205] In some embodiments, the computing device 1200 can be implemented as any user terminal or server terminal with computing capabilities. The server terminal can be a server, a large computing device, etc. provided by a service provider. The user terminal can be, for example, any type of mobile terminal, fixed terminal, or portable terminal, including a mobile phone, a station, a unit, a device, a multimedia computer, a multimedia tablet computer, an Internet node, a communicator, a desktop computer, a laptop computer, a notebook computer, a netbook computer, a tablet computer, a personal communication system (PCS) device, a personal navigation device, a personal digital assistant (PDA), an audio / video player, a digital camera / camcorder, a positioning device, a television receiver, a radio broadcast receiver, an e-book device, a gaming device, or any combination thereof, including accessories and peripherals of these devices, or any combination thereof. It is conceivable that the computing device 1200 can support any type of interface to the user (such as a "wearable" circuit device, etc.).

[0206] The processing unit 1210 may be a physical processor or a virtual processor and may implement various processes based on a program stored in the memory 1220. In a multi-processor system, multiple processing units execute computer executable instructions in parallel to increase the parallel processing capability of the computing device 1200. The processing unit 1210 may also be referred to as a central processing unit (CPU), a microprocessor, a controller, or a microcontroller.

[0207] The computing device 1200 typically includes various computer storage media. Such media can be any media accessible by the computing device 1200, including but not limited to volatile media and non-volatile media, or removable media and non-removable media. The memory 1220 can be a volatile memory (e.g., a register, a cache, a random access memory (RAM)), a non-volatile memory (such as a read-only memory (ROM), an electrically erasable programmable read-only memory (EEPROM) or flash memory), or any combination thereof. The storage unit 1230 can be any removable or non-removable medium, and can include machine-readable media, such as a memory, a flash drive, a disk, or other media that can be used to store information and / or data and can be accessed in the computing device 1200.

[0208] The computing device 1200 may also include additional removable / non-removable storage media, volatile / non-volatile storage media. Fig.12 Although not shown in the figure, a disk drive for reading from and / or writing to a removable nonvolatile disk and an optical drive for reading from and / or writing to a removable nonvolatile optical disk may be provided. In this case, each drive may be connected to the bus (not shown) via one or more data medium interfaces.

[0209] The communication unit 1240 communicates with another computing device via a communication medium. In addition, the functionality of the components in the computing device 1200 can be implemented by a single computing cluster or multiple computing machines that can communicate via a communication connection. Therefore, the computing device 1200 can operate in a networked environment using logical connections to one or more other servers, networked personal computers (PCs), or other general network nodes.

[0210] The input device 1250 may be one or more of various input devices, such as a mouse, keyboard, trackball, voice input device, etc. The output device 1260 may be one or more of various output devices, such as a display, a speaker, a printer, etc. With the aid of the communication unit 1240, the computing device 1200 may also communicate with one or more external devices (not shown), such as storage devices and display devices, and the computing device 1200 may also communicate with one or more devices that enable a user to interact with the computing device 1200, or, if necessary, the computing device 1200 may also communicate with any device (e.g., a network card, a modem, etc.) that enables the computing device 1200 to communicate with one or more other computing devices. Such communication may be performed via an input / output (I / O) interface (not shown).

[0211] In some embodiments, some or all components of the computing device 1200 may also be arranged in a cloud computing architecture rather than being integrated in a single device. In a cloud computing architecture, components may be provided remotely and work together to implement the functions described in the present disclosure. In some embodiments, cloud computing provides computing, software, data access and storage services, which will not require the end user to know the physical location or configuration of the system or hardware that provides these services. In various embodiments, cloud computing provides services via a wide area network (such as the Internet) using a suitable protocol. For example, a cloud computing provider provides an application via a wide area network, which can be accessed through a web browser or any other computing component. The software or components of the cloud computing architecture and the corresponding data may be stored on a server at a remote location. The computing resources in a cloud computing environment may be merged or distributed at the location of a remote data center. Cloud computing infrastructure can provide services through a shared data center, although they appear as a single access point to the user. Therefore, the cloud computing architecture can be used to provide the components and functions described herein from a service provider at a remote location. Alternatively, the components and functions described herein may be provided by a conventional server, or may be installed on a client device directly or otherwise.

[0212] In an embodiment of the present disclosure, the computing device 1200 may be used to implement video encoding / decoding. The memory 1220 may include one or more video encoding / decoding modules 1225 having one or more program instructions. These modules are accessible and executable by the processing unit 1210 to perform the functions of the various embodiments described herein.

[0213] In an example embodiment performing video encoding, input device 1250 may receive video data as input 1270 to be encoded. The video data may be processed, for example, by video codec module 1225 to generate an encoded bitstream. The encoded bitstream may be provided as output 1280 via output device 1260.

[0214] In an example embodiment performing video decoding, input device 1250 may receive an encoded bitstream as input 1270. The encoded bitstream may be processed, for example, by video codec module 1225 to generate decoded video data. The decoded video data may be provided as output 1280 via output device 1260.

[0215] Although the present disclosure has been specifically shown and described with reference to the preferred embodiments of the present disclosure, it will be appreciated by those skilled in the art that various changes may be made in form and detail without departing from the spirit and scope of the present application as defined by the appended claims. These modifications are intended to be encompassed by the scope of the present application. Therefore, the foregoing description of the embodiments of the present application is not intended to be limiting.

Claims

1. A method for video processing, comprising: For conversion between a current video block of a video and a bitstream of the video, determining a plurality of motion vector prediction (MVP) candidates for the current video block; Determining a candidate list for the current video block by applying a plurality of deduplication processes to the plurality of MVP candidates; as well as Based on the candidate list, the conversion is performed.

2. The method of claim 1, wherein the plurality of deduplication processes comprises a first pass deduplication process, and determining the candidate list comprises: Based on the plurality of MVP candidates, determining a group of MVP candidates; applying the first pass deduplication process to the group of MVP candidates; as well as The candidate list is determined based on the deduplicated set of MVP candidates.

3. The method of claim 2, wherein the group comprises at least one of: a single group of MVP candidates for a single candidate class, or A joint group of MVP candidates from multiple candidate categories.

4. The method according to claim 2 or claim 3, further comprising: At least a portion of the deduplicated set of MVP candidates is sorted. The method of claim 4 , wherein the sorting is based on an Adaptive Reorder Merge Candidate (ARMC) process.

6. The method according to any one of claims 1 to 5, wherein the plurality of deduplication processes comprises a second pass deduplication process, and determining the candidate list comprises: Based on the plurality of MVP candidates, determining a plurality of groups of MVP candidates; Based on the plurality of groups, determining at least one hybrid group of MVP candidates; Applying the second pass deduplication process to the at least one mixed group of MVP candidates; as well as The candidate list is determined based on the at least one deduplicated hybrid group of MVP candidates.

7. The method according to claim 6, further comprising: The at least one deduplicated hybrid group of MVP candidates is sorted. The method of claim 6 , wherein the at least one hybrid group of deduplicated MVP candidates is not sorted.

9. The method according to any one of claims 1 to 8, wherein the plurality of deduplication processes include a third deduplication pass, and determining the candidate list includes: Based on the plurality of MVP candidates, determining a plurality of groups of MVP candidates; Based on the plurality of groups, determining at least one hybrid group of MVP candidates; updating the at least one hybrid group by adding at least one MVP candidate to the at least one hybrid group; Applying the third deduplication pass to the at least one mixed group; as well as The candidate list is determined based on the at least one deduplicated hybrid group of MVP candidates.

10. The method of claim 9, wherein the plurality of deduplication processes comprises a fourth deduplication process, and determining the candidate list based on the at least one deduplicated hybrid group comprises: Applying the fourth pass deduplication process to the at least one mixed group after deduplication; as well as The candidate list is determined based on the at least one deduplicated hybrid group of MVP candidates.

11. The method according to any one of claims 1 to 10, wherein the plurality of deduplication processes are utilized individually or in combination.

12. The method according to any one of claims 1 to 11, wherein applying the plurality of deduplication processes to the plurality of MVP candidates comprises: At least a portion of the plurality of deduplication processes are applied to the plurality of MVP candidates based on an order of the plurality of deduplication processes.

13. The method of claim 12, wherein the order of the plurality of deduplication processes comprises one of the following: The first order of the first deduplication process, the second deduplication process and the fourth deduplication process, The second order of the first deduplication process, the second deduplication process and the third deduplication process, The first pass of deduplication and the third pass of deduplication are as follows: The fourth order of the first and third deduplication processes, The fifth order of the first deduplication process, the third deduplication process and the fourth deduplication process, The sixth order of the first deduplication pass and the fourth deduplication pass, or The seventh order of the first deduplication process, the fourth deduplication process, the second deduplication process, the third deduplication process and the fourth deduplication process. The method of claim 13 , wherein the order of the plurality of deduplication processes is changed during the conversion.

15. The method according to any one of claims 12 to 14, wherein a first deduplication process among the plurality of deduplication processes is performed multiple times during the conversion.

16. The method according to any one of claims 1 to 11, wherein applying the plurality of deduplication processes to the plurality of MVP candidates comprises: applying the plurality of deduplication processes to the plurality of MVP candidates based on a plurality of thresholds, A threshold value among the plurality of threshold values ​​is used to determine whether an MVP candidate among the plurality of MVP candidates is to be added to the candidate list. The method according to claim 16 , wherein the plurality of thresholds for the plurality of deduplication processes are the same or different.

18. The method of claim 16 or claim 17, wherein a first threshold associated with a deduplication process in the plurality of deduplication processes is a constant. The method of claim 18 , wherein the first threshold is determined from the bitstream.

20. The method according to claim 18 or claim 19, further comprising: The first threshold is determined based on the coding and decoding information of the current video block.

21. The method according to claim 20, wherein the codec information of the current video block comprises at least one of the following: The quantization parameter (QP) of the current video block, or Parameters associated with the rate-distortion optimization (RDO) process.

22. The method of claim 18 or claim 19, wherein a plurality of candidate threshold values ​​are stored in a data structure, and the first threshold is determined by: determining an index of the first threshold from the bitstream; and Based on the index, the first threshold is obtained from the data structure.

23. The method of claim 22, wherein the data structure comprises a lookup table.

24. The method according to any one of claims 1 to 23, wherein determining the candidate list by applying a plurality of deduplication processes to the plurality of MVP candidates comprises: for a first deduplication process among the plurality of deduplication processes, determining whether an absolute difference between at least one component of a motion vector (MV) of an MVP candidate among the plurality of MVP candidates and at least one component of a candidate in the candidate list is less than a threshold; as well as If it is determined that the absolute difference is greater than or equal to the threshold, the MVP candidate is added to the candidate list.

25. The method of any one of claims 1 to 24, wherein the candidate list comprises a motion candidate list.

26. The method according to claim 25, wherein the motion candidate list comprises at least one of the following: Merge candidate list, Advanced Motion Vector Prediction (AMVP) candidate list, Expand the Merge or AMVP list, Sub-block Merge candidate list, Affine Merge candidate list, Merge (MMVD) list with motion vector differences, A list of geometric partitioning modes (GPMs), Template matching Merge list, Double-sided matching Merge list, Intra-block copy (IBC) Merge candidate list, IBC AMVP candidate list, Expand the IBC Merge or IBC AMVP list, or IBC-MMVD List.

27. A method according to any one of claims 1 to 26, wherein a first threshold for a first deduplication process among the multiple deduplication processes is different from a second threshold for a second deduplication process among the multiple deduplication processes, the first deduplication process is applied to a first group of candidates, and the second deduplication process is applied to a second group of candidates.

28. The method of claim 27, wherein the first group or the second group includes at least one of the following: a single group of MVP candidates for a single candidate class, or A joint group of MVP candidates from multiple candidate categories.

29. The method of any one of claims 1 to 28, wherein a first threshold for a first deduplication process among the multiple deduplication processes is different from a second threshold for a second deduplication process among the multiple deduplication processes, the first deduplication process is applied to a first subset of candidates among the multiple MVP candidates, and the second deduplication process is applied to a remaining subset of candidates among the multiple MVP candidates.

30. The method of claim 29, wherein the first subset of candidates includes a single group of candidates associated with a first candidate category, and the candidates in the remaining subset are associated with a second candidate category, the second candidate category being different from the first candidate category.

31. The method of claim 29 or claim 30, wherein the first subset comprises adjacent candidates and the remaining subset comprises at least one of: Non-adjacent MVP candidates, History-based MVP (HMVP) candidates, Paired MVP candidates, or Zero MVP candidates.

32. The method of any one of claims 27 to 31, wherein the first threshold is greater than or less than the second threshold.

33. The method according to any one of claims 1 to 32, wherein determining the candidate list comprises: determining at least one group of candidates based on the plurality of MVP candidates, the group of candidates comprising MVP candidates associated with at least one candidate category; Based on the at least one group, determining a candidate hybrid group; sorting the candidate mixed groups; updating the sorted mixing group by adding at least one candidate to the sorted mixing group; as well as The candidate list is determined by applying a final round of deduplication to the mixed set of updated candidates.

34. The method of claim 33, wherein the at least one candidate category comprises at least one of: Adjacent MVP candidate categories, Non-adjacent MVP candidate categories, History-based MVP (HMVP) candidate categories, Paired MVP candidate categories, or Constructed MVP candidate categories.

35. A method according to claim 33 or claim 34, wherein the number of candidates in the at least one group is less than or equal to a threshold number.

36. The method of claim 35, wherein the threshold is a constant or is determined during the conversion.

37. The method of claim 35, wherein the threshold number is different for each of the at least one group.

38. The method of any one of claims 33 to 37, wherein the at least one group comprises a single group, and determining the single group comprises: The plurality of MVP candidates are added to the single group based on a predefined candidate category order.

39. The method of claim 38, wherein the number of candidates associated with a candidate class is less than or equal to a threshold number, the threshold number being a constant or determined during the converting.

40. A method according to any one of claims 33 to 39, wherein at least one deduplication process is applied to the at least one group of candidates, or At least one deduplication process is not applied to the at least one group of candidates.

41. The method of claim 40, wherein the at least one deduplication process is performed within the at least one group.

42. The method of claim 40, wherein the at least one deduplication process is performed between the at least one group.

43. The method according to any one of claims 40 to 42, wherein at least one deduplication threshold for the at least one group is the same or different.

44. A method according to any one of claims 33 to 43, wherein if the at least one group comprises a single group, the mixed group is the single group.

45. The method of any one of claims 33 to 43, wherein the at least one group comprises a plurality of groups to which a first pass deduplication process is not applied, and determining the mixed group comprises: During the merging process for merging the plurality of groups into the hybrid group, a second pass deduplication process is applied.

46. ​​The method of any one of claims 33 to 43, wherein the at least one group comprises a plurality of groups to which a first pass deduplication process is applied, and determining the mixed group comprises: The multiple groups are merged into the mixed group without applying a second pass deduplication process.

47. A method according to any one of claims 33 to 46, wherein the candidate hybrid groups are ordered based on at least one of: Adaptive Reordering Merge Candidate (ARMC), or Another metric.

48. The method according to any one of claims 33 to 47, further comprising: Before or after sorting the mixed group, at least a portion of the mixed group is refined based on at least one of: template matching or bilateral matching.

49. The method of any one of claims 33 to 48, wherein the zero MVP in the hybrid group is placed at the end of the ordered hybrid group.

50. The method of any one of claims 33 to 49, wherein the at least one candidate comprises a constructed candidate.

51. The method of claim 50, further comprising: Candidate updated hybrid groups are ranked.

52. A method according to claim 50 or claim 51, wherein the constructed candidates are generated based on the sorted hybrid groups.

53. A method according to any one of claims 50 to 52, wherein the constructed candidates include pairs of candidates.

54. A method according to any one of claims 50 to 53, wherein a deduplication process is applied to the updated hybrid group.

55. The method of any one of claims 33 to 54, wherein applying a final round of deduplication to the candidate updated hybrid group comprises: determining a plurality of template matching costs for candidates in the updated hybrid set of candidates; as well as The first candidate is selected from the updated mixed group by the following operations, and whether to discard the first candidate is determined by the following operations: determining a minimum cost difference between the first candidate in the updated hybrid group and the remaining candidates in the updated hybrid group; as well as If it is determined that the minimum cost difference is less than a threshold, discarding the first candidate from the updated hybrid group; as well as A second candidate is selected from the updated mixed group, and it is determined whether to discard the second candidate.

56. The method of claim 55, wherein the second candidate is in a position where a cost difference relative to a candidate in the MVP candidate list is greater than the threshold.

57. The method of claim 55 or claim 56, wherein the selecting the second candidate and determining whether to discard the second candidate is stopped after a predefined number of iterations, or after the number of candidates in the MVP candidate list reaches a predefined number.

58. The method according to any one of claims 55 to 57, wherein the threshold is determined based on codec information of the current video block.

59. The method according to claim 58, wherein the codec information of the current video block comprises at least one of the following: The quantization parameter (QP) of the current video block, or Parameters associated with the rate-distortion optimization (RDO) process.

60. A method according to any one of claims 1 to 59, wherein the method is applied to a first candidate before the first candidate is added to the candidate list, or the method is applied to a second candidate after the second candidate is added to the candidate list.

61. A method according to any one of claims 1 to 60, wherein information about applying the method is included in the bitstream.

62. The method of claim 61, wherein the information is included in at least one of: Sequence level, Picture group level, Picture level, Stripe level, Film group level, Sequence header. Picture header, Sequence Parameter Set (SPS), Video Parameter Set (VPS), Decoding Parameter Set (DPS), Decoding Capability Information (DCI), Picture Parameter Set (PPS), Adaptive Parameter Set (APS), Strip header, or Film group header.

63. The method of claim 61, wherein the information is included in a region containing more than one sample or pixel.

64. The method of claim 63, wherein the region comprises one of a prediction block (PB), a transform block (TB), a codec block (CB), a prediction unit (PU), a transform unit (TU), a codec unit (CU), a virtual pipeline data unit (VPDU), a codec tree unit (CTU), a CTU row, a slice, a slice, or a sub-picture.

65. The method of any one of claims 61 to 64, wherein the information is based on coded information of the current video block.

66. The method of claim 65, wherein the coded information comprises at least one of: a codec mode, a block size, a color format, a single or double tree partitioning, a color component, a slice type, or a picture type.

67. The method of any one of claims 1 to 66, wherein the converting comprises encoding the current video block into the bitstream.

68. The method of any one of claims 1 to 66, wherein the converting comprises decoding the current video block from the bitstream.

69. An apparatus for video processing, comprising a processor and a non-volatile memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to perform the method of any one of claims 1 to 68.

70. A non-transitory computer-readable storage medium storing instructions that cause a processor to perform the method according to any one of claims 1 to 68.

71. A non-transitory computer-readable recording medium storing a bit stream of a video, the bit stream being generated by a method performed by an apparatus for video processing, wherein the method comprises: determining a plurality of motion vector prediction (MVP) candidates for a current video block of the video; Determining a candidate list for the current video block by applying a plurality of deduplication processes to the plurality of MVP candidates; as well as Based on the candidate list, the bitstream is generated.

72. A method for storing a bitstream of a video, comprising: determining a plurality of motion vector prediction (MVP) candidates for a current video block of the video; Determining a candidate list for the current video block by applying a plurality of deduplication processes to the plurality of MVP candidates; Based on the candidate list, generating the bitstream; as well as The bit stream is stored in a non-transitory computer-readable recording medium.