Encoding and decoding methods using multi-component adaptive filtering and corresponding apparatuses

MCALF addresses the inefficiencies in filtering reconstructed samples across multiple components by classifying samples based on multiple components and applying adaptive filters, leading to improved video quality through enhanced artifact removal.

WO2025056401A1PCT designated stage expired Publication Date: 2025-03-20INTERDIGITAL CE PATENT HOLDINGS SAS
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/EP2024/074738
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-09-11
Filing Date
2024-09-04
Publication Date
2025-03-20

AI Technical Summary

Technical Problem

Existing video encoding and decoding methods struggle to efficiently filter reconstructed samples across multiple components, leading to sub-optimal removal of coding artifacts.

Method used

The implementation of Multi-Component Adaptive Loop Filtering (MCALF) that classifies samples based on multiple components and applies filters accordingly, enhancing the filtering process by utilizing samples from multiple components.

Benefits of technology

MCALF improves the filtering of reconstructed samples by optimizing the selection of filters based on multi-component classification, resulting in better removal of coding artifacts and enhanced video quality.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure EP2024074738_20032025_PF_FP_ABST
    Figure EP2024074738_20032025_PF_FP_ABST
Patent Text Reader

Abstract

A decoding method is disclosed. Samples of a first component of a picture block are first reconstructed (S100). At least one sample of the first component is classified (S102) and filtered based on the classification (S104). The filtering comprises applying a filter on samples of at least two components, the filter being associated with the class to which the at least one sample belongs.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] ENCODING AND DECODING METHODS USING MULTI- COMPONENT ADAPTIVE FILTERING AND CORRESPONDING APPARATUSES CROSS REFERENCE TO RELATED APPLICATIONS This application claims the benefit of European Application No. 23306506.9, filed on September 11, 2023 which is incorporated herein by reference in its entirety. TECHNICAL FIELD At least one of the present embodiments generally relates to a method and an apparatus for decoding (encoding respectively) a picture block using adaptive filtering, e.g. adaptive loop filtering. BACKGROUND To achieve high compression efficiency, image and video coding schemes usually employ prediction and transform to leverage spatial and temporal redundancy in the video content. Generally, intra or inter prediction is used to exploit the intra or inter picture correlation, then the differences between the original block and the predicted block, often denoted as prediction errors or prediction residuals, are transformed, quantized, and entropy coded. To reconstruct the video, the compressed data are decoded by inverse processes corresponding to the entropy coding, quantization, transform, and prediction. The reconstructed video may be filtered to remove some coding artifact. SUMMARY In one implementation, at least one (e.g. each) reconstructed sample of a first component of a picture block is filtered. In an example, the filtering comprises classifying a sample of the first component; and filtering the sample of the first component based on the classification. In an example, the filtering comprises applying a filter on samples of at least two components, e.g. the filter is associated with the class to which the sample of the first component belongs. In another example, classifying the sample comprises classifying the sample based on samples of at least two components, e.g. based on samples of three components. BRIEF DESCRIPTION OF THE DRAWINGS FIG.1 illustrates a block diagram of a system within which aspects of the present embodiments may be implemented; FIG.2 illustrates a block diagram of an embodiment of a video encoder; FIG.3 illustrates a block diagram of an embodiment of a video decoder; FIG.4 illustrates loop filters applied on reconstructed samples ; FIG.5 illustrates cross-component adaptive loop filters (CCALF) ; FIG.6 illustrates loop filters according to another example ; FIG.7 depicts diamond shape filters for Luma (left) and Chroma (right) ; FIG.8 depicts an example of an adaptive loop filter ; FIG. 9 depicts an example of a relative location of a filtered (e.g, CCALF filtered) Chroma sample and its support in a Luma plane for 4:2:0 Chroma format ; FIG. 10 depicts another example of a relative location of a filtered (e.g, CCALF filtered) Chroma sample and its support in a Luma plane for 4:2:0 Chroma format ; FIGs 11A to 11 C depict flowcharts of a decoding method according to various examples ; FIGs 12-17 illustrate flowcharts of Multi-Component Adaptive Loop Filtering according to various examples; and FIGs 18-21 depict examples of in-loop filter workflows. DETAILED DESCRIPTION This application describes a variety of aspects, including tools, features, embodiments, models, approaches, etc. Many of these aspects are described with specificity and, at least to show the individual characteristics, are often described in a manner that may sound limiting. However, this is for purposes of clarity in description, and does not limit the application or scope of those aspects. Indeed, all of the different aspects can be combined and interchanged to provide further aspects. Moreover, the aspects can be combined and interchanged with aspects described in earlier filings as well. The aspects described and contemplated in this application can be implemented in many different forms. FIGs. 1, 2 and 3 below provide some embodiments, but other embodiments are contemplated and the discussion of FIGs. 1, 2 and 3 does not limit the breadth of the implementations. At least one of the aspects generally relates to video encoding and decoding, and at least one other aspect generally relates to transmitting a bitstream generated or encoded. These and other aspects can be implemented as a method, an apparatus, a computer readable storage medium having stored thereon instructions for encoding or decoding video data according to any of the methods described, and / or a computer readable storage medium having stored thereon a bitstream generated according to any of the methods described. In the present application, the terms “reconstructed” and “decoded” may be used interchangeably, the terms “encoded” or “coded” may be used interchangeably, the terms “pixel” and “sample” may be used interchangeably and the terms “image,” “picture” and “frame” may be used interchangeably. Usually, but not necessarily, the term “reconstructed” is used at the encoder side while “decoded” is used at the decoder side. Various methods are described herein, and each of the methods comprises one or more steps or actions for achieving the described method. Unless a specific order of steps or actions is required for proper operation of the method, the order and / or use of specific steps and / or actions may be modified or combined. Additionally, terms such as “first”, “second”, etc. may be used in various embodiments to modify an element, component, step, operation, etc., such as, for example, a “first decoding” and a “second decoding”. Use of such terms does not imply an ordering to the modified operations unless specifically required. So, in this example, the first decoding need not be performed before the second decoding, and may occur, for example, before, during, or in an overlapping time period with the second decoding. For the sake of clarity, satisfying, failing to satisfy a condition and configuring condition parameter(s) are described throughout embodiments described herein as relative to a threshold (e.g., greater, or lower than), a (e.g., threshold) value, configuring the (e.g., threshold) value, etc.). For example, satisfying a condition may be described as being above a (e.g., threshold) value, and failing to satisfy a condition (e.g., performance criteria) may be described as being below a (e.g., threshold) value. Embodiments described herein are not limited to threshold- based conditions. Any kind of other condition and parameter(s) (such as e.g., belonging or not belonging to a range of values) may be applicable to embodiments described herein. The present aspects are not limited to VVC or HEVC, and can be applied, for example, to other standards and recommendations, whether pre-existing or future-developed, and extensions of any such standards and recommendations (including VVC and HEVC). Unless indicated otherwise, or technically precluded, the aspects described in this application can be used individually or in combination. FIG. 1 illustrates a block diagram of an example of a system in which various aspects and embodiments can be implemented. System 100 may be embodied as a device including the various components described below and is configured to perform one or more of the aspects described in this application. Examples of such devices, include, but are not limited to, various electronic devices such as personal computers, laptop computers, smartphones, tablet computers, digital multimedia set top boxes, digital television receivers, personal video recording systems, connected home appliances, and servers. Elements of system 100, singly or in combination, may be embodied in a single integrated circuit, multiple ICs, and / or discrete components. For example, in at least one embodiment, the processing and encoder / decoder elements of system 100 are distributed across multiple ICs and / or discrete components. In various embodiments, the system 100 is communicatively coupled to other systems, or to other electronic devices, via, for example, a communications bus or through dedicated input and / or output ports. In various embodiments, the system 100 is configured to implement one or more of the aspects described in this application. The system 100 includes at least one processor 110 configured to execute instructions loaded therein for implementing, for example, the various aspects described in this application. Processor 110 may include embedded memory, input output interface, and various other circuitries as known in the art. The system 100 includes at least one memory 120 (e.g., a volatile memory device, and / or a non-volatile memory device). System 100 includes a storage device 140, which may include non-volatile memory and / or volatile memory, including, but not limited to, EEPROM, ROM, PROM, RAM, DRAM, SRAM, flash, magnetic disk drive, and / or optical disk drive. The storage device 140 may include an internal storage device, an attached storage device, and / or a network accessible storage device, as non-limiting examples. System 100 includes an encoder / decoder module 130 configured, for example, to process data to provide an encoded video or decoded video, and the encoder / decoder module 130 may include its own processor and memory. The encoder / decoder module 130 represents module(s) that may be included in a device to perform the encoding and / or decoding functions. As is known, a device may include one or both of the encoding and decoding modules. Additionally, encoder / decoder module 130 may be implemented as a separate element of system 100 or may be incorporated within processor 110 as a combination of hardware and software as known to those skilled in the art. Program code to be loaded onto processor 110 or encoder / decoder 130 to perform the various aspects described in this application may be stored in storage device 140 and subsequently loaded onto memory 120 for execution by processor 110. In accordance with various embodiments, one or more of processor 110, memory 120, storage device 140, and encoder / decoder module 130 may store one or more of various items during the performance of the processes described in this application. Such stored items may include, but are not limited to, the input video, the decoded video or portions of the decoded video, the bitstream, matrices, variables, and intermediate or final results from the processing of equations, formulas, operations, and operational logic. In some embodiments, memory inside of the processor 110 and / or the encoder / decoder module 130 is used to store instructions and to provide working memory for processing that is needed during encoding or decoding. In other embodiments, however, a memory external to the processing device (for example, the processing device may be either the processor 110 or the encoder / decoder module 130) is used for one or more of these functions. The external memory may be the memory 120 and / or the storage device 140, for example, a dynamic volatile memory and / or a non-volatile flash memory. In several embodiments, an external non-volatile flash memory is used to store the operating system of a television. In at least one embodiment, a fast external dynamic volatile memory such as a RAM is used as working memory for video coding and decoding operations, such as for MPEG-2, (MPEG refers to the Moving Picture Experts Group, MPEG-2 is also referred to as ISO / IEC 13818, and 13818-1 is also known as H.222, and 13818-2 is also known as H.262), HEVC (HEVC refers to High Efficiency Video Coding, also known as H.265 and MPEG-H Part 2), or VVC (Versatile Video Coding, a new standard being developed by JVET, the Joint Video Experts Team). The input to the elements of system 100 may be provided through various input devices as indicated in block 105. Such input devices include, but are not limited to, (i) a radio frequency (RF) portion that receives an RF signal transmitted, for example, over the air by a broadcaster, (ii) a Component (COMP) input terminal (or a set of COMP input terminals), (iii) a Universal Serial Bus (USB) input terminal, and / or (iv) a High Definition Multimedia Interface (HDMI) input terminal. Other examples, not shown in FIG.1, include composite video. In various embodiments, the input devices of block 105 have associated respective input processing elements as known in the art. For example, the RF portion may be associated with elements suitable for (i) selecting a desired frequency (also referred to as selecting a signal, or band-limiting a signal to a band of frequencies), (ii) down converting the selected signal, (iii) band-limiting again to a narrower band of frequencies to select (for example) a signal frequency band which may be referred to as a channel in certain embodiments, (iv) demodulating the down converted and band-limited signal, (v) performing error correction, and (vi) demultiplexing to select the desired stream of data packets. The RF portion of various embodiments includes one or more elements to perform these functions, for example, frequency selectors, signal selectors, band-limiters, channel selectors, filters, downconverters, demodulators, error correctors, and demultiplexers. The RF portion may include a tuner that performs various of these functions, including, for example, down converting the received signal to a lower frequency (for example, an intermediate frequency or a near-baseband frequency) or to baseband. In one set-top box embodiment, the RF portion and its associated input processing element receives an RF signal transmitted over a wired (for example, cable) medium, and performs frequency selection by filtering, down converting, and filtering again to a desired frequency band. Various embodiments rearrange the order of the above-described (and other) elements, remove some of these elements, and / or add other elements performing similar or different functions. Adding elements may include inserting elements in between existing elements, for example, inserting amplifiers and an analog-to-digital converter. In various embodiments, the RF portion includes an antenna. Additionally, the USB and / or HDMI terminals may include respective interface processors for connecting system 100 to other electronic devices across USB and / or HDMI connections. It is to be understood that various aspects of input processing, for example, Reed-Solomon error correction, may be implemented, for example, within a separate input processing IC or within processor 110 as necessary. Similarly, aspects of USB or HDMI interface processing may be implemented within separate interface ICs or within processor 110 as necessary. The demodulated, error corrected, and demultiplexed stream is provided to various processing elements, including, for example, processor 110, and encoder / decoder 130 operating in combination with the memory and storage elements to process the datastream as necessary for presentation on an output device. Various elements of system 100 may be provided within an integrated housing, Within the integrated housing, the various elements may be interconnected and transmit data therebetween using suitable connection arrangement 115, for example, an internal bus as known in the art, including the I2C bus, wiring, and printed circuit boards. The system 100 includes communication interface 150 that enables communication with other devices via communication channel 190. The communication interface 150 may include, but is not limited to, a transceiver configured to transmit and to receive data over communication channel 190. The communication interface 150 may include, but is not limited to, a modem or network card and the communication channel 190 may be implemented, for example, within a wired and / or a wireless medium. Data is streamed to the system 100, in various embodiments, using a Wi-Fi network such as IEEE 802.11 (IEEE refers to the Institute of Electrical and Electronics Engineers). The Wi-Fi signal of these embodiments is received over the communications channel 190 and the communications interface 150 which are adapted for Wi-Fi communications. The communications channel 190 of these embodiments is typically connected to an access point or router that provides access to outside networks including the Internet for allowing streaming applications and other over-the-top communications. Other embodiments provide streamed data to the system 100 using a set-top box that delivers the data over the HDMI connection of the input block 105. Still other embodiments provide streamed data to the system 100 using the RF connection of the input block 105. As indicated above, various embodiments provide data in a non-streaming manner. Additionally, various embodiments use wireless networks other than Wi-Fi, for example a cellular network or a Bluetooth network. The system 100 may provide an output signal to various output devices, including a display 165, speakers 175, and other peripheral devices 185. The display 165 of various embodiments includes one or more of, for example, a touchscreen display, an organic light-emitting diode (OLED) display, a curved display, and / or a foldable display. The display 165 can be for a television, a tablet, a laptop, a cell phone (mobile phone), or other device. The display 165 can also be integrated with other components (for example, as in a smart phone), or separate (for example, an external monitor for a laptop). The other peripheral devices 185 include, in various examples of embodiments, one or more of a stand-alone digital video disc (or digital versatile disc) (DVR, for both terms), a disk player, a stereo system, and / or a lighting system. Various embodiments use one or more peripheral devices 185 that provide a function based on the output of the system 100. For example, a disk player performs the function of playing the output of the system 100. In various embodiments, control signals are communicated between the system 100 and the display 165, speakers 175, or other peripheral devices 185 using signaling such as AV. Link, CEC, or other communications protocols that enable device-to-device control with or without user intervention. The output devices may be communicatively coupled to system 100 via dedicated connections through respective interfaces 160, 170, and 180. Alternatively, the output devices may be connected to system 100 using the communications channel 190 via the communications interface 150. The display 165 and speakers 175 may be integrated in a single unit with the other components of system 100 in an electronic device, for example, a television. In various embodiments, the display interface 160 includes a display driver, for example, a timing controller (T Con) chip. The display 165 and speaker 175 may alternatively be separate from one or more of the other components, for example, if the RF portion of input 105 is part of a separate set-top box. In various embodiments in which the display 165 and speakers 175 are external components, the output signal may be provided via dedicated output connections, including, for example, HDMI ports, USB ports, or COMP outputs. The embodiments can be carried out by computer software implemented by the processor 110 or by hardware, or by a combination of hardware and software. As a non-limiting example, the embodiments can be implemented by one or more integrated circuits. The memory 120 can be of any type appropriate to the technical environment and can be implemented using any appropriate data storage technology, such as optical memory devices, magnetic memory devices, semiconductor-based memory devices, fixed memory, and removable memory, as non-limiting examples. The processor 110 can be of any type appropriate to the technical environment, and can encompass one or more of microprocessors, general purpose computers, special purpose computers, and processors based on a multi-core architecture, as non-limiting examples. FIG. 2 illustrates an example video encoder 200, such as a VVC (Versatile Video Coding) encoder. FIG. 2 may also illustrate an encoder in which improvements are made to the VVC standard or an encoder employing technologies similar to VVC. Before being encoded, the video sequence may go through pre-encoding processing (201), for example, applying a color transform to the input color picture (e.g., conversion from RGB 4:4:4 to YCbCr 4:2:0), or performing a remapping of the input picture components in order to get a signal distribution more resilient to compression (for instance using a histogram equalization of one of the color components). Metadata can be associated with the pre- processing and attached to the bitstream. In the encoder 200, a picture is encoded by the encoder elements as described below. The picture to be encoded is partitioned (202) and processed in units of, for example, CTU (Coding Tree Units), CUs (Coding Units). Each unit is encoded using, for example, either an intra or inter mode. When a unit is encoded in an intra mode, it performs intra prediction (260), e.g. using an intra-prediction tool such as Decoder Side Intra Mode Derivation (DIMD). In an inter mode, motion estimation (275) and compensation (270) are performed. The encoder decides (205) which one of the intra mode or inter mode to use for encoding the unit, and indicates the intra / inter decision by, for example, a prediction mode flag. Prediction residuals are calculated, for example, by subtracting (210) the predicted block (a.k.a. prediction block) from the original image block. The prediction residuals are then transformed (225) into transform coefficients c (a.k.a prediction residual transform coefficients) which are quantized (230) into quantization indexes ^^^(a.k.a transform coefficient levels or quantized transform coefficients on the encoder side). The quantization levels (a.k.a quantization indexes) ^^^, as well as motion vectors and other syntax elements such as the picture partitioning information, are entropy coded (245) to output a bitstream. The encoder can skip the transform and apply quantization directly to the non-transformed residual signal. The encoder can bypass both transform and quantization, i.e., the residual is coded directly without the application of the transform or quantization processes. The encoder decodes an encoded block to provide a reference for further predictions. The quantized transform coefficients are de-quantized (240) (a.k.a. scaled) and inverse transformed (250) to decode prediction residuals. Combining (255) the decoded prediction residuals and the predicted block, an image block is reconstructed. Block-based intra / inter prediction and transform coding, together with quantization, may induce a variety of artifacts at medium and low bitrates. In order to reduce those artifacts, in-loop filters (265), such as deblocking filtering (DBF), Bilateral filtering (BIF), Sample-adaptive offset (SAO) and Adaptive loop filtering (ALF) may be applied to the reconstructed picture to perform filtering to reduce encoding artifacts. The filtered image is stored in a reference picture buffer (280). In-loop filters (265) are thus used to enhance reconstructed images before storing them in the reference picture buffer (280). In-loop filters form a whole family. Among them, deblocking filters (DBF) aim at reducing blocking artifacts occurring along block boundaries, i.e. blocking discontinuities. Deblocking filters are usually designed to improve subjective quality, that is, the noticeability of such coding errors by the human psychovisual system. In usual video coding standards such as HEVC and VVC, deblocking filters are predetermined based on coding information (such as prediction modes, motion vectors, transform coefficients) and on local variations across block boundaries. Sample-adaptive offset (SAO) mostly aims at reducing artifacts resulting from the quantization of transform coefficients. Adaptive loop filter (ALF) and Cross-component adaptive loop filter (CCALF) are adaptive filters enabling to enhance the reconstructed signal, using for instance Wiener-filter encoding approaches. ALF and its variant CCALF may determine at encoder-side optimal Luma and Chroma filters according to a rate-distortion criterion. Those filters may be transmitted along with the bitstream, then decoded and used at decoder side. Luma ALF may implement further local adaptation based on a Luma classification, whereas Chroma ALF and CCALF use region- adaptation, with a filter selection at CTU level. Adaptive loop filters are usually applied at CTU-level, while deblocking filters are applied along block borders. FIG. 3 illustrates a block diagram of an example video decoder 300. In the decoder 300, a bitstream is decoded by the decoder elements as described below. Video decoder 300 generally performs a decoding pass reciprocal to the encoding pass as described in FIG. 2. The encoder 200 also generally performs video decoding as part of encoding video data. In particular, the input of the decoder includes a video bitstream, which can be generated by video encoder 200. The bitstream is first entropy decoded (330) to obtain quantization levels ^^^(a.k.a. transform coefficient levels or quantization levels on the decoder side), prediction modes, motion vectors, and other coded information. The picture partition information indicates how the picture is partitioned. The decoder may therefore divide (335) the picture according to the decoded picture partitioning information. The quantization levels ^^^are de- quantized (340) into reconstructed transform coefficients ^^^. De-quantization is also named scaling. The reconstructed transform coefficients ^^^are inverse transformed (350) to obtain the prediction residuals. Combining (355) the prediction residuals and the predicted block (a.k.a. prediction block), an image block is reconstructed. The predicted block can be obtained (370) from intra prediction (360) or motion-compensated prediction (i.e., inter prediction) (375). In- loop filters (365) are applied to the reconstructed image. The filtered image is stored at a reference picture buffer (380). Note that, for a given picture, the contents of the reference picture buffer 380 on the decoder 300 side is identical to the contents of the reference picture buffer 280 on the encoder 200 side for the same picture. The decoded picture can further go through post-decoding processing (385), for example, an inverse color transform (e.g., conversion from YCbCr 4:2:0 to RGB 4:4:4) or an inverse remapping performing the inverse of the remapping process performed in the pre-encoding processing (201). The post-decoding processing can use metadata derived in the pre-encoding processing and signaled in the bitstream. Both video encoder and decoder 200 and video decoder 300 may comprise in-loop filters (265 and 365 respectively). An example of a workflow of in-loop filters, e.g. as in VVC, is depicted in FIG. 4. Luma and Chroma reconstructed samples located along block boundaries may be first filtered with deblocking filters (DBF), e.g. if / when local deblocking conditions are met. Then, offsets may be added locally depending on a classification based on a band-classifier or on an edge-classifier with Sample-adaptive offset (SAO) filtering. Finally, Adaptive-loop filters (ALF) and / or Cross-component Adaptive loop filters (CCALF) may be applied before storing the resulting sample values in a Reference Picture buffer, e.g. buffer 280 on encoder side or buffer 380 on decoder side. Only a subset of these filters may be applied. FIG.5 shows more specifically the workflow of ALF and CCALF, e.g. such as in VVC. CCALF may use the Luma samples to refine Chroma sample values concurrently with ALF Luma and ALF Chroma. In addition to DBF, SAO, ALF and CCALF mentioned above, in-loop filters may include bilateral filtering (BIF) and Cross-Component Sample-Adaptive Offset (CCSAO), e.g. as in ECM (acronym of Enhanced Compression Model). FIG. 6 depicts another example of a workflow (e.g. a simplified workflow) of in-loop filters. The deblocked Luma may be provided as input to BIF, SAO-Y, CCSAO-Y, CCSAO-U and CCSAO-V. The deblocked U and V components may be provided as input to SAO-U and SAO-V, respectively. Deblocked Chroma components may both be provided as input to BIF-Chroma, CCSAO-Y, CCSAO-U and CCSAO-V. The sum (e.g. clipped sum) of BIF, SAO-Y and CCSAO-Y may then be provided as input to ALF-Y, as well as to CCALF-U and CCALF-V. The sum (e.g. clipped sum) of BIF- Chroma-U, SAO-U, and CCSAO-U, and the sum (e.g. clipped sum) of BIF-Chroma-V, SAO- V, and CCSAO-V, respectively, may both be provided as input to ALF-Chroma. Finally, the output of ALF-Y may be stored in Reference Picture buffer, as well as the sum (e.g. clipped sum) of CCALF-U and ALF-Chroma-U, and the sum (e.g. clipped sum) of CCALF-V and ALF-Chroma-V. As can be seen in that example, the way ALF and CCALF are implemented with each other is essentially the same as in FIG.5. Adaptive loop filter (ALF) ALF is an adaptive filter that may be applied to reduce the MSE (acronym of Mean Square Error) between original and reconstructed samples, using for instance Wiener-filter encoding approaches. ALF filters, e.g. ALF filter coefficients and possibly clipping indices, may be transmitted in the bitstream and decoded on the decoder side, may be derived from (e.g. previously) signaled parameters or may be derived from (e.g. predefined) parameters, before being applied on reconstructed samples. ALF filters may be point-symmetrical, e.g. with integer coefficients. As depicted in FIG.7, ALF may use 7x7 diamond-shaped filters for Luma (left side of FIG.7) and 5x5 diamond-shaped filters Chroma (right side of FIG.7). ALF filters may be DC-neutral, i.e. the central coefficient (the hatched pixel on FIG. 7) may be equal to one minus the sum of all other coefficients. The filtering operations are further disclosed below. Let ^^^^^, ^^^be a reconstructed sample andlet ^ത^^ ^^, ^^^ denote its ALF-filtered value. In a linear implementation of ALF, ^ത^^ ^^, ^^^ iscomputed as: ேିଶ^ത^^^^, ^^^ൌ ^^^^^, ^^^^ ^^ ^^^ ൈ^∆ ^^^ା^ ∆ ^^^^൩(1)where ^ ^^^^^ஸ^ழேି^and where : ∆ ^^^ାൌ ^^^ ^^ ^ ^^^, ^^ ^ ^^^^ െ ^^^ ^^, ^^^ ∆^^^ ൌ ^^^ ^^ െ ^^^ , ^^ െ ^^^^ െ ^^^ ^^, ^^^(2)with ^േ ^^^,േ ^^^^ denoting the coordinates offset corresponding to the reconstructed associated with the ^^-th coefficient ^^^. In a non-linear implementation of ALF, Equation (1) becomes:ேିଶ^ത^^ ^^, ^^^ ൌ ^^^ ^^, ^^^ ^ ^^ ^^^ൈ ^ ^^^ା^ ^^^ି^൩ (3) where : ^^^ାൌ , max൫െ , , െ ^^ିൌ min൫ ^^ , max൫െ ^^ , ^^^ ^^ െ ^^ , ^^ െ ^^ ^ െ ^^^ ^^, ^^^(4)^^ ^ ^ ^ ൯൯^^^being a clipping parameter ^^^, that is determined by a index ^^^. The clipping parameter follows: ^2^^^^ ൌ ^ when ^^^ ൌ 02^^ି^ିଶௗ^ otherwise(5)where ^^ ^^ denotes the ^^^can be 0, 1, 2 or 3. ALF filter coefficients indices may be determined at encoder side, for instance by solving Wiener-Hopf equations to minimize the MSE (mean square error) between reconstructed samples and their original values. These coefficients and, if applicable, the corresponding clipping indices, may encoded in an Adaptation Parameter Set (APS), e.g. if / when a rate-distortion condition is met. An ALF APS may contain one Luma filter set and up to 8 Chroma filters, e.g. such as in VVC. Pre-trained (e.g. pre-defined) Luma filters may be also used that are stored (e.g. hard-coded) both at encoder and decoder side and therefore not transmitted in the bitstream. ALF for Luma may comprise a further local adaptation with a classification based on local gradients, e.g. computed on 4x4 blocks. Depending on the classification, geometric filter transformations may be applied to the filter prior to the filtering, such as 90-degree rotation, diagonal or vertical flip. In an example, for luma component, each block (e.g. each 4×4 block) may be categorized into one out of K classes, K being an integer (K=25). The classification index C may be derived based on a directionality value D and a quantized value of activity  (e.g. a Laplacian activity value) computed for the block, e.g. C=5*D+Â. ALF (e.g. ALF for Luma) may rely on filter sets. A filter set comprises one filter or a plurality of filters and a list (e.g. a mapping list or a Look-Up Table) which associates with each class of the classification a specific filter of the filter set. On both the encoder and the decoder sides, a sample may be filtered by the filter associated with its class. Directionality and activity values may be considered as a gradient-based features and may be computed as disclosed below for a 4x4 block. However, the present principles may apply to blocks of other sizes. First, the values of sample gradients for horizontal, vertical and two diagonal directions may be calculated as follows : ^^^,^ ൌ|2 ^^^^^, ^^^െ ^^^^^ െ 1, ^^^െ ^^^^^ ^ 1, ^^^|^^^,^ൌ |2 ^^^ ^^, ^^^ െ ^^^ ^^, ^^ െ 1^ െ ^^^ ^^, ^^ ^ 1^| (1) ^^0^,^ൌ |2 ^^^ ^^, ^^^ െ ^^^ ^^ െ 1, ^^ െ 1^ െ ^^^ ^^ ^ 1, ^^ ^ 1^| ^^1^,^ൌ |2 ^^^ ^^, ^^^ െ ^^^ ^^ െ 1, ^^ ^ 1^ െ ^^^ ^^ ^ 1, ^^ െ 1^| Based on the sample gradients, block (e.g. sub-block) horizontal gradient ^^^, vertical gradient ^^௩, and two diagonal gradients ^^ௗ^and ^^ௗ^, may be calculated as follows : ^ାହ^ାହ^^^ൌ^ ^^^^,^where indices ^^ and ^^ refer the Second, to determine the directionality ^^, the ratio of the maximum and minimum of the block horizontal and vertical gradients ^^^^,௩^௫and the ratio of the maximum and the minimum of two block diagonal gradients ^^ௗ^^^,ௗ௫^ may be compared against each other and with a set of thresholds ^^^and ^^ଶ, where ^^^^,௩^௫ ൌ max^ ^^^, ^^௩^, ^^^^,௩^^ ൌ min^ ^^^, ^^௩^(3)and ^^ௗ^^^,ௗ௫^ ൌ max^ ^^ௗ^, ^^ௗ^^, ^^ௗ^^^,^ௗ^ൌ min^ ^^ௗ^, ^^ௗ^^ (4) To this aim, in a first step (Step 1), if / when both ^^^^,௩^௫^ ^^^ൈ ^^^^,௩^^and ^^ௗ^^^,ௗ௫^ ^ ^^^ൈ ^^ௗ^^^,^ௗ^, ^^ is set to 0 (block is categorized as “texture”). In a second step (step 2), if / when ^^^^,௩^௫⁄ ^^^^,௩^^^ ^^ௗ^^^,ௗ௫^⁄ ^^ௗ^^^,^ௗ^, the directionality ^^ is calculated in Step 3; otherwise in Step 4. a third step (step 3), if / when ^^^^ In,௩^௫ൈ is categorized as “strong horizontal / vertical”); otherwise ^^ is set to 1 (block is categorized as “weak horizontal / vertical”). In a fourth step (step 4), if / when ^^ௗ^^^,ௗ௫^ ^ ^^ଶൈ ^^ௗ^^^,^ௗ^, ^^ is set to 4 (block is categorized as “strong diagonal”); otherwise ^^ is set to 3 (block is categorized as “weak diagonal”). An activity value ^^ may be calculated as: ^ାହ^ାହ^^ ൌ ^ ^ ^ ൫ ^^^,^^ ^^^,^൯ ^ (5) The activity value ^^ thequantized value is asFinally, each (e.g.4x4) Luma block may be categorized into one of the 25 classes, where each class has a specific filter assigned to : ^^ ൌ 5 ∗ ^^ ^ ^^^ (6)A number of pre-trained Luma filter sets may also be available at encoder and decoder side. The encoder may choose according to a rate-distortion criterion whether it transmits the Luma filter set that has been optimized for a current slice / frame. At CTU level, the encoder may decide if ALF is performed, and may select a Luma filter set to be used between a pre-trained filter sets and the filter sets that have already been transmitted. Unlike Luma, ALF for Chroma usually does not implement local classification. Instead, it features a region-adaptation. In an example, up to 8 ALF Chroma filters may be available at the same time at encoder and decoder sides, and each Chroma block, e.g CTB (Coding Tree Block), signals which filter it uses. In other examples, e.g. in ECM, Chroma ALF diamond shaped size may be increased to 9x9. To filter a Luma sample, three different classifiers ( ^^^, ^^^and ^^ଶand three different sets of filters (F0, F1 and F2)) may be used. Sets F0 and F1 may contain fixed filters, e.g. with coefficients pre-trained for classifiers ^^^and ^^^. Coefficients of filters in F2 may be signaled. Which filter from a set Fi is used for a given sample may be decided by a class Ci assigned to this sample using classifier ^^^. The two classifiers corresponding to fixed filtering, ^^^and ^^^, may be both Laplacian-based and applied on 2x2 sub-blocks. In both classifiers, activity and directionality values may be derived based on vertical, horizontal, and diagonal gradients. Then a class index may be determined based on the activity and directionality values. Luma classification may use an additional alternative classifier, e.g. a band classifier. For a signaled Luma filter set, a flag is signaled to indicate whether the alternative classifier is applied. In an example, geometrical transformation is not applied to the alternative band classifier. When the band-based classifier is applied, the sum of sample values of a (e.g.2x2) luma block may be calculated first. Then the class index may be calculated as below: class_index = (sum * 25) >> (sample bit depth + 2) (6) The residual samples may be used as additional inputs to the ALF. A filtered sample may thus be derived as follows : ^ଽ ଶହ ଶ^ଶଽ ^^^^ ^^, ^^^ ൌ ^^^ ^^, ^^^ ^ ^^ ^^^൫ ^^^,^ ^ ^^^,^൯൩ ^ ^^ ^^^൫ ^^^,^^ ^^^,^൯൩ ^ ^^ ^^^൫ℎ^,^^ ℎ^,^൯൩ ^ ^^ ^^^^^^൩ ^ୀ^ ^ୀଶ^ ^ୀଶ^ ^ୀଶ଼ an sample and current sample ^^^ ^^, ^^^, ℎ^,^is the difference (or the clipped difference) between a neighboring sample before DBF and current sample ^^^ ^^, ^^^, ^^^^is the difference (or the clipped difference) between a collocated intermediate sample and current sample ^^^ ^^, ^^^, and ℎ^^is the difference (or the clipped difference) between a collocated sample before DBF and current sample ^^^ ^^, ^^^ and where ^^^is the neighboring residual sample value (e.g. clipped value) and ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^is the residual sample value filtered (e.g. clipped value) by the fixed-filter. For residual samples, the fixed filter reuses the offline fixed filter trained for reconstruction after SAO. The complete filter shape of ALF using residual samples as additional inputs is shown in FIG.8. Cross-component Adaptive loop filter (CCALF) Cross-component Adaptive loop filter (CCALF) uses the Luma samples to refine Chroma is a linear filtering process. A correction (e.g. an offset or a refinement) may be generated independently for each Chroma component as follows : ∀^^ ∈^^^ ^^, ^^ ^^^∆ ^^^ ൌ ^ ^^^^^^^ ^ ^^^, ^^^ ^ ^^^^. ^^^^^^^, ^^^^(8) ^௫బ,௬బ^∈ௌ^where ^^^of the ^^^^ denotes the filter support offset around ^ ^^^, ^^^^, ^^^is the filter support region in Luma for the Chroma component ^^, and ^^^^ ^^^, ^^^^ denotes the filter coefficient of component ^^ for position offset^^^^, ^^^^. The correction ∆ ^^^is added to the reconstructed Chroma sample to obtain the ALF-filtered value. In the following, the words correction, offset or refinement are used interchangeably. CCALF filter may have a diamond shape, as can be seen on the example of FIG. 9. FIG. 9 depicts an example, e.g. in VVC, of relative location of CCALF filtered Chroma sample and its support in the Luma plane for 4:2:0 Chroma format with Chroma location of type 0. CCALF does not enforce point-symmetry constraint in its coefficient. In order to preserve DC-neutrality, the sum of CCALF coefficients values may be set to zero (e.g. is required to be zero). CCALF filters are optimized at encoder side and transmitted in the bitstream in ALF APSs. An ALF APS contains up to four CCALF filters per Chroma components. Each CTU signals the CCALF filters it uses. CCALF in ECM presents a larger filter shape, with 26 coefficients, as illustrated in the example of FIG.10. FIG.10 depicts an example of CCALF filter shape, e.g. in ECM, for 4:2:0 Chroma format with Chroma location of type 0. Up to 16 CCALF filters can be signaled in an APS. Current ALF uses a single component for the classification and the adaptive filtering, e.g. the classification used for Luma adaptive filtering derives from Luma samples. In the same way, with CCALF the adaptive filters used to enhance Chroma components use only Luma samples as input. These solutions lead to sub-optimal filtering results. In contrast, a method for decoding (a method for encoding respectively) is disclosed below that makes it possible to improve the filtering operations by efficiently determining which ALF filter to use for each sample, so that the filtering yields optimal results. To this end, Multi- component Adaptive-loop filtering (MCALF) is disclosed where several (i.e. at least two) components are used together, e.g. to classify and / or to filter at least one component. In an example, at least two components are used to derive the class of a sample that determines which filter is selected to filter this sample. In another example, the adaptive filtering operations themselves involve samples from at least two components. In a further example, at least two components are used both for the classification and during the filtering operations. In a variant, the classification is computed from all three components, (e.g. the Luma component Y and both the blue and red Chroma components Cb and Cr). In some examples, MCALF may use samples that are output from SAO, CCSAO, BIF, DBF, or samples that are the plain sum of the prediction and the residue, i.e. the samples obtained before any loop-filter is applied; all together, separately, or as a combination thereof. In a variant, MCALF is used instead of ALF and CCALF. In a variant, DBF conditions are assessed from at least two components. In the following, the considered color multi-components are Y, Cb, Cr. But the disclosed examples may be extended to any other color components such as Y, Co, Cg or RGB. The disclosed examples may also be extended to any other Wiener-based or linear convolution based post-filters. FIG.11A depicts a flowchart of a decoding method according to an example. At S100, samples of a first component of a picture block are reconstructed, e.g. Luma samples of the picture block. Reconstruction may comprise dequantizing (or inverse quantizing), inverse transforming, and adding a predictor. Optionally, first filters may be applied on the reconstructed samples, e.g. DBF, SAO, etc. At S102, at least one (e.g. each) reconstructed sample of the first component (possibly filtered by the first filters) is classified based on reconstructed samples (possibly filtered by the first filters) of the first component. The classification may be based on gradients values, e.g. on a directionality value D and a (e.g. quantized) value of activity A. The classification associates with each sample a class or an index (e.g. a class index or a classification index) denoted C. A class may be derived (e.g. computed) for a block of samples, e.g. a 2x2 or a 4x4 block. In an example, a directionality value and an activity value of the component to be filtered, i.e. the first component, are computed for a block of reconstructed samples of the first component. At S104, the at least one sample (e.g. each sample) of the first component is filtered based on the classification. In an example, a filter being associated with each class of index C (e.g. by a LUT), the at least one sample (e.g. each sample) is filtered with the filter associated with the class to which the sample belongs. Filtering the at least one sample of the first component based on the classification comprises applying the filter associated with the class C on samples of at least two components. Therefore, samples of at least two (e.g. at least two different) components are involved in the filtering operation of the at least one sample (e.g. each sample) of the first component. In an example, the at least two components comprise the first component. In an example, the filtered sample value is equal to a sum of an offset and of the non-filtered sample value, wherein the offset is equal to a weighted sum of the sample values of the at least two components considered for the filtering. In a specific example, wherein the three components are considered for the filtering, the offset value computed for a first component, e.g. for the luma component, is equal to a weighted sum of the sample values of all three components. The weights of the sum are the coefficients of the filter. In an example, the sum of filter coefficients that apply to the first component, i.e. to the component being filtered, is equal to one and the sum of filter coefficients that apply to another component different from the first component is equal to zero. FIG.11B depicts a flowchart of a decoding method according to another example. At S200, samples of a first component of a picture block are reconstructed, e.g. Luma samples of the picture block. Reconstruction may comprise dequantizing (or inverse quantizing), inverse transforming, and adding a predictor. Optionally, first filters may be applied on the reconstructed samples, e.g. DBF, SAO, etc. At S202, at least one (e.g. each) reconstructed sample (possibly filtered by the first filters) is classified based on reconstructed samples (possibly filtered by the first filters) of at least two components (e.g. at least two different components). Therefore, samples of at least two components are involved in the classification of the at least one sample (e.g. each sample) of the first component. In an example, the at least two components comprise the first component. The classification may be based on gradients values, e.g. on a directionality value D and a (e.g. quantized) value of activity A. The classification associates with each sample a class or an index (e.g. a class index or a classification index) denoted C. A class may be derived for a block of samples, e.g. a 2x2 or a 4x4 block. In an example, a directionality value and an activity value may be computed for at least two (e.g. for each) components (e.g. Y, Cb and Cr) used in the classification, e.g. (AY DY), (ACb DCb), (ACr DCr). From each of these pairs (Ai, Di)i=Y,Cb,Cr, a class or an index is determined. From the determined classes or indices, a global class or global index C is determined for example as follows C = CY* (NDCb* NACb) * (NDCr* NACr) + CCb* (NDCr* NACr) + CC where NX is the number of activity or directionality levels for a given component. In a variant, only two components are used instead of three. In another example, a global activity value A (a global directionality value D) is computed from the plurality of activity values (directionality values respectively) computed for the components involved in the classification. In an example, A = AY * (NACb* NACr) + ACb * NACr + ACrand D = DY* (NDCb* NDCr) + DCb* NDCr+ DCr. At S204, the at least one sample (e.g. each sample) of the first component is filtered based on the classification. In an example, a filter being associated with each class of index C (e.g. by a LUT), the at least one sample (e.g. each sample) is filtered with the filter associated with the class to which the sample belongs. Filtering the at least one sample of the first component based on the classification comprises applying the filter associated with the class C on samples of at least two components (e.g. at least two different components). Therefore, samples of at least two components are involved in the filtering operation of the at least one sample (e.g. each sample) of the first component. In an example, the at least two components comprise the first component. In an example, the filtered sample value is equal to a sum of an offset and of the non-filtered sample value, wherein the offset is equal to a weighted sum of the sample values of the at least two components considered for (e.g. involved in) the filtering. In a specific example, wherein the three components are considered for the filtering, the offset value computed for a first component, e.g. for the luma component, is equal to a weighted sum of the sample values of all three components. The weights of the sum are the coefficients of the filter. In an example, the sum of filter coefficients that apply to the first component, i.e. to the component being filtered, is equal to one and the sum of filter coefficients that apply to another component different from the first component is equal to zero. FIG.11C depicts a flowchart of a decoding method according to another example. At S300, samples of a first component of a picture block are reconstructed, e.g. Luma samples of the picture block. Reconstruction may comprise dequantizing (or inverse quantizing), inverse transforming, and adding a predictor. Optionally, first filters may be applied on the reconstructed samples, e.g. DBF, SAO, etc. At S302, at least one (e.g. each) reconstructed sample (possibly filtered by the first filters) is classified based on reconstructed samples (possibly filtered by the first filters) of at least two components (e.g. at least two different components). Therefore, samples of at least two components are involved in the classification of the at least one sample (e.g. each sample) of the first component. In an example, the at least two components comprise the first component. The classification may be based on gradients values, e.g. on a directionality value D and a (e.g. quantized) value of activity A. The classification associates with each sample a class or an index (e.g. a class index or a classification index) denoted C. A class may be derived for a block of samples, e.g. a 2x2 or a 4x4 block. In an example, a directionality value and an activity value may be computed for at least two (e.g. for each) components (e.g. Y, Cb and Cr) used in the classification, e.g. (AY DY), (ACb DCb), (ACr DCr). From each of these pairs (Ai, Di)i=Y,Cb,Cr, a class or an index is determined. From the determined classes or indices, a global class or global index C is determined for example as follows C = CY * (NDCb* NACb) * (NDCr* NACr) + CCb * (NDCr* NACr) + CCwhere NXis the number of activity or directionality levels for a given component. In a variant, only two components are used instead of three. In another example, a global activity value A (a global directionality value D) is computed from the plurality of activity values (directionality values respectively) computed for the components involved in the classification. In an example, A = AY * (NACb* NACr) + ACb * NACr + ACrand D = DY* (NDCb* NDCr) + DCb* NDCr+ DCr. At S304, the at least one sample (e.g. each sample) of the first component is filtered based on the classification. In an example, a filter being associated with each class of index C (e.g. by a LUT), the at least one sample (e.g. each sample) is filtered with the filter associated with the class to which the sample belongs. Filtering the samples of the first component based on the classification comprises applying the filter associated with the class C on samples of that particular component. In an example, the filtered sample value is equal to a sum of an offset and of the non-filtered sample value, wherein the offset is equal to a weighted sum of the sample values of the component to be filtered. In an example, the sum of filter coefficients that apply to the first component, i.e. to the component being filtered, is equal to one. FIGs 11A to 11C depict flowcharts of a decoding method according to various examples. However, since the encoding method comprises a decoding loop, the same steps apply in an encoding method on the reconstructed samples, or on filtered versions of reconstructed samples. FIG.12 depicts an example wherein all three components, e.g. the Luma component and both the blue and red Chroma components Cb and Cr, are used to filter adaptively each component. However, in other examples, two components instead of three are used to filter adaptively each component. MCALF applies on each component: MCALF Y, MCALF Cb, and MCALF Cr. MCALF Y, MCALF Cb, and MCALF Cr are fed with reconstructed samples from the three components Y, Cb and Cr, and computes a refinement (e.g. a correction or an offset) ΔR to be added to its specific component, e.g. ΔRYis computed by MCALF-Y from the three components Y, Cb and Cr and added to the reconstructed component RY. In an example, MCALF filtering is defined as follows for a given component: ∀ ^^ ∈ ^ ^^, ^^ ^^, ^^ ^^^ ∆ ^^^^ ^^, ^^^ ൌ ^ ^ ^^^^ ^^^^ ^^, ^^^^ ^^^. ^^^,^^ ^^, ^^^ (9) ^∈^^,^^,^^^ ^௨,௩^∈ௌ^,ೖ of the component ^^ to be filtered, ^ ^^^, ^^^^ is the sample location in component ^^ derived from^^^, ^^^, ^^^,^ is the filter support region in component ^^ for the filtering component ^^,^^^, ^^^denotes filter support offsets in the different input components, and ^^^,^^^^, ^^^is the filter coefficient of component ^^ for position offset ^ ^^, ^^^. In a variant, for some input (e.g. for at least one) component k, the value of Rk is a pre-filtered sample value obtained from neighboring samples in the component k. For example, in the case where the output is chroma, e.g. i is Cb, and one input is luma, e.g. k is Y, the pre-filtering is a sub-sampling filter allowing to have ^ ^^^, ^^^^ equal to (x,y). In another example, in the case where the output is luma, e.g. i is Y, and one input is chroma, e.g. k is Cb, the pre-filtering isan up-sampling filter allowing to have^^^^ , ^^^^equal to (x,y).In an example, the optimization (e.g. rate-distortion optimization) of MCALF-Y, MCALF-Cb, and MCALF-Cr filters is performed (e.g. on encoder side) independently and may be run in parallel. The optimization is used on encoder side to obtain filter coefficients and possibly clipping indices. In another example, MCALF-Cb, and MCALF-Cr filters are optimized jointly according to a global rate-distortion criterion that takes both Chroma components into account. In another example, the optimization of MCALF-Y / Cb / Cr filters is performed jointly accordingly with a global rate-distortion criterion that takes both Luma and Chroma components into account. In some examples, some constraints may apply to MCALF. These constraints may be beneficial from a rate-distortion point of view, e.g. may reduce the signaling cost of MCALF filters and filter sets. Let ^^^,^be the number of MCALF filter coefficients that apply on component ^^ to filter the component ^^, that is: ^^^,^ൌ ห ^^^,^ห, where|.|denotes the cardinality of a set. Let’s also denote ൫ ^^^,^,^൯^ஸ^ழே^,ೖൌ ^ ^^^,^^ ^^, ^^^^ ^௨,௩^∈ௌ.The Equation (9) may be rewritten as follows : ^,ೖே^,ೖି^∀^^ ∈^^^, ^^ ^^, ^^ ^^^∆ ^^^^^^, ^^^ൌ ^ ^ ^^^^^^^ ^ ^^^, ^^^ ^ ^^^^. ^^^,^,^(10) In an sum an one. one filter coefficient may thus be derived from the other as follows : ேೊ,ೊିଶ ேೊ,^್ି^ ேೊ,^^ି^ìï^^^,^,ேೊ,ೊ ൌ 1 െ ^ ^ ^^^,^,^^ െ ^ ^ ^^^,^^,^^ െ ^ ^ ^^^,^^,^^ In another example, the following two constraints related to DC-neutrality are enforced: the sum of the coefficients that apply to a component to be filtered is equal to one and the sum

