Method and device for video processing and medium

By introducing model parameter inheritance technology into video encoding and decoding, and utilizing CCRM, intraTMP, and IBC filtering tools, the problem of insufficient encoding and decoding efficiency in existing video encoding and decoding technologies is solved, achieving more efficient video processing.

CN121264044APending Publication Date: 2026-01-02DOUYIN VISION CO LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202480037087.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-06-02
Filing Date
2024-05-30
Publication Date
2026-01-02

AI Technical Summary

Technical Problem

Existing video codec technologies have room for improvement in encoding and decoding efficiency, especially when processing video data. The encoding and decoding efficiency of existing standards such as MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4 AVC, ITU-T H.265 HEVC and Multifunctional Video Coding (VVC) standards needs to be further improved.

Method used

Model parameter inheritance techniques are employed, including residual coding and decoding based on cross-component models (CCRM), intra-template matching prediction (intraTMP) filtering tools, and intra-block copying (IBC) filtering tools. These are combined with historical, temporal, and spatial model parameter inheritance methods to improve coding and decoding efficiency.

Benefits of technology

By using model parameter inheritance technology, the encoding and decoding efficiency of video codecs is improved, and the performance of video processing is enhanced.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121264044A_ABST
    Figure CN121264044A_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure provide a solution for video processing. A method for video processing is presented. In the method, for a conversion between a current video unit of the video and a bitstream of the video, a model parameter inheritance is performed for a codec tool, the codec tool comprising at least one of: a residual codec (CCRM) tool based on a cross-component model, an intra template matching prediction (intra TMP) filtering tool, or an intra block copy (IBC) filtering tool, the model parameter inheritance comprises at least one of history-based model parameter inheritance, time domain-based model parameter inheritance or space domain-based model parameter inheritance. The transformation is performed based on model parameter inheritance.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] Embodiments of the present disclosure generally relate to video processing technology, and more particularly, to model parameter inheritance. BACKGROUND

[0002] Nowadays, digital video capability is being applied to various aspects of people's life. For video coding / decoding, various types of video compression technologies have been proposed, such as MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264 / MPEG-4 Part 10 Advanced Video Coding (AVC), ITU-T H.265 High Efficiency Video Coding (HEVC) standard, Versatile Video Coding (VVC) standard. However, it is generally desired to further improve the coding efficiency of video coding technology. SUMMARY

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

[0004] In a first aspect, a method for video processing is proposed. The method comprises: for conversion between a current video unit of a video and a bitstream of the video, performing model parameter inheritance for a coding tool, the coding tool comprising at least one of: a cross-component residual modeling (CCRM) tool, an intra template matching prediction (intra TMP) filtering tool, or an intra block copy (IBC) filtering tool, the model parameter inheritance comprising at least one of: history-based model parameter inheritance, temporal-based model parameter inheritance, or spatial-based model parameter inheritance; and based on the model parameter inheritance, performing the conversion. The method according to the first aspect of the present disclosure applies model parameter inheritance for video coding, thereby improving the coding efficiency.

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

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

[0007] In a fourth aspect, another non-transitory computer-readable recording medium is proposed. The non-transitory computer-readable recording medium stores a bitstream of a video generated by a method performed by an apparatus for video processing. The method includes performing model parameter inheritance for a coding tool, the coding tool including at least one of a cross-component residual modeling (CCRM) tool, an intra template matching prediction (intra TMP) filtering tool, or an intra block copy (IBC) filtering tool, the model parameter inheritance including at least one of history-based model parameter inheritance, temporal-based model parameter inheritance, or spatial-based model parameter inheritance; and generating the bitstream based on the model parameter inheritance.

[0008] In a fifth aspect, a method for storing a bitstream of a video is proposed. The method includes performing model parameter inheritance for a coding tool, the coding tool including at least one of a cross-component residual modeling (CCRM) tool, an intra template matching prediction (intra TMP) filtering tool, or an intra block copy (IBC) filtering tool, the model parameter inheritance including at least one of history-based model parameter inheritance, temporal-based model parameter inheritance, or spatial-based model parameter inheritance; generating the bitstream based on the model parameter inheritance; and storing the bitstream in a non-transitory computer-readable recording medium.

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

[0010] The above and other objects, features and advantages of the example embodiments of the present disclosure will be more apparent from the following detailed description taken in conjunction with the accompanying drawings, in which like reference characters refer to like elements throughout. In the example embodiments of the present disclosure, like reference numbers indicate like components.

[0011] Figure 1 A block diagram illustrating an example video coding system is shown in accordance with some embodiments of the present disclosure; Figure 2 A block diagram illustrating a first example video encoder is shown in accordance with some embodiments of the present disclosure; Figure 3 A block diagram illustrating an example video decoder is shown in accordance with some embodiments of the present disclosure; Figure 4 Nominal vertical and horizontal positions of 4:2:2 luma and chroma samples in a picture are shown; Figure 5 An example of an encoder block diagram is shown; Figure 6 A picture with 18x12 luma CTUs partitioned into 12 tiles and 3 raster scan slices is shown; Figure 7 A picture with 18x12 luma CTUs partitioned into 24 tiles and 9 rectangular slices is shown; Figure 8 A picture partitioned into 4 tiles, 11 blocks and 4 rectangular slices is shown; Figures 9A-9C Examples of CTBs across picture boundaries are shown, respectively; Figure 10 67 intra prediction modes are shown; Figure 11 A diagram showing sample points on an 8x8 grid and horizontal and vertical block boundaries, and non-overlapping blocks of 8x8 samples, which can be parallel deblocked, is shown; Figure 12 Pixels related to filter on / off decision and strong / weak filter switching are shown; Figures 13A-13C Filter shapes for ALF are shown, respectively; Figures 14A-14C Relative coordinates for 5x5 diamond filter support are shown, respectively; Figure 15 Examples of relative coordinates for 5x5 diamond filter support are shown; Figure 16 The spatial part of a filter is shown; Figure 17 A reference region to derive filter coefficients is shown; Figure 18 Examples of filter shapes are shown; Figure 19 A flowchart of a method for video processing according to an embodiment of the disclosure is shown; Figure 20 A block diagram of a computing device in which various embodiments of the disclosure can be implemented is shown.

[0012] Throughout the drawings, identical or similar reference numerals can designate identical or similar elements throughout the several views. DETAILED DESCRIPTION

[0013] The principles of the disclosure will now be described with reference to some embodiments. It should be understood that the embodiments are described for illustrative purposes only and to help the person skilled in the art to understand and implement the disclosure, without implying any limitation on the scope of the disclosure. The disclosure described herein can be implemented in various ways in addition to those described below.

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

[0015] References in the present disclosure to “one embodiment,” “an embodiment,” “example embodiments,” etc., indicate that the embodiment described can include a particular feature, structure, or characteristic, but every embodiment can not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Furthermore, when a particular feature, structure, or characteristic is described in connection with an example embodiment, it is submitted that it is within the knowledge of those skilled in the art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.

[0016] It should be understood that although the terms “first” and “second” etc. can be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first element could be termed a second element, and, similarly, a second element could be termed a first element without departing from the scope of the example embodiments. As used herein, the term “and / or” includes any and all combinations of one or more of the associated terms.

[0017] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of example embodiments. As used herein, the singular forms “a,” “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises,” “comprising,” “includes” and / or “including,” when used herein, specify the presence of stated features, elements and / or components, but do not preclude the presence or addition of one or more other features, elements, components and / or combinations thereof.

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

[0019] Video source 112 can include a source such as a video capture device, for example. Examples of video capture devices include, but are not limited to, an interface to receive video data from a video content provider, a computer graphics system to generate video data, and / or a combination thereof.

[0020] Video data can comprise one or more pictures. Video encoder 114 encodes video data from video source 112 to generate a bitstream. The bitstream can include a sequence of bits that forms a coded representation of the video data. The bitstream can include encoded pictures and associated data. An encoded picture is a coded representation of a picture. The associated data can include sequence parameter sets, picture parameter sets, and other syntax structures. I / O interface 116 can include a modulator / demodulator and / or a transmitter. The encoded video data can be transmitted directly to destination device 120 by network 130A via I / O interface 116. The encoded video data can also be stored onto a storage medium / server 130B for access by destination device 120.

[0021] Destination device 120 can include an I / O interface 126, a video decoder 124, and a display device 122. I / O interface 126 can include a receiver and / or a modem. I / O interface 126 can acquire encoded video data from source device 110 or storage medium / server 130B. Video decoder 124 can decode the encoded video data. Display device 122 can display the decoded video data to a user. Display device 122 can be integrated with destination device 120, or can be external to destination device 120 which is configured to interface with an external display device.

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

[0023] Figure 2 FIG. 2 is a block diagram illustrating an example of a video encoder 200 that can be Figure 1 the video encoder 114 in the system 100 shown.

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

[0025] In some embodiments, video encoder 200 can include partition unit 201, prediction unit 202, which can include mode select unit 203, motion estimation unit 204, motion compensation unit 205, and intra-prediction unit 206, residual generation unit 207, transform unit 208, quantization unit 209, inverse quantization unit 210, inverse transform unit 211, reconstruction unit 212, buffer 213, and entropy encoding unit 214.

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

[0027] Furthermore, although some components, such as motion estimation unit 204 and motion compensation unit 205, can be integrated, for purposes of explanation, these components are shown separately in Figure 2 examples.

[0028] Partition unit 201 can partition a picture into one or more video blocks. Video encoder 200 and video decoder 300 can support various video block sizes.

[0029] Mode select unit 203 can select one of a plurality of encoding modes (intra- or inter- coding) based on, for example, error results, and provide the resulting intra- or inter- coded block to residual generation unit 207 to generate residual block data and to reconstruction unit 212 to reconstruct the encoded block for use as a reference picture. In some examples, mode select unit 203 can select a combined inter-intra prediction (CIIP) mode in which prediction is based on both inter- and intra-prediction signals. In the case of inter-prediction, mode select unit 203 can also select a resolution for motion vectors (e.g., sub-pixel precision or integer pixel precision) for the block.

[0030] To perform inter-prediction for a 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 to the current video block. Motion compensation unit 205 can determine a predicted video block for the current video block based on the motion information and decoded samples of pictures from buffer 213 other than the picture in which the current video block is located.

[0031] Motion estimation unit 204 and motion compensation unit 205 can perform different operations on a current video block, e.g., depending on whether the current video block is in an I slice, a P slice, or a B slice. As used herein, an "I slice" can refer to a portion of a picture composed of macroblocks all of which are based on macroblocks within the same picture. Further, as used herein, a "P slice" and a "B slice" can refer, in some aspects, to portions of a picture composed of macroblocks that are independent of macroblocks in the same picture.

[0032] In some examples, motion estimation unit 204 can perform uni-prediction on a current video block, and motion estimation unit 204 can search a reference picture in List 0 or List 1 for a reference video block for the current video block. Motion estimation unit 204 can then generate a reference index indicating the reference picture in List 0 or List 1 containing the reference video block, and a motion vector indicating a spatial displacement between the current video block and the reference video block. Motion estimation unit 204 can output the reference index, a prediction direction indicator, and the 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 for the current video block.

[0033] Alternatively, in other examples, motion estimation unit 204 can perform bi-prediction on a current video block. Motion estimation unit 204 can search a reference picture in List 0 for one reference video block for the current video block, and can also search a reference picture in List 1 for another reference video block for the current video block. Motion estimation unit 204 can then generate multiple reference indices indicating multiple reference pictures in List 0 and List 1 containing the multiple reference video blocks, and multiple motion vectors indicating multiple spatial displacements between the multiple reference video blocks and the current video block. Motion estimation unit 204 can output the multiple reference indices and the multiple motion vectors for 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 multiple reference video blocks indicated by the motion information for the current video block.

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

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

[0036] In another example, the motion estimation unit 204 can identify another video block and a motion vector difference (MVD) in a syntax structure associated with the current video block. The motion vector difference indicates a difference between a motion vector of the current video block and a motion vector of the indicated video block. The 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 signal motion vectors 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 mode signaling.

[0038] The intra prediction unit 206 can perform intra prediction on the current video block. When the intra prediction unit 206 performs intra prediction on the current video block, the intra prediction unit 206 can generate prediction data for the current video block based on decoded samples of other video blocks in the same picture. The prediction data for the current video block can include a 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) the prediction video block(s) of the current video block 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 can be no residual data for the current video block for the current video block, and the residual generation unit 207 can not perform the subtraction operation.

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

[0042] After the transform processing unit 208 generates the transform coefficient video blocks associated with the current video block, the quantization unit 209 can quantize the transform coefficient video blocks 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, respectively, to the transform coefficient video block to reconstruct a residual video block from the transform coefficient video block. The reconstruction unit 212 can add the reconstructed residual video block to corresponding samples from one or more prediction video blocks generated by the prediction unit 202 to produce a reconstructed video block associated with the current video block for storage in the buffer 213.

[0044] After the reconstruction unit 212 reconstructs the video block, an in-loop filtering operation can be performed to reduce video block effect artifacts in the video block.

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

[0046] Figure 3 FIG. 3 is a block diagram illustrating an example of a video decoder 300 that can be Figure 1 the example system 100.

[0047] The video decoder 300 can be configured to perform any or all of the techniques of this disclosure. In Figure 3 The video decoder 300 includes a plurality of functional components in examples. The techniques described in this disclosure can be shared among the various components of the video decoder 300. In some examples, a processor can be configured to perform any or all of the techniques described in this disclosure.

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

[0049] Entropy decoding unit 301 can retrieve an encoded bitstream. The encoded bitstream can include entropy encoded video data (e.g., encoded blocks of video data). 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 index, and other motion information. Motion compensation unit 302 can determine such information, for example, by performing AMVP and Merge modes. AMVP is used, including deriving a number of most probable candidates based on data from neighboring PBs and reference pictures. The motion information typically includes a horizontal motion vector displacement value and a vertical motion vector displacement value, one or two reference picture indices, and in the case of a prediction region in a B slice, an identification of which reference picture list is associated with each index. As used herein, in some aspects, "Merge mode" can refer to deriving motion information from a spatially or temporally neighboring block.

[0050] Motion compensation unit 302 can generate a motion compensated block, possibly performing interpolation based on an interpolation filter. An identifier for the interpolation filter used at sub-pixel precision can be included in the syntax elements.

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

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

[0053] Intra prediction unit 303 can use intra prediction modes, e.g., received in the bitstream, to form a prediction block from spatial neighboring blocks. Dequantization unit 304 dequantizes quantized video block coefficients provided in the bitstream and decoded by entropy decoding unit 301. Inverse transform unit 305 applies an inverse transform.

[0054] The reconstruction unit 306 can obtain the decoded block, e.g., by adding the residual block to the corresponding prediction block generated by the motion compensation unit 302 or the intra prediction unit 303. If desired, a deblocking filter can also be applied to the decoded block in order to remove blocking artifacts. The decoded video blocks are then stored in the buffer 307, which provides reference blocks for subsequent motion compensation / intra prediction, and which also produces decoded video for presentation on a display device.

[0055] Some example embodiments of the present disclosure will be described in detail below. It should be noted that the use of section headings in this document is for convenience only and not to be construed as limiting the embodiments disclosed in that section to that section only. Furthermore, although some embodiments are described with reference to the versatile video coding or other specific video codec, the disclosed techniques are applicable to other video coding technologies as well. Moreover, although some embodiments describe video encoding steps in detail, it should be understood that corresponding decoding steps to undo the encoding would be implemented by a decoder. Furthermore, the term video processing includes video encoding or compression, video decoding or decompression, and video transcoding, in which video pixels are represented from one compressed format to another compressed format or at a different compressed bit rate.

[0056] 1. BRIEF OVERVIEW The present disclosure relates to video coding technologies. In particular, it relates to loop filters and other coding tools in image / video coding. These ideas can be applied to any existing video coding standard or non-standard video codec, such as High Efficiency Video Coding (HEVC) and Versatile Video Coding (VVC), individually or in various combinations. The proposed ideas can also be applicable to future video coding standards or video codecs.

[0057] 2. ABBREVIATIONS AVC Advanced Video Coding CPB Coded Picture Buffer CRA Clean Random Access CTU Coding Tree Unit CVS Coded Video Sequence DPB Decoded Picture Buffer DPS Decoding Parameter Set GCI General Constraint Information HEVC High Efficiency Video Coding JEM Joint Exploration Model MCTS Motion-Constrained Tile Set NAL Network Abstraction Layer OLS Output Layer Set PH Picture Header PPS picture parameter set PTL profile, tier, and level PU picture unit RRP reference picture resampling RBSP raw byte sequence payload SEI supplemental enhancement information SH slice header SPS sequence parameter set VCL video coding layer VPS video parameter set

[0058] VUI video usability information VVC versatile video coding TU transform unit CU coding unit DF de-blocking filter SAO sample adaptive offset ALF adaptive loop filter CBF coded block flag QP quantization parameter RDO rate-distortion optimization BF bilateral filter GDR gradual decoding refresh

[0059] 3. Introduction Video coding standards have evolved mainly through the development of the well-known ITU-T and ISO / IEC standards. The ITU-T produced H.261 and H.263 standards, ISO / IEC produced MPEG-1 and MPEG-4 Visual, and the two organizations jointly produced the H.262 / MPEG-2 Video and H.264 / MPEG-4 Advanced Video Coding (AVC) and H.265 / HEVC standards. From H.262, the video coding standards are based on the hybrid video coding structure, where temporal prediction plus transform coding is utilized. To explore future video coding technologies beyond HEVC, the Joint Video Exploration Team (JVET) was founded by VCEG and MPEG jointly in 2015. Since then, many new methods have been adopted into the reference software named Joint Exploration Model (JEM) by the JVET. The JVET meeting is held every quarter, and the new coding standard targets at 50% bitrate reduction compared to HEVC. The new video coding standard was officially named as Versatile Video Coding (VVC) in the April 2018 JVET meeting, and the first version of VVC test model (VTM) was also released at that time. As the VVC standardization is ongoing, new coding technologies are being adopted into the VVC standard in every JVET meeting. The working draft of VVC and the test model VTM are updated after every meeting.

[0060] The latest version of VVC draft, namely Versatile Video Coding (Draft 10) can be found at: https: / / jvet-experts.org / doc_end_user / documents / 19_Teleconference / wgl l / JVET-S2001-v17.zip.

[0061] The latest reference software of VVC, named VTM, can be found at: https: / / vcgit.hhi.fraunhofer.de / jvet-u-ee2 / VVCSoftware_VTM / - / tree / VTM-11.2.

[0062] ITU-T VCEG (Q6 / 16) and ISO / IEC MPEG (JTC 1 / SC 29 / WG 11) are studying the potential need for standardization of future video coding technology with compression capabilities significantly over current VVC standard. Such future standardization effort can take the form of extended (multiple) extensions of VVC or entirely new standard. These organizations are conducting this study together through a joint collaboration effort named Joint Video Exploration Team (JVET) to evaluate compression technology designs proposed by experts in the field. The first Exploration Experiment (EE) was established at the JVET meeting from January 6-15, 2021, with the reference software named Enhanced Compression Mode (ECM). The test model ECM is updated after each JVET meeting.

