Method and device for video processing and medium

By using intra-block copy-geometric segmentation mode (IBC-GPM) to divide and code video units, the problem of insufficient encoding and decoding efficiency in the prior art is solved, and a more efficient video encoding and decoding process is realized.

CN120283404APending Publication Date: 2025-07-08DOUYIN VISION CO LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380082279.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-11-29
Filing Date
2023-11-28
Publication Date
2025-07-08

AI Technical Summary

Technical Problem

The existing video encoding and decoding technology has room for improvement in encoding and decoding efficiency, especially when processing conversion between video units and bitstreams, the application of intra-block copying and geometric segmentation modes has not yet been optimized.

Method used

Intra-block copy-geometric segmentation mode (IBC-GPM) is used to divide and code video units, and the sub-segment prediction of video units is obtained by reordering the geometric segmentation mode set, combining intra-block copy to improve the encoding and codec performance.

Benefits of technology

By optimizing the division and prediction methods of video units, the performance and efficiency of video encoding and decoding are significantly improved, and the efficiency of the encoding and decoding process is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120283404A_ABST
    Figure CN120283404A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a solution for video processing. A method for video processing is presented. The method comprises: for a transition between a video unit of a video and a bitstream of the video, dividing the video unit into a plurality of sub-partitions using a predefined manner wherein the video unit is coded and decoded using Intra Block Copy (IBC) Geometric Partition Mode (GPM), and wherein a set of geometric Partition Mode used in IBC-GPM is reordered; obtaining a prediction of at least one sub-partition of the video unit using intra block copy; and performing the conversion based on the prediction of the at least one sub-partition of the video unit.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present disclosure generally relate to video processing technologies, and more particularly, to intra block copy with geometric partitioning. 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-T H.263, ITU-T H.264 / MPEG-4 Part 10 Advanced Video Coding (AVC), ITU-T H.265 High Efficiency Video Coding (HEVC) standard, Versatile Video Coding (VVC) standard. However, there is an overall expectation to further improve the encoding / decoding efficiency of video encoding / 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: for the conversion between a video unit of a video and a bitstream of the video, dividing the video unit into a plurality of sub-partitions in a predefined manner, where the video unit is encoded and decoded using an intra block copy (IBC)-geometric partitioning mode (GPM), and where the set of geometric partitioning modes used in the IBC-GPM is reordered; obtaining a prediction of at least one sub-partition of the video unit using intra block copy; and performing the conversion based on the prediction of at least one sub-partition of the video unit. In this way, the encoding / decoding performance and efficiency can be improved.

[0005] In a second aspect, another method for video processing is proposed. The method includes: for the conversion between a video unit of a video and a bitstream of the video, obtaining a prediction of at least one sub-partition of the video unit using either intra block copy (IBC) or one of the intra prediction modes, where the video unit is encoded and decoded using an intra block copy (IBC)-geometric partitioning mode (GPM), and where the IBC includes at least one of the following: IBC Merge mode or IBC Advanced Motion Vector Prediction (AMVP) mode; and performing the conversion based on the prediction of at least one sub-partition of the video unit. In this way, the encoding / decoding performance and efficiency can be improved.

[0006] In a third aspect, another method for video processing is proposed. The method includes: for the conversion between video units of a video and the bitstream of the video, dividing the video units into a plurality of sub-divisions in a predefined manner, wherein the video units are encoded and decoded using intra block copy (IBC)-geometry partitioning mode (GPM); obtaining a prediction of a region along the geometry partitioning edge of the video unit by mixing predictions of two sub-divisions of the video unit; and performing the conversion based on the prediction. In this way, the encoding and decoding performance and efficiency can be improved.

[0007] In a fourth aspect, an apparatus for video processing is proposed. The apparatus includes a processor and a non-transitory memory having instructions thereon. The instructions, when executed by the processor, cause the processor to execute the method according to the first or second or third aspect of the present disclosure.

[0008] In a fifth aspect, a non-transitory computer-readable storage medium is proposed. The non-transitory computer-readable storage medium stores instructions that cause a processor to execute the method according to the first or second or third aspect of the present disclosure.

[0009] In a sixth aspect, another non-transitory computer-readable recording medium is proposed. The non-transitory computer-readable recording medium stores the bitstream generated by the method executed by the apparatus for video processing of a video. The method includes: dividing the video units of the video into a plurality of sub-divisions in a predefined manner, wherein the video units are encoded and decoded using intra block copy (IBC)-geometry partitioning mode (GPM), and wherein the set of geometry partitioning modes used in IBC-GPM is reordered; obtaining a prediction of at least one sub-division of the video unit using intra block copy; and generating a bitstream based on the prediction of at least one sub-division of the video unit.

[0010] In a seventh aspect, a method for storing the bitstream of a video is proposed. The method includes: dividing the video units of the video into a plurality of sub-divisions in a predefined manner, wherein the video units are encoded and decoded using intra block copy (IBC)-geometry partitioning mode (GPM), and wherein the set of geometry partitioning modes used in IBC-GPM is reordered; obtaining a prediction of at least one sub-division of the video unit using intra block copy; generating a bitstream based on the prediction of at least one sub-division of the video unit; and storing the bitstream in a non-transitory computer-readable recording medium.

[0011] In an eighth aspect, another non-transitory computer-readable recording medium is provided. The non-transitory computer-readable recording medium stores a bitstream generated by a method executed by a device for video processing for a video. The method includes: obtaining a prediction of at least one sub-division of a video unit of the video using one of an intra block copy (IBC) or an intra prediction mode, where the video unit is encoded and decoded using an intra block copy (IBC)-geometry partitioning mode (GPM), and where the IBC includes at least one of the following: an IBC Merge mode or an IBC advanced motion vector prediction (AMVP) mode; and generating a bitstream based on the prediction of at least one sub-division of the video unit.

[0012] In a ninth aspect, a method for storing a bitstream of a video is provided. The method includes: obtaining a prediction of at least one sub-division of a video unit of the video using one of an intra block copy (IBC) or an intra prediction mode, where the video unit is encoded and decoded using an intra block copy (IBC)-geometry partitioning mode (GPM), and where the IBC includes at least one of the following: an IBC Merge mode or an IBC advanced motion vector prediction (AMVP) mode; generating a bitstream based on the prediction of at least one sub-division of the video unit; and storing the bitstream in a non-transitory computer-readable recording medium.

[0013] In a tenth aspect, another non-transitory computer-readable recording medium is provided. The non-transitory computer-readable recording medium stores a bitstream generated by a method executed by a device for video processing for a video. The method includes: dividing a video unit into a plurality of sub-divisions in a predefined manner, where the video unit is encoded and decoded using an intra block copy (IBC)-geometry partitioning mode (GPM); obtaining a prediction of a region along a geometric partitioning edge of the video unit by mixing predictions of two sub-divisions of the video unit; and generating a bitstream based on the prediction.

[0014] In an eleventh aspect, a method for storing a bitstream of a video is provided. The method includes: dividing a video unit into a plurality of sub-divisions in a predefined manner, where the video unit is encoded and decoded using an intra block copy (IBC)-geometry partitioning mode (GPM); obtaining a prediction of a region along a geometric partitioning edge of the video unit by mixing predictions of two sub-divisions of the video unit; generating a bitstream based on the prediction; and storing the bitstream in a non-transitory computer-readable recording medium.

[0015] The present invention content is provided to introduce a selection of concepts further described below in the detailed description in a simplified form. The present invention content 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

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

[0017] Figure 1 FIG. shows a block diagram showing an example video coding and decoding system according to some embodiments of the present disclosure;

[0018] Figure 2 FIG. shows a block diagram showing a first example video encoder according to some embodiments of the present disclosure;

[0019] Figure 3 FIG. shows a block diagram showing an example video decoder according to some embodiments of the present disclosure;

[0020] Figure 4 FIG. shows an example of an encoder block diagram;

[0021] Figure 5 FIG. shows 67 intra prediction modes;

[0022] Figure 6 FIG. shows reference sample points for wide-angle intra prediction;

[0023] Figure 7 FIG. shows the problem of discontinuity in the case of a direction exceeding 45°;

[0024] Figure 8 FIG. shows MMVD search points;

[0025] Figure 9 FIG. shows a symmetric MVD mode;

[0026] Figure 10 FIG. shows an extended CU region used in BDOF;

[0027] Figure 11 FIG. shows the top and left neighboring blocks used in CIIP weight derivation;

[0028] Figure 12 FIG. shows an affine motion model based on control points;

[0029] Figure 13 FIG. shows the affine MVF for each sub-block;

[0030] Figure 14 FIG. shows the position of the inherited affine motion prediction value;

[0031] Figure 15 FIG. shows control point motion vector inheritance;

[0032] Figure 16Shows the positions of candidate positions for the constructed affine Merge mode;

[0033] Figure 17 Is an illustration of the motion vector usage for the proposed combination method;

[0034] Figure 18 Shows the sub-block MV VSB and the pixel Δv(i,j);

[0035] Figure 19A Shows the spatial neighborhood blocks used by ATVMP;

[0036] Figure 19B Shows the derivation of the sub-CU motion field by applying the motion displacement from the spatial neighbors and scaling the motion information from the corresponding co-located CU;

[0037] Figure 20 Shows the position illumination compensation;

[0038] Figure 21 Shows the non-downsampling for the short side;

[0039] Figure 22 Shows the decoder-side motion vector refinement;

[0040] Figure 23 Shows the diamond region in the search area;

[0041] Figure 24 Shows the positions of the spatial Merge candidates;

[0042] Figure 25 Shows the candidate pairs considered for the redundancy check of the spatial Merge candidates;

[0043] Figure 26 Is an illustration of the motion vector scaling for the temporal Merge candidates;

[0044] Figure 27 Shows the candidate positions for the temporal Merge candidates C0 and C1;

[0045] Figure 28 Shows the VVC spatial neighborhood blocks of the current block;

[0046] Figure 29 Is an illustration of the virtual block in the i-th search round;

[0047] Figure 30 Shows an example of the GPM partition grouped by the same angle;

[0048] Figure 31 Shows the unidirectional prediction MV selection for the geometric partitioning mode;

[0049] Figure 32 Illustrates the exemplary generation of the hybrid weight w0 using a geometric partitioning pattern;

[0050] Figure 33 Illustrates the spatial neighboring blocks used for deriving the spatial Merge candidates;

[0051] Figure 34 Illustrates performing template matching on the search region around the initial MV;

[0052] Figure 35 Is an illustration of a sub - block to which OBMC is applied;

[0053] Figure 36 Illustrates the SBT position, type, and transform type;

[0054] Figure 37 Illustrates the neighboring samples used for calculating the SAD;

[0055] Figure 38 Illustrates the neighboring samples used for calculating the SAD for sub - CU level motion information;

[0056] Figure 39 Illustrates the sorting process;

[0057] Figure 40 Illustrates the re - sorting process in the encoder;

[0058] Figure 41 Illustrates the re - sorting process in the decoder;

[0059] Figure 42 Illustrates the IBC reference region depending on the current CU position;

[0060] Figure 43 Illustrates an example of symmetry in a screen content picture;

[0061] Figure 44A Is an illustration of the BV adjustment for horizontal flipping;

[0062] Figure 44B Is an illustration of the BV adjustment for vertical flipping;

[0063] Figure 45 Illustrates the in - frame template matching search region used;

[0064] Figure 46 Is an illustration of the template region;

[0065] Figure 47 Illustrates the ramp function of the weights for GPM mixing based on the displacement (d) from the predicted sample position to the GPM segmentation boundary and the mixing region size (τ);

[0066] Figure 48 Shows a GPM with inter - frame and intra - frame prediction;

[0067] Figure 49 Shows the edges on a template;

[0068] Figure 50 Shows the spatial - domain part of a convolution filter;

[0069] Figure 51 Shows the reference region (with its padding) used to derive filter coefficients;

[0070] Figure 52 Shows four Sobel - based gradient patterns for GLM;

[0071] Figure 53 Shows a flowchart of a method for video processing according to an embodiment of the present disclosure;

[0072] Figure 54 Shows a flowchart of a method for video processing according to an embodiment of the present disclosure;

[0073] Figure 55 Shows a flowchart of a method for video processing according to an embodiment of the present disclosure; and

[0074] Figure 56 Shows a block diagram of a computing device in which various embodiments of the present disclosure can be implemented.

[0075] Throughout all the figures, the same or similar reference numerals generally refer to the same or similar elements. Detailed Description

[0076] The principles of the present disclosure will now be described with reference to some embodiments. It should be understood that the description of these embodiments is for illustration only and to assist those skilled in the art in understanding and implementing the present disclosure, and does not imply any limitation on the scope of the present disclosure. The disclosure described herein can be implemented in various ways other than those described below.

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

[0078] As used in this disclosure, the terms "one embodiment", "embodiment", "example embodiment", etc. 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. In addition, these phrases do not necessarily refer to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an example embodiment, it is contended that such feature, structure, or characteristic, whether or not explicitly described, is within the knowledge of those skilled in the art in relation to other embodiments.

[0079] It should be understood that although terms such as "first" and "second" may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. 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 example embodiments. As used herein, the term "and / or" includes any and all combinations of one or more of the listed terms.

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

[0081] Figure 1 is a block diagram showing an example video coding and decoding system 100 that can utilize the techniques of this disclosure. As shown, the video coding and decoding 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.

[0082] The video source 112 may include sources such as video capture devices. Examples of video capture devices 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 combinations thereof.

[0083] 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 sequence of bits forming an encoded representation of the video data. The bitstream may include encoded pictures and associated data. An encoded picture is an encoded representation of a picture. The associated data may include a sequence parameter set, a picture parameter set, and other syntax structures. The I / O interface 116 may include a modulator / demodulator and / or a transmitter. The encoded video data may be directly transmitted to the destination device 120 via the I / O interface 116 over the network 130A. The encoded video data may also be stored on the storage medium / server 130B for access by the destination device 120.

[0084] 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 modulator. The I / O interface 126 may obtain the 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 external to the destination device 120, which is configured to interface with an external display device.

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

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

[0087] The video encoder 200 may be configured to implement any or all of the techniques of the present disclosure. In Figure 2 the example, the video encoder 200 includes a plurality of functional components. The techniques described in the present disclosure may be shared among the various components of the video encoder 200. In some examples, a processor may be configured to execute any or all of the techniques described in the present disclosure.

[0088] In some embodiments, the video encoder 200 may include a splitting 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 buffer 213, and an entropy encoding unit 214. The prediction unit 202 may include a mode selection unit 203, a motion estimation unit 204, a motion compensation unit 205, and an intra prediction unit 206.

[0089] 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 the picture in which the current video block is located.

[0090] In addition, although some components (such as the motion estimation unit 204 and the motion compensation unit 205) may be integrated, for purposes of explanation, these components are shown separately in Figure 2 the examples.

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

[0092] The mode selection unit 203 may select, for example, one coding mode (intra coding or inter coding) from a plurality of coding modes based on an error result, and provide the resulting intra-coded block or inter-coded block to the residual generation unit 207 to generate residual block data, and provide it to the reconstruction unit 212 to reconstruct the coded block for use as a reference picture. In some examples, the mode selection unit 203 may select an Intra-Inter Combined Prediction (CIIP) mode in which the prediction is based on an inter prediction signal and an intra prediction signal. In the case of inter prediction, the mode selection unit 203 may also select a resolution for the motion vector for the block (e.g., sub-pixel accuracy or integer-pixel accuracy).

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

[0094] The motion estimation unit 204 and the motion compensation unit 205 can perform different operations on a current video block, e.g., 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 composed of macroblocks, all of which are based on macroblocks within the same picture. Additionally, as used herein, in some aspects, a "P-slice" and a "B-slice" may refer to portions of a picture composed of macroblocks that are independent of macroblocks within the same picture.

[0095] In some examples, the motion estimation unit 204 can perform uni-directional prediction on a current video block, and the motion estimation unit 204 can search the reference pictures in list 0 or list 1 to find a reference video block for the current video block. The motion estimation unit 204 can then generate a reference index and a motion vector, where the reference index indicates the reference picture in list 0 or list 1 that contains the reference video block, and the motion vector indicates the spatial displacement between the current video block and the reference video block. The motion estimation unit 204 can 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 can 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.

[0096] Alternatively, in other examples, the motion estimation unit 204 can perform bi-directional prediction on a current video block. The motion estimation unit 204 can search the reference pictures in list 0 to find one reference video block for the current video block, and can also search the reference pictures in list 1 to find another reference video block for the current video block. The motion estimation unit 204 can then generate a plurality of reference indexes and a plurality of motion vectors, where the plurality of reference indexes indicate the plurality of reference pictures in list 0 and list 1 that contain the plurality of reference video blocks, and the plurality of motion vectors indicate the plurality of spatial displacements between the plurality of reference video blocks and the current video block. The motion estimation unit 204 can 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 can 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.

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

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

[0099] In another example, the motion estimation unit 204 may identify another video block and a motion vector difference (MVD) in the 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.

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

[0101] 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 the decoded samples of other video blocks in the same picture. The prediction data for the current video block may include a predicted video block and various syntax elements.

[0102] The residual generation unit 207 may generate residual data for the current video block by subtracting (e.g., indicated by a minus sign) the (multiple) predicted video blocks 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 the samples in the current video block.

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

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

[0105] After the transform processing unit 208 generates the transform coefficient video block associated with the current video block, the 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.

[0106] The inverse quantization unit 210 and the inverse transform unit 211 may respectively apply inverse quantization and inverse transform to the transformed coefficient video block to reconstruct the residual video block from the transformed coefficient video block. The reconstruction unit 212 may add the reconstructed residual video block to corresponding samples of one or more predicted 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.

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

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

[0109] Figure 3 is a block diagram illustrating an example of a video decoder 300 according to some embodiments of the present disclosure. The video decoder 300 may be Figure 1 an example of the video decoder 124 in the system 100 shown.

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

[0111] In Figure 3 the example, 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 may perform a decoding process generally opposite to the encoding process described with respect to the video encoder 200.

[0112] The entropy decoding unit 301 can retrieve the encoded bitstream. The encoded bitstream can include entropy-coded video data (e.g., encoded blocks of video data). The entropy decoding unit 301 can decode the entropy-coded video data, and the motion compensation unit 302 can determine motion information from the entropy-decoded video data, which includes motion vectors, motion vector precision, reference picture list indices, 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 from adjacent PBs and reference pictures. Motion information generally includes horizontal motion vector displacement values and vertical motion vector displacement values, one or two reference picture indices, and, in the case of a prediction region in a B slice, also an indication of which reference picture list is associated with each index. As used herein, in some aspects, "Merge mode" can refer to deriving motion information from spatially adjacent blocks or temporally adjacent blocks.

[0113] The motion compensation unit 302 can generate motion-compensated blocks, possibly performing interpolation based on an interpolation filter. An identifier for the interpolation filter used at sub-pixel precision can be included in the syntax element.

[0114] The motion compensation unit 302 can use the interpolation filter used by the video encoder 200 during the encoding of video blocks to calculate interpolated values for sub-integer pixels of a reference block. The motion compensation unit 302 can determine the interpolation filter used by the video encoder 200 according to the received syntax information, and the motion compensation unit 302 can use the interpolation filter to generate a prediction block.

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

[0116] The intra prediction unit 303 can use, for example, the intra prediction mode received in the bitstream to form a prediction block from spatially adjacent 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.

[0117] The reconstruction unit 306 can obtain the decoded block, for example, by adding a 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 can also be applied to filter the decoded block to remove block effect artifacts. The decoded video block is then stored in the cache 307, and the cache 307 provides reference blocks for subsequent motion compensation / intra prediction, and the cache 307 also generates the decoded video for presentation on a display device.

