Methods, apparatuses, and media for video processing

CN123036849APending Publication Date: 2026-11-03DOUYIN VISION CO LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202580022990.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-04-12
Filing Date
2025-03-21
Publication Date
2026-11-03

AI Technical Summary

Technical Problem

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

Method used

By employing temporal block vector prediction or temporal block vector candidate methods, the temporal block vector prediction or candidate of the current video unit is determined, thereby improving the video encoding or decoding performance.

Benefits of technology

It improves the performance of video encoding or decoding.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN123036849A_ABST
    Figure CN123036849A_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure provide a solution for video processing. A method for video processing is proposed. In the method, at least one of temporal block vector (BV) prediction or a temporal BV candidate for a current video unit of a video is determined for a conversion between the current video unit and a bitstream of the video. The conversion is performed based on the at least one of the temporal BV prediction or the temporal BV candidate.
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 temporal block vector prediction or temporal block vector candidates. 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 Moving Picture Experts Group (MPEG)-2, MPEG-4, ITU-T H.263, ITU-T H.264 / MPEG-4 Part 10 Advanced Video Codec (AVC), ITU-T H.265 High Efficiency Video Codec (HEVC) standard, and Multifunctional 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: determining at least one of a temporal block vector (BV) prediction or a temporal BV candidate for a current video unit and a bitstream of the video; and performing the conversion based on at least one of the temporal BV prediction or the temporal BV candidate. The method according to the first aspect of this disclosure utilizes temporal BV prediction or candidates for video encoding or decoding, thereby improving encoding or decoding performance.

[0005] In a second aspect, an apparatus for video processing is proposed. The apparatus includes 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 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 execute 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 a video processing apparatus. The method includes: determining a temporal block vector (BV) prediction or a temporal BV candidate for the current video unit; and generating a bitstream based on at least one of the temporal BV prediction or the temporal BV candidate.

[0008] In a fifth aspect, a method for storing a bitstream of video is proposed. The method includes: determining a temporal block vector (BV) prediction or a temporal BV candidate for the current video unit; generating a bitstream based on at least one of the temporal BV prediction or the temporal BV candidate; and storing the bitstream in a non-transitory computer-readable recording medium.

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

