Cross-Component Adaptive Loop Filter

By employing Cross-Component Adaptive Loop Filtering (CC-ALF) in video encoding and decoding, the challenges of managing increasing bandwidth demand for digital video are addressed, resulting in improved chroma sample accuracy and video quality.

JP7662742B2Active Publication Date: 2025-04-15DOUYIN VISION CO LTD +1
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2023186875
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-10-29
Filing Date
2023-10-31
Publication Date
2025-04-15
Estimated Expiration
2040-10-29

AI Technical Summary

Technical Problem

Current video encoding and decoding technologies face challenges in efficiently managing bandwidth demand for digital video, particularly as the number of connected devices increases.

Method used

The implementation of Cross-Component Adaptive Loop Filtering (CC-ALF) techniques in video encoders and decoders, which involves using CC-ALF tools to improve chroma sample values by correcting them based on luminance sample values during video encoding or decoding.

Benefits of technology

CC-ALF enhances video processing by improving chroma sample accuracy, thereby reducing bandwidth requirements and improving overall video quality.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007662742000039
    Figure 0007662742000039
  • Figure 0007662742000040
    Figure 0007662742000040
  • Figure 0007662742000041
    Figure 0007662742000041
Patent Text Reader

Abstract

To provide a video processing method for use by a video encoder and a decoder to perform cross-component adaptive loop filtering during video encoding or decoding.SOLUTION: A video processing method includes deciding to use CC-ALF (Cross-Component Adaptive Loop Filtering) to improve a luminance sample value using the luminance sample value for conversion between a video area of a video and the bitstream representation of the vide, and performing a conversion on the basis of the decision, and the improvement of the luminance sample value includes correcting a chroma sample value using a final improvement that is a further improvement of a first improvement value determined by selectively filtering the luminance sample value.SELECTED DRAWING: Figure 11
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS Books This application claims priority to and the benefit of International Patent Application No. PCT / CN2019 / 113955, filed on October 29, 2019. main Stretch This is a divisional application of Japanese Patent Application No. PCT / CN2020 / 124700 filed on October 29, 2020. The entire disclosure of the above application is three By lighting Here It is incorporated herein by reference.

[0002] This patent specification relates to image and video encoding and decoding. [Background technology]

[0003] Digital video accounts for the largest bandwidth usage on the Internet and other digital communications networks, and the bandwidth demands for digital video use are expected to continue to grow as the number of connected user devices capable of receiving and displaying video increases. Summary of the Invention

[0004] This specification discloses techniques that may be used by video encoders and decoders to perform cross-component adaptive loop filtering during video encoding or decoding.

[0005] In one exemplary aspect, a method of video processing is disclosed, the method including: determining whether to use a Cross-Component Adaptive Loop Filtering (CC-ALF) tool to improve chroma sample values ​​using luma sample values ​​for conversion between a video domain of a video and a bitstream representation of the video, and performing the conversion based on the determination, the improving including correcting the chroma sample values ​​using a final improvement, the final improvement being a further improvement of a first improvement determined by selectively filtering the luma sample values.

[0006] In another exemplary aspect, another method of video processing is disclosed, the method including: determining whether to use a Cross-Component Adaptive Loop Filtering (CC-ALF) tool to correct sample values ​​of a first video block of a first component using sample values ​​of a second video block of a second component for conversion between a video domain of a video and a bitstream representation of the video; and performing conversion based on the determination, the CC-ALF tool being used unless both of the following are satisfied: 1) the first component is a Cr or Cb component; and 2) the second component is a Y component.

[0007] In yet another exemplary aspect, another method of video processing is disclosed, the method including: determining whether to use a Cross-Component Adaptive Loop Filtering (CC-ALF) tool to correct sample values ​​of a first component using sample values ​​of a second component for conversion between a video unit of a video and a bitstream representation of the video according to a rule, and performing the conversion based on the determination, the rule specifying the use of two or more Adaptation Parameter Sets (ALF APS) including a first ALF APS and a second ALF APS in the bitstream representation.

[0008] In yet another exemplary aspect, another method of video processing is disclosed, the method including: making a decision to use a Cross-Component Adaptive Loop Filtering (CC-ALF) tool to correct sample values ​​of a first component using sample values ​​of a second component for conversion between a video domain of a video and a bitstream representation of the video according to rules, and performing the conversion based on the decision, the rules specifying the use of two or more CC-ALF filters including a first CC-ALF filter applied to first samples of the video domain and a second CC-ALF filter applied to second samples of the video domain.

[0009] In yet another exemplary aspect, another method of video processing is disclosed, for conversion between a video domain of a video and a bitstream representation of the video, the method including deriving a first offset for a first color component of the video domain based on a luma sample of the video domain, deriving a second offset for a second color component of the video domain based on the first offset, and performing the conversion by applying a Cross-Component Adaptive Loop Filtering (CC-ALF) tool to correct the first color component and the second color component based on the luma sample of the video domain.

[0010] In yet another exemplary aspect, another method of video processing is disclosed, the method including: determining to use Cross-Component Adaptive Loop Filtering (CC_ALF) at an M×N sub-block level for conversion between a video block of a video with multiple components and a bitstream representation of the video, where M and N are positive integers and at least one of M and N is greater than 1, and performing the conversion based on the determination, the CC-ALF tool being used to correct M×N sub-block samples for a first component of the video based on a second component of the video.

[0011] In yet another exemplary aspect, another method of video processing is disclosed, the method including: determining to correct chroma samples of a video domain using a CC-ALF (Cross-Component Adaptive Loop Filter) process based on filtering of luma sample differences for conversion between a video domain of a video and a bitstream representation of the video; and performing the conversion based on the determination.

[0012] In yet another exemplary aspect, another method of video processing is disclosed that includes converting between portions of chroma components of a video and a bitstream representation of the video according to rules that specify that whether a Cross-Component Adaptive Loop Filtering (CC-ALF) tool is available for the conversion of the portions of the video depends on whether availability or use of an Adaptation Loop Fintering (ALF) tool is indicated for a corresponding portion of a luma component.

[0013] In yet another exemplary aspect, another method of video processing is disclosed, the method including performing a conversion between a video domain of a video and a bitstream representation of the video, the bitstream representation conforming to a format rule specifying that whether a syntax element indicating use of a CC-ALF (Cross-Component Adaptive Loop Filtering) tool in the bitstream representation is included depends on a number of available ALF (Adaptive Loop Filtering) APS (Adaptation Parameter Sets).

[0014] In yet another exemplary aspect, another method of video processing is disclosed, the method including performing a conversion between a video unit of a video and a bitstream representation of the video, the bitstream representation conforming to a format rule that specifies applicability of a Cross-Component Adaptive Loop Filtering (CC-ALF) tool to improve sample values ​​of a first component using sample values ​​of a second component included in the bitstream representation at a video unit level different from a slice level.

[0015] In yet another exemplary aspect, another method of video processing is disclosed, the method including performing a conversion between a video domain of a video and a bitstream representation of the video, the bitstream representation conforming to a format rule that specifies that a syntax element indicating use of a Cross-Component Adaptive Loop Filtering (CC-ALF) tool in the bitstream representation is dependent on the availability of an Adaptive Loop Filter (ALF) tool to use for a corresponding portion of a luma component.

[0016] In yet another exemplary aspect, another method of video processing is disclosed, the method including performing a conversion between a video domain of a video and a bitstream representation of the video, the bitstream representation conforming to a format rule that specifies that the bitstream representation includes an Adaptation Parameter Set (APS) including a syntax element for indicating whether the APS includes information related to a cross-component adaptive filtering CC-ALF tool.

[0017] In yet another exemplary aspect, another method of video processing is disclosed, the method including: determining that exclusion rules are applicable to a transformation between a video domain of a video and a bitstream representation of the video, the exclusion rules specifying that the transformation does not allow for the use of coding tools and Cross-Component Adaptive Loop Filtering (CC-ALF) tools together on the video domain; and performing the transformation based on the determination.

[0018] In yet another exemplary aspect, another method of video processing is disclosed, the method including performing, for conversion between chroma blocks of a video and a bitstream representation of the video according to rules, using a Cross-Component Adaptive Loop Filtering (CC-ALF) tool during the conversion to determine predictions of the chroma blocks based on samples of luma blocks, the rules specifying which luma blocks are used for the prediction and / or an order in which the CC-ALF tool is used during the conversion.

[0019] In yet another exemplary aspect, another method of video processing is disclosed, the method including: determining an order of processing of adaptive loop filtering (ALF) of chroma components and cross-component adaptive loop filtering (CC-ALF) of the chroma components according to a rule, and performing conversion between a video and a bitstream representation of the video based on the determination, the rule specifying whether the order is predefined or adaptively changed in a video domain of the video, the video domain being of size M×N, where M and N are positive integers.

[0020] In yet another exemplary aspect, another method of video processing is disclosed, the method including: performing a conversion between a video domain of a video and a bitstream representation of the video, the bitstream representation conforming to a format rule that specifies inclusion of a syntax element in the bitstream representation, the syntax element indicating the use of Adaptive Loop Filtering (ALF) and Cross-Component Adaptive Loop Filtering (CC-ALF) for one chroma component.

[0021] In yet another exemplary aspect, a video encoder apparatus is disclosed, the video encoder comprising a processor configured to implement the above-described method.

[0022] In yet another exemplary aspect, a video encoder apparatus is disclosed, the video encoder comprising a processor configured to implement the above-described method.

[0023] In yet another exemplary aspect, a computer readable medium is disclosed having code stored thereon, the code performing one of the methods described herein in the form of processor executable code.

[0024] These and other features are described throughout this document. [Brief description of the drawings]

[0025] [Figure 1] 1 shows an example of a video encoder. [Diagram 2] 1 illustrates an example shape of a geometric transformation based on an adaptive loop filter. [Figure 3A] 13 shows an example of a subsampled Laplacian computation. [Figure 3B] 13 shows an example of a subsampled Laplacian computation. [Figure 3C] 13 shows an example of a subsampled Laplacian computation. [Figure 3D] 13 shows an example of a subsampled Laplacian computation. [Figure 4A] 4 shows an example of the layout and shape of an adaptive loop filter. [Figure 4B] 4 shows an example of the layout and shape of an adaptive loop filter. [Diagram 5] 2 shows an example of an adaptive loop filter. [Figure 6] 1 is a block diagram illustrating an example of a hardware platform for implementing a video decoder or video encoder device described herein. [Figure 7] 1 is a block diagram illustrating an example of a hardware platform for implementing a video decoder or video encoder device described herein. [Figure 8] 1 is a block diagram illustrating an example video coding system. [Figure 9] FIG. 2 is a block diagram illustrating an encoder according to some embodiments of the present invention. [Figure 10] FIG. 2 is a block diagram illustrating a decoder according to some embodiments of the present invention. [Figure 11] 1 is a flowchart of an exemplary method of video processing consistent with some implementations of the disclosed technology. [Figure 12A] 1 is a flowchart of an exemplary method of video processing consistent with some implementations of the disclosed technology. [Figure 12B] 1 is a flowchart of an exemplary method of video processing consistent with some implementations of the disclosed technology. [Figure 12C] 1 is a flowchart of an exemplary method of video processing consistent with some implementations of the disclosed technology. [Figure 12D] 1 is a flowchart of an exemplary method of video processing consistent with some implementations of the disclosed technology. [Figure 13] 1 is a flowchart of an exemplary method of video processing consistent with some implementations of the disclosed technology. [Figure 14A] 1 is a flowchart of an exemplary method of video processing consistent with some implementations of the disclosed technology. [Figure 14B] 1 is a flowchart of an exemplary method of video processing consistent with some implementations of the disclosed technology. [Figure 14C] 1 is a flowchart of an exemplary method of video processing consistent with some implementations of the disclosed technology. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0026] Section headings are used herein for ease of understanding and are not intended to limit the applicability of the technology and embodiments described in each section to that section alone. Furthermore, the term H.266 is used in certain descriptions for ease of understanding only and is not intended to limit the scope of the disclosed technology. Thus, the technology described herein is applicable to other video codec designs.

[0027] 1. Summary of the Invention This specification relates to video coding technology. In particular, it relates to a cross-component adaptive loop filter in image / video coding. It may be applied to existing video coding standards such as HEVC, or to finalize standards (Versatile Video Coding). The present invention is also applicable to future video coding standards or video codecs.

[0028] 2. Background technology Video coding standards have evolved mainly through the development of well-known ITU-T and ISO / IEC standards. ITU-T created H.261 and H.263, ISO / IEC created MPEG-1 and MPEG-4 Visual, and the two organizations jointly created H.262 / MPEG-2 Video, H.264 / MPEG-4 AVC (Advanced Video Coding), and H.265 / HEVC standards. Since H.262, video coding standards have been based on hybrid video coding structures where temporal prediction and transform coding are utilized. In order to explore future video coding technologies beyond HEVC, in 2015, VCEG and MPEG jointly established the Joint Video Exploration Team (JVET). Since then, many new methods have been adopted by JVET and incorporated into reference software called JEM (Joint Exploration Mode). In April 2018, the Joint Video Expert Team (JVET) was established between VCEG (Q6 / 16) and ISO / IEC JTC1 SC29 / WG11 (MPEG), and is working on formulating the VVC standard with the goal of reducing the bitrate by 50% compared to HEVC.

[0029] 2.1. Color Space and Chroma Subsampling A color space, also known as a color model (or color system), is an abstract mathematical model that describes a range of colors simply as a tuple of numbers, typically three or four values ​​or color components (e.g., RGB). Essentially, a color space is a combination of a coordinate system and a subspace.

[0030] For video compression, the most frequently used color spaces are YCbCr and RGB. YCbCr, Y'CbCr, or Y Pb / Cb Pr / Cr, also known as YCBCR or Y'CBCR, is a family of color spaces used as part of the color image pipeline in video and digital photography systems. Y' is the luma component, and CB and CR are the blue-difference and red-difference chroma components. Y' (which has a prime number) is distinct from Y, which is luminance, meaning that light intensity is coded nonlinearly based on gamma-corrected RGB primaries.

[0031] Chroma subsampling is a method of encoding images in which chrominance information is implemented at a lower resolution than luminance information, taking advantage of the fact that the human visual system perceives color differences less well than luminance.

[0032] 2.1.1. 4:4:4 Each of the three Y'CbCr components has the same sample rate, so there is no chroma subsampling. This method is sometimes used in high-end film scanners and in cinema post-production.

[0033] 2.1.2. 4:2:2 The two chroma components are sampled at half the luma sample rate and the horizontal chroma resolution is halved, reducing the bandwidth of the uncompressed video signal by a factor of three with little or no visual difference.

[0034] 2.1.3. 4:2:0 In 4:2:0, the horizontal sampling is doubled compared to 4:1:1, but the vertical resolution is halved because this scheme samples the Cb and Cr channels only on every other line each. Thus, the data rate is the same. Cb and Cr are each subsampled by a factor of two in both the horizontal and vertical directions. There are three variants of the 4:2:0 scheme with different horizontal and vertical positions: In MPEG-2, Cb and Cr are co-located horizontally. Cb and Cr are located between pixels vertically (located between the lattices). In JPEG / JFIF, H.261, and MPEG-1, Cb and Cr are located in the middle interstitial space between alternating luminance samples. In 4:2:0 DV, Cb and Cr are horizontally co-located. Vertically, they alternate.

[0035] 2.1.4. Coding of Different Color Components Depending on the value of separate_colour_plane_flag, the value of the variable ChromaArrayType is assigned as follows: -If separate_colour_plane_flag is equal to 0, ChromaArrayType is set equal to chroma_format_idc. - Otherwise (separate_colour_plane_flag is equal to 1), ChromaArrayType is set equal to 0.

[0036] 2.2. Typical video codec coding flow Figure 1 shows an example of an encoder block diagram for VVC, including three in-loop filtering blocks: Deblocking Filter (DF), Sample Adaptive Offset (SAO), and ALF. Unlike DF, which uses predefined filters, SAO and ALF utilize the original samples of the current picture and reduce the mean square error between the original and reconstructed samples by adding an offset and applying a Finite Impulse Response (FIR) filter, respectively, with coded side information signaling the offset and filter coefficients. The ALF is located at the last processing stage of each picture and can be considered as a tool that tries to capture and correct artifacts generated in the previous stage.