[0063] 3.1. Color Space and Chroma Subsampling A color space, also called a color model (or color system), is an abstract mathematical model that simply describes a range of colors as tuples of numbers, usually 3 or 4 values or color components (e.g. RGB). Basically, a color space is a refinement of a coordinate system and a subspace.

[0064] For video compression, the most commonly used color spaces are YCbCr and RGB.

[0065] YCbCr, Y'CbCr, or Y Pb / Cb Pr / Cr, also written as YCBCR or Y'CBCR, is a family of color spaces used as part of the color image pipeline in video and digital photography systems. Y' is the luma component and CB and CR are the blue-difference and red-difference chroma components. Y' (with the prime) distinguishes from Y, Y is the luminance, which means that the light intensity is encoded non-linearly based on the gamma-corrected RGB primaries.

[0066] Chroma subsampling is a practice of encoding images with lower resolution for chroma information than for luma information, taking advantage of the fact that the human visual system is less acute in discriminating color differences than in discriminating luminance. 3.1.1. 4:4:4 Each of the three Y'CbCr components has the same sample rate, so there is no chroma subsampling. This scheme is sometimes used for high-end film scanners and film post-production. 3.1.2. 4:2:2 The two chroma components are sampled at half the sample rate of the luma: the horizontal chroma resolution is halved, while the vertical chroma resolution remains the same. This reduces the bandwidth of the uncompressed video signal by a third, with little visual difference. An example of the nominal vertical and horizontal positions of the 4:2:2 color format is depicted in Figure 4 , in the VVC Working Draft.Figure 4 The nominal vertical and horizontal positions of 4:2:2 luma and chroma samples in a picture are shown. 3.1.3.4:2:0 In 4:2:0, the horizontal sampling is doubled compared to 4:1:1, but the vertical resolution is halved since in this scheme the Cb and Cr channels are only sampled on every alternate line. Thus, the data rate is the same. Cb and Cr are downsampled by a factor of 2 in both horizontal and vertical directions. There are three variants of the 4:2:0 scheme with different horizontal and vertical addressing.

[0070] • In MPEG-2, Cb and Cr are co-addressed in the horizontal direction. Cb and Cr are interstitially addressed in the vertical direction (interstitial addressing).

[0071] • In JPEG / JFIF, H.261 and MPEG-1, Cb and Cr are interstitially addressed, in the middle of alternate luma samples.

[0072] • In 4:2:0 DV, Cb and Cr are co-addressed in the horizontal direction. In the vertical direction, they are co-addressed on alternate lines.

[0073] Table 3-1 SubWidthC and SubHeightC values derived from chroma_format_idc and separate_colour_plane_flag

[0074] 3.2. Codec stream of a typical video codec Figure 5 An example of the encoder block diagram of VVC is shown, which contains three in-loop filters: the Deblocking Filter (DF), Sample Adaptive Offset (SAO) and ALF. Unlike DF, which uses a pre-defined filter, SAO and ALF exploit the original samples of the current picture to reduce the mean square error between the original and reconstructed samples by adding an offset and by applying a Finite Impulse Response (FIR) filter, respectively, and exploit the coded side information to signal the offset and filter coefficients. ALF is located at the last processing stage of each picture and can be seen as a tool trying to capture and fix artifacts caused by previous stages.

[0075] 3.3. Definition of a video / codec unit A picture is divided into one or more tile rows and one or more tile columns. A tile is a sequence of CTUs covering a rectangular region of the picture.

[0076] A tile is divided into one or more blocks, each of which is composed of a number of CTU rows within the tile.

[0077] A slice that is not partitioned into multiple tiles is also referred to as a tile. However, a tile that is a proper subset of a slice is not referred to as a slice.

[0078] A slice contains multiple tiles of a picture or multiple blocks of a tile.

[0079] Two modes of slices are supported, namely, a raster-scan slice mode and a rectangular slice mode. In the raster-scan slice mode, a slice contains a sequence of tiles in a raster scan of the picture. In the rectangular slice mode, a slice contains multiple blocks that collectively form a rectangular region of the picture. The blocks within a rectangular slice are arranged in the order of a block raster scan of the slice.

[0080] Figure 6 A picture with 18x12 luma CTUs partitioned into 12 tiles and 3 raster-scan slices is shown. Figure 6 An example of a raster-scan slice partitioning of a picture is demonstrated, where the picture is divided into 12 tiles and 3 raster-scan slices.

[0081] Figure 7 A picture with 18x12 luma CTUs partitioned into 24 tiles and 9 rectangular slices is shown. In the VVC specification, Figure 7 An example of a rectangular slice partitioning of a picture is demonstrated, where the picture is divided into 24 tiles (6 tile columns and 4 tile rows) and 9 rectangular slices.

[0082] Figure 8 A picture partitioned into 4 tiles, 11 blocks, and 4 rectangular slices is shown. In the VVC specification, Figure 8 An example of a picture partitioned into tiles, blocks, and rectangular slices is demonstrated, where the picture is divided into 4 tiles (2 tile columns and 2 tile rows), 11 blocks (the top-left tile contains 1 block, the top-right tile contains 5 blocks, the bottom-left tile contains 2 blocks, and the bottom-right tile contains 3 blocks), and 4 rectangular slices.

[0083] 3.3.1. CTU / CTB size In VVC, the CTU size, which is signaled in the SPS by the syntax element log2_ctu_size_minus2, can be as small as 4x4.

[0084] Sequence parameter set RBSP syntax

[0085] log2_ctu_size_minus2 plus 2 specifies the luma coding tree block size of each CTU.

[0086] log2_min_luma_coding_block_size_minus2 plus 2 specifies the minimum luma coding block size.

[0087] The variables CtbLog2SizeY, CtbSizeY, MinCbLog2SizeY, MinCbSizeY, MinTbLog2SizeY, MaxTbLog2SizeY, MinTbSizeY, MaxTbSizeY, PicWidthInCtbsY, PicHeightInCtbsY, PicSizeInCtbsY, PicWidthInMinCbsY, PicHeightInMinCbsY, PicSizeInMinCbsY, PicSizeInSamplesY, PicWidthInSamplesC and PicHeightInSamplesC are derived as follows: CtbLog2SizeY = log2_ctu_size_minus2 + 2 (7-9) CtbSizeY = 1 << CtbLog2SizeY (7-10) MinCbLog2SizeY = log2_min_luma_coding_block_size_minus2 + 2 (7-11) MinCbSizeY = 1 << MinCbLog2SizeY (7-12) MinTbLog2SizeY = 2 (7-13) MaxTbLog2SizeY = 6 (7-14) MinTbSizeY = 1 << MinTbLog2SizeY (7-15) MaxTbSizeY = 1 << MaxTbLog2SizeY (7-16) PicWidthInCtbsY = Ceil( pic_width_in_luma_samples ÷ CtbSizeY ) (7-17) PicHeightInCtbsY = Ceil( pic_height_in_luma_samples ÷ CtbSizeY ) (7-18) PicSizeInCtbsY = PicWidthInCtbsY * PicHeightInCtbsY (7-19) PicWidthInMinCbsY = pic_width_in_luma_samples / MinCbSizeY (7-20) PicHeightInMinCbsY = pic_height_in_luma_samples / MinCbSizeY (7-21) PicSizeInMinCbsY = PicWidthInMinCbsY * PicHeightInMinCbsY (7-22) PicSizeInSamplesY = pic_width_in_luma_samples * pic_height_in_luma_samples (7-23) PicWidthInSamplesC = pic_width_in_luma_samples / SubWidthC (7-24) PicHeightInSamplesC = pic_height_in_luma_samples / SubHeightC (7-25) 3.3.2. CTU in a picture Let the CTB / LCU size be denoted by MxN (typically M is equal to N as defined in HEVC / VVC), and for a CTB located at the picture (or slice or tile or other type, taking the picture boundary as an example) boundary, KxL samples are inside the picture boundary, where either K Figures 9A-9C Examples of CTBs crossing the picture boundary are shown respectively. Figure 9A CTBs crossing the bottom picture boundary are shown. Figure 9B CTBs crossing the right picture boundary are shown. Figure 9C CTBs crossing the bottom-right picture boundary are shown. For those CTBs as depicted in Figures 9A-9C For those CTBs as depicted in

[0088] 3.4. Intra prediction To capture arbitrary edge directions present in natural videos, the number of directional intra modes is extended from 33 used in HEVC to 65. The extended directional modes are depicted as dashed arrows, and the planar and DC modes remain unchanged. These denser directional intra prediction modes are applied to all block sizes and to both luma and chroma intra prediction.

[0089] Figure 10 67 intra prediction modes are shown. As shown in Figure 10 In VTM, for non-square blocks, several regular angular intra prediction modes are adaptively replaced by wide-angle intra prediction modes. The replaced modes are signaled using the original method and are remapped to the indices of wide-angle modes after parsing. The total number of intra prediction modes remains unchanged, i.e., 67, and the intra mode coding remains unchanged.

[0090] In HEVC, each intra coded block has a square shape and the length of each side is a power of 2. Therefore, no division operation is needed to generate the intra prediction value using the DC mode. In VVC, the block can have a rectangular shape, which in general case requires a division operation for each block. To avoid the division operation for DC prediction, only the longer side is used to calculate the average value for non-square blocks.

[0091] 3.5. Inter prediction For each inter prediction CU, the motion parameters consist of motion vectors, reference picture indices and reference picture list usage indices, and the new coding features of VVC that require extended information for inter prediction sample generation. The motion parameters can be signaled in an explicit or implicit manner. When a CU is coded in skip mode, the CU is associated with one PU and has no significant residual coefficients, coded motion vector difference or reference picture indices. Merge mode is specified, whereby the motion parameters for the current CU are derived from neighboring CUs, including spatial and temporal candidates and the extended scheduling introduced in VVC. Merge mode can be applied to any inter prediction CU, not only for skip mode. An alternative to merge mode is the explicit transmission of motion parameters, where the motion vectors for each reference picture list, the corresponding reference picture indices and reference picture list usage flags, and other needed information are explicitly signaled for each CU.

[0092] 3.6. Deblocking filter Deblocking filtering is a typical in-loop filter in video codecs. In VVC, the deblocking filtering process is applied to CU boundaries, transform subblock boundaries and prediction subblock boundaries. Prediction subblock boundaries include prediction unit boundaries introduced by SbTMVP (subblock-based temporal motion vector prediction) and affine mode, and transform subblock boundaries include transform unit boundaries introduced by SBT (subblock transform) and ISP (intra subpartition) modes as well as transforms due to implicit partitioning of large CUs. Following the practice in HEVC, the processing order of the deblocking filter is defined as horizontal filtering on vertical edges of the whole picture first, followed by vertical filtering on horizontal edges. This particular order enables multiple horizontal filtering or vertical filtering processes to be applied in parallel threads, or can still be implemented on a CTB-by-CTB basis with only a small processing delay.

[0093] Vertical edges in a picture are filtered first. Then, horizontal edges in the picture are filtered with the samples modified by the vertical edge filtering process as input. The vertical and horizontal edges in the CTBs of each CTU are processed individually on a coding unit basis. The vertical edges of the coding blocks in a coding unit are filtered, starting from the edges on the left-hand side of the coding blocks, proceeding through the edges towards the right-hand side of the coding blocks in their geometric order. The horizontal edges of the coding blocks in a coding unit are filtered, starting from the edges on the top of the coding blocks, proceeding through the edges towards the bottom of the coding blocks in their geometric order.

[0094] Figure 11 A schematic diagram showing the picture samples and horizontal and vertical block boundaries on an 8x8 grid, and non-overlapping blocks of 8x8 samples, which can be deblocked in parallel, is shown.

[0095] 3.6.1. Border decision Filtering is applied to 8x8 block boundaries. In addition, it must be a transform block boundary or a coding subblock boundary (e.g. due to the use of affine motion prediction, ATMVP). For those boundaries that are not such boundaries, the filter is disabled.

[0096] 3.6.2. Border strength calculation For transform block boundaries / coding subblock boundaries, if it is located in an 8x8 grid, it can be filtered, and the setting of bS[xDi][yDj] (where [xDi][yDj] denotes the coordinates) for the edge is defined as follows.

[0097] Table 3-2 Border strength (when SPS IBC is disabled)

[0098] Table 3-3 Border strength (when SPS IBC is enabled)

[0099] 3.6.3. Deblocking decision for luma components Figure 12 Pixels related to filter on / off decision and strong / weak filter switching are shown.

[0100] The wider and stronger luma filter is used only when condition 1, condition 2 and condition 3 are all true.

[0101] Condition 1 is the "large block condition". This condition checks whether the samples on the P side and the Q side belong to a large block, which are denoted by variables bSidePisLargeBlk and bSideQisLargeBlk, respectively. bSidePisLargeBlk and bSideQisLargeBlk are defined as follows.

[0102] bSidePisLargeBlk = ((edgeType is vertical and p0 belongs to a CU with width >= 32) || (edgeType is horizontal and p0 belongs to a CU with height >= 32))? true : false, bSideQisLargeBlk = ((edgeType is vertical and q0 belongs to a CU with width >= 32) || (edgeType is horizontal and q0 belongs to a CU with height >= 32))? true : false.

[0103] Based on bSidePisLargeBlk and bSideQisLargeBlk, condition 1 is defined as follows.

[0104] condition 1 = (bSidePisLargeBlk || bSidePisLargeBlk)? true : false.

[0105] Next, if condition 1 is true, condition 2 will be further checked. First, the following variables are derived: - dp0, dp3, dq0, dq3 are first derived in the way of HEVC - if (p side is greater than or equal to 32) dp0 = ( dp0 + Abs(p50 2*p40+p30) + 1 )>>1 dp3 = ( dp3 + Abs(p53 2*p43+p33) + 1 )>>1 - if (q side is greater than or equal to 32) dq0 = ( dq0 + Abs(q50 2*q40+q30) + 1 )>>1 dq3 = ( dq3 + Abs(q53 2*q43+q33) + 1 )>>1.

[0106] Condition2 = (d

[0107] where d = dp0 + dq0 + dp3 + dq3.

[0108] If both Conditionl and Condition2 are valid, then further check whether either of the blocks uses sub-blocks: If (bSidePisLargeBlk) { If (block P's mode == SUBBLOCKMODE) Sp =5 else Sp =7 } else Sp = 3 If (bSideQisLargeBlk) { If (block Q's mode == SUBBLOCKMODE) Sq =5 else Sq =7 } else Sq = 3.

[0109] Finally, if both Conditionl and Condition2 are valid, then the proposed deblocking method will check Condition3 (large block strong filter condition), which is defined as follows.

[0110] In Condition3 StrongFilterCondition, the following variables are derived: dpq is derived as in HEVC.

[0111] sp3= Abs(p3 p0), sp0 is derived as in HEVC. if (pSide >= 32) if (Sp == 5) sp3= ( sp3+ Abs( p5 p3) + 1)>>1 else sp3 = (sp3 + Abs(p7) p3) + 1)>>1 sq3 = Abs(q0) q3), derived according to HEVC method if (q side is greater than or equal to 32) If (Sq == 5) sq3 = (sq3 + Abs(q5)) q3) + 1)>>1 else sq3 = (sq3 + Abs(q7)) q3) + 1)>>1.

[0112] According to HEVC, StrongFilterCondition = (dpq < (β >> 2), sp3 + sq3 < (3 * β >> 5), and Abs(p0) q0) is less than (5*t) C +1)>>1) ? True: False.

[0113] 3.6.4. A more robust deblocking filter for luminance A bilinear filter is used when samples on either side of the boundary belong to a large block. Samples are defined as belonging to a large block when the width of the vertical edge is greater than or equal to 32, and when the height of the horizontal edge is greater than or equal to 32.

[0114] Bilinear filters are listed below.

[0115] The block boundary sample point p in the above HEVC deblocking process i (i=0 to Sp-1) and q i (j=0 to Sq-1) (pi and qi are the i-th sample in the row used to filter vertical edges, or the i-th sample in the column used to filter horizontal edges) are then replaced by the following linear interpolation: —

[0116]

[0117] in and The term is the position-related limiting described in Section 3.6.2, and , , , and It is given below.

[0118] 3.6.5. Deblocking decision for chroma Chroma strong filter is used on both sides of the block boundary. Here, when the two sides of the chroma edge are greater than or equal to 8 (chroma position), the chroma filter is selected and the following decision with three conditions is satisfied: the first is for the boundary strength and the large block decision. The proposed filter can be applied when the block width or height crossing the block boundary orthogonally in the chroma sample domain is equal to or greater than 8. The second and third are basically the same as for the HEVC luma deblocking decision, which are the on / off decision and the strong filter decision, respectively.

[0119] In the first decision, the boundary strength (bS) is modified for chroma filtering and the conditions are checked sequentially. If a certain condition is satisfied, the remaining conditions with lower priority are skipped.

[0120] When bS is equal to 2, or bS is equal to 1 when a large block boundary is detected, chroma deblocking is performed.

[0121] The second and third conditions are basically the same as the HEVC luma strong filter decision as follows.

[0122] In the second condition: Then d is derived as in the HEVC luma deblocking.

[0123] The second condition will be true when d is less than β.

[0124] In the third condition, StrongFilterCondition is derived as follows: dpq is derived as in HEVC.

[0125] sp3 = Abs( p3 p0), derived as in HEVC sq3 = Abs( q0 q3), derived as in HEVC.

[0126] According to the HEVC design, StrongFilterCondition = (dpq is less than ( β » 2 ), sp3 + sq3 is less than ( β » 3 ), and Abs( p0 q0) is less than ( 5 * t C + 1 ) » 1).

[0127] 3.6.6. Strong deblocking filter for chroma The following strong deblocking filter for chroma is defined: p2′= (3*p3+2*p2+p1+p0+q0+4)>>3 p1′= (2*p3+p2+2*p1+p0+q0+q1+4)>>3 p0′= (p3+p2+p1+2*p0+q0+q1+q2+4)>>3.

[0128] The proposed chromaticity filter performs deblocking on a 4x4 chromaticity sample grid.

[0129] 3.6.7. Location-Related Limiting Position-dependent limiting (tcPD) is applied to the output samples of a brightness filtering process involving strong and long filters, which modify 7, 5, and 3 samples at the boundaries, respectively. Assuming a quantization error distribution, it is proposed to increase the limiting value for samples expected to have higher quantization noise, thus anticipating a higher deviation between the reconstructed sample values ​​and the true sample values.

[0130] For each P or Q boundary filtered using an asymmetric filter, depending on the decision outcome, a position-related threshold table is selected from two tables (i.e., Tc7 and Tc3 listed below) provided to the decoder as edge information: Tc7 = { 6, 5, 4, 3, 2, 1, 1}; Tc3 = { 6, 4, 2}; tcPD = (Sp == 3)? Tc3 : Tc7; tcQD = (Sq == 3)? Tc3 : Tc7. For P or Q boundaries filtered by short symmetric filters, apply a lower amplitude position correlation threshold: Tc3 = { 3, 2, 1}. After defining the threshold, the filtered p’ i and q’ i The sample values ​​are limited based on the tcP and tcQ limiting values: p’’ i = Clip3(p’ i + tcP i , p’ i – tcP i , p’ i ) q’’ j = Clip3(q’ j + tcQ j , q’ j– tcQ j , q’ j ). where p’ i and q’ i is the filtered sample value, p’’ i and q’’ j is the clipped output sample value, and tcP i tcP i is the clipping threshold derived from the VVC tc parameter and tcPD and tcQD . The function Clip3 is the clipping function as specified in VVC.

