Method and apparatus of adaptive loop filter with additional modes and TAPS related to CCCM and fixed filters in video coding
By selecting fixed filter sets at the CTB level and applying cross-component models for chroma refinement, the method addresses inefficiencies in adaptive loop filtering, enhancing video quality and reducing complexity in video coding systems.
Patent Information
- Application Number
- PCT/CN2025/072646
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-01-16
- Filing Date
- 2025-01-16
- Publication Date
- 2025-07-24
AI Technical Summary
Existing video coding systems, such as VVC, face challenges in effectively improving the quality of reconstructed video data through adaptive loop filtering, particularly in handling chroma and luma components, due to complexity and inefficiencies in filter selection and application.
The method involves selecting a target fixed filter set at the CTB level for chroma ALF and/or CCALF, using filter-selection indications to apply filtering to current blocks, and utilizing cross-component models to refine chroma components based on luma samples, with fixed filter coefficients determined offline and applied during decoding.
This approach enhances video quality by optimizing filter selection and application, reducing complexity, and improving subjective and objective quality metrics in video coding systems.
Smart Images

Figure CN2025072646_24072025_PF_FP_ABST
Abstract
Description
METHOD AND APPARATUS OF ADAPTIVE LOOP FILTER WITH ADDITIONAL MODES AND TAPS RELATED TO CCCM AND FIXED FILTERS IN VIDEO CODINGCROSS REFERENCE TO RELATED APPLICATIONS
[0001] The present invention is a non-Provisional Application of and claims priority to U.S. Provisional Patent Application No. 63 / 621,199, filed on January 16, 2024. The U.S. Provisional Patent Application is hereby incorporated by reference in its entirety.FIELD OF THE INVENTION
[0002] The present invention relates to video coding system using ALF (Adaptive Loop Filter) . In particular, the present invention discloses methods and apparatus to improve the performance by selecting fixed filter set according to indication at the CTB level for chroma ALF and / or CCALF. BACKGROUND AND RELATED ART
[0003] Versatile video coding (VVC) is the latest international video coding standard developed by the Joint Video Experts Team (JVET) of the ITU-T Video Coding Experts Group (VCEG) and the ISO / IEC Moving Picture Experts Group (MPEG) . The standard has been published as an ISO standard: ISO / IEC 23090-3: 2021, Information technology -Coded representation of immersive media -Part 3: Versatile video coding, published Feb. 2021. VVC is developed based on its predecessor HEVC (High Efficiency Video Coding) by adding more coding tools to improve coding efficiency and also to handle various types of video sources including 3-dimensional (3D) video signals.
[0004] Fig. 1A illustrates an exemplary adaptive Inter / Intra video encoding system incorporating loop processing. For Intra Prediction, the prediction data is derived based on previously coded video data in the current picture. For Inter Prediction 112, Motion Estimation (ME) is performed at the encoder side and Motion Compensation (MC) is performed based on the result of ME to provide prediction data derived from other picture (s) and motion data. Switch 114 selects Intra Prediction 110 or Inter-Prediction 112 and the selected prediction data is supplied to Adder 116 to form prediction errors, also called residues. The prediction error is then processed by Transform (T) 118 followed by Quantization (Q) 120. The transformed and quantized residues are then coded by Entropy Encoder 122 to be included in a video bitstream corresponding to the compressed video data. The bitstream associated with the transform coefficients is then packed with side information such as motion and coding modes associated with Intra prediction and Inter prediction, and other information such as parameters associated with loop filters applied to underlying image area. The side information associated with Intra Prediction 110, Inter prediction 112 and in-loop filter 130, are provided to Entropy Encoder 122 as shown in Fig. 1A. When an Inter-prediction mode is used, a reference picture or pictures have to be reconstructed at the encoder end as well. Consequently, the transformed and quantized residues are processed by Inverse Quantization (IQ) 124 and Inverse Transformation (IT) 126 to recover the residues. The residues are then added back to prediction data 136 at Reconstruction (REC) 128 to reconstruct video data. The reconstructed video data may be stored in Reference Picture Buffer 134 and used for prediction of other frames.
[0005] As shown in Fig. 1A, incoming video data undergoes a series of processing in the encoding system. The reconstructed video data from REC 128 may be subject to various impairments due to a series of processing. Accordingly, in-loop filter 130 is often applied to the reconstructed video data before the reconstructed video data are stored in the Reference Picture Buffer 134 in order to improve video quality. For example, deblocking filter (DF) , Sample Adaptive Offset (SAO) and Adaptive Loop Filter (ALF) may be used. The loop filter information may need to be incorporated in the bitstream so that a decoder can properly recover the required information. Therefore, loop filter information is also provided to Entropy Encoder 122 for incorporation into the bitstream. In Fig. 1A, Loop filter 130 is applied to the reconstructed video before the reconstructed samples are stored in the reference picture buffer 134. The system in Fig. 1A is intended to illustrate an exemplary structure of a typical video encoder. It may correspond to the High Efficiency Video Coding (HEVC) system, VP8, VP9, H. 264 or VVC.
[0006] The decoder, as shown in Fig. 1B, can use similar or portion of the same functional blocks as the encoder except for Transform 118 and Quantization 120 since the decoder only needs Inverse Quantization 124 and Inverse Transform 126. Instead of Entropy Encoder 122, the decoder uses an Entropy Decoder 140 to decode the video bitstream into quantized transform coefficients and needed coding information (e.g. ILPF information, Intra prediction information and Inter prediction information) . The Intra prediction 150 at the decoder side does not need to perform the mode search. Instead, the decoder only needs to generate Intra prediction according to Intra prediction information received from the Entropy Decoder 140. Furthermore, for Inter prediction, the decoder only needs to perform motion compensation (MC 152) according to Inter prediction information received from the Entropy Decoder 140 without the need for motion estimation.
[0007] According to VVC, an input picture is partitioned into non-overlapped square block regions referred as CTUs (Coding Tree Units) , similar to HEVC. Each CTU can be partitioned into one or multiple smaller size coding units (CUs) . The resulting CU partitions can be in square or rectangular shapes. Also, VVC divides a CTU into prediction units (PUs) as a unit to apply prediction process, such as Inter prediction, Intra prediction, etc.
[0008] In the present invention, methods and apparatus to improve the Adaptive Loop Filter (ALF) performance are disclosed. BRIEF SUMMARY OF THE INVENTION
[0009] A method and apparatus for in-loop filtering of reconstructed video are disclosed. According to the method, reconstructed pixels are received, wherein the reconstructed pixels comprise a current block and the current block comprises a first-colour block and a second-colour block. A target fixed filter set is selected from multiple fixed filter sets according to filter-selection indication at a CTB (Coding Tree Block) level for filtering the current block using a target filter type from a filter-type group comprising chroma ALF (Adaptive Loop Filter) , CCALF (Cross-Component ALF) , or both. The target fixed filter set is applied to the current block to generate a filtered current block. The filtered current block is provided.
[0010] In one embodiment, samples from a cross-component model, and / or samples from the cross-component model with fixed filtering are selected at the CTB level for luma ALF, the chroma ALF, the CCALF, or a combination.
[0011] In one embodiment, multiple APSs are selected at a picture-level, a tile-level, a slice-level, or a combination thereof, and wherein a target APS at the CTB level is selected from the multiple APSs for said selecting the target fixed filter set.
[0012] In one embodiment, a flag at a picture-level, a tile-level, a slice-level, or a combination thereof is signalled or parsed to control usage of fixed filtering at the CTB level, and the usage of fixed filtering is for the filter-type group further comprising luma ALF. In one embodiment, the flag is used to control whether to enable fixed filter set selection at the CTB level. In another embodiment, the flag is used to indicate only one fixed filter set is selected at the CTB level. In yet another embodiment, the flag is used to to enable APS (Adaptation Parameter Set) ID and APS filter set selection at the CTB level. In yet another embodiment, the flag is used to indicate only one APS (Adaptation Parameter Set) ID and APS filter set is selected at the CTB level.
[0013] In one embodiment, cross-component model is selected as the target filter type. In one embodiment, sample generated by the cross-component model are directly used as the filtered current block.BRIEF DESCRIPTION OF THE DRAWINGS
[0014] Fig. 1A illustrates an exemplary adaptive Inter / Intra video coding system incorporating loop processing.
[0015] Fig. 1B illustrates a corresponding decoder for the encoder in Fig. 1A.
[0016] Fig. 2 illustrates the ALF filter shapes for the chroma (left) and luma (right) components.
[0017] Figs. 3A-D illustrates the subsampled Laplacian calculations for gv (3A) , gh (3B) , gd1 (3C) and gd2 (3D) .
[0018] Fig. 4A illustrates the placement of CC-ALF with respect to other loop filters.
[0019] Fig. 4B illustrates a diamond shaped filter for the chroma samples.
[0020] Fig. 5 illustrates an example of spatial part of the convolutional filter.
[0021] Fig. 6 illustrates an example of reference area with paddings used to derive the filter coefficients.
[0022] Fig. 7 illustrates a flowchart of an exemplary video coding system that selects fixed filter set according to indication at the CTB level for chroma ALF and / or CCALF are disclosed according to an embodiment of the present invention.DETAILED DESCRIPTION OF THE INVENTION
[0023] It will be readily understood that the components of the present invention, as generally described and illustrated in the figures herein, may be arranged and designed in a wide variety of different configurations. Thus, the following more detailed description of the embodiments of the systems and methods of the present invention, as represented in the figures, is not intended to limit the scope of the invention, as claimed, but is merely representative of selected embodiments of the invention. References throughout this specification to “one embodiment, ” “an embodiment, ” or similar language mean that a particular feature, structure, or characteristic described in connection with the embodiment may be included in at least one embodiment of the present invention. Thus, appearances of the phrases “in one embodiment” or “in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment.
[0024] Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. One skilled in the relevant art will recognize, however, that the invention can be practiced without one or more of the specific details, or with other methods, components, etc. In other instances, well-known structures, or operations are not shown or described in detail to avoid obscuring aspects of the invention. The illustrated embodiments of the invention will be best understood by reference to the drawings, wherein like parts are designated by like numerals throughout. The following description is intended only by way of example, and simply illustrates certain selected embodiments of apparatus and methods that are consistent with the invention as claimed herein.
[0025] Adaptive Loop Filter in VVC
[0026] In VVC, an Adaptive Loop Filter (ALF) with block-based filter adaption is applied. For the luma component, one filter is selected among 25 filters for each 4×4 block, based on the direction and activity of local gradients.
[0027] 1. Filter shape
[0028] Two diamond filter shapes (as shown in Fig. 2) are used. The 7×7 diamond shape 220 is applied for luma component and the 5×5 diamond shape 210 is applied for the chroma components.
[0029] 2. Block classification
[0030] For luma component, each 4×4 block is categorized into one out of 25 classes. The classification index C is derived based on its directionality D and a quantized value of activity as follows:
[0031] To calculate D and gradients of the horizontal, vertical and two diagonal direction are first calculated using 1-D Laplacian: where indices i and j refer to the coordinates of the upper left sample within the 4×4 block and R (i, j) indicates a reconstructed sample at coordinate (i, j) .
[0032] To reduce the complexity of block classification, the subsampled 1-D Laplacian calculation is applied to the vertical direction (Fig. 3A) and the horizontal direction (Fig. 3B) . As shown in Figs. 3C-D, the same subsampled positions are used for gradient calculation of all directions (gd1 in Fig. 3C and gd2 in Fig. 3D) .
[0033] Then D maximum and minimum values of the gradients of horizontal and vertical directions are set as:
[0034] The maximum and minimum values of the gradient of two diagonal directions are set as:
[0035] To derive the value of the directionality D, these values are compared against each other and with two thresholds t1 and t2: Step 1. If both and are true, D is set to 0. Step 2. If continue from Step 3; otherwise continue from Step 4. Step 3. If D is set to 2; otherwise D is set to 1. Step 4. If D is set to 4; otherwise D is set to 3.
[0036] The activity value A is calculated as:
[0037] A is further quantized to the range of 0 to 4, inclusively, and the quantized value is denoted as
[0038] For the chroma components in a picture, no classification is applied.
[0039] 3. Geometric transformations of filter coefficients and clipping values
[0040] Before filtering each 4×4 luma block, geometric transformations such as rotation or diagonal and vertical flipping are applied to the filter coefficients f (k, l) and to the corresponding filter clipping values c (k, l) depending on 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 to which ALF is applied more similar by aligning their directionality.
[0041] Three geometric transformations, including diagonal, vertical flip and rotation are introduced: Diagonal: fD (k, l) =f (l, k) , cD (k, l) =c (l, k) , Vertical flip: fV (k, l) =f (k, K-l-1) , cV (k, l) =c (k, K-l-1) , Rotation: fR (k, l) =f (K-l-1, k) , cR (k, l) =c (K-l-1, k) , where K is the size of the filter and 0≤k, l≤K-1 are coefficients coordinates, such that location (0, 0) is at the upper left corner and location (K-1, K-1) is at the lower right corner. The transformations are applied to the filter coefficients f (k, l) and to the clipping values c (k, l) depending on gradient values calculated for that block. The relationship between the transformation and the four gradients of the four directions are summarized in the following table. Table 1. Mapping of the gradient calculated for one block and the transformations
[0042] 4. Filtering process
[0043] At decoder side, when ALF is enabled for a CTB, each sample R (i, j) within the CU is filtered, resulting in sample value R′ (i, j) as shown below, where f (k, l) denotes the decoded filter coefficients, K (x, y) is the clipping function and c (k, l) denotes the decoded clipping parameters. The variable k and l varies between –L / 2 and L / 2, where L denotes the filter length. The clipping function K (x, y) =min (y, max (-y, x) ) which corresponds to the function Clip3 (-y, y, x) . The clipping operation introduces non-linearity to make ALF more efficient by reducing the impact of neighbour sample values that are too different with the current sample value.
[0044] 5. Cross component adaptive loop filter
[0045] CC-ALF uses luma sample values to refine each chroma component by applying an adaptive, linear filter to the luma channel and then using the output of this filtering operation for chroma refinement. Fig. 4A provides a system level diagram of the CC-ALF process with respect to the SAO, luma ALF and chroma ALF processes. As shown in Fig. 4A, each colour component (i.e., Y, Cb and Cr) is processed by its respective SAO (i.e., SAO Luma 410, SAO Cb 412 and SAO Cr 414) . After SAO, ALF Luma 420 is applied to the SAO-processed luma and ALF Chroma 430 is applied to SAO-processed Cb and Cr. However, there is a cross-component term from luma to a chroma component (i.e., CC-ALF Cb 422 and CC-ALF Cr 424) . The outputs from the cross-component ALF are added (using adders 432 and 434 respectively) to the outputs from ALF Chroma 430.
[0046] Filtering in CC-ALF is accomplished by applying a linear, diamond shaped filter (e.g. filters 440 and 442 in Fig. 4B) to the luma channel. In Fig. 4B, a blank circle indicates a luma sample and a dot-filled circle indicate a chroma sample. One filter is used for each chroma channel, and the operation is expressed as: where (x, y) is chroma component i location being refined, (xY, yY) is the luma location based on (x, y) , Si is filter support area in luma component, and ci (x0, y0) represents the filter coefficients.
[0047] As shown in Fig, 4B, the luma filter support is the region collocated with the current chroma sample after accounting for the spatial scaling factor between the luma and chroma planes. In Fig. 4B, circles represent luma samples, while dotted circles represent chroma samples being refined.
[0048] In the VVC reference software, CC-ALF filter coefficients are computed by minimizing the mean square error of each chroma channel with respect to the original chroma content. To achieve this, the VTM (VVC Test Model) algorithm uses a coefficient derivation process similar to the one used for chroma ALF. Specifically, a correlation matrix is derived, and the coefficients are computed using a Cholesky decomposition solver in an attempt to minimize a mean square error metric. In designing the filters, a maximum of 8 CC-ALF filters can be designed and transmitted per picture. The resulting filters are then indicated for each of the two chroma channels on a CTU basis.
[0049] Additional characteristics of CC-ALF include: ● The design uses a 3x4 diamond shape with 8 taps. ● Seven filter coefficients are transmitted in the APS. ● Each of the transmitted coefficients has a 6-bit dynamic range and is restricted to power-of-2 values. ● The eighth filter coefficient is derived at the decoder such that the sum of the filter coefficients is equal to 0. ● An APS may be referenced in the slice header. ● CC-ALF filter selection is controlled at CTU-level for each chroma component ● Boundary padding for the horizontal virtual boundaries uses the same memory access pattern as luma ALF.
[0050] As an additional feature, the reference encoder can be configured to enable some basic subjective tuning through the configuration file. When enabled, the VTM attenuates the application of CC-ALF in regions that are coded with high QP and are either near mid-grey or contain a large amount of luma high frequencies. Algorithmically, this is accomplished by disabling the application of CC-ALF in CTUs where any of the following conditions are true: ● The slice QP value minus 1 is less than or equal to the base QP value. ● The number of chroma samples for which the local contrast is greater than (1 << (bitDepth –2 ) ) –1 exceeds the CTU height, where the local contrast is the difference between the maximum and minimum luma sample values within the filter support region. ● More than a quarter of chroma samples are in the range between (1 << (bitDepth –1 ) ) –16 and (1 << (bitDepth –1 ) ) + 16
[0051] The motivation for this functionality is to provide some assurance that CC-ALF does not amplify artefacts introduced earlier in the decoding path (This is largely due the fact that the VTM currently does not explicitly optimize for chroma subjective quality) . It is anticipated that alternative encoder implementations may either not use this functionality or incorporate alternative strategies suitable for their encoding characteristics.
[0052] 6. Filter parameters signalling
[0053] ALF filter parameters are signalled in Adaptation Parameter Set (APS) . In one APS, up to 25 sets of luma filter coefficients and clipping value indexes, and up to eight sets of chroma filter coefficients and clipping value indexes can be signalled. To reduce bits overhead, filter coefficients of different classification for luma component can be merged. In slice header, the indices of the APSs used for the current slice are signalled.
[0054] Clipping value indexes, which are decoded from the APS, allow determining clipping values using a table of clipping values for both the luma and chroma components. These clipping values are dependent of the internal bitdepth. More precisely, the clipping values are obtained by the following formula: AlfClip= {round (2B-α*n) for n∈ [0.. N-1] } with B equal to the internal bitdepth, α is a pre-defined constant value equal to 2.35, and N equal to 4 which is the number of allowed clipping values in VVC. The AlfClip is then rounded to the nearest value with the format of power of 2.
[0055] In slice header, up to 7 APS indices can be signalled to specify the luma filter sets that are used for the current slice. The filtering process can be further controlled at the CTB level. A flag is always signalled to indicate whether ALF is applied to a luma CTB. A luma CTB can choose a filter set among 16 fixed filter sets and the filter sets from APSs. A filter set index is signalled for a luma CTB to indicate which filter set is applied. The 16 fixed filter sets are pre-defined and hard-coded in both the encoder and the decoder.
[0056] For the chroma component, an APS index is signalled in slice header to indicate the chroma filter sets being used for the current slice. At the CTB level, a filter index is signalled for each chroma CTB if there is more than one chroma filter set in the APS.
[0057] The filter coefficients are quantized with norm equal to 128. In order to restrict the multiplication complexity, a bitstream conformance is applied so that the coefficient value of the non-central position shall be in the range of -27 to 27 -1, inclusive. The central position coefficient is not signalled in the bitstream and is considered as equal to 128.
[0058] Adaptive Loop Filter in ECM
[0059] In ECM8 (Muhammed Coban, et al., “Algorithm description of Enhanced Compression Model 8 (ECM 8) ” , Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29) , 29th Meeting, by teleconference, 11–20 January 2023, Document: JVET-AC2025) , some changes from the VVC ALF are disclosed. A brief overview is shown below.
[0060] 1. ALF simplification removal
[0061] ALF gradient subsampling and ALF virtual boundary processing are removed. Block size for classification is reduced from 4x4 to 2x2. Filter size for both the luma and chroma, for which ALF coefficients are signalled, is increased to 9x9.
[0062] 2. ALF with fixed filters
[0063] To filter a luma sample, three different classifiers (C0, C1 and C2) and three different sets of filters (F0, F1 and F2) are used. Sets F0 and F1 contain fixed filters, with coefficients trained for classifiers C0 and C1. Coefficients of filters in F2 are signalled. Which filter from a set Fi is used for a given sample is decided by a class Ci assigned to this sample using classifier Ci.
[0064] 3. Filtering
[0065] At first, two 13x13 diamond shape fixed filters F0 and F1 are applied to derive two intermediate samples R0 (x, y) and R1 (x, y) . After that, F2 is applied to R0 (x, y) , R1 (x, y) , and neighbouring samples to derive a filtered sample as where fi, j is the clipped difference between a neighbouring sample and current sample R (x, y) and gi is the clipped difference between Ri-20 (x, y) and current sample. The filter coefficients ci, i=0, … 21, are signalled.
[0066] 4. Classification
[0067] Based on directionality Di and activity aclass Ci is assigned to each 2x2 block: where MD, i represents the total number of directionalities Di.
[0068] As in VVC, values of the horizontal, vertical, and two diagonal gradients are calculated for each sample using 1-D Laplacian. The sum of the sample gradients within a 4×4 window that covers the target 2×2 block is used for classifier C0 and the sum of sample gradients within a 12×12 window is used for classifiers C1 and C2. The sums of horizontal, vertical and two diagonal gradients are denoted, respectively, as and The directionality Di is determined by comparing with a set of thresholds. The directionality D2 is derived as in VVC using thresholds 2 and 4.5. For D0 and D1, horizontal / vertical edge strength and diagonal edge strength are calculated first. Thresholds Th= [1.25, 1.5, 2, 3, 4.5, 8] are used. Edge strength is 0 if otherwise, is the maximum integer such that Edge strength is 0 if otherwise, is the maximum integer such that When i.e., horizontal / vertical edges are dominant, the Di is derived by using Table 2A; otherwise, diagonal edges are dominant, the Di is derived by using Table 2B. Table 2A. Mapping of and to Di Table 2B. Mapping of and to Di
[0069] To obtain the sum of vertical and horizontal gradients Ai is mapped to the range of 0 to n, where n is equal to 4 for and 15 for and
[0070] In an ALF_APS, up to 4 luma filter sets are signalled, each set may have up to 25 filters.
[0071] Convolutional Cross-Component Model (CCCM)
[0072] The convolutional 7-tap filter consist of a 5-tap plus sign shape spatial component, a nonlinear term and a bias term. The input to the spatial 5-tap component of the filter consists of a centre (C) luma sample which is collocated with the chroma sample to be predicted and its above / north (N) , below / south (S) , left / west (W) and right / east (E) neighbours as illustrated in Fig. 5.
[0073] The nonlinear term (denoted as P) is represented as power of two of the centre luma sample C and scaled to the sample value range of the content: P = (C*C + midVal) >> bitDepth.
[0074] That is, for 10-bit content it is calculated as: P = (C*C + 512) >> 10
[0075] The bias term (denoted as B) represents a scalar offset between the input and output (similarly to the offset term in CCLM) and is set to middle chroma value (512 for 10-bit content) .
[0076] Output of the filter is calculated as a convolution between the filter coefficients ci and the input values and clipped to the range of valid chroma samples: predChromaVal = c0C + c1N + c2S + c3E + c4W + c5P + c6B
[0077] 1. Calculation of filter coefficients
[0078] The filter coefficients ci are calculated by minimising MSE between predicted and reconstructed chroma samples in the reference area. Fig. 6 illustrates the reference area which consists of 6 lines of chroma samples above and left of the PU. Reference area extends one PU width to the right and one PU height below the PU boundaries. Area is adjusted to include only available samples. The extensions to the area shown in blue are needed to support the “side samples” of the plus shaped spatial filter and are padded when in unavailable areas.
[0079] The MSE minimization is performed by calculating autocorrelation matrix for the luma input and a cross-correlation vector between the luma input and chroma output. Autocorrelation matrix is LDL decomposed and the final filter coefficients are calculated using back-substitution. The process follows roughly the calculation of the ALF filter coefficients in ECM, however LDL decomposition was chosen instead of Cholesky decomposition to avoid using square root operations.
[0080] The autocorrelation matrix is calculated using the reconstructed values of luma and chroma samples. These samples are full range (e.g. between 0 and 1023 for 10-bit content) resulting in relatively large values in the autocorrelation matrix. This requires high bit depth operation during the model parameters calculation. It is proposed to remove fixed offsets from luma and chroma samples in each PU for each model. This is driving down the magnitudes of the values used in the model creation and allows reducing the precision needed for the fixed-point arithmetic. As a result, 16-bit decimal precision is proposed to be used instead of the 22-bit precision of the original CCCM implementation.
[0081] Reference sample values just outside of the top-left corner of the PU are used as the offsets (offsetLuma, offsetCb and offsetCr) for simplicity. The samples values used in both model creation and final prediction (i.e., luma and chroma in the reference area, and luma in the current PU) are reduced by these fixed values, as follows: C'= C –offsetLuma N'= N –offsetLuma S'= S –offsetLuma E'= E –offsetLuma W'= W –offsetLuma P'= nonLinear (C') B = midValue = 1 << (bitDepth -1) and the chroma value is predicted using the following equation, where offsetChroma is equal to offsetCr and offsetCb for Cr and Cb components, respectively: predChromaVal = c0C'+ c1N'+ c2S'+ c3E'+ c4W'+ c5P'+ c6B + offsetChroma.
[0082] In order to avoid any additional sample level operations, the luma offset is removed during the luma reference sample interpolation. This can be done, for example, by substituting the rounding term used in the luma reference sample interpolation with an updated offset including both the rounding term and the offsetLuma. The chroma offset can be removed by deducting the chroma offset directly from the reference chroma samples. As an alternative way, impact of the chroma offset can be removed from the cross-component vector giving identical result. In order to add the chroma offset back to the output of the convolutional prediction operation the chroma offset is added to the bias term of the convolutional model.
[0083] The process of CCCM model parameter calculation requires division operations. Division operations are not always considered implementation friendly. The division operations are replaced with multiplications (with a scale factor) and shift operations, where the scale factor and the number of shifts are calculated based on denominator similar to the method used in the calculation of CCLM parameters.
[0084] PROPOSED METHOD
[0085] Taps Related to Cross-Component Model and Fixed Filters - In one embodiment, to utilize the fixed filter results and the chroma samples from applying cross-component model to luma samples for chroma ALF filtering process with signalled coefficients, the following steps can be applied (i.e., applying cross-component model to fixed filter results) : - Classifying using fixed filter classifiers - Filtering by fixed filter coefficient sets, where the fixed filter coefficient sets are not signalled in the bitstream - Deriving coefficients of luma-to-chroma cross-component model by luma fixed filter results and chroma fixed filter results of neighbouring reference area and / or the current block - Deriving chroma samples of current block by applying luma-to-chroma cross-component model to luma fixed filter results of current block - Chroma filtering process using signalled coefficients with the chroma samples and the chroma samples from the cross-component model.
[0086] In above embodiment, the order of the steps can be changed (e.g. applying fixed filtering to samples from the cross-component model) : - Deriving coefficients of luma-to-chroma cross-component model using reconstructed luma and chroma samples of neighbouring reference area and / or current block - Deriving chroma samples of the current block by applying luma-to-chroma cross- component model to luma samples of the current block - Classifying chroma samples from cross-component model using fixed filter classifiers - Filtering chroma samples from cross-component model using fixed filter coefficient sets, where the fixed filter coefficient sets are not signalled in the bitstream - Chroma filtering process using signalled coefficients with the chroma samples and the fixed-filtered chroma samples from the cross-component model.
[0087] In above embodiment, the step “Classify using fixed filter classifiers” can be the following or the combination of the following: - Applying classification based on fixed filter classifiers to chroma samples - Applying classification based on fixed filter classifiers to luma samples - The fixed filter classifiers are the same as luma fixed filter classifiers - The fixed filter classifiers are a subset of luma fixed filter classifiers, where “subset of luma fixed filter classifiers” means less number of classes, less number of directionalities, and / or less number of activities comparing to luma fixed filter classifiers - The fixed filter classifiers are different from luma fixed filter classifiers
[0088] In above embodiment, in the step “Filtering using fixed filter coefficient sets, where the fixed filter coefficient sets are not signalled in the bitstream, ” the fixed filter coefficient sets can be the following or a combination of the following: - The fixed filter coefficient sets are the same as luma fixed filter coefficient sets - The fixed filter coefficient sets are a subset of luma fixed filter coefficient sets - The fixed filter coefficient sets are different from luma fixed filter coefficient sets
[0089] When filtering chroma samples using fixed filter coefficients sets, the filter selection is determined by the following or a combination of the following: - The chroma fixed filter classification results - The corresponding luma fixed filter classification results
[0090] In above embodiment, the chroma-to-luma cross-component model can also be applied, which means to utilize the luma samples from applying cross-component model to chroma samples for luma ALF or CCALF filtering process with signalled coefficients, the following steps can be applied: - Classifying using fixed filter classifiers - Filtering using fixed filter coefficient sets, where the fixed filter coefficient sets are not signalled in the bitstream - Deriving coefficients of chroma-to-luma cross-component model by chroma fixed filter results and luma fixed filter results of neighbouring reference area and / or the current block - Deriving luma samples of current block by applying chroma-to-luma cross-component model to chroma fixed filter results of the current block - ALF luma or CCALF filtering process using signalled coefficients with the luma samples and the luma samples from the cross-component model.
[0091] In above embodiments, the reconstructed luma and chroma samples of neighbouring reference area used for deriving coefficients of cross-component model can be samples before applying ALF filtering process or samples after applying ALF filtering process.
[0092] In above embodiment, the reconstructed luma or chroma samples of current block used for deriving samples from cross-component model could be samples before applying ALF filtering process or samples after applying ALF filtering process.
[0093] In above embodiment, the step “Deriving coefficients of luma-to-chroma cross-component model using luma fixed filter results and chroma fixed filter results of neighbouring reference area and / or the current block” can be the following or a combination of the following: - Deriving coefficients of luma-to-chroma cross-component model using luma fixed filter results and reconstructed chroma samples of neighbouring reference area and / or the current block - Deriving coefficients of luma-to-chroma cross-component model using reconstructed luma samples and chroma fixed filter results of neighbouring reference area and / or the current block
[0094] In above embodiment, the step “Deriving chroma samples of current block by applying luma-to-chroma cross-component model to luma fixed filter results of the current block” could be the following or the combination of the following: - Derive chroma samples of current block by applying luma-to-chroma cross-component model to reconstructed luma samples of current block
[0095] ALF Additional Modes
[0096] In ECM ALF, the slice and CTB level syntax design are shown below. In the following, several new slice and CTB level syntax designs are illustrated.
[0097] Luma ALF: - Slice level: On / Off, Number of APSs, or APS IDs (up to 7) - CTB level: Off, fixed filter set (select 1 from 2) , or APS ID &APS filter set
[0098] Chroma ALF: - Slice level: On / Off (Cb and Cr separate) , 1 APS ID (Cb and Cr shared) - CTB level: Off, APS filter set (up to 1) (Cb and Cr separate)
[0099] CCALF: - Slice level: On / Off (Cb and Cr separate) , 2 APS IDs (Cb and Cr separate) - CTB level: Off, APS filter set (up to 1) (Cb and Cr separate)
[0100] In one embodiment, fixed filter set can be selected at the CTB level for chroma ALF and / or CCALF.
[0101] In one embodiment, multiple APSs can be selected at the picture / tile / slice-level, and one APS can be selected from these APSs at the CTB level for chroma ALF and / or CCALF.
[0102] In one embodiment, samples from the cross-component model, and / or samples from the cross-component model with fixed filtering can be selected at the CTB level for luma ALF, chroma ALF and / or CCALF.
[0103] In one embodiment, for luma ALF, chroma ALF, and / or CCALF, a flag at picture / tile / slice-level can be signalled to control whether the fixed filter set can be selected at the CTB level. Accordingly, if the flag indicates that the fixed filter set can be selected at the CTB level, both the fixed filter set and APS filter set can be chosen at the CTB level. Otherwise, only APS filter set can be chosen at the CTB level.
[0104] In one embodiment, for luma ALF, chroma ALF, and / or CCALF, a flag at picture / tile / slice-level can be signalled so that only the fixed filter set can be selected at the CTB level. Accordingly, if the flag indicates that only the fixed filter set can be selected at the CTB level, only fixed filter set can be chosen at the CTB level. Otherwise, both the fixed filter set and APS filter set can be chosen at the CTB level.
[0105] In one embodiment, for luma ALF, chroma ALF, and / or CCALF, a flag at picture / tile / slice-level can be signalled to control whether the APS ID and APS filter set can be selected at the CTB level. Accordingly, if the flag indicates that the APS ID and APS filter set can be selected at the CTB level, both the fixed filter set and APS filter set can be chosen at the CTB level. Otherwise, only the fixed filter set can be chosen at the CTB level.
[0106] In one embodiment, for luma ALF, chroma ALF, and / or CCALF, a flag at picture / tile / slice-level can be signalled so that only the APS ID and APS filter set can be selected at the CTB level. Accordingly, if the flag indicates that only the APS ID and APS filter set can be selected at the CTB level, only the APS ID and APS filter set can be chosen at the CTB level. Otherwise, both the fixed filter set and APS filter set can be chosen at the CTB level.
[0107] In one embodiment, for luma ALF, chroma ALF, and / or CCALF, a set of APS filter sets from different APSs at picture / tile / slice-level can be signalled so that only these APS filter sets can be selected at the CTB level.
[0108] Example: there are two APSs, APS0 and APS1. For APS0, there are three filter sets. For APS1, there are two filter sets, APS0 = {0, 1, 2} , APS1 = {0, 1} , the following shows two examples of slice selection: - Example 1: Slice selection only selects filter set 0 and 2 from APS0, and filter set 0 from APS 1. Then at the CTB level, only these filter sets can be used (i.e., APS0’ = {0, 2} , APS1’ = {0} ) - Example 2: Slice selection only selects filter set 0 and 2 from APS0, and filter set 0 from APS 1. A list includes all filter sets is formed. Then, at the CTB level, only these filter sets can be used (i.e., APS’ = {APS0-0, APS1-0, APS0-2} )
[0109] In one embodiment, cross-component model described in the previous section can be selected at the CTB level for chroma ALF and / or CCALF. That is, the sample generated by a cross-component model can be directly used as the ALF output.
[0110] The foregoing proposed methods can be implemented in encoders and / or decoders. For example, the proposed method can be implemented in an in-loop filtering module of an encoder, and / or an in-loop filtering module of a decoder.
[0111] Any of the methods of described above can be implemented in encoders and / or decoders. Also, any of the methods of unified classification process described above can be implemented in encoders and / or decoders. For example, any of the proposed methods can be implemented in the in-loop filter module (e.g. ILPF 130 in Fig. 1A and Fig. 1B) of an encoder or a decoder. Alternatively, any of the proposed methods can be implemented as circuits coupled to the inter coding module of an encoder and / or motion compensation module, a merge candidate derivation module of the decoder. The simplified ALF methods may also be implemented using executable software or firmware codes stored on a media, such as hard disk or flash memory, for a CPU (Central Processing Unit) or programmable devices (e.g. DSP (Digital Signal Processor) or FPGA (Field Programmable Gate Array) ) .
[0112] Fig. 7 illustrates a flowchart of an exemplary video coding system that selecting fixed filter set according to indication at the CTB level for chroma ALF and / or CCALF are disclosed according to an embodiment of the present invention. The steps shown in the flowchart may be implemented as program codes executable on one or more processors (e.g., one or more CPUs) at the encoder side. The steps shown in the flowchart may also be implemented based hardware such as one or more electronic devices or processors arranged to perform the steps in the flowchart. According to the method, reconstructed pixels are received in step 710, wherein the reconstructed pixels comprise a current block and the current block comprises a first-colour block and a second-colour block. A target fixed filter set is selected from multiple fixed filter sets according to filter-selection indication at a CTB (Coding Tree Block) level for filtering the current block using a target filter type from a filter-type group comprising chroma ALF (Adaptive Loop Filter) , CCALF (Cross-Component ALF) , or both in step 720. The target fixed filter set is applied to the current block to generate a filtered current block in step 730. The filtered current block is provided in step 740.
[0113] The flowchart shown is intended to illustrate an example of video coding according to the present invention. A person skilled in the art may modify each step, re-arranges the steps, split a step, or combine steps to practice the present invention without departing from the spirit of the present invention. In the disclosure, specific syntax and semantics have been used to illustrate examples to implement embodiments of the present invention. A skilled person may practice the present invention by substituting the syntax and semantics with equivalent syntax and semantics without departing from the spirit of the present invention.
[0114] The above description is presented to enable a person of ordinary skill in the art to practice the present invention as provided in the context of a particular application and its requirement. Various modifications to the described embodiments will be apparent to those with skill in the art, and the general principles defined herein may be applied to other embodiments. Therefore, the present invention is not intended to be limited to the particular embodiments shown and described, but is to be accorded the widest scope consistent with the principles and novel features herein disclosed. In the above detailed description, various specific details are illustrated in order to provide a thorough understanding of the present invention. Nevertheless, it will be understood by those skilled in the art that the present invention may be practiced.
[0115] Embodiment of the present invention as described above may be implemented in various hardware, software codes, or a combination of both. For example, an embodiment of the present invention can be one or more circuit circuits integrated into a video compression chip or program code integrated into video compression software to perform the processing described herein. An embodiment of the present invention may also be program code to be executed on a Digital Signal Processor (DSP) to perform the processing described herein. The invention may also involve a number of functions to be performed by a computer processor, a digital signal processor, a microprocessor, or field programmable gate array (FPGA) . These processors can be configured to perform particular tasks according to the invention, by executing machine-readable software code or firmware code that defines the particular methods embodied by the invention. The software code or firmware code may be developed in different programming languages and different formats or styles. The software code may also be compiled for different target platforms. However, different code formats, styles and languages of software codes and other means of configuring code to perform the tasks in accordance with the invention will not depart from the spirit and scope of the invention.
[0116] The invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described examples are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
Claims
1.A method of processing colour pictures or video, the method comprising:receiving reconstructed pixels, wherein the reconstructed pixels comprise a current block and the current block comprises a first-colour block and a second-colour block;selecting a target fixed filter set from multiple fixed filter sets according to filter-selection indication at a CTB (Coding Tree Block) level for filtering the current block using a target filter type from a filter-type group comprising chroma ALF (Adaptive Loop Filter) , CCALF (Cross-Component ALF) , or both;applying the target fixed filter set to the current block to generate a filtered current block; andproviding the filtered current block.2.The method of Claim 1, wherein samples from a cross-component model, and / or samples from the cross-component model with fixed filtering are selected at the CTB level for luma ALF, the chroma ALF, the CCALF, or a combination.3.The method of Claim 1, wherein multiple APSs are selected at a picture-level, a tile-level, a slice-level, or a combination thereof, and wherein a target APS at the CTB level is selected from the multiple APSs for said selecting the target fixed filter set.4.The method of Claim 1, wherein a flag at a picture-level, a tile-level, a slice-level, or a combination thereof is signalled or parsed to control usage of fixed filtering at the CTB level, and the usage of fixed filtering is for the filter-type group further comprising luma ALF.5.The method of Claim 4, wherein the flag is used to control whether to enable fixed filter set selection at the CTB level.6.The method of Claim 4, wherein the flag is used to indicate whether only one or more fixed filter sets are allowed to be selected at the CTB level.7.The method of Claim 4, wherein the flag is used to to enable APS (Adaptation Parameter Set) ID and APS filter set selection at the CTB level.8.The method of Claim 4, wherein the flag is used to indicate whether only one or more APS (Adaptation Parameter Set) IDs and APS filter sets are allowed to be selected at the CTB level.9.The method of Claim 1, wherein a set of APS (Adaptation Parameter Set) filter sets is signalled or parsed at a picture-level, a tile-level, a slice-level, or a combination thereof, and wherein the set of APS filter sets is from different APSs, and only the set of APS filter sets is allowed to be selected at the CTB level.10.The method of Claim 1, wherein cross-component model is selected as the target filter type.11.The method of Claim 1, wherein sample generated by the cross-component model are directly used as the filtered current block.12.An apparatus colour pictures or video, the apparatus comprising one or more electronics or processors arranged to:receive reconstructed pixels, wherein the reconstructed pixels comprise a current block and the current block comprises a first-colour block and a second-colour block;select a target fixed filter set from multiple fixed filter sets according to filter-selection indication at a CTB (Coding Tree Block) level for filtering the current block using a target filter type from a filter-type group comprising chroma ALF (Adaptive Loop Filter) , CCALF (Cross-Component ALF) , or both;apply the target fixed filter set to the current block to generate a filtered current block; andprovide the filtered current block.
Citation Information
Patent Citations
Adaptive loop filter signaling redundancy removal field
US20210195183A1
Signaling usage of adaptive loop filter in video coding
US20220210478A1
Adaptive in-loop filtering method and device
US20220408085A1