Method and device for video processing and medium

By introducing a block vector prediction method guided by sub-blocks, the problem of insufficient encoding and decoding efficiency in existing video encoding and decoding technologies is solved, and more efficient encoding and decoding effects are achieved.

CN121925846APending Publication Date: 2026-04-24DOUYIN VISION CO LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
DOUYIN VISION CO LTD
Filing Date
2024-09-27
Publication Date
2026-04-24

AI Technical Summary

Technical Problem

The efficiency of existing video encoding and decoding technologies needs to be further improved.

Method used

The SbBVGBVP method, which uses sub-block-based block vector guidance, improves encoding and decoding efficiency and effectiveness by determining the first block vector offset and guiding BV of the current video block.

Benefits of technology

It improves the efficiency and effectiveness of video encoding and decoding.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121925846A_ABST
    Figure CN121925846A_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure provide a solution for video processing. A method for video processing is presented. In one method, for a transition between a current video block of a video and a bitstream of the video, a boot block vector (BV) is determined based on a first BV shift of the current video block. A subblock-based block vector guided block vector prediction (SbBVGBVP) for the current video block is determined based on the guide BV. The conversion is performed based on the SbBVGBVP.
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 sub-block-based block vector guided block vector prediction (SbBVGBVP). 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 Multi-Functional Video Codec (VVC) standard. However, the encoding and decoding efficiency of video encoding and decoding technologies is generally expected to be further improved. 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: for a conversion between a current video block and a video bitstream, determining a guiding BV based on the first block vector (BV) shift of the current video block; determining a sub-block-based block vector guided block vector prediction (SbBVGBVP) for the current video block based on the guiding BV; and performing a conversion based on the SbBVGBVP. The method according to the first aspect of this disclosure enables SbBVGBVP, thereby improving encoding / decoding efficiency and / or encoding / decoding effectiveness.

[0005] In a second aspect, an apparatus for video processing is provided. 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 the method according to the first aspect of this disclosure.

[0006] In a third aspect, a non-transitory computer-readable storage medium is proposed. This non-transitory computer-readable storage medium stores instructions that cause a processor to perform the method according to the first aspect of this disclosure.

[0007] In a fourth 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 guiding BV based on a first block vector (BV) shift of a current video block; determining an SbBVGBVP of the current video block based on the guiding BV; and generating a bitstream based on the SbBVGBVP.

[0008] In the fifth aspect, a method for storing a bitstream of video is proposed. The method includes: determining a leading BV based on the first BV shift of the current video block; determining the SbBVGBVP of the current video block based on the leading BV; generating a bitstream based on the SbBVGBVP; and storing the bitstream in a non-transitory computer-readable recording medium.

[0009] This summary aims to present, in a simplified form, the selected concepts further described below in the detailed embodiments. This summary 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

[0010] 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.

[0011] Figure 1 A block diagram of an example video codec system according to some embodiments of the present disclosure is shown; Figure 2 A block diagram of a first example video encoder according to some embodiments of the present disclosure is shown; Figure 3 A block diagram of an example video decoder according to some embodiments of the present disclosure is shown; Figure 4 The spatial proximity locations used in IBC vector prediction are shown; Figure 5 The current CTU processing order and its available reference points in the current CTU and the left CTU are shown; Figure 6 This shows the spatial proximity locations used in the construction of the IBC Merge / AMVP list; Figure 7 The filling candidates for replacing the zero vector in the IBC list are shown; Figure 8 The IBC reference area is shown, depending on the current CU location; Figure 9 This shows the reference region for IBC when CTU(m, n) is encoded and decoded. Dark gray blocks represent the current CTU; light gray blocks represent the reference region; and white blocks represent invalid reference regions. 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; Figure 11The intra-frame template matching search area used is shown; Figure 12 This demonstrates the use of IntraTMP block vectors for IBC blocks; Figure 13 Examples are shown of candidate lists of IBC block vectors that exist for (a) only IBC block vectors and (b) both IBC block vectors and IntraTMP block vectors; Figure 14 Reference sample points of the template are shown in the template and reference image; Figure 15 The template and reference sample points of the template are shown for a block with sub-block motion information using the current block; Figure 16 The locations of the spatial merge candidates are shown; Figure 17 The candidate pairs considered for redundancy checks of spatial merge candidates are shown. Figure 18 A schematic diagram of motion vector scaling for temporal Merge candidates is shown; Figure 19 The candidate positions, C0 and C1, for the time-domain Merge candidate are shown; Figure 20 The spatial neighboring blocks used to derive spatial merge candidates are shown; Figure 21A This shows the spatial neighbor blocks used by ATVMP; Figure 21B A schematic diagram is shown to derive the motion field of a sub-CU by applying motion displacements from spatial neighbors and scaling motion information from the corresponding co-located sub-CUs. Figure 22 The non-adjacent spatial domain candidates for the IBC mode are shown; Figure 23 This illustrates BV prediction guided by block vectors; Figure 24 It shows the adjacent locations of neighboring airspace; Figure 25 B is shown n The five positions in the middle; Figure 26 The diagram illustrates the derivation of the sub-block BV motion field from the corresponding sub-block by applying the BV displacement derived from the spatial nearest neighbor. Figure 27 A flowchart of a method for video processing according to embodiments of the present disclosure is shown; and Figure 28 A block diagram of a computing device in which various embodiments of the present disclosure may be implemented is shown.

[0012] In all the accompanying drawings, the same or similar reference numerals generally denote the same or similar elements. Detailed Implementation

[0013] 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.

[0014] 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.

[0015] 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. Additionally, when a specific feature, structure, or characteristic is described in conjunction with an example embodiment, whether explicitly described or not, it is believed that such a feature, structure, or characteristic affecting its relation to other embodiments is within the knowledge of those skilled in the art.

[0016] It should be understood that although the terms “first” and “second”, etc., can be used 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 any and all combinations of one or more of the listed terms.

[0017] 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,” “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.

[0018] Example Environment Figure 1This 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.

[0019] 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.

[0020] 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 coded representation of the video data. The bitstream may include coded images and associated data. A coded image is a coded representation of an image. 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 may 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.

[0021] 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.

[0022] 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.

[0023] Figure 2This 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.

[0024] 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.

[0025] 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.

[0026] 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, where at least one reference picture is the picture in which the current video block is located.

[0027] 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 2 The examples are shown separately.

[0028] 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.

[0029] The mode selection unit 203 can select one of several codec modes (intra-frame codec or inter-frame codec) based, for example, on the error result, 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, where 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 the motion vector (e.g., sub-pixel precision or integer pixel precision).

[0030] 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.

[0031] 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 that do not depend on macroblocks within the same image.

[0032] 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 containing the reference video block in list 0 or list 1, and a motion vector indicating the spatial displacement between the current video block and 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.

[0033] 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.

[0034] 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.

[0035] In one example, motion estimation unit 204 may indicate a value to 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.

[0036] 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.

[0037] 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.

[0038] 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.

[0039] 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.

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

[0041] 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.

[0042] 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.

[0043] 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.

[0044] 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.

[0045] 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.

[0046] 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.

[0047] The video decoder 300 can be configured to perform any or all of the technologies disclosed herein. Figure 3 In 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.

[0048] 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.

[0049] 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, including 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 involves deriving several most likely candidates based on data from adjacent PBs and reference pictures. Motion information typically includes horizontal 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 adjacent blocks.

[0050] The motion compensation unit 302 can generate motion compensation blocks and can perform interpolation based on an interpolation filter. The identifier of the interpolation filter to be used, with sub-pixel accuracy, can be included in the syntax element.

[0051] 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 interpolation 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.

[0052] Motion compensation unit 302 may use at least some of the syntax information to determine the size of the blocks used to encode (multiple) frames and / or (multiple) stripes of 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 the entire image or a region of the image.

[0053] 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.

[0054] 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.

[0055] 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 specific embodiments have been 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 should be understood that the decoder will implement the corresponding decoding steps to undo the encoding and decoding. Additionally, the term "video processing" includes video encoding and decoding or compression, video decoding or decompression, and video transcoding, wherein video pixels are represented from one compression format to another compression format or at different compression bit rates.

[0056] 1. Brief Overview This disclosure relates to image / video codecs, particularly to block vector prediction guided by block vectors. It can be applied to existing video codec standards such as HEVC or standard VVC (Video Codec for Multifunction). It can also be applied to future video codec standards or video codecs.

[0057] 2. Introduction Video codec standards have primarily evolved through the development of well-known ITU-T and ISO / IEC standards. ITU-T developed the H.261 and H.263 standards, while ISO / IEC developed MPEG-1 and MPEG-4 vision standards. These two organizations jointly developed the H.262 / MPEG-2 video standard, the H.264 / MPEG-4 Advanced Video Coding (AVC) standard, and the H.265 / HEVC standard. Starting with H.262, video codec standards are based on a hybrid video codec architecture, utilizing temporal prediction plus transform coding.

[0058] To explore future video codec technologies beyond HEVC, the Joint Video Exploration Team (JVET) was jointly established by VCEG and MPEG in 2015. JVET meetings are held quarterly. The new video codec standard was officially named Multifunctional Video Codec (VVC) at the April 2018 JVET meeting, and the first version of the VVC Test Model (VTM) was also released at that time. The VVC working draft and the VTM test model are updated after each meeting. The VVC project achieved Technical Completeness (FDIS) at the July 2020 meeting.

[0059] In January 2021, JVET established the Exploration Experiment (EE), aiming to achieve enhanced compression efficiency beyond VVC capabilities 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.

[0060] 2.1. Intra-Block Copy (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 a CU encoded with IBC is integer precise. 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. CUs encoded with IBC are considered a third prediction mode, distinct from intra-prediction mode or inter-prediction mode. IBC mode is suitable for CUs with a width and height of 64 luma samples or less.

[0061] On the encoder side, hash-based motion estimation for IBC 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.

[0062] 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.

[0063] In block matching search, the search scope is set to cover both the previous CTU and the current CTU.

[0064] At the CU level, the IBC mode is transmitted via signaling using a flag, and it can be transmitted via signaling as IBCAMVP 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.

[0065] – 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.

[0066] 2.1.1. Simplification of IBC Vector Prediction The BV predictions of the 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, B1 in the text) • 5 HMVP entries; • The default value is zero vector.

[0067] 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 requirements (the same list within the shared SMR).

[0068] 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 64x64 lumen sample unit.

[0069] 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 64x64 block of the current CTU, then in addition to the already reconstructed samples in the current CTU, the CPR mode can be used to reference the reference samples in the bottom-right 64x64 block of the left CTU. The current block can also use the CPR mode to reference the reference samples in the bottom-left 64x64 block of the left CTU and the reference samples in the top-right 64x64 block of the left CTU.

[0070] – If the current block falls within the upper right 64x64 block of the current CTU, then in addition to the already reconstructed samples 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 use CPR mode to reference the reference samples in the lower left and lower right 64x64 blocks of the left CTU; otherwise, the current block can also reference the reference samples in the lower right 64x64 block of the left CTU.

[0071] – If the current block falls within the lower-left 64x64 block of the current CTU, then in addition to the already reconstructed samples 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 use CPR mode to reference reference samples in the upper-right and lower-right 64x64 blocks of the left CTU. Otherwise, the current block can also use CPR mode to reference reference samples in the lower-right 64x64 block of the left CTU.

[0072] – If the current block falls within the bottom right 64x64 block of the current CTU, it can only use CPR mode to refer to the already reconstructed sample in the current CTU.

[0073] This restriction allows for the use of local on-chip memory to implement IBC mode for hardware implementations.

[0074] 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.

[0075] – IBC cannot be used in combination with the following inter-frame tools: affine motion, CIIP, MMVD, and GPM.

[0076] – When using DUAL_TREE segmentation, IBC is not allowed for chroma codec blocks.

[0077] 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 the 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 the same process as pairwise Merge candidates and historical motion predictions, but does not allow TMVP and zero vectors because they are invalid for IBC mode.

[0078] – Separate HMVP caches (5 candidates each) are used for regular MV and IBC.

[0079] – Block vector constraints are implemented in the form of bitstream consistency constraints. The encoder needs to ensure that no invalid vectors exist in the bitstream, and if a Merge candidate is invalid (out of range or 0), then the Merge should not be used. As described below, such bitstream consistency constraints are expressed based on virtual buffers.