[0118] Some exemplary embodiments of the present disclosure will be described in detail below. It should be noted that the use of section headings in this document is for ease of understanding and does not limit the embodiments disclosed in the section to that section. Additionally, although some embodiments are described with reference to multi-functional video coding or other specific video codecs, the disclosed techniques are also applicable to other video coding techniques. Further, although some embodiments describe the video coding steps in detail, it should be understood that the corresponding decoding steps for decoding will be implemented by a decoder. Additionally, the term video processing includes video coding or compression, video decoding or decompression, and video transcoding, in which video pixels are represented from one compression format to another or at different compression bitrates. 1. Brief Overview The present disclosure relates to video coding and decoding techniques. Specifically, the present disclosure relates to intra block copy (IBC), how and / or whether to combine IBC with geometric partitioning, and other coding and decoding tools in image / video coding and decoding. The present disclosure can be applied to existing video coding and decoding standards such as HEVC or multi-functional video coding (VVC). The present disclosure is also applicable to future video coding and decoding standards or video codecs. 2. Introduction Video coding standards have mainly evolved from the well-known ITU-T and ISO / IEC standards. ITU-T developed H.261 and H.263, and ISO / IEC developed MPEG-1 and MPEG-4 Visual. The two organizations jointly developed the H.264 / MPEG-2 video, H.264 / MMPEG-4 Advanced Video Coding (AVC), and H.264 / HEVC standards. Since H.262, video coding standards have been based on a hybrid video coding structure that utilizes temporal prediction plus transform coding. To explore future video coding technologies beyond HEVC, VCEG and MPEG jointly established the Joint Video Exploration Team (JVET) in 2015. Since then, JVET has adopted many new methods and incorporated them into a reference software called the Joint Exploration Model (JEM). In April 2018, the Joint Video Exploration Team (JVET) between VCEG (Q6 / 16) and ISO / IEC JTC1 SC29 / WG11 (MPEG) was created to work on the VVC standard, with the goal of reducing the bitrate by 50% compared to HEVC. 2.1 Coding and Decoding Processes of Typical Video Codecs Figure 4 An example of the encoder block diagram of VVC is shown, which includes three loop filter blocks: Deblocking Filter (DF), Sample Adaptive Offset (SAO), and ALF. Different from the DF that uses predefined filters, SAO and ALF utilize the original samples of the current picture to reduce the mean square error between the original samples and the reconstructed samples by adding offsets and applying a Finite Impulse Response (FIR) filter respectively, where the coding side information is signaled by the offset and filter coefficients. ALF is located in the last processing stage of each picture and can be regarded as a tool to attempt to capture and repair the artifacts generated in the previous stage. 2.2 Intra Mode Coding and Decoding with 67 Intra Prediction Modes To capture any edge direction presented in natural videos, the number of directional intra modes is extended from 33 used in HEVC to 65, as Figure 5 shown, and the Planar mode and DC mode remain unchanged. These dense directional intra prediction modes are applicable to all block sizes and both luminance intra prediction and chrominance intra prediction. In HEVC, each intra-coded block has a square shape and the length of each side is a power of 2. Therefore, no division operation is required to generate intra prediction values using the DC mode. In VVC, blocks can have a rectangular shape, which generally requires a division operation for each block. To avoid the division operation for DC prediction, only the longer side is used to calculate the average value of non-square blocks. 2.2.1 Wide-angle Intra Prediction Although 67 modes are defined in VVC, the exact prediction direction for a given intra prediction mode index further depends on the block shape. The traditional angular intra prediction directions are defined as 45 degrees to -135 degrees in the clockwise direction. In VVC, several traditional angular intra prediction modes are adaptively replaced with wide-angle intra prediction modes for non-square blocks. The original mode index is used to signal the replaced mode, and the original mode index is remapped to the index of the wide-angle mode after parsing. The total number of intra prediction modes remains unchanged, i.e., 67, and the intra mode coding and decoding methods remain unchanged. To support these prediction directions, a top reference of length 2W+1 and a left reference of length 2H+1 are defined, as Figure 6 shown. The number of modes replaced in the wide-angle direction mode depends on the aspect ratio of the block. The intra prediction modes that are replaced are shown in Table 2-1. Table 2-1 Intra Prediction Modes Replaced by Wide-angle Modes As Figure 7 shown, in the case of wide-angle intra prediction, two vertically adjacent prediction samples can use two non-adjacent reference samples. Therefore, a low-pass reference sample filter and side smoothing are applied to wide-angle prediction to reduce the increased gap Δp α brought about by the negative impact. If the wide-angle mode represents a non-fractional offset. There are 8 modes in the wide-angle mode that meet this condition, which are [-14, -12, -10, -6, 72, 76, 78, 80]. When predicting a block through these modes, the samples in the reference buffer are directly copied without applying any interpolation. By this modification, the number of samples that need to be smoothed is reduced. In addition, it aligns the design of non-fractional modes in traditional prediction modes and wide-angle modes. In VVC, 4:2:2 and 4:4:4 chrominance formats as well as 4:2:0 chrominance format are supported. The chrominance derivation mode (DM) derivation table for the 4:2:2 chrominance format was originally ported from HEVC, and the number of entries was extended from 35 to 67 to align with the extension of the intra prediction mode. Since the HEVC specification does not support prediction angles below -135 degrees and above 45 degrees, the luminance intra prediction modes with ranges from 2 to 5 are mapped to 2. Therefore, the chrominance DM derivation table for the 4:2:2 chrominance format is updated by replacing some values of the entries in the mapping table to more accurately convert the prediction angles of chrominance blocks. 2.3 Inter Prediction For each inter prediction CU, the motion parameters include a motion vector, a reference picture index and a reference picture list use index, and additional information required for the new coding features of VVC that will be used for inter prediction sample generation. The motion parameters can be signaled in an explicit or implicit manner. When coding a CU in skip mode, the CU is associated with a PU and has no significant residual coefficients, no coded / decoded motion vector delta or reference picture index. A Merge mode is specified, whereby the motion parameters of the current CU, including spatial candidates and temporal candidates, as well as additional scheduling introduced in VVC, are obtained from neighboring CUs. The Merge mode can be applied to any inter prediction CU, not just the skip mode. An alternative to the Merge mode is the explicit transmission of the motion parameters, where the motion vector, the corresponding reference picture index and reference picture list use flag for each reference picture list, and other required information are signaled explicitly for each CU. 2.4 Intra Block Copy (IBC) Intra Block Copy (IBC) is a tool adopted in the HEVC extension on SCC. As is well known, it significantly improves the coding / decoding efficiency of screen content materials. Since the IBC mode is implemented as a block-level coding / decoding mode, block matching (BM) is performed at the encoder to find the best block vector (or motion vector) for each CU. Here, the block vector is used to indicate the displacement from the current block to the reference block that has been reconstructed within the current picture. The luminance block vector of the CU coded / decoded by IBC has integer precision. The chrominance block vector is also rounded to integer precision. When used in combination with AMVR, the IBC mode can switch between 1-pixel and 4-pixel motion vector precision. The CU coded / decoded by IBC is regarded as a third prediction mode in addition to the intra or inter prediction mode. The IBC mode is applicable to CUs with a width and height both less than or equal to 64 luminance samples. On the encoder side, hash-based motion estimation is performed for IBC. The encoder performs RD checks on blocks with a width or height not greater than 16 luminance samples. For non-Merge modes, a block vector search is first performed using hash-based search. If the hash search does not return a valid candidate, a block-matching based local search will be performed. In the hash-based search, the hash key match (32-bit CRC) between the current block and the reference block is extended to all allowed block sizes. The hash key calculation for each position in the current picture is based on 4×4 sub-blocks. For a current block with a larger size, the hash key is determined to match the hash key of the reference block when the hash keys of all 4×4 sub-blocks match the hash keys in the corresponding reference positions. If the hash keys of multiple reference blocks are found to match the hash key of the current block, the block vector cost of each matching reference is calculated, and the one with the minimum cost is selected. In block matching search, the search range is set to cover the previous CTU and the current CTU. At the CU level, the IBC mode is signaled using flags, which can be signaled as IBC AMVP mode or IBC skip / Merge mode as follows: - IBC skip / Merge mode: The Merge candidate index is used to indicate which block vector from the list of neighboring candidate IBC decoded blocks is used to predict the current block. The Merge list includes spatial candidates, HMVP candidates, and paired candidates. - IBC AMVP mode: The block vector difference is coded in the same way as the motion vector difference. The block vector prediction method uses two candidates as prediction values, one from the left neighbor and one from the upper neighbor (if it is IBC decoded). When either neighbor is not available, the default block vector is used as the prediction value. A flag is signaled to indicate the block vector prediction value index. 2.5 Merge Mode with MVD (MMVD) In addition to the Merge mode, in the case where the implicitly derived motion information is directly used for the prediction sample generation of the current CU, the Merge mode with motion vector difference (MMVD) is introduced in VVC. The MMVD flag is signaled immediately after the regular Merge flag to specify whether the MMVD mode is used for the CU. In MMVD, after selecting the Merge candidate, it is further refined by the signaled MVD information. The further information includes the Merge candidate flag, the index for specifying the motion magnitude, and the index for indicating the motion direction. In the MMVD mode, one of the first two candidates in the Merge list is selected to be used as the MV basis. The MMVD candidate flag is signaled to specify which one of the first Merge candidate and the second Merge candidate is used. The distance index specifies the motion magnitude information and indicates a predefined offset from the starting point. As Figure 8 shown, the offset is added to the horizontal or vertical component of the starting MV. The relationship between the distance index and the predefined offset is specified in Table 2-2. Table 2-2 Relationship between Distance Index and Predefined Offset The direction index indicates the direction of the MVD relative to the starting point. The direction index can indicate four directions as shown in Table 2-3. It should be noted that the meaning of the MVD symbol can vary according to the information of the starting MV. When the starting MV is a non-predictive MV or a bi-predictive MV where the two lists point to the same side of the current picture (i.e., the POCs of both references are greater than the POC of the current picture, or both are less than the POC of the current picture), the symbol in Table 2-3 specifies the sign of the MV offset added to the starting MV. When the starting MV is a bi-predictive MV with two MVs to different sides of the current picture (i.e., the POC of one reference is greater than the POC of the current picture and the POC of the other reference is less than the POC of the current picture), and the POC difference in List 0 is greater than the POC difference in List 1, the symbol in Table 2-3 specifies the sign of the MV offset of the List 0 MV component, and the sign of the List 1 MV has the opposite value. Otherwise, if the POC difference in List 1 is greater than the POC difference in List 0, then the symbol in Table 2-3 specifies the sign of the MV offset of the List 1 MV component added to the starting MV, and the sign of the List 0 MV has the opposite value. The MVD is scaled according to the POC differences in each direction. If the POC differences in the two lists are the same, no scaling is required. Otherwise, if the POC difference in List 0 is greater than the POC difference in List 1, then as Figure 26 described, the MVD of List 1 is scaled by defining the POC difference of L0 as td and the POC difference of L1 as tb. If the POC difference of L1 is greater than the POC difference of L0, then the MVD of List 0 is scaled in the same way. If the starting MV is unidirectionally predicted, then the MVD is added to the available MV. Table 2-3 Signs of MV offsets specified by the direction index Direction IDX 00 01 10 11 x-axis + - N / A N / A y-axis N / A N / A + - 2.6. Symmetric MVD Coding and Decoding In VVC, in addition to the regular unidirectional prediction mode MVD signaling and bi-predictive mode MVD signaling, the symmetric MVD mode is applied to the bi-predictive MVD signaling. In the symmetric MVD mode, the motion information including the reference picture indices of both List 0 and List 1 and the MVD of List 1 is not signaled but derived. The decoding process of the symmetric MVD mode is as follows: 1) At the slice level, the variables BiDirPredFlag, RefIdxSymL0, and RefIdxSymL1 are derived as follows: – If mvd_l1_zero_flag is 1, then BiDirPredFlag is set to be equal to 0. – Otherwise, if the nearest reference picture in List 0 and the nearest reference picture in List 1 form a forward and backward reference picture pair or a backward and forward reference picture pair, then BiDirPredFlag is set to 1, and both the List 0 reference picture and the List 1 reference picture are short-term reference pictures. Otherwise, BiDirPredFlag is set to 0. 2) At the CU level, if the CU is bi-directionally predicted and decoded and BiDirPredFlag is equal to 1, then the symmetry mode flag indicating whether the symmetry mode is used is explicitly signaled. When the symmetry mode flag is true, only mvp_l0_flag, mvp_l1_flag, and MVD0 are explicitly signaled. The reference indices of List 0 and List 1 are respectively set to be equal to the reference picture pair. MVD1 is set to be equal to (-MVD0). The final motion vector is as shown in the following formula. In the encoder, symmetric MVD motion estimation starts from the initial MV evaluation. A set of initial MV candidates includes the MVs obtained from unidirectional prediction search, the MVs obtained from bidirectional prediction search, and the MVs from the AMVP list. The one with the lowest distortion rate cost is selected as the initial MV for the symmetric MVD motion search. 2.7. Bidirectional Optical Flow (BDOF) The bidirectional optical flow (BDOF) tool is included in VVC. BDOF, previously called BIO, is included in JEM. Compared with the JEM version, BDOF in VVC is a simpler version and requires much less computation, especially in terms of the number of multiplications and the size of the multiplier. BDOF is used to refine the bidirectional prediction signal of the CU at the 4×4 sub-block level. BDOF is applied to the CU if all of the following conditions are met: – The CU is decoded using the "true" bidirectional prediction mode, i.e., one of the two reference pictures is prior to the current picture in the display order, and the other of the two reference pictures is after the current picture in the display order; – The distances from the two reference pictures to the current picture (i.e., the POC differences) are the same; – Both of the two reference pictures are short-term reference pictures; – The CU is not decoded using the affine mode or the SbTMVPMerge mode; – The CU has more than 64 luma samples; – Both the CU height and the CU width are greater than or equal to 8 luma samples; – The BCW weight index indicates equal weights; – WP is not enabled for the current CU; – The CIIP mode is not used for the current CU. BDOF is only applied to the luma component. As its name implies, the BDOF mode is based on the optical flow concept, which assumes that the motion of an object is smooth. For each 4×4 sub-block, the motion refinement (v x , v y ) is calculated by minimizing the difference between the L0 predicted samples and the L1 predicted samples. Then the motion refinement is used to adjust the bi-predicted sample values in the 4x4 sub-block. The following steps are applied during the BDOF process. First, by directly calculating the differences between two neighboring samples, the horizontal and vertical gradients of the two prediction signals, and k = 0, 1, are calculated, i.e., where I (k) (i, j) is the sample value at the prediction signal coordinates (i, j) in the list k, k = 0, 1, and shift1 is calculated based on the luma bit depth bitDepth as shift1 = max(6, bitDepth - 6). Then, the auto-correlations and cross-correlations of the gradients S1, S2, S3, S5, and S6 are calculated as follows where where Ω is a 6×6 window around the 4×4 sub-block, and n a and n b are set to min(1, bitDepth - 11) and min(4, bitDepth - 8), respectively. Then, using the cross-correlation terms and auto-correlation terms, the motion refinement (v x , v y ) is derived using the following method: where th′ BIO = 2 max(5,BD-7) . is the floor function, and Based on the motion refinement and the gradients, the following adjustment is calculated for each sample in the 4x4 sub-block: Finally, the BDOF samples of the CU are calculated by adjusting the bi-predicted samples in the following manner: These values are selected such that the multipliers in the BDOF process do not exceed 15 bits and the maximum bitwidth of the intermediate parameters in the BDOF process remains within 32 bits. To derive the gradient values, some predicted sample points I in list k (k = 0, 1) outside the current CU boundary (k) (i,j) need to be generated. As Figure 10 Depicted, BDOF in VVC uses an extended row / column around the boundary of the CU. To control the computational complexity of generating the predicted sample points outside the boundary, the predicted sample points (white positions) in the extended region are generated by directly taking the reference sample points at nearby integer positions (using the floor() operation on the coordinates) without using interpolation, and the regular 8-tap motion compensation interpolation filter is used to generate the predicted sample points (gray positions) inside the CU. These extended sample point values are only used for gradient calculation. For the remaining steps in the BDOF process, if any sample point values and gradient values outside the CU boundary are needed, these sample point values and gradient values are filled (i.e., repeated) from their nearest neighbors. When the width and / or height of the CU is greater than 16 luma sample points, it is divided into sub-blocks with width and / or height equal to 16 luma sample points, and the sub-block boundaries are regarded as the CU boundaries in the BDOF process. The maximum unit size of the BDOF process is limited to 16x16. For each sub-block, the BDOF process can be skipped. When the SAD between the initial L0 predicted sample points and the L1 predicted sample points is less than the threshold, the BDOF process is not applied to the sub-block. The threshold is set to be equal to (8 * W * (H >> 1), where W represents the sub-block width and H represents the sub-block height. To avoid the additional complexity of SAD calculation, the SAD calculated in the DVMR process between the initial L0 predicted sample points and the L1 predicted sample points is reused here. If BCW is enabled for the current block, i.e., the BCW weight index indicates unequal weights, then the bidirectional optical flow is disabled. Similarly, if WP is enabled for the current block, i.e., the luma_weight_lx_flag of any one of the two reference pictures is 1, then the BDOF is also disabled. When the CU is encoded and decoded using the symmetric MVD mode or the CIIP mode, the BDOF is also disabled. 2.8. Intra-Inter Joint Prediction (CIIP) In VVC, when the CU is encoded and decoded in the Merge mode, if the CU contains at least 64 luma sample points (i.e., the CU width multiplied by the CU height is equal to or greater than 64), and if both the CU width and the CU height are less than 128 luma sample points, then an additional flag is signaled to indicate whether the inter / intra joint prediction (CIIP) mode is applied to the current CU. As the name implies, CIIP prediction combines the inter prediction signal with the intra prediction signal. The inter prediction signal P in the CIIP mode interThe same inter - frame prediction process applied to the conventional Merge mode is derived; and the intra - frame prediction signal P intra is derived after the conventional intra - frame prediction process with planar mode. Then, weighted average is used to combine the intra - frame and inter - frame prediction signals, where the weight value depends on the coding / decoding modes of the top and left neighboring blocks (depicted in Figure 11 ) and is calculated as follows: – If the top neighbor is available and intra - frame coded, then set isIntrapTop to 1, otherwise set isIntrapTop to 0; – If the left neighbor is available and intra - frame coded, then set isIntraLeft to 1, otherwise set isIntraLeft to 0; – If (isIntraLeft + isIntrapTop) equals 2, then set wt to 3; – Otherwise, if (isIntraLeft + isIntrapTop) equals 1, then set wt to 2; – Otherwise, set wt to 1. The CIIP prediction is formed as follows: P CIIP = ((4 - wt)*P inter + wt*P intra + 2) >> 2 (2 - 8) 2.9. Affine Motion Compensation Prediction In HEVC, only the translational motion model is applied to motion compensation prediction (MCP). In the real world, there are many kinds of motions, such as zoom - in / zoom - out, rotation, perspective motion, and other irregular motions. In VVC, block - based affine transform motion compensation prediction is applied. As Figure 12 shown, the affine motion field of a block is described by the motion information of two control points (4 - parameter) or three - control - point motion vectors (6 - parameter). For the 4 - parameter affine motion model, the motion vector at the sample position (x, y) in the block is derived as: For the 6 - parameter affine motion model, the motion vector at the sample position (x, y) in the block is derived as: where (mv 0x , mv 0y ) is the motion vector of the upper - left control point, (mv 1x , mv 1y ) is the motion vector of the upper - right control point, and (mv 2x , mv 2y) is the motion vector of the bottom - left control point. To simplify motion - compensation prediction, block - based affine - transform prediction is applied. To derive the motion vector of the center sample of each 4×4 luma sub - block, the motion vector of the center sample of each sub - block is calculated according to the above equation (as Figure 13 shown), and rounded to 1 / 16 fractional precision. Then a motion - compensation interpolation filter is applied to generate the prediction of each sub - block with the derived motion vector. The sub - block size of the chrominance component is also set to 4×4. The MV of a 4×4 chrominance sub - block is calculated as the average of the MVs of 4 corresponding 4×4 luma sub - blocks. Similar to translational - motion inter - frame prediction, there are also two affine - motion inter - frame prediction modes: affine Merge mode and affine AMVP mode. 2.9.1. Affine Merge Prediction The AF_MERGE mode can be applied to CUs whose width and height are both greater than or equal to 8. In this mode, the CPMV of the current CU is generated based on the motion information of spatially - adjacent CUs. There can be up to five CPMV candidates, and an index is signaled to indicate the one to be used for the current CU. The following three types of CPVM candidates are used to form the affine Merge candidate list: – Inherited affine Merge candidates inferred from the CPMVs of adjacent CUs; – Constructed affine Merge candidate CPMV derived using the translational MVs of adjacent CUs; – Zero MV. In VVC, there are at most two inherited affine candidates, which are derived from the affine - motion models of adjacent blocks, one from the left - adjacent CU and one from the above - adjacent CU. The candidate blocks are as Figure 14 shown. For the prediction values on the left, the scan order is A0->A1, and for the prediction values above, the scan order is B0->B1->B2. Only the first inherited candidate from each side is selected. No deduplication check is performed between the two inherited candidates. When the adjacent affine CU is identified, its control - point motion vector is used to derive the CPMV candidates in the affine Merge list of the current CU. As Figure 30 shown, if the adjacent bottom - left block A is coded in affine mode, the motion vectors v2, v3, and v4 of the top - left, top - right, and bottom - left corners of the CU containing block A are obtained. When block A is coded with a 4 - parameter affine model, two CPMVs of the current CU are calculated based on v2 and v3. When block A is coded with a 6 - parameter affine model, three CPMVs of the current CU are calculated based on v2, v3, and v4. The constructed affine candidate refers to constructing the candidate by combining the adjacent translational - motion information of each control point. The motion information of the control point is from Figure 31The specified spatial neighborhood and temporal neighborhood shown in are derived, and the CPMV k (k = 1, 2, 3, 4) represents the k-th control point. For CPMV1, the B2->B3->A2 block is examined, and the MV of the first available block is used. For CPMV2, the B1->B0 block is examined, and for CPMV3, the A1->A0 block is examined. TMVP is used as CPMV4 (if available). After obtaining the MVs of the four control points, affine Merge candidates are constructed based on this motion information. The following combinations of control point MVs are used to construct in sequence: {CPMV1, CPMV2, CPMV3}, {CPMV1, CPMV2, CPMV4}, {CPMV1, CPMV3, CPMV4}, {CPMV2, CPMV3, CPMV4}, {CPMV1, CPMV2}, {CPMV1, CPMV3}. Combinations of 3 CPMVs construct 6-parameter affine Merge candidates, and combinations of 2 CPMVs construct 4-parameter affine Merge candidates. To avoid the motion scaling process, if the reference indices of the control points are different, the relevant combinations of control point MVs are discarded. After examining the inherited affine Merge candidates and the constructed affine Merge candidates, if the list is still not full, zero MVs are inserted at the end of the list. 2.9.2. Affine AMVP Prediction The affine AMVP mode can be applied to CUs with widths and heights greater than or equal to 16. In the bitstream, a CU-level affine flag is signaled to indicate whether the affine AMVP mode is used, and then another flag is signaled to indicate whether it is 4-parameter affine or 6-parameter affine. In this mode, the difference between the CPMV of the current CU and its predicted value CPMVP is signaled in the bitstream. The affine AVMP candidate list size is 2, and it is generated by sequentially using the following four types of CPVM candidates: – Inherited affine AMVP candidates inferred from the CPMVs of neighboring CUs; – Constructed affine AMVP candidate CPMVP derived using the translational MVs of neighboring CUs; – Translational MVs from neighboring CUs; – Zero MVs. The checking order of the inherited affine AMVP candidates is the same as that of the inherited affine Merge candidates. The only difference is that for AVMP candidates, only affine CUs with the same reference picture as in the current block are considered. When inserting the inherited affine motion prediction values into the candidate list, the deduplication process is not applied. The constructed AMVP candidates are fromFigure 16 It is derived in the specified spatial neighborhood shown. The same checking order as in the affine Merge candidate construction is used. In addition, the reference picture indices of neighboring blocks are also checked. The first block in the checking order is used, which is inter-coded and has the same reference picture as in the current CU. There is only one. When the current CU is coded using the 4-parameter affine mode and both mv0 and mv1 are available, they are added as a candidate in the affine AMVP list. When the current CU is coded using the 6-parameter affine mode and all three CPMVs are available, they are added as a candidate in the affine AMVP list. Otherwise, the constructed AMVP candidate is set to unavailable. If the affine AMVP list candidates are still less than 2 after inserting valid inherited affine AMVP candidates and constructed AMVP candidates, mv0, mv1, and mv2 will be added in order as translational MVs to predict all control point MVs of the current CU when available. Finally, if the affine AMVP list is still not full, zero MVs are used to fill the list. 2.9.3 Affine Motion Information Storage In VVC, the CPMVs of affine CUs are stored in a separate cache. The stored CPMVs are only used to generate the inherited CPMVs in the affine Merge mode and the inherited CPMVs in the affine AMVP mode for the most recently coded CU. The sub-block MVs derived from the CPMVs are used for motion compensation, MV derivation for the Merge / AMVP list of translational MVs, and deblocking. To avoid picture line caches for additional CPMVs, the inheritance from the affine motion data of the CU above the CTU is processed differently from the inheritance from normal neighboring CUs. If the candidate CU for affine motion data inheritance is in the row above the CTU, the left-bottom and right-bottom sub-block MVs in the line cache are used instead of the CPMVs for affine MVP derivation. In this way, the CPMVs are only stored in the local cache. If the candidate CU is 6-parameter affine coded, the affine model is degraded to a 4-parameter model. As Figure 17 shown, along the top boundary of the CTU, the left-bottom and right-bottom sub-block motion vectors of the CU are used for affine inheritance of the CU in the bottom of the CTU. 2.9.4 Prediction Refinement Using Optical Flow for Affine Modes Compared with pixel-based motion compensation, block-based affine motion compensation can save memory access bandwidth and reduce computational complexity, but at the cost of loss of prediction accuracy. To achieve a finer motion compensation granularity, Prediction Refinement using Optical Flow (PROF) is used to refine the block-based affine motion compensation prediction without increasing the memory access bandwidth for motion compensation. In VVC, after block-based affine motion compensation is performed, the luma prediction samples are refined by adding the differences derived from the optical flow equations. PROF is described as the following four steps: Step 1) Block-based affine motion compensation is performed to generate the block prediction I(i,j). Step 2) Using a 3-tap filter [-1,0,1], the spatial gradients g x (i,j) and g y (i,j) are calculated at each sample position. The gradient calculation is exactly the same as that in BDOF. g x (i, j) = (I(i+1, j) >> shift1) - (I(i-1, j) >> shift1) (2-11) g y (i, j) = (I(i, j+1) >> shift1) - (I(i, j-1) >> shift1) (2-12) shift1 is used to control the accuracy of the gradient. The block (i.e., 4x4) prediction is extended by one sample on each side for gradient calculation. To avoid additional memory bandwidth and additional interpolation calculations, those extended samples on the extended boundaries are copied from the nearest integer pixel positions in the reference picture. Step 3) Luma prediction refinement is calculated through the following optical flow equation. ΔI(i, j) = g x (i,j) * Δv x (i,j) + g y (i,j) * Δv y (i,j) (2-13) where as Figure 18 shown, Δv(i,j) is the sample MV calculated for the sample position (i,j), denoted as v(i,j), which is the difference from the block MV of the block to which the sample (i,j) belongs. Δv(i,j) is quantized in units of 1 / 32 luma sample accuracy. Since the affine model parameters and the sample position relative to the block center do not change from block to block, Δv(i,j) can be calculated for the first block and reused for other blocks in the same CU. Let dx(i,j) and dy(i,j) be the distances from the sample position (i,j) to the block center (x SB ,ySB )'s horizontal and vertical offsets, Δv(x, y) can be derived by the following equation. To maintain accuracy, the input of sub-block (x SB , y SB ) is calculated as ((W SB - 1) / 2, (H SB - 1) / 2), where W SB and H SB are the width and height of the sub-block respectively. For the 4-parameter affine model, For the 6-parameter affine model, where (v 0x , v 0y ), (v 1x , v 1y ), (v 2x , v 2y ) are the motion vectors of the control points at the upper left, upper right, and lower left, and w and h are the width and height of the CU. Step 4) Finally, the luminance prediction refinement ΔI(i, j) is added to the sub-block prediction I(i, j). The final prediction I’ is generated by the following equation. I′(i, j) = I(i, j) + ΔI(i, j) (2-18) PROF is not applicable to affine-coded CUs in two cases: 1) all control point MVs are the same, which indicates that the CU only has translational motion; 2) the affine motion parameters are greater than the specified limit because the sub-block-based affine MC is degraded to CU-based MC to avoid large memory access bandwidth requirements. Fast coding and decoding methods are applied to reduce the coding and decoding complexity of affine motion estimation using PROF. In the following two cases, PROF is not applied to the affine motion estimation stage: a) If the CU is not a root block and the parent block of the CU does not select the affine mode as its best mode, then PROF is not applied because the probability that the current CU selects the affine mode as the best mode is low; b) If the magnitudes of all four affine parameters (C, D, E, F) are less than a predefined threshold and the current picture is not a low-latency picture, then PROF is not applied because the improvement introduced by PROF for this case is small. In this way, the affine motion estimation using PROF can be accelerated. 2.10. Sub-block-based Temporal Motion Vector Prediction (SbTMVP) VVC supports the sub - block - based temporal motion vector prediction (SbTMVP) method. Similar to the temporal motion vector prediction (TMVP) in HEVC, SbTMVP uses the motion field in the co - located picture to improve the motion vector prediction and the Merge mode of the CUs in the current picture. The same co - located picture used by TMVP is used for SbTMVP. SbTMVP differs from TMVP in the following two main aspects: – TMVP predicts the motion at the CU level, but SbTMVP predicts the motion at the sub - CU level; – While TMVP fetches the temporal motion vector from the co - located block in the co - located picture (the co - located block is the bottom - right block or the center block relative to the current CU), SbTMVP applies a motion offset before fetching the temporal motion information from the co - located picture, where the motion offset is obtained from the motion vector of one of the spatial neighboring blocks of the current CU. The SbTVMP process is shown in Figure 19A and Figure 19B SbTMVP predicts the motion vectors of the sub - CUs within the current CU in two steps. In the first step, the spatial neighbor A1 in Figure 19A is checked. If A1 has a motion vector using the co - located picture as its reference picture, then that motion vector is selected as the motion offset to be applied. If no such motion is identified, the motion offset is set to (0, 0). In the second step, the motion offset identified in step 1 is applied (i.e., added to the coordinates of the current picture) to obtain the sub - CU level motion information (motion vector and reference index) from the co - located picture as shown in Figure 19B The example in Figure 19B assumes that the motion offset is set to the motion of block A1. Then, for each sub - CU, the motion information of its corresponding block (the smallest motion grid covering the center sample) in the co - located picture is used to derive the motion information of the sub - CU. After identifying the motion information of the co - located sub - CU, it is converted to the motion vector and reference index of the current sub - CU in a manner similar to the TMVP process in HEVC, where temporal motion scaling is applied to align the reference picture of the temporal motion vector with the reference picture of the current CU. In VVC, a combined sub-block based Merge list containing both SbTMVP candidates and affine Merge candidates is used for signaling the sub-block based Merge mode. The SbTMVP mode is enabled / disabled by a Sequence Parameter Set (SPS) flag. If the SbTMVP mode is enabled, the SbTMVP prediction value is added as the first entry of the list of sub-block based Merge candidates, followed by the affine Merge candidates. The size of the sub-block based Merge list is signaled in the SPS, and the maximum allowed size of the sub-block based Merge list in VVC is 5. The sub-CU size used in SbTMVP is fixed to 8x8, and like the affine Merge mode, the SbTMVP mode is only applicable to CUs with both width and height greater than or equal to 8. The encoding / decoding logic for additional SbTMVP Merge candidates is the same as that for other Merge candidates, i.e., for each CU in a P or B slice, an additional RD check is performed to determine whether to use the SbTMVP candidate. 2.11. Adaptive Motion Vector Resolution (AMVR) In HEVC, when use_integer_mv_flag in the slice header is equal to 0, the Motion Vector Difference (MVD) (between the motion vector of the CU and the predicted motion vector) is signaled in quarter-luminance samples. In VVC, a CU-level Adaptive Motion Vector Resolution (AMVR) scheme is introduced. AMVR allows the MVD of a CU to be encoded / decoded with different precisions. Depending on the mode of the current CU (normal AMVP mode or affine AVMP mode), the MVD of the current CU can be adaptively selected as follows: – Normal AMVP mode: quarter-luminance sample, half-luminance sample, integer-luminance sample, or four-luminance samples. – Affine AMVP mode: quarter-luminance sample, integer-luminance sample, or 1 / 16-luminance sample. If the current CU has at least one non-zero MVD component, the CU-level MVD resolution indication is conditionally signaled. If all MVD components (i.e., both the horizontal MVD and vertical MVD of reference list L0 and reference list L1) are zero, a quarter-luminance sample MVD resolution is inferred. For a CU with at least one non-zero MVD component, the first flag is signaled to indicate whether quarter-luma sample MVD precision is used for the CU. If the first flag is 0, no further signaling is required and quarter-luma sample MVD precision is used for the current CU. Otherwise, the second flag is signaled to indicate whether half-luma samples or other MVD precision (integer or quarter-luma samples) is used for normal AMVP CUs. In the case of half-luma samples, the half-luma sample positions use a 6-tap interpolation filter instead of the default 8-tap interpolation filter. Otherwise, the third flag is signaled to indicate whether integer-luma samples or quarter-luma samples MVD precision is used for normal AMVP CUs. In the case of affine AMVP CUs, the second flag is used to indicate whether integer-luma sample MVD precision or 1 / 16-luma sample MVD precision is used. To ensure that the reconstructed MVs have the expected precision (quarter-luma samples, half-luma samples, integer-luma samples or quarter-luma samples), the predicted motion vector of the CU is rounded to the same precision as the MVD before being added to the MVD. The predicted motion vector is rounded to zero (i.e., negative predicted motion vectors are rounded to positive infinity and positive predicted motion vectors are rounded to negative infinity). The encoder uses RD checking to determine the motion vector resolution of the current CU. To avoid always performing four CU-level RD checks for each MVD resolution, in VTM11, the RD checks for MVD precisions other than quarter-luma samples are only conditionally invoked. For normal AVMP mode, first the RD cost for quarter-luma sample MVD precision and the RD cost for integer-luma sample MV precision are calculated. Then, the RD cost for integer-luma sample MVD precision is compared with the RD cost for quarter-luma sample MVD precision to decide whether it is necessary to further check the RD cost for quarter-luma samples MVD precision. When the RD cost for quarter-luma sample MVD precision is much smaller than the RD cost for integer-luma sample MVD precision, the RD check for quarter-luma samples MVD precision is skipped. Then, if the RD cost for integer-luma sample MVD precision is significantly larger than the best RD cost of the previously tested MVD precision, the check for half-luma sample MVD precision is skipped. For affine AMVP mode, if no affine inter mode is selected after checking the rate-distortion costs of affine Merge / skip mode, Merge / skip mode, quarter-luma sample MVD precision normal AMVP mode and quarter-luma sample MVD precision affine AMVP mode, the 1 / 16-luma sample MV precision and 1-pixel MV precision affine inter modes are not checked. In addition, in the 1 / 16-luma sample and quarter-luma sample MV precision affine inter modes, the affine parameters obtained in the quarter-luma sample MV precision affine inter mode are used as the starting search point. 2.12. Bi - directional prediction with CU - level weights (BCW) In HEVC, a bi - directional prediction signal is generated by averaging two prediction signals obtained from two different reference pictures and / or using two different motion vectors. In VVC, the bi - directional prediction mode is extended beyond simple averaging to allow weighted averaging of the two prediction signals. P bi-pred = ((8 - w)*P0+w*P1 + 4)>>3 (2 - 19) In weighted - average bi - directional prediction, five weights are allowed, w∈{-2, 3, 4, 5, 10}. For each bi - directional prediction CU, the weight w is determined in one of two ways: 1) For non - Merge CUs, the weight index is signaled after the motion - vector difference; 2) For Merge CUs, the weight index is inferred from neighboring blocks based on the Merge candidate index. BCW is only applied to CUs with 256 or more luma samples (i.e., CU width times CU height is greater than or equal to 256). For low - latency pictures, all 5 weights are used. For non - low - latency pictures, only 3 weights (w∈{3, 4, 5}) are used. – At the encoder, a fast - search algorithm is applied to find the weight index without significantly increasing the encoder complexity. These algorithms are summarized as follows. The reader can refer to the VTM software and the literature JVET - L0646 for further details. When combined with AMVR, if the current picture is a low - latency picture, unequal weights are only conditionally checked for 1 - pixel and 4 - pixel motion - vector precisions. – When combined with affine, unequal - weight affine ME is performed if and only if the affine mode is selected as the current best mode. – When the two reference pictures in bi - directional prediction are the same, unequal weights are only conditionally checked. – Unequal weights are not searched when certain conditions are met, depending on the POC distance between the current picture and its reference pictures, the coding - decoding QP, and the temporal level. The BCW weight index is decoded using one context - coded bit followed by bypass - coded bits. The first context - coded bit indicates whether equal weights are used; and if unequal weights are used, additional bits are signaled using bypass coding to indicate which unequal weight is used. Weighted Prediction (WP) is a coding tool supported by the H.264 / AVC and HEVC standards for efficient coding and decoding of video content in fading situations. Support for WP has also been added in the VVC standard. WP allows signaling of weighting parameters (weights and offsets) for each reference picture in each of the reference picture lists L0 and L1. Then, during motion compensation, the (multiple) weights and (multiple) offsets of the corresponding (multiple) reference pictures are applied. WP and BCW are designed for different types of video content. To avoid interaction between WP and BCW, which would complicate the VVC decoder design, if a CU uses WP, the BCW weight index is not signaled and w is inferred to be 4 (i.e., equal weights are applied). For Merge CUs, the weight index is inferred from neighboring blocks based on the Merge candidate index. This can be applied to both the normal Merge mode and the inherited affine Merge mode. For the constructed affine Merge mode, affine motion information is constructed based on the motion information of up to 3 blocks. The BCW index of a CU using the constructed affine Merge mode is simply set to be equal to the BCW index of the first control point MV. In VVC, CIIP and BCW cannot be jointly applied to a CU. When a CU is coded and decoded using the CIIP mode, the BCW index of the current CU is set to 2, e.g., equal weights. 2.13. Local Illumination Compensation (LIC) Local Illumination Compensation (LIC) is a coding tool for solving the problem of local illumination change between the current picture and its temporal reference pictures. LIC is based on a linear model where a scaling factor and an offset are applied to the reference samples to obtain the predicted samples of the current block. Specifically, LIC can be mathematically modeled by the following equation: P(x, y) = α·P r (x + v x , y + v y ) + β where P(x,y) is the predicted signal of the current block at coordinates (x,y); P r (x + v x , y + v y ) is the reference block pointed to by the motion vector (v x , v y ); α and β are the corresponding scaling factor and offset applied to the reference block. Figure 20 The LIC process is shown. In Figure 20 , when LIC is applied to a block, the least mean square error (LMSE) method is adopted, by minimizing the neighboring samples of the current block (i.e., Figure 20 the template T in Figure 20The values of the LIC parameters (i.e., α and β) are derived from the differences between T0 or T1) in []. Additionally, to reduce the computational complexity, both the template samples and the reference template samples are subsampled (adaptive subsampling) to derive the LIC parameters, i.e., only the Figure 20 shadow samples in [] are used to derive α and β. To improve the coding and decoding performance, as Figure 21 shown, the short sides are not subsampled. 2.14. Decoder-side Motion Vector Refinement (DMVR) To improve the accuracy of the Merge-mode MV, decoder-side motion vector refinement based on bilateral matching (BM) is applied in VVC. In the bi-prediction operation, refined MVs are searched around the initial MVs in the reference picture list L0 and the reference picture list L1. The BM method calculates the distortion between two candidate blocks in the reference picture list L0 and the list L1. As Figure 22 shown, the SAD between two blocks based on each MV candidate (e.g., MV0’ and MV1’) around the initial MV is calculated. The MV candidate with the lowest SAD becomes the refined MV and is used to generate the bi-prediction signal. In VVC, the application of DMVR is restricted and is only applied to the CUs encoded and decoded using the following modes and features: – CU-level Merge mode with bi-prediction MV; – For the current picture, one reference picture is past and the other reference picture is future; – The distances (i.e., POC differences) from the two reference pictures to the current picture are the same; – Both reference pictures are short-term reference pictures; – The CU has more than 64 luma samples; – Both the CU height and the CU width are greater than or equal to 8 luma samples; – The BCW weight index indicates equal weights; – WP is not enabled for the current block; – The CIIP mode is not used for the current block. The refined MVs derived through the DMVR process are used to generate the inter-prediction samples and are also used for the temporal motion vector prediction in future picture coding. While the original MVs are used for the deblocking process and are also used for the spatial motion vector prediction in future CU coding. Additional features of DMVR are mentioned in the following subsections. 2.14.1. Search Scheme In DVMR, the search points are centered around the initial MV, and the MV offset follows the MV difference mirroring rule. In other words, any point examined by the DMVR represented by a candidate MV pair (MV0, MV1) follows the following two equations: MV0′ = MV0 + MV_offset (2-20) MV1′ = MV1 - MV_offset (2-21) where MV_offset represents the refinement offset between the initial MV and the refined MV in one of the reference pictures. The refinement search range is two integer luminance samples starting from the initial MV. The search includes an integer sample offset search phase and a fractional sample refinement phase. The integer sample offset search uses a 25-point full search. First, the SAD of the initial MV pair is calculated. If the SAD of the initial MV pair is less than the threshold, the integer sample phase of the DMVR terminates. Otherwise, the SADs of the remaining 24 points are calculated and examined in raster scan order. The point with the minimum SAD is selected as the output of the integer sample offset search phase. To reduce the influence of DMVR refinement uncertainty, it is proposed to support the original MV during the DMVR process. The SAD between the reference blocks pointed to by the initial MV candidate reference reduces the SAD value by 1 / 4. After the integer sample search, there is fractional sample refinement. To save computational complexity, the fractional sample refinement is derived using the parametric error surface equation instead of using SAD comparison for additional search. The fractional sample refinement is conditionally invoked based on the output of the integer sample search phase. When the integer sample search phase ends at the center with the minimum SAD in the first iteration or the second iteration search, the fractional sample refinement is further applied. In the sub-pixel offset estimation based on the parametric error surface, the cost at the center position and the costs at the four neighboring positions from the center are used to fit a two-dimensional parabolic error surface equation of the following form: E(x, y) = A(x - x min ) 2 + B(y - y min ) 2 + C (2-22) where (x min , y min ) corresponds to the fractional position with the minimum cost, and C corresponds to the minimum cost value. By solving the above equation using the cost values of five search points, (x min , y min ) is calculated as: x min = (E(-1, 0) - E(1, 0)) / (2(E(-1, 0) + E(1, 0) - 2E(0, 0))) (2-23) ymin =(E(0, -1) - E(0, 1)) / (2((E(0, -1) + E(0, 1) - 2E(0, 0))) (2 - 24) x min and y min The values of x min , y min are automatically limited between -8 and 8 because all cost values are positive and the minimum value is E(0, 0). This corresponds to a half-pixel offset with 1 / 16 pixel MV accuracy in VVC. The calculated fraction (x 2.14.2. Bilinear Interpolation and Sample Padding In VVC, the resolution of the MV is 1 / 16 luma samples. An 8-tap interpolation filter is used to interpolate samples at fractional positions. In DMVR, the search points are around the initial fractional pixel MV with integer sample offsets, so the samples at these fractional positions need to be interpolated for the DMVR search process. To reduce the computational complexity, a bilinear interpolation filter is used to generate the fractional samples during the DMVR search process. Another important effect is that by using the bilinear filter, within a 2-sample search range, DVMR does not access more reference samples compared to the normal motion compensation process. After obtaining the refined MV through the DMVR search process, a normal 8-tap interpolation filter is applied to generate the final prediction. To avoid accessing more reference samples of the normal MC process, samples will be padded from those available samples that are not needed for the interpolation process based on the original MV but are needed for the interpolation process based on the refined MV. 2.14.3. Maximum DMVR Processing Unit When the width and / or height of the CU is greater than 16 luma samples, it will be further divided into sub-blocks with a width and / or height equal to 16 luma samples. The maximum unit size of the DMVR search process is limited to 16x16. 2.15. Multi-pass Decoder-side Motion Vector Refinement In this contribution, multi-pass decoder-side motion vector refinement is applied instead of DMVR. In the first pass, bilateral matching (BM) is applied to the coded and decoded blocks. In the second pass, BM is applied to each 16x16 sub-block within the coded block. In the third pass, the MV in each 8x8 sub-block is refined by applying bidirectional optical flow (BDOF). The refined MV is stored for both spatial and temporal motion vector prediction. 2.15.1. First Pass - Block-based Bilateral Matching MV Refinement In the first pass, a refined MV is derived by applying BM to the coding / decoding block. Similar to decoder-side motion vector refinement (DMVR), a refined MV is searched around two initial MVs (MV0 and MV1) in reference picture lists L0 and L1. The refined MVs (MV0_pass1 and MV1_pass1) are derived around the initial MVs based on the minimum bilateral matching cost between two reference blocks in L0 and L1. BM performs a local search to derive integer-sample precision intDeltaMV and half-pixel sample precision halfDeltaMV. The local search applies a 3×3 square search pattern to loop within the search range [–sHor, sHor] in the horizontal direction and [–sVer, sVer] in the vertical direction, where the values of sHor and sVer are determined by the block size, and the maximum values of sHor and sVer are 8. The bilateral matching cost is calculated as: bilCost = mvDistanceCost + sadCost. When the block size cbW*cbH is greater than 64, the MRSAD cost function is applied to remove the distorted DC effect between reference blocks. When the bilCost at the center point of the 3×3 search pattern has the minimum cost, the intDeltaMV or halfDeltaMV local search terminates. Otherwise, the current minimum-cost search point becomes the new center point of the 3×3 search pattern, and the search for the minimum cost continues until it reaches the end of the search range. The current fractional sample refinement is further applied to derive the final deltaMV. Then, the refined MVs after the first pass are derived as: · MV0_pass1 = MV0 + deltaMV · MV1_pass1 = MV1 – deltaMV 2.15.2 Second Pass—Sub-Block-Based Bilateral Matching MV Refinement In the second pass, a refined MV is derived by applying BM to 16×16 grid sub-blocks. For each sub-block, a refined MV is searched around two MVs (MV0_pass1 and MV1_pass1) obtained in the first pass in reference picture lists L0 and L1. The refined MVs (MV0_pass2(sbIdx2) and MV1_pass2(sbIdx2)) are derived based on the minimum bilateral matching cost between two reference sub-blocks in L0 and L1. For each sub-block, BM performs a full search to derive the integer sample accuracy intDeltaMV. The full search has a search range of [–sHor, sHor] in the horizontal direction and [–sVer, sVer] in the vertical direction, where the values of sHor and sVer are determined by the block size, and the maximum values of sHor and sVer are 8. The bilateral matching cost is calculated by applying a cost factor to the SATD cost between two reference sub-blocks, as: bilCost = satdCost * costFactor. The search area (2*sHor + 1)*(2*sVer + 1) is divided into 5 diamond search areas, as Figure 22 shown. Each search area is assigned a costFactor, which is determined by the distance (intDeltaMV) between each search point and the starting MV, and each diamond area is processed in the order starting from the center of the search area. In each area, the search points are processed in raster scan order from the upper left corner of the area to the lower right corner. When the minimum bilCost within the current search area is less than a threshold equal to sbW * sbH, the full integer pixel search is terminated; otherwise, the full integer pixel search continues to the next search area until all search points have been examined. BM performs a local search to derive the half sample accuracy halfDeltaMv. The search pattern and cost function are the same as those defined in Section 2.9.1. Existing VVC DMVR fractional sample refinement is further applied to derive the final deltaMV(sbIdx2). Then, the refined MV for the second pass is derived as: · MV0_pass2(sbIdx2) = MV0_pass1 + deltaMV(sbIdx2) · MV1_pass2(sbIdx2) = MV1_pass1 – deltaMV(sbIdx2). 2.15.3. Third Pass - Sub-Block Based Bidirectional Optical Flow MV Refinement In the third pass, the refined MV is derived by applying BDOF to 8×8 grid sub-blocks. For each 8×8 sub-block, BDOF refinement is applied starting from the refined MV of the parent and child blocks in the second pass to derive scaled Vx and Vy without clipping. The derived bioMv(Vx, Vy) is rounded to 1 / 16 sample accuracy and clipped between -32 and 32. The refined MV for the third pass (MV0_pass3(sbIdx3) and MV1_pass3(sbIdx3)) is derived as: · MV0_pass3(sbIdx3) = MV0_pass2(sbIdx2) + bioMv · MV1_pass3(sbIdx3) = MV0_pass2(sbIdx2) – bioMv。 2.16. Sample-based BDOF In sample-based BDOF, instead of deriving motion refinement (Vx, Vy) on a block basis, BDOF is performed for each sample point. The coding / decoding block is partitioned into 8×8 sub-blocks. For each sub-block, it is determined whether to apply BDOF by checking the SAD between two reference sub-blocks against a threshold. If it is decided to apply BDOF to the sub-block, for each sample point in the sub-block, a sliding 5x5 window is used, and the existing BDOF process is applied to each sliding window to derive Vx and Vy. The derived motion refinement (Vx, Vy) is applied to adjust the bi-predicted sample value for the central sample point of the window. 2.17. Extended Merge Prediction In VVC, the Merge candidate list is constructed by sequentially including the following five types of candidates: 1) Spatial MVPs from spatially neighboring CUs 2) Temporal MVPs from co-located CUs 3) History-based MVPs from the FIFO table 4) Pairwise-averaged MVPs 5) Zero MV. The size of the Merge list is signaled in the sequence parameter set header, and the maximum allowed size of the Merge list is 6. For each CU code in the Merge mode, the index of the best Merge candidate is encoded using truncated unary binary (TU). The first binary bit (bin) of the Merge index is coded / decoded using context, while bypass coding / decoding is used for the other binary bits. The derivation process for each category of Merge candidates is provided in this section. Similar to what is done in HEVC, VVC also supports the parallel derivation of the Merge candidate list for all CUs within a certain-sized region. 2.17.1. Spatial Candidate Derivation The derivation of VVC intra-prediction Merge candidates is the same as that in HEVC, except that the positions of the first two Merge candidates are swapped. Among the candidates at the shown positions, at most four Merge candidates are selected. The derivation order is B0, A0, B1, A1, and B2. Position B2 is considered only when one or more CUs at positions B0, A0, B1, and A1 are unavailable (e.g., because it belongs to another strip or slice) or are intra-coded / decoded. After adding the candidate at position A1, a redundancy check is performed on the addition of the remaining candidates, which ensures that candidates with the same motion information are excluded from the list, thereby improving the coding / decoding efficiency. To reduce the computational complexity, not all possible candidate pairs are considered in the mentioned redundancy check. Instead, only the pairs linked by arrows in Figure 25 are considered, and the candidate is added to the list only if the corresponding candidates for the redundancy check do not have the same motion information. 2.17.2. Temporal candidate derivation In this step, only one candidate is added to the list. Specifically, in the derivation of this temporal Merge candidate, the scaled motion vector is derived based on the co-located CU belonging to the co-located reference picture. The reference picture list to be used for deriving the co-located CU is signaled explicitly in the slice header. As shown by the dashed line in Figure 26 , the scaled motion vector for the temporal Merge candidate is obtained, which is scaled from the motion vector of the co-located CU using the POC distances tb and td, where tb is defined as the POC difference between the reference picture of the current picture and the current picture, and td is defined as the POC difference between the reference picture of the co-located picture and the co-located picture. The reference picture index of the temporal Merge candidate is set to be equal to zero. As shown in Figure 27 , the position of the temporal candidate is selected between candidates C0 and C1. If the CU at position C0 is unavailable, intra-coded / decoded, or outside the current row of the CTU, position C1 is used. Otherwise, position C0 is used in the derivation of the temporal Merge candidate. 2.17.3. History-based Merge candidate derivation After the spatial MVP and TMVP, the history-based MVP (HMVP) Merge candidates are added to the Merge list. In this method, the motion information of the previously coded blocks is stored in a table and used as the MVP of the current CU. A table with multiple HMVP candidates is maintained during the encoding / decoding process. When a new CTU row is encountered, the table is reset (emptied). Whenever there is a non-sub-block inter-coded CU, the associated motion information is added as a new HMVP candidate to the last entry of the table. The size S of the HMVP table is set to 6, which indicates that up to 6 history-based MVP (HMVP) candidates can be added to the table. When a new motion candidate is inserted into the table, a constrained first-in first-out (FIFO) rule is used, where a redundancy check is first applied to find if the same HMVP exists in the table. If found, the same HMVP is removed from the table, and then all HMVP candidates are shifted forward. The HMVP candidates can be used for the Merge candidate list construction process. The nearest few HMVP candidates in the table are checked in order and inserted into the candidate list after the TMVP candidates. For spatial or temporal Merge candidates, the redundancy check is applied to the HMVP candidates. To reduce the number of redundancy check operations, the following simplifications are introduced: The number of HMPV candidates for Merge list generation is set to (N <= 4)? M : (8 - N), where N indicates the number of existing candidates in the Merge list, and M indicates the number of available HMVP candidates in the table. Once the total number of available Merge candidates reaches the maximum allowed Merge candidates minus 1, the Merge candidate list construction process from HMVP is terminated. 2.17.4. Pairwise Mean Merge Candidate Derivation Pairwise mean candidates are generated by averaging predefined candidate pairs in the existing Merge candidate list, and the predefined pairs are defined as {(0, 1), (0, 2), (1, 2), (0, 3), (1, 3), (2, 3)}, where the numbers represent the Merge indices of the Merge candidate list. The average motion vectors are calculated separately for each reference list. If both motion vectors are available in a list, they are averaged even if the two motion vectors point to different reference pictures; if only one motion vector is available, that motion vector is used directly; if no motion vector is available, this list is kept invalid. When the Merge list is not full after adding pairwise mean Merge candidates, zero MVPs are inserted at the end until the maximum Merge candidate number is reached. 2.17.5. Merge Estimation Region The Merge Estimation Region (MER) allows for the independent derivation of the Merge candidate list for a CU within the same Merge Estimation Region (MER). For generating the Merge candidate list of the current CU, candidate blocks within the same MER as the current CU are excluded. Additionally, the update process for the history-based motion vector prediction value candidate list is updated only when (xCb + cbWidth) >> Log2ParMrgLevel is greater than xCb >> Log2ParMrgLevel and (yCb + cbHeight) >> Log2parMrglevel is greater than (yCb >> Log2ParMrgLevel), where (xCb, yCb) is the top-left luminance sample position of the current CU in the picture, and (cbWidth, cbHeight) is the CU size. The MER size is selected at the encoder side and signaled in the sequence parameter set in the form of log2_parallel_merge_level_minus2. 2.18. New Merge Candidates 2.18.1. Non-adjacent Merge Candidate Derivation In VVC, Figure 28 the five spatial neighboring blocks and one temporal neighboring block shown are used to derive Merge candidates. It is proposed to derive additional Merge candidates from positions non-adjacent to the current block using the same style as in VVC. To achieve this, for each search round i, a virtual block is generated based on the current block as follows: First, the relative position of the virtual block to the current block is calculated by the following formula: Offsetx = -i × gridX, Offsety = -i × gridY where Offsetx and Offsety represent the offset of the top-left corner of the virtual block relative to the top-left corner of the current block, and gridX and gridY are the width and height of the search grid. Second, the width and height of the virtual block are calculated by the following formula: newWidth = i × 2 × gridX + currWidth newHeight = i × 2 × gridY + currHeight. where currWidth and currHeight are the width and height of the current block. newWidth and newHeight are the width and height of the new virtual block. gridX and gridY are currently set to currWidth and currHeight respectively. Figure 29The relationship between the virtual block and the current block is shown. After generating the virtual block, block A i , B i , C i , D i and E i can be considered as VVC spatial neighbors of the virtual block, and their positions are obtained using the same pattern as in VVC. Obviously, if the search round i is 0, the virtual block is the current block. In this case, block A i , B i , C i , D i and E i It is the spatial neighbor block used in VVCMerge mode. When constructing the Merge candidate list, deduplication is performed to ensure that each element in the Merge candidate list is unique. The maximum search round is set to 1, which means that five non-adjacent spatial neighbors are used. Non-adjacent spatial domain Merge candidates are inserted into the Merge list after the temporal domain Merge candidates in the order of B1->A1->C1->D1->E1. 2.18.2.STMVP It is proposed to use three spatial domain Merge candidates and one temporal domain Merge candidate to derive the average candidate as the STMVP candidate. The STMVP is inserted before the spatial merge candidate in the upper left corner. The STMVP candidate is deduplicated along with all previous merge candidates in the merge list. For spatial candidates, the first three candidates in the current Merge candidate list are used. For the temporal candidates, the same positions as the VTM / HEVC co-location positions are used. For spatial candidates, the first, second, and third candidates inserted before STMVP in the current Merge candidate list are denoted as F, S, and T. The temporal candidate having the same position as the VTM / HEVC co-location position used in TMVP is denoted as Col. The motion vector of the STMVP candidate in prediction direction X (denoted as mvLX) is derived as follows: 1) If the reference indices of the four Merge candidates are all valid and equal to zero in the prediction direction X (X = 0 or 1), mvLX=(mvLX_F+mvLX_S+mvLX_T+mvLX_Col)>>2 2) If the reference indices of three out of the four Merge candidates are valid and equal to zero in the prediction direction X (X = 0 or 1), mvLX = (mvLX_F × 3 + mvLX_S × 3 + mvLX_Col × 2) >> 3 or mvLX = (mvLX_F × 3 + mvLX_T × 3 + mvLX_Col × 2) >> 3 or mvLX = (mvLX_S × 3 + mvLX_T × 3 + mvLX_Col × 2) >> 3. 3) If the reference indices of two out of the four Merge candidates are valid and equal to zero in the prediction direction X (X = 0 or 1), mvLX = (mvLX_F + mvLX_Col) >> 1 or mvLX = (mvLX_S + mvLX_Col) >> 1 or mvLX = (mvLX_T + mvLX_Col) >> 1. Note: If the temporal candidate is not available, the STMVP mode is turned off. 2.18.3. Merge List Size If both non - adjacent Merge candidates and STMVP Merge candidates are considered, the size of the Merge list is signaled in the sequence parameter set header, and the maximum allowed size of the Merge list is 8. 2.19. Geometric Partitioning Mode (GPM) In VVC, the geometric partitioning mode is supported for inter - prediction. The CU - level flag is used as a kind of Merge mode to signal the geometric partitioning mode, and other Merge modes include the regular Merge mode, MMVD mode, CIIP mode, and sub - block Merge mode. For each possible CU size w × h = 2 m × 2 n , where m,n ∈ {3…6} excluding 8x64 and 64x8, the geometric partitioning mode supports a total of 64 partitions. When using this mode, the CU is divided into two parts by a geometrically - positioned line ( Figure 30 ). The position of the dividing line is mathematically derived from the angle and offset parameters of a specific partition. Each part in the geometric partition of the CU is inter - predicted using its own motion; only unidirectional prediction is allowed for each partition, that is, each part has one motion vector and one reference index. Unidirectional prediction motion constraints are applied to ensure the same as traditional bidirectional prediction, and each CU only requires two motion - compensated predictions. The unidirectional prediction motion for each partition is derived using the process described in 2.20.1. If the geometric partitioning mode is used for the current CU, the geometric partitioning index (angle and offset) indicating the partitioning mode of the geometric partitioning and two Merge indices (one for each partition) are further signaled. The number of maximum GPM candidate sizes is signaled explicitly in the SPS, and the syntax binarization for the GPM Merge indices is specified. After predicting each part of the geometric partitioning, as in 2.20.2, hybrid processing with adaptive weights is used to adjust the sample values along the geometric partitioning edges. This is the prediction signal for the entire CU, and the transform process and quantization process will be applied to the entire CU as in other prediction modes. Finally, the motion field of the CU predicted using the geometric partitioning mode is stored, as described in 2.20.3. 2.19.1. Unidirectional Prediction Candidate List Construction In 2.18., the unidirectional prediction candidate list is directly derived from the Merge candidate list constructed according to the extended Merge prediction process. Let n denote the index of the unidirectional prediction motion in the geometric unidirectional prediction candidate list. The LX motion vector (where X is the parity of n) of the nth extended Merge candidate is used as the nth unidirectional prediction motion vector for the geometric partitioning mode. These motion vectors are marked with "x" in Figure 31 . If the corresponding LX motion vector of the nth extended Merge candidate does not exist, the L(1 - X) motion vector of the same candidate is used as the unidirectional prediction motion vector for the geometric partitioning mode. 2.19.2. Hybrid Along Geometric Partitioning Edges After predicting each part of the geometric partitioning using its own motion, hybrid is applied to the two prediction signals to derive the samples around the geometric partitioning edges. The hybrid weight for each position of the CU is derived based on the distance between the independent position and the partitioning edge. The distance of the position (x, y) to the partitioning edge is derived as: where i, j are the indices of the angle and offset of the geometric partitioning, which depend on the signaled geometric partitioning index. ρ x,j and ρ y,j The signs of depend on the angle index i. The weights for each part of the geometric partitioning are derived as follows: wIdxL(x, y) = partIdx? 32 + d(x, y) : 32 - d(x, y) (2 - 29) w1(x, y) = 1 - w0(x, y) (2 - 31) The partIdx depends on the angular index i. An example of the weight w0 is shown in Figure 32 as follows. 2.19.3. Motion Vector Field Storage for Geometric Partitioning Mode Mv1 from the first part of the geometric partitioning, Mv2 from the second part of the geometric partitioning, and the combination Mv of Mv1 and Mv2 are stored in the motion vector field of the CU decoded / encoded in the geometric partitioning mode. The motion vector type stored for each independent position in the motion vector field is determined as: sType = abs(motionIdx) < 32? 2 : (motionIdx <= 0? (1 - partIdx) : partIdx) (2 - 32) where motionIdx is equal to d(4x + 2, 4y + 2), which is recomputed from Equation (2 - 18). The partIdx depends on the angular index i. If sType is equal to 0 or 1, then Mv0 or Mv1 is stored in the corresponding motion vector field, otherwise, if sType is equal to 2, the combined Mv from Mv1 and Mv2 is stored. The combined Mv is generated using the following procedure: 1) If Mv1 and Mv2 are from different reference picture lists (one from L0 and the other from L1), then Mv1 and Mv2 are simply combined to form a bi - directional prediction motion vector. Otherwise, if Mv1 and Mv2 are from the same list, only the uni - directional prediction motion Mv2 is stored. 2.20. Multiple Hypothesis Prediction In Multiple Hypothesis Prediction (MHP), on top of the inter - frame AMVP mode, regular Merge mode, affine Merge, and MMVD mode, up to two additional prediction values are signaled. The resulting overall prediction signal is iteratively accumulated using each additional prediction signal. p n+1 = (1 - α n+1 )p n + α n+1 h n+1 The weight factor α is specified according to Table 2 - 4 below. Table 2 - 4 Weight Factors for MHP add_hyp_weight_idx α 0 1 / 4 1 -1 / 8 For the inter - frame AMVP mode, MHP is applied only when unequal weights in BCW are selected in the bi - directional prediction mode. Additional assumptions can be the Merge mode or the AMVP mode. In the Merge mode, the motion information is indicated by the Merge index, and the Merge candidate list is the same as that in the geometric partitioning mode. In the AMVP mode, the reference index, MVP index, and MVD are signaled. 2.21. Non-adjacent spatial candidates Insert non-adjacent spatial Merge candidates after the TMVP in the regular Merge candidate list. The pattern of the spatial Merge candidates is shown in Figure 33 above. The distance between the non-adjacent spatial candidates and the current coding block is based on the width and height of the current coding block. 2.22. Template matching (TM) Template matching (TM) is a decoder-side MV derivation method for refining the motion information of the current CU by finding the closest match between a template in the current picture (i.e., the top and / or left neighboring blocks of the current CU) and a block in the reference picture (i.e., the same size as the template). As Figure 34 shown, within the [-8, +8] pixel search range, search for a better MV around the initial motion of the current CU. The template matching previously proposed in JVET-J0021 is adopted in this paper with two modifications: determining the search step based on the AMVR mode, and TM can be cascaded using the bilateral matching process in the Merge mode. In the AMVP mode, one that achieves the minimum difference between the current block template and the reference block template is selected based on the template matching error to determine the MVP candidate, and then TM only performs MV refinement on this specific MVP candidate. TM refines this MVP candidate by using iterative diamond search, starting from the full-pixel MVD accuracy within the [-8, +8] pixel search range (or 4 pixels for the 4-pixel AMVR mode). The AMVP candidate can be further refined by using cross search with full-pixel MVD accuracy (or 4 pixels for the 4-pixel AMVR mode), and then successively using half-pixel and quarter-pixel according to the AMVR mode specified in Table 2-5. This search process ensures that the MVP candidate still maintains the same MV accuracy as indicated by the AMVR mode after the TM process. Table 2-5 Search pattern of AMVR and Merge mode using AMVR In the Merge mode, a similar search method is applied to the Merge candidates indicated by the Merge index. As shown in Table 2-5, TM can be carried out until 1 / 8 pixel MVD accuracy, or skip those accuracies beyond half pixel MVD accuracy, depending on whether an alternative interpolation filter is used according to the merged motion information (i.e., used when the AMVR is in the half pixel mode). Additionally, when the TM mode is enabled, template matching can work in an independent process between the block-based bilateral matching (BM) method and the sub-block-based bilateral matching method, or an additional MV refinement process, depending on whether BM can be enabled according to its enabling conditions check. 2.23. Overlapped Block Motion Compensation (OBMC) Overlapped Block Motion Compensation (OBMC) has been used in H.263 before. In JEM, different from H.263, OBMC can be turned on and off using the syntax at the CU level. When OBMC is used in JEM, OBMC is performed on all motion compensation (MC) block boundaries except the right and bottom boundaries of the CU. Additionally, it applies to both the luminance and chrominance components. In JEM, the MC block corresponds to the coding / decoding block. When a CU is coded / decoded in the sub-CU mode (including sub-CU Merge, affine, and FRUC modes), each sub-block of the CU is an MC block. To handle the CU boundary in a unified way, OBMC is performed on all MC block boundaries at the sub-block level, where the sub-block size is set to be equal to 4×4, as Figure 35 shown. When OBMC is applied to the current sub-block, in addition to the current motion vector, the motion vectors of the four connected neighboring sub-blocks, if available and different from the current motion vector, are also used to derive the predicted block of the current sub-block. These multiple predicted blocks based on multiple motion vectors are combined to generate the final predicted signal of the current sub-block. Denote the predicted block based on the motion vector of the neighboring sub-block as P N , where N indicates the indices of the neighboring upper, lower, left, and right sub-blocks, and the predicted block based on the motion vector of the current sub-block is denoted as P C . When P N is based on the motion information of the neighboring sub-blocks that contains the same motion information as the current sub-block, OBMC is not performed starting from P N . Otherwise, each sample point of P N is added to the same sample point in P C , that is, the four rows / columns of P N are added to P C . The weighting factors {1 / 4, 1 / 8, 1 / 16, 1 / 32} are used for P N , and the weighting factors {3 / 4, 7 / 8, 15 / 16, 31 / 32} are used for P CExcept for small MC blocks (i.e., when the height or width of the coding / decoding block is equal to 4, or when coding / decoding a CU with sub-CU mode), only two rows / columns of P N are added to P C . In this case, the weighting factors {1 / 4, 1 / 8} are used for P N , while the weighting factors {3 / 4, 7 / 8} are used for P C . For P N generated based on the motion vectors of vertical (horizontal) neighboring sub-blocks, samples in the same row (column) of P N are added to P C with the same weighting factors. In JEM, for a CU with a size less than or equal to 256 luma samples, a CU-level flag is signaled to indicate whether OBMC is applied to the current CU. For a CU with a size greater than 256 luma samples or coded without using the AMVP mode, OBMC is applied by default. At the encoder, when OBMC is applied to a CU, its impact is considered during the motion estimation stage. OBMC uses the prediction signal formed by the motion information of the top neighboring block and the left neighboring block to compensate the top and left boundaries of the original signal of the current CU, and then the normal motion estimation process is applied. 2.24. Multiple Transform Selection (MTS) for Kernel Transform In addition to DCT-II already adopted in HEVC, the Multiple Transform Selection (MTS) scheme is also used for residual coding of blocks coded inter and intra. It uses multiple selected transforms from DCT8 / DST7. The newly introduced transform matrices are DST-VII and DCT-VIII. Table 2-6 shows the basis functions of the selected DST / DCT. Table 2-6 Transform Basis Functions of DCT-II / VIII and DSTVII for N-Point Input To maintain the orthogonality of the transform matrix, the quantization of the transform matrix is more accurate than that in HEVC. To keep the intermediate values of the transform coefficients within the 16-bit range, all coefficients are 10-bit after horizontal and vertical transforms. To control the MTS scheme, separate enable flags are specified at the SPS level for intra and inter, respectively. When MTS is enabled at the SPS, a CU-level flag is signaled to indicate whether MTS is applied. Here, MTS is only applicable to luma. The MTS signaling is skipped when one of the following conditions is met: - The position of the last significant coefficient of the luma TB is less than 1 (i.e., only DC); - The last significant coefficient of the luminance TB is within the MTS zeroing region. If the MTS CU flag is equal to 0, DCT2 is applied in both directions. However, if the MTS CU flag is equal to 1, two additional flags are signaled to indicate the transform types in the horizontal and vertical directions respectively. The transform and signaling mapping table is shown in Table 2-7. A unified transform selection for ISP and implicit MTS is used by eliminating the intra mode and block shape dependencies. If the current block is in ISP mode or if the current block is an intra block and both intra and inter explicit MTS are on, only DST7 is used for the horizontal and vertical transform kernels. In terms of the transform matrix precision, 8-bit primary transform kernels are used. Thus, all the transform kernels used in HEVC remain the same, including 4-point DCT-2 and DST-7, 8-point, 16-point, and 32-point DCT-2. Additionally, for other transform kernels (including 64-point DCT-2, 4-point DCT-8, 8-point, 16-point, 32-point DST-7, and DCT-8), 8-bit primary transform kernels are used. Table 2-7 Transform and Signaling Mapping Table To reduce the complexity of large-size DST-7 and DCT-8, for DST-7 and DCT-8 blocks with a size (width or height, or both width and height) equal to 32, the high-frequency transform coefficients are zeroed. Only the coefficients within the 16×16 low-frequency region are retained. Similar to HEVC, the residual of a block can be encoded and decoded using the transform skip mode. To avoid redundancy in syntax encoding and decoding, when the CU-level MTS_CU_flag is not equal to 0, the transform skip flag is not signaled. Note that when LFNST or MIP is activated for the current CU, the implicit MTS transform is set to DCT2. Additionally, when MTS is enabled for inter-coded blocks, implicit MTS can still be enabled. 2.25. Sub-Block Transform (SBT) In VTM, sub-block transform is introduced for inter-predicted CUs. In this transform mode, for a CU, only a sub-part of the residual block is encoded and decoded. When the cu_cbf of an inter-predicted CU is equal to 1, the cu_sbt_flag can be signaled to indicate whether the whole residual block or a sub-part of the residual block is encoded and decoded. For the former case, the inter MTS information is further parsed to determine the transform type of the CU. For the latter case, a part of the residual block is encoded and decoded by the inferred adaptive transform while the other part of the residual block is zeroed. When SBT is used for a CU decoded / encoded by inter-frame, the SBT type and SBT position information are signaled in the bitstream. There are two SBT types and two SBT positions, as Figure 36 shown. For SBT-V (or SBT-H), the TU width (or height) can be equal to half of the CU width (or height) or 1 / 4 of the CU width (or height), resulting in a 2:2 partition or a 1:3 / 3:1 partition. The 2:2 partition is similar to a binary tree (BT) partition, while the 1:3 / 3:1 partition is similar to an asymmetric binary tree (ABT) partition. In the ABT partition, only small regions contain non-zero residuals. If one dimension of the CU is 8 (in terms of luma samples), a 1:3 / 3:1 partition along that dimension is not allowed. A CU has at most 8 SBT modes. Position-dependent transform kernel selection is applied to the luma transform blocks in SBT-V and SBT-H (chroma TBs always use DCT-2). The two positions of SBT-H and SBT-V are associated with different kernel transforms. More specifically, the horizontal and vertical transforms for each SBT position are specified in Figure 36 . For example, the horizontal and vertical transforms for SBT-V position 0 are DCT-8 and DST-7, respectively. When one side of the residual TU is greater than 32, the transforms for both dimensions are set to DCT-2. Thus, the sub-block transforms jointly specify the TU slicing, cbf, and the horizontal and vertical kernel transform types of the residual block. SBT is not applied to a CU decoded / encoded with a combined inter-intra mode. 2.26. Adaptive Merge candidate reordering based on template matching To improve the coding / decoding efficiency, after constructing the Merge candidate list, the order of each Merge candidate is adjusted according to the template matching cost. The Merge candidates are arranged in the list according to the ascending template matching cost. It is operated in subgroups. The template matching cost is measured by the SAD (sum of absolute differences) between the neighboring samples of the current CU and their corresponding reference samples. If the Merge candidate includes bi-predicted motion information, then as Figure 37 shown, the corresponding reference sample is the average of the corresponding reference samples in reference list 0 and the corresponding reference samples in reference list 1. If the Merge candidate contains motion information at the sub-CU level, then as Figure 38 shown, the corresponding reference sample consists of the neighboring samples of the corresponding reference sub-block. As Figure 39 shown, the sorting process is operated in subgroups. The first three Merge candidates are sorted together. The next three Merge candidates are sorted together. The template size (width of the left template or height of the upper template) is 1. The subgroup size is 3. 2.27. Adaptive Merge Candidate List It can be assumed that the number of Merge candidates is 8. We take the first 5 Merge candidates as the first subgroup and the subsequent 3 Merge candidates as the second subgroup (i.e., the last subgroup). For the encoder, as Figure 40 shown, after the Merge candidate list is constructed, some Merge candidates are adaptively re - sorted in ascending order of the Merge candidate cost. More specifically, the template matching cost of the Merge candidates in all subgroups except the last subgroup is calculated; then, the Merge candidates in their own subgroups except the last subgroup are re - sorted; finally, the final Merge candidate list is obtained. For the decoder, after the Merge candidate list is constructed, as Figure 41 shown, some / no Merge candidates are adaptively re - sorted in ascending order of the Merge candidate cost. In Figure 41 , the subgroup where the selected (for signal transmission) Merge candidate is located is called the selected subgroup. More specifically, if the selected Merge candidate is in the last subgroup, the Merge candidate list construction process is terminated after the selected Merge candidate is derived, no re - sorting is performed and the Merge candidate list remains unchanged; otherwise, the process is as follows: After all the Merge candidates in the selected subgroup are derived, the Merge candidate list construction process is terminated; the template matching cost of the Merge candidates in the selected subgroup is calculated; the Merge candidates in the selected subgroup are re - sorted; finally, a new Merge candidate list is obtained. For both the encoder and the decoder: The template matching cost is derived as a function of T and RT, where T is the set of samples in the template and RT is the set of reference samples for the template. When deriving the reference samples of the template of the Merge candidate, the motion vector of the Merge candidate is rounded to integer - pixel precision. The reference samples (RT) of the template for bidirectional prediction are derived by weighted - averaging the reference samples (RT0) of the template in reference list 0 and the reference samples (RT1) of the template in reference list 1 as follows. RT = ((8 - w)*RT0+w*RT1 + 4) >> 3 (2 - 33) The weights (8 - w) of the reference templates in reference list 0 and the weight (w) of the reference templates in reference list 1 are determined by the BCW index of the Merge candidate. BCW indices equal to {0, 1, 2, 3, 4} correspond to w equal to {-2, 3, 4, 5, 10}, respectively. If the local illumination compensation (LIC) flag of the Merge candidate is true, the LIC method is used to derive the reference sample points of the template. The template matching cost is calculated based on the sum of absolute differences (SAD) between T and RT. The template size is 1. This means that the width of the left template and / or the height of the upper template is 1. If the coding / decoding mode is MMVD, the Merge candidates used to derive the base Merge candidates are not reordered. If the coding / decoding mode is GPM, the Merge candidates used to derive the unidirectional prediction candidate list are not reordered. 2.28. Geometric prediction mode with motion vector difference In the geometric prediction mode with motion vector difference (GMVD), each geometric partition in GPM can decide whether to use GMVD. If GMVD is selected for a geometric region, the MV of that region is calculated as the sum of the MV of the Merge candidate and the MVD. All other processing remains the same as in GPM. Using GMVD, the MVD is signaled in the form of a direction and distance pair. There are nine candidate distances (1 / 4 - pixel, 1 / 2 - pixel, 1 - pixel, 2 - pixel, 3 - pixel, 4 - pixel, 6 - pixel, 8 - pixel, 16 - pixel), and eight candidate directions (four horizontal / vertical directions and four diagonal directions). Additionally, when pic_fpel_mmvd_enabled_flag equals 1, the MVD in GMVD is also left - shifted by 2 bits as in MMVD. 2.29. Affine MMVD In affine MMVD, an affine Merge candidate (referred to as the base affine Merge candidate) is selected, and the MV of the control points is further refined by the signaled MVD information. The MVD information of the MVs of all control points is the same in one prediction direction. When the starting MV is a bi-predictive MV where the two MVs point to different sides of the current picture (i.e., one reference POC is greater than the POC of the current picture and the other reference POC is less than the POC of the current picture), the MV offset added to the list 0 MV component of the starting MV and the MV offset of the list 1 MV have opposite values; otherwise, when the starting MV is a bi-predictive MV where both lists point to the same side of the current picture (i.e., both reference POCs are greater than the POC of the current picture, or both are less than the POC of the current picture), the MV offset added to the list 0 MV component of the starting MV and the MV offset of the list 1 MV are the same. 2.30. Adaptive Decoder-Side Motion Vector Refinement (ADMVR) In ECM-2.0, if the selected Merge candidate satisfies the DMVR condition, the multi-pass decoder-side motion vector refinement (DMVR) method is applied in the regular Merge mode. In the first pass, bilateral matching (BM) is applied to the coded / decoded block. In the second pass, BM is applied to each 16x16 sub-block within the coded / decoded block. In the third pass, the MVs in each 8x8 sub-block are refined by applying bidirectional optical flow (BDOF). The adaptive decoder-side motion vector refinement method consists of two new Merge modes that are introduced to refine the MV only in one direction (L0 or L1) of the bi-prediction of the Merge candidates that satisfy the DMVR condition. The multi-pass DMVR process is applied to the selected Merge candidate to refine the motion vector. However, in the first pass (i.e., PU level) DMVR, MVD0 or MVD1 is set to zero. Similar to the regular Merge mode, the Merge candidates for the proposed Merge mode are derived from spatially neighboring coded / decoded blocks, TMVP, non-adjacent blocks, HMVP, and paired candidates. The difference is that only those that satisfy the DMVR condition are added to the candidate list. The same Merge candidate list (i.e., the ADMVR Merge list) is used by the two proposed Merge modes, and the Merge index is coded / decoded in the regular Merge mode. 2.31. IBC with Template Matching Template matching with IBC is proposed for both the IBC Merge mode and the IBC AMVP mode. Compared with the Merge list used by the conventional IBC Merge mode, the IBC-TM Merge list has been modified such that candidates are selected according to a deduplication method with a motion distance between candidates in the conventional TM Merge mode. End-zero motion completion (which is meaningless for intra coding) has been replaced by motion vectors of the left (-W, 0), up (0, -H), and top-left (-W, -H) CUs. Then, if necessary, a left-complete list is used without deduplication. In the IBC-TM Merge mode, the selected candidates are refined using a template matching method before the RDO or decoding process. The IBC-TM Merge mode has competed with the conventional IBC Merge mode and signaled the TM-Merge flag. In the IBC-TM AMVP mode, up to 3 candidates are selected from the IBC Merge list. The template matching method is used to refine each of these 3 selected candidates, and they are sorted according to their resulting template matching cost. Then, usually only the top 2 are considered during the motion estimation process. The template matching refinement for both the IBC-TM Merge and AMVP modes is very simple because the IBC motion vectors are constrained to be integers and within the reference region as shown in Figure 42 Therefore, in the IBC-TM Merge mode, all refinements are performed with integer precision, and in the IBC-TM AMVP mode, it is performed with integer or 4-pixel precision. In both cases, the refined motion vectors in each refinement step must be relative to the constraints of the reference region. 2.32. IBC Merge Mode with Block Vector Difference The IBC Merge mode with block vector difference is as follows. The distance set is {1 pixel, 2 pixels, 4 pixels, 8 pixels, 12 pixels, 16 pixels, 24 pixels, 32 pixels, 40 pixels, 48 pixels, 56 pixels, 64 pixels, 72 pixels, 80 pixels, 88 pixels, 96 pixels, 104 pixels, 112 pixels, 120 pixels, 128 pixels}, and the BVD directions are two horizontal directions and two vertical directions. The base candidate is selected from the top five candidates in the reordered IBC Merge list. And all possible MBVD refinement positions (20x4) for each base candidate are reordered based on the SAD cost between the template (one row above and one column to the left of the current block) and its reference for each refinement position. Finally, the top 8 refinement positions with the lowest template SAD cost are kept as available positions and thus used for MBVD index coding and decoding. 2.33. Reconstruction-Reordering IBC (RR-IBC) Screen content coding and decoding tools such as Intra Block Copy (IBC) generate a prediction block by directly copying a previously coded and decoded reference region in the same picture. Symmetry is often observed in video content, especially in text character regions and computer-generated graphics in screen content sequences, as Figure 43 shown. Therefore, specific screen content coding and decoding tools that consider symmetry will effectively compress such video content. The Reconstruction-Reordering IBC (RR-IBC) mode for screen content video coding and decoding is proposed. When applied, samples in the reconstructed block are flipped according to the flip type of the current block. On the encoder side, the original block is flipped before motion search and residual calculation, while the prediction block is derived without flipping. On the decoder side, the reconstructed block is flipped to restore the original block. For RR-IBC coded and decoded blocks, two flipping methods are supported - horizontal flipping and vertical flipping. First, for IBC AMVP coded and decoded blocks, signaling syntax flags indicate whether the reconstruction is flipped, and if it is flipped, another flag that specifies the flip type is further signaled. For IBC Merge, without syntax signaling, the flip type is inherited from neighboring blocks. Considering horizontal or vertical symmetry, the current block and the reference block are usually horizontally or vertically aligned. Therefore, when horizontal flipping is applied, the vertical component of the BV is not signaled and is inferred to be equal to 0. Similarly, when vertical flipping is applied, the horizontal component of the BV is not signaled and is inferred to be equal to 0. To better utilize the symmetry property, a flip-aware BV adjustment method is applied to refine the block vector candidates. For example, as Figures 44A to 44B shown, (x nbr, y nbr ) and (x cur , y cur ) represent the coordinates of the central samples of the neighboring block and the current block respectively, BV nbr and BV cur represent the BV of the neighboring block and the current block respectively. Instead of directly inheriting the BV from the neighboring block, the horizontal component of BV nbr (denoted as BV nbr h ) is calculated by adding the motion displacement to the horizontal component of BV cur when the neighboring block is coded and decoded with horizontal flipping, that is, BV cur h = 2(x nbr - x cur ) + BV nbr h. Similarly, in the case where neighboring blocks are encoded and decoded with a vertical flip, the vertical component of the motion displacement is added to BV nbr (denoted as BV nbr v ) to calculate the vertical component of BV cur , that is, BV cur v = 2(y nbr - y cur ) + BV nbr v . 2.34. Intra-frame template matching Intra-frame template matching prediction (intra-frame TMP) is a special intra-frame prediction mode that copies the best prediction block from the reconstructed part of the current frame, and its L-shaped template matches the current template. For a predefined search range, the encoder searches for the template most similar to the current template in the reconstructed part of the current frame and uses the corresponding block as the prediction block. The encoder then signals the use of this mode, and the same prediction operation is performed on the decoder side. A prediction signal is generated by matching the L-shaped causal neighbor of the current block with another block in the predefined search region consisting of Figure 45 : R1: the current CTU R2: the top-left CTU R3: the upper CTU R4: the left CTU. SAD is used as the cost function. Within each region, the decoder searches for the template with the minimum SAD relative to the current template and uses the corresponding block as the prediction block. The dimensions of all regions (SearchRange_w, SearchRange_h) are set to be proportional to the block dimensions (BlkW, BlkH) so that each pixel has a fixed number of SADs. That is: SearchRange_w = a * BlkW SearchRange_h = a * BlkH where 'a' is a constant that controls the trade-off between gain and complexity. In fact, 'a' is equal to 5. The intra-frame template matching tool is enabled for CUs with dimensions of width and height less than or equal to 64. This maximum CU size for intra-frame template matching is configurable. When DIMD is not used for the current CU, the intra-frame template matching prediction mode is signaled at the CU level through a dedicated flag. 2.35 Intra-frame prediction fusion The intra - prediction fusion method uses multiple prediction values generated from different modes / reference lines. In sub - test a, multiple intra - prediction values are generated and then fused by weighted averaging. The process of deriving the prediction values to be used in the fusion process is described as follows: 1) For the angular intra - prediction mode of the single - mode case including TIMD and DIMD, the proposed method derives the intra - prediction by weighting the intra - predictions obtained from multiple reference lines, denoted as p fusion = w0p line + w1p line+1 , where p line is the intra - prediction according to the default reference line, and p line+1 is the prediction according to the line above the default reference line. The weights are set to w0 = 3 / 4 and w1 = 1 / 4. 2) For the case with a mixed TIMD mode, p line is used for the first mode (w0 = 1, w1 = 0), and p line+1 is used for the second mode (w0 = 0, w1 = 1). 3) For the case with a mixed DIMD mode, the number of prediction values selected for weighted averaging is increased from 3 to 6. In sub - test b, intra - prediction fusion is performed on the reference lines instead of the prediction blocks. Two reference lines (denoted as r line and r line+1 ) are used for intra - prediction fusion. The corresponding intra - prediction angle DeltaInt is considered during the fusion process. Each value in the fused reference line (r fusion [i]) is derived from: r fusion [i]=(3·r line [i]+r line+1 [i + DeltaInt])>>2 When the angular intra - mode has a non - integer slope (required reference sample interpolation) and the block size is greater than 16, the proposed intra - prediction fusion is applied to the luma block, which is used with MRL and not applied to the ISP codec block. In the method studied in sub - test a, PDPC is applied to the intra - prediction mode using the reference line closest to the current block. 2.36 Template - based Multiple - Reference - Line Intra - Prediction (TMRL) The proposed TMRL mode includes the following aspects: a) Expand the reference - line candidate list and the intra - prediction - mode candidate list. The extended reference line candidate list used in this scheme is {1, 3, 5, 7, 12}. The restrictions on the upper CTU line remain unchanged. The size of the intra prediction mode candidate list is 10. The construction of the intra prediction mode candidate list is similar to MPM. The differences are as follows: The planar mode is excluded from the proposed intra prediction mode candidate list. If not already included, the DC mode is added after the modes of 5 neighboring PUs and the DIMD mode. Angle modes with differential angles from ±1 to ±4 (compared with the existing angular modes in the intra prediction mode candidate list) are added. b) Construction of the TMRL candidate list. For a block, there are 5×10 = 50 combinations of extended reference lines and allowed intra prediction modes. Since the extended reference lines start from reference line 1, the area covered by reference line 0 is used for template matching. The SAD cost on the template region is calculated between the prediction (generated by the 50 combinations) and the reconstruction (see Figure 46 ) which is shown as an illustration of the template region. The 20 combinations with the minimum SAD cost are selected in ascending order to form the TMRL candidate list. c) Signaling of TMRL Instead of directly encoding and decoding the reference line and the intra mode, the index of the TMRL candidate list is encoded and decoded to indicate which combination of the reference line and the prediction mode is used to encode and decode the current block. In the proposed TMRL mode, the selected combination from the combination list is encoded and decoded using the truncated Golomb-Rice coding with a divisor of 4. The binarization process and the codewords are shown in Table 2-8. Table 2-8 - Binarization process of TMRL index Index Binary string (prefix) Binary string (suffix) 0 0 00 1 0 01 2 0 10 3 0 11 4 10 00 … … 18 1111 10 19 1111 11 d) Modifications on the encoder side The encoder side is tested for modifications to further improve the encoding and decoding efficiency. For intra blocks larger than 8×8, if the SATD comparison does not select the TMRL mode, an additional TMRL RDO is added. 2.37 Geometric Partitioning Mode (GPM) with Adaptive Mixing In VVC, the prediction of two prediction signals is mixed by using weighted averaging to generate the final predicted sample points. Two integer mixing matrices (W0 and W1) are used. The weights in the GPM mixing matrix are derived from a ramp function based on the displacement from the predicted sample point position to the GPM partition boundary. The mixing region size is fixed at 2 (2 sample points on each side of the GPM partition division boundary). By adding as Figure 47Four additional mixing region sizes (one - quarter, one - half, two times, and four times the existing region size) are shown to improve the mixing process in ECM. Figure 47 A ramp function of the weights for GPM mixing based on the displacement (d) from the predicted sample position to the GPM split boundary and the mixing region size (τ) is shown. The CU - level flags are coded and decoded to be signaled: the selected mixing region size is signaled. Additionally, an extended weighted precision is utilized, where the maximum value of the weights changes from 8 (in VVC) to 32 to accommodate the extended mixing region sizes. 2.38 Geometric Partitioning Mode (GPM) with Template Matching (TM) Template matching is applied to GPM. When the GPM mode is enabled for a CU, a CU - level flag is signaled to indicate whether TM is applied to the two geometric partitions. TM is used to refine the motion information for each geometric partition. When TM is selected, depending on the split angle, left, above, or upper - left neighboring samples are used to construct the template as shown in Table 2 - 9. Then, with the half - pixel interpolation filter disabled, the motion is refined by minimizing the difference between the current template and the template in the reference picture using the same search pattern as the Merge mode. Table 2 - 9 - Templates for the first and second geometric partitions, where A indicates using above samples, L indicates using left samples, and L + A indicates using left and above samples. Partition angle 0 2 3 4 5 8 11 12 13 14 First partition A A A A L + A L + A L + A L + A A A Second partition L + A L + A L + A L L L L L + A L + A L + A Partition angle 16 18 19 20 21 24 27 28 29 30 First partition A A A A L + A L + A L + A L + A A A Second partition L + A L + A L + A L L L L L + A L + A L + A The GPM candidate list is constructed as follows: 1. The interleaved list 0MV candidates and list 1MV candidates are directly derived from the regular Merge candidate list, where the list 0MV candidates have a higher priority than the list 1MV candidates. A deduplication method with an adaptive threshold based on the current CU size is applied to remove redundant MV candidates. 2. The interleaved list 1MV candidates and list 0MV candidates are further directly derived from the regular Merge candidate list, where the list 1MV candidates have a higher priority than the list 0MV candidates. The same deduplication method with an adaptive threshold is also applied to remove redundant MV candidates. 3. Zero - MV candidates are filled until the GPM candidate list is full. GPM - MMVD and GPM - TM are enabled specifically for one GPM CU. This is done by first signaling the GPM - MMVD syntax. When both GPM - MMVD control flags are equal to false (i.e., GPM - MMVD is disabled for the two GPM partitions), the GPM - TM flag is signaled to indicate whether template matching is applied to the two GPM partitions. Otherwise (at least one GPM - MMVD flag is equal to true), the value of the GPM - TM flag is inferred to be false. 2.39 GPM with Inter-Frame and Intra-Frame Prediction In the GPM with inter-frame and intra-frame prediction, the final prediction samples are generated by weighting the inter-frame prediction samples and intra-frame prediction samples for each GPM split region. The inter-frame prediction samples are derived from the inter-frame GPM, while the intra-frame prediction samples are derived from the intra-frame prediction mode (IPM) candidate list and the index signaled from the encoder. The IPM candidate list size is predefined as 3. The available IPM candidates are the parallel angle mode for the GPM block boundary (parallel mode), the vertical angle mode for the GPM block boundary (vertical mode), and the planar mode as shown in (a) to (c) in Figure 48 . In addition, as shown in (d) in Figure 48 , the GPM with inter-frame and intra-frame prediction is restricted to reduce the signaling overhead for the IPM and avoid an increase in the size of the intra-frame prediction circuit on the hardware decoder. Additionally, direct motion vector and IPM storage on the GPM hybrid region are introduced to further improve the codec performance. The available IPM candidates are shown in (a) to (c) in Figure 48 . Example of GPM with inter-frame and intra-frame prediction. In DIMD and neighboring mode-based IPM derivation, the parallel mode is registered first. Thus, up to two IPM candidates derived from the decoder-side intra-frame mode derivation (DIMD) method and / or neighboring blocks can be registered if the same IPM candidate does not exist in the list. For neighboring mode derivation, there are at most five available neighboring block positions, but they are restricted by the angle of the GPM block boundary as shown in Table 2-10, which has been used for GPM with template matching (GPM-TM). Table 2-10—Available neighboring block positions for IPM candidate derivation based on the angle of the GPM block boundary. A and L represent above and to the left of the prediction block. Angle of GPM 0 2 3 4 5 8 11 12 13 14 First partition A A A A L + A L + A L + A L + A A A Second partition L + A L + A L + A L L L L L + A L + A L + A Partition angle 16 18 19 20 21 24 27 28 29 30 First partition A A A A L + A L + A L + A L + A A A Second partition L + A L + A L + A L L L L L + A L + A L + A GPM-Intra can be combined with GPM with motion vector difference merging (GPM-MMVD). TIMD is used for the IPM candidates of GPM-Intra to further improve the codec performance. The parallel mode can be registered first, followed by the IPM candidates of TIMD, DIMD, and neighboring blocks. 2.40 Template-Matching-Based Reordering for GPM Partitioning Modes In the template matching-based reordering for GPM partitioning mode, given the motion information of the current GPM block, the corresponding TM cost value of the GPM partitioning mode is calculated. Then, all GPM partitioning modes are reordered in ascending order based on the TM cost value. Instead of transmitting the GPM partitioning mode, the index of the Golomb-Rice code is used to indicate the position of the exact GPM partitioning mode in the reorder list through signal transmission. The reordering method for the GPM partitioning mode is a two-step process, which is performed after generating the corresponding reference templates for the two GPM splits in the coding / decoding unit, as follows: · Expand the GPM split edges into the reference templates of the two GPM splits to obtain 64 reference templates and calculate the corresponding TM cost for each of the 64 reference templates; · Reorder the GPM split modes in ascending order based on their TM cost values and mark the best 32 partitioning modes as available partitioning modes. The edges on the template extend from the edges of the current CU, as Figure 49 shown, but the GPM mixing process is not used in the template area across the edges. After reordering in ascending order using the TM cost, the index is transmitted through the signal. 2.41. Convolutional Cross-Component Model (CCCM) for Intra Prediction It is proposed to apply a convolutional cross-component model (CCCM) to predict chroma samples from the reconstructed luma samples in a similar spirit to that accomplished by the current CCLM mode. Similar to CCLM, when chroma subsampling is used, the reconstructed luma samples are downsampled to match the lower-resolution chroma grid. Similarly, similar to CCLM, there is an option to use a single model or a multi-model variant of CCCM. The multi-model variant uses two models, one model derived for samples above the average luma reference value and the other model derived for the remaining samples (following the spirit of the CCLM design). The multi-model CCCM mode can be selected for a PU with at least 128 available reference samples. 2.41.1. Convolutional Filter The proposed convolutional 7-tap filter consists of a 5-tap positive-sign-shaped spatial domain component, a non-linear term, and a bias term. The input of the 5-tap spatial domain component of the filter consists of the central (C) luma samples as shown below, which are co-located with the chroma sample to be predicted and its upper / north (N), lower / south (S), left / west (W), and right / east (E) neighbors, as shown in the following Figure 50 as shown. The non-linear term P is represented as a power of 2 in the central luma sample C and is scaled to the sample value range of the content: P = (C * C + midVal) >> bitDepth. That is, for 10-bit content, it is calculated as: P = (C * C + 512) >> 10. The bias term B represents a scalar offset between the input and the output (similar to the offset term in CCLM) and is set to the middle chroma value (512 for 10-bit content). The output of the filter is calculated as the convolution between the filter coefficient c i and the input value, and is clipped to the range of valid chroma samples: predChromaVal = c0C + c1N + c2S + c3E + c4W + c5P + c6B. 2.41.2. Calculation of Filter Coefficients The filter coefficient c i is calculated by minimizing the MSE between the predicted chroma samples and the reconstructed chroma samples in the reference region. Figure 51 A reference region consisting of 6 rows of chroma samples above and to the left of the PU is shown. The reference region extends one PU width to the right and one PU height below the PU boundary. The region is adjusted to include only available samples. The extension of the region shown in blue is needed to support the "side samples" of the positive shape spatial filter, and the extension is filled when in an unavailable region. By calculating the autocorrelation matrix for the luminance input and the cross-correlation vector between the luminance input and the chroma output, MSE minimization is performed. The autocorrelation matrix is LDL-factorized, and the final filter coefficients are calculated using back substitution. This process generally follows the calculation of the ALF filter coefficients in ECM. However, LDL factorization is chosen instead of Cholesky factorization to avoid using square root operations. The proposed method uses only integer operations. 2.41.3. Bitstream Signaling The use of this mode is signaled using a CABAC-encoded / decoded PU-level flag. A new CABAC context is included to support this. When signaling, CCCM is considered a sub-mode of CCLM. That is, the CCCM flag is signaled only if the intra prediction mode is LM_CHROMA_IDX (to enable the single-mode CCCM) or MMLM_CHROMA_IDX (to enable the multi-model CCCM). 2.42. Gradient Linear Model (GLM) Compared with CCLM, instead of the downsampled luminance values, GLM utilizes luminance sample gradients to derive a linear model. Specifically, when applying GLM, the input to the CCLM process (i.e., the downsampled luminance samples L) is replaced by the luminance sample gradients G. The other parts of CCLM (e.g., parameter derivation, linear transformation of prediction samples) remain unchanged. C = α·G + β For signaling, when the CCLM mode is enabled for the current CU, two flags are signaled separately for the Cb and Cr components to indicate whether GLM is enabled for each component; if GLM is enabled for a component, then a syntax element is further signaled to select one of the 4 gradient filters for gradient calculation. · Four gradient filters are enabled for GLM, as Figure 52 shown. 3. Problem In the current design of IBC, an entire block is copied from the reconstructed region in the current picture. The content in the block can come from two or more different objects, and for such cases, the way of obtaining the prediction for the entire block does not work well. 4. Detailed Solutions The following detailed solutions should be considered as examples to explain the general concepts. These solutions should not be interpreted in a narrow sense. In addition, these solutions can be combined in any way. In the present disclosure, intra block copy (IBC) may not be limited to the current IBC technology, but can be interpreted as a technology in which the reference (or prediction) block is obtained using samples in the current stripe / slice / subpicture / picture / other video units (e.g., CTU row), excluding the conventional intra prediction methods. In the present disclosure, CIBCIP (or IBC - CIIP) may refer to an encoding and decoding tool that combines intra block copy (IBC) and intra prediction. It is an encoding and decoding tool that uses both IBC and intra prediction to obtain the prediction of a block. In the present disclosure, IBC - LIC may refer to an encoding and decoding tool in which local illumination compensation is used to refine the video units encoded and decoded using IBC. In the following discussion, IBC can be replaced by other encoding and decoding tools (e.g., palette, intra template matching) that rely on the encoded / decoded / reconstructed information within the same region. Intra block copy with geometric partitioning 1. It is proposed that intra block copy can be used to obtain the prediction of at least one sub - division in a video unit when the video unit is geometrically divided into more than one sub - division. The encoding and decoding mode is denoted as IBC - GPM. a. Alternatively, it is proposed that when a video unit is predicted by more than one hypothesis, IBC can be used to obtain the prediction of at least one hypothesis in the video unit, and the hypothesis predictions are geometrically weighted and summed to generate a final prediction. b. In one example, the way of dividing a video unit into sub - partitions can be the same as that in GPM or intra - GPM. i. Alternatively, the way of dividing a video unit into sub - partitions can be different from that in GPM or intra - GPM. 1) In one example, the geometric angles or geometric offsets can be different. a) In one example, a geometric offset equal to 0 may not be allowed to be used in IBC - GPM. 2) In one example, for video units with different block sizes / dimensions, how to divide the video unit can be different. ii. In one example, one or more geometric partitioning patterns used in GPM or intra - GPM may not be allowed for IBC - GPM. iii. In one example, the maximum number of geometric partitioning patterns can be predefined in the bitstream or signaled. iv. In one example, sub - partitions adjacent to one or more sides of a video unit can be predicted by intra - prediction. 1) In one example, a side can refer to the left / top / right / bottom of a video unit. 2) In one example, predicting sub - partitions adjacent to one or more sides of a video unit by intra - prediction may not be allowed. a) In one example, a side can refer to the right / bottom of a video unit. v. In one example, geometric partitioning patterns can be reordered. 1) In one example, a method based on template matching can be used. a) In one example, template - matching - based reordering for GPM partitioning patterns (e.g., in section 0) can be used to reorder geometric partitioning patterns. b) In one example, the number of geometric partitioning patterns to be reordered is less than or equal to the number in GPM or GPM with intra - prediction. c) In one example, the first M geometric partitioning patterns can be used in IBC - GPM after reordering. i. In one example, M is an integer less than or equal to 64. c. In one example, a video unit can be divided into N sub - partitions, where N is an integer greater than 1. i. In one example, N = 2. ii. In one example, when N = 2, the prediction signal of the first sub - partition is derived using the first method, and the prediction signal of the second sub - partition is derived using the second method. 1) In one example, the first (second) method may refer to IBC / palette / intra - template matching, and the second (first) method may refer to IBC / palette / intra - template matching / intra - prediction / inter - prediction. 2) In one example, the two methods may be different. a) In one example, the first (second) method is IBC, and the second (first) method is intra - prediction. iii. In one example, determining which method to use to derive the prediction signal for the sub - partition can be signaled, predefined, or derived on - the - fly. 1) In one example, one or more syntax elements may be used for this determination. a) In one example, when N = 2, the syntax element (ibc_gpm_intra_flag) is used to indicate whether intra - prediction is used to derive the prediction signal of the first (second) sub - partition, where ibc_gpm_intra_flag equal to X indicates that intra - prediction is used. i. In one example, when for the first (second) sub - partition ibc_gpm_intra_flag is equal to X, a specific prediction method is used for the second (first) sub - partition, such as IBC. 2) In one example, this determination may depend on the coding / decoding information. a) In one example, the coding / decoding information may refer to the block size / dimension. b) In one example, the coding / decoding information may refer to the segmentation mode. d. In one example, when IBC is used to obtain the prediction, the IBC Merge mode and / or IBC AMVP mode may be used. i. In one example, how to use IBC to obtain the prediction for at least one sub - partition may be the same as the way to obtain the prediction of the entire block coded using IBC. ii. Alternatively, how to use IBC to obtain the prediction for at least one sub - partition or one hypothesis may be different from the way to obtain the prediction of the entire block coded using IBC. 1) In one example, the maximum allowed number of Merge / AMVP candidates may be different. 2) In one example, the construction of the IBC Merge / AMVP candidate list may be different. 3) In one example, the IBC Merge candidate list may not be reordered. a) Alternatively, the IBC Merge candidate list may be reordered in a different manner. i. In one example, placing the Merge candidates that are RR-IBC candidates (e.g., RR-IBC flip type is greater than 0) to the last position of the IBC Merge candidate list. iii. In one example, one or more specific patterns may not be used to obtain a prediction. 1) In one example, a specific Merge pattern may refer to the IBC TM Merge / AMVP pattern, or the IBC Merge pattern with BVD, or the RR-IBC Merge / AMVP pattern, for AMVR of IBC, IBC-LIC. 2) Alternatively, one or more specific patterns may be used to obtain an IBC prediction signal. a) In one example, the IBC TM Merge / AMVP pattern may be used. b) In one example, IBC-LIC may be applied to sub-partitioning that uses IBC to obtain a prediction signal. e. In one example, intra prediction may be used to obtain predictions for one or more sub-partitions / hypotheses. i. In one example, intra prediction may refer to specific codec tools, such as conventional intra prediction, DIMD, TIMD, MRL, ISP, MIP, intra TMP, CCLM, MMLM, CCCM, GLM, intra prediction fusion, TMRL, PDPC / gradient PDPC. 1) In one example, using one or more of the above codec tools may not be allowed to obtain intra prediction for IBC-GPM. a) In one example, intra prediction fusion is not allowed to be used for IBC-GPM. ii. In one example, at least one codec tool may be different from conventional intra prediction. 1) In one example, a codec tool may refer to how to fill reference samples, or whether and / or how to filter reference samples, or whether and / or how to apply a filtering process (e.g., PDPC / gradient PDPC), or whether and / or how to use an interpolation filter. 2) Alternatively, the codec tool used to obtain the intra prediction signal may be the same as conventional intra prediction. iii. In one example, an Intra Prediction Mode (IPM) candidate list is used, and one or more IPMs from the IPM candidate list can be used to obtain predictions for one or more sub - partitions. 1) In one example, the IPM candidate list can include one or more IPMs from the primary MPM list or the secondary MPM list. 2) In one example, the IPM candidate list can be constructed using TIMD and / or DIMD. 3) In one example, block vectors can be used to construct the IPM candidate list. a) For example, block vectors can be used by IBC to obtain one or more sub - partition / hypothetical predictions. 4) In one example, whether and / or how the IPM candidate list is constructed can depend on codec information. a) In one example, codec information can refer to block size / dimension. b) In one example, codec information can refer to the partitioning pattern that geometrically divides a block into sub - partitions. c) In one example, the size of the IPM candidate list can be the same for a block size / dimension or all partitioning patterns. 5) In one example, the size of the IPM candidate list or the maximum number of IPMs used to derive the intra prediction for sub - partitions can be predefined, signaled, or derived on - the - fly. f. In one example, inter - prediction can be used to obtain predictions for one or more sub - partitions / hypotheses. i. In one example, inter - prediction can refer to specific codec tools such as CIIP (e.g., CIIP - plane, CIIP - TIMD, CIIP - TM), BCW (e.g., BCW index derived by TM), MMVD (e.g., MMVD or TM - based re - ordering for MMVD), Template Matching (TM), IBC (e.g., IBC - TM, IBC with block vector difference, IBC with reconstruction re - ordering), Affine (e.g., Affine - MMVD, TM - based re - ordering for Affine MMVD), DMVR / Multi - pass DMVR, PROF, BDOF / Sample - based BDOF, Adaptive Decoder - side Motion Vector Refinement (ADMVR), OBMC or TM - based OBMC, MHP, GPM (e.g., GPM, GPM - TM, GPM - MMVD, GPM - Intra), Bilateral / Template - matching AMVP - Merge mode. g. In one example, the final prediction signal for the entire block can be refined through a filtering process. i. In one example, the filtering process may refer to PDPC or gradient PDPC. 2. It is proposed to obtain the prediction of the first component (e.g., chrominance component) of a video unit in the same way as the second component (e.g., luminance component). a. In one example, whether and how to obtain the prediction of the first component in the same way as the second component may depend on whether a single tree or a dual tree is used. i. In one example, when a single tree is used, the prediction of the first component is obtained in the same way as the second component. b. In one example, a specific prediction method other than IBC-GPM (e.g., IBC, or intra prediction, or inter prediction) may be used to obtain the prediction of the first component. 3. In one example, the prediction of the region along the geometric segmentation edge can be obtained by mixing the predictions of two sub-segmentations. a. In one example, the weights for mixing can be derived instantaneously or predefined. b. In one example, the weights for mixing may depend on the distance between the mixing sample points and the geometric segmentation edge. c. In one example, the width of the mixed region can be signaled. i. In one example, the determination of the mixed region may depend on codec information such as block size. ii. In one example, a set of mixed region sizes can be used, and an index indicating the mixed region size can be signaled. 1) In one example, the size of the set can be 2 / 3 / 4 / 5 / 6 / 7. 2) In one example, the set can be {τ / 4, τ / 2, τ, 2τ, 4τ}. 3) In one example, the set can be {τ / 4, τ / 2, τ}. 4) In one example, how to construct the set may depend on the video content. 5) In one example, the size of the set may depend on the video content. a) In one example, for screen content video, the size can be equal to 3, for natural video, the size can be equal to 5. 6) In one example, the size of the set can be signaled, predefined, or derived in the bitstream. iii. Alternatively, the width of the mixed region or the index indicating the mixed region size can be derived instead of being signaled. 4. In one example, IBC-GPM may not be allowed to be used with one or more specific codec tools. a. In one example, a specific codec tool may refer to the IBC AMVP mode, or the IBC Merge mode, or the IBC-TM mode, or the IBC-MBVD mode, or the RR-IBC mode, or the IBC-LIC, or the CIBCIP (IBC-CIIP) or the AMVR for IBC. b. Alternatively, the IBC-GPM can be used with one or more of the above codec tools. i. In one example, the IBC Merge mode and / or the IBC-TM mode can be used with the IBC- GPM. Store BV and IPM and MV 5. In one example, the codec information of a video unit coded with IBC-GPM can be stored and used by subsequent video units in the current picture and / or video units in subsequent pictures. a. In one example, the codec information may refer to block vectors and / or intra prediction modes and / or motion vectors. b. In one example, one or more BVs can be used to construct a Merge / AMVP candidate list for subsequent video units, or inserted into a history BV cache for future reference. i. In one example, BVs in sub-partitions with a larger size than other sub-partitions can be used. ii. In one example, BVs in the first / last sub-partition can be used. iii. Alternatively, BVs in IBC-GPM are not allowed to be used. c. In one example, one or more IPMs can be used to construct an MPM list for subsequent video units, or stored in an IPM cache, or used for chrominance prediction. i. In one example, IPMs in sub-partitions with a larger size than other sub-partitions can be used. ii. In one example, IPMs in the first / last sub-partition can be used. iii. Alternatively, any IPMs in IBC-GPM are not allowed to be used. 1) In one example, default IPMs such as planar or DC can be used. d. In one example, one or more MVs can be used to construct a Merge / AMVP candidate list for subsequent video units, or stored in a motion information cache. i. In one example, MVs in sub-partitions with a larger size than other sub-partitions can be used. ii. In one example, MVs in the first / last sub-partition can be used. iii. Alternatively, any MV in IBC-GPM is not allowed to be used. 1) In one example, the motion information for a video unit is set to be equal to the IBC mode. Control regarding enabling IBC - GPM 6. The determination of whether to allow encoding / decoding a block using the IBC-GPM mode can depend on the encoding / decoding information. a. In one example, the encoding / decoding information can indicate whether IBC (Merge and / or AMVP) is allowed. b. In one example, the encoding / decoding information can indicate the block dimension and / or the block size. i. In one example, when the block size (W×H) is less than or equal to a threshold (T), encoding / decoding the block using IBC-GPM is allowed, where W and H represent the block width and the block height respectively. 1) In one example, T = 256, or 512, or 1024, or 2048, or 4096. ii. In one example, when the block size (W×H) is greater than or equal to a threshold (T2), encoding / decoding the block using IBC-GPM is allowed, where W and H represent the block width and the block height respectively. 1) In one example, T2 = 16, or 32, or 64, or 128, or 256. iii. In one example, when W is greater than or equal to a threshold (T3) and / or H is greater than or equal to a threshold (T4), encoding / decoding the block using IBC-GPM is allowed. 1) In one example, T3 = 4 / 8 / 16 / 32. 2) In one example, T4 = 4 / 8 / 16 / 32. iv. In one example, when W is less than or equal to a threshold (T5) and / or H is less than or equal to a threshold (T6), encoding / decoding the block using IBC-GPM is allowed. 1) In one example, T5 = 16 / 32 / 64. 2) In one example, T6 = 16 / 32 / 64. v. In one example, the thresholds can be different for the IBC AMVP mode and the IBC Merge mode. c. In one example, the encoding / decoding information can indicate the depth of the block. d. In one example, the encoding / decoding information can indicate the block position, such as whether the current block is on the first line / row of the CTU. e. In one example, the encoding / decoding information can indicate the slice / picture type. i. In one example, IBC-GPM can be applied only to I slices / pictures. f. In one example, the coding information can refer to information of a temporal layer (e.g., a temporal layer index). g. In one example, the coding information can refer to information of a color component. 7. In one example, whether and / or how to apply IBC-GPM can depend on the color format and / or color component. a. In one example, IBC-GPM can be applied to all color components. b. In one example, when IBC-GPM is applied to a chrominance component, the derivation of intra prediction can be different from that of a luminance component. i. In one example, CCLM, or MMLM, or CCCM, or chroma-DIMD, or chroma-TIMD, or a combination of CCLM / MMLM / CCCM and an angular mode can be used to obtain intra prediction. c. In one example, whether and / or how to apply IBC-GPM to a first component can depend on whether IBC-GPM is applied to a second component. i. In one example, the first component can refer to a chrominance component (e.g., Cb and / or Cr), while the second component can refer to a luminance component (e.g., Y). ii. In one example, the way to apply IBC-GPM to the first component can be the same as that of the second component. 1) Alternatively, the way to apply IBC-GPM to the first component can be different from that of the second component. a) In one example, the weighting parameters can be different. d. In one example, IBC-GPM can be applied to a luminance component but not to a chrominance component. i. In one example, the luminance component can refer to Y in the YCbCr color space or G in the RGB color space. ii. In one example, the chrominance component can refer to Cb and / or Cr in the YCbCr color space or R and / or B in the RGB color space. Signaling for IBC - GPM 8. The indication of IBC-GPM can be signaled conditionally, where the condition can include: a. Whether the IBC Merge / AMVP mode is allowed b. Whether to allow specific encoding / decoding tools, such as IBC-TM, or IBC-MBVD, or RR-IBC, or IBC-LIC, or CIBCIP (IBC-CIIP) c. Block dimension and / or block size i. In one example, when the block size (W×H) is less than or equal to a threshold (T), the indication of IBC-GPM may not be signaled, where W and H represent the block width and block height respectively. 1) In one example, T = 256, or 512, or 1024, or 2048, or 4096. 2) In one example, T may depend on whether the IBC AMVP mode or the IBC Merge mode is used. a) In one example, when the IBC AMVP mode is used, T may be set to be equal to T1. i. In one example, T1 = 256, or T1 = 512, T1 = 1024, T1 = 2048, T1 = 4096. b) In one example, when the IBC Merge mode is used, T may be set to be equal to T2. i. In one example, T2 = 256, or T2 = 512, T2 = 1024, T2 = 2048, T2 = 4096. 3) In one example, T may depend on the slice / picture type. ii. In one example, when the block size (W×H) is less than or equal to a threshold (T3), the indication of IBC-GPM may not be signaled, where W and H represent the block width and block height respectively. 1) In one example, T3 = 16, or 32, or 64, or 128, or 256. 2) In one example, T3 may depend on whether the IBC AMVP mode or the IBC Merge mode is used. a) In one example, when the IBC AMVP mode is used, T3 may be set to be equal to T4. i. In one example, T4 = 16, or T4 = 32, T4 = 64, T4 = 128, T4 = 256. b) In one example, when the IBC Merge mode is used, T may be set to be equal to T5. i. In one example, T5 = 16, or T5 = 32, T5 = 64, 5 = 128, T5 = 256. iii. In one example, when W is greater than or equal to a threshold (T7) and / or H is greater than or equal to a threshold (T8), an indication of IBC-GPM can be signaled. 1) In one example, T7 = 4 / 8 / 16 / 32. 2) In one example, T8 = 4 / 8 / 16 / 32. iv. In one example, when W is less than or equal to a threshold (T9) and / or H is less than or equal to a threshold (T10), an indication of IBC-GPM can be signaled. 1) In one example, T9 = 16 / 32 / 64. 2) In one example, T10 = 16 / 32 / 64. v. In one example, the above thresholds (e.g., T / T3 / T7 / T8 / T9 / T10) can depend on the slice / picture type. d. The coding / decoding information can refer to the depth of the block. e. Slice / picture type and / or partition tree type (single tree or dual tree or local dual tree) f. Block position g. Color component. 9. Whether and how to apply IBC-GPM to a video unit can be signaled in the bitstream. a. In one example, whether to enable IBC-GPM to a video unit can be signaled using one or more syntax elements. i. In one example, a syntax element can be used to indicate whether IBC-GPM is applied to the video unit, and / or one or more syntax elements can be used to indicate whether IBCAMVP / Merge is used to obtain the prediction. ii. In one example, a syntax element can be used to indicate whether the IBC Merge mode is used in IBC-GPM. iii. In one example, a syntax element can be used to indicate whether the IBC AMVP mode is used in IBC-GPM. b. In one example, how and whether to divide a video unit into more than one sub - partition can be predefined or derived or signaled in the bitstream. i. In one example, a syntax element can be signaled to indicate the way to divide the video unit. ii. In one example, one or more syntax elements can be used to indicate how to obtain the prediction for each sub - partition, such as IBC and / or inter - prediction and / or intra - prediction. 1) In one example, one or more syntax elements may be signaled to indicate the IPM used for intra prediction in sub - partitioning. 2) In one example, one or more syntax elements may be signaled to indicate the IBC AMVP index or the IBC Merge index, thereby indicating the candidates used in IBC for sub - partitioning. c. In one example, a syntax element may be signaled that indicates which IPM of the IPM candidate list is used to obtain the intra prediction of one or more sub - partitions. d. In one example, one or more syntax elements may be signaled to indicate which BV candidate of the IBC Merge / AMVP candidate list is used to obtain the IBC prediction signal of one or more sub - partitions. e. In one example, how to use the multiple sub - partition hybrid prediction may be signaled in the bitstream. i. In one example, a syntax element indicating the hybrid width may be signaled. 1) In one example, the binarization method of the syntax element may be the same as that of the GPM with an adaptive hybrid method. a) Alternatively, the binarization method of the syntax element (e.g., ibc_gpm_bld_idx) may be different from that of the GPM with an adaptive hybrid method. i. In one example, the least significant bit may be used to binarize the index indicating the narrowest hybrid region. ii. In one example, ibc_gpm_bld_idx = 0, 1, 2, 3, 4 represent τ / 4, τ / 2, τ, 2τ, 4τ respectively. An example of the binarization of ibc_gpm_bld_idx is shown (where A / B / C / D = 1, 2, 3 or 4, and A!= B!= C!= D) as follows: iii. In one example, ibc_gpm_bld_idx = 0, 1, 2 represent τ / 4, τ / 2, τ respectively. An example of the binarization of ibc_gpm_bld_idx is shown (where A / B = 1 / 2 and A!= B) as follows: ibc_gpm_bld_idx Binary string 0 X (0 or 1) A (1-X)00 B (1-X)01 C (1-X)10 D (1-X)11 iii. In one example, ibc_gpm_bld_idx = 0, 1, 2 represent τ / 4, τ / 2, τ respectively. An example of the binarization of ibc_gpm_bld_idx is shown (where A / B = 1 / 2 and A!= B) as follows: ibc_gpm_bld_idx Binary string 0 X (0 or 1) A (1-X)0 B (1-X)1 f. In one example, the above - mentioned syntax elements may be binarized using fixed - length coding / decoding or rounding - off unary coding / decoding or unary coding / decoding or EG coding / decoding or coding / decoding flags. i. In one example, the syntax element may be bypass - coded. ii. Alternatively, the syntax element can be context - encoded and decoded. 1) The context can depend on encoding and decoding information, such as block dimension and / or block size, and / or slice / picture type, and / or information of neighboring blocks (adjacent or non - adjacent), and / or information of other encoding and decoding tools used for the current block, and / or information of the temporal layer. g. In one example, the syntax element can be signaled before or after the indication of IBC - TM mode or IBC - MBVD mode or RR - IBC mode or IBC - LIC or CIBCIP (IBC - CIIP). i. In one example, whether and / or how the syntax element is signaled can depend on whether IBC mode, or IBC - TM mode, or IBC - MBVD mode, or RR - IBC mode, or IBC - LIC, or CIBCIP (IBC - CIIP) is enabled for the video unit. h. In one example, one or more syntax elements can be signaled in the sequence header / picture header / SPS / VPS / DPS / DCI / PPS / APS / slice header / slice group header. i. In one example, IBC - GPM and GPM can share the signaling method for at least one syntax element, e.g., binarization, signaling conditions, and encoding and decoding context. General aspects 10. In the above examples, the video unit can refer to a color component / sub - picture / slice / picture / coding tree unit (CTU) / CTU row / group of CTUs / coding unit (CU) / prediction unit (PU) / transformation unit (TU) / coding tree block (CTB) / coding block (CB) / prediction block (PB) / transformation block (TB) / block / sub - block of the block / sub - region within the block / other regions containing more than one sample or pixel. 11. Whether and / or how to apply the methods disclosed above can be signaled at the following levels: sequence level / group of pictures level / picture level / slice level / slice group level, e.g., in the sequence header / picture header / SPS / VPS / DPS / DCI / PPS / APS / slice header / slice group header. 12. Whether and / or how to apply the methods disclosed above can be signaled at the following: PB / TB / CB / PU / TU / CU / VPDU / CTU / CTU row / slice / picture / sub - picture / other types of regions containing more than one sample or pixel. 13. Whether and / or how to apply the methods disclosed above may depend on codec information, such as block size, color format, single-tree / double-tree partitioning, color component, slice / picture type. 5. Embodiments 6. Embodiment 1 In this contribution, three aspects of extending the use of IBC are proposed: Aspect #1: Combining IBC and intra prediction (IBC-CIIP); Aspect #2: IBC with geometric partitioning (IBC-GPM); Aspect #3: IBC with local illumination compensation (IBC-LIC). Combining IBC and intra prediction (IBC-CIIP) When IBC-CIIP is applied to a CU, two prediction signals are obtained using IBC and intra prediction. These two prediction signals are weighted and summed to generate the final prediction. IBC-CIIP can be applied to IBC AMVP mode and IBC Merge mode. The use of IBC-CIIP is indicated by signaling a CU flag. IBC with geometric partitioning (IBC-GPM) When IBC-GPM is applied to a CU, the CU is geometrically partitioned into two sub-partitions. Prediction signals for the two sub-partitions are generated using IBC and intra prediction. IBC-GPM can be applied to IBC Merge mode. The use of IBC-GPM is indicated by signaling a CU flag. IBC with local illumination compensation (IBC-LIC) When IBC-LIC is applied to a CU, the local illumination change between the CU and its prediction block is modeled as a linear equation. The parameters of the linear equation are derived similar to those for LIC used in inter prediction. IBC-LIC can be applied to IBC AMVP mode and IBC Merge mode. For IBC AMVP mode, the use of IBC-LIC is indicated by signaling an IBC-LIC flag. For IBC Merge mode, the IBC-LIC flag is inferred from the Merge candidates.