[0037] 2.3. Adaptive Loop Filter Based on Shape Transformation in JEM In JEM, a Geometry Transformation-based Adaptive Loop Filter (GALF) with block-based filter adaptation is applied. For the luma component, one of 25 filters is selected for each 2x2 block based on the local gradient direction and activity.

[0038] 2.3.1. Filter Shape In JEM, up to three diamond filter shapes (shown in Figure 2) can be selected for the luma component. An index is signaled at the picture level to indicate the filter shape used for the luma component.

[0039] Figure 2 shows examples of GALF filter shapes (left: 5 × 5 diamond, center: 7 × 7 diamond, right: 9 × 9 diamond).

[0040] A 5x5 diamond shape is always used for the chroma components in a picture.

[0041] 2.3.1.1. Block Division Each 2 × 2 block is classified into one of 25 classes. The classification index C is derived based on its directionality D and the quantized value of the activity  as follows:

[0042]

number

[0043] To compute D and Â, first the horizontal, vertical, and two diagonal gradients are computed using the 1-D Laplacian.

[0044]

number

[0045]

number

[0046]

number

[0047]

number

[0048] Let i and j represent the coordinates of the top-left sample of a 2x2 block, and R(i,j) denotes the reconstructed sample at coordinate (i,j).

[0049] Then, the Dmax and Dmin values ​​for the horizontal and vertical gradients are set as follows:

[0050]

number

[0051] Then, the maximum and minimum values ​​of the two diagonal gradients are set as follows:

[0052]

number

[0053] To derive the value of the directionality D, these values ​​are compared with each other and with two thresholds t1 and t2.

[0054]

number

[0055] The activity value A is calculated as follows:

[0056]

number

[0057] A is further quantized into the range of 0 to 4, and the quantized value is defined as A^.

[0058] For both chroma components in a picture, no classification method is applied, ie a single set of ALF coefficients is applied for each chroma component.

[0059] 2.3.1.2. Geometric Transformation of Filter Coefficients Before filtering each 2x2 block, a geometric transformation such as a rotation or a diagonal and vertical flip is applied to the filter coefficients f(k,l) based on the gradient value calculated for that block. This is equivalent to applying these transformations to samples within the filter support region. The idea is to make different blocks to which ALF is applied more similar by aligning their orientation.

[0060] We introduce three geometric transformations including diagonal, vertical flip and rotation.

[0061]

number

[0062] In this case, K is the size of the filter, and 0≦k,l≦K-1 are the coefficient coordinates, with position (0,0) being the top-left corner and position (K-1,K-1) being the bottom-right corner. The transformation is applied to the filter coefficients f(k,l) based on the gradient value calculated for that block. The relationship between the transformation and the four gradients in the four directions is summarized in Table 1.

[0063] Table 1: Mapping between gradients and transformations calculated for one block

[0064] [Table 1]

[0065] Filter Parameter Signaling In JEM, GALF filter parameters are signaled for the first CTU, i.e. after the slice header and before the SAO parameters of the first CTU. Up to 25 sets of luma filter coefficients can be signaled. To reduce bit overhead, filter coefficients of different classifications can be merged. Also, GALF coefficients of a reference picture can be stored and reused as GALF coefficients of the current picture. The current picture may choose to use the stored GALF coefficients for a reference picture and avoid signaling of GALF coefficients. In this case, only an index to one reference picture is signaled, and the stored GALF coefficients of the specified reference picture are inherited by the current picture.

[0066] To support GALF temporal prediction, a candidate list of GALF filter sets is maintained. At the start of decoding a new sequence, the candidate list is empty. After decoding one picture, the corresponding set of filters may be added to the candidate list. When the size of the candidate list reaches the maximum allowed value (i.e., 6 in the current JEM), a new set of filters overwrites the oldest set in the order of decoding, i.e., applying the First-In-First-Out (FIFO) rule to update the candidate list. To avoid duplication, only one set can be added to the list if the corresponding picture does not use GALF temporal prediction. To support temporal scalability, there are multiple candidate lists of filter sets, and each candidate list is associated with one temporal layer. Specifically, each array assigned by a temporal layer index (TempIdx) may constitute the filter sets of previously decoded pictures with TempIdx equal to or lower. For example, the kth array is assigned to be associated with TempIdx equal to k, and it contains only filter sets from pictures with TempIdx less than or equal to k. After coding a particular picture, the filter set associated with the picture is used to update the array associated with the same or higher TempIdx.

[0067] Temporal prediction of the GALF coefficients is used for inter-coded frames to minimize signaling overhead. For intra frames, temporal prediction is not available and a set of 16 fixed filters is assigned to each class. A flag for each class is signaled to indicate the use of a fixed filter and, if necessary, the index of the selected fixed filter. If a fixed filter is selected for a given class, the coefficients of the adaptive filter f(k,l) can still be transmitted for this class, in which case the coefficients of the filter applied to the reconstructed image will be the sum of both sets of coefficients.

[0068] The filtering process of luma components can be controlled at the CU level. One flag is signaled to indicate whether GALF is applied to the luma component of a CU. For chroma components, whether GALF is applied is only indicated at the picture level.

[0069] 2.3.1.4. Filtering process At the decoder side, when GALF is enabled for a block, each sample R(i,j) in the block is filtered to obtain a sample value R'(i,j) as shown below, where L is the filter length and f m,n denote the filter coefficients, and f(k,l) denotes the decoded filter coefficients.

[0070]

number

[0071] Alternatively, the filtering process of the adaptive loop filter can be expressed as follows:

[0072]

number

[0073] where sample I(x+i,y+j) is the input sample, O(x,y) is the filtered output sample (i.e., the filter result), and w(i,j) are the filter coefficients. In practice, VTM4.0 is implemented using integer arithmetic for fixed-point precision calculations.

[0074]

number

[0075] where L represents the filter length and w(i,j) are the filter coefficients in fixed-point precision.

[0076] 2.4. Nonlinear ALF 2.4.1. Filtering Reshaping Equation (11) can be reformulated as follows without affecting coding efficiency:

[0077]

number

[0078] Here, w(i,j) is the same filter coefficient as in equation (11) [however, in equation (11), 1-Σ (i,j)≠(0,0) w(i,j) is equal to 1 in equation (13) [excluding w(0,0)].

[0079] 2.4.2. Modified Filters By using the filter equation (13) above, we can easily introduce nonlinearity and make the ALF more efficient by using a simple clipping function to reduce the effect when the neighboring sample values ​​(I(x+i,y+j)) are too different from the current sample value (I(x,y)) filtering.

[0080] In this proposal, the ALF filter is modified as follows:

[0081]

number

[0082] where K(d,b)=min(b,max(-b,d)) is the clipping function and k(i,j) is the clipping parameter that depends on the (i,j) filter coefficient. The encoder performs an optimization to find the best k(i,j).

[0083] For ease of implementation, we store the filter coefficients w(i,j) and use them with integer precision. The above equation can be rewritten as

[0084]

number

[0085] where w(k,l) represents the decoded filter coefficients, K(x,y) is the clipping function, and c(k,l) represents the decoded clipping parameters. The variables k and l vary between -L / 2 and L / 2, where L represents the filter length. The clipping function K(x,y)=min(y,max(-y,x)) corresponds to the function Clip3(-y,y,x).

[0086] In the implementation of JVET-N0242, a clipping parameter k(i,j) is specified for each ALF filter, and one clipping value is signaled per filter coefficient. This means that up to 12 clipping values ​​can be signaled in the bitstream per luma filter, and up to 6 clipping values ​​for chroma filters. To limit the signaling cost and encoder complexity, the evaluation of clipping values ​​is restricted to a small set of possible values. In this proposal, we use only the same four fixed values ​​for INTER and INTRA tile groups.

[0087] Since the variance of local differences is often larger for luma than for chroma, we use two different sets of luma and chroma filters, each set containing the maximum sample value (here 1024 for a 10-bit bit depth) and can disable clipping if not needed.

[0088] The set of clipping values ​​used in the JVET-N0242 tests is shown in Table 2. The four values ​​were selected to split approximately evenly in the logarithmic domain the full range of sample values ​​(coded with 10 bits) for luma and the range from 4 to 1024 for chroma. More precisely, the luma table of clipping values ​​was obtained by the following formula:

[0089]

number

[0090] Similarly, the chroma table of clipping values ​​is obtained according to the following formula:

[0091]

number

[0092] Table 2: Permitted Clipping Values

[0093] [Table 2]

[0094] The selected clipping value is coded into the "alf_data" syntax element using the Golomb coding scheme that corresponds to the clipping value's index in Table 2 above. This coding scheme is the same as the coding scheme for the filter index.

[0095] 2.5. Adaptive Loop Filter Based on Shape Transformation in VVC The current GALF design in VVC has the following major changes compared to the JEM design: 1) Adaptive filter shapes are eliminated: only 7x7 filter shapes are allowed for luma components, and only 5x5 filter shapes are allowed for chroma components. 2) The ALF filter coefficients are signaled in the ALF APS (Adaptation Parameter Set). 3) A non-linear ALF may be applied. 4) For each CTU, one bit flag per color component signals whether ALF is enabled or disabled. 5) Class index calculation is done at 4x4 level instead of 2x2. Also, subsampled Laplacian calculation method for ALF classification is utilized as proposed in JVET-L0147. Specifically, there is no need to calculate horizontal / vertical / 45 diagonal / 135 degree gradients for every sample in one block. Instead, 1:2 subsampling is utilized.

[0096] FIG. 3A shows an example of a subsampled Laplacian calculation with subsampled positions for vertical gradients.

[0097] FIG. 3B shows an example of a subsampled Laplacian calculation with subsampled positions for horizontal gradients.

[0098] FIG. 3C shows an example of a subsampled Laplacian computation with subsampled positions for the diagonal gradients.

[0099] FIG. 3D shows an example of a subsampled Laplacian computation with subsampled positions for the diagonal gradients.

[0100] 2.6. Signaling ALF parameters in the adaptation parameter set In the latest version of the VVC draft, ALF parameters may be signaled in an Adaptation Parameter Set (APS) or may be adaptively selected by each CTU. Up to 25 pairs of luma filter coefficients and clipping value indexes and up to 8 pairs of chroma filter coefficients and clipping value indexes can be signaled in one APS. To reduce bit overhead, filter coefficients of different classifications of luma components can be merged. In the slice header, the index of the APS used for the current slice is signaled.

[0101] The filter coefficients are quantized with a norm equal to 128. To reduce the complexity of multiplications, coefficient values ​​at non-central positions are quantized with a norm equal to 128. 7 ~2 7 Bitstream conformance is applied so that the center position coefficient is within the range of −1. The center position coefficient is not signaled in the bitstream and is assumed to be equal to 128.

[0102] The detailed signal notification of ALF (JVET-P2001-v9) is as follows:

[0103] 7.3.2.5 Adaptation Parameter Set Syntax

[0104] [Table 3]

[0105] 7.3.2.16 Adaptive Loop Filter Data Syntax

[0106] [Table 4]

[0107] [Table 5]

[0108] 7.4.3.5 Adaptation Parameter Set Semantics Each APS RBSP is available to the decoding process before it is referenced and is contained in at least one access unit that has a TemporalId less than or equal to the TemporalId of the coded slice NAL unit that references it or is provided by external means. Let aspLayerId be the nuh_layer_id of the APS NAL unit. If the layer with nuh_layer_id equal to aspLayerId is an independent layer (i.e., vps_independent_layer_flag[GeneralLayerIdx[aspLayerId]] is equal to 1), then the APS NAL unit containing the APS RBSP shall have nuh_layer_id equal to the nuh_layer_id of the coded slice NAL unit that references it. Otherwise, the APS NAL unit containing the APS RBSP shall have nuh_layer_id equal to the nuh_layer_id of the coded slice NAL unit that references it or equal to the nuh_layer_id of a direct dependent layer of the layer that contains the coded slice NAL unit that references it. All APS NAL units with a particular value of adatation_parameter_set_id and a particular value of aps_params_type within an access unit shall have the same content.

[0109] The adaptation_parameter_set_id provides an identifier for the APS to which other syntax elements refer. If aps_params_type is equal to ALF_APS or SCALING_APS, the value of adaptation_parameter_set_id shall be in the range of 0 to 7. When aps_params_type is equal to LMCS_APS, the value of adaptation_parameter_set_id shall be in the range of 0 to 3. aps_params_type specifies the type of APS parameters implemented in the APS, as shown in Table 7-2. If aps_params_type is equal to 1 (LMCS_APS), the value of adaptation_parameter_set_id shall be in the range of 0 to 3.

[0110] Table 7-2 - APS Parameter Type Codes and APS Parameter Types

[0111] [Table 6]

[0112] NOTE 1 – Each type of APS uses a separate value space for adaptation_parameter_set_id. NOTE 2 - APS NAL units (with specific values ​​of adaptation_parameter_set_id and specific values ​​of aps_params_type) may be shared between pictures, and different slices within a picture may reference different ALF APS. Aps_extension_flag equal to 0 specifies that the aps_extension_data_flag syntax element is not present in the APS RBSP syntax structure. Aps_extension_flag equal to 1 specifies that the aps_extension_data_flag syntax element is present in the APS RBSP syntax structure. aps_extension_data_flag may have any value. Its presence and value do not affect a decoder's conformance to the profile specified in this version of this specification. Decoders conforming to this version of this specification SHALL ignore all aps_extension_data_flag syntax elements.