[0080] – For deblocking, IBC is processed as an inter-frame mode.

[0081] – 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.

[0082] – The number of IBC Merge candidates can be transmitted separately in the strip header from the number of regular candidates, sub-block candidates, and geometric Merge candidates.

[0083] 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 = 128x128 / ctbSize and a height hIbcBuf = ctbSize. For example, for a CTU size of 128x128, the size of ibcBuf is also 128x128; for a CTU size of 64x64, the size of ibcBuf is 256x64; and for a CTU size of 32x32, the size of ibcBuf is 512x32.

[0084] The size of the VPDU is min(ctbSize, 64) in each dimension, W v =min(ctbSize, 64).

[0085] The virtual IBC cache ibcBuf is maintained as follows.

[0086] – At the beginning of decoding each CTU line, refresh the entire ibcBuf with an invalid value of -1.

[0087] – 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.

[0088] – 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 ].

[0089] For a block covering coordinates (x, y), if for the block vector bv = (bv, bv) If the following are true, then it is valid; otherwise, it is invalid: ibcBuf[ (x + bv)% wIbcBuf] [ (y + bv) % 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.

[0090] – 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) should not be equal to -1.

[0091] Otherwise, bvL is considered invalid bv.

[0092] Samples are processed in units of CTB. Each luminance CTB has an array size of CtbSizeY in both width and height, where CtbSizeY is in units of samples.

[0093] – (xCb, yCb) is the brightness position of the top-left sample of the current luma codec block relative to the top-left luma 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.

[0094] 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.

[0095] • Candidate airspace for the upper right, lower left, and upper left (e.g.) Figure 6 The candidates shown (B0, A0, and B2) and a pairwise average candidate can be added to the IBC Merge / AMVP candidate list.

[0096] • Template-based adaptive reordering (ARMC-TM) is applied to the IBC Merge list.

[0097] The HMVP table size for IBC is increased to 25. After deriving a maximum of 20 IBC Merge candidates through complete 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.

[0098] The zero vector candidate used to populate the IBC Merge / AMVP list is replaced with a set of BVP candidates located in the IBC reference region. The zero vector is invalid as a block vector in the IBC Merge mode, and therefore, it is discarded as a BVP in the IBC candidate list.

[0099] 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), as follows. Figure 7 As shown, its coordinates are determined by the width and height of the current block, as well as the ΔX and ΔY parameters.

[0100] 2.3. IBC with Template Matching Template matching is used in both the IBC Merge mode and the IBC AMVP mode in IBC.

[0101] Compared to the regular IBC Merge mode, the IBC-TM Merge list is modified so that candidates are selected based on a deduplication method, which has a motion distance between the candidates and those in the regular TM Merge mode. The ending zero motion is replaced by motion vectors to the left (-W, 0), above (0, -H), and upper left (-W, -H), where W is the width of the current CU and H is the height of the current CU.

[0102] In IBC-TM Merge mode, the selected candidate is refined using a template matching method before the RDO or decoding process. IBC-TM Merge mode competes with the regular IBC Merge mode, and the TM-Merge flag is transmitted via signaling.

[0103] In the IBC-TM AMVP mode, up to three candidates are selected from the IBC-TM Merge list. Each of these three selected candidates is refined using a template matching method and ranked according to the template matching cost it produces. Then, typically only the first two are considered in the motion estimation process.

[0104] Since the IBC motion vector is constrained to be (i) an integer and (ii) as... Figure 8Within the reference area shown, template matching and refinement for both IBC-TM Merge and AMVP modes is relatively straightforward. Therefore, in IBC-TM Merge mode, all refinements are performed with integer precision, and in IBC-TM AMVP mode, they are performed with either integer precision or 4-pixel precision, depending on the AMVR value. Such refinement only accesses samples that are not interpolated. In both cases, the motion vectors for refinement and the template used in each refinement step must adhere to the constraints of the reference area.

[0105] 2.4. IBC Reference Area The IBC reference area is extended to the two CTU rows above. Figure 9 The reference region used for encoding / decoding CTUs (m, n) is shown. Specifically, for a CTU (m, n) to be encoded / decoded, the reference region includes CTUs indexed as (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] and vertical [-C, C>>2] to accommodate the reference region expansion, where C represents the CTU size.

[0106] 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.

[0107] Two flipping methods are supported for blocks encoded with RR-IBC: horizontal flipping and vertical flipping. Syntax flags are first signaled for blocks encoded with IBC AMVP, indicating whether the reconstruction has been flipped. If it has been flipped, another flag is further signaled specifying the flipping type. For IBC Merge, the flipping type is inherited from the neighboring block, with no syntax signaling. Considering horizontal or vertical symmetry, the current block and the 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.

[0108] To better utilize symmetry, a flip-aware BV adjustment method is applied to refine block vector candidates. For example, as Figure 7 A and Figure 7 As shown in B, ( x nbr , y nbr )and( x cur , y cur () represents the coordinates of the center sample points of the neighboring blocks and the current block, respectively. BV nbr and BV cur These represent the BV of the neighboring block and the current block, respectively. This is relevant when the neighboring block is encoded and decoded using a horizontal flipping method. BV cur The horizontal component is transmitted through the direction of BV nbr The horizontal component (represented as) BV nbr h The added motion displacement is calculated, that is, 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 through the direction BV nbr The vertical component (represented as) BV nbr v The added motion displacement is calculated, that is, BV cur v =2( y nbr - y cur ) + BV nbr v . Figure 10A A schematic diagram of BV adjustment for horizontal flipping is shown; and Figure 10B A schematic diagram of BV adjustment for vertical flipping is shown.

[0109] 2.6. IBC Merge Mode with Block Vector Difference (IBC-MBVD) Affine-MMVD and GPM-MMVD have already been adopted in ECM as extensions to the regular MMVD mode. Extending the MMVD mode to the IBC Merge mode is a natural progression.

[0110] 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.

[0111] The basic candidate is selected from the top five candidates in the reordered IBC Merge list. All possible MBVD refinement positions (20×4) for each basic candidate are reordered based on the SAD cost between the template (the row above and 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 reserved as available positions and thus used for MBVD index encoding and decoding. The MBVD index is binarized using rice codes with a parameter equal to 1.

[0112] Blocks encoded and decoded by IBC-MBVD do not inherit the flip type from neighboring blocks encoded and decoded by RR-IBC.

[0113] 2.7. Intra-frame template matching Intra-Template Matching Prediction (Intra TMP) is a special intra-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 signal transmission and performs the same prediction operation on the decoder side.

[0114] The prediction signal is obtained by comparing the L-shaped causal nearest neighbors of the current block with... Figure 11 Another match within a predefined search region is generated, which includes: R1: Current CTU; R2: Top left CTU; R3: Above CTU; R4: Left CTU.

[0115] The sum of absolute differences (SAD) is used as the cost function.

[0116] 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.

[0117] 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.

[0118] in" " is a constant that controls the trade-off between gain and complexity. In practice, " "Equals 5."

[0119] Enable intra-frame template matching for CUs with a width and height less than or equal to 64. The maximum CU size for intra-frame template matching is configurable.

[0120] 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.

[0121] 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.

[0122] Figure 13 An example is shown comparing block vector candidates from the IBC block vector candidate list that are only IBC-coded neighboring blocks, and block vector candidates from the proposed IBC block vector candidate list that are both IBC-coded neighboring blocks and IntraTMP-coded neighboring blocks. IntraTMP block vectors are added to the IBC block vector candidate list as spatial domain candidates.

[0123] 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.

[0124] 2.9. Adaptive Reordering of Merge Candidates Using Template Matching (ARMC-TM) Merge candidates are adaptively reordered using template matching (TM). The reordering method is applied to the regular Merge pattern, TM Merge pattern, and affine Merge pattern (excluding SbTMVP candidates). For the TM Merge pattern, Merge candidates are reordered before the refinement process.

[0125] The initial Merge candidate list is first constructed according to a given inspection order, such as spatial candidates, TMVP candidates, non-adjacent candidates, HMVP candidates, paired candidates, and virtual Merge candidates. Then, the candidates in the initial list are divided into several subgroups. For Template Matching (TM) Merge mode and Adaptive DMVR mode, each Merge candidate in the initial list is first refined using TM / multi-pass DMVR. The Merge candidates in each subgroup are reordered to generate a reordered Merge candidate list, and the reordering is based on the cost value of template matching. The index of the selected Merge candidate in the reordered Merge candidate list is signaled to the decoder. For simplicity, the Merge candidates in the last subgroup (not the first subgroup) are not reordered. During the construction of the Merge motion vector candidate list, all zero candidates from the ARMC reordering process are excluded. For the regular Merge mode and TM Merge mode, the subgroup size is set to 5. For the affine Merge mode, the subgroup size is set to 3.

[0126] • Cost Calculation During the reordering process, the template matching cost of the merge candidate is measured by the SAD between the samples of the current block's template and their corresponding reference samples. The template includes a set of reconstructed samples adjacent to the current block. The reference samples of the template are located using the motion information of the merge candidate. When the merge candidate utilizes bidirectional prediction, the reference samples of the merge candidate's template are also generated through bidirectional prediction, such as... Figure 14 As shown.

[0127] • Refinement of the initial Merge candidate list When multi-pass DMVR is used to derive refined motion for the initial Merge candidate list, only the first pass of the multi-pass DMVR (i.e., PU level) is applied to the reordering. When template matching is used to derive refined motion, the template size is set to 1. When the block is a flat block with a width greater than twice its height or a narrow block with a height greater than twice its width, only the top or left template is used during TM motion refinement. TM is expanded to perform 1 / 16 pixel MVD precision. The first four Merge candidates are reordered using refined motion in TM Merge mode.

[0128] For sub-block-based merge candidates with a sub-block size equal to Wsub × Hsub, the upper template includes several sub-templates of size Wsub × 1, and the left template includes several sub-templates of size 1 × Hsub. For example... Figure 15 As shown, the motion information of the sub-blocks in the first row and first column of the current block is used to derive the reference sample points of each sub-template.

[0129] • Reordering criteria During the reordering process, if the cost difference between a candidate and its predecessor is less than λ, for example, |D1-D2|<λ (where D1 and D2 are the costs obtained during the first ARMC sorting, and λ is the Lagrange parameter used in the RD standard on the encoder side), the candidate is considered redundant.

[0130] The proposed algorithm is defined as follows: - Determine the minimum cost difference between a candidate and its predecessor among all candidates in the list.

[0131] If the minimum cost difference is greater than or equal to λ, the list is considered sufficiently different, and reordering stops.

[0132] If the minimum cost difference is less than λ, the candidate is considered redundant and is moved to another position in the list. This other position is the first position that is sufficiently different from the candidate preceding it.

[0133] - After a finite number of iterations, the algorithm stops (if the minimum cost difference is not less than λ).

[0134] This algorithm has been applied to regular, TM, BM, and affine Merge modes. Similar algorithms have been applied to Merge MMVD and Symbolic MVD prediction methods that also use ARMC for reordering.

[0135] The value of λ is set to be equal to the rate-distortion criterion λ used to select the best Merge candidate on the encoder side in a low-latency configuration, and equal to the value λ corresponding to another QP in a random access configuration. For QP offsets that are not present in the SPS, a set of λ values ​​corresponding to each QP offset transmitted through the signal is provided in the SPS or strip header.

[0136] • Extend to AMVP mode The ARMC design also applies to the AMVP mode, where AMVP candidates are reordered based on TM costs. For the Template Matching (TM-AMVP) mode for advanced motion vector prediction, an initial AMVP candidate list is constructed, followed by refinement from the TM to build a refined AMVP candidate list. Additionally, MVP candidates with TM costs greater than a threshold (which is equal to five times the cost of the first MVP candidate) are skipped.

[0137] Note that when surround motion compensation is enabled, the MV candidate must be clipped to account for surround offset.

[0138] 2.10. Extended Merge Forecast In VVC, the Merge candidate list is constructed by including the following five types of candidates in sequence: 1) Airspace MVP from adjacent CUs in airspace, 2) Temporal MVP from the same CU, 3) Historical MVP from FIFO table 4) Paired average MVP 5) Zero MV.

