Methods for reducing cross-component dependencies - Patents.com

By deriving chroma residual scaling factors from current or reference frame samples, the latency issues in video encoding are mitigated, improving the efficiency of video processing.

JP7612773B2Active Publication Date: 2025-01-14DOUYIN VISION CO LTD +1

Patent Information

Application Number
JP2023117436
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-04-23
Filing Date
2023-07-19
Publication Date
2025-01-14
Estimated Expiration
2040-04-22

AI Technical Summary

Technical Problem

Existing video encoding technologies face high latency issues due to cross-component dependencies in chroma residual scaling and cross-component linear model prediction, particularly in dual/separate tree structures, which hinder efficient video processing.

Method used

The proposed methods reduce latency by deriving chroma residual scaling factors using reference samples from the current or predefined reference frames, interpolation, or linear combinations of luma samples, and applying these factors to chroma blocks without waiting for complete luma block reconstruction.

Benefits of technology

This approach significantly reduces processing latency in video encoding by allowing immediate application of chroma residual scaling factors, enhancing the efficiency of video encoding and decoding processes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007612773000024
    Figure 0007612773000024
  • Figure 0007612773000025
    Figure 0007612773000025
  • Figure 0007612773000026
    Figure 0007612773000026
Patent Text Reader

Abstract

To provide a simplified linear model derivation method, device, and system for a cross-component linear model (CCLM) prediction mode in video encoding and decoding.SOLUTION: A method includes a step of calculating a CCLM and / or chroma residual scaling (CRS) factor for the current video block at least in part on the basis of an adjacent sample of the corresponding luma block that covers the top left sample of the collocated luma block associated with the current video block during the conversion between the current video block of visual media data and the bitstream representation of the current video block. Here, one or more features of the current video block are used to identify the corresponding luma block.SELECTED DRAWING: Figure 13
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] This patent document relates to video encoding and decoding techniques, devices, and systems.

[0002] CROSS-REFERENCE TO RELATED APPLICATIONS This application is a divisional application of Patent Application No. 2021-560242 based on International Patent Application No. PCT / CN2020 / 086111, filed on April 22, 2020, and claims priority to and the benefit of International Patent Application No. PCT / CN2019 / 083846, filed on April 23, 2019. All of the foregoing patent applications are incorporated herein by reference in their entireties. [Background technology]

[0003] Despite advances in video compression, digital video still accounts for the largest bandwidth usage in the Internet and other digital communications networks. As the number of connected user devices capable of receiving and displaying video increases, the bandwidth demands for digital video usage are expected to continue to increase. Summary of the Invention

[0004] Apparatuses, systems, and methods related to digital video encoding / decoding, and in particular, simplified linear model derivations for cross-component linear model (CCLM) prediction modes in video encoding / decoding, are described. The described methods may be applied to both existing video encoding standards (e.g., High Efficiency Video Coding (HEVC)) and future video encoding standards (e.g., Generic Video Coding (VVC)) or codecs.

[0005] In one representative aspect, a method for visual media processing is disclosed that includes computing a cross-component linear model (CCLM) and / or a chroma residual scaling (CRS) factor for a current video block based, at least in part, on neighboring samples of a corresponding luma block covering a top-left sample of a co-located luma block associated with the current video block during conversion between a current video block of visual media data and a bitstream representation of the current video block, where one or more features of the current video block are used to identify the corresponding luma block.

[0006] In another representative aspect, a method for visual media processing is disclosed that includes using rules to determine whether to selectively enable or disable chroma residual scaling (CRS) for color components associated with a current video block of visual media data, the rules being based on coding mode information of the current video block and / or coding mode information of one or more neighboring video blocks, and performing a conversion between the current video block and a bitstream representation based on the determination.

[0007] In yet another representative aspect, a method for visual media processing is disclosed that includes using a single chroma residual scaling factor for at least one chroma block associated with a video block in a slice or group of tiles associated with a current video block of visual media data, and performing a conversion between the current video block and a bitstream representation of the current video block.

[0008] In another representative aspect, a method for visual media processing is disclosed that includes deriving a chroma residual scaling factor during conversion between a current video block of visual media data and a bitstream representation of the current video block, storing the chroma residual scaling factor for use with other video blocks of the visual media data, and applying the chroma residual factor to convert the current video block and the other video blocks to the bitstream representation.

[0009] In another representative aspect, a method for visual media processing is disclosed that includes calculating chroma residual factors of a current video block of visual media data during conversion between the current video block and a bitstream representation of the visual media data, storing the chroma residual factors in a buffer for use with a second video block of the visual media data, and removing the chroma residual factors from the buffer following the use.

[0010] In yet another exemplary aspect, a video encoder or decoder device is disclosed that comprises a processor configured to perform the above-mentioned method.

[0011] In another exemplary aspect, a computer readable program medium is disclosed having stored thereon code embodying instructions executable by a processor to implement one of the disclosed methods.

[0012] In yet another exemplary embodiment, the methods described above are embodied in the form of processor-executable code and stored on a computer-readable program medium. [Brief description of the drawings]

[0013] [Figure 1]FIG. 1 shows an example of an angular intra prediction mode in HEVC. [Diagram 2] FIG. 2 shows an example of a non-HEVC directional mode. [Diagram 3] FIG. 3 shows an example related to the CCLM mode. [Figure 4] FIG. 4 shows an example of luma mapping according to a chroma scaling architecture. [Diagram 5] FIG. 5 shows an example of luma and chroma blocks in different color formats. [Figure 6] FIG. 6 shows an example of luma and chroma blocks in the same color format. [Figure 7] FIG. 7 shows an example of collocated luma blocks covering multiple formats. [Figure 8] FIG. 8 shows an example of one of the luma blocks within a larger luma block. [Figure 9] FIG. 9 shows an example of a luma block within a larger luma block and within a bounding box. [Figure 10] FIG. 10 is a block diagram of an example hardware platform for implementing the visual media decoding or encoding techniques described in this document. [Figure 11] FIG. 11 shows a flow chart of one exemplary method for linear model derivation for cross-component prediction in accordance with the disclosed techniques. [Figure 12] FIG. 12 is a block diagram of an example video processing system in which the disclosed techniques can be implemented. [Figure 13] FIG. 13 shows a flow chart of an exemplary method for visual media processing. [Figure 14] FIG. 14 shows a flow diagram of an exemplary method for visual media processing. [Figure 15] FIG. 15 illustrates a flow diagram of an exemplary method for visual media processing. [Figure 16] FIG. 16 illustrates a flow diagram of an exemplary method for visual media processing. [Figure 17] FIG. 17 shows a flow chart of an exemplary method for visual media processing. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0014] 2.1 A Brief Review of HEVC 2.1.1 Intra Prediction in HEVC / H.265 Intra prediction involves generating samples of a given TB (transform block) using previously reconstructed samples in the considered color channel. Intra prediction modes are signaled separately for luma and chroma channels, with the chroma channel intra prediction mode being optionally dependent on the luma channel intra prediction mode via the "DM_CHROMA" mode. Although the intra prediction mode is signaled at the PB (prediction block) level, the intra prediction process is applied at the TB level according to the remaining quad-tree hierarchy of the CU, so that the coding of one TB can affect the coding of the next TB in the CU, and thus the distance to the sample used as the reference value is shortened.

[0015] HEVC includes 35 intra prediction modes: DC mode, planar mode, and 33 directional or "angular" intra prediction modes. The 33 angular intra prediction modes are shown in FIG. 1.

[0016] For PBs associated with chroma color channels, the intra prediction mode is specified as either planar, DC, horizontal, vertical, "DM_CHROMA" mode, or sometimes the diagonal mode "34".

[0017] For chroma formats 4:2:2 and 4:2:0, a chroma PB may overlap with two or four luma PBs (respectively), in which case the luma direction of DM_CHROMA is taken from the top-left of these luma PBs.

[0018] The DM_CHROMA mode indicates that the intra prediction mode of the luma color channel PB is applied to the chroma color channel PB. Since this is relatively common, the most probable mode coding scheme of the intra_croma_pred_mode is biased to indicate this mode being selected.

[0019] 2.2 Versatile Video Coding (VVC) Algorithm Description 2.2.1 VVC Coding Architecture The Joint Video Exploration Team (JVET) was established in 2015 by VCEG and MPEG to explore future video coding technologies beyond HEVC. JVET meetings are currently held quarterly, and the new coding standard aims for a 50% bitrate reduction compared to HEVC. The new video coding standard was officially named Versatile Video Coding (VVC) at the April 2018 JVET meeting, and the first version of the VVC Test Model (VTM) was released at that time. As ongoing efforts are made to contribute to VVC standardization, new coding technologies are adopted into the VVC standard at each JVET meeting. The VVC working draft and test model VTM are then updated after each meeting. The VVC project is currently aiming for technical completion (FDIS) at the July 2020 meeting.

[0020] Like most previous standards, VVC has a block-based hybrid coding architecture, combining inter-picture and intra-picture prediction and transform coding with entropy coding. A partitioning structure divides the input video into blocks called coding tree units (CTUs). The CTUs are then partitioned into coding units (CUs) using a quadtree with a nested multi-type tree structure, with leaf coding units (CUs) defining regions that share the same prediction mode (e.g., intra or inter). In this document, the term "unit" defines a region of an image covering all color components. The term "block" refers to a region of an image that covers all color components. It is used to define the area covering a particular color component (eg, luma), and the spatial location may differ when considering chroma sampling formats such as 4:2:0.

[0021] 2.2.2 Dual / split tree partitioning of VVC The luma and chroma components can have separate partition trees for an I slice. The separate tree division is under the 64x64 block level instead of the CTU level. In the VTM software, there is an SPS flag that controls the dual tree on and off.

[0022] 2.2.3 Intra Prediction in VVC 2.2.3.1 67 Intra Prediction Modes To capture any edge direction presented in natural video, the number of directional intra modes, as used in HEVC, is extended from 33 to 65. The new directional modes are depicted as red dotted arrows in Figure 2, and the planar and DC modes remain the same. These denser directional intra prediction modes apply for all block sizes and for both luma and chroma intra prediction.

[0023] 2.2.3.2 Cross-Component Linear Model Prediction (CCLM) To reduce cross-component redundancy, a cross-component linear model (CCLM) prediction mode is used in JEM, where a chroma sample is predicted based on the reconstructed luma sample of the same CU by using a linear model as follows: predc(i,j)=α·recL′(i,j)+β where predc(i,j) represents the predicted chroma sample in a CU, and recL′(i,j) represents the downsampled reconstructed luma sample of the same CU. The linear model parameters α and β are derived from the relationship between the luma and chroma values ​​from two samples, the luma sample with the minimum and maximum sample values ​​in the set of downsampled neighboring luma samples, and the corresponding chroma sample. Figure 3 shows an example of the position of the top-left sample and one of the samples of the current block involved in the CCLM mode. The linear model parameters α and β are obtained according to the following equations:

number

number

[0024] where Ya and Xa represent the luma and chroma values ​​of the luma sample with the maximum luma sample value, and Xb and Yb represent the luma and chroma values ​​of the luma sample with the minimum luma sample, respectively. Figure 3 shows an example of the positions of the left and above samples and the samples of the current block involved in CCLM mode.

[0025] The division operation to calculate the parameter α is performed using a lookup table. To reduce the memory required to store the table, the diff value (the difference between the maximum and minimum values) and the parameter α are expressed in exponential notation. For example, the diff is approximated with a 4-bit significant part and an exponent. Thus, the table for 1 / diff is divided into 16 elements for the 16 values ​​of the significand as follows: DivTable[]={0, 7, 6, 5, 5, 4, 4, 3, 2, 2, 1, 1, 1, 1, 0}