[0119] As used herein, the terms "video unit" or "video block" may be a sequence, picture, strip, slice, tile, sub - picture, coding tree unit (CTU) / coding tree block (CTB), CTU / CTB row, one or more coding units (CU) / coding blocks (CB), one or more CTU / CTB, one or more virtual pipeline data units (VPDU), a sub - region within a picture / strip / slice / tile. The term "reference line" may refer to reconstructed samples of lines and / or columns adjacent or non - adjacent to the current block, which are used to derive the intra - prediction of the current video unit via an interpolation filter along a specific direction, and the specific direction is determined by an intra - prediction mode (e.g., conventional intra - prediction with an intra - prediction mode), or the intra - prediction of the current video unit is derived by weighting the reference samples of the reference lines using a matrix or a vector (e.g., MIP).

[0120] Figure 53 FIG. 5300 is a flowchart of a method 5300 for video processing according to an embodiment of the present disclosure. Method 5300 is implemented during the conversion between a video unit of a video and the bitstream of the video.

[0121] At block 5310, for the conversion between a video unit of a video and the bitstream of the video, the video unit is divided into a plurality of sub - partitions in a predefined manner. The video unit is coded using intra - block copy (IBC) - geometric partitioning mode (GPM), and the set of geometric partitioning modes used in IBC - GPM is reordered.

