Method and device for video processing and medium

By optimizing the intra-frame block copy mode and utilizing the block vector candidate and template matching process, the problem of insufficient encoding and decoding efficiency in existing video encoding and decoding technologies is solved, achieving more efficient video processing effects.

CN121002847APending Publication Date: 2025-11-21DOUYIN VISION CO LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202480015940.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-03-02
Filing Date
2024-03-01
Publication Date
2025-11-21

AI Technical Summary

Technical Problem

Existing video encoding and decoding technologies have room for improvement in encoding and decoding efficiency, especially when processing video blocks, where existing technologies struggle to effectively utilize intra-frame block copying mode to enhance encoding and decoding efficiency.

Method used

By determining the block vector candidates between the current video block and the reference block, and based on the template matching process and geometric segmentation mode, the intra-frame block copying mode is optimized, including the combined intra-frame block copying and intra-frame prediction mode, the intra-frame block copying mode with geometric segmentation mode, the intra-frame block copying mode with local illumination compensation, the direct block vector mode, and the block vector difference prediction process, thereby improving encoding and decoding efficiency.

Benefits of technology

By optimizing the intra-frame block copy mode, the encoding and decoding efficiency and coding power of video encoding and decoding are significantly improved, thereby enhancing the quality and efficiency of video processing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121002847A_ABST
    Figure CN121002847A_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure provide a solution for video processing. In a method for video processing, for a conversion between a current video block of a video and a bitstream of the video, a block vector (BV) candidate of the current video block associated with a reference block of the current video block is determined. A validity of the BV candidate is determined based on at least one reconstructed sample point and at least one non-reconstructed sample point of the reference block. The conversion is performed based on the validity. The BV candidate is in at least one of the following codec modes or processes: a combined Intra Block Copy and Intra Prediction (IBC-CIIP) mode, an IBC (IBC-GPM) mode with a geometric partition mode, an IBC (IBC-LIC) mode with local illumination compensation, a Direct Block Vector (DBV) mode, or a BV Difference (BVD) prediction process or a BVD symbol prediction process.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of this disclosure generally relate to video processing techniques, and more specifically, to intra-block copy (IBC) mode enhancement. Background Technology

[0002] Today, digital video capabilities are being applied to all aspects of people's lives. Various video compression technologies have been proposed for video encoding / decoding, such as MPEG-2, MPEG-4, ITU-TH.263, ITU-TH.264 / MPEG-4 Part 10 Advanced Video Codec (AVC), ITU-TH.265 High Efficiency Video Codec (HEVC) standard, and Multifunctional Video Codec (VVC) standard. However, the overall expectation is to further improve the encoding and decoding efficiency of video encoding and decoding technologies. Summary of the Invention

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

[0004] In a first aspect, a method for video processing is proposed. The method includes: determining block vector (BV) candidates for the current video block and the bitstream of the video, the BV candidates being associated with a reference block of the current video block; determining the validity of the BV candidates based on at least one reconstructed sample and at least one unreconstructed sample of the reference block; and performing a conversion based on the validity of the BV candidates, wherein the BV candidates are in at least one of the following encoding / decoding modes or processes: Combined Intra-Block Copy and Intra-Prediction (IBC-CIIP) mode, Intra-Block Copy with Geometric Partitioning (IBC-GPM) mode, Intra-Block Copy with Local Illumination Compensation (IBC-LIC) mode, Direct Block Vector (DBV) mode, Block Vector Difference (BVD) prediction process, or BVD symbol prediction process. In this manner, encoding / decoding efficiency and effectiveness can be improved.

[0005] In a second aspect, another method for video processing is proposed. This method includes: for a conversion between a current video block and the video bitstream, determining a first block vector (BV) candidate for the current video block, the first BV candidate being associated with a first reference block of the current video block, the first reference block including at least one reconstructed sample and at least one unreconstructed sample in the current image; applying a first template matching process to the first BV candidate, the first template matching process differing from a second template matching process for a second BV candidate, wherein the second reference block associated with the second BV candidate is fully reconstructed within the current image; and performing a conversion based on the application, wherein the first template matching process includes at least one of: a template matching-based reordering process or a template matching-based refinement process. Encoding / decoding efficiency and effectiveness can thus be improved.

[0006] In a third aspect, an apparatus for video processing is proposed. The apparatus includes a processor and a non-transitory memory having instructions thereon. When executed by the processor, the instructions cause the processor to perform a method according to either the first or second aspect of this disclosure.

[0007] In a fourth aspect, a non-transitory computer-readable storage medium is proposed. This non-transitory computer-readable storage medium stores instructions that cause a processor to execute a method according to the first or second aspect of this disclosure.

[0008] In a fifth aspect, another non-transitory computer-readable recording medium is proposed. This non-transitory computer-readable recording medium stores a bitstream of video generated by a method performed by an apparatus for video processing. The method includes: determining block vector (BV) candidates for a current video block of the video, the BV candidates being associated with a reference block of the current video block; determining the validity of the BV candidates based on at least one reconstructed sample and at least one unreconstructed sample of the reference block; and generating a bitstream based on the validity of the BV candidates, wherein the BV candidates are in at least one of the following encoding / decoding modes or processes: a combined intra-block copy and intra-prediction (IBC-CIIP) mode, an intra-block copy with geometric segmentation mode (IBC-GPM) mode, an intra-block copy with local illumination compensation (IBC-LIC) mode, a direct block vector (DBV) mode, a block vector difference (BVD) prediction process, or a BVD symbol prediction process.

[0009] In a sixth aspect, a method for storing a bitstream of video is proposed. The method includes: determining block vector (BV) candidates for a current video block of the video, the BV candidates being associated with a reference block of the current video block; determining the validity of the BV candidates based on at least one reconstructed sample and at least one unreconstructed sample of the reference block; generating a bitstream based on the validity of the BV candidates; and storing the bitstream in a non-transitory computer-readable recording medium, wherein the BV candidates are in at least one of the following encoding / decoding modes or processes: a combined intra-block copy and intra-prediction (IBC-CIIP) mode, an intra-block copy with geometric segmentation mode (IBC-GPM) mode, an intra-block copy with local illumination compensation (IBC-LIC) mode, a direct block vector (DBV) mode, a block vector difference (BVD) prediction process, or a BVD symbol prediction process.

[0010] In a seventh aspect, another non-transitory computer-readable recording medium is proposed. This non-transitory computer-readable recording medium stores a bitstream of video generated by a method performed by an apparatus for video processing. The method includes: determining a first block vector (BV) candidate for a current video block of the video, the first BV candidate being associated with a first reference block of the current video block, the first reference block including at least one reconstructed sample and at least one unreconstructed sample in the current image; applying a first template matching process to the first BV candidate, the first template matching process being different from a second template matching process for a second BV candidate, wherein a second reference block associated with the second BV candidate is fully reconstructed within the current image; and generating a bitstream based on the application, wherein the first template matching process includes at least one of: a template matching-based reordering process or a template matching-based refinement process.

[0011] In the eighth aspect, a method for storing a bitstream of video is proposed. The method includes: determining a first block vector (BV) candidate for a current video block of the video, the first BV candidate being associated with a first reference block of the current video block, the first reference block including at least one reconstructed sample and at least one unreconstructed sample in the current image; applying a first template matching process to the first BV candidate, the first template matching process being different from a second template matching process for a second BV candidate, wherein a second reference block associated with the second BV candidate is fully reconstructed within the current image; generating a bitstream based on the application; and storing the bitstream in a non-transitory computer-readable recording medium, wherein the first template matching process includes at least one of: a template matching-based reordering process or a template matching-based refinement process.

[0012] The present invention is provided to present, in a simplified form, the concept choices further described below in the detailed embodiments. The present invention is not intended to identify key or essential features of the claimed subject matter, nor is it intended to limit the scope of the claimed subject matter. Attached Figure Description

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

[0014] Figure 1 A block diagram illustrating an example video codec system according to some embodiments of the present disclosure is shown;

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

[0016] Figure 3 A block diagram illustrating an example video decoder according to some embodiments of the present disclosure is shown;

[0017] Figure 4 The spatial proximity locations used in IBC vector prediction are shown;

[0018] Figure 5 The current CTU processing order and its available reference points in the current CTU and the left CTU are shown;

[0019] Figure 6 This shows the airspace proximity locations used in the construction of the IBC Merge / AMVP list;

[0020] Figure 7 The filling candidates for replacing the zero vector in the IBC list are shown;

[0021] Figure 8 The IBC reference area is shown, depending on the current CU location;

[0022] Figure 9 The reference region for IBC is shown when CTU(m, n) is encoded and decoded;

[0023] Figure 10A A schematic diagram of BV adjustment for horizontal flipping is shown;

[0024] Figure 10B A schematic diagram of BV adjustment for vertical flipping is shown;

[0025] Figure 11 The intra-frame template matching search area used is shown;

[0026] Figure 12 The use of the IntraTMP block vector for IBC blocks is shown;

[0027] Figure 13A An example of a candidate list of IBC block vectors that only contain IBC block vectors is shown;

[0028] Figure 13B An example of a candidate list of IBC block vectors that contains both IBC block vectors and IntraTMP block vectors is shown;

[0029] Figure 14 This illustrates the derivation of template matching cost in BVDSP;

[0030] Figure 15 Five locations in the reconstructed brightness sample points are shown;

[0031] Figure 16 The prediction process of the DBV method is shown;

[0032] Figure 17 A candidate cluster for AMVP IBC is shown based on L2 distance and TM cost;

[0033] Figures 18A to 18C The unreconstructed samples in the reference block are estimated by their predicted samples, and the samples filled with diagonals are the derived sample values ​​for the unreconstructed samples in the reference block.

[0034] Figures 19A to 19D The diagrams show the derivation of unreconstructed samples in the reference block through horizontal or vertical fill, and the samples filled with diagonal lines are the derivation sample values ​​for the unreconstructed samples in the reference block.

[0035] Figure 20 The diagram shows a horizontal flip, where the current template is the left column and top row of the current block, and the reference template is the right column and top row of the reference block. Unreconstructed samples in the reference template are derived through horizontal padding or their predicted samples, and samples filled with diagonal lines are derived sample values ​​for the unreconstructed samples in the reference template.

[0036] Figure 21 The vertical flip is shown. The current template is the left column and top row of the current block, and the reference template is the left column and bottom row of the reference block. The unreconstructed samples in the reference template are derived by vertical filling or their predicted samples, and the samples filled with diagonals are the derived sample values ​​for the unreconstructed samples in the reference template.

[0037] Figure 22 A flowchart of a method for video processing according to an embodiment of the present disclosure is shown;

[0038] Figure 23 A flowchart of a method for video processing according to embodiments of the present disclosure is shown; and

[0039] Figure 24 A block diagram of a computing device in which various embodiments of the present disclosure may be implemented is shown.

[0040] Throughout all the accompanying figures, the same or similar reference numerals generally refer to the same or similar elements. Detailed Implementation

[0041] The principles of this disclosure will now be described with reference to some embodiments. It should be understood that these embodiments are described for illustrative purposes only and to help those skilled in the art understand and implement this disclosure, and do not imply any limitation on the scope of this disclosure. In addition to the methods described below, the disclosure described herein can be implemented in various other ways.

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

[0043] The terms "an embodiment," "embodiment," "example embodiment," etc., used in this disclosure refer to embodiments that may include specific features, structures, or characteristics, but not every embodiment is required to include that specific feature, structure, or characteristic. Furthermore, these phrases do not necessarily refer to the same embodiment. Moreover, when a specific feature, structure, or characteristic is described in conjunction with an example embodiment, it is claimed that, whether explicitly described or not, such a feature, structure, or characteristic affecting its relation to other embodiments is within the knowledge of those skilled in the art.

[0044] It should be understood that although the terms “first” and “second”, etc., may be used herein to describe various elements, these elements should not be limited to these terms. These terms are used only 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 exemplary embodiments. As used herein, the term “and / or” includes one or more of the listed terms and any and all combinations of the listed terms.

[0045] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the exemplary 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 “comprising,” “including,” “having,” “containing,” and / or “comprising” as used herein indicate the presence of the said features, elements, and / or components, but do not exclude the presence or addition of one or more other features, elements, components, and / or combinations thereof. Example Environment

[0046] Figure 1 This is a block diagram illustrating an example video encoding / decoding system 100 from which the techniques of this disclosure may be utilized. As shown, the video encoding / 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.

[0047] Video source 112 may include sources such as video capture devices. Examples of video capture devices include, but are not limited to, interfaces for receiving video data from video content providers, computer graphics systems for generating video data, and / or combinations thereof.

[0048] Video data may include one or more images. Video encoder 114 encodes the video data from video source 112 to generate a bitstream. The bitstream may include a sequence of bits forming a codec representation of the video data. The bitstream may include codec images and associated data. The codec images are codec representations of images. The associated data may include sequence parameter sets, image parameter sets, and other syntax structures. I / O interface 116 may include a modulator / demodulator and / or a transmitter. Encoded video data can be transmitted directly to destination device 120 via network 130A through I / O interface 116. Encoded video data may also be stored on storage medium / server 130B for access by destination device 120.

