Cross-component adaptive loop filter
By expanding and optimizing the application scenarios and technical means of CC-ALF, the problems of insufficient flexibility and repetition and refinement of CC-ALF design in the prior art are solved, and the efficiency and accuracy of video encoding and decoding are improved.
Patent Information
- Application Number
- CN202080076586.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-10-29
- Filing Date
- 2020-10-29
- Publication Date
- 2025-01-07
- Estimated Expiration
- 2040-10-29
AI Technical Summary
In the existing video encoding and decoding technology, the cross-component adaptive loop filter (CC-ALF) design is insufficient flexibility, signaling notification is independent of nonlinear ALF, and can only allow a CC-ALF filter at the CTB level. Repeated refinement of chroma sample points leads to increased distortion and the interaction between CC-ALF and chroma ALF is not considered.
It proposes an application scenario for extending CC-ALF, allowing correction of sample point values between different color components, supports the use of multiple CC-ALF filters in the video area, modify the refinement process to reduce repeated refinement, and adjust CC -The order and application conditions of ALF and chroma ALF, based on technical means such as brightness sample spread value filtering.
It improves the flexibility and efficiency of CC-ALF, reduces distortion, enhances the accuracy and consistency of sample point value correction in the video area, and optimizes resource usage during the encoding and decoding process.
Smart Images