[0026] This would have the advantage of reducing both the computational complexity as well as the memory size required to store the necessary tables.

[0027] Note that the top and left templates can be used together to calculate the linear model coefficients, and they can also be used alternatively in the other two LM modes, referred to as the LM_A and LM_L modes.

[0028] In LM_A mode, only the top template is used to calculate the linear model coefficients. The top template is extended to (W+H) to get more samples. In LM_L mode, only the left template is used to calculate the linear model coefficients. The left template is extended to (H+W) to get more samples.

[0029] For non-square blocks, the top template is extended to W+W and the left template is extended to H+H.

[0030] To match the chroma sample positions for 4:2:0 video sequences, two types of downsampling filters are applied to the luma samples to achieve a 2:1 downsampling ratio in both horizontal and vertical directions. The choice of downsampling filter is specified by the SPS level flag. The two downsampling filters are as follows, corresponding to “type-0” and “type-2” content, respectively:

number

number

[0031] Note that if the upper reference line is on a CTU boundary, only one luma line (a common line buffer in intra prediction) is used to create the downsampled luma sample.

[0032] This parameter computation is performed as part of the decoding process, and not simply as an encoder search operation, and as a result, no syntax is used to communicate the values ​​of α and β to the decoder.

[0033] A total of eight intra modes are allowed for chroma intra mode coding. These modes include five traditional intra modes and three cross-component linear model modes (CCLM, LM_A, and LM_L). The chroma mode coding directly depends on the intra prediction mode of the corresponding luma block. In an I slice, one chroma block may correspond to multiple luma blocks because separate block partition structures are enabled for luma and chroma components. Therefore, for the chroma DM mode, the intra prediction mode of the corresponding luma block that currently covers the center position of the chroma block is directly inherited.

[0034] 2.2.3.2.1 Corresponding correction work draft (JVET-N0271) The following specification is based on the revised working draft of JVET-M1001 and its adoption in JVET-N0271. The adopted changes from JVET-N0220 are shown in bold and underlined. [Table 1] TIFF0007612773000006.tif254164TIFF0007612773000007.tif250164TIFF0007612773000008.tif249156TIFF0007612773000009.tif239151 TIFF0007612773000010.tif255156TIFF0007612773000011.tif247151TIFF0007612773000012.tif249155TIFF0007612773000013.tif249155

[0035] 2.2.3.3 Other aspects of intra prediction VTM4 includes many intra-coding tools that are different from HEVC, for example, the following features are included in the VVC Test Model 3 on a bock tree structure: -67 Intra Mode with Wide Angle Mode Extension Block size and mode dependent 4-tap interpolation filter Position-dependent intra-prediction combination (PDPC) Cross-component linear model intra-prediction -Multi-baseline intra-prediction Intra-subpartition

[0036] 2.2.4 Inter Prediction in VVC 2.2.4.1 Combined inter and intra prediction (CIIP) In VTM4, if a CU is coded in merge mode and contains at least 64 luma samples (i.e., CU width x CU height is 64 or more), an additional flag is signaled to indicate whether a joint inter / intra prediction (CIIP) mode is applied to the current CU.

[0037] To form the CIIP prediction, the intra prediction mode is first derived from two additional syntax elements. Up to four intra prediction modes can be used: DC, planar, horizontal, and vertical. Then, the inter prediction and intra prediction signals are derived using regular intra and inter decoding processes. Finally, a weighted average of the inter and intra prediction signals is performed to obtain the CIIP prediction.

[0038] 2.2.4.2 Other Inter Prediction Aspects VTM4 includes many coding tools that are different from HEVC. For example, the following features are included in the VVC Test Model 3 on the box tree structure: Affine motion inter-prediction Sub-block based temporal motion vector prediction Adaptive motion vector resolution 8x8 block-based motion compression for temporal motion prediction High-precision (1 / 16 pel) motion vector storage and motion compensation using an 8-tap interpolation filter for the luma component and a 4-tap interpolation filter for the chroma component Triangular partition Combined intra and inter prediction Merged with MVD (MMVD) Symmetric MVD coding Bidirectional optical flow Decoder-side motion vector refinement Bi-predictive weighted average

[0039] 2.2.5 In-loop filters There are a total of three in-loop filters in VTM4. Besides the deblocking filter and SAO (the two loop filters in HEVC), an adaptive loop filter (ALF) is applied in VTM4. The filtering process order in VTM4 is deblocking filter, SAO, and then ALF.

[0040] In VTM4, the SAO and deblocking filtering processes are largely the same as in HEVC.

[0041] VTM4 adds a new process called luma mapping with chroma scaling (previously known as adaptive in-loop reshaper). This new process runs before deblocking.

[0042] 2.2.6 Luma Mapping with Chroma Scaling (LMCS, a.k.a. In-Loop Reshaping) In VTM4, a coding tool called luma mapping with chroma scaling (LMCS) is added as a new processing block before the loop filter. LMCS has two main components: 1) in-loop mapping of the luma components based on an adaptive piecewise linear model, and 2) luma-dependent chroma residual scaling is applied to the chroma components. Figure 4 shows the LMCS architecture from the decoder's perspective. The light blue shaded blocks in Figure 4 show where processing is applied in the mapped domain, and these include inverse quantization, inverse transform, luma intra prediction, and adding the luma prediction together with the luma residual. The unshaded blocks in Figure 4 show where processing is applied in the original (i.e., unmapped) domain, and these include loop filters such as deblocking, ALF, and SAO, motion compensated prediction, chroma intra prediction, adding the chroma prediction together with the chroma residual, and storage of the decoded image as a reference picture. The light yellow shaded block in Figure 4 is the new LMCS functional block, which contains the forward and inverse mapping of the luma signal as well as the luma-dependent chroma scaling process. Like most other tools in VVC, LMCS can be enabled / disabled at the sequence level using the SPS flag.

[0043] 2.2.6.1 Luma Mapping with Piecewise Linear Model The in-loop mapping of the luma component adjusts the dynamic range of the input signal by redistributing the codewords across the dynamic range to improve compression efficiency. The luma mapping utilizes a forward mapping function, FwdMap, and a corresponding inverse mapping function, InvMap. The FwdMap function is signaled using a piecewise linear model with 16 equal parts. The InvMap function does not need to be signaled and can instead be derived from the FwdMap function.

[0044] The luma mapping model is signaled at the tile group level. A presence flag is signaled first. If the luma mapping model is present in the current tile group, the corresponding piecewise linear model parameters are signaled. The piecewise linear model divides the dynamic range of the input signal into 16 equal pieces, and for each piece, its linear mapping parameters are expressed using the number of codewords assigned to that piece. Take a 10-bit input as an example. Each of the 16 pieces has 64 codewords assigned by default. The signaled number of codewords is used to calculate the scaling factor and adjust the mapping function for the piece accordingly. At the tile group level, another LMCS enable flag is signaled to indicate whether the LMCS process as shown in Figure 4 is applied to the current tile group or not.

[0045] Each ith piece of the FwdMap piecewise linear model, i=0...15, is defined by two input pivot points, InputPivot[], and two output (mapped) pivot points, MappedPivot[].

[0046] InputPivot[] and MappedPivot[] are calculated as follows (assuming 10-bit video): 1)OrgCW=64 2) For i = 0:16, InputPivot[i] = i * OrgCW 3) For i = 0:16, MappedPivot[i] is calculated as follows: MappedPivot[0] = 0; for(i=0;i<16;i++) MappedPivot[i+1]=MappedPivot[i]+SignalledCW[i] where SignalledCW[i] is the number of signalled codewords for the i-th piece.

[0047] As shown in FIG. 4, for inter-coded blocks, motion compensation prediction is performed in the mapped domain. In other words, after the motion compensation prediction block Ypred is calculated based on the reference signal in the DPB, the FwdMap function is applied to map the luma prediction block in the original domain to the mapped domain, Y'pred=FwdMap(Ypred). For intra-coded blocks, the FwdMap function is not applied because intra prediction is performed in the mapped domain. After the reconstructed block Yr is calculated, the InvMap function is applied to convert the reconstructed luma values ​​in the mapped domain back to the reconstructed luma values ​​in the original domain (Y^i=InvMap(Yr)). The InvMap function is applied to both inter-coded and intra-coded luma blocks.

[0048] The luma mapping process (forward and / or inverse mapping) can be implemented either using a look-up table (LUT) or using on-the-fly calculations. If LUTs are used, FwdMapLUT and InvMapLUT can be pre-computed and pre-stored for use at the tile group level. Then, forward and inverse mapping can be succinctly implemented as FwdMap(Ypred) = FwdMapLUT[Ypred] and InvMap(Yr) = InvMapLUT[Yr], respectively. Alternatively, on-the-fly calculations may be used. Take the forward mapping function FwdMap as an example. To estimate the piece to which a luma sample belongs, the sample value is right-shifted by 6 bits (corresponding to 16 equal parts). Then, the linear model parameters of that piece are looked up and applied on-the-fly to calculate the mapped luma value. Let i be the piece index, a1 and a2 be InputPivot[i] and InputPivot[i+1], respectively, and b1 and b2 be MappedPivot[i] and MappedPivot[i+1], respectively. The FwdMap function is evaluated as follows: FwdMap(Ypred)=((b2-b1) / (a2-a1))*(Ypred-9a1)+b1

[0049] The InvMap function can be computed on the fly in a similar manner, except that since the pieces in the mapped domain are not of equal size, a conditional check needs to be applied instead of a simple right bit shift when determining which piece a sample value belongs to.

[0050] 2.2.6.2 Luma-Dependent Chroma Residual Scaling Chroma residual scaling is designed to compensate for interactions between luma signals and corresponding chroma signals. Whether chroma residual scaling is enabled is also signaled at the tile group level. If luma mapping is enabled and dual tree partitions (also known as separate chroma trees) are not applied to the current tile group, an additional flag is signaled to indicate whether luma-dependent chroma residual scaling is enabled. If luma mapping is not used or if dual tree partitions are used in the current tile group, luma-dependent chroma residual scaling is disabled. Furthermore, luma-dependent chroma residual scaling is always disabled for chroma blocks with area less than or equal to 4.

[0051] Chroma residual scaling depends on the average value of the corresponding luma prediction block (for both intra-coded and inter-coded blocks). Let avgY' be the average of the luma prediction block. The value of CScaleinv is calculated in the following steps: 1) Based on the InvMap function, the index YIdx of the piecewise linear model to which avgY' belongs is obtained. 2) CScaleinv = cScaleInv[YIdx] where cScaleInv[] is a pre-computed 16-piece LUT. If the current block is coded as Intra, CIIP, or Intra Block Copy (IBC, a.k.a. Current Picture Reference or CPR) mode, avgY' is calculated as the average of the Intra, CIIP, or IBC predicted luma values, otherwise it is calculated as the average of the forward-mapped inter predicted luma values ​​(Y'pred in FIG. 4). Unlike luma mapping, which is performed on a sample basis. CScaleinv is a constant value for the entire chroma block. With CScaleinv, chroma residual scaling is applied as follows: Encoder side: CResScale = CRes * CScale = CRes / CScaleInv Decoder side: CRes=CResScale / CScale=CResScale*CScaleInv

[0052] 2.2.6.3 Corresponding working draft of JVET-M1001_v7 with adoption in JVET-N0220 The following specifications are based on the revised working draft of JVET-M1001 and its adoption in JVET-N0220. The adopted changes from JVET-N0220 are shown in bold and underlined. [Table 2] TIFF0007612773000015.tif255164TIFF0007612773000016.tif252164TIFF0007612773000017.tif182164