[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 an 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 An example of spatial proximity locations used in IBC vector prediction is 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 airspace 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 The use of the IntraTMP block vector for IBC blocks is shown; Figure 13A An example of a candidate list of IBC block vectors that only contain IBC block vectors is shown; Figure 13B An example of a candidate list of IBC block vectors that contains both IBC block vectors and IntraTMP block vectors is shown; 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 An example of how to derive AR-BVP is shown; Figure 23 The five positions in Bn are shown; Figure 24 The intra-frame template matching search area used is shown; Figure 25 The use of the IntraTMP block vector for IBC blocks is shown; Figure 26 The modified SGPM process is shown; Figure 27A Candidate locations for the airspace candidate are shown; Figure 27B The candidate locations for the time-domain candidates are shown; Figure 28The candidate positions for time-domain BV candidates are shown, and the spatial domain can be left, top, upper right, lower left, or upper left. Figure 29 Candidate positions for time-domain BV candidates are shown; Figure 30 The first style of candidate positions for time-domain BV candidates is shown; Figure 31 A second style of candidate positions for time-domain BV candidates is shown; Figure 32A An example is shown where the co-occurrence block has BV information, and the co-occurrence block is unidirectionally predicted and has BV in a list of reference images X; Figure 32B Examples are shown where the co-op blocks have BV information, and where the co-op blocks are bidirectionally predicted and have BV in each list of reference images; Figure 33A The six positions in Blk1 are shown, and the corresponding blocks have motion displacements relative to the current block; Figure 33B The six positions in Blk1 are shown, and the corresponding block has the same position as the current block; Figure 34 A flowchart of a method for video processing according to some embodiments of the present disclosure is shown; and Figure 35 A block diagram of a computing device in which various embodiments of the present disclosure may be implemented is shown.

[0012] In all accompanying drawings, the same or similar reference numerals usually refer to 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,” and / or “having” 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 1 This is a block diagram illustrating an example video encoding / decoding system 100 from which the techniques of this disclosure may be utilized. As shown, the video encoding / decoding system 100 may include a source device 110 and a destination device 120. The source device 110 may also be referred to as a video encoding device, and the destination device 120 may also be referred to as a video decoding device. In operation, the source device 110 may be configured to generate encoded video data, and the destination device 120 may be configured to decode the encoded video data generated by the source device 110. The source device 110 may include a video source 112, a video encoder 114, and an input / output (I / O) interface 116.

[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 an encoded representation of the video data. The bitstream may include encoded images and associated data. An encoded image is an encoded 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 can be directly transmitted 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, 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 2 This is a block diagram illustrating an example of a video encoder 200 according to some embodiments of the present disclosure. The video encoder 200 may be... Figure 1 An example of a video encoder 114 in system 100 is shown.

[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 inter-frame and intra-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 for a reference video block for the current video block in the reference images of list 0 or list 1. 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 a reference video block for the current video block in the reference images in list 0, and can also search for another reference video block for the current video block in the reference images in list 1. 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, the motion estimation unit 204 may indicate a value to the video decoder 300 in the syntax structure associated with the current video block, which indicates that the current video block has the same motion information as another video block.

[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] Transform 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 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 from 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 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 encoded bitstreams. Encoded bitstreams 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 pattern. AMVP is used, which includes 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 pattern" can 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 coding, 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. Inverse quantization unit 304 inverse quantizes (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 are described with reference to multi-function video codecs or other specific video codecs, the disclosed techniques are also applicable to other video encoding or decoding techniques. Additionally, although some embodiments describe video encoding and decoding steps in detail, it should be understood that the corresponding decoding steps for undoing encoding will be implemented by the decoder. Furthermore, the term "video processing" includes video encoding / decoding or compression, video decoding or decompression, and video transcoding, wherein video pixels are represented from one compression format to another or at different compression bitrates.

[0056] 1. Brief Overview This disclosure relates to image / video codecs, and in particular to temporal block vector prediction. It can be applied to existing video codec standards such as HEVC or standard VVC (Video Codec for Multipurpose). 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. These two organizations jointly developed the H.262 / MPEG-2 video standard, the H.264 / MPEG-4 Advanced Video Codec (AVC) standard, and the H.265 / HEVC standard. 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 Finality (FDIS) at the July 2020 meeting.

[0059] In January 2021, JVET established an Exploratory Experiment (EE) with the goal of improving compression efficiency beyond the capabilities of VVC using novel traditional algorithms. Shortly thereafter, ECM was built as a general-purpose software foundation for long-term exploratory work toward next-generation video codec standards.

[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 / 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 or decoded by 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 or decoded by 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 verification on blocks with a width or height of no more 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 4x4 sub-blocks. For larger current blocks, a hash key match with a reference block is determined when all hash keys of all 4x4 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, IBC mode is transmitted via signaling using a flag, and it can be transmitted via signaling as either IBC AMVP mode or IBC skip / Merge mode as follows: – IBC Skip / Merge Mode: The Merge candidate index is used to indicate which block vector from the list of neighboring candidate IBC-encoded or decoded 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 or 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 or 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 block vector prediction value index.

[0066] 2.1.1. Simplification of IBC vector prediction Figure 4 An example of spatial proximity locations used in IBC vector prediction is shown. BV predictions for Merge and AMVP modes in IBC will share a common list of predictions consisting of the following elements: • Two adjacent airspace locations ( Figure 4 (A1, B1) • 5 HMVP entries • Default 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. Figure 5 The current CTU processing order and its available reference points in the current CTU and the left CTU are shown.

[0069] Based on the current location of the encoding / decoding 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 samples already reconstructed 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 samples already reconstructed in the current CTU, if the brightness position (0,64) relative to the current CTU has not yet been reconstructed, the current block can also 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 samples already reconstructed in the current CTU, if the brightness position (64,0) relative to the current CTU has not yet been reconstructed, the current block can also 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 reference samples that have already been reconstructed 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 the IBC mode in VVC and other inter-frame coding and decoding tools (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 in conjunction 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 merging candidates in pairs and motion predictions based on history, 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 a merge should not be used if a merge candidate is invalid (out of range or 0). As described below, this bitstream consistency constraint is expressed based on a virtual buffer.

[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 a 4-integer pixel.

[0082] – The number of IBC Merge candidates can be transmitted separately in the strip header from the number of regular Merge candidates, sub-block Merge 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, and Wv = 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), it is valid if the following are true for the block vector bv = (bv[0], bv[1]); otherwise, it is invalid: ibcBuf[ (x + bv[0])% wIbcBuf][ (y + bv[1]) % ctbSize ] should not be equal to 1. 2.1.4. IBC Virtual Cache Test The luminance block vector bvL (luminance block vector with 1 / 16 fractional sample precision) must comply with the following constraints: – CtbSizeY is greater than or equal to ( ( yCb + ( bvL[ 1 ]>>4 ) )&( CtbSizeY 1 ) ) +cbHeight.

[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) represents the brightness position of the top-left sample of the current luma 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 Figure 6 The spatial proximity locations used in the IBC Merge / AMVP list construction are shown.

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

[0096] • 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.

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

[0098] • Candidates from neighboring blocks in non-adjacent spatial domains (also known as non-adjacent candidates) can be added to the candidate lists for IBC Merge mode and IBC AMVP. These non-adjacent candidates are inserted between adjacent spatial domain candidates and HBVP candidates for both IBC Merge and IBC AMVP. The same reference region for non-adjacent merges in regular inter-frame mode is reused for IBC.

[0099] • The restriction that adjacent airspace candidates cannot be used for the IBC Merge of a 4x4 CU has been removed.

[0100] The HBVP table size of IBC is increased to 25. After a maximum of 20 IBC Merge candidates are derived using full deduplication, they are reordered together. After reordering, the top 6 candidates with the lowest template matching cost are selected as the final candidates in the IBC Merge list.

[0101] Zero vector candidates used to populate the IBC Merge / AMVP list are replaced by a set of BVP candidates located in the IBC reference region. Zero vectors are invalid as block vectors in the IBC Merge mode and are therefore discarded as BVPs in the IBC candidate list.

[0102] Figure 7 The diagram shows fill candidates for replacing the zero vector in the IBC list. Three candidates are located at the nearest corner of the reference region, and three additional candidates are determined in the middle of three sub-regions (A, B, and C), their coordinates determined by the width and height of the current block and the ΔX and ΔY parameters, as shown. Figure 7 As shown.

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

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

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

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

[0107] Figure 8 The IBC reference region is shown, depending on the current CU position. Since the IBC motion vector is constrained to (i) integers and (ii) in the case of... Figure 8 Within the reference area shown, template matching and refinement for both IBC-TM Merge and AMVP modes are 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 or 4-pixel precision based 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.

[0108] 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 or decoding a CTU (m, n) is shown. Dark gray blocks represent the current CTU; light gray blocks represent the reference region; and white blocks represent invalid reference regions. Specifically, for a CTU (m, n) to be encoded or 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, the 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 reference region expansion, where C represents the CTU size.

[0109] 2.5. Reconstructing the Reordered IBC (RR-IBC) The Reconstructed Reordered IBC (RR-IBC) mode is permitted for use with IBC-encoded or decoded blocks. When RR-IBC is applied, samples in the reconstructed block are flipped according to the current block's flip type. On the encoder side, the original block is flipped before motion search and residual computation, while the predicted block is derived without flipping. On the decoder side, the reconstructed block is flipped back to recover the original block.

[0110] For blocks encoded or decoded using RR-IBC, two flipping methods (horizontal flip and vertical flip) are supported. Syntax flags are first signaled for blocks encoded or decoded using IBC AMVP, indicating whether the reconstruction has been flipped, and if so, another flag is further signaled to specify the flip type. For IBC Merge, the flip type is inherited from the neighboring block, with no syntax signaling. Considering horizontal or vertical symmetry, the current block and reference block are typically aligned horizontally or vertically. Therefore, when a horizontal flip is applied, the vertical component of the BV is not signaled and is presumed to be equal to 0. Similarly, when a vertical flip is applied, the horizontal component of the BV is not signaled and is presumed to be equal to 0.

[0111] To better utilize symmetry, a flip-aware BV adjustment method is applied to refine block vector candidates. 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. For example, as Figure 10A and Figure 10B As shown, ( xnbr , 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 or decoded with a horizontal flip. BV cur The horizontal component is transmitted through the direction of BV nbr The horizontal component (represented as) BV nbr h The motion displacement is added and calculated, that is, BV cur h =2( x nbr - x cur ) + BV nbr h Similarly, in cases where adjacent blocks are encoded or decoded with a vertical flip, BV cur The vertical component is through the direction BV nbr The vertical component (represented as) BV nbr v The motion displacement is added and calculated, that is, BV cur v =2( y nbr - y cur ) + BV nbr v .

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

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

[0114] 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 for MBVD index encoding or decoding. The MBVD index is binarized using rice codes with a parameter equal to 1.

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

[0116] 2.7. Intra-frame template matching Intra-frame template matching prediction (intra-frame TMP) is a special intra-frame prediction mode that copies the best prediction block from the reconstructed portion of the current frame, whose L-shaped template matches the current template. For a predefined search range, the encoder searches the reconstructed portion of the current frame for the template most similar to the current template and uses the corresponding block as the prediction block. The encoder then transmits the use of this mode via signal transmission, and the same prediction operation is performed on the decoder side.

[0117] Figure 11 The intra-frame template matching search region used is shown. The prediction signal is obtained by comparing the L-shaped causal nearest neighbors of the current block with... Figure 11 This is generated by matching another block within a predefined search region, which includes: R1: Current CTU R2: Top left CTU, R3: Above CTU, R4: Left CTU.

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

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

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

[0121] in" " is a constant that controls the gain / complexity tradeoff. In practice, " "Equals 5."

[0122] For CUs with width and height dimensions less than or equal to 64, the intra-frame template matching tool is enabled. The maximum CU size used for intra-frame template matching is configurable.

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

[0124] 2.8. Using block vectors derived from IntraTMP for IBC Figure 12 The use of IntraTMP block vectors for IBC blocks is illustrated. A method using block vectors derived from IntraTMP for IBC is proposed. The proposed approach stores the IntraTMP block vectors in an IBC block vector cache, and the current IBC block can use both the IBC BV and IntraTMP BV of neighboring blocks as BV candidates for the IBC BV candidate list, such as... Figure 12 As shown.

[0125] Figure 13A An example of a candidate list of IBC block vectors that only exist is shown.

[0126] Figure 13B An example of a candidate list of IBC block vectors that simultaneously contain both IBC block vectors and IntraTMP block vectors is shown.

[0127] Figure 13A and Figure 13B An example is shown comparing block vector candidates from the IBC block vector candidate list that come only from neighboring blocks encoded or decoded by IBC, and block vector candidates from the proposed IBC block vector candidate list that come from both neighboring blocks encoded or decoded by IBC and neighboring blocks encoded or decoded by IntraTMP. IntraTMP block vectors are added to the IBC block vector candidate list as spatial domain candidates.

[0128] It should be noted that the proposed method makes IBC block vector prediction more efficient by using different block vectors without requiring additional memory for storing block vectors.

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

[0130] The initial Merge candidate list is first constructed according to a given inspection order, such as spatial, TMVP, non-adjacent, HMVP, paired, and dummy 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 of template matching. The indices of the selected Merge candidates in the reordered Merge candidate list are 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.

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

[0132] • 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 in TM Merge mode using refined motion.

[0133] For a sub-block-based Merge candidate with a sub-block size equal to Wsub×Hsub, the upper template includes several sub-templates with a size of Wsub×1, and the left template includes several sub-templates with a size of 1×Hsub. Figure 15 This shows a template and reference samples of a block with sub-block motion information using the current block. (See also:) 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.

[0134] • Reordering criteria During the reordering process, a candidate is considered redundant if the cost difference between a candidate and its predecessor is less than the lambda value, 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 criterion on the encoder side.

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

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

[0137] ■ 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 where the candidate is sufficiently different from the previous candidate.

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

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

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

[0141] • Extension of AMVP pattern 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 construct a refined AMVP candidate list. Additionally, MVP candidates with TM costs exceeding a threshold equal to five times the cost of the first MVP candidate are skipped.

[0142] Note that when surround motion compensation is enabled, MV candidates must be clipped while taking surround offset into account.

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

[0144] 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 encoded or decoded in merge mode, the index of the best merge candidate is encoded using rounded univariate binarization (TU). The first bit of the merge index is encoded or decoded using the context, and bypass encoding or decoding is used for the remaining bits.

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

[0146] 2.10.1. Airspace candidate derivation 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 The locations of the airspace merge candidates are shown. (In the area located...) Figure 16 Of the candidates at the indicated positions, a maximum of four merged candidates are selected. The derivation order is B1, A1, B0, A0, and B2. Position B2 is considered only if one or more CUs at positions B0, A0, B1, and A1 are unavailable (e.g., because it belongs to another stripe or slice) or if it is intra-coded or decoded. After adding the candidate 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 and decoding efficiency. Figure 17 The diagram shows the candidate pairs considered for redundancy checks of spatial merge candidates. To reduce computational complexity, not all possible candidate pairs are considered in the mentioned redundancy checks. 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.

[0147] 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 index are explicitly transmitted via signal transmission in the strip header. Figure 18 A schematic diagram illustrating motion vector scaling for temporal merge candidates is shown. 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.

[0148] Figure 19 The candidate positions, C0 and C1, are shown for the time-domain merge candidate. The position for the time-domain candidate is selected between candidate C0 and C1, as follows: Figure 19 As shown. If the CU at position C0 is unavailable, intra-coded or decoded, or outside the current line of the CTU, then position C1 is used. Otherwise, position C0 is used for the derivation of the temporal merge candidate.

[0149] 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 or 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-encoded or decoded CU is present, the associated motion information is added to the last entry of the table as a new HMVP candidate.

[0150] The HMVP table size S is set to 6, indicating 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, the first-in, first-out (FIFO) rule of the constraints is utilized, 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.

[0151] 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, following the TMVP candidates. Redundancy checks are applied to HMVP candidates for spatial or temporal Merge candidates.

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

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

[0154] 2.10.4. Pairwise average Merge candidate derivation 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. Additionally, if the half-pixel interpolation filter indices of p0Cand and p1Cand are different, they are set to 0.

[0155] When the Merge list is not full after adding pairwise average Merge candidates, zero MVP is inserted at the end until the maximum number of Merge candidates is reached.

[0156] 2.10.5. Merge estimated 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 current CU's Merge candidate list. Furthermore, the update process for the historical motion vector prediction candidate list is only updated if (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 transmitted as log2_parallel_merge_level_minus2 in the sequence parameter set.

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

[0158] 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 TM cost. 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 orientations 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.

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

[0160] The SbTVMP process is as follows: Figure 21A and Figure 21B As shown. Figure 21A The spatial neighbor block used by ATVMP is shown. Figure 21B This diagram illustrates how the motion field of a sub-CU is derived by applying motion displacements from its spatial nearest neighbors and scaling motion information from the corresponding co-located sub-CU. 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).

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

[0162] 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 Sequence Parameter Set (SPS) flags. If SbTVMP mode is enabled, the SbTVMP prediction is added as the first entry to 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.

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

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

[0165] 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 combines IBC with Merge mode and intra-prediction to obtain two prediction signals. These two prediction signals 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:

[0166] in and These represent the IBC prediction signal and the intra-frame prediction signal, respectively. If both the top CU and the left CU are intra-coded or decoded, then... Set to (1,2) if either the top CU or the left CU is intra-coded or decoded. It is set to (2,2) if both the top CU and the left CU are IBC encoded or decoded. It is set to equal to (3,2). Otherwise (i.e., if intra-frame prediction is a directional mode), the final prediction is obtained by adaptively switching the prediction samples of the intra-frame mode and the prediction samples of the IBC. For illustrative purposes, assume the current CU size is... Furthermore, the intra-frame mode is either horizontal or vertical. If both the top neighbor CU and the left neighbor CU are intra-coded or decoded, then the final predicted left neighbor CU will be... Part (horizontal mode) or top The portion (vertical mode) is set as the intra-frame prediction signal; and if only one of the top CU and the left CU is intra-frame encoded or decoded, the final predicted left CU... Part (horizontal mode) or top Partial (vertical mode) is set as the intra-frame prediction signal; and if both the upper CU and the left CU are IBC or inter-frame encoded or decoded, the final prediction of the left CU is... Part (horizontal mode) or top 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.

[0167] 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 follows:

[0168] in and 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).

[0169] An intra-prediction mode (IPM) candidate list is used to generate the intra-prediction signal, and the IPM candidate list size is predefined as 2. The IPM index is transmitted via signaling to indicate which IPM to use.

[0170] 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. The prediction signals for the two 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 as 3. A total of 48 geometric partitioning modes are available, divided into two sets of geometric partitioning modes as follows.

[0171] Table 1: Geometric segmentation patterns in the first set of geometric segmentation patterns

[0172] Table 2: Geometric segmentation patterns in the second set of geometric segmentation patterns

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

[0174] 2.12.4. Bidirectional forecasting 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.

[0175] Only the signaling and hybridization scheme are slightly modified compared to the existing unidirectional 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 bidirectional prediction IBC GPM.

[0176] 2.12.5. IBC with local illumination compensation (IBC-LIC) Intra-Block Copy with Local Illumination Compensation (IBC-LIC) is an encoding / decoding tool that compensates for local illumination variations within an image between an IBC-encoded or decoded CU and its predicted block using linear equations. Except for the use of block vectors to generate a reference template in IBC-LIC, the parameters of the linear equations are derived in the same manner as those used for inter-frame prediction (LIC). IBC-LIC can be applied to both IBC AMVP and IBC Merge modes. For IBC AMVP mode, an IBC-LIC flag is signaled to indicate the use of IBC-LIC. For IBC Merge mode, the IBC-LIC flag is inferred from the Merge candidate.

[0177] 2.13. Block Vector Prediction for Automatic Relocation In ECM, block vector prediction (BVP) can be obtained from non-adjacent blocks, which are selected from a set of candidate locations without any guidance.

[0178] Automatically relocated block vector prediction (AR-BVP) is introduced into the IBC Merge / AMVP candidate list construction. AR-BVP can be derived as the guiding BV plus the BV of the reference block located by the guiding BV. AR-BVP candidates are inserted after HBVP candidates.

[0179] Figure 22 An example of how to derive AR-BVP is shown. For example... Figure 22 As shown, the guiding block vector BV0,1 associated with the current block B0 points to the reference block B1. If B1 has a BV denoted as BV1,2 pointing to the reference block B2, then BV0,2, given by BV0,2 = BV0,1 + BV1,2, is defined as the AR-BVP guided by BV0,1. Similarly, BV0,n+1 can be derived by the following formula: BV 0,n+1 =BV 0,n +BV n,n+1 = BV 0,1 +BV 1,2 +…+BV n-1,n +BV n,n+1 .

[0180] Three tests are performed in this EE. In test a, the length of the AR-BVP tracing path is 1 (i.e., n=1). In test b, the length of the AR-BVP tracing path is 2 (i.e., n=2). In test c, there are no constraints on the length of the AR-BVP tracing path.

[0181] Figure 23Five positions in Bn are shown. When deriving BVn,n+1 under the guidance of BV0,n, all five positions of Bn (including the top left (e.g., ...)) are shown. Figure 23 LT in the middle), top right (e.g., Figure 23 RT in the middle), center (e.g., Figure 23 (Ctr in the middle), bottom left (e.g., Figure 23 (LB in the middle) and bottom right (e.g., Figure 23 The position of RB in the array is checked to find BVn,n+1.

[0182] In our implementation, the initial guidance block vector BV0,1 is set to an existing BVP that is already in the IBC Merge / AMVP candidate list.

[0183] AR-BVP candidates are inserted after HBVP candidates. The size of the IBC Merge / AMVP candidate list remains unchanged.

[0184] 2.14. IBC BVP-Merge and Bidirectional Prediction IBC Merge IBC-BVP-Merge is similar to AMVP-Merge, deriving a BV from the IBC block vector prediction (BVP) and a second BV from the IBC Merge to form a bidirectional prediction for IBC. Two distinct indices for the IBC BVP and IBC Merge candidates are transmitted via signaling.

[0185] Bidirectional predictive IBC Merge is enabled along with MBVD and unidirectional Merge. In bidirectional predictive IBC Merge, two BVs from the existing IBC Merge candidate list are derived using two different indices transmitted via signaling. Bidirectional predictive IBC Merge is applied to both IBC regular Merge and IBC MBVD. For non-SCC categories, bidirectional predictive IBC Merge, IBC MBVD, and IBC unidirectional Merge are enabled.

[0186] 2.15. Intra-frame template matching Intra-Template Matching Prediction (IntraTMP) is a special intra-prediction mode that copies the best prediction block from the reconstructed portion of the current frame, matching the L-shaped template of that reconstructed portion with 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 the same prediction operation is performed on the decoder side.

[0187] The prediction signal is obtained by comparing the L-shaped, top-only, or left-only causal nearest neighbors of the current block with... Figure 24 It is generated by matching another block within a predefined search region. There are 6 predefined search regions, namely... Figure 24 R1 to R6 in the CTU contain reconstruction samples from the top CTU and the left CTU, as well as partial reconstruction samples within the current CTU located above, to the left, to the lower left, and to the upper right of the current block.

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

[0189] A given search order across six regions is utilized: R4, R5, R6, R1, R2, and R3. Within each region, the decoder constructs a candidate list of up to "19" intra-template matching block vectors, ranked in ascending order based on template cost (SAD). The following modes are supported: 1- Single Predicted Value: A single predicted value is selected from the candidate list.

[0190] 2- Fusion of Multiple Predictions: Multiple predictions are blended multiple times to derive the final prediction block. The blending weights are either calculated from the template matching cost of each prediction or using a Wiener filter-based weight derivation method.

[0191] 3- Subpixel precision: When using a single prediction value, subpixel precision can be used at 1 / 2 pixel precision, 1 / 4 pixel precision, and 3 / 4 pixel precision, with each precision having 8 possible directions.

[0192] 4- Linear Filter Model: A linear filter can be learned between the reference template and the current template, and the linear model is applied to the reference block. This mode can be used for single predictions when sub-pixel precision is not used.

[0193] 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 = min(64,a BlkW), SearchRange_h = min(64,a BlkH).

[0194] in" " is a constant that controls the gain / complexity tradeoff. In practice, " "Equals 5."

[0195] Figure 24 The intra-frame template matching search area used is shown.

[0196] To accelerate the template matching process, the search range of all search regions is downsampled by a factor of 3. After finding the best match, a refinement process is performed. Refinement is accomplished through a second template matching search around the best match with the reduced range.

[0197] For CUs with width and height dimensions less than or equal to 64, the intra-frame template matching tool is enabled. The maximum CU size used for intra-frame template matching is configurable.

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

[0199] 2.15.1. Block vector candidates derived from IntraTMP for IBC In this method, the block vector (BV) derived from IntraTMP (Intra-Temporal Matching Prediction) is used for Intra-Block Copy (IBC). The IntraTMP BV of the stored neighboring blocks, together with the IBC BV, are used as spatial BV candidates in the construction of the IBC candidate list.

[0200] The IntraTMP block vector is stored in the 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 25 As shown. Figure 25 The use of the IntraTMP block vector for IBC blocks is shown.

[0201] IntraTMP block vectors are added as spatial domain candidates to the IBC block vector candidate list. IntraTMP block vectors are stored at quarter-pixel resolution and used for encoding and decoding of IBC block vectors and HMVP.

[0202] 2.15.2. IntraTMP with Merge Candidate During testing, new candidates consisting of block vectors from neighboring PUs encoded or decoded in IBC or IntraTMP mode are added to the IntraTMP search process. During the selection of neighboring candidates, up to 25 local and non-local PUs can be examined, these candidates are evaluated along with other candidates, and 30 best candidates (the same as in ECM) are selected for further refinement.

[0203] Neighboring candidates can come from outside the IntraTMP search area, and such external candidates are prioritized.

[0204] 2.15.3. AR-BVP for IntraTMP Merge Candidates This method proposes adding AR-BVP to the IntraTMP Merge candidate list during its construction. AR-BVP candidates are inserted into the IntraTMP Merge candidate list in the following order: 1. Inherit from the nearest neighbor.

[0205] 2. Inherited from non-adjacent neighbors.

[0206] 3. AR-BVP constructed from existing candidates.

[0207] The existing BVs in the list and the constructed AR-BVPs will be used as guide block vectors. For a given guide BV, the five positions of the reference block—top left, top right, center, bottom left, and bottom right—are checked to obtain the reference block's BV and construct the AR-BVP. The construction process ends when no new AR-BVPs are constructed or the list reaches its maximum size of 50.

[0208] The IntraTMP Merge candidate list is also sorted based on template matching cost, and the top 10 best candidates are retained. This Merge list will then be used in subsequent template matching processes.

[0209] 2.15.4. SGPM with IntraTMP and IBC This paper proposes extending the idea of ​​geometric prediction, which combines block vector-based prediction and regular intra-frame prediction, from IBC-GPM to SGPM. Specifically, in addition to the regular prediction mode, the SGPM mode also tests the block vectors of neighboring CUs. The following is proposed: 1- Obtain the block vectors of all Merge candidates.

[0210] 2- Select the optimal block vector based on the SATD template cost.

[0211] 3- Construct an internal test of up to 6 best block vectors from the SGPM candidate list (if available).

[0212] The differences from the ECM-11 SGPM design are as follows: Figure 26 It is depicted in the middle. Figure 26 The modified SGPM procedure is shown. It concerns generalizing two intra-frame prediction values ​​from conventional to conventional or block-vector based.

[0213] The identifiers intra_pred_0 and intra_pred_1 correspond to regular predictions or block vector-based predictions obtained from neighboring IntraTMP / IBC information.

[0214] 2.15.5. IntraTMP or IBC extension for DIMD In ECM-11.0 DIMD mode, up to five intra-frame modes are derived from the reconstructed neighboring samples. The final prediction is generated by mixing the up to five predictions and the planar mode predictions with weights derived from the gradient histogram.

[0215] In ECM-11.0, block vector-based predictions obtained from IBC and IntraTMP modes were observed to be heavily used in CUs that are intra-coded or decoded. This type of prediction is similar to planar modes because it is non-directional.

[0216] The method includes adaptively selecting between plane-based or block vector-based predictions obtained from IntraTMP or IBC modes of neighboring blocks for mixing with angular intra-frame predictions.

[0217] 2.15.6. IntraTMP or IBC extensions for TIMD This method proposes an IntraTMP or IBC extension for TIMD. The method includes adaptive selection between planar or block vector-based predictions obtained from IntraTMP or IBC modes of neighboring blocks for mixing with angular intra-frame prediction.

[0218] This method proposes to adaptively select the non-angular modes included in TIMD from a broad set of non-angular modes, including planar modes, DC modes, and block vector prediction modes.

[0219] Specifically: 1- All Merge candidate block vectors are collected.

[0220] 2- Template Cost (SATD) is used to select between block vector-based prediction and planar prediction and DC prediction.

[0221] 3- The non-angled pattern from the set with the smallest template SATD will be selected as the TIMD non-angled pattern, and locdep and SATD costs will be recorded for further TIMD weight calculation.

[0222] The same mixture of 4-TIMD was used.

[0223] 2.15.7. IntraTMP extension for LIC (IntraTMP-LIC) This proposes allowing LIC to be applied to blocks in IntraTMP mode. Specifically: 1. In IntraTMP mode, the LIC is transmitted via signaling using CU-level flags.

[0224] 2. For a given CU, the use of LIC and FLM (a CCCM-like filter) is mutually exclusive.

[0225] 3. Allows LIC to be used with fusion in intra-frame TMP.

[0226] 4. For screen content encoding / decoding, only the top-only and only-left-only templates are allowed for use in LIC model determination. For camera capture encoding / decoding, only the top-left template is used.

[0227] 5. Similar to IBC-LIC, Multimode Linear Model (MMLM) is supported for screen content encoding and decoding.

[0228] 6. When LIC is used for a given CU, the intra-frame TMP search process uses the MRSAD distortion function instead of the SAD distortion function to search for the block vector.

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

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

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

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

[0233] For blocks encoded or 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.

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

[0235] Figure 27A The candidate locations for the airspace candidate are shown.

[0236] Figure 27B The candidate positions for the time-domain candidate are shown.

[0237] Figure 28 The candidate positions for time-domain BV candidates are shown. The spatial domain can be left, top, upper right, lower left, or upper left.

[0238] Figure 29 The candidate positions for time-domain BV candidates are shown.

[0239] Figure 30 The first style of candidate positions for time-domain BV candidates is shown.

[0240] Figure 31 A second style of candidate positions for time-domain BV candidates is shown.

[0241] Figure 32A and Figure 32B This shows that the co-position block has BV information. Figure 32A In this context, the co-position block is predicted unidirectionally and has a BV in a list of reference images X. Figure 32B In this model, the co-occurrence blocks are predicted bidirectionally and have a BV in each reference image list.

[0242] Figure 33A and Figure 33B Six positions in Blk1 are shown. Figure 33A In this context, the corresponding block has a displacement relative to the current block. Figure 33B In this context, a sibling block has the same position as the current block.

[0243] Time-domain BV prediction 1. In one example, time-domain BV prediction can be incorporated into BV prediction.

[0244] a. In one example, the BV prediction can be at least one of the following.

[0245] (a) In one example, BV prediction can be a regular IBC Merge prediction.

[0246] (b) In one example, BV prediction can be a regular IBC AMVP prediction.

[0247] (c) In one example, the BV prediction can be an IBC-TM Merge prediction.

[0248] (d) In one example, BV prediction can be IBC-TM AMVP prediction.

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

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

[0251] (g) In one example, BV prediction can be IBC-MBVD prediction.

[0252] (h) In one example, BV prediction can be IBC-CIIP prediction.

[0253] (i) In one example, BV prediction can be a one-way IBC-GPM prediction.

[0254] (j) In one example, BV forecasts can be bidirectional IBC GPM forecasts.

[0255] (k) In one example, BV prediction can be IBC-LIC prediction.

[0256] (l) In one example, BV prediction can be a regular IntraTMP prediction.

[0257] (m) In one example, BV prediction can be an SGPM with IntraTMP and IBC.

[0258] (n) In one example, BV prediction can be an IntraTMP or IBC extension of DIMD.

[0259] (o) In one example, BV prediction can be an IntraTMP or IBC extension of TIMD.

[0260] (p) In one example, BV prediction can be an IntraTMP extension of LIC.

[0261] (q) In one example, BV prediction can be string copy vector prediction.

[0262] (r) In one example, the BV prediction can be any other BV prediction.

[0263] 2. In one example, a time-domain BV candidate can be introduced into the BV candidate list.

[0264] a. In one example, the BV candidate list can be at least one of the following.

[0265] (a) In one example, the BV candidate list can be a regular IBC Merge list.

[0266] (b) In one example, the BV candidate list can be a regular IBC AMVP list.

[0267] (c) In one example, the BV candidate list can be the IBC-TM Merge list.

[0268] (d) In one example, the BV candidate list can be the IBC-TM AMVP list.

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

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

[0271] (g) In one example, the BV candidate list can be the IBC-MBVD basic candidate list.

[0272] (h) In one example, the BV candidate list can be the IBC Merge / AMVP list of IBC-CIIP.

[0273] (i) In one example, the BV candidate list can be the IBC Merge / AMVP list of unidirectionally predicted IBC-GPM.

[0274] (j) In one example, the BV candidate list can be the IBC Merge / AMVP list of bidirectionally predicted IBC-GPM.

[0275] (k) In one example, the BV candidate list can be the IBC Merge / AMVP list of IBC-LIC.

[0276] (l) In one example, the BV candidate list can be a regular IntraTMP Merge / AMVP list.

[0277] (m) In one example, the BV candidate list can be the BV candidate list of SGPM with IntraTMP and IBC.

[0278] (n) In one example, the BV candidate list can be the IntraTMP of DIMD or the BV candidate list of IBC extension.

[0279] (o) In one example, the BV candidate list can be the IntraTMP of TIMD or the BV candidate list of the IBC extension.

[0280] (p) In one example, the BV candidate list can be the IntraTMP Merge / AMVP list of IntraTMP-LIC.

[0281] (q) In one example, the BV candidate list can be any other BV candidate list.

[0282] 3. In one example, the time-domain BV prediction or candidate can be derived by at least one of the following methods.

[0283] a. In one example, if a motion grid (such as a 4x4 grid) covering a time-domain location is available, has BV information, and its BV is valid for the current block, then that time-domain location can be used for time-domain BV candidate derivation.

[0284] b. In one example, if the motion grid (such as a 4x4 grid) covering a time-domain location is unavailable or does not have BV information or its BV is invalid for the current block, then that time-domain location may not be used for time-domain BV candidate derivation.

[0285] c. In one example, if the motion grid (such as a 4x4 grid) covering a time-domain location is outside the CTU row of the current block, that time-domain location can be bounded to the CTU row of the current block and then used for time-domain BV candidate derivation, which ensures a CTU row constraint.

[0286] (a) Alternatively, if a motion grid (such as a 4x4 grid) covering a time-domain location is outside the CTU row of the current block, that time-domain location may not be used for time-domain BV candidate derivation, which ensures a CTU row constraint.

[0287] d. In one example, a CTU row constraint can be removed or changed.

[0288] (a) In one example, if the motion grid (such as a 4x4 grid) covering a time-domain location is outside the CTU row of the current block, that time-domain location can be used for time-domain BV candidate derivation.

[0289] (b) In one example, a CTU row constraint can be changed into N CTU row constraints.

[0290] 1) In one example, N>1.

[0291] e. In one example, the location of a temporal BV candidate can be selected among multiple locations in the co-located image.

[0292] (a) Location includes, for example Figure 27B C0 and C1 in the isotopic image depicted in the figure.

[0293] (b) C0 can be checked first. If BV is not obtained in C0, then C1 is checked.

[0294] (c) C1 can be checked first. If BV is not obtained in C1, then C0 is checked.

[0295] (d) If the CU at position C0 is unavailable, does not have BV information, is outside the CTU line of the current block, or its BV is invalid for the current block, then position C1 is used. Otherwise, position C0 is used for the derivation of the temporal BV candidate. This means that the priority order is C0->C1.

[0296] (e) Alternative locations, for time-domain BV candidates, can be as follows: Figure 27B The position is selected between C0 and C1 in the corresponding picture depicted. If the CU at position C1 is unavailable, does not have BV information, is outside the CTU line of the current block, or its BV is invalid for the current block, then position C0 is used. Otherwise, position C1 is used for the derivation of the temporal BV candidate. This means that the priority order is C1->C0.

[0297] f. Alternative sites, when deriving time-domain BV candidates, such as Figure 27B The two candidates depicted, corresponding to positions C0 and C1 in the cosine image, can be used.

[0298] (a) For example, the derivation order is C0, C1.

[0299] (b) Alternative site, the derivation order is C1, C0.

[0300] g. In one example, when deriving temporal BV candidates from temporal locations in co-located images, only the BV may be inherited.

[0301] h. In one example, when deriving a temporal BV candidate from a temporal location in a co-located image, both the BV and IBC-LIC flags can be inherited.

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

[0303] j. In one example, the position of a corresponding block in a corresponding image can be the same as the position of the current block in the current image.

[0304] (a) In one example, a temporal BV candidate can be derived from a co-occurring block that has the same position as the current block. Such a temporal BV candidate can be represented as an unguided temporal BV candidate.

[0305] k. In one example, the position of a co-position block in a co-position image can be determined by a motion displacement of the position of the current block added to the current image.

[0306] (a) In one example, the motion displacement can be a spatial neighbor block or a motion vector of an HMVP candidate.

[0307] 1) In one example, a spatial neighbor block can be an adjacent spatial neighbor block, such as in Figure 27A The left (A1), top (B1), top right (B0), bottom left (A0), or top left (B2) adjacent blocks in the middle.

[0308] 2) In one example, a spatial neighbor block can be a non-adjacent spatial neighbor block ( Figure 20 (Example in the text).

[0309] 3) In one example, HMVP candidates can come from the HMVP table of inter-frame mode.

[0310] 4) In one example, HMVP candidates can come from a new HMVP table that is different from the HMVP table of the inter-frame mode.

[0311] 5) In one example, if a spatial neighbor block or HMVP candidate has a motion vector that uses a co-located image as its reference image, then that motion vector can be selected as a motion displacement; if no such motion is identified, the spatial neighbor block or HMVP candidate may not provide a motion displacement or the motion displacement may be set to (0, 0).

[0312] 6) In one example, if a spatial neighbor block or HMVP candidate has a motion vector that uses a co-op image as its reference image, then that motion vector can be selected as the motion displacement; if no such motion is identified, then a motion vector from reference list 0 or reference list 1 can be scaled to point to the co-op image, and the scaled motion vector can be used as the motion displacement.

[0313] 7) In one example, if a spatial neighboring block or HMVP candidate has a motion vector pointing to a reference image, the reference image can be considered as a co-position image, and the motion vector can be used as a motion displacement.