[0049] The destination device 120 may include an I / O interface 126, a video decoder 124, and a display device 122. The I / O interface 126 may include a receiver and / or a modem. The I / O interface 126 may acquire 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 a user. The display device 122 may be integrated with the destination device 120, or it may be external to the destination device 120, which is configured to interface with an external display device.

[0050] The video encoder 114 and the video decoder 124 can operate according to video compression standards such as the High Efficiency Video Codec (HEVC) standard, the Multi-Functional Video Codec (VVC) standard, and other existing and / or further standards.

[0051] Figure 2 This is a block diagram illustrating 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 a video encoder 114 in system 100 is shown.

[0052] The video encoder 200 can be configured to implement any or all of the technologies disclosed herein. Figure 2 In the example, the video encoder 200 includes multiple functional components. The techniques described in this disclosure can be shared among the various components of the video encoder 200. In some examples, the processor can be configured to perform any or all of the techniques described in this disclosure.

[0053] In some embodiments, the video encoder 200 may include a segmentation unit 201, a prediction unit 202, a residual generation unit 207, a transform unit 208, a quantization unit 209, an inverse quantization unit 210, an inverse transform unit 211, a reconstruction unit 212, a buffer 213, and an entropy coding 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-frame prediction unit 206.

[0054] 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 can perform prediction in an IBC mode in which at least one reference picture is the picture in which the current video block is located.

[0055] Furthermore, although some components (such as motion estimation unit 204 and motion compensation unit 205) can be integrated, for interpretable purposes, these components are... Figure 2The examples are shown separately.

[0056] The segmentation unit 201 can segment an image into one or more video blocks. The video encoder 200 and the video decoder 300 can support various video block sizes.

[0057] The mode selection unit 203 can select one of several codec modes (intra-frame codec or inter-frame codec) based on error results, and provide the resulting intra-frame or inter-frame codec block to the residual generation unit 207 to generate residual block data, and to the reconstruction unit 212 to reconstruct the coded block for use as a reference image. In some examples, the mode selection unit 203 can select an intra-frame / inter-frame joint prediction (CIIP) mode, in which prediction is based on inter-frame prediction signals and intra-frame prediction signals. In the case of inter-frame prediction, the mode selection unit 203 can also select a resolution for the block based on motion vectors (e.g., sub-pixel precision or integer pixel precision).

[0058] To perform inter-frame prediction on the current video block, motion estimation unit 204 can generate motion information for the current video block by comparing one or more reference frames from buffer 213 with the current video block. Motion compensation unit 205 can determine the predicted video block for the current video block based on the motion information and decoded samples of images from buffer 213 other than the image associated with the current video block.

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

[0060] In some examples, motion estimation unit 204 can perform unidirectional prediction on the current video block, and can search reference images in list 0 or list 1 to find a reference video block for the current video block. Motion estimation unit 204 can then generate a reference index indicating the reference image in list 0 or list 1, and a motion vector indicating the spatial displacement between the current video block and the reference video block, wherein the reference image contains the reference video block. Motion estimation unit 204 can output the reference index, prediction direction indicator, and motion vector as motion information for the current video block. 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.

[0061] Alternatively, in other examples, motion estimation unit 204 can perform bidirectional prediction on the current video block. Motion estimation unit 204 can search for reference images in list 0 to find a reference video block for the current video block, and can also search for reference images in list 1 to find another reference video block for the current video block. Motion estimation unit 204 can then generate reference indices indicating the reference images containing the reference video blocks in lists 0 and 1, and motion vectors indicating the spatial displacement between the reference video blocks and the current video block. Motion estimation unit 204 can output the reference index and motion vector of the current video block as motion information for the current video block. Motion compensation unit 205 can generate a predicted video block for the current video block based on the reference video blocks indicated by the motion information of the current video block.

[0062] In some examples, the motion estimation unit 204 can output a complete set of motion information for use in the decoder's decoding process. Alternatively, in some embodiments, the motion estimation unit 204 can reference the motion information of another video block to transmit the motion information of the current video block via a signal. 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 neighboring video blocks.

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

[0064] In another example, motion estimation unit 204 may identify another video block and 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. Video decoder 300 can use the motion vector of the indicated video block and the motion vector difference to determine the motion vector of the current video block.

[0065] As discussed above, the video encoder 200 can transmit motion vectors via signals in a predictive manner. Two examples of predictive signaling techniques that can be implemented by the video encoder 200 include Advanced Motion Vector Prediction (AMVP) and Merge Pattern Signaling.

[0066] Intra-prediction unit 206 can perform intra-prediction on the current video block. When intra-prediction unit 206 performs intra-prediction on the current video block, it can generate prediction data for the current video block based on decoded samples from other video blocks in the same frame. The prediction data for the current video block can include the predicted video block and various syntax elements.

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

[0068] In other examples, such as in skip mode, residual data for the current video block may not exist, and residual generation unit 207 may not perform subtraction operations.

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

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

[0071] The inverse quantization unit 210 and the inverse transform unit 211 can apply inverse quantization and inverse transform to the transform coefficient video block respectively to reconstruct the residual video block from the transform coefficient video block. The reconstruction unit 212 can add the reconstructed residual video block to the 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.

[0072] After the video block is reconstructed by reconstruction unit 212, a loop filtering operation can be performed to reduce video block artifacts in the video block.

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

[0074] Figure 3 This 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 video decoder 124 in system 100 is shown.

[0075] The video decoder 300 can be configured to perform any or all of the technologies disclosed herein. Figure 3In the example, the video decoder 300 includes multiple functional components. The techniques described in this disclosure can be shared among the various components of the video decoder 300. In some examples, the processor can be configured to perform any or all of the techniques described in this disclosure.

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

[0077] Entropy decoding unit 301 can retrieve the encoded bitstream. The encoded bitstream may include entropy-encoded video data (e.g., encoded video data blocks). Entropy decoding unit 301 can decode the entropy-encoded video data, and 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. Motion compensation unit 302 can determine this information, for example, by performing AMVP and Merge mode. AMVP is used, which includes deriving several most likely candidates based on data from neighboring PBs and reference pictures. Motion information typically 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-strip, an identifier of which reference picture list is associated with each index. As used herein, in some aspects, "Merge mode" may refer to deriving motion information from spatially or temporally neighboring blocks.

[0078] The motion compensation unit 302 can generate motion compensation blocks, possibly by performing interpolation based on an interpolation filter. Identifiers for interpolation filters used with sub-pixel precision can be included in the syntax elements.

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

[0080] Motion compensation unit 302 may use at least some of the syntax information to determine the block size of the frames(multiple) and / or stripes(multiple) used to encode the encoded video sequence, segmentation information describing how each macroblock of the image of the encoded video sequence is segmented, a pattern indicating how each segment is encoded, one or more reference frames (and a list of reference frames) for each inter-frame coded block, and other information for decoding the encoded video sequence. As used herein, in some aspects, a “strip” can refer to a data structure that can be decoded independently of other stripes of the same image in terms of entropy encoding / decoding, signal prediction, and residual signal reconstruction. A strip can be an entire image or a region of an image.

[0081] Intra-prediction unit 303 can use, for example, an intra-prediction mode received in the bitstream to form prediction blocks from spatially adjacent blocks. Dequantization unit 304 dequantizes (i.e., dequantizes) the quantized video block coefficients provided in the bitstream and decoded by entropy decoding unit 301. Inverse transform unit 305 applies the inverse transform.

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