[0113] 7.4.3.14 Adaptive Loop Filter Data Semantics alf_luma_filter_signal_flag equal to 1 specifies that the luma filter set is signaled. alf_luma_filter_signal_flag equal to 0 specifies that the luma filter set is not signaled. alf_chroma_filter_signal_flag equal to 1 specifies that the chroma filters are signaled. alf_chroma_filter_signal_flag equal to 0 specifies that the chroma filters are not signaled. If ChromaArrayType is equal to 0 then alf_chroma_filter_signal_flag is equal to 0. The variable NumAlfFilters, which specifies the number of different adaptive loop filters, is set equal to 25. alf_luma_clip_flag equal to 0 specifies that linear adaptive loop filtering is applied to the luma component. alf_luma_clip_flag equal to 1 specifies that non-linear adaptive loop filtering may be applied to the luma component. alf_luma_num_filters_signalled_minus1+1 specifies the number of adaptive loop filter classes for which luma coefficients can be signaled. The value of alf_luma_num_filters_signalled_minus1 shall be in the range of 0 to NumAlfFilters-1. alf_luma_coeff_delta_idx[filtIdx] specifies the index of the signaled adaptive loop filter brightness coefficient delta for the filter class indicated by filtIdx in the range from 0 to NumAlfFilters-1. If alf_luma_coeff_delta_idx[filtIdx] is not present, it is inferred to be equal to 0. The length of alf_luma_coeff_delta_idx[filtIdx] is Ceil(Log2(alf_luma_num_filters_signalled_minus1+1) bits.

[0114] alf_luma_coeff_signalled_flag equal to 1 means alf_luma_coeff_flag[sfIdx] is signaled. alf_luma_coeff_signalled_flag equal to 0 means alf_luma_coeff_flag[sfIdx] is not signaled. alf_luma_coeff_flag[sfIdx] equal to 1 specifies that the coefficients of the luma filter indicated by sfIdx are signaled. alf_luma_coeff_flag[sfIdx] equal to 0 specifies that all filter coefficients of the luma filter indicated by sfIdx are set to 0. If not present, alf_luma_coeff_flag[sfIdx] is set equal to 1. alf_luma_coeff_abs[sfIdx][j] specifies the absolute value of the jth coefficient of the signal luminance filter indicated by sfIdx. If alf_luma_coeff_abs[sfIdx][j] is not present, it is inferred to be equal to 0. The degree k of the Exponential-Golomb Binarization uek(v) is set equal to 3.

[0115] alf_luma_coeff_sign[sfIdx][j] specifies the sign of the j-th luminance coefficient of the filter indicated by sfIdx as follows: If alf_luma_coeff_sign[sfIdx][j] is equal to 0, the corresponding luma filter coefficient has a positive value. Otherwise (alf_luma_coeff_sign[sfIdx][j] is equal to 1), the corresponding luma filter coefficient has a negative value. If alf_luma_coeff_sign[sfIdx][j] is not present, it is inferred to be equal to 0.

[0116] The variable filtCoeff[sfIdx][j], with sfIdx=0... alf_luma_num_filters_signalled_minus1, j=0...11, is initialized as follows: filtCoeff[sfIdx][j]=alf_luma_coeff_abs[sfIdx][j]*(1-2*alf_luma_coeff_sign[sfIdx][j]) (7-47)

[0117] Element AlfCoeff LLuminance filter coefficient AlfCoeff with [adaptation_parameter_set_id][filtIdx][j] L [adaptation_parameter_set_id] (where filtIdx = 0...NumAlfFilters-1, j = 0...11) is derived as follows. AlfCoeff L [adaptation_parameter_set_id][filtIdx][j]=filtCoeff[alf_luma_coeff_delta_idx[filtIdx]][j] (7-48)

[0118] The classes for filter mapping the fixed filter coefficients AlfFixFiltCoeff[i][j] (where i = 0...64, j = 0...11) and AlfClassToFiltMap[m][n] (where m = 0...15, n = 0...24) are derived as follows. AlfFixFiltCoeff= { {0,0,2,-3,1,-4,1,7,-1,1,-1,5} {0,0,0,0,0,-1,0,1,0,0,-1,2} {0,0,0,0,0,0,0,0,1,0,0,0,0} {0,0,0,0,0,0,0,0,0,0,0,-1,1} {2,2,-7,-3,0,-5,13,22,12,-3,-3,17} {-1,0,6,-8,1,-5,1,23,0,2,-5,10} {0,0,-1,-1,0,-1,2,1,0,0,-1,4} {0,0,3,-11,1,0,-1,35,5,2,-9,9} {0,0,8,-8,-2,-7,4,4,2,1,-1,25} {0,0,1,-1,0,-3,1,3,-1,1,-1,3} {0,0,3,-3,0,-6,5,-1,2,1,-4,21} {-7,1,5,4,-3,5,11,13,12,-8,11,12} {-5,-3,6,-2,-3,8,14,15,2,-7,11,16} {2,-1,-6,-5,-2,-2,20,14,-4,0,-3,25} {3,1,-8,-4,0,-8,22,5,-3,2,-10,29} {2,1,-7,-1,2,-11,23,-5,0,2,-10,29} {-6,-3,8,9,-4,8,9,7,14,-2,8,9} {2,1,-4,-7,0,-8,17,22,1,-1,-4,23} {3,0,-5,-7,0,-7,15,18,-5,0,-5,27} {2,0,0,-7,1,-10,13,13,-4,2,-7,24} {3,3,-13,4,-2,-5,9,21,25,-2,-3,12} {-5,-2,7,-3,-7,9,8,9,16,-2,15,12} {0,-1,0,-7,-5,4,11,11,8,-6,12,21} {3,-2,-3,-8,-4,-1,16,15,-2,-3,3,26} {2,1,-5,-4,-1,-8,16,4,-2,1,-7,33} {2,1,-4,-2,1,-10,17,-2,0,2,-11,33} {1,-2,7,-15,-16,10,8,8,20,11,14,11} {2,2,3,-13,-13,4,8,12,2,-3,16,24} {1,4,0,-7,-8,-4,9,9,-2,-2,8,29} {1,1,2,-4,-1,-6,6,3,-1,-1,-3,30} {-7,3,2,10,-2,3,7,11,19,-7,8,10} {0,-2,-5,-3,-2,4,20,15,-1,-3,-1,22} {3,-1,-8,-4,-1,-4,22,8,-4,2,-8,28} {0,3,-14,3,0,1,19,17,8,-3,-7,20} {0,2,-1,-8,3,-6,5,21,1,1,-9,13} {-4,-2,8,20,-2,2,3,5,21,4,6,1} {2,-2,-3,-9,-4,2,14,16,3,-6,8,24} {2,1,5,-16,-7,2,3,11,15,-3,11,22} {1,2,3,-11,-2,-5,4,8,9,-3,-2,26} {0,-1,10,-9,-1,-8,2,3,4,0,0,29} {1,2,0,-5,1,-9,9,3,0,1,-7,20} {-2,8,-6,-4,3,-9,-8,45,14,2,-13,7} {1,-1,16,-19,-8,-4,-3,2,19,0,4,30} {1,1,-3,0,2,-11,15,-5,1,2,-9,24} {0,1,-2,0,1,-4,4,0,0,1,-4,7} {0,1,2,-5,1,-6,4,10,-2,1,-4,10} {3,0,-3,-6,-2,-6,14,8,-1,-1,-3,31} {0,1,0,-2,1,-6,5,1,0,1,-5,13} {3,1,9,-19,-21,9,7,6,13,5,15,21} {2,4,3,-12,-13,1,7,8,3,0,12,26} {3,1,-8,-2,0,-6,18,2,-2,3,-10,23} {1,1,-4,-1,1,-5,8,1,-1,2,-5,10} {0,1,-1,0,0,-2,2,0,0,1,-2,3} {1,1,-2,-7,1,-7,14,18,0,0,-7,21} {0,1,0,-2,0,-7,8,1,-2,0,-3,24} {0,1,1,-2,2,-10,10,0,-2,1,-7,23} {0,2,2,-11,2,-4,-3,39,7,1,-10,9} {1,0,13,-16,-5,-6,-1,8,6,0,6,29} {1,3,1,-6,-4,-7,9,6,-3,-2,3,33} {4,0,-17,-1,-1,5,26,8,-2,3,-15,30} {0,1,-2,0,2,-8,12,-6,1,1,-6,16} {0,0,0,-1,1,-4,4,0,0,0,-3,11} {0,1,2,-8,2,-6,5,15,0,2,-7,9} {1,-1,12,-15,-7,-2,3,6,6,-1,7,30} }, (7-49) AlfClassToFiltMap= { {8,2,2,2,3,4,53,9,9,52,4,4,5,9,2,8,10,9,1,3,39,39,10,9,52} {11,12,13,14,15,30,11,17,18,19,16,20,20,4,53,21,22,23,14,25,26,26,27,28,10} {16,12,31,32,14,16,30,33,53,34,35,16,20,4,7,16,21,36,18,19,21,26,37,38,39} {35,11,13,14,43,35,16,4,34,62,35,35,30,56,7,35,21,38,24,40,16,21,48,57,39} {11,31,32,43,44,16,4,17,34,45,30,20,20,7,5,21,22,46,40,47,26,48,63,58,10} {12,13,50,51,52,11,17,53,45,9,30,4,53,19,0,22,23,25,43,44,37,27,28,10,55} {30,33,62,51,44,20,41,56,34,45,20,41,41,56,5,30,56,38,40,47,11,37,42,57,8} {35,11,23,32,14,35,20,4,17,18,21,20,20,20,4,16,21,36,46,25,41,26,48,49,58} {12,31,59,59,3,33,33,59,59,52,4,33,17,59,55,22,36,59,59,60,22,36,59,25,55} {31,25,15,60,60,22,17,19,55,55,20,20,53,19,55,22,46,25,43,60,37,28,10,55,52} {12,31,32,50,51,11,33,53,19,45,16,4,4,53,5,22,36,18,25,43,26,27,27,28,10} {5,2,44,52,3,4,53,45,9,3,4,56,5,0,2,5,10,47,52,3,63,39,10,9,52} {12,34,44,44,3,56,56,62,45,9,56,56,7,5,0,22,38,40,47,52,48,57,39,10,9} {35,11,23,14,51,35,20,41,56,62,16,20,41,56,7,16,21,38,24,40,26,26,42,57,39} {33,34,51,51,52,41,41,34,62,0,41,41,56,7,5,56,38,38,40,44,37,42,57,39,10} {16,31,32,15,60,30,4,17,19,25,22,20,4,53,19,21,22,46,25,55,26,48,63,58,55} }, (7-50)

[0119] AlfCoeff LThe value of [adaptation_parameter_set_id][filtIdx][j] (where filtIdx=0...NumAlfFilters-1, j=0...11) is -2 7 ~2 7 -1 range is a bitstream conformance requirement. alf_luma_clip_idx[sfIdx][j] specifies the clipping index of the clip value to be used before multiplying by the jth coefficient of the signaled luma filter indicated by sfIdx. The value of alf_luma_clip_idx[sfIdx][j] (where sfIdx=0...alf_luma_num_filters_signalled_minus1, j=0...11) must be in the range 0 to 3 for bitstream conformance. Element AlfClip L Luminance filter clipping value AlfClip with [adaptation_parameter_set_id][filtIdx][j] L [adaptation_parameter_set_id] (where filtIdx=0...NumAlfFilters-1, j=0...11) is BitDepth Y and clipIdx being set equal to alf_luma_clip_idx[alf_luma_coeff_delta_idx[filtIdx]][j] as specified in Table 7-4.

[0120] alf_chroma_num_alt_filters_minus1+1 specifies the number of alternative filters for the chroma components. alf_chroma_clip_flag[altIdx] equal to 0 specifies that linear adaptive loop filtering is applied to the chroma components when using the chroma filter with index altIdx, and alf_chroma_clip_flag[altIdx] equal to 1 specifies that non-linear adaptive loop filtering is applied to the chroma components when using the chroma filter with index altIdx. If not present, alf_chroma_clip_flag[altIdx] is inferred to be equal to 0. alf_chroma_coeff_abs[altIdx][j] specifies the absolute value of the jth chroma filter coefficient for the alternate chroma filter with index altIdx. If alf_chroma_coeff_abs[altIdx][j] is not present, it is inferred to be equal to 0. The value of alf_chroma_coeff_abs[altIdx][j] shall range from 0 to 2 7 -1 range is a bitstream conformance requirement. The degree k of the Exponential-Golomb Binarization uek(v) is set equal to 3.

[0121] alf_chroma_coeff_sign[altIdx][j] specifies the sign of the jth chroma filter coefficient for the alternative chroma filter with index altIdx as follows: If alf_chroma_coeff_sign[altIdx][j] is equal to 0, the corresponding chroma filter coefficient has a positive value. Otherwise (alf_chroma_coeff_sign[altIdx][j] is equal to 1), the corresponding chroma filter coefficient has a negative value. If alf_chroma_coeff_sign[altIdx][j] is not present, it is inferred to be equal to 0. Element AlfCoeff C Chroma filter coefficient AlfCoeff with [adaptation_parameter_set_id][altIdx][j] C[adaptation_parameter_set_id][altIdx] (where altIdx=0...alf_chroma_num_alt_filters_minus1, j=0...5) is derived as follows. AlfCoeff C [adaptation_parameter_set_id][altIdx][j]=alf_chroma_coeff_abs[altIdx][j]*(1-2*alf_chroma_coeff_sign[altIdx][j]) (7-51)

[0122] AlfCoeff C The value of [adaptation_parameter_set_id][altIdx][j] (where altIdx=0...alf_chroma_num_alt_filters_minus1,j=0...5) is -2 7 -1~2 7 -1 range is a bitstream conformance requirement. alf_chroma_clip_idx[altIdx][j] specifies the clipping index of the clip value to be used before multiplying the jth coefficient of the alternative chroma filter by the index altIdx. The value of alf_chroma_clip_idx[altIdx][j] (where altIdx=0...alf_chroma_num_alt_filters_minus1, j=0...5) must be in the range of 0 to 3 for bitstream compatibility.

[0123] Element AlfClip C Chroma filter clipping value AlfClip with [adaptation_parameter_set_id][altIdx][j] C [adaptation_parameter_set_id][altIdx] (where altIdx=0...alf_chroma_num_alt_filters_minus1,j=0...5) is the BitDepth Cand clipIdx set equal to alf_chroma_clip_idx[altIdx][j], as specified in Table 7-4.

[0124] Table 7-4 - AlfClip specifications according to bitDepth and clipIdx

[0125] [Table 7]

[0126] 2.7. Signalling of ALF parameters for CTU In VTM6, ALF filter parameters are signaled in APS (Adaptation Parameter Set). In one APS, up to 25 pairs of luma filter coefficients and clipping value indexes and up to 8 pairs of chroma filter coefficients and clipping value indexes can be signaled. To reduce bit overhead, filter coefficients of different classifications for luma components can be merged. In the slice header, the index of the APS used for the current slice is signaled.

[0127] The clipping value index decoded from the APS can use the luma table of clipping values ​​and the chroma table of clipping values ​​to determine the clipping values, which depend on the internal bit depth.

[0128] In the slice header, up to seven APS indices can be signaled to specify the luma filter set to be used for the current slice. The filtering process may be further controlled at the CTB level. A flag is always signaled to indicate whether the ALF is applied to the luma CTB. The luma CTB can select a filter set among 16 fixed filter sets and a filter set from the APS. A filter set index is signaled for the luma CTB to indicate which filter set is applied. In both the encoder and the decoder, the 16 fixed filter sets are predefined and hard-coded.

[0129] For chroma components, an APS index is signaled in the slice header to indicate the chroma filter set used for the current slice. At the CTB level, if there are multiple chroma filter sets in an APS, a filter index is signaled for each chroma CTB. Specifically, the following applies:

[0130] A slice on / off control flag is coded first to indicate whether at least one CTU in the slice applies ALF. If true, the following are checked and signaled in order for each CTU:

[0131] Regarding the luminance part: 1. Whether ALF applies to Luminance CTB. If yes, go to step 2. If no, no further signaling is required. 2. Check the number of ALF APS used for the current slice and let numALFAPS be it. 3. If numALFAPS is equal to 0, the index of the fixed filter (e.g., alf_luma_fixed_filter_idx) is signaled. Otherwise the following applies: - Signal a flag indicating whether predicted from the first ALF APS. - If not, go to step 4. If yes, signalling of ALF parameters for luminance CTB is stopped. 4. If numALFAPS is greater than 1, signal a flag to indicate if it is predicted from the ALF APS. - If not, signal the index of the fixed filter. - If yes and numALFAPS is greater than 2, signal the index of the ALF APS minus 1 along with a truncated unary.

[0132] Regarding chroma: 1. Whether ALF applies to Cb / Cr CTB. If yes, go to step 2. If no, no further signalling is required. 2. Signal the index of the filter associated with the i-th ALF APS, where the APS index is signaled in the slice header.

[0133] 7.3.8.2 Coding Tree Unit Syntax

[0134] [Table 8]

[0135] 2.8.CC-ALF(Cross-Component Adaptive Loop Filter) CC-ALF (Cross-Component Adaptive Loop Filter) improves each chroma component with the luma sample value. Essentially, when CC-ALF is applied, it generates a correction for each chroma sample by filtering the luma samples. It is applied as a loop filter step. The tool is controlled by information in the bitstream, which includes both (a) the filter coefficients for each chroma component, and (b) a mask that controls the application of the filter for a block of samples.

[0136] Figure 4A shows the placement of CC-ALF relative to the other loop filters. CC-ALF operates by applying a linear, diamond-shaped filter (shown in Figure 4B) to the luma channel for each chroma component, and can be expressed as follows:

[0137]

number

[0138] Where: (x,y) is the position of the chroma component i to be improved (x C ,y C ) is the luminance position based on (x,y) S i is the luma filter support for chroma component i c i (x0,y0) are the filter coefficients.

[0139] Figure 4A shows the placement of the CC-ALF relative to other loop filters, and Figure 4B shows a diamond filter.

[0140] The CC-ALF process is further described in JVET-O0636. Key features include: Based on the spatial scaling factor between the luminance and chrominance planes, the luminance position (x C ,y C ) to calculate ●All filter coefficients are transmitted in APS and have a dynamic range of 8 bits. ●APS may be referenced in the slice header. The CC-ALF coefficients used for each chroma component of a slice are also stored in a buffer corresponding to the temporal sublayer. Reuse of these temporal sublayer filter coefficient sets is facilitated using slice-level flags. The application of the CC-ALF filter is controlled by a variable block size and is signaled by a context-coded flag received for each block of samples. The block size is received at slice level for each chroma component together with the CC-ALF enable flag. Border padding for horizontal virtual borders uses repetition. For the remaining borders, we use the same type of padding as in regular ALF.

[0141] 2.8.1. Further Simplification of CC-ALF in JVET-P1008 In order to simplify the design of CC-ALF compared to JVET-P0080, we propose the following new aspects: -Reduce complexity As shown in Figure 5, the filter shape is changed to a 3x4 diamond shape to reduce the multiplier in the filter calculation. ○Limit the dynamic range of CC-ALF coefficients to 6 bits. ○Allows sharing of chroma ALF and multiplier. -Alignment with ALF ○ Limit filter selection to CTU level signaling. ○ Remove the temporal layer coefficient buffer. ○Use the symmetry line selection at the ALF virtual boundary.

[0142] Also, since the simplification reduces coding efficiency, a maximum of four filters can be applied per chroma component.

[0143] FIG. 5 illustrates a 3×4 diamond shaped filter.

[0144] 2.8.1.1. CC-ALF Syntax and Semantics 7.3.6 Slice Header Syntax 7.3.6.1 General slice segment header syntax

[0145] [Table 9]

[0146] [Table 10]

[0147] [Table 11]

[0148] [Table 12]

[0149] [Table 13]

[0150] Adaptive Loop Filter Data Syntax

[0151] [Table 14]

[0152] [Table 15]

[0153] 7.3.8.2 Coding Tree Unit Syntax

[0154] [Table 16]

[0155] [Table 17]

[0156] 3. Examples of technical problems that the disclosed technical solution aims to solve The current CC-ALF design has the following problems: 1. Only one CC-ALF mode is applied, which uses luminance information to improve chroma samples, which is not flexible. 2. The same SPS flag is used to control the use of non-linear ALF and CC-ALF. CC-ALF cannot be turned off separately from non-linear ALF. 3. CC-ALF signaling is independent of non-linear ALF flags (i.e. slice_alf_enabled_flag) which are not valid. 4. Only one CC-ALF filter (indicated by alf_ctb_cross_component_cb_idc for Cb or alf_ctb_cross_component_cr_idc for Cr) was allowed for each CTB, and no local features could be obtained. 5. While other filters such as SAO can improve chroma samples, CC-ALF improves chroma samples using luma information. Repeatedly improving the same chroma sample can result in significant distortion. 6. For one CTB, the inputs of the CC-ALF and chroma-ALF filtering processes are the same, i.e., the reconstructed samples after SAO processing. The interaction between the CC-ALF and chroma-ALF filtering processes is not considered.

[0157] 4. List of embodiments and techniques The embodiments listed below should be considered as examples to explain the general concept. These items should not be construed in a narrow sense. Moreover, these items can be combined in any way.

[0158] In this specification, an ALF filter may represent a filter applied to a given color component using information of the given color component (e.g., a luma ALF filter (linear or non-linear) is applied to luma using luma information and a chroma ALF filter is applied to chroma using chroma information, e.g., a Cb chroma ALF filter is for filtering Cb samples and a Cr chroma ALF filter is for filtering Cr samples), while a CC-ALF filter may represent a filter applied to a first color component using second color component information (e.g., the first color component may be Cb or Cr and the second color component may be luma).

[0159] CC-ALF expansion 1. CC-ALF may be extended to the case where samples in the first component are corrected by filtering the samples in the second component excluding the case where the first component is Cb / Cr and the second component is Y. a. Alternatively or additionally, an indication of the CC-ALF that the color component has been applied may be signaled. b. In one example, the first color component may be Y in a YCbCR format or G in a RGB format. c. In one example, the first color component may be Cb in a YCbCR format or B in a RGB format. d. In one example, the first color component may be Cr in a YCbCR format or R in a RGB format. e. In one example, the second color component may be Y in a YCbCR format or G in a RGB format. f. In one example, the second color component may be Cb in a YCbCR format or B in a RGB format. g. In one example, the second color component may be Cr in a YCbCR format or R in a RGB format.

[0160] 2. It is proposed that when deriving a "corrected sample" or "improved sample" of the first component in CC-ALF, samples from two or more components may be filtered. In one example, when calculating a correction of a sample from a first component, samples from a second component and a third component may be filtered, where the first component is different from the second and third components. i. In one example, the first component is Cb in a YCbCr format, and the second and third components are Y and Cr, respectively. ii. In one example, the first component is Cr in a YCbCr format, and the second and third components are Y and Cb, respectively. iii. In one example, the first component is Y in a YCbCr format, and the second and third components are Cb and Cr, respectively. iv. In one example, the first component is G in an RGB format, and the second and third components are R and B, respectively. v. In one example, the first component is B in an RGB format, and the second and third components are R and G, respectively. vi. In one example, the first component is R in an RGB format, and the second and third components are G and B, respectively. b. Alternatively, when calculating a correction for a sample from the first component, samples from the second and third components may be filtered, and the first component is the same as either the second or third component. i. In one example, the first component is Cb in a YCbCr format, and the second and third components are Cb and Y, respectively. ii. In one example, the first component is Cb in a YCbCr format, and the second and third components are Cb and Cr, respectively. iii. In one example, the first component is Cr in a YCbCr format, and the second and third components are Cr and Y, respectively. iv. In one example, the first component is Cr in a YCbCr format, and the second and third components are Cr and Cb, respectively. v. In one example, the first component is Y in a YCbCr format, and the second and third components are Y and Cb, respectively. vi. In one example, the first component is Y in a YCbCr format, and the second and third components are Y and Cr, respectively. vii. In one example, the first component is G in an RGB format, and the second and third components are G and R, respectively. viii. In one example, the first component is G in an RGB format, and the second and third components are G and B, respectively. ix. In one example, the first component is B in an RGB format, and the second and third components are B and R, respectively. x. In one example, the first component is B in an RGB format, and the second and third components are B and G, respectively. xi. In one example, the first component is R in an RGB format, and the second and third components are R and G, respectively. xii. In one example, the first component is R in an RGB format, and the second and third components are R and B, respectively. c. In one example, when calculating the correction of a sample from the first component, samples from three components may be filtered. i. In one example, the first component is Cb, or Cr, or Y in YCbCr format. ii. In one example, the first component is G, or R, or B in an RGB format. iii. In one example, the three components are Y, Cb, and Cr in YCbCr format. iv. In one example, the three components are R, G, and B in RGB format. d. In one example, the indication of the first / second / third components and / or how many components need to be filtered for one offset derivation may be signaled from the encoder to the decoder or may be pre-defined.

[0161] In the following description, it is assumed that CC-ALF is applied to chroma components (e.g., Cb or Cr). However, if CC-ALF is extended to improve other color components (e.g., luminance or G, or B, or R), the same idea can be applied by changing the color components.

[0162] Multiple filters in CC-ALF 3. A video unit (e.g., slice / picture) may reference more than one ALF APS for CC-ALF processing, i.e., for at least a first sample in the video unit, a CC-ALF filter in a first ALF APS may be utilized, while for at least a second sample in the video unit, a CC-ALF filter in a second ALF APS may be utilized. In one example, the number of the ALF APS referenced may be coded. b. In one example, the index of the ALF APS may be coded. c. In one example, the same set of ALF APS that the luma ALF filter references may be used for CC-ALF. i. Alternatively, and even further, there is no need to signal the ALF APS used to derive the CC-ALF filter. d. In one example, a subset or superset of the ALF APS referenced by the luma ALF may be utilized for the CC-ALF. i. Alternatively or additionally, the difference between the ALF APS used to derive the CC-ALF filter and the luma ALF filter may be signaled.

[0163] 4. Two or more CC-ALF filters may be used for the video domain (e.g., CTB) for CC-ALF processing, i.e., for at least a first sample in the video domain, a first CC-ALF filter may be used, while for at least a second sample in the video domain, a CC-ALF filter in a second CC-ALF filter may be used. In one example, indication of multiple CC-ALF filters may be signaled in the image area (e.g., CTB / CU / CB / PU / PB, CTB row). i. In one example, the indication may include a selected CC-ALF filter index in one ALF APS. ii. Alternatively, the indication may include the selected CC-ALF filter index and the index of the ALF APS with which the CC-ALF filter is associated. iii. Alternatively, the indication may include a selected fixed CC-ALF filter that is not signaled in the APS. a) Alternatively, a fixed CC-ALF filter may be predefined and used to predict the selected CC-ALF filter / to be inherited by the block as the selected CC-ALF filter. iv. In one example, the image area is the same as the image region. v. Alternatively, the image area may be larger (eg, a slice) or smaller (eg, a CU) than the image region. b. In one example, the chroma samples may be classified into a number of sets, and how to select the CC-ALF filter may depend on the classification result. i. In one example, two chroma components may derive classification independently. a) In one example, the classification process of a chroma component may depend on the chroma sample information for the chroma component. ii. In one example, two chroma components may jointly derive the classification. a) In one example, the classification process of two corresponding chroma blocks (Cb and Cr) may depend on the chroma samples within the two blocks. iii. In one example, the classification process for the chroma components may depend on the information of the luminance color component. a) In one example, the same class index may be set for a chroma block and its corresponding luma block. iv. In one example, the classification process for one or more chroma components may rely on a joint decision based on two or more components (Y+Cb+Cr, Y+Cb, Y+Cr, etc.). v. In one example, the chroma samples may be classified into sets following the corresponding classification of the luma samples in the luma ALF. vi. Alternatively or additionally, an instruction on how to select a CC-ALF filter according to the classification index may be signaled, for example a CC-ALF filter index per classification index may be signaled.