[0122] At block 5320, at least one sub - partition prediction of the video unit is obtained using intra - block copy.

[0123] At block 5330, the conversion is performed based on the prediction of at least one sub - partition of the video unit. In some embodiments, the conversion may include encoding the video unit into the bitstream. Alternatively or additionally, the conversion may include decoding the video unit from the bitstream. In this way, the coding and decoding messages and coding and decoding performance can be improved.

[0124] In some embodiments, a template - matching - based method is used to reorder the set of geometric partitioning modes. In some embodiments, the template - matching - based method for reordering GPM partitioning patterns is used to reorder the set of geometric partitioning modes.

[0125] In some embodiments, the number of geometric partitioning modes in the set of geometric partitioning modes to be reordered is less than the number of geometric partitioning modes to be reordered in GPM or GPM with intra - prediction. Alternatively, the number of geometric partitioning modes in the set of geometric partitioning modes to be reordered is equal to the number of geometric partitioning modes to be reordered in GPM or GPM with intra - prediction.

[0126] In some embodiments, the top M geometric partition patterns are used in IBC-GPM after reordering. In some embodiments, M is an integer less than or equal to 64.

[0127] In some embodiments, when the block size is greater than or equal to a first threshold, the block is allowed to be encoded and decoded using IBC-GPM. In this case, the block size is equal to WH, and W and H represent the block width and block height of the block, respectively. In some embodiments, the first threshold is one of the following: 16, or 32, or 64, or 128, or 256.