[0002] of the coefficients that apply to another component than the one to be filtered is equal to zero. The first DC-neutrality constraint enforces that: ேೊ,ೊିଶìï^^^,^,ேೊ,ೊ ൌ 1 െ ^ ^^^,^,^The second DC- ∀ ^^, ^^ ∈ ^ ^^, ^^ ^^, ^^ ^^^, ^^ ് ^^ ^^^,^,ே^,ೖൌ െ ^ ^^^,^,^(13) That is: ^^^,^^,ேೊ,^್ൌ െ^^^^,^^,^and^^^,^^,ேೊ,^^ ൌ െ ^ ^^^,^^,^(14) In an example, filtering operations may be performed using integer arithmetic, using a predetermined number of bits to encode filter coefficients and the bit-depth of each component. In a variant, the number of bits used to encode filter coefficients that apply to Chroma components may differ from the number of bits used for coefficients that apply to Luma component. In another example that can be independent or can be combined with at least one previous example, MCALF allows a further local adaptation using a classification. That classification is derived from one or more input components. In some variants, at least one component used for classification is not used during filtering. In that example, the bitstream transmits MCALF filter sets. Here, an MCALF filter set consists of one or more MCALF filters, up to the number of classes in the classification, plus, if there are at least two filters, a list of filter indices (as many indices as classes in the classification) that specify which filter shall be used for each class. In a variant, the encoder may choose among a plurality of classifications. In that variant, an MCALF filter set contains an additional piece of information, e.g. a classifier index, that determines the classifier. In a variant, only the component to be filtered is used to derive the classification. An example of this variant is depicted in FIG.13. In that example, three reconstructed components are depicted: R, R’, and R’’. R is the reconstructed component to be filtered, while R’ and R’’ denote other reconstructed components. ΔR is the computed refinement for reconstructed component R, and RMCALF denotes the MCALF-filtered component. While the three components are used as input of the filtering operation to compute ΔR, only the component R is used for the classification. In another variant not represented on FIG.13, the three components may be used as input for the classification. In yet another variant not represented on FIG.13, R and R’ may be used as input for the classification. In yet another variant not represented on FIG.13, R and R’’ may be used as input for the classification. In another variant, both Chroma components are used to derive classifications for MCALF-Cb and MCALF-Cr. An example of this variant is depicted in FIG.14. In this example, RC denotes a reconstructed Chroma component, that is, Cb or Cr. RC’ denotes another reconstructed Chroma component, and RYis the reconstructed Luma component. ΔRCis the computed refinement for Chroma component RC, and RMCALF-C denotes the MCALF-filtered Chroma component. While the three components are used as input of the filtering operation to compute ΔRC, only the two Chroma components are used for the classification. In a variant, MCALF-Cb and MCALF-Cr share the same classification. An example of this variant is depicted in FIG.15. In this example, RCb and RCr denote reconstructed Cb and Cr Chroma samples, respectively, and RY denotes reconstructed Luma samples. ΔRCb and ΔRCr denote the computed refinements for Cb and Cr Chroma components, respectively. RMCALF-Cb and RMCALF-Cr are the MCALF-filtered Cb and Cr Chroma components, respectively. In a variant, all three components are used to derive the classification. An example of this variant is depicted in FIG. 16. In that example, three reconstructed components are depicted: R, R’, and R’’. R is the reconstructed component to be filtered, while R’ and R’’ denote other reconstructed components. ΔR is the computed refinement for reconstructed component R, and RMCALF denotes the MCALF-filtered component. In a variant, MCALF-Y, MCALF-Cb and MCALF-Cr share the same classification. An example of this variant is depicted in FIG. 17. In this example, RY, RCb and RCr denote reconstructed Luma, blue and red Chroma samples, respectively. ΔRY, ΔRCb and ΔRCr denote the computed refinements for Luma, blue and red Chroma components, respectively. Eventually RMCALF-Y, RMCALF-Cb and RMCALF-Cr are the MCALF-filtered Luma, blue and red Chroma components, respectively. In a specific example, MCALF is used for deblocking sake, i.e. MCALF filters are applied along block boundaries. In that example, the classification includes a class where no filtering is applied, e.g. because deblocking conditions are not met. Unlike the prior art, the deblocking conditions are derived from at least two components. The classification includes at least an additional class in which deblocking conditions are met, and MCALF filters are applied along block boundaries. In a variant, MCALF classification can also include a plurality of classes that specify different MCALF filters of different deblocking lengths and strengths. In an example, MCALF is applied on plain reconstructed samples, that is, sums of predictions and residues as illustrated on FIG. 18. In a variant, MCALF can replace ALF and CCALF to feed Luma and Chroma samples in the Reference Picture buffer. For example, MCALF is performed right after DBF as illustrated on FIG. 19. In a variant, MCALF follows SAO, as illustrated on the example of FIG. 20. In another variant, MCALF is performed after DBF, SAO / CCSAO, and BIF as illustrated on FIG.21. Moreover, the present aspects are not limited to ECM, VVC or HEVC, and can be applied, for example, to other standards and recommendations, and extensions of any such standards and recommendations. Unless indicated otherwise, or technically precluded, the aspects described in this application can be used individually or in combination. Various numeric values are used in the present application. The specific values are for example purposes and the aspects described are not limited to these specific values. Note that syntax elements as used herein, such as terms in equations and algorithms, signal e.g., index, coefficients and so on, are descriptive terms. As such, they do not preclude the use of other syntax element names. Various implementations involve decoding. “Decoding”, as used in this application, can encompass all or part of the processes performed, for example, on a received encoded sequence in order to produce a final output suitable for display. In various embodiments, such processes include one or more of the processes typically performed by a decoder, for example, entropy decoding, inverse quantization, inverse transformation, and differential decoding. In various embodiments, such processes also, or alternatively, include processes performed by a decoder of various implementations described in this application, for example, filtering a reconstructed picture block, classifying samples. As further examples, in one embodiment “decoding” refers only to entropy decoding, in another embodiment “decoding” refers only to differential decoding, and in another embodiment “decoding” refers to a combination of entropy decoding and differential decoding, and in another embodiment “decoding” refers to the whole reconstructing picture process including entropy decoding. Whether the phrase “decoding process” is intended to refer specifically to a subset of operations or generally to the broader decoding process will be clear based on the context of the specific descriptions and is believed to be well understood by those skilled in the art. Various implementations involve encoding. In an analogous way to the above discussion about “decoding”, “encoding” as used in this application can encompass all or part of the processes performed, for example, on an input video sequence in order to produce an encoded bitstream. In various embodiments, such processes include one or more of the processes typically performed by an encoder, for example, partitioning, differential encoding, transformation, quantization, and entropy encoding. In various embodiments, such processes also, or alternatively, include processes performed by an encoder of various implementations described in this application, for example, determining filter coefficients, filtering a reconstructed picture block, classifying samples. As further examples, in one embodiment “encoding” refers only to entropy encoding, in another embodiment “encoding” refers only to differential encoding, and in another embodiment “encoding” refers to a combination of differential encoding and entropy encoding. Whether the phrase “encoding process” is intended to refer specifically to a subset of operations or generally to the broader encoding process will be clear based on the context of the specific descriptions and is believed to be well understood by those skilled in the art. This disclosure has described various pieces of information, such as for example syntax, that can be transmitted or stored, for example. This information can be packaged or arranged in a variety of manners, including for example manners common in video standards such as putting the information into an SPS, a PPS, a NAL unit, a header (for example, a NAL unit header, or a slice header), or an SEI message. Other manners are also available, including for example manners common for system level or application level standards such as putting the information into one or more of the following: a. SDP (session description protocol), a format for describing multimedia communication sessions for the purposes of session announcement and session invitation, for example as described in RFCs and used in conjunction with RTP (Real-time Transport Protocol) transmission. b. DASH MPD (Media Presentation Description) Descriptors, for example as used in DASH and transmitted over HTTP, a Descriptor is associated with a Representation or collection of Representations to provide additional characteristic to the content Representation. c. RTP header extensions, for example as used during RTP streaming. d. ISO Base Media File Format, for example as used in OMAF and using boxes which are object-oriented building blocks defined by a unique type identifier and length also known as 'atoms' in some specifications. e. HLS (HTTP live Streaming) manifest transmitted over HTTP. A manifest can be associated, for example, to a version or collection of versions of a content to provide characteristics of the version or collection of versions. When a figure is presented as a flow diagram, it should be understood that it also provides a block diagram of a corresponding apparatus. Similarly, when a figure is presented as a block diagram, it should be understood that it also provides a flow diagram of a corresponding method / process. Some embodiments refer to rate distortion optimization. In particular, during the encoding process, the balance or trade-off between the rate and distortion is usually considered, often given the constraints of computational complexity. The rate distortion optimization is usually formulated as minimizing a rate distortion function, which is a weighted sum of the rate and of the distortion. There are different approaches to solve the rate distortion optimization problem. For example, the approaches may be based on an extensive testing of all encoding options, including all considered modes or coding parameters values, with a complete evaluation of their coding cost and related distortion of the reconstructed signal after coding and decoding. Faster approaches may also be used, to save encoding complexity, in particular with computation of an approximated distortion based on the prediction or the prediction residual signal, not the reconstructed one. Mix of these two approaches can also be used, such as by using an approximated distortion for only some of the possible encoding options, and a complete distortion for other encoding options. Other approaches only evaluate a subset of the possible encoding options. More generally, many approaches employ any of a variety of techniques to perform the optimization, but the optimization is not necessarily a complete evaluation of both the coding cost and related distortion. The implementations and aspects described herein can be implemented in, for example, a method or a process, an apparatus, a software program, a data stream, or a signal. Even if only discussed in the context of a single form of implementation (for example, discussed only as a method), the implementation of features discussed can also be implemented in other forms (for example, an apparatus or program). An apparatus can be implemented in, for example, appropriate hardware, software, and firmware. The methods can be implemented in, for example, a processor, which refers to processing devices in general, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processors also include communication devices, such as, for example, computers, cell phones, portable / personal digital assistants ("PDAs"), and other devices that facilitate communication of information between end-users. Reference to “one embodiment” or “an embodiment” or “one implementation” or “an implementation”, as well as other variations thereof, means that a particular feature, structure, characteristic, and so forth described in connection with the embodiment is included in at least one embodiment. Thus, the appearances of the phrase “in one embodiment” or “in an embodiment” or “in one implementation” or “in an implementation”, as well any other variations, appearing in various places throughout this application are not necessarily all referring to the same embodiment. Additionally, this application may refer to “determining” various pieces of information. Determining the information can include one or more of, for example, estimating the information, calculating the information, predicting the information, or retrieving the information from memory. Further, this application may refer to “accessing” various pieces of information. Accessing the information can include one or more of, for example, receiving the information, retrieving the information (for example, from memory), storing the information, moving the information, copying the information, calculating the information, determining the information, predicting the information, or estimating the information. Additionally, this application may refer to “receiving” various pieces of information. Receiving is, as with “accessing”, intended to be a broad term. Receiving the information can include one or more of, for example, accessing the information, or retrieving the information (for example, from memory). Further, “receiving” is typically involved, in one way or another, during operations such as, for example, storing the information, processing the information, transmitting the information, moving the information, copying the information, erasing the information, calculating the information, determining the information, predicting the information, or estimating the information. It is to be appreciated that the use of any of the following “ / ”, “and / or”, and “at least one of”, for example, in the cases of “A / B”, “A and / or B” and “at least one of A and B”, is intended to encompass the selection of the first listed option (A) only, the selection of the second listed option (B) only, or the selection of both options (A and B). As a further example, in the cases of “A, B, and / or C” and “at least one of A, B, and C”, such phrasing is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of the third listed option (C) only, or the selection of the first and the second listed options (A and B) only, or the selection of the first and third listed options (A and C) only, or the selection of the second and third listed options (B and C) only, or the selection of all three options (A and B and C). This may be extended, as is clear to one of ordinary skill in this and related arts, for as many items as are listed. Also, as used herein, the word “signal” refers to, among other things, indicating something to a corresponding decoder. For example, in certain embodiments the encoder signals a particular one of a plurality of filter coefficients, clipping index, etc. In this way, in an embodiment the same parameter is used at both the encoder side and the decoder side. Thus, for example, an encoder can transmit (explicit signaling) a particular parameter to the decoder so that the decoder can use the same particular parameter. Conversely, if the decoder already has the particular parameter as well as others, then signaling can be used without transmitting (implicit signaling) to simply allow the decoder to know and select the particular parameter. By avoiding transmission of any actual functions, a bit savings is realized in various embodiments. It is to be appreciated that signaling can be accomplished in a variety of ways. For example, one or more syntax elements, flags, and so forth are used to signal information to a corresponding decoder in various embodiments. While the preceding relates to the verb form of the word “signal”, the word “signal” can also be used herein as a noun. As will be evident to one of ordinary skill in the art, implementations can produce a variety of signals formatted to carry information that can be, for example, stored or transmitted. The information can include, for example, instructions for performing a method, or data produced by one of the described implementations. For example, a signal can be formatted to carry the bitstream of a described embodiment. Such a signal can be formatted, for example, as an electromagnetic wave (for example, using a radio frequency portion of spectrum) or as a baseband signal. The formatting can include, for example, encoding a data stream and modulating a carrier with the encoded data stream. The information that the signal carries can be, for example, analog or digital information. The signal can be transmitted over a variety of different wired or wireless links, as is known. The signal can be stored on a processor-readable medium. Many examples are described herein. Features of examples may be provided alone or in any combination, across various claim categories and types. Further, examples may include one or more of the features, devices, or aspects described herein, alone or in any combination, across various claim categories and types. For example, features described herein may be implemented in a bitstream or signal that includes information generated as described herein. The information may allow a decoder to decode a bitstream, the encoder, bitstream, and / or decoder according to any of the embodiments described. For example, features described herein may be implemented by creating and / or transmitting and / or receiving and / or decoding a bitstream or signal. For example, features described herein may be implemented a method, process, apparatus, medium storing instructions, medium storing data, or signal. For example, features described herein may be implemented by a TV, set-top box, cell phone, tablet, or other electronic device that performs decoding. The TV, set-top box, cell phone, tablet, or other electronic device may display (e.g. using a monitor, screen, or other type of display) a resulting image (e.g., an image from residual reconstruction of the video bitstream). The TV, set-top box, cell phone, tablet, or other electronic device may receive a signal including an encoded image and perform decoding. A number of embodiments has been described above. Features of these embodiments can be provided alone or in any combination, across various claim categories and types. A decoding method is disclosed that comprises : reconstructing samples of a first component of a picture block ; classifying at least one sample of the first component; and filtering the at least one sample of the first component based on the classification ; wherein filtering the at least one sample comprises applying a filter on samples of at least two components, the filter being associated with the class to which the at least one sample belongs. An encoding method is disclosed that comprises : reconstructing samples of a first component of a picture block ; classifying at least one sample of the first component; and filtering the at least one sample of the first component based on the classification ; wherein filtering the at least one sample comprises applying a filter on samples of at least two components, the filter being associated with the class to which the at least one sample belongs. In an example, classifying the at least one sample of the first component comprises classifying the at least one sample based on samples of at least two components. In an example, classifying the at least one sample of the first component comprises classifying the samples based on samples of three components. In an example, filtering the at least one sample of the first component based on the classification comprises computing an offset for the at least one sample of the first component and adding the offset to the at least one sample of the first component, wherein the offset is computed as a weighted sum of the samples of at least two components, the weights of the weighted sum being coefficients of the filter. In an example, a sum of filter coefficients that apply to the first component is equal to one. In an example, a sum of filter coefficients that apply to another component different from the first component is equal to zero. A decoding apparatus comprising one or more processors and at least one memory coupled to said one or more processors is disclosed. The one or more processors are configured to perform the decoding method of any one of the disclosed examples. An encoding apparatus comprising one or more processors and at least one memory coupled to said one or more processors is disclosed. The one or more processors are configured to perform the encoding method of any one of the disclosed examples. A computer program is disclosed that comprises program code instructions for implementing the decoding method according to any one of the disclosed examples when executed by a processor. A computer program is disclosed that comprises program code instructions for implementing the encoding method according to any one of the disclosed examples when executed by a processor.