[0131] 3.6.8. Subblock Deblocking Adjustment To enable parallel-friendly deblocking using both long filter and subblock deblocking, the long filter is restricted to modify at most 5 samples on the side using subblock deblocking (AFFINE or ATMVP or DMVR) as shown in the luma control for long filter. Extending, the subblock deblocking is adjusted such that the subblock boundary close to the CU or implicit TU boundary on the 8x8 grid is restricted to modify at most two samples on each side.

[0132] The following applies to the subblock boundary that is not aligned with the CU boundary.

[0133] If (block Q's mode == SUBBLOCKMODE && edge!= 0) { if (!(implicitTU && (edge == (64 / 4)))) if (edge == 2 || edge == (orthogonalLength - 2) || edge == (56 / 4) || edge == (72 / 4)) Sp = Sq = 2; else Sp = Sq = 3; else Sp = Sq = bSideQisLargeBlk? 5:3 }. Where edge = 0 corresponds to the CU boundary, edge = 2 or orthogonalLength-2 corresponds to the sub-block boundary 8 samples away from the CU boundary, etc. If implicit partitioning of TU is used, then implicit TU is true.

[0134] 3.7. Sample point adaptive compensation Sample Adaptive Compensation (SAO) is applied to the reconstructed signal after the deblocking filter using an offset specified by the encoder for each CTB. The video encoder first determines whether to apply the SAO process to the current slice. If SAO is applied to the slice, each CTB is categorized as shown in the table. 3 - 1 This is one of five SAO types shown. The concept of SAO is to classify pixels into multiple categories and reduce distortion by adding an offset to pixels in each category. SAO operations include Edge Offset (EO) and Band Offset (BO), where EO uses edge attributes to classify pixels in SAO types 1 through 4, and BO uses pixel intensity to classify pixels in SAO type 5. Each applicable CTB has SAO parameters including sao_merge_left_flag, sao_merge_up_flag, SAO type, and four offsets. If sao_merge_left_flag equals 1, the current CTB will reuse the SAO type and offset of the left CTB. If sao_merge_up_flag equals 1, the current CTB will reuse the SAO type and offset of the upper CTB.

[0135] Table 3-4 Specifications for SAO Types

[0136] 3.8. Adaptive Loop Filter Adaptive loop filtering for video coding is to minimize the mean square error between original and decoded samples by using a Wiener-based adaptive filter. ALF is located at the last processing stage of each picture and can be considered as a tool to capture and fix artifacts from previous stages. Suitable filter coefficients are determined by the encoder and explicitly signaled to the decoder. To achieve better coding efficiency, especially for high resolution videos, local adaptation is used for the luma signal by applying different filters to different regions or blocks in a picture. In addition to filter adaptation, filter on / off control at the coding tree unit (CTU) level also helps to improve coding efficiency. In terms of syntax, filter coefficients are sent in a picture level header called adaptive parameter set (APS), and filter on / off flags of a CTU are interleaved at the CTU level in the slice data. This syntax design not only supports picture level optimization, but also enables low encoding delay.

[0137] 3.8.1. Signaling of parameters According to the ALF design in VTM, filter coefficients and clipping indices are carried in the ALF APS. An ALF APS can include up to 8 chroma filters and one luma filter set with up to 25 filters. An index is also included for each of the 25 luma categories. Categories with the same index share the same filter. By merging different categories, the number of bits needed to represent filter coefficients is reduced. The absolute values of filter coefficients are represented using the 0th order Exp-Golomb code, followed by sign bits for non-zero coefficients. When clipping is enabled, a clipping index is also signaled for each filter coefficient using a two-bit fixed length code. A decoder can use up to 8 ALF APSs simultaneously.

[0138] Filter control syntax elements for ALF in VTM include two types of information. First, ALF on / off flags are signaled at sequence, picture, slice, and CTB level. Chroma ALF can be enabled at picture and slice level only if luma ALF is enabled at the corresponding level. Second, filter usage information is signaled at picture, slice, and CTB level if ALF is enabled at that level. If all slices within a picture use the same APS, the referenced ALF APS ID is coded at slice or picture level. A luma component can reference up to 7 ALF APSs, and a chroma component can reference 1 ALF APS. For luma CTBs, an index is signaled that indicates which ALF APS or offline trained luma filter set to use. For chroma CTBs, the index indicates which filter in the referenced APS to use.

[0139] The data syntax elements of ALF in VTM associated with the luma component are listed as follows:

[0140] alf_luma_filter_signal_flag equal to 1 specifies that the luma filter set is signaled.

[0141] alf_luma_filter_signal_flag equal to 0 specifies that the luma filter set is not signaled.

[0142] alf_luma_clip_flag equal to 0 specifies that linear adaptive loop filtering is applied to the luma component.

[0143] alf_luma_clip_flag equal to 1 specifies that non-linear adaptive loop filtering can be applied to the luma component.

[0144] alf_luma_num_filters_signalled_minus1 plus 1 specifies the number of adaptive loop filter classes whose luma coefficients can be signaled. The value of alf_luma_num_filters_signalled_minus1 shall be in the range of 0 to NumAlfFilters 1, inclusive.

[0145] alf_luma_coeff_delta_idx[ filtldx ] specifies the index of the signaled adaptive loop filter luma coefficient delta for the filter class indicated by filtldx in the range of 0 to NumAlfFilters 1, inclusive. When alf_luma_coeff_delta_idx[ filtldx ] is not present, it is inferred to be equal to 0. The length of alf_luma_coeff_delta_idx[ filtldx ] is Ceil( Log2( alf_luma_num_filters_signalled_minus1 + 1 ) ) bits. The value of alf_luma_coeff_delta_idx[ filtldx ] shall be in the range of 0 to alf_luma_num_filters_signalled_minus1, inclusive.

[0146] ​alf_luma_coeff_abs[ sfldx ][ j ] specifies the absolute value of the j-th coefficient of the luma filter signaled by sfldx. When alf_luma_coeff_abs[ sfldx ][ j ] is not present, it is inferred to be equal to 0. The value of alf_luma_coeff_abs[ sfldx ][ j ] shall be in the range of 0 to 128, inclusive.

[0147] alf_luma_coeff_sign[ sfldx ][ j ] specifies the sign of the j-th luma coefficient of the filter indicated by sfldx, as follows: - If alf_luma_coeff_sign[ sfldx ][ j ] is equal to 0, the corresponding luma filter coefficient has a positive value.

[0148] - Otherwise (alf_luma_coeff_sign[ sfldx ][ j ] is equal to 1 ), the corresponding luma filter coefficient has a negative value.

[0149] When alf_luma_coeff_sign[ sfldx ][ j ] is not present, it is inferred to be equal to 0.

[0150] alf_luma_clip_idx[ sfldx ][ j ] specifies the clipping index of the clipping value to be used before multiplication by the j-th coefficient of the luma filter signaled by sfldx. When alf_luma_clip_idx[ sfldx ][ j ] is not present, it is inferred to be equal to 0.

[0151] The coding tree unit syntax elements associated with ALF for luma components in VTM are listed as follows:

[0152] alf_ctb_flag[ cldx ][ xCtb » CtbLog2SizeY ][ yCtb » CtbLog2SizeY ] equal to 1 specifies that the adaptive loop filter is applied to the coding tree block of the colour component indicated by cldx of the coding tree unit at luma position ( xCtb, yCtb ). alf_ctb_flag[ cldx ][ xCtb » CtbLog2SizeY ][ yCtb » CtbLog2SizeY ] equal to 0 specifies that the adaptive loop filter is not applied to the coding tree block of the colour component indicated by cldx of the coding tree unit at luma position ( xCtb, yCtb ).

[0153] When alf_ctb_flag[ cldx ][ xCtb » CtbLog2SizeY ][ yCtb » CtbLog2SizeY ] is not present, it is inferred to be equal to 0.

[0154] alf_use_aps_flag equal to 0 specifies that one of the fixed filter sets in the fixed filter set is applied to the luma CTB. alf_use_aps_flag equal to 1 specifies that a filter set from the APS is applied to the luma CTB. When alf_use_aps_flag is not present, it is inferred to be equal to 0.

[0155] alf_luma_prev_filter_idx specifies the previous filter that is applied to the luma CTB. The value of alf_luma_prev_filter_idx shall be in the range of 0 to sh_num_alf_aps_ids_luma 1, inclusive. 1. When alf_luma_prev_filter_idx is not present, it is inferred to be equal to 0.

[0156] The variable AlfCtbFiltSetIdxY[ xCtb » CtbLog2SizeY ][ yCtb » CtbLog2SizeY ] that specifies the filter set index for the luma CTB at position ( xCtb, yCtb ) is derived as follows: - If alf_use_aps_flag is equal to 0, AlfCtbFiltSetIdxY[ xCtb » CtbLog2SizeY ][ yCtb » CtbLog2SizeY ] is set equal to alf_luma_fixed_filter_idx.

[0157] - Otherwise, AlfCtbFiltSetIdxY[ xCtb » CtbLog2SizeY ][ yCtb » CtbLog2SizeY ] is set equal to 16 + alf_luma_prev_filter_idx.

[0158] alf_luma_fixed_filter_idx specifies the fixed filter that is applied to the luma CTB. The value of alf_luma_fixed_filter_idx shall be in the range of 0 to 15, inclusive.

[0159] The ALF design in VTM, the ALF design in ECM further introduces the concept of a set of alternative filters to the luma filter. The luma filter can be trained with multiple alternatives / rounds based on the updated luma CTU ALF on / off decision for each alternative / round. In this way, there will be multiple filter sets associated with each trained alternative, and the category merge result for each filter set can be different. The best filter set for each CTU can be selected by RDO, and the related alternative information will be signaled.

[0160] The data syntax elements for the ALF associated with the luma component in ECM are listed as follows:

[0161] alf_luma_num_alts_minus1 plus 1 specifies the number of alternative filter sets for the luma component. The value of alf_luma_num_alts_minus1 shall be in the range of 0 to 3, inclusive.

[0162] alf_luma_clip_flag[altIdx] equal to 0 specifies that linear adaptive loop filtering is applied to the alternative luma filter set with index altIdx. alf_luma_clip_flag[altIdx] equal to 1 specifies that non-linear adaptive loop filtering can be applied to the alternative luma filter set with index altIdx.

[0163] alf_luma_num_filters_signalled_minus1[altIdx] plus 1 specifies the number of adaptive loop filter categories that the luma coefficients can be signaled for the alternative luma filter set with index altIdx. The value of alf_luma_num_filters_signalled_minus1[altIdx] shall be in the range of 0 to NumAlfFilters 1, inclusive. 1).

[0164] alf_luma_coeff_delta_idx[ altIdx ][ filtIdx ] specifies the index of the signalled delta of the luma filter coefficients for the filter class indicated by filtIdx, the range of filtIdx is 0 to NumAlfFilters - 1, for the alternative luma filter set with index altIdx. When alf_luma_coeff_delta_idx[ filtIdx ][ altIdx ] is not present, it is inferred to be equal to 0. The length of alf_luma_coeff_delta_idx[ altIdx ][ filtIdx ] is Ceil( Log2( alf_luma_num_filters_signalled_minus1[ altIdx ] + 1 ) ) bits. The value of alf_luma_coeff_delta_idx[ altIdx ][ filtIdx ] shall be in the range of 0 to alf_luma_num_filters_signalled_minus1[ altIdx ], inclusive.

[0165] alf_luma_coeff_abs[ altIdx ][ sfldx ][ j ] specifies the absolute value of the j-th coefficient of the signalled luma filter indicated by sfldx for the alternative luma filter set with index altIdx. When alf_luma_coeff_abs[ altIdx ][ sfldx ][ j ] is not present, it is inferred to be equal to 0. The value of alf_luma_coeff_abs[ altIdx ][ sfldx ][ j ] shall be in the range of 0 to 128, inclusive.

[0166] alf_luma_coeff_sign[ altIdx ][ sfldx ][ j ] specifies the sign of the j-th luma coefficient of the filter indicated by sfldx for the alternative luma filter set with index altIdx, as follows: - If alf_luma_coeff_sign[ altIdx ][ sfldx ][ j ] is equal to 0, the corresponding luma filter coefficient has a positive value.

[0167] - Otherwise (alf_luma_coeff_sign[ altIdx ][ sfldx ][ j ] is equal to 1), the corresponding luma filter coefficient has a negative value.

[0168] When alf_luma_coeff_sign[ altIdx ][ sfIdx ][ j ] is not present, it is inferred to be equal to 0.

[0169] alf_luma_clip_idx[ altIdx ][ sfIdx ][ j ] specifies the clipping index of the clipping value to be used before multiplying by the j-th coefficient of the luma filter signaled by sfIdx of the alternative luma filter set with index altIdx. When alf_luma_clip_idx[ altIdx ][ sfIdx ][ j ] is not present, it is inferred to be equal to 0.

[0170] The coding tree unit syntax elements for ALF associated with luma components in the ECM are listed as follows:

[0171] alf_ctb_luma_filter_alt_idx[ xCtb » CtbLog2SizeY ][ yCtb » CtbLog2SizeY ] specifies the index of the alternative luma filter of the coding tree block applied to the luma component of the coding tree unit at location ( xCtb, yCtb ). When alf_ctb_luma_filter_alt_idx[ xCtb » CtbLog2SizeY ][ yCtb » CtbLog2SizeY ] is not present, it is inferred to be equal to 0.

[0172] 3.8.2. Filter shape Figures 13A-13C The filter shapes for ALF are shown in Figure 3.8.1. In JEM, up to three diamond filter shapes (as shown in Figure 3.8.1) can be selected for the luma component. An index is signaled at the picture level to indicate the filter shape used for the luma component. Each square represents a sample, and Ci (i is 0~6 (left), 0~12 (middle), 0~20 (right)) represents the coefficient to be applied to the sample. For the chroma components in a picture, the 5x5 diamond shape is always used. In VVC, the 7x7 diamond shape is always used for luma, while the 5x5 diamond shape is always used for chroma. Figures 13A-13C

[0173] 3.8.3. Classification for ALF Each 2x2 (or 4x4) block is classified into one of the 25 categories. The classification index C is based on the quantized values of its directionality and activity , which are derived as follows: ​

[0174]

[0175] Index and Reference the coordinates of the top-left sample in the 2x2 block, and indicate the reconstructed sample at coordinates .

[0176] The maximum and minimum of the horizontal and vertical gradients are then set to:

[0177] and the maximum and minimum of the two diagonal gradients are set to:

[0178] To derive the value of the directionality , these values are compared to each other and to two thresholds and : Step 1. If and are both true, then is set to .

[0179] Step 2. If , continue from step 3; otherwise continue from step 4.

[0180] Step 3. If , then is set to ; otherwise is set to .

[0181] Step 4. If , then is set to ; otherwise is set to .

[0182] The activity value is calculated as:

[0183] is further quantized to the range 0 to 4 (inclusive) and the quantized value is denoted as .

[0184] For the two chroma components in a picture, no classification method is applied, i.e., a single set of ALF coefficients is applied for each chroma component. ​

[0185] 3.8.4. Geometric Transformation of Filter Coefficients Before filtering each 2×2 block, geometric transformations (such as rotation or diagonal and vertical flips) are applied to the coordinates based on the gradient values ​​calculated for that block. k , l Associated filter coefficients This is equivalent to applying these transformations to the samples in the filter's support region. The idea is to make different blocks to which ALF is applied more similar by aligning the directionality of the different blocks.

[0186] Three geometric transformations are introduced: diagonal, vertical flip, and rotation.