[0139] The size of the merge list is transmitted via signaling in the sequence parameter set header, and the maximum allowed size of the merge list is 6. For each CU encoding / decoding in merge mode, the index of the best merge candidate is encoded using rounded unary binarization (TU). The first bit of the merge index is encoded / decoded using the context, and bypass encoding / decoding is used for the other bits.

[0140] This section provides the derivation process for various merge candidates. Similar to HEVC, VVC also supports parallel derivation of the merge candidate list for all CUs within a region of a specific size.

[0141] 2.10.1. Derivation of Airspace Candidates The derivation of spatial merge candidates in VVC is the same as that in HEVC, except that the positions of the first two merge candidates are swapped. Figure 16 Of the candidates at the indicated positions, a maximum of four Merge candidates are selected. The derivation order is B. 1, A 1, B 0,A0 and B2. Position B2 is considered only when one or more CUs at positions B0, A0, B1, and A1 are unavailable (e.g., because it belongs to another stripe or slice) or during intra-frame encoding / decoding. After adding candidates at position B1, a redundancy check is performed on the addition of the remaining candidates. This redundancy check ensures that candidates with the same motion information are excluded from the list, thereby improving encoding / decoding efficiency. To reduce computational complexity, not all possible candidate pairs are considered in the aforementioned redundancy check. Instead, only... Figure 17 The system uses arrow links to select pairs, and only adds candidates to the list if the corresponding candidates used for redundancy checks do not have the same motion information.

[0142] 2.10.2. Time-domain candidate derivation In this step, only one candidate is added to the list. Specifically, in the derivation of this temporal merge candidate, the scaled motion vector is derived based on the co-located CU belonging to the co-located reference image. The list of reference images to be used for the derivation of the co-located CU and the reference indices are explicitly transmitted via signal transmission in the strip header. Figure 18 As shown by the dashed lines, the scaled motion vectors of the temporal merge candidate are obtained by scaling the motion vectors of the co-located CU using the POC distances tb and td, where tb is defined as the POC difference between the current image and the reference image, and td is defined as the POC difference between the co-located reference image and the co-located image. The reference image index of the temporal merge candidate is set to 0.

[0143] like Figure 19 As shown, the position for the temporal candidate is selected between candidate C0 and C1. If the CU at position C0 is unavailable, intra-frame encoded, or outside the current line of the CTU, position C1 is used. Otherwise, position C0 is used for the derivation of the temporal merge candidate.

[0144] 2.10.3. Historical Merge Candidate Derivation Historically based MVP (HMVP) merge candidates are added to the merge list, following the spatial MVP and TMVP. In this method, motion information from previously encoded / decoded blocks is stored in a table and used as the MVP for the current CU. The table with multiple HMVP candidates is maintained during the encoding / decoding process. The table is reset (cleared) when a new CTU row is encountered. Whenever a non-sub-block inter-frame encoding / decoding CU is present, the associated motion information is added to the last entry of the table as a new HMVP candidate.

[0145] HMVP Table Size SSetting it to 6 indicates that a maximum of 5 history-based MVP (HMVP) candidates can be added to the table. When a new motion candidate is inserted into the table, a constrained First-In-First-Out (FIFO) rule is used, where a redundancy check is first applied to find if a duplicate HMVP already exists in the table. If found, the duplicate HMVP is removed from the table, and all subsequent HMVP candidates are shifted forward, with the duplicate HMVP inserted as the last entry in the table.

[0146] HMVP candidates can be used in the Merge candidate list construction process. The latest HMVP candidates in the table are checked sequentially and inserted into the candidate list after the TMVP candidates. Redundancy checks are applied to HMVP candidates and spatial or temporal Merge candidates.

[0147] To reduce the number of redundant check operations, the following simplifications are introduced: 1. The last two entries in the table are checked for redundancy with the A1 and B1 airspace candidates, respectively.

[0148] 2. Once the total number of available Merge candidates reaches the maximum allowed Merge candidates minus 1, the Merge candidate list building process from HMVP is terminated.

[0149] 2.10.4. Derivation of Pairwise Average Merge Candidates Pairwise averaging candidates are generated by averaging predefined candidate pairs in the existing Merge candidate list using the first two Merge candidates. The first Merge candidate is defined as p0Cand, and the second Merge candidate can be defined as p1Cand. For each reference list, the averaged motion vector is calculated separately based on the availability of motion vectors for p0Cand and p1Cand. If both motion vectors are available in a list, they are averaged even if they point to different reference images, and their reference image is set to the reference image of p0Cand; if only one motion vector is available, that motion vector is used directly; if no motion vector is available, the list remains invalid. Furthermore, if the half-pixel interpolation filter indices of p0Cand and p1Cand are different, they are set to 0.

[0150] If the Merge list is not full after adding pairwise average Merge candidates, a zero MVP will be inserted at the end until the maximum number of Merge candidates is reached.

[0151] 2.10.5. Merge estimation region The Merge Estimation Region (MER) allows for the independent derivation of Merge candidate lists for CUs within the same Merge Estimation Region (MER). Candidate blocks located within the same MER as the current CU are not included in the generation of the Merge candidate list for the current CU. Furthermore, the update process for the historical motion vector prediction candidate list is only updated when (xCb + cbWidth) >> Log2ParMrgLevel is greater than xCb >> Log2ParMrgLevel and (yCb + cbHeight) >> Log2ParMrgLevel is greater than (yCb >> Log2ParMrgLevel), where (xCb, yCb) is the top-left brightness sample position of the current CU in the image, and (cbWidth, cbHeight) is the CU size. The MER size is selected on the encoder side and is transmitted via signaling as log2_parallel_merge_level_minus2 in the sequence parameter set.

[0152] 2.10.6. Non-adjacent airspace candidates In ECM, non-adjacent airspace merge candidates are inserted after the TMVP in the regular merge candidate list. The style of airspace merge candidates is as follows: Figure 20 The distance between non-adjacent spatial domain candidates and the current codec block is shown in the diagram. The distance between these candidates and the current codec block is based on the width and height of the current codec block. Line buffer limits are not applied.

[0153] 2.10.7. ARMC Based on MV Candidate Types Merge candidates for a single candidate type (e.g., TMVP or Non-Adjacent MVP (NA-MVP)) are reordered based on ARMC™ arithmetic values. The reordered candidates are then added to the Merge candidate list. For the TMVP candidate type, more TMVP candidates with more temporal locations and different inter-frame prediction directions are added to perform reordering and selection. Furthermore, the NA-MVP candidate type is further expanded using more spatially non-adjacent locations. The target reference image for a TMVP candidate can be selected from any reference image in the list based on a scaling factor. The selected reference image is the one with a scaling factor closest to 1.

[0154] 2.11. Sub-block-based temporal motion vector prediction (SbTMVP) VVC supports a sub-block-based temporal motion vector prediction (SbTMVP) method. Similar to temporal motion vector prediction (TMVP) in HEVC, SbTMVP uses the motion field in the co-image to improve motion vector prediction and merge patterns for CUs in the current image. The same co-image used by TMVP is used for SbTVMP. SbTMVP differs from TMVP in two main aspects: – TMVP predicts motion at the CU level, but SbTMVP predicts motion at the sub-CU level; – TMVP obtains temporal motion vectors from co-op blocks in the co-op image (the co-op block is the lower right or center block relative to the current CU), and SbTMVP applies motion displacement before obtaining temporal motion information from the co-op image, where the motion displacement is obtained from the motion vector of one of the spatial neighboring blocks from the current CU.

[0155] The SbTVMP process in Figure 18 As shown in A and 18B. SbTMVP predicts the motion vectors of sub-CUs within the current CU in two steps. In the first step, it examines... Figure 21A The spatial nearest neighbor A1 is selected. If A1 has a motion vector that uses a co-located image as its reference image, then that motion vector is chosen as the motion displacement to be applied. If no such motion is identified, the motion displacement is set to (0, 0).

[0156] In the second step, the motion displacement identified in step 1 is applied (i.e., added to the coordinates of the current block) to the position of the current block. Figure 21B The corresponding image shown obtains motion information (motion vectors and reference indices) at the sub-CU level. Figure 21B The example assumes the motion displacement is set to the motion of block A1. Then, for each sub-CU, the motion information of its corresponding block (the smallest motion grid covering the center sample) in the co-location image is used to derive the motion information for the sub-CU. After the motion information of the co-location sub-CU is identified, it is converted into the motion vector and reference index of the current sub-CU in a manner similar to the TMVP process of HEVC, where temporal motion scaling is applied to align the reference image of the temporal motion vector with the reference image of the current CU.

[0157] In VVC, a sub-block-based combined Merge list containing both SbTVMP candidates and affine Merge candidates is used for signaling in sub-block-based Merge mode. SbTVMP mode is enabled / disabled via the Sequence Parameter Set (SPS) flag. If SbTVMP mode is enabled, the SbTVMP prediction is added as the first entry in the sub-block-based Merge candidate list, followed by the affine Merge candidate. The size of the sub-block-based Merge list is transmitted via signaling in the SPS, and the maximum allowed size of the sub-block-based Merge list in VVC is 5.

[0158] The sub-CU size used in SbTMVP is fixed at 8x8, and like the affine Merge pattern, the SbTMVP pattern only applies to CUs with a width and height greater than or equal to 8.

[0159] The encoding logic for the additional SbTMVP Merge candidate is the same as that for other Merge candidates, that is, for each CU in the P-strip or B-strip, an additional RD check is performed to determine whether to use the SbTMVP candidate.