[0053] 3. Shortcomings of existing implementations The current design of LMCS / CCLM may have the following problems: 1. In the LMCS coding tool, the chroma residual scaling factor is derived by the average value of the collocated luma prediction block, which is the latency for processing of chroma samples in LMCS chroma residual scaling. a) In the single / shared tree case, the latency is caused by (a) waiting for all prediction samples of all available luma blocks, and (b) averaging all luma prediction samples obtained by (a). b) In the case of dual / separate tree, the latency is even worse because the separate block partitioning structure of luma and chroma components is enabled in I slice. Thus, one chroma block may correspond to multiple luma blocks, and one 4×4 chroma block may correspond to a 64×64 luma block. Therefore, in the worst case, the chroma residual scaling factor of the current 4×4 chroma block may need to wait until all prediction samples of the entire 64×64 luma block are available. In short, the latency problem in dual / separate tree is much more serious. 2. In CCLM coding tools, CCLM model calculation for intra-chroma prediction depends on the left and above reference samples of both luma and chroma blocks, and CCLM prediction for a chroma block depends on parallel luma reconstructed samples of the same CU, which will result in high latency in dual / separate trees. In the case of dual / separate trees, one 4x4 chroma block may correspond to a 64x64 luma block. Therefore, in the worst case, the CCLM process of the current chroma block may need to wait until the entire corresponding 64x64 luma block is reconstructed. This latency issue is similar to LMCS chroma scaling in dual / separate trees.

[0054] 4. Exemplary Techniques and Embodiments To address this issue, several methods have been proposed to remove / reduce / limit cross-component dependencies in luma-dependent chroma residual scaling, CCLM, and other coding tools that rely on information from different color components.

[0055] The detailed embodiments described below should be considered as examples to illustrate the general concept. These embodiments should not be construed in a narrow sense. Moreover, these embodiments can be combined in any manner.

[0056] Please note that although the bullets below explicitly refer to LMCS / CCLM, the method is also applicable to other coding tools that rely on information from different color components. Furthermore, the terms "luma" and "chroma" below can be replaced with "first color component" and "second color component", respectively, such as the "G component" and "B / R component" of the RGB color format.

[0057] In the following description, the definition of “collocated sample / block” is consistent with the definition of collocated sample / block in VVC Working Draft JVET-M1001. More specifically, in a 4:2:0 color format, assuming that the top-left sample of a chroma block is at position (xTbC, yTbC), the top-left sample of the collocated luma block position (xTbY, yTbY) is (xTbY, yTbY)=(xTbC<<1, yTbC<<1). As shown in FIG. 5, the top-left sample of a current chroma block is at (x=16, y=16) in the chroma picture, and the top-left sample of its collocated luma block is at (x=32, y=32) in the luma picture, regardless of the block division of the collocated luma block in the luma picture. As another example, using the same color components, assume that the position of the top left sample of the current block in the current frame and the position of the top left sample of the co-located block in the reference frame should be the same, as shown in FIG. 6, and the top left sample of the current block is (x, y) in the current frame and the top left sample of the co-located block of the current block is at the same position (x, y) in the reference frame.

[0058] In the following description, a "corresponding block" may have a different location than the current block. For example, there may be a motion shift between the current block and the corresponding block in the reference frame. As shown in FIG. 6, assuming that the current block is located at (x,y) in the current frame and has a motion vector (mvx,mvy), the corresponding block of the current block may be located at (x+mvx,y+mvy) in the reference frame. Also, in an IBC coded block, the co-located luma block (indicated by a zero vector) and the corresponding luma block (indicated by a non-zero BV) may be located at different locations in the current frame. In another example, if the partition of a luma block does not align with the partition of a chroma block (dual tree partition of an I slice), the co-located luma block of the current chroma block may belong to a larger luma block that depends on the partition size of the overlapped luma coding block that covers the top-left sample of the co-located luma block. Assuming that the bold rectangle indicates the partition of the block as shown in FIG. 5, the 64×64 luma block is first divided by BT, and then the right part of the 64×64 luma block is further divided by TT to obtain three luma blocks with sizes equal to 32×16, 32×32, and 32×16, respectively. Therefore, looking at the top-left sample (x=32, y=32) of the collocated luma block of the current chroma block, it belongs to the central 32×32 luma block of the TT partition. In this case, the corresponding luma block covering the top-left sample of the collocated luma block is called the “corresponding luma block”. Thus, in this example, the top-left sample of the corresponding luma block is located at (x=32, y=16).