[0164] Review of CC-ALF filtering process 5. It is proposed to correct the refinements (eg derived offsets) before they are used to refine the chroma samples. In one example, the derived offset may be clipped to a given range. i. In one example, whether and / or how to clip the offset may be signaled from the encoder to the decoder.

[0165] 6. Instead of performing the CC-ALF filtering process twice for two corresponding chroma samples of a pixel, it is proposed to call it once. Suppose that Offset1 for a pixel S of a first color component may be derived from a luma sample, and Offset2 for a pixel S of a second color component may be derived from Offset1. In one example, Offset1 is equal to Offset2. b. In one example, Offset1 plus Offset2 may be equal to 0. c. In one example, Offset2 may be derived as a linear function of Offset1, eg, Offset2 is equal to a*Offset1+b. d. In one example, a clipping operation may be used to derive Offset2 from Offset1. e. In one example, Offset2 may be derived based on Offset1 and a slice level sign flag for joint Cb and Cr mode (eg, slice_joint_cbcr_sign_flag). i. In one example, if slice_joint_cbcr_sign_flag is 0, then offset2 may be set equal to offset1. a) Alternatively, in one example, if slice_joint_cbcr_sign_flag is 1, offset2 may be set equal to -offset1. f. In one example, one set of CC-ALF filters may be used for two corresponding chroma samples (eg, Cb and Cr). i. Alternatively or additionally, for two chroma components, the instruction for the CC-ALF filter may be signaled only once instead of twice. g. Alternatively or additionally, a correction offset for the chroma components may be further signaled or derived. i. In one example, an offset (denoted as O) derived from a luma sample may be used directly to improve one sample of a first chroma component (e.g., Cb), and a correction of O and O together may be used to improve one sample of a second chroma component (e.g., Cr).

[0166] 7. Instead of performing the CC-ALF filtering process at the sample level, it is proposed to apply it at the sub-block (containing more than one sample) level. In one example, the offset derivation process may be called only once for all chroma samples in a sub-block. b. In one example, the same offset may be used for chroma samples within a sub-block. i. Alternatively, the offset derived from at least a second color component may be further modified, for example, the offset derived from at least a second color component may be set as an internal offset, and a final offset of the samples in the sub-block may be derived from the internal offset. c. In one example, the dimensions of the sub-blocks may be set to MxN (eg, 2x2; 2x1, 1x2). d. In one example, the dimensions of the sub-blocks may depend on the color format (eg, 4:4:4 or 4:2:0). e. In one example, the dimensions of the sub-blocks may be different in different blocks (eg, CTB). f. In one example, the dimensions of the sub-blocks may be different for different color components. g. In one example, the CC-ALF filter support region may depend on the dimensions of the sub-block. h. In one example, the sub-block size and / or granularity of CC-ALF activation may be signaled in the video unit.

[0167] 8. The CC-ALF filtering process is invoked to apply filtering using coefficients to the difference of the luma samples rather than directly to the luma samples. In one example, the difference of a luma sample may be defined as the difference between one luma sample and a corresponding luma sample in the filter support (region). Let us denote the chroma sample coordinates by (x,y). i. In one example, the corresponding luma sample is the luma sample located at (x,y) in a 4:4:4 format. ii. In one example, the corresponding luma sample is the luma sample located at (2x, 2y) in a non-4:4:4 format. iii. In one example, the corresponding luma sample is derived as a function (eg, the average) of two samples located at (2x,2y) and (2x,2y+1) in the 4:2:0 format. iv. In one example, the filtering operation in equation (18) may be rewritten as follows:

[0168]

number

[0169] Where: (x,y) is the position of the chroma component i being enhanced. (x C ,y C ) is the luminance position based on (x,y). S i is the luma filter support for chroma component i. c i (x0, y0) represents the filter coefficients. Note that the corresponding sample is (x C ,y C ), when both x0 and y0 are equal to 0, they are S i are excluded. b. Alternatively or additionally, the difference luminance samples may be further modified, such as clipped, before being used. i. In one example, the filtering operation in equation (18) may be rewritten as follows:

[0170]

number

[0171] Where: (x,y) is the position of the chroma component i being enhanced. (x C ,y C ) is the luminance position based on (x,y). S iis the luma filter support for chroma component i. c i (x0, y0) represents the filter coefficients. Note that the corresponding sample is (x C ,y C ), when both x0 and y0 are equal to 0, they are S i and the function Clip may depend on (x0, y0). ii. In one example, whether and / or how clipping is to be performed may be signaled. iii. In one example, the clipping parameters may be signaled to the decoder. a) Alternatively and additionally, the method of signaling clipping parameters in luma ALF processing may be used to signal clipping parameters in CC-ALF. iv. In one example, clipping parameters (if available) used in luma ALF processing may be reused in CC-ALF.

[0172] CC-ALF signal notification 9. In one example, at least one syntax element is signaled in the APS to indicate whether the APS includes information related to CC-ALF. In one example, an APS that includes information related to CC-ALF may be marked as a new APS type. b. Cb and Cr CC-ALF filter signaling indications (eg, alf_cross_component_cb_filter_signal_flag and alf_cross_component_cr_filter_signal_flag), may be jointly coded with one syntax element (eg, indicated by alf_cross_component_filter_signal_flag). Alternatively, the syntax element may be a non-binary value.

[0173] 10. CC-ALF and coding tool X may be used exclusively, i.e., when CC-ALF is used, X is disabled and vice versa. In one example, coding tool X may be: i. SAO for chroma components ii. Chroma Residual Scaling in LMCS iii. Chroma Deblocking iv. ALF of chroma components b. In one example, signaling of CC-ALF related side information may be subject to a condition check to enable / disable coding tool X. c. In one example, signaling of coding tool X related side information may be subject to a condition check to enable / disable CC-ALF. d. In one example, if a coding tool (either CC-ALF or X) is disabled, the corresponding side information is not signaled. e. The decision whether CC-ALF and coding tool X are used exclusively may be made for the entire sequence, or for the entire picture, or for the entire slice, or for a region such as a tile, sub-picture, CTB, coding block, etc.

[0174] 11. Enabling / disabling of CC-ALF for a video domain (eg, CTB) or video unit (eg, sequence or picture or slice) may depend on the signaling and / or use of ALF for the luma component. In one example, if no ALF parameters are signaled for the luma component, CC-ALF is forced to be disabled. i. Alternatively, signaling of CC-ALF related side information may be subject to a condition check of ALF usage for the luma component (eg, alf_luma_filter_signal_flag). ii. Alternatively or additionally, if no ALF parameters are signaled, signaling of CC-ALF related side information may be omitted. b. In one example, if ALF is disabled for the luma component, CC-ALF is forced to be disabled. i. Alternatively or additionally, signaling of CC-ALF related side information (e.g., slice_cross_component_alf_cb_enabled_flag, slice_cross_component_alf_cr_enabled_flag, alf_ctb_cross_component_cb_idc, or alf_ctb_cross_component_cr_idc) may be subject to a condition check of ALF usage for the luma component (e.g., slice_alf_enabled_flag, or alf_ctb_flag). ii. Alternatively or additionally, signalling of CC-ALF related side information may be omitted.