Figure CN114846793B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application is an application entering the Chinese national phase of International Patent Application No. PCT / CN2020 / 124700 filed on October 29, 2020, which claims priority to International Patent Application No. PCT / CN2019 / 113955 filed on October 29, 2019. The entire disclosure of the above application is incorporated by reference as part of the disclosure of this application. Technical Field
[0003] This patent document relates to encoding and decoding of images and videos. Background Art
[0004] Digital video accounts for the largest use of bandwidth on the Internet and other digital communications networks. As the number of connected user devices capable of receiving and displaying video increases, bandwidth demand for digital video usage is expected to continue to grow. Summary of the invention
[0005] This document discloses techniques that can be used by video encoders and decoders to perform cross-component adaptive loop filtering during video encoding or decoding.
[0006] In one example aspect, a video processing method is disclosed. The method includes: for a conversion between a video region of a video and a bitstream representation of the video, making a determination to use a cross-component adaptive loop filtering (CC-ALF) tool to refine chroma sample values using luma sample values; and performing the conversion based on the determination, wherein the refinement includes correcting the chroma sample values using a final refinement, the final refinement being a further refinement of a first refined value determined by selectively filtering the luma sample values.
[0007] In another example aspect, another video processing method is disclosed. The method includes: for conversion between a video region of a video and a bitstream representation of the video, making a determination to use a cross-component adaptive loop filtering (CC-ALF) tool to correct a sample value of a first video block of a first component using a sample value of a second video block of a second component; and performing the conversion based on the determination; wherein the CC-ALF tool is used except for the case where 1) the first component is a Cr or Cb component and 2) the second component is a Y component.
[0008] In yet another example aspect, another video processing method is disclosed. The method includes: for a conversion between a video unit of a video and a bitstream representation of the video, making a determination according to a rule to use a cross-component adaptive loop filtering (CC-ALF) tool to correct a sample value of a first component using a sample value of a second component; and performing the conversion based on the determination; wherein the rule specifies the use of two or more ALF adaptive parameter sets (APSs), the two or more ALF APSs including a first ALF APS and a second ALF APS in the bitstream representation.
[0009] In yet another example aspect, another video processing method is disclosed. The method includes: for a conversion between a video region of a video and a bitstream representation of the video, making a determination according to a rule to use a cross-component adaptive loop filtering (CC-ALF) tool to correct a sample value of a first component using a sample value of a second component; and performing the conversion based on the determination; wherein the rule specifies the use of two or more CC-ALF filters, the two or more CC-ALF filters including a first CC-ALF filter applied to a first sample point in the video region and a second CC-ALF filter applied to a second sample point in the video region.
[0010] In yet another example aspect, another video processing method is disclosed. The method includes: for a conversion between a video region of a video and a bitstream representation of the video, deriving a first offset for a first color component of the video region based on luma samples of the video region; deriving a second offset for a second color component of the video region 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 samples of the video region.
[0011] In yet another example aspect, another video processing method is disclosed. The method includes: for conversion between a video block of a video including multiple components and a bitstream representation of the video, determining to use a cross-component adaptive loop filtering (CC-ALF) tool at an M×N sub-block level, M and N are positive integers, wherein at least one of M and N is greater than 1; and performing the conversion based on the determination, wherein the CC-ALF tool is used to correct the M×N sub-block samples of a first component of the video based on a second component of the video.
[0012] In yet another example aspect, another video processing method is disclosed. The method includes: for a conversion between a video region of a video and a bitstream representation of the video, determining to use a cross-component adaptive loop filter (CC-ALF) process based on luma sample difference filtering to correct chroma samples of the video region; and performing the conversion based on the determination.
[0013] In yet another example aspect, another video processing method is disclosed. The method includes: performing conversion between a portion of a chroma component of a video and a bitstream representation of the video according to a rule, wherein the rule specifies whether a cross-component adaptive loop filtering (CC-ALF) tool is available for the conversion of the portion of the video depending on whether the availability or use of an adaptive loop filtering (ALF) tool is indicated for a corresponding portion of a luma component.
[0014] In yet another example aspect, another video processing method is disclosed. The method includes: performing conversion between a video region of a video and a bitstream representation of the video, wherein the bitstream representation conforms to a format rule, the format rule specifying whether to include a syntax element indicating use of a cross-component adaptive loop filtering (CC-ALF) tool in the bitstream representation depends on the number of available adaptive loop filtering (ALF) adaptation parameter sets (APS).
[0015] In yet another example aspect, another video processing method is disclosed. The method includes: performing conversion between a video unit of a video and a bitstream representation of the video, wherein the bitstream representation conforms to a format rule that specifies applicability of a cross-component adaptive loop filtering (CC-ALF) tool that refines sample values of a first component using sample values of a second component to be included in the bitstream representation at a video unit level different from a slice level.
[0016] In yet another example aspect, another video processing method is disclosed. The method includes: performing conversion between a video region of a video and a bitstream representation of the video, wherein the bitstream representation conforms to a format rule that specifies whether a syntax element indicating use of a cross-component adaptive loop filtering (CC-ALF) tool in the bitstream representation is dependent on availability of an adaptive loop filtering (ALF) tool for a corresponding portion of a luma component.
[0017] In yet another example aspect, another video processing method is disclosed. The method includes: performing conversion between a video region of a video and a bitstream representation of the video, wherein the bitstream representation conforms to a format rule, the format rule providing that the bitstream representation includes an adaptive parameter set (APS), the APS including a syntax element to indicate whether the APS includes information related to a cross-component adaptive loop filtering (CC-ALF) tool.
[0018] In yet another example aspect, another video processing method is disclosed. The method includes: determining that an exclusion rule applies to a conversion between a video region of a video and a bitstream representation of the video, wherein the exclusion rule specifies that the conversion does not allow a codec tool and a cross-component adaptive loop filtering (CC-ALF) tool to be used together for the video region; and performing the conversion based on the determination.
[0019] In yet another example aspect, another video processing method is disclosed. The method includes: for conversion between chrominance blocks of a video and a bitstream representation of the video, performing according to a rule, wherein during the conversion, a cross-component adaptive loop filter (CC-ALF) tool is used to determine a prediction of the chrominance block based on samples of a luminance block; wherein the rule specifies the luminance blocks used for the prediction and / or an order in which the CC-ALF tool is used during the conversion.
[0020] In yet another example aspect, another video processing method is disclosed. The method includes: determining an order of processing an adaptive loop filter (ALF) of a chroma component and a cross-component adaptive loop filter (CC-ALF) of the chroma component according to a rule; and performing conversion between a video and a bitstream representation of the video based on the determination, wherein the rule specifies whether the order is predefined or adaptively changed at a video region of the video, the video region having a size of M×N, and M and N are positive integers.
[0021] In yet another example aspect, another video processing method is disclosed. The method includes: performing conversion between a video region of a video and a bitstream representation of the video, wherein the bitstream representation conforms to a format rule, the format rule providing for including a syntax element in the bitstream representation, the syntax element indicating use of adaptive loop filtering (ALF) and cross-component adaptive loop filtering (CC-ALF) for one chroma component.
[0022] In yet another example aspect, a video encoder apparatus is disclosed. The video encoder includes a processor configured to implement the above method.
[0023] In yet another exemplary aspect, a video decoder apparatus is disclosed. The video decoder includes a processor configured to implement the above method.
[0024] In yet another example aspect, a computer readable medium having code stored thereon is disclosed. The code is in the form of processor executable code embodying one of the methods described herein.
[0025] These and other features are described throughout this document. BRIEF DESCRIPTION OF THE DRAWINGS
[0026] Figure 1 An example of a video encoder is shown.
[0027] Figure 2 Example shapes of adaptive loop filters based on geometric transformations are shown.
[0028] FIG. 3A to FIG. 3D An example of a sub-sampled Laplacian calculation example is shown.
[0029] Figure 4A and Figure 4B Examples of adaptive loop filter arrangements and shapes are shown.
[0030] Figure 5 An example of an adaptive loop filter is shown.
[0031] Figure 6 and Figure 7 is a block diagram of an example of a hardware platform for implementing the video decoder or video encoder device described herein.
[0032] Figure 8 A block diagram illustrating an example video encoding and decoding system is shown.
[0033] Fig. 9 A block diagram illustrating an encoder according to some embodiments of the present disclosure.
[0034] Fig.10 2 is a block diagram illustrating a decoder according to some embodiments of the present disclosure.
[0035] Fig.11 Flowchart of an example method of video processing based on some embodiments of the disclosed technology.
[0036] FIG. 12A to FIG. 12D Flowchart of an example method of video processing based on some embodiments of the disclosed technology.
[0037] Fig.13 Flowchart of an example method of video processing based on some embodiments of the disclosed technology.
[0038] FIG. 14A to FIG. 14CFlowchart of an example method of video processing based on some embodiments of the disclosed technology. DETAILED DESCRIPTION
[0039] For ease of understanding, section headings are used in this document, and the applicability of the techniques and embodiments disclosed in each section is not limited to that section. In addition, the use of H.266 terminology in some descriptions is only for ease of understanding and is not intended to limit the scope of the disclosed technology. Thus, the techniques described herein are also applicable to other video codec designs.
[0040] 1. Overview
[0041] This patent document relates to video codec technology. Specifically, it relates to cross-component adaptive loop filters in image / video codecs. It can be applied to existing video codec standards (such as HEVC), or to standards to be finalized (multi-function video codec). It can also be applied to future video codec standards or video codecs.
[0042] 2. Background
[0043] Video codec standards have evolved primarily through the development of the well-known ITU-T and ISO / IEC standards. ITU-T produced H.261 and H.263, ISO / IEC produced MPEG-1 and MPEG-4 Vision, and the two organizations jointly produced the H.262 / MPEG-2 Video, H.264 / MPEG-4 Advanced Video Codec (AVC), and H.265 / HEVC standards. Since H.262, video codec standards have been based on a hybrid video codec structure that uses temporal prediction plus transform codecs. To explore future video codec technologies beyond HEVC, VCEG and MPEG jointly established the Joint Video Exploration Team (JVET) in 2015. Since then, JVET has adopted many new methods and introduced them into reference software called the Joint Exploration Model (JEM). In April 2018, the Joint Video Experts Team (JVET) between VCEG (Q6 / 16) and ISO / IEC JTC1SC29 / WG11 (MPEG) was created to work on the VVC standard with the goal of reducing bitrate by 50% compared to HEVC.
[0044] 2.1. Color Space and Chroma Subsampling
[0045] A color space, also known as a color model (or color system), is an abstract mathematical model that simply describes the range of colors as a tuple of numbers, usually 3 or 4 values or color components (e.g., RGB). Fundamentally, a color space is an elaboration of coordinate systems and subspaces.
[0046] For video compression, the most commonly 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 imaging pipeline in video and digital photography systems. Y' is the luminance component, CB and CR are the blue-difference and red-difference chrominance components. Y' (with primaries) is different from Y (Y is luminance), which means that the light intensity is encoded non-linearly based on the gamma-corrected RGB primaries.
[0047] Chroma subsampling is the practice of encoding an image with lower precision for chroma information than for luminance information, taking advantage of the fact that the human visual system is less sensitive to color differences than to luminance. 2.1.1 4:4:4
[0049] Each of the three Y'CbCr components has the same sample rate, so there is no chroma subsampling. This scheme is sometimes used in high-end film scanners and film post-production. 2.1.2 4:2:2
[0051] The two chroma components are sampled at half the luma sample rate: horizontal chroma accuracy is halved. This reduces the bandwidth of the uncompressed video signal by one third with little visual difference. 2.1.3 4:2:0
[0053] In 4:2:0, the horizontal sampling is doubled compared to 4:1:1, but the vertical accuracy is halved since the Cb and Cr channels are only sampled on every alternate line in this scheme. Therefore the data rate is the same. Both Cb and Cr are subsampled by a factor of 2 both horizontally and vertically. There are three variants of the 4:2:0 scheme with different horizontal and vertical addressing.
[0054] In MPEG-2, Cb and Cr are co-located in the horizontal direction. Cb and Cr are located between pixels in the vertical direction (in the gap).
[0055] In JPEG / JIF, H.261, and MPEG-1, Cb and Cr are located in the gaps, in the middle of alternating luminance samples.
[0056] In 4:2:0 DV, Cb and Cr are co-located horizontally. In the vertical direction, they are co-located on alternate lines.
[0057] 2.1.4 Encoding and decoding of different color components
[0058] Depending on the value of separate_colour_plane_flag, the value of the variable ChromaArrayType is assigned as follows:
[0059] If separate_colour_plane_flag is equal to 0, ChromaArrayType is set equal to chroma_format_idc.
[0060] Otherwise (separate_colour_plane_flag is equal to 1), ChromaArrayType is set equal to 0.
[0061] 2.2 Encoding and decoding process of typical video codecs
[0062] Figure 1 An example of an encoder block diagram for VVC is shown, which contains three in-loop filtering blocks: deblocking filter (DF), sample adaptive offset (SAO), and ALF. Unlike DF, which uses a predefined filter, SAO and ALF use the original samples of the current picture to reduce the mean square error between the original and reconstructed samples by adding an offset and applying a finite impulse response (FIR) filter by signaling codec-side information of the offset and filter coefficients, respectively. ALF is located at the last processing stage of each picture and can be seen as a tool that tries to catch and repair artifacts caused by previous stages.
[0063] 2.3 Adaptive loop filter based on geometric transformation in JEM
[0064] In JEM, a geometric transform based adaptive loop filter (GALF) is applied with block-based filter adaptation. For the luminance component, one of 25 filters is selected for each 2×2 block based on the direction and activity of the local gradient.
[0065] 2.3.1 Filter shape
[0066] In JEM, up to three diamond filter shapes can be selected for the luminance component (e.g. Figure 2 ). An index is signaled at the picture level to indicate the filter shape to use for the luma component.
[0067] Figure 2 Examples of GALF filter shapes are shown (left: 5×5 diamond, middle: 7×7 diamond, right: 9×9 diamond).
[0068] For the chroma components in the picture, a 5x5 diamond shape is always used.
[0069] 2.3.1.1 Block Classification
[0070] Each 2×2 block is classified into one of 25 categories. The classification index C is based on the quantized values of its directionality D and activity The derivation is as follows:
[0071]
[0072] To calculate D and First, use the 1-D Laplacian to calculate the gradient in the horizontal, vertical, and two diagonal directions:
[0073]
[0074]
[0075]
[0076]
[0077] The indices i and j refer to the coordinates of the upper left sample point in the 2×2 block, and R(i, j) indicates the reconstructed sample point at the coordinates (i, j).
[0078] Then the maximum and minimum values of the horizontal and vertical gradients D are set to:
[0079]
[0080] And, the maximum and minimum values of the gradients in the two diagonal directions are set to:
[0081]
[0082] To derive the value of the directivity D, these values are compared with each other and with two thresholds t1 and t2:
[0083] Step 1: If and If both are true, D is set to 0.
[0084] Step 2: If Then continue from step 3; otherwise continue from step 4.
[0085] Step 3: If Then D is set to 2; otherwise D is set to 1.
[0086] Step 4: If Then D is set to 4; otherwise D is set to 3.
[0087] The activity value A is calculated as follows:
[0088]
[0089] A is further quantized to a range of 0 to 4 (including endpoints), and the quantized value is expressed as
[0090] For the two chroma components in a picture, no classification method is applied, ie, a single set of ALF coefficients is applied for each chroma component.
[0091] 2.3.1.2 Geometric transformation of filter coefficients
[0092] Before filtering each 2×2 block, geometric transformations such as rotation or diagonal and vertical flipping are applied to the filter coefficients f(k,l), depending on the gradient values calculated for that block. This is equivalent to applying these transformations to the samples in the filter support region. The idea is to make different blocks with ALF applied more similar by aligning their directionality.
[0093] Three geometric transformations are introduced, including diagonal, vertical flip and rotation:
[0094]
[0095] Where K is the size of the filter, and 0≤k, l≤K-1 are the coefficient coordinates, such that position (0, 0) is in the upper left corner and position (K-1, K-1) is in the lower right corner. Depending on the gradient value calculated for the block, a transform is applied to the filter coefficients f(k, l). Table 1 summarizes the relationship between the transform and the four gradients in the four directions.
[0096] Table 1: Mapping of gradients computed for a block to transformations
[0097] Gradient Value Transform <![CDATA[g d2 <g d1 And g h <g v ]]> No change <![CDATA[g d2 <g d1 And g v <g h ]]> diagonal <![CDATA[g d1 <g d2 And g h <g v ]]> Flip Vertically <![CDATA[g d1 <g d2 And g v <g h ]]> Rotation
[0098] 2.3.1.3 Filter parameter signaling
[0099] 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 luminance filter coefficients can be signaled. To reduce bit overhead, filter coefficients of different classifications can be merged. In addition, the GALF coefficients of the reference pictures are stored and allowed to be reused as GALF coefficients for the current picture. The current picture can choose to use the GALF coefficients stored for the reference picture and bypass the GALF coefficient signaling. In this case, only the index of one of the reference pictures is signaled, and the stored GALF coefficients of the indicated reference picture are inherited for the current picture.
[0100] To support GALF temporal prediction, a candidate list of GALF filter sets is maintained. At the beginning of decoding a new sequence, the candidate list is empty. After decoding a picture, the corresponding filter set can be added to the candidate list. Once the size of the candidate list reaches the maximum allowed value (i.e., 6 in the current JEM), a new filter set overwrites the oldest set in the decoding order, that is, the first-in-first-out (FIFO) rule is applied to update the candidate list. To avoid duplication, a set can only 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 a temporal layer. More specifically, each array assigned by the temporal layer index (TempIdx) can constitute a filter set of a previously decoded picture with a lower TempIdx. For example, the kth array is assigned to be associated with a TempIdx equal to k, and it only contains filter sets from pictures with TempIdx less than or equal to k. After encoding or decoding a picture, the filter set associated with the picture will be used to update those arrays associated with equal or higher TempIdx.
[0101] Temporal prediction of the GALF coefficients is used for inter-coded frames to minimize the signaling overhead. For intra frames, temporal prediction is not available and a set of 16 fixed filters is assigned to each class. To indicate the use of fixed filters, a flag for each class is signaled and, if necessary, the index of the selected fixed filter is signaled. Even if a fixed filter is selected for a given class, the coefficients of the adaptive filter f(k, l) may still be sent for that class, in which case the coefficients of the filter that will be applied to the reconstructed image are the sum of the two coefficient sets.
[0102] The filtering process of the luma component can be controlled at the CU level. A signaling flag is used to indicate whether GALF is applied to the luma component of the CU. For chroma components, whether GALF is applied is indicated only at the picture level.
[0103] 2.3.1.4 Filtering process
[0104] On the decoding side, when GALF is enabled for a block, each sample R(i, j) within the block is filtered to obtain the sample value R′(i, j) as shown below, where L represents the filter length and f m,n denotes the filter coefficient, and f(k, l) denotes the decoded filter coefficient.
[0105]
[0106] Alternatively, the filtering process of the adaptive loop filter can be expressed as follows:
[0107] O(x, y) = ∑ (i,j) w(i, j).I(x+i, y+j), (11)
[0108] Among them, the sample I (x + i, y + j) is the input sample, O (x, y) is the output sample after filtering (ie, the filter result), and w (i, j) represents the filter coefficient. In fact, in VTM4.0, it is implemented using integer arithmetic for fixed-point precision calculations:
[0109]
[0110] where represents the filter length and w(i, j) are the filter coefficients in fixed-point precision.
[0111] 2.4 Nonlinear ALF
[0112] 2.4.1 Filter Reconstruction
[0113] Equation (11) can be restated as follows without affecting the coding efficiency:
[0114] O(x, y) = I(x, y) + ∑ (i,j)≠(0,0) w(i,j).(I(x+i,y+j)-I(x,y)) (13)
[0115] where w(i, j) is the same filter coefficient as in equation (11) [except that w(0, 0) is equal to 1 in equation (13) while it is equal to 1-∑ (i,j)≠(0,0) w(i,j)].
[0116] 2.4.2 Modified Filter
[0117] Using the filter formula (13) above, when the adjacent sample value (I(x+i, y+j)) differs too much from the current sample value (I(x, y)) being filtered, we can easily introduce nonlinearity by using a simple clipping function to make the ALF more effective to reduce the influence of the adjacent sample value (I(x+i, y+j)).
[0118] In this proposal, the ALF filter is modified as follows:
[0119] O′(x, y)=I(x, y)+∑ (i,j)≠(0,0) w(i,j).K(I(x+i,y+j)-I(x,y),k(i,j)), (14)
[0120] Where K(d,b)=min(b,max(-b,d)) is the clipping function and k(i,j) is the clipping parameter, which depends on the (i,j) filter coefficient. The encoder performs this optimization to find the best k(i,j).
[0121] For ease of implementation, the filter coefficients w(i, j) are stored and used with integer precision. The above equation can be rewritten as follows:
[0122] O′(i, j)=I(i, j)+((∑ k≠0 ∑ l≠0 w(k,l)×K(I(i+k,j+l)-I(i,j),c(k,l))+64)>>7) (16)
[0123] 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 are arrive 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).
[0124] In the JVET-N0242 implementation, a clipping parameter k(i,j) is specified for each ALF filter, with one clipping value signaled per filter coefficient. This means that up to 12 clipping values can be signaled in the bitstream for each luma filter and up to 6 clipping values for chroma filters. To limit the signaling cost and encoder complexity, we restrict the evaluation of the clipping values to a small set of possible values. In this proposal, we use only 4 fixed values that are the same for inter and intra slice groups.
[0125] Because the variation of local differences in luma is usually higher than that in chroma, we use two different sets for luma and chroma filters. We also include the maximum sample value in each set (here 1024 for 10-bit bit depth) so that clipping can be disabled if not needed.
[0126] The set of clipping values used in the JVET-N0242 test is provided in Table 2. These 4 values are chosen by dividing the entire range of sample values (coded at 10 bits) for luma and the range from 4 to 1024 for chroma approximately equally in the logarithmic domain.
[0127] More precisely, the brightness table of the clipped values is obtained by the following formula:
[0128]
[0129] Similarly, the chromaticity table for the clipped values is obtained according to the following formula:
[0130]
[0131] Table 2: Authorization clipping values.
[0132]
[0133] The selected clipping value is encoded and decoded in the "alf_data" syntax element by using the Golomb coding scheme corresponding to the index of the clipping value in the above Table 2. This coding scheme is the same as that used for the filter index.
[0134] 2.5 Geometric Transformation-Based Adaptive Loop Filter in VVC
[0135] Compared with JEM, the current design of GALF in VVC has the following major changes:
[0136] 1) Adaptive filter shapes are removed. Only 7×7 filter shapes are allowed for luma components and only 5×5 filter shapes are allowed for chroma components.
[0137] 2) The ALF filter coefficients are signaled in the ALF Adaptation Parameter Set (APS).
[0138] 3) Non-linear ALF can be applied.
[0139] 4) For each CTU, whether ALF is enabled or disabled, a one-bit flag for each color component is signaled.
[0140] 5) The calculation of the class index is performed at the 4×4 level instead of the 2×2 level. In addition, as proposed in JVET-L0147, the ALF classification is performed using the sub-sampled Laplacian calculation method. More specifically, there is no need to calculate the horizontal / vertical / 45 degree diagonal gradient / 135 degree diagonal gradient for each sample point within a block. Instead, 1:2 sub-sampling is used.
[0141] Figure 3A An example of sub-sampled Laplacian calculation of sub-sampled positions of the vertical gradient is shown.
[0142] Figure 3B An example of sub-sampled Laplacian calculation of sub-sampled positions of the horizontal gradient is shown.
[0143] Figure 3C An example of sub-sampled Laplacian calculation for sub-sampled positions of diagonal gradients is shown.
[0144] Figure 3DAn example of sub-sampled Laplacian calculation for sub-sampled positions of diagonal gradients is shown.
[0145] 2.6 Signaling of ALF parameters in the adaptive parameter set
[0146] In the latest version of the VVC draft, ALF parameters can be signaled in an adaptive parameter set (APS), and the ALF parameters can be adaptively selected by each CTU. In one APS, up to 25 sets of luminance filter coefficients and clipping value indices, and up to 8 sets of chrominance filter coefficients and clipping value indices can be signaled. In order to reduce bit overhead, filter coefficients of different classifications of luminance components can be merged. In the slice header, the index of the APS used for the current slice is signaled.
[0147] The filter coefficients are quantized with a norm equal to 128. To limit the multiplication complexity, bitstream consistency is applied so that coefficient values in non-central positions should be within -2 7 to 2 7 The center position coefficient is not signaled in the bitstream and is considered equal to 128.
[0148] The detailed signaling notification of ALF (in JVET-P2001-v9) is as follows.
[0149] 7.3.2.5 Adaptation parameter set syntax
[0150]
[0151] 7.3.2.16 Adaptive Loop Filter Data Syntax
[0152]
[0153]
[0154]
[0155] 7.4.3.5 Adaptive parameter set semantics
[0156] Each APS RBSP shall be available to the decoding process before being referenced, and shall be included in at least one access unit whose TemporalId is less than or equal to the TemporalId of the slice NAL unit of the codec that references it or is provided by external means.
[0157] 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 nuh_layer_id of the APS NAL unit containing the APS RBSP shall be equal to the nuh_layer_id of the slice NAL unit of the codec that references it. Otherwise, the nuh_layer_id of the APS NAL unit containing the APS RBSP shall be equal to the nuh_layer_id of the slice NAL unit of the codec that references it, or to the nuh_layer_id of a directly dependent layer of the layer containing the slice NAL unit of the codec that references it.
[0158] All APS NAL units within an access unit with a specific adaptation_parameter_set_id value and a specific aps_params_type value shall have the same content.
[0159] The adaptation_parameter_set_id provides an identifier for the APS for reference by other syntax elements.
[0160] When 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 (inclusive).
[0161] 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 (inclusive).
[0162] As specified in Table 7-2, aps_params_type specifies the type of APS parameters carried in the APS. When 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 (inclusive).
[0163] Table 7-2 APS parameter type code and APS parameter type
[0164]
[0165] NOTE 1 Each type of APS uses a separate value space for adaptation_parameter_set_id.
[0166] NOTE 2 APS NAL units (with specific adaptation_parameter_set_id values and specific aps_params_type values) can be shared across pictures, and different slices within a picture can reference different ALF APSs.
[0167] 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.
[0168] aps_extension_data_flag can have any value. Its presence and its value do not affect decoder 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.
[0169] 7.4.3.14 Adaptive loop filter data semantics
[0170] alf_luma_filter_signal_flag equal to 1 specifies signaling of the luma filter set. alf_luma_filter_signal_flag equal to 0 specifies not signaling of the luma filter set.
[0171] alf_chroma_filter_signal_flag equal to 1 specifies that the chroma filter is signaled. alf_chroma_filter_signal_flag equal to 0 specifies that the chroma filter is not signaled. When ChromaArrayType is equal to 0, alf_chroma_filter_signal_flag shall be equal to 0.
[0172] The variable NumAlfFilters, which specifies the number of different adaptive loop filters, is set equal to 25.
[0173] 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.
[0174] alf_luma_num_filters_signed_minus 1 plus 1 specifies the number of adaptive loop filter categories that can signal luma coefficients. The value of alf_luma_num_filters_signed_mins 1 shall be in the range of 0 to NumAlfFilters-1, inclusive.
[0175] alf_luma_coeff_delta_idx[filtIdx] specifies the index of the signaled adaptive loop filter luma coefficient delta for the filter class indicated by filtIdx in the range from 0 to NumAlfFilters - 1. When alf_luma_coeff_delta_idx[filtIdx] is not present, it is inferred to be equal to 0. alf_luma_coeff_delta_idx[filtIdx] has a length of Ceil(Log2(alf_luma_num_filters_signalled_minus1+1)) bits.
[0176] alf_luma_coeff_signalled_flag equal to 1 indicates that alf_luma_coeff_flag[sfIdx] is signaled. alf_luma_coeff_signalled_flag equal to 0 indicates that alf_luma_coeff_flag[sfIdx] is not signaled.
[0177] 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 equal to 0. When not present, alf_luma_coeff_flag[sfIdx] is set equal to 1.
[0178] alf_luma_coeff_abs[sfIdx][j] specifies the absolute value of the j-th coefficient of the signaled luma filter indicated by sfIdx. When alf_luma_coeff_abs[sfIdx][j] is not present, it is inferred to be equal to 0.
[0179] The order k of the exponential Golomb binarization uek(v) is set equal to 3.
[0180] alf_luma_coeff_sign[sfIdx][j] specifies the sign of the j-th luma coefficient of the filter indicated by sfIdx as follows:
[0181] - If alf_luma_coeff_sign[sfIdx][j] is equal to 0, the corresponding luma filter coefficient has a positive value.
[0182] - Otherwise (alf_luma_coeff_sign[sfIdx][j] is equal to 1), the corresponding luma filter coefficient has a negative value.
[0183] When alf_luma_coeff_sign[sfIdx][j] is not present, it is inferred to be equal to 0.
[0184] The variable filtCoeff[sfIdx][j] with sfIDx=0..alf_luma_num_filters_signalled_minus1 and j=0..11 is initialized as follows:
[0185]
[0186] The element AlfCoeff with filtIdx=0..NumAlfFilters-1 and j=0..11 is derived as follows L [adaptation_parameter_set_id][filtIdx][j] Luma filter coefficient AlfCoeff L [adaptation_parameter_set_id]:
[0187] Alf Coeff L [adaptation_parameter_set_id][filtIdx][j]=filtCoeff[alf_luma_coeff_delta_idx[filtIdx]][j] (7-48)
[0188] The fixed filter coefficients AlfFixFiltCoeff[i][j] with i=0..64 and j=0..11 and the class to filter map AlfClassToFiltMap[m][n] with m=0..15 and n=0..24 are derived as follows:
[0189]
[0190]
[0191]
[0192]
[0193]
[0194] The requirement for bitstream conformance is AlfCoeff where filtIdx = 0..NumAlfFilters–1 and j = 0..11 L The value of [adaptation_parameter_set_id][filtIdx][j] should be between -2 7 to 2 7 -1 (including the endpoints).
[0195] alf_luma_clip_idx[sfIdx][j] specifies the clip index of the clip value to be used before multiplication by the j-th coefficient of the signaled luma filter indicated by sfIdx. A bitstream conformance requirement is that the value of alf_luma_clip_idx[sfIdx][j] with sfIdx=0..alf_luma_num_filters_signalled_minus1 and j=0..11 shall be in the range of 0 to 3 (inclusive).
[0196] Depends on setting equal to BitDepth Y The luma filter clipping value AlfClipL[adaptation_parameter_set_id][filtIdx][j] with the element filtIdx = 0..NumAlfFilters–1 and j = 0..11 is derived as specified in Table 7-4 with the bitDepth of clipIdx set equal to alf_luma_clip_idx[alf_luma_coeff_delta_idx[filtIdx]][j]. L [adaptation_parameter_set_id].
[0197] alf_chroma_num_alt_filters_minus1 plus 1 specifies the number of alternative filters for chroma components.
[0198] alf_chroma_clip_flag[altIdx] equal to 0 specifies that when the chroma filter with index altIdx is used, linear adaptive loop filtering is applied to the chroma components; alf_chroma_clip_flag[altIdx] equal to 1 specifies that when the chroma filter with index altIdx is used, non-linear adaptive loop filtering is applied to the chroma components. When not present, alf_chroma_clip_flag[altIdx] is inferred to be equal to 0.
[0199] alf_chroma_coeff_abs[altIdx][j] specifies the absolute value of the j-th chroma filter coefficient of the alternative chroma filter with index altIdx. When alf_chroma_coeff_abs[altIdx][j] is not present, it is inferred to be equal to 0. A bitstream conformance requirement is that the value of alf_chroma_coeff_abs[altIdx][j] shall be between 0 and 2. 7 -1 (including the endpoints).
[0200] The order k of the exponential Golomb binarization uek(v) is set equal to 3.
[0201] alf_chroma_coeff_sign[altIdx][j] specifies the sign of the j-th chroma filter coefficient of the alternative chroma filter with index altIdx as follows:
[0202] - If alf_chroma_coeff_sign[altIdx][j] is equal to 0, the corresponding chroma filter coefficient has a positive value.
[0203] Otherwise (alf_chroma_coeff_sign[altIdx][j] is equal to 1), the corresponding chroma filter coefficient has a negative value.
[0204] When alf_chroma_coeff_sign[altIdx][j] is not present, it is inferred to be equal to 0.
[0205] The element AlfCoeff with altIdx=0..alf_chroma_num_alt_filters_minus1 and j=0..5 is derived as follows C [adaptation_parameter_set_id][altIdx][j] chroma filter coefficient AlfCoeff C [adaptation_parameter_set_id][altIdx]:
[0206] Alf Coeff C [adaptation_parameter_set_id][altIdx][j]=alf_chroma_coeff_abs[altIdx][j]*(1-2*alf_chroma_coeff_sign[altIdx][j]) (7-51)
[0207] The bitstream conformance requirement is that AlfCoeff with altIdx=0..alf_chroma_num_alt_filters_minus1 and j=0..5 C The value of [adaptation_parameter_set_id][altIdx][j] should be between -2 7 -1 to 2 7 -1 (including the endpoints).
[0208] alf_chroma_clip_idx[altIdx][j] specifies the clipping index of the clipping value to be used before multiplication by the j-th coefficient of the alternative chroma filter with index altIdx. A bitstream conformance requirement is that the value of alf_chroma_clip_idx[altIdx][j] with altIdx=0..alf_chroma_num_alt_filters_minus1 and j=0..5 shall be in the range 0 to 3 (inclusive).
[0209] Depends on setting equal to BitDepth C The element AlfClip with altIdx = 0..alf_chroma_num_alt_filters_minus1 and j = 0..5 is derived with bitDepth of alf_chroma_clip_idx[altIdx][j] as specified in Table 7-4. C [adaptation_parameter_set_id][altIdx][j] Chroma filter clipping value AlfClip C [adaptation_parameter_set_id][altIdx].
[0210] Table 7-4 - Normative AlfClip depending on bitDepth and clipIdx
[0211]
[0212] 2.7 Signaling of ALF parameters of CTU
[0213] In VTM6, ALF filter parameters are signaled in an adaptive parameter set (APS). In one APF, up to 25 sets of luma filter coefficients and clipping value indices, and up to 8 sets of chroma filter coefficients and clipping value indices can be signaled. To reduce bit overhead, filter coefficients of different classifications of luma components can be merged. In the slice header, the APS index for the current slice is signaled.
[0214] The clipping value index decoded from the APS allows the clipping value to be determined using the clipping value luma table and the clipping value chroma table. These clipping values depend on the internal bit depth.
[0215] In the slice header, up to 7 APS indices can be signaled to specify the luma filter set for the current slice. The filtering process can 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 from 16 fixed filter sets and a filter set from the APS. The filter set index is signaled for the luma CTB to indicate which filter set is applied. These 16 fixed filter sets are predefined and hard-coded in both the encoder and decoder.
[0216] For chroma components, the 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 is more than one chroma filter set in the APS, the filter index is signaled for each chroma CTB.
[0217] More specifically, the following apply:
[0218] The slice on / off control flag is first encoded and decoded to indicate whether at least one CTU in the slice has ALF applied. When it is true, for each CTU, the following are checked and signaled in order:
[0219] About brightness :
[0220] 1. Whether ALF is applied to the luma CTB. If yes, go to step 2. Otherwise, no further signaling is required.
[0221] 2. Check the number of ALF APS used for the current stripe, denoted by numALFAPS.
[0222] 3. If numALFAPS is equal to 0, the index of the fixed filter is signaled (e.g., alf_luma_fixed_filter_idx). Otherwise, the following applies:
[0223] - Signaling flag to indicate whether it is predicted from the first ALF APS.
[0224] - If not, go to step 4. Otherwise, stop signaling of ALF parameters for luma CTB.
[0225] 4. If numALFAPS is greater than 1, a flag is signaled to indicate whether it is predicted from ALFAPS.
[0226] - if not, signaling the index of the fixed filter;
[0227] - If yes, and numALFAPS is greater than 2, then the index of ALFAPS is signaled minus 1 using truncated unary signaling.
[0228] Regarding the chroma part:
[0229] 1. Whether ALF is applied to Cb / Cr CTB. If yes, go to step 2. Otherwise, no further signaling is required.
[0230] 2. Signal the index of the filter associated with the i-th ALF APS, where the APS index is signaled in the slice header.
[0231] 7.3.8.2 Codec Tree Unit Syntax
[0232]
[0233]
[0234]
[0235] 2.8 Cross-Component Adaptive Loop Filter (CC-ALF)
[0236] The Cross-Component Adaptive Loop Filter (CC-ALF) uses the luma sample values to refine each chroma component. Basically, if CC-ALF is applied, CC-ALF generates a correction for each chroma sample by filtering the luma samples. It is used as a loop filter step. The tool is controlled by information in the bitstream that includes both: (a) filter coefficients for each chroma component and (b) a mask that controls the application of the filter to a block of samples.
[0237] Figure 4AFIG. 4 shows the arrangement of CC-ALF relative to other loop filters. CC-ALF is achieved by replacing a linear diamond filter (such as Figure 4B ) is applied to the luminance channel of each chrominance component to operate, which is expressed as
[0238]
[0239] in,
[0240] (x,y) is the position of the chroma component i being refined,
[0241] (x C ,y C ) is the brightness position based on (x,y),
[0242] S i is the filter support in luma for chroma component i,
[0243] c i (x0,y0) represents the filter coefficients.
[0244] Figure 4A The arrangement of the CC-ALF relative to other loop filters is shown. Figure 4B A diamond filter is shown.
[0245] The CC-ALF process is further described in JVET-O0636. Key features include:
[0246] The support area is centered around its luminance position (x C ,y C ) is calculated based on the spatial scaling factor between the luma and chroma planes.
[0247] • All filter coefficients are transmitted in APS and have 8-bit dynamic range.
[0248] • The APS may be referenced in the slice header.
[0249] The CC-ALF coefficients for each chroma component of a slice are also stored in the buffer corresponding to the temporal sub-layer. A slice level flag is used to facilitate the reuse of these temporal sub-layer filter coefficient sets.
[0250] • The application of CC-ALF filter is controlled on a variable block size and is signaled by the context codec flag received for each sample block. The block size is received at slice level along with the CC-ALF enable flag for each chroma component.
[0251] The border filling of the horizontal virtual borders utilizes repetition. For the remaining borders, the same type of filling as the regular ALF is used.
[0252] 2.8.1 Further simplification of CC-ALF in JVET-P1008
[0253] Compared with JVET-P0080, the following new aspects are proposed to simplify CC-ALF design.
[0254] - Reduced complexity
[0255] ο Such as Figure 5 As shown in , the number of multiplications in the filter operation is reduced by changing the filter shape to a 3×4 diamond shape.
[0256] o Limit the dynamic range of CC-ALF coefficients to 6 bits.
[0257] ο Allows sharing of multipliers with chroma ALF.
[0258] - Aligned with ALF
[0259] ο Limit filter selection to signaling at CTU level.
[0260] οRemove the time domain layer coefficient buffer.
[0261] ο Use symmetry line selection at the ALF virtual boundary.
[0262] In addition, since simplification reduces the codec efficiency, the number of filters applied to each chroma component is limited to a maximum of 4.
[0263] Figure 5 An example of a 3x4 diamond filter is shown.
[0264] 2.8.1.1 CC_ALF syntax and semantics
[0265] 7.3.6 Strip Header Syntax
[0266] 7.3.6.1 Generic Strip Header Syntax
[0267]
[0268]
[0269]
[0270]
[0271]
[0272] ALF Data Syntax
[0273]
[0274]
[0275] 7.3.8.2 Codec Tree Unit Syntax
[0276]
[0277]
[0278] 3. Technical problems solved by some public technical solutions
[0279] The current CC-ALF design has the following problems:
[0280] 1. Only one CC-ALF mode is applied that uses brightness information to refine chrominance samples, which lacks flexibility.
[0281] 2. Use the same SPS flag to control the use of non-linear ALF and CC-ALF. It is not possible to turn off CC-ALF and non-linear ALF separately.
[0282] 3. The signaling notification of CC-ALF is independent of the non-linear ALF flag (ie, slice_alf_enabled_flag), which is unreasonable.
[0283] 4. For each CTB, only one CC-ALF filter is allowed (indicated by alf_ctb_cross_component_cb_idc for Cb and by alf_ctb_cross_component_cr_idc for Cr), which cannot capture local characteristics.
[0284] 5. CC-ALF uses luminance information to refine chrominance samples, while other filters such as SAO can also refine chrominance samples. Repeated refinement of the same chrominance sample may cause large distortion.
[0285] 6. For a CTB, the inputs of CC-ALF and Chroma ALF filtering processes are the same, i.e., the reconstructed samples after SAO process. The interaction between CC-ALF and Chroma ALF filtering processes is not considered.
[0286] 4. List of Examples and Techniques
[0287] The following list of embodiments should be considered as examples to explain the general concept. These items should not be interpreted narrowly. In addition, these items can be combined in any way.
[0288] In this document, an ALF filter may refer to a filter applied to a given color component using information of a given color component (e.g., a luma ALF filter (linear or nonlinear) is applied to luma using luma information; a chroma ALF filter is applied to chroma using chroma information, e.g., a Cb chroma ALF filter is used to filter Cb samples; and a Cr chroma ALF filter is used to filter Cr samples); and a CC-ALF filter may refer to a filter applied to a first color component using information of a second color component (e.g., the first color component may be Cb or Cr; the second color component may be luma).
[0289] Extensions to CC-ALF
[0290] 1. CC-ALF can be extended to the case where samples in the first component are corrected by filtering samples in the second component, which excludes the case where the first component is Cb / Cr and the second component is Y.
[0291] a. Additionally or alternatively, an indication of which color component CC-ALF is applied to may be signaled.
[0292] b. In one example, the first color component may be Y in a YCbCR format, or G in an RGB format.
[0293] c. In one example, the first color component may be Cb in the YCbCR format, or B in the RGB format.
[0294] d. In one example, the first color component may be Cr in the YCbCR format, or R in the RGB format.
[0295] e. In one example, the second color component may be Y in the YCbCR format, or G in the RGB format.
[0296] f. In one example, the second color component may be Cb in the YCbCR format, or B in the RGB format.
[0297] g. In one example, the second color component may be Cr in the YCbCR format, or R in the RGB format.
[0298] 2. It is proposed that when deriving the "sample correction" or "refined samples" of the first component in CC-ALF, samples from more than one component may be filtered.
[0299] a. In one example, when calculating the correction for samples from a first component, samples from a second component and a third component may be filtered, wherein the first component is different from the second component and the third component.
[0300] i. In one example, the first component is Cb in the YCbCr format, and the second and third components are Y and Cr, respectively.
[0301] ii. In one example, the first component is Cr in the YCbCr format, and the second and third components are Y and Cb, respectively.
[0302] iii. In one example, the first component is Y in YCbCr format, and the second and third components are Cb and Cr respectively.
[0303] iv. In one example, the first component is G in RGB format, and the second and third components are R and B respectively.
[0304] v. In one example, the first component is B in RGB format, and the second and third components are R and G, respectively.
[0305] vi. In one example, the first component is R in RGB format, and the second and third components are G and B respectively.
[0306] b. Alternatively, when calculating the correction for samples from the first component, samples from the second component and the third component may be filtered, where the first component is the same as the second component or the third component.
[0307] i. In one example, the first component is Cb in the YCbCr format, and the second and third components are Cb and Y, respectively.
[0308] ii. In one example, the first component is Cb in the YCbCr format, and the second and third components are Cb and Cr, respectively.
[0309] iii. In one example, the first component is Cr in the YCbCr format, and the second and third components are Cr and Y, respectively.
[0310] iv. In one example, the first component is Cr in the YCbCr format, and the second and third components are Cr and Cb, respectively.
[0311] v. In one example, the first component is Y in YCbCr format, and the second and third components are Y and Cb, respectively.
[0312] vi. In one example, the first component is Y in YCbCr format, and the second and third components are Y and Cr, respectively.
[0313] vii. In one example, the first component is G in RGB format, and the second and third components are G and R, respectively.
[0314] viii. In one example, the first component is G in RGB format, and the second and third components are G and B, respectively.
[0315] ix. In one example, the first component is B in RGB format, and the second and third components are B and R, respectively.
[0316] x. In one example, the first component is B in RGB format, and the second and third components are B and G, respectively.
[0317] xi. In one example, the first component is R in RGB format, and the second and third components are R and G, respectively.
[0318] xii. In one example, the first component is R in RGB format, and the second and third components are R and B, respectively.
[0319] c. In one example, when calculating the correction for the samples from the first component, the samples from the three components may be filtered.
[0320] i. In one example, the first component is Cb in YCbCr format, or Cr or Y.
[0321] ii. In one example, the first component is G in RGB format, or R or B.
[0322] iii. In one example, the three components are Y, Cb and Cr in YCbCr format.
[0323] iv. In one example, the three components are R, G and B in RGB format.
[0324] d. In one example, the first / second / third components and / or an indication of how many components need to be filtered for one offset derivation may be signaled from the encoder to the decoder or pre-defined.
[0325] In the following description, it is assumed that CC-ALF is applied to chrominance components (e.g., Cb or Cr). It should be noted that when CC-ALF is extended to refine other color components (e.g., luminance or G, or B, or R), similar ideas can be applied by changing the color components.
[0326] Multiple filters in CC-ALF
[0327] 3. For the CC-ALF process, a video unit (e.g., a slice / picture) can refer to more than one ALF APS. That is, for at least the first sample in the video unit, the CC-ALF filter in the first ALF APS can be used, and the CC-ALF filter in the second ALF APS can be used for at least the second sample in the video unit.
[0328] a. In one example, the number of referenced ALF APSs may be encoded and decoded.
[0329] b. In one example, the index of the ALF APS may be encoded and decoded.
[0330] c. In one example, the same ALF APS set referenced by the luma ALF filter can be used for CC-ALF.
[0331] i. Additionally or alternatively, no signaling of the ALF APS used to derive the CC-ALF filter is required.
[0332] d. In one example, a subset or superset of the ALF APS referenced by the luma ALF may be used for CC-ALF.
[0333] i. Additionally or alternatively, the difference in ALFAPS used to derive the CC-ALF filter and the luma ALF filter may be signaled.
[0334] 4. For the CC-ALF process, more than one CC-ALF filter may be used for a video region (e.g., CTB). That is, for at least the first sample point in the video region, the first CC-ALF filter may be used, and the CC-ALF filter in the second CC-ALF filter may be used for at least the second sample point in the video region.
[0335] a. In one example, indication of multiple CC-ALF filters may be signaled in a video region (eg, CTB / CU / CB / PU / PB, CTB row).
[0336] i. In one example, the indication may include a CC-ALF filter index selected in an ALF APS.
[0337] ii. Alternatively, the indication may include the selected CC-ALF filter index and the index of the ALF APS in which the CC-ALF filter is associated.
[0338] iii. Alternatively, the indication may include a selected fixed CC-ALF filter that is not signaled in the APS.
[0339] a) Additionally or alternatively, a fixed CC-ALF filter may be predefined and used to predict the selected CC-ALF filter / inherited by the block as the selected CC-ALF filter.
[0340] iv. In one example, the video zone is the same as the video area.
[0341] v. Alternatively, a video region may be larger (eg, a slice) or smaller (eg, a CU) than a video area.
[0342] b. In one example, chroma samples may be classified into multiple sets, and how to select a CC-ALF filter may depend on the classification result.
[0343] i. In one example, the two chrominance components can be classified independently.
[0344] a) In one example, the classification process of the chroma components may depend on the chroma sample information of the chroma components.
[0345] ii. In one example, the two chrominance components can be jointly derived to derive the classification.
[0346] 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.
[0347] iii. In one example, the classification process of the chrominance components may depend on the information of the luma color component.
[0348] a) In one example, the same category index may be set to a chroma block and its corresponding luma block.
[0349] iv. In one example, the classification process of one or more chrominance components may depend on a joint decision based on more than one component. (e.g. Y+Cb+Cr or Y+Cb or Y+Cr)
[0350] v. In one example, chroma samples can be classified into multiple sets following the corresponding classification of luma samples in luma ALF.
[0351] vi. In addition, or alternatively, an indication on how to select the CC-ALF filter according to the classification index may be further signaled, for example, the CC-ALF filter index for each classification index may be signaled.
[0352] Improved CC-ALF filtering process
[0353] 5. It is proposed to modify the refinement (eg the derived offset) before being used to refine the chroma samples.
[0354] a. In one example, the derived offset may be clipped to a given range.
[0355] i. In one example, whether and / or how to clip the offset can be signaled from the encoder to the decoder.
[0356] 6. Instead of performing the CC-ALF filtering process twice for the two corresponding chrominance samples of a pixel, it is proposed to call it once. Assuming that Offset1 of the pixel S of the first color component can be derived from the luma sample, Offset2 of the pixel S of the second color component can be derived from Offset1.
[0357] a. In one example, Offset1 is equal to Offset2.
[0358] b. In one example, Offset1 plus Offset2 may equal 0.
[0359] c. In one example, Offset2 can be derived as a linear function of Offset1. For example, Offset2 is equal to a*Offset1+b.
[0360] d. In one example, a clipping operation can be used to derive Offset2 from Offset1.
[0361] e. In one example, Offset2 can be derived based on Offset1 and the slice level sign flag of the joint Cb and Cr mode (eg, slice_joint_cbcr_sign_flag).
[0362] i. In one example, when slice_joint_cbcr_sign_flag is 0, offset2 may be set equal to Offset1.
[0363] a) Alternatively, in one example, when slice_joint_cbcr_sign_flag is 1, offset2 may be set equal to -Offset1.
[0364] f. In one example, one CC-ALF filter set may be used for two corresponding chroma samples (eg, Cb and Cr).
[0365] i. Additionally or alternatively, the indication of the CC-ALF filter may be signaled only once, instead of twice, for both chroma components.
[0366] g. Additionally or alternatively, the correction of the offset of the chroma components may further be signaled or derived.
[0367] i. In one example, an offset derived from a luma sample (denoted by O) may be used directly to refine a sample of a first chroma component (e.g., Cb); corrections of both O and O may be used to refine a sample of a second chroma component (e.g., Cr).
[0368] 7. Instead of performing the CC-ALF filtering process at the sample level, it is proposed to apply the CC-ALF filtering process at the sub-block (containing more than 1 sample) level.
[0369] a. In one example, the offset derivation process may be called only once for all chroma samples within a sub-block.
[0370] b. In one example, for chroma samples within a sub-block, the same offset may be used.
[0371] i. Alternatively, the offset derived from at least the second color component may be further modified, for example, the offset derived from at least the second color component may be set as an internal offset, and the final offset of the sample in the sub-block may be derived from the internal offset.
[0372] c. In one example, the sub-block size may be set to M×N (eg, 2×2, 2×1, 1×2).
[0373] d. In one example, the sub-block size may depend on the color format (eg, 4:4:4 or 4:2:0).
[0374] e. In one example, the sub-block size may be different in different blocks (eg, CTBs).
[0375] f. In one example, the sub-block size may be different for different color components.
[0376] g. In one example, the CC-ALF filter support area may depend on the sub-block size.
[0377] h. In one example, the sub-block size and / or granularity of CC-ALF invocations may be signaled in video units.
[0378] 8. Invoke the CC-ALF filtering process to apply coefficient filtering to luma sample differences instead of directly to luma samples.
[0379] a. In one example, the luma sample difference value may be defined as the difference between a luma sample and the corresponding luma sample in the filter support (region). Assume that the chroma sample coordinates are represented by (x, y).
[0380] i. In one example, for a 4:4:4 format, the corresponding luma sample is the one located at (x, y).
[0381] ii. In one example, for non-4:4:4 formats, the corresponding luma sample is the luma sample at (2x, 2y).
[0382] iii. In one example, for a 4:2:0 format, the corresponding luma sample is derived as a function (eg, an average) of two samples located at (2x, 2y) and (2x, 2y+1).
[0383] iv. In one example, the filtering process in equation (18) can be rewritten as:
[0384]
[0385] in,
[0386] (x, y) is the position of the chroma component i being refined,
[0387] (x C ,y C ) is the brightness position based on (x, y),
[0388] S i is the filter support in luma for chroma component i,
[0389] c i (x0, y0) represents the filter coefficient.
[0390] Note that if the corresponding sample point is defined as (x C ,y C ), then x0 and y0 are both equal to 0 and will be i exclude.
[0391] b. Additionally or alternatively, the luma sample difference values may be further modified, such as clipped, before use.
[0392] i. In one example, the filtering process in equation (18) can be rewritten as:
[0393]
[0394] in,
[0395] (x, y) is the position of the chroma component i being refined,
[0396] (x C ,y C ) is the brightness position based on (x, y),
[0397] S i is the filter support in luma for chroma component i,
[0398] ci (x0, y0) represents the filter coefficient.
[0399] Note that if the corresponding sample point is defined as (x C ,y C ), then x0 and y0 are both equal to 0 and will be i is excluded, and the function Clip can depend on (x0, y0).
[0400] ii. In one example, it may be signaled whether and / or how clipping is to be performed.
[0401] iii. In one example, the cropping parameters may be signaled to the decoder.
[0402] a) In addition, or alternatively, the cropping parameters in CC-ALF may be signaled using the same signaling method as the cropping parameters in the luma ALF process.
[0403] iv. In one example, the clipping parameters used in the luma ALF process (if available) can be reused in CC-ALF.
[0404] CC-ALF signaling notification
[0405] 9. In one example, at least one syntax element is signaled in the APS to indicate whether the APS contains information related to CC-ALF.
[0406] a. In one example, the APS containing information related to CC-ALF may be marked as a new APS type.
[0407] b. The indications for signaling the Cb and Cr CC-ALF filters (eg, alf_cross_component_cb_filter_signal_flag and alf_cross_component_cr_filter_signal_flag) may be jointly coded and decoded using one syntax element (eg, represented by alf_cross_component_filter_signal_flag).
[0408] i. Alternatively, the syntax element may be a non-binary value.
[0409] 10. CC-ALF and codec tool X can be used exclusively. That is, if CC-ALF is used, X is disabled, and vice versa.
[0410] a. In one example, codec tool X may be:
[0411] i. SAO of chroma components
[0412] ii. Chroma Residual Scaling in LMCS
[0413] iii. Deblocking of chroma component(s).
[0414] iv. ALF for chroma component(s).
[0415] b. In one example, the signaling notification of CC-ALF related side information can be under the conditional check of enabling / disabling codec tool X.
[0416] c. In one example, signaling of codec tool X related side information may be under conditional checking for enabling / disabling CC-ALF.
[0417] d. In one example, if a codec tool (CC-ALF or X) is disabled, the corresponding side information is not signaled.
[0418] e. Whether CC-ALF and codec tool X are used exclusively can be determined for the entire sequence, or for the entire picture, or for the entire slice, or for a region such as a slice, a sub-picture, a CTB, a codec block, etc.
[0419] 11. Enabling / disabling CC-ALF for a video region (eg, CTB) or a video unit (eg, sequence or picture or slice) may depend on the signaling and / or use of ALF for the luma component.
[0420] a. In one example, if no ALF parameters are signaled for the luma component, CC-ALF is forcibly disabled.
[0421] i. Additionally or alternatively, signaling of CC-ALF related side information may be conditional on ALF usage of the luma component (eg, alf_luma_filter_signal_flag).
[0422] ii. In addition, or if no ALF parameters are signaled, CC-
[0423] Signaling notification of ALF related side information.
[0424] b. In one example, if ALF is disabled for luma component, CC-ALF is forced to be disabled.
[0425] i. Additionally or alternatively, signaling of CC-ALF related side information (eg, 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 conditionally checked on ALF usage of the luma component (eg, slice_alf_enabled_flag or alf_ctb_flag).
[0426] ii. Additionally or alternatively, signaling of CC-ALF related side information may be skipped.
[0427] 12. Whether to signal the use of CC-ALF may depend on the number of available ALF APSs.
[0428] a. In one example, the signaling notification of CC-ALF related information (e.g., slice_cross_component_alf_cb_enabled_flag, slice_cross_component_alf_cr_enabled_flag) is under the condition that the number of available ALF APS is not equal to 0. Alternatively, the signaling notification of CC-ALF related information is under the condition that the number of available ALF APS is greater than 0.
[0429] b. In one example, if the number of available ALF APSs 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 skipped.
[0430] c. Alternatively, the conforming bitstream shall satisfy that the signaled APS index for CC-ALF and / or ALF shall not be less than the number of transmitted ALF APSs.
[0431] d. Alternatively, the conforming bitstream shall satisfy that the signaled APS index for CC-ALF and / or ALF shall refer to an available ALF APS.
[0432] e. Alternatively, whether to signal the use of CC-ALF may depend on the number of available ALF APSs containing CC-ALF information.
[0433] Calling CC-ALF
[0434] 13. CC-ALF can be applied in the prediction stage of the block.
[0435] a. In one example, at the encoder side, a prediction error may be generated based on the original block and the CC-ALF filtering result (eg, the difference between the original signal and the CC-ALF filtering result).
[0436] b. In one example, at the encoder side, a prediction error may be generated based on the original block, the predicted block according to a given prediction mode, and the CC-ALF filtering result, for example, set to the original signal minus the predicted signal minus the CC-ALF filtering result.
[0437] c. In one example, at the decoder side, reconstruction of the block may depend on the CC-ALF filtering result and the residual.
[0438] d. In one example, at the decoder side, reconstruction of a block may depend on the CC-ALF filtering result, the residual, and the prediction block generated from intra / inter / other coding modes.
[0439] e. In one example, the above examples may be enabled for some samples within a block, but disabled for the remaining samples.
[0440] i. In one example, the partial samples may represent samples of the first N rows / columns.
[0441] ii. In one example, the partial samples may represent samples of the last N rows / columns.
[0442] iii. In one example, N may depend on the filter shape used in CC-ALF.
[0443] 14. CC-ALF can be applied after reconstruction of a block (eg CTB) and before decoding another block.
[0444] 15. Instead of applying CC-ALF between SAO and ALF, a different order of filtering methods may be applied.
[0445] a. In one example, CC-ALF may be applied before all in-loop filters.
[0446] b. In one example, CC-ALF may be applied after reconstruction of a block, and the filtered reconstructed block may be used to predict a previous block.
[0447] c. In one example, CC-ALF may be applied before SAO.
[0448] 16. Whether CC-ALF is enabled or disabled may be signaled in video units (eg, sequence / picture / view / sub-picture / slice) instead of slices.
[0449] a. In one example, the indication of using CC-ALF may be conditionally signaled based on the enabling of ALF.
[0450] b. In one example, the indication to use CC-ALF may be conditionally signaled based on the chroma color format and / or a separate plane codec enabled flag.
[0451] c. In one example, the indication of using CC-ALF in a slice / CTB / CTU may be under a conditional check for enabling CC-ALF for a video unit.
[0452] 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 enabling CC-ALF is allowed.
[0453] i. Additionally or alternatively, syntax elements may be encoded or decoded only when ALF is enabled for the video unit (eg, only when sps_alf_enabled_flag is equal to 1).
[0454] ii. Additionally or alternatively, the syntax element may be encoded or decoded only when ALF is enabled for the video unit and ChromaArrayType is not 0 (eg, only when sps_alf_enabled_flag is equal to 1 and ChromaArrayType is not zero).
[0455] 17. The indication of using CC-ALF may be conditionally signaled based on the activation of ALF for the luma component.
[0456] a. In one example, if ALF is disabled for the luma component, then CC-ALF is also disabled without explicit signaling of CC-ALF.
[0457] 18. The order of processing the ALF of the chrominance component and the CC-ALF of the chrominance component can be predefined or adaptively changed on the M×N area.
[0458] a. In one example, samples filtered due to the chroma ALF filtering process on the M×N region may be further modified before being input to the CC-ALF of the chroma components on the M×N region.
[0459] b. In one example, samples filtered due to the chroma ALF filtering process and / or CC-ALF of the first M×N region may be used as input for the second M×N region.
[0460] c. In one example, CC-ALF of the chrominance components on the M×N area may be performed first, and then ALF of the chrominance components on the M×N area may be performed.
[0461] i. In one example, for an M×N region, the input of the chroma ALF filtering process can be the output of CC-ALF.
[0462] ii. In one example, samples in an M×N region may be modified by a CC-ALF before being input to the ALF of the chroma components over the M×N region.
[0463] d. In one example, the M×N region may be a CTB.
[0464] e. In one example, the M×N area may be smaller than the CTB.
[0465] i. In one example, the M×N area may be a sample point.
[0466] f. The order may be signaled from the encoder to the decoder, for example in the VPS / DPS / SPS / PPS / picture header / slice header.
[0467] 19. Syntax elements may be signaled to indicate the use of ALF and CC-ALF for a given chroma component (eg, Cb or Cr).
[0468] a. In one example, the value of a syntax element may be non-binary.
[0469] i. In one example, a value of the syntax equal to K indicates that for a given color component, both non-linear ALF and CC-ALF are disabled.
[0470] ii. In one example, a value of the syntax equal to L indicates that for a given color component, both non-linear ALF and CC-ALF are enabled.
[0471] iii. In one example, a syntax value equal to M indicates that for a given color component, only non-linear ALF is enabled, while CC-ALF is disabled.
[0472] iv. In one example, a syntax value equal to N indicates that for a given color component, only CC-ALF is enabled, while non-linear ALF is disabled.
[0473] v. In the above examples, K, L, M, N are four integer values, for example, K=0, L=3, M=1 and N=2.
[0474] b. The values of syntax elements can be encoded and decoded using fixed-length, unary, truncated unary, k-order EG and other binarization methods.
[0475] 20. Whether and / or how the above methods are applied may be based on one or more of the following conditions:
[0476] a. Video content (e.g., screen content or natural content);
[0477] b. Messages signaled in DPS / SPS / VPS / PPS / APS / picture header / slice header / slice group header / largest codec unit (LCU) / codec unit (CU) / LCU row / LCU group / TU / PU block / video codec unit;
[0478] c. The location of CU / PU / TU / block / video codec unit;
[0479] d. Decoding information of the current block and / or its neighboring blocks:
[0480] i. Block size / block shape of the current block and / or its neighboring blocks;
[0481] e. Indication of the color format (e.g., 4:2:0, 4:4:4, RGB, or YUV);
[0482] f. Codec tree structure (such as dual tree or single tree);
[0483] g. Strip / slice group type and / or picture type;
[0484] h. Color components (e.g., may be applied only to luma components and / or chroma components);
[0485] i. Time domain layer ID;
[0486] j. Standard grade / level / grade.
[0487] Figure 6 6 is a block diagram of a video processing device 600. The device 600 can be used to implement one or more methods described herein. The device 600 can be embodied in a smart phone, 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 (one or more) processors 602 can be configured to implement one or more methods described in this document. The (one or more) memories 604 can be used to store data and code for implementing the methods and techniques described herein. The video processing circuit 606 can be used to implement some of the techniques described in this document in hardware circuits. In some embodiments, the hardware circuit 606 can be partially or completely within the processor 602 (e.g., a graphics processor).
[0488] Figure 7700 is a block diagram illustrating an example video processing system 700 in which various techniques disclosed herein may be implemented. Various embodiments may include some or all of the components of system 700. System 700 may include an input 702 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, a passive optical network (PON), and wireless interfaces such as Wi-Fi or a cellular interface.
[0489] System 700 may include a codec component 704, which may implement various codecs or coding methods described in this document. Codec component 704 may reduce the average bit rate of the video from input 702 to the output of codec component 704 to generate a codec representation of the video. Therefore, codec technology is sometimes referred to as video compression or video transcoding technology. The output of codec component 704 may be stored or transmitted via the communication of the connection represented by component 706. Component 708 may use the stored or communicated bitstream (or codec) representation of the video received at input 702 to generate pixel values or displayable video sent to display interface 710. The process of generating user-visible video from bitstream representation is sometimes referred to as video decompression. In addition, although some video processing operations are referred to as "codec" operations or tools, it should be understood that codec tools or operations are used at encoders, and the corresponding decoding tools or operations of the reverse codec results will be performed by decoders.
[0490] Examples of peripheral bus interfaces or display interfaces may include Universal Serial Bus (USB) or High Definition Multimedia Interface (HDMI) or Display Port, etc. Examples of storage interfaces include SATA (Serial Advanced Technology Attachment), PCI, IDE interfaces, etc. The technology described in this document may be embodied in various electronic devices, such as mobile phones, laptops, smart phones, or other devices capable of performing digital data processing and / or video display.
[0491] Figure 8 1 is a block diagram illustrating an example video coding system 100 that may utilize the techniques of this disclosure.
[0492] like Figure 8 As shown, the video coding system 100 may include a source device 110 and a target device 120. The source device 110 generates encoded video data, which may be referred to as a video encoding device. The target device 120 may decode the encoded video data generated by the source device 110, which may be referred to as a video decoding device.
[0493] Source device 110 may include a video source 112 , a video encoder 114 , and an input / output (I / O) interface 116 .
[0494] 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 to generate a bit stream. The bit stream may include a bit sequence that forms a codec representation of the video data. The bit stream may include a coded picture and associated data. The coded picture is a coded representation of the picture. The associated data may include a sequence parameter set, a picture parameter set, and other grammatical structures. The I / O interface 116 may include a modulator / demodulator (modem) and / or a transmitter. The encoded video data may be directly transmitted to the target device 120 via the network 130a via the I / O interface 116. The encoded video data may also be stored on a storage medium / server 130b for access by the target device 120.
[0495] Target device 120 may include an I / O interface 126 , a video decoder 124 , and a display device 122 .
[0496] 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 the user. The display device 122 may be integrated with the target device 120, or may be external to the target device 120, and the target device 120 may be configured to interface with an external display device.
[0497] The video encoder 114 and the video decoder 124 may be in accordance with a video compression standard such as the High Efficiency Video Codec (HEVC) standard, the Versatile Video Codec (VVC) standard, and other current and / or future standards.
[0498] Fig. 9 A block diagram showing an example of a video encoder 200, which may be Figure 8 The video encoder 114 in the system 100 is shown.
[0499] Video encoder 200 may be configured to perform any or all of the techniques of this disclosure. Fig. 9 In the example of , video encoder 200 includes multiple functional components. The techniques described in this disclosure can be shared between various components of video encoder 200. In some examples, a processor can be configured to perform any or all of the techniques described in this disclosure.
[0500] The functional components of the video encoder 200 may include a segmentation unit 201, a prediction unit 202, a residual generation unit 207, a transform unit 208, a quantization unit 209, an inverse quantization unit 210, an inverse transform unit 211, a reconstruction unit 212, a buffer 213 and an entropy coding unit 214. The prediction unit 202 may include a mode selection unit 203, a motion estimation unit 204, a motion compensation unit 205 and an intra-frame prediction unit 206.
[0501] In other examples, the video encoder 200 may include more, fewer, or different functional components. In one example, the prediction unit 202 may include an intra-block copy (IBC) unit. The IBC unit may perform prediction in an IBC mode in which at least one reference picture is a picture in which the current video block is located.
[0502] Furthermore, some components such as the motion estimation unit 204 and the motion compensation unit 205 may be highly integrated but are not shown for the purpose of explanation. Fig. 9 are represented individually in the examples.
[0503] The partitioning unit 201 may partition a picture into one or more video blocks. The video encoder 200 and the video decoder 300 may support various video block sizes.
[0504] The mode selection unit 203 may select one of the coding modes (intra or inter), for example, 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 be used as a reference picture to reconstruct the coded block. In some examples, the mode selection unit 203 may select an intra-frame combined inter-frame prediction (CIIP) mode in which prediction is based on an inter-frame prediction signal and an intra-frame prediction signal. The mode selection unit 203 may also select the accuracy of the motion vector of the block (e.g., sub-pixel or integer pixel accuracy) in the case of inter-frame prediction.
[0505] To perform inter-frame prediction on the current video block, the motion estimation unit 204 may generate motion information of the current video block by comparing the current video block with one or more reference frames from the buffer 213. The motion compensation unit 205 may determine a predicted video block of the current video block based on the motion information and decoded samples of pictures from the buffer 213 other than the picture associated with the current video block.
[0506] Motion estimation unit 204 and motion compensation unit 205 may perform different operations on the current video block, eg, depending on whether the current video block is in an I slice, a P slice, or a B slice.
[0507] In some examples, the motion estimation unit 204 may perform unidirectional prediction on the current video block, and the motion estimation unit 204 may search for a reference video block of the current video block in the reference pictures of list 0 or list 1. The motion estimation unit 204 may then generate a reference index indicating a reference picture containing the reference video block in list 0 or list 1 and a motion vector indicating a spatial displacement between the current video block and the reference video block. The 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. The motion compensation unit 205 may generate a predicted video block of the current block based on the reference video block indicated by the motion information of the current video block.
[0508] In other examples, the motion estimation unit 204 may perform bidirectional prediction on the current video block, and the motion estimation unit 204 may search for a reference video block of the current video block in the reference pictures in list 0, and may also search for another reference video block of the current video block in the reference pictures in list 1. The motion estimation unit 204 may then generate a reference index indicating a reference picture containing a reference video block in list 0 and list 1, and a motion vector indicating a spatial displacement between the reference video block and the current video block. The 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. The motion compensation unit 205 may generate a predicted video block of the current video block based on the reference video block indicated by the motion information of the current video block.
[0509] In some examples, motion estimation unit 204 may output a complete set of motion information for use in a decoding process of a decoder.
[0510] In some examples, motion estimation unit 204 may not output a complete set of motion information for the current video. Instead, motion estimation unit 204 may reference motion information of another video block to signal the motion information of the current 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 the neighboring video block.
[0511] In one example, motion estimation unit 204 may indicate a value in a syntax structure associated with the current video block that indicates to video decoder 300 that the current video block has the same motion information as another video block.
[0512] In another example, the 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 the difference between the motion vector of the current video block and the motion vector of the indicated video block. The 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.
[0513] As described above, the video encoder 200 may predictively signal motion vectors. Two examples of predictive signaling techniques that may be implemented by the video encoder 200 include Advanced Motion Vector Prediction (AMVP) and Merge mode signaling.
[0514] The intra prediction unit 206 may perform intra prediction on the current video block. When the intra prediction unit 206 performs intra prediction on the current video block, the intra prediction unit 206 may generate prediction data for the current video block based on decoded samples of other video blocks in the same picture. The prediction data for the current video block may include a predicted video block and various syntax elements.
[0515] The residual generation unit 207 may generate residual data for the current video block by subtracting (e.g., indicated by a minus sign) the prediction video block(s) of the current video block from the current video block. The residual data for the current video block may include residual video blocks corresponding to different sample components of samples in the current video block.
[0516] In other examples, such as in skip mode, there may be no residual data for the current video block, and the residual generation unit 207 may not perform a subtraction operation.
[0517] Transform processing unit 208 may generate one or more transform coefficient video blocks for a current video block by applying one or more transforms to the residual video block associated with the current video block.
[0518] After transform processing unit 208 generates a transform coefficient video block associated with the current video block, quantization unit 209 may quantize the transform coefficient video block associated with the current video block based on one or more quantization parameter (QP) values associated with the current video block.
[0519] The inverse quantization unit 210 and the inverse transform unit 211 may apply inverse quantization and inverse transform to the transform coefficient video block, respectively, to reconstruct a residual video block from the transform coefficient video block. The reconstruction unit 212 may add the reconstructed residual video block to corresponding samples from one or more predicted video blocks generated by the prediction unit 202 to generate a reconstructed video block associated with the current block for storage in the buffer 213.
[0520] After the reconstruction unit 212 reconstructs the video block, a loop filtering operation may be performed to reduce video block artifacts in the video block.
[0521] The entropy encoding unit 214 may receive data from other functional components of the video encoder 200. When the entropy encoding unit 214 receives the data, the entropy encoding unit 214 may perform one or more entropy encoding operations to generate entropy-encoded data and output a bitstream including the entropy-encoded data.
[0522] Fig.10 A block diagram showing an example of a video decoder 300 may be Figure 8 The video decoder 114 in the system 100 is shown.
[0523] Video decoder 300 may be configured to perform any or all of the techniques of this disclosure. Fig.10 In the example of , video decoder 300 includes multiple functional components. The techniques described in this disclosure can be shared between various components of video decoder 300. In some examples, a processor can be configured to perform any or all of the techniques described in this disclosure.
[0524] exist Fig.10 In the example of FIG. 3 , the video decoder 300 includes an entropy decoding unit 301, a motion compensation unit 302, an intra-frame prediction unit 303, an inverse quantization unit 304, an inverse transform unit 305, a reconstruction unit 306, and a buffer 307. In some examples, the video decoder 300 can perform operations generally related to the video encoder 200 (e.g., Fig. 9 ) is the reverse of the encoding process described in .
[0525] The entropy decoding unit 301 may retrieve an encoded bitstream. The encoded bitstream may include entropy-encoded video data (e.g., an encoded block of video data). The entropy decoding unit 301 may decode the entropy-encoded video data, and based on the entropy-decoded video data, the motion compensation unit 302 may determine motion information including motion vectors, motion vector precision, reference picture list indexes, and other motion information. For example, the motion compensation unit 302 may determine such information by performing AMVP and Merge modes.
[0526] Interpolation may be performed based on an interpolation filter, and the motion compensation unit 302 may generate a motion compensated block. An identifier of an interpolation filter to be used with sub-pixel precision may be included in the syntax element.
[0527] The motion compensation unit 302 may calculate interpolation of sub-integer pixels of the reference block using an interpolation filter as used by the video encoder 200 during encoding of the video block. The motion compensation unit 302 may determine the interpolation filter used by the video encoder 200 based on received syntax information and use the interpolation filter to generate a prediction block.
[0528] The motion compensation unit 302 can use some syntax information to determine the size of the blocks used to encode (one or more) frames and / or (one or more) slices of the encoded video sequence, the partitioning information describing how each macroblock of the pictures of the encoded video sequence is partitioned, the mode indicating how to encode each partition, one or more reference frames (and reference frame lists) for each inter-frame coded block, and other information for decoding the encoded video sequence.
[0529] The intra prediction unit 303 may form a prediction block from spatially neighboring blocks using, for example, an intra prediction mode received in the bitstream. The inverse quantization unit 303 inversely quantizes, i.e., dequantizes, 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.
[0530] The reconstruction unit 306 may add the residual block to the corresponding prediction block generated by the motion compensation unit 202 or the intra prediction unit 303 to form a decoded block. If necessary, a deblocking filter may also be applied to filter the decoded block to remove blocking artifacts. The decoded video block is then stored in a buffer 307, which provides a reference block for subsequent motion compensation.
[0531] Some embodiments of the disclosed technology include making a decision or determination to enable a video processing tool or mode. In one example, when a video processing tool or mode is enabled, the encoder will use or implement the tool or mode in the processing of a video block, but will not necessarily modify the generated bitstream based on the use of the tool or mode. That is, when the video processing tool or mode is enabled based on the decision or determination, the conversion from the video block to the bitstream representation of the video will use the video processing tool or mode. In another example, when the video processing tool or mode is enabled, the decoder will process 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 the video to the video block will be performed using the video processing tool or mode enabled based on the decision or determination.
[0532] Some embodiments of the disclosed technology include making a decision or determination to disable a video processing tool or mode. In an example, when the video processing tool or mode is disabled, the encoder will not use the tool or mode in the conversion of video blocks to a bitstream representation of the video. In another example, when the video processing tool or mode is disabled, the decoder will process the bitstream knowing that the bitstream has not been modified using the video processing tool or mode that was disabled based on the decision or determination.
[0533] In this document, 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 from a pixel representation of a video to a corresponding bitstream representation, or vice versa. As defined by the syntax, for example, a bitstream representation of a current video block may correspond to bits that are co-located or distributed at different locations within the bitstream. For example, a macroblock may be encoded based on a transformed and coded error residual value, and bits in a header and other fields in the bitstream may also be used.
[0534] In some embodiments, a video processing method includes: for conversion between a video region of a video including a plurality of component video blocks and a bitstream representation of the video, making a determination to use a cross-component adaptive loop filter (CC-ALF) during the conversion to correct reconstructed sample values of a first component video block of a first component using reconstructed sample values of a second component video block of a second component, wherein the first component does not include Cb and Cr color representations, and wherein the second component does not include a luma (Y) component; and performing the conversion based on the determination. In various embodiments, the bitstream representation may identify the first component, represent the video using a YCbCr format, and wherein the first component is a Y component, or represent the video using an RGB format, and wherein the first component is a G component.
[0535] A list of some preferred provisions of the embodiments is provided next.
[0536] The first set of items illustrates example embodiments of the techniques discussed in previous sections (eg, Item 1).
[0537] 1. A video processing method (eg, Fig.11 ) comprising: for a conversion between a video region of a video including a plurality of component video blocks and a bitstream representation of the video, making a determination (702) to correct reconstructed sample values of a first component video block of a first component using reconstructed sample values of video blocks of at least two components during the conversion using a cross-component adaptive loop filter (CC-ALF); and performing (704) the conversion based on the determination.
[0538] 2. The method of clause 1, wherein one of the two components is a first component.
[0539] 3. The method of clause 1, wherein the two components are different from the first component.
[0540] 4. The method of clause 1, wherein CC-ALF is used based on reconstructed sample values of video blocks of three color components.
[0541] The following items illustrate example embodiments of the techniques discussed in previous sections (eg, item 4).
[0542] 5. A video processing method, comprising: for conversion between a video region of a video including a plurality of component video blocks and a bitstream representation of the video, making a determination to use a first cross-component adaptive loop filter (CC-ALF) to convert a first portion of the video region, and to use a second CC-ALF to convert a second portion of the video region; and performing the conversion based on the determination; wherein the first CC-ALF is used to correct a reconstructed sample value of a first component of the first portion of the video region using a reconstructed sample value of a second component of the first portion of the video region; and wherein the second CC-ALF is used to correct a reconstructed sample value of a third component of the second portion of the video region using a reconstructed sample value of a fourth component of the second portion of the video region.
[0543] 6. A method according to clause 5, wherein the bitstream representation comprises an indication of the use of multiple CC-ALFs and / or the first CC-ALF and / or the second CC-ALF.
[0544] 7. A method according to clause 6, wherein the indication is comprised at a codec treeblock or codec unit or prediction unit or prediction block or codec treeblock row level.
[0545] 8. A method according to any of clauses 5-7, wherein converting comprises classifying samples of the first component or the third component into a plurality of sets and determining characteristics of the first CC-ALF and / or the second CC-ALF based on the classification.
[0546] 9. A method according to any of clauses 5-7, wherein the first component and the third component are identical; and the second component and the fourth component are identical frames.
[0547] The following items illustrate example embodiments of the techniques discussed in previous sections (eg, Item 7).
[0548] 10. A video processing method, comprising: for conversion between a video block of a video including multiple components and a bitstream representation of the video, determining to use a cross-component adaptive loop filter (CC-ALF) at an M×N sub-block level, and deriving a first offset from samples of at least a second component of an M×N sub-block; and performing conversion based on the determination, wherein M and N are positive integers; and wherein the CC-ALF is used to correct the M×N sub-block samples of the first component of the video based at least on the first offset.
[0549] 11. A method as described in clause 10, wherein the CC-ALF uses a first offset value for all samples in an MxN sub-block.
[0550] 12. A method as described in clause 10, wherein the CC-ALF uses multiple final offset values for samples in the MxN sub-block, and the final offset is derived from the first offset.
[0551] 13. A method according to any of clauses 10-12, wherein M and N depend on the color format of the video.
[0552] 14. A method according to any of clauses 10-13, wherein the conversion of the further video block of the video uses sub-blocks of different sizes for the conversion.
[0553] 15. A method according to any of clauses 10-13, wherein MxN=2x2 or MxN=2x1 or MxN=1x2.
[0554] The following items illustrate example embodiments of the techniques discussed in previous sections (eg, Item 10).
[0555] 16. A method of video processing, comprising: determining that an exclusion rule applies to a conversion between a current video block of a video and a bitstream representation of the video, wherein the exclusion rule specifies that the conversion does not allow a codec tool and a cross-component adaptive loop filter codec tool to be used together for the current video block; and performing the conversion based on the determination
[0556] 17. A method according to clause 16, wherein the codec comprises a sample adaptive offset codec for chroma components.
[0557] 18. The method of clause 16, wherein the codec comprises a residual scaling tool for luma mapping employing a chroma scaling codec.
[0558] 19. The method of clause 16, wherein the codec tool comprises a deblocking process or an adaptive loop filter for chroma samples.
[0559] 20. A method according to any of clauses 16-19, wherein the exclusion rule is signalled as a field in the bitstream representation.
[0560] The following items illustrate example embodiments of the techniques discussed in previous sections (eg, Item 15).
[0561] 21. A video processing method, comprising: determining an order in which a cross-component adaptive loop filter (CC-ALF) and one or more loop filters are applied to reconstructed samples of a video block of a video during conversion between a video block and a bitstream representation of the video; and performing the conversion according to the order; wherein the order does not include using the CC-ALF after a sample adaptive offset tool and before an adaptive loop filter tool.
[0562] 22. A method according to clause 21, wherein the order specifies that the CC-ALF is applied to the reconstructed samples before applying any other loop filters.
[0563] 23. The method of clause 21, wherein the order specifies that CC_ALF is applied to reconstructed samples of a video block prior to being used for prediction of a subsequent video block of the video during conversion.
[0564] 24. A method according to any of clauses 21-23, wherein the order specifies using a CC-ALF before a sample adaptive offset loop filter.
[0565] 25. A method according to any of clauses 1 to 24, wherein converting comprises encoding the video into a codec representation.
[0566] 26. A method according to any of clauses 1 to 25, wherein converting comprises decoding the codec representation to generate pixel values of the video.
[0567] 27. A video decoding apparatus comprising a processor configured to implement the method of one or more of clauses 1 to 26.
[0568] 28. A video encoding apparatus comprising a processor configured to implement the method of one or more of clauses 1 to 26.
[0569] 29. A computer program product having computer code stored thereon which, when executed by a processor, causes the processor to implement the method of any one of clauses 1 to 26.
[0570] 30. The method, apparatus or system described in this document.
[0571] The second group of items describes certain features and aspects of the technology disclosed in previous sections (e.g., items 1 to 7).
[0572] 1. A video processing method (eg, Fig. 12A The method 1210 described in claim 1 comprises: for a conversion between a video region of a video and a bitstream representation of the video, making (1212) a determination that a cross-component adaptive loop filtering (CC-ALF) tool is used to refine chroma sample values using luma sample values; and performing (1214) the conversion based on the determination, wherein the refinement comprises correcting the chroma sample values using a final refinement, the final refinement being a further refinement of a first refined value determined by selectively filtering the luma sample values.
[0573] 2. The method of clause 1, wherein the further refinement of the first refined value comprises clipping the first refined value to a given range.
[0574] 3. A method according to clause 2, wherein the bitstream representation comprises information indicating whether and / or how the first refinement is to be pruned.
[0575] 4. A video processing method (eg, Fig. 12B The method 1220 described in , comprises: for conversion between a video region of a video and a bitstream representation of the video, making (1222) a determination that a cross-component adaptive loop filtering (CC-ALF) tool is used 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; and performing (1224) conversion based on the determination; wherein the CC-ALF tool is used except for the case where 1) the first component is a Cr component or a Cb component, and 2) the second component is a Y component.
[0576] 5. A method as described in clause 4, wherein the bitstream representation identifies the first component.
[0577] 6. The method of clause 4, wherein at least one of the first component and the second component is a Y component in the first video block represented in a YCbCr format or a G component in the first video block represented in an RGB format.
[0578] 7. The method of clause 4, wherein at least one of the first component and the second component is a Cb component in the first video block represented in a YCbCr format or a B component in the first video block represented in an RGB format.
[0579] 8. The method of clause 4, wherein at least one of the first component and the second component is a Cr component in the first video block represented in a YCbCr format or an R component in the first video block represented in an RGB format.
[0580] 9. A method according to clause 4, wherein the CC-ALF tool is used to further refine the sample values of the first video block using the sample values of the third video block of the third component, the second component and the third component are different from the first component, and wherein when correcting the sample values of the first component, the samples from the second component and the third component are filtered.
[0581] 10. The method of clause 9, wherein the first component is Cb in the first video block represented using a YCbCr format, and the second component and the third component are a Y component and a Cr component, respectively.
[0582] 11. The method of clause 9, wherein the first component is Cr in the first video block represented using a YCbCr format, and the second component and the third component are a Y component and a Cb component, respectively.
[0583] 12. The method of clause 9, wherein the first component is Y in the first video block represented using a YCbCr format, and the second component and the third component are Cb and Cr components, respectively.
[0584] 13. The method of clause 9, wherein the first component is G in the first video block represented using an RGB format, and the second component and the third component are R and B components, respectively.
[0585] 14. The method of clause 9, wherein the first component is B in the first video block represented using an RGB format, and the second component and the third component are R and G components, respectively.
[0586] 15. The method of clause 9, wherein the first component is R in the first video block represented using an RGB format, and the second component and the third component are G and B components, respectively.
[0587] 16. A method according to clause 4, wherein the CC-ALF tool is used to further refine the sample values of the first video block using the sample values of the third video block of the third component, one of the second component and the third component is the same as the first component, and wherein when correcting the sample values of the first component, the samples from the second component and the third component are filtered.
[0588] 17. The method of clause 16, wherein the first component is Cb in a first component video block represented using a YCbCr format, and the second component and the third component are a Cb component and a Y component, respectively.
[0589] 18. The method of clause 16, wherein the first component is Cb in a first component video block represented using a YCbCr format, and the second component and the third component are a Cb component and a Cr component, respectively.
[0590] 19. The method of clause 16, wherein the first component is Cr in a first component video block represented using a YCbCr format, and the second component and the third component are a Cr component and a Y component, respectively.
[0591] 20. The method of clause 16, wherein the first component is Cr in a first component video block represented using a YCbCr format, and the second component and the third component are a Cr component and a Cb component, respectively.
[0592] 21. The method of clause 16, wherein the first component is Y in a first component video block represented using a YCbCr format, and the second component and the third component are a Y component and a Cb component, respectively.
[0593] 22. The method of clause 16, wherein the first component is Y in a first component video block represented using a YCbCr format, and the second component and the third component are a Y component and a Cr component, respectively.
[0594] 23. The method of clause 16, wherein the first component is G in a first component video block represented using an RGB format, and the second component and the third component are a G component and an R component, respectively.
[0595] 24. The method of clause 16, wherein the first component is G in a first component video block represented using an RGB format, and the second component and the third component are a G component and a B component, respectively.
[0596] 25. The method of clause 16, wherein the first component is B in a first component video block represented using an RGB format, and the second component and the third component are a B component and an R component, respectively.
[0597] 26. The method of clause 16, wherein the first component is B in a first component video block represented using an RGB format, and the second component and the third component are a B component and a G component, respectively.
[0598] 27. The method of clause 16, wherein the first component is R in a first component video block represented using an RGB format, and the second component and the third component are an R component and a G component, respectively.
[0599] 28. The method of clause 16, wherein the first component is R in a first component video block represented using an RGB format, and the second component and the third component are an R component and a B component, respectively.
[0600] 29. A method according to clause 4, wherein the CC-ALF tool also uses sample values of a third video block of a third component, the first component to the third component are different from each other, and wherein the sample values of the first video block are refined based on the filtered sample values of the first video block to the third video block.
[0601] 30. The method of clause 29, wherein the first component is Cb, Cr, or Y in a first component video block represented using a YCbCr format.
[0602] 31. The method of clause 29, wherein the first component is G, R, or B in a first component video block represented using an RGB format.
[0603] 32. The method of clause 29, wherein the first to third components are Y, Cb and Cr components in a YCbCr format.
[0604] 33. The method of clause 29, wherein the first to third components are R, G, and B components in an RGB format.
[0605] 34. A method according to clause 29, wherein the bitstream representation comprises at least one of: i) an indication of the first to third components and / or ii) a number of components to be archived for offset derivation.
[0606] 35. A video processing method, comprising: for conversion between a video unit of a video and a bitstream representation of the video, making a determination according to a rule to use a cross-component adaptive loop filtering (CC-ALF) tool to correct a sample value of a first component using a sample value of a second component; and performing the conversion based on the determination; wherein the rule specifies the use of two or more ALF adaptive parameter sets (APS), the two or more ALF APSs comprising a first ALF APS and a second ALF APS in the bitstream representation.
[0607] 36. The method of clause 35, wherein the first APS and the second APS are the same.
[0608] 37. The method of clause 35, wherein the first APS and the second APS are different from each other.
[0609] 38. The method of clause 35, wherein the video unit corresponds to a slice or picture of the video.
[0610] 39. The method of clause 35, wherein the rule specifies that the two or more ALF APSs include a first ALF APS applied to a first sample in the video unit and a second ALF APS applied to a second sample in the video unit.
[0611] 40. The method of clause 35, wherein the number of two or more ALF APSs referenced by the video unit is included in the bitstream representation.
[0612] 41. The method of clause 35, wherein indices of two or more ALF APSs referenced by the video unit are included in the bitstream representation.
[0613] 42. The method of clause 35, wherein the CC-ALF tool utilizes the same set, subset, or superset of two or more ALF APSs referenced by the luma ALF filter.
[0614] 43. A method according to clause 42, wherein the two or more ALF APS used to derive the CC-ALF filter are not included in the bitstream representation.
[0615] 44. A method according to clause 42, wherein the difference of the ALF APS used to derive the CC-ALF filter and the luma ALF filter is included in the bitstream representation.
[0616] 45. A video processing method, comprising: for conversion between a video region of a video and a bitstream representation of the video, making a determination according to a rule to use a cross-component adaptive loop filtering (CC-ALF) tool to correct a sample value of a first component using a sample value of a second component; and performing the conversion based on the determination; wherein the rule specifies the use of two or more CC-ALF filters, the two or more CC-ALF filters comprising a first CC-ALF filter applied to a first sample point in the video region and a second CC-ALF filter applied to a second sample point in the video region.
[0617] 46. A method as described in clause 45, wherein the bitstream representation includes an indication in the video region.
[0618] 47. A method as described in clause 45, wherein the bitstream representation includes an indication of a video region that is smaller than or larger than the video area.
[0619] 48. The method of clause 47, wherein the video region corresponds to a codec treeblock and the video region is a slice or a codec unit.
[0620] 49. A method according to any of clauses 45 to 48, wherein the bitstream representation comprises an indication comprising indices of two or more CC-ALF filters selected from an ALF adaptation parameter set (APS).
[0621] 50. A method according to any of clauses 45 to 48, wherein the bitstream representation comprises an indication comprising indices of two or more CC-ALF filters selected from one or more ALF APSs and indices of one or more ALF APSs.
[0622] 51. A method according to any of clauses 45 to 48, wherein at least one of the two or more CC-ALF filters is selected from a predefined fixed CC-ALF filter or inherited from a video region, and wherein the bitstream representation includes an indication including an index of the selected fixed CC-ALF filter that is not in the APS.
[0623] 52. A method according to clause 45, wherein the conversion includes one or more processes for classifying chroma samples of one or more chroma components into multiple sets and determining characteristics of the first CC-ALF filter and / or the second CC-ALF filter based on the classification.
[0624] 53. A method according to clause 52, wherein the classification is derived independently for the chroma samples of the two chroma components.
[0625] 54. The method of clause 52, wherein the classification is derived jointly for the chroma samples of the two chroma components.
[0626] 55. The method of clause 52, wherein one or more processes for classifying chroma samples of chroma components depend on information of a corresponding luma color component.
[0627] 56. A method as recited in clause 52, wherein one or more processes for classifying chroma samples of one or more chroma components is dependent on a joint decision based on more than one chroma component.
[0628] 57. A method as described in clause 52, wherein the chroma samples are classified into a plurality of sets based on the classification of corresponding luma samples in the luma ALF.
[0629] 58. A method as described in clause 52, wherein the indication of the first CC-ALF filter and / or the second CC-ALF filter according to a classification index is signalled.
[0630] 59. A video processing method (e.g., Fig. 12C The method 1230 described in , comprises: for conversion between a video region of a video and a bitstream representation of the video, deriving (1232) a first offset for a first color component of the video region based on luma samples of the video region; deriving (1234) a second offset for a second color component of the video region based on the first offset; and performing (1236) the conversion by correcting the first color component and the second color component based on the luma samples of the video region by applying a cross-component adaptive loop filtering (CC-ALF) tool.
[0631] 60. The method of clause 59, wherein the first offset and the second offset are identical to each other.
[0632] 61. The method of clause 59, wherein the sum of the first offset and the second offset is equal to zero.
[0633] 62. The method of clause 59, wherein the second offset is derived using a linear function of the first offset.
[0634] 63. A method according to clause 59, wherein the second offset is derived using a cropping operation of the first offset.
[0635] 64. A method according to clause 59, wherein the second offset is derived based on the first offset and a stripe level flag indicating a joint Cb and Cr mode.
[0636] 65. The method of clause 59, wherein a CC-ALF filter set is used for the first color component and the second color component.
[0637] 66. A method according to clause 59, wherein a correction of at least one of the first offset and the second offset is signaled or derived.
[0638] 67. A video processing method (e.g., Fig.12D The method 1240 described in , comprises: for conversion between a video block of a video comprising multiple components and a bitstream representation of the video, determining (1242) to use a cross-component adaptive loop filter (CC-ALF) at an M×N sub-block level, M and N are positive integers, where at least one of M and N is greater than 1; and performing (1244) conversion based on the determination, where the CC-ALF tool is used to correct the M×N sub-block samples of a first component of the video based on a second component of the video.
[0639] 68. A method according to clause 67, further comprising deriving a first offset from samples of at least a second component of an MxN sub-block, and wherein the CC-ALF tool is used to correct the MxN sub-block samples based on the first offset.
[0640] 69. A method as recited in clause 68, wherein the CC-ALF tool uses a first offset for all samples in the MxN sub-block.
[0641] 70. A method as recited in clause 68, wherein the CC-ALF tool uses a final offset for samples in the MxN sub-block, and the final offset is derived from the first offset.
[0642] 71. A method according to clause 67, wherein M and N depend on the color format of the video.
[0643] 72. The method of clause 67, wherein MxN=2x2, or MxN=2x1, or MxN=1x2.
[0644] 73. The method of clause 67, wherein the conversion of another video block of the video uses sub-blocks of different sizes for the conversion.
[0645] 74. A method according to clause 67, wherein M and N depend on which color the first component represents.
[0646] 75. A method according to clause 67, wherein the CC-ALF tool support area depends on the value of M and the value of N.
[0647] 76. A method according to clause 67, wherein the values of M and N, and / or the granularity of the CC-ALF tool are signaled in video units of the video.
[0648] 77. A method according to any one of clauses 1 to 76, wherein converting comprises encoding the video into a bitstream representation.
[0649] 78. A method according to any one of clauses 1 to 76, wherein converting comprises decoding a bitstream representation to generate a video.
[0650] 79. A video processing device comprising a processor configured to implement the method of any one or more of clauses 1 to 78.
[0651] 80. A computer readable medium storing program code which, when executed, causes a processor to implement the method of any one or more of clauses 1 to 78.
[0652] 81. A computer-readable medium storing a codec representation or a bitstream representation generated according to any of the above methods.
[0653] The third group of clauses describes certain features and aspects of the technology disclosed in previous sections (e.g., item 8).
[0654] 1. A video processing method (eg, Fig.13 The method 1310 described in , comprising:
[0655] For conversion between a video region of a video and a bitstream representation of the video, determining to use a cross-component adaptive loop filter (CC-ALF) process based on luma sample difference filtering to correct chroma samples of the video region; and performing the conversion based on the determination.
[0656] 2. A method according to clause 1, wherein the luma sample difference value corresponds to the difference between luma sample values in the filter support region and luma sample values corresponding to chroma samples of the video region.
[0657] 3. A method as described in clause 2, wherein the corresponding luma sample is located at (x, y) of the video area in a 4:4:4 format, and wherein (x, y) indicates the coordinates of the chroma samples.
[0658] 4. A method as described in clause 2, wherein the corresponding luma sample is located at (2x, 2y) of the video area in a non-4:4:4 format, and wherein (x, y) indicates the coordinates of the chroma samples.
[0659] 5. A method according to clause 2, wherein the corresponding luma sample is derived as a function of two samples located at (2x, 2y) and (2x, 2y+1) of a video area in a 4:2:0 format, and wherein (x, y) indicates the coordinates of the chroma sample.
[0660] 6. A method according to clause 1, wherein the luma sample difference values are clipped before use.
[0661] 7. A method according to clause 6, wherein the bitstream representation comprises information on whether and / or how luma sample difference values are clipped.
[0662] 8. A method according to clause 6, wherein the bitstream representation comprises clipping parameters for clipping luma sample difference values.
[0663] 9. A method according to clause 6, wherein the cropping parameters in the CC-ALF process are signalled using a signalling method for cropping parameters in the luma ALF process.
[0664] 10. A method as described in clause 1, wherein the clipping parameters used in the luma ALF process are used in the CC-ALF process.
[0665] 11. A method according to any of clauses 1 to 10, wherein converting comprises encoding the video into a bitstream representation.
[0666] 12. A method according to any of clauses 1 to 10, wherein converting comprises decoding a bitstream representation to generate a video.
[0667] 13. A video processing apparatus comprising a processor configured to implement the method of any one or more of clauses 1 to 12.
[0668] 14. A computer readable medium storing program code which, when executed, causes a processor to implement the method of any one or more of clauses 1 to 12.
[0669] 15. A computer-readable medium storing a codec representation or a bitstream representation generated according to any of the above methods.
[0670] The fourth group of clauses describes certain features and aspects of the technology disclosed in previous sections (e.g., items 9-20).
[0671] 1. A video processing method (eg, Fig.14AThe method 1410 shown includes: performing (1412) conversion between a portion of a chrominance component of a video and a bitstream representation of the video according to a rule, wherein the rule specifies whether a cross-component adaptive loop filtering (CC-ALF) tool is available for conversion of the portion of the video depending on whether the availability or use of the adaptive loop filtering (ALF) tool is indicated for a corresponding portion of the luminance component.
[0672] 2. The method of clause 1, wherein the portion of the chrominance component corresponds to a video region or a video unit.
[0673] 3. A method according to clause 2, wherein the video region corresponds to a codec treeblock.
[0674] 4. A method according to clause 2, wherein a video unit corresponds to a sequence or a picture or a slice of a video.
[0675] 5. A method as described in clause 1, wherein the rules specify that the CC-ALF tools are not available without signaling ALF parameters for the corresponding part of the luma component.
[0676] 6. A method as described in clause 1, wherein the signaling of information related to the CC-ALF tool is based on the use of the ALF tool for the corresponding part of the luma component.
[0677] 7. A method as described in clause 1, wherein the bitstream representation omits information related to the CC-ALF tool in case the ALF tool for the corresponding part of the luma component is disabled.
[0678] 8. A method according to clause 6, wherein the signalling of information related to the CC-ALF tool in slice level is dependent on the usage of the ALF tool in slice level for the corresponding part of the luma component.
[0679] 9. A method as described in clause 6, wherein the signaling of information related to the CC-ALF tool at the codec tree block (CTB) level depends on the use of the ALF tool at the CTB level for the corresponding part of the luma component.
[0680] 10. A method as described in clause 6, wherein information related to CC-ALF tools is signalled using syntax elements corresponding to i) slice_cross_component_alf_cb_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.
[0681] 11. A method as described in clause 6, wherein the use of the ALF tool for the corresponding part of the luma component is signaled using a syntax element corresponding to i) slice_alf_enabled_flag or ii) alf_ctb_flag.
[0682] 12. A method as described in clause 1, wherein signaling of information related to CC-ALF tools is skipped without signaling of ALF parameters for a corresponding portion of the luma component.
[0683] 13. A method as described in clause 1, wherein the rule provides that the CC-ALF tool is disabled for the portion of the chroma component if the ALF tool is disabled for the corresponding portion of the luma component.
[0684] 14. A video processing method, comprising: performing conversion between a video region of a video and a bitstream representation of the video, wherein the bitstream representation conforms to a format rule, the format rule specifying whether to include a syntax element indicating the use of a cross-component adaptive loop filter (CC-ALF) tool in the bitstream representation depends on the number of available adaptive loop filter (ALF) adaptation parameter sets (APS).
[0685] 15. A method according to clause 14, wherein the format rule specifies that the syntax element is included in the bitstream representation if the number of ALF APSs is not equal to zero or is greater than zero.
[0686] 16. A method according to clause 14, wherein the format rule specifies that in case the number of ALF APSs is zero, the syntax element is omitted in the bitstream representation.
[0687] 17. A method according to clause 14, wherein the format rule specifies that the 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.
[0688] 18. A method according to clause 14, wherein the format rule specifies that the conforming bitstream satisfies that the APS index for the CC-ALF tool and / or the ALF tool refers to an available ALF APS.
[0689] 19. The method of clause 14, wherein the ALF APS contains information related to CC-ALF tools.
[0690] 20. A video processing method, comprising: performing conversion between a video unit of a video and a bitstream representation of the video, wherein the bitstream representation conforms to a format rule that specifies the applicability of a cross-component adaptive loop filtering (CC-ALF) tool that uses sample values of a second component to refine sample values of a first component in a bitstream representation at a video unit level that is different from a slice level.
[0691] 21. A method as described in clause 20, wherein the video unit corresponds to a sequence, a picture, a view, a sub-picture or a slice, and not to a slice.
[0692] 22. A method as described in clause 20, wherein the format rule further specifies an indication for signalling usage of CC-ALF tools based on activation of the ALF tools.
[0693] 23. A method as recited in clause 20, wherein the format rules further provide for signaling an indication of usage of CC-ALF tools based on a chroma color format and / or a syntax element indicating that a video block of a video unit contains both luma and chroma samples.
[0694] 24. A method according to clause 20, wherein the format rules further specify including an indication of the use of CC-ALF tools in the bitstream representation based on the use of chroma color format and / or separate color plane codecs.
[0695] 25. A method according to clause 20, wherein the format rules further specify including an indication of the use of the CC-ALF tool in a video region corresponding to a slice, a codec tree block or a codec tree unit in the bitstream representation based on the applicability of the CC-ALF tool for the video unit.
[0696] 26. A method according to clause 20, wherein the format rules further specify that syntax elements indicating applicability of CC-ALF tools are signalled in a sequence parameter set (SPS), a video parameter set (VPS), a picture parameter set (PPS), a picture header or a slice header.
[0697] 27. A method as recited in clause 26, wherein syntax elements are encoded and decoded only when ALF tools are enabled for the video unit.
[0698] 28. A method according to clause 26, wherein the syntax element is encoded and decoded only for the conditions that i) the ALF tool is enabled for the video unit and ii) the variable ChromaArrayType is not equal to 0.
[0699] 29. The method of clause 26, wherein the syntax element is encoded and decoded only for the conditions that i) ALF is enabled for the video unit and ii) the chroma format of the video unit is monochrome are both satisfied.
[0700] 30. A video processing method, comprising: performing conversion between a video region of a video and a bitstream representation of the video, wherein the bitstream representation conforms to a format rule that specifies whether a syntax element indicates use of a cross-component adaptive loop filter (CC-ALF) tool in the bitstream representation depends on the availability of an adaptive loop filter (ALF) tool for a corresponding portion of a luminance component.
[0701] 31. A method according to clause 30, wherein the format rules provide that CC-ALF tools are disabled without explicit signalling in case ALF tools are not available for the corresponding part of the luma component.
[0702] 32. A video processing method, comprising: performing conversion between a video region of a video and a bitstream representation of the video, wherein the bitstream representation complies with a format rule, the format rule specifying that the bitstream representation includes an adaptive parameter set (APS), the APS including a syntax element to indicate whether the APS contains information related to a cross-component adaptive filtering CC-ALF tool.
[0703] 33. A method as described in clause 32, wherein the APS including the information related to the CC-ALF tool is of a different type than another APS which does not have the information related to the CC-ALF type.
[0704] 34. A method according to clause 32, wherein the syntax element corresponds to a combination of a first syntax element related to a CC-ALF tool applied to a Cb component and a second syntax element related to a CC-ALF tool applied to a Cr component.
[0705] 35. A method according to clause 32, wherein the syntax element has a non-binary value.
[0706] 36. A video processing method (e.g., Fig. 14B The method 1420 shown includes: determining that an exclusion rule applies to a conversion between a video region of a video and a bitstream representation of the video, wherein the exclusion rule specifies that the conversion does not allow the use of a codec tool and a cross-component adaptive loop filtering (CC-ALF) tool together for the video region; and performing the conversion based on the determination.
[0707] 37. A method according to clause 36, wherein the codec tool includes a sample adaptive offset codec tool for chroma components, a residual scaling tool for luma mapping using a chroma scaling codec tool, a deblocking process for chroma components, or an adaptive loop filter for chroma components.
[0708] 38. A method as described in clause 36, wherein the bitstream representation includes information related to the CC-ALF tool that depends on the enabled state of the codec tool.
[0709] 39. A method as described in clause 36, wherein the bitstream representation includes information related to codec tools that depends on the enabled state of the CC-ALF tool.
[0710] 40. The method of clause 36, wherein the bitstream representation complies with a format rule that dictates that information related to a codec tool be omitted if the codec tool is disabled.
[0711] 41. A method as recited in clause 36, wherein the bitstream representation complies with a format rule that dictates that information related to the CC-ALF tool be omitted if the CC-ALF tool is disabled.
[0712] 42. A method as described in clause 36, wherein the video region corresponds to an entire sequence, an entire picture, an entire slice, a slice, a sub-picture, a codec treeblock or a codec block.
[0713] 43. A video processing method, comprising: performing conversion between chroma blocks of a video and a bitstream representation of the video according to rules, wherein a cross-component adaptive loop filter (CC-ALF) tool is used during the conversion to determine a prediction of the chroma block based on samples of the luminance block; wherein the rules specify the luminance blocks used for prediction during the conversion and / or the order of using the CC-ALF tool.
[0714] 44. A method according to clause 43, wherein the rules provide for applying CC-ALF tools during the prediction stage to predict sample values of chroma blocks.
[0715] 45. A method according to clause 44, wherein the prediction error is generated based on the difference between the original signal before applying the CC-ALF tool and the CC-ALF filtered result.
[0716] 46. A method according to clause 44, wherein reconstruction of the chroma blocks depends on the CC-ALF filtering results and the residual.
[0717] 47. A method as described in clause 44, wherein the rule applies to some samples in the chrominance block but not to the remaining samples in the chrominance block.
[0718] 48. The method of clause 47, wherein the portion of the samples corresponds to samples at the first N rows or columns or samples at the last N rows or columns.
[0719] 49. A method according to clause 48, wherein N depends on the filter shape used in the CC-ALF tool.
[0720] 50. A method according to clause 43, wherein the rules specify that the CC-ALF tool is applied after reconstruction of a chroma block and before decoding another block.
[0721] 51. A method as described in clause 43, wherein the rule dictates that the order does not include using the CC-ALF tool after the SAO tool and before the ALF tool.
[0722] 52. A method as described in clause 43, wherein the rules specify that the CC-ALF tool is applied before any other loop filters are applied.
[0723] 53. A method as described in clause 43, wherein the rules provide for applying CC-ALF tools to reconstructed samples of chroma blocks prior to use in prediction of subsequent video blocks of the video.
[0724] 54. A method as described in clause 43, wherein the rules provide for applying the CC-ALF tool before the Sample Adaptive Offset Loop Filter.
[0725] 55. A video processing method (e.g., Fig. 14C The method 1430 shown includes: determining (1432) an order of processing an adaptive loop filter (ALF) of a chroma component and a cross-component adaptive loop filter (CC-ALF) of a chroma component according to a rule; and performing (1434) conversion between a video and a bitstream representation of the video based on the determination, wherein the rule specifies whether the order is predefined or adaptively changed at a video region of the video, the video region has a size of M×N, and M and N are positive integers.
[0726] 56. A method according to clause 55, wherein filtered samples obtained after processing the ALF on the MxN area are modified before applying the CC-ALF on the MxN area.
[0727] 57. A method according to clause 55, wherein filtered samples obtained after processing the ALF or CC-ALF on the first MxN region are used as input for the second MxN region.
[0728] 58. A method according to clause 55, wherein CC-ALF of chroma components over an MxN region is performed first, and then ALF of chroma components over an MxN region is performed.
[0729] 59. A method as described in clause 58, wherein the output of the CC-ALF is provided as an input to the ALF.
[0730] 60. A method as described in clause 58, wherein samples in the MxN region are modified by the CC-ALF before being provided as input to the ALF.
[0731] 61. The method of clause 55, wherein the video region corresponds to a codec tree block (CTB) or is smaller than a CTB.
[0732] 62. A method as described in clause 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.
[0733] 63. A video processing method, comprising: performing conversion between a video region of a video and a bitstream representation of the video, wherein the bitstream representation complies with a format rule, the format rule specifying that the bitstream representation includes syntax elements indicating the use of adaptive loop filtering (ALF) and cross-component adaptive loop filtering (CC-ALF) for a chroma component.
[0734] 64. A method according to clause 63, wherein the syntax element has a non-binary value.
[0735] 65. A method according to clause 64, wherein a value equal to K indicates that ALF and CC-ALF are disabled for one color component, ALF is non-linear, and K is an integer.
[0736] 66. A method as described in clause 64, wherein a value equal to L indicates that ALF and CC-ALF are enabled for one color component, ALF is non-linear, and L is an integer.
[0737] 67. A method according to clause 64, wherein a value equal to M indicates that for a given color component, only non-linear ALF is enabled and CC-ALF is disabled, and M is an integer.
[0738] 68. A method according to clause 64, wherein a value equal to N indicates that for one color component, only CC-ALF is enabled and non-linear ALF is disabled, and N is an integer.
[0739] 69. A method according to any one of clauses 65 to 68, wherein K, L, M, N are four integer values that are different from each other.
[0740] 70. A method according to clause 63, wherein the syntax elements have values encoded using fixed-length binarization, unary binarization, truncated unary binarization, or k-order exponential Golomb binarization.
[0741] 71. A method according to any of the preceding clauses, wherein the method is also based on at least one of the following: 1) the type of video content; 2) 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 slice group header, a maximum codec unit (LCU), a codec unit (CU), an LCU row, a group of LCUs, a transform unit (TU), a prediction unit (PU) block or a video codec unit signaling message; 3) the location of a CU, PU, TU, block or video codec unit; 4) decoding information of the current block and / or neighboring blocks; 5) the size or shape of the current block and / or neighboring blocks; 6) an indication of a color format; 7) a codec tree structure; 8) a slice type, a slice group type and / or a picture type; 9) the type of color component; 10) a temporal layer identifier; 11) a profile, level or grade of the standard.
[0742] 72. A method as described in any preceding clause, wherein the CC-ALF tool is applied to refine the sample values of the first component using the sample values of the second component.
[0743] 73. A method according to any one of clauses 1 to 72, wherein converting comprises encoding the video into a bitstream representation.
[0744] 74. A method according to any one of clauses 1 to 72, wherein converting comprises decoding a bitstream representation to generate a video.
[0745] 75. A video processing apparatus comprising a processor configured to implement the method of any one or more of clauses 1 to 74.
[0746] 76. A computer readable medium storing program code which, when executed, causes a processor to implement the method of any one or more of clauses 1 to 74.
[0747] 77. A computer-readable medium storing a codec representation or a bitstream representation generated according to any of the above methods.
[0748] In this document, 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 from a pixel representation of a video to a corresponding bitstream representation, or vice versa. As defined by the syntax, for example, a bitstream representation of a current video block may correspond to bits that are co-located within a bitstream or distributed at different locations within a bitstream. For example, a macroblock may be encoded based on error residual values from a transform and a codec, and bits in a header and other fields in the bitstream may also be used.
[0749] The disclosure and other solutions, examples, embodiments, modules and functional operations described in this application document can be implemented in digital electronic circuits, or computer software, firmware or hardware, including the structures disclosed in this application document and their structural equivalents, or a combination of one or more thereof. The embodiments disclosed in this application document and other embodiments can be implemented as one or more computer program products, such as one or more modules of computer program instructions encoded on a tangible and non-volatile computer-readable medium, for data processing devices to execute or control the operation of data processing devices. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a storage device, a material composition that affects a machine-readable propagation signal, or a combination of one or more thereof. The term "data processing device" includes all devices, devices and machines for processing data, including, for example, a programmable processor, a computer or a multiprocessor or a computer group. In addition to hardware, the device may also include code that creates an execution environment for a computer program, for example, code constituting processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more thereof. A propagated signal is an artificially generated signal, for example, a machine-generated electrical, optical or electromagnetic signal, which is generated to encode information for transmission to a suitable receiver device.
[0750] A computer program (also referred to as a program, software, software application, script, or code) may be written in any form of programming language (including compiled or interpreted languages) 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 stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program, or in multiple coordinated files (e.g., files that store one or more modules, subroutines, or portions of code). A computer program may be deployed for execution on one or more computers that are located at one site or distributed across multiple sites and interconnected by a communications network.
[0751] The processing and logic flows described in this application document can be performed by one or more programmable processors that execute one or more computer programs to perform functions by operating on input data and generating output. The processing and logic flows can also be performed by special-purpose logic circuits, and the device can also be implemented as special-purpose logic circuits, such as FPGAs (field programmable gate arrays) or ASICs (application-specific integrated circuits).
[0752] For example, processors suitable for executing computer programs include general and special purpose microprocessors, and any one or more of any type of digital computer. Typically, the processor will receive instructions and data from a read-only memory or a random access memory or both. The basic elements of a computer are a processor that executes instructions and one or more storage devices that store instructions and data. Typically, a computer will also include one or more mass storage devices for storing data, such as magnetic disks, magneto-optical disks, or optical disks, or be operatively coupled to one or more mass storage devices to receive data from them or transfer data to one or more mass storage devices, or both. However, a computer does not necessarily have such a device. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable hard disks; magneto-optical disks; and CD ROM and DVD ROM disks. The processor and memory can be supplemented by dedicated logic circuits, or merged into dedicated logic circuits.
[0753] Although this patent document contains many details, they should not be interpreted as limitations on any invention or the scope of the claims, but rather as descriptions of features of particular embodiments of particular technologies. Certain features described in this patent document in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various functions described in the context of a single embodiment may also be implemented separately in multiple embodiments, or in any suitable subcombination. In addition, although the above-mentioned features may be described as working in certain combinations, or even initially claimed to be so, in some cases, one or more features in the claim combination may be removed from the combination, and the claim combination may be directed to subcombinations or variations of subcombinations.
[0754] Likewise, although operations are described in a particular order in the drawings, this should not be understood as requiring that such operations be performed in the particular order or order shown, or that all illustrated operations be performed, in order to achieve the desired results. In addition, the separation of various system components in the embodiments described in this patent document should not be understood as requiring such separation in all embodiments.
[0755] Only a few implementations and examples are described, and other implementations, enhancements, and variations can be made based on what is described and illustrated in this patent document.
Claims
1. A video data processing method, comprising: For conversion between a video region of a video and a bitstream of the video, deriving a first offset for use in a cross-component filtering tool for chroma samples of the video region, wherein the first offset is derived based on luma sample values and filter coefficients in a filter support region; deriving a second offset for use in the cross-component filtering tool for the chroma samples based on a clipping operation of the first offset, wherein the second offset is clipped to a given range; and The converting is performed by applying the cross-component filtering tool and adding the second offset to chroma sample values to refine the chroma samples, wherein the chroma sample values are modified by a chroma adaptive loop filtering operation before applying the cross-component filtering tool for refinement.
2. The method according to claim 1, wherein: The first offset is derived based on applying a filter coefficient to the luma sample difference value, and Each luma sample difference value corresponds to a difference between a value of a luma sample in the filter support region and a value of a corresponding luma sample of the chroma sample.
3. The method according to claim 2, wherein: For the video region in 4:4:4 format, the corresponding luma sample is located at (x, y), and wherein (x, y) indicates the coordinates of the chroma sample.
4. The method according to claim 2, wherein: For the video area in 4:2:0 format, the corresponding luma sample is located at (2x, 2y), and wherein (x, y) indicates the coordinates of the chroma sample.
5. The method according to claim 1, wherein: The converting includes encoding the video into the bitstream.
6. The method according to claim 1, wherein: The converting includes decoding the video from the bitstream.
7. A video data processing apparatus comprising a processor and a non-transitory memory having instructions thereon, wherein: The instructions, when executed by the processor, cause the processor to: For conversion between a video region of a video and a bitstream of the video, deriving a first offset for use in a cross-component filtering tool for chroma samples of the video region, wherein the first offset is derived based on luma sample values and filter coefficients in a filter support region; deriving a second offset for use in the cross-component filtering tool for the chroma samples based on a clipping operation of the first offset, wherein the second offset is clipped to a given range; and The converting is performed by applying the cross-component filtering tool and adding the second offset to chroma sample values to refine the chroma samples, wherein the chroma sample values are modified by a chroma adaptive loop filtering operation before applying the cross-component filtering tool for refinement.
8. The device according to claim 7, wherein: The first offset is derived based on applying a filter coefficient to the luma sample difference value, and Each luma sample difference value corresponds to a difference between a value of a luma sample in the filter support region and a value of a corresponding luma sample of the chroma sample.
9. The device according to claim 8, wherein: For the video region in 4:4:4 format, the corresponding luma sample is located at (x, y), and wherein (x, y) indicates the coordinates of the chroma sample; or Wherein, for the video area in 4:2:0 format, the corresponding luma sample is located at (2x, 2y), and wherein (x, y) indicates the coordinates of the chroma sample.
10. A non-transitory computer-readable storage medium having stored therein instructions that cause a processor to: For conversion between a video region of a video and a bitstream of the video, a first offset is derived for use in a cross-component filtering tool for chroma samples of the video region, wherein The first offset is derived based on luma sample values and filter coefficients in a filter support region; deriving a second offset for use in the cross-component filtering tool for the chroma samples based on a clipping operation of the first offset, wherein the second offset is clipped to a given range; and The converting is performed by applying the cross-component filtering tool and adding the second offset to chroma sample values to refine the chroma samples, wherein the chroma sample values are modified by a chroma adaptive loop filtering operation before applying the cross-component filtering tool for refinement.
11. The non-transitory computer-readable storage medium of claim 10, wherein: The first offset is derived based on applying a filter coefficient to the luma sample difference value, and Each luma sample difference value corresponds to a difference between a value of a luma sample in the filter support region and a value of a corresponding luma sample of the chroma sample.
12. The non-transitory computer-readable storage medium of claim 11, wherein: For the video region in 4:4:4 format, the corresponding luma sample is located at (x, y), and wherein (x, y) indicates the coordinates of the chroma sample; or Wherein, for the video area in 4:2:0 format, the corresponding luma sample is located at (2x, 2y), and wherein (x, y) indicates the coordinates of the chroma sample.
13. A method for storing a bit stream of a video, comprising: For a video region of a video, deriving a first offset for use in a cross-component filtering tool for chroma samples of the video region, wherein the first offset is derived based on luma sample values and filter coefficients in a filter support region; deriving a second offset for use in the cross-component filtering tool for the chroma samples based on a clipping operation of the first offset, wherein the second offset is clipped to a given range; generating the bitstream by applying the cross-component filtering tool and adding the second offset to chroma sample values to refine the chroma samples, wherein the chroma sample values are modified by a chroma adaptive loop filtering operation before applying the cross-component filtering tool for refinement; and The bitstream is stored in a non-transitory computer-readable storage medium.
14. The method for storing a bit stream of a video according to claim 13, wherein: The first offset is derived based on applying a filter coefficient to the luma sample difference value, and Each luma sample difference value corresponds to a difference between a value of a luma sample in the filter support region and a value of a corresponding luma sample of the chroma sample.
15. The method for storing a bit stream of a video according to claim 14, wherein: For the video region in 4:4:4 format, the corresponding luma sample is located at (x, y), and wherein (x, y) indicates the coordinates of the chroma sample; or Wherein, for the video area in 4:2:0 format, the corresponding luma sample is located at (2x, 2y), and wherein (x, y) indicates the coordinates of the chroma sample.
16. A video processing device, comprising: A processor configured to implement the method according to any one of claims 5-6.
17. A computer readable medium having program code stored thereon, wherein when the program code is executed, the processor is caused to implement the method according to any one of claims 5-6.
Citation Information
Patent Citations
Apparatus and method of sample adaptive offset for luma and chroma components
CN106028050A
Cross-component filter
CN109691102A