[0059] Hereinafter, decoder-side motion vector derivation (DMVD) is used to represent BDOF (also known as BIO), and / or decoder-side motion vector refinement (DMVR), and / or frame rate up-conversion (FRUC), and / or other methods of refining motion vectors and / or predicted sample values ​​in the decoder. Elimination of Chroma Scaling Latency in LMCS and Model Calculation of CCLM 1. For inter-code blocks, it is proposed that the chroma residual scaling factor in LMCS mode can be derived using one or more reference samples of the current block in the reference frame. a) In one example, the reference luma samples may be directly used to derive the chroma residual scaling factor. i. Alternatively, interpolation may be applied to the reference samples first, and the interpolated samples may then be used to derive the chroma residual scaling factors. ii. Alternatively, reference samples in different reference frames can be used to derive the final reference samples used in deriving the chroma residual scaling factors. 1) In one example, the above method may be applied to bi-prediction coded blocks. iii. In one example, the intensities of the reference samples may be transformed into the reshaped domain before being used to derive the chroma residual scaling factor. iv. In one example, a linear combination of the reference samples can be used to derive the chroma residual scaling factor. 1) For example, a×S+b can be used to derive the chroma residual scaling factor, where S is the reference sample, and a and b are parameters. In one example, a and b can be derived by Localized Illuminate Compensation (LIC). b) In one example, the location of the reference luma sample in the reference frame may depend on the motion vector of the current block. In one example, the reference sample belongs to a reference luma block that is in a reference picture and has the same width and height as the current luma block. The position of the reference luma sample in the reference picture is calculated as the position of the corresponding luma sample in the current picture, and a motion vector is added. ii. In one example, the location of the reference luma sample is derived by the location of the top-left (or center, or bottom-right) sample of the current luma block and the motion vector of the current block, called the corresponding luma sample in the reference frame. 1) In one example, an integer motion vector can be used to derive a corresponding luma sample in a reference frame. In one example, a motion vector associated with a block is rounded toward or away from zero to derive an integer motion vector. 2) Alternatively, fractional motion vectors can be used to derive corresponding luma samples in a reference frame, so that an interpolation process may be required to derive the fractional reference samples. iii. Alternatively, the position of the reference luma sample is derived by the position of the top-left (or center, or bottom-right) sample of the current luma block. iv. Alternatively, multiple corresponding luma samples at predefined positions in the reference frame may be selected to calculate the chroma residual scaling factor. c) In one example, the median or average value of multiple reference luma samples can be used to derive the chroma residual scaling factor. d) In one example, a reference luma sample in a predefined reference frame may be used to derive the chroma residual scaling factor. i. In one example, the predefined reference frame may be the frame having a reference index equal to 0 in reference picture list 0. ii. Alternatively, reference indexes and / or reference picture lists of pre-defined reference frames may be signaled at sequence / picture / tile group / slice / tile / CTU row / video unit level. iii. Alternatively, reference luma samples in multiple reference frames can be derived and an average or weighted average can be used to obtain the chroma residual scaling factor. 2. It is proposed that whether and how to derive a chroma residual scaling factor from luma samples in LMCS mode may depend on whether the current block applies bi-prediction or not. a) In one example, the chroma residual scaling factors are derived separately for each prediction direction. 3. It is proposed that whether and how to derive a chroma residual scaling factor from luma samples in LMCS mode may depend on whether the current block applies sub-block based prediction or not. a) In one example, the sub-block based prediction is an affine prediction. b) In one example, the sub-block based prediction is Alternative Temporal Motion Vector Prediction (ATMVP). c) In one example, the chroma residual scaling factors are derived for each sub-block separately. d) In one example, the chroma residual scaling factor is derived for the entire block, even though it is predicted by a sub-block. i. In one example, the motion vector of one selected sub-block (e.g., the top-left sub-block) may be used to identify a reference sample for the current block, as described in bullet 1. 4. It is proposed that the luma predictor used to derive the chroma residual scaling factor can be an intermediate luma predictor instead of the final luma predictor. a) In one example, a luma prediction value before Bi-Directional Optical Flow (BDOF) (aka BIO) processing can be used to derive a chroma residual scaling factor. b) In one example, the luma prediction value before the decoder-side motion vector refinement (DMVR) process can be used to derive the chroma residual scaling factor. c) In one example, the luma prediction value before the LIC process can be used to derive the chroma residual scaling factor. d) In one example, the chroma residual scaling factor can be derived using the luma prediction value before the Prediction Refinement Optical Flow (PROF) process, as proposed in JVET-N0236. 5. The intermediate motion vector may be used to identify a reference sample. a) In one example, the reference samples can be identified using BDOF and / or DMVR and / or pre-processed motion vectors of other DMVD methods. b) In one example, as proposed in JVET-N0236, the motion vectors prior to the process of predictive refinement optical flow (PROF) can be used to identify the reference samples. 6. If the current block is coded in inter mode, the above method is applicable. 7. It is proposed that for IBC-coded blocks, one or more reference samples in a reference block of the current frame may be used to derive the chroma residual scaling factor in LMCS mode. In the case of block IBC coding, the term "motion vector" may also be called "block vector", where the reference picture is set as the current picture. a) In one example, the reference sample belongs to a reference block that is in the current picture and has the same width and height as the current block. The position of the reference sample can be calculated as the position of its corresponding sample by adding a motion vector. b) In one example, the position of the reference luma sample is derived by the position of the top-left (or center, or bottom-right) sample of the current luma block to which the motion vector is added. c) Alternatively, the position of the reference luma sample may be derived by the position of the top-left (or center, or bottom-right) sample of the current luma block to which the block vector of the current block is added. d) Alternatively, multiple corresponding luma samples at predefined positions within the reference region of the current luma block may be selected to calculate the chroma residual scaling factor. e) In one example, multiple corresponding luma samples can be calculated using a function to derive a chroma residual scaling factor. i. For example, the median or average of multiple corresponding luma samples may be calculated to derive the chroma residual scaling factor. f) In one example, the intensities of the reference samples may be transformed into the reshape domain before being used to derive the chroma residual scaling factor. i. Alternatively, the intensities of the reference samples may be transformed back to the original domain before being used to derive the chroma residual scaling factor. 8. It is proposed that one or more predicted / reconstructed samples placed at a specified position of the current luma block in the current frame can be used to derive a chroma residual scaling factor for the current chroma block in LMCS mode. a) In one example, if the current block is inter-coded, a luma prediction (or reconstructed) sample located at the center of the current luma block may be picked to derive a chroma residual scaling factor. b) In one example, the average value of the first M×N luma prediction (or reconstructed) samples may be selected to derive a chroma residual scaling factor, where M×N may be smaller than the width×height of the co-located luma block size. 9. It is proposed that all or part of the procedure used to compute the CCLM model can be used to derive the chroma residual scaling factor for the current chroma block in LMCS mode. a) In one example, reference samples placed at identified positions of adjacent luma samples of collocated luma blocks in the CCLM model parameter derivation process may be utilized to derive chroma residual scaling factors. i. In one example, these reference samples can be used directly. ii. Alternatively, downsampling may be applied to these reference samples and the downsampled reference samples may be applied. b) In one example, K of the S reference samples selected for the CCLM model calculation can be used for derivation of the chroma residual scaling factor in LMCS mode, e.g., K is 1 and S is 4. c) In one example, the mean / min / max of the reference samples of the collocated luma block in CCLM mode can be used for deriving the chroma residual scaling factor in LMCS mode. 10. The method of selecting samples for the derivation of the chroma residual scaling factor depends on the coding information of the current block. a) The coding information may include QP, coding mode, POC, intra prediction mode, motion information, etc. b) As an example, the sample selection method may be different for IBC coded blocks or non-IBC coded blocks. c) In one example, the sample selection method may differ based on reference picture information, such as the POC distance between the reference picture and the current picture. 11. It is proposed that the chroma residual scaling factor and / or model calculation of CCLM may depend on the neighboring samples of the corresponding luma block that cover the top-left sample of the co-located luma block. In the present invention, a "coding block" may refer to a video coding domain such as CU / TU / PU as specified in the HEVC specification or the VVC working draft. a) A "corresponding luma coding block" may be defined as a coding block that covers the top-left position of a collocated luma coding block. i. Figure 5 shows an example where the CTU partition of a chroma component may be different from the CTU partition of a luma component for an intra-coded chroma block in the dual-tree case. First, a "corresponding luma coding block" that covers the top-left sample of the co-located luma block of the current chroma block is searched. Then, the top-left sample of the "corresponding luma coding block" can be derived by using the block size information of the "corresponding luma coding block". The top-left sample of the "corresponding luma coding block" that covers the top-left sample of the co-located luma block is located at (x=32, y=16). b) In one example, a block size / partition / position / adjustment may be required to derive the position of the "corresponding luma coding block" that covers the top-left sample of the co-located luma coding block. i. In one example, block size and / or block partitioning and / or block coordination may be stored for each block of a particular color component, such as the luma component. ii. In one example, the "corresponding luma coding block" and the current block may always be in the same CTU or CTU row, and therefore there may be no storage of block size / partition / position / alignment in the line buffer. c) In one example, the reconstructed samples that are not in the "corresponding luma coding block" may be used to derive the chroma residual scaling factor and / or model calculations for the CCLM. i. In one example, the reconstructed samples adjacent to the "corresponding luma coding block" may be used to derive the chroma residual scaling factor and / or model calculation for the CCLM. 1) In one example, N samples located in the left adjacent column and / or the upper adjacent row of the “corresponding luma coding block” can be used to derive the model calculation of the chroma residual scaling factor and / or the CCLM, where N=1...2W+2H, W and H are the width and height of the “corresponding luma coding block”. a) Assuming that the top-left sample of the "corresponding luma coding block" is (xCb, yCb), in one example, the top-neighboring luma sample may be located at (xCb+W / 2, yCb-1) or (xCb-1, yCb-1). In another example, the left-neighboring luma sample may be located at (xCb+W-1, yCb-1). b) In one example, the adjacent sample positions may be fixed and / or may have a predefined checking order. 2) In one example, one of N neighboring samples can be selected to derive the chroma residual scaling factor and / or CCLM model calculation. Assuming N=3 and a check order of three neighboring samples (xCb-1, yCb-H-1), (xCb+W / 2, yCb-1), (xCb-1, yCb-1), the first available neighboring sample in the check list can be selected to derive the chroma residual scaling factor. 3) In one example, the median or average value of N samples located in the left adjacent column and / or upper adjacent row of the “corresponding luma coding block” can be used to derive the model calculation of the chroma residual scaling factor and / or CCLM, where N=1...2W+2H, W and H are the width and height of the “corresponding luma coding block”. d) In one example, whether to perform chroma residual scaling may depend on the "available" neighboring samples of the corresponding luma block. i. In one example, the "availability" of a neighboring sample may depend on the coding mode of the current block / sub-block and / or the coding mode of the neighboring sample. 1) In one example, for a block coded in inter mode, adjacent samples coded in intra mode, and / or IBC mode, and / or CIIP mode, and / or LIC mode may be considered “unavailable”. 2) In one example, for blocks coded in inter mode, neighboring samples that employ diffusion filters, and / or bilateral filters, and / or Hadamard transform filters may be considered "unusable". ii. In one example, the "availability" of neighboring samples may depend on the width and / or height of the current image / tile / tile group / VPDU / slice. 1) In one example, if a neighboring block is located outside the current picture, it is treated as "unusable". iii. In one example, chroma residual scaling may be inhibited if there are no "available" adjacent samples. iv. In one example, if the number of "available" neighboring samples is less than K (K>=1), then chroma residual scaling may not be allowed. v. Alternatively, unavailable adjacent samples may be filled with a default fixed value, or padding, or replacement, so that chroma residual scaling may always be applied. 1) In one example, if adjacent samples are not available, they can be padded by 1<<(bitDepth-1), where bitDepth specifies the bit depth of the luma / chroma component samples. 2) Alternatively, if the neighboring samples are not available, they can be filled by padding from surrounding samples located in the left / right / top / bottom neighbors. 3) Alternatively, if a neighboring sample is unavailable, it may be replaced by the first available neighboring sample in a predefined check order. 4) Alternatively, if no neighboring samples are available, they may be filled by predefined filtered / mapped values ​​(e.g., 1<<(bitDepth-1) filtered / mapped values, where bitDepth specifies the bit depth of the samples for the luma / chroma components). a) In one example, the filtering / mapping process can be a LUT indexing of the forward mapping of the LMCS. e) In one example, whether and how to perform chroma residual scaling may depend on the coding mode of the current block and / or the coding modes of neighboring blocks. i. "Current block" may refer to the current chroma block, or a collocated luma block, or a corresponding luma block that covers at least one sample of the collocated chroma block. "Neighboring blocks" (adjacent or non-adjacent) may refer to chroma blocks adjacent to the current chroma block, or luma blocks adjacent to the current luma block. ii. In one example, the coding mode of one luma neighboring block covers a given position, such as (-1,-1), relative to the top-left coordinate of the current block. iii. In one example, multiple neighboring block coding modes can be utilized to cover multiple positions relative to the top-left coordinate of the current block (x,-1) (e.g., x is 0...block width minus 1) and / or to cover multiple positions relative to the top-left coordinate of the current block (-1,y) (e.g., y is -1...block height minus 1). iv. In one example, if reconstruction of a neighboring block requires accessing samples of the current slice / tile as x-coded, chroma residual scaling is disabled. 1) For example, mode X may be an intra mode. 2) For example, mode X may be a CIIP mode. 3) For example, mode X may be an IBC mode. 4) In one example, if the current block is inter-coded rather than CIIP-coded, and the neighboring blocks adjacent to the corresponding luma block are coded in mode X, chroma residual scaling is disabled. v. In one example, if reconstruction of one neighboring block requires access to samples of the current slice / tile as X-coded, a default value can be used to derive the chroma residual scaling factor. 1) For example, mode X may be an intra mode. 2) For example, mode X may be a CIIP mode. 3) For example, mode X may be an IBC mode. 4) In one example, if the current block is inter-coded rather than CIIP-coded, and the neighboring blocks of the corresponding luma block are coded in mode X, a default value can be used to derive the chroma residual scaling factor. 5) In one example, the default value may depend on the bit depth of the luma / chroma samples. 6) In one example, the default value can be set to a filtered / mapped value 1<<(bitDepth-1), where bitDepth specifies the bit depth of the luma / chroma component samples. In one example, the filtering / mapping process can be a LUT indexing of the forward mapping of the LMCS. f) In one example, the filtered / mapped reconstructed samples neighboring the "corresponding luma coding block" may be used to derive the chroma residual scaling factor and / or model calculation of the CCLM. i. In one example, the filtering / mapping process may include reference smoothing filtering for intra blocks, post-filtering such as bilateral filters, Amalgamated transform based filters, forward mapping of the reshaped domain, etc. 12. It is proposed to derive the chroma residual scaling factor with respect to the number of chroma blocks (such as CU or TU) in the current slice / tile using a fixed value. a) In one example, the chroma residual scaling factors for N chroma blocks may be derived by a fixed value, where N is 1... the total number of chroma blocks in the current slice / tile group. b) In one example, the fixed value can be used to find the index of the piecewise linear model to which the value belongs. And the chroma residual scaling factor can then be calculated from the derived piecewise index. In one example, the fixed value can depend on the internal bit depth of the luma sample. c) In one example, a fixed value may be directly used to represent the chroma residual scaling factor. Restrictions on whether to apply chroma residual scaling and / or CCLM 13. It is proposed that whether chroma residual scaling or CCLM is applied depends on the partition of the corresponding luma block and / or the co-located luma block. a) In one example, enabling or disabling the tool with cross-component information may depend on the number of CUs / PUs / TUs in a collocated luma (eg, Y or G component) block. i. In one example, if the number of CUs / PUs / TUs in a collocated luma (eg, Y or G component) block exceeds a number threshold, such tools may be disabled. ii. Alternatively, enabling or disabling tools on cross-component information may depend on the depth of the partition tree. 1) In one example, if the maximum (or minimum, average, or other variation) quadtree depth of the CUs in the co-located luma block exceeds a threshold, then such tools may be disabled. 2) In one example, if the maximum (or minimum, average, or other variation) BT and / or TT depth of CUs in a collocated luma block exceeds a threshold, such tools may be disabled. iii. Alternatively or additionally, enabling or disabling a tool with cross-component information may depend on the block dimension of the chroma block. iv. Enabling or disabling tools on cross-component information may also depend on whether the collocated lumas cross multiple VPDUs / predefined region sizes. v. The thresholds in the above description may be fixed numbers or may be signaled or may depend on a standard profile / level / tier. b) In one example, if a collocated luma block of a current chroma block is divided by multiple partitions (eg, in FIG. 7), chroma residual scaling and / or CCLM may be prohibited. i. Alternatively, if the collocated luma block of the current chroma block is not split (eg, within one CU / TU / PU), chroma residual scaling and / or CCLM may be applied. c). In one example, if the co-located luma block of the current chroma block contains more than M CUs / PUs / TUs, chroma residual scaling and / or CCLM may be prohibited. i. In one example, M may be an integer greater than 1. ii. In one example, M may depend on whether it is a CCLM or a chroma residual scaling process. iii. M may be a fixed number, may be signaled, or may depend on a standard profile / level / tier. d) The above-mentioned CUs in a co-located luma block may be interpreted as all CUs in the co-located luma block, or as partial CUs in the co-located luma block, such as CUs along the boundary of the co-located luma block. e) The above-mentioned CUs in a concatenated luma block may be interpreted as sub-CUs or sub-blocks. i. For example, a sub-CU or sub-block may be used in ATMVP. ii. For example, a sub-CU or sub-block may be used in affine prediction. iii. For example, the sub-CU or sub-block may be used in Intra Sub-Partitions (ISP) mode. f) In one example, if the CU / PU / TU covering the top-left luma sample of a co-located luma block is larger than a pre-defined luma block size, chroma residual scaling and / or CCLM may be prohibited. i. An example is shown in Figure 8, where a collocated luma block is 32x32, but within a corresponding luma block of size equal to 64x64, and if the predefined luma block size is 32x64, then chroma residual scaling and / or CCLM are prohibited in this case. ii. Alternatively, if the collocation of the current chroma block is not split and the corresponding luma block covering the top-left luma sample of the collocated luma block is completely contained within a pre-defined bounding box, chroma residual scaling and / or CCLM of the current chroma block may be applied. The bounding box may be defined as a rectangle with width W and height H, denoted as W×H, as shown in FIG. 9, where the corresponding luma block has width 32 and height 64, and the bounding box has width 40 and height 70. 1) In one example, the bounding box size W×H may be defined according to the CTU width and / or height, or according to the CU width and / or height, or according to any arbitrary value. g) In one example, if a co-located luma block of a current chroma block is divided into multiple partitions, only predicted samples (or reconstructed samples) within the pre-defined partitions of the co-located luma block are used to derive the chroma residual scaling factor in LMCS mode. i. In one example, the average of all prediction samples (or reconstructed samples) in the first partition of the collocated luma block is used to derive the chroma residual scaling factor in LMCS mode. ii. Alternatively, the top-left predicted sample (or reconstructed sample) in the first partition of the collocated luma block is used to derive the chroma residual scaling factor in LMCS mode. iii. Alternatively, the central predicted sample (or reconstructed sample) in the first partition of the collocated luma block is used to derive the chroma residual scaling factor in LMCS mode. h) It is proposed that whether and how to apply cross-component tools such as CCLM or LMCS depends on the coding mode of one or more luma CUs that cover at least one sample of the co-located luma block. i. For example, if one or more luma CUs covering at least one sample of a co-located luma block are coded in affine mode, the cross-component tool is disabled. ii. For example, if one or more luma CUs covering at least one sample of a co-located luma block are bi-predictively coded, the cross-component tool is disabled. iii. For example, if one or more luma CUs covering at least one sample of a co-located luma block are coded with BDOF, the cross-component tool is disabled. iv. For example, if one or more luma CUs covering at least one sample of a co-located luma block are DMVR coded, the cross-component tool is disabled. v. For example, if one or more luma CUs covering at least one sample of a co-located luma block are coded in the matrix affine prediction mode proposed in JVET-N0217, the cross-component tool is disabled. vi. For example, if one or more luma CUs covering at least one sample of a collocated luma block are coded in inter mode, the cross-component tool is disabled. vii. For example, if one or more luma CUs covering at least one sample of a collocated luma block are coded in ISP mode, the cross-component tool is disabled. viii. In one example, "one or more luma CUs covering at least one sample of a collocated luma block" may refer to the corresponding luma block. i) If CCLM / LMCS is prohibited, signalling the indication to use CCLM / LMCS may be omitted. j) In this disclosure, CCLM may refer to any variant mode of CCLM, including LM mode, LM-T mode, and LM-L mode. 14. It is suggested whether and how to apply cross-component tools such as CCLM and LMCS to some of the chroma blocks. a) One example is whether and how to apply cross-component tools such as CCLM or LMCS at the chroma sub-block level. i. In one example, a chroma sub-block is defined as a 2x2 or 4x4 block within a chroma CU. ii. In one example, for a chroma sub-block, CCLM may be applied if the corresponding luma coding block of the current chroma CU covers all samples of the corresponding block of the sub-block. iii. In one example, for a chroma sub-block, if all samples of the corresponding block are not covered by the corresponding luma coded block of the current chroma CU, CCLM is not applied. iv. In one example, CCLM or LMCS parameters are derived for each chroma sub-block, treating the sub-block as a chroma CU. v. In one example, when CCLM or LMCS is applied to a chroma sub-block, samples of the collocated block may be used. Applicability of Chroma Residual Scaling in LMCS Mode 15. It is proposed that the ability to apply luma-dependent chroma residual scaling may be signaled at other syntax levels in addition to the tile group header as specified in JVET-M1001. a) For example, chroma_residual_scale_flag may be signaled at the sequence level (e.g., SPS), picture level (e.g., PPS or picture header), slice level (e.g., slice header), tile level, CTU row level, CTU level, or CU level. chroma_residual_scale_flag equal to 1 specifies that chroma residual scaling is enabled for CUs at or below the signaled syntax level. chroma_residual_scale_flag equal to 0 specifies that chroma residual scaling is not enabled for CUs at or below the signaled syntax level. If chroma_residual_scale_flag is not present, it is inferred to be equal to 0. b) In one example, chroma residual scaling is constrained at the partition node level: chroma_residual_scale_flag is not signaled for CUs covered by the partition node and may be inferred to be 0. In one example, the partition node may be a CTU (CTU is treated as the root node of a quadtree partition). c) In one example, if chroma residual scaling is constrained for chroma block sizes of 32x32 or smaller, chroma_residual_scale_flag may not be signaled and may be assumed to be 0 for chroma block sizes of 32x32 or smaller. Applicability of CCLM mode 16. It is proposed that the applicability of CCLM mode may be signalled at other syntax levels in addition to the sps level specified in JVET-M1001. a) For example, it may be signaled at the picture level (e.g., PPS or picture header), slice level (e.g., slice header), tile group level (e.g., tile group header), tile level, CTU row level, CTU level, or CU level. b) In one example, if CCLM is not applicable, cclm_flag is not signaled and may be assumed to be 0. i. In one example, if chroma residual scaling is constrained for chroma block sizes of 8x8 and smaller, cclm_flag may not be signaled and may be assumed to be 0 for chroma block sizes of 8x8 and smaller. Unifying the derivation of chroma residual scaling factors for intra and inter modes 17. A chroma residual scaling factor may be derived after encoding / decoding a luma block, stored, and used for the next coding block. a) In one example, a given predicted sample, and / or an intermediate predicted sample, and / or a reconstructed sample, and / or a reconstructed sample before loop filtering (e.g., before being processed by a deblocking filter, and / or a SAO filter, and / or a bilateral filter, and / or a Haas transform filter, and / or an ALF filter) within a luma block may be used for deriving a chroma residual scaling factor. i. For example, fractional samples in the bottom row and / or right column of the luma block may be used for the derivation of the chroma residual scaling factor. b) In the case of a single tree, when encoding a block coded in intra mode, and / or IBC mode, and / or inter mode, the derived chroma residual scaling factors of neighboring blocks may be used to derive the scaling factor of the current block. i. In one example, a given neighboring block may be checked in order, and the first available chroma residual scaling factor may be used for the current block. ii. In one example, a given neighboring block may be checked in turn, and a scaling factor may be derived based on the first K available neighboring chroma residual scaling factors. iii. In one example, for a block coded in inter mode and / or CIIP mode, if the neighboring block is coded in intra mode and / or IBC mode and / or CIIP mode, the chroma residual scaling factor of the neighboring block may be considered “unavailable.” iv. In one example, neighboring blocks may be checked in the order: left (or top-left) -> top (or top-right). 1) Alternatively, the adjacent blocks can be checked in the order top (or top right) -> left (or top left). c) In the case of separate trees, when encoding a chroma block, the corresponding luma block may be first identified. Then, the derived chroma residual scaling factors of the neighboring blocks (e.g., the corresponding luma blocks) may be used to derive the scaling factor of the current block. i. In one example, a given neighboring block may be checked in order and the first available chroma residual scaling factor may be used for the current block. ii. In one example, a given neighboring block may be checked in turn, and a scaling factor may be derived based on the first K available neighboring chroma residual scaling factors. d) Adjacent blocks may be checked in a predefined order. i. In one example, the neighboring blocks may be checked in the order: left (or top-left) -> right (or top-right). ii. In one example, the neighboring blocks may be checked in the order Top (or Top Right) -> Left (or Top Left). iii. In one example, the neighboring blocks may be checked in the following order: bottom-left->left->top-right->top->top-left. iv. In one example, neighboring blocks may be checked in the following order: left->top->top-right->bottom-left->top-left. e) In one example, whether to apply chroma residual scaling may depend on the "availability" of neighboring blocks. i. In one example, if there are no "available" neighboring blocks, chroma residual scaling may be disabled. ii. In one example, chroma residual scaling may be prohibited if the number of "available" neighboring blocks is less than K (K>=1). iii. Alternatively, if there are no "available" neighboring blocks, the chroma residual scaling factor may be derived by a default value. 1) In one example, a default value of 1<<(BitDepth-1) may be used to derive the chroma residual scaling factor. f) In one example, the chroma residual scaling factor of the current chroma block may be stored and used for the next coding block. g) In one example, the storage of chroma residual scaling factors may be removed from the line buffer. In one example, if a current block and an accessed neighboring (near or near) block are in different regions, then the chroma residual scaling factor may be considered "unavailable" and may not be used in deriving the chroma residual scaling factor of the current block. 1) A region can be a slice, a tile, a group of tiles, a CTU row, or a CTU. 2) Alternatively, the chroma residual scaling factor may be considered as a default value in such a case. 3) Alternatively, chroma residual scaling cannot be applied in such cases. h) In one example, the chroma residual scaling factors of the current chroma block may be updated on the fly and stored in a history table for scaling factor derivation of the next block. i. The history table may be updated in a first-in first-out (FIFO) manner. ii. After decoding / encoding a chroma block, a chroma residual scaling factor may be derived (eg, according to the luma value) and stored in a FIFO history table. iii. In one example, the FIFO history table may contain at most one entry, in which case the derived chroma residual scaling factor of the most recently decoded block is used for the current block. iv. In one example, the history table is refreshed before encoding / decoding an image, and / or a slice, and / or a tile group, and / or a tile, and / or a CTU row, and / or a CTU. 1) In one example, a default chroma residual scaling factor may be placed into the history table when the history table is refreshed. 2) In one example, when a FIFO history table is refreshed, the history table is set to empty.