[0175] 12. Whether to signal the use of CC-ALF may depend on the number of available ALF APS. In one example, the signaling of CC-ALF related information (e.g., slice_cross_component_alf_cb_enabled_flag, slice_cross_component_alf_cr_enabled_flag) is subject to a condition check that the number of available ALF APS is not equal to 0. Alternatively, the signaling of CC-ALF related information is subject to a condition check that the number of available ALF APS is greater than 0. b. In one example, if the quantity of available ALF APS is equal to 0, signaling of CC-ALF related information (eg, slice_cross_component_alf_cb_enabled_flag, slice_cross_component_alf_cr_enabled_flag) may be omitted. c. Alternatively, a conforming bitstream shall satisfy that the signaled APS index for CC-ALF and / or ALF is greater than or equal to the number of transmitted ALF APS. d. Alternatively, a conforming bitstream shall satisfy that the signaled APS index for CC-ALF and / or ALF refers to one available ALF APS. e. Alternatively, signaling the use of CC-ALF may depend on the number of available ALF APS that contain CC-ALF information.

[0176] Starting CC-ALF 13. CC-ALF may be applied at the block prediction stage. In one example, at the encoder side, a prediction error may be generated based on the original block and the CC-ALF filtered result, for example, the difference between the original signal and the CC-ALF filtered result. b. In one example, at the encoder side, a prediction error may be generated based on the original block, a predicted block according to a given prediction mode, and a CC-ALF filtered result (e.g., set to the original signal minus the predicted signal minus the CC-ALF filtered result). c. In one example, at the decoder side, the reconstruction of the block may depend on the CC-ALF filtered result and the residual. d. In one example, at the decoder side, reconstruction of a block may depend on the CC-ALF filtered result, the residual, and the prediction block generated from intra / inter / other coding modes. e. In one example, the above may be enabled for a subsample in a block, but disabled for the remaining samples. i. In one example, the sub-samples may represent samples in the first N rows / columns. ii. In one example, the sub-samples may represent samples in the last N rows / columns. iii. In one example, N may depend on the filter shape used in CC-ALF.

[0177] 14. CC-ALF may be applied after reconstructing one block (e.g., the CTB) and before decoding another block.

[0178] 15. Instead of applying CC-ALF between SAO and ALF, a different order of filtering methods may be applied. In one example, CC-ALF may be applied before all in-loop filters. b. In one example, CC-ALF may be applied after reconstruction of a block, and the filtered reconstructed block may be utilized to predict the next block. c. In one example, CC-ALF may be applied before SAO.

[0179] 16. Enabling or disabling CC-ALF may be signaled in video units other than slices (eg, sequence / picture / view / subpicture / tile). In one example, an indication to use CC-ALF may be conditionally signaled following enabling of ALF. b. In one example, the indication of CC-ALF usage may be conditionally signaled according to the chroma color format and / or a separate plane coding enable flag. c. In one example, indicating CC-ALF usage in a slice / CTB / CTU may be subject to the condition that CC-ALF checking is enabled for the video unit. d. In one example, a syntax element (eg, a flag) may be signaled in the SPS / VPS / PPS / picture header / slice header to indicate whether CC-ALF may be enabled. i. Alternatively and additionally, the syntax element may be coded only if ALF is enabled for the video unit (eg, only if sps_alf_enabled_flag is equal to 1). ii. Alternatively or additionally, the syntax element may be coded only if ALF is enabled for the video unit and ChromaArrayType is not equal to 0 (e.g., only if sps_alf_enabled_flag is equal to 1 and ChromaArrayType is not zero).

[0180] 17. Following the enabling of ALF for the luma component, an indication of the use of CC-ALF may be conditionally signaled. In one example, if ALF is disabled for the luma component, CC-ALF is disabled as well without being explicitly signaled.

[0181] 18. The order of processing the ALF of chroma components and the CC-ALF of chroma components may be predefined or adaptively changed in the M×N region. In one example, the filtered samples resulting from the M×N region chroma ALF filtering process may be further modified before being input to the CC-ALF of the M×N region chroma components. b. In one example, the filtered samples resulting from the chroma ALF filtering process and / or CC-ALF for a first M×N region may be used as input to a second M×N region. c. In one example, CC-ALF of chroma components in an M×N region may be performed first, and then ALF of chroma components in an M×N region may be performed. i. In one example, for one M×N region, the input of the chroma ALF filtering process may be the output of the CC-ALF. ii. In one example, the samples of the MxN region may have been modified by the CC-ALF before being input to the ALF of the chroma components of the MxN region. d. In one example, the M×N region may be a CTB. e. In one example, the MxN region may be smaller than the CTB. i. In one example, an M×N region may be one sample. f. The order may be signaled from the encoder to the decoder in the VPS / DPS / SPS / PPS / picture header / slice header, etc.

[0182] 19. A syntax element may be signaled to indicate the use of ALF and CC-ALF for a given chroma component (eg, Cb or Cr). In one example, the value of the syntax element may be non-binary. i. In one example, a syntax value equal to K indicates that both the nonlinear ALF and CC-ALF are disabled for the given color component. ii. In one example, a syntax value equal to L indicates that both the nonlinear ALF and CC-ALF are enabled for a given color component. iii. In one example, a syntax value equal to M indicates that only the non-linear ALF is enabled, while the CC-ALF is disabled for a given color component. iv. In one example, a syntax value equal to N indicates that only the CC-ALF is enabled while the non-linear ALF is disabled for a given color component. v. In the above example, K, L, M, and N are four integer values, e.g., K=0, L=3, M=1, and N=2. b. The value of the syntax element may be coded using a binarization method such as fixed length, unary, truncated unary, k-th order EG, etc.

[0183] 20. Whether and / or how to apply the above method may be based on one or more of the conditions listed below. a. Video content (e.g., screen content or natural content) b. In one example, the default mode may be signaled in a DPS / SPS / VPS / PPS / APS / picture header / slice header / tile group header / LCU (Largest Coding Unit) / CU (Coding Unit) / LCU row / LCU group / TU / PU block / video coding unit. c. CU / PU / TU / Block / Video Coding Unit Location d. Decryption information for the current block and / or its neighboring blocks i. Block dimensions / block shapes of the current block and / or its neighboring blocks e. Color format specification (e.g. 4:2:0, 4:4:4, RGB, YUV, etc.) f. Coding tree structure (e.g., dual tree or single tree) g. Slice / tile group type and / or picture type h. Color components (eg, may be applied only to the luma and / or chroma components). i. Time layer ID j. Standard Profile / Level / Tier

[0184] FIG. 6 is a block diagram of a video processing device 600. The device 600 may be used to implement one or more of the methods described herein. The device 600 may be implemented by a smartphone, a tablet, a computer, an Internet of Things (IoT) receiver, etc. The device 600 may include one or more processors 602, one or more memories 604, and a video processing circuit 606. The processor 602 may be configured to implement one or more methods described herein. The memory 604 may be used to store data and code used to implement the methods and techniques described herein. The video processing circuit 606 may be used to implement the techniques described herein in a hardware circuit. In some embodiments, the hardware circuit 606 may be partially or completely included within the processor 602, e.g., a graphics processor.

[0185] 7 is a block diagram illustrating an example video processing system 1700 in which various techniques disclosed herein may be implemented. Various implementations may include some or all of the components of system 700. System 700 may include an input 1902 for receiving video content. The video content may be received in a 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 702 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.

[0186] The system 700 may include a coding component 704 that may implement various encoding or decoding methods described herein. The coding component 704 may reduce the average bit rate of the video from the input 702 to the output of the coding component 704, generating a coded representation of the video. Thus, this encoding technique may be referred to as a video compression or video transcoding technique. The output of the coding component 704 may be stored or transmitted via a connected communication, as represented by component 706. The bitstream (or coded) representation of the video received at the input 702, stored or communicated, may be used by component 708 to generate pixel values ​​or displayable video that are sent to the display interface 710. The process of generating a user-viewable video from the bitstream representation may be referred to as video unfolding. Additionally, although certain video processing operations are referred to as "coding" operations or tools, it will be understood that the encoding tools or operations are performed by an encoder and corresponding decoding tools or operations that reverse the results of the encoding are performed by a decoder.

[0187] 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 include Serial Advanced Technology Attachment (SATA), PCI, IDE interfaces, etc. The techniques described herein may be implemented in various electronic devices such as mobile phones, laptops, smartphones, or other devices capable of digital data processing and / or video display.

[0188] FIG. 8 is a block diagram illustrating an example video coding system 100 that may utilize techniques of this disclosure.

[0189] 8, video coding system 100 may include source device 110 and destination device 120. Source device 110 generates encoded video data, which may be referred to as a video encoding device. Destination device 120 may decode the encoded video data generated by source device 110, which may be referred to as a video decoding device.

[0190] Source device 110 may include a video source 112, a video encoder 114, and an input / output (I / O) interface 116.

[0191] The video source 112 may include a source such as a video capture device, an interface for receiving video data from a video content provider, and / or a computer graphics system for generating video data, or a combination of these sources. The video data may include one or more pictures. The video encoder 114 encodes the video data from the video source 112 and generates a bitstream. The bitstream may include a bit sequence that forms a coded representation of the video data. The bitstream may include a coded picture and associated data. A coded picture is a coded representation of a picture. The associated data may include a sequence parameter set, a picture parameter set, and other syntax structures. The I / O interface 116 may include a modulator / demodulator (modem) and / or a transmitter. The coded video data may be transmitted directly to the destination device 120 via the I / O interface 116 over the network 130a. The coded video data may be stored in a storage medium / server 130b for access by the destination device 120.

[0192] Destination device 120 may include an I / O interface 126 , a video decoder 124 , and a display device 122 .

[0193] The I / O interface 126 may include a receiver and / or a modem. The I / O interface 126 may obtain encoded video data from the source device 110 or the storage medium / server 130b. The video decoder 124 may decode the encoded video data. The display device 122 may display the decoded video data to a user. The display device 122 may be integrated with the destination device 120 or may be external to the destination device 120 configured to interface with an external display device.

[0194] Video encoder 114 and video decoder 124 may operate according to a video compression standard, such as the High Efficiency Video Coding (HEVC) standard, the Versatile Video Coding (VVVM) standard, and other current and / or future standards.

[0195] FIG. 9 is a block diagram illustrating an example of a video encoder 200, which may be the video encoder 114 in the system 100 shown in FIG.

[0196] Video encoder 200 may be configured to perform any or all of the techniques of this disclosure. In the example of FIG. 9, video encoder 200 includes multiple functional components. Techniques described in this disclosure may be shared among various components of video encoder 200. In some examples, a processor may be configured to perform any or all of the techniques described in this disclosure.

[0197] Functional components of the video encoder 200 may include a partitioning unit 201, a prediction unit 202, which may include a mode selection unit 203, a motion estimation unit 204, a motion compensation unit 205, and an intra prediction unit 206, a residual generation unit 207, a transform unit 208, a quantization unit 209, an inverse quantization unit 210, an inverse transform unit 211, a reconstruction unit 212, a buffer 213, and an entropy coding unit 214.

[0198] In other examples, video encoder 200 may include more, fewer, or different functional components. In one example, prediction unit 202 may include an Intra Block Copy (IBC) unit. The IBC unit may perform prediction in an IBC mode where at least one reference picture is the picture in which the current video block is located.

[0199] Furthermore, some components, such as the motion estimation unit 204 and the motion compensation unit 205, may be highly integrated, but are depicted separately in the example of FIG. 9 for purposes of illustration.

[0200] The division unit 201 may divide a picture into one or more video blocks. The video encoder 200 and the video decoder 300 may support a variety of video block sizes.

[0201] The mode selection unit 203 may, for example, select one of the coding modes, either intra or inter, based on the error result, and provide the resulting intra or inter coded block to the residual generation unit 207 to generate residual block data, and to the reconstruction unit 212 to reconstruct the coded block as a reference picture. In some examples, the mode selection unit 203 may select a combination of Intra and Inter Prediction (CIIP) modes that perform prediction based on the inter prediction signal and the intra prediction signal. The mode selection unit 203 may also select the resolution of the motion vector for the block (e.g., sub-pixel or integer pixel accuracy) in the case of inter prediction.

[0202] To perform inter prediction on the current video block, motion estimation unit 204 may generate motion information for the current video block by comparing the current video block to one or more reference frames from buffer 213. Motion compensation unit 205 may determine a prediction video block for the current video block based on the motion information and decoded samples of pictures from buffer 213 other than the picture associated with the current video block.

[0203] Motion estimation unit 204 and motion compensation unit 205 may perform different operations on the current video block based on whether the current video block is an I slice, a P slice, or a B slice, for example.

[0204] In some examples, motion estimation unit 204 may perform unidirectional prediction on the current video block, and motion estimation unit 204 may search reference pictures in list 0 or list 1 for the current video block to find a reference video block. Motion estimation unit 204 may then generate a reference index indicating a reference picture in list 0 or list 1, including the reference video block and a motion vector indicating a spatial displacement between the current video block and the reference video block. Motion estimation unit 204 may output the reference index, the prediction direction indicator, and the motion vector as motion information of the current video block. Motion compensation unit 205 may generate a prediction video block for the current block based on the reference video block indicated by the motion information of the current video block.

[0205] In another example, motion estimation unit 204 may bidirectionally predict the current video block, and motion estimation unit 204 may search for a reference video block for the current video block among the reference pictures in list 0 and may search for another reference video block for the current video block among the reference pictures in list 1. Motion estimation unit 204 may generate a reference index indicating the reference pictures in list 0 and list 1 that contain the reference video block, and a motion vector indicating a spatial displacement between the reference video block and the current video block. Motion estimation unit 204 may output the reference index and the motion vector of the current video block as motion information of the current video block. Motion compensation unit 205 may generate a prediction video block for the current video block based on the reference video block indicated by the motion information of the current video block.

[0206] In some examples, the motion estimation unit 204 may output a full set of motion information for the decoding process of the decoder.

[0207] In some examples, motion estimation unit 204 may not output a full set of motion information for the current picture. Rather, motion estimation unit 204 may signal motion information for the current video block by reference to motion information of another video block. For example, motion estimation unit 204 may determine that the motion information of the current video block is sufficiently similar to the motion information of a neighboring video block.

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

[0209] In another example, motion estimation unit 204 may identify another video block and a Motion Vector Difference (MVD) in a syntax structure associated with the current video block. The motion vector difference indicates a difference between the motion vector of the current video block and the motion vector of the indicated video block. Video decoder 300 may use the motion vector of the indicated video block and the motion vector difference to determine the motion vector of the current video block.

[0210] As mentioned above, video encoder 200 may predictively signal motion vectors. Two examples of predictive signaling techniques that may be implemented by video encoder 200 include Advanced Motion Vector Prediction (AMVP) and merge mode signaling.

[0211] Intra prediction unit 206 may perform intra prediction on the current video block. If intra prediction unit 206 intra predicts the current video block, intra prediction unit 206 may generate predictive data for the current video block based on decoded samples of other video blocks in the same picture. The predictive data for the current video block may include a predicted video block and various syntax elements.

[0212] Residual generation unit 207 may generate residual data for the current video block by subtracting (e.g., as indicated by a minus sign) the predicted video block of the current video block from the current video block. The residual data for the current video block may include residual video blocks that correspond to different sample components of the samples in the current video block.

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

[0214] Transform processing unit 208 may generate one or more transform coefficient image blocks for the current video block by applying one or more transforms to a residual video block associated with the current video block.

[0215] After the transform processing unit 208 generates a transform coefficient image block associated with the current video block, the quantization unit 209 may quantize the transform coefficient image block associated with the current video block based on one or more Quantization Parameter (QP) values ​​associated with the current video block.

[0216] Inverse quantization unit 210 and inverse transform unit 211 may apply inverse quantization and inverse transform, respectively, to the transform coefficient image block to reconstruct a residual video block from the transform coefficient image block. Reconstruction unit 212 may add the reconstructed residual video block to corresponding samples from one or more prediction video blocks generated by prediction unit 202 to generate a reconstructed video block associated with the current block for storage in buffer 213.

[0217] After reconstruction unit 212 reconstructs the video block, a loop filtering operation may be performed to reduce video blocking artifacts in the video block.

[0218] Entropy encoding unit 214 may receive data from other functional components of video encoder 200. Upon receiving the data, entropy encoding unit 214 may perform one or more entropy encoding operations to generate entropy coded data, and output a bitstream that includes the entropy coded data.

[0219] FIG. 10 is a block diagram of an example video decoder 300, which may be the video decoder 114 in the system 100 shown in FIG.