[0160] 2.12. IBC-CIIP, IBC-GPM and IBC-LIC 2.12.1. IBC-CIIP First Option Intra-Block Copy and Intra-Prediction Combination (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:

[0161] in 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 and decoded, then... It is set to (1,2) if either the top CU or the left CU is intra-coded. It is set to (2,2) if both the top CU and the left CU are encoded and decoded by IBC. It is set to equal to (3,2). Otherwise (i.e., if intra-frame prediction is in directional mode), the final prediction is obtained by adaptively switching the intra-frame mode and the prediction samples of IBC. For illustrative purposes, assume the current CU size is... Furthermore, the intra-frame mode is either horizontal or vertical. If both the upper neighboring CU and the left neighboring CU are intra-coded, then the final predicted left... Partial (horizontal mode) or above Partial (vertical mode) is set as the intra-predictive signal; and if only one of the upper CU and the left CU is intra-coded, the final predicted left CU will be... Partial (horizontal mode) or above Partial (vertical mode) is set to intra-frame prediction signal; and if both the upper CU and the left CU are encoded or inter-frame, the final predicted left CU... Partial (horizontal mode) or above A portion (vertical mode) is set as the intra-predicted signal. In the above, apart from the intra-predicted portion, the remaining portions of the final prediction are set as IBC prediction samples.

[0162] 2.12.2. IBC-CIIP Second Option Intra-Block Copy and Intra-Prediction Combination (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 shown below:

[0163] in This represents the IBC prediction signal and the intra-frame prediction signal. For IBC Merge mode and IBCAMVP mode, It was set to equal to (13,4) and (1,1).

[0164] 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.

[0165] 2.12.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. Predicted 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 geometric partitioning mode sets, as follows: Table 1: Geometric segmentation patterns in the first geometric segmentation pattern set

[0166] Table 2: Geometric segmentation patterns in the second geometric segmentation pattern set

[0167] When using IBC-GPM, the IBC-GPM geometric segmentation mode set flag is transmitted via signaling to indicate whether a first or second geometric segmentation mode set is selected, followed by the geometric segmentation mode index. The IBC-GPM intra-frame flag is transmitted via signaling to indicate whether intra-frame prediction is used for the first sub-segment. When intra-frame prediction is used for sub-segmentation, the intra-frame prediction mode index is transmitted via signaling. When IBC is used for sub-segmentation, the merge index is transmitted via signaling.

[0168] 2.12.4. IBC with local illumination compensation (IBC-LIC) Intra-Block Copy with Local Illumination Compensation (IBC-LIC) is an encoding / decoding tool that uses linear equations to compensate for local illumination variations within an image between an 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 equations is the same as that used for inter-frame prediction in LIC. IBC-LIC can be applied to both IBC AMVP and IBC Merge modes. For IBC AMVP mode, an IBC-LIC flag is transmitted via signaling to indicate the use of IBC-LIC. For IBC Merge mode, the IBC-LIC flag is inferred from the Merge candidate.

[0169] 2.13. IBCs with non-adjacent airspace candidates Several new candidate blocks obtained from the BV of non-adjacent spatial neighboring blocks are proposed for insertion into the candidate lists of IBC Merge mode and IBC AMVP. For example... Figure 22 As shown, a grid pattern similar to that used for non-adjacent spatial domain candidates in regular inter-frame connections is used to obtain non-adjacent BVs. The obtained BVs are inserted between adjacent spatial domain candidates and HBVP candidates for both IBC Merge and IBC AMVP. Additionally, the restriction that spatial domain candidates are not used to construct the IBC Merge candidate list for 4x4 CUs has been removed.

[0170] 2.14. Bidirectional Prediction of IBC GPM Bidirectional prediction IBC GPM uses different IBCs to generate prediction samples for two GPM segmentations. In bidirectional prediction IBC GPM, the core IBC GPM design (e.g., 48 GPM modes, IBC Merge candidate list) remains the same as the core IBC GPM design in unidirectional prediction IBC GPM in ECM-9.0. Here, unidirectional prediction IBC GPM uses both IBC and intra-frame modes to generate prediction samples for each GPM segment.

[0171] Only the signaling and hybrid scheme are slightly modified compared to the existing one-way prediction IBC GPM. For signaling, two flags are transmitted via signaling to indicate the two segmented prediction modes. For hybridization, the GPM adaptive hybridization used for inter-frame GPM is also used in the two-way prediction IBC GPM. 2.15. IBC BVP-Merge and Bidirectional Prediction IBC Merge Inspired by AMVP-Merge, IBC BVP-Merge derives two required BVs from IBC Block Vector Prediction (BVP) and IBC Merge. Unlike the AMVP-Merge model, two different indices for IBC BVP and IBC Merge candidates are transmitted from the encoder to the decoder via signaling.

[0172] Bidirectional predictive IBC Merge derives two BVs from an existing list of IBC Merge candidates using two different indices. These two indices are transmitted from the encoder to the decoder via a signal. The goal of bidirectional predictive IBC Merge is both IBC MBVD and IBC regular merge.

[0173] 2.16. Derivation of the IBC MBVD list The IBC MBVD list derivation allows for adaptive BVD offsets along the MBVD direction. Specifically, the MBVD candidate search is a two-step algorithm that first checks the template SAD cost of the offsets added to the BVD at M-pixel intervals along each direction. The second step of the search checks the template SAD cost of the intermediate candidates around the selected candidate. The candidate with the lowest TM cost is included in the final MBVD list.

[0174] 2.17. Multiple Hypothesis Prediction (MHP) In multi-hypothesis inter-frame prediction mode, in addition to the regular bidirectional prediction signal, one or more additional motion-compensated prediction signals are transmitted via signal transmission. The resulting overall prediction signal is obtained by weighted superposition of samples. Utilizing the bidirectional prediction signal... and the first additional inter-frame prediction signal / hypothesis The generated prediction signal The following was obtained: .

[0175] According to the following mapping, the weighting factor The new syntax element add_hyp_weight_idx specifies:

[0176] Similar to the above, more than one additional prediction signal can be used. The resulting overall prediction signal is iteratively accumulated with each additional prediction signal.

[0177] .

[0178] The resulting overall prediction signal is obtained as the last one. (i.e., has the largest index) Within this EE, a maximum of two additional prediction signals can be used (i.e., Limited to 2).

[0179] The motion parameters for each additional prediction hypothesis can be transmitted via signaling by explicitly specifying the reference index, motion vector prediction index, and motion vector difference, or by implicitly specifying the merge index. A separate multi-hypothesis merge flag distinguishes between these two signaling modes.

[0180] For inter-frame AMVP mode, MHP is applied only when unequal weights are selected in BCW in bidirectional prediction mode.

[0181] Combining MHP and BDOF is possible; however, BDOF is only applied to the bidirectional prediction signal portion of the predicted signal (i.e., the ordinary first two assumptions).

[0182] 3. Problem In current BV prediction (e.g., for both IBC Merge and IBC AMVP modes), block vector-guided BV prediction is not utilized. To further improve the efficiency of BV prediction, block vector-guided BV prediction has been introduced.

[0183] 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.

[0184] 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.

[0185] W and H are the width and height of the current block (e.g., the luminance block).

[0186] For blocks encoded and decoded by IBC 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 reconstructed or partially reconstructed within the current frame.

[0187] In the following text, BV candidates are BV predictions or search points. A block has BV information if it is encoded or decoded using IBC or intra-frame TMP.

[0188] It should be noted that the proposed method can also be applied to other encoding / decoding methods that may require the derivation of MV / BV.

[0189] In one example, assume the block vector BV associated with the current block B0. 0,1 Points to reference block B1, which has already been reconstructed or partially reconstructed within the current image. If B1 has a corresponding BV value of BV... 1,2 The BV information, then when BV 0,2 When the current block is valid, it can obtain BV as BV. 0,2 The new reference block B2 of B0, where BV 0,2 By BV 0,2 = BV 0,1 +BV 1,2 Given. And BV 0,2 It is a block vector-guided BV prediction or candidate, which is called a first-order block vector-guided cascaded BVP. If B2 has a corresponding BV of BV... 2,3 The BV information, then when BV 0,3 When the current block is valid, it can obtain BV as BV. 0,3 The new reference block B3 of B0, where BV 0,3 By BV 0,3 = BV 0,2 +BV 2,3 Given. And BV 0,3 It is a block vector-guided BV prediction or candidate, which is called a second-order block vector-guided cascaded BVP. If B3 has a corresponding BV of BV... 3,4 The BV information, then when BV 0,4 When the current block is valid, it can obtain BV as BV. 0,4 The new reference block B4 of B0, where BV 0,4 By BV 0,4 = BV 0,3 +BV 3,4 Given. And BV 0,4 It is a block vector-guided BV prediction or candidate, which is called a third-order block vector-guided cascaded BVP. Similarly, if B n With corresponding BV is BV n,n+1 The BV information, then when BV 0,n+1 When the current block is valid, it can obtain BV as BV. 0,n+1 The new reference block B0 n+1 BV 0,n+1 By BV 0,n+1 = BV 0,n +BV n,n+1 Given. And BV 0,n+1 It is a block vector-guided BV prediction or candidate, which is calledn Cascaded BVP guided by block vector.

[0190] In one example, assume the block vector BV associated with the current block B0. 0,1 Points to reference block B1, which has already been reconstructed or partially reconstructed within the current image. If B1 has a corresponding BV value of BV... 1,2 The BV information, then when BV 1,2 When the current block is valid, BV 1,2 (This is referred to as a first-order block vector guided direct BVP) is a block vector guided BV prediction or candidate. If B2 has a corresponding BV of BV, then BV is... 2,3 The BV information, then when BV 2,3 When the current block is valid, BV 2,3 (This is called a second-order block vector guided direct BVP) is a block vector guided BV prediction or candidate. If B3 has a corresponding BV of BV, then... 3,4 The BV information, then when BV 3,4 When the current block is valid, BV 3,4 (This is referred to as the third-order block vector guided direct BVP) is a block vector guided BV prediction or candidate. Similarly, if B n With corresponding BV is BV n,n+1 The BV information, then when BV n,n+1 When the current block is valid, BV n,n+1 (It is called) n The block vector-guided direct BVP is a block vector-guided BV prediction or candidate.

[0191] A schematic diagram of block vector-guided BV prediction is shown below. Figure 23 As shown.

[0192] Block Vector Guided BV / MV Prediction 1. In one example, block vector-guided BV and / or MV predictions can be incorporated into the BV and / or MV predictions.

[0193] a. In one example, BV and / or MV prediction can be at least one of the following.

[0194] (a) In one example, BV and / or MV predictions can be regular IBC and / or inter-frame merge predictions.

[0195] (b) In one example, BV and / or MV predictions can be regular IBC and / or inter-frame AMVP predictions.

[0196] (c) In one example, BV and / or MV predictions can be IBC and / or inter-frame-TM merge predictions.

[0197] (d) In one example, BV and / or MV predictions can be IBC and / or inter-frame-TM AMVP predictions.

[0198] (e) In one example, BV prediction can be RR-IBC Merge prediction.

[0199] (f) In one example, BV prediction can be RR-IBC AMVP prediction.

[0200] (g) In one example, BV and / or MV prediction can be IBC-MBVD and / or inter-frame MMVD prediction.

[0201] (h) In one example, BV and / or MV predictions can be IBC-CIIP and / or CIIP.

[0202] (i) In one example, BV and / or MV predictions can be IBC-GPM and / or GPM predictions.

[0203] (j) In one example, BV and / or MV predictions can be encoder-only BV predictions.

[0204] (k) In one example, BV prediction can be a string copy vector prediction.

[0205] (l) In one example, the BV and / or MV prediction can be any other BV and / or MV prediction.

[0206] 2. In one example, block vector-guided BV and / or MV candidates can be introduced into the BV and / or MV candidate list.

[0207] a. In one example, the BV and / or MV candidate list can be at least one of the following.

[0208] (a) In one example, the BV and / or MV candidate list can be a regular IBC and / or inter-frame merge list.

[0209] (b) In one example, the BV and / or MV candidate list can be a regular IBC and / or inter-frame AMVP list.

[0210] (c) In one example, the BV and / or MV candidate list can be the IBC and / or inter-frame-TM merge list.

[0211] (d) In one example, the BV and / or MV candidate list can be the IBC and / or inter-frame-TM AMVP list.

[0212] (e) In one example, the BV candidate list can be the RR-IBC Merge list.

[0213] (f) In one example, the BV candidate list can be the RR-IBC AMVP list.

[0214] (g) In one example, the BV and / or MV candidate list can be the IBC-MBVD and / or inter-frame MMVD basic candidate list.

[0215] (h) In one example, the BV and / or MV candidate list can be the IBC-CIIP and / or CIIP Merge list.

[0216] (i) In one example, the BV and / or MV candidate list can be the IBC-CIIP AMVP and / or CIIP AMVP list.

[0217] (j) In one example, the BV and / or MV candidate list can be the IBC-GPM Merge and / or GPM Merge list.

[0218] (k) In one example, the BV and / or MV candidate list can be the IBC-GPM AMVP and / or GPM AMVP list.

[0219] (l) In one example, the BV and / or MV candidate list can be the encoder-only BV candidate list.

[0220] (m) In one example, the BV and / or MV candidate list can be any other BV candidate and / or MV candidate list.

[0221] 3. In one example, the block vector-guided BV prediction or candidate can be derived using at least one of the following methods.

[0222] a. In one example, a block vector-guided BV prediction or candidate can be a block vector-guided cascaded BV prediction or candidate.

[0223] b. In one example, the block vector BV associated with the current block B0. 0,1 Point to reference block B1. If B1 has a value represented as BV 1,2 If the pointer to reference block B2 is BV, then BV 0,2 By BV 0,2 = BV 0,1 +BV 1,2 Given. And BV 0,2 It is a block vector-guided BV prediction or candidate, which is called a first-order block vector-guided cascaded BVP or candidate.

[0224] (a) In one example, it can be required that B1 should have already been reconstructed or partially reconstructed within the current image.

[0225] (b) In one example, BV can be required. 0,2 The current block must be valid.

[0226] c. In one example, a block vector-guided BV prediction or candidate could be... n A cascaded BVP or candidate guided by an order (e.g., n≥1) block vector is denoted as BV. 0,n+1 .

[0227] (a) BV 0,n+1 = BV 0,1 +BV 1,2 +BV 2,3 +…+BV n-1,n +BV n,n+1 .

[0228] d. In one example, a block vector-guided BV prediction or candidate can be a block vector-guided direct BV prediction or candidate.

[0229] e. In one example, the block vector BV associated with the current block B0. 0,1 Point to reference block B1. If B1 has a value represented as BV 1,2 BV, then BV 1,2 (It is called a first-order block vector guided direct BVP or candidate) is a block vector guided BV prediction or candidate.

[0230] (a) In one example, it can be required that B1 should have already been reconstructed or partially reconstructed within the current image.

[0231] (b) In one example, BV can be required. 1,2 The current block must be valid.

[0232] f. In one example, the block vector-guided BV prediction or candidate could be n A direct BVP or candidate guided by a block vector of order (e.g., n≥1) is denoted as BV. n,n+1 .

[0233] g. In one example, the block vector BV associated with the current block B0. 0,1 It can be derived from at least one of the following candidates.

[0234] (a) In one example, the block vector BV associated with the current block B0. 0,1 BV candidates can be derived from any existing BV candidate list before the BV guided by the derivation block vector.

[0235] 1) In one example, an existing BV candidate can be a block vector-guided BV candidate.

[0236] 2) In one example, if BV 0,i+1 yes i For cascaded BV candidates guided by block vectors, then correspondingly, BV 0,i+2 yes (i+1) Cascaded BV candidates guided by block vectors.