[0314] 8) In one example, motion displacements can be derived in a predefined priority order, and the first N valid motion vectors can be used as motion displacements(multiple).

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

[0316] ii. In one example, N can be a predefined positive integer value.

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

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

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

[0320] vi. In one example, the priority order could be adjacent spatial neighbor blocks -> non-adjacent spatial neighbor blocks.

[0321] vii. In one example, the priority order could be adjacent spatial neighbor blocks -> non-adjacent spatial neighbor blocks -> HMVP candidates.

[0322] viii. In one example, the priority order can be the same check order for adjacent spatial domain neighboring blocks constructed against the IBC Merge / AMVP list.

[0323] ix. In one example, the priority order can be the same checking order for adjacent spatial neighbor blocks and / or non-adjacent spatial neighbor blocks constructed against the IBC Merge / AMVP list.

[0324] x. In one example, the priority order can be a predefined checking order of adjacent spatial neighbor blocks and / or non-adjacent spatial neighbor blocks and / or HMVP candidates.

[0325] xi. In one example, when deriving motion displacement from a spatial neighboring block or HMVP candidate, the first motion vector using a co-located image as its reference image can be selected as the motion displacement.

[0326] xii. In one example, when deriving motion displacement from a spatial neighboring block or HMVP candidate, at least one motion vector using a co-located image as its reference image can be selected as the motion displacement.

[0327] xiii. In one example, when deriving motion displacement from spatial neighboring blocks or HMVP candidates, the first motion vector can be selected as the motion displacement, and the corresponding reference image can be regarded as a co-position image.

[0328] xiv. In one example, when deriving motion displacement from spatial neighboring blocks or HMVP candidates, at least one motion vector can be selected as the motion displacement, and the corresponding reference image can be regarded as a co-position image.

[0329] xv. In one example, when deriving motion displacement from spatial neighboring blocks or HMVP candidates, the inspection order could be reference image list X -> reference image list (1-X).

[0330] (i) In one example, X=0.

[0331] (ii) In one example, X=1.

[0332] 9) In one example, if the motion vector (MV) of a spatial neighbor block or HMVP candidate is in fractional pixel precision, the fractional pixel MV can be rounded to integer pixel precision, where the integer pixel MV can be its nearest integer MV.

[0333] i. Alternatively, rounding up or rounding down can be used to obtain integer pixel MV from fractional pixel MV.

[0334] ii. In one example, if the motion vector (MV) of a spatial neighboring block or HMVP candidate is in 1 / 2 E In pixel precision (e.g., E=4, 1 / 16 pixel), where the horizontal and vertical components are hor and ver respectively, the integer pixel MV can be derived as follows.

[0335] (i) rightShift = E (e.g., 4); (ii) nOffset = 1<<(rightShift - 1); (iii) hor = hor>= 0 ? (hor + nOffset - 1)>>rightShift : (hor +nOffset)>>rightShift; (iv) ver = ver>= 0 ? (ver + nOffset - 1)>>rightShift : (ver +nOffset)>>rightShift.

[0336] 10) In one example, scaling can be applied to derive motion displacement to obtain time-domain MV or BV.

[0337] i. In one example, motion displacement can be scaled based on the POC of the current image and / or the corresponding image and / or the image to which the motion displacement points.

[0338] ii. In one example, motion displacement can be scaled to point to a co-positioned image.

[0339] (b) In one example, multiple motion displacements with the top M minimum template matching costs can be used to derive temporal BV candidates.

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

[0341] 2) In one example, M can be a predefined positive integer value.

[0342] l. In one example, when deriving the time-domain BV candidate, such as Figure 28As depicted, at least one of the following can be used: candidates selected from positions C0 or C1 in the same image; candidates selected from positions C0Left or C1Left; candidates selected from positions C0Above or C1Above; candidates selected from positions C0AboveRight or C1AboveRight; candidates selected from positions C0BottomLeft or C1BottomLeft; and candidates selected from positions C0AboveLeft or C1AboveLeft, where CXSpatial is a motion displacement derived from the spatial nearest neighbor added to CX (X is 0 or 1, and the spatial domain is left, top, upper right, lower left, or upper left).

[0343] (a) In one example, up to six time-domain BV candidates can be derived.

[0344] (b) In one example, when deriving the time-domain BV candidate, such as Figure 29 As described, candidates selected from positions C0 or C1 in the same image, and candidates selected from positions C0Left or C1Left, can be used. In this example, up to two temporal BV candidates can be derived.

[0345] (c) In one example, the priority order of C0 and C1 is C0->C1.

[0346] (d) In one example, the priority order of C0 and C1 is C1->C0.

[0347] (e) In one example, the priority order of C0Spatial and C1Spatial can be the same as the priority order of C0 and C1.

[0348] 1) In one example, the empty space can be left, top, top right, bottom left, or top left.

[0349] (f) In one example, the priority order of C0Spatial and C1Spatial can be the reverse of the priority order of C0 and C1.

[0350] 1) In one example, the empty space can be left, top, top right, bottom left, or top left.

[0351] m. In one example, when deriving the time-domain BV candidate, such as Figure 28As depicted, at least one of the following can be used: candidates derived from positions C0 and C1 in the same image; candidates derived from positions C0Left and C1Left; candidates derived from positions C0Above and C1Above; candidates derived from positions C0AboveRight and C1AboveRight; candidates derived from positions C0BottomLeft and C1BottomLeft; and candidates derived from positions C0AboveLeft and C1AboveLeft, where CXSpatial is a motion displacement derived from the spatial nearest neighbor added to CX (X is 0 or 1, and the spatial domain is left, top, upper right, lower left, or upper left).

[0352] (a) In one example, up to 12 time-domain BV candidates can be derived.

[0353] (b) In one example, when deriving the time-domain BV candidate, such as Figure 29 As depicted, candidates derived from positions C0 and C1 in the co-located image, and candidates derived from positions C0Left and C1Left, can be used. In this example, up to four temporal BV candidates can be derived.

[0354] (c) In one example, the derivation order of C0 and C1 is C0, C1.

[0355] (d) In one example, the derivation order of C0 and C1 is C1, C0.

[0356] (e) In one example, the derivation order of C0Spatial and C1Spatial may be the same as that of C0 and C1.

[0357] 1) In one example, the empty space can be left, top, top right, bottom left, or top left.

[0358] (f) In one example, the derivation order of C0Spatial and C1Spatial can be the reverse of the derivation order of C0 and C1.

[0359] 1) In one example, the empty space can be left, top, top right, bottom left, or top left.

[0360] n. In one example, a time-domain BV candidate can be derived from some specific time-domain location.

[0361] (a) In one example, the time-domain location can be predefined.

[0362] (b) In one example, the time-domain location can be deduced based on some encoded or decoded information.

[0363] (c) In one example, the temporal location can be derived based on at least one of the current block’s position, width, or height.

[0364] (d) In one example, the distance between the temporal BV candidate and the current codec block can be based on the width and height of the current codec block.

[0365] 1) In one example, the style of the temporal BV candidate is as follows: Figure 30 As shown. For each search round, four time-domain locations are examined. For each search round i ( i >=0), the four time-domain positions are {(x+W+ i W), (y+H+ i H)}(RB i ),{(x+W / 2+ i W), (y+H / 2+ i H)}(Ctr i ), {(x+W+ i W), (y+H / 2)} (R i ), and {(x+W / 2), (y+H+ ) i H)} (B i ).

[0366] i. In one example, if five search rounds are used, the 20 time-domain positions are {(x+W), (y+H)}, {(x+W / 2), (y+H / 2)}, {(x+W), (y+H / 2)}, {(x+W / 2), (y+H)}, {(x+W+W), (y+H+H)}, {(x+W / 2+W), (y+H / 2+H)}, {(x+W+W), (y+H / 2)}, {(x+W / 2), (y+H+H)}, {(x+W+2) / ( ...)}, {(x+W+2) / (y+H)}, {(x+W+2) / (y+H)}, {(x+W+2) / (y+H)}, {(x+W+2) / (y+H)}, {(x+W+2) / (y+H)}, {(x+W+2) / (y+H)}, {(x+W+2) / (y+H)}, {(x+W+2) / (y+H)}, {(x+W+2) / (y+H)}, {(x+W+2) / (y+H)}, W),(y+H+2 H)}, {(x+W / 2+2 W), (y+H / 2+2 H)}, {(x+W+2 W), (y+H / 2)}, {(x+W / 2), (y+H+2 H)}, {(x+W+3 W), (y+H+3 H)}, {(x+W / 2+3 W), (y+H / 2+3 H)}, {(x+W+3 W), (y+H / 2)}, {(x+W / 2), (y+H+3 H)}, {(x+W+4 W), (y+H+4 H)}, {(x+W / 2+4 W), (y+H / 2+4 H)}, {(x+W+4 W), (y+H / 2)}, and {(x+W / 2), (y+H+4 H)}.

[0367] i. In one example, for each search round i , with RB i ->Ctr i A time-domain BV candidate is derived based on priority order, with R i ->B i The priority order is used to derive a time-domain BV candidate, and at most two time-domain BV candidates can be derived.

[0368] ii. In one example, for each search round i The derivation order is RB i , Ctr i , R i B i Up to four time-domain BV candidates can be derived.

[0369] iii. In one example, for search rounds 0 The derived time-domain BV candidates can be regarded as adjacent time-domain BV candidates.

[0370] iv. In one example, for i > 0 Search rounds i The derived time-domain BV candidates can be regarded as non-adjacent time-domain BV candidates.

[0371] 2) In one example, the style of the temporal BV candidate is as follows: Figure 31 As shown. For each search round, four time-domain locations are examined. For each search round i ( i >=1), the four time-domain positions are {(x+W+ i W), (y+H+ i H)}(RB i ), {(x+W / 2+ i W), (y+H / 2+ i H)} (Ctr i ), {(x+W+ i W), (y+H / 2)} (R i ), and {(x+W / 2), (y+H+ ) i H)} (B i For each search round 0, the four time-domain positions are {(x+W), (y+H)}(RB0), {(x+W / 2), (y+H / 2)}(Ctr0), {(x+W), (y+H-4)}(R0), and {(x+W-4), (y+H)}(B0).

[0372] i. In one example, if five search rounds are used, the 20 time-domain positions are {(x+W), (y+H)}, {(x+W / 2), (y+H / 2)}, {(x+W), (y+H-4)}, {(x+W-4), (y+H)}, {(x+W+W), (y+H+H)}, {(x+W / 2+W), (y+H / 2+H)}, {(x+W+W), (y+H / 2)}, {(x+W / 2), (y+H+H)}, {(x+W+2) W), (y+H+2 H)}, {(x+W / 2+2 W), (y+H / 2+2 H)}, {(x+W+2 W), (y+H / 2)}, {(x+W / 2), (y+H+2 H)}, {(x+W+3 W), (y+H+3 H)}, {(x+W / 2+3 W), (y+H / 2+3 H)}, {(x+W+3 W), (y+H / 2)}, {(x+W / 2), (y+H+3 H)}, {(x+W+4 W), (y+H+4 H)}, {(x+W / 2+4 W), (y+H / 2+4 H)}, {(x+W+4 W), (y+H / 2)}, and {(x+W / 2), (y+H+4 H)}.

[0373] ii. In one example, for each search round i , with RB i ->Ctr i A time-domain BV candidate is derived based on priority order, with R i ->B i The priority order is used to derive a time-domain BV candidate, and at most two time-domain BV candidates can be derived.

[0374] iii. In one example, for each search round i The derivation order is RB i , Ctr i , R i B i Up to four time-domain BV candidates can be derived.

[0375] iv. In one example, for search rounds 0 The derived time-domain BV candidates can be regarded as adjacent time-domain BV candidates.

[0376] v. In one example, targeting i > 0 Search rounds i The derived time-domain BV candidates can be regarded as non-adjacent time-domain BV candidates.

[0377] 3) In one example, any other style of the temporal BV candidate can be used.

[0378] o. In one example, if the current block (e.g., Figures 32A-32B If the displacement of Blk0 in the middle is selected, then the corresponding block (e.g., Figures 32A-32B Blk1 in the image will be located in the same position.

[0379] (a) In one example, if the co-occurrence block is predicted unidirectionally, and in a reference image list X (e.g., Figure 32A BVL in X If a variable has a BV (where X is 0 or 1), then the BV can be considered a candidate for time-domain BV.

[0380] (b) In one example, if the co-occurrence blocks are bidirectionally predicted and have a BV (e.g., ...) in each list of reference images Figure 32B If BVL0 and BVL1 are in the range, then the two BVs can be regarded as two time-domain BV candidates.

[0381] (c) In one example, if the co-occurrence blocks are bidirectionally predicted and have a BV (e.g., ...) in each list of reference images Figure 32B If BVL0 and BVL1 are in the range, then only one BV can be considered as a candidate for time-domain BV.

[0382] 1) In one example, refer to the BV in image list 0 (e.g., Figure 32B BVL0 in the time domain can be considered as a candidate for BV in the time domain.

[0383] 2) In one example, refer to the BV in picture list 1 (e.g., Figure 32B BVL1 in the time domain can be considered as a candidate for BV in the time domain.

[0384] (d) In one example, if the co-location block is located by motion displacement, the temporal BV candidate derived from the co-location block can be called the motion displacement-guided temporal BV candidate.

[0385] p. In one example, when from a co-occurring block (e.g., Figures 33A-33B When deriving motion information (e.g., BV) from Blk1, (multiple) specific locations can be examined to derive motion information.

[0386] (a) In one example, to derive motion information, only the center of Blk1 (e.g., Figures 33A-33B 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.

[0387] 1) 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).

[0388] 2) 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).

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

[0390] 4) 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).

[0391] (b) In one example, to derive motion information, only the top left of Blk1 (e.g., Figures 33A-33B The LT position in the text can be checked.

[0392] (c) In one example, to derive motion information, the lower right outer side of Blk1 (e.g., Figures 33A-33B RB in O ) and center (e.g., Figures 33A-33BAt least one of the Ctr positions in the data can be checked.

[0393] 1) In one example, the inspection order is center -> bottom right outer side.

[0394] 2) In one example, the inspection order is bottom right outer side -> center.

[0395] 3) In one example, all available BV information can be used for time-domain BV candidates.

[0396] 4) In one example, only the first available BV information from an examined location can be used as a temporal BV candidate.

[0397] (d) In one example, to derive motion information, the lower right outer side of Blk1 (e.g., Figures 33A-33B RB in O ) and center (e.g., Figures 33A-33B All two positions of the Ctr position can be checked.

[0398] 1) In one example, the inspection order is center -> bottom right outer side.

[0399] 2) In one example, the inspection order is bottom right outer side -> center.

[0400] 3) In one example, all available BV information can be used for time-domain BV candidates.

[0401] 4) In one example, only the first available BV information from an examined location can be used as a temporal BV candidate.

[0402] (e) In one example, to derive motion information, the top left of Blk1 (e.g., Figures 33A-33B LT in the middle), top right (e.g., Figures 33A-33B RT in the middle), center (e.g., Figures 33A-33B (Ctr in the middle), bottom left (e.g., Figures 33A-33B (LB in the middle) and bottom right (e.g., Figures 33A-33B At least one of the RB positions in the data can be checked.

[0403] 1) In one example, the inspection order is center -> top left -> top right -> bottom left -> bottom right.

[0404] 2) In one example, all available BV information can be used for time-domain BV candidates.

[0405] 3) In one example, only the first available BV information from an examined location can be used for time-domain BV candidates.

[0406] (f) In one example, to derive motion information, the top left of Blk1 (e.g., Figures 33A-33B LT in the middle), top right (e.g., Figures 33A-33B RT in the middle), center (e.g., Figures 33A-33B (Ctr in the middle), bottom left (e.g., Figures 33A-33B (LB in the middle) and bottom right (e.g., Figures 33A-33B All five positions of the RB position can be checked.

[0407] 1) In one example, the inspection order is center -> top left -> top right -> bottom left -> bottom right.

[0408] 2) In one example, all available BV information can be used for time-domain BV candidates.

[0409] 3) In one example, only the first available BV information from an examined location can be used for time-domain BV candidates.

[0410] (g) In one example, to derive motion information, the top left of Blk1 (e.g., Figures 33A-33B LT in the middle), top right (e.g., Figures 33A-33B RT in the middle), center (e.g., Figures 33A-33B (Ctr in the middle), bottom left (e.g., Figures 33A-33B LB in the middle), bottom right (e.g., Figures 33A-33B RB in the middle) and the lower right outer side (e.g., Figures 33A-33B RB in O At least one of the locations can be checked.

[0411] 1) In one example, the inspection order is bottom right outer side -> center -> top left -> top right -> bottom left -> bottom right.

[0412] 2) In one example, the inspection order is center -> bottom right outer side -> top left -> top right -> bottom left -> bottom right.

[0413] 3) In one example, the inspection order is center -> top left -> top right -> bottom left -> bottom right -> bottom right outer side.

[0414] 4) In one example, all available BV information can be used for time-domain BV candidates.

[0415] 5) In one example, only the first available BV information from an examined location can be used as a temporal BV candidate.

[0416] (h) In one example, to derive motion information, the top left of Blk1 (e.g., Figures 33A-33B LT in the middle), top right (e.g., Figures 33A-33B RT in the middle), center (e.g., Figures 33A-33B (Ctr in the middle), bottom left (e.g., Figures 33A-33B LB in the middle), bottom right (e.g., Figures 33A-33B RB in the middle) and the lower right outer side (e.g., Figures 33A-33B RB in O All six positions of the position can be checked.

[0417] 1) In one example, the inspection order is bottom right outer side -> center -> top left -> top right -> bottom left -> bottom right.

[0418] 2) In one example, the inspection order is center -> bottom right outer side -> top left -> top right -> bottom left -> bottom right.

[0419] 3) In one example, the inspection order is center -> top left -> top right -> bottom left -> bottom right -> bottom right outer side.

[0420] 4) In one example, all available BV information can be used for time-domain BV candidates.

[0421] 5) In one example, only the first available BV information from an examined location can be used as a temporal BV candidate.

[0422] (i) In one example, some predefined positions of Blk1 can be examined to derive motion information.

[0423] 1) In one example, all available BV information can be used for time-domain BV candidates.

[0424] 2) In one example, only the first available BV information from an examined location can be used as a temporal BV candidate.

[0425] (j) In one example, if a motion grid (such as a 4x4 grid) covering a specific location of Blk1 is available and has BV information, it can be used for time-domain BV derivation.

[0426] (k) In one example, if the co-position block has a motion displacement relative to the current block (e.g., Figure 33A Then, the time-domain BV candidate derived from the co-location block as above can be called the motion displacement-guided time-domain BV candidate.

[0427] (l) In one example, if the sibling block has the same position as the current block (e.g., Figure 33B If so, the temporal BV candidates derived from the co-occurrence block above can be called adjacent temporal BV candidates.

[0428] q. In one example, all of the above time-domain BV candidates can be combined in any way.

[0429] r. In one example, there may be a constraint on the maximum number (e.g., N) of time-domain BV candidates.

[0430] (a) In one example, the number of time-domain BV candidates may not exceed 8.

[0431] (b) In one example, the number of time-domain BV candidates may not exceed 5.

[0432] (c) In one example, the number of time-domain BV candidates may not exceed 4.

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

[0434] 1) In one example, M can be 8.

[0435] 2) In one example, M can be 5.

[0436] 3) In one example, M can be 4.

[0437] 4) In one example, M can be 3.

[0438] 5) In one example, M can vary depending on the encoding / decoding mode of the current block.

[0439] i. In one example, for IBC-TM AMVP and / or IBC-TM Merge modes, M can be 1 or 2; for other IBC modes, M can be 3, 4, 5 or 8.

[0440] 6) In one example, M can vary depending on the image / strip type.

[0441] i. In one example, if the POC of all reference images of the current strip / image is less than the POC of the current strip / image, then M can be M1; if the POC of at least one reference image of the current strip / image is greater than the POC of the current strip / image, then M can be M2.

[0442] (i) In one example, M1 can be 2; M2 can be 3.

[0443] s. In one example, when deriving time-domain BV candidates, redundancy checks or deduplication can be performed.