[0083] Some exemplary embodiments of this disclosure will be described in detail below. It should be understood that section headings are used in this document for ease of understanding and not to limit the embodiments disclosed in a section to that section only. Furthermore, although some embodiments are described with reference to multi-function video codecs or other specific video codecs, the disclosed techniques are also applicable to other video codec techniques. Furthermore, although some embodiments describe video encoding and decoding steps in detail, it will be understood that the corresponding decoding steps for de-encoding will be implemented by the decoder. Additionally, the term video processing includes video encoding / decoding or compression, video decoding or decompression, and video transcoding, in which video pixels are represented from one compression format to another compression format or at a different compression bitrate. 1. Brief Overview This disclosure relates to image / video codecs, particularly IBC and intra-frame TMP prediction. It can be applied to existing video codec standards such as HEVC or standard VVC (Multi-Functional Video Codec). It can also be applied to future video codec standards or video codecs. 2. Introduction Video codec standards have primarily evolved through the development of well-known ITU-T and ISO / IEC standards. ITU-T developed H.261 and H.263, while ISO / IEC developed MPEG-1 and MPEG-4 visual standards. The two organizations jointly developed the H.262 / MPEG-2 video standard, the H.264 / MPEG-4 Advanced Video Codec (AVC) standard, and the H.265 / HEVC standard. H.262, in particular, is based on a hybrid video codec architecture, utilizing temporal prediction plus transform coding. To explore future video codec technologies beyond HEVC, the Joint Video Exploration Team (JVET) was established in 2015 by VCEG and MPEG. JVET meetings are held quarterly, and the new video codec standard was officially named Multifunctional Video Codec (VVC) at the April 2018 JVET meeting, where the first version of the VVC Test Model (VTM) was also released. The VVC working draft and the VTM test model are updated after each meeting. The VVC project was technically finalized (FDIS) at the July 2020 meeting. In January 2021, JVET established the Exploratory Experiment (EE) with the goal of improving compression efficiency beyond the capabilities of VVC using novel traditional algorithms. Shortly thereafter, ECM was built as a general-purpose software foundation for long-term exploratory work toward next-generation video codec standards. 2.1 Intra-Block Copying (IBC) Intra-Block Copy (IBC) is a tool used in the HEVC extension on SCC. It is well known to significantly improve the encoding and decoding efficiency of screen content material. Since IBC mode is implemented as a block-level encoding and decoding mode, block matching (BM) is performed at the encoder to find the optimal block vector (or motion vector) for each CU. Here, the block vector is used to indicate the displacement from the current block to a reference block that has already been reconstructed within the current image. The luma block vector of an IBC-encoded CU is integer-precision. The chroma block vector is also rounded to integer precision. When combined with AMVR, IBC mode can switch between 1-pixel motion vector precision and 4-pixel motion vector precision. IBC-encoded CUs are considered a third prediction mode, distinct from intra-prediction or inter-prediction modes. IBC mode is suitable for CUs with a width and height of 64 luma samples or less. On the encoder side, for IBC, hash-based motion estimation is performed. The encoder performs RD checks on blocks with a width or height no greater than 16 luminance samples. For non-Merge mode, block vector search is first performed using a hash-based search. If the hash search does not return valid candidates, a local search based on block matching is performed. In hash-based search, hash key matching (32-bit CRC) between the current block and reference blocks is extended to all allowed block sizes. Hash key calculation for each location in the current image is based on 4×4 sub-blocks. For the larger current block, a hash key match with a reference block is determined when all hash keys of all 4×4 sub-blocks match the hash key at the corresponding reference location. If 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 lowest cost is selected. In block matching search, the search scope is set to cover both the previous CTU and the current CTU. At the CU level, the IBC mode is transmitted via a flag, and it can be transmitted via a flag as either 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 codec blocks is used to predict the current block. The Merge list consists of spatial candidates, HMVP candidates, and paired candidates. –IBC AMVP Mode: Block vector differences are encoded and decoded in the same way as motion vector differences. The block vector prediction method uses two candidates as prediction values, one from the left nearest neighbor and one from the top nearest neighbor (if IBC encoded and decoded). When either nearest neighbor is unavailable, the default block vector is used as the prediction value. A flag is transmitted via signaling to indicate the index of the block vector prediction value. 2.1.1. Simplification of IBC Vector Prediction BV predictions for Merge and AMVP modes in IBC will share a common list of predictions consisting of the following elements: • Two adjacent airspace locations (in Figure 4 A1 and B1 in the middle, Figure 4 The spatial proximity locations used in IBC vector prediction are shown. • 5 HMVP entries • Default zero vector. For Merge mode, up to the first 6 entries of the list will be used; for AMVP mode, the first 2 entries of the list will be used. The list must also conform to the shared Merge list region requirement (the same list within the shared SMR). 2.1.2. IBC Reference Area To reduce memory consumption and decoder complexity, IBC in VVC only allows the reconstruction of a predefined region, which includes the current CTU region and some regions of the left CTU. Figure 5 The reference area of ​​the IBC mode is shown, where each block represents a 64×64 luminance sample unit. Figure 5 The current CTU processing order and its available reference points in the current CTU and the left CTU are shown. Depending on the location of the current codec CU within the current CTU, the following applies: – If the current block falls within the top-left 64×64 block of the current CTU, it can refer to reference points in the bottom-right 64×64 block of the left CTU using CPR mode, in addition to the samples already reconstructed in the current CTU. The current block can also refer to reference points in the bottom-left 64×64 block of the left CTU and the top-right 64×64 block of the left CTU using CPR mode. – If the current block falls within the upper right 64×64 block of the current CTU, then in addition to the samples already reconstructed in the current CTU, if the brightness position (0,64) relative to the current CTU has not yet been reconstructed, the current block can also refer to the reference samples in the lower left 64×64 block and lower right 64×64 block of the left CTU using CPR mode; otherwise, the current block can also refer to the reference samples in the lower right 64×64 block of the left CTU. – If the current block falls within the lower left 64×64 block of the current CTU, then in addition to the samples already reconstructed in the current CTU, if the brightness position (64,0) relative to the current CTU has not yet been reconstructed, the current block can also refer to reference samples in the upper right and lower right 64×64 blocks of the left CTU using CPR mode. Otherwise, the current block can also refer to reference samples in the lower right 64×64 block of the left CTU using CPR mode. – If the current block falls within the bottom right 64×64 block of the current CTU, it can simply refer to samples that have already been reconstructed in the current CTU using CPR mode. This restriction allows for the use of local on-chip memory to implement IBC mode for hardware implementations. 2.1.3. Interaction between IBC and other codec tools The interaction between IBC mode and other inter-frame coding / decoding tools in VVC (such as Paired Merge Candidate, History-Based Motion Vector Prediction (HMVP), Intra / Inter Joint Prediction Mode (CIIP), Merge Mode with Motion Vector Difference (MMVD), and Geometric Partitioning Mode (GPM)) is as follows: IBC can be used with pairwise merge candidates and HMVP. New pairwise IBC merge candidates can be generated by averaging two IBC merge candidates. For HMVP, IBC movements are inserted into the history cache for future reference. –IBC cannot be used in combination with the following inter-frame tools: affine motion, CIIP, MMVD, and GPM. – When using DUAL_TREE segmentation, IBC is not allowed for chroma codec blocks. Unlike HEVC screen content encoding / decoding extensions, the current image is no longer included as one of the reference images in reference image list 0 for IBC prediction. The derivation process of motion vectors for IBC mode excludes all neighboring blocks in inter-frame modes, and vice versa. The following IBC design aspects are applied: –IBC shares the same process as regular MV Merge, including pairwise Merge candidates and history-based motion predictions, but prohibits TMVP and zero vectors because they are invalid for IBC mode. – Separate HMVP caches (5 candidates each) are used for regular MV and IBC. – Block vector constraints are implemented in the form of bitstream consistency constraints. The encoder needs to ensure that invalid vectors do not exist in the bitstream, and if a merge candidate is invalid (out of range or 0), the merge should not be used. As described below, such bitstream consistency constraints are expressed in the form of virtual buffers. – For deblocking, IBC is processed as an inter-frame mode. – If the current block is encoded or decoded using IBC prediction mode, AMVR does not use quarter pixels; instead, AMVR is transmitted via signaling to indicate only whether the MV is an inter-frame pixel or 4 integer pixels. The number of IBC Merge candidates can be transmitted separately in the strip header from the number of regular, sub-block, and geometry Merge candidates. The concept of a virtual buffer is used to describe the permissible reference region and valid block vector for IBC prediction modes. Representing the CTU size as ctbSize, the virtual buffer ibcBuf has a width wIbcBuf = 128 × 128 / ctbSize and a height hIbcBuf = ctbSize. For example, for a CTU size of 128 × 128, the size of ibcBuf is also 128 × 128; for a CTU size of 64 × 64, the size of ibcBuf is 256 × 64; and for a CTU size of 32 × 32, the size of ibcBuf is 512 × 32. The size of the VPDU is min(ctbSize, 64) in each dimension, Wv =min(ctbSize, 64). The virtual IBC cache ibcBuf is maintained as follows. - At the beginning of decoding each CTU line, refresh the entire ibcBuf using an invalid value of -1. – At the beginning of decoding the VPDU(xVPDU, yVPDU) relative to the top left corner of the image, set ibcBuf[x][y] = -1, where x = xVPDU%wIbcBuf, ..., xVPDU%wIbcBuf + W v -1;y=yVPDU%ctbSize,…,yVPDU%ctbSize+W v -1. – After decoding the CU containing (x, y) relative to the top-left corner of the image, set ibcBuf[x%wIbcBuf][y%ctbSize]=recSample[x][y]. For a block covering coordinates (x, y), it is valid if the following are true for the block vector bv = (bv[0], bv[1]); otherwise, it is invalid. ibcBuf[(x+bv[0])%wIbcBuf][(y+bv[1])%ctbSize] should not be equal to -1. 2.1.4. IBC Virtual Cache Test The luminance block vector bvL (luminance block vector with 1 / 16 fractional sample precision) must comply with the following constraints: –CtbSizeY is greater than or equal to ((yCb+(bvL[1]>>4))&(CtbSizeY-1))+cbHeight. For x=xCb..xCb+cbWidth-1 and y=yCb..yCb+cbHeight-1, IbcVirBuf[0][(x+(bvL[0]>>4))&(IbcBufWidthY-1)][(y+(bvL[1]>>4))&(CtbSizeY-1)] does not need to be equal to -1. Otherwise, bvL is considered invalid bv. Samples are processed in units of CTB. The array size for each luminance CTB is CtbSizeY in both width and height, where CtbSizeY is in units of samples. –(xCb, yCb) is the brightness position of the top-left sample of the current luminance block relative to the top-left luminance sample of the current image. –cbWidth specifies the width of the current codec block in the luma sample. –cbHeight specifies the height of the current codec block in the luminance sample. 2.2. IBC Merge / AMVP List Construction The IBC Merge / AMVP list construction has been modified as follows: • It can be inserted into the IBC Merge / AMVP candidate list only if the IBC Merge / AMVP candidate is valid. • Candidates for the upper right airspace, lower left airspace, and upper left airspace (e.g.) Figure 6 The numbers B0, A0, and B2 shown are: Figure 6 The diagram shows the spatial proximity locations used in the construction of the IBC Merge / AMVP list, and a pairwise average candidate can be added to the IBC Merge / AMVP candidate list. • Template-based adaptive reordering (ARMC-TM) is applied to the IBC Merge list. The HMVP table size for IBC is increased to 25. After deriving a maximum of 20 IBC Merge candidates using full deduplication, they are reordered together. After reordering, the top 6 candidates with the lowest template matching cost are selected as the final candidates in the IBC Merge list. Zero vector candidates used to populate the IBC Merge / AMVP list are replaced by a set of BVP candidates located in the IBC reference region. Zero vectors are invalid as block vectors in the IBC Merge mode, and therefore are discarded as BVPs in the IBC candidate list. Three candidates are located at the nearest corner of the reference region, and three additional candidates are determined in the middle of the three sub-regions (A, B, and C), their coordinates being determined by the width and height of the current block, as well as the ΔX and ΔY parameters, as shown below. Figure 7 As shown, the Figure 7 The filling candidates for replacing the zero vector in the IBC list are shown. 2.3. IBC with Template Matching Template matching is used in both the IBC Merge mode and the IBC AMVP mode. Compared to the Merge list used in the regular IBC Merge mode, the IBC-TM Merge list is modified so that candidates are selected based on a deduplication method, where the motion distance between candidates is the same as in the regular TM Merge mode. The terminating zero motion is replaced by motion vectors to the left (-W, 0), top (0, -H), and top-left (-W, -H), where W is the width of the current CU and H is the height of the current CU. In IBC-TM Merge mode, the selected candidate is refined using a template matching method prior to the RDO or decoding process. IBC-TM Merge mode has been compared to the regular IBC Merge mode, and the TM-Merge flag is transmitted via signaling. In the IBC-TM AMVP mode, up to three candidates are selected from the IBC-TM Merge list. Each of these three candidates is refined using a template matching method and ranked according to the template matching cost it produces. Then, typically only the top two candidates are considered in the motion estimation process. Since the IBC motion vector is constrained to be (i) an integer and (ii) as... Figure 8 Within the reference area shown, template matching refinement for both IBC-TM Merge and AMVP modes is therefore quite simple. Figure 8 The IBC reference region, dependent on the current CU position, is shown. Therefore, in IBC-TM Merge mode, all thinning is performed with integer precision, and in IBC-TM AMVP mode, they are performed with either integer or 4-pixel precision based on the AMVR value. Such thinning only accesses samples without interpolation. In both cases, the motion vectors and templates used in each thinning step must adhere to the constraints of the reference region. 2.4. IBC Reference Area The reference area for IBC is extended to the two CTU rows above. Figure 9 The reference region used for encoding / decoding CTU(m, n) is shown. Specifically, for a CTU(m, n) to be encoded / decoded, the reference region includes CTUs with indices (m-2, n-2)…(W, n-2), (0, n-1)…(W, n-1), (0, n)…(m, n), where W represents the maximum horizontal index within the current slice, strip, or picture. When the CTU size is 256, the reference region is limited to the uppermost CTU row. This setting ensures that for CTU sizes of 128 or 256, IBC does not require additional memory in the current ETM platform. The per-sample block vector search (or local search) range is limited to horizontal [-(C<<1), C>>2], vertical [-C, C>>2] to accommodate the reference region expansion, where C represents the CTU size. 2.5. Reconstructing the Reordered IBC (RR-IBC) The IBC (RR-IBC) mode allows for reconstruction and reordering of IBC blocks after IBC encoding and decoding. When RR-IBC is 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 predicted block is derived without flipping. On the decoder side, the reconstructed block is flipped back to recover the original block. For blocks encoded with RR-IBC, two flipping methods are supported: horizontal flipping and vertical flipping. Syntax flags are first signaled for blocks encoded with IBC AMVP, indicating whether the reconstruction is flipped. If it is flipped, another flag is further signaled to specify the flipping type. For IBC Merge, the flipping type is inherited from neighboring blocks, and no syntax is signaled. Considering horizontal or vertical symmetry, the current block and reference block are typically horizontally or vertically aligned. Therefore, when a horizontal flip is applied, the vertical component of the BV is not signaled and is presumed to be 0. Similarly, when a vertical flip is applied, the horizontal component of the BV is not signaled and is presumed to be 0. Figure 10A A schematic diagram of BV adjustment for horizontal flipping is shown. Figure 10B A schematic diagram of BV adjustment for vertical flipping is shown. To better utilize symmetry, a flip-aware BV adjustment scheme is applied to refine block vector candidates. For example, as Figure 10A and Figure 10B As shown, (x nbr ,y nbr ) and (x cur ,y cur ) represent the coordinates of the center sample points of the neighboring blocks and the current block, respectively, BV nbr and BV cur These represent the block value (BV) of the neighboring block and the current block, respectively. When the neighboring block is encoded / decoded using horizontal flipping, instead of directly inheriting the BV from the neighboring block, the BV is... cur The horizontal component is transmitted to BV nbr The horizontal component (represented as BV) nbr h The motion displacement is added and calculated, i.e., BV cur h =2(x nbr -x cur )+BV nbr h Similarly, in the case where adjacent blocks are encoded and decoded using vertical flipping, BV cur The vertical component is transmitted through BV nbr The vertical component (denoted as BV) nbr v The motion displacement is added and calculated, i.e., BVcur v =2(y nbr -y cur )+BV nbr v . 2.6. IBC Merge Mode with Block Vector Difference (IBC-MBVD) Affine-MMVD and GPM-MMVD have been adopted by ECM as extensions to the regular MMVD mode. Extending the MMVD mode to the IBC Merge mode is a natural progression. In IBC-MBVD, 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 direction is two horizontal directions and two vertical directions. The base candidate is selected from the top five candidates in the reordered IBC Merge list. All possible MBVD refinement positions (20×4) for each base candidate are reordered based on the SAD cost between the template (the row above and the 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 retained as available positions for MBVD index encoding and decoding. The MBVD index is binarynized using rice encoding and decoding with a parameter equal to 1. Blocks encoded and decoded by IBC-MBVD do not inherit the flip type from neighboring blocks encoded and decoded by RR-IBC. 2.7. 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 portion of the current frame, whose L-shaped template matches the current template. For a predefined search range, the encoder searches the reconstructed portion of the current frame for the template most similar to the current template and uses the corresponding block as the prediction block. The encoder then transmits the use of this mode via signaling, and the same prediction operation is performed on the decoder side. Figure 11 The intra-frame template matching search region used is shown. The prediction signal is obtained by matching the L-shaped causal nearest neighbors of the current block with... Figure 11 Another block of match in the predefined search area consisting of the following is generated: R1: Current CTU R2: Top left CTU, R3: Above CTU, R4: Left CTU. The sum of absolute differences (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 its 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) to have a fixed number of SAD comparisons per pixel. That is: SearchRange_w = a*BlkW, SearchRange_h = a * BlkH. Where "a" is a constant that controls the gain / complexity tradeoff. In practice, "a" equals 5. Enable intra-frame template matching for CUs with width and height dimensions less than or equal to 64. The maximum CU size for intra-frame template matching is configurable. When DIMD is not used in the current CU, the intra-template matching prediction mode is transmitted at the CU level via a dedicated flag. 2.8. Using block vectors derived from IntraTMP for IBC A method is proposed that uses block vectors derived from IntraTMP for IBC. The proposed method stores the IntraTMP block vector in an IBC block vector cache, and the current IBC block can use both the IBC BV and the IntraTMP BV of neighboring blocks as BV candidates for the IBC BV candidate list, such as... Figure 12 As shown, the Figure 12 The use of the IntraTMP block vector for IBC blocks is shown. Figure 13A and Figure 13B An example is shown comparing block vector candidates from only the neighboring blocks of the IBC codec in the IBC block vector candidate list with block vector candidates from both the neighboring blocks of the IBC codec and the neighboring blocks of the IntraTMP codec in the proposed IBC block vector candidate list. IntraTMP block vectors are added to the IBC block vector candidate list as spatial domain candidates. Figure 13A An example of a candidate list of IBC block vectors that only exist is shown. Figure 13B An example of a candidate list of IBC block vectors that includes both IBC block vectors and IntraTMP block vectors is shown. It is worth noting that the proposed method makes IBC block vector prediction more efficient by using different block vectors without requiring additional memory for storing block vectors. 2.9.IBC-CIIP, IBC-GPM and IBC-LIC 2.9.1. IBC-CIIP First Option Combined Intra-Block Copy and Intra-Prediction (IBC-CIIP) is an encoding / decoding tool for CUs that uses IBC in conjunction with Merge mode and intra-prediction to obtain two prediction signals, which are then weighted and summed to generate the final prediction. Specifically, if the intra-prediction is in planar or DC mode, the final prediction is obtained as follows: P = (w ibc *P ibc +((1< <shift)-w ibc )*P intra +(1<<(shift-1)))>>shift Where P ibc and P intra These represent the IBC prediction signal and the intra-frame prediction signal, respectively. If both the top CU and the left CU are intra-frame encoded / decoded, then (w ibc ,shift) is set to equal to (1,2), if either the top CU or the left CU is intra-frame encoded or decoded, then (w ibc ,shift) is set to equal to (2,2), if both the top CU and the left CU are IBC encoded or decoded, then (w ibc The shift is set to equal to (3,2). Otherwise (i.e., if intra-prediction is in directional mode), the final prediction is obtained by adaptively switching the prediction samples of intra-mode and IBC. For illustrative purposes, assume the current CU size is w*h and the intra-mode is horizontal or vertical. If both the upper neighbor CU and the left neighbor CU are intra-coded, the left 3 / 4 w*h portion (horizontal mode) or the upper w*3 / 4h portion (vertical mode) of the final prediction is set as the intra-prediction signal; and if only one of the upper CU and the left CU is intra-coded, the left 1 / 2 w*h portion (horizontal mode) or the upper w*1 / 2h portion (vertical mode) of the final prediction is set as the intra-prediction signal; and if both the upper CU and the left CU are IBC or inter-coded, the left 1 / 4 w*h portion (horizontal mode) or the top w*1 / 4h portion (vertical mode) of the final prediction is set as the intra-prediction signal. In the above content, apart from the intra-frame prediction part, the other parts of the final prediction are set as IBC prediction samples. 2.9.2. IBC-CIIP Second Option Combined Intra-Block Copy and Intra-Prediction (IBC-CIIP) is an encoding / decoding tool for CUs that uses IBC and intra-prediction to obtain two prediction signals, which are then weighted and summed to generate the final prediction as follows: P = (w ibc *P ibc +((1< <shift)-w ibc )*P intra +(1<<(shift-1)))>>shift Where P ibc and P intra This represents the IBC prediction signal and the intra-frame prediction signal. For IBC Merge mode and IBCAMVP mode, (w ibc ,shift) is set to equal to (13,4) and (1,1). An intra-prediction mode (IPM) candidate list is used to generate the intra-prediction signal, and the IPM candidate list size is predefined to 2. The IPM index is transmitted via signaling to indicate which IPM to use. 2.9.3. IBC with Geometric Segmentation (IBC-GPM) Intra-Block Copy with Geometric Partitioning (IBC-GPM) is an encoding / decoding tool that geometrically divides the CU into two sub-segments. Predictive signals for both sub-segments are generated using IBC and intra-prediction. IBC-GPM can be applied to either the regular IBC Merge mode or the IBC-TM Merge mode. The Intra-Prediction Mode (IPM) candidate list is constructed using the same method as GPM with Inter-Frame and Intra-Frame Prediction for intra-prediction, and the IPM candidate list size is predefined to 3. A total of 48 geometric partitioning modes are available, divided into two sets of geometric partitioning modes as follows. Table 1: Geometric segmentation patterns in the first geometric segmentation pattern set Table 2: Geometric segmentation patterns in the second geometric segmentation pattern set When using IBC-GPM, the IBC-GPM geometric segmentation mode set flag is signaled to indicate whether the first or second geometric segmentation mode set is selected, followed by the geometric segmentation mode index. The IBC-GPM intra-frame flag is signaled to indicate whether intra-frame prediction is used for the first sub-segmentation. When intra-frame prediction is used for sub-segmentation, the intra-frame prediction mode index is signaled. When IBC is used for sub-segmentation, the merge index is signaled. 2.9.4. IBC with local illumination compensation (IBC-LIC) Intra-Block Copy with Local Illumination Compensation (IBC-LIC) is an encoding / decoding tool that uses a linear equation to compensate for local illumination variations within the image between the IBC-encoded CU and its predicted blocks. Except for the use of block vectors to generate the reference template in IBC-LIC, the derivation of the parameters of the linear equation is the same as that for LIC for inter-frame prediction. IBC-LIC can be applied to both IBC AMVP and IBC Merge modes. For IBC AMVP mode, an IBC-LIC flag is signaled to indicate the use of IBC-LIC. For IBC Merge mode, the IBC-LIC flag is inferred from the Merge candidate. 2.10. Block Vector Difference Sign Prediction for IBC Blocks When the block vector difference (BVD) contains non-zero components, Block Vector Difference Symbol Prediction (BVDSP) can be applied to IBC blocks. Possible BVD symbol combinations are sorted according to template matching costs, and the indices corresponding to the true BVD symbols are derived and encoded / decoded using a context model. On the decoder side, the BVD symbols are derived through the following main steps: Step 1: The four candidate BVs are derived through combinations of BVP and possible symbols with the absolute BVD. (BVP[0]+absBVD[0],BVP[1]+absBVD[1]), (BVP[0]+absBVD[0],BVP[1]-absBVD[1]), (BVP[0]-absBVD[0],BVP[1]+absBVD[1]), (BVP[0]-absBVD[0],BVP[1]-absBVD[1]). Step 2: Derive the predicted costs of the four candidate BVs based on template matching, and sort them according to the costs. Step 3: Use the BVDSP index to select the true BVD symbol. Step 4: Add the true BVD to the BVP to obtain the final BV. like Figure 14 As shown, the template matching cost is measured by the SAD between the current CU's neighboring samples and their corresponding reference samples. Figure 14 The derivation of template matching cost in BVDSP is shown. Step 3 of deriving true BVD symbols from the BVDSP index is the same as in non-EE2 MVD symbol prediction. This test encodes and decodes the index using a single ctxTable, different from the non-EE2 MVD symbol prediction, during initialization. In non-EE2 MVD symbol prediction, two ctxTables are used, with ctxIdx selected based on the magnitude of BVD. In general, four BVD candidates are evaluated (+ / -bvd_abs.x, + / -bvd_abs.y). If one of the BVD components (x or y) is zero, then only two BVD candidates are possible. The case where all BVD components are zero is trivial and does not require symbolic derivation. 2.11. Block Vector Difference Prediction for IBC Blocks We propose applying symbol prediction to BVD and further extend the scheme to predict the suffix bits of the BVD amplitude. The suffix bits are also derived on the decoder side by comparing the value of the bits transmitted through the signal with the best candidate bits obtained using template matching. The maximum number of bits to be predicted for the PU is controlled by a macro. By setting this macro, we investigate four configurations corresponding to four subtests, where the following number of BVD bits are predicted: • Test a: Maximum of 2 BVD symbols and 4 BVD suffix bits; • Test b: Maximum of 2 BVD symbols and 6 BVD suffix bits; • Test c: Maximum of 2 BVD symbols and 8 BVD suffix bits; • Test d: Up to 2 BVD symbols and 10 BVD suffix bits. The most significant bits of the amplitude suffixes for the horizontal and vertical BVD components are predicted, and the prediction matches are encoded and decoded in the bitstream using CABAC context mode. The less significant bits of the amplitude suffixes for the horizontal and vertical BVD components are encoded and decoded in bypass mode. 2.12. Direct Block Vector Mode for Chromaticity Prediction A method to improve the encoding and decoding efficiency of chroma components when activating dual trees in intra-frame stripes is proposed, namely Direct Block Vector (DBV). This method includes two implementation methods. 2.12.1.5 blocks of DBV and signaling 1. Binary bits are transmitted via signals to indicate whether the CU is encoded or decoded in DBV mode, as listed in Table 3. Table 3: Binarization process for intra_chroma_pred_mode in the proposed method intra_chroma_pred_mode binary string Intra-frame chroma mode 0 11100 List [0] 1 11101 List [1] 2 11110 List [2] 3 11111 List [3] 4 110 DIMD chromaticity 5 10 DM 6 0 DBV 2. When the chroma dual tree is activated in an intra-frame stripe, for a chroma CU encoded / decoded to DBV mode, if five positions (in) Figure 15 If one of the luma blocks in the image is encoded or decoded in IBC mode or intra-frame TMP mode, its block vector bvL is used to derive the chroma block vector bvC. The bv scaling process is determined based on template matching. If the luma block is encoded or decoded using RRIBC, flip-aware BV adjustments are performed for bvL, which is the same as the reconstructed reordering IBC for screen content encoding and decoding. 3. Then, as Figure 16 As shown, by using the position (xCb, yCb) of the current chroma block and its bvC, the corresponding offset position (xCb+bvC[0], yCb+bvC[1]) is determined, and block copy prediction is performed. Figure 15 Five locations in the reconstructed brightness sample are shown. Figure 16 The prediction process of the DBV method is shown. 2.12.2. DBV and No Signaling in the Central Block In this test, no additional binary bits were transmitted via signal. It works as follows: 1. When chroma dual-tree is activated in an intra-frame stripe, for a chroma CU encoded / decoded in DM mode, if Figure 15 If the center block is encoded or decoded in IBC mode or intra-frame TMP mode, its block vector bvL is used to derive the chroma block vector bvC. The bv scaling process is determined based on template matching. If the luma block is encoded or decoded using RRIBC, flip-aware BV adjustments are performed for bvL, which is the same as the reconstructed reordering IBC for screen content encoding and decoding. 2. Then, as Figure 16 As shown, by using the position (xCb, yCb) of the current chroma block and its bvC, the corresponding offset position (xCb+bvC[0], yCb+bvC[1]) is determined, and block copy prediction is performed. 2.13. Derivation of BVP candidate clusters and BVD notation for IBC mode of reconstruction and reordering In this method, the IBC AMVP list construction is modified based on the distance between the clusters of Block Vector Predicted Values ​​(BVP) candidates and the symbol prediction of the BVD if the BV has an empty component. For a block whose BV has two non-empty components, a cluster of BVP candidates is applied before selecting two AMVP candidates. If the number of valid BVP candidates exceeds two, clustering is used, and up to six BVP candidates are clustered based on their L2 Euclidean distance. The radius (R) determines a set of vectors as a logarithmic function of the width (cbWidth) and height (cbHeight) of the current block, as follows: R=log2((cbWidth·cbHeight)>>MIN_PU_SIZE). The clustering method is applied sequentially from the candidate list, and candidates assigned to groups are removed from the list for subsequent clustering. Within each group, the BVP with the lowest TM cost is selected as the representative candidate for that group. The representative candidates from the first two groups are selected for the motion estimation process, as in the regular IBC AMVP list. Figure 17 A candidate cluster for AMVP IBC is shown based on L2 distance and TM cost. Conversely, BVs with an empty component (including RRIBC blocks) are signaled to the decoder via the bvOneNullComp flag. Instead of invoking the AMVP IBC list construction, two new BVP candidates are determined, adjusted to the boundaries of the valid IBC search region according to the horizontal or vertical orientation indicated by the bvNullCompDir flag. The optimal IBC AMVP index is signaled, which allows the symbol of the non-empty BVD component to be derived on the decoder side. Thus, the absolute value of the non-empty component of the BVD is signaled to the decoder, thereby improving encoding and decoding efficiency. The RRIBC mode is signaled using existing syntax flags, and the orientation of the flip mode is derived from the bvNullCompDir flag. 3. Problem In IBC, DBV, and intra-TMP modes, the samples in the reference block must have been fully reconstructed. Therefore, the reference block cannot overlap with the current block. However, the constraints can be removed to some extent. Unreconstructed samples in the reference block can be estimated from their predicted samples. 4. Detailed Solution The detailed embodiments described below should be considered as examples for explaining general concepts. These embodiments should not be interpreted in a narrow sense. Furthermore, these embodiments can be combined in any way. The term "block" can refer to a codec tree block (CTB), codec tree unit (CTU), codec block (CB), CU, PU, ​​TU, PB, TB, or a video processing unit comprising multiple samples / pixels. Blocks can be rectangular or non-rectangular. W and H are the width and height of the current block (e.g., the luminance block). For blocks encoded and decoded by IBC, DBV, and intra-frame TMP, the block vector (BV) is used to indicate the displacement from the current block to a reference block that has been or partially reconstructed within the current frame. In the following text, BV candidates are BV predictions or search points. Extended IBC, DBV, and Intra TMP reference areas 1. When at least one sample of the reference block has not been reconstructed before the current block with dimensions BW×BH is reconstructed, a BV candidate can be determined as valid within the current video unit (such as a picture, strip, slice, sub-picture, codec unit, etc.). a. In one example, the BV candidate can be one of the following encoding / decoding modes / processes. (a) In one example, the encoding / decoding mode could be the regular IBC AMVP mode. 1) In one example, a BV candidate can be an IBC AMVP candidate, a search point based on IBC hash, or a local search point based on IBC block matching. (b) In one example, the encoding / decoding mode can be the regular IBC Merge mode. 1) In one example, a BV candidate can be an IBC Merge candidate. (c) In one example, the encoding / decoding mode can be IBC-TM AMVP mode. 1) In one example, a BV candidate can be an IBC-TM AMVP candidate, an IBC-TM AMVP refinement candidate during the template matching process, a search point based on IBC hash, or a local search point based on IBC block matching. (d) In one example, the encoding / decoding mode can be IBC-TM Merge mode. 1) In one example, the BV candidate can be an IBC-TM Merge candidate or an IBC-TM Merge refinement candidate during the template matching process. (e) In one example, the encoding / decoding mode could be IBC-MBVD mode. 1) In one example, a BV candidate can be either a basic BV candidate or an MBVD candidate (i.e., a basic BV candidate plus BVD). (f) In one example, the encoding / decoding mode could be RR-IBC AMVP mode. 1) In one example, a BV candidate can be an RR-IBC AMVP candidate, a search point based on an RR-IBC hash, or a local search point based on an RR-IBC block match. (g) In one example, the encoding / decoding mode could be RR-IBC Merge mode. 1) In one example, the BV candidate can be an RR-IBC Merge candidate. (h) In one example, the encoding / decoding mode can be intra-frame TMP mode. 1) In one example, a BV candidate can be an intra-frame TMP search point. (i) In one example, the encoding / decoding mode can be IBC-CIIP mode. 1) In one example, a BV candidate can be at least one of the following: an IBC AMVP candidate, a search point based on an IBC hash, a local search point based on IBC block matching, an IBC Merge candidate, an IBC-TM AMVP candidate, an IBC-TM AMVP refinement candidate during template matching, an IBC-TM Merge candidate, an IBC-TM Merge refinement candidate during template matching, a base BV candidate for MBVD, an MBVD candidate (i.e., a base BV candidate plus BVD), an RR-IBC AMVP candidate, a search point based on an RR-IBC hash, a local search point based on RR-IBC block matching, an RR-IBC Merge candidate, an intra-frame TMP search point, or any other BV candidate. (j) In one example, the encoding / decoding mode can be IBC-GPM mode. 1) In one example, a BV candidate can be at least one of the following: an IBC AMVP candidate, a search point based on an IBC hash, a local search point based on IBC block matching, an IBC Merge candidate, an IBC-TM AMVP candidate, an IBC-TM AMVP refinement candidate during template matching, an IBC-TM Merge candidate, an IBC-TM Merge refinement candidate during template matching, a base BV candidate for MBVD, an MBVD candidate (i.e., a base BV candidate plus BVD), an RR-IBC AMVP candidate, a search point based on an RR-IBC hash, a local search point based on RR-IBC block matching, an RR-IBC Merge candidate, an intra-frame TMP search point, or any other BV candidate. (k) In one example, the encoding / decoding mode can be IBC-LIC mode. 1) In one example, a BV candidate can be at least one of the following: an IBC AMVP candidate, a search point based on an IBC hash, a local search point based on IBC block matching, an IBC Merge candidate, an IBC-TM AMVP candidate, an IBC-TM AMVP refinement candidate during template matching, an IBC-TM Merge candidate, an IBC-TM Merge refinement candidate during template matching, a base BV candidate for MBVD, an MBVD candidate (i.e., a base BV candidate plus BVD), an RR-IBC AMVP candidate, a search point based on an RR-IBC hash, a local search point based on RR-IBC block matching, an RR-IBC Merge candidate, an intra-frame TMP search point, or any other BV candidate. (l) In one example, the encoding / decoding mode can be DBV mode. 1) In one example, a BV candidate can be a chroma BV derived in DBV mode, a chroma BV derived from a scaled luminance BV during the BV scaling process in DBV mode, or a refined chroma BV in DBV mode. (m) In one example, the encoding and decoding process can be BVD prediction and / or BVD symbol prediction. 1) In one example, BV candidates can be derived by combining BVP and possible BVD notations with absolute BVD. 2) In one example, BV candidates can be derived by combining BVP and possible BVD notations with possible absolute BVDs. b. In one example, unreconstructed samples in the reference block can be estimated using at least one predicted sample (several examples in...). Figures 18A to 18C (as shown in the image). (a) In one example, a block vector may satisfy all or some of the following conditions. 1) The horizontal BV component can be less than or equal to 0. 2) The vertical BV component can be less than or equal to 0. 3) The horizontal BV component can be greater than the negative BW (-BW). 4) The vertical BV component can be greater than negative BH (-BH). 5) Block vectors are non-zero vectors. 6) The reference sample points in the lower right position of the reference block may not be reconstructed. (b) In one example, the block vector may need to satisfy at least one of the following conditions. 1) The horizontal BV component can be less than or equal to 0. 2) The vertical BV component can be less than or equal to 0. 3) The horizontal BV component can be greater than -BW. 4) The vertical BV component can be greater than -BH. 5) Block vectors are non-zero vectors. 6) The reference sample points in the lower right position of the reference block may not be reconstructed. (c) In one example, when deriving the predicted samples for the current block, the two steps are performed as follows. 1) First step: Derive the predicted sample points of the current block that correspond to the available reconstructed sample points in the reference block. 2) Second step: Derive the remaining part of the predicted sample point P'(x, y) of the current block, which corresponds to the unreconstructed sample point in the reference block, where P'(x,y)=P(x+xPred,y+yPred) Where P is the prediction of the current block generated in the first step, (x, y) is the location of a sample point in the remaining part of the current block, and (xPred, yPred) is the BV of the current block. 3) In one example, the derivation method for predicting samples can be applied to IBC codec blocks and / or intra-frame TMP codec blocks. 4) In one example, the derivation method for predicting samples can be applied to at least one of the IBC codec block and the intra-frame TMP codec block. 5) In one example, the derivation method used to predict samples can be applied to non-RR-IBC codec blocks (i.e., rribcFlipType is 0). (d) In one example, the derivation method for unreconstructed samples in a reference block can be applied to both IBC codec blocks and intra-frame TMP codec blocks. (e) In one example, the derivation method for unreconstructed samples in a reference block can be applied to at least one of an IBC codec block and an intra-frame TMP codec block. (f) In one example, the derivation method for unreconstructed samples in a reference block can be applied to non-RR-IBC codec blocks (i.e., rribcFlipType is 0). Figures 18A to 18C The diagram shows the unreconstructed samples in the reference block estimated by their predicted samples, and the samples padded with diagonals are derived sample values ​​for the unreconstructed samples in the reference block. Specifically, in Figure 18A In this context, BV candidates are horizontal BVs. Figure 18B In this context, BV candidates are BVs in the vertical direction. Figure 18C In this context, a BV candidate is a BV with non-zero vertical components and non-zero horizontal components. c. In one example, unreconstructed sample points in the reference block can be derived using either horizontal or vertical fill (several examples are provided). Figures 19A to 19D (as shown in the image). (a) In one example, unreconstructed sample points in a reference block can be derived by horizontal padding. (b) In one example, unreconstructed sample points in a reference block can be derived by vertical filling. (c) In one example, unreconstructed sample points in a reference block can be derived by using BV to derive the horizontal and / or vertical fill of the boundary. 1) In this method, the BV of the current block is extended along the same row toward the overlapping area, and the overlapping area is divided into two regions. The reference sample in the lower left overlapping region is generated by copying the reference sample of the rightmost column of the left CU (horizontal fill), and the reference sample in the upper right region is generated by copying the reference sample of the bottom row of the upper CU (vertical fill). (d) In one example, if the height of the unavailable portion is greater than the width of the unavailable portion, the unreconstructed sample points in the reference block can be horizontally filled. (e) In one example, if the width of the unavailable portion is greater than the height of the unavailable portion, the unreconstructed sample points in the reference block can be filled vertically. (f) In one example, if the BV is horizontal (i.e., the BV has a non-zero horizontal component and a zero vertical component), the unreconstructed sample points in the reference block can be derived by horizontal filling. (g) In one example, if the BV is vertical (i.e., the BV has a zero horizontal component and a non-zero vertical component), then the unreconstructed sample points in the reference block can be derived by vertical filling. (h) In one example, the derivation method for unreconstructed samples in a reference block can be applied to both IBC codec blocks and intra-frame TMP codec blocks. (i) In one example, the derivation method for unreconstructed samples in a reference block can be applied to at least one of an IBC codec block and an intra-frame TMP codec block. (j) In one example, the derivation method for unreconstructed samples in the reference block can be applied only to RR-IBC codec blocks (i.e., rribcFlipType is 1 or 2). Figures 19A to 19D The diagrams show how unreconstructed samples in the reference block are derived using either horizontal or vertical fill, and samples filled with diagonal lines are derived sample values ​​for the unreconstructed samples in the reference block. Figure 19A In this context, BV candidates are horizontal BVs, and horizontal padding can be applied. Figure 19B In this context, BV candidates are vertical BVs, and vertical fill can be applied. Figure 19C In this context, a BV candidate is a BV with non-zero vertical and non-zero horizontal components, and vertical fill can be applied. Figure 19D In this context, a BV candidate is a BV with non-zero vertical and non-zero horizontal components, and horizontal and vertical fills can be applied using BVs as boundaries. 2. Targeting BV candidates (bvCand) Part The template matching process (where the corresponding reference block is partially reconstructed within the current image) can be compared with that for BV candidates (bvCand). Total The template matching process is different from that of (the corresponding reference block is completely reconstructed within the current image). a. In one example, the template matching process can be a reordering based on template matching. (a) In one example, the template-matching reordering can be at least one of the following: regular IBC Merge candidate reordering, IBC-TM Merge candidate reordering, regular IBC AMVP candidate reordering, IBC-TM AMVP candidate reordering, MBVD base BV candidate reordering, MBVD candidate reordering, or any BV candidate list reordering. b. In one example, the template matching process can be a refinement based on template matching. (a) In one example, template matching-based refinement can be at least one of IBC_TM Merge candidate refinement, IBC_TMAMVP candidate refinement, or any BV candidate refinement. c. In one example, if the corresponding reference sample has not yet been reconstructed, the reference sample of the current template can be filled. (a) In one example, the same / similar fill method disclosed in Item 1 can be applied to fill the reference sample points of the current template. (b) In one example, if the current block is flipped horizontally, the reference sample points of the current template may need to be filled. 1) In one example, such as Figure 20 As shown, the right column portion of the reference template can be derived through horizontal filling or its predicted samples. Figure 20 The diagram shows a horizontal flip, where the current template is the left column and top row of the current block, and the reference template is the right column and top row of the reference block. Unreconstructed samples in the reference template are derived through horizontal padding or their predicted samples, and samples filled with diagonals are derived sample values ​​for the unreconstructed samples in the reference template. (c) In one example, if the current block is flipped vertically, the reference sample points of the current template may need to be filled. 1) In one example, such as Figure 21 As shown, the lower row portion of the reference template can be derived by vertical filling or its predicted samples. Figure 21 The diagram shows a vertical flip, where the current template is the left column and top row of the current block, and the reference template is the left column and bottom row of the reference block. Unreconstructed samples in the reference template are derived by vertical filling or their predicted samples, and samples filled with diagonals are derived sample values ​​for unreconstructed samples in the reference template. d. In one example, the bvCand between the current template and the reference template Part The template matching cost can be modified. (a) In one example, the cost C can be multiplied by a factor. (b) In one example, the factor can be greater than 1. 1) In one example, the factor could be 2.5. 2) In one example, the factor could be 3. 3) In one example, the factor could be 3.5. (c) In one example, the factor can be different for different overlap ratios. 1) In one example, the factor can increase as the overlap ratio increases. 2) In one example, when the first bvCand Part The overlap ratio is greater than or equal to the second bvCand Part When the overlap ratio is , the first bvCand Part The first factor can be greater than or equal to the second bvCand Part The second factor. 3) In one example, the overlap ratio can be the area of ​​the unusable portion divided by the area of ​​the current block. (d) In one example, the factor can be different for different encoding / decoding modes. (e) In one example, the factor can be different for different codec configurations. (f) In one example, the factor can be different for different sequence resolutions. (g) In one example, the factor can be an integer. (h) In one example, the modified C (denoted as C') can be derived as f(C), where f is a function. 1) For example, C' = 3*C + RightShift(C, 1). 2) For example, C' = 2*C + RightShift(C,1). 3) For example, C' = 4*C + RightShift(C,1). 4) For example, C' = 1*C + RightShift(C, 1). 5) For example, C' = 3 * C. 6) For example, C' = 2*C. 7) For example, C' = 4 * C. Reconstructing and reordering the IBC (RR-IBC) 3. The flip type for pairwise average candidates can be set to: a. In one example, the flip type for pairwise average candidates can be set to 0. b. In one example, if the first and second candidates used to derive the pairwise average candidate have the same flip type, then set the same flip type as the flip type of the pairwise average candidate; otherwise, set 0 as the flip type of the pairwise average candidate. c. In one example, if the first candidate and the second candidate are used to derive the pairwise average candidate, then the flip type of the first candidate is set to the flip type of the pairwise average candidate. (a) In one example, the first candidate can precede the second candidate in the BV candidate list. 1) In one example, the BV candidate list can be the regular IBC Merge candidate list. 2) In one example, the BV candidate list can be the regular IBC AMVP candidate list. 3) In one example, the BV candidate list can be the IBC-TM Merge candidate list. 4) In one example, the BV candidate list can be the IBC-TM AMVP candidate list. 5) In one example, the BV candidate list can be the IBC-MBVD base Merge candidate list. 4. Whether to inherit the inversion type when deriving the base candidate for IBC-MBVD or IBC-TM Merge / AMVP can depend on the candidate type of the base candidate. a. In one example, when deriving the base candidate for IBC-MBVD or IBC-TM Merge / AMVP, the HMVP candidate can inherit the inverted type. (a) In one example, a flip-aware BV adjustment scheme can be applied to refine BV candidates. (b) In one example, the flip-aware BV adjustment scheme may not be applied to refine the BV candidates. b. In one example, when deriving the base candidate for IBC-MBVD or IBC-TM Merge / AMVP, the spatial candidate may not inherit the flip type (i.e., rribcFlipType is 0). c. In one example, when deriving the base candidate for IBC-MBVD or IBC-TM Merge / AMVP, the temporal candidate may not inherit the flip type (i.e., rribcFlipType is 0). d. In one example, when deriving the base candidate for IBC-MBVD or IBC-TM Merge / AMVP, the paired candidate may not inherit the flip type (i.e., rribcFlipType is 0). e. In one example, when deriving the base candidates for IBC-MBVD or IBC-TM Merge / AMVP, the pair of candidates can be set to Project 3. 5. Whether to perform flip-aware BV adjustment when deriving BV candidates can depend on the encoding / decoding mode. a. In one example, when deriving a regular IBC Merge candidate, flip-aware BV adjustments can be performed based on the flip type. b. In one example, when deriving a regular IBC AMVP candidate, flip-aware BV adjustments can be performed based on the flip type. (a) Alternatively, when deriving a regular IBC AMVP candidate, the flip-aware BV adjustment may not be performed. c. In one example, the flip-aware BV adjustment may not be performed when deriving the IBC-TM Merge candidate. d. In one example, when deriving the IBC-TM AMVP candidate, the flip-aware BV adjustment may not be performed. e. In one example, when deriving the IBC-MBVD base Merge candidate, the flip-aware BV adjustment may not be performed. 6. In the above examples, a video unit can refer to a color component / sub-picture / strip / piece / code tree unit (CTU) / CTU line / CTU group / code tree unit (CU) / prediction unit (PU) / transform unit (TU) / code tree block (CTB) / code tree block (CB) / prediction block (PB) / transform block (TB) / block / sub-block of a block / sub-region within a block / any other region containing more than one sample or pixel. 7. Whether and / or how the methods disclosed above can be applied at the sequence level / picture group level / picture level / strip level / piece group level, such as in the sequence header / picture header / SPS / VPS / DPS / DCI / PPS / APS / strip header / piece group header, can be transmitted via signals. 8. Whether and / or how the methods disclosed above can be applied to transmit signals at PB / TB / CB / PU / TU / CU / VPDU / CTU / CTU lines / strips / films / sub-images / other types of areas containing more than one sample point or pixel. 9. Whether and / or how the methods disclosed above are applied may depend on the encoded / decoded information, such as block size, color format, single / double tree segmentation, color components, and stripe / image type.