[0187] in It is the size of the filter, and These are coefficient coordinates, which make the position... In the top left corner, and in position In the bottom right corner. Based on the gradient values ​​calculated for this block, the transform is applied to the filter coefficients. f ( k , l The relationship between the transformation and the four gradients in the four directions is summarized in Table 3-5. Figures 14A-14C The relative coordinates for the 5×5 rhombus filter support are shown respectively. Figures 14A-14C The transformed coefficients are shown for each position based on a 5×5 rhombus.

[0188] Table 3-5 Mapping of gradients and transformations computed for a block

[0189] 3.8.5. Filtering Process On the decoder side, when ALF is enabled for a block, each sample within the block... Filtering causes sample values As shown below, where L Indicates the filter length. Represents the filter coefficients, and This represents the decoded filter coefficients.

[0190] . Figure 15 An example of relative coordinates for a 5×5 rhombus filter support is shown. Figure 15 This example illustrates the relative coordinates used to support a 5×5 diamond filter, assuming the current sample point's coordinates are (i, j) and (0, 0). Sample points at different coordinates, filled with the same color, are multiplied by the same filter coefficients.

[0191] 3.8.6. Non-linear filtering rephrasing In the following expression, linear filtering can be rephrased without impacting coding efficiency:

[0192] where are the same filter coefficients.

[0193] VVC introduces non-linearity by using a simple clipping function to reduce the impact of neighboring sample values ( ) that differ too much from the current sample value being filtered ( ), thus making ALF more efficient.

[0194] More specifically, the ALF filter is modified as follows:

[0195] where is the clipping function and is the clipping parameter, which depends on the filter coefficients. The encoder performs an optimization to find the best .

[0196] The clipping parameter is specified for each ALF filter, and a clipping value is signaled for each filter coefficient. This means that up to 12 clipping values for each luma filter, and up to 6 clipping values for each chroma filter can be signaled in the bitstream.

[0197] To limit the signaling cost and encoder complexity, only 4 fixed values that are the same for inter and intra slices are used.

[0198] Because the variance of local differences is typically higher for luma than for chroma, two different sets are applied for luma and chroma filters. A maximum sample value in each set is also introduced (1024 here for 10-bit bit-depth), so that clipping can be disabled if not necessary.

[0199] The 4 values are chosen by roughly equally dividing the full range of sample values for luma (coded on 10 bits) and the range from 4 to 1024 for chroma in the log domain.

[0200] More precisely, the luma table of clipping values has been obtained by the following formula: AlfClip L with M = 2 10 and N = 4.

[0201] Similarly, the chroma table of clip values is obtained according to the following formula: AlfClip C where M = 2 10 , N = 4, and A = 4.

[0202] 3.9. Bilateral loop filter 3.9.1. Bilateral image filter The bilateral image filter is a non-linear filter that smooths noise while preserving edge structure. Bilateral filtering is a technique that makes the filter weights decrease not only with the distance between the samples, but also with the increase in intensity difference. In this way, over-smoothing of edges can be improved. The weight is defined as

[0203] where and are the distances in the vertical and horizontal directions, and is the intensity difference between the samples.

[0204] The edge-preserving denoising bilateral filter employs a low-pass Gaussian filter for both the domain filter and the range filter. The domain low-pass Gaussian filter assigns higher weights to the pixels that are close to the center pixel in the spatial domain. The range low-pass Gaussian filter assigns higher weights to the pixels that are similar to the center pixel. Combining the range filter and the domain filter, the bilateral filter at an edge pixel becomes an elongated Gaussian filter that is oriented along the edge and greatly reduced in the gradient direction. This is the reason why the bilateral filter can smooth noise while preserving edge structure.

[0205] 3.9.2. Bilateral filter in video coding The bilateral filter in video coding was proposed as a coding tool for VVC. The filter works as a loop filter in parallel with the sample adaptive offset (SAO) filter. Both the bilateral filter and the SAO act on the same input samples, each filter produces an offset, and these offsets are then added to the input samples to produce the output samples that go to the next stage after clipping. The spatial filter strength is determined by the block size, where smaller blocks are filtered more strongly, and the strength filter strength is determined by the quantization parameter, stronger filtering is used for higher QP. Only four nearest samples are used, so the filtered sample strength can be calculated as

[0206] where denotes the intensity of the center sample, represents the intensity difference between the center sample and the above sample. and represent the intensity difference between the center sample and the below, left and right samples, respectively.

[0207] 4. Cross-component residual model A cross-component residual model (CCRM) is proposed for predicting chroma samples from reconstructed luma samples when the block uses inter prediction or intra block copy (IBC). A prediction signal of luma and chroma is used to derive the cross-component model. The derived model is applied to the reconstructed luma signal, resulting in the final chroma prediction. The CCRM consists of a spatial luma sample, a non-linear term and a bias term. The spatial luma sample is taken from the nearest neighboring luma sample to the chroma position. The model parameters are derived using Gaussian elimination and the necessary offset is applied to the samples before the model derivation.

[0208] When the block has less than N chroma samples, the intra reference samples can be used as additional input samples in the model derivation.

[0209] The usage of the CCRM mode is signaled by a TU level flag. The CCRM flag is only signaled when the luma CBF of the TU is not zero and the prediction mode of the CU is MODE INTER or MODE IBC.

[0210] 5. Intra TMP based on linear filter model The proposed 6-tap filter consists of a 5-tap spatial component plus a sign shaped bias term. The input of the spatial 5-tap component of the filter consists of the center (C) sample and its above / north (N), below / south (S), left / west (W) and right / east (E) neighbors in the reference block, which are located in corresponding positions to the sample in the current block to be predicted, as follows.

[0211] Figure 16 The spatial part of the filter is shown.

[0212] The bias term B represents a scalar offset between the input and the output and is set to the middle luma value (512 for 10-bit content).

[0213] The output of the filter is calculated as follows: predLumaVal = c0C + c1N + c2S + c3E + c4W + c5B.

[0214] The filter coefficients ci are calculated by minimizing the MSE between the reference template and the current template. The expansion of the region shown in the blue area is necessary for the "sidesampling points" of the spatial filter supporting the plus-shaped shape, and is filled in the unavailable areas.

[0215] Figure 17 The reference region used to derive the filter coefficients is shown.

[0216] MSE minimization is performed by computing the autocorrelation matrix for the reference template input and the current template output. The autocorrelation matrix is ​​decomposed using LDL, and the final filter coefficients are computed using back-substitution.

[0217] The use of intra-frame TMP-FLM mode is transmitted via signaling through a CU-level flag that has been encoded and decoded. Specifically, intra-frame TMP-FLM is considered a sub-mode of intra-frame TMP. That is, the intra-frame TMP-FLM flag is transmitted via signaling only when the intra-frame TMP flag is true.

[0218] 6. Filtered Intra-Block Copy (FIBC) Figure 18 An example of a filter shape is shown.

[0219] A filtered IBC (FIBC) is proposed, which applies a linear filter to the predicted samples of the IBC. The filter consists of five spatial terms and one bias term. The five spatial terms consist of the center (C) position and its upper / north (N), lower / south (S), left / west (W), and right / east (E) neighbors.

[0220] predVal = C+ N + S + W + E +

[0221] in It is a coefficient, and This is the offset. Up to 4 rows / columns of samples above and to the left of the current CU are applied to derive the filter coefficients. The filter coefficients are derived based on minimizing the difference between template samples and their corresponding reference samples using the same regression-based minimization technique used in ECM as in other tools such as CCCM.

[0222] For signaling, an additional indication flag is introduced for FIBC transmitted via signaling after the IBC-LIC flag. Specifically, when the IBC-LIC flag is true, this flag is transmitted via signaling and used to indicate whether FIBC is applied to the current block.

[0223] 7. Problem The existing design of model-based derivation tools for video coding has the following problems: 1. In the current model-based derivation tools (e.g., CCRM), the derived parameters are only applied to the specific block. However, the parameters derived from the previously coded blocks can be further inherited for the current coding block to further improve the coding efficiency.

[0224] 2. The filter models for intraTMP and IBC are not stored and used to filter future blocks, which can be suboptimal.

[0225] 8. Detailed Solution To solve the above problems and some other problems not mentioned, the methods as outlined below are disclosed. The embodiments should be considered illustrative of the general concepts, and should not be construed in a limiting manner. Furthermore, these embodiments can be applied individually or combined in any manner.

[0226] In this disclosure, a video unit can refer to a sequence, a picture, a subpicture, a slice, a CTU, a TU, a block, or a region. A video unit can include one color component, or it can include multiple color components.

[0227] In this disclosure, a model-based derivation tool can refer to a cross-component linear model (CCLM), a cross-component convolution model (CCCM), a cross-component residual model (CCRM), a multi-model linear model (MMLM), a gradient linear model (GLM), chroma fusion, or any other online training based method.

[0228] The term “CCRM” can refer to cross-component model based residual derivation. It can also imply inter / IBC coding based on the CCCM model (such as inter / IBC CCCM). It can also imply intra coding based on the CCCM model (such as intra CCCM).

[0229] 1) Propose to perform history / temporal / spatial based model parameter inheritance for model-based derivation tools (e.g., CCRM / intraTMP filter / IBC filter, etc.).

[0230] a. In one example, the model parameter set derived by the previously CCRM / intraTMP / IBC coded video units in the temporal domain can be stored at both the encoder and the decoder.

[0231] i. In one example, the model parameter set derived by the previously CCRM / intraTMP / IBC coded video units in the temporal domain within the current CTU / CTU row can be stored.

[0232] ii. In one example, a model parameter set derived from a previously CCRM / intraTMP / IBC coded video unit in time domain preceding the current slice / tile / picture can be stored.

[0233] iii. In one example, a model parameter set derived from a previously CCRM / intraTMP / IBC coded video unit in time domain preceding the previously coded / collocated CTU / CTU row portion can be stored.

[0234] iv. In one example, a model parameter set derived from a previously CCRM / intraTMP / IBC coded video unit in time domain within the previously coded slice / tile / picture can be stored.

[0235] b. In one example, a history / time domain / spatial model parameter set can be reused by the current video unit.

[0236] i. In one example, all coefficients within a model parameter set can be reused.

[0237] ii. In one example, one or more coefficients within a model parameter set can be reused.

[0238] a) In one example, only coefficients corresponding to spatial taps can be reused.

[0239] b) In one example, only coefficients corresponding to non-linear taps can be reused.

[0240] c) In one example, only coefficients corresponding to bias taps can be reused.

[0241] iii. In one example, filter model (e.g., filter shape, filter taps, filter terms, offset, etc.) can be stored and reused.

[0242] iv. In one example, whether and how multiple models are applied (e.g., yThres, etc.) can be stored and reused.

[0243] v. In one example, whether and how multiple filters are applied (e.g., model index of MDF, etc.) can be stored and reused.

[0244] c. In one example, reference samples from a history / time domain CCRM / intraTMP / IBC coded video unit can be reused by the current video unit.

[0245] d. In one example, reference regions / templates (e.g., top / left) from video units that are history / temporal CCRM / intra TMP / IBC coded can be used by the current video unit.

[0246] e. In one example, a list of history / temporal / spatial model parameter sets can be maintained during the encoding and decoding process.

[0247] i. In one example, the list can contain all history / temporal model parameter sets during the coding progress.

[0248] ii. In one example, the list can contain only history / temporal model parameter sets within the current CTU / CTU row.

[0249] iii. In one example, the list can contain only history / temporal model parameter sets within the current slice / tile / picture.

[0250] iv. In one example, the list can contain up to N (e.g., N=12) candidates.

[0251] v. In one example, the list can be updated following the first-in-first-out (FIFO) rule.

[0252] vi. In one example, the list can be updated following other rules.

[0253] vii. In one example, the list can be updated with de-duplication.

[0254] a) In one example, a check can be performed to find out if the newly added candidate is the same as the candidates in the list.

[0255] b) In one example, when the newly added candidate is the same as the candidates in the list, the old candidate can be removed.

[0256] viii. In one example, the list can be updated without de-duplication.

[0257] ix. In one example, the list can be reset for each CTU / CTU row.

[0258] x. In one example, the list can be reset for each slice / tile / picture.

[0259] xi. In one example, a candidate index can be signaled / derived / predefined to indicate which candidate is selected.

[0260] f. In one example, the model parameter set of a CCRM / intraTMP filter / IBC filter coded video unit can be stored and used to filter subsequent CCRM / intraTMP / IBC coded video units in the current picture.

[0261] i. For example, it can be stored in a history-based lookup table.

[0262] ii. For example, the maximum size of the history table can be predefined (such as K elements, K = 6 or 10 or 12).

[0263] iii. For example, the elements inserted into the history table can follow a first-in-first-out (FIFO) order.

[0264] g. In one example, the model parameter set of a CCRM / intraTMP filter / IBC filter coded video unit can be stored and used to filter future CCRM / intraTMP / IBC coded video units in subsequent pictures.

[0265] i. For example, the model parameter set can be stored in a temporal buffer.

[0266] ii. For example, the model parameter set can be considered as a temporal buffer associated with the reference picture.

[0267] 2) Propose to perform spatial neighbor based model parameter inheritance for model-based derivation tools (e.g., CCRM / intraTMP filter / IBC filter, etc.).

[0268] a. In one example, the model parameter set derived by a previously CCRM / intraTMP / IBC coded video unit of the spatial neighbor can be stored at both the encoder and the decoder.

[0269] i. In one example, the model parameter set derived by a previously CCRM / intraTMP / IBC coded video unit of the spatial neighbor within the current CTU / CTU row can be stored.

[0270] ii. In one example, the model parameter set derived by a previously CCRM / intraTMP / IBC coded video unit of the spatial neighbor within the current slice / tile / picture can be stored.

[0271] iii. In one example, the model parameter set derived by a previously CCRM / intraTMP / IBC coded video unit of the spatial neighbor within a previously coded / collocated CTU / CTU row can be stored.

[0272] iv. In one example, a model parameter set derived by a spatially neighboring previously CCRM / intraTMP / IBC coded video unit within a previously coded slice / tile / picture can be stored.

[0273] b. In one example, a spatially neighboring model parameter set can be reused by the current video unit.

[0274] i. In one example, all coefficients within a model parameter set can be reused.

[0275] ii. In one example, one or more coefficients within a model parameter set can be reused.

[0276] a) In one example, only coefficients corresponding to spatial taps can be reused.

[0277] b) In one example, only coefficients corresponding to non-linear taps can be reused.

[0278] c) In one example, only coefficients corresponding to bias taps can be reused.

[0279] iii. In one example, filter models (e.g., filter shape, filter taps, filter terms, offset, etc.) can be stored and reused.

[0280] iv. In one example, whether and how multiple models are applied (e.g., yThres, etc.) can be stored and reused.

[0281] v. In one example, whether and how multiple filters are applied (e.g., model index of MDF, etc.) can be stored and reused.

[0282] c. In one example, reference samples from a spatially neighboring CCRM / intraTMP / IBC coded video unit can be reused by the current video unit.

[0283] d. In one example, reference regions / templates (e.g., top / left) from a spatially neighboring CCRM / intraTMP / IBC coded video unit can be used by the current video unit.

[0284] e. In one example, a list of model parameter sets from spatial neighbors can be maintained during the encoding and decoding process.

[0285] i. In one example, the list can contain all model parameter sets of spatial neighbors for the current video unit.

[0286] ii. In one example, the list can contain only spatially neighboring model parameter sets within the current CTU / CTU row.

[0287] iii. In one example, the list can contain only spatially neighboring model parameter sets within the current slice / tile / picture.

[0288] iv. In one example, the list can contain up to N (e.g., N = 6) candidates.

[0289] v. In one example, the list can be updated following a first-in-first-out (FIFO) rule.

[0290] vi. In one example, the list can be updated following other rules.

[0291] vii. In one example, the list can be updated with de-duplication.

[0292] a) In one example, a check can be performed to find out if a newly added candidate is the same as a candidate within the list.

[0293] b) In one example, when a newly added candidate is the same as a candidate within the list, the old candidate can be removed.

[0294] viii. In one example, the list can be updated without de-duplication.

[0295] ix. In one example, the list can be reset for each video unit.

[0296] x. In one example, a candidate index can be signaled / deduced / predefined to indicate which candidate is selected.

[0297] 3) Propose to perform spatially non-adjacent model parameter inheritance for tools based on model derivation (e.g., CCRM / intraTMP filter / IBC filter, etc.).

[0298] a. In one example, model parameter sets derived from spatially non-adjacent previously CCRM / intraTMP / IBC coded video units can be stored at both the encoder and the decoder.

[0299] i. In one example, model parameter sets derived from spatially non-adjacent previously CCRM / intraTMP / IBC coded video units within the current CTU / CTU row can be stored.

[0300] ii. In one example, a model parameter set derived from spatially non-adjacent previously CCRM / intraTMP / IBC coded video units within the current slice / tile / picture can be stored.

[0301] iii. In one example, a model parameter set derived from spatially non-adjacent previously CCRM / intraTMP / IBC coded video units within the previously coded / collocated CTU / CTU row can be stored.

[0302] iv. In one example, a model parameter set derived from spatially non-adjacent previously CCRM / intraTMP / IBC coded video units within the previously coded slice / tile / picture can be stored.

[0303] b. In one example, a spatially non-adjacent model parameter set can be reused by the current video unit.

[0304] i. In one example, all coefficients within a model parameter set can be reused.

[0305] ii. In one example, one or more coefficients within a model parameter set can be reused.

[0306] a) In one example, only coefficients corresponding to spatial taps can be reused.

[0307] b) In one example, only coefficients corresponding to non-linear taps can be reused.

[0308] c) In one example, only coefficients corresponding to bias taps can be reused.

[0309] iii. In one example, filter models (e.g., filter shape, filter taps, filter terms, offset, etc.) can be stored and reused.

[0310] iv. In one example, whether and how multiple models are applied (e.g., yThres, etc.) can be stored and reused.

[0311] v. In one example, whether and how multiple filters are applied (e.g., model index of MDF, etc.) can be stored and reused.

[0312] c. In one example, reference samples from spatially non-adjacent CCRM / intraTMP / IBC coded video units can be reused by the current video unit.

[0313] d. In one example, reference regions / templates (e.g., top / left) from CCRM / intraTMP / IBC coded video units that are spatially non-adjacent to the current video unit can be used by the current video unit.

[0314] e. In one example, a list of spatially non-adjacent model parameter sets can be maintained during the encoding and decoding processes.

[0315] i. In one example, the list can contain all spatially non-adjacent model parameter sets for the current video unit.

[0316] ii. In one example, the list can contain only spatially non-adjacent model parameter sets within the current CTU / CTU row.

[0317] iii. In one example, the list can contain only spatially non-adjacent model parameter sets within the current slice / tile / picture.

[0318] iv. In one example, the list can contain up to N (e.g., N = 6) candidates.

[0319] v. In one example, the list can be updated following a first-in-first-out (FIFO) rule.

[0320] vi. In one example, the list can be updated following other rules.

[0321] vii. In one example, the list can be updated with de-duplication.

[0322] a) In one example, a check can be performed to find out if a newly added candidate is the same as a candidate in the list.

[0323] b) In one example, when a newly added candidate is the same as a candidate in the list, the old candidate can be removed.

[0324] viii. In one example, the list can be updated without de-duplication.

[0325] ix. In one example, the list can be reset for each video unit.

[0326] x. In one example, the list can be reset for each CTU / CTU row.

[0327] xi. In one example, the list can be reset for each slice / tile / picture.

[0328] xii. In one example, a candidate index can be signaled / derived / predefined to indicate which candidate is selected.

[0329] 4) In one example, the spatial parameter can be inherited from adjacent or non-adjacent neighboring blocks.

[0330] a. In one example, the adjacent neighboring blocks can be the blocks used to inherit motion information in Merge mode.

[0331] b. In one example, the non-adjacent neighboring blocks can be the blocks used to inherit motion information in Merge mode.

[0332] c. In one example, the location of the adjacent or non-adjacent neighboring blocks can depend on the location and / or width and / or height of the current block.

[0333] 5) Propose to perform pre-defined / default model parameter set inheritance for model-based derivation based tools (e.g., CCRM / intraTMP filter / IBC filter, etc.).

[0334] a. In one example, one or more pre-defined model parameter sets can be stored at both the encoder and the decoder.

[0335] b. In one example, the pre-defined model parameter sets can be used for the current video unit.

[0336] c. In one example, a candidate index can be signaled / derived / pre-defined to indicate which pre-defined model parameter set is selected.

[0337] 6) In one example, for CCRM / intraTMP / IBC model parameter inheritance mode coded for the current video unit, a model candidate list can be generated.

[0338] a. In one example, the spatial candidates can be inserted before other types (e.g., history-based, temporal-based, etc.) of candidates.

[0339] b. In one example, for model parameter candidate list filling, it can follow the order of “spatial-adjacent, spatial-non-adjacent, history-based, temporal, default candidate”.

[0340] c. In one example, the checking order of spatial-adjacent model candidates can be the same as the spatial-adjacent Merge candidates for Merge list derivation.

[0341] d. In one example, the checking order of spatial-non-adjacent model candidates can be the same as the spatial-adjacent Merge candidates for Merge list derivation.

[0342] e. In one example, the checking order of temporal model candidates can be the same as the temporal Merge candidates for Merge list derivation.

[0343] i. Furthermore, for example, a set of shifted time-domain model candidates can be inserted, where the shift factor can be derived based on the motion / block vector of the neighboring block.

[0344] f. In one example, a template cost based reordering process can be applied for model candidate list generation.

[0345] i. For example, for each potential candidate to be put into the list, a template cost can be computed by minimizing the SAD between the model predicted samples in the training region and the reconstructed samples.

[0346] ii. For example, the order of the potential candidates to be put into the list can be reordered based on the template cost sorted in ascending order.

[0347] g. In one example, a template cost based reordering process can be applied to the model candidate list after the list has been constructed.

[0348] i. For example, for each candidate in the list, a template cost can be computed by minimizing the SAD between the model predicted samples in the training region and the reconstructed samples.

[0349] ii. For example, the order of the candidates in the list can be reordered based on the template cost sorted in ascending order.

[0350] 7) In one example, a first syntax element (SE) can be signaled to indicate whether the inheritance mode is applied.

[0351] a. For example, the SE can be a flag.

[0352] b. For example, the SE can be coded with at least one context model.

[0353] c. For example, the SE can be bypass coded.

[0354] d. For example, the SE is coded only when the current block is coded with a certain mode, such as CCRM.

[0355] 8) In one example, a second syntax element (SE) can be signaled to indicate which candidate in the candidate list is used.

[0356] a. For example, the SE can be binarized to a truncated unary code / or a fixed length code / or an exponential Golomb code.

[0357] b. For example, the bins of the SE can be coded with at least one context model.

[0358] c. For example, the binary bit of the SE can be bypass coded.

[0359] d. The second SE is only signaled when the first SE indicates that the inheritance mode is applied.