[0444] (a) In one example, when deriving time-domain 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.

[0445] (b) In one example, partial deduplication can be performed when deriving time-domain BV candidates.

[0446] t. In one example, the position of the time-domain BV candidate in the BV candidate list can be one of the following.

[0447] (a) In one example, all time-domain BV candidates can be inserted before the HBVP candidates.

[0448] (b) In one example, some time-domain BV candidates may be inserted before HBVP candidates, and the remaining time-domain BV candidates may be inserted after HBVP candidates.

[0449] (c) In one example, all time-domain BV candidates can be inserted after the HBVP candidates.

[0450] (d) In one example, all time-domain BV candidates can be inserted before a spatial-domain candidate.

[0451] 1) In one example, such a spatial candidate can be an adjacent spatial candidate.

[0452] 2) In one example, such spatial candidates can be non-adjacent spatial candidates.

[0453] 3) In one example, such a spatial domain candidate could be an ARBVP candidate.

[0454] (e) In one example, some time-domain BV candidates may be inserted before a spatial candidate, and the remaining time-domain BV candidates may be inserted after a spatial candidate.

[0455] 1) In one example, such a spatial candidate can be an adjacent spatial candidate.

[0456] 2) In one example, such a spatial candidate can be a non-adjacent spatial candidate.

[0457] 3) In one example, such a spatial domain candidate could be an ARBVP candidate.

[0458] (f) In one example, all time-domain BV candidates can be inserted after a spatial candidate.

[0459] 1) In one example, such a spatial candidate can be an adjacent spatial candidate.

[0460] 2) In one example, such a spatial candidate can be a non-adjacent spatial candidate.

[0461] 3) In one example, such a spatial domain candidate could be an ARBVP candidate.

[0462] (g) In one example, the first set of temporal BV candidates can be inserted after the adjacent spatial candidates, the second set of temporal BV candidates can be inserted after the non-adjacent spatial candidates, and the third set of temporal BV candidates can be inserted after the ARBVP candidates.

[0463] 1) In one example, the first set of time-domain BV candidates can be adjacent time-domain candidates (e.g., Figure 27B C0 and C1 in the middle Figure 30 RB0, Ctr0, R0, B0, Figure 31 RB0, Ctr0, R0, B0, Figure 33B Ctr, LT, RT, LB, RB, RB O ).

[0464] 2) In one example, the second set of time-domain BV candidates can be non-adjacent time-domain candidates (e.g., Figure 30 RB in i , Ctr i R i B i , Figure 31 RB in i , Ctr i R i B i (i>0).

[0465] 3) In one example, the third set of time-domain BV candidates could be time-domain BV candidates guided by motion displacement (e.g., Figure 33A Ctr, LT, RT, LB, RB, RB O ).

[0466] (h) In one example, the first set of temporal BV candidates can be inserted after the adjacent spatial candidates, and the second set of temporal BV candidates can be inserted after the ARBVP candidates.

[0467] 1) In one example, the first set of time-domain BV candidates can be adjacent time-domain candidates (e.g., Figure 27B C0 and C1 in the middle Figure 30 RB0, Ctr0, R0, B0, Figure 31 RB0, Ctr0, R0, B0, Figure 33B Ctr, LT, RT, LB, RB, RB O ).

[0468] 2) In one example, the second set of time-domain BV candidates can be non-adjacent time-domain candidates (e.g., Figure 30 RB in i , Ctr i R i B i , Figure 31 RB in i , Ctr i R i B i (i>0) and motion displacement-guided time-domain BV candidates (e.g., Figure 33A Ctr, LT, RT, LB, RB, RB O ).

[0469] i. In one example, for the second group of time-domain BV candidates, the inspection order could be non-adjacent time-domain candidates -> motion displacement-guided time-domain BV candidates.

[0470] ii. In one example, for the second group of time-domain BV candidates, the inspection order could be time-domain BV candidates guided by motion displacement -> non-adjacent time-domain candidates.

[0471] 4. In one example, the number of isotopes used to derive time-domain BV / MV candidates can be N (e.g., N is a positive integer).

[0472] a. In one example, N can be greater than or equal to 1.

[0473] b. In one example, the indication of the corresponding picture for deriving the time-domain BV candidate can be transmitted by signaling 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.

[0474] c. In one example, N reference images with the N smallest POC distances relative to the current image can be selected as co-position images.

[0475] d. In one example, N reference images with the N smallest QP differences relative to the current image can be selected as the corresponding images.

[0476] e. In one example, the N reference images with the top N smallest QPs can be selected as the corresponding images.

[0477] f. In one example, any reference image to the current image can be selected as the corresponding image.

[0478] 5. In one example, whether to use time-domain BV prediction (TBVP) and whether to use time-domain MV prediction (TMVP) can use the same indication.

[0479] a. In one example, different indications can be used to indicate whether to use time-domain BV prediction (TBVP) and whether to use time-domain MV prediction (TMVP).

[0480] b. In one example, whether or not to use Time Domain BV Prediction (TBVP) 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.

[0481] BV Candidate Reordering 6. In one example, the reordering / refinement process can be performed while deriving the BV candidate list.

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

[0483] b. In one example, when constructing the BV candidate list, N1 adjacent spatial candidates and / or N2 temporal candidates and / or N3 HMVP candidates and / or N4 pairwise average candidates and / or N5 predefined BV candidates and / or N6 non-adjacent spatial 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.

[0484] 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 25 and / or N4 can be 1 and / or N5 can be 6 and / or N6 can be 35.

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

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

[0487] 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 27A (As shown in the image).

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

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

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

[0491] (ii) In one example, predefined pairs can be defined as pairs 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.

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

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

[0494] 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 the same candidate type.

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

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

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

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

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

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

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

[0502] (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 or decoding mode of the current block.

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

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

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

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

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

[0508] BVP against SbTMVP 7. In one example, BVP can be obtained for sub-blocks (such as 4x4 or 8x8) of a block that is encoded or decoded using SbTMVP.

[0509] a. In one example, the BVP can be obtained from the temporal location in the co-located block by SbTMVP.

[0510] General information 8. 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.

[0511] 9. The grammatical elements disclosed above can be encoded or decoded using at least one context model. Alternatively, they can be encoded or decoded by bypass.

[0512] 10. The syntax elements (SE) disclosed above can be transmitted via signals in a conditional manner.

[0513] a. SE is transmitted via signal only if the corresponding function is applicable.

[0514] 11. 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 encoding or decoding 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.

[0515] 12. 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.

[0516] 13. Whether and / or how the methods disclosed above can be applied to be transmitted via signaling 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.

[0517] 14. 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.

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

[0519] Figure 34 A flowchart of a method 3400 for video processing according to an embodiment of the present disclosure is shown. Method 3400 is implemented during the conversion between video units or video blocks of a video and a bitstream of the video.

[0520] At box 3410, for the conversion between the current video unit (also known as the current video block or target video unit) and the video bitstream, at least one of the temporal block vector (BV) prediction or temporal BV candidate of the current video unit is determined.

[0521] At box 3420, the transformation is performed based on at least one of the time-domain BV prediction or the time-domain BV candidate.

[0522] Method 3400 enables video encoding or decoding using temporal BV prediction or candidates. Therefore, video encoding or decoding can be improved.

[0523] In some embodiments, temporal BV prediction includes at least one of the following: conventional intra-frame block copy (IBC) merge prediction, conventional IBC advanced motion vector prediction (AMVP) prediction, IBC with template matching (IBC-TM) merge prediction, IBC-TM AMVP prediction, reconstruction reordering IBC (RR-IBC) merge prediction, RR-IBC AMVP prediction, and IBC with block vector difference. Merge mode (IBC-MBVD) prediction, intra-block copy and intra-prediction joint (IBC-CIIP), IBC with geometric segmentation unidirectional prediction (IBC-GPM) prediction, bidirectional prediction IBC-GPM prediction, regular template matching prediction (IntraTMP) prediction, spatial domain GPM (SGPM) with IntraTMP and IBC, IntraTMP or IBC extension with decoder-side intra-mode derivation (DIMD), IntraTMP or IBC extension with template-based intra-mode derivation (TIMD), IntraTMP extension with local illumination compensation (LIC), string copy vector prediction, or another BV prediction. It should be understood that these examples of BV prediction are for illustrative purposes only and do not imply any limitations.

[0524] In some embodiments, method 3400 further includes adding a temporal BV candidate to the BV candidate list for the current video unit.

[0525] In some embodiments, the BV candidate list includes at least one of the following: a regular IBC Merge list, a regular IBC AMVP list, an IBC-TM Merge list, an IBC-TM AMVP list, an RR-IBC Merge list, an RR-IBC AMVP list, an IBC-MBVD basic candidate list, an IBC Merge list for IBC-CIIP, an IBC AMVP list for IBC-CIIP, an IBC Merge list for unidirectional prediction of IBC-GPM, an IBC AMVP list for unidirectional prediction of IBC-GPM, an IBC Merge list for bidirectional prediction of IBC-GPM, an IBC AMVP list for bidirectional prediction of IBC-GPM, an IBC Merge list for IBC-LIC, an IBC AMVP list for IBC-LIC, a regular IntraTMP Merge list, and a regular IntraTMP... AMVP list, BV candidate list for SGPM with IntraTMP and IBC, BV candidate list for DIMD with IntraTMP or IBC extensions, BV candidate list for TIMD with IntraTMP or IBC extensions, IntraTMP Merge list for IntraTMP-LIC, IntraTMP AMVP list for IntraTMP-LIC, or another BV candidate list. It should be understood that these examples of BV candidate lists are for illustrative purposes only and do not imply any limitations.

[0526] In some embodiments, determining a temporal BV prediction or a temporal BV candidate includes: determining a temporal location based on at least one of the following: a motion grid covering the temporal location is available, the motion grid has BV information, or the BV information is valid for the current video cell; and determining a temporal BV prediction or a temporal BV candidate based on the temporal location.

[0527] In some embodiments, a temporal location is not used to determine a temporal BV prediction or a temporal BV candidate based on at least one of the following: the motion grid covering the temporal location is unavailable, the motion grid does not have BV information, or the BV information is invalid for the current video cell.

[0528] In some embodiments, the motion grid covering the temporal location is outside the codec tree unit (CTU) row of the current video unit, and the temporal location is used to determine the temporal BV prediction or temporal BV candidate.

[0529] In some embodiments, the motion grid covering the temporal location is outside the CTU row of the current video cell, and the temporal location is not used to determine the temporal BV prediction or temporal BV candidate.

[0530] In some embodiments, the motion grid covering the temporal location is outside the Nth CTU row of the current video unit, where N is an integer greater than 1, and the temporal location is not used to determine the temporal BV prediction or temporal BV candidate.

[0531] In some embodiments, the motion grid covering the temporal location is outside the CTU row of the current video unit, and the temporal location is clipped to inside the CTU row. The clipped temporal location is used to determine the temporal BV prediction or temporal BV candidate.

[0532] In some embodiments, the motion grid covering the temporal location is outside the Nth CTU row of the current video unit, where N is an integer greater than 1, and the temporal location is clipped to inside the Nth CTU row. The clipped temporal location is used to determine the temporal BV prediction or temporal BV candidate.

[0533] In some embodiments, determining a temporal BV prediction or temporal BV candidate includes deriving a temporal BV prediction or temporal BV candidate from at least one of the following: a co-location or a shifted co-location in a co-location image of the current video unit.

[0534] In some embodiments, the width and height of the co-position block in the co-position image are the same as the width and height of the current video unit in the current image.

[0535] In some embodiments, the position of the corresponding block in the corresponding image is the same as the position of the current video unit in the current image.

[0536] In some embodiments, unguided temporal BV candidates are derived from the co-occurring block that is at the same position as the current video unit.

[0537] In some embodiments, the position of a co-position block in a co-position image is determined by adding a motion displacement to the position of the current video unit in the current image.

[0538] In some embodiments, motion displacement includes motion vectors of spatially neighboring blocks or historical motion vector prediction (HMVP) candidates.

[0539] In some embodiments, the spatial neighbor block includes at least one of the following: the spatial neighbor block adjacent to the left, the spatial neighbor block adjacent to the top, the spatial neighbor block adjacent to the top right, the spatial neighbor block adjacent to the bottom left, or the spatial neighbor block adjacent to the top left.

[0540] In some embodiments, the spatial neighbor block includes at least one non-adjacent spatial neighbor block.

[0541] In some embodiments, HMVP candidates are selected from at least one of the following: the HMVP table for inter-frame mode, or another HMVP table that is different from the HMVP table for inter-frame mode.

[0542] In some embodiments, the spatial neighbor block or HMVP candidate has a motion vector that uses a co-located image as a reference image, and the motion vector is selected as a motion displacement.

[0543] In some embodiments, the spatial neighbor block or HMVP candidate does not have a motion vector that uses a co-located image as a reference image, and the motion vectors of the first reference image list or the second reference image list are scaled to point to the co-located image, and the scaled motion vectors are used as motion displacements.

[0544] In some embodiments, spatial neighbor blocks or HMVP candidates do not have motion vectors that use co-located images as reference images, and motion displacement is not provided, or the motion displacement is set to zero.

[0545] In some embodiments, the spatial neighbor block or HMVP candidate has a motion vector pointing to a reference image, the reference image being a co-located image, and the motion vector is used as a motion displacement.

[0546] In some embodiments, at least one motion displacement used to determine at least one temporal BV prediction or candidate is determined in priority order, and the first N valid motion vectors are used as at least one motion displacement, where N is a positive integer. For example, N can be 1, 2, 3, 4, or 5. As another example, N can be a predefined integer value for position.

[0547] In some embodiments, the priority order is one of the following: the left adjacent spatial neighbor block, the top adjacent spatial neighbor block, the top right adjacent spatial neighbor block, the bottom left adjacent spatial neighbor block, the top left adjacent spatial neighbor block, or the top adjacent spatial neighbor block, the left adjacent spatial neighbor block, the top right adjacent spatial neighbor block, the bottom left adjacent spatial neighbor block, the top left adjacent spatial neighbor block, or the bottom left adjacent spatial neighbor block, the left adjacent spatial neighbor block, the top right adjacent spatial neighbor block, the top adjacent spatial neighbor block, the top left adjacent spatial neighbor block, or adjacent spatial neighbor blocks, non-adjacent spatial neighbor blocks, or adjacent spatial neighbor blocks, non-adjacent spatial neighbor blocks, HMVP candidate.

[0548] In some embodiments, the priority order includes one of the following: the checking order of adjacent spatial neighbor blocks constructed for the IBC Merge or IBC AMVP list, the checking order of adjacent spatial neighbor blocks and / or non-adjacent spatial neighbor blocks constructed for the IBC Merge or IBC AMVP list, or a predefined checking order of adjacent spatial neighbor blocks and / or non-adjacent spatial neighbor blocks and / or HMVP candidates.

[0549] In some embodiments, in order to derive motion displacement from spatial neighboring blocks or HMVP candidates, a first motion vector using a co-located image as a reference image is selected as the motion displacement.

[0550] In some embodiments, in order to derive motion displacement from spatial neighboring blocks or HMVP candidates, at least one motion vector using a co-located image as a reference image is selected as the motion displacement.

[0551] In some embodiments, in order to derive motion displacement from spatial neighboring blocks or HMVP candidates, a first motion vector is selected as the motion displacement, and the corresponding reference image is regarded as a co-position image.

[0552] In some embodiments, in order to derive motion displacement from spatial neighboring blocks or HMVP candidates, at least one motion vector is selected as the motion displacement, and at least one corresponding reference image is regarded as a co-position image.

[0553] In some embodiments, in order to derive motion displacement from spatial neighboring blocks or HMVP candidates, the inspection order is from reference image list X to reference image list (1-X), where X is 0 or 1.

[0554] In some embodiments, the motion vectors of spatial neighbor blocks or HMVP candidates are in fractional pixel precision, and the motion vectors are rounded to integer pixel precision.

[0555] In some embodiments, rounding includes one of the following: rounding up, rounding down, or rounding to the nearest integer motion vector.

[0556] In some embodiments, if the motion vector of a spatial neighboring block or HMVP candidate is at 1 / 2 of its horizontal and vertical components... E In pixel precision, where E is an integer, the integer pixel motion vector is determined as follows: rightShift = E; nOffset = 1 << (rightShift - 1); hor = hor >= 0 ? (hor + nOffset - 1) >> rightShift : (hor + nOffset) >> rightShift; and ver = ver >= 0 ? (ver + nOffset - 1) >> rightShift : (ver + nOffset) >> rightShift, where hor represents the horizontal component, ver represents the vertical component, and rightShift and nOffset are parameters. E can be equal to 4 or any other suitable value.

[0557] In some embodiments, the motion displacement is scaled, and the time-domain motion vector or BV is obtained based on the scaled motion displacement.

[0558] In some embodiments, the motion displacement is scaled based on at least one of the following: the image sequence count of the current image, the image sequence count of the corresponding image, or the image sequence count of the image to which the motion displacement is directed.

[0559] In some embodiments, the motion displacement is scaled to point to the same image.

[0560] In some embodiments, at least one motion displacement having at least one first minimum template matching cost is used to derive at least one temporal BV candidate.

[0561] In some embodiments, the number of at least one first minimum template matching costs is one of the following: 1, 2, 3, 4, or 5. Alternatively, the number of at least one first minimum template matching costs is a predefined positive integer value.

[0562] In some embodiments, at least one temporal BV candidate is derived based on at least one candidate selected from at least one of the following positions in the co-located image: bottom right position C0, center position C1, C0Left, C1Left, C0Above, C1Above, C0AboveRight, C1AboveRight, C0BottomLeft, C1BottomLeft, C0AboveLeft, C1AboveLeft. CXSpatial represents the motion displacement derived from the spatial nearest neighbor and added to CX, where X is 0 or 1, and the spatial domain is left, top, top right, bottom left, or top left.

[0563] In some embodiments, up to six time-domain BV candidates are derived.

[0564] In some embodiments, at least one temporal BV candidate is derived from C0, C1, C0Left and / or C1Left, and at most two temporal BV candidates are derived.

[0565] In some embodiments, C1 has a higher priority than C0, or a lower priority than C0.

[0566] In some embodiments, the priority order of COSpatial and C1Spatial is the same as the priority order of CO and C1, or the opposite of the priority order of CO and C1.

[0567] In some embodiments, at least one temporal BV candidate is derived from at least one of the following positions in the co-located image: bottom right position C0, center position C1, C0Left, C1Left, C0Above, C1Above, C0AboveRight, C1AboveRight, C0BottomLeft, C1BottomLeft, C0AboveLeft, C1AboveLeft. CXSpatial represents the motion displacement derived from the spatial nearest neighbor and added to CX, where X is 0 or 1, and the spatial domain is left, top, top right, bottom left, or top left.

[0568] In some embodiments, up to 12 time-domain BV candidates are derived.

[0569] In some embodiments, at least one temporal BV candidate is derived from C0, C1, C0Left and / or C1Left, and up to four temporal BV candidates are derived.

[0570] In some embodiments, C1 has a higher priority than C0, or a lower priority than C0.

[0571] In some embodiments, the priority order of COSpatial and C1Spatial is the same as the priority order of C0 and C1, or the opposite of the priority order of C0 and C1.

[0572] In some embodiments, at least one temporal BV candidate is derived from at least one temporal location.

[0573] In some embodiments, at least one time-domain location is predefined.

[0574] In some embodiments, at least one temporal location is derived based on at least one of the following: encoded or decoded information, the location of the current video unit, the width of the current video unit, or the height of the current video unit.

[0575] In some embodiments, at least one distance between at least one temporal BV candidate and the current video cell is based on the width and height of the current video cell.

[0576] In some embodiments, for each round of search i, four time-domain locations are examined, and the four time-domain locations include {(x+W+i)} W), (y+H+i H)}(RBi), {(x+W / 2+i W), (y+H / 2+i H)}(Ctri), {(x+W+i W), (y+H / 2)} (Ri), and {(x+W / 2), (y+H+i H)} (Bi), where i is an integer greater than or equal to 0, (x, y) represents the top left position of the current video unit, W and H represent the width and height of the current video unit, RBi represents the i-th bottom right position, Ctri represents the i-th center position, Ri represents the i-th right side position, and Bi represents the i-th bottom position.