[0128] In some embodiments, when the block width of the block is greater than or equal to a second threshold, the block is allowed to be encoded and decoded using IBC-GPM. Alternatively or additionally, when the block height of the block is greater than or equal to a third threshold, the block is allowed to be encoded and decoded using IBC-GPM. In some embodiments, the second threshold is one of the following: 4, 8, 16, or 32, and wherein the third threshold is one of the following: 4, 8, 16, or 32.

[0129] In some embodiments, when the block width of the block is less than or equal to a fourth threshold, the block is allowed to be encoded and decoded using IBC-GPM. Alternatively or additionally, when the block height of the block is less than or equal to a fifth threshold, the block is allowed to be encoded and decoded using IBC-GPM. In some embodiments, the fourth threshold is one of the following: 16, 32, or 64, and wherein the fifth threshold is one of the following: 16, 32, or 64. In some embodiments, at least one of the first threshold, the second threshold, the third threshold, the fourth threshold, or the fifth threshold is different for the IBC AMVP mode and the IBC Merge mode.

[0130] In some embodiments, the indication of IBC-GPM is signaled based on a condition. In an example embodiment, the condition includes at least one of block dimensions or block size.

[0131] In some embodiments, when the block size is less than or equal to a sixth threshold, the indication of IBC-GPM is not signaled. In this case, the block size can be equal to WH, and W and H represent the block width and block height of the block, respectively. In some embodiments, the sixth threshold is 256, or 512, or 1024, or 2048, or 4096. In some embodiments, the sixth threshold depends on whether the IBC AMVP mode or the IBC Merge mode is used. In some embodiments, the sixth threshold depends on the slice type or the picture type.