Claims

CLAIMS 1. A decoding method comprising: reconstructing samples of a first component of a picture block; classifying at least one sample of the first component; and filtering the at least one sample of the first component based on the classification; wherein filtering the at least one sample comprises applying a filter on samples of at least two components, the filter being associated with the class to which the at least one sample belongs.

2. The method of claim 1, wherein classifying the at least one sample of the first component comprises classifying the at least one sample based on samples of at least two components.

3. The method of claim 1 or 2, wherein classifying the at least one sample of the first component comprises classifying the samples based on samples of three components.

4. The method of any of claims 1 to 3, wherein filtering the at least one sample of the first component based on the classification comprises computing an offset for the at least one sample of the first component and adding the offset to the at least one sample of the first component, wherein the offset is computed as a weighted sum of the samples of at least two components, the weights of the weighted sum being coefficients of the filter.

5. The method of claim 4, wherein a sum of filter coefficients that apply to the first component is equal to one.

6. The method of claim 5, wherein a sum of filter coefficients that apply to another component different from the first component is equal to zero.

7. An encoding method comprising: reconstructing samples of a first component of a picture block; classifying at least one sample of the first component; and filtering the at least one sample of the first component based on the classification;wherein filtering the at least one sample comprises applying a filter on samples of at least two components, the filter being associated with the class to which the at least one sample belongs.