[0060] 5. Embodiments 5.1 Example 1 The following embodiments are for the method in item 11 according to exemplary embodiments in section 4 of this document. Newly added parts are highlighted in bold, underlined, and italics, and parts deleted from the VVC Working Draft are highlighted in capital letters. The modifications are based on the latest VVC Working Draft (JVET-M1007-v7) and new adoptions in JVET-N220-v3. [Table 3] TIFF0007612773000019.tif255164TIFF0007612773000020.tif142163

[0061] 5.2 Example 2 The following embodiments are for the method in item 11 according to exemplary embodiments in section 4 of this document. Newly added parts are highlighted in bold, underlined, and italics, and parts deleted from the VVC Working Draft are highlighted in capital letters. The modifications are based on the latest VVC Working Draft (JVET-M1007-v7) and new adoptions in JVET-N220-v3. The differences between Example 2 and Example 1 are as follows: - To derive the chroma residual scaling factor, multiple adjacent luma samples are checked. - If adjacent luminator samples are not available or if the adjacent luma was coded in INTRA / CIIP / IBC mode but is currently coded in INTER mode, Example 2 uses default values ​​for the derivation of the chroma residual scaling factor. [Table 4] TIFF0007612773000022.tif251164TIFF0007612773000023.tif187163

[0062] 6. Examples of the Disclosed Technology FIG. 10 is a block diagram of a video processing device 1000. The device 1000 may be used to implement one or more methods described herein. The device 1000 may be embodied in a smartphone, a tablet, a computer, an Internet of Things (IoT) receiver, etc. The device 1000 may include one or more processors 1002, one or more memories 1004, and video processing hardware 1006. The processor 1002 may be configured to implement one or more methods described in this document (including, but not limited to, methods 800 and 900). The memory 1004 may be used to store data and codes used to implement the methods and techniques described herein. The video processing hardware 1006 may be used to implement some techniques described in this document in a hardware circuit.

[0063] In some embodiments, the video encoding method may be implemented using an apparatus implemented on a hardware platform as described with respect to FIG.

[0064] 11 shows a flowchart of one example method 1100 for linear model derivation for cross-component prediction in accordance with the disclosed techniques. The method 1100 includes, at step 1110, performing a conversion between a current video block and a bitstream representation of the current video block, where during the conversion, a second set of color component values ​​of the current video block are derived from a first set of color component values ​​included in one or more reference frames, the first set of color component values ​​being usable in a linear model of the video encoding step.