[0237] 3) In one example, if BV 0,i+1 yes i For cascaded BV candidates guided by block vectors, then correspondingly, BV i+1,i+2 yes (i+1) Direct BV candidates guided by block vectors.

[0238] (b) In one example, the block vector BV associated with the current block B0. 0,1 Some predefined BV candidates can be derived from the BV candidate list before the BVP guided by the derivation block vector.

[0239] 1) In one example, the predefined BV candidate can be the first N BV candidates.

[0240] 2) In one example, the predefined BV candidates can be the selected N BV candidates.

[0241] 3) In one example, a predefined BV candidate can be a BV candidate of a specified candidate type.

[0242] i. In one example, specifying the candidate type can involve adjacency (e.g., Figure 6 or Figure 24 Airspace BV candidate.

[0243] ii. In one example, specifying the candidate type can involve non-adjacent (e.g., Figure 22 Airspace BV candidate.

[0244] iii. In one example, specifying the candidate type can involve HMVP BV candidates.

[0245] iv. In one example, specifying the candidate type can involve adjacent time-domain BV candidates.

[0246] v. In one example, specifying the candidate type can involve non-adjacent time-domain BV candidates.

[0247] vi. In one example, specifying the candidate type can involve pairwise average BV candidates.

[0248] vii. In one example, specifying the candidate type can involve BV candidates guided by block vectors.

[0249] h. In one example, only BV candidates guided by first-order block vectors can be used.

[0250] i. In one example, only first-order and second-order block vector-guided BV candidates can be used.

[0251] j. In one example, only the first... n BV candidates guided by block vectors can be used.

[0252] 4. In one example, when from B n Derivation of BV n,n+1 At that time, (multiple) specific locations can be examined to derive BV.

[0253] a. In one example, to derive BV, only B n The center (e.g., Figure 25 The position of Ctr in the block can be checked. Assume the width and height of the block are represented as W and H, respectively.

[0254] (a) Assuming the top left position within the block is (0, 0), then the center position of the block is defined as (W>>1, H>>1).

[0255] (b) Assuming the top left position within the block is (0, 0), then the center position of the block is defined as ((W>>1)-1, H>>1).

[0256] (c) Assuming the top left position within the block is (0, 0), then the center position of the block is defined as (W>>1, (H>>1)-1).

[0257] (d) Assuming the top left position within the block is (0, 0), then the center position of the block is defined as ((W>>1)-1, (H>>1)-1).

[0258] b. In one example, to derive BV, only B n The top left (e.g., Figure 25 The LT position in the text can be checked.

[0259] c. In one example, to derive BV, B n The top left (e.g., Figure 25 LT in the middle), top right (e.g., Figure 25 RT in the middle), center (e.g., Figure 25 (Ctr in the middle), bottom left (e.g., Figure 25 (LB in the middle) and bottom right (e.g., Figure 25At least one of the RB positions in the data can be checked.

[0260] (a) In one example, all available BVs can be used for block vector-guided BV candidates (e.g., BV... n,n+1 or BV 0,n+1 Derivation.

[0261] (b) In one example, only the first available BV can be used as a block vector-guided BV candidate (e.g., BV...). n,n+1 or BV 0,n+1 Derivation.

[0262] d. In one example, to derive BV, B n All five positions (top left (e.g., Figure 25 LT in the middle), top right (e.g., Figure 25 RT in the middle), center (e.g., Figure 25 (Ctr in the middle), bottom left (e.g., Figure 25 (LB in the middle) and bottom right (e.g., Figure 25 The RB position can be checked.

[0263] (a) In one example, the inspection order is center -> top left -> top right -> bottom left -> bottom right.

[0264] (b) In one example, all available BVs can be used for block vector-guided BV candidates (e.g., BV... n,n+1 or BV 0,n+1 Derivation.

[0265] (c) In one example, only the first available BV can be used as a block vector-guided BV candidate (e.g., BV...). n,n+1 or BV 0,n+1 Derivation.

[0266] e. In one example, B n Some predefined locations can be checked to derive BV.

[0267] (a) In one example, all available BVs can be used for block vector-guided BV candidates (e.g., BV... n,n+1 or BV 0,n+1 Derivation.

[0268] (b) In one example, only the first available BV can be used as a block vector-guided BV candidate (e.g., BV...). n,n+1 or BV 0,n+1 Derivation.

[0269] f. In one example, if B is covered nIf a motion mesh (such as a 4x4 mesh) is available at a specific location and has BV information, it can be used for block vector-guided BV candidates (e.g., BV...). n,n+1 or BV 0,n+1 Derivation.

[0270] 5. In one example, there may be a constraint on the maximum number (e.g., N) of BV candidates guided by the block vector.

[0271] a. Alternatively, there may be no constraint on the maximum number (e.g., N) of BV candidates guided by the block vector.

[0272] b. In one example, the number of BV candidates guided by the block vector may not exceed 5.

[0273] c. In one example, the number of BV candidates guided by the block vector may not exceed 4.

[0274] d. Alternatively, there may be a constraint on the maximum number (e.g., M) of unique (e.g., after complete deduplication) block vector-guided BV candidates to be derived.

[0275] (a) In one example, M can be 5.

[0276] (b) In one example, M can be 4.

[0277] (c) In one example, M can be 3.

[0278] e. In one example, when deriving BV candidates guided by block vectors, redundancy checks or deduplication can be performed.

[0279] (a) In one example, when deriving block vector-guided BV candidates, full deduplication can be performed to ensure that candidates with the same or similar motion information are excluded from the BV candidate list.

[0280] (b) In one example, partial deduplication can be performed when deducing BV candidates guided by block vectors.

[0281] 6. In one example, the position of the block vector-guided BV candidate in the BV candidate list can be one of the following.

[0282] a. In one example, all block vector-guided BV candidates can be inserted before the HMVP BV candidates.

[0283] b. In one example, some block vector-guided BV candidates can be inserted before HMVP BV candidates, and the remaining block vector-guided BV candidates can be inserted after HMVP BV candidates.

[0284] c. In one example, all block vector-guided BV candidates can be inserted after the HMVP BV candidates.

[0285] d. In one example, all block vector-guided BV candidates can be inserted before non-adjacent spatial BV candidates.

[0286] e. In one example, a partially block vector-guided BV candidate can be inserted before a non-adjacent spatial BV candidate, and the remaining block vector-guided BV candidates can be inserted after a non-adjacent spatial BV candidate.

[0287] f. In one example, all block vector-guided BV candidates can be inserted after non-adjacent spatial BV candidates.

[0288] 7. In one example, whether to use block vector-guided BV prediction can be signaled 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.

[0289] BV Candidate Reordering 8. In one example, a reordering / refinement process can be performed when deriving the BV candidate list.

[0290] a. In one example, the reordering / refinement process can be based on template matching costs (multiple).

[0291] b. In one example, when constructing the BV candidate list, N1 adjacent spatial domain candidates and / or N2 temporal domain candidates and / or N3 non-adjacent spatial domain candidates and / or N4 HMVP candidates and / or N5 block vector-guided BV candidates and / or N6 pairwise average candidates and / or N7 predefined BV candidates can be derived partially or entirely using complete deduplication to ensure that there are no duplicate or similar candidates in the list, and then they are reordered together. After reordering, the top N candidates (such as those with the lowest cost) can be selected as the final candidates in the BV candidate list.

[0292] i. In one example, N can be 6 and / or N1 can be 5 and / or N2 can be 10 and / or N3 can be 35 and / or N4 can be 25 and / or N5 can be 10 and / or N6 can be 1 and / or N7 can be 6.

[0293] ii. In one example, there may be a constraint on the maximum number (e.g., M) of unique (e.g., after full deduplication) BV candidates to be derived.

[0294] (i) In one example, M can be 20.

[0295] (ii) In one example, M can be 28.

[0296] iii. In one example, adjacent airspace BV candidates can consist of airspace candidates to the left and / or above and / or upper right and / or lower left and / or upper left (example in...). Figure 6 (As shown in the image).

[0297] iv. In one example, the time-domain BV candidate can consist of those specified in item 3.

[0298] v. In one example, non-adjacent spatial domain BV candidates can be determined by... Figure 22 The components specified in the document.

[0299] vi. In one example, the number of HMVP BV candidates and / or the HMVP table size can be increased to N2 (e.g., 25).

[0300] vii. In one example, such as Figure 23 As shown, block vector-guided BV candidates can be block vector-guided cascaded BV candidates.

[0301] viii. In one example, such as Figure 23 As shown, block vector-guided BV candidates can be block vector-guided direct BV candidates.

[0302] ix. In one example, a pair of BV candidates can be generated by averaging predefined pairs of existing candidates in the motion candidate list.

[0303] (iii) In one example, a predefined pair can be defined as a pair in a set such as {(0, 1), (0, 2), (1, 2), (0, 3), (1, 3), (2, 3)}, where the numbers represent the motion candidate indices in the motion candidate list.

[0304] x. In one example, a predefined BV candidate can be located in the IBC reference region.

[0305] c. In one example, ARMC based on BV candidate types can be used to reorder BV candidates with one or more specific candidate types, according to one or more criteria.

[0306] i. In one example, when constructing the BV candidate list, M candidates with a specific candidate type (such as having the lowest cost) can be selected from N reordered candidates with candidate types.

[0307] (i) In one example, M can vary depending on the candidate type and / or encoding / decoding mode of the current block.

[0308] (ii) In one example, the candidate type can be adjacent spatial domain BV candidate. For example, M is 4 and N is 5.

[0309] (iii) In one example, the candidate type can be a non-adjacent spatial domain BV candidate. For example, M is 6 and N is 35.

[0310] (iv) In one example, the candidate type can be a time-domain BV candidate. For example, M is 4 and N is 10.

[0311] (v) In one example, the candidate type can be an HMVP BV candidate. For example, M is 10 and N is 25.

[0312] (i) In one example, the candidate type can be a block vector-guided BV candidate. For example, M is 4 and N is 10.

[0313] (ii) In one example, the candidate type can be a pairwise average BV candidate. For example, M is 1 and N is 6.

[0314] (iii) In one example, the candidate type can be a predefined BV candidate. For example, M is 1 and N is 6.

[0315] ii. In one example, multiple BV candidate types (i.e., combinations of candidate types) can be reordered together.

[0316] (i) In one example, when constructing the BV candidate list, M candidates with any particular BV candidate type (such as having the lowest cost) can be selected from N reordered candidates that conform to the combination of candidate types, where M can vary depending on the combination of candidate types and / or the encoding / decoding mode of the current block.

[0317] (ii) In one example, adjacent spatial candidates and / or temporal candidates and / or non-adjacent spatial candidates and / or HMVP candidates and / or block vector-guided candidates and / or pairwise average candidates and / or predefined BV candidates can be reordered together. For example, M is 6 and N is 20.

[0318] (iii) In one example, at least one BV candidate type can be reordered using ARMC based on the BV candidate type.

[0319] (iv) In one example, N1 HMVP candidates (such as those with the lowest cost) can be selected from candidates that have been reordered with HMVP candidate types, and the selected N1 HMVP candidates can be reordered together with adjacent spatial candidates and / or temporal candidates and / or non-adjacent spatial candidates and / or block vector guided candidates and / or pairwise average candidates and / or predefined BV candidates. Finally, M candidates (such as those with the lowest cost) can be selected.

[0320] (v) In one example, N2 temporal candidates (such as those with the lowest cost) can be selected from candidates that have been reordered with temporal candidate types, and the selected N2 temporal candidates can be reordered together with adjacent spatial candidates and / or HMVP candidates and / or non-adjacent spatial candidates and / or block vector guided candidates and / or pairwise average candidates and / or predefined BV candidates. Finally, M candidates (such as those with the lowest cost) can be selected.

[0321] (vi) In one example, N3 block vector-guided candidates (such as those with the lowest cost) can be selected from candidates reordered with block vector-guided candidate types, and the selected N3 block vector-guided candidates can be reordered together with adjacent spatial domain candidates and / or HMVP candidates and / or non-adjacent spatial domain candidates and / or temporal domain candidates and / or pairwise average candidates and / or predefined BV candidates. Finally, M candidates (such as those with the lowest cost) can be selected.

[0322] (vii) In one example, if a candidate is reordered more than once, its reordering criteria (e.g., template matching cost) can be reused.

[0323] Two-way forecasting / multiple hypothesis IBC forecasting 9. In one example, block vector-guided BVP can be used for bidirectional forecasting / multiple hypothesis IBC forecasting.

[0324] a. In one example, at least one prediction can be derived from a public IBC prediction, and at least one prediction can be derived from a block vector-guided BVP.

[0325] (a) In one example, only one index can be transmitted from the encoder to the decoder via signaling to indicate the IBC Merge / AMVP BV information used for public IBC prediction.

[0326] (b) In one example, such as Figure 23 As shown, the block vector-guided BVP can be derived from the indicated IBC Merge / AMVP BV information.

[0327] (c) In one example, a public IBC prediction can be derived from at least one of the following.

[0328] 1) In one example, public IBC predictions can be derived from regular IBC Merge predictions.

[0329] 2) In one example, public IBC predictions can be derived from regular IBC AMVP predictions.

[0330] 3) In one example, public IBC predictions can be derived from IBC-TM Merge predictions.

[0331] 4) In one example, the public IBC prediction can be derived from the IBC-TM AMVP prediction.

[0332] 5) In one example, the common IBC prediction can be derived from the RR-IBC Merge prediction.

[0333] 6) In one example, the common IBC prediction can be derived from the RR-IBC AMVP prediction.

[0334] 7) In one example, the common IBC prediction can be derived from the IBC-MBVD prediction.

[0335] 8) In one example, public IBC predictions can be derived from IBC-CIIP predictions.

[0336] 9) In one example, the public IBC prediction can be derived from the IBC-GPM prediction.

[0337] 10) In one example, the common IBC prediction can be derived from the encoder-only BV prediction.

[0338] 11) In one example, public IBC predictions can be derived from string copy vector predictions.

[0339] 12) In one example, a public IBC prediction can be derived from any other BV prediction.

[0340] 10. In one example, whether bidirectional prediction / multiple hypothesis IBC prediction is used can be signaled 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.

[0341] Sub-block-based block vector guided block vector prediction (SbBVGBVP) 11. In one example, sub-block-based block vector guided block vector prediction (SbBVGBVP) can be supported as a BV candidate or BV prediction mode.

[0342] a. Similar to SbTMVP, SbBVGBVP uses sub-block-based BV motion fields in the corresponding block guided by block vectors to improve block vector prediction and IBC Merge mode.

[0343] b. In one example, the width and height of the corresponding block in the current image can be the same as the width and height of the current block in the current image.

[0344] c. In one example, the position of the corresponding block in the current image can be determined by a BV displacement added to the position of the current block in the current image.

[0345] (a) In one example, the BV displacement can be a block vector of spatial nearest neighbor.

[0346] 1) In one example, spatial nearest neighbors can be Figure 6 The nearest neighbors in the middle are the left (A1), top (B1), top right (B0), bottom left (A0), or top left (B2).

[0347] 2) In one example, if the spatial nearest neighbor has a block vector that is valid for the current block, then the block vector can be selected as the BV displacement; if no such BV is identified, the spatial nearest neighbor may not provide a BV displacement.