[0084] Figure 22 A flowchart of a method 2200 for video processing according to an embodiment of the present disclosure is shown. Method 2200 is implemented during the conversion between a current video block and a video bitstream.

[0085] At box 2210, a block vector (BV) candidate for the current video block is determined, and the BV candidate is associated with a reference block of the current video block. The BV candidate is in at least one of the following encoding / decoding modes or processes: Combined Intra-Block Copy and Intra-Prediction (IBC-CIIP) mode, Intra-Block Copy with Geometric Partitioning (IBC-GPM) mode, Intra-Block Copy with Local Illumination Compensation (IBC-LIC) mode, Direct Block Vector (DBV) mode, Block Vector Difference (BVD) prediction process, or BVD symbol prediction process.

[0086] At box 2220, the validity of a BV candidate is determined based on at least one reconstructed sample point of the reference block and at least one unreconstructed sample point of the reference block. For example, it can be determined whether a BV candidate is valid.

[0087] At box 2230, the conversion is performed based on validity. In some embodiments, the conversion may include encoding the current video block into a bitstream. Alternatively or additionally, the conversion may include decoding the current video block from the bitstream.

[0088] Method 2200 enables the application of a BV candidate in one of the above-described encoding / decoding modes or processes. In this way, encoding / decoding efficiency and effectiveness can be improved.