[0065] Some embodiments may be described using the following clause-based format:

[0066] 1. A method for video processing, comprising:

[0067] performing a conversion between a current video block and a bitstream representation of the current video block, wherein during the conversion a second set of color component values ​​of the current video block are derived from a first set of color component values ​​contained in one or more reference frames, wherein the first set of color component values ​​are usable in a linear model of the video encoding step.

[0068] 2. The method of claim 1, wherein the first set of color component values ​​are interpolated prior to use in the linear model of the video encoding step.

[0069] 3. The method of claim 1 or 2, wherein a linear combination of the first set of color component values ​​is usable as parameters of the linear model.

[0070] 4. The method of claim 1, wherein a location of the first set of color component values ​​included in the one or more reference frames is selected based at least in part on motion information of the current video block.

[0071] 5. The method of claim 4, wherein the positions of luma component values ​​in the one or more reference frames are calculated from positions of corresponding luma component values ​​in the current video block and motion information of the current video block.

[0072] 6. The method of claim 5, wherein the location of the corresponding luma component value is a top-left sample, a center sample, or a bottom-right sample within the current video block.

[0073] 7. The method of claim 6, wherein the motion information of the current video block corresponds to an integer motion vector or a fractional motion vector.

[0074] 8. The method of claim 7, wherein the motion fractional vector is derived using fractional luma component values ​​in the one or more reference frames.

[0075] 9. The method of claim 7, wherein the integer motion vector is derived by rounding towards or away from zero.

[0076] 10. The method according to clause 1, wherein the location of the first set of color component values ​​included in the one or more reference frames is a predefined location.

[0077] 11. The method of any one of clauses 1 to 10, wherein a median or average of the first set of color component values ​​is used to derive a second set of color component values ​​for the current video block.

[0078] 12. The method of any one of clauses 1 to 11, wherein the one or more reference frames are predefined reference frames.

[0079] 13. The method according to clause 12, wherein the predefined reference frame comprises a frame having a reference index in a reference picture list.

[0080] 14. The method according to clause 13, wherein the reference index is zero and the reference picture list is zero.

[0081] 15. The method of clause 13, wherein the reference index and / or the reference picture list is signaled in a bitstream representation associated with one or more of a sequence, a picture, a tile, a group, a slice, a tile, a coding tree unit, or a video block.

[0082] 16. The method of clause 1, wherein the second set of color component values ​​for the current video block are derived from an arithmetic average or a weighted average of the first set of color component values ​​included in one or more reference frames.

[0083] 17. The method of claim 1, wherein the second set of color component values ​​for the current video block are selectively derived from the first set of color component values ​​included in the one or more reference frames based on whether the current video block is a bi-predictive coded block.

[0084] 18. The method of clause 17, wherein the second set of color component values ​​for the current video block are derived separately for each prediction direction of the first set of color component values.

[0085] 19. The method of claim 1, wherein the second set of color component values ​​of the current video block are selectively derived from the first set of color component values ​​included in the one or more reference frames based on whether the current video block is associated with sub-block based prediction.

[0086] 20. The method of claim 1, wherein the sub-block based prediction corresponds to affine prediction or alternative temporal motion vector prediction (ATMVP).

[0087] 21. The method of claim 19 or 20, wherein the second set of color component values ​​for the current video block is derived for each sub-block.

[0088] 22. The method of any of clauses 19-21, wherein the second set of color component values ​​for a current video block are derived for the entire current video block, regardless of the sub-block based prediction.

[0089] 23. The method of any of clauses 19 to 22, wherein the first set of color component values ​​included in one or more reference frames are selected based at least in part on motion vectors of sub-blocks of the current video block.

[0090] 24. The method of any one of clauses 1 to 23, wherein the first set of color component values ​​included in one or more reference frames are intermediate color component values.

[0091] 25. The method of any one of clauses 1 to 24, wherein the video encoding step precedes another video encoding step.

[0092] 26. The method of clause 1, wherein the first set of color component values ​​included in one or more reference frames are selected based at least in part on an intermediate motion vector of the current video block or a sub-block of the current video block, the intermediate motion vector being calculated prior to the further video encoding step.

[0093] 27. The method of any one of clauses 24 to 26, wherein the further video encoding step includes one or more of a bidirectional optical flow (BDOF) step, a decoder-side motion vector refinement (DMVR) step, and a prediction refinement optical flow (PROF) step.

[0094] 28. The method of any one of clauses 1 to 27, wherein the first set of color component values ​​included in one or more reference frames corresponds to M×N luma component values ​​associated with a corresponding luma block.

[0095] 29. The method of clause 28, wherein the corresponding luma block is a collocated luma block of the current video block.

[0096] 30. The method of clause 28, wherein the product of M and N is less than the product of the block width and block height of a co-located luma block of the current video block.

[0097] 31. The method of any one of clauses 27 to 30, wherein the first set of color component values ​​included in one or more reference frames correspond to at least a portion of reference samples identified at adjacent luma sample positions of a co-located luma block.

[0098] 32. The method of any of clauses 1 to 31, wherein the first set of color component values ​​is downsampled before use in the linear model of the video encoding step.

[0099] 33. The method of claim 1, wherein the second set of color component values ​​for the current video block is selected based at least in part on one or more of a quantization parameter, a coding mode, or a picture order count (POC).

[0100] 34. The method according to clause 31, wherein the position of the adjacent luma sample is such that a top-left sample of a collocated luma block is covered.

[0101] 35. The method of clause 28, wherein the first set of color component values ​​included in one or more reference frames corresponds to at least a portion of reference samples identified at locations outside the corresponding luma blocks.

[0102] 36. The method of clause 28, wherein the second set of color component values ​​for the current video block are selectively derived from the first set of color component values ​​included in the one or more reference frames based on availability of neighboring samples of the corresponding luma block.

[0103] 37. As set forth in clause 28, the availability of the neighboring samples of the corresponding luma block is based on one or more of: a use of a coding mode of the current video block; a use of a coding mode of the neighboring samples of the corresponding luma block; a use of a coding mode of the corresponding luma block; a use of a coding mode of one or more neighboring video blocks; a use of a type of filter associated with the neighboring samples of the corresponding luma block; or a position of the neighboring samples of the corresponding luma block with respect to the current video block or a sub-block thereof.

[0104] 38. The method according to clause 28 further comprises:

[0105] Responding to unavailability of adjacent samples of the corresponding luma block, replacing, filling or padding unavailable samples with other samples.

[0106] 39. The method according to clause 28 further comprises:

[0107] Applying a smoothing filter to samples adjacent to the corresponding luma block.

[0108] 40. A method for video processing, comprising:

[0109] performing a conversion between a current video block and a bitstream representation of the current video block, wherein during the conversion a second set of color component values ​​of the current video block are derived from a first set of color component values ​​contained in one or more reference frames, where the first set of color component values ​​are usable in a linear model of the video encoding step; and

[0110] In response to determining that the first set of color component values ​​included in one or more reference frames is a co-located luma block of the current video block, selectively enabling or disabling derivation of a second set of color component values ​​for the current video block based on one or more conditions related to the co-located luma block of the current video block.

[0111] 41. The method of clause 40, wherein the one or more conditions related to the co-located luma block of the current video block include a partition size of the co-located luma block, a number of coding units of the co-located luma block achieving a threshold quantity, a top-left luma sample of the co-located luma block achieving a threshold size, a partition tree depth of the co-located luma block, a corresponding luma block covering the top-left luma sample of the co-located luma block, a dimension of the co-located luma block or the current video block, or a corresponding luma block covering the top-left luma sample of the co-located luma block and additionally contained within a bounding box of a predefined size.

[0112] 42. The method of clause 40, wherein information indicating selectively enabling or disabling the derivation is included in the bitstream representation.

[0113] 43. The method according to clause 28, wherein the availability of adjacent samples of the corresponding luma block involves checking the adjacent samples according to a predefined order.

[0114] 44. The method of clause 41, wherein the co-located luma block and the current video block are associated with the same coding tree unit or the same row of the coding tree unit.

[0115] 45. A method for video processing, comprising:

[0116] performing a conversion between a current video block and a bitstream representation of the current video block, wherein during the conversion a second set of color component values ​​of the current video block are derived from a first set of color component values ​​contained in one or more reference frames, where the first set of color component values ​​are usable in a linear model of the video encoding step; and

[0117] Selectively enabling and disabling derivation of a second set of color component values ​​for the current video block in response to determining that one or more properties of the current video block or a neighboring video block of the current video block are satisfied.

[0118] 46. ​​The method of clause 45, wherein the one or more properties of the current video block or the neighboring video blocks of the current video block correspond to neighboring luma blocks covering a spatial location relative to the spatial location of the current video block.

[0119] 47. The method according to clause 45, wherein one or more properties of the current video block or the neighboring video blocks of the current video block correspond to a spatial position of the neighboring video blocks of the current video block relative to a spatial position of the current video block.

[0120] 48. Furthermore, the method described in clause 45 includes:

[0121] Disabling derivation of the second set of color component values ​​for the current video block in response to determining that the reconstruction of the neighboring video block is based, at least in part, on an encoding mode of the current video block.

[0122] 49 Furthermore, the method described in clause 45 includes:

[0123] A step of disabling derivation of the second set of color component values ​​for the current video block in response to the current video block being an inter-coded block and not a joint inter and intra predicted coded block, and an adjacent block to the corresponding luma block of the current video block being an intra-coded block, a joint inter and intra predicted (CIIP) block, or an intra block copy (IBC) coded block.

[0124] 50. The method described in clause 45 further includes:

[0125] In response to the current video block being an inter-coded block and not a joint inter- and intra-prediction coded block, and the block adjacent to the corresponding luma block of the current video block being an intra-coded block, a joint inter- and intra-prediction (CIIP) block, or an intra block copy (IBC) coded block, enabling derivation of a second set of color component values ​​for the current video block, where the first set of color component values ​​are fixed values.

[0126] 51. The method of clause 45, wherein the first set of color component values ​​are fixed values.

[0127] 52. The method of claim 51, wherein the fixed values ​​correspond to piecewise indices of the linear model of the video encoding step.

[0128] 53. The method of any of clauses 1-52, wherein the neighboring samples may be adjacent or non-adjacent to the current video block.

[0129] 54. The method of any of clauses 1 to 52, wherein the neighboring samples may be associated with chroma blocks adjacent to the current video block or chroma blocks adjacent to the current video block.

[0130] 55. The method of any one of clauses 1 to 54, wherein the current video block corresponds to a chroma block, a collocated luma block, or a corresponding luma block covering a top-left luma sample of a collocated chroma block.

[0131] 56. The method of any of clauses 1 to 54, wherein the second set of color component values ​​for the current video block is stored for use in conjunction with one or more other video blocks.

[0132] 57. The method according to any one of clauses 1 to 56, wherein the linear model corresponds to a cross-component linear model (CCLM) and the video encoding step corresponds to a luma mapping with chroma scaling (LMCS) mode.

[0133] 58. The method of any one of clauses 1 to 57, wherein the current video block is an inter-coded block, a bi-predictively coded block, a joint inter- and intra-predicted (CIIP) block, or an intra block copy (IBC) coded block.

[0134] 59. The method of any one of clauses 1 to 58, wherein the second set of color component values ​​for the current video block is saved for use in association with other video blocks in a bitstream representation.

[0135] 60. The method of clause 59, wherein the second set of color component values ​​of the current video block is stored in a line buffer for selective availability or non-availability by adjacent video blocks included in the other video blocks, where the current video block and the adjacent video blocks are associated with different slices, tiles, groups of tiles, coding tree units, or rows of coding tree units.