[0348] 3) In one example, BV displacements can be derived in a predefined priority order, and the first N (or more) valid block vectors can be used as (or more) BV displacements.

[0349] i. In one example, N can be 1, 2, 3, 4 or 5.

[0350] ii. In one example, the priority order could be A1->B1->B0->A0->B2.

[0351] iii. In one example, the priority order could be B1->A1->B0->A0->B2.

[0352] iv. In one example, the priority order could be A0->A1->B0->B1->B2.

[0353] (b) In one example, the BV displacement with the top M (or more) minimum template matching costs can be used to derive SbBVGBVP candidates.

[0354] 1) In one example, M can be 1, 2, 3, 4 or 5.

[0355] (c) In one example, the validity of the BV displacement can be determined.

[0356] 1) For example, if the corresponding block referenced by the BV displacement is outside the image, the BV displacement can be determined to be invalid.

[0357] 2) For example, if the corresponding block referenced by the BV displacement overlaps with the current block, then the BV displacement is determined to be invalid.

[0358] 3) For example, if the BV displacement is determined to be invalid, it can be modified.

[0359] i. The modified BV displacement should be valid.

[0360] d. In one example, after deriving the BV displacement, for each sub-block, the BV information of its corresponding block in the current image (the minimum motion grid covering the corresponding center sample of the center sample in the sub-block) can be used to derive the BV information for the sub-block. Figure 26 One example shown assumes that the BV displacement is set to the BV of block A1. Figure 26 The diagram illustrates the derivation of the sub-block BV motion field from the corresponding sub-block by applying the BV displacement derived from the spatial nearest neighbor.

[0361] (a) In one example, the size of the sub-block can be M×N.

[0362] 1) In one example, M = N = 4.

[0363] 2) In one example, M = N = 8.

[0364] (b) In one example, if the central subblock cannot derive valid BV information (such as its corresponding subblock not containing BV information or the BV of its corresponding subblock being invalid for the central subblock / current block), then SbBVGBVP may not be used.

[0365] (c) In one example, if a subblock cannot derive valid BV information (such as its corresponding subblock not containing BV information or its corresponding subblock's BV being invalid for the subblock / current block), it may reuse the BV information of the central subblock.

[0366] 12. In one example, whether to use sub-block-based block vector-guided BV prediction (SbBVGBVP) can be signaled 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.

[0367] General information 13. In all the disclosed methods, the term “block vector (BV)” may be replaced by “motion vector (MV)”.

[0368] a. The BVP list can be replaced by the MVP list.

[0369] b. The term IBC prediction can be replaced by inter-frame prediction.

[0370] c. The term IBC Merge list can be replaced by Merge list.

[0371] d. The term IBC AMVP list can be replaced by the AMVP list.

[0372] e. “Block vector guided” can be replaced by “MV guided”.

[0373] f. In one example, the MV-guided MV prediction or candidate could be... n A cascaded MVP or candidate guided by an order (e.g., n≥1) motion vector is denoted as MV. 0,n+1 .

[0374] (a) MV 0,n+1 =MV 0,1 +MV 1,2 +MV 2,3 +…+MV n-1,n +MV n,n+1 (b) For example, MV 0,n+1 and MV n,n+1 It can refer to the same reference image.

[0375] (c) For example, MV i,i+1 and MV j,j+1 It can refer to different reference images.

[0376] g. In one example, the MV-guided MV prediction or candidate could be... n A direct MVP or candidate guided by an order (e.g., n≥1) motion vector is denoted as MV. n,n+1 .

[0377] 14. The syntax elements disclosed above can be binarized into flags, fixed-length codes, EG(x) codes, unary codes, rounded unary codes, rounded binary codes, etc. These can be signed or unsigned.

[0378] 15. The grammatical elements disclosed above can be encoded and decoded using at least one context model. Alternatively, they can be encoded and decoded using a bypass method.

[0379] 16. The syntax elements (SE) disclosed above can be transmitted conditionally via signals.

[0380] a. SE is transmitted via signal only if the corresponding function applies.

[0381] 17. The syntax elements disclosed above can be transmitted via signaling at the block level / sequence level / picture group level / picture level / strip level / piece group level, such as in the codec structure of CTU / CU / TU / PU / CTB / CB / TB / PB, or in the sequence header / picture header / SPS / VPS / DPS / DCI / PPS / APS / strip header / piece group header.

[0382] 18. In the above examples, a block can refer to a color component / sub-picture / strip / piece / code-decode tree unit (CTU) / CTU row / CTU group / code-decode unit (CU) / prediction unit (PU) / transform unit (TU) / code-decode tree block (CTB) / code-decode 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 point or pixel.

[0383] 19. Whether and / or how the methods disclosed above can be signaled at the sequence level / picture group level / picture level / strip level / film group level, such as in the sequence header / picture header / SPS / VPS / DPS / DCI / PPS / APS / strip header / film group header.

[0384] 20. 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.

[0385] 21. Whether and / or how the methods disclosed above are applied may depend on the encoded / decoded information, such as block size, color format, single / dual tree segmentation, color components, and stripe / image type.

[0386] Regarding Figure 27 Another embodiment is described below. Figure 27 A flowchart of a method 2700 for video processing according to an embodiment of the present disclosure is shown. Method 2700 is implemented during the conversion between video units or video units of a video and a bitstream of a video.

[0387] At box 2710, for the conversion between the current video block and the video bitstream, the bootstrap block vector (BV) is determined based on the first BV shift of the current video block. The first BV can be any suitable valid BV of the current video block.

[0388] At box 2720, the sub-block-based block vector guided block vector prediction (SbBVGBVP) for the current video block is determined based on the guiding BV.

[0389] At box 2730, the conversion is performed based on SbBVGBVP. In some embodiments, the conversion includes encoding the current video block into a bitstream. Alternatively or additionally, in some embodiments, the conversion includes decoding the current video block from the bitstream.

[0390] Method 2700 enables the application of SbBVGBVP to video encoding and decoding. In this way, encoding and decoding efficiency and / or encoding and decoding effectiveness can be improved.

[0391] In some embodiments, SbBVGBVP is supported as a BV candidate or BV prediction mode.

[0392] In some embodiments, SbBVGBVP uses a sub-block-based BV motion field in the corresponding block guided by a guiding BV for at least one of the following: Block Vector Prediction (BVP), or Intra-Block Copy (IBC) Merge mode. The sub-block can be any suitable sub-block of the current video block, such as the left sub-block, the center sub-block, or any other sub-block at other locations. For example, the BV of the corresponding sub-block, or the sum of the sub-block's BV and BV displacement, can be used in SbBVGBVP.

[0393] In some embodiments, the width and height of the corresponding block guided by the guiding BV are the same as the width and height of the current video block in the current image.

[0394] In some embodiments, the position of the corresponding block in the current image is based on the BV displacement of the position of the current video block added to the current image. Figure 26 A schematic diagram is shown illustrating the derivation of the sub-block BV motion field from the corresponding sub-block by applying the BV displacement derived from the spatial nearest neighbor.

[0395] In some embodiments, determining the guiding BV includes one of the following: determining the first BV displacement of the current video block as the guiding BV.

[0396] In some embodiments, the BV displacement includes the BV of the spatial nearest neighbor of the current video block.

[0397] In some embodiments, airspace neighbors include at least one of the following: left airspace neighbor, upper airspace neighbor, upper right airspace neighbor, lower left airspace neighbor, or upper left airspace neighbor, such as Figure 6 The nearest neighbors on the left (A1), above (B1), top right (B0), bottom left (A0), or top left (B2) are the nearest neighbors.

[0398] In some embodiments, if the first spatial neighbor of the current video block includes a candidate BV that is valid for the current video block, then the candidate BV is selected as the BV shift, and if no candidate BV of the first spatial neighbor is valid for the current video block, then the BV shift is not provided by the first spatial neighbor.

[0399] In some embodiments, the BV shift is determined by checking at least one spatial nearest neighbor of the current video block based on a predefined priority order, and the first N valid BVs are used as the BV shift, where N is a positive integer. For example, N can be one of the following: 1, 2, 3, 4, or 5.

[0400] In some embodiments, the priority order is one of the following: First order: left airspace neighbor, upper airspace neighbor, upper right airspace neighbor, lower left airspace neighbor and upper left airspace neighbor; Second order: upper airspace neighbor, left airspace neighbor, upper right airspace neighbor, lower left airspace neighbor and upper left airspace neighbor; or Third order: lower left airspace neighbor, left airspace neighbor, upper right airspace neighbor, upper airspace neighbor and upper left airspace neighbor.

[0401] In some embodiments, at least one BV displacement having the first M minimum template matching costs is used to determine SbBVGBVP. In some embodiments, M can be one of the following: 1, 2, 3, 4, or 5.

[0402] In some embodiments, method 2700 further includes: determining the validity of the BV displacement. In some embodiments, the BV displacement is determined to be invalid because the corresponding block referenced by the BV displacement is outside the current image. In some embodiments, the BV displacement is determined to be invalid because the corresponding block referenced by the BV displacement overlaps with the current video block.

[0403] In some embodiments, method 2700 further includes: if it is determined that the BV displacement is invalid, modifying the BV displacement so that the modified BV displacement is valid.

[0404] In some embodiments, for each sub-block of the current video block, the BV information of the corresponding block in the current image, referenced by the BV displacement, is used to derive the BV information for the sub-block. The corresponding block includes a motion mesh covering the center sample corresponding to the center sample of the sub-block.

[0405] In some embodiments, the size of the sub-block is M×N, where M and N are positive integers. For example, M can be equal to N, where N can be equal to 4 or 8.

[0406] In some embodiments, SbBVGBVP is not used if at least one of the following conditions is met: no valid BV information is derived for the center sub-block of the current video block, the sub-block corresponding to the center sub-block does not contain BV information, or the BV information of the sub-block corresponding to the center sub-block is invalid for the center sub-block or the current video block.

[0407] In some embodiments, the BV information of the central sub-block is reused for the first sub-block based on at least one of the following: no valid BV information is derived for the first sub-block of the current video block, the sub-block corresponding to the first sub-block does not contain BV information, or the BV information of the sub-block corresponding to the first sub-block is invalid for the first sub-block or the current video block.

[0408] In some embodiments, whether SbBVGBVP is used is indicated by one of the following: sequence level, picture group level, picture level, strip level, slice group level, sequence header, picture header, sequence parameter set (SPS), video parameter set (VPS), decoding parameter set (DPS), decoding capability information (DCI), picture parameter set (PPS), adaptive parameter set (APS), strip header, or slice group header.

[0409] In some embodiments, BV is replaced by MV, BVP list is replaced by MVP list, IBC prediction is replaced by inter-frame prediction, IBC Merge list is replaced by Merge list, IBC AMVP list is replaced by AMVP list, and block vector-guided vector is replaced by MV-guided vector.

[0410] In some embodiments, such as Figure 23 As shown, at least one vector-guided cascaded prediction or candidate includes an nth-order vector-guided cascaded prediction or candidate BV. 0,n+1 n is an integer greater than or equal to 1. BV 0,n+1 It can be determined by the following formula: BV 0,n+1 = BV 0,1 +BV 1,2 +…+BV n-1,n +BV n,n+1 BV 0,1 BV represents the first guiding vector. 1,2 Let BV represent the first reference vector (also known as the direct BV candidate guided by first-order BV), ..., BV n-1,n Let represent the (n-1)th reference vector (also known as the (n-1)th order BV-guided direct BV candidate), and BV n,n+1 Let N be the reference vector (also known as the nth-order BV-guided direct BV candidate), where BV 1,2 Pointing to the second reference block at a distance from the first reference block, BV n-1,nPoints to the Nth reference block at a distance of (n-1)th reference block, and BV n,n+1 Points to the (n+1)th reference block from the nth reference block.

[0411] In some embodiments, syntax elements in the bitstream are binarized into one of the following: flags, fixed-length codes, exponential Golomb (x) (EG(x)) codes, unary codes, rounded unary codes, or rounded binary codes, and the syntax elements are signed or unsigned.

[0412] In some embodiments, syntax elements in the bitstream are encoded or decoded using at least one context model or are bypassed.

[0413] In some embodiments, a syntax element is included in the bitstream based on at least one condition, the at least one condition including a condition that the function associated with the syntax element is applicable to the transformation.

[0414] In some embodiments, syntax elements are included at one of the following: block level, sequence level, picture group level, picture level, strip level, slice group level, or codec structure, wherein the codec structure includes one of the following: codec tree unit (CTU), codec unit (CU), prediction unit (PU), transform unit (TU), codec tree block (CTB), codec block (CB), transform block (TB), prediction block (PB), 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 group header.

[0415] In some embodiments, the current video block refers to 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), transform block (TB), prediction block (PB), block, sub-block of a block, sub-region within a block, or region containing more than one sample point or pixel.