[0132] In some embodiments, when the IBC AMVP mode is used, the sixth threshold is set to be equal to the first value. In some embodiments, the first value is equal to one of the following: 256, 1024, 2048, or 4096. In some embodiments, when the IBCMerge mode is used, the sixth threshold is set to be equal to the second value. In some embodiments, the second value is equal to one of the following: 256, 512, 1024, 2048, or 4096.

[0133] In some embodiments, when the block size is less than or equal to the seventh threshold, the indication of IBC-GPM is not signaled. In this case, the block size may be equal to WH, and W and H represent the block width and block height of the block, respectively.

[0134] In some embodiments, the seventh threshold is at least one of the following: 16, or 32, or 64, or 128, or 256. In some embodiments, the seventh threshold depends on whether the IBC AMVP mode or the IBC Merge mode is used.

[0135] In some embodiments, when the IBC AMVP mode is used, the seventh threshold is set equal to the third value. In some embodiments, the third value is one of the following: 16, 32, 64, 128, or 256.

[0136] In some embodiments, when the IBC Merge mode is used, the seventh threshold is set to be equal to the fourth value. In some embodiments, the fourth value is one of the following: 16, 32, 64, 128, or 256.

[0137] In some embodiments, when the block width is greater than or equal to the eighth threshold, the indication of IBC-GPM is signaled. Alternatively or additionally, when the block height is greater than or equal to the ninth threshold, the indication of IBC-GPM is signaled. In some embodiments, the eighth threshold is one of the following: 4, 8, 16, or 32, and / or the ninth threshold is one of the following: 4, 8, 16, or 32.

[0138] In some embodiments, when the block width is less than or equal to the tenth threshold, the indication of IBC-GPM is signaled. Alternatively or additionally, when the block height is less than or equal to the eleventh threshold, the indication of IBC-GPM is signaled. In some embodiments, the tenth threshold is one of the following: 16, 32, or 64, and / or the eleventh threshold is one of the following: 16, 32, or 64.

[0139] In some embodiments, at least one of the sixth threshold, the seventh threshold, the eighth threshold, the ninth threshold, the tenth threshold, or the eleventh threshold depends on the slice type or the picture type.

[0140] In some embodiments, one or more syntax elements indicating which block vector (BV) candidate in the IBC Merge candidate list or the AMVP candidate list is used to obtain the prediction of at least one sub - partition are signaled. In some embodiments, the use of multiple sub - partition hybrid prediction is signaled in the bitstream.

[0141] In some embodiments, a syntax element indicating the hybrid width is signaled. In some embodiments, the binarization method of the syntax element is the same as that of the GPM with an adaptive hybrid mode. Alternatively, the binarization mode of the syntax element is different from that of the GPM with an adaptive hybrid mode. In some embodiments, the index indicating the narrowest hybrid is binarized using the least significant bits.

[0142] In some embodiments, the syntax element is ibc_gpm_bld_idx, where ibc_gpm_bld_idx = 0 represents τ / 4, ibc_gpm_bld_idx = 1 represents τ / 2, ibc_gpm_bld_idx = 2 represents τ, ibc_gpm_bld_idx = 3 represents 2τ, and ibc_gpm_bld_idx = 4 represents 4τ.

[0143] In some embodiments, the binarization of ibc_gpm_bld_idx is as follows: ibc_gpm_bld_idx Binary string 0 X (0 or 1) A (1-X)00 B (1-X)01 C (1-X)10 D (1-X)11 where A is one of the following: 1, 2, 3, or 4, B is one of the following: 1, 2, 3, or 4, C is one of the following: 1, 2, 3, or 4, D is one of the following: 1, 2, 3, or 4, and A, B, C, and D are not equal to each other.

[0144] In some embodiments, the syntax element is ibc_gpm_bld_idx, where ibc_gpm_bld_idx = 0 represents τ / 4, ibc_gpm_bld_idx = 1 represents τ / 2, or ibc_gpm_bld_idx = 2 represents τ.

[0145] In some embodiments, the binarization of ibc_gpm_bld_idx is as follows: ibc_gpm_bld_idx Binary string 0 X (0 or 1) A (1-X)0 B (1-X)1 where A is 1 or 2, B is 2 or 1, and A and B are not equal to each other.

[0146] According to other embodiments of the present disclosure, a non-transitory computer-readable recording medium is provided. The non-transitory computer-readable recording medium stores a bitstream generated by a method executed by an apparatus for video processing of a video. The method includes: dividing video units of the video into a plurality of sub-partitions in a predefined manner, where the video units are encoded and decoded using an intra block copy (IBC)-geometry partition mode (GPM), and where a set of geometry partition modes used in the IBC-GPM is reordered; obtaining a prediction of at least one sub-partition of a video unit using intra block copy; and generating a bitstream based on the prediction of at least one sub-partition of the video unit.

[0147] According to additional embodiments of the present disclosure, a method for storing a bitstream of a video is provided. The method includes: dividing video units of the video into a plurality of sub-partitions in a predefined manner, where the video units are encoded and decoded using an intra block copy (IBC)-geometry partition mode (GPM), and where a set of geometry partition modes used in the IBC-GPM is reordered; obtaining a prediction of at least one sub-partition of a video unit using intra block copy; generating a bitstream based on the prediction of at least one sub-partition of the video unit; and storing the bitstream in a non-transitory computer-readable recording medium.

[0148] Figure 54 A flowchart of a method 5400 for video processing according to an embodiment of the present disclosure is shown. The method 5400 is implemented during the conversion between video units of a video and a bitstream of the video.

[0149] At block 5410, for the conversion between video units of a video and a bitstream of the video, a prediction of at least one sub-partition of a video unit is obtained using one of intra block copy (IBC) or an intra prediction mode. The video units may be encoded and decoded using an intra block copy (IBC)-geometry partition mode (GPM). The IBC includes at least one of the following: an IBC Merge mode or an IBC advanced motion vector prediction (AMVP) mode.

[0150] At block 5420, the conversion is performed based on the prediction of at least one sub-partition of the video unit. In some embodiments, the conversion may include encoding the video unit into the bitstream. Alternatively or additionally, the conversion may include decoding the video unit from the bitstream. In this way, the encoding and decoding messages and the encoding and decoding performance can be improved.

[0151] In some embodiments, the way of obtaining a prediction for at least one sub-division of a video unit using IBC is different from the way of obtaining a prediction for an entire block encoded and decoded using IBC. In some embodiments, the IBC Merge candidate list is sorted in a different way. In some embodiments, the Merge candidates that are Reconstruction-Reordered IBC (RR-IBC) candidates are placed at the last position in the IBC Merge candidate list.

[0152] In some embodiments, one or more modes are not used to obtain a prediction. In some embodiments, one or more Merge modes include at least one of the following: IBC Template Matching (TM) Merge mode, IBC TM AMVP mode, IBC Merge mode with Block Vector Difference (BVD), Reconstruction-Reordered IBC (RR-IBC) Merge mode, RR-IBC AMVP mode, Adaptive Motion Vector Resolution (AMVR) for IBC, or IBC Local Illumination Compensation (LIC) (IBC-LIC).

[0153] In some embodiments, one or more modes are used to obtain a prediction that is an IBC prediction signal. In some embodiments, the IBC Template Matching (TM) Merge mode is used to obtain an IBC prediction signal, or an AMVP mode is used to obtain an IBC prediction signal. In some embodiments, IBC-LIC is applied to at least one sub-division that uses IBC to obtain a prediction. In some embodiments, the intra prediction modes include at least one of the following: conventional intra prediction, decoder-side intra mode derivation (DIMD), template-based intra mode derivation (TIMD), multi-reference row intra prediction (MRL), intra sub-division (ISP), matrix weighted intra prediction (MIP), intra template matching prediction (TMP), cross-component linear mode (CCLM) mode, multi-mode linear mode (MMLM), convolutional cross-component model (CCCM), general linear mode (GLM), intra prediction fusion, template-based multi-reference row intra prediction (TMRL), position-dependent intra prediction combination (PDPC), or gradient PDPC.

[0154] In some embodiments, at least one of the intra prediction modes is not allowed to be used to obtain an intra prediction for IBC-GPM. In some embodiments, intra prediction fusion is not allowed for IBC-GPM. In some embodiments, at least one encoding and decoding tool is different from conventional intra prediction.

[0155] In some embodiments, at least one codec tool refers to one of the following: how to fill reference samples, or whether and / or how to filter reference samples, or whether and / or how to apply a filtering process, or whether and / or how to use an interpolation filter. In some embodiments, at least one codec tool used to obtain an intra prediction signal is the same as a conventional intra prediction.

[0156] In some embodiments, the final prediction signal is refined by a filtering process. In some embodiments, the filtering process includes one of the following: PDPC or Gradient PDPC.

[0157] In some embodiments, when the block size is greater than or equal to a first threshold, the block is allowed to be coded and decoded using IBC-GPM. In this case, the block size is equal to WH, and W and H represent the block width and block height of the block, respectively. In some embodiments, the first threshold is one of the following: 16, or 32, or 64, or 128, or 256.

[0158] In some embodiments, when the block width of the block is greater than or equal to a second threshold, the block is allowed to be coded and decoded using IBC-GPM. Alternatively or additionally, when the block height of the block is greater than or equal to a third threshold, the block is allowed to be coded and decoded using IBC-GPM. In some embodiments, the second threshold is one of the following: 4, 8, 16 or 32, and wherein the third threshold is one of the following: 4, 8, 16 or 32.

[0159] In some embodiments, when the block width of the block is less than or equal to a fourth threshold, the block is allowed to be coded and decoded using IBC-GPM. Alternatively or additionally, when the block height of the block is less than or equal to a fifth threshold, the block is allowed to be coded and decoded using IBC-GPM. In some embodiments, the fourth threshold is one of the following: 16, 32 or 64, and wherein the fifth threshold is one of the following: 16, 32 or 64. In some embodiments, at least one of the first threshold, the second threshold, the third threshold, the fourth threshold or the fifth threshold is different for the IBC AMVP mode and the IBC Merge mode.

[0160] In some embodiments, the indication of IBC-GPM is signaled based on a condition. In an exemplary embodiment, the condition includes at least one of block dimension or block size.

[0161] In some embodiments, when the block size is less than or equal to a sixth threshold, the indication of IBC-GPM is not transmitted via a signal. In this case, the block size can be equal to WH, where W and H represent the block width and block height of the block, respectively. In some embodiments, the sixth threshold is 256, or 512, or 1024, or 2048, or 4096. In some embodiments, the sixth threshold depends on whether the IBC AMVP mode or the IBC Merge mode is used. In some embodiments, the sixth threshold depends on the slice type or the picture type.

[0162] In some embodiments, when the IBC AMVP mode is used, the sixth threshold is set to be equal to a first value. In some embodiments, the first value is equal to one of the following: 256, 1024, 2048, or 4096. In some embodiments, when the IBC Merge mode is used, the sixth threshold is set to be equal to a second value. In some embodiments, the second value is equal to one of the following: 256, 512, 1024, 2048, or 4096.

[0163] In some embodiments, when the block size is less than or equal to a seventh threshold, the indication of IBC-GPM is not transmitted via a signal. In this case, the block size can be equal to WH, where W and H represent the block width and block height of the block, respectively.

[0164] In some embodiments, the seventh threshold is at least one of the following: 16, or 32, or 64, or 128, or 256. In some embodiments, the seventh threshold depends on whether the IBC AMVP mode or the IBC Merge mode is used.

[0165] In some embodiments, when the IBC AMVP mode is used, the seventh threshold is set equal to a third value. In some embodiments, the third value is one of the following: 16, 32, 64, 128, or 256.

[0166] In some embodiments, when the IBC Merge mode is used, the seventh threshold is set to be equal to a fourth value. In some embodiments, the fourth value is one of the following: 16, 32, 64, 128, or 256.

[0167] In some embodiments, when the block width is greater than or equal to an eighth threshold, the indication of IBC-GPM is transmitted via a signal. Alternatively or additionally, when the block height is greater than or equal to a ninth threshold, the indication of IBC-GPM is transmitted via a signal. In some embodiments, the eighth threshold is one of the following: 4, 8, 16, or 32, and / or wherein the ninth threshold is one of the following: 4, 8, 16, or 32.

[0168] In some embodiments, when the block width is less than or equal to a tenth threshold, the indication of IBC-GPM is signaled. Alternatively or additionally, when the block height is less than or equal to an eleventh threshold, the indication of IBC-GPM is signaled. In some embodiments, the tenth threshold is one of the following: 16, 32, or 64, and / or the eleventh threshold is one of the following: 16, 32, or 64.

[0169] In some embodiments, at least one of the sixth threshold, the seventh threshold, the eighth threshold, the ninth threshold, the tenth threshold, or the eleventh threshold depends on the slice type or the picture type.

[0170] In some embodiments, one or more syntax elements indicating which block vector (BV) candidate in the IBC Merge candidate list or the AMVP candidate list is used to obtain the prediction of at least one sub-partition are signaled. In some embodiments, it is signaled in the bitstream in a manner of using multiple sub-partition hybrid prediction.

[0171] In some embodiments, a syntax element indicating the hybrid width is signaled. In some embodiments, the binarization method of the syntax element is the same as that of GPM with an adaptive hybrid mode. Alternatively, the binarization mode of the syntax element is different from that of GPM with an adaptive hybrid mode. In some embodiments, the index indicating the narrowest hybrid is binarized using the least significant bit.

[0172] In some embodiments, the syntax element is ibc_gpm_bld_idx, where ibc_gpm_bld_idx = 0 represents τ / 4, ibc_gpm_bld_idx = 1 represents τ / 2, ibc_gpm_bld_idx = 2 represents τ, ibc_gpm_bld_idx = 3 represents 2τ, and ibc_gpm_bld_idx = 4 represents 4τ.

[0173] In some embodiments, the binarization of ibc_gpm_bld_idx is as follows: where A is one of the following: 1, 2, 3, or 4, B is one of the following: 1, 2, 3, or 4, C is one of the following: 1, 2, 3, or 4, D is one of the following: 1, 2, 3, or 4, and A, B, C, and D are not equal to each other.

[0174] In some embodiments, the syntax element is ibc_gpm_bld_idx, where ibc_gpm_bld_idx = 0 represents τ / 4, ibc_gpm_bld_idx = 1 represents τ / 2, or ibc_gpm_bld_idx = 2 represents τ.

[0175] In some embodiments, the binarization of ibc_gpm_bld_idx is as follows: ibc_gpm_bld_idx Binary string 0 X (0 or 1) A (1-X)0 B (1-X)1 where A is 1 or 2, B is 2 or 1, and A and B are not equal to each other.

[0176] According to other embodiments of the present disclosure, a non-transitory computer-readable recording medium is provided. The non-transitory computer-readable recording medium stores a bitstream generated by a method executed by a device for video processing of a video. The method includes: obtaining a prediction of at least one sub-division of a video unit of the video using one of an intra block copy (IBC) or an intra prediction mode, where the video unit is encoded and decoded using an intra block copy (IBC)-geometric partitioning mode (GPM), and where the IBC includes at least one of the following: an IBC Merge mode or an IBC advanced motion vector prediction (AMVP) mode; and generating a bitstream based on the prediction of at least one sub-division of the video unit.