[0136] 61. The method of clause 60, wherein the second set of color component values ​​for the current video block are fixed values.

[0137] 62. The method of clause 60, wherein the second set of color component values ​​for the current video block is prevented from being derived.

[0138] 63. The method of clause 59, wherein derivation of the second set of color component values ​​for the current video block is prevented.

[0139] 64. The method of clause 59, wherein the second set of color component values ​​of the current video block are stored in a table for selective availability or non-availability by neighboring video blocks included in the other video block.

[0140] 65. The method of clause 64, wherein the second set of color component values ​​for the current video block are dynamically updated.

[0141] 66. The method of clause 65, wherein the second set of color component values ​​of the current video block are the same as a previous video block in the other video block.

[0142] 67. The method of clause 64, wherein the second set of color component values ​​for the current video block are dynamically updated in a first-in, first-out (FIFO) manner.

[0143] 68. The method of any of clauses 1 to 67, wherein the first set of color component values ​​correspond to luma sample values ​​and the second set of color component values ​​correspond to chroma scaling factors.

[0144] 69. An apparatus in a video system including a processor and a non-transitory memory having instructions, which when executed by the processor cause the processor to perform the method of any of clauses 1 to 68.

[0145] 70. A computer program product stored on a non-transitory computer readable medium, the computer program product comprising program code for carrying out a method according to any one of clauses 1 to 68.

[0146] FIG. 12 is a block diagram illustrating an example video processing system 1200 in which various techniques disclosed herein may be implemented. Various implementations may include some or all of the components of system 1200. System 1200 may include an input 1202 for receiving video content. The video content may be received in raw or uncompressed format, e.g., 8 or 10 bit multi-component pixel values, or may be received in a compressed or encoded format. Input 1202 may represent a network interface, a peripheral bus interface, or a storage interface. Examples of network interfaces include wired interfaces such as Ethernet, passive optical network (PON), and wireless interfaces such as Wi-Fi or cellular interfaces.

[0147] The system 1200 may include an encoding component 1204 that may implement various encoding or encoding methods described in this document. The encoding component 1204 may reduce the average bit rate of the video from the input 1202 to the output of the encoding component 1204, generating an encoded representation of the video. Thus, encoding techniques are sometimes referred to as video compression or video transcoding techniques. The output of the encoding component 1204 may be stored or transmitted via a connected communication, as represented by component 1206. The stored or communicated bitstream (or coded) representation of the video received at the input 1202 may be used by component 1208 to generate pixel values ​​or displayable video that is sent to the display interface 1210. The process of generating user-viewable video from the bitstream representation is sometimes referred to as video decompression. Furthermore, although certain video processing operations are referred to as “encoding” operations or tools, it will be understood that the encoding tools or operations are used in an encoder and that a corresponding decoding tool or operation, which reverses the result of the encoding, is performed in a decoder.

[0148] Examples of peripheral bus interfaces or display interfaces may include Universal Serial Bus (USB) or High Definition Multimedia Interface (HDMI), or DisplayPort, etc. Examples of storage interfaces may include SATA (serial advanced technology attachment), PCI, IDE interfaces, etc. The techniques described herein may be embodied in a variety of electronic devices, such as mobile phones, laptops, smartphones, or other devices capable of performing digital data processing and / or video display.

[0149] 13 shows a flowchart of an example method for visual media processing. The steps of this flowchart are described in relation to Example 11b in Section 4 of this document. In step 1302, the process calculates a cross-component linear model and / or a chroma residual scaling factor during conversion between a current video block and a bitstream representation of the current video block based, at least in part, on neighboring samples of a corresponding luma block that covers a top-left sample of a co-located luma block associated with the current video block, where one or more features of the current video block are used to identify the corresponding luma block.

[0150] 14 shows a flowchart of an exemplary method for visual media processing. The steps of this flowchart are described in relation to Example 11e in Section 4 of this document. At step 1402, the process uses rules to make a decision to selectively enable or disable chroma residual scaling on color components of the visual media data of a current video block, where the rules are based on coding mode information of the current video block and / or coding mode information of one or more neighboring video blocks. At step 1404, the process performs a conversion between the current video block and a bitstream representation based on the decision.

[0151] 15 shows a flowchart of an example method for visual media processing. The steps of this flowchart are described in conjunction with Example 12 in Section 4 of this document. At step 1502, the process uses a single chroma residual scaling factor for at least one chroma block associated with a video block in a slice or tile group associated with a current video block of the visual media data. At step 1504, the process performs a conversion between the current video block and a bitstream representation of the current video block.

[0152] FIG. 16 shows a flowchart of an example method for visual media processing. The steps of this flowchart are described in conjunction with Example 17f in Section 4 of this document. At step 1602, the process derives a chroma residual scaling factor during conversion between a current video block of the visual media data and a bitstream representation of the current video block. At step 1604, the process stores the chroma residual scaling factor for use with other video blocks of the visual media data. At step 1606, the process applies the chroma residual factor to convert the current video block and the other video blocks to the bitstream representation.

[0153] FIG. 17 shows a flowchart of an exemplary method for visual media processing. The steps of this flowchart are described in connection with Example 17g in Section 4 of this document. In step 1702, during conversion between a current video block of visual media data and a bitstream representation of the visual media data, the process calculates a chroma residual factor for the current video block. In step 1704, the process stores the chroma residual scaling factor in a buffer for use with a second video block of the visual media data. In step 1706, the process removes the chroma residual scaling factor from the buffer following use.

[0154] Some embodiments described in this document are now presented in the following clause-based format.

[0155] A1. A method for video processing, comprising:

[0156] During conversion between a current video block of the visual media data and a bitstream representation of the current video block, computing a cross-component linear model (CCLM) and / or a chroma residual scaling (CRS) factor for the current video block based, at least in part, on neighboring samples of a corresponding luma block that cover a top-left sample of a co-located luma block associated with the current video block, where one or more features of the current video block are used to identify the corresponding luma block.

[0157] A2. The method of clause A1, wherein the one or more characteristics of the current video block include a size, a partition type, a position, or a coordination.

[0158] A3. The method of any one of clauses A1 to A2, wherein the one or more characteristics of the current video block are associated with color components of the current video block.

[0159] A4. The method of clause A3, wherein one or more features of the current video block are stored in a buffer for subsequent use.

[0160] A5. The method of any of clauses A1-A3, wherein the current video block and the corresponding luma block are located in the same coding tree unit (CTU) or in the same coding tree unit (CTU) row.

[0161] A6. The method of clause A5, wherein one or more features of the current video block are not preserved if the current video block and the corresponding luma block are located in the same coding tree unit (CTU) or the same coding tree unit (CTU) row.

[0162] A7. The method according to clause A1, wherein the neighboring samples of the corresponding luma block are available when one or more conditions are met, otherwise the neighboring samples are unavailable.

[0163] A8. The method of clause A7, wherein the one or more conditions include use of a coding mode of the current video block, use of a coding mode of a neighboring sample of the corresponding luma block, use of a type of filter associated with the neighboring sample of the corresponding luma block, a position of the neighboring sample of the corresponding luma block with respect to the current video block or a sub-block thereof, a width of the current picture / subpicture / tile / tile group / VPDU / slice, and / or a height of a current picture / subpicture / tile / tile group / PDU / slice / coding tree unit (CTU) row.

[0164] A9. The method according to clause A7 or A8, wherein if the adjacent sample is unavailable, the adjacent sample is replaced by the first available adjacent sample.

[0165] A10. The method of claim A9, wherein the first available adjacent sample is identified according to a check order.

[0166] A11. The method according to clause A10, wherein the checking order is predefined.

[0167] A12. The method of clause A10, wherein the checking order is signaled in a bitstream representation.

[0168] A13. The method of any one of clauses A8 to A9, wherein if adjacent samples are unavailable, the adjacent samples are filled with predetermined or mapped values.

[0169] A14. The method of claim A13, wherein the predetermined or mapped value is expressed as 1<<(bitDepth-1), where bitDepth indicates a bit depth of samples in the collocated luma block.

[0170] A15. The method of clause A13, wherein the predetermined or mapped values ​​are based on a look-up table (LUT).

[0171] B1. A method for visual media processing, comprising:

[0172] using rules to determine whether to selectively enable or disable chroma residual scaling (CRS) for color components associated with a current video block of the visual media data, where the rules are based on coding mode information of the current video block and / or coding mode information of one or more neighboring video blocks; and

[0173] performing a conversion between the current video block and a bitstream representation based on the determination.

[0174] B2. The method of clause B1, wherein the current video block is a collocated video block.

[0175] B3. The method of clause B1, wherein the current video block is a current chroma block.

[0176] B4. The method of clause B1, wherein the current video block is a corresponding luma block that covers at least one sample of the co-located chroma block.

[0177] B5. The method of any of clauses B1-B4, wherein the one or more adjacent video blocks are adjacent video blocks.

[0178] B6. The method of any of clauses B1-B4, wherein one or more adjacent video blocks are non-adjacent video blocks.

[0179] B7. The method of any of clauses B1-B6, wherein the one or more neighboring video blocks are neighboring blocks that cover multiple samples with respect to the current video block.

[0180] B8. The method of any of clauses B1 to B6, wherein the rule specifies that the CRS is disabled if reconstruction of a neighboring video block uses samples of a slice / tile group associated with the current video block.

[0181] B9. The method of clause B8, wherein the rule specifies that the CRS is disabled if the coding mode information of the neighboring video block is one of an intra mode, a combined inter and intra prediction mode (CIIP), or an intra block copy (IBC) mode.

[0182] B10. The method of any one of clauses B8 and B9, wherein a default value for the chroma residual factor is used to apply the CRS.

[0183] B11. The method of clause B10, wherein a default value is expressed as 1<<(bitDepth-1), where bitDepth indicates a bit depth of luma samples or chroma samples in the current video block.

[0184] B12. The method of clause B10, wherein the default value is based on a look-up table (LUT).

[0185] B13. The method according to clause B10, wherein the default value is predefined.

[0186] C1. A method of visual media processing, including:

[0187] using a single chroma residual scaling factor for at least one chroma block associated with a video block in a slice or a group of tiles associated with a current video block of the visual media data; and

[0188] performing a conversion between the current video block and a bitstream representation of the current video block.

[0189] C2. The method of clause C1, wherein the single chroma residual scaling factor for at least one chroma block is a fixed value.

[0190] C3. The method of any one of clauses C1 to C2, wherein the single chroma residual factor is based on an index of a linear model used in deriving the chroma residual factor.

[0191] C4. The method of clause C3, wherein the linear model is piecewise linear.

[0192] C5. The method of clause C1, wherein the single chroma residual scaling factor for at least one chroma block is predefined.

[0193] C6. The method of clause C1, wherein the single chroma residual scaling factor for at least one chroma block is based on a bit depth of the luma samples or chroma samples in the current video block.

[0194] C7. The method of clause C3, wherein an index for the linear model is derived based on a bit depth of the luma samples or chroma samples in the current video block.

[0195] D1. A method of visual media processing, including:

[0196] Deriving a chroma residual scaling factor during conversion between a current video block of visual media data and a bitstream representation of the current video block.

[0197] storing the chroma residual scaling factor for use with other video blocks of the visual media data; and

[0198] applying the chroma residual factors to convert the current video block and other video blocks into the bitstream representation.

[0199] D2. The method of clause D1, wherein the chroma residual scaling factor is stored in a line buffer.

[0200] D3. A method of visual media processing, including:

[0201] A step during conversion between a current video block of visual media data and a bitstream representation of said visual media data.