[0416] In some embodiments, whether and / or how method 2700 is applied is included in the bitstream at one of the following: sequence level, picture group level, picture level, strip level, slice group level, sequence header, picture header, sequence parameter set (SPS), video parameter set (VPS), decoding parameter set (DPS), decoding capability information (DCI), picture parameter set (PPS), adaptive parameter set (APS), strip header, or slice group header.

[0417] In some embodiments, whether and / or how method 2700 is applied is included in one of the following: prediction block (PB), transform block (TB), codec block (CB), prediction unit (PU), transform unit (TU), codec unit (CU), virtual pipeline data unit (VPDU), codec tree unit (CTU), CTU row, strip, slice, sub-picture, or region containing more than one sample point or pixel.

[0418] In some embodiments, whether and / or how method 2700 is applied is based on encoded information, which includes at least one of the following: block size, color format, single-tree segmentation or dual-tree segmentation, color components, stripe type or picture type.

[0419] According to another embodiment of this disclosure, a non-transitory computer-readable recording medium is provided. This non-transitory computer-readable recording medium stores video data through a method performed by an apparatus for video processing, generating a bitstream. In this method, a first BV shift based on the current video block is determined, and the SbBVGBVP of the current video block is determined based on the first BV shift. The bitstream is generated based on the SbBVGBVP.

[0420] According to further embodiments of this disclosure, a method for storing a bitstream of video is provided. In this method, a bootstrap BV based on a first BV shift of the current video block is determined. The SbBVGBVP of the current video block is determined based on the bootstrap BV. The bitstream is generated based on the SbBVGBVP. The bitstream is stored in a non-transitory computer-readable recording medium.

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

[0422] Item 1. A method for video processing, comprising: for a conversion between a current video block and a bitstream of the video, determining a guiding BV based on a first block vector (BV) shift of the current video block; determining a sub-block-based block vector guided block vector prediction (SbBVGBVP) of the current video block based on the guiding BV; and performing the conversion based on the SbBVGBVP.

[0423] Item 2. The method according to Item 1, wherein the SbBVGBVP is supported as a BV candidate or BV prediction mode.

[0424] Item 3. The method according to Item 1 or 2, wherein the SbBVGBVP uses a sub-block-based BV motion field in the corresponding block guided by the guiding BV for at least one of the following: block vector prediction (BVP), or intra-block copy (IBC) merge mode.

[0425] Item 4. The method according to Item 3, wherein the width and height of the corresponding block guided by the guiding BV are the same as the width and height of the current video block in the current picture.

[0426] Item 5. The method according to any one of items 1 to 4, wherein the position of the corresponding block in the current picture is based on the BV displacement of the position of the current video block added to the current picture.

[0427] Item 6. The method according to Item 5, wherein determining the guiding BV comprises: determining the first BV displacement of the current video block as the guiding BV.

[0428] Item 7. The method according to Item 5 or 6, wherein the BV displacement includes the BV of the spatial nearest neighbor of the current video block.

[0429] Item 8. The method according to Item 7, wherein the airspace neighbor includes at least one of the following: left airspace neighbor, upper airspace neighbor, upper right airspace neighbor, lower left airspace neighbor, or upper left airspace neighbor.

[0430] Item 9. The method according to Item 7 or 8, wherein if the first spatial neighbor of the current video block includes a candidate BV valid for the current video block, the candidate BV is selected as the BV shift, and if no candidate BV of the first spatial neighbor is valid for the current video block, the BV shift is not provided by the first spatial neighbor.

[0431] Item 10. The method according to Item 8, wherein the BV displacement is determined by checking at least one spatial nearest neighbor of the current video block based on a predefined priority order, and the first N valid BVs are used as BV displacements, where N is a positive integer.

[0432] Item 11. The method according to Item 10, wherein N is one of the following: 1, 2, 3, 4 or 5.

[0433] Item 12. The method according to Item 10, wherein the priority order is one of the following: a first order: the left airspace neighbor, the upper airspace neighbor, the upper right airspace neighbor, the lower left airspace neighbor, and the upper left airspace neighbor; a second order: the upper airspace neighbor, the left airspace neighbor, the upper right airspace neighbor, the lower left airspace neighbor, and the upper left airspace neighbor; or a third order: the lower left airspace neighbor, the left airspace neighbor, the upper right airspace neighbor, the upper airspace neighbor, and the upper left airspace neighbor.

[0434] Item 13. The method according to any one of items 7-12, wherein at least one BV displacement having the first M minimum template matching costs is used to determine the SbBVGBVP.

[0435] Item 14. The method according to Item 13, wherein M is one of the following: 1, 2, 3, 4 or 5.

[0436] Item 15. The method according to any one of items 5 to 14 further includes: determining the validity of the BV displacement.

[0437] Item 16. The method according to Item 15, wherein the BV displacement is determined to be invalid based on the fact that the corresponding block referenced by the BV displacement is outside the current image.

[0438] Item 17. The method according to Item 15, wherein the BV displacement is determined to be invalid based on the overlap between the corresponding block referenced by the BV displacement and the current video block.

[0439] Item 18. The method according to any one of items 15 to 17 further comprises: if it is determined that the BV displacement is invalid, modifying the BV displacement, wherein the modified BV displacement is valid.

[0440] Item 19. The method according to any one of items 1 to 18, wherein for each sub-block of the current video block, the BV information of the corresponding block referenced by the BV displacement in the current image is used to derive the BV information for the sub-block, wherein the corresponding block includes a motion mesh covering the center sample point corresponding to the center sample point of the sub-block.

[0441] Item 20. The method according to Item 19, wherein the size of the sub-block is M×N, where M and N are positive integers.

[0442] Item 21. The method according to Item 20, wherein M equals N, and M is 4 or 8.

[0443] Item 22. The method according to any one of items 1 to 21, wherein the SbBVGBVP is not used based on at least one of the following: no valid BV information is derived for the center sub-block of the current video block, the sub-block corresponding to the center sub-block does not contain BV information, or the BV information of the sub-block corresponding to the center sub-block is invalid for the center sub-block or the current video block.

[0444] Item 23. The method according to any one of items 1 to 21, wherein the BV information of the central sub-block is reused for the first sub-block based on at least one of the following: no valid BV information is derived for the first sub-block of the current video block, the sub-block corresponding to the first sub-block does not include BV information, or the BV information of the sub-block corresponding to the first sub-block is invalid for the first sub-block or the current video block.

[0445] Item 24. The method according to any one of items 1 to 23, wherein whether the SbBVGBVP is used is indicated by one of the following: sequence level, picture group level, picture level, strip level, slice group level, sequence header, picture header, sequence parameter set (SPS), video parameter set (VPS), decoding parameter set (DPS), decoding capability information (DCI), picture parameter set (PPS), adaptive parameter set (APS), strip header or slice group header.

[0446] Item 25. The method according to any one of Items 1 to 24, wherein BV is replaced by motion vector (MV), the BVP list is replaced by motion vector prediction (MVP) list, intra-block copy (IBC) prediction is replaced by inter-frame prediction, the IBC merge list is replaced by the merge list, the IBC advanced motion vector prediction (AMVP) list is replaced by the AMVP list, and the block vector-guided vector is replaced by the MV-guided vector.

[0447] Item 26. The method according to any one of items 1 to 25, wherein the syntax elements in the bit stream are binarized into one of the following: a flag, a fixed-length code, an exponential Golomb (x) (EG(x)) code, a unary code, a rounded unary code, or a rounded binary code, and the syntax elements are signed or unsigned.

[0448] Item 27. The method according to any one of items 1 to 26, wherein the syntax elements in the bitstream are encoded or decoded using at least one context model or are bypassed.

[0449] Item 28. The method according to any one of items 1 to 27, wherein a syntax element is included in the bitstream based on at least one condition, said at least one condition including a condition that a function associated with the syntax element is applicable to the transformation.

[0450] Item 29. The method according to any one of items 1 to 28, wherein the syntax element is included at one of the following: block level, sequence level, picture group level, picture level, stripe level, slice group level, or codec structure, said codec structure including one of the following: codec tree unit (CTU), codec unit (CU), prediction unit (PU), transform unit (TU), codec tree block (CTB), codec block (CB), transform block (TB), prediction block (PB), 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), stripe header, or slice group header.