[0577] In some embodiments, five search rounds are used, and the 20 time-domain locations include {(x+W), (y+H)}, {(x+W / 2), (y+H / 2)}, {(x+W), (y+H / 2)}, {(x+W / 2), (y+H)}, {(x+W+W), (y+H+H)}, {(x+W / 2+W), (y+H / 2+H)}, {(x+W+W), (y+H / 2)}, {(x+W / 2), (y+H+H)}, {(x+W+ ... W), (y+H+2 H)},{(x+W / 2+2 W), (y+H / 2+2 H)},{(x+W+2 W), (y+H / 2)}, {(x+W / 2), (y+H+2 H)},{(x+W+3 W), (y+H+3 H)},{(x+W / 2+3 W), (y+H / 2+3 H)},{(x+W+3 W), (y+H / 2)}, {(x+W / 2), (y+H+3 H)},{(x+W+4 W), (y+H+4 H)},{(x+W / 2+4 W), (y+H / 2+4 H)},{(x+W+4 W), (y+H / 2)}, and {(x+W / 2), (y+H+4 H)}.

[0578] In some embodiments, for each round of search i, time-domain BV candidates are derived in a priority order of RBi > Ctri, and time-domain BV candidates are derived in a priority order of Ri > Bi, and at most two time-domain BV candidates are derived.

[0579] In some embodiments, for each round of search i, up to four temporal BV candidates are derived in priority order of RBi, Ctri, Ri, Bi.

[0580] In some embodiments, for i = 0, at least one derived time-domain BV candidate is considered as a neighboring time-domain BV candidate.

[0581] In some embodiments, for i greater than 0, at least one derived time-domain BV candidate is considered as a non-adjacent time-domain BV candidate.

[0582] In some embodiments, for each search round i, four time-domain positions are checked, wherein for i greater than or equal to 1, the four time-domain positions include {(x+W+i)} W), (y+H+i H)}(RBi), {(x+W / 2+i W), (y+H / 2+i H)}(Ctri), {(x+W+i W), (y+H / 2)} (Ri), and {(x+W / 2), (y+H+i H)} (Bi), where for i equal to 0, the four time-domain positions include {(x+W), (y+H)}(RB0), {(x+W / 2), (y+H / 2)}(Ctr0), {(x+W), (y+H-4)}(R0), {(x+W-4), (y+H)}(B0), where (x, y) represents the upper left position of the current video unit, W and H represent the width and height of the current video unit, RBi represents the i-th lower right position, Ctri represents the i-th center position, Ri represents the i-th right side position, and Bi represents the i-th bottom position.

[0583] In some embodiments, five search rounds are used, and the 20 time-domain locations include {(x+W), (y+H)}, {(x+W / 2), (y+H / 2)}, {(x+W), (y+H-4)}, {(x+W-4), (y+H)}, {(x+W+W), (y+H+H)}, {(x+W / 2+W), (y+H / 2+H)}, {(x+W+W), (y+H / 2)}, {(x+W / 2), (y+H+H)}, {(x+W+2 ... W), (y+H+2 H)},{(x+W / 2+2 W), (y+H / 2+2 H)},{(x+W+2 W), (y+H / 2)}, {(x+W / 2), (y+H+2 H)},{(x+W+3 W), (y+H+3 H)},{(x+W / 2+3 W), (y+H / 2+3 H)},{(x+W+3 W), (y+H / 2)}, {(x+W / 2), (y+H+3 H)},{(x+W+4 W), (y+H+4 H)},{(x+W / 2+4 W), (y+H / 2+4 H)},{(x+W+4 W), (y+H / 2)}, and {(x+W / 2), (y+H+4 H)}.

[0584] In some embodiments, for each round of search i, time-domain BV candidates are derived in a priority order of RBi > Ctri, and time-domain BV candidates are derived in a priority order of Ri > Bi, and at most two time-domain BV candidates are derived.

[0585] In some embodiments, for each round of search i, up to four temporal BV candidates are derived in priority order of RBi, Ctri, Ri, Bi.

[0586] In some embodiments, for i = 0, at least one derived time-domain BV candidate is considered as a neighboring time-domain BV candidate.

[0587] In some embodiments, for i greater than 0, at least one derived time-domain BV candidate is considered as a non-adjacent time-domain BV candidate.

[0588] In some embodiments, another mode is used for at least one time-domain location.

[0589] In some embodiments, in response to the selection of a motion displacement of the current video unit, a co-location block based on the motion displacement is located in the co-location image of the current video unit.

[0590] In some embodiments, the co-position block includes a one-way prediction and has a BV in a list of reference images X, where X is 0 or 1, and the BV is considered as a temporal BV candidate.

[0591] In some embodiments, the co-position block includes bidirectional prediction and has two BVs in two lists of reference images, and the two BVs are considered as two temporal BV candidates.

[0592] In some embodiments, the co-position block includes bidirectional prediction and has two BVs in two lists of reference images, and the first BV of the two BVs is considered a temporal BV candidate.

[0593] In some embodiments, the first BV includes the BV in the reference image list X, where X is 0 or 1.

[0594] In some embodiments, the colocation block is positioned by motion displacement, and at least one temporal BV candidate derived from the colocation block includes at least one motion displacement-guided temporal BV candidate.

[0595] In some embodiments, method 3400 further includes: checking at least one position to derive motion information from at least one co-location block of the current video unit, the motion information including BV.

[0596] In some embodiments, at least one position includes a center position, and the center position is defined as one of the following: (W>>1, H>>1), ((W>>1)-1, H>>1), (W>>1, (H>>1)-1), ((W>>1)-1, (H>>1)-1), where W and H represent the width and height of the block, and the top-left position within the block is represented as (0, 0).

[0597] In some embodiments, at least one position includes the top-left position within a co-occurring block.

[0598] In some embodiments, at least one of the lower right outer position or the center position of the co-position block is examined to derive motion information.

[0599] In some embodiments, the inspection order includes one of the following: center, lower right outer, or lower right outer, center.

[0600] In some embodiments, all available BV information is used as a temporal BV candidate, or the first available BV information from the examined location is used as a temporal BV candidate.

[0601] In some embodiments, both the lower right outer position and the center position of the co-position block are examined to derive motion information.

[0602] In some embodiments, the inspection order for deriving motion information includes one of the following: the center is higher than the lower right outer edge, or the lower right outer edge is higher than the center.

[0603] In some embodiments, all available BV information is used as a temporal BV candidate, or the first available BV information from the examined location is used as a temporal BV candidate.

[0604] In some embodiments, at least one of the upper left, upper right, center, lower left, or lower right positions of the co-position block is examined to derive motion information.

[0605] In some embodiments, the inspection order includes the center position, the upper left position, the upper right position, the lower left position, and the lower right position.

[0606] In some embodiments, all available BV information is used as a temporal BV candidate, or the first available BV information from the examined location is used as a temporal BV candidate.

[0607] In some embodiments, the five positions of the co-position block—upper left, upper right, center, lower left, and lower right—are examined to derive motion information.

[0608] In some embodiments, the inspection order includes the center position, the upper left position, the upper right position, the lower left position, and the lower right position.

[0609] In some embodiments, all available BV information is used as a temporal BV candidate, or the first available BV information from the examined location is used as a temporal BV candidate.

[0610] In some embodiments, at least one of the upper left, upper right, center, lower left, lower right, or lower right outer positions of the co-position block is examined to derive motion information.

[0611] In some embodiments, the inspection sequence includes one of the following: lower right outer position, center position, upper left position, upper right position, lower left position, lower right position, center position, lower right outer position, upper left position, upper right position, lower left position, lower right position, or center position, upper left position, upper right position, lower left position, lower right position, lower right position, lower right outer position.

[0612] In some embodiments, all available BV information is used as a temporal BV candidate, or the first available BV information from the examined location is used as a temporal BV candidate.

[0613] In some embodiments, the six positions of the co-position block—upper left, upper right, center, lower left, lower right, and lower right outer position—are examined to derive motion information.

[0614] In some embodiments, the inspection sequence includes one of the following: lower right outer position, center position, upper left position, upper right position, lower left position, lower right position, center position, lower right outer position, upper left position, upper right position, lower left position, lower right position, or center position, upper left position, upper right position, lower left position, lower right position, lower right position, lower right outer position.

[0615] In some embodiments, all available BV information is used as a temporal BV candidate, or the first available BV information from the examined location is used as a temporal BV candidate.

[0616] In some embodiments, at least one predefined position of the co-occurrence block is checked to derive motion information.

[0617] In some embodiments, all available BV information is used as a temporal BV candidate, or the first available BV information from the examined location is used as a temporal BV candidate.

[0618] In some embodiments, if a motion grid covering the location of the co-location block is available or has BV information, the temporal BV is determined based on the location.

[0619] In some embodiments, if the co-location block has a motion displacement relative to the current video unit, the temporal BV candidate derived from the co-location block includes a motion displacement-guided temporal BV candidate, or if the co-location block has the same position as the current video unit, the temporal BV candidate derived from the co-location block includes an adjacent temporal BV candidate.

[0620] In some embodiments, all time-domain BV candidates are combined in the candidate list.

[0621] In some embodiments, the number of time-domain BV candidates is less than the maximum number.

[0622] In some embodiments, the maximum number is one of the following: 8, 5 or 4.

[0623] In some embodiments, the number of time-domain BV candidates after complete deduplication is less than the maximum number.

[0624] In some embodiments, the maximum number is one of the following: 8, 5, 4 or 3.

[0625] In some embodiments, the maximum number is based on the encoding or decoding mode of the current video unit.

[0626] In some embodiments, the maximum number is 1 or 2 for the IBC-TM AMVP mode and / or the IBC-TM Merge mode, and for another IBC mode, the maximum number is one of the following: 8, 5, 4 or 3.

[0627] In some embodiments, the maximum number is based on the image type or strip type.

[0628] In some embodiments, if the image sequence count of all reference images in the current strip or image is less than the image sequence count of the current strip or image, the maximum number is a first value, and if the image sequence count of at least one reference image in the current strip or image is greater than the image sequence count of the current strip or image, the maximum number is a second value.

[0629] In some embodiments, the first value is 2 and the second value is 3.

[0630] In some embodiments, redundancy checks or deduplication are performed on multiple time-domain BV candidates.

[0631] In some embodiments, deduplication includes complete deduplication or partial deduplication.

[0632] In some embodiments, the position of the time-domain BV candidates in the BV candidate list includes all time-domain BV candidates preceding the historical BV prediction (HBVP) candidates.

[0633] In some embodiments, the positions of temporal BV candidates in the BV candidate list include one of the following: a portion of temporal BV candidates before the HBVP candidate and the remaining temporal BV candidates after the HBVP candidate; all temporal BV candidates after the HBVP candidate; all temporal BV candidates before a spatial candidate; a portion of temporal BV candidates before a spatial candidate and the remaining temporal BV candidates after such a spatial candidate; all temporal BV candidates after a spatial candidate; a first group of temporal BV candidates after an adjacent spatial candidate; a second group of temporal BV candidates after a non-adjacent spatial candidate; and a third group of temporal BV candidates after the ARBVP candidate; or a first group of temporal BV candidates after an adjacent spatial candidate and a second group of temporal BV candidates after the ARBVP candidate.

[0634] In some embodiments, the types of airspace candidates include one of the following: adjacent airspace candidates, non-adjacent airspace candidates, or ARBVP candidates.

[0635] In some embodiments, the first group of time-domain BV candidates includes adjacent time-domain candidates, the second group of time-domain BV candidates includes non-adjacent time-domain candidates, and the third group of time-domain BV candidates includes motion displacement-guided time-domain BV candidates.

[0636] In some embodiments, the first group of time-domain BV candidates includes adjacent time-domain candidates, and the second group of time-domain BV candidates includes non-adjacent time-domain candidates and motion displacement-guided time-domain BV candidates.

[0637] In some embodiments, for the second group of time-domain BV candidates, the inspection order includes one of the following: non-adjacent time-domain candidates, motion displacement-guided time-domain BV candidates, or motion displacement-guided time-domain BV candidates and non-adjacent time-domain candidates.

[0638] In some embodiments, the location of a temporal BV candidate is selected from multiple locations in a co-located image.

[0639] In some embodiments, the plurality of positions includes a lower right position C0 and a center position C1.

[0640] In some embodiments, one of C0 and C1 is checked first, and if BV is not obtained, the other of C0 and C1 is checked.

[0641] In some embodiments, C0 has a higher priority than C1, and C1 is used if the codec unit at C0 is unavailable, does not have BV information, is outside the CTU line of the current video unit, or its BV is invalid for the current video unit.

[0642] In some embodiments, C1 has a higher priority than C0, and C0 is used if the codec unit at C1 is unavailable, does not have BV information, is outside the CTU line of the current video unit, or its BV is invalid for the current video unit.

[0643] In some embodiments, two candidates corresponding to C0 and C1 in the same image are used to derive temporal BV candidates, and the derivation order is one of the following: C0, C1 or C1, C0.

[0644] In some embodiments, the temporal candidate of BV is derived from the temporal position in the co-located image, and only BV is inherited.

[0645] In some embodiments, the BV temporal candidate is derived from the temporal position in the co-located image, and both the BV and IBC-LIC flags are inherited.

[0646] In some embodiments, the number of isotopic images used to derive temporal BV predictions or candidates is greater than or equal to 1.

[0647] In some embodiments, the indication for deriving the co-position picture of the temporal BV candidate 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.

[0648] In some embodiments, N reference images having the smallest image sequence count distance relative to the current image are selected as co-position images, where N is greater than or equal to 1.

[0649] In some embodiments, N reference images with the N smallest quantization parameter (QP) differences relative to the current image are selected as co-position images, where N is greater than or equal to 1.

[0650] In some embodiments, N reference images with the N smallest quantization parameters are selected as co-position images, where N is greater than or equal to 1.

[0651] In some embodiments, the indication indicates whether to use temporal BV prediction (TBVP) and whether to use temporal motion vector prediction (TMVP).

[0652] In some embodiments, a first indication indicates whether time-domain BV prediction (TBVP) is used, and a second indication indicates whether time-domain motion vector prediction (TMVP) is used.

[0653] In some embodiments, whether to use temporal BV prediction (TBVP) 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.

[0654] In some embodiments, BV prediction is obtained for sub-blocks of blocks encoded or decoded using sub-block-based temporal motion vector prediction (SbTMVP).

[0655] In some embodiments, the BV prediction is obtained from the temporal location in the co-location block located by SbTMVP.

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

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

[0658] 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 for a function associated with the syntax element to be applied to the transformation.

[0659] In some embodiments, the syntax element is included at one of the following: block level, sequence level, picture group level, picture level, strip level, slice group level, or encoding or decoding structure, wherein the encoding or decoding structure includes one of the following: code-decode tree unit (CTU), code-decode unit (CU), prediction unit (PU), transform unit (TU), code-decode tree block (CTB), code-decode 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.

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

[0661] In some embodiments, whether and / or how the method 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.

[0662] In some embodiments, 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.

[0663] In some embodiments, whether and / or how the method is applied is based on encoded or decoded 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 image type.

[0664] In some embodiments, the conversion includes encoding the current video unit into a bitstream.

[0665] In some embodiments, the conversion includes decoding the current video unit from the bitstream.

[0666] According to another embodiment of this disclosure, a non-transitory computer-readable recording medium is provided. The non-transitory computer-readable recording medium stores a bitstream of video, the bitstream being generated by a method performed by a video processing apparatus. The method includes: determining a temporal block vector (BV) prediction or a temporal BV candidate for a current video unit of the video; and generating a bitstream based on at least one of the temporal BV prediction or the temporal BV candidate.

[0667] According to further embodiments of this disclosure, a method for storing a bitstream of video is provided. The method includes: determining a temporal block vector (BV) prediction or a temporal BV candidate for a current video unit of the video; generating a bitstream based on at least one of the temporal BV prediction or the temporal BV candidate; and storing the bitstream in a non-transitory computer-readable recording medium.

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

[0669] Item 1. A method for video processing, comprising: determining at least one of a temporal block vector (BV) prediction or a temporal BV candidate for a conversion between a current video unit and a bitstream of the video; and performing the conversion based on at least one of the temporal BV prediction or the temporal BV candidate.

[0670] Item 2. The method according to Item 1, wherein the temporal BV prediction includes at least one of the following: regular intra-frame block copy (IBC) merge prediction, regular IBC advanced motion vector prediction (AMVP) prediction, IBC with template matching (IBC-TM) merge prediction, IBC-TM AMVP prediction, reconstruction reordering IBC (RR-IBC) merge prediction, RR-IBCAMVP prediction, and IBC with block vector difference. Merge mode (IBC-MBVD) prediction, Intra-Block Copy and Intra-Prediction Joint (IBC-CIIP), IBC with Geometric Segmentation Unidirectional Prediction (IBC-GPM) prediction, Bidirectional Prediction IBC-GPM prediction, Regular Template Matching Prediction (IntraTMP) prediction, Spatial GPM with IntraTMP and IBC (SGPM), IntraTMP or IBC extension with Decoder-Side Intra-Mode Derivation (DIMD), IntraTMP or IBC extension with Template-Based Intra-Mode Derivation (TIMD), IntraTMP extension with Local Illumination Compensation (LIC), String Copy Vector Prediction, or another BV prediction.

[0671] Item 3. The method according to Item 1 or 2 further includes: adding the temporal BV candidate to the BV candidate list for the current video unit.

[0672] Item 4. The method according to Item 3, wherein the BV candidate list includes at least one of the following: a regular IBC Merge list, a regular IBC AMVP list, an IBC-TM Merge list, an IBC-TM AMVP list, an RR-IBCMerge list, an RR-IBC AMVP list, an IBC-MBVD basic candidate list, an IBC Merge list for IBC-CIIP, an IBC AMVP list for IBC-CIIP, an IBC Merge list for unidirectional prediction of IBC-GPM, an IBC AMVP list for unidirectional prediction of IBC-GPM, an IBC Merge list for bidirectional prediction of IBC-GPM, an IBC AMVP list for bidirectional prediction of IBC-GPM, an IBC Merge list for IBC-LIC, an IBC AMVP list for IBC-LIC, a regular IntraTMP Merge list, and a regular IntraTMP... AMVP list, BV candidate list for SGPM with IntraTMP and IBC, BV candidate list for DIMD with IntraTMP or IBC extension, BV candidate list for TIMD with IntraTMP or IBC extension, IntraTMP Merge list for IntraTMP-LIC, IntraTMP AMVP list for IntraTMP-LIC, or another BV candidate list.

[0673] Item 5. The method according to any one of items 1 to 4, wherein determining the temporal BV prediction or the temporal BV candidate comprises: determining a temporal location based on at least one of: a motion grid covering the temporal location is available, the motion grid has BV information, or the BV information is valid for the current video unit; and determining the temporal BV prediction or the temporal BV candidate based on the temporal location.

[0674] Item 6. The method according to any one of items 1 to 4, wherein the temporal location is not used to determine the temporal BV prediction or temporal BV candidate based on at least one of the following: the motion grid covering the temporal location is unavailable, the motion grid does not have BV information, or the BV information is invalid for the current video unit.

[0675] Item 7. The method according to any one of items 1 to 4, wherein the motion grid covering the temporal location is outside the codec tree unit (CTU) row of the current video unit, and the temporal location is used to determine the temporal BV prediction or temporal BV candidate.

[0676] Item 8. The method according to any one of items 1 to 4, wherein the motion grid covering the temporal location is outside the CTU row of the current video unit, and the temporal location is not used to determine the temporal BV prediction or temporal BV candidate.

[0677] Item 9. The method according to any one of items 1 to 4, wherein the motion grid covering the temporal location is outside the Nth CTU row of the current video unit, N is an integer greater than 1, and the temporal location is not used to determine the temporal BV prediction or temporal BV candidate.

[0678] Item 10. The method according to any one of items 1 to 4, wherein the motion grid covering the temporal location is outside the CTU row of the current video unit, and the temporal location is clipped to inside the CTU row, the clipped temporal location being used to determine the temporal BV prediction or temporal BV candidate.

[0679] Item 11. The method according to any one of items 1 to 4, wherein the motion grid covering the temporal location is outside the Nth CTU row of the current video unit, where N is an integer greater than 1, and the temporal location is clipped to the inside of the Nth CTU row, the clipped temporal location being used to determine the temporal BV prediction or temporal BV candidate.

[0680] Item 12. The method according to any one of items 1 to 11, wherein determining the temporal BV prediction or the temporal BV candidate comprises: deriving the temporal BV prediction or the temporal BV candidate from at least one of the following: a co-location or a shifted co-location in a co-location image of the current video unit.

[0681] Item 13. The method according to Item 12, wherein the width and height of the co-position block in the co-position image are the same as the width and height of the current video unit in the current image.