[0089] In some embodiments, the BV candidate is in IBC-CIIP mode, and the BV candidate includes at least one of the following: IBC Advanced Motion Vector Prediction (AMVP) candidate, IBC hash-based search point, IBC block matching-based local search point, IBC Merge candidate, IBC Template Matching (TM) AMVP candidate, IBC-TM AMVP refinement candidate during template matching process, IBC-TM Merge candidate, IBC-TM Merge refinement candidate during template matching process, base BV candidate of Merge Mode with Block Vector Difference (MBVD), MBVD candidate based on base BV candidate and BVD, Reconstruction Reordering IBC (RR-IBC) AMVP candidate, RR-IBC hash-based search point, RR-IBC block matching-based local search point, RR-IBC Merge candidate, Intra-Frame Template Matching Prediction (TMP) search point, or another BV candidate.

[0090] In some embodiments, the BV candidate is in IBC-GPM mode, and the BV candidate includes at least one of the following: IBC Advanced Motion Vector Prediction (AMVP) candidate, IBC hash-based search point, IBC block matching-based local search point, IBC Merge candidate, IBC Template Matching (TM) AMVP candidate, IBC-TM AMVP refinement candidate during template matching process, IBC-TM Merge candidate, IBC-TM Merge refinement candidate during template matching process, base BV candidate of Merge Mode with Block Vector Difference (MBVD), MBVD candidate based on base BV candidate and BVD, Reconstruction Reordering IBC (RR-IBC) AMVP candidate, RR-IBC hash-based search point, RR-IBC block matching-based local search point, RR-IBC Merge candidate, Intra-Frame Template Matching Prediction (TMP) search point, or another BV candidate.