[0360] 9) In one example, both the intraTMP filter parameters and the IBC filter parameters can be allowed to be inherited to generate the luma prediction for the current non-intra video unit (e.g., IBC and / or intraTMP).

[0361] a. Alternatively, for example, the intraTMP filter parameters can be allowed to be inherited to generate the luma prediction for the current intraTMP video unit.

[0362] b. Alternatively, for example, the IBC filter parameters can be allowed to be inherited to generate the luma prediction for the current IBC video unit.

[0363] 10) In one example, the CCRM filter parameters can be allowed to be inherited to generate the chroma prediction for the current non-intra video unit (e.g., inter and / or IBC).

[0364] 11) The default candidate can have fixed or predefined parameters and / or other associated information.

[0365] a. Alternatively, the default candidate can have parameters and / or other associated information derived from existing candidates in the list.

[0366] 12) In one example, the disclosed methods can be applied together to multiple color components (such as Cb and Cr).

[0367] a. For example, the multiple color components can share the same candidate list.

[0368] b. For example, the multiple color components can share the same syntax elements (e.g., the first SE and the second SE).

[0369] c. For example, the SADs of the templates of the multiple color components can be summed to obtain a unique template cost.

[0370] 13) In one example, the disclosed methods can be applied separately to multiple color components (such as Cb and Cr).

[0371] a. For example, the multiple color components can have different candidate lists.

[0372] b. For example, the multiple color components can have different same syntax elements (e.g., the first SE and the second SE).

[0373] c. For example, SAD of the template of multiple color components can be considered separately.

[0374] 14) In one example, the disclosed method can be used in post-processing and / or pre-processing.

[0375] 15) In one example, the above methods can be used jointly.

[0376] a. In one example, different categories of model parameter sets can be inserted into one inheritance list jointly.

[0377] i. In one example, the list can contain at most N (e.g., N=12) candidates.

[0378] ii. In one example, the list can be updated following a first-in-first-out rule.

[0379] iii. In one example, the list can be updated following any other rule.

[0380] iv. In one example, the list can be updated with deduplication.

[0381] a) In one example, a check can be performed to find out if the newly added candidate is the same as the candidates in the list.

[0382] b) In one example, when the newly added candidate is the same as the candidates in the list, the old candidate can be removed.

[0383] v. In one example, the list can be updated without deduplication.

[0384] vi. In one example, the list can be reset for each CTU / CTU row.

[0385] vii. In one example, the list can be reset for each slice / tile / picture.

[0386] b. In one example, the model parameter sets can be reused / inherited from the inheritance list.

[0387] c. In one example, the candidate index can be signaled / derived / predefined to indicate which model parameter set is selected.

[0388] 16) Alternatively, the above methods can be used separately.

[0389] 17) In one example, the proposed / described model parameter inheritance method can be applied to any in-loop filtering tool, prediction tool, pre-processing or post-processing filtering method in video coding.

[0390] 18) In the above examples, a video unit can refer to a sequence / picture / subpicture / slice / tile / coding tree unit (CTU) / CTU row / CTU group / coding unit (CU) / prediction unit (PU) / transform unit (TU) / coding tree block (CTB) / coding block (CB) / prediction block (PB) / transform block (TB) / any other region containing more than one luma or chroma sample / pixel.

[0391] 19) Whether and / or how to apply the above disclosed methods can be signaled in the bitstream.

[0392] a. In one example, they can be signaled at sequence level / picture group level / picture level / slice level / tile group level, such as in sequence header / picture header / SPS / VPS / DPS / DCI / PPS / APS / slice header / tile group header.

[0393] b. In one example, they can be signaled at PB / TB / CB / PU / TU / CU / VPDU / CTU / CTU row / slice / tile / subpicture / other kind of region containing more than one sample or pixel.

[0394] 20) Whether and / or how to apply the above disclosed methods can depend on coded information, such as block size, color format, single / dual tree partitioning, color component, slice / picture type.

[0395] Figure 19 A flowchart of a method 1900 for video processing according to an embodiment of the disclosure is shown. The method 1900 is implemented during conversion between a video unit of a video and a bitstream of the video.

[0396] At block 1910, for conversion between a current video unit of a video and a bitstream of the video, model parameter inheritance for a coding tool is performed. The coding tool includes at least one of: a cross-component residual modeling (CCRM) tool, an intra template matching prediction (intra TMP) filtering tool, or an intra block copy (IBC) filtering tool. The model parameter inheritance includes at least one of: history-based model parameter inheritance, temporal-based model parameter inheritance, or spatial-based model parameter inheritance. In other words, for model-based derived tools (e.g., CCRM / intra TMP filter / IBC filter, etc.), history / temporal / spatial-based model parameter inheritance is performed.

[0397] At block 1920, based on the model parameter inheritance, the conversion is performed.

[0398] The method 1900 enables model parameter inheritance, thereby improving coding efficiency and / or coding effectiveness.

[0399] In some embodiments, a model parameter set derived from a temporally previously coded video unit, including at least one of: a temporally previously CCRM coded video unit, a temporally previously intra TMP coded video unit, or a temporally previously IBC coded video unit, is stored at the encoder and the decoder for conversion.

[0400] In some embodiments, a model parameter set derived from a temporally previously coded video unit within a current coding tree unit (CTU) or a current CTU row is stored.

[0401] In some embodiments, a model parameter set derived from a temporally previously coded video unit within a current slice or a current tile or a current picture is stored.

[0402] In some embodiments, a model parameter set derived from a temporally previously coded video unit within a previously coded coding tree unit (CTU) or CTU row or collocated CTU or CTU row is stored.

[0403] In some embodiments, a model parameter set derived from a temporally previously coded video unit within a previously coded slice or a previously coded tile or a previously coded picture is stored.

[0404] In some embodiments, a history or temporal or spatial model parameter set is reused by a current video unit.

[0405] In some embodiments, a coefficient within a model parameter set is reused by a current video unit.

[0406] In some embodiments, at least one coefficient within a model parameter set is reused by a current video unit, the at least one coefficient corresponding to one of: a spatial tap, a non-linear tap, or a bias tap.

[0407] In some embodiments, a filter model, including at least one of: a filter shape, a filter tap, a filter term, or an offset, is stored and reused by a current video unit.

[0408] In some embodiments, whether and how a multi-model or multi-filter is applied is stored and reused by a current video unit.

[0409] In some embodiments, at least one of: a threshold for a multi-model or multi-filter, or a model index of a multi-down-sampling filter (MDF) is reused by a current video unit.

[0410] In some embodiments, the method 1900 further includes determining reference samples from a video unit that is history or temporal CCRM or intra TMP or IBC coded; and reusing the reference samples by the current video unit.

[0411] In some embodiments, a reference region or template from a video unit that is history or temporal CCRM or intra TMP or IBC coded is reused by the current video unit.

[0412] In some embodiments, a list of model parameter sets is maintained during conversion.

[0413] In some embodiments, the list of model parameter sets includes history or temporal model parameter sets during conversion.

[0414] In some embodiments, the list of model parameter sets includes at least one history or temporal model parameter set within a current coding tree unit (CTU) or CTU row.

[0415] In some embodiments, the list of model parameter sets includes at least one history or temporal model parameter set within a current slice or current tile or current picture.

[0416] In some embodiments, the list of model parameter sets includes up to N candidates, N being 12.

[0417] In some embodiments, the list of model parameter sets follows a first-in-first-out (FIFO) rule.

[0418] In some embodiments, the list of model parameter sets is updated.

[0419] In some embodiments, the list of model parameter sets is updated with deduplication.

[0420] In some embodiments, the list of model parameter sets is updated by: checking whether a first candidate is identical to a second candidate in the list of model parameter sets; and if it is determined that the first candidate is identical to the second candidate, removing the second candidate from the list of model parameter sets and adding the first candidate to the list of model parameter sets.

[0421] In some embodiments, the list of model parameter sets is updated without deduplication.

[0422] In some embodiments, the list of model parameter sets is reset for each coding tree unit (CTU) or CTU row.

[0423] In some embodiments, the list of model parameter sets is reset for each slice, each tile or each picture.

[0424] In some embodiments, a candidate index of the candidate is included in the bitstream or is derived or is predefined to indicate which candidate is selected.

[0425] In some embodiments, a model parameter set of a CCRM or intraTMP filter coded video unit or an IBC filter coded video unit is stored and used to filter a subsequent CCRM or intraTMP or IBC coded video unit in the current picture.

[0426] In some embodiments, the model parameter set is stored in a history-based lookup table.

[0427] In some embodiments, a maximum size of the history-based lookup table is predefined.

[0428] In some embodiments, elements inserted into the history-based lookup table follow a first-in-first-out (FIFO) order.

[0429] In some embodiments, a model parameter set of a CCRM or intraTMP or IBC filter coded video unit is stored and used to filter a future CCRM or intraTMP or IBC filter coded video unit in a subsequent picture.

[0430] In some embodiments, the model parameter set is stored in a temporal buffer.

[0431] In some embodiments, the model parameter set is considered as a temporal buffer associated with a reference picture.

[0432] In some embodiments, the model parameter inheritance includes model parameter inheritance based on spatial neighbors.

[0433] In some embodiments, a model parameter set derived by a previously CCRM or intraTMP or IBC coded video unit that is a spatial neighbor is stored at the encoder and the decoder for conversion.

[0434] In some embodiments, a model parameter set derived by a previously CCRM or intraTMP or IBC coded video unit that is a spatial neighbor within a current coding tree unit (CTU) or a current CTU row is stored.

[0435] In some embodiments, a model parameter set derived by a previously CCRM or intraTMP or IBC coded video unit that is a spatial neighbor within a current slice or a current tile or a current picture is stored.

[0436] In some embodiments, a model parameter set derived from a previously coded coding tree unit (CTU) or CTU row or spatially neighboring previously CCRM or intra TMP or IBC coded video unit within the same CTU or CTU row is stored.

[0437] In some embodiments, a model parameter set derived from a previously coded slice or previously coded tile or previously coded picture or spatially neighboring previously CCRM or intra TMP or IBC coded video unit within the same picture is stored.

[0438] In some embodiments, a spatially neighboring model parameter set is reused by the current video unit.

[0439] In some embodiments, a coefficient within a model parameter set is reused by the current video unit.

[0440] In some embodiments, at least one coefficient within a model parameter set is reused by the current video unit, the at least one coefficient corresponding to one of: a spatial tap, a non-linear tap, or a bias tap.

[0441] In some embodiments, a filter model is stored and reused by the current video unit, the filter model including at least one of: a filter shape, a filter tap, a filter term, or an offset.

[0442] In some embodiments, whether and how a multi-model or multi-filter is applied is stored and reused by the current video unit.

[0443] In some embodiments, at least one of: a threshold for a multi-model or multi-filter, or a model index of a multi-down-sampling filter (MDF) is reused by the current video unit.

[0444] In some embodiments, the method 1900 further includes determining reference samples from a spatially neighboring CCRM or intra TMP or IBC coded video unit, and reusing the reference samples by the current video unit.

[0445] In some embodiments, a reference region or template from a spatially neighboring CCRM or intra TMP or IBC coded video unit is reused by the current video unit.

[0446] In some embodiments, a list of spatially neighboring model parameter sets is maintained during a conversion.

[0447] In some embodiments, the list of model parameter sets includes spatially neighboring model parameter sets during a conversion.

[0448] In some embodiments, the model parameter set list includes at least one spatially neighboring model parameter set within a current coding tree unit (CTU) or a CTU row.

[0449] In some embodiments, the model parameter set list includes at least one spatially neighboring model parameter set within a current slice or a current tile or a current picture.

[0450] In some embodiments, the model parameter set list includes at most N candidates, N being 6.

[0451] In some embodiments, the model parameter set list is updated following a first-in-first-out (FIFO) rule.

[0452] In some embodiments, the model parameter set list is updated.

[0453] In some embodiments, the model parameter set list is updated with deduplication.

[0454] In some embodiments, the model parameter set list is updated by: checking whether a first candidate is identical to a second candidate in the model parameter set list; and if it is determined that the first candidate is identical to the second candidate, removing the second candidate from the model parameter set list and adding the first candidate to the model parameter set list.

[0455] In some embodiments, the model parameter set list is updated without deduplication.

[0456] In some embodiments, the model parameter set list is reset for each video unit.

[0457] In some embodiments, a candidate index of a candidate is included in a bitstream or derived or predefined to indicate which candidate is selected.

[0458] In some embodiments, the model parameter inheritance includes spatially non-adjacent model parameter inheritance.

[0459] In some embodiments, model parameter sets derived by spatially non-adjacent previously CCRM or intraTMP or IBC coded video units are stored at an encoder and a decoder for conversion.

[0460] In some embodiments, model parameter sets derived by spatially non-adjacent previously CCRM or intraTMP or IBC coded video units within a current coding tree unit (CTU) or a CTU row are stored.

[0461] In some embodiments, model parameter sets derived by spatially non-adjacent previously CCRM or intraTMP or IBC coded video units within a current slice or a current tile or a current picture are stored.

[0462] In some embodiments, a model parameter set derived from a previously coded coding tree unit (CTU) or CTU row or spatially non-adjacent previously CCRM or intra TMP or IBC coded video unit within a co-located CTU or CTU row is stored.

[0463] In some embodiments, a model parameter set derived from a previously coded slice or previously coded tile or previously coded picture or spatially non-adjacent previously CCRM or intra TMP or IBC coded video unit within a co-located picture is stored.

[0464] In some embodiments, a spatially non-adjacent model parameter set is reused by a current video unit.

[0465] In some embodiments, a coefficient within a model parameter set is reused by a current video unit.

[0466] In some embodiments, at least one coefficient within a model parameter set is reused by a current video unit, the at least one coefficient corresponding to at least one of: a spatial tap, a non-linear tap, or a bias tap.

[0467] In some embodiments, a filter model is stored and reused by a current video unit, the filter model including at least one of: a filter shape, a filter tap, a filter term, or an offset.

[0468] In some embodiments, whether and how a multi-model or multi-filter is applied is stored and reused by a current video unit.

[0469] In some embodiments, at least one of: a threshold for a multi-model or multi-filter, or a model index of a multi-down-sampling filter (MDF) is reused by a current video unit.

[0470] In some embodiments, the method 1900 further includes determining reference samples from a spatially non-adjacent CCRM or intra TMP or IBC coded video unit, and reusing the reference samples by a current video unit.

[0471] In some embodiments, a reference region or template from a spatially non-adjacent CCRM or intra TMP or IBC coded video unit is reused by a current video unit.

[0472] In some embodiments, a list of spatially non-adjacent model parameter sets is maintained during a conversion.

[0473] In some embodiments, the list of model parameter sets includes spatially non-adjacent model parameter sets during a conversion.

[0474] In some embodiments, the list of model parameter sets includes at least one spatially non-adjacent model parameter set within a current coding tree unit (CTU) or CTU row.

[0475] In some embodiments, the list of model parameter sets includes at least one spatially non-adjacent model parameter set within a current slice or a current tile or a current picture.

[0476] In some embodiments, the list of model parameter sets includes at most N candidates, N being 6.

[0477] In some embodiments, the list of model parameter sets follows a first-in-first-out (FIFO) rule.

[0478] In some embodiments, the list of model parameter sets is updated.

[0479] In some embodiments, the list of model parameter sets is updated with deduplication.

[0480] In some embodiments, the list of model parameter sets is updated by: checking whether a first candidate is identical to a second candidate in the list of model parameter sets; and if it is determined that the first candidate is identical to the second candidate, removing the second candidate from the list of model parameter sets and adding the first candidate to the list of model parameter sets.

[0481] In some embodiments, the list of model parameter sets is updated without deduplication.

[0482] In some embodiments, the list of model parameter sets is reset for each video unit.

[0483] In some embodiments, the list of model parameter sets is reset for each coding tree unit (CTU) or CTU row.

[0484] In some embodiments, the list of model parameter sets is reset for each slice, each tile or each picture.

[0485] In some embodiments, a candidate index of a candidate is included in a bitstream or derived or predefined to indicate which candidate is selected.

[0486] In some embodiments, the spatial parameters are inherited from at least one of: a spatially adjacent block or a non-adjacent block.

[0487] In some embodiments, the spatially adjacent block includes a block used to inherit motion information in Merge mode.

[0488] In some embodiments, the non-adjacent block includes a block used to inherit motion information in Merge mode.

[0489] In some embodiments, the position of the neighboring neighboring block or the position of the non-neighboring neighboring block is based on at least one of: a position of the current video unit, a width of the current video unit, or a height of the current video unit.

[0490] In some embodiments, the model parameter inheritance includes inheritance based on a predefined or default model parameter set.

[0491] In some embodiments, at least one predefined model parameter set is stored at the encoder and the decoder for conversion.

[0492] In some embodiments, the predefined model parameter set is used for the current video unit.

[0493] In some embodiments, a candidate index is included in the bitstream or derived or predefined to indicate which predefined model parameter set is selected.

[0494] In some embodiments, the method 1900 further includes determining a model candidate list for the current video unit in the CCRM or intra TMP or IBC model parameter inheritance mode.

[0495] In some embodiments, the at least one spatial candidate is inserted into the model candidate list before other types of candidates.

[0496] In some embodiments, the candidates in the model candidate list follow an order of spatial neighboring candidates, spatial non-neighboring candidates, history-based candidates, temporal candidates, default candidates.

[0497] In some embodiments, the method 1900 further includes applying a template cost based reordering process to the model candidate list during the generation of the model candidate list.

[0498] In some embodiments, the template cost is determined for potential candidates to be placed into the model candidate list by minimizing a sum of absolute differences (SAD) between model prediction samples in a training region and reconstructed samples.

[0499] In some embodiments, an order of potential candidates to be placed into the model candidate list is reordered based on the template cost sorted in ascending order.

[0500] In some embodiments, the method 1900 further includes applying a template cost based reordering process to the model candidate list after the construction of the model candidate list.

[0501] In some embodiments, the template cost is determined for potential candidates to be placed into the model candidate list by minimizing a sum of absolute differences (SAD) between model prediction samples in a training region and reconstructed samples.

[0502] In some embodiments, the order of potential candidates to be placed into the model candidate list is reordered based on template cost in ascending order.

[0503] In some embodiments, for Merge list derivation, the check order of spatial neighboring model candidates is the same as spatial neighboring Merge candidates.

[0504] In some embodiments, for Merge list derivation, the check order of spatial non- neighboring model candidates is the same as spatial neighboring Merge candidates.

[0505] In some embodiments, for Merge list derivation, the check order of temporal model candidates is the same as temporal Merge candidates.

[0506] In some embodiments, a set of shifted temporal model candidates are inserted into the model candidate list, and the shift factor is determined based on motion vectors or block vectors of neighboring blocks.

[0507] In some embodiments, a first syntax element (SE) is included in the bitstream to indicate whether the inheritance mode is applied.

[0508] In some embodiments, the first syntax element comprises a flag.

[0509] In some embodiments, the first syntax element is coded with at least one context model.

[0510] In some embodiments, the first syntax element is bypass coded.

[0511] In some embodiments, the first syntax element is coded if the current video unit is coded with the CCRM mode.

[0512] In some embodiments, a second syntax element is included in the bitstream to indicate which candidate in the candidate list is used.