[0451] Item 30. The method according to any one of items 1 to 29, wherein the current video block refers to 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), transform block (TB), prediction block (PB), block, sub-block of block, sub-region within block, or region containing more than one sample point or pixel.

[0452] Item 31. The method according to any one of items 1 to 30, wherein whether and / or how the method is applied is included in the bitstream at one of the following: sequence level, picture group level, picture level, stripe level, slice group level, sequence header, picture header, sequence parameter set (SPS), video parameter set (VPS), decoding parameter set (DPS), decoding capability information (DCI), picture parameter set (PPS), adaptive parameter set (APS), stripe header or slice group header.

[0453] Item 32. The method according to any one of items 1 to 30, wherein whether and / or how the method is applied is included in one of the following: prediction block (PB), transform block (TB), codec block (CB), prediction unit (PU), transform unit (TU), codec unit (CU), virtual pipeline data unit (VPDU), codec tree unit (CTU), CTU row, strip, slice, sub-picture, or region containing more than one sample point or pixel.

[0454] Item 33. The method according to any one of items 1 to 30, wherein whether and / or how the method is applied is based on encoded information, said encoded information including at least one of the following: block size, color format, single-tree segmentation or dual-tree segmentation, color components, stripe type or picture type.

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

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

[0457] Item 36. 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 a method according to any one of items 1 to 35.

[0458] Item 37. A non-transitory computer-readable storage medium storing instructions that cause a processor to perform the method according to any one of items 1 to 35.

[0459] Item 38. 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 a guiding BV based on a first block vector (BV) shift of a current video block of the video; determining a sub-block-based block vector guided block vector prediction (SbBVGBVP) of the current video block based on the guiding BV; and generating the bitstream based on the SbBVGBVP.

[0460] Item 39. A method for storing a bitstream of video, comprising: determining a guiding BV based on a first block vector (BV) shift of a current video block of the video; determining a sub-block-based block vector guided block vector prediction (SbBVGBVP) of the current video block based on the guiding BV; generating the bitstream based on the SbBVGBVP; and storing the bitstream in a non-transitory computer-readable recording medium.

[0461] Example device Figure 28 A block diagram of a computing device 2800 in which various embodiments of the present disclosure may be implemented is shown. The computing device 2800 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).

[0462] It should be understood that, Figure 28 The computing device 2800 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.

[0463] like Figure 28 As shown, computing device 2800 includes general-purpose computing device 2800. Computing device 2800 may include at least one or more processors or processing units 2810, memory 2820, storage unit 2830, one or more communication units 2840, one or more input devices 2850, and one or more output devices 2860.

[0464] In some embodiments, the computing device 2800 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 2800 can support any type of interface to the user (such as "wearable" circuit systems, etc.).

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

[0466] Computing device 2800 typically includes various computer storage media. Such media can be any media accessible by computing device 2800, including but not limited to volatile and non-volatile media, or removable and non-removable media. Memory 2820 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 2830 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 2800.

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

[0468] Communication unit 2840 communicates with another computing device via a communication medium. Furthermore, the functionality of components in computing device 2800 can be implemented by a single computing cluster or by multiple computing machines communicating via communication connections. Therefore, computing device 2800 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.

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

[0470] In some embodiments, some or all components of computing device 2800 may not be integrated into a single device, but may be deployed in a cloud computing architecture. In a cloud computing architecture, components may be provided remotely and may 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 (e.g., the Internet) using suitable protocols. For example, a cloud computing provider provides applications via a wide area network 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 they may appear as a single access point for users. Thus, cloud computing architectures can be used to provide the components and functionality described herein from service providers at remote locations. Alternatively, they may be provided from conventional servers, or directly installed or otherwise installed on client devices.

[0471] In embodiments of this disclosure, computing device 2800 can be used to implement video encoding / decoding. Memory 2820 may include one or more video codec modules 2825 having one or more program instructions. These modules can be accessed and executed by processing unit 2810 to perform the functions of the various embodiments described herein.

[0472] In an example embodiment of performing video encoding, input device 2850 may receive video data as input 2870 to be encoded. The video data may be processed, for example, by video codec module 2825 to generate an encoded bitstream. The encoded bitstream may be provided as output 2880 via output device 2860.

[0473] In an example embodiment of performing video decoding, input device 2850 may receive an encoded bitstream as input 2870. The encoded bitstream may be processed, for example, by a video codec module 2825 to generate decoded video data. The decoded video data may be provided as output 2880 via output device 2860.

[0474] 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, the guiding BV is determined based on the first block vector (BV) shift of the current video block; Based on the guiding BV, determine the sub-block-based block vector guided block vector prediction (SbBVGBVP) of the current video block; and The conversion is performed based on the SbBVGBVP.

2. The method of claim 1, wherein SbBVGBVP is supported as a BV candidate or BV prediction mode.

3. The method of claim 1 or 2, wherein the SbBVGBVP uses a sub-block-based BV motion field in the corresponding block guided by the guiding BV for at least one of the following: block vector prediction (BVP), or intra-block copy (IBC) merge mode.

4. The method of claim 3, wherein the width and height of the corresponding block guided by the guiding BV are the same as the width and height of the current video block in the current image.

5. The method according to any one of claims 1 to 4, wherein the position of the corresponding block in the current image is based on the BV displacement of the position of the current video block added to the current image.

6. The method of claim 5, wherein determining the boot BV comprises: The first BV displacement of the current video block is determined as the guiding BV.

7. The method according to claim 5 or 6, wherein the BV displacement includes the spatial nearest neighbor BV of the current video block.

8. The method of claim 7, wherein the airspace neighbor comprises at least one of the following: The airspace adjacent to the left, The airspace above is adjacent, The upper right airspace is adjacent. The lower left airspace neighbor, or The upper left airspace is the nearest neighbor.

9. The method of claim 7 or 8, wherein if the first spatial neighbor of the current video block includes a candidate BV valid for the current video block, the candidate BV is selected as the BV shift, and if no candidate BV of the first spatial neighbor is valid for the current video block, the BV shift is not provided by the first spatial neighbor.

10. The method of claim 8, wherein the BV displacement is determined by checking at least one spatial nearest neighbor of the current video block based on a predefined priority order, and the first N valid BVs are used as BV displacements, where N is a positive integer.

11. The method of claim 10, wherein N is one of the following: 1, 2, 3, 4 or 5.

12. The method of claim 10, wherein the priority order is one of the following: The first order is: the left airspace neighbor, the upper airspace neighbor, the upper right airspace neighbor, the lower left airspace neighbor, and the upper left airspace neighbor. The second order is: the upper airspace neighbor, the left airspace neighbor, the upper right airspace neighbor, the lower left airspace neighbor, and the upper left airspace neighbor, or The third order is: the lower left airspace neighbor, the left airspace neighbor, the upper right airspace neighbor, the upper airspace neighbor, and the upper left airspace neighbor.

13. The method according to any one of claims 7 to 12, wherein at least one BV displacement having the first M minimum template matching costs is used to determine the SbBVGBVP.

14. The method of claim 13, wherein M is one of the following: 1, 2, 3, 4 or 5.

15. The method according to any one of claims 5 to 14, further comprising: Determine the validity of the BV displacement.

16. The method of claim 15, wherein the BV displacement is determined to be invalid based on the fact that the corresponding block referenced by the BV displacement is outside the current image.

17. The method of claim 15, wherein the BV displacement is determined to be invalid based on the overlap between the corresponding block referenced by the BV displacement and the current video block.

18. The method according to any one of claims 15 to 17, further comprising: If the BV displacement is determined to be invalid, the BV displacement is modified, and the modified BV displacement becomes valid.

19. The method according to any one of claims 1 to 18, wherein for each sub-block of the current video block, BV information of the corresponding block in the current image referenced by BV displacement is used to derive BV information for the sub-block, wherein the corresponding block includes a motion mesh covering a center sample corresponding to the center sample of the sub-block.

20. The method of claim 19, wherein the size of the sub-block is M×N, where M and N are positive integers.

21. The method of claim 20, wherein M equals N, and M is 4 or 8.

22. The method according to any one of claims 1 to 21, wherein the SbBVGBVP is not used based on at least one of the following: For the central sub-block of the current video block, no valid BV information was derived. The sub-block corresponding to the central sub-block does not include BV information, or The BV information of the sub-block corresponding to the central sub-block is invalid for the central sub-block or the current video block.

23. The method according to any one of claims 1 to 21, wherein the BV information of the central sub-block is reused for the first sub-block based on at least one of the following: For the first sub-block of the current video block, no valid BV information was derived. The sub-block corresponding to the first sub-block does not include BV information, or The BV information of the sub-block corresponding to the first sub-block is invalid for the first sub-block or the current video block.

24. The method according to any one of claims 1 to 23, wherein whether the SbBVGBVP is used is indicated by one of the following: sequence level, picture group level, picture level, strip level, slice group level, sequence header, picture header, sequence parameter set (SPS), video parameter set (VPS), decoding parameter set (DPS), decoding capability information (DCI), picture parameter set (PPS), adaptive parameter set (APS), strip header, or slice group header.

25. The method according to any one of claims 1 to 24, wherein BV is replaced by motion vector (MV), the BVP list is replaced by motion vector prediction (MVP) list, intra-block copy (IBC) prediction is replaced by inter-frame prediction, the IBC merge list is replaced by the merge list, the IBC advanced motion vector prediction (AMVP) list is replaced by the AMVP list, and the block vector-guided vector is replaced by the MV-guided vector.

26. The method according to any one of claims 1 to 25, wherein the syntax elements in the bitstream are binarized into one of the following: a flag, a fixed-length code, an exponential Golomb (x) (EG(x)) code, a unary code, a rounded unary code, or a rounded binary code, and the syntax elements are signed or unsigned.

27. The method according to any one of claims 1 to 26, wherein the syntax elements in the bitstream are encoded or decoded using at least one context model or are bypassed.

28. The method according to any one of claims 1 to 27, wherein a syntax element is included in the bitstream based on at least one condition, said at least one condition including a condition that a function associated with the syntax element is applicable to the transformation.

29. The method according to any one of claims 1 to 28, wherein the syntax element is included at one of the following: block level, sequence level, picture group level, picture level, stripe level, slice group level, or codec structure, said codec structure including one of the following: codec tree unit (CTU), codec unit (CU), prediction unit (PU), transform unit (TU), codec tree block (CTB), codec block (CB), transform block (TB), prediction block (PB), 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), stripe header, or slice group header.

30. The method according to any one of claims 1 to 29, wherein the current video block refers to 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), transform block (TB), prediction block (PB), block, sub-block of block, sub-region within block, or region containing more than one sample point or pixel.

31. The method according to any one of claims 1 to 30, wherein whether and / or how the method is applied is included in the bitstream at one of the following: sequence level, picture group level, picture level, stripe level, slice group level, sequence header, picture header, sequence parameter set (SPS), video parameter set (VPS), decoding parameter set (DPS), decoding capability information (DCI), picture parameter set (PPS), adaptive parameter set (APS), stripe header or slice group header.

32. The method according to any one of claims 1 to 30, wherein whether and / or how the method is applied is included in one of the following: prediction block (PB), transform block (TB), codec block (CB), prediction unit (PU), transform unit (TU), codec unit (CU), virtual pipeline data unit (VPDU), codec tree unit (CTU), CTU row, strip, slice, sub-picture, or region containing more than one sample point or pixel.

33. The method according to any one of claims 1 to 30, wherein whether and / or how the method is applied is based on encoded information, said encoded information including at least one of the following: block size, color format, single-tree segmentation or dual-tree segmentation, color components, stripe type or picture type.

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

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

36. 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 35.

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

38. 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: The guiding BV is determined based on the first block vector (BV) displacement of the current video block of the video; Based on the guiding BV, determine the sub-block-based block vector guided block vector prediction (SbBVGBVP) for the current video block; and The bitstream is generated based on the SbBVGBVP.

39. A method for storing a bitstream of video, comprising: The guiding BV is determined based on the first block vector (BV) displacement of the current video block of the video; Based on the guiding BV, determine the sub-block-based block vector guided block vector prediction (SbBVGBVP) for the current video block. The bit stream is generated based on the SbBVGBVP; as well as The bitstream is stored in a non-transitory computer-readable recording medium.