[0220] Video decoder 300 may be configured to perform any or all of the techniques of this disclosure. In the example of FIG. 10, video decoder 300 includes multiple functional components. The techniques described in this disclosure may be shared among various components of video decoder 300. In some examples, a processor may be configured to perform any or all of the techniques described in this disclosure.

[0221] 10, the video decoder 300 includes an entropy decoding unit 301, a motion compensation unit 302, an intra prediction unit 303, an inverse quantization unit 304, an inverse transform unit 305, and a reconstruction unit 306, as well as a buffer 307. The video decoder 300 may, in some examples, perform a decoding path that is approximately the reverse of the encoding path described with respect to the video encoder 200 (e.g., FIG. 9).

[0222] The entropy decoding unit 301 may retrieve an encoded bitstream. The encoded bitstream may include entropy coded video data (e.g., coded blocks of video data). The entropy decoding unit 301 may decode the entropy coded video data, and from the entropy decoded video data, the motion compensation unit 302 may determine motion information including motion vectors, motion vector precision, reference picture list index, and other motion information. The motion compensation unit 302 may determine such information by, for example, implementing AMVP and merge mode.

[0223] The motion compensation unit 302 may generate motion compensated blocks and, in some cases, perform interpolation based on an interpolation filter. The syntax element may include an identifier for the interpolation filter to be used with sub-pixel precision.

[0224] Motion compensation unit 302 may calculate interpolated values ​​for sub-integer pixels of the reference block using an interpolation filter as used by video encoder 200 during encoding of the video block. Motion compensation unit 302 may determine the interpolation filter used by video encoder 200 based on the received syntax information and use the interpolation filter to generate the predictive block.

[0225] The motion compensation unit 302 may use a portion of the syntax information to determine the size of the blocks used to code frames and / or slices of the coded video sequence, partitioning information describing how each macroblock of a picture of the coded video sequence is divided, a mode indicating how each partition is coded, one or more reference frames (and reference frame lists) for each inter-coded block, and other information for decoding the coded video sequence.

[0226] The intra prediction unit 303 may form a prediction block from spatially adjacent blocks, for example, using an intra prediction mode received in the bitstream. The inverse quantization unit 303 inverse quantizes (i.e., reverse quantizes) the quantized video block coefficients provided in the bitstream and decoded by the entropy decoding unit 301. The inverse transform unit 303 applies an inverse transform.

[0227] Reconstruction unit 306 may sum the residual block with a corresponding prediction block generated by motion compensation unit 202 or intra prediction unit 303 to form a decoded block. If required, a deblocking filter may be applied to filter the decoded block to remove blocking artifacts. The decoded video block is stored in buffer 307, which provides reference blocks for subsequent motion compensation.

[0228] Some embodiments of the disclosed technology include determining or determining to enable a video processing tool or mode. In one example, when a video processing tool or mode is enabled, an encoder uses or implements the tool or mode in processing blocks of video, but may not necessarily modify the resulting bitstream based on the use of the tool or mode. That is, the conversion of blocks of video to a bitstream representation of video uses the video processing tool or mode when the video processing tool or mode is enabled based on the decision or determination. In another example, when a video processing tool or mode is enabled, a decoder processes the bitstream knowing that the bitstream has been modified based on the video processing tool or mode. That is, the conversion from the bitstream representation of video to blocks of video is performed using the video processing tool or mode enabled based on the decision or determination.

[0229] Some embodiments of the disclosed techniques include deciding or determining to disable a video processing tool or mode. In one example, when a video processing tool or mode is disabled, an encoder does not use the tool or mode in converting blocks of a video into a bitstream representation of the video. In another example, when a video processing tool or mode is disabled, a decoder processes the bitstream with the knowledge that the bitstream has not been modified using the video processing tool or mode that was disabled based on the decision or determination.

[0230] As used herein, the term "video processing" may refer to video encoding, video decoding, video compression, or video decompression. For example, a video compression algorithm may be applied during conversion of 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 spread to the same or different locations in the bitstream, e.g., as specified by a syntax. For example, a macroblock may be encoded in terms of transformed and coded error residual values, and using bits in the header and other fields in the bitstream.

[0231] In some examples, a video processing method includes determining to use Cross-Component Adaptive Loop Filtering (CC-ALF) during conversion to correct reconstructed sample values ​​of a first component video block of a first component with reconstructed sample values ​​of a second component video block of a second component for conversion between a video domain of a video including multiple component video blocks and a bitstream representation of the video, the first component excluding Cb and Cr color representations and the second component excluding a luma (Y) component, and performing the conversion based on the determination. In various embodiments, the bitstream representation may identify the first component, the video being represented using a YCbCr format and the first component being a Y component, or the video being represented using an RGB format and the first component being a G component.

[0232] Next, preferred items in some embodiments are listed.

[0233] The first set of items illustrates example implementations of the techniques described in the previous section (eg, item 1).

[0234] 1. A method of video processing (e.g., method 700 shown in FIG. 11 ), comprising: for converting between a video domain of a video including a plurality of component video blocks and a bitstream representation of the video, making a determination (702) that Cross-Component Adaptive Loop Filtering (CC-ALF) is to be used during the conversion to correct reconstructed sample values ​​of a first component video block of a first component using reconstructed sample values ​​of at least two component video blocks; and performing the conversion based on the determination.

[0235] 2. The method according to item 1, wherein one of the two components is the first component.

[0236] 3. The method of claim 1, wherein the two components are different from the first component.

[0237] 4. The method according to item 1, wherein CC-ALF is used based on the reconstructed sample values ​​of the image blocks of the three color components.

[0238] The following items provide example embodiments of the techniques described in the previous section (eg, item 4).

[0239] 5. A method of video processing, comprising: making a decision to use a first Cross-Component Adaptive Loop Filtering (CC-ALF) for conversion of a first portion of the video domain and a second CC-ALF for conversion of a second portion of the video domain for conversion between a video domain of a video including a plurality of component video blocks and a bitstream representation of the video; and performing the conversion based on the decision, wherein the first CC-ALF is used to correct reconstructed sample values ​​of a first component of the first portion of the video domain using reconstructed sample values ​​of a second component of the first portion of the video domain, and the second CC-ALF is used to correct reconstructed sample values ​​of a third component of the second portion of the video domain using reconstructed sample values ​​of a fourth component of the second portion of the video domain.

[0240] 6. The method of item 5, wherein the bitstream representation includes instructions for use of multiple CC-ALFs and / or a first CC-ALF and / or a second CC-ALF.

[0241] 7. The method according to item 6, wherein the instructions are included at a coding tree block, or encoding unit, or prediction unit, or prediction block, or coding tree block row level.

[0242] 8. The method according to any of items 5 to 7, wherein the transforming includes classifying samples of the first component or the third component into a plurality of sets, and determining first CC-ALF and / or second CC-ALF features based on the classification.

[0243] 9. The method according to any of items 5 to 7, wherein the first and third components are the same, and the second and fourth components are the same.

[0244] The following items present exemplary embodiments of the techniques described in the previous section (eg, item 7).

[0245] 10. A method of video processing comprising: determining to use Cross-Component Adaptive Loop Filtering (CC-ALF) at an M×N sub-block level for converting between a video block of a video having multiple components and a bitstream representation of the video; deriving a first offset from samples of at least a second component for one M×N sub-block; and performing the conversion based on the determination, wherein M and N are positive integers, and the CC-ALF is used to correct the M×N sub-block samples for a first component of the video based at least on the first offset.

[0246] 11. The method according to item 10, wherein CC-ALF uses the first offset value for all samples in an M×N subblock.

[0247] 12. The method of claim 10, wherein CC-ALF uses multiple final offset values ​​for samples in an M×N subblock, the final offset being derived from the first offset.

[0248] 13. The method according to any one of items 10 to 12, wherein M and N depend on the color format of the image.

[0249] 14. The method according to any of items 10 to 13, wherein the transformation of another image block of the image uses sub-blocks of different sizes for the transformation.

[0250] 15. The method according to any one of items 10 to 13, wherein M×N=2×2 or M×N=2×1 or M×N=1×2.

[0251] The following items provide example implementations of the techniques described in the previous section (eg, item 10).

[0252] 16. A method of video processing, comprising: determining that an exclusion rule is applicable to a transformation between a current video block of the video and a bitstream representation of the video, the exclusion rule specifying that the transformation is not permitted to use a coding tool and a cross-component adaptive loop filter coding tool together for the current video block; and performing the transformation based on the determination.

[0253] 17. The method according to item 16, wherein the coding tool has a sample adaptive offset coding tool for chroma components.

[0254] 18. The method according to item 16, wherein the coding tool has a residual scaling tool for luma mapping using a chroma scaling coding tool.

[0255] 19. The method according to item 16, wherein the coding tool has a deblocking process or an adaptive loop filter for the chroma samples.

[0256] 20. The method according to any of items 16 to 19, wherein the exclusion rule is signaled as a field in the bitstream representation.

[0257] The following items present exemplary embodiments of the techniques described in the previous section (eg, item 15).

[0258] 21. A method of video processing, comprising: determining an order for applying Cross-Component Adaptive Filtering (CC-ALF) and one or more loop filters to reconstructed samples of a video block of a video during conversion between the video block and a bitstream representation of the video; and performing the conversion according to the order, wherein the order excludes using CC-ALF after a sample adaptive offset tool and before an adaptive loop filter tool.

[0259] 22. The method of claim 21, wherein the order specifies applying CC-ALF to the reconstructed samples before applying any other loop filters.

[0260] 23. The method of claim 21, wherein the order specifies that CC-ALF is applied to reconstructed samples of a video block before using them to predict subsequent video blocks of the video being transformed.

[0261] 24. The method according to any one of items 21 to 23, wherein the order specifies using CC-ALF before the sample adaptive offset loop filter.

[0262] 25. The method of any one of items 1 to 24, wherein the conversion includes encoding the video into a coded representation.

[0263] 26. A method according to any one of items 1 to 25, wherein the conversion includes decoding the coded representation to generate pixel values ​​of the image.

[0264] 27. A video decoding device comprising a processor configured to implement the methods described in one or more of items 1 to 26.

[0265] 28. A video encoding device comprising a processor configured to implement the methods described in one or more of items 1 to 26.

[0266] 29. A computer program product having computer code stored thereon, the computer program product causing the processor to implement a method according to any one of items 1 to 26 when the code is executed by a processor.

[0267] 30. Any method, apparatus or system described herein.

[0268] The second set of items describes particular features and aspects of the technology disclosed in the previous section (eg, items 1 through 7).

[0269] 1. A method of video processing, comprising: determining (1212) to use a Cross-Component Adaptive Filtering (CC-ALF) tool to improve chroma sample values ​​using luma sample values ​​for conversion between a video domain of the video and a bitstream representation of the video; and performing (1214) the conversion based on the determination, wherein the improving includes correcting the chroma sample values ​​using a final refinement that is a further refinement of a first refinement value determined by selectively filtering the luma sample values ​​(e.g., method 1210 shown in FIG. 12A).

[0270] 2. The method of claim 1, wherein further improving the first improvement value includes clipping the first improvement value to a given range.

[0271] 3. The method of claim 2, wherein the bitstream representation includes information indicating whether and / or how to clip the first refinement.

[0272] 4. A method of video processing, comprising: determining (1222) to use a Cross-Component Adaptive Loop Filtering (CC-ALF) tool to correct sample values ​​of a first video block of a first component using sample values ​​of a second video block of a second component for conversion between a video domain of a video and a bitstream representation of the video; and performing the conversion based on the determination (1224), wherein the CC-ALF tool is used except when both of the following are satisfied (e.g., method 1220 shown in FIG. 12B ): 1) the first component is a Cr or Cb component; and 2) the second component is a Y component.

[0273] 5. The method of claim 4, wherein the bitstream representation identifies a first component.

[0274] 6. The method of item 4, wherein at least one of the first component and the second component is a Y component in a first image block represented in YCbCr format, or a G component in a first image block represented in RGB format.

[0275] 7. The method of claim 4, wherein at least one of the first component and the second component is a Cb component in a first image block represented in YCbCr format, or a B component in a first image block represented in RGB format.

[0276] 8. The method of item 4, wherein at least one of the first component and the second component is a Cr component in a first image block represented in YCbCr format, or an R component in a first image block represented in RGB format.

[0277] 9. The method of claim 4, wherein the CC-ALF tool is used to further use sample values ​​of a third video block of a third component to improve sample values ​​of the first video block, the second component and the third component being different from the first component, and samples from the second component and the third component being filtered when correcting the sample values ​​of the first component.

[0278] 10. The method of item 9, wherein the first component is Cb in a first image block represented using a YCbCr format, and the second and third components are Y and Cr components, respectively.

[0279] 11. The method of claim 9, wherein the first component is Cr in a first image block represented using a YCbCr format, and the second and third components are Y and Cb components, respectively.

[0280] 12. The method of claim 9, wherein the first component is Y in a first image block represented using a YCbCr format, and the second and third components are Cb and Cr components, respectively.

[0281] 13. The method of item 9, wherein the first component is G in a first image block represented using an RGB format, and the second and third components are R and B components, respectively.

[0282] 14. The method of item 9, wherein the first component is B in a first image block represented using an RGB format, and the second and third components are R and G components, respectively.

[0283] 15. The method of item 9, wherein the first component is R in a first image block represented using an RGB format, and the second and third components are G and B components, respectively.

[0284] 16. The method of claim 4, wherein the CC-ALF tool is used to further use sample values ​​of the third video block of the third component to improve the sample values ​​of the first video block, one of the second component and the third component being the same as the first component, and wherein samples from the second component and the third component are filtered when correcting the sample values ​​of the first component.

[0285] 17. The method of claim 16, wherein the first component is Cb in a first component image block represented using a YCbCr format, and the second and third components are Cb and Y components, respectively.

[0286] 18. The method of item 16, wherein the first component is Cb in a first component image block represented using a YCbCr format, and the second and third components are Cb and Cr components, respectively.

[0287] 19. The method of claim 16, wherein the first component is Cr in a first component image block represented using a YCbCr format, and the second and third components are Cr and Y components, respectively.

[0288] 20. The method of claim 16, wherein the first component is Cr in a first component image block represented using a YCbCr format, and the second and third components are Cr and Cb components, respectively.

[0289] 21. The method of claim 16, wherein the first component is Y in a first component image block represented using a YCbCr format, and the second and third components are Y and Cb components, respectively.

[0290] 22. The method of claim 16, wherein the first component is Y in a first component image block represented using a YCbCr format, and the second and third components are Y and Cr components, respectively.

[0291] 23. The method of item 16, wherein the first component is G in a first component image block represented using RGB format, and the second component and the third component are G and R components, respectively.

[0292] 24. The method of item 16, wherein the first component is G in a first component image block represented using RGB format, and the second component and the third component are G and B components, respectively.

[0293] 25. The method of claim 16, wherein the first component is B in a first component image block represented using an RGB format, and the second component and the third component are B and R components, respectively.

[0294] 26. The method of item 16, wherein the first component is B in a first component image block represented using RGB format, and the second component and the third component are B and G components, respectively.

[0295] 27. The method of item 16, wherein the first component is R in a first component image block represented using an RGB format, and the second component and the third component are R and G components, respectively.

[0296] 28. The method of item 16, wherein the first component is R in a first component image block represented using an RGB format, and the second component and the third component are R and B components, respectively.

[0297] 29. The method of claim 4, wherein the CC-ALF tool further uses sample values ​​of a third image block of a third component, the first to third components being different from each other, and the sample values ​​of the first image block are improved based on the filtered sample values ​​of the first to third image blocks.

[0298] 30. The method of claim 29, wherein the first component is Cb, Cr, or Y in a first component image block represented using a YCbCr format.

[0299] 31. The method of claim 29, wherein the first component is G, R, or B in a first component image block represented using an RGB format.

[0300] 32. The method according to item 29, wherein the first to third components are Y, Cb, and Cr components in the YCbCr format.

[0301] 33. The method according to item 29, wherein the first to third components are R, G, and B components in an RGB format.

[0302] 34. The method of item 29, wherein the bitstream representation includes at least one of i) an indication of the first through third components, and / or ii) a number of components to be stored for offset derivation.