[0513] In some embodiments, the second syntax element is binarized to a truncated unary code or a fixed length code or an exponential Golomb code.

[0514] In some embodiments, the bins of the second syntax element are coded with at least one context model.

[0515] In some embodiments, the bins of the second syntax element are bypass coded.

[0516] In some embodiments, the second syntax element is included in the bitstream if the first syntax element indicates that the inheritance mode is applied.

[0517] In some embodiments, the method is applied to multiple color components together.

[0518] In some embodiments, the plurality of color components includes a Cb component and a Cr component.

[0519] In some embodiments, the plurality of color components share the same candidate list.

[0520] In some embodiments, the plurality of color components share at least one same syntax element.

[0521] In some embodiments, the sum of absolute differences (SAD) of the templates of the plurality of color components are summed to obtain the template cost.

[0522] In some embodiments, the method is applied to the plurality of color components individually.

[0523] In some embodiments, the plurality of color components includes a Cb component and a Cr component.

[0524] In some embodiments, the plurality of color components have different candidate lists.

[0525] In some embodiments, the plurality of color components have at least one same syntax element.

[0526] In some embodiments, the sum of absolute differences (SAD) of the templates of the plurality of color components are considered individually.

[0527] In some embodiments, the parameters of the intraTMP filter and the IBC filter parameters are allowed to be inherited to generate the luma prediction for the current video unit in non-intra modes.

[0528] In some embodiments, the parameters of the intraTMP filter are allowed to be inherited to generate the luma prediction for the current video unit in intra-TMP modes.

[0529] In some embodiments, the parameters of the IBC filter are allowed to be inherited to generate the luma prediction for the current video unit in IBC modes.

[0530] In some embodiments, the parameters of the CCRM filter are allowed to be inherited to generate the chroma prediction for the current video unit in inter or IBC modes.

[0531] In some embodiments, the default candidate has fixed or predefined parameters and / or associated information.

[0532] In some embodiments, the default candidate has parameters and / or associated information derived from an existing candidate in the candidate list.

[0533] In some embodiments, the method is used in at least one of: post-processing or pre-processing.

[0534] In some embodiments, the method is applied jointly or separately.

[0535] In some embodiments, the plurality of sets of model parameters of the plurality of categories are inserted jointly into the inheritance list.

[0536] In some embodiments, the inheritance list includes at most N candidates, N being 12.

[0537] In some embodiments, the inheritance list is updated following a first-in-first-out rule or a further rule.

[0538] In some embodiments, the inheritance list is updated with deduplication.

[0539] In some embodiments, the inheritance list is updated by: checking whether a first candidate is identical to a second candidate in the inheritance list; and if it is determined that the first candidate is identical to the second candidate, removing the second candidate from the inheritance list and adding the first candidate to the inheritance list.

[0540] In some embodiments, the inheritance list is updated without deduplication.

[0541] In some embodiments, the inheritance list is reset for each coding tree unit (CTU) or CTU row.

[0542] In some embodiments, the inheritance list is reset for each slice or each tile or each picture.

[0543] In some embodiments, a candidate index of the candidate is included in the bitstream or derived or predefined to indicate which candidate is selected.

[0544] In some embodiments, the method is applied to at least one of the following in video coding: an in-loop filtering tool, a prediction tool, a pre-processing tool, or a post-processing tool.

[0545] In some embodiments, the current video unit comprises one of: a sequence, a picture, a sub-picture, a slice, a tile, a coding tree unit (CTU), a CTU row, a CTU group, a coding unit (CU), a prediction unit (PU), a transform unit (TU), a coding tree block (CTB), a coding block (CB), a prediction block (PB), a transform block (TB), or a region containing more than one luma or chroma sample or pixel.

[0546] In some embodiments, information about whether and / or how the method is applied is indicated in a bitstream.

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

[0548] In some embodiments, the information is indicated at one of the following: prediction block (PB), transform block (TB), coding block (CB), prediction unit (PU), transform unit (TU), coding unit (CU), virtual pipeline data unit (VPDU), coding tree unit (CTU), CTU row, slice, tile, subpicture, or region containing more than one sample or pixel.

[0549] In some embodiments, the information about whether to apply the method and / or how to apply the method is based on coded information, the coded information including at least one of the following: block size, color format, single tree partitioning and / or dual tree partitioning, color component, slice type, or picture type.

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

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

[0552] According to further embodiments according to the present disclosure, a non-transitory computer-readable recording medium is provided. The non-transitory computer-readable recording medium stores a bitstream of a video generated by a method performed by an apparatus for video processing. The method includes performing model parameter inheritance for a coding tool, the coding tool including at least one of a cross-component residual modeling (CCRM) tool, an intra template matching prediction (intra TMP) filtering tool, or an intra block copy (IBC) filtering tool, the model parameter inheritance including at least one of history-based model parameter inheritance, temporal-based model parameter inheritance, or spatial-based model parameter inheritance; and generating the bitstream based on the model parameter inheritance.

[0553] According to yet some embodiments of the disclosure, a method for storing a bitstream of a video is provided. The method includes performing model parameter inheritance for a coding tool, the coding tool including at least one of a cross-component residual modeling (CCRM) tool, an intra template matching prediction (intraTMP) filtering tool, or an intra block copy (IBC) filtering tool, the model parameter inheritance including at least one of history-based model parameter inheritance, temporal-based model parameter inheritance, or spatial-based model parameter inheritance; generating the bitstream based on the model parameter inheritance; and storing the bitstream in a non-transitory computer-readable recording medium.

[0554] Embodiments of the disclosure can be described according to the following clauses, which features can be combined in any reasonable manner.

[0555] Clause 1. A method for video processing, comprising: for a conversion between a current video unit of a video and a bitstream of the video, performing model parameter inheritance for a coding tool, the coding tool including at least one of a cross-component residual modeling (CCRM) tool, an intra template matching prediction (intraTMP) filtering tool, or an intra block copy (IBC) filtering tool, the model parameter inheritance including at least one of history-based model parameter inheritance, temporal-based model parameter inheritance, or spatial-based model parameter inheritance; and based on the model parameter inheritance, performing the conversion.

[0556] Clause 2. The method of clause 1, wherein a model parameter set derived from a previously coded video unit in a temporal domain, including at least one of a previously CCRM coded video unit in the temporal domain, a previously intraTMP coded video unit in the temporal domain, or a previously IBC coded video unit in the temporal domain, is stored at an encoder and a decoder for the conversion.

[0557] Clause 3. The method of clause 2, wherein the model parameter set derived from the previously coded video unit within a current coding tree unit (CTU) or a current CTU row is stored.

[0558] Clause 4. The method of clause 2, wherein the model parameter set derived from the previously coded video unit within a current slice or a current tile or a current picture is stored.

[0559] Clause 5. The method of clause 2, wherein the model parameter set derived from the previously coded video unit within a previously coded coding tree unit (CTU) or CTU row or a collocated CTU or CTU row is stored.

[0560] Item 6. The method of item 2, wherein the model parameter set derived from the temporally previously coded video unit within a previously coded slice or a previously coded tile or a previously coded picture is stored.

[0561] Item 7. The method of any of items 1 to 6, wherein a history or temporal or spatial model parameter set is reused by the current video unit.

[0562] Item 8. The method of item 7, wherein a coefficient within the model parameter set is reused by the current video unit.

[0563] Item 9. The method of item 7, wherein at least one coefficient within the model parameter set is reused by the current video unit, the at least one coefficient corresponding to one of: a spatial tap, a non-linear tap, or a bias tap.

[0564] Item 10. The method of any of items 7 to 9, wherein a filter model is stored and reused by the current video unit, the filter model comprising at least one of: a filter shape, a filter tap, a filter term, or an offset.

[0565] Item 11. The method of any of items 7 to 10, wherein whether and how a multi- model or multi-filter is applied is stored and reused by the current video unit.

[0566] Item 12. The method of item 11, wherein at least one of: a threshold for the multi- model or multi-filter, or a model index of a multi-down-sampling filter (MDF) is reused by the current video unit.

[0567] Item 13. The method of any of items 1 to 12, further comprising: determining reference samples from a history or temporal CCRM or intra TMP or IBC coded video unit; and reusing the reference samples by the current video unit.

[0568] Item 14. The method of any of items 1 to 13, wherein a reference region or template from a history or temporal CCRM or intra TMP or IBC coded video unit is reused by the current video unit.

[0569] Item 15. The method of any of items 1 to 14, wherein a history or temporal or spatial model parameter set list is maintained during the conversion.

[0570] Item 16. The method of item 15, wherein the list of model parameter sets comprises historical or temporal model parameter sets during the conversion.

[0571] Item 17. The method of item 15, wherein the list of model parameter sets comprises at least one historical or temporal model parameter set within a current coding tree unit (CTU) or CTU row.

[0572] Item 18. The method of item 15, wherein the list of model parameter sets comprises at least one historical or temporal model parameter set within a current slice or a current tile or a current picture.

[0573] Item 19. The method of item 15, wherein the list of model parameter sets comprises at most N candidates, N being 12.

[0574] Item 20. The method of item 15, wherein the list of model parameter sets follows a first-in-first-out (FIFO) rule.

[0575] Item 21. The method of item 15, wherein the list of model parameter sets is updated.

[0576] Item 22. The method of item 15, wherein the list of model parameter sets is updated with deduplication.

[0577] Item 23. The method of item 22, wherein the list of model parameter sets is updated by checking whether a first candidate is identical to a second candidate in the list of model parameter sets, and if it is determined that the first candidate is identical to the second candidate, removing the second candidate from the list of model parameter sets and adding the first candidate to the list of model parameter sets.

[0578] Item 24. The method of item 15, wherein the list of model parameter sets is updated without deduplication.

[0579] Item 25. The method of item 15, wherein the list of model parameter sets is reset for each coding tree unit (CTU) or CTU row.

[0580] Item 26. The method of item 15, wherein the list of model parameter sets is reset for each slice, each tile or each picture.

[0581] Item 27. The method of item 15, wherein a candidate index of a candidate is included in the bitstream or derived or predefined to indicate which candidate is selected.

[0582] Item 28. The method of any of items 1 to 27, wherein a model parameter set of a CCRM or intraTMP filter coded video unit or an IBC filter coded video unit is stored and used to filter a subsequent CCRM or intraTMP or IBC coded video unit in a current picture.

[0583] Item 29. The method of item 28, wherein the model parameter set is stored in a history-based lookup table.

[0584] Item 30. The method of item 29, wherein a maximum size of the history-based lookup table is predefined.

[0585] Item 31. The method of item 28, wherein elements inserted into the history-based lookup table follow a first-in-first-out (FIFO) order.

[0586] Item 32. The method of any of items 1 to 31, wherein a model parameter set of a CCRM or intraTMP or IBC filter coded video unit is stored and used to filter a future CCRM or intraTMP or IBC filter coded video unit in a subsequent picture.

[0587] Item 33. The method of item 32, wherein the model parameter set is stored in a temporal buffer.

[0588] Item 34. The method of item 32, wherein the model parameter set is considered a temporal buffer associated with a reference picture.

[0589] Item 35. The method of any of items 1 to 34, wherein the model parameter inheritance includes spatial neighbor-based model parameter inheritance.

[0590] Item 36. The method of item 35, wherein a model parameter set derived by a spatially neighboring previously CCRM or intraTMP or IBC coded video unit is stored at an encoder and a decoder for the conversion.

[0591] Item 37. The method of item 36, wherein the model parameter set derived by the spatially neighboring previously CCRM or intraTMP or IBC coded video unit within a current coding tree unit (CTU) or a current CTU row is stored.

[0592] Item 38. The method of item 36, wherein the set of model parameters derived from the spatially neighboring previously CCRM or intraTMP or IBC coded video unit within the current slice or the current tile or the current picture is stored.

[0593] Item 39. The method of item 36, wherein the set of model parameters derived from the spatially neighboring previously CCRM or intraTMP or IBC coded video unit within a previously coded coding tree unit (CTU) or CTU row or collocated CTU or CTU row is stored.

[0594] Item 40. The method of item 36, wherein the set of model parameters derived from the spatially neighboring previously CCRM or intraTMP or IBC coded video unit within a previously coded slice or a previously coded tile or a previously coded picture is stored.

[0595] Item 41. The method of any of items 35 to 40, wherein a spatially neighboring set of model parameters is reused by the current video unit.

[0596] Item 42. The method of item 41, wherein a coefficient within the set of model parameters is reused by the current video unit.

[0597] Item 43. The method of item 41, wherein at least one coefficient within the set of model parameters is reused by the current video unit, the at least one coefficient corresponding to one of: a spatial tap, a non-linear tap, or a bias tap.

[0598] Item 44. The method of any of items 41 to 43, wherein a filter model is stored and reused by the current video unit, the filter model comprising at least one of: a filter shape, a filter tap, a filter term, or an offset.

[0599] Item 45. The method of any of items 41 to 44, wherein whether and how a multiple model or multiple filter is applied is stored and reused by the current video unit.

[0600] Item 46. The method of item 45, wherein at least one of: a threshold for the multiple model or multiple filter, or a model index of a multiple down-sampling filter (MDF) is reused by the current video unit.

[0601] Item 47. The method of any of items 35 to 46, further comprising determining reference samples from a CCRM or intraTMP or IBC coded video unit that is spatially neighboring; and reusing the reference samples by the current video unit.

[0602] Item 48. The method of any of items 35 to 47, wherein a reference region or template from a CCRM or intraTMP or IBC coded video unit that is spatially neighboring is reused by the current video unit.

[0603] Item 49. The method of any of items 35 to 48, wherein a list of model parameter sets of spatial neighbors is maintained during the conversion.

[0604] Item 50. The method of item 49, wherein the list of model parameter sets includes model parameter sets of spatial neighbors during the conversion.

[0605] Item 51. The method of item 49, wherein the list of model parameter sets includes at least one model parameter set of a spatial neighbor within a current coding tree unit (CTU) or CTU row.

[0606] Item 52. The method of item 49, wherein the list of model parameter sets includes at least one model parameter set of a spatial neighbor within a current slice or current tile or current picture.

[0607] Item 53. The method of item 49, wherein the list of model parameter sets includes at most N candidates, N being 6.

[0608] Item 54. The method of item 49, wherein the list of model parameter sets follows a first-in-first-out (FIFO) rule.

[0609] Item 55. The method of item 49, wherein the list of model parameter sets is updated.

[0610] Item 56. The method of item 49, wherein the list of model parameter sets is updated with deduplication.

[0611] Item 57. The method of item 56, wherein the list of model parameter sets is updated by: checking whether a first candidate is identical to a second candidate in the list of model parameter sets; and if it is determined that the first candidate is identical to the second candidate, removing the second candidate from the list of model parameter sets and adding the first candidate to the list of model parameter sets.

[0612] Item 58. The method of item 49, wherein the model parameter set list is updated without de-duplication.

[0613] Item 59. The method of item 49, wherein the model parameter set list is reset for each video unit.

[0614] Item 60. The method of item 49, wherein a candidate index of a candidate is included in the bitstream or is derived or is predefined to indicate which candidate is selected.

[0615] Item 61. The method of any of items 1 to 60, wherein the model parameter inheritance comprises spatially non-adjacent model parameter inheritance.

[0616] Item 62. The method of item 61, wherein model parameter sets derived from spatially non-adjacent previously CCRM or intraTMP or IBC coded video units are stored at the encoder and the decoder for the conversion.

[0617] Item 63. The method of item 62, wherein the model parameter sets derived from the spatially non-adjacent previously CCRM or intraTMP or IBC coded video units within a current coding tree unit (CTU) or a current CTU row are stored.

[0618] Item 64. The method of item 62, wherein the model parameter sets derived from the spatially non-adjacent previously CCRM or intraTMP or IBC coded video units within a current slice or a current tile or a current picture are stored.

[0619] Item 65. The method of item 62, wherein the model parameter sets derived from the spatially non-adjacent previously CCRM or intraTMP or IBC coded video units within a previously coded coding tree unit (CTU) or CTU row or a collocated CTU or CTU row are stored.

[0620] Item 66. The method of item 62, wherein the model parameter sets derived from the spatially non-adjacent previously CCRM or intraTMP or IBC coded video units within a previously coded slice or a previously coded tile or a previously coded picture are stored.

[0621] Item 67. The method of any of items 61 to 66, wherein spatially non-adjacent model parameter sets are reused by the current video unit.

[0622] Item 68. The method of item 67, wherein coefficients within the model parameter set are re-used by the current video unit.

[0623] Item 69. The method of item 67, wherein at least one coefficient within the model parameter set is re-used by the current video unit, the at least one coefficient corresponding to one of: a spatial tap, a non-linear tap, or a bias tap.

[0624] Item 70. The method of any of items 67 to 69, wherein a filter model is stored and re-used by the current video unit, the filter model comprising at least one of: a filter shape, a filter tap, a filter term, or an offset.

[0625] Item 71. The method of any of items 67 to 70, wherein whether and how a multi- model or multi-filter is applied is stored and re-used by the current video unit.

[0626] Item 72. The method of item 71, wherein at least one of: a threshold for the multi- model or multi-filter, or a model index of a multi-down-sampling filter (MDF) is re-used by the current video unit.

[0627] Item 73. The method of any of items 61 to 72, further comprising: determining reference samples from CCRM or intra TMP or IBC coded video units that are not spatially adjacent; and re-using the reference samples by the current video unit.

[0628] Item 74. The method of any of items 61 to 73, wherein a reference region or template from CCRM or intra TMP or IBC coded video units that are not spatially adjacent is re-used by the current video unit.

[0629] Item 75. The method of any of items 61 to 74, wherein a list of model parameter sets that are not spatially adjacent is maintained during the conversion.

[0630] Item 76. The method of item 75, wherein the list of model parameter sets includes model parameter sets that are not spatially adjacent during the conversion.

[0631] Item 77. The method of item 75, wherein the list of model parameter sets includes at least one model parameter set that is not spatially adjacent within a current coding tree unit (CTU) or a row of CTUs.

[0632] Item 78. The method according to item 75, wherein the list of model parameter sets comprises at least one spatially non-adjacent model parameter set within a current slice or a current tile or a current picture.

[0633] Item 79. The method according to item 75, wherein the list of model parameter sets comprises at most N candidates, N being 6.

[0634] Item 80. The method according to item 75, wherein the list of model parameter sets follows a first-in-first-out (FIFO) rule.

[0635] Item 81. The method according to item 75, wherein the list of model parameter sets is updated.

[0636] Item 82. The method according to item 75, wherein the list of model parameter sets is updated with deduplication.

[0637] Item 83. The method according to item 82, wherein the list of model parameter sets is updated by: checking whether a first candidate is identical to a second candidate in the list of model parameter sets; and if it is determined that the first candidate is identical to the second candidate, removing the second candidate from the list of model parameter sets and adding the first candidate to the list of model parameter sets.

[0638] Item 84. The method according to item 75, wherein the list of model parameter sets is updated without deduplication.

[0639] Item 85. The method according to item 75, wherein the list of model parameter sets is reset for each video unit.

[0640] Item 86. The method according to item 75, wherein the list of model parameter sets is reset for each coding tree unit (CTU) or CTU row.

[0641] Item 87. The method according to item 75, wherein the list of model parameter sets is reset for each slice, each tile or each picture.