[0682] Item 14. The method according to Item 12, wherein the position of the co-position block in the co-position image is the same as the position of the current video unit in the current image.

[0683] Item 15. The method according to Item 14, wherein unguided temporal BV candidates are derived from the co-occurring block that has the same position as the current video unit.

[0684] Item 16. The method according to Item 12, wherein the position of the co-position block in the co-position image is determined by adding a motion displacement to the position of the current video unit in the current image.

[0685] Item 17. The method according to Item 16, wherein the motion displacement includes motion vectors of spatially neighboring blocks or historical motion vector prediction (HMVP) candidates.

[0686] Item 18. The method according to Item 17, wherein the spatial neighbor block includes at least one of the following: the spatial neighbor block adjacent to the left, the spatial neighbor block adjacent to the top, the spatial neighbor block adjacent to the upper right, the spatial neighbor block adjacent to the lower left, or the spatial neighbor block adjacent to the upper left.

[0687] Item 19. The method according to Item 17, wherein the spatial neighbor block includes at least one non-adjacent spatial neighbor block.

[0688] Item 20. The method according to Item 17, wherein the HMVP candidate is from at least one of: an HMVP table for inter-frame mode, or another HMVP table different from the HMVP table for inter-frame mode.

[0689] Item 21. The method according to Item 17, wherein the spatial neighbor block or the HMVP candidate has a motion vector using the co-located image as a reference image, and the motion vector is selected as the motion displacement.

[0690] Item 22. The method according to Item 17, wherein the spatial neighbor block or the HMVP candidate does not have a motion vector using the co-located image as a reference image, and the motion vectors of the first reference image list or the second reference image list are scaled to point to the co-located image, the scaled motion vectors being used as the motion displacement.

[0691] Item 23. The method according to Item 17, wherein the spatial neighbor block or the HMVP candidate does not have a motion vector using the co-located image as a reference image, and the motion displacement is not provided, or the motion displacement is set to zero.

[0692] Item 24. The method according to Item 17, wherein the spatial neighbor block or the HMVP candidate has a motion vector pointing to a reference image, the reference image being the co-located image, and the motion vector being used as the motion displacement.

[0693] Item 25. The method according to Item 16, wherein at least one motion displacement for determining at least one temporal BV prediction or candidate is determined in priority order, and the first N valid motion vectors are used as said at least one motion displacement, where N is a positive integer.

[0694] Item 26. The method according to Item 25, wherein N is one of the following: 1, 2, 3, 4 or 5.

[0695] Item 27. The method described in Item 25, wherein N is a predefined position integer value.

[0696] Item 28. The method according to Item 25, wherein the priority order is one of the following: left adjacent spatial neighbor block, top adjacent spatial neighbor block, top right adjacent spatial neighbor block, bottom left adjacent spatial neighbor block, top left adjacent spatial neighbor block, or top adjacent spatial neighbor block, left adjacent spatial neighbor block, top right adjacent spatial neighbor block, bottom left adjacent spatial neighbor block, top left adjacent spatial neighbor block, or bottom left adjacent spatial neighbor block, left adjacent spatial neighbor block, top right adjacent spatial neighbor block, top adjacent spatial neighbor block, top left adjacent spatial neighbor block, or adjacent spatial neighbor block, non-adjacent spatial neighbor block, or adjacent spatial neighbor block, non-adjacent spatial neighbor block, HMVP candidate.

[0697] Item 29. The method according to Item 25, wherein the priority order includes one of the following: the checking order of adjacent spatial neighbor blocks constructed for the IBC Merge or IBC AMVP list, the checking order of adjacent spatial neighbor blocks and / or non-adjacent spatial neighbor blocks constructed for the IBC Merge or IBC AMVP list, or a predefined checking order of adjacent spatial neighbor blocks and / or non-adjacent spatial neighbor blocks and / or HMVP candidates.

[0698] Item 30. The method according to Item 25, wherein, in order to derive motion displacement from spatial neighboring blocks or HMVP candidates, a first motion vector using the co-located image as a reference image is selected as the motion displacement.

[0699] Item 31. The method according to Item 25, wherein, in order to derive motion displacement from spatial neighboring blocks or HMVP candidates, at least one motion vector using the co-located image as a reference image is selected as the motion displacement.

[0700] Item 32. The method according to Item 25, wherein, in order to derive motion displacement from spatial neighboring blocks or HMVP candidates, a first motion vector is selected as the motion displacement, and the corresponding reference image is regarded as a co-position image.

[0701] Item 33. The method according to Item 25, wherein in order to derive motion displacement from a spatial neighboring block or HMVP candidate, at least one motion vector is selected as the motion displacement, and at least one corresponding reference image is regarded as a co-position image.

[0702] Item 34. The method according to Item 25, wherein, in order to derive motion displacement from spatial neighboring blocks or HMVP candidates, the checking order is from reference image list X to reference image list (1-X), where X is 0 or 1.

[0703] Item 35. The method according to Item 16, wherein the motion vector of the spatial neighbor block or HMVP candidate is in fractional pixel precision, and the motion vector is rounded to integer pixel precision.

[0704] Item 36. The method according to Item 35, wherein the rounding includes one of: rounding up, rounding down, or rounding to the nearest integer motion vector.

[0705] Item 37. The method according to Item 35, wherein if the motion vector of the spatial neighbor block or the HMVP candidate is in 1 / 2 having horizontal and vertical components E In pixel precision, where E is an integer, the integer pixel motion vector is determined by: rightShift = E; nOffset = 1 << (rightShift - 1); hor = hor >= 0 ? (hor + nOffset - 1) >> rightShift : (hor + nOffset) >> rightShift; and ver = ver >= 0 ? (ver + nOffset - 1) >> rightShift : (ver + nOffset) >> rightShift, where hor represents the horizontal component, ver represents the vertical component, and rightShift and nOffset are parameters.

[0706] Item 38. The method described in Item 37, wherein E equals 4.

[0707] Item 39. The method according to Item 16, wherein the motion displacement is scaled, and the time-domain motion vector or BV is obtained based on the scaled motion displacement.

[0708] Item 40. The method according to Item 39, wherein the motion displacement is scaled based on at least one of: the image sequence count of the current image, the image sequence count of the co-located image, or the image sequence count of the image to which the motion displacement is directed.

[0709] Item 41. The method according to Item 39, wherein the motion displacement is scaled to point to the co-position image.

[0710] Item 42. The method according to Item 16, wherein at least one motion displacement having at least one first minimum template matching cost is used to derive at least one temporal BV candidate.

[0711] Item 43. The method according to Item 42, wherein the number of the at least one first minimum template matching cost is one of the following: 1, 2, 3, 4 or 5, or wherein the number of the at least one first minimum template matching cost is a predefined positive integer value.

[0712] Item 44. The method according to any one of items 1-4, wherein the at least one temporal BV candidate is derived based on at least one candidate selected from at least one of the following positions in the co-located image: lower right position C0, center position C1, C0Left, C1Left, C0Above, C1Above, C0AboveRight, C1AboveRight, C0BottomLeft, C1BottomLeft, C0AboveLeft, C1AboveLeft, where CXSpatial represents the motion displacement derived from the spatial nearest neighbor and added to CX, where X is 0 or 1, and the spatial domain is left, top, upper right, lower left, or upper left.

[0713] Item 45. The method described in Item 44, wherein up to six time-domain BV candidates are derived.

[0714] Item 46. The method according to Item 44, wherein at least one time-domain BV candidate is derived from C0, C1, C0Left and / or C1Left, and at most two time-domain BV candidates are derived.

[0715] Item 47. The method according to Item 44, wherein the priority order of C1 is higher than or lower than C0.

[0716] Item 48. The method according to Item 47, wherein the priority order of C0Spatial and C1Spatial is the same as, or the opposite of, the priority order of C0 and C1.

[0717] Item 49. The method according to any one of items 1-4, wherein the at least one temporal BV candidate is derived from at least one of the following positions in the co-located image: lower right position C0, center position C1, C0Left, C1Left, C0Above, C1Above, C0AboveRight, C1AboveRight, C0BottomLeft, C1BottomLeft, C0AboveLeft, C1AboveLeft, where CXSpatial represents the motion displacement derived from the spatial nearest neighbor and added to CX, where X is 0 or 1, and the spatial domain is left, top, upper right, lower left, or upper left.

[0718] Item 50. The method according to Item 49, wherein up to 12 time-domain BV candidates are derived.

[0719] Item 51. The method according to Item 49, wherein at least one time-domain BV candidate is derived from C0, C1, C0Left and / or C1Left, and at most four time-domain BV candidates are derived.

[0720] Item 52. The method according to Item 49, wherein C1 has a priority order higher than C0, or lower than C0.

[0721] Item 53. The method according to Item 52, wherein the priority order of C0Spatial and C1Spatial is the same as that of priority and C0 and C1, or the reverse of the said priority order of C0 and C1.

[0722] Item 54. The method according to any one of items 1-4, wherein the at least one time-domain BV candidate is derived from at least one time-domain location.

[0723] Item 55. The method according to Item 54, wherein the at least one time-domain location is predefined.

[0724] Item 56. The method according to Item 54, wherein the at least one temporal location is derived based on at least one of: encoded or decoded information, the location of the current video unit, the width of the current video unit, or the height of the current video unit.

[0725] Item 57. The method according to Item 54, wherein at least one distance between the at least one temporal BV candidate and the current video unit is based on the width and height of the current video unit.

[0726] Item 58. The method according to Item 57, wherein for each round of search i, four time-domain positions are examined, and the four time-domain positions include {(x+W+i)} W), (y+H+i H)}(RBi), {(x+W / 2+i W), (y+H / 2+i H)}(Ctri), {(x+W+i W), (y+H / 2)} (Ri), and {(x+W / 2), (y+H+i H)} (Bi), where i is an integer greater than or equal to 0, (x, y) represents the upper left position of the current video unit, W and H represent the width and height of the current video unit, RBi represents the i-th lower right position, Ctri represents the i-th center position, Ri represents the i-th right side position, and Bi represents the i-th bottom position.

[0727] Item 59. The method described in Item 58, wherein five search rounds are used and the 20 time-domain locations include {(x+W), (y+H)}, {(x+W / 2), (y+H / 2)}, {(x+W), (y+H / 2)}, {(x+W / 2), (y+H)}, {(x+W+W), (y+H+H)}, {(x+W / 2+W), (y+H / 2+H)}, {(x+W+W), (y+H / 2)}, {(x+W / 2), (y+H+H)}, {(x+W+2 ... W), (y+H+2 H)},{(x+W / 2+2 W), (y+H / 2+2 H)},{(x+W+2 W), (y+H / 2)}, {(x+W / 2), (y+H+2 H)},{(x+W+3 W), (y+H+3 H)},{(x+W / 2+3 W), (y+H / 2+3 H)},{(x+W+3 W), (y+H / 2)}, {(x+W / 2), (y+H+3 H)},{(x+W+4 W), (y+H+4 H)},{(x+W / 2+4 W), (y+H / 2+4 H)},{(x+W+4 W), (y+H / 2)}, and {(x+W / 2), (y+H+4 H)}.

[0728] Item 60. The method according to Item 58, wherein for each round of search i, time-domain BV candidates are derived in priority order of RBi > Ctri, and time-domain BV candidates are derived in priority order of Ri > Bi, and at most two time-domain BV candidates are derived.

[0729] Item 61. The method according to Item 58, wherein for each round of search i, up to four temporal BV candidates are derived in priority order of RBi, Ctri, Ri, Bi.

[0730] Item 62. The method according to Item 58, wherein for i = 0, at least one derived time-domain BV candidate is considered as a neighboring time-domain BV candidate.

[0731] Item 63. The method according to Item 58, wherein for i greater than 0, at least one derived temporal BV candidate is considered a non-adjacent temporal BV candidate.

[0732] Item 64. The method according to Item 57, wherein for each round of search i, four time-domain positions are checked, wherein for i greater than or equal to 1, the four time-domain positions include {(x+W+i W), (y+H+i H)}(RBi), {(x+W / 2+i W), (y+H / 2+i H)}(Ctri), {(x+W+i W), (y+H / 2)} (Ri), and {(x+W / 2), (y+H+i H)}(Bi), where for i equal to 0, the fourth time-domain position includes {(x+W), (y+H)}(RB0), {(x+W / 2), (y+H / 2)}(Ctr0), {(x+W), (y+H-4)}(R0), {(x+W-4), (y+H)}(B0), where (x, y) represents the upper left position of the current video unit, W and H represent the width and height of the current video unit, RBi represents the i-th lower right position, Ctri represents the i-th center position, Ri represents the i-th right side position, and Bi represents the i-th bottom position.

[0733] Item 65. The method described in Item 64, wherein five search rounds are used and the 20 time-domain locations include {(x+W), (y+H)}, {(x+W / 2), (y+H / 2)}, {(x+W), (y+H-4)}, {(x+W-4), (y+H)}, {(x+W+W), (y+H+H)}, {(x+W / 2+W), (y+H / 2+H)}, {(x+W+W), (y+H / 2)}, {(x+W / 2), (y+H+H)}, {(x+W+2) / 2, ... W), (y+H+2 H)},{(x+W / 2+2 W), (y+H / 2+2 H)},{(x+W+2 W), (y+H / 2)}, {(x+W / 2), (y+H+2 H)},{(x+W+3 W), (y+H+3 H)},{(x+W / 2+3 W), (y+H / 2+3 H)},{(x+W+3 W), (y+H / 2)}, {(x+W / 2), (y+H+3 H)},{(x+W+4 W), (y+H+4 H)},{(x+W / 2+4 W), (y+H / 2+4 H)},{(x+W+4 W), (y+H / 2)}, and {(x+W / 2), (y+H+4 H)}.

[0734] Item 66. The method according to Item 64, wherein for each round of search i, time-domain BV candidates are derived in priority order of RBi > Ctri, and time-domain BV candidates are derived in priority order of Ri > Bi, and at most two time-domain BV candidates are derived.

[0735] Item 67. The method according to Item 64, wherein for each round of search i, up to four temporal BV candidates are derived in priority order of RBi, Ctri, Ri, Bi.

[0736] Item 68. The method according to Item 64, wherein for i = 0, at least one derived time-domain BV candidate is considered as a neighboring time-domain BV candidate.

[0737] Item 69. The method according to Item 64, wherein for i greater than 0, at least one derived time-domain BV candidate is considered as a non-adjacent time-domain BV candidate.

[0738] Item 70. The method according to Item 54, wherein another mode is used for the at least one time-domain location.

[0739] Item 71. The method according to any one of items 1-4, wherein in response to the selection of a motion displacement of the current video unit, a co-location block based on the motion displacement is located in the co-location picture of the current video unit.

[0740] Item 72. The method according to Item 71, wherein the co-position block comprises a unidirectional prediction and has a BV in a list of reference images X, where X is 0 or 1, and the BV is considered as a temporal BV candidate.

[0741] Item 73. The method according to Item 71, wherein the co-position block comprises bidirectional prediction and has two BVs in two lists of reference images, and the two BVs are regarded as two temporal BV candidates.

[0742] Item 74. The method according to Item 71, wherein the co-position block comprises bidirectional prediction and has two BVs in two lists of reference images, and the first BV of the two BVs is regarded as a temporal BV candidate.

[0743] Item 75. The method according to Item 74, wherein the first BV includes the BV in the reference picture list X, where X is 0 or 1.

[0744] Item 76. The method according to Item 71, wherein the colophon is positioned by the motion displacement, and at least one time-domain BV candidate derived from the colophon includes at least one motion displacement-guided time-domain BV candidate.

[0745] Item 77. The method according to any one of items 1-4 further comprises: checking at least one position to derive motion information from at least one co-occurrence block of the current video unit, the motion information including BV.

[0746] Item 78. The method according to Item 77, wherein the at least one position includes a center position, and the center position is defined as one of the following: (W>>1, H>>1), ((W>>1)-1, H>>1), (W>>1, (H>>1)-1), ((W>>1)-1, (H>>1)-1), where W and H represent the width and height of the block, and the upper left position within the block is represented as (0,0).

[0747] Item 79. The method according to Item 77, wherein the at least one position includes the upper left position within the co-position block.

[0748] Item 80. The method according to Item 77, wherein at least one of the lower right outer position or the center position of the said co-position block is examined to derive the motion information.

[0749] Item 81. The method according to Item 80, wherein the inspection order includes one of the following: center, lower right outer, or lower right outer, center.

[0750] Item 82. The method according to Item 80, wherein all available BV information is used for the time-domain BV candidate, or the first available BV information from the examined location is used for the time-domain BV candidate.

[0751] Item 83. According to the method described in Item 77, both the lower right outer position and the center position of the said co-position block are examined to derive the motion information.

[0752] Item 84. The method according to Item 83, wherein the inspection order for deriving the motion information includes one of the following: the center is higher than the lower right outer edge, or the lower right outer edge is higher than the center.

[0753] Item 85. The method according to Item 83, wherein all available BV information is used for the time-domain BV candidate, or the first available BV information from the examined location is used for the time-domain BV candidate.

[0754] Item 86. The method according to Item 77, wherein at least one of the upper left position, upper right position, center position, lower left position, or lower right position of the co-position block is examined to derive the motion information.

[0755] Item 87. The method according to Item 86, wherein the inspection order includes the center position, the upper left position, the upper right position, the lower left position, and the lower right position.

[0756] Item 88. The method according to Item 86, wherein all available BV information is used for the time-domain BV candidate, or the first available BV information from the examined location is used for the time-domain BV candidate.

[0757] Item 89. According to the method described in Item 77, the five positions of the co-position block—upper left, upper right, center, lower left, and lower right—are examined to derive the motion information.

[0758] Item 90. The method according to Item 89, wherein the inspection order includes the center position, the upper left position, the upper right position, the lower left position, and the lower right position.

[0759] Item 91. The method according to Item 89, wherein all available BV information is used for the time-domain BV candidate, or the first available BV information from the examined location is used for the time-domain BV candidate.

[0760] Item 92. The method according to Item 77, wherein at least one of the upper left position, upper right position, center position, lower left position, lower right position, or lower right outer position of the co-position block is examined to derive the motion information.

[0761] Item 93. The method according to Item 92, wherein the inspection order includes one of the following: lower right outer position, center position, upper left position, upper right position, lower left position, lower right position, center position, lower right outer position, upper left position, upper right position, lower left position, lower right position, or center position, upper left position, upper right position, lower left position, lower right position, lower right position, lower right outer position.

[0762] Item 94. The method according to Item 92, wherein all available BV information is used for the time-domain BV candidate, or the first available BV information from the examined location is used for the time-domain BV candidate.

[0763] Item 95. According to the method described in Item 77, the six positions of the co-position block—upper left, upper right, center, lower left, lower right, and lower right outer position—are examined to derive the motion information.

[0764] Item 96. The method according to Item 95, wherein the inspection order includes one of the following: lower right outer position, center position, upper left position, upper right position, lower left position, lower right position, center position, lower right outer position, upper left position, upper right position, lower left position, lower right position, or center position, upper left position, upper right position, lower left position, lower right position, lower right position, lower right outer position.

[0765] Item 97. The method according to Item 95, wherein all available BV information is used for the time-domain BV candidate, or the first available BV information from the examined location is used for the time-domain BV candidate.

[0766] Item 98. The method according to Item 77, wherein at least one predefined position of the co-occurring block is examined to derive the motion information.

[0767] Item 99. The method according to Item 98, wherein all available BV information is used for the time-domain BV candidate, or the first available BV information from the examined location is used for the time-domain BV candidate.

[0768] Item 100. The method according to Item 77, wherein if a motion grid covering the location of the co-position block is available or has BV information, the temporal BV is determined based on the location.

[0769] Item 101. The method according to Item 77, wherein if the co-location block has a motion displacement relative to the current video unit, the temporal BV candidate derived from the co-location block includes motion displacement-guided temporal BV candidates, or wherein if the co-location block has the same position as the current video unit, the temporal BV candidate derived from the co-location block includes adjacent temporal BV candidates.

[0770] Item 102. The method according to any one of items 1-4, wherein all time-domain BV candidates are combined in a candidate list.

[0771] Item 103. The method according to any one of items 1-4, wherein the number of time-domain BV candidates is less than the maximum number.

[0772] Item 104. The method according to Item 103, wherein the maximum number is one of the following: 8, 5 or 4.

[0773] Item 105. The method according to Item 103, wherein the number of time-domain BV candidates after complete deduplication is less than the maximum number.