[0303] 35. A method of video processing, comprising: determining, in accordance with a rule, whether to use a CC-ALF (Cross-Component Adaptive Loop Filtering) tool for correcting sample values ​​of a first component using sample values ​​of a second component for conversion between video units of a video and a bitstream representation of the video; and performing the conversion based on the decision, wherein the rule specifies the use of two or more ALF APSs (Adaptation Parameter Sets) including a first ALF APS and a second ALF APS in the bitstream representation.

[0304] 36. The method of item 35, wherein the first APS and the second APS are the same.

[0305] 37. The method of item 35, wherein the first APS and the second APS are different from each other.

[0306] 38. The method according to item 35, wherein a video unit corresponds to a slice or picture of a video.

[0307] 39. The method of claim 35, wherein the rules specify that the two or more ALF APS include a first ALF APS applied to a first sample in a video unit and a second ALF APS applied to a second sample in the video unit.

[0308] 40. The method of claim 35, wherein the number of two or more ALF APSs referenced by a video unit is included in the bitstream representation.

[0309] 41. The method of claim 35, wherein indices of two or more ALF APSs referenced by a video unit are included in the bitstream representation.

[0310] 42. The method according to item 35, wherein the same set, subset, or superset of two or more ALF APSs referenced by the luminance ALF filters is utilized by the CC-ALF tool.

[0311] 43. The method of item 42, wherein the two or more ALF APSs used to derive the CC-ALF filter are not included in the bitstream representation.

[0312] 44. The method according to item 42, wherein the difference between the ALF APSs used to derive the CC-ALF filter and the luma ALF filter is included in the bitstream representation.

[0313] 45. A method of video processing, comprising: determining, in accordance with rules, whether to use a Cross-Component Adaptive Loop Filtering (CC-ALF) tool for correcting sample values ​​of a first component using sample values ​​of a second component for conversion between a video domain of the video and a bitstream representation of the video; and performing the conversion based on the determination, wherein the rules specify the use of two or more CC-ALF filters including a first CC-ALF filter applied to first samples of the video domain and a second CC-ALF filter applied to second samples of the video domain.

[0314] 46. ​​The method of claim 45, wherein the bitstream representation includes an indication in the image region.

[0315] 47. The method of claim 45, wherein the bitstream representation includes an indication to an image area smaller or larger than the image area.

[0316] 48. The method according to item 47, wherein the image region corresponds to a coding tree block, and the image region is a slice or a coding unit.

[0317] 49. The method of any of items 45 to 48, wherein the bitstream representation includes instructions including indices for two or more CC-ALF filters selected from one ALF Adaptation Parameter Set (APS).

[0318] 50. The method of any of items 45 to 48, wherein the bitstream representation includes instructions including indices for two or more CC-ALF filters selected from indices of one or more ALF APSs and indices of one or more ALF APSs.

[0319] 51. The method according to any of items 45 to 48, wherein at least one of the two or more CC-ALF filters is selected from predefined fixed CC-ALF filters or inherited from the video domain, and the bitstream representation includes an instruction including an index for the selected fixed CC-ALF filter that is not included in the APS.

[0320] 52. The method according to item 45, wherein the conversion includes one or more processes for classifying chroma samples of one or more chroma components into a plurality of sets and determining characteristics of the first CC-ALF filter and / or the second CC-ALF filter based on the classification.

[0321] 53. The method according to item 52, wherein the chroma samples of the two chroma components independently derive the classification.

[0322] 54. The method according to item 52, in which chroma samples of two chroma components are jointly used to derive the classification.

[0323] 55. The method according to item 52, wherein the one or more processes for classifying chroma samples of a chroma component depend on information of the corresponding luminance color component.

[0324] 56. The method according to item 52, wherein the one or more processes for classifying chroma samples of one or more chroma components depend on a joint decision based on one or more chroma components.

[0325] 57. The method according to item 52, wherein chroma samples are classified into a plurality of sets based on the classification of corresponding luma samples in the luma ALF.

[0326] 58. The method according to item 52, wherein an indication of the first CC-ALF filter and / or the second CC-ALF filter according to the classification index is signaled.

[0327] 59. A method of video processing (e.g., method 1230 shown in FIG. 12C ), comprising: deriving a first offset for a first color component in the video domain based on luma samples of the video domain (1232); deriving a second offset for a second color component in the video domain based on the first offset (1234); and performing the conversion by applying a Cross-Component Adaptive Loop Filtering (CC-ALF) tool to correct the first color component and the second color component based on the luma samples of the video domain (1236), for conversion between a video domain of a video image and a bitstream representation of the video image.

[0328] 60. The method of item 59, wherein the first offset and the second offset are the same as each other.

[0329] 61. The method of item 59, wherein the sum of the first offset and the second offset is equal to 0.

[0330] 62. The method of item 59, wherein the second offset is derived using a linear function of the first offset.

[0331] 63. The method of claim 59, wherein the second offset is derived using a clipping operation of the first offset.

[0332] 64. The method of claim 59, wherein the second offset is derived based on the first offset and a slice level flag indicating a joint Cb and Cr mode.

[0333] 65. The method according to item 59, wherein a CC-ALF filter set is used for the first color component and the second color component.

[0334] 66. The method of item 59, wherein a correction for at least one of the first offset and the second offset is signaled or derived.

[0335] 67. A method of video processing (e.g., method 1240 shown in FIG. 12D ), comprising determining (1242) to use CC-ALF (Cross-Component Adaptive Loop Filtering) at an M×N sub-block level for conversion between a video block of a video having multiple components and a bitstream representation of the video, where M and N are positive integers and at least one of M and N is greater than 1, and performing (1244) the conversion based on the determination, wherein the CC-ALF tool is used to correct the M×N sub-block samples for a first component of the video based on a second component of the video.

[0336] 68. The method of item 67, further comprising deriving a first offset from samples of at least the second component for one M×N sub-block, wherein the CC-ALF tool is used to correct the M×N sub-block samples based on the first offset.

[0337] 69. The method according to item 68, wherein the CC-ALF tool uses the first offset for all samples in the M×N subblock.

[0338] 70. The method of claim 68, wherein the CC-ALF tool uses a final offset for samples in an M×N subblock, the final offset being derived from the first offset.

[0339] 71. The method according to item 67, wherein M and N depend on the color format of the image.

[0340] 72. The method according to item 67, wherein M×N=2×2 or M×N=2×1 or M×N=1×2.

[0341] 73. The method of claim 67, wherein the transformation of another image block of the image uses sub-blocks of different sizes for the transformation.

[0342] 74. The method according to item 67, wherein M and N depend on which color is represented by the first component.

[0343] 75. The method according to item 67, wherein the CC-ALF tool support region depends on the values ​​of M and N.

[0344] 76. The method according to item 67, wherein the values ​​of M and N and / or the granularity of the CC-ALF tool are signaled in image units of the image.

[0345] 77. The method of any one of items 1 to 76, wherein the conversion includes encoding the video into a bitstream representation.

[0346] 78. A method according to any one of items 1 to 76, wherein the conversion includes decoding the bitstream representation to generate the video.

[0347] 79. A video processing device comprising a processor configured to carry out the method described in any one or more of items 1 to 78.

[0348] 80. A computer-readable medium having stored thereon program code which, when executed, causes a processor to perform the method recited in any one or more of items 1 to 78.

[0349] 81. A computer-readable medium storing a coded or bitstream representation generated according to any of the methods described above.

[0350] The third set of items describes particular features and aspects of the technology disclosed in the previous section (eg, item 8).

[0351] 1. A method of video processing (e.g., method 1310 shown in FIG. 13 ), comprising: determining to correct chroma samples in a video domain using a CC-ALF (Cross-Component Adaptive Loop Filtering) process based on filtering of luma sample differences for conversion between a video domain of a video and a bitstream representation of the video; and performing the conversion based on the determination.

[0352] 2. The method according to item 1, wherein the luminance sample difference corresponds to the difference between the value of the luminance sample in the filter support region and the value of the corresponding luminance sample of the chroma sample in the image region.

[0353] 3. The method according to item 2, wherein the corresponding luma sample is located at (x,y) relative to an image domain having a 4:4:4 format, where (x,y) indicates the coordinates of the chroma sample.

[0354] 4. The method according to item 2, wherein the corresponding luma sample is located at (2x, 2y) for a video area that is not 4:4:4 format, and (x, y) indicate the coordinates of the chroma sample coordinates. method.

[0355] 5. The method according to item 2, in which the corresponding luminance sample is derived as a function of two samples located at (2x, 2y) and (2x, 2y+1) relative to a video domain having a 4:2:0 format, where (x, y) indicate the coordinates of the chroma sample.

[0356] 6. The method according to item 1, in which the luminance sample difference is clipped before being used.

[0357] 7. The method of claim 6, wherein the bitstream representation includes information about whether and / or how to clip luma sample differences.

[0358] 8. The method according to item 6, wherein the bitstream representation includes clipping parameters for clipping luma sample differences.

[0359] 9. The method according to item 6, wherein the signaling method for clipping parameters in luminance ALF processing is used to signal clipping parameters in CC-ALF processing.

[0360] 10. The method according to item 1, wherein the clipping parameters used in the luminance ALF processing are used in the CC-ALF processing.

[0361] 11. The method according to any one of claims 1 to 10, wherein the conversion includes encoding the video into a bitstream representation.

[0362] 12. The method of any of items 1 to 10, wherein the conversion includes decoding the bitstream representation to generate the video.

[0363] 13. A video processing device comprising a processor configured to implement the method according to any one or more of items 1 to 12.

[0364] 14. A computer readable medium having stored thereon program code which, when executed, causes a processor to perform the method recited in any one or more of items 1 to 12.

[0365] 15. A computer-readable medium storing a coded or bitstream representation generated according to any of the methods described above.

[0366] The fourth set of items describes particular features and aspects of the techniques disclosed in the previous chapter (eg, items 9-20).

[0367] 1. A method of video processing (e.g., method 1410 shown in FIG. 14A ), comprising converting between portions of chroma components of an image and a bitstream representation of the image in accordance with rules, the rules specifying that whether a Cross-Component Adaptive Loop Filtering (CC-ALF) tool is available for converting a portion of the image depends on whether the availability or use of an Adaptive Loop Filtering (ALF) tool is indicated for a corresponding portion of the luma component.

[0368] 2. The method of claim 1, wherein the portion of the chroma component corresponds to an image region or image unit.

[0369] 3. The method according to item 2, wherein the image region corresponds to a coding tree block.

[0370] 4. The method according to item 2, wherein the video unit corresponds to a sequence or a picture or a slice of a video.

[0371] 5. The method according to item 1, wherein the rule specifies that if no ALF parameters are signaled for the corresponding part of the luminance component, the CC-ALF tool is not available.

[0372] 6. The method according to item 1, wherein the signaling of information related to the CC-ALF tool is based on the use of the ALF tool in a corresponding part of the luminance component.

[0373] 7. The method according to item 1, wherein the bitstream representation omits information related to a CC-ALF tool if the ALF tool for the corresponding part of the luma component is disabled.

[0374] 8. The method according to item 6, wherein the signaling of information related to a CC-ALF tool at the slice level depends on the use of an ALF tool for a corresponding part of the luma component at the slice level.

[0375] 9. The method according to item 6, wherein the signaling of information related to a CC-ALF tool at the CTB (Coding Tree Block) level depends on the use of an ALF tool for a corresponding part of the luminance component at the CTB level.

[0376] 10. The method according to item 6, wherein information relating to the CC-ALF tool is signaled using syntax elements corresponding to i) slice_cross_component_alf_enabled_flag, ii) slice_cross_component_alf_cr_enabled_flag, iii) alf_ctb_cross_component_cb_idc, or iv) alf_ctb_cross_component_cr_idc.

[0377] 11. The method according to item 6, wherein the use of the ALF tool for the corresponding part is signalled using a syntax element corresponding to i) slice_alf_enabled_flag or ii) alf_ctb_flag.

[0378] 12. The method according to item 1, wherein signaling of information related to the CC-ALF tool is omitted if no ALF parameters are signaled for the corresponding part of the luminance component.

[0379] 13. The method according to item 1, wherein the rule specifies that a CC-ALF tool is disabled for a portion of a chroma component if the ALF tool is disabled for a corresponding portion of a luminance component.

[0380] 14. A method of video processing, comprising performing a conversion between a video domain of a video and a bitstream representation of the video, the bitstream representation conforming to a format rule specifying that whether or not a syntax element indicating the use of a CC-ALF (Cross-Component Adaptive Loop Filtering) tool in the bitstream representation is included depends on the number of ALF (Adaptive Loop Filtering) APS (Adaptation Parameter Sets) available.

[0381] 15. The method according to item 14, wherein the format rules specify that the syntax element is included in the bitstream representation if the number of ALF APS is not equal to or greater than 0.

[0382] 16. The method according to item 14, wherein the format rules specify that if the number of ALF APS is 0, the syntax element is omitted in the bitstream representation.

[0383] 17. The method according to item 14, wherein the format rule specifies that a conforming bitstream satisfies that the APS index for the CC-ALF tool and / or the ALF tool is not less than the number of transmitted ALF APSs.

[0384] 18. The method of item 14, wherein the format rules specify that a conforming bitstream satisfies that the APS index for the CC-ALF tool and / or the ALF tool references one available ALF APS.

[0385] 19. The method according to item 14, wherein the ALF APS includes information related to the CC-ALF tool.

[0386] 20. A method of video processing, comprising performing a conversion between a video unit of a video and a bitstream representation of the video, the bitstream representation complying with format rules that specify the applicability of a Cross-Component Adaptive Loop Filtering (CC-ALF) tool for enhancing sample values ​​of a first component using sample values ​​of a second component included in the bitstream representation at a video unit level different from the slice level.

[0387] 21. The method of claim 20, wherein a video unit corresponds to a sequence, a picture, a view, a subpicture, or a tile, and does not correspond to a slice.

[0388] 22. The method according to item 20, wherein the formatting rules further specify that instructions for using the CC-ALF tool are notified based on activation of the ALF tool.

[0389] 23. The method of item 20, wherein the format rules further specify that the indication of use of CC-ALF tools is signaled based on a syntax element indicating a chroma color format and / or a video block of a video unit includes both luma samples and chroma samples.

[0390] 24. The method of claim 20, wherein the formatting rules further specify that instructions for use of CC-ALF tools are included in the bitstream representation based on the use of chroma color formats and / or separate color plane coding.

[0391] 25. The method of item 20, wherein the format rules further specify that, based on the applicability of the CC-ALF tools to the video unit, an indication of the use of CC-ALF tools in a video region corresponding to a slice, coding tree block, or coding tree unit is included in the bitstream representation.

[0392] 26. The method of item 20, wherein the format rules further specify that a syntax element indicating the applicability of a CC-ALF tool is signaled in a Sequence Parameter Set (SPS), a Video Parameter Set (VPS), a Picture Parameter Set (PPS), a picture header, or a slice header.

[0393] 27. The method according to item 26, wherein the syntax element is coded only if the ALF tool is enabled for the video unit.

[0394] 28. The method according to item 26, wherein the syntax element is coded only for conditions that satisfy both: i) the ALF tool is enabled for the video unit; and ii) the variable ChromaArrayType is not equal to 0.

[0395] 29. The method according to item 26, wherein the syntax element is coded only for conditions that satisfy both: i) ALF is enabled for the video unit; and ii) the chroma format of the video unit is monochrome.

[0396] 30. A method of video processing comprising performing a conversion between a video domain of a video and a bitstream representation of the video, the bitstream representation conforming to a format rule specifying that whether a syntax element indicates the use of a Cross-Component Adaptive Loop Filtering (CC-ALF) tool in the bitstream representation depends on the availability of an Adaptation Loop Filtering (ALF) tool for use on a corresponding part of the luminance component.

[0397] 31. The method according to item 30, wherein the format rules specify that the CC-ALF tools are disabled without being explicitly signaled if the ALF tools are not available for the corresponding part of the luminance component.

[0398] 32. A method of video processing, comprising performing a conversion between a video domain of a video and a bitstream representation of the video, the bitstream representation conforming to a format rule specifying that the bitstream representation includes an Adaptation Parameter Set (APS) including a syntax element for indicating whether the APS includes information related to a cross-component adaptive filtering CC-ALF tool.

[0399] 33. The method according to item 32, in which an APS that includes information related to a CC-ALF tool has a different type than other APS that do not have information related to a CC-ALF type.