[0642] Item 88. The method according to item 75, wherein a candidate index of a candidate is included in the bitstream or derived or predefined to indicate which candidate is selected.

[0643] Item 89. The method according to any of items 1 to 88, wherein a spatial parameter is inherited from at least one of: a neighboring neighboring block, or a non- neighboring neighboring block.

[0644] Item 90. The method of item 89, wherein the neighboring neighboring block comprises a block used to inherit motion information in Merge mode.

[0645] Item 91. The method of item 89, wherein the non-neighboring neighboring block comprises a block used to inherit motion information in Merge mode.

[0646] Item 92. The method of any of items 89 to 91, wherein a position of the neighboring neighboring block or a position of the non-neighboring neighboring block is based on at least one of: a position of the current video unit, a width of the current video unit, or a height of the current video unit.

[0647] Item 93. The method of any of items 1 to 92, wherein the model parameter inheritance comprises inheritance based on a predefined or default model parameter set.

[0648] Item 94. The method of item 93, wherein at least one predefined model parameter set is stored at an encoder and a decoder for the conversion.

[0649] Item 95. The method of item 93, wherein a predefined model parameter set is used for the current video unit.

[0650] Item 96. The method of item 93, wherein a candidate index is included in the bitstream or is derived or predefined to indicate which predefined model parameter set is selected.

[0651] Item 97. The method of any of items 1 to 96, further comprising determining a model candidate list for the current video unit in a CCRM or intra TMP or IBC model parameter inheritance mode.

[0652] Item 98. The method of item 97, wherein at least one spatial candidate is inserted into the model candidate list before other types of candidates.

[0653] Item 99. The method of item 97, wherein candidates in the model candidate list follow an order of spatial neighboring candidates, spatial non-neighboring candidates, history-based candidates, temporal candidates, default candidates.

[0654] Item 100. The method of any of items 97 to 99, further comprising applying a template cost based reordering process to the model candidate list during generation of the model candidate list.

[0655] Item 101. The method of item 100, wherein the template cost is determined for a potential candidate to be placed in the model candidate list by minimizing a sum of absolute differences (SAD) between model prediction samples in the training area and the reconstructed samples.

[0656] Item 102. The method of item 100, wherein an order of potential candidates to be placed in the model candidate list is reordered based on the template cost sorted in ascending order.

[0657] Item 103. The method of any of items 97 to 99, further comprising, after construction of the model candidate list, applying a template cost based reordering process to the model candidate list.

[0658] Item 104. The method of item 103, wherein the template cost is determined for a potential candidate to be placed in the model candidate list by minimizing a sum of absolute differences (SAD) between model prediction samples in the training area and the reconstructed samples.

[0659] Item 105. The method of item 103, wherein an order of potential candidates to be placed in the model candidate list is reordered based on the template cost sorted in ascending order.

[0660] Item 106. The method of any of items 97 to 105, wherein for Merge list derivation, a checking order of spatial neighboring model candidates is the same as spatial neighboring Merge candidates.

[0661] Item 107. The method of any of items 97 to 105, wherein for Merge list derivation, a checking order of spatial non-neighboring model candidates is the same as spatial neighboring Merge candidates.

[0662] Item 108. The method of any of items 97 to 105, wherein for Merge list derivation, a checking order of temporal model candidates is the same as temporal Merge candidates.

[0663] Item 109. The method of item 108, wherein a set of shifted temporal model candidates is inserted in the model candidate list, and a shift factor is determined based on a motion vector or a block vector of a neighboring block.

[0664] Item 110. The method of any of items 1 to 109, wherein a first syntax element (SE) is included in the bitstream to indicate whether an inheritance mode is applied.

[0665] Item 111. The method of item 110, wherein the first syntax element comprises a flag.

[0666] Item 112. The method of item 110 or 111, wherein the first syntax element is coded with at least one context model.

[0667] Item 113. The method of item 110 or 111, wherein the first syntax element is bypass coded.

[0668] Item 114. The method of item 110 or 111, wherein the first syntax element is coded if the current video unit is coded with a CCRM mode.

[0669] Item 115. The method of any of items 1 to 114, wherein a second syntax element is included in the bitstream to indicate which candidate in the candidate list is used.

[0670] Item 116. The method of item 115, wherein the second syntax element is binarized to a truncated unary code or a fixed length code or an exponential Golomb code.

[0671] Item 117. The method of item 115, wherein bins of the second syntax element are coded with at least one context model.

[0672] Item 118. The method of item 115, wherein bins of the second syntax element are bypass coded.

[0673] Item 119. The method of item 115, wherein the second syntax element is included in the bitstream if a first syntax element indicates that an inheritance mode is applied.

[0674] Item 120. The method of any of items 1 to 119, wherein the method is applied together to a plurality of color components.

[0675] Item 121. The method of item 120, wherein the plurality of color components comprises a Cb component and a Cr component.

[0676] Item 122. The method of item 120 or 121, wherein the plurality of color components share a same candidate list.

[0677] Item 123. The method of item 120 or 121, wherein the plurality of color components share at least one same syntax element.

[0678] Item 124. The method of item 120 or 121, wherein a sum of absolute differences (SAD) of the templates of the plurality of color components is summed to obtain a template cost.

[0679] Item 125. The method of any of items 1 to 119, wherein the method is applied individually to a plurality of color components.

[0680] Item 126. The method of item 125, wherein the plurality of color components includes a Cb component and a Cr component.

[0681] Item 127. The method of item 125 or 126, wherein the plurality of color components have different candidate lists.

[0682] Item 128. The method of item 125 or 126, wherein the plurality of color components have at least one same syntax element.

[0683] Item 129. The method of item 125 or 126, wherein a sum of absolute differences (SAD) of the templates of the plurality of color components is considered individually.

[0684] Item 130. The method of any of items 1 to 129, wherein parameters of an intra TMP filter and IBC filter parameters are allowed to be inherited to generate luma prediction for the current video unit in non-intra modes.

[0685] Item 131. The method of any of items 1 to 129, wherein parameters of an intra TMP filter are allowed to be inherited to generate luma prediction for the current video unit in intra TMP modes.

[0686] Item 132. The method of any of items 1 to 129, wherein IBC filter parameters are allowed to be inherited to generate luma prediction for the current video unit in IBC modes.

[0687] Item 133. The method of any of items 1 to 132, wherein CCRM filter parameters are allowed to be inherited to generate chroma prediction for the current video unit in inter or IBC modes.

[0688] Item 134. The method of any of items 1 to 133, wherein a default candidate has fixed or predefined parameters and / or associated information.

[0689] Item 135. The method of any of items 1 to 133, wherein a default candidate has parameters and / or associated information derived from existing candidates in a candidate list.

[0690] Item 136. The method according to any of items 1 to 135, wherein the method is used in at least one of: post-processing, or pre-processing.

[0691] Item 137. The method according to any of items 1 to 136, wherein the method is applied jointly or separately.

[0692] Item 138. The method according to item 137, wherein multiple categories of model parameter sets are inserted jointly into an inheritance list.

[0693] Item 139. The method according to item 138, wherein the inheritance list comprises at most N candidates, N being 12.

[0694] Item 140. The method according to item 138 or 139, wherein the inheritance list is updated following a first-in-first-out rule or another rule.

[0695] Item 141. The method according to item 138 or 139, wherein the inheritance list is updated with deduplication.

[0696] Item 142. The method according to item 141, wherein the inheritance list is updated by: checking whether a first candidate is identical to a second candidate in the inheritance list; and if it is determined that the first candidate is identical to the second candidate, removing the second candidate from the inheritance list and adding the first candidate to the inheritance list.

[0697] Item 143. The method according to item 138 or 139, wherein the inheritance list is updated without deduplication.

[0698] Item 144. The method according to item 138 or 139, wherein the inheritance list is reset for each coding tree unit (CTU) or CTU row.

[0699] Item 145. The method according to item 138 or 139, wherein the inheritance list is reset for each slice or each tile or each picture.

[0700] Item 146. The method according to any of items 138 to 145, wherein a candidate index of a candidate is included in the bitstream or derived or predefined to indicate which candidate is selected.

[0701] Item 147. The method according to any of items 1 to 146, wherein the method is applied to at least one of the following in video coding: an in-loop filtering tool, a prediction tool, a pre-processing tool, or a post-processing tool.

[0702] Item 148. The method according to any of items 1 to 147, wherein the current video unit comprises one of: a sequence, a picture, a sub-picture, a slice, a tile, a coding tree unit (CTU), a CTU row, a CTU group, a coding unit (CU), a prediction unit (PU), a transform unit (TU), a coding tree block (CTB), a coding block (CB), a prediction block (PB), a transform block (TB), or a region containing more than one luma or chroma sample or pixel.

[0703] Item 149. The method according to any of items 1 to 148, wherein information about whether and / or how the method is applied is indicated in the bitstream.

[0704] Item 150. The method according to item 149, wherein the information is indicated at one of: sequence level, picture group level, picture level, slice level, tile group level, sequence header, picture header, sequence parameter set (SPS), video parameter set (VPS), dependent parameter set (DPS), decoding capability information (DCI), picture parameter set (PPS), adaptation parameter set (APS), slice header, or tile group header.

[0705] Item 151. The method according to item 149, wherein the information is indicated at one of: prediction block (PB), transform block (TB), coding block (CB), prediction unit (PU), transform unit (TU), coding unit (CU), virtual pipeline data unit (VPDU), coding tree unit (CTU), CTU row, slice, tile, sub-picture, or a region containing more than one sample or pixel.

[0706] Item 152. The method according to any of items 1 to 148, wherein information about whether and / or how the method is applied is based on coded information comprising at least one of: block size, color format, single tree partitioning and / or dual tree partitioning, color component, slice type, or picture type.

[0707] Item 153. The method according to any of items 1 to 152, wherein the conversion comprises encoding the current video unit into the bitstream.

[0708] Item 154. The method according to any of items 1 to 152, wherein the conversion comprises decoding the current video unit from the bitstream.

[0709] Item 155. 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 of any of items 1 to 154.

[0710] Item 156. A non-transitory computer-readable storage medium storing instructions that cause a processor to perform the method of any of items 1 to 154.

[0711] Item 157. A non-transitory computer-readable recording medium storing a bitstream of a video generated by a method performed by an apparatus for video processing, wherein the method comprises: performing model parameter inheritance for a coding tool, the coding tool comprising at least one of a cross-component residual modeling (CCRM) tool, an intra template matching prediction (intra TMP) filtering tool, or an intra block copy (IBC) filtering tool, the model parameter inheritance comprising at least one of history-based model parameter inheritance, temporal-based model parameter inheritance, or spatial-based model parameter inheritance; and generating the bitstream based on the model parameter inheritance.

[0712] Item 158. A method for storing a bitstream of a video, comprising: performing model parameter inheritance for a coding tool, the coding tool comprising at least one of a cross-component residual modeling (CCRM) tool, an intra template matching prediction (intra TMP) filtering tool, or an intra block copy (IBC) filtering tool, the model parameter inheritance comprising at least one of history-based model parameter inheritance, temporal-based model parameter inheritance, or spatial-based model parameter inheritance; generating the bitstream based on the model parameter inheritance; and storing the bitstream in a non-transitory computer-readable recording medium.

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

[0714] It should be understood that Figure 20 The computing device 2000 shown in FIG. 13 is for purposes of illustration and explanation only and is not intended to imply any limitation on the functionality and scope of embodiments of the present disclosure.

[0715] AsFigure 20 As shown, computing device 2000 includes a general-purpose computing device 2000. The computing device 2000 can include at least one or more processors or processing units 2010, a memory 2020, a storage unit 2030, one or more communication units 2040, one or more input devices 2050, and one or more output devices 2060.

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

[0717] The processing unit 2010 can be a physical or virtual processor and can implement various processing based on programs stored in the memory 2020. In a multiprocessor system, multiple processing units execute computer-executable instructions in parallel to increase the parallel processing power of the computing device 2000. The processing unit 2010 can also be referred to as a central processing unit (CPU), a microprocessor, a controller, or a microcontroller.

[0718] The computing device 2000 typically includes a variety of computer storage media. Such media can be any media accessible by the computing device 2000 and can include, without limitation, volatile, non-volatile, removable, and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules, or other data. The memory 2020 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. The storage unit 2030 can be any removable or non-removable media, and can include machine readable media such as memory, flash drives, disks, or other media that can be used to store information and / or data and that can be accessed by the computing device 2000.

[0719] The computing device 2000 can also include additional removable / non-removable, volatile / non-volatile storage devices. Although not shown, such devices can include, but are not limited to, magnetic disks, optical disks, flash memory, and tape. Such storage devices can be connected to the bus by a storage device interface (not shown). Figure 20 Although not shown in the FIG. 1, a disk drive can be provided to read from and / or write to a removable, non-removable, and / or nonvolatile magnetic media (not shown) and / or optical disks (not shown). Such drive can be connected to the bus by one or more data media interfaces (not shown).

[0720] The communication unit 2040 communicates with another computing device via a communication medium. In addition, the functions of the components in the computing device 2000 can be implemented by a single computing cluster or a plurality of computing machines that can communicate via a communication connection. Therefore, the computing device 2000 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.

[0721] The input device 2050 can be one or more of various input devices such as a mouse, a keyboard, a trackball, a voice input device, and the like. The output device 2060 can be one or more of various output devices such as a display, a speaker, a printer, and the like. By means of the communication unit 2040, the computing device 2000 can also communicate with one or more external devices (not shown) such as a storage device and a display device, the computing device 2000 can also communicate with one or more devices that enable a user to interact with the computing device 2000, or if necessary, the computing device 2000 can also communicate with any device (e.g., a network card, a modem, etc.) that enables the computing device 2000 to communicate with one or more other computing devices. Such communication can be carried out via an input / output (I / O) interface (not shown).

[0722] In some embodiments, some or all of the components of computing device 2000 can also be arranged in a cloud computing architecture, rather than being integrated in a single device. In a cloud computing architecture, components can be provided remotely and work together to implement the functionality described in this disclosure. In some embodiments, cloud computing provides computation, software, data access, and storage services that do not require end-user knowledge of the physical location or configuration of the system that delivers the services. In various embodiments, cloud computing delivers services via the internet using appropriate protocols. For example, a cloud computing provider provides an application via the internet that can be accessed through a web browser or any other computing component. The software or components of the cloud computing architecture, and corresponding data, can be stored on servers at remote locations. Computing resources in a cloud computing environment can be consolidated or distributed at locations remote to the user. Cloud computing infrastructure can provide services through a shared data center, although they appear as a single point of access to the user. Thus, a cloud computing architecture can be used to provide the components and functionality described herein from a service provider at a remote location. Alternatively, the components and functionality described herein can be provided by a conventional server, or installed directly on a client device, either directly or in other ways.

[0723] In embodiments of the disclosure, computing device 2000 can be used to implement video encoding / decoding. Memory 2020 can include one or more video codec modules 2025 having one or more program instructions. These modules are accessible and executable by processing unit 2010 to perform the functions of the various embodiments described herein.

[0724] In example embodiments that perform video encoding, input device 2050 can receive video data as input 2070 to be encoded. The video data can be processed, for example, by video codec module 2025, to generate an encoded bitstream. The encoded bitstream can be provided as output 2080 via output device 2060.

[0725] In example embodiments that perform video decoding, input device 2050 can receive an encoded bitstream as input 2070. The encoded bitstream can be processed, for example, by video codec module 2025, to generate decoded video data. The decoded video data can be provided as output 2080 via output device 2060.

[0726] While the present disclosure has been particularly shown and described with reference to the preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details can be made therein without departing from the spirit and scope of the application as defined by the appended claims. Such variations are intended to be covered by the scope of this application. Therefore, the foregoing description of embodiments of the 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, model parameter inheritance is performed for the encoding and decoding tools, which include at least one of the following: a cross-component model-based residual encoding and decoding (CCRM) tool, an intra-template matching prediction (intraTMP) filtering tool, or an intra-block copy (IBC) filtering tool, and the model parameter inheritance includes at least one of the following: history-based model parameter inheritance, time-domain-based model parameter inheritance, or spatial-domain-based model parameter inheritance; as well as The transformation is performed based on the inherited model parameters.

2. The method of claim 1, wherein a set of model parameters derived from previously encoded / decoded video units in the temporal domain is stored at the encoder and decoder for the conversion, the previously encoded / decoded video units in the temporal domain comprising at least one of the following: video units previously encoded / decoded by CCRM in the temporal domain, video units previously encoded / decoded by intraTMP in the temporal domain, or video units previously encoded / decoded by IBC in the temporal domain.

3. The method of claim 2, wherein the set of model parameters derived from the previously encoded video unit in the time domain within the current codec tree unit (CTU) or the current CTU row is stored.

4. The method of claim 2, wherein the set of model parameters derived from the previously encoded / decoded video units in the temporal domain within the current strip, current slice, or current image is stored.

5. The method of claim 2, wherein the set of model parameters derived from the previously encoded video unit in the time domain of the previously encoded codec tree unit (CTU) or CTU row or co-located CTU or CTU row is stored.

6. The method of claim 2, wherein the set of model parameters derived from the previously encoded video units in the temporal domain within a previously encoded strip, a previously encoded slice, or a previously encoded picture is stored.

7. The method according to any one of claims 1 to 6, wherein the historical or temporal or spatial model parameter set is reused by the current video unit.

8. The method of claim 7, wherein the coefficients in the model parameter set are reused by the current video unit.

9. The method of claim 7, wherein at least one coefficient in the model parameter set is reused by the current video unit, the at least one coefficient corresponding to one of the following: a spatial tap, a nonlinear tap, or an offset tap.

10. The method according to any one of claims 7 to 9, wherein a filter model is stored and reused by the current video unit, the filter model comprising at least one of: filter shape, filter tap, filter term, or offset.

11. The method according to any one of claims 7 to 10, wherein whether and how multiple models or multiple filters are applied is stored and reused by the current video unit.

12. The method of claim 11, wherein at least one of the following is reused by the current video unit: a threshold for the multi-model or multi-filter, or a model index for the multi-downsampled filter (MDF).

13. The method according to any one of claims 1 to 12, further comprising: Determine reference samples from video units encoded or decoded using historical or temporal CCRM, intraTMP, or IBC. as well as The reference sample is reused by the current video unit.

14. The method according to any one of claims 1 to 13, wherein a reference region or template from a video unit encoded or decoded using historical or temporal CCRM, intraTMP, or IBC is reused by the current video unit.

15. The method according to any one of claims 1 to 14, wherein a list of historical or temporal or spatial model parameter sets is maintained during the transformation.

16. The method of claim 15, wherein the list of model parameter sets includes a historical or time-domain model parameter set during the transformation.

17. The method of claim 15, wherein the list of model parameter sets includes at least one historical or temporal model parameter set within the current codec tree unit (CTU) or a CTU row.

18. The method of claim 15, wherein the model parameter set list includes at least one historical or temporal model parameter set within the current strip, current slice, or current image.

19. The method of claim 15, wherein the list of model parameter sets includes at most N candidates, where N is 12.

20. The method of claim 15, wherein the list of model parameter sets follows a first-in-first-out (FIFO) rule.

21. The method of claim 15, wherein the list of model parameter sets is updated.

22. The method of claim 15, wherein the list of model parameter sets is updated using deduplication.