[0091] In some embodiments, the BV candidate is in IBC-LIC mode, and the BV candidate includes at least one of the following: IBC Advanced Motion Vector Prediction (AMVP) candidate, IBC hash-based search point, IBC block matching-based local search point, IBC Merge candidate, IBC Template Matching (TM) AMVP candidate, IBC-TM AMVP refinement candidate during template matching process, IBC-TM Merge candidate, IBC-TM Merge refinement candidate during template matching process, base BV candidate of Merge Mode with Block Vector Difference (MBVD), MBVD candidate based on base BV candidate and BVD, Reconstruction Reordering IBC (RR-IBC) AMVP candidate, RR-IBC hash-based search point, RR-IBC block matching-based local search point, RR-IBC Merge candidate, Intra-Frame Template Matching Prediction (TMP) search point, or another BV candidate.

[0092] In some embodiments, the BV candidate is in DBV mode, and the BV candidate includes at least one of the following: a chromaticity BV determined in DBV mode, a chromaticity BV determined by scaling the luminance BV during BV scaling in DBV mode, or a refined chromaticity BV in DBV mode.

[0093] In some embodiments, BV candidates are determined in at least one of the BVD prediction process or the BVD symbol prediction process, and the BV candidates are determined based on a combination of BV prediction (BVP) and candidate BVD symbols with absolute BVD.

[0094] In some embodiments, BV candidates are determined in at least one of the BVD prediction process or the BVD symbol prediction process, and the BV candidates are determined based on a combination of BV prediction (BVP) and candidate BVD symbols and candidate absolute BVDs.

[0095] According to another embodiment of this disclosure, a non-transitory computer-readable recording medium is provided. This non-transitory computer-readable recording medium stores a bitstream of video generated by a method performed by an apparatus for video processing. In this method, block vector (BV) candidates for a current video block are determined, and the BV candidates are associated with a reference block of the current video block. The validity of the BV candidates is determined based on at least one reconstructed sample and at least one unreconstructed sample of the reference block. The bitstream is generated based on the validity of the BV candidates. The BV candidates are in at least one of the following encoding / decoding modes or processes: Combined Intra-Block Copy and Intra-Prediction (IBC-CIIP) mode, Intra-Block Copy with Geometric Partitioning (IBC-GPM) mode, Intra-Block Copy with Local Illumination Compensation (IBC-LIC) mode, Direct Block Vector (DBV) mode, Block Vector Difference (BVD) prediction process, or BVD symbol prediction process.

[0096] According to further embodiments of this disclosure, a method for storing a bitstream of video is provided. In this method, block vector (BV) candidates for a current video block are determined, and the BV candidates are associated with a reference block of the current video block. The validity of the BV candidates is determined based on at least one reconstructed sample and at least one unreconstructed sample of the reference block. The bitstream is generated based on the validity of the BV candidates. The bitstream is stored in a non-transitory computer-readable recording medium. The BV candidates are in at least one of the following encoding / decoding modes or processes: combined intra-block copy and intra-prediction (IBC-CIIP) mode, intra-block copy with geometric segmentation mode (IBC-GPM) mode, intra-block copy with local illumination compensation (IBC-LIC) mode, direct block vector (DBV) mode, block vector difference (BVD) prediction process, or BVD symbol prediction process.

[0097] Figure 23 A flowchart of a method 2300 for video processing according to an embodiment of the present disclosure is shown. Method 2300 implements a conversion between a current video block and a video bitstream.

[0098] At box 2310, a first block vector (BV) candidate for the current video block is determined. The first BV candidate is associated with a first reference block of the current video block, which includes at least one reconstructed sample and at least one unreconstructed sample in the current image. As used herein, the term "BV candidate" may also be referred to as "BV". In some embodiments, the BV candidate may be selected from a list of BV candidates.

[0099] At box 2320, a first template matching process is applied to the first BV candidate. This first template matching process differs from the second template matching process applied to the second BV candidate, where the second reference block associated with the second BV candidate is completely reconstructed within the current image. The first template matching process includes at least one of the following: a template matching-based reordering process or a template matching-based refinement process.

[0100] At box 2330, the conversion is performed based on the application. In some embodiments, the conversion may include encoding the current video block into a bitstream. Alternatively or additionally, the conversion may include decoding the current video block from the bitstream.

[0101] Method 2300 applies the first template matching process to the first BV candidate. In this way, encoding / decoding efficiency and effectiveness can be improved.

[0102] In some embodiments, the template matching-based reordering process includes at least one of the following: regular intra-block copy (IBC) Merge candidate reordering, IBC template matching (IBC-TM) Merge candidate reordering, regular IBC advanced motion vector prediction (AMVP) candidate reordering, IBC-TM AMVP candidate reordering, base BV candidate reordering with block vector difference Merge mode (MBVD), MBVD candidate reordering, or another BV candidate list reordering.

[0103] In some embodiments, the template matching-based refinement process includes at least one of the following: Intra-Block Copy (IBC) Template Matching (TM) Merge candidate refinement, IBC TM Advanced Motion Vector Prediction (AMVP) candidate refinement, or another BV candidate refinement.

[0104] In some embodiments, during the first template matching process, the first template matching cost of the first BV candidate between the current template of the current video block and the reference template is adjusted based on a first factor for a codec mode, wherein the first factor is different from a second factor for another codec mode.

[0105] According to another embodiment of this disclosure, a non-transitory computer-readable recording medium is provided. This non-transitory computer-readable recording medium stores a bitstream of video generated by a method performed by an apparatus for video processing. In this method, a first block vector (BV) candidate for a current video block is determined, the first BV candidate being associated with a first reference block of the current video block, the first reference block including at least one reconstructed sample and at least one unreconstructed sample in the current image. A first template matching process is applied to the first BV candidate, the first template matching process differing from a second template matching process for a second BV candidate, wherein a second reference block associated with the second BV candidate is fully reconstructed within the current image. The first template matching process includes at least one of: a template matching-based reordering process or a template matching-based refinement process. The bitstream is generated based on an application.

[0106] According to further embodiments of this disclosure, a method for storing a bitstream of video is provided. In this method, a first block vector (BV) candidate for a current video block is determined, the first BV candidate being associated with a first reference block of the current video block, the first reference block including at least one reconstructed sample and at least one unreconstructed sample in the current image. A first template matching process is applied to the first BV candidate, the first template matching process differing from a second template matching process for a second BV candidate, wherein a second reference block associated with the second BV candidate is fully reconstructed within the current image. The first template matching process includes at least one of: a template matching-based reordering process or a template matching-based refinement process. The bitstream is generated based on an application. The bitstream is stored in a non-transitory computer-readable recording medium.