[0177] According to other embodiments of the present disclosure, a method for storing a bitstream of a video is provided. The method includes: obtaining a prediction of at least one sub-division of a video unit of the video using one of an intra block copy (IBC) or an intra prediction mode, where the video unit is encoded and decoded using an intra block copy (IBC)-geometric partitioning mode (GPM), and where the IBC includes at least one of the following: an IBC Merge mode or an IBC advanced motion vector prediction (AMVP) mode; generating a bitstream based on the prediction of at least one sub-division of the video unit; and storing the bitstream in a non-transitory computer-readable recording medium.

[0178] Figure 55 A flowchart of a method 5500 for video processing according to an embodiment of the present disclosure is shown. Method 5500 is implemented during the conversion between a video unit of a video and a bitstream of the video.

[0179] At block 5510, for the conversion between a video unit of a video and a bitstream of the video, the video unit is divided into a plurality of sub-divisions in a predefined manner. The video unit is encoded and decoded using an intra block copy (IBC)-geometric partitioning mode (GPM).

[0180] At block 5520, a prediction of a region along a geometric partitioning edge of the video unit is obtained by mixing predictions of two sub-divisions of the video unit.

[0181] At block 5530, a transformation is performed based on a prediction. In some embodiments, the transformation may include encoding a video unit into a bitstream. Alternatively or additionally, the transformation may include decoding a video unit from the bitstream. In this way, codec messages and codec performance can be improved.

[0182] In some embodiments, a set of hybrid region sizes is used and an index indicating the hybrid region size is indicated. In some embodiments, the size of the set of hybrid region sizes is one of the following: 2, 3, 4, 5, 6, or 7. In some embodiments, the set of hybrid region sizes is {τ / 4, τ / 2, τ, 2τ, 4τ}, or where the set of hybrid region sizes is {τ / 4, τ / 2, τ}. In some embodiments, how the set of hybrid region sizes is constructed depends on the video content.

[0183] In some embodiments, the size of the set of hybrid region sizes depends on the video content. In some embodiments, for screen content video, the size of the set of hybrid region sizes is equal to 3, and for natural video, the size of the set of hybrid region sizes is equal to 5.

[0184] In some embodiments, the size of the set of hybrid region sizes is predefined or derived or signaled in the bitstream. In some embodiments, the set of hybrid region sizes and the index indicating the hybrid region size are derived.

[0185] In some embodiments, IBC-GPM is used with one or more codec tools. In some embodiments, the one or more codec tools include at least one of the following: IBC AMVP mode, IBIMerge mode, IBC TM mode, IBC-MBVD mode, RR-IBC mode, IBC-LIC mode, IBC combined inter and intra prediction (CIIP) mode, or AMVR for IBC. In some embodiments, at least one of IBC Merge mode or IBC-TM mode is used with IBC-GPM.

[0186] In some embodiments, when the block size is greater than or equal to a first threshold, the block is allowed to be coded and decoded using IBC-GPM. In this case, the block size is equal to WH, and W and H represent the block width and block height of the block, respectively. In some embodiments, the first threshold is one of the following: 16, or 32, or 64, or 128, or 256.

[0187] In some embodiments, when the block width of a block is greater than or equal to a second threshold, the block is allowed to be encoded and decoded using IBC-GPM. Alternatively or additionally, when the block height of a block is greater than or equal to a third threshold, the block is allowed to be encoded and decoded using IBC-GPM. In some embodiments, the second threshold is one of the following: 4, 8, 16, or 32, and wherein the third threshold is one of the following: 4, 8, 16, or 32.

[0188] In some embodiments, when the block width of a block is less than or equal to a fourth threshold, the block is allowed to be encoded and decoded using IBC-GPM. Alternatively or additionally, when the block height of a block is less than or equal to a fifth threshold, the block is allowed to be encoded and decoded using IBC-GPM. In some embodiments, the fourth threshold is one of the following: 16, 32, or 64, and wherein the fifth threshold is one of the following: 16, 32, or 64. In some embodiments, at least one of the first threshold, the second threshold, the third threshold, the fourth threshold, or the fifth threshold is different for the IBC AMVP mode and the IBC Merge mode.

[0189] In some embodiments, the indication of IBC-GPM is signaled based on a condition. In an example embodiment, the condition includes at least one of block dimension or block size.

[0190] In some embodiments, when the block size is less than or equal to a sixth threshold, the indication of IBC-GPM is not signaled. In this case, the block size can be equal to WH, and W and H represent the block width and block height of the block, respectively. In some embodiments, the sixth threshold is 256, or 512, or 1024, or 2048, or 4096. In some embodiments, the sixth threshold depends on whether the IBC AMVP mode or the IBC Merge mode is used. In some embodiments, the sixth threshold depends on the slice type or the picture type.

[0191] In some embodiments, when the IBC AMVP mode is used, the sixth threshold is set to be equal to a first value. In some embodiments, the first value is one of the following: 256, 1024, 2048, or 4096. In some embodiments, when the IBC Merge mode is used, the sixth threshold is set to be equal to a second value. In some embodiments, the second value is one of the following: 256, 512, 1024, 2048, or 4096.

[0192] In some embodiments, when the block size is less than or equal to a seventh threshold, the indication of IBC-GPM is not signaled. In this case, the block size can be equal to WH, and W and H represent the block width and block height of the block, respectively.

[0193] In some embodiments, the seventh threshold is at least one of the following: 16, or 32, or 64, or 128, or 256. In some embodiments, the seventh threshold depends on whether the IBC AMVP mode or the IBC Merge mode is used.

[0194] In some embodiments, when the IBC AMVP mode is used, the seventh threshold is set equal to the third value. In some embodiments, the third value is one of the following: 16, 32, 64, 128, or 256.

[0195] In some embodiments, when the IBC Merge mode is used, the seventh threshold is set to be equal to the fourth value. In some embodiments, the fourth value is one of the following: 16, 32, 64, 128, or 256.

[0196] In some embodiments, when the block width is greater than or equal to the eighth threshold, the indication of IBC-GPM is signaled. Alternatively or additionally, when the block height is greater than or equal to the ninth threshold, the indication of IBC-GPM is signaled. In some embodiments, the eighth threshold is one of the following: 4, 8, 16, or 32, and / or wherein the ninth threshold is one of the following: 4, 8, 16, or 32.

[0197] In some embodiments, when the block width is less than or equal to the tenth threshold, the indication of IBC-GPM is signaled. Alternatively or additionally, when the block height is less than or equal to the eleventh threshold, the indication of IBC-GPM is signaled. In some embodiments, the tenth threshold is one of the following: 16, 32, or 64, and / or wherein the eleventh threshold is one of the following: 16, 32, or 64.

[0198] In some embodiments, at least one of the sixth threshold, the seventh threshold, the eighth threshold, the ninth threshold, the tenth threshold, or the eleventh threshold depends on the slice type or the picture type.

[0199] In some embodiments, one or more syntax elements indicating which block vector (BV) candidate in the IBC Merge candidate list or the AMVP candidate list is used to obtain the prediction of at least one sub-partition are signaled. In some embodiments, the way of using multiple sub-partition hybrid prediction is signaled in the bitstream.

[0200] In some embodiments, a syntax element indicating the hybrid width is signaled. In some embodiments, the binaryization method of the syntax element is the same as that of GPM with an adaptive hybrid mode. Alternatively, the binaryization method of the syntax element is different from that of GPM with an adaptive hybrid mode. In some embodiments, the index indicating the narrowest hybrid is binaryized using the least significant bit.

[0201] In some embodiments, the syntax element is ibc_gpm_bld_idx, where ibc_gpm_bld_idx = 0 represents τ / 4, ibc_gpm_bld_idx = 1 represents τ / 2, ibc_gpm_bld_idx = 2 represents τ, ibc_gpm_bld_idx = 3 represents 2τ, and ibc_gpm_bld_idx = 4 represents 4τ.

[0202] In some embodiments, the binarization of ibc_gpm_bld_idx is as follows: ibc_gpm_bld_idx Binary string 0 X (0 or 1) A (1-X)00 B (1-X)01 C (1-X)10 D (1-X)11 where A is one of the following: 1, 2, 3, or 4, B is one of the following: 1, 2, 3, or 4, D is one of the following: 1, 2, 3, or 4, D is one of the following: 1, 2, 3, or 4, and A, B, C, and D are not equal to each other.

[0203] In some embodiments, the syntax element is ibc_gpm_bld_idx, where ibc_gpm_bld_idx = 0 represents τ / 4, ibc_gpm_bld_idx = 1 represents τ / 2, or ibc_gpm_bld_idx = 2 represents τ.

[0204] In some embodiments, the binarization of ibc_gpm_bld_idx is as follows: ibc_gpm_bld_idx Binary string 0 X (0 or 1) A (1-X)0 B (1-X)1 where A is 1 or 2, B is 2 or 1, and A and B are not equal to each other.

[0205] In some embodiments, a video unit includes at least one of the following: a color component, a prediction block (PB), a transform block (TB), a coding / decoding block (CB), a prediction unit (PU), a transform unit (TU), a coding / decoding tree block (CTB), a coding / decoding unit (CU), a coding / decoding tree unit (CTU), a CTU row, a group of CTUs, a slice, a picture, a sub-picture, a block, a sub-region within a block, or a region containing more than one sample or pixel.

[0206] In some embodiments, an indication of whether and / or how to obtain the prediction of at least one sub-division of a video unit is indicated in at least one of the following: sequence level, picture group level, picture level, slice level, or slice group level.

[0207] In some embodiments, an indication of whether and / or how to obtain a prediction of at least one sub - partition of a video unit is indicated in one of the following: sequence header, picture header, sequence parameter set (SPS), video parameter set (VPS), dependency parameter set (DPS), decoding capability information (DCI), picture parameter set (PPS), adaptive parameter set (APS), slice header, or slice group header.

[0208] In some embodiments, an indication of whether and / or how to obtain a prediction of at least one sub - partition of a video unit is included in one of the following: prediction block (PB), transform block (TB), codec block (CB), prediction unit (PU), transform unit (TU), codec unit (CU), virtual pipeline data unit (VPDU), codec tree unit (CTU), CTU row, slice, picture, sub - picture, or a region containing more than one sample or pixel.

[0209] In some embodiments, method 5500 further includes: determining whether and / or how to obtain a prediction of at least one sub - partition of a video unit based on the codec information of the video unit, the codec information including at least one of the following: block size, color format, single - tree and / or dual - tree partitioning, color component, slice type, or picture type.

[0210] According to other embodiments of the present disclosure, a non - transitory computer - readable recording medium is provided. The non - transitory computer - readable recording medium stores a bitstream generated by a method executed by an apparatus for video processing. The method includes: dividing a video unit into a plurality of sub - partitions in a predefined manner, where the video unit is coded and decoded using intra - block copy (IBC) - geometric partitioning mode (GPM); obtaining a prediction of a region along a geometric partitioning edge of the video unit by mixing predictions of two sub - partitions of the video unit; and generating a bitstream based on the prediction.

[0211] According to other embodiments of the present disclosure, a method for storing a bitstream of a video is provided. The method includes: dividing a video unit into a plurality of sub - partitions in a predefined manner, where the video unit is coded and decoded using intra - block copy (IBC) - geometric partitioning mode (GPM); obtaining a prediction of a region along a geometric partitioning edge of the video unit by mixing predictions of two sub - partitions of the video unit; generating a bitstream based on the prediction; and storing the bitstream in a non - transitory computer - readable recording medium.

[0212] The implementations of the present disclosure can be described according to the following items, and the features can be combined in any reasonable manner.

[0213] Item 1. A video processing method, comprising: for the conversion between a video unit of a video and the bitstream of the video, dividing the video unit into a plurality of sub-divisions in a predefined manner, wherein the video unit is encoded and decoded using an Intra Block Copy (IBC)-Geometry Partitioning Mode (GPM), and wherein the set of geometry partitioning modes used in the IBC-GPM is re-ordered; obtaining a prediction of at least one sub-division of the video unit using Intra Block Copy; and performing the conversion based on the prediction of the at least one sub-division of the video unit.

[0214] Item 2. The method according to Item 1, wherein a method based on template matching is used to re-order the set of geometry partitioning modes.

[0215] Item 3. The method according to Item 2, wherein the method based on template matching for re-ordering the GPM partitioning modes is used to re-order the set of geometry partitioning modes.

[0216] Item 4. The method according to Item 1, wherein the number of geometry partitioning modes in the set of geometry partitioning modes to be re-ordered is less than the number of geometry partitioning modes to be re-ordered in the GPM or the GPM with intra prediction, or wherein the number of geometry partitioning modes in the set of geometry partitioning modes to be re-ordered is equal to the number of geometry partitioning modes to be re-ordered in the GPM or the GPM with intra prediction.

[0217] Item 5. The method according to Item 1, wherein the first M geometry partitioning modes after re-ordering are used in the IBC-GPM.

[0218] Item 6. The method according to Item 5, wherein M is an integer less than or equal to 64.

[0219] Item 7. A video processing method, comprising: for the conversion between a video unit of a video and the bitstream of the video, obtaining a prediction of at least one sub-division of the video unit using one of Intra Block Copy (IBC) or an intra prediction mode, wherein the video unit is encoded and decoded using an Intra Block Copy (IBC)-Geometry Partitioning Mode (GPM), and wherein the IBC includes at least one of the following: an IBC Merge mode or an IBC Advanced Motion Vector Prediction (AMVP) mode; and performing the conversion based on the prediction of the at least one sub-division of the video unit.

[0220] Item 8. The method according to Item 7, wherein the manner of obtaining the prediction of at least one sub-division of the video unit using the IBC is different from the manner of obtaining the prediction of the entire block encoded and decoded using the IBC.

[0221] Item 9. The method according to Item 8, wherein the IBC Merge candidate list is sorted in a different manner.

[0222] Item 10. The method according to Item 9, wherein the Merge candidates that are reconstruction-reordered IBC (RR-IBC) candidates are placed at the last position in the IBC Merge candidate list.

[0223] Item 11. The method according to Item 7, wherein one or more modes are not used to obtain the prediction.

[0224] Item 12. The method according to Item 11, wherein the one or more Merge modes include at least one of the following: IBC template matching (TM) Merge mode, IBC TM AMVP mode, IBC Merge mode with block vector difference (BVD), reconstruction-reordered IBC (RR-IBC) Merge mode, RR-IBC AMVP mode, adaptive motion vector resolution (AMVR) for IBC, or IBC local illumination compensation (LIC) (IBC-LIC).

[0225] Item 13. The method according to Item 7, wherein one or more modes are used to obtain the prediction that is an IBC prediction signal.

[0226] Item 14. The method according to Item 13, wherein the IBC template matching (TM) Merge mode is used to obtain the IBC prediction signal, or wherein the AMVP mode is used to obtain the IBC prediction signal.

[0227] Item 15. The method according to Item 13, wherein IBC-LIC is applied to at least one sub-partition that uses the IBC to obtain the prediction.

[0228] Item 16. The method according to Item 7, wherein the intra prediction mode includes at least one of the following: conventional intra prediction, decoder-side intra mode derivation (DIMD), template-based intra mode derivation (TIMD), multi-reference row intra prediction (MRL), intra sub-partition (ISP), matrix weighted intra prediction (MIP), intra template matching prediction (TMP), cross-component linear mode (CCLM) mode, multi-mode linear mode (MMLM), convolutional cross-component model (CCCM), general linear mode (GLM), intra prediction fusion, template-based multi-reference row intra prediction (TMRL), position-dependent intra prediction combination (PDPC), or gradient PDPC.

[0229] Item 17. The method according to Item 16, wherein at least one of the intra prediction modes is not allowed to be used to obtain intra prediction for IBC-GPM.

[0230] Item 18. The method according to Item 17, wherein the intra prediction fusion is not allowed for IBC-GPM.

[0231] Item 19. The method according to Item 7, wherein at least one codec tool is different from the conventional intra prediction.

[0232] Item 20. The method according to Item 19, wherein the at least one codec tool refers to one of the following: how to fill reference samples, or whether and / or how to filter the reference samples, or whether and / or how to apply a filtering process, or whether and / or how to use an interpolation filter.

[0233] Item 21. The method according to Item 19, wherein the at least one codec tool used to obtain the intra prediction signal is the same as the conventional intra prediction.

[0234] Item 22. The method according to any one of Items 1 to 21, wherein the final prediction signal is refined through a filtering process.

[0235] Item 23. The method according to Item 22, wherein the filtering process includes one of the following: PDPC or gradient PDPC.

[0236] Item 24. A video processing method, comprising: for the conversion between a video unit of a video and the bitstream of the video, dividing the video unit into a plurality of sub-partitions in a predefined manner, wherein the video unit is encoded and decoded using an intra block copy (IBC)-geometric partitioning mode (GPM); obtaining a prediction of a region along the geometric partitioning edge of the video unit by mixing predictions of two sub-partitions of the video unit; performing the conversion based on the prediction.

[0237] Item 25. The method according to Item 24, wherein a set of hybrid region sizes is used, and an index indicating the hybrid region size is indicated.

[0238] Item 26. The method according to Item 25, wherein the size of the set of hybrid region sizes is one of the following: 2, 3, 4, 5, 6, or 7.

[0239] Item 27. The method according to Item 25, wherein the set of hybrid region sizes is {τ / 4, τ / 2, τ, 2τ, 4τ}, or wherein the set of hybrid region sizes is {τ / 4, τ / 2, τ}.

[0240] Item 28. The method according to Item 25, wherein how to construct the set of hybrid region sizes depends on the video content.

[0241] Item 29. The method according to Item 25, wherein the size of the set of hybrid region sizes depends on the video content.

[0242] Item 30. The method according to Item 29, wherein for screen content video, the size of the set of hybrid region sizes is equal to 3, and for natural video, the size of the set of hybrid region sizes is equal to 5.

[0243] Item 31. The method according to Item 25, wherein the size of the set of hybrid region sizes is predefined or derived or signaled in the bitstream.

[0244] Item 32. The method according to Item 24, wherein the set of hybrid region sizes and the index indicating the hybrid region size are derived.

[0245] Item 33. The method according to any one of Items 1 to 32, wherein IBC-GPM is used together with one or more coding / decoding tools.

[0246] Item 34. The method according to Item 33, wherein the one or more coding / decoding tools include at least one of the following: IBC AMVP mode, IBI Merge mode, IBC TM mode, IBC-MBVD mode, RR-IBC mode, IBC-LIC mode, IBC combined inter and intra prediction (CIIP) mode, or AMVR for IBC.

[0247] Item 35. The method according to Item 33, wherein at least one of IBC Merge mode or IBC-TM mode is used together with IBC-GPM.

[0248] Item 36. The method according to any one of Items 1 to 35, wherein when the block size is greater than or equal to the first threshold, the block is allowed to be coded / decoded using IBC-GPM, wherein the block size is equal to W×H, and W and H represent the block width and block height of the block, respectively.

[0249] Item 37. The method according to Item 36, wherein the first threshold is one of the following: 16, or 32, or 64, or 128, or 256.

[0250] Item 38. The method according to any one of Items 1 to 35, wherein when the block width of the block is greater than or equal to a second threshold, the block is allowed to be encoded and decoded using IBC-GPM, and / or wherein when the block height of the block is greater than or equal to a third threshold, the block is allowed to be encoded and decoded using IBC-GPM.

[0251] Item 39. The method according to Item 38, wherein the second threshold is one of the following: 4, 8, 16 or 32, and wherein the third threshold is one of the following: 4, 8, 16 or 32.

[0252] Item 40. The method according to any one of Items 1 to 35, wherein when the block width of the block is less than or equal to a fourth threshold, the block is allowed to be encoded and decoded using IBC-GPM, and / or wherein when the block height of the block is less than or equal to a fifth threshold, the block is allowed to be encoded and decoded using IBC-GPM.

[0253] Item 41. The method according to Item 40, wherein the fourth threshold is one of the following: 16, 32 or 64, and wherein the fifth threshold is one of the following: 16, 32 or 64.

[0254] Item 42. The method according to any one of Items 36 to 41, wherein at least one of the first threshold, the second threshold, the third threshold, the fourth threshold or the fifth threshold is different for the IBC AMVP mode and the IBCMerge mode.

[0255] Item 43. The method according to any one of Items 1 to 42, wherein the indication of IBC-GPM is signaled based on a condition, wherein the condition includes at least one of block dimension or block size.

[0256] Item 44. The method according to Item 43, wherein when the block size is less than or equal to a sixth threshold, the indication of the IBC-GPM is not signaled, wherein the block size is equal to W×H, and W and H represent the block width and the block height of the block, respectively.

[0257] Item 45. The method according to Item 44, wherein the sixth threshold is 256, or 512, or 1024, or 2048 or 4096.

[0258] Item 46. The method according to Item 45, wherein the sixth threshold depends on whether the IBC AMVP mode or the IBC Merge mode is used.

[0259] Item 47. The method according to Item 46, wherein when the IBC AMVP mode is used, the sixth threshold is set to be equal to a first value.

[0260] Item 48. The method according to Item 47, wherein the first value is equal to one of the following: 256, 1024, 2048, or 4096.

[0261] Item 49. The method according to Item 46, wherein when the IBC Merge mode is used, the sixth threshold is set to be equal to the second value.

[0262] Item 50. The method according to Item 49, wherein the second value is equal to one of the following: 256, 512, 1024, 2048, or 4096.

[0263] Item 51. The method according to any one of Items 44 to 50, wherein the sixth threshold depends on the stripe type or the picture type.

[0264] Item 52. The method according to Item 43, wherein when the block size is less than or equal to the seventh threshold, the indication of the IBC-GPM is not transmitted by signal, where the block size is equal to W×H, and W and H respectively represent the block width and the block height of the block.

[0265] Item 53. The method according to Item 52, wherein the seventh threshold is at least one of the following: 16, or 32, or 64, or 128, or 256.

[0266] Item 54. The method according to Item 52, wherein the seventh threshold depends on whether the IBC AMVP mode or the IBC Merge mode is used.

[0267] Item 55. The method according to Item 54, wherein when the IBC AMVP mode is used, the seventh threshold is set to be equal to the third value.

[0268] Item 56. The method according to Item 55, wherein the third value is one of the following: 16, 32, 64, 128, or 256.

[0269] Item 57. The method according to Item 54, wherein when the IBC Merge mode is used, the seventh threshold is set to be equal to the fourth value.

[0270] Item 58. The method according to Item 57, wherein the fourth value is one of the following: 16, 32, 64, 128, or 256.

[0271] Item 59. The method according to item 43, wherein when the block width is greater than or equal to an eighth threshold, the indication of the IBC-GPM is transmitted by a signal, and / or wherein when the block height is greater than or equal to a ninth threshold, the indication of the IBC-GPM is transmitted by a signal.

[0272] Item 60. The method according to item 59, wherein the eighth threshold is one of the following: 4, 8, 16, or 32, and / or wherein the ninth threshold is one of the following: 4, 8, 16, or 32.

[0273] Item 61. The method according to item 43, wherein when the block width is less than or equal to a tenth threshold, the indication of the IBC-GPM is signaled, and / or wherein when the block height is less than or equal to an eleventh threshold, the indication of the IBC-GPM is signaled.

[0274] Item 62. The method according to item 61, wherein the tenth threshold is one of the following: 16, 32, or 64, and / or wherein the eleventh threshold is one of the following: 16, 32, or 64.

[0275] Item 63. The method according to any one of items 43 to 62, wherein at least one of the sixth threshold, the seventh threshold, the eighth threshold, the ninth threshold, the tenth threshold, or the eleventh threshold depends on the slice type or the picture type.

[0276] Item 64. The method according to any one of items 1 to 63, wherein one or more syntax elements indicating which block vector (BV) candidate in the IBC Merge candidate list or the AMVP candidate list is used to obtain the prediction of the at least one sub-partition are signaled.

[0277] Item 65. The method according to any one of items 1 to 63, wherein the manner of using a plurality of sub-partitions to mix the prediction is signaled in the bitstream.

[0278] Item 66. The method according to item 65, wherein a syntax element indicating the mixing width is signaled.

[0279] Item 67. The method according to item 66, wherein the binarization method of the syntax element is the same as that of the GPM with an adaptive mixing manner, or wherein the binarization manner of the syntax element is different from that of the GPM with an adaptive mixing manner.

[0280] Item 68. The method according to item 66, wherein the index indicating the narrowest mixing is binarized using the least significant bit.

[0281] Item 69. The method according to Item 66, wherein the syntax element is ibc_gpm_bld_idx, where ibc_gpm_bld_idx = 0 represents τ / 4, ibc_gpm_bld_idx = 1 represents τ / 2, ibc_gpm_bld_idx = 2 represents τ, ibc_gpm_bld_idx = 3 represents 2τ, and ibc_gpm_bld_idx = 4 represents 4τ.

[0282] Item 70. The method according to Item 69, wherein the binarization of ibc_gpm_bld_idx is as follows: ibc_gpm_bld_idx Binary string 0 X (0 or 1) A (1-X)00 B (1-X)01 C (1-X)10 D (1-X)11 where A is one of the following: 1, 2, 3, or 4, B is one of the following: 1, 2, 3, or 4, D is one of the following: 1, 2, 3, or 4, D is one of the following: 1, 2, 3, or 4, and A, B, C, and D are not equal to each other.

[0283] Item 71. The method according to Item 66, wherein the syntax element is ibc_gpm_bld_idx, where ibc_gpm_bld_idx = 0 represents τ / 4, ibc_gpm_bld_idx = 1 represents τ / 2, or ibc_gpm_bld_idx = 2 represents τ.

[0284] Item 72. The method according to Item 70, wherein the binarization of ibc_gpm_bld_idx is as follows: ibc_gpm_bld_idx Binary string 0 X (0 or 1) A (1-X)0 B (1-X)1 where A is 1 or 2, B is 2 or 1, and A and B are not equal to each other.

[0285] Item 73. The method according to any one of Items 1 to 72, wherein the video unit includes at least one of the following: color component, prediction block (PB), transform block (TB), codec block (CB), prediction unit (PU), transform unit (TU), codec tree block (CTB), codec unit (CU), codec tree unit (CTU), CTU row, group of CTUs, stripe, slice, subpicture, block, sub-region within a block, or region containing more than one sample or pixel.

[0286] Item 74. The method according to any one of Items 1 to 72, wherein the indication of whether and / or how to obtain the prediction of at least one sub-division of the video unit is indicated in at least one of the following: sequence level, group of pictures level, picture level, stripe level, or slice group level.

[0287] Item 75. The method according to any one of Items 1 to 72, wherein an indication of whether and / or how to obtain the prediction of at least one sub - division of the video unit is indicated in one of the following: sequence header, picture header, sequence parameter set (SPS), video parameter set (VPS), dependent parameter set (DPS), decoding capability information (DCI), picture parameter set (PPS), adaptive parameter set (APS), slice header, or slice group header.