8. The method of claim 7, wherein classifying the at least one sample of the first component comprises classifying the at least one sample based on samples of at least two components.

9. The method of claim 7 or 8, wherein classifying the at least one sample of the first component comprises classifying the samples based on samples of three components.

10. The method of any of claims 7 to 9, wherein filtering the at least one sample of the first component based on the classification comprises computing an offset for the at least one sample of the first component and adding the offset to the at least one sample of the first component, wherein the offset is computed as a weighted sum of the samples of at least two components, the weights of the weighted sum being coefficients of the filter.

11. The method of claim 10, wherein a sum of filter coefficients that apply to the first component is equal to one.

12. The method of claim 11, wherein a sum of filter coefficients that apply to another component different from the first component is equal to zero.

13. A decoding apparatus comprising one or more processors and at least one memory coupled to said one or more processors, wherein said one or more processors are configured to perform the method of any one of claims 1-6.

14. An encoding apparatus comprising one or more processors and at least one memory coupled to said one or more processors, wherein said one or more processors are configured to perform the method of any one of claims 7-12.

15. A computer program comprising program code instructions for implementing the method according to any one of claims 1-6 when executed by a processor.

16. A computer readable storage medium having stored thereon instructions for implementingthe method of any one of claims 7-12.

Citation Information

Patent Citations

  • Adaptive loop filtering for chroma components

    US20130101018A1

  • Method and apparatus for filtering

    US20210266604A1

  • Method and device for video encoding and decoding and storage medium

    US20230120657A1

  • Method and apparatus of cross-component adaptive loop filtering for video coding

    WO2021021590A1

  • Advanced bilateral filter in video coding

    WO2023274370A1