[0400] 34. The method of item 32, wherein the syntax element corresponds to a combination of a first syntax element associated with a CC-ALF tool applied to the Cb component and a second syntax element associated with a CC-ALF tool applied to the Cr component.

[0401] 35. The method of claim 32, wherein the syntax elements have non-binary values.

[0402] 36. A method of video processing (e.g., method 1420 shown in FIG. 14B ), comprising: determining that exclusion rules are applicable to a conversion between a video domain of a video and a bitstream representation of the video, the exclusion rules specifying that the conversion is not permitted to use coding tools and CC-ALF (Cross-Component Adaptive Loop Filtering) tools in combination for the video domain; and performing the conversion based on the determination.

[0403] 37. The method described in item 36, wherein the encoding tool includes a sample adaptive offset coding tool for chroma components, a residual scaling tool for luma mapping using a chroma scaling coding tool, a deblocking process for the chroma components, and an adaptive loop filter for the chroma components.

[0404] 38. The method according to item 36, wherein the bitstream representation includes information related to CC-ALF tools depending on the activation status of the coding tools.

[0405] 39. The method of claim 36, wherein the bitstream representation includes information related to a coding tool depending on the enablement status of the CC-ALF tool.

[0406] 40. The method according to item 36, wherein the bitstream complies with formatting rules that specify that information related to the coding tool is omitted if the coding tool is disabled.

[0407] 41. The method of claim 36, wherein the bitstream complies with formatting rules that specify that information related to the coding tool is omitted if the coding tool is disabled.

[0408] 42. The method of claim 36, wherein the image region corresponds to an entire sequence, an entire picture, an entire slice, a tile, a subpicture, a coding tree block, or a coding block.

[0409] 43. A method of video processing, comprising performing, in accordance with rules, for conversion between chroma blocks of an image and a bitstream representation of the image, wherein during the conversion, a Cross-Component Adaptive Loop Filtering (CC-ALF) tool is used to determine predictions of chroma blocks based on samples of the luma blocks, the rules specifying which luma blocks are used for prediction and / or the order in which the CC-ALF tool is used during the conversion.

[0410] 44. The method according to item 43, wherein the rules specify applying the CC-ALF tool during a prediction stage for predicting sample values ​​of a chroma block.

[0411] 45. The method according to item 44, in which a prediction error is generated based on the difference between the original signal before the CC-ALF tool is applied and the CC-ALF filtered result.

[0412] 46. ​​The method according to item 44, wherein the reconstruction of the chroma blocks depends on the CC-ALF filtered results and residuals.

[0413] 47. The method according to item 44, wherein the rule is applied to a partial sample in a chroma block and is not applied to the remaining samples in the chroma block.

[0414] 48. The method according to item 47, wherein the subsamples correspond to samples in the first N rows or columns or samples in the last N rows or columns.

[0415] 49. The method according to item 48, wherein N depends on the filter shape used in the CC-ALF tool.

[0416] 50. The method according to item 43, wherein the rules specify applying the CC-ALF tool after reconstructing a chroma block before decoding another block.

[0417] 51. The method according to item 43, wherein the rules specify that the order excludes using a CC-ALF tool after a sample adaptive offset tool and before an adaptive loop filter tool.

[0418] 52. The method according to item 43, wherein the rules specify that the CC-ALF tool is applied before applying other loop filters.

[0419] 53. The method according to item 43, wherein the rules specify that the CC-ALF tool is applied to the reconstructed samples of the chroma block before using them to predict subsequent image blocks of the image.

[0420] 54. The method according to item 43, wherein the rules specify applying the CC-ALF tool before the sample adaptive offset loop filter.

[0421] 55. A method of image processing (e.g., method 1430 shown in FIG. 14C ), comprising: determining an order of processing of adaptation loop filtering (ALF) of chroma components and cross-component adaptive loop filtering (CC-ALF) of chroma components according to a rule (1432); and performing conversion between the image and a bitstream representation of the image based on the determination (1434), wherein the rule specifies whether the order is predefined or adaptively changed in a front-image image domain, and the image is of size M×N, where M and N are positive integers.

[0422] 56. The method according to item 55, wherein the filtered samples obtained after processing ALF in an M×N region are corrected before applying CC-ALF to the M×N region.

[0423] 57. The method according to item 55, wherein the filtered samples obtained after processing ALF or CC-ALF in a first M×N region are used as input to a second M×N region.

[0424] 58. The method according to item 55, in which CC-ALF of chroma components in an M×N region is first performed, and then ALF of chroma components in an M×N region is performed.

[0425] 59. The method according to item 58, wherein the output of the CC-ALF is provided as the input of the ALF.

[0426] 60. The method according to item 58, wherein samples of the M×N region are modified by CC-ALF before being provided as input to the ALF.

[0427] 61. The method according to item 55, wherein the image area corresponds to or is smaller than a Coding Tree Block (CTB).

[0428] 62. The method according to item 55, wherein the order is signaled in a Sequence Parameter Set (SPS), a Video Parameter Set (VPS), a Picture Parameter Set (PPS), a Dependency Parameter Set (DPS), a picture header, or a slice header.

[0429] 63. A method of video processing, comprising performing a conversion between a video domain of a video and a bitstream representation of the video, the bitstream representation conforming to a format rule specifying the inclusion of a syntax element in the bitstream representation, the syntax element indicating the use of Adaptation Loop Filtering (ALF) and Cross-Component Adaptive Loop Filtering (CC-ALF) for one chroma component.

[0430] 64. The method of claim 63, wherein the syntax elements have values ​​that are non-binary.

[0431] 65. The method according to item 64, wherein a value equal to K indicates that the ALF and CC-ALF are disabled for one color component, the ALF is nonlinear, and K is an integer.

[0432] 66. The method of item 64, wherein a value equal to L indicates that ALF and CC-ALF are enabled for one color component, ALF is nonlinear, and L is an integer.

[0433] 67. The method according to item 64, wherein a value equal to M indicates that only the nonlinear ALF is enabled while the CC-ALF is disabled for a given color component, and M is an integer number.

[0434] 68. The method according to item 64, wherein a value equal to N indicates that only the CC-ALF is enabled while the nonlinear ALF is disabled for one color component, and N is an integer number.

[0435] 69. The method according to any one of items 65 to 68, wherein K, L, M, and N are four integer values ​​different from each other.

[0436] 70. The method of item 63, wherein the syntax elements have values ​​that are coded by fixed-length binarization, unary binarization, truncated unary binarization, or kth-order exponential-Golomb binarization.

[0437] 71. The method of any one of the preceding items, wherein the method is further based on at least one of: 1) a type of video content; 2) a message signaled in a Sequence Parameter Set (SPS), a Video Parameter Set (VPS), a Picture Parameter Set (PPS), a Dependency Parameter Set (DPS), an Adaptation Parameter Set (APS), a picture header, a slice header, a tile group header, a Largest Coding Unit (LCU), a Coding Unit (CU), an LCU row, an LCU group, a Transform Unit (TU), a Prediction Unit (PU), a block, or a video coding unit; 3) a position of a CU, PU, ​​TU, block, or a video coding unit; 4) decoding information of a current block and / or neighboring blocks; 5) dimensions or shapes of a current block and / or neighboring blocks; 6) an indication of a color format; 7) a coding tree structure; 8) a slice type, a tile group type, and / or a picture type; 9) a type of color component; 10) a temporal layer identifier; and 11) a profile / level / layer of a standard.

[0438] 72. A method according to any of the preceding items, in which a CC-ALF tool is used to improve sample values ​​of a first component using sample values ​​of a second component.

[0439] 73. The method of any one of items 1 to 72, wherein the conversion includes encoding the video into a bitstream representation.

[0440] 74. A method according to any one of items 1 to 72, wherein the conversion includes decoding the bitstream representation to generate the video.

[0441] 75. A video processing device comprising a processor configured to carry out the method according to any one or more of items 1 to 74.

[0442] 76. A computer-readable medium having stored thereon program code which, when executed, causes a processor to perform the method recited in any one or more of items 1 to 74.

[0443] 77. A computer-readable medium storing a coded or bitstream representation generated according to any of the methods described above.

[0444] As used herein, the term "video processing" can refer to video encoding, video decoding, video compression, or video decompression. For example, a video compression algorithm may be applied during conversion of 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 spread to the same or different locations in the bitstream, e.g., as specified by a syntax. For example, one macroblock may be encoded in terms of transformed and coded error residual values, and using bits in the header and other fields in the bitstream.

[0445] Implementations of the disclosed and other solutions, examples, embodiments, modules, and functional operations described herein, including the structures disclosed herein and their structural equivalents, may be implemented in digital electronic circuitry, or computer software, firmware, or hardware, or in one or more combinations thereof. The disclosed and other embodiments may be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer-readable medium for implementation by or for controlling the operation of a data processing apparatus. The computer-readable medium may be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter that provides a machine-readable propagated signal, or one or more combinations thereof. The term "data processing apparatus" includes all apparatus, devices, and machines for processing data, including, for example, a programmable processor, a computer, or multiple processors, or computers. In addition to hardware, the apparatus may include code that creates an environment for the execution of the computer program, such as code that constitutes a processor firmware, a protocol stack, a database management system, an operating system, or one or more combinations thereof. A propagated signal is an artificially generated signal, for example a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to an appropriate receiving device.

[0446] A computer program (also called a program, software, software application, script, or code) is written in a compiled or interpreted language. A computer program may be written in any form of programming language, including a programming language, and may 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 may be recorded as part of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), may be stored in a single file dedicated to the program, or may be stored in multiple coordinating files (e.g., files that store one or more modules, subprograms, or code portions). A computer program may be deployed to run on one computer located at one site, or on multiple computers distributed across multiple sites and interconnected by a communications network.

[0447] The processing and logic flows described herein 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 processing and logic flows may also be performed by, and an apparatus may be implemented as, special purpose logic circuitry, such as a Field Programmable Gate Array (FPGA) or an Application Specific Integrated Circuit (ASIC).

[0448] Processors suitable for executing computer programs include, for example, both general purpose and special purpose microprocessors, as well as 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 may include one or more mass storage devices, such as magnetic, magneto-optical, or optical disks, for storing data, or may be operatively coupled to receive data from or transfer data to these mass storage devices. 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, EPROMs, EEPROMs, flash storage devices, magnetic disks, such as internal hard disks or removable disks, magneto-optical disks, and semiconductor storage devices such as CD-ROM and DVD-ROM disks. The processor and memory may be supplemented by, or incorporated in, special purpose logic circuitry.

[0449] Although this patent specification contains many details, these should not be construed as limiting the scope of any subject matter or the scope of the claims, but rather as descriptions of features that may be specific to particular embodiments of a particular technology. Certain features described in this patent document in the context of separate embodiments may be implemented in combination in one example. Conversely, various features described in the context of one example may 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 extracted from the combination, and the claimed combination may be directed to a subcombination or a variation of the subcombination.

[0450] Similarly, although operations are shown in a particular order in the figures, this should not be understood as requiring that such operations be performed in the particular order or sequential order shown, or that all of the operations shown be performed, to achieve desired results, nor should the separation of various system components in the examples described in this patent specification be understood as requiring such separation in all embodiments.

[0451] Only certain implementations and examples have been described; other embodiments, extensions and variations are possible based on the content described and illustrated in this patent document.

Claims

1. 1. A method for processing video data, comprising the steps of: Deriving a first offset used in a cross-component filtering tool for chroma samples of the image domain based on luma samples of the image domain for conversion between an image domain of an image and a bitstream of the image; deriving a second offset used in the cross-component filtering tool for the chroma samples based on the first offset; performing the transformation by applying the cross-component filtering tool to enhance the chroma samples based on the second offset; having A method, wherein an indication of utilization of the cross-component filtering tool is conditionally included in a Sequence Parameter Set (SPS) of the bitstream based on whether an adaptive loop filter tool is enabled.

2. The method of claim 1 , wherein the second offset is derived using a clipping operation on the first offset.

3. The method of claim 1 or 2, wherein the second offset is clipped to a predetermined range.

4. the first offset is derived based on applying a filtering coefficient to a difference of luminance samples; 4. The method of claim 1, wherein the difference of each luma sample corresponds to a difference between a value of the luma sample in a filter support region and a value of a corresponding luma sample of the chroma samples.

5. the corresponding luminance sample is located at (x, y) relative to the image domain in 4:4:4 format; The method of claim 4 , wherein (x, y) denotes the coordinates of the chroma sample.

6. the corresponding luma sample is located at (2x, 2y) relative to the image domain in 4:2:0 format; The method of claim 4 , wherein (x, y) denotes the coordinates of the chroma sample.

7. The method of claim 1 , wherein the indication of utilization of the cross-component filtering tool is conditionally included in the bitstream further based on a chroma color sample.

8. 8. The method of claim 1, wherein if the indication indicates that the cross-component filtering tool is enabled at an SPS level, a first syntax element indicating the applicability of the cross-component filtering tool is included in the bitstream in a picture header or a slice header.

9. The method of claim 1 , wherein the indication is not explicitly included if the adaptive loop filter tool is disabled.

10. The method of claim 1 , wherein if the adaptive loop filter tool is disabled, information about the cross-component filtering tool is excluded from the bitstream.

11. 11. The method of claim 10, wherein the information regarding the cross-component filtering tool includes at least one of a second syntax element that specifies whether the cross-component filtering tool is valid for a Cb color component, and a third syntax element that specifies whether the cross-component filtering tool is valid for a Cr color component.

12. the information regarding the cross-component filtering tool further includes a fourth syntax element specifying a first identifier of a first adaptive loop filter to which the Cb color component of a current slice refers if the second syntax element indicates that the cross-component filtering tool is valid for the Cb color component; The method of claim 11 , wherein the information regarding the cross-component filtering tool further includes a fifth syntax element that specifies a second identifier of a second adaptive loop filter to which the Cr color component of the current slice refers if the third syntax element indicates that the cross-component filtering tool is valid for the Cr color component.

13. The method of claim 1 , wherein a conforming bitstream satisfies that an adaptive loop filter identifier for the cross-component filtering tool included in the bitstream should refer to one available adaptive loop filter.

14. The method of claim 1 , wherein the converting comprises encoding the video into the bitstream.

15. The method of claim 1 , wherein the converting comprises decoding the video from the bitstream.

16. 1. An apparatus for processing video data, comprising a processor and a non-transitory memory having instructions, comprising: The instructions, when executed by the processor, cause the processor to: Deriving a first offset used in a cross-component filtering tool for chroma samples of the image domain based on luma samples of the image domain for conversion between an image domain of an image and a bitstream of the image; deriving a second offset used in the cross-component filtering tool for the chroma samples based on the first offset; performing the transformation by applying the cross-component filtering tool to enhance the chroma samples based on the second offset; Let them do so, An apparatus, wherein indication of utilization of the cross-component filtering tool is conditionally included in a Sequence Parameter Set (SPS) of the bitstream based on whether an adaptive loop filter tool is enabled.

17. The processor: Deriving a first offset used in a cross-component filtering tool for chroma samples of the image domain based on luma samples of the image domain for conversion between an image domain of an image and a bitstream of the image; deriving a second offset used in the cross-component filtering tool for the chroma samples based on the first offset; performing the transformation by applying the cross-component filtering tool to enhance the chroma samples based on the second offset; Let them do so, A non-transitory computer-readable storage medium having stored thereon instructions, wherein indications for utilizing the cross-component filtering tool are conditionally included in a Sequence Parameter Set (SPS) of the bitstream based on whether an adaptive loop filter tool is enabled.

18. 1. A method for storing a video bitstream, comprising: Deriving a first offset used in a cross-component filtering tool for chroma samples of the image domain based on luma samples of the image domain for conversion between an image domain of an image and a bitstream of the image; deriving a second offset used in the cross-component filtering tool for the chroma samples based on the first offset; generating the bitstream by applying the cross-component filtering tool to enhance the chroma samples based on the second offset; and storing the bitstream on a non-transitory computer readable recording medium; having A method, wherein an indication of utilization of the cross-component filtering tool is conditionally included in a Sequence Parameter Set (SPS) of the bitstream based on whether an adaptive loop filter tool is enabled.

Citation Information

Patent Citations

  • JPP7389251B

  • JPP7389252B

  • JPP7485761B

  • Systems and methods for constraining a bitstream

    US20150264099A1

  • Block vector coding for intra block copy in video coding

    US20150271515A1