[0774] Item 106. The method according to Item 105, wherein the maximum number is one of the following: 8, 5, 4 or 3.

[0775] Item 107. The method according to Item 105, wherein the maximum number is based on the encoding or decoding mode of the current video unit.

[0776] Item 108. The method according to Item 107, wherein for the IBC-TM AMVP mode and / or the IBC-TM Merge mode, the maximum number is 1 or 2, and for another IBC mode, the maximum number is one of the following: 8, 5, 4 or 3.

[0777] Item 109. The method according to Item 105, wherein the maximum number is based on image type or strip type.

[0778] Item 110. The method according to Item 109, wherein the maximum number is a first value if the image sequence count of all the reference images of the current strip or image is less than the image sequence count of the current strip or image, and the maximum number is a second value if the image sequence count of at least one reference image of the current strip or image is greater than the image sequence count of the current strip or image.

[0779] Item 111. The method according to Item 110, wherein the first value is 2 and the second value is 3.

[0780] Item 112. The method according to any one of items 1-4, wherein redundancy checking or deduplication is performed for a plurality of time-domain BV candidates.

[0781] Item 113. The method according to Item 112, wherein the deduplication includes complete deduplication or partial deduplication.

[0782] Item 114. The method according to any one of items 1-4, wherein the position of the time-domain BV candidates in the BV candidate list includes all time-domain BV candidates preceding the historical BV prediction (HBVP) candidates.

[0783] Item 115. The method according to any one of items 1-4, wherein the position of the temporal BV candidates in the BV candidate list includes one of the following: a portion of the temporal BV candidates before the HBVP candidate and the remaining temporal BV candidates after the HBVP candidate, all temporal BV candidates after the HBVP candidate, all temporal BV candidates before a spatial candidate, a portion of the temporal BV candidates before a spatial candidate and the remaining temporal BV candidates after the spatial candidate of the aforementioned type, all temporal BV candidates after a spatial candidate, a first group of temporal BV candidates after an adjacent spatial candidate, a second group of temporal BV candidates after a non-adjacent spatial candidate, and a third group of temporal BV candidates after an ARBVP candidate, or a first group of temporal BV candidates after an adjacent spatial candidate and a second group of temporal BV candidates after an ARBVP candidate.

[0784] Item 116. The method according to Item 115, wherein the type of airspace candidate includes one of the following: adjacent airspace candidates, non-adjacent airspace candidates, or ARBVP candidates.

[0785] Item 117. The method according to Item 115, wherein the first group of time-domain BV candidates includes adjacent time-domain candidates, the second group of time-domain BV candidates includes non-adjacent time-domain candidates, and the third group of time-domain BV candidates includes motion displacement-guided time-domain BV candidates.

[0786] Item 118. The method according to Item 115, wherein the first set of time-domain BV candidates includes adjacent time-domain candidates, and the second set of time-domain BV candidates includes non-adjacent time-domain candidates and motion displacement-guided time-domain BV candidates.

[0787] Item 119. The method according to Item 118, wherein for the second group of time-domain BV candidates, the inspection order includes one of the following: non-adjacent time-domain candidates, motion displacement-guided time-domain BV candidates, or motion displacement-guided time-domain BV candidates and non-adjacent time-domain candidates.

[0788] Item 120. The method according to any one of items 1-4, wherein the position of the temporal BV candidate is selected among a plurality of positions in a co-located image.

[0789] Item 121. The method according to Item 120, wherein the plurality of positions includes a lower right position C0 and a center position C1.

[0790] Item 122. The method according to Item 121, wherein one of C0 and C1 is checked first, and if BV is not obtained, the other of C0 and C1 is checked.

[0791] Item 123. The method according to Item 121, wherein C0 has a higher priority order than C1, and C1 is used if the codec unit at C0 is unavailable, does not have BV information, is outside the CTU line of the current video unit, or has an invalid BV for the current video unit.

[0792] Item 124. The method according to Item 121, wherein C1 has a higher priority order than C0, and C0 is used if the codec unit at C1 is unavailable, does not have BV information, is outside the CTU line of the current video unit, or has an invalid BV for the current video unit.

[0793] Item 125. The method according to Item 121, wherein two candidates corresponding to C0 and C1 in the co-located image are used to derive the temporal BV candidate, and the derivation order is one of the following: C0, C1 or C1, C0.

[0794] Item 126. The method according to any one of items 1-4, wherein the BV temporal candidate is derived from the temporal position in the co-located image, and only the BV is inherited.

[0795] Item 127. The method according to any one of items 1-4, wherein the BV temporal candidate is derived from the temporal position in the co-located image, and both the BV and IBC-LIC flags are inherited.

[0796] Item 128. The method according to any one of items 1-127, wherein the number of isotopic images used to derive the temporal BV prediction or candidate is greater than or equal to 1.

[0797] Item 129. The method according to Item 128, wherein the indication for deriving the co-position picture of the temporal BV candidate 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.

[0798] Item 130. The method according to Item 128, wherein N reference images having the N smallest image sequence counting distances relative to the current image are selected as the co-position images, where N is greater than or equal to 1.

[0799] Item 131. The method according to Item 128, wherein N reference images having the N smallest quantization parameter (QP) differences relative to the current image are selected as the co-images, where N is greater than or equal to 1.

[0800] Item 132. The method according to Item 128, wherein N reference images having the first N smallest quantization parameters are selected as the co-position images, where N is greater than or equal to 1.

[0801] Item 133. The method according to any one of items 1-132, wherein the indication indicates whether temporal BV prediction (TBVP) and whether temporal motion vector prediction (TMVP) are used.

[0802] Item 134. The method according to any one of items 1-132, wherein a first indication indicates whether time-domain BV prediction (TBVP) is used, and a second indication indicates whether time-domain motion vector prediction (TMVP) is used.

[0803] Item 135. The method according to any one of items 1-132, wherein whether temporal BV prediction (TBVP) 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.

[0804] Item 136. The method according to any one of items 1-135, wherein BV prediction is obtained for sub-blocks of a block encoded or decoded using sub-block-based temporal motion vector prediction (SbTMVP).

[0805] Item 137. The method according to Item 136, wherein the BV prediction is obtained from the temporal location in the co-located block by the SbTMVP.

[0806] Item 138. The method according to any one of items 1-137, wherein the 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.

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

[0808] Item 140. The method according to any one of items 1-138, wherein a syntax element is included in the bitstream based on at least one condition, the at least one condition including a condition for a function associated with the syntax element to be applicable to the transformation.

[0809] Item 141. The method according to any one of items 1-140, 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 encoding or decoding structure, said encoding or decoding structure including one of the following: code-decode tree unit (CTU), code-decode unit (CU), prediction unit (PU), transform unit (TU), code-decode tree block (CTB), code-decode 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.

[0810] Item 142. The method according to any one of items 1-141, 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.

[0811] Item 143. The method according to any one of items 1-142, 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.

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

[0813] Item 145. The method according to any one of items 1-143, wherein whether and / or how the method is applied is based on encoded or decoded information, said encoded or decoded 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.

[0814] Item 146. The method according to any one of items 1-145, wherein the conversion includes encoding the current video unit into the bitstream.

[0815] Item 147. The method according to any one of items 1-145, wherein the conversion includes decoding the current video unit from the bitstream.

[0816] Item 148. 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-147.

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

[0818] Item 150. A non-transitory computer-readable recording medium storing a bitstream of video generated by a method performed by a video processing apparatus, wherein the method includes: determining a temporal block vector (BV) prediction or a temporal BV candidate for a current video unit of the video; and generating the bitstream based on at least one of the temporal BV prediction or the temporal BV candidate.

[0819] Item 151. A method for storing a bitstream of video, comprising: determining a temporal block vector (BV) prediction or a temporal BV candidate for a current video unit of the video; generating the bitstream based on at least one of the temporal BV prediction or the temporal BV candidate; and storing the bitstream in a non-transitory computer-readable recording medium.

[0820] Example device Figure 35 A block diagram of a computing device 3500 in which various embodiments of the present disclosure may be implemented is shown. The computing device 3500 may be implemented as a source device 110 (or video encoder 114 or 200) or a target 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 target device 120 (or video decoder 124 or 300).

[0821] It should be understood that, Figure 35 The computing device 3500 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.

[0822] like Figure 35 As shown, computing device 3500 includes general-purpose computing device 3500. Computing device 3500 may include at least one or more processors or processing units 3510, memory 3520, storage unit 3530, one or more communication units 3540, one or more input devices 3550, and one or more output devices 3560.

[0823] In some embodiments, the computing device 3500 can be implemented as any user terminal or server terminal with computing capabilities. The server terminal can be a server provided by a service provider, a large computing device, etc. 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 3500 can support any type of interface to the user (such as "wearable" circuitry devices, etc.).

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

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

[0826] The computing device 3500 may also include additional removable / non-removable storage media, volatile / non-volatile storage media. Although in Figure 35 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.

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

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

[0829] In some embodiments, some or all components of computing device 3500 are not integrated into a single device, but may be arranged in a cloud computing architecture. In a cloud computing architecture, components may be provided remotely and work together to achieve the functionality described herein. In some embodiments, cloud computing provides computing, software, data access, and storage services without requiring the end user to know the physical location or configuration of the system or hardware providing these services. In various embodiments, cloud computing is provided via a wide area network (WAN) such as the Internet using suitable protocols. For example, a cloud computing provider provides applications via a WAN that can be accessed through a web browser or any other computing component. The software or components of the cloud computing architecture, along with the corresponding data, may be stored on servers at a remote location. Computing resources in a cloud computing environment may be consolidated or distributed at locations in remote data centers. Cloud computing infrastructure may be provided through shared data centers, although they may appear as a single access point for the user. Therefore, 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.

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

[0831] In an example embodiment of performing video encoding, input device 3550 may receive video data as input 3570 to be encoded. The video data may be processed, for example, by video codec module 3525 to generate an encoded bitstream. The encoded bitstream may be provided as output 3580 via output device 3560.

[0832] In an example embodiment performing video decoding, input device 3550 may receive an encoded bitstream as input 3570. The encoded bitstream may be processed, for example, by a video codec module 3525 to generate decoded video data. The decoded video data may be provided as output 3580 via output device 3560.

[0833] While this disclosure has been specifically shown and described with reference to exemplary embodiments thereof, 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. Such 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 unit and the bitstream of the video, determine at least one of the temporal block vector (BV) prediction or temporal BV candidate for the current video unit; as well as The transformation is performed based on at least one of the time-domain BV prediction or the time-domain BV candidate.

2. The method of claim 1, wherein the time-domain BV prediction comprises at least one of the following: Conventional intra-block copy (IBC) Merge prediction, Conventional IBC Advanced Motion Vector Prediction (AMVP) prediction, IBC (IBC-TM) Merge Prediction with Template Matching IBC-TM AMVP Prediction Reconstructed Reordered IBC (RR-IBC) Merge Prediction RR-IBC AMVP Prediction IBC Merge Model (IBC-MBVD) Prediction with Block Vector Difference, Intra-block copying and intra-prediction joint (IBC-CIIP). IBC (IBC-GPM) prediction with unidirectional prediction featuring geometric segmentation. Bidirectional IBC-GPM forecasting Conventional template matching prediction (IntraTMP) prediction, Airspace GPM (SGPM) with IntraTMP and IBC. IntraTMP or IBC extensions for decoder-side intra-frame mode derivation (DIMD), Template-based intra-frame mode derivation (TIMD) extensions for IntraTMP or IBC. IntraTMP extension for Local Illumination Compensation (LIC), String copy vector prediction, or Another BV forecast.

3. The method according to claim 1 or 2, further comprising: Add the temporal BV candidate to the BV candidate list for the current video unit.

4. The method of claim 3, wherein the BV candidate list includes at least one of the following: Regular IBC Merge list, Regular IBC AMVP list, IBC-TM Merge List IBC-TM AMVP List RR-IBC Merge List RR-IBC AMVP List Basic candidate list for IBC-MBVD IBC Merge List of IBC-CIIP IBC-CIIP IBC AMVP List IBC Merge list for unidirectional prediction of IBC-GPM List of IBC AMVPs for unidirectional prediction IBC-GPM IBC Merge list for bidirectional prediction IBC-GPM List of IBC AMVPs for bidirectional prediction IBC-GPM IBC-LIC's IBC Merge list IBC-LIC's list of IBC AMVPs Standard IntraTMP Merge list, Standard IntraTMP AMVP list, A list of BV candidates for SGPM with IntraTMP and IBC. A candidate list of BV for DIMD's IntraTMP or IBC extensions. TIMD's IntraTMP or IBC extension BV candidate list. IntraTMP-LIC's IntraTMP Merge list. List of IntraTMP AMVPs for IntraTMP-LIC, or Another BV candidate list.

5. The method according to any one of claims 1 to 4, wherein determining the time-domain BV prediction or the time-domain BV candidate comprises: The temporal location is determined based on at least one of the following: a motion grid covering the temporal location is available, the motion grid has BV information, or the BV information is valid for the current video unit; as well as The time-domain BV prediction or time-domain BV candidate is determined based on the time-domain location.

6. The method according to any one of claims 1 to 4, wherein the temporal location is not used to determine the temporal BV prediction or temporal BV candidate based on at least one of the following: the motion grid covering the temporal location is unavailable, the motion grid does not have BV information, or the BV information is invalid for the current video unit.

7. The method according to any one of claims 1 to 4, wherein the motion grid covering the temporal location is outside the codec tree unit (CTU) row of the current video unit, and the temporal location is used to determine the temporal BV prediction or temporal BV candidate.

8. The method according to any one of claims 1 to 4, wherein the motion mesh covering the temporal location is outside the CTU row of the current video unit, and the temporal location is not used to determine the temporal BV prediction or temporal BV candidate.

9. The method according to any one of claims 1 to 4, wherein the motion grid covering the temporal location is outside the Nth CTU row of the current video unit, N is an integer greater than 1, and the temporal location is not used to determine the temporal BV prediction or temporal BV candidate.

10. The method according to any one of claims 1 to 4, wherein the motion grid covering the temporal location is outside the CTU row of the current video unit, and the temporal location is clipped to inside the CTU row, the clipped temporal location being used to determine the temporal BV prediction or temporal BV candidate.

11. The method according to any one of claims 1 to 4, wherein the motion grid covering the temporal location is outside the Nth CTU row of the current video unit, N being an integer greater than 1, and the temporal location is clipped to the inside of the Nth CTU row, the clipped temporal location being used to determine the temporal BV prediction or temporal BV candidate.

12. The method according to any one of claims 1 to 11, wherein determining the time-domain BV prediction or the time-domain BV candidate comprises: The temporal BV prediction or the temporal BV candidate is derived from at least one of the following: the co-location or the shifted co-location in the co-location image of the current video unit.

13. The method of claim 12, wherein the width and height of the co-position block in the co-position image are the same as the width and height of the current video unit in the current image.

14. The method according to claim 12, wherein the position of the co-position block in the co-position image is the same as the position of the current video unit in the current image.

15. The method of claim 14, wherein unguided temporal BV candidates are derived from the co-occurring block that has the same position as the current video unit.

16. The method of claim 12, wherein the position of the co-position block in the co-position image is determined by adding a motion displacement to the position of the current video unit in the current image.

17. The method of claim 16, wherein the motion displacement comprises a motion vector of a spatial neighboring block or a history-based motion vector prediction (HMVP) candidate.

18. The method of claim 17, wherein the spatial neighbor block comprises at least one of the following: the spatial neighbor block adjacent to the left, the spatial neighbor block adjacent to the top, the spatial neighbor block adjacent to the upper right, the spatial neighbor block adjacent to the lower left, or the spatial neighbor block adjacent to the upper left.

19. The method of claim 17, wherein the spatial neighbor block comprises at least one non-adjacent spatial neighbor block.

20. The method of claim 17, wherein the HMVP candidate is from at least one of: an HMVP table of inter-frame mode, or another HMVP table different from the HMVP table of inter-frame mode.

21. The method of claim 17, wherein the spatial neighbor block or the HMVP candidate has a motion vector using the co-located image as a reference image, and the motion vector is selected as the motion displacement.

22. The method of claim 17, wherein the spatial neighbor block or the HMVP candidate does not have a motion vector using the co-located image as a reference image, and the motion vectors of the first reference image list or the second reference image list are scaled to point to the co-located image, the scaled motion vectors being used as the motion displacement.

23. The method of claim 17, wherein the spatial neighbor block or the HMVP candidate does not have a motion vector using the co-located image as a reference image, and the motion displacement is not provided, or the motion displacement is set to zero.

24. The method of claim 17, wherein the spatial neighbor block or the HMVP candidate has a motion vector pointing to a reference image, the reference image serving as the co-position image, and the motion vector is used as the motion displacement.

25. The method of claim 16, wherein at least one motion displacement for determining at least one temporal BV prediction or candidate is determined in priority order, and the first N valid motion vectors are used as said at least one motion displacement, where N is a positive integer.

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

27. The method of claim 25, wherein N is a predefined position integer value.

28. The method of claim 25, wherein the priority order is one of the following: The adjacent airspace block to the left, the adjacent airspace block above, the adjacent airspace block to the upper right, the adjacent airspace block to the lower left, the adjacent airspace block to the upper left, or The adjacent airspace block above, the adjacent airspace block to the left, the adjacent airspace block to the upper right, the adjacent airspace block to the lower left, the adjacent airspace block to the upper left, or The lower left adjacent airspace neighbor block, the left adjacent airspace neighbor block, the upper right adjacent airspace neighbor block, the upper adjacent airspace neighbor block, the upper left adjacent airspace neighbor block, or Adjacent airspace neighbor blocks, non-adjacent airspace neighbor blocks, or Adjacent spatial neighbor blocks, non-adjacent spatial neighbor blocks, and HMVP candidates.

29. The method of claim 25, wherein the priority order includes one of the following: The order of checking adjacent spatial neighbor blocks constructed against the IBC Merge or IBC AMVP list. The order of checking adjacent spatial neighbor blocks and / or non-adjacent spatial neighbor blocks constructed against the IBC Merge or IBC AMVP list, or A predefined check order for adjacent spatial neighbor blocks and / or non-adjacent spatial neighbor blocks and / or HMVP candidates.

30. The method of claim 25, wherein, in order to derive motion displacement from spatial neighboring blocks or HMVP candidates, a first motion vector using the co-located image as a reference image is selected as the motion displacement.

31. The method of claim 25, wherein, in order to derive motion displacement from spatial neighboring blocks or HMVP candidates, at least one motion vector using the co-located image as a reference image is selected as the motion displacement.

32. The method of claim 25, wherein, in order to derive the motion displacement from a spatial neighboring block or an HMVP candidate, a first motion vector is selected as the motion displacement, and the corresponding reference image is regarded as a co-position image.

33. The method of claim 25, wherein in order to derive motion displacement from a spatial neighboring block or HMVP candidate, at least one motion vector is selected as the motion displacement, and at least one corresponding reference image is regarded as a co-position image.

34. The method of claim 25, wherein, in order to derive motion displacement from spatial neighboring blocks or HMVP candidates, the checking order is from reference image list X to reference image list (1-X), where X is 0 or 1.

35. The method of claim 16, wherein the motion vector of the spatial neighbor block or HMVP candidate is in fractional pixel precision, and the motion vector is rounded to integer pixel precision.

36. The method of claim 35, wherein the rounding comprises one of: rounding up, rounding down, or rounding to the nearest integer motion vector.

37. The method of claim 35, wherein if the motion vector of the spatial neighbor block or the HMVP candidate is in 1 / 2 of having horizontal and vertical components. E In pixel precision, where E is an integer, the integer pixel motion vector is determined as follows: rightShift = E; nOffset = 1<<(rightShift - 1); hor = hor>= 0 ? (hor + nOffset - 1)>>rightShift : (hor + nOffset)>>rightShift; and ver = ver>= 0 ? (ver + nOffset - 1)>>rightShift : (ver + nOffset)>>rightShift, Where hor represents the horizontal component, ver represents the vertical component, and rightShift and nOffset are parameters.

38. The method of claim 37, wherein E equals 4.

39. The method of claim 16, wherein the motion displacement is scaled, and the time-domain motion vector or BV is obtained based on the scaled motion displacement.

40. The method of claim 39, wherein the motion displacement is scaled based on at least one of the following: The current image is counted sequentially. The sequential counting of the corresponding images, or The order of the images to which the motion displacement points is counted.

41. The method of claim 39, wherein the motion displacement is scaled to point to the co-position image.