[0288] Item 76. The method according to any one of Items 1 to 72, wherein an indication of whether and / or how to obtain the prediction of at least one sub - division of the video unit is included in one of the following: prediction block (PB), transform block (TB), codec block (CB), prediction unit (PU), transform unit (TU), codec unit (CU), virtual pipeline data unit (VPDU), codec tree unit (CTU), CTU row, slice, picture, sub - picture, or a region containing more than one sample or pixel.

[0289] Item 77. The method according to any one of Items 1 to 72, further comprising: determining whether and / or how to obtain the prediction of at least one sub - division of the video unit based on the codec information of the video unit, the codec information including at least one of the following: block size, color format, single - tree and / or dual - tree segmentation, color component, slice type, or picture type.

[0290] Item 78. The method according to any one of Items 1 to 77, wherein the transformation includes encoding the video unit into the bitstream.

[0291] Item 79. The method according to any one of Items 1 to 77, wherein the transformation includes decoding the video unit from the bitstream.

[0292] Item 80. An apparatus for video processing, comprising a processor and a non - transitory memory having instructions, wherein when the instructions are executed by the processor, the processor performs the method according to any one of Items 1 to 79.

[0293] Item 81. A non - transitory computer - readable storage medium storing instructions that cause a processor to perform the method according to any one of Items 1 to 79.

[0294] Item 82. A non-transitory computer-readable recording medium storing a bitstream generated by a method executed by a device for video processing, wherein the method includes: dividing video units of the video into a plurality of sub-divisions in a predefined manner, wherein the video units are encoded and decoded using Intra Block Copy (IBC)-Geometry Partitioning Mode (GPM), and wherein a set of geometry partitioning modes used in IBC-GPM is re-ordered; obtaining a prediction of at least one sub-division of the video unit using Intra Block Copy; and generating the bitstream based on the prediction of the at least one sub-division of the video unit.

[0295] Item 83. A method for storing a bitstream of a video, including: dividing video units of the video into a plurality of sub-divisions in a predefined manner, wherein the video units are encoded and decoded using Intra Block Copy (IBC)-Geometry Partitioning Mode (GPM), and wherein a set of geometry partitioning modes used in IBC-GPM is re-ordered; obtaining a prediction of at least one sub-division of the video unit using Intra Block Copy; generating the bitstream based on the prediction of the at least one sub-division of the video unit; and storing the bitstream in a non-transitory computer-readable recording medium.

[0296] Item 84. A non-transitory computer-readable recording medium storing a bitstream generated by a method executed by a device for video processing, wherein the method includes: obtaining a prediction of at least one sub-division of a video unit of the video using one of Intra Block Copy (IBC) or an intra prediction mode, wherein the video unit is encoded and decoded using Intra Block Copy (IBC)-Geometry Partitioning Mode (GPM), and wherein the IBC includes at least one of the following: IBC Merge mode or IBC Advanced Motion Vector Prediction (AMVP) mode; and generating the bitstream based on the prediction of the at least one sub-division of the video unit.

[0297] Item 85. A method for storing a bitstream of a video, including: obtaining a prediction of at least one sub-division of a video unit of the video using one of Intra Block Copy (IBC) or an intra prediction mode, wherein the video unit is encoded and decoded using Intra Block Copy (IBC)-Geometry Partitioning Mode (GPM), and wherein the IBC includes at least one of the following: IBC Merge mode or IBC Advanced Motion Vector Prediction (AMVP) mode; generating the bitstream based on the prediction of the at least one sub-division of the video unit; and storing the bitstream in a non-transitory computer-readable recording medium.

[0298] Item 86. A non-transitory computer-readable recording medium stores a bitstream generated by a method executed by a device for video processing of a video, where the method includes: dividing the video unit into a plurality of sub-divisions in a predefined manner, where the video unit is encoded and decoded using an intra block copy (IBC)-geometry partitioning mode (GPM); obtaining a prediction of a region along a geometry partitioning edge of the video unit by mixing predictions of two sub-divisions of the video unit; and generating the bitstream based on the prediction.

[0299] Item 87. A method for storing a bitstream of a video includes: dividing the video unit into a plurality of sub-divisions in a predefined manner, where the video unit is encoded and decoded using an intra block copy (IBC)-geometry partitioning mode (GPM); obtaining a prediction of a region along a geometry partitioning edge of the video unit by mixing predictions of two sub-divisions of the video unit; generating the bitstream based on the prediction; and storing the bitstream in a non-transitory computer-readable recording medium. Example device

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

[0301] It should be understood that Figure 56 the computing device 5600 shown is for illustrative purposes only and does not imply any limitation to the functionality and scope of the embodiments of the present disclosure in any way.

[0302] As Figure 56 shown, the computing device 5600 includes a general-purpose computing device 5600. The computing device 5600 may include at least one or more processors or processing units 5610, a memory 5620, a storage unit 5630, one or more communication units 5640, one or more input devices 5650, and one or more output devices 5660.

[0303] In some embodiments, the computing device 5600 may be implemented as any user terminal or server terminal having computing capabilities. The server terminal may be a server provided by a service provider, a large computing device, etc. The user terminal may be, for example, any type of mobile terminal, fixed terminal or portable terminal, including mobile phones, stations, units, devices, multimedia computers, multimedia tablet computers, Internet nodes, communicators, desktop computers, laptop computers, notebook computers, netbook computers, tablet computers, personal communication system (PCS) devices, personal navigation devices, personal digital assistants (PDAs), audio / video players, digital cameras / video cameras, positioning devices, television receivers, radio broadcast receivers, e-book devices, gaming devices, or any combination thereof, including accessories and peripherals of these devices or any combination thereof. It is conceivable that the computing device 5600 may support any type of interface to the user (such as "wearable" circuitry, etc.).

[0304] The processing unit 5610 may be a physical processor or a virtual processor, and may implement various processes based on programs stored in the memory 5620. In a multi-processor system, multiple processing units execute computer-executable instructions in parallel to improve the parallel processing ability of the computing device 5600. The processing unit 5610 may also be referred to as a central processing unit (CPU), a microprocessor, a controller, or a microcontroller.

[0305] The computing device 5600 generally includes various computer storage media. Such media may be any media accessible by the computing device 5600, including but not limited to volatile media and non-volatile media, or removable media and non-removable media. The memory 5620 may be volatile memory (e.g., registers, caches, random access memory (RAM)), non-volatile memory (such as read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), or flash memory), or any combination thereof. The storage unit 5630 may be any removable or non-removable media, and may 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 5600.

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

[0307] The communication unit 5640 communicates with another computing device via a communication medium. Additionally, the functionality of the components in the computing device 5600 can be implemented by a single computing cluster or multiple computing machines, which can communicate via a communication connection. Thus, the computing device 5600 can operate in a networked environment using a logical connection with one or more other servers, networked personal computers (PCs), or other general network nodes.

[0308] The input device 5650 can be one or more of various input devices, such as a mouse, keyboard, trackball, voice input device, and so on. The output device 5660 can be one or more of various output devices, such as a display, speaker, printer, and so on. With the aid of the communication unit 5640, the computing device 5600 can also communicate with one or more external devices (not shown), such as storage devices and display devices, the computing device 5600 can also communicate with one or more devices that enable a user to interact with the computing device 5600, or if needed, the computing device 5600 can also communicate with any device (such as a network card, modem, etc.) that enables the computing device 5600 to communicate with one or more other computing devices. Such communication can be carried out via an input / output (I / O) interface (not shown).

[0309] In some embodiments, some or all of the components of the computing device 5600 can also be arranged in a cloud computing architecture rather than being integrated in a single device. In a cloud computing architecture, the components can 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 be aware of the physical location or configuration of the system or hardware providing these services. In various embodiments, cloud computing uses suitable protocols to provide services via a wide area network (such as the Internet). For example, a cloud computing provider provides an application via a wide area network, and the application can be accessed via a web browser or any other computing component. The software or components of the cloud computing architecture and the corresponding data can be stored on a server at a remote location. The computing resources in a cloud computing environment can be consolidated or distributed at the locations of remote data centers. The cloud computing infrastructure can provide services through a shared data center, although to the user, they appear as a single access point. Thus, 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 can be provided by a conventional server or directly or otherwise installed on a client device.

[0310] In an embodiment of the present disclosure, the computing device 5600 can be used to implement video encoding / decoding. The memory 5620 may include one or more video codec modules 5625 having one or more program instructions. These modules are accessible and executable by the processing unit 5610 to perform the functions of the various embodiments described herein.

[0311] In an example embodiment of performing video encoding, the input device 5650 may receive video data as input 5670 to be encoded. The video data may be processed, for example, by the video codec module 5625 to generate an encoded bitstream. The encoded bitstream may be provided as output 5680 via the output device 5660.

[0312] In an example embodiment of performing video decoding, the input device 5650 may receive the encoded bitstream as input 5670. The encoded bitstream may be processed, for example, by the video codec module 5625 to generate decoded video data. The decoded video data may be provided as output 5680 via the output device 5660.

[0313] Although the present disclosure has been specifically shown and described with reference to preferred embodiments thereof, those skilled in the art will understand that various changes in form and detail may be made therein without departing from the spirit and scope of the present application as defined by the appended claims. These variations are intended to be covered 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 the conversion between a video unit of a video and the bitstream of the video, dividing the video unit into a plurality of sub - partitions in a predefined manner, wherein the video unit is encoded and decoded using an Intra - Block Copy (IBC) - Geometry Partitioning Mode (GPM), and wherein the set of geometry partitioning modes used in IBC - GPM is reordered; Obtaining a prediction of at least one sub - partition of the video unit using Intra - Block Copy; And Performing the conversion based on the prediction of the at least one sub - partition of the video unit.

2. The method according to claim 1, wherein a method based on template matching is used to reorder the set of geometry partitioning modes.

3. The method according to claim 2, wherein the method based on template matching for reordering GPM partitioning modes is used to reorder the set of geometry partitioning modes.

4. The method according to claim 1, wherein the number of geometry partitioning modes in the set of geometry partitioning modes to be reordered is less than the number of geometry partitioning modes to be reordered in GPM or GPM with intra - prediction, or wherein the number of geometry partitioning modes in the set of geometry partitioning modes to be reordered is equal to the number of geometry partitioning modes to be reordered in GPM or GPM with intra - prediction.

5. The method according to claim 1, wherein the first M geometry partitioning modes after reordering are used in IBC - GPM.

6. The method according to claim 5, wherein M is an integer less than or equal to 64.

7. A video processing method, comprising: For the conversion between a video unit of a video and the bitstream of the video, obtaining a prediction of at least one sub - partition of the video unit using one of Intra - Block Copy (IBC) or an intra - prediction mode, wherein the video unit is encoded and decoded using Intra - Block Copy (IBC) - Geometry Partitioning Mode (GPM), and wherein the IBC includes at least one of the following: IBC Merge mode or IBC Advanced Motion Vector Prediction (AMVP) mode; and Performing the conversion based on the prediction of the at least one sub - partition of the video unit.

8. The method according to claim 7, wherein the manner of obtaining the prediction for at least one sub - partition of the video unit using the IBC is different from the manner of obtaining the prediction of the entire block encoded and decoded using IBC.

9. The method according to claim 8, wherein the IBC Merge candidate list is sorted in a different manner.

10. The method according to claim 9, wherein the Merge candidates that are candidates for Reconstructed - Reordered IBC (RR - IBC) are placed at the last position in the IBC Merge candidate list.

11. The method according to claim 7, wherein one or more modes are not used to obtain the prediction.

12. The method according to claim 11, wherein the one or more Merge modes include at least one of the following: IBC Template Matching (TM) Merge Mode, IBC TM AMVP Mode, IBC Merge Mode with Block Vector Difference (BVD), Reconstruction - Reordering IBC (RR - IBC) Merge Mode, RR - IBC AMVP Mode, Adaptive Motion Vector Resolution (AMVR) for IBC, or IBC Local Illumination Compensation (LIC) (IBC - LIC).

13. The method according to claim 7, wherein one or more modes are used to obtain the prediction which is an IBC prediction signal.

14. The method according to claim 13, wherein the IBC Template Matching (TM) Merge Mode is used to obtain the IBC prediction signal, or wherein the AMVP Mode is used to obtain the IBC prediction signal.

15. The method according to claim 13, wherein IBC - LIC is applied to at least one sub - partition that uses the IBC to obtain the prediction.

16. The method according to claim 7, wherein the intra - prediction mode includes at least one of the following: Conventional intra - prediction, Decoder - side Intra - mode Derivation (DIMD), Template - based Intra - mode Derivation (TIMD), Multi - reference Line Intra - prediction (MRL), Intra - sub - partition (ISP), Matrix - weighted Intra - prediction (MIP), Intra - Template Matching Prediction (TMP), Cross - Component Linear Mode (CCLM) mode, Multi - mode Linear Mode (MMLM), Convolutional Cross - Component Model (CCCM), General Linear Mode (GLM), Intra - prediction Fusion, Template - based Multi - reference Line Intra - prediction (TMRL), Position - Dependent Intra - prediction Combination (PDPC), or Gradient PDPC.

17. The method according to claim 16, wherein at least one of the intra - prediction modes is not allowed to be used to obtain the intra - prediction for IBC - GPM.

18. The method according to claim 17, wherein the intra - prediction Fusion is not allowed for IBC - GPM.

19. The method according to claim 7, wherein at least one codec tool is different from the conventional intra - prediction.

20. The method according to claim 19, wherein the at least one codec tool refers to one of the following: how to fill the reference samples, or whether and / or how to filter the reference samples, or whether and / or how to apply a filtering process, or whether and / or how to use an interpolation filter.

21. The method according to claim 19, wherein the at least one codec tool used to obtain the intra - prediction signal is the same as the conventional intra - prediction.

22. The method according to any one of claims 1 to 21, wherein the final prediction signal is refined by a filtering process.

23. The method according to claim 22, wherein the filtering process includes one of the following: PDPC or Gradient PDPC.

24. A video processing method, comprising: For the conversion between a video unit of a video and the bitstream of the video, the video unit is divided into a plurality of sub - partitions in a predefined manner, where the video unit is encoded and decoded using an Intra - Block Copy (IBC) - Geometry Partitioning Mode (GPM). By mixing the predictions of two sub - partitions of the video unit, a prediction of a region along the geometry partition edge of the video unit is obtained. The conversion is performed based on the prediction.

25. The method according to claim 24, wherein a set of hybrid region sizes is used and an index indicating the hybrid region size is indicated.

26. The method according to claim 25, wherein the size of the set of hybrid region sizes is one of the following: 2, 3, 4, 5, 6, or 7.

27. The method according to claim 25, wherein the set of hybrid region sizes is {τ / 4, τ / 2, τ, 2τ, 4τ}, or where the set of hybrid region sizes is {τ / 4, τ / 2, τ}.

28. The method according to claim 25, wherein how the set of hybrid region sizes is constructed depends on the video content.

29. The method according to claim 25, wherein the size of the set of hybrid region sizes depends on the video content.

30. The method according to claim 29, wherein for screen content video, the size of the set of hybrid region sizes is equal to 3, and for natural video, the size of the set of hybrid region sizes is equal to 5.

31. The method according to claim 25, wherein the size of the set of hybrid region sizes is predefined or derived or signaled in the bitstream.

32. The method according to claim 24, wherein the set of hybrid region sizes and the index indicating the hybrid region size are derived.

33. The method according to any one of claims 1 to 32, wherein IBC - GPM is used together with one or more coding and decoding tools.

34. The method according to claim 33, wherein the one or more coding and decoding tools include at least one of the following: IBC AMVP mode, IBI Merge mode, IBC TM mode, IBC - MBVD mode, RR - IBC mode, IBC - LIC mode, IBC Combined Inter - frame and Intra - frame Prediction (CIIP) mode, or AMVR for IBC.

35. The method according to claim 33, wherein at least one of IBC Merge mode or IBC - TM mode is used together with IBC - GPM.

36. The method according to any one of claims 1 to 35, wherein when the block size is greater than or equal to a first threshold, the block is allowed to be encoded and decoded using IBC - GPM, where the block size is equal to W×H, and W and H respectively represent the block width and block height of the block.

37. The method according to claim 36, wherein the first threshold is one of the following: 16, or 32, or 64, or 128, or 256.

38. The method according to any one of claims 1 to 35, wherein when the block width of the block is greater than or equal to a second threshold, the block is allowed to be encoded and decoded using IBC-GPM, and / or wherein when the block height of the block is greater than or equal to a third threshold, the block is allowed to be encoded and decoded using IBC-GPM.

39. The method according to claim 38, wherein the second threshold is one of the following: 4, 8, 16, or 32, and wherein the third threshold is one of the following: 4, 8, 16, or 32.

40. The method according to any one of claims 1 to 35, wherein when the block width of the block is less than or equal to a fourth threshold, the block is allowed to be encoded and decoded using IBC-GPM, and / or wherein when the block height of the block is less than or equal to a fifth threshold, the block is allowed to be encoded and decoded using IBC-GPM.

41. The method according to claim 40, wherein the fourth threshold is one of the following: 16, 32, or 64, and wherein the fifth threshold is one of the following: 16, 32, or 64.

42. The method according to any one of claims 36 to 41, wherein at least one of the first threshold, the second threshold, the third threshold, the fourth threshold, or the fifth threshold is different for the IBC AMVP mode and the IBC Merge mode.

43. The method according to any one of claims 1 to 42, wherein the indication of IBC-GPM is signaled based on a condition, wherein the condition includes at least one of block dimension or block size.

44. The method according to claim 43, wherein when the block size is less than or equal to a sixth threshold, the indication of the IBC-GPM is not signaled, wherein the block size is equal to W×H, and W and H represent the block width and the block height of the block, respectively.

45. The method according to claim 44, wherein the sixth threshold is 256, or 512, or 1024, or 2048, or 4096.

46. The method according to claim 45, wherein the sixth threshold depends on whether the IBC AMVP mode or the IBC Merge mode is used.

47. The method according to claim 46, wherein when the IBC AMVP mode is used, the sixth threshold is set to be equal to a first value.

48. The method according to claim 47, wherein the first value is one of the following: 256, 1024, 2048, or 4096.

49. The method according to claim 46, wherein when the IBC Merge mode is used, the sixth threshold is set to be equal to a second value.

50. The method according to claim 49, wherein the second value is one of the following: 256, 512, 1024, 2048, or 4096.

51. The method according to any one of claims 44 to 50, wherein the sixth threshold depends on the slice type or the picture type.

52. The method according to claim 43, wherein when the block size is less than or equal to a seventh threshold, the indication of the IBC-GPM is not transmitted by a signal, wherein the block size is equal to W×H, and W and H respectively represent the block width and the block height of the block.

53. The method according to claim 52, wherein the seventh threshold is at least one of the following: 16, or 32, or 64, or 128, or 256.

54. The method according to claim 52, wherein the seventh threshold depends on whether the IBC AMVP mode or the IBC Merge mode is used.

55. The method according to claim 54, wherein when the IBC AMVP mode is used, the seventh threshold is set equal to a third value.

56. The method according to claim 55, wherein the third value is one of the following: 16, 32, 64, 128 or 256.

57. The method according to claim 54, wherein when the IBC Merge mode is used, the seventh threshold is set to be equal to a fourth value.

58. The method according to claim 57, wherein the fourth value is one of the following: 16, 32, 64, 128 or 256.

59. The method according to claim 43, wherein when the block width is greater than or equal to an eighth threshold, the indication of the IBC-GPM is transmitted by a signal, and / or wherein when the block height is greater than or equal to a ninth threshold, the indication of the IBC-GPM is transmitted by a signal.

60. The method according to claim 59, wherein the eighth threshold is one of the following: 4, 8, 16 or 32, and / or wherein the ninth threshold is one of the following: 4, 8, 16 or 32.

61. The method according to claim 43, wherein when the block width is less than or equal to a tenth threshold, the indication of the IBC-GPM is signaled, and / or wherein when the block height is less than or equal to an eleventh threshold, the indication of the IBC-GPM is signaled.

62. The method according to claim 61, wherein the tenth threshold is one of the following: 16, 32 or 64, and / or wherein the eleventh threshold is one of the following: 16, 32 or 64.

63. The method according to any one of claims 43 to 62, wherein at least one of the sixth threshold, the seventh threshold, the eighth threshold, the ninth threshold, the tenth threshold or the eleventh threshold depends on a slice type or a picture type.

64. The method according to any one of claims 1 to 63, wherein one or more syntax elements indicating which block vector (BV) candidate in the IBC Merge candidate list or the AMVP candidate list is used to obtain the prediction of the at least one sub-partition are transmitted by a signal.

65. The method according to any one of claims 1 to 63, wherein the manner of using a plurality of sub-partitions to mix the prediction is signaled in the bitstream.

66. The method according to claim 65, wherein the syntax element indicating the mixing width is transmitted via a signal.

67. The method according to claim 66, wherein the binarization method of the syntax element is the same as that of the GPM with an adaptive mixing mode, or wherein the binarization mode of the syntax element is different from that of the GPM with an adaptive mixing mode.

68. The method according to claim 66, wherein the index indicating the narrowest mixing is binarized using the least significant bit.

69. The method according to claim 66, wherein the syntax element is ibc_gpm_bld_idx, where ibc_gpm_bld_idx = 0 represents τ / 4, ibc_gpm_bld_idx = 1 represents τ / 2, ibc_gpm_bld_idx = 2 represents τ, ibc_gpm_bld_idx = 3 represents 2τ, ibc_gpm_bld_idx = 4 represents 4τ.

70. The method according to claim 69, wherein the binarization of ibc_gpm_bld_idx is as follows: where A is one of: 1, 2, 3, or 4, B is one of: 1, 2, 3, or 4, D is one of: 1, 2, 3, or 4, D is one of: 1, 2, 3, or 4, and A, B, C, and D are not equal to each other.

71. The method according to claim 66, wherein the syntax element is ibc_gpm_bld_idx, where ibc_gpm_bld_idx = 0 represents τ / 4, ibc_gpm_bld_idx = 1 represents τ / 2, or ibc_gpm_bld_idx = 2 represents τ.

72. The method according to claim 70, wherein the binarization of ibc_gpm_bld_idx is as follows: where A is 1 or 2, B is 2 or 1, and A and B are not equal to each other.

73. The method according to any one of claims 1 to 72, wherein the video unit comprises at least one of the following: Color component, Prediction block (PB), Transform block (TB), Codec block (CB), Prediction unit (PU), Transform unit (TU), Codec tree block (CTB), Codec unit (CU), Codec tree unit (CTU), CTU row, Group of CTUs, Slice, Picture, Sub-picture, Block, Sub-region within a block, or Region containing more than one sample or pixel.

74. The method according to any one of claims 1 to 72, wherein the indication of whether and / or how to obtain the prediction of at least one sub-division of the video unit is indicated in at least one of the following: Sequence level, Group of pictures level, Picture level, Slice level, or Group of slices level.

75. The method according to any one of claims 1 to 72, wherein the indication of whether and / or how to obtain the prediction of at least one sub-division of the video unit is indicated in one of the following: Sequence header, Picture header, Sequence parameter set (SPS), Video parameter set (VPS), Dependent parameter set (DPS), Decoding capability information (DCI), Picture Parameter Set (PPS), Adaptive Parameter Set (APS), slice header, or picture group header.

76. The method according to any one of claims 1 to 72, wherein an indication of whether and / or how to obtain the prediction of at least one sub-division of the video unit is included in one of the following: Prediction Block (PB), Transform Block (TB), Codec Block (CB), Prediction Unit (PU), Transform Unit (TU), Codec Unit (CU), Virtual Pipeline Data Unit (VPDU), Codec Tree Unit (CTU), CTU row, slice, picture, sub-picture, or a region containing more than one sample or pixel.

77. The method according to any one of claims 1 to 72, further comprising: determining whether and / or how to obtain the prediction of at least one sub-division of the video unit based on the codec information of the video unit, the codec information including at least one of the following: block size, color format, single-tree and / or dual-tree partitioning, color component, slice type, or picture type.

78. The method according to any one of claims 1 to 77, wherein the transformation includes encoding the video unit into the bitstream.

79. The method according to any one of claims 1 to 77, wherein the transformation includes decoding the video unit from the bitstream.

80. An apparatus for video processing, comprising a processor and a non-transitory memory having instructions, wherein the instructions, when executed by the processor, cause the processor to perform the method according to any one of claims 1 to 79.

81. 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 79.

82. A non-transitory computer-readable recording medium storing a bitstream generated by a method executed by an apparatus for video processing, wherein the method comprises: dividing video units of the video into a plurality of sub-divisions in a predefined manner, wherein the video units are coded and decoded using Intra Block Copy (IBC)-Geometric Partitioning Mode (GPM), and wherein the set of geometric partitioning modes used in IBC-GPM is reordered; obtaining a prediction of at least one sub-division of the video unit using Intra Block Copy; and generating the bitstream based on the prediction of the at least one sub-division of the video unit.

83. A method for storing a bitstream of a video, comprising: dividing video units of the video into a plurality of sub-divisions in a predefined manner, wherein the video units are coded and decoded using Intra Block Copy (IBC)-Geometric Partitioning Mode (GPM), and wherein the set of geometric partitioning modes used in IBC-GPM is reordered; obtaining a prediction of at least one sub-division of the video unit using Intra Block Copy; generating the bitstream based on the prediction of the at least one sub-division of the video unit; and storing the bitstream in a non-transitory computer-readable recording medium.

84. A non-transitory computer-readable recording medium stores a bitstream generated by a method executed by a device for video processing, where the method includes: Obtaining a prediction of at least one sub-division of a video unit of the video using one of an intra block copy (IBC) or an intra prediction mode, where the video unit is encoded and decoded using an intra block copy (IBC)-geometry partitioning mode (GPM), and where the IBC includes at least one of the following: an IBC Merge mode or an IBC advanced motion vector prediction (AMVP) mode; and Generating the bitstream based on the prediction of the at least one sub-division of the video unit.

85. A method for storing a bitstream of a video, including: Obtaining a prediction of at least one sub-division of a video unit of the video using one of an intra block copy (IBC) or an intra prediction mode, where the video unit is encoded and decoded using an intra block copy (IBC)-geometry partitioning mode (GPM), and where the IBC includes at least one of the following: an IBC Merge mode or an IBC advanced motion vector prediction (AMVP) mode; Generating the bitstream based on the prediction of the at least one sub-division of the video unit; And Storing the bitstream in a non-transitory computer-readable recording medium.

86. A non-transitory computer-readable recording medium stores a bitstream generated by a method executed by a device for video processing, where the method includes: Dividing the video unit into a plurality of sub-divisions in a predefined manner, where the video unit is encoded and decoded using an intra block copy (IBC)-geometry partitioning mode (GPM); Obtaining a prediction of a region along a geometry partitioning edge of the video unit by mixing predictions of two sub-divisions of the video unit; And Generating the bitstream based on the prediction.

87. A method for storing a bitstream of a video, including: Dividing the video unit into a plurality of sub-divisions in a predefined manner, where the video unit is encoded and decoded using an intra block copy (IBC)-geometry partitioning mode (GPM); Obtaining a prediction of a region along a geometry partitioning edge of the video unit by mixing predictions of two sub-divisions of the video unit; Generating the bitstream based on the prediction; And Storing the bitstream in a non-transitory computer-readable recording medium.