23. The method of claim 22, wherein the model parameter set list is updated by: Check whether the first candidate is the same as the second candidate in the model parameter set list; and If it is determined that the first candidate is the same as the second candidate, the second candidate is removed from the model parameter set list and the first candidate is added to the model parameter set list.

24. The method of claim 15, wherein the list of model parameter sets is not updated using deduplication.

25. The method of claim 15, wherein the model parameter set list is reset for each codec tree unit (CTU) or CTU row.

26. The method of claim 15, wherein the list of model parameter sets is reset for each strip, each slice, or each image.

27. The method of claim 15, wherein the candidate index of the candidate is included in, derived or predefined in the bitstream to indicate which candidate is selected.

28. The method according to any one of claims 1 to 27, wherein a set of model parameters for video units encoded with a CCRM or intraTMP filter or video units encoded with an IBC filter is stored and used to filter subsequent video units encoded with CCRM, intraTMP, or IBC in the current frame.

29. The method of claim 28, wherein the model parameter set is stored in a history-based lookup table.

30. The method of claim 29, wherein the maximum size of the history-based lookup table is predefined.

31. The method of claim 28, wherein the elements inserted into the history-based lookup table follow a first-in, first-out (FIFO) order.

32. The method according to any one of claims 1 to 31, wherein a set of model parameters of video units encoded and decoded by CCRM, intraTMP, or IBC filters is stored and used to filter future video units encoded and decoded by CCRM, intraTMP, or IBC filters in subsequent images.

33. The method of claim 32, wherein the model parameter set is stored in a time-domain cache.

34. The method of claim 32, wherein the model parameter set is regarded as a temporal cache associated with a reference image.

35. The method according to any one of claims 1 to 34, wherein the model parameter inheritance includes model parameter inheritance based on spatial adjacency.

36. The method of claim 35, wherein a set of model parameters derived from spatially adjacent video units previously encoded and decoded by CCRM, intraTMP, or IBC is stored at the encoder and decoder for use in the conversion.

37. The method of claim 36, wherein the set of model parameters derived from the previously CCRM, intraTMP, or IBC encoded video units adjacent to the spatial domain within the current codec tree unit (CTU) or the current CTU row is stored.

38. The method of claim 36, wherein the set of model parameters derived from previously CCRM, intraTMP, or IBC encoded video units adjacent to the spatial domain within the current strip, current slice, or current picture is stored.

39. The method of claim 36, wherein the set of model parameters derived from previously encoded / decoded video units previously encoded / decoded by CCRM, intraTMP, or IBC and adjacent to the spatial domain of a previously encoded / decoded codec tree unit (CTU) or CTU row or co-occurring CTU or CTU row is stored.

40. The method of claim 36, wherein the set of model parameters derived from previously CCRM, intraTMP, or IBC-encoded video units adjacent to the spatial domain within a previously encoded strip, slice, or picture is stored.

41. The method according to any one of claims 35 to 40, wherein spatially adjacent sets of model parameters are reused by the current video unit.

42. The method of claim 41, wherein the coefficients in the model parameter set are reused by the current video unit.

43. The method of claim 41, wherein at least one coefficient in the model parameter set is reused by the current video unit, the at least one coefficient corresponding to one of the following: a spatial tap, a nonlinear tap, or an offset tap.

44. The method according to any one of claims 41 to 43, wherein a filter model is stored and reused by the current video unit, the filter model comprising at least one of: filter shape, filter tap, filter term, or offset.

45. The method according to any one of claims 41 to 44, wherein whether and how multiple models or multiple filters are applied is stored and reused by the current video unit.

46. ​​The method of claim 45, wherein at least one of the following is reused by the current video unit: a threshold for the multi-model or multi-filter, or a model index of the multi-downsampled filter (MDF).

47. The method according to any one of claims 35 to 46, further comprising: Determine reference points from adjacent video units encoded or decoded by CCRM, intraTMP, or IBC in the spatial domain; as well as The reference sample is reused by the current video unit.

48. The method according to any one of claims 35 to 47, wherein a reference region or template from a spatially adjacent video unit encoded and decoded by CCRM, intraTMP, or IBC is reused by the current video unit.

49. The method according to any one of claims 35 to 48, wherein a list of spatially adjacent model parameter sets is maintained during the transformation.

50. The method of claim 49, wherein the list of model parameter sets includes spatially adjacent set of model parameters during the transformation.

51. The method of claim 49, wherein the list of model parameter sets includes at least one spatially adjacent set of model parameters within the current codec tree unit (CTU) or a CTU row.

52. The method of claim 49, wherein the model parameter set list includes at least one spatially adjacent model parameter set within the current strip, current slice, or current image.

53. The method of claim 49, wherein the list of model parameter sets includes at most N candidates, where N is 6.

54. The method of claim 49, wherein the list of model parameter sets follows a first-in-first-out (FIFO) rule.

55. The method of claim 49, wherein the list of model parameter sets is updated.

56. The method of claim 49, wherein the model parameter set list is updated using deduplication.

57. The method of claim 56, wherein the model parameter set list is updated by: Check whether the first candidate is the same as the second candidate in the model parameter set list; and If it is determined that the first candidate is the same as the second candidate, the second candidate is removed from the model parameter set list and the first candidate is added to the model parameter set list.

58. The method of claim 49, wherein the list of model parameter sets is not updated using deduplication.

59. The method of claim 49, wherein the list of model parameter sets is reset for each video unit.

60. The method of claim 49, wherein the candidate index of the candidate is included in, derived, or predefined in the bitstream to indicate which candidate is selected.

61. The method according to any one of claims 1 to 60, wherein the model parameter inheritance includes model parameter inheritance based on spatial non-adjacent regions.

62. The method of claim 61, wherein a set of model parameters derived from previously CCRM, intraTMP, or IBC encoded / decoded video units that are not spatially adjacent is stored at the encoder and decoder for use in the conversion.

63. The method of claim 62, wherein the set of model parameters derived from previously encoded or decoded video units of CCRM, intraTMP, or IBC that are not adjacent in the spatial domain within the current codec tree unit (CTU) or the current CTU row are stored.

64. The method of claim 62, wherein the set of model parameters derived from previously CCRM, intraTMP, or IBC encoded / decoded video units whose spatial domains are not adjacent within the current strip, current slice, or current picture is stored.

65. The method of claim 62, wherein the set of model parameters derived from previously encoded / decoded codec tree units (CTUs) or CTU rows or co-located CTUs or CTU rows whose spatial domains are not adjacent is stored.

66. The method of claim 62, wherein the set of model parameters derived from previously CCRM, intraTMP, or IBC encoded video units whose spatial domains are not adjacent within a previously encoded strip, previously encoded slice, or previously encoded picture is stored.

67. The method according to any one of claims 61 to 66, wherein the set of model parameters that are not spatially adjacent is reused by the current video unit.

68. The method of claim 67, wherein the coefficients in the model parameter set are reused by the current video unit.

69. The method of claim 67, wherein at least one coefficient in the model parameter set is reused by the current video unit, the at least one coefficient corresponding to one of the following: a spatial tap, a nonlinear tap, or an offset tap.

70. The method of any one of claims 67 to 69, wherein a filter model is stored and reused by the current video unit, the filter model comprising at least one of: filter shape, filter tap, filter term, or offset.

71. The method according to any one of claims 67 to 70, wherein whether and how multiple models or multiple filters are applied is stored and reused by the current video unit.

72. The method of claim 71, wherein at least one of the following is reused by the current video unit: a threshold for the multi-model or multi-filter, or a model index for the multi-downsampled filter (MDF).

73. The method according to any one of claims 61 to 72, further comprising: Determine reference samples from video units encoded or decoded by CCRM, intraTMP, or IBC that are not spatially adjacent; as well as The reference sample is reused by the current video unit.

74. The method according to any one of claims 61 to 73, wherein a reference region or template from a spatially non-adjacent video unit encoded with CCRM, intraTMP, or IBC is reused by the current video unit.

75. The method according to any one of claims 61 to 74, wherein a list of model parameter sets whose spatial domains are not adjacent is maintained during the transformation.

76. The method of claim 75, wherein the list of model parameter sets includes a set of model parameters whose spatial domains are not adjacent during the transformation.

77. The method of claim 75, wherein the list of model parameter sets includes model parameter sets in which at least one spatial domain is not adjacent within the current codec tree unit (CTU) or CTU row.

78. The method of claim 75, wherein the list of model parameter sets includes at least one set of model parameters within the current strip, current slice, or current image whose spatial domains are not adjacent.

79. The method of claim 75, wherein the list of model parameter sets includes at most N candidates, where N is 6.

80. The method of claim 75, wherein the list of model parameter sets follows a first-in-first-out (FIFO) rule.

81. The method of claim 75, wherein the list of model parameter sets is updated.

82. The method of claim 75, wherein the list of model parameter sets is updated using deduplication.

83. The method of claim 82, wherein the model parameter set list is updated by: Check whether the first candidate is the same as the second candidate in the model parameter set list; and If it is determined that the first candidate is the same as the second candidate, the second candidate is removed from the model parameter set list and the first candidate is added to the model parameter set list.

84. The method of claim 75, wherein the list of model parameter sets is not updated using deduplication.

85. The method of claim 75, wherein the list of model parameter sets is reset for each video unit.

86. The method of claim 75, wherein the model parameter set list is reset for each codec tree unit (CTU) or CTU row.

87. The method of claim 75, wherein the list of model parameter sets is reset for each strip, each slice, or each image.

88. The method of claim 75, wherein the candidate index of the candidate is included in, derived or predefined in the bitstream to indicate which candidate is selected.

89. The method according to any one of claims 1 to 88, wherein the spatial parameters are inherited from at least one of: adjacent neighboring blocks, or non-adjacent neighboring blocks.

90. The method of claim 89, wherein the adjacent neighboring blocks include blocks used to inherit motion information in Merge mode.

91. The method of claim 89, wherein the non-adjacent neighboring blocks include blocks used to inherit motion information in Merge mode.

92. The method according to any one of claims 89 to 91, wherein the position of the adjacent neighboring block or the position of the non-adjacent neighboring block is based on at least one of the following: the position of the current video unit, the width of the current video unit, or the height of the current video unit.

93. The method according to any one of claims 1 to 92, wherein the model parameter inheritance includes inheritance based on a predefined or default set of model parameters.

94. The method of claim 93, wherein at least one predefined set of model parameters is stored at the encoder and decoder for use in the transformation.

95. The method of claim 93, wherein a predefined set of model parameters is used for the current video unit.

96. The method of claim 93, wherein the candidate index is included in, derived, or predefined in the bitstream to indicate which predefined set of model parameters is selected.

97. The method according to any one of claims 1 to 96, further comprising: Determine the list of model candidates for the current video unit under CCRM, intraTMP, or IBC model parameter inheritance mode.

98. The method of claim 97, wherein at least one spatial candidate is inserted into the model candidate list before other types of candidates.

99. The method of claim 97, wherein the candidates in the model candidate list follow the order of spatially adjacent candidates, spatially non-adjacent candidates, history-based candidates, temporal candidates, and default candidates.

100. The method according to any one of claims 97 to 99, further comprising: During the generation of the model candidate list, a template cost-based reordering process is applied to the model candidate list.

101. The method of claim 100, wherein for a potential candidate to be placed into the model candidate list, the template cost is determined by minimizing the sum of absolute differences (SAD) between model-predicted samples and reconstructed samples in the training region.

102. The method of claim 100, wherein the order of potential candidates to be placed into the model candidate list is reordered based on the template cost sorted in ascending order.

103. The method according to any one of claims 97 to 99, further comprising: After the model candidate list is constructed, a template cost-based reordering process is applied to the model candidate list.

104. The method of claim 103, wherein for a potential candidate to be placed into the model candidate list, the template cost is determined by minimizing the sum of absolute differences (SAD) between model-predicted samples and reconstructed samples in the training region.

105. The method of claim 103, wherein the order of potential candidates to be placed into the model candidate list is reordered based on the template cost sorted in ascending order.

106. The method according to any one of claims 97 to 105, wherein for the Merge list derivation, the checking order of spatially adjacent model candidates is the same as that of spatially adjacent Merge candidates.

107. The method according to any one of claims 97 to 105, wherein for the Merge list derivation, the checking order of spatially non-adjacent model candidates is the same as that of spatially adjacent Merge candidates.

108. The method according to any one of claims 97 to 105, wherein for the Merge list derivation, the checking order of the time-domain model candidates is the same as that of the time-domain Merge candidates.

109. The method of claim 108, wherein a set of shifted time-domain model candidates is inserted into the model candidate list, and the shift factor is determined based on the motion vector or block vector of the neighboring block.

110. The method according to any one of claims 1 to 109, wherein a first syntax element (SE) is included in the bitstream to indicate whether an inheritance mode is applied.

111. The method of claim 110, wherein the first syntax element includes a flag.

112. The method of claim 110 or 111, wherein the first syntax element is encoded or decoded using at least one context model.

113. The method of claim 110 or 111, wherein the first syntax element is bypassed and encoded / decoded.

114. The method of claim 110 or 111, wherein if the current video unit is encoded or decoded using CCRM mode, the first syntax element is encoded or decoded.

115. The method according to any one of claims 1 to 114, wherein a second syntax element is included in the bitstream to indicate which candidate in the candidate list is used.

116. The method of claim 115, wherein the second syntax element is binarized into a rounded unary code, a fixed-length code, or an exponential Golomb code.

117. The method of claim 115, wherein the binary bits of the second syntax element are encoded and decoded using at least one context model.

118. The method of claim 115, wherein the binary bits of the second syntax element are bypassed and encoded / decoded.

119. The method of claim 115, wherein if the first syntax element indicates that an inheritance mode is applied, the second syntax element is included in the bitstream.

120. The method according to any one of claims 1 to 119, wherein the method is applied together to a plurality of color components.

121. The method of claim 120, wherein the plurality of color components includes a Cb component and a Cr component.

122. The method of claim 120 or 121, wherein the plurality of color components share the same candidate list.

123. The method of claim 120 or 121, wherein the plurality of color components share at least one identical syntax element.

124. The method of claim 120 or 121, wherein the sum of absolute differences (SAD) of the templates of the plurality of color components is summed to obtain the template cost.

125. The method according to any one of claims 1 to 119, wherein the method is applied individually to a plurality of color components.

126. The method of claim 125, wherein the plurality of color components includes a Cb component and a Cr component.

127. The method of claim 125 or 126, wherein the plurality of color components have different candidate lists.

128. The method of claim 125 or 126, wherein the plurality of color components have at least one identical syntax element.

129. The method of claim 125 or 126, wherein the sum of absolute differences (SAD) of the templates of the plurality of color components is considered individually.

130. The method according to any one of claims 1 to 129, wherein the parameters of the intraTMP filter and the IBC filter are allowed to be inherited to generate a luminance prediction for the current video unit in non-intra-frame mode.

131. The method according to any one of claims 1 to 129, wherein the intraTMP filter parameters are allowed to be inherited to generate a luminance prediction for the current video unit in intra-TMP mode.

132. The method according to any one of claims 1 to 129, wherein the IBC filter parameters are allowed to be inherited to generate a luminance prediction for the current video unit in IBC mode.

133. The method according to any one of claims 1 to 132, wherein CCRM filter parameters are allowed to be inherited to generate chroma prediction for the current video unit in inter-frame or IBC mode.

134. The method according to any one of claims 1 to 133, wherein the default candidate has fixed or predefined parameters and / or associated information.

135. The method according to any one of claims 1 to 133, wherein the default candidate has parameters and / or associated information derived from existing candidates in the candidate list.

136. The method according to any one of claims 1 to 135, wherein the method is used in at least one of: post-processing or pre-processing.

137. The method according to any one of claims 1 to 136, wherein the method is applied in combination or individually.

138. The method of claim 137, wherein multiple sets of model parameters for different categories are jointly inserted into an inheritance list.

139. The method of claim 138, wherein the inheritance list comprises at most N candidates, where N is 12.

140. The method of claim 138 or 139, wherein the inheritance list is updated following a first-in-first-out rule or another rule.

141. The method of claim 138 or 139, wherein the inheritance list is updated using deduplication.

142. The method of claim 141, wherein the inheritance list is updated by: Check whether the first candidate is the same as the second candidate in the inheritance list; and If it is determined that the first candidate is the same as the second candidate, the second candidate is removed from the inheritance list and the first candidate is added to the inheritance list.

143. The method of claim 138 or 139, wherein the inheritance list is not updated using deduplication.

144. The method of claim 138 or 139, wherein the inheritance list is reset for each code-decode tree unit (CTU) or CTU row.

145. The method of claim 138 or 139, wherein the inheritance list is reset for each strip or each piece or each picture.

146. The method of any one of claims 138 to 145, wherein the candidate index of the candidate is included in, derived or predefined in the bitstream to indicate which candidate is selected.

147. The method according to any one of claims 1 to 146, wherein the method is applied to at least one of the following in video encoding and decoding: loop filtering tool, prediction tool, preprocessing tool, or postprocessing tool.

148. The method according to any one of claims 1 to 147, wherein the current video unit comprises one of the following: a sequence, a picture, a sub-picture, a strip, a slice, a codec tree unit (CTU), a CTU row, a CTU group, a codec unit (CU), a prediction unit (PU), a transform unit (TU), a codec tree block (CTB), a codec block (CB), a prediction block (PB), a transform block (TB), or a region containing more than one luminance or chrominance sample point or pixel.

149. The method according to any one of claims 1 to 148, wherein information regarding whether and / or how the method is applied is indicated in the bitstream.

150. The method of claim 149, wherein the information is indicated 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), dependency parameter set (DPS), decoding capability information (DCI), picture parameter set (PPS), adaptive parameter set (APS), strip header, or slice group header.

151. The method of claim 149, wherein the information is indicated at one of the following locations: 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.

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

153. The method according to any one of claims 1 to 152, wherein the conversion comprises encoding the current video unit into the bitstream.

154. The method according to any one of claims 1 to 152, wherein the conversion comprises decoding the current video unit from the bitstream.

155. An apparatus for video processing, comprising a processor and a nontransitory memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to perform the method according to any one of claims 1 to 154.

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

157. A non-transitory computer-readable recording medium storing a bitstream of video generated by a method performed by means of a video processing apparatus, wherein the method includes: Model parameter inheritance is performed for the encoding and decoding tools, which include at least one of the following: a cross-component model-based residual encoding and decoding (CCRM) tool, an intra-template matching prediction (intraTMP) filtering tool, or an intra-block copy (IBC) filtering tool, and the model parameter inheritance includes at least one of the following: history-based model parameter inheritance, time-domain-based model parameter inheritance, or spatial-domain-based model parameter inheritance. as well as The bitstream is generated based on the inherited model parameters.

158. A method for storing a bitstream of video, comprising: Model parameter inheritance is performed for the encoding and decoding tools, which include at least one of the following: a cross-component model-based residual encoding and decoding (CCRM) tool, an intra-template matching prediction (intraTMP) filtering tool, or an intra-block copy (IBC) filtering tool, and the model parameter inheritance includes at least one of the following: history-based model parameter inheritance, time-domain-based model parameter inheritance, or spatial-domain-based model parameter inheritance. The bitstream is generated based on the inherited model parameters; as well as The bitstream is stored in a non-transitory computer-readable recording medium.