[0107] In some embodiments, information about whether and / or how method 2200 and / or method 2300 are applied is included in the bitstream.

[0108] In some embodiments, information is indicated at one of the following levels: sequence level, picture group level, picture level, strip level, or slice group level.

[0109] In some embodiments, information is indicated in a sequence header, image header, sequence parameter set (SPS), video parameter set (VPS), decoding parameter set (DPS), decoding capability information (DCI), image parameter set (PPS), adaptive parameter set (APS), strip header, or slice header.

[0110] In some embodiments, the information is indicated in an area containing more than one sample point or pixel.

[0111] In some embodiments, the region includes 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, strip, slice, sub-picture.

[0112] In some embodiments, the information is based on encoded or decoded information.

[0113] In some embodiments, the encoded or decoded information includes at least one of the following: encoding / decoding mode, block size, color format, single-tree segmentation or dual-tree segmentation, color components, stripe type or image type.

[0114] It should be understood that methods 2200 and / or 2300 can be applied individually or in any combination. Using methods 2200 and / or 2300, encoding / decoding efficiency and / or encoding / decoding effectiveness can be improved.

[0115] The embodiments of this disclosure can be described according to the following entries, and their features can be combined in any reasonable manner.

[0116] Item 1. A method for video processing, comprising: determining block vector (BV) candidates for a current video block and a bitstream of the video, the BV candidates being associated with a reference block of the current video block; determining the validity of the BV candidates based on at least one reconstructed sample and at least one unreconstructed sample of the reference block; and performing the conversion based on the validity of the BV candidates, wherein the BV candidates are in at least one of the following encoding / decoding modes or encoding / decoding processes: a combined intra-block copy and intra-prediction (IBC-CIIP) mode, an intra-block copy with geometric segmentation mode (IBC-GPM) mode, an intra-block copy with local illumination compensation (IBC-LIC) mode, a direct block vector (DBV) mode, a block vector difference (BVD) prediction process, or a BVD symbol prediction process.

[0117] Item 2. The method according to Item 1, wherein the BV candidate is in the IBC-CIIP mode, and the BV candidate includes at least one of the following: IBC Advanced Motion Vector Prediction (AMVP) candidate, IBC hash-based search point, IBC block matching-based local search point, IBC Merge candidate, IBC Template Matching (TM) AMVP candidate, IBC-TM AMVP refinement candidate during template matching process, IBC-TM Merge candidate, IBC-TM Merge refinement candidate during template matching process, base BV candidate of Merge Mode with Block Vector Difference (MBVD), MBVD candidate based on base BV candidate and BVD, Reconstructed Reordering IBC (RR-IBC) AMVP candidate, RR-IBC hash-based search point, RR-IBC block matching-based local search point, RR-IBC Merge candidate, Intra-Frame Template Matching Prediction (TMP) search point, or another BV candidate.

[0118] Item 3. The method according to Item 1, wherein the BV candidate is in the IBC-GPM mode, and the BV candidate includes at least one of the following: IBC Advanced Motion Vector Prediction (AMVP) candidate, IBC hash-based search point, IBC block matching-based local search point, IBC Merge candidate, IBC Template Matching (TM) AMVP candidate, IBC-TM AMVP refinement candidate during template matching process, IBC-TM Merge candidate, IBC-TM Merge refinement candidate during template matching process, base BV candidate of Merge Mode with Block Vector Difference (MBVD), MBVD candidate based on base BV candidate and BVD, Reconstructed Reordering IBC (RR-IBC) AMVP candidate, RR-IBC hash-based search point, RR-IBC block matching-based local search point, RR-IBC Merge candidate, Intra-Frame Template Matching Prediction (TMP) search point, or another BV candidate.

[0119] Item 4. The method according to Item 1, wherein the BV candidate is in the IBC-LIC mode, and the BV candidate includes at least one of the following: IBC Advanced Motion Vector Prediction (AMVP) candidate, IBC hash-based search point, IBC block matching-based local search point, IBC Merge candidate, IBC Template Matching (TM) AMVP candidate, IBC-TM AMVP refinement candidate during template matching process, IBC-TM Merge candidate, IBC-TM Merge refinement candidate during template matching process, base BV candidate of Merge Mode with Block Vector Difference (MBVD), MBVD candidate based on base BV candidate and BVD, Reconstruction Reordering IBC (RR-IBC) AMVP candidate, RR-IBC hash-based search point, RR-IBC block matching-based local search point, RR-IBC Merge candidate, Intra-Frame Template Matching Prediction (TMP) search point, or another BV candidate.

[0120] Item 5. The method according to Item 1, wherein the BV candidate is in the DBV mode, and the BV candidate includes at least one of the following: a chromaticity BV determined in the DBV mode, a chromaticity BV determined by scaling the luminance BV during BV scaling in the DBV mode, or a refined chromaticity BV in the DBV mode.

[0121] Item 6. The method according to Item 1, wherein the BV candidate is determined in at least one of the BVD prediction process or the BVD symbol prediction process, and the BV candidate is determined based on a combination of BV prediction (BVP) and candidate BVD symbol with absolute BVD.

[0122] Item 7. The method according to Item 1, wherein the BV candidate is determined in at least one of the BVD prediction process or the BVD symbol prediction process, and the BV candidate is determined based on a combination of BV prediction (BVP) and candidate BVD symbols and candidate absolute BVDs.

[0123] Item 8. A method for video processing, comprising: for a conversion between a current video block and a bitstream of the video; determining a first block vector (BV) candidate for the current video block, the first BV candidate being associated with a first reference block of the current video block, the first reference block including at least one reconstructed sample in a current image and at least one unreconstructed sample in the current image; applying a first template matching process to the first BV candidate, the first template matching process being different from a second template matching process for a second BV candidate, wherein a second reference block associated with the second BV candidate is fully reconstructed within the current image; and performing the conversion based on the application, wherein the first template matching process includes at least one of: a template matching-based reordering process or a template matching-based refinement process.

[0124] Item 9. The method according to Item 8, wherein the template matching-based reordering process includes at least one of the following: regular intra-block copy (IBC) Merge candidate reordering, IBC template matching (IBC-TM) Merge candidate reordering, regular IBC advanced motion vector prediction (AMVP) candidate reordering, IBC-TM AMVP candidate reordering, basic BV candidate reordering with block vector difference Merge mode (MBVD), MBVD candidate reordering, or another BV candidate list reordering.

[0125] Item 10. The method according to Item 8, wherein the template matching-based refinement process includes at least one of the following: Intra-Block Copy (IBC) Template Matching (TM) Merge candidate refinement, IBC TM Advanced Motion Vector Prediction (AMVP) candidate refinement, or another BV candidate refinement.

[0126] Item 11. The method according to any one of Items 8 to 10, wherein during the first template matching process, the first template matching cost of the first BV candidate between the current template of the current video block and the reference template is adjusted based on a first factor for a codec mode, wherein the first factor is different from a second factor for another codec mode.

[0127] Item 12. The method according to any one of Items 1 to 11, wherein the current video block or video unit includes one of the following: color component, sub-picture, strip, slice, codec tree unit (CTU), CTU row, CTU group, codec unit (CU), prediction unit (PU), transform unit (TU), codec tree block (CTB), codec block (CB), prediction block (PB), transform block (TB), block, sub-block of block, sub-region within block, or region containing more than one sample point or pixel.

[0128] Item 13. The method according to any one of items 1 to 12, wherein information about whether and / or how the method is applied is included in the bitstream.

[0129] Item 14. The method according to Item 13, wherein the information is indicated at one of the following: sequence level, picture group level, picture level, strip level, or slice group level.

[0130] Item 15. The method according to Item 13 or Item 14, wherein the information is indicated in a sequence header, picture header, sequence parameter set (SPS), video parameter set (VPS), decoding parameter set (DPS), decoding capability information (DCI), picture parameter set (PPS), adaptive parameter set (APS), strip header, or slice header.

[0131] Item 16. The method according to any one of items 13 to 15, wherein the information is indicated in a region containing more than one sample point or pixel.

[0132] Item 17. The method according to Item 16, wherein the region includes 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, strip, slice, sub-picture.

[0133] Item 18. The method according to any one of items 13 to 17, wherein the information is based on encoded or decoded information.

[0134] Item 19. The method according to Item 18, wherein the encoded or decoded information includes at least one of the following: encoding / decoding mode, block size, color format, single-tree segmentation or dual-tree segmentation, color components, stripe type or picture type.

[0135] Item 20. The method according to any one of items 1 to 19, wherein the conversion includes encoding the current video block into the bitstream.

[0136] Item 21. The method according to any one of items 1 to 19, wherein the conversion includes decoding the current video block from the bitstream.

[0137] Item 22. An apparatus for video processing, comprising a processor and a non-transitory memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to perform the method according to any one of items 1 to 21.

[0138] Item 23. A non-transitory computer-readable storage medium storing instructions that cause a processor to execute the method according to any one of items 1 to 21.

[0139] Item 24. A non-transitory computer-readable recording medium storing a bitstream of video generated by a method performed by means of an apparatus for video processing, wherein the method comprises: determining block vector (BV) candidates for a current video block of the video, the BV candidates being associated with a reference block of the current video block; determining the validity of the BV candidates based on at least one reconstructed sample and at least one unreconstructed sample of the reference block; and generating the bitstream based on the validity of the BV candidates, wherein the BV candidates are in at least one of the following encoding / decoding modes or encoding / decoding processes: a combined intra-block copy and intra-prediction (IBC-CIIP) mode, an intra-block copy with geometric segmentation mode (IBC-GPM) mode, an intra-block copy with local illumination compensation (IBC-LIC) mode, a direct block vector (DBV) mode, a block vector difference (BVD) prediction process, or a BVD symbol prediction process.

[0140] Item 25. A method for storing a bitstream of video, comprising: determining block vector (BV) candidates for a current video block of the video, the BV candidates being associated with a reference block of the current video block; determining the validity of the BV candidates based on at least one reconstructed sample and at least one unreconstructed sample of the reference block; generating the bitstream based on the validity of the BV candidates; and storing the bitstream in a non-transitory computer-readable recording medium, wherein the BV candidates are in at least one of the following encoding / decoding modes or encoding / decoding processes: a combined intra-block copy and intra-prediction (IBC-CIIP) mode, an intra-block copy with geometric segmentation mode (IBC-GPM) mode, an intra-block copy with local illumination compensation (IBC-LIC) mode, a direct block vector (DBV) mode, a block vector difference (BVD) prediction process, or a BVD symbol prediction process.

[0141] Item 26. A non-transitory computer-readable recording medium storing a bitstream of video generated by a method performed by an apparatus for video processing, wherein the method comprises: determining a first block vector (BV) candidate for a current video block of the video, the first BV candidate being associated with a first reference block of the current video block, the first reference block including at least one reconstructed sample and at least one unreconstructed sample in the current image; applying a first template matching process to the first BV candidate, the first template matching process being different from a second template matching process for a second BV candidate, wherein a second reference block associated with the second BV candidate is fully reconstructed within the current image; and generating the bitstream based on the application, wherein the first template matching process includes at least one of: a template matching-based reordering process or a template matching-based refinement process.

[0142] Item 27. A method for storing a bitstream of video, comprising: determining a first block vector (BV) candidate for a current video block of the video, the first BV candidate being associated with a first reference block of the current video block, the first reference block including at least one reconstructed sample in a current image and at least one unreconstructed sample in the current image; applying a first template matching process to the first BV candidate, the first template matching process being different from a second template matching process for a second BV candidate, wherein a second reference block associated with the second BV candidate is fully reconstructed within the current image; generating the bitstream based on the application; and storing the bitstream in a non-transitory computer-readable recording medium, wherein the first template matching process includes at least one of: a template matching-based reordering process or a template matching-based refinement process. Example device

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

[0144] It should be understood that, Figure 24 The computing device 2400 shown is for illustrative purposes only and is not intended to imply any limitation on the functionality and scope of the embodiments of this disclosure.

[0145] like Figure 24As shown, computing device 2400 includes general-purpose computing device 2400. Computing device 2400 may include at least one or more processors or processing units 2410, memory 2420, storage unit 2430, one or more communication units 2440, one or more input devices 2450, and one or more output devices 2460.

[0146] In some embodiments, the computing device 2400 can be implemented as any user terminal or server terminal with computing capabilities. The server terminal can be a server, large computing device, etc., provided by a service provider. The user terminal can be, for example, any type of mobile terminal, fixed terminal, or portable terminal, including 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 / camcorders, positioning devices, television receivers, radio receivers, e-book devices, gaming devices, or any combination thereof, and includes accessories and peripherals of these devices, or any combination thereof. It is conceivable that the computing device 2400 can support any type of interface to the user (such as "wearable" circuitry devices, etc.).

[0147] Processing unit 2410 can be a physical processor or a virtual processor, and can perform various processes based on programs stored in memory 2420. In a multiprocessor system, multiple processing units execute computer-executable instructions in parallel to improve the parallel processing capability of computing device 2400. Processing unit 2410 may also be referred to as a central processing unit (CPU), microprocessor, controller, or microcontroller.

