Encoding and decoding methods using multi-criterion classification for adaptive filtering and corresponding apparatuses

By employing a multi-criterion classification method to classify reconstructed video samples and filter them accordingly, the proposed approach addresses the limitations of traditional adaptive filtering in image and video coding, resulting in improved artifact removal and video quality.

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

Patent Information

Application Number
PCT/EP2024/074732
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 image and video coding schemes struggle to effectively filter reconstructed video samples to remove coding artifacts, particularly due to the limitations of traditional adaptive filtering methods which lack efficient classification mechanisms.

Method used

The proposed method involves classifying reconstructed samples of a picture block using a multi-criterion classification approach, which combines gradient-based, band index, residue-based, and variance-based classification indices, and then filtering the samples based on this classification.

Benefits of technology

This method enhances the filtering process by tailoring filters to specific sample classes, leading to improved removal of coding artifacts and enhanced video quality.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure EP2024074732_20032025_PF_FP_ABST
    Figure EP2024074732_20032025_PF_FP_ABST
Patent Text Reader

Abstract

A decoding method is disclosed. Samples of a picture block are reconstructed (S100). At least one reconstructed sample is classified (S102). The at least one reconstructed sample is filtered (S104) based on the classification. The classification is based on a linear combination of at least two values selected among a gradient-based value, a band index, a residue-based classification index and a variance-based classification index.
Need to check novelty before this filing date? Find Prior Art

Description