[0202] Calculating a chroma residual factor of the current video block.

[0203] Storing the chroma residual factors in a buffer for use with a second video block of the visual media data; and

[0204] Subsequent to use, removing the chroma residual factors from the buffer.

[0205] D4. The method of clause D3, wherein when the current video block and the second video block in the visual media data belong to different video regions, a chroma residual scaling factor of the second video block is determined to be unavailable for use in the current video block.

[0206] D5. The method of clause D4, wherein the video region includes one of a slice, a tile, a group of tiles, a virtual pipeline data unit (VPDU), a coding tree unit (CTU), or a CTU row.

[0207] D6. The method of clause D4, wherein the second video block is a neighboring video block of the current video block.

[0208] D7. The method of clause D6, wherein the neighboring video block is adjacent to the current video block.

[0209] D8. The method of clause D6, wherein the neighboring video block is non-adjacent to the current video block.

[0210] D9. The method of any of clauses D1-D8, wherein the chroma residual scaling factor is dynamically updated during the transformation.

[0211] D10. The method of clause D9, wherein the chroma residual scaling factors are stored in a table, and wherein dynamically updating the chroma residual scaling factors stored in the table follows a first-in-first-out (FIFO) order.

[0212] D11. The method of clause D10, wherein the chroma residual scaling factor is stored in the table after decoding / encoding a chroma block.

[0213] D12. The method of claim D10, wherein a table stores entries of the chroma residual scaling factors at any instant in time.

[0214] D13. The method of clause D10, wherein the chroma residual scaling factors are stored in the table prior to decoding / encoding an image, slice, tile, group of tiles, virtual pipeline data unit (VPDU), CTU, or row of CTUs.

[0215] D14. The method of clause D13, wherein storing a default chroma residual scaling factor in the table results in refreshing the table.

[0216] D15. The method of clause D14, wherein the default chroma residual scaling factor is a null value when the table is refreshed.

[0217] D16. The method of any of clauses A1-D15, wherein the transforming includes generating a bitstream representation from the current video block.

[0218] D17. The method of any of clauses A1-D15, wherein the transforming includes generating pixel values ​​of the current video block from the bitstream representation.

[0219] D18. A video encoder apparatus, comprising a processor configured to perform a method according to any one of clauses A1 to D15.

[0220] D19. A video decoder apparatus, comprising a processor configured to carry out a method according to any one of clauses A1 to D15.

[0221] D20. A computer readable medium having code stored thereon, said code embodying instructions executable by a processor for performing a method according to any of clauses A1 to D15.

[0222] In this document, the terms "video processing" or "conversion" may refer to video encoding, video decoding, video compression, or video decompression. For example, a video compression algorithm may be applied during conversion from a pixel representation of a video to a corresponding bitstream representation, or vice versa. The bitstream representation of a current video block may correspond to bits that are co-located or spread to different locations in the bitstream, for example, as defined by a syntax. For example, a macroblock may be encoded in terms of a transformed and coded error residual value, and using bits in a header and other fields in the bitstream. Furthermore, during conversion, a decoder may parse the bitstream with knowledge that some fields may or may not be present, based on a decision, as described in the above solution. Similarly, an encoder may determine whether a particular syntax field is included or not, and generate an encoded representation by including or excluding the syntax field in the encoded representation accordingly.

[0223] From the foregoing, it will be understood that, although specific embodiments of the disclosed technology have been described herein for purposes of illustration, various modifications can be made without departing from the scope of the invention. Accordingly, the presently disclosed technology is not to be limited except as by the appended claims.

[0224] The implementation and functional operation of the subject matter described in this patent document can be implemented in various systems, digital electronic circuits, or computer software, firmware, or hardware, including the structures disclosed herein and their structural equivalents, or in one or more combinations thereof. The implementation of the subject matter described herein can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a tangible and non-transitory computer-readable medium for controlling the operation of a data processing apparatus by or on a data processing apparatus. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a machine-readable composition of matter affecting a propagated signal, or one or more combinations thereof. The term "data processing unit" or "data processing apparatus" encompasses all apparatuses, devices, and machines for processing data, including, for example, a programmable processor, a computer, or multiple processors or computers. In addition to hardware, an apparatus may include code that creates an execution environment for the computer program in question, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of these.

[0225] A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., a file that stores one or more modules, subprograms, or portions of code). A computer program can be deployed to be executed on multiple computers that are located on one computer or at one site, or distributed across multiple sites and interconnected by a communication network.

[0226] The processes and logic flows described in this specification may be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows may also be performed by, and apparatus may also be performed by, special purpose logic circuitry, such as an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).

[0227] Processors suitable for executing a computer program include, for example, both general purpose and special purpose microprocessors, and any one or more processors of any kind of digital computer. Typically, a processor receives instructions and data from a read-only memory or a random access memory, or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Typically, a computer is also operatively coupled to receive data from, or transfer data to, one or more mass storage devices, e.g., magnetic disks, magneto-optical disks, or optical disks, for storing data. However, a computer need not have such devices. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices. The processor and memory may be supplemented by, or incorporated in, special purpose logic circuitry.

[0228] The specification, together with the drawings, are considered to be merely exemplary, where exemplary means an example. As used herein, the use of "or" is intended to include "and / or" unless the context clearly indicates otherwise.

[0229] Although this patent document contains many details, these should not be construed as limiting the scope of any invention or what may be claimed, but rather as descriptions of features specific to particular embodiments of a particular invention. Certain features described in this patent document in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented in multiple embodiments separately or in any suitable subcombination. Furthermore, although features may be described above as acting in a particular combination and initially claimed as such, one or more features from a claimed combination may, in some cases, be carved out of the combination, and the claimed combination may be directed to a subcombination or a variation of the subcombination.

[0230] Similarly, although the figures depict acts in a particular order, this should not be understood as requiring such acts to be performed in a particular order or sequential order, or to perform all of the acts illustrated, to achieve desired results. Furthermore, the separation of various system components in the embodiments described in this patent document should not be understood as requiring such separation in all embodiments.

[0231] Only a few embodiments and examples have been described; other embodiments, extensions and variations may be made based on what is described and explained in this patent document.

Claims

1. 1. A method for processing video data, comprising the steps of: determining that a scaling process is applied to chroma residual samples of a current chroma video block of a video during conversion between the current chroma video block and a bitstream of the video; performing the transformation by applying the scaling process on the chroma residual samples; In the scaling process, the chroma residual samples are scaled based on at least one scaling factor before being used to reconstruct the current chroma video block; the at least one scaling factor is derived based on an average luma variance calculated based on at least one neighboring luma block of a video unit of the video determined based on a luma sample corresponding to a top-left sample of the current chroma video block. Steps and Including, in response to all of the at least one neighboring luma block being unavailable, the average luma variable is set to a default fixed value; the default fixed value is used to find an index that identifies the piece to which the default fixed value belongs; the at least one scaling factor is calculated from the found index; the default fixed value is dependent on the bit depth of the video; and The default fixed value is expressed as 1<<(bitDepth-1), bitDepth indicates the bit depth of the video. method.

2. and in response to a first neighboring luma block belonging to the at least one neighboring luma block and the video unit being located in a different video region, the first neighboring luma block is treated as unavailable, the different video region comprising at least one of a different slice or a different tile. The method of claim 1.

3. The scaling process is performed based on a piecewise linear model; an index identifying a piece to which the average luma variable belongs, and the at least one scaling factor is derived based on the index. The method according to claim 1 or 2.

4. the at least one adjacent luma block is adjacent to the video unit.

4. The method according to claim 1 .

5. the position of the video unit is derived based on one or more characteristics of the current chroma video block or the video unit.

5. The method according to any one of claims 1 to 4.

6. the one or more characteristics include at least one of block size and position information; The method according to claim 5.

7. the one or more features are reserved for storage in a line buffer; The method according to claim 5 or 6.

8. the current chroma video block and the video unit are located in the same coding tree unit.

8. The method according to any one of claims 1 to 7.

9. the current chroma video block and the video unit are located in the same coding tree unit row.

9. The method according to any one of claims 1 to 8.

10. the converting includes encoding the current chroma video block into the bitstream.

10. The method according to any one of claims 1 to 9.

11. the converting includes decoding the current chroma video block from the bitstream.

10. The method according to any one of claims 1 to 9.

12. 1. An apparatus for processing video data, comprising: a processor; and a non-transitory memory containing instructions, the instructions, when executed by the processor, causing the processor to: determining that a scaling process is applied to chroma residual samples of a current chroma video block of a video during conversion between the current chroma video block and a bitstream of the video; and performing the conversion by applying the scaling process on the chroma residual samples; Let them do so, In the scaling process, the chroma residual samples are scaled based on at least one scaling factor before being used to reconstruct the current chroma video block; the at least one scaling factor is derived based on an average luma variance calculated based on at least one neighboring luma block of a video unit of the video determined based on a luma sample corresponding to a top-left sample of the current chroma video block; and in response to all of the at least one neighboring luma block being unavailable, the average luma variable is set to a default fixed value; the default fixed value is used to find an index that identifies the piece to which the default fixed value belongs; the at least one scaling factor is calculated from the found index; the default fixed value is dependent on the bit depth of the video; and The default fixed value is expressed as 1<<(bitDepth-1), bitDepth indicates the bit depth of the video. Device.

13. A non-transitory computer-readable storage medium having instructions stored thereon, the instructions causing a processor to: determining that a scaling process is applied to chroma residual samples of a current chroma video block of a video during conversion between the current chroma video block and a bitstream of the video; and performing the conversion by applying the scaling process on the chroma residual samples; Let them do so, In the scaling process, the chroma residual samples are scaled based on at least one scaling factor before being used to reconstruct the current chroma video block; the at least one scaling factor is derived based on an average luma variance calculated based on at least one neighboring luma block of a video unit of the video determined based on a luma sample corresponding to a top-left sample of the current chroma video block; and in response to all of the at least one neighboring luma block being unavailable, the average luma variable is set to a default fixed value; the default fixed value is used to find an index that identifies the piece to which the default fixed value belongs; the at least one scaling factor is calculated from the found index; the default fixed value is dependent on the bit depth of the video; and The default fixed value is expressed as 1<<(bitDepth-1), bitDepth indicates the bit depth of the video. A non-transitory computer-readable storage medium.

14. 1. A method for archiving a video bitstream, the method comprising: determining that a scaling process is applied to chroma residual samples of a current chroma video block of a video during conversion between the current chroma video block and a bitstream of the video; performing the transformation by applying the scaling process on the chroma residual samples; In the scaling process, the chroma residual samples are scaled based on at least one scaling factor before being used to reconstruct the current chroma video block; the at least one scaling factor is derived based on an average luma variance calculated based on at least one neighboring luma block of a video unit of the video determined based on a luma sample corresponding to a top-left sample of the current chroma video block. Steps and Including, in response to the at least one neighboring luma block being unavailable, the average luma variable is set to a default fixed value; the default fixed value is used to find an index that identifies the piece to which the default fixed value belongs; the at least one scaling factor is calculated from the found index; the default fixed value is dependent on the bit depth of the video; and The default fixed value is expressed as 1<<(bitDepth-1), bitDepth indicates the bit depth of the video. method.

Citation Information

Patent Citations

  • Image shaping in video coding using rate-distortion optimization.

    JP2021513284A

  • Method and system for processing video content

    JP2022523925A

  • Image reshaping in video coding using rate distortion optimization

    WO2019160986A1

Cited By

  • Methods for cross component dependency reduction

    US12368841B2

  • Signaling of reshaping information in video processing

    US12445653B2