[0148] Computing device 2400 typically includes various computer storage media. Such media can be any media accessible by computing device 2400, including but not limited to volatile and non-volatile media, or removable and non-removable media. Memory 2420 can be volatile memory (e.g., registers, cache, 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. Storage cell 2430 can be any removable or non-removable media and may include machine-readable media, such as memory, flash drives, disks, or other media that can be used to store information and / or data and can be accessed within computing device 2400.

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

[0150] Communication unit 2440 communicates with another computing device via a communication medium. Furthermore, the functionality of components in computing device 2400 can be implemented by a single computing cluster or by multiple computing machines communicating via communication connections. Therefore, computing device 2400 can operate in a networked environment using logical connections to one or more other servers, networked personal computers (PCs), or other general-purpose network nodes.

[0151] Input device 2450 can be one or more of various input devices, such as a mouse, keyboard, trackball, voice input device, etc. Output device 2460 can be one or more of various output devices, such as a monitor, speaker, printer, etc. With the aid of communication unit 2440, computing device 2400 can also communicate with one or more external devices (not shown), such as storage devices and display devices. Computing device 2400 can also communicate with one or more devices that enable a user to interact with computing device 2400, or, if needed, with any device (such as a network card, modem, etc.) that enables computing device 2400 to communicate with one or more other computing devices. This communication can be performed via an input / output (I / O) interface (not shown).

[0152] In some embodiments, some or all components of computing device 2400 may be arranged in a cloud computing architecture, rather than integrated into a single device. In a cloud computing architecture, components can be provided remotely and can work together to achieve the functionality described herein. In some embodiments, cloud computing provides computing, software, data access, and storage services without requiring end users to know the physical location or configuration of the systems or hardware providing these services. In various embodiments, cloud computing provides services via a wide area network (WAN), such as the Internet, using appropriate protocols. For example, a cloud computing provider provides applications via a WAN that can be accessed through a web browser or any other computing component. The software or components of the cloud computing architecture, along with the corresponding data, may be stored on servers at remote locations. Computing resources in a cloud computing environment may be consolidated or distributed at locations in remote data centers. Cloud computing infrastructure may provide services through shared data centers, although to the user they appear as a single access point. Therefore, a cloud computing architecture can be used to provide the components and functionality described herein from a service provider at a remote location. Alternatively, the components and functionality described herein may be provided from conventional servers or installed directly or otherwise on client devices.

[0153] In embodiments of this disclosure, computing device 2400 may be used to implement video encoding / decoding. Memory 2420 may include one or more video encoding / decoding modules 2425 having one or more program instructions. These modules are accessible and executable by processing unit 2410 to perform the functions of the various embodiments described herein.

[0154] In an example embodiment of performing video encoding, input device 2450 may receive video data as input 2470 to be encoded. The video data may be processed, for example, by video codec module 2425 to generate an encoded bitstream. The encoded bitstream may be provided as output 2480 via output device 2460.

[0155] In an example embodiment of performing video decoding, input device 2450 may receive an encoded bitstream as input 2470. The encoded bitstream may be processed, for example, by video codec module 2425 to generate decoded video data. The decoded video data may be provided as output 2480 via output device 2460.

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

Claims

1. A method for video processing, comprising: For the conversion between the current video block and the bitstream of the video, determine the block vector (BV) candidate of the current video block, which is associated with a reference block of the current video block; The validity of the BV candidate is determined based on at least one reconstructed sample point of the reference block and at least one unreconstructed sample point of the reference block; as well as The transformation is performed based on the validity of the BV candidates. The BV candidate is in at least one of the following encoding / decoding modes or encoding / decoding processes: Combined Intra-Block Copy and Intra-Prediction (IBC-CIIP) mode, Intra-Block Copy (IBC-GPM) mode with geometric segmentation mode, Intra-Block Copy (IBC-LIC) mode with local illumination compensation Direct Block Vector (DBV) mode Block Vector Difference (BVD) prediction process, or BVD symbol prediction process.

2. The method of claim 1, wherein the BV candidate is in the IBC-CIIP mode, and the BV candidate includes at least one of the following: IBC Advanced Motion Vector Prediction (AMVP) Candidates Search points based on IBC hashing Local search points based on IBC block matching IBC Merge Candidate IBC Template Matching™ AMVP Candidate IBC-TM AMVP refinement candidates during template matching process IBC-TM Merge candidate, During the template matching process, IBC-TM Merge refines the candidates. Basic BV candidates with block vector difference Merge mode (MBVD), MBVD candidates based on basic BV candidates and BVD, Reconstructed and reordered IBC (RR-IBC) AMVP candidates Search points based on RR-IBC hashing Local search points based on RR-IBC block matching RR-IBC Merge candidate Intra-frame template matching prediction (TMP) search point, or Another BV candidate.

3. The method of claim 1, wherein the BV candidate is in the IBC-GPM mode, and the BV candidate includes at least one of the following: IBC Advanced Motion Vector Prediction (AMVP) Candidates Search points based on IBC hashing Local search points based on IBC block matching IBC Merge Candidate IBC Template Matching™ AMVP Candidate IBC-TM AMVP refinement candidates during template matching process IBC-TM Merge candidate, During the template matching process, IBC-TM Merge refines the candidates. Basic BV candidates with block vector difference Merge mode (MBVD), MBVD candidates based on basic BV candidates and BVD, Reconstructed and reordered IBC (RR-IBC) AMVP candidates Search points based on RR-IBC hashing Local search points based on RR-IBC block matching RR-IBC Merge candidate Intra-frame template matching prediction (TMP) search point, or Another BV candidate.

4. The method of claim 1, wherein the BV candidate is in the IBC-LIC mode, and the BV candidate includes at least one of the following: IBC Advanced Motion Vector Prediction (AMVP) Candidates Search points based on IBC hashing Local search points based on IBC block matching IBC Merge Candidate IBC Template Matching™ AMVP Candidate IBC-TM AMVP refinement candidates during template matching process IBC-TM Merge candidate, During the template matching process, IBC-TM Merge refines the candidates. Basic BV candidates with block vector difference Merge mode (MBVD), MBVD candidates based on basic BV candidates and BVD, Reconstructed and reordered IBC (RR-IBC) AMVP candidates Search points based on RR-IBC hashing Local search points based on RR-IBC block matching RR-IBC Merge candidate Intra-frame template matching prediction (TMP) search point, or Another BV candidate.

5. The method of claim 1, wherein the BV candidate is in the DBV mode, and the BV candidate includes at least one of the following: The chromaticity BV determined in the DBV mode, The chromaticity BV is determined by scaling the luminance BV during the BV scaling process in the DBV mode, or The refined chroma BV in the DBV mode.

6. The method of claim 1, wherein the BV candidate is determined in at least one of the BVD prediction process or the BVD symbol prediction process, and the BV candidate is determined based on a combination of BV prediction (BVP) and candidate BVD symbols with absolute BVD.

7. The method of claim 1, wherein the BV candidate is determined in at least one of the BVD prediction process or the BVD symbol prediction process, and the BV candidate is determined based on a combination of BV prediction (BVP) and candidate BVD symbols and candidate absolute BVDs.

8. A method for video processing, comprising: For the conversion between the current video block and the bitstream of the video, a first block vector (BV) candidate for the current video block is determined. The first BV candidate is associated with a first reference block of the current video block, which includes at least one reconstructed sample and at least one unreconstructed sample in the current image. The first template matching process is applied to the first BV candidate, which is different from the second template matching process for the second BV candidate. The second reference block associated with the second BV candidate is completely reconstructed within the current image. as well as The conversion is performed based on the application. The first template matching process includes at least one of the following: a reordering process based on template matching, or a refinement process based on template matching.

9. The method of claim 8, wherein the template-matching-based reordering process comprises at least one of the following: Regular intra-block copy (IBC) Merge candidate reordering, IBC Template Matching (IBC-TM) Merge Candidate Reordering Conventional IBC Advanced Motion Vector Prediction (AMVP) Candidate Reordering IBC-TM AMVP candidate reordering Basic BV candidate reordering with block vector difference Merge pattern (MBVD) MBVD candidate reordering, or Another BV candidate list was reordered.

10. The method of claim 8, wherein the template-matching-based refinement process comprises at least one of the following: Intra-Block Copy (IBC) Template Matching (TM) Merge Candidate Refinement IBC™ Advanced Motion Vector Prediction (AMVP) Candidate Refinement, or Another BV candidate has been refined.

11. The method according to any one of claims 8 to 10, wherein during the first template matching process, the first template matching cost of the first BV candidate between the current template of the current video block and the reference template is adjusted based on a first factor for a codec mode, wherein the first factor is different from a second factor for another codec mode.

12. The method according to any one of claims 1 to 11, wherein the current video block or video unit comprises one of the following: Color components, Sub-images strips, piece, Code-decode tree unit (CTU) CTU line, CTU group Codec Unit (CU) Prediction Unit (PU) Transformer Unit (TU) Code-decoder tree block (CTB), Code block (CB) Predicted blocks (PB), Transform Block (TB) piece, sub-blocks of a block Sub-regions within a block, or A region containing more than one sample point or pixel.

13. The method according to any one of claims 1 to 12, wherein information about whether and / or how the method is applied is included in the bitstream.

14. The method of claim 13, wherein the information is indicated at one of the following levels: sequence level, picture group level, picture level, strip level, or slice group level.

15. The method of claim 13 or claim 14, wherein the information is indicated in a sequence header, a picture header, a sequence parameter set (SPS), a video parameter set (VPS), a decoding parameter set (DPS), decoding capability information (DCI), a picture parameter set (PPS), an adaptive parameter set (APS), a strip header, or a slice header.

16. The method according to any one of claims 13 to 15, wherein the information is indicated in a region containing more than one sample point or pixel.

17. The method of claim 16, wherein the region comprises 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, strip, slice, sub-picture.

18. The method according to any one of claims 13 to 17, wherein the information is based on encoded or decoded information.

19. The method of claim 18, wherein the encoded / decoded information includes at least one of the following: encoding / decoding mode, block size, color format, single-tree segmentation or dual-tree segmentation, color components, stripe type or image type.

20. The method according to any one of claims 1 to 19, wherein the conversion comprises encoding the current video block into the bitstream.

21. The method according to any one of claims 1 to 19, wherein the conversion comprises decoding the current video block from the bitstream.

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

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

24. A non-transitory computer-readable recording medium storing a bitstream of video generated by a method performed by means of a video processing apparatus, wherein the method includes: Determine block vector (BV) candidates for the current video block of the video, the BV candidates being associated with a reference block of the current video block; The validity of the BV candidate is determined based on at least one reconstructed sample point of the reference block and at least one unreconstructed sample point of the reference block; as well as The bitstream is generated based on the validity of the BV candidates. The BV candidate is in at least one of the following encoding / decoding modes or encoding / decoding processes: Combined Intra-Block Copy and Intra-Prediction (IBC-CIIP) mode, Intra-Block Copy (IBC-GPM) mode with geometric segmentation mode, Intra-Block Copy (IBC-LIC) mode with local illumination compensation Direct Block Vector (DBV) mode Block Vector Difference (BVD) prediction process, or BVD symbol prediction process.

25. A method for storing a bitstream of video, comprising: Determine block vector (BV) candidates for the current video block of the video, the BV candidates being associated with a reference block of the current video block; The validity of the BV candidate is determined based on at least one reconstructed sample point of the reference block and at least one unreconstructed sample point of the reference block; The bit stream is generated based on the validity of the BV candidates; as well as The bitstream is stored in a non-transitory computer-readable recording medium. The BV candidate is in at least one of the following encoding / decoding modes or encoding / decoding processes: Combined Intra-Block Copy and Intra-Prediction (IBC-CIIP) mode, Intra-Block Copy (IBC-GPM) mode with geometric segmentation mode, Intra-Block Copy (IBC-LIC) mode with local illumination compensation Direct Block Vector (DBV) mode Block Vector Difference (BVD) prediction process, or BVD symbol prediction process.

26. A non-transitory computer-readable recording medium storing a bitstream of video generated by a method performed by means of a video processing apparatus, wherein the method includes: A first block vector (BV) candidate for the current video block is determined, the first BV candidate being associated with a first reference block of the current video block, the first reference block including at least one reconstructed sample point in the current image and at least one unreconstructed sample point in the current image; The first template matching process is applied to the first BV candidate, which is different from the second template matching process for the second BV candidate. The second reference block associated with the second BV candidate is completely reconstructed within the current image. as well as The bitstream is generated based on the application. The first template matching process includes at least one of the following: a reordering process based on template matching, or a refinement process based on template matching.

27. A method for storing a bitstream of video, comprising: A first block vector (BV) candidate for the current video block is determined, the first BV candidate being associated with a first reference block of the current video block, the first reference block including at least one reconstructed sample point in the current image and at least one unreconstructed sample point in the current image; The first template matching process is applied to the first BV candidate, which is different from the second template matching process for the second BV candidate. The second reference block associated with the second BV candidate is completely reconstructed within the current image. The bitstream is generated based on the application. as well as The bitstream is stored in a non-transitory computer-readable recording medium. The first template matching process includes at least one of the following: a reordering process based on template matching, or a refinement process based on template matching.