42. The method of claim 16, wherein at least one motion displacement having at least one first minimum template matching cost is used to derive at least one temporal BV candidate.

43. The method of claim 42, wherein the number of the at least one first minimum template matching costs is one of the following: 1, 2, 3, 4 or 5, or The number of the at least one first minimum template matching costs is a predefined positive integer value.

44. The method according to any one of claims 1-4, wherein the at least one temporal BV candidate is derived based on at least one candidate selected from at least one of the following positions in the co-located image: lower right position C0, center position C1, C0Left, C1Left, C0Above, C1Above, C0AboveRight, C1AboveRight, C0BottomLeft, C1BottomLeft, C0AboveLeft, C1AboveLeft, where CXSpatial represents the motion displacement derived from the spatial nearest neighbor and added to CX, X is 0 or 1, and the spatial domain is left, top, upper right, lower left, or upper left.

45. The method of claim 44, wherein up to six time-domain BV candidates are derived.

46. ​​The method of claim 44, wherein the at least one time-domain BV candidate is derived from C0, C1, C0Left and / or C1Left, and at most two time-domain BV candidates are derived.

47. The method of claim 44, wherein C1 has a priority order that is higher than or lower than C0.

48. The method of claim 47, wherein the priority order of COSpatial and C1Spatial is the same as the priority order of CO and C1, or the opposite of the priority order of CO and C1.

49. The method according to any one of claims 1-4, wherein the at least one temporal BV candidate is derived from at least one of the following positions in the co-located image: lower right position C0, center position C1, C0Left, C1Left, C0Above, C1Above, C0AboveRight, C1AboveRight, C0BottomLeft, C1BottomLeft, C0AboveLeft, C1AboveLeft, where CXSpatial represents the motion displacement derived from the spatial nearest neighbor and added to CX, X is 0 or 1, and the spatial domain is left, top, upper right, lower left, or upper left.

50. The method of claim 49, wherein up to 12 time-domain BV candidates are derived.

51. The method of claim 49, wherein the at least one time-domain BV candidate is derived from C0, C1, C0Left and / or C1Left, and up to four time-domain BV candidates are derived.

52. The method of claim 49, wherein C1 has a higher priority than C0, or lower priority than C0.

53. The method of claim 52, wherein the priority order of COSpatial and C1Spatial is the same as the priority order of CO and C1, or the opposite of the priority order of CO and C1.

54. The method according to any one of claims 1-4, wherein the at least one time-domain BV candidate is derived from at least one time-domain location.

55. The method of claim 54, wherein the at least one time-domain location is predefined.

56. The method of claim 54, wherein the at least one time-domain location is derived based on at least one of the following: Encoding or decoding information, The position of the current video unit The width of the current video unit, or The height of the current video unit.

57. The method of claim 54, wherein at least one distance between the at least one temporal BV candidate and the current video unit is based on the width and height of the current video unit.

58. The method of claim 57, wherein for each round of search i, four time-domain positions are examined, and the four time-domain positions include {(x+W+i)} W), (y+H+i H)}(RBi), {(x+W / 2+i W), (y+H / 2+i H)}(Ctri), {(x+W+i W), (y+H / 2)} (Ri), and {(x+W / 2), (y+H+i H)} (Bi), Where i is an integer greater than or equal to 0, (x, y) represents the upper left position of the current video unit, W and H represent the width and height of the current video unit, RBi represents the i-th lower right position, Ctri represents the i-th center position, Ri represents the i-th right side position, and Bi represents the i-th bottom position.

59. The method of claim 58, wherein five search rounds are used, and the 20 time-domain locations include {(x+W), (y+H)}, {(x+W / 2), (y+H / 2)}, {(x+W), (y+H / 2)}, {(x+W / 2), (y+H)}, {(x+W+W), (y+H+H)}, {(x+W / 2+W), (y+H / 2+H)}, {(x+W+W), (y+H / 2)}, {(x+W / 2), (y+H+H)}, {(x+W+2 ... W), (y+H+2 H)},{(x+W / 2+2 W), (y+H / 2+2 H)},{(x+W+2 W), (y+H / 2)}, {(x+W / 2), (y+H+2 H)},{(x+W+3 W), (y+H+3 H)},{(x+W / 2+3 W), (y+H / 2+3 H)},{(x+W+3 W), (y+H / 2)}, {(x+W / 2), (y+H+3 H)},{(x+W+4 W), (y+H+4 H)},{(x+W / 2+4 W), (y+H / 2+4 H)},{(x+W+4 W), (y+H / 2)}, and {(x+W / 2), (y+H+4 H)}.

60. The method of claim 58, wherein for each round of search i, time-domain BV candidates are derived in a priority order of RBi > Ctri, and time-domain BV candidates are derived in a priority order of Ri > Bi, and at most two time-domain BV candidates are derived.

61. The method of claim 58, wherein for each round of search i, up to four temporal BV candidates are derived in priority order of RBi, Ctri, Ri, Bi.

62. The method of claim 58, wherein for i = 0, at least one derived time-domain BV candidate is considered as an adjacent time-domain BV candidate.

63. The method of claim 58, wherein for i greater than 0, at least one derived time-domain BV candidate is considered as a non-adjacent time-domain BV candidate.

64. The method of claim 57, wherein for each round of search i, four time-domain locations are checked. For i greater than or equal to 1, the four time-domain positions include {(x+W+i)} W), (y+H+i H)}(RBi), {(x+W / 2+i W), (y+H / 2+i H)}(Ctri), {(x+W+i W), (y+H / 2)} (Ri), and {(x+W / 2), (y+H+i H)}(Bi), For i equal to 0, the fourth time-domain position includes {(x+W), (y+H)}(RB0), {(x+W / 2), (y+H / 2)}(Ctr0), {(x+W), (y+H-4)}(R0), and {(x+W-4), (y+H)}(B0). Where (x, y) represents the upper left position of the current video unit, W and H represent the width and height of the current video unit, RBi represents the i-th lower right position, Ctri represents the i-th center position, Ri represents the i-th right side position, and Bi represents the i-th bottom position.

65. The method of claim 64, wherein five search rounds are used, and the 20 time-domain locations include {(x+W), (y+H)}, {(x+W / 2), (y+H / 2)}, {(x+W), (y+H-4)}, {(x+W-4), (y+H)}, {(x+W+W), (y+H+H)}, {(x+W / 2+W), (y+H / 2+H)}, {(x+W+W), (y+H / 2)}, {(x+W / 2), (y+H+H)}, {(x+W+2 ... W), (y+H+2 H)},{(x+W / 2+2 W), (y+H / 2+2 H)},{(x+W+2 W), (y+H / 2)}, {(x+W / 2), (y+H+2 H)},{(x+W+3 W), (y+H+3 H)},{(x+W / 2+3 W), (y+H / 2+3 H)},{(x+W+3 W), (y+H / 2)}, {(x+W / 2), (y+H+3 H)},{(x+W+4 W), (y+H+4 H)},{(x+W / 2+4 W), (y+H / 2+4 H)},{(x+W+4 W), (y+H / 2)}, and {(x+W / 2), (y+H+4 H)}.

66. The method of claim 64, wherein for each round of search i, time-domain BV candidates are derived in a priority order of RBi > Ctri, and time-domain BV candidates are derived in a priority order of Ri > Bi, and at most two time-domain BV candidates are derived.

67. The method of claim 64, wherein for each round of search i, up to four temporal BV candidates are derived in priority order of RBi, Ctri, Ri, Bi.

68. The method of claim 64, wherein for i = 0, at least one derived time-domain BV candidate is considered as an adjacent time-domain BV candidate.

69. The method of claim 64, wherein for i greater than 0, at least one derived time-domain BV candidate is considered as a non-adjacent time-domain BV candidate.

70. The method of claim 54, wherein another mode is used for the at least one time-domain location.

71. The method according to any one of claims 1-4, wherein in response to the selection of a motion displacement of the current video unit, a co-location block based on the motion displacement is located in a co-location image of the current video unit.

72. The method of claim 71, wherein the co-position block comprises a unidirectional prediction and has a BV in a list of reference images X, where X is 0 or 1, and the BV is considered a temporal BV candidate.

73. The method of claim 71, wherein the co-position block comprises bidirectional prediction and has two BVs in two lists of reference images, and the two BVs are regarded as two temporal BV candidates.

74. The method of claim 71, wherein the co-position block comprises bidirectional prediction and has two BVs in two lists of reference images, and the first BV of the two BVs is regarded as a temporal BV candidate.

75. The method of claim 74, wherein the first BV comprises BV in the reference image list X, where X is 0 or 1.

76. The method of claim 71, wherein the colocation block is positioned by the motion displacement, and at least one time-domain BV candidate derived from the colocation block includes at least one motion displacement-guided time-domain BV candidate.

77. The method according to any one of claims 1-4, further comprising: At least one location is examined to derive motion information from at least one co-location block of the current video unit, the motion information including BV.

78. The method of claim 77, wherein the at least one location includes a center location, and the center location is defined as one of the following: (W>>1, H>>1), ((W>>1)-1, H>>1), (W>>1, (H>>1)-1), ((W>>1)-1, (H>>1)-1), Where W and H represent the width and height of the block, and the top left position within the block is represented as (0, 0).

79. The method of claim 77, wherein the at least one position includes the upper left position within the co-position block.

80. The method of claim 77, wherein at least one of the lower right outer position or the center position of the co-position block is examined to derive the motion information.

81. The method of claim 80, wherein the inspection sequence comprises one of the following: Center, lower right outer, or Lower right outer, center.

82. The method of claim 80, wherein all available BV information is used for the time-domain BV candidate, or the first available BV information from the examined location is used for the time-domain BV candidate.

83. The method of claim 77, wherein both the lower right outer position and the center position of the co-position block are checked to derive the motion information.

84. The method of claim 83, wherein the inspection sequence for deriving the motion information comprises one of the following: The center is higher than the lower right outer edge, or The lower right outer edge is higher than the center.

85. The method of claim 83, wherein all available BV information is used for the time-domain BV candidate, or the first available BV information from the examined location is used for the time-domain BV candidate.

86. The method of claim 77, wherein at least one of the upper left position, upper right position, center position, lower left position, or lower right position of the co-position block is examined to derive the motion information.

87. The method of claim 86, wherein the inspection sequence includes the center position, the upper left position, the upper right position, the lower left position, and the lower right position.

88. The method of claim 86, wherein all available BV information is used for the time-domain BV candidate, or the first available BV information from the examined location is used for the time-domain BV candidate.

89. The method of claim 77, wherein the five positions of the co-position block—upper left, upper right, center, lower left, and lower right—are checked to derive the motion information.

90. The method of claim 89, wherein the inspection sequence includes the center position, the upper left position, the upper right position, the lower left position, and the lower right position.

91. The method of claim 89, wherein all available BV information is used for the time-domain BV candidate, or the first available BV information from the examined location is used for the time-domain BV candidate.

92. The method of claim 77, wherein at least one of the upper left position, upper right position, center position, lower left position, lower right position, or lower right outer position of the co-position block is examined to derive the motion information.

93. The method of claim 92, wherein the inspection sequence comprises one of the following: Bottom right outer position, center position, top left position, top right position, bottom left position, bottom right position. Center position, lower right outer position, upper left position, upper right position, lower left position, lower right position, or Center position, top left position, top right position, bottom left position, bottom right position, bottom right outer position.

94. The method of claim 92, wherein all available BV information is used for the time-domain BV candidate, or the first available BV information from the examined location is used for the time-domain BV candidate.

95. The method of claim 77, wherein the six positions of the co-position block—upper left, upper right, center, lower left, lower right, and lower right outer position—are checked to derive the motion information.

96. The method of claim 95, wherein the inspection sequence comprises one of the following: Bottom right outer position, center position, top left position, top right position, bottom left position, bottom right position. Center position, lower right outer position, upper left position, upper right position, lower left position, lower right position, or Center position, top left position, top right position, bottom left position, bottom right position, bottom right outer position.

97. The method of claim 95, wherein all available BV information is used for the temporal BV candidate, or the first available BV information from the examined location is used for the temporal BV candidate.

98. The method of claim 77, wherein at least one predefined position of the co-position block is checked to derive the motion information.

99. The method of claim 98, wherein all available BV information is used for the temporal BV candidate, or the first available BV information from the examined location is used for the temporal BV candidate.

100. The method of claim 77, wherein if a motion grid covering the location of the co-location block is available or has BV information, the temporal BV is determined based on the location.

101. The method of claim 77, wherein if the co-location block has a motion displacement relative to the current video unit, the temporal BV candidate derived from the co-location block includes a motion displacement-guided temporal BV candidate, or If the co-location block has the same position as the current video unit, then the temporal BV candidate derived from the co-location block includes adjacent temporal BV candidates.

102. The method according to any one of claims 1-4, wherein all time-domain BV candidates are combined in the candidate list.

103. The method according to any one of claims 1-4, wherein the number of time-domain BV candidates is less than the maximum number.

104. The method of claim 103, wherein the maximum number is one of the following: 8, 5 or 4.

105. The method of claim 103, wherein the number of time-domain BV candidates after complete deduplication is less than the maximum number.

106. The method of claim 105, wherein the maximum number is one of the following: 8, 5, 4 or 3.

107. The method of claim 105, wherein the maximum number is based on the encoding or decoding mode of the current video unit.

108. The method of claim 107, wherein for the IBC-TM AMVP mode and / or the IBC-TM Merge mode, the maximum number is 1 or 2, and for another IBC mode, the maximum number is one of the following: 8, 5, 4 or 3.

109. The method of claim 105, wherein the maximum number is based on image type or strip type.

110. The method of claim 109, wherein the maximum number is a first value if the image sequence count of all the reference images of the current strip or image is less than the image sequence count of the current strip or image, and the maximum number is a second value if the image sequence count of at least one reference image of the current strip or image is greater than the image sequence count of the current strip or image.

111. The method of claim 110, wherein the first value is 2 and the second value is 3.

112. The method according to any one of claims 1-4, wherein redundancy checking or deduplication is performed for a plurality of time-domain BV candidates.

113. The method of claim 112, wherein the deduplication includes complete deduplication or partial deduplication.

114. The method according to any one of claims 1-4, wherein the position of the time-domain BV candidates in the BV candidate list includes all time-domain BV candidates preceding the historical BV prediction (HBVP) candidates.

115. The method according to any one of claims 1-4, wherein the position of the time-domain BV candidate in the BV candidate list includes one of the following: The time-domain BV candidates preceding the HBVP candidates and the remaining time-domain BV candidates following the HBVP candidates. All time-domain BV candidates following the HBVP candidate, All temporal BV candidates preceding a spatial candidate, A portion of the temporal BV candidates preceding a spatial candidate and the remaining temporal BV candidates following the aforementioned type of spatial candidate. All temporal BV candidates following a spatial candidate, The first group of temporal BV candidates following adjacent spatial candidates, the second group of temporal BV candidates following non-adjacent spatial candidates, and the third group of temporal BV candidates following ARBVP candidates, or The first group of temporal BV candidates following adjacent spatial candidates, and the second group of temporal BV candidates following ARBVP candidates.

116. The method of claim 115, wherein the spatial domain candidates of said type include one of the following: Adjacent airspace candidates, Non-adjacent airspace candidates, or ARBVP candidate.

117. The method of claim 115, wherein the first group of time-domain BV candidates includes adjacent time-domain candidates, the second group of time-domain BV candidates includes non-adjacent time-domain candidates, and the third group of time-domain BV candidates includes motion displacement-guided time-domain BV candidates.

118. The method of claim 115, wherein the first group of time-domain BV candidates includes adjacent time-domain candidates, and the second group of time-domain BV candidates includes non-adjacent time-domain candidates and motion displacement-guided time-domain BV candidates.

119. The method of claim 118, wherein for the second set of time-domain BV candidates, the checking order includes one of the following: Non-adjacent time-domain candidates, motion displacement-guided time-domain BV candidates, or Motion displacement-guided time-domain BV candidates, and non-adjacent time-domain candidates.

120. The method according to any one of claims 1-4, wherein the position of the temporal BV candidate is selected among a plurality of positions in the co-located image.

121. The method of claim 120, wherein the plurality of positions includes a lower right position C0 and a center position C1.

122. The method of claim 121, wherein one of C0 and C1 is checked first, and if BV is not obtained, the other of C0 and C1 is checked.

123. The method of claim 121, wherein C0 has a higher priority than C1, and C1 is used if the codec unit at C0 is unavailable, does not have BV information, is outside the CTU line of the current video unit, or has an invalid BV for the current video unit.

124. The method of claim 121, wherein C1 has a higher priority than C0, and C0 is used if the codec unit at C1 is unavailable, does not have BV information, is outside the CTU line of the current video unit, or has an invalid BV for the current video unit.

125. The method of claim 121, wherein two candidates corresponding to C0 and C1 in the co-located image are used to derive the temporal BV candidate, and the derivation order is one of the following: C0, C1 or C1, C0.

126. The method according to any one of claims 1-4, wherein the BV temporal candidate is derived from the temporal position in the co-located image, and only the BV is inherited.

127. The method according to any one of claims 1-4, wherein the BV temporal candidate is derived from the temporal position in the co-located image, and both the BV and the IBC-LIC flag are inherited.

128. The method according to any one of claims 1-127, wherein the number of co-position images used to derive the temporal BV prediction or candidate is greater than or equal to 1.

129. The method of claim 128, wherein the indication for deriving the co-position image of the temporal BV candidate is indicated by one of the following: sequence level, image group level, image level, strip level, slice group level, sequence header, image header, sequence parameter set (SPS), video parameter set (VPS), decoding parameter set (DPS), decoding capability information (DCI), image parameter set (PPS), adaptive parameter set (APS), strip header, or slice group header.

130. The method of claim 128, wherein N reference images having the N smallest image sequence counting distances relative to the current image are selected as the co-position images, where N is greater than or equal to 1.

131. The method of claim 128, wherein N reference images having the N smallest quantization parameter (QP) differences relative to the current image are selected as the co-position images, where N is greater than or equal to 1.

132. The method of claim 128, wherein N reference images having the first N smallest quantization parameters are selected as the co-position images, and N is greater than or equal to 1.

133. The method according to any one of claims 1-132, wherein the indication indicates whether time-domain BV prediction (TBVP) and whether time-domain motion vector prediction (TMVP) are used.

134. The method according to any one of claims 1-132, wherein the first indication indicates whether time-domain BV prediction (TBVP) is used, and the second indication indicates whether time-domain motion vector prediction (TMVP) is used.

135. The method according to any one of claims 1-132, wherein whether temporal BV prediction (TBVP) 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.

136. The method according to any one of claims 1-135, wherein BV prediction is obtained for sub-blocks of blocks encoded or decoded using sub-block-based temporal motion vector prediction (SbTMVP).

137. The method of claim 136, wherein the BV prediction is obtained from a temporal location in a co-located block by the SbTMVP.

138. The method according to any one of claims 1-137, wherein the 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.

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

140. The method of any one of claims 1-138, wherein a syntax element is included in the bitstream based on at least one condition, the at least one condition including a condition for a function associated with the syntax element to be applicable to the transformation.

141. The method according to any one of claims 1-140, wherein the grammatical element is included in one of the following: The encoding or decoding structure can be at the block level, sequence level, picture group level, picture level, strip level, slice group level, or encoding or decoding level, wherein the encoding or decoding structure includes one of the following: code-decode tree unit (CTU), code-decode unit (CU), prediction unit (PU), transform unit (TU), code-decode tree block (CTB), code-decode 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.

142. The method according to any one of claims 1-141, 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.

143. The method according to any one of claims 1-142, 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.

144. The method according to any one of claims 1-143, 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-image, or region containing more than one sample point or pixel.

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

146. The method according to any one of claims 1-145, wherein the conversion comprises encoding the current video unit into the bitstream.

147. The method according to any one of claims 1-145, wherein the conversion comprises decoding the current video unit from the bitstream.

148. 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-147.

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

150. A non-transitory computer-readable recording medium storing a bitstream of video generated by a method performed by a video processing apparatus, wherein the method includes: Determine the temporal block vector (BV) prediction or temporal BV candidate for the current video unit of the video; as well as The bitstream is generated based on at least one of the time-domain BV prediction or the time-domain BV candidate.

151. A method for storing a bitstream of video, comprising: Determine the temporal block vector (BV) prediction or temporal BV candidate for the current video unit of the video; The bitstream is generated based on at least one of the time-domain BV prediction or the time-domain BV candidate. as well as The bitstream is stored in a non-transitory computer-readable recording medium.