[0001]ENCODING AND DECODING METHODS USING MULTI-CRITERION CLASSIFICATION FOR ADAPTIVE FILTERING AND CORRESPONDING APPARATUSES CROSS REFERENCE TO RELATED APPLICATIONS This application claims the benefit of European Application No. 23306505.1, 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 encoding and decoding 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, reconstructed samples of a picture block are filtered. In an example, the filtering comprises classifying a sample; and filtering the sample based on the classification. In an example, the classification is based on a linear combination of at least two values selected among a gradient-based value, a band index, a residue-based classification index and a variance-based classification index. 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 depicts diamond shape filters for Luma (left) and Chroma (right) ; FIGs 6-23 illustrate classifications based on a plurality of criteria according to various examples; and FIG.24 depicts a flowchart of a decoding method according to an example. 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. 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). 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.5, ALF may use 7x7 diamond-shaped filters for Luma (left side of FIG.5) and 5x5 diamond-shaped filters Chroma (right side of FIG.5). ALF filters may be DC-neutral, i.e. the central coefficient (the hatched pixel on FIG. 5) 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 ^േ ^^^,േ ^^^^ associated with the ^^-th coefficient ^^^. In a non-linear implementation of ALF, Equation (1) becomes: ேିଶ^ത^^ ^^, ^^^ ൌ ^^^ ^^, ^^^ ^ ^^ ^^^ൈ ^ ^^^ା^ ^^^ି^൩ (3) where : ^^^ାൌ min൫ ^^^, max൫െ ^^^, ^^^ ^^ ^ ^^^, ^^ ^ ^^^^ െ ^^^ ^^, ^^^൯൯ ^^ି^^^ ^^ ^^ ^^ ^^ ^ ^^^(4)^^^being a index ^^^. The clipping parameter ^^^may be derived as follows: ^^^ൌ ^ 2^^ when ^^^ ൌ 0otherwise(5)where ^^ ^^ denotes the ^^ can be 0, 1, 2 or 3. ^ALF filter coefficients and, if applicable, clipping 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, ^^^| ൌ ^^^ ^^^ െ ^^^ ^^ െ 1^ െ ^^^ ^^ ^ Based on the diagonal gradients ^^ௗ^and ^^ௗ^, are calculated as: ^ାହ^ାହ^^^ൌ ^ ^ ^^^,^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. In a third step (step 3), if / when ^^^^,௩^௫^ ^^ଶൈ ^^^^,௩^^, ^^ is set to 2 (block is categorized as “strong horizontal / vertical”); ^^ 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 ^^ is calculated as: ^ାହ^ାହ^^ ൌ ^ ^ ^ ൫ ^ ^ The activity value ^^ thequantized value is denoted as ^^^.Finally, 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 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 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- 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 may be 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) In addition to the Laplacian classifier and to the band-based classifier, a new classifier may be used that applies to the residual samples. The sum of absolute values of residual samples in a neighboring window may be calculated, and the class index may be derived as follows : classIdx = sum >> (sample bit depth - 2) (7) The value of classIdx is in the range of 0 to 24, like the previous two classifiers. In another example, the classifiers of the fixed filters are extended. Firstly, for at least one (e.g. for each) 2x2 block, the mean value of a surrounding window is calculated. Then, for one (e.g. for each) sample of this window, the difference between the sample value and the mean value is calculated. A scaling factor may be determined based on the activity value derived from a Laplacian classifier. The square root of the sum of the squared differences (e.g. the variance) may be further quantized to ^^ᇱby a scaling factor. The value of ^^′ is an integer between 0 and 7, inclusively. With ^^ ∈ ^0,1^, let ^^^denote the classifier from the classifier of ^^-th fixed filter in ECM-8.0. Then the proposed class index ^^^ᇱmay be derived as ^^^ᇱൌ ^^ᇱൈ 896 ^ ^^^(8) A variance-based classification for in-loop filtering may be used, namely for Bilateral filtering (BIF) and Adaptive loop filtering (ALF). For BIF, the variance of a TU (Transform Unit) may be utilized to identify a texture strength. More filter strengths are introduced into BIF. The filtering strength is determined by the variance. For ALF, each classification unit may be classified into 2 levels of texture strength based on variance and boundary position jointly. Then, the texture strength levels are further combined with the existing classifiers to output the final classification results. Adaptive filters, such as SAO and ALF, are determined at encoder-side by optimizing a rate- distortion criterion. Those filters are transmitted along with the bitstream, then decoded and used at decoder side. A significant part of the gains provided by ALF on Luma is due to a further local adaptation achieved by samples classification, i.e. samples sharing the same local features are filtered with the same specific filter. This enables the design of efficiently tailored filters, like, for instance, if / when the classification is based on gradients, non-separable 2D directional filters that remove artifacts in a given direction. Other kinds of classification have been proposed: e.g., based on color or component bands, based on residue energy, based on the variance of the reconstructed samples. Samples classifications thus rely on one or a few criteria / functions. Then filter parameters (e.g. coefficients and possibly clipping indices) are associated with each class Id. In contrast, a method for decoding is disclosed below that makes it possible to classify samples in a generic way, so that the filter optimization be as efficient as possible. To this end, multi- criterion classifications for (e.g. signaled) adaptive filtering may be used that comprise a novel combination of classification criteria / functions. Several criteria may be used such as gradient- based or Sobel-based features, e.g. directionality and activity, mono-component or multi- component bands, a local characterization of residual samples, locally computed variance of reconstructed samples. In the following, ^^ is considered to be the index denoting a local directionality value, and ^^ to be a quantized activity value. Let also ^^ denote a band index, ^^^denote an index corresponding to a residue-based classification (e.g. sub-classification), and let ^^௩denote an index corresponding to variance-based classification (e.g. sub-classification). As mentioned previously, various criteria / functions may be used for the classification such as for example the directionality, the activity, the bands, the residues, the variance of reconstructed samples. The directionality can be computed indifferently based on local gradients as disclosed previously, or based on any gradient approximation, such as a Sobel operator. Directionality is determined based on the computation of local signal variations, in one or several components. In one example, three local directionalities are defined, e.g. Horizontal / vertical, Diagonal, ‘Texture’, that is neither diagonal nor horizontal nor vertical. Table 1 provides a mapping example for D values depending on the directionality locally computed. Table 1: Three-directionality classification. Directionality Value Texture 0 Horizontal / vertical 1 Diagonal 2 In another example, five local directionalities are defined, e.g. Strong horizontal / vertical, Weak horizontal / vertical, Strong diagonal, Weak diagonal, and Texture. Table 2 provides a mapping example for D values depending on the directionality locally computed. Table 2: Five-directionality classification. Directionality Value Texture 0 Weak horizontal / vertical 1 Strong horizontal / vertical 2 Weak diagonal 3 Strong diagonal 4 Like directionality, activity can be computed indifferently based on local gradients or based on any gradient approximation, such as a Sobel operator. Activity is determined based on the computation of local signal variations, in one or several components. In the following, the classification (e.g. sub-classification) based on bands relies on the definition of bands in one or more components, that is: Luma bands, Cb bands, Cr bands, Chroma Cb+Cr bands, and Luma+Cb / Cr bands, or YCbCr bands. The residue classification (e.g. sub-classification) relies on a local activity measure. It can be derived from the L1 norm of the residues in a vicinity of the current sample as described previously. In another variant, it can be derived from the local residue energy, that is: the sum of squared residues. Classification based on reconstructed variance can be derived from a quantized version of the local variance of reconstructed samples values. According to the present principles, the classification for adaptive filtering is based on various combinations of classification criteria disclosed above, such as directionality, activity, bands, residues, and variance of reconstructed samples. In the following, “reconstructed samples” can refer indifferently to the sum of prediction and residues or the sum of prediction and residues, filtered by one or a sequence of in-loop or post-filters, such as DBF, SAO, CCSAO, and / or BIF. Also, the “gradients” used to determine directionality and activity can refer to the accurate computation of horizontal, vertical, and diagonal gradients, or, indifferently, to approximations thereof, such as the Sobel operator. FIG.24 depicts a flowchart of a decoding method according to an example. At S100, samples of a picture block are reconstructed. 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 (possibly filtered by the first filters) is classified. The classification is based on a linear combination of at least two values (e.g. at least two values associated with or computed for the at least one reconstructed sample) selected among a gradient-based value, a band index, a residue-based classification index and a variance-based classification index according to any one of the examples disclosed with respect to FIGs 6-23. The classification associates with each sample a class or an index (e.g. a class index) denoted C. At S104, the at least one (e.g. each) reconstructed sample is filtered based on the classification, e.g. based on the index C. Filtering a sample based on the classification comprises applying a filter on samples, the filter being associated with the class to which the sample to be filtered belongs. 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. FIG 24 depicts flowcharts of a decoding method according to an example. However, since the encoding method comprises a decoding loop, the same steps S100 to S104 apply in an encoding method. In an example, the classification depends jointly on gradient-based features such as directionality and activity, and on bands, as depicted in FIG. 6. Several examples of such classification based on gradient-based features such as directionality and activity, and on bands are presented in the following. In an example, three different directionalities are defined, as described in Table 1, the activity is mapped to the range of 0 to 2, inclusively, and three bands are defined. In an example, the three bands are defined by two distinct bounds b0 and b1, with e.g. b1>b0. The first band consists of the range of values up till the first bound b0, the second band consists in the range of values between b0 and b1, and the third band consists in the range of values beyond b1. The resulting 27-level classification can be implemented with class indices being computed the following way: ^^ ൌ 9 ൈ ^^ ^ 3 ൈ ^^ ^ ^^ (9) In a variant, five different directionalities are defined, as described in Table 2, the activity is mapped to the range of 0 to 2, inclusively, and two bands are defined. The resulting 30-level classification can be implemented with class indices being computed the following way: ^^ ൌ 15 ൈ ^^ ^ 3 ൈ ^^ ^ ^^ (10) In a variant, three bands are defined, and only two levels of activity are considered, that is, it is mapped to the range of 0 to 1, inclusively. The resulting 30-level classification can be implemented with class indices being computed the following way: ^^ ൌ 10 ൈ ^^ ^ 2 ൈ ^^ ^ ^^ (11) In a variant, five different directionalities are defined, as described in Table 2, the activity is mapped to the range of 0 to 2, inclusively, and three bands are defined. The resulting 45-level classification can be implemented using the same class index computation as in Equation (16). In another example, the classification depends jointly on directionality and on bands, as depicted in FIG.7. In an example, three different directionalities are defined, as described in Table 1, and eight bands are defined. The resulting 24-level classification can be implemented with class indices being computed the following way: ^^ ൌ 3 ൈ ^^ ^ ^^ (12) In a variant, five different directionalities are defined, as described in Table 2, and eight bands are defined. The resulting 40-level classification can be implemented with class indices being computed the following way: ^^ ൌ 5 ൈ ^^ ^ ^^ (13) In an example, the classification depends jointly on gradient-based features such as directionality and activity, and on residue classification (e.g. sub-classification), as depicted in FIG. 8. Several examples of such classification based on gradient-based features such as directionality and activity, and on residue are presented in the following. In an example, three different directionalities are defined, as described in Table 1, the activity is mapped to the range of 0 to 2, inclusively, and the residue classification (e.g. sub- classification) index is mapped to the range of 0 to 2, inclusively. The resulting 27-level classification can be implemented with class indices being computed the following way: ^^ ൌ 9 ൈ ^^^^ 3 ൈ ^^ ^ ^^ (14) In a variant, five different directionalities are defined, as described in Table 2, the activity is mapped to the range of 0 to 2, inclusively, and the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 1, inclusively. The resulting 30-level classification can be implemented with class indices being computed the following way: ^^ ൌ 15 ൈ ^^^ ^ 3 ൈ ^^ ^ ^^(15)In another variant, the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 2, inclusively, and only two levels of activity are considered, that is, it is mapped to the range of 0 to 1, inclusively. The resulting 30-level classification can be implemented with class indices being computed the following way: ^^ ൌ 10 ൈ ^^^^ 2 ൈ ^^ ^ ^^ (16) In a variant, five different directionalities are defined, as described in Table 2, the activity is mapped to the range of 0 to 2, inclusively, and the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 2, inclusively. The resulting 45-level classification can be implemented using the same class index computation as in Equation (20). In another example, the classification depends jointly on directionality and on residue classification, as depicted in FIG.9. Several examples are presented in the following. In an example, three different directionalities are defined, as described in Table 1, and the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 7, inclusively. The resulting 24-level classification can be implemented with class indices being computed the following way: ^^ ൌ 3 ൈ ^^^^ ^^ (17) In a variant, five different directionalities are defined, as described in Table 2, and the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 7, inclusively. The resulting 40-level classification can be implemented with class indices being computed the following way: ^^ ൌ 5 ൈ ^^^^ ^^ (18) In an example, the classification depends both on gradient-based features such as directionality and activity, and on the local variance of reconstructed samples, as depicted in FIG.10. Several examples are presented in the following wherein the classification is based on gradient-based features such as directionality and activity, and on the local variance of reconstructed samples. In an example, three different directionalities are defined, as described in Table 1, the activity is mapped to the range of 0 to 2, inclusively, and the quantized variance is mapped to the range of 0 to 2, inclusively. The resulting 27-level classification can be implemented with class indices being computed the following way: ^^ ൌ 9 ൈ ^^௩^ 3 ൈ ^^ ^ ^^ (19) In a variant, five different directionalities are defined, as described in Table 2, the activity is mapped to the range of 0 to 2, inclusively, and the quantized variance is mapped to the range of 0 to 1, inclusively. The resulting 30-level classification can be implemented with class indices being computed the following way: ^^ ൌ 15 ൈ ^^௩^ 3 ൈ ^^ ^ ^^ (20) In another variant, the quantized variance is mapped to the range of 0 to 2, inclusively, and only two levels of activity are considered, that is, activity is mapped to the range of 0 to 1, inclusively. The resulting 30-level classification can be implemented with class indices being computed the following way: ^^ ൌ 10 ൈ ^^௩^ 2 ൈ ^^ ^ ^^ (21) In a variant, five different directionalities are defined, as described in Table 2, the activity is mapped to the range of 0 to 2, inclusively, and the quantized variance is mapped to the range of 0 to 2, inclusively. The resulting 45-level classification can be implemented using the same class index computation as in Equation (25). In an example, the classification depends both on directionality and on the local variance of reconstructed samples, as depicted in FIG.11. Several examples are presented in the following. In an example, three different directionalities are defined, as described in Table 1, and the quantized variance is mapped to the range of 0 to 1, inclusively. The resulting 6-level classification can be implemented with class indices being computed the following way: ^^ ൌ 3 ൈ ^^௩^ ^^ (22) or alternatively: ^^ ൌ 2 ൈ ^^ ^ ^^௩(23) In a variant, three different directionalities are defined, as described in Table 1, and the quantized variance is mapped to the range of 0 to 2, inclusively. The resulting 9-level classification can be implemented using the same class index computation as in Equation (28) or alternatively: ^^ ൌ 3 ൈ ^^ ^ ^^௩(24) In a variant, five different directionalities are defined, as described in Table 2, and the quantized variance is mapped to the range of 0 to 1, inclusively. The resulting 10-level classification can be implemented with class indices being computed the following way: ^^ ൌ 5 ൈ ^^௩^ ^^ (25) or alternatively, using the same class index computation as in Equation (29). In a variant, three different directionalities are defined, as described in Table 1, and the quantized variance is mapped to the range of 0 to 3, inclusively. The resulting 12-level classification can be implemented using the same class index computation as in Equation (28) or alternatively: ^^ ൌ 4 ൈ ^^ ^ ^^௩(26) In a variant, three different directionalities are defined, as described in Table 1, and the quantized variance is mapped to the range of 0 to 4, inclusively. The resulting 15-level classification can be implemented using the same class index computation as in Equation (28) or alternatively: ^^ ൌ 5 ൈ ^^ ^ ^^௩(27)In another variant, five different directionalities are defined, as described in Table 2, and the quantized variance is mapped to the range of 0 to 2, inclusively. The resulting 15-level classification can be implemented using the same class index computation as in Equation (31), or, alternatively, using the same class index computation as in Equation (30). In a variant, five different directionalities are defined, as described in Table 2, and the quantized variance is mapped to the range of 0 to 3, inclusively. The resulting 20-level classification can be implemented using the same class index computation as in Equation (31), or, alternatively, using the same class index computation as in Equation (32). In a variant, three different directionalities are defined, as described in Table 1, and the quantized variance is mapped to the range of 0 to 7, inclusively. The resulting 24-level classification can be implemented with class indices being computed the following way: ^^ ൌ 3 ൈ ^^௩^ ^^ (28) In a variant, five different directionalities are defined, as described in Table 2, and the quantized variance is mapped to the range of 0 to 4, inclusively. The resulting 25-level classification can be implemented using the same class index computation as in Equation (31), or, alternatively, using the same class index computation as in Equation (33). In a variant, five different directionalities are defined, as described in Table 2, and the quantized variance is mapped to the range of 0 to 7, inclusively. The resulting 40-level classification can be implemented with class indices being computed the following way: ^^ ൌ 5 ൈ ^^௩^ ^^ (29) In another example, the classification depends both on the bands and on residue classification, as depicted in FIG. 12. Several examples are presented in the following wherein the classification is based on bands and on residue classification. In an example, eight bands are defined, and the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 2, inclusively. The resulting 24-level classification can be implemented with class indices being computed the following way: ^^ ൌ 8 ൈ ^^^^ ^^ (30) In a variant, five bands are defined, and the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 4, inclusively. The resulting 25-level classification can be implemented with class indices being computed the following way: ^^ ൌ 5 ൈ ^^^^ ^^ (31) In a variant, eight bands are defined, and the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 3, inclusively. The resulting 32-level classification can be implemented using the same class index computation as in Equation (36). In a variant, eight bands are defined, and the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 4, inclusively. The resulting 40-level classification can be implemented using the same class index computation as in Equation (36). In an example, the classification depends both on the definition of bands and on the local variance of reconstructed samples, as depicted in FIG. 13. Several examples are presented in the following. In an example, eight bands are defined, and the quantized variance is mapped to the range of 0 to 2, inclusively. The resulting 24-level classification can be implemented with class indices being computed the following way: ^^ ൌ 8 ൈ ^^௩^ ^^ (32) In a variant, five bands are defined, and the quantized variance is mapped to the range of 0 to 4, inclusively. The resulting 25-level classification can be implemented with class indices being computed the following way: ^^ ൌ 5 ൈ ^^௩^ ^^ (33) In a variant, eight bands are defined, and the quantized variance is mapped to the range of 0 to 3, inclusively. The resulting 32-level classification can be implemented using the same class index computation as in Equation (38). In a variant, eight bands are defined, and the quantized variance is mapped to the range of 0 to 4, inclusively. The resulting 40-level classification can be implemented using the same class index computation as in Equation (38). In an example, the classification depends on residue classification and on the local variance of reconstructed samples, as depicted in FIG.14. Several examples are presented in the following wherein the classification is based on residue classification and on the local variance of reconstructed samples. In an example, the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 3, inclusively, and the quantized variance is mapped to the range of 0 to 3, inclusively. The resulting 16-level classification can be implemented with class indices being computed the following way: ^^ ൌ 4 ൈ ^^^^ ^^௩(34) In a variant, the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 4, inclusively, and the quantized variance is mapped to the range of 0 to 4, inclusively. The resulting 25-level classification can be implemented with class indices being computed the following way: ^^ ൌ 5 ൈ ^^^^ ^^௩(35) In a variant, the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 5, inclusively, and the quantized variance is mapped to the range of 0 to 5, inclusively. The resulting 36-level classification can be implemented with class indices being computed the following way: ^^ ൌ 6 ൈ ^^^^ ^^௩(36) In an example, the classification depends jointly on gradient-based features such as directionality and activity, on bands, and on residue classification, as depicted in FIG. 15. Several examples are presented in the following. In an example, three different directionalities are defined, as described in Table 1, the activity is mapped to the range of 0 to 1, inclusively, two bands are defined, and the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 1, inclusively. The resulting 24-level classification can be implemented with class indices being computed the following way: ^^ ൌ 12 ൈ ^^^^ 6 ൈ ^^ ^ 2 ൈ ^^ ^ ^^ (37) In a variant, three different directionalities are defined, as described in Table 1, the activity is mapped to the range of 0 to 2, inclusively, two bands are defined, and the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 1, inclusively. The resulting 36- level classification can be implemented with class indices being computed the following way: ^^ ൌ 18 ൈ ^^^^ 9 ൈ ^^ ^ 3 ൈ ^^ ^ ^^ (38) In another variant, three different directionalities are defined, as described in Table 1, the activity is mapped to the range of 0 to 1, inclusively, three bands are defined, and the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 1, inclusively. The resulting 36-level classification can be implemented with class indices being computed the following way: ^^ ൌ 18 ൈ ^^^^ 6 ൈ ^^ ^ 2 ൈ ^^ ^ ^^ (39) In yet another variant, three different directionalities are defined, as described in Table 1, the activity is mapped to the range of 0 to 1, inclusively, two bands are defined, and the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 2, inclusively. The resulting 36-level classification can be implemented using the same class index computation as in Equation (43). In a variant, three different directionalities are defined, as described in Table 1, the activity is mapped to the range of 0 to 2, inclusively, three bands are defined, and the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 1, inclusively. The resulting 54- level classification can be implemented with class indices being computed the following way: ^^ ൌ 27 ൈ ^^^^ 9 ൈ ^^ ^ 3 ൈ ^^ ^ ^^ (40) In another variant, three different directionalities are defined, as described in Table 1, the activity is mapped to the range of 0 to 2, inclusively, two bands are defined, and the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 2, inclusively. The resulting 54-level classification can be implemented using the same class index computation as in Equation (44). In an example, the classification depends jointly on directionality, bands, and residue classification, as depicted in FIG.16. Several examples are presented in the following. In an example, five different directionalities are defined, as described in Table 2, four bands are defined, and the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 1, inclusively. The resulting 40-level classification can be implemented with class indices being computed the following way: ^^ ൌ 20 ൈ ^^^^ 5 ൈ ^^ ^ ^^ (41) In an example, the classification depends jointly on the definition of bands, on residue classification, and on the local variance of reconstructed samples, as depicted in FIG. 17. Several examples are presented in the following. In an example, four bands are defined, the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 1, inclusively, and the quantized variance is mapped to the range of 0 to 1, inclusively. The resulting 16-level classification can be implemented with class indices being computed the following way: ^^ ൌ 8 ൈ ^^௩ ^ 4 ൈ ^^^ ^ ^^(42)In a variant, four bands are defined, the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 2, inclusively, and the quantized variance is mapped to the range of 0 to 1, inclusively. The resulting 24-level classification can be implemented with class indices being computed the following way: ^^ ൌ 12 ൈ ^^௩^ 4 ൈ ^^^^ ^^ (43) In another variant, four bands are defined, the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 1, inclusively, and the quantized variance is mapped to the range of 0 to 2, inclusively. The resulting 24-level classification can be implemented using the same class index computation as in Equation (48). In a variant, four bands are defined, the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 2, inclusively, and the quantized variance is mapped to the range of 0 to 2, inclusively. The resulting 36-level classification can be implemented using the same class index computation as in Equation (49). In an example, the classification depends jointly on gradient-based features such as directionality and activity, on residue classification, and on the local variance of reconstructed samples, as depicted in FIG.18. Several examples are presented in the following. In an example, three different directionalities are defined, as described in Table 1, the activity is mapped to the range of 0 to 1, inclusively, the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 1, inclusively, and the quantized variance is mapped to the range of 0 to 1, inclusively. The resulting 24-level classification can be implemented with class indices being computed the following way: ^^ ൌ 12 ൈ ^^௩^ 6 ൈ ^^^^ 2 ൈ ^^ ^ ^^ (44) In a variant, three different directionalities are defined, as described in Table 1, the activity is mapped to the range of 0 to 2, inclusively, the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 1, inclusively, and the quantized variance is mapped to the range of 0 to 1, inclusively. The resulting 36-level classification can be implemented with class indices being computed the following way: ^^ ൌ 18 ൈ ^^௩^ 9 ൈ ^^^^ 3 ൈ ^^ ^ ^^ (45) In another variant, three different directionalities are defined, as described in Table 1, the activity is mapped to the range of 0 to 1, inclusively, the residue classification (e.g. sub- classification) index is mapped to the range of 0 to 1, inclusively, and the quantized variance is mapped to the range of 0 to 2, inclusively. The resulting 36-level classification can be implemented using the same class index computation as in Equation (50). In yet another variant, three different directionalities are defined, as described in Table 1, the activity is mapped to the range of 0 to 1, inclusively, the residue classification (e.g. sub- classification) index is mapped to the range of 0 to 2, inclusively, and the quantized variance is mapped to the range of 0 to 1, inclusively. The resulting 36-level classification can be implemented with class indices being computed the following way: ^^ ൌ 18 ൈ ^^௩^ 6 ൈ ^^^^ 2 ൈ ^^ ^ ^^ (46) In a variant, three different directionalities are defined, as described in Table 1, the activity is mapped to the range of 0 to 2, inclusively, and the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 2, inclusively, and the quantized variance is mapped to the range of 0 to 1, inclusively. The resulting 54-level classification can be implemented with class indices being computed the following way: ^^ ൌ 27 ൈ ^^௩^ 9 ൈ ^^^^ 3 ൈ ^^ ^ ^^ (47) In another variant, three different directionalities are defined, as described in Table 1, the activity is mapped to the range of 0 to 2, inclusively, the residue classification (e.g. sub- classification) index is mapped to the range of 0 to 1, inclusively, and the quantized variance is mapped to the range of 0 to 2, inclusively. The resulting 54-level classification can be implemented using the same class index computation as in Equation (51). In an example, the classification depends jointly on directionality, on residue classification, and on the local variance of reconstructed samples, as depicted in FIG. 19. Several examples are presented in the following. In a variant, five different directionalities are defined, as described in Table 2, the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 1, inclusively, and the quantized variance is mapped to the range of 0 to 1, inclusively. The resulting 20-level classification can be implemented with class indices being computed the following way: ^^ ൌ 10 ൈ ^^௩^ 5 ൈ ^^^^ ^^ (48) In a variant, five different directionalities are defined, as described in Table 2, the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 2, inclusively, and the quantized variance is mapped to the range of 0 to 1, inclusively. The resulting 30-level classification can be implemented with class indices being computed the following way: ^^ ൌ 15 ൈ ^^௩^ 5 ൈ ^^^^ ^^ (49) In another variant, five different directionalities are defined, as described in Table 2, the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 1, inclusively, and the quantized variance is mapped to the range of 0 to 2, inclusively. The resulting 30-level classification can be implemented using the same class index computation as in Equation (54). In a variant, five different directionalities are defined, as described in Table 2, the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 2, inclusively, and the quantized variance is mapped to the range of 0 to 2, inclusively. The resulting 45-level classification can be implemented using the same class index computation as in Equation (55). In an example, the classification depends jointly on gradient-based features such as directionality and activity, on bands, and on the local variance of reconstructed samples, as depicted in FIG.20. Several examples are presented in the following. In an example, three different directionalities are defined, as described in Table 1, the activity is mapped to the range of 0 to 1, inclusively, two bands are defined, and the quantized variance is mapped to the range of 0 to 1, inclusively. The resulting 24-level classification can be implemented with class indices being computed the following way: ^^ ൌ 12 ൈ ^^௩^ 6 ൈ ^^ ^ 2 ൈ ^^ ^ ^^ (50) In a variant, three different directionalities are defined, as described in Table 1, the activity is mapped to the range of 0 to 2, inclusively, two bands are defined, and the quantized variance is mapped to the range of 0 to 1, inclusively. The resulting 36-level classification can be implemented with class indices being computed the following way: ^^ ൌ 18 ൈ ^^௩^ 9 ൈ ^^ ^ 3 ൈ ^^ ^ ^^ (51) In another variant, three different directionalities are defined, as described in Table 1, the activity is mapped to the range of 0 to 1, inclusively, three bands are defined, and the quantized variance is mapped to the range of 0 to 1, inclusively. The resulting 36-level classification can be implemented with class indices being computed the following way: ^^ ൌ 18 ൈ ^^௩^ 6 ൈ ^^ ^ 2 ൈ ^^ ^ ^^ (52) In yet another variant, three different directionalities are defined, as described in Table 1, the activity is mapped to the range of 0 to 1, inclusively, two bands are defined, and the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 2, inclusively. The resulting 36-level classification can be implemented using the same class index computation as in Equation (56). In a variant, three different directionalities are defined, as described in Table 1, the activity is mapped to the range of 0 to 2, inclusively, three bands are defined, and the quantized variance is mapped to the range of 0 to 1, inclusively. The resulting 54-level classification can be implemented with class indices being computed the following way: ^^ ൌ 27 ൈ ^^௩^ 9 ൈ ^^ ^ 3 ൈ ^^ ^ ^^ (53) In another variant, three different directionalities are defined, as described in Table 1, the activity is mapped to the range of 0 to 2, inclusively, two bands are defined, and the quantized variance is mapped to the range of 0 to 2, inclusively. The resulting 54-level classification can be implemented using the same class index computation as in Equation (57). In an embodiment, the classification depends jointly on directionality, bands, and on the local variance of reconstructed samples, as depicted in FIG. 21. Several examples are presented in the following. In a variant, five different directionalities are defined, as described in Table 2, four bands are defined, and the quantized variance is mapped to the range of 0 to 1, inclusively. The resulting 40-level classification can be implemented with class indices being computed the following way: ^^ ൌ 20 ൈ ^^௩^ 5 ൈ ^^ ^ ^^ (54) In an example, the classification depends jointly on gradient-based features such as directionality and activity, on bands, on residue classification, and on the local variance of reconstructed samples, as depicted in FIG.22. Several examples are presented in the following. In an example, three different directionalities are defined, as described in Table 1, the activity is mapped to the range of 0 to 1, inclusively, two bands are defined, the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 1, inclusively, and the quantized variance is mapped to the range of 0 to 1, inclusively. The resulting 48-level classification can be implemented with class indices being computed the following way: ^^ ൌ 24 ൈ ^^௩^ 12 ൈ ^^^^ 6 ൈ ^^ ^ 2 ൈ ^^ ^ ^^ (55) In an example, the classification depends jointly on directionality, bands, residue classification, and on the local variance of reconstructed samples, as depicted in FIG. 23. Several examples are presented in the following. In a variant, three different directionalities are defined, as described in Table 1, two bands are defined, the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 2, inclusively, and the quantized variance is mapped to the range of 0 to 1, inclusively. The resulting 48-level classification can be implemented with class indices being computed the following way: ^^ ൌ 18 ൈ ^^௩^ 6 ൈ ^^^^ 3 ൈ ^^ ^ ^^ (56) In another variant, three different directionalities are defined, as described in Table 1, two bands are defined, the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 1, inclusively, and the quantized variance is mapped to the range of 0 to 2, inclusively. The resulting 48-level classification can be implemented with class indices being computed the following way: ^^ ൌ 12 ൈ ^^௩^ 6 ൈ ^^^^ 3 ൈ ^^ ^ ^^ (57) In a variant, five different directionalities are defined, as described in Table 2, two bands are defined, the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 1, inclusively, and the quantized variance is mapped to the range of 0 to 1, inclusively. The resulting 40-level classification can be implemented with class indices being computed the following way: ^^ ൌ 20 ൈ ^^௩ ^ 10 ൈ ^^^ ^ 5 ൈ ^^ ^ ^^(58)In a variant, three different directionalities are defined, as described in Table 1, four bands are defined, the residue classification (e.g. sub-classification) index is mapped to the range of 0 to 1, inclusively, and the quantized variance is mapped to the range of 0 to 1, inclusively. The resulting 48-level classification can be implemented with class indices being computed the following way: ^^ ൌ 24 ൈ ^^௩^ 12 ൈ ^^^^ 3 ൈ ^^ ^ ^^ (59) 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 one of A and B”, 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 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 picture block; classifying at least one reconstructed sample; and filtering the at least one reconstructed sample based on the classification, wherein classifying the at least one sample is based on a linear combination of at least two values selected among a gradient-based value, a band index, a residue-based classification index and a variance-based classification index. An encoding method comprising: reconstructing samples of a picture block; classifying at least one reconstructed sample; and filtering the at least one reconstructed sample based on the classification, wherein classifying the at least one sample is based on a linear combination of at least two values selected among a gradient-based value, a band index, a residue-based classification index and a variance-based classification index. In an example, classifying the samples is based on a linear combination of at least one gradient-based value and a band index. In an example, classifying the samples is based on a linear combination of at least one gradient-based value and a residue-based classification index. In an example, classifying the samples is based on a linear combination of at least one gradient-based value and a variance-based classification index. In an example, classifying the samples is based on a linear combination of a directionality value and a variance-based classification index. In an example, classifying the samples is based on a value equal to N*Cv+D or M*D+Cv, wherein D is the directionality value and Cv is variance-based classification index, N and M are integer values. In an example, classifying the samples is based on a linear combination of at least one gradient-based value, a band index and a residue-based classification index. In an example, classifying the samples is based on a linear combination of at least one gradient-based value, a band index and a variance-based classification index. In an example, classifying the samples is based on a linear combination of at least one gradient-based value, a residue-based classification index and a variance-based classification index. In an example, classifying the samples is based on a linear combination of at least one gradient-based value, a band index, a residue-based classification index and a variance-based classification index. In an example, classifying the samples is based on a linear combination of a band index and a residue-based classification index. In an example, classifying the samples is based on a linear combination of a band index and a variance-based classification index. In an example, classifying the samples is based on a linear combination of a band index, a residue-based classification index and a variance-based classification index. In an example, classifying the samples is based on a linear combination of a residue-based classification index and a variance-based classification index. A decoding apparatus is disclosed that comprises 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 decoding method of any one of the disclosed examples. An encoding apparatus is disclosed that comprises 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 encoding method of any one of the disclosed examples. A computer program is disclosed that comprises program code instructions for implementing the decoding method of 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 of any one of the disclosed examples when executed by a processor.

Claims

CLAIMS 1. A decoding method comprising: reconstructing samples of a picture block; classifying at least one reconstructed sample; and filtering the at least one reconstructed sample based on the classification, wherein classifying the at least one sample is based on a linear combination of at least two values selected among a gradient-based value, a band index, a residue-based classification index and a variance-based classification index.

2. The method of claim 1, wherein classifying the samples is based on a linear combination of at least one gradient-based value and a band index.

3. The method of claim 1, wherein classifying the samples is based on a linear combination of at least one gradient-based value and a residue-based classification index.

4. The method of claim 1, wherein classifying the samples is based on a linear combination of at least one gradient-based value and a variance-based classification index.

5. The method of claim 4, wherein classifying the samples is based on a linear combination of a directionality value and a variance-based classification index.

6. The method of claim 5, wherein classifying the samples is based on a value equal to N*Cv+D or M*D+Cv, wherein D is the directionality value and Cv is variance-based classification index, N and M are integer values.

7. The method of claim 1, wherein classifying the samples is based on a linear combination of at least one gradient-based value, a band index and a residue-based classification index.

8. The method of claim 1, wherein classifying the samples is based on a linear combination of at least one gradient-based value, a band index and a variance-based classification index.

9. The method of claim 1, wherein classifying the samples is based on a linear combination of at least one gradient-based value, a residue-based classification index and a variance-based classification index.

10. The method of claim 1, wherein classifying the samples is based on a linear combination of at least one gradient-based value, a band index, a residue-based classification index and a variance-based classification index.

11. The method of claim 1, wherein classifying the samples is based on a linear combination of a band index and a residue-based classification index.

12. The method of claim 1, wherein classifying the samples is based on a linear combination of a band index and a variance-based classification index.

13. The method of claim 1, wherein classifying the samples is based on a linear combination of a band index, a residue-based classification index and a variance-based classification index.

14. The method of claim 1, wherein classifying the samples is based on a linear combination of a residue-based classification index and a variance-based classification index.

15. An encoding method comprising: reconstructing samples of a picture block; classifying at least one reconstructed sample; and filtering the at least one reconstructed sample based on the classification, wherein classifying the at least one sample is based on a linear combination of at least two values selected among a gradient-based value, a band index, a residue-based classification index and a variance-based classification index.

16. 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-14.

17. 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 claim 15.

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

19. A computer readable storage medium having stored thereon instructions for implementing the method of claim 15.

Citation Information

Patent Citations

  • Estimating attributes for the classification of adaptive loop filtering based on projection-slice theorem

    US11418792B2