Method and apparatus for encoding in response to a lagrangian rate-distortion cost for adaptive loop filtering modification
Patent Information
- Application Number
- CN202580026327.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-04-08
- Filing Date
- 2025-04-07
- Publication Date
- 2026-11-03
AI Technical Summary
Existing video coding techniques suffer from coding artifacts in intra/inter-frame prediction and transform coding, which are particularly difficult to reduce effectively at low and medium bit rates. Existing in-loop filters also have shortcomings in rate-distortion optimization.
By adjusting the Lagrange rate distortion cost, the adaptive loop filtering mode is optimized. By combining the deblocking filter, sample adaptive offset, and adaptive loop filter, the mean square error is reduced by using an adaptive filter. The filtering effect is optimized by using Wiener filtering and pre-trained filter coefficients.
It effectively reduces coding artifacts, improves the compression efficiency and quality of video coding, optimizes the rate-distortion performance of filters within the loop, and enhances the clarity of video reconstruction.
Smart Images

Figure CN123036839A_ABST
Abstract
Description
Cross-reference to related applications
[0001] This application claims the benefit of European patent application 24305567.0, filed on 8 April 2024, the entire contents of which are incorporated herein by reference. Technical Field
[0002] This embodiment generally relates to a method and apparatus for video coding in response to Lagrange rate distortion cost modified for adaptive loop filtering. Background Technology
[0003] To achieve high compression efficiency, image and video coding schemes typically employ prediction and transform to utilize spatial and temporal redundancy in video content. Generally, intra-frame or inter-frame prediction is used to leverage intra-frame or inter-frame image correlations, followed by transform, quantization, and entropy coding of the differences between the original and predicted blocks (often referred to as prediction error or prediction residual). To reconstruct the video, the compressed data is decoded by the inverse process corresponding to entropy coding, quantization, transform, and prediction. To reduce coding artifacts, in-loop filters (e.g., deblocking filters, SAO (Sample Adaptive Shift), ALF (Adaptive Loop Filter)) are applied to the reconstructed image. Summary of the Invention
[0004] Among various implementations, methods and apparatus for adjusting the Lagrange rate distortion cost for adaptive loop filtering are disclosed.
[0005] According to a first aspect, a video coding method is disclosed, comprising: determining a set of coding modes for encoding video image data based on a Lagrange rate-distortion cost obtained using Lagrange parameters; and encoding the video image data and related syntax in response to determining the set of coding modes. For example, the set of coding modes includes adaptive in-loop filtering modes, and the method further comprises determining an adaptive in-loop filtering mode based on a Lagrange rate-distortion cost obtained using modified Lagrange parameters for determining the adaptive in-loop filtering mode.
[0006] One or more embodiments also provide an apparatus for encoding video, comprising one or more processors and at least one memory coupled to the one or more processors, wherein the one or more processors are configured to perform any of the encoding methods according to the embodiments described herein.
[0007] One or more embodiments also provide a computer program including instructions that, when executed by one or more processors, cause the one or more processors to perform an encoding method according to any of the embodiments described herein. One or more embodiments of the invention also provide a computer-readable storage medium storing instructions thereon for encoding video according to the methods described herein.
[0008] One or more embodiments also provide a computer-readable storage medium storing video data generated according to the method described above. One or more embodiments also provide a method and apparatus for transmitting or receiving video data generated according to the method described herein. Attached Figure Description
[0009] Figure 1 A block diagram of a system that can implement various aspects of embodiments of the present invention is shown.
[0010] Figure 2 A block diagram illustrating an embodiment of a video encoder is shown.
[0011] Figure 3 A block diagram illustrating an embodiment of a video decoder is shown.
[0012] Figure 4 An example of an in-loop filter, such as in a VVC in-loop filtering method, is shown.
[0013] Figure 5 An embodiment of an enhanced in-loop filter based on an in-loop filtering method is shown.
[0014] Figure 6 An example ALF filter shape is shown.
[0015] Figure 7 Another embodiment of an enhanced in-loop filter based on an in-loop filtering method is shown.
[0016] Figure 8 An exemplary filter shape is shown for a filter that uses residual samples as additional input and is signaled.
[0017] Figure 9 An RDO method for determining whether to notify ALF syntax values via signaling is shown according to an embodiment.
[0018] Figure 10 This illustrates a video coding method that modifies the Lagrange multiplier for the entire ALF RDO, according to an embodiment.
[0019] Figure 11 , Figure 12 , Figure 13 and Figure 14This illustrates a video coding method for modifying the Lagrange multiplier according to one or more steps of ALF RDO, based on various embodiments.
[0020] Figure 15 The following are video coding methods for modifying the Lagrange multiplier for ALF RDO, according to various embodiments, which depend on some constraints. Detailed Implementation
[0021] Figure 1 A block diagram illustrating examples of systems in which various aspects and embodiments can be implemented is shown. System 100 can be implemented as a device including the various components described below and configured to perform one or more 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 can be implemented individually or in combination 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, system 100 is communicatively coupled to other systems or other electronic devices via, for example, a communication bus or through dedicated input and / or output ports. In various embodiments, system 100 is configured to implement one or more aspects described in this application.
[0022] System 100 includes at least one processor 110 configured to execute instructions loaded thereon for implementing various aspects, such as those described in this application. Processor 110 may include embedded memory, input / output interfaces, and various other circuitry known in the art. 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 memory, disk drives, and / or optical disk drives. As a non-limiting example, storage device 140 may include internal storage devices, attached storage devices, and / or network-accessible storage devices.
[0023] System 100 includes an encoder / decoder module 130 configured to, for example, process data to provide encoded or decoded video, and the encoder / decoder module 130 may include its own processor and memory. The encoder / decoder module 130 represents a module that may be included in a device for performing encoding and / or decoding functions. As is known, a device may include one or both of the encoding and decoding modules. Alternatively, the encoder / decoder module 130 may be implemented as a separate element of system 100 or may be incorporated into processor 110 as a combination of hardware and software as known to those skilled in the art.
[0024] Program code to be loaded onto processor 110 or encoder / decoder 130 to execute 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. According to 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 execution of the processes described in this application. These stored items may include, but are not limited to, input video, decoded video or portions of decoded video, bitstreams, matrices, variables, and intermediate or final results from processing equations, formulas, operations, and operational logic.
[0025] In several embodiments, the memory within processor 110 and / or encoder / decoder module 130 is used to store instructions and provides working memory for processing required during encoding or decoding. However, in other embodiments, one or more of these functions are performed using memory external to the processing device (e.g., the processing device may be processor 110 or encoder / decoder module 130). The external memory may be memory 120 and / or storage device 140, such as volatile memory and / or non-volatile flash memory. In several embodiments, external non-volatile flash memory is used to store the television's operating system. In at least one embodiment, fast external volatile memory, such as RAM, is used as working memory for video encoding and decoding operations such as MPEG-2, HEVC, or VVC.
[0026] Input to the components of system 100 can be provided through various input devices (as shown in box 105). Such input devices include, but are not limited to, (i) an RF section that receives RF signals transmitted over the air, for example by a broadcaster, (ii) a composite input terminal, (iii) a USB input terminal, and / or (iv) an HDMI input terminal.
[0027] In various embodiments, the input device of block 105 has associated corresponding input processing elements known in the art. For example, the RF section may be associated with elements suitable for: (i) selecting a desired frequency (also known as selecting a signal, or limiting the signal band to a band), (ii) down-converting the selected signal, (iii) further band-limiting it to a narrower band to select, for example, a signal band that may be referred to as a channel in some embodiments, (iv) demodulating the down-converted and band-limited signal, (v) performing error correction, and (vi) demultiplexing to select a desired data packet stream. The RF section in various embodiments includes one or more elements to perform these functions, such as frequency selectors, signal selectors, band limiters, channel selectors, filters, downconverters, demodulators, error correctors, and demultiplexers. The RF section may include tuners that perform various of these functions, including, for example, down-converting received signals to a lower frequency (e.g., intermediate frequency or near-baseband frequency) or baseband. In one set-top box embodiment, the RF section and its associated input processing elements receive RF signals transmitted via a wired (e.g., cable) medium and perform frequency selection by filtering, down-converting, and re-filtering 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 that perform similar or different functions. Adding elements may include inserting elements between existing elements, such as inserting amplifiers and analog-to-digital converters. In various embodiments, the RF section includes an antenna.
[0028] Additionally, the USB and / or HDMI terminals may include corresponding interface processors for connecting system 100 to other electronic devices via USB and / or HDMI connections. It should be understood that various aspects of input processing (e.g., Reed-Solomon error correction) can be implemented as needed, for example, in a separate input processing IC or processor 110. Similarly, various aspects of USB or HDMI interface processing can be implemented as needed within a separate interface IC or within processor 110. The demodulated, error-corrected, and demultiplexed streams are provided to various processing elements (including, for example, processor 110 and encoder / decoder 130, which operates in conjunction with memory and storage elements) to process the data streams as needed for presentation on the output device.
[0029] Various components of system 100 can be housed within an integrated housing. Within the integrated housing, the various components can be interconnected and transmit data therebetween using suitable connection means 115 (e.g., internal buses (including I2C buses), wiring, and printed circuit boards known in the art).
[0030] System 100 includes a communication interface 150 that enables communication with other devices via a communication channel 190. The communication interface 150 may include, but is not limited to, a transceiver configured to send and receive data via the communication channel 190. The communication interface 150 may include, but is not limited to, a modem or network interface card (NIC), and the communication channel 190 may be implemented, for example, within a wired and / or wireless medium.
[0031] In various embodiments, a Wi-Fi network (such as IEEE 802.11) is used to stream data to system 100. In these embodiments, the Wi-Fi signal is received via a communication channel 190 and a communication interface 150 suitable for Wi-Fi communication. The communication channel 190 in these embodiments is typically connected to an access point or router that provides access to external networks, including the Internet, to allow streaming applications and other over-the-top communications. Other embodiments use a set-top box to provide streaming data to system 100, transmitting data via an HDMI connection to input box 105. Still other embodiments use an RF connection to input box 105 to provide streaming data to system 100.
[0032] System 100 can provide output signals to various output devices, including a display 165, a speaker 175, and other peripheral devices 185. In various embodiments, the other peripheral devices 185 include one or more of a standalone DVR, a disc player, a stereo system, a lighting system, and other devices that provide output functionality based on system 100. In various embodiments, control signals are transmitted between system 100 and the display 165, speaker 175, or other peripheral devices 185 using signaling such as AV.Link, CEC, or other communication protocols that enable device-to-device control with or without user intervention. Output devices can be communicatively coupled to system 100 via dedicated connections through corresponding interfaces 160, 170, and 180. Alternatively, output devices can be connected to system 100 via communication interface 150 using communication channel 190. The display 165 and speaker 175 can be integrated into a single unit within an electronic device (e.g., a television) along with other components of system 100. In various embodiments, display interface 160 includes a display driver, such as a timing controller chip.
[0033] For example, if the RF portion of input 105 is part of a separate set-top box, then display 165 and speaker 175 may alternatively be separated from one or more other components. In various embodiments where display 165 and speaker 175 are external components, the output signal may be provided via a dedicated output connection, which may include, for example, an HDMI port, a USB port, or a COMP output.
[0034] Figure 2 An exemplary video encoder 200, such as a VVC (Various Video Coding) encoder, is shown. Figure 2 It can also show encoders that improve upon the VVC standard or encoders that employ VVC-like technology.
[0035] In this application, the terms "reconstruction" and "decoding" are used interchangeably, as are the terms "encoding" and "encoding," and the terms "image," "picture," and "frame" are used interchangeably. Typically, but not necessarily, the term "reconstruction" is used on the encoder side, while "decoding" is used on the decoder side.
[0036] Before being encoded, the video sequence may undergo pre-coding (201), for example, applying color transformations to the input color picture (e.g., a conversion from RGB 4:4:4 to YCbCr 4:2:0), or performing remapping of the input picture components to obtain a more compression-resistant signal distribution. Metadata may be associated with pre-processing and (e.g., for AVC, HEVC, and VVC standards, in the form of Supplemental Enhancement Information (SEI) messages) appended to the bitstream.
[0037] In encoder 200, the frame is encoded by encoder elements as described below. The frame to be encoded is divided into units, for example, CUs (202). Each unit is encoded using, for example, intra-frame or inter-frame modes. When a unit is encoded in intra-frame mode, intra-frame prediction (260) is performed. In inter-frame mode, motion estimation (275) and compensation (270) are performed. The encoder determines (205) which of the intra-frame or inter-frame modes to use to encode the unit, and indicates the intra-frame / inter-frame decision by, for example, a prediction mode flag. After prediction, prediction enhancement (285) is applied to the prediction block. For example, the prediction residual is calculated by subtracting (210) the prediction block from the original image block.
[0038] Then, the predicted residual is transformed (225) and quantized (230). The quantized transform coefficients, motion vectors, and other syntax elements are entropy encoded (245) to output a bitstream. The encoder can skip the transform and apply quantization directly to the untransformed residual signal. The encoder can bypass the transform and quantization, i.e., directly encode the residual without applying transform or quantization.
[0039] The encoder decodes the coded block to provide a reference for further prediction. The quantized transform coefficients are dequantized (240) and inverse transformed (250) to decode the prediction residual. The image block is reconstructed by combining the decoded prediction residual with the prediction block (255). An in-loop filter (265) is applied to the reconstructed image to perform filtering such as deblocking / SAO (Sampling Adaptive Offset) / ALF (Adaptive Loop Filter) to reduce coded artifacts. The filtered image is stored in a reference image buffer (280).
[0040] Figure 3 A block diagram of an exemplary video decoder 300 is shown. In decoder 300, the bitstream is decoded by decoder elements as described below. Video decoder 300 typically performs operations similar to... Figure 2 The encoding process described herein is the inverse of the decoding process. Encoder 200 typically also performs video decoding as part of the video data encoding.
[0041] Specifically, the input to the decoder includes a video bitstream, which can be generated by the video encoder 200. The bitstream is first entropy decoded (330) to obtain transform coefficients, motion vectors, and other encoded information. Frame segmentation information indicates how the frame is segmented. The decoder can therefore segment (335) the frame based on the decoded frame segmentation information. The transform coefficients are dequantized (340) and inverse transformed (350) to decode the prediction residuals. The image block is reconstructed by combining the decoded prediction residuals with the prediction block (355). The prediction block can be obtained from intra-frame prediction (360) or motion-compensated prediction (i.e., inter-frame prediction) (375) (370). After prediction, prediction enhancement (390) is applied to the prediction block. An in-loop filter (365) is applied to the reconstructed image. The filtered image is stored in a reference frame buffer (380). In fact, for a given frame, the contents of the reference frame buffer 380 on the decoder 300 side are the same as the contents of the reference frame buffer 280 on the encoder 200 side for the same frame.
[0042] The decoded image can undergo further post-decoding processing (385), such as inverse color transformation (e.g., conversion from YCbCr 4:2:0 to RGB 4:4:4) or inverse remapping of the remapping process performed in the pre-encoding process (201). The post-decoding process can utilize metadata derived in the pre-encoding process and signaled in the bitstream.
[0043] Recent advancements in video compression technology include various industry standards, reference software, and / or related documentation, such as the Enhanced Compression Model (ECM) developed by the JVET (Joint Video Exploration Team) group. The aim is to further improve upon existing VVC (Multi-Functional Video Coding) standards and VSEI specifications.
[0044] This article provides features associated with in-loop filtering.
[0045] Block-based intra / inter-frame prediction and transform coding (along with residual quantization) introduces various artifacts at low to medium bit rates. To reduce these artifacts, video coding standards (such as VVC) and state-of-the-art video coding solutions (such as ECM) implement in-loop filters (such as deblocking filter (DBF), bilateral filter (BIF), sample adaptive offset (SAO), and adaptive loop filter (ALF)).
[0046] The deblocking filter (DBF) is designed to smooth out discontinuities that may occur along block boundaries. The Sample Adaptive Offset (SAO) is designed to attenuate artifacts appearing around edges and to correct for local average intensity variations (e.g., slicing artifacts) using offsets notified by signaling in the bitstream. The Bilateral Filter (BIF) is designed to further denoise the reconstructed image to remove artifacts caused by quantization in the transform domain. The Adaptive Loop Filter (ALF) is determined as the optimal filter on the encoder side according to a rate-distortion criterion. The ALF filter is transmitted with the bitstream and then retrieved and used on the decoder side.
[0047] The VVC standard implements three types of in-loop filters: Deblocking Filter (DBF), Sample Adaptive Offset (SAO), and Adaptive Loop Filter (ALF). Figure 4 An example of an in-loop filter, such as in a VVC in-loop filtering method, is shown. As mentioned above, the deblocking filter aims to reduce block discontinuities, and the sample adaptive offset primarily aims to reduce artifacts caused by transform coefficient quantization. Adaptive loop filters and cross-component adaptive loop filters are adaptive filters capable of enhancing the reconstructed signal using, for example, Wiener filtering coding methods. If the local deblocking condition is met, the luma and chroma reconstructed samples located at block boundaries are first filtered using a deblocking filter (DBF). Then, based on the classification using a band classifier or edge classifier, a local offset is added using sample adaptive offset (SAO). Finally, an adaptive loop filter (ALF) and its variant, the cross-component adaptive loop filter (CCALF), are applied before storing the resulting sample values in the reference frame buffer.
[0048] Figure 5 An embodiment of an enhanced in-loop filter based on an in-loop filtering method is shown (e.g., implemented in ECM). In practice, additional in-loop filters (i.e., bilateral filtering (BIF) and cross-component sample adaptive offset (CCSAO)) are introduced into the enhanced compression model (ECM) software. Both are performed in the same in-loop filtering stage as SAO, and like SAO, use samples from the deblocked sample as input, such as... Figure 5As shown. The BIF offset is calculated based on a 5x5 rhombus, and the coefficients used are obtained from a pre-computed lookup table and depend on the QP and the difference between the values of neighboring samples and the sample to be filtered. BIF is processed independently and in a similar manner on the luminance and chrominance components. CCSAO is used to refine the reconstructed samples. Similar to SAO, CCSAO classifies the reconstructed samples into different categories, derives an offset for each category, and adds that offset to the reconstructed samples of that category. SAO uses a single component of the current sample as input, while CCSAO uses all three components to classify the current sample into different color bands. The SAO offset, BIF offset, and CCSAO offset are computed in parallel, added to the reconstructed samples, and jointly clipped, then ALF is performed, as follows. Figure 5 As shown.
[0049] This article provides features associated with ALF.
[0050] ALF can be based on adaptive filters. Adaptive filters can be applied to reduce the mean squared error (MSE) between the original and reconstructed samples. For example, an adaptive filter can be applied to reduce the MSE between the original and reconstructed samples using Wiener-based filtering. ALF can be a final post-filter applied to the Sample Adaptive Offset (SAO) output. ALF filter coefficients can be transmitted in the bitstream and decoded on the decoder side before being applied to the reconstructed samples. Pre-trained ALF filter coefficients can also be hard-coded on both the encoder and decoder sides.
[0051] ALF can include classification of non-overlapping sub-blocks (e.g., based on local sample gradients of the sub-blocks). For a class (e.g., each class), specific filters (e.g., different filters from the bitstream notified by signaling) can be applied. Based on the classification, geometric transformations of the filter coefficients within the filter shape (e.g., 90-degree rotation, diagonal flip, or vertical flip, etc.) can be applied.
[0052] Figure 6 An exemplary ALF filter shape is shown. One or more (e.g., two) filter shapes (e.g., 7×7 rhombus shape and / or 5×5 rhombus shape) can be used for both the luminance and chrominance components (e.g., 7×7 rhombus shape for the luminance component and / or 5×5 rhombus shape for the chrominance component, such as...). Figure 6 (As shown). Squares (e.g., each square) can correspond to a luminance or chrominance sample. The center square can represent the sample currently being filtered. To reduce signaling overhead and / or the number of multiplication operations, filter coefficients can use point symmetry. For example, as... Figure 6 As shown on the left, a 5×5 rhombus can be used for chromaticity components. (Example:) Figure 6As shown on the right, a 7×7 rhombus can be used for the luminance component.
[0053] Integer filter coefficients (e.g., each integer filter coefficient) c i It can be represented with n decimal places of precision. DC can represent the lowest frequency of a signal (e.g., the average value of the signal). DC neutrality can be maintained. For example, maintaining DC neutrality means that the filter will maintain the average value of the signal. To maintain DC neutrality, the sum of the coefficients of a filter can (e.g., must) equal 128 = 1 << n .
[0054] .
[0055] In one example, n can be equal to 7.
[0056] In equation (1), for a 7×7 filter shape, the number of coefficients N can be equal to 13. In equation (1), for a 5×5 filter shape, the number of coefficients N can be equal to 7.
[0057] This article provides features associated with linear filtering.
[0058] Filtered sample values By reconstructing the samples With the samples to be filtered It is obtained by weighted summation of the differences between the sample and its neighboring samples (e.g., due to point symmetry and DC neutrality):
[0059] in:
[0060] in and Is with the first i coefficients The corresponding coordinates of the reconstructed sample (e.g., point-symmetric).
[0061] This article provides features associated with nonlinear filtering.
[0062] If nonlinear ALF is enabled, equation (2) can be modified as follows:
[0063] in:
[0064] in It is a coefficient The limiting parameters. Can be based on limit index Determine. For example, the limiting parameter. The derivation can be performed as follows:
[0065] in This indicates the sample bit depth. In the example, It can be 0, 1, 2 or 3.
[0066] This article provides features associated with integer arithmetic in filtering.
[0067] Let NUM_BITS represent the coefficients used to filter the ALF filter. The number of bits is represented as a signed integer. The ALF filtering operation is implemented as follows:
[0068] in
[0069] and .
[0070] This paper provides features associated with online filter optimization and offline pre-training.
[0071] For example, by solving the Wiener-Hopf equation to minimize the MSE between the reconstructed sample and its original value, the ALF filter coefficients and clipping index can be determined on the encoder side. If the rate-distortion condition is satisfied, these coefficients, along with the corresponding clipping index (if applicable), can be encoded in the Adaptive Parameter Set (APS). In VVC, the ALF APS can contain a set of luma filters and up to eight chroma filters. VVC also allows the use of pre-trained (predefined) luma filters hard-coded on both the encoder and decoder sides.
[0072] This article provides features associated with brightness sub-block classification.
[0073] Sub-block level filter adaptation can be applied (e.g., only to lumen). Sub-blocks (e.g., each sub-block, such as 4×4) can be based on the directionality of the sub-blocks. and / or Laplace activity Classify them.
[0074] Activity value It can be mapped to the range of 0 to 4 (inclusive). The quantized value can be represented as... Luminance sub-blocks (e.g., each luminance sub-block) can be classified into a class. For example, a luminance sub-block can be classified into one of 25 classes represented by the following formula: .
[0075] A class (e.g., each class) can have assigned filters (e.g., each class has its own assigned filter). Therefore, the luminance ALF depends on a set of filters (i.e., multiple filters together with a mapping list), and each class in the classification is associated with a specific filter in the filter set. Classification may not be applied to chrominance.
[0076] Multiple pre-trained sets of luma filters can be available on both the encoder and decoder sides. The encoder can select whether to transmit the luma filter set used for optimization of the current slice / frame based on rate-distortion criteria.
[0077] This article provides features associated with geometric transformations.
[0078] Geometric transformations (e.g., rotation or diagonal flip and / or vertical flip) can be applied to filter coefficients (e.g., before filtering each luma sub-block). Geometric transformations can be applied, for example, depending on the sub-block gradient values. Geometric transformations can align the orientation of different blocks (e.g., to reduce the number of ALF classes). For example, applying a geometric transformation can allow sub-blocks with horizontal edges and sub-blocks with vertical edges to have the same orientation. .
[0079] This paper provides features associated with code tree block (CTB) level filter selection. Adaptive loop filtering can involve CTB-level filter adaptation (e.g., in addition to luma sub-block level classification).
[0080] The Luminance CTB can use the set of filters computed for the current slice. The Luminance CTB can also use the set of filters computed for an encoded slice (e.g., one of the filter sets). The Luminance CTB can also use a set of filters trained offline (e.g., from N offline trained filter sets, such as...). Within a luminance CTB (e.g., within each luminance CTB), the filters to be applied to a sub-block (e.g., each sub-block) (e.g., from a selected set of filters) can be determined based on the class C calculated for that block in equation (10).
[0081] Chroma can be adaptively applied using (e.g., using only) CTB-level filters. One or more (e.g., up to eight) filters can be used for the chroma components in a slice. Each CTB (e.g., each CTB) can select one of the filters.
[0082] The development of ALF may not have been standardized. This paper provides features associated with classifiers (e.g., new classifiers) and brightness-fixed filtering.
[0083] The classifier can be based on luminance bands. C0 can represent a traditional Laplace classifier. C1 can represent a luminance band-based classifier (e.g., a band classifier).
[0084] Figure 7 Another embodiment of an enhanced in-loop filter based on an in-loop filtering method is shown. One or more (e.g., three) different filter sets (e.g., F0, F1, and F2) can be used to filter luminance samples. Sets F0 and F1 may include fixed filters (e.g., filters with coefficients trained on classifiers C0 and C1). The filter coefficients in set F2 can be notified by signaling. In one example, and This can represent intermediate sample values filtered by F0 and F1 respectively. Filter F2 can be applied to... , The final filtered sample is derived by combining it with neighboring samples. For example, the final filtered sample can be represented as:
[0085] in Indicates adjacent samples and The difference in the limiting values between them express The amplitude difference between the current sample value and the current sample value.
[0086] F0 and F1 can be pre-learned filters trained on classifiers C0 and C1, respectively. F2 can be notified via signaling. F2 can use either classifier C0 or C1. The filter coefficients can be notified via signaling. .
[0087] Figure 8 An exemplary filter shape for filter F2, notified by signaling, is shown. The filter shape and size can be varied. Samples prior to deblocking can be considered in the filter notified by signaling, such as... Figure 8 As shown.
[0088] The filter inputs notified by signaling can be diversified. For example, the filter inputs can be diversified using juxtaposed samples from a reference image, reconstructed samples before DBF, or residual samples. A residual L1-based classifier can be used.
[0089] This paper provides features associated with classification-based fixed-brightness filtering.
[0090] Two Laplacian-based classifiers (one classifier for a fixed-filter classifier) can be applied to a 2x2 block. Within each classifier, activity and orientation values are derived based on the vertical, horizontal, and diagonal gradients using a window surrounding each 2x2 block. For each 2x2 block, the mean of the surrounding window is computed. Then, for each sample within that window, the difference between the sample value and the mean is calculated. A scaling factor is determined based on the activity values derived from the Laplacian classifier. The square root of the sum of squared differences is further quantized using the scaling factor. . The value is an integer between 0 and 7 (inclusive). Let This represents the class index provided by the 896-class Laplacian classifier with the i-th fixed filter, based on activity and directionality values. The final class index is derived as follows: :
[0091] By using the two class indices derived and Choose two double-rhombus fixed filters from two sets of fixed filters. The first fixed filter... The sample values applied before the DBF and ALF inputs are used, with a 13x13 rhombus applied to the ALF input and an additional 9x9 rhombus applied to the sample values before the DBF. Second fixed filter. Applied to The output and the sample values before DBF are used to form a 9x9 rhombus for each.
[0092] This article provides features associated with Gaussian fixed filters.
[0093] A third luminance fixed filter with a 7x7 rhombus shape is used, without classification. This fixed filter is called a Gaussian fixed filter.
[0094] This article provides features associated with luminance filtering notified by signaling.
[0095] After fixed filtering, a brightness filter, signaled by signaling, is applied to the ALF input samples, the samples before the deblocking filter (DBF), the outputs of two classification-based fixed filters, the output of the Gaussian fixed filter, and the residual data.
[0096] The final values of the brightness filtered samples are calculated as follows:
[0097] in It is the neighboring sample and the current sample The difference in the limiting values between them The intermediate samples generated from the first fixed filter and the current sample The difference in the limiting values between them The intermediate samples generated from the third fixed filter and the current samples The difference in the limiting values between them The interposed intermediate samples generated from the first fixed filter and the current sample The difference in the limiting values between them The interposed intermediate samples generated from the second fixed filter and the current sample The difference in the limiting values between them The interposed intermediate samples generated from the third fixed filter and the current sample The difference in the limiting values between them It is the neighboring samples before DBF and the current sample The difference in the limiting values between them It is the juxtaposition of samples before DBF and the current sample. The difference in the limit between them, and where These are the adjacent residual sample values of the amplitude limit. These are the clipped residual samples filtered by fixed filters. The fixed filters used for the residual samples are those from the first set of fixed filters. The complete filter shape of the ALF using the residual samples as additional input is as follows: Figure 8 As shown.
[0098] The luminance classification extension includes an additional surrogate classifier. For a set of luminance filters notified by signaling, a flag is signaled to indicate whether a surrogate classifier is applied. Geometric transformations are not applied to the surrogate band classifier. When applying a band-based classifier, the sum of sample values for a 2x2 luminance block is first computed. Then, the class index is calculated as follows:
[0099] This article provides features associated with ALF syntax.
[0100] Filter coefficients and / or limiting indices can be carried in one or more ALF adaptive parameter sets (APS). ALFAPS can include one or more (e.g., up to 8) chromaticity filters and / or one or more (e.g., up to 4) sets of luminance filters (e.g., up to 25 filters). Indexes for each luminance class (e.g., each of the 25 luminance classes) can be included. Having the same index Classes can share the same filters. By merging different classes, the number of bits used to represent filter coefficients (e.g., as needed) can be reduced. The decoder can reference one or more ALF APSs (e.g., up to 8). Due to decoding dependencies, only APSs with lower time domain IDs (TIDs) and APSs with lower picture indexes (POCs) within the same TID are accessible, as shown in Table 1 below.
[0101] Table 1: Examples of GOP structures: Frame type depends on Frame Order Count (POC) (I: Intra-Frame - P: Predictive - B: ...). Bidirectional prediction and Time Domain ID (TID) .
[0102]
[0103] Filter control syntax elements can include one or more (e.g., two) types of information. ALF on / off flags can be signaled at the sequence level, frame level, slice level, and / or CTB level. Chroma ALF can be enabled at the frame level and / or slice level if (e.g., only if) luma ALF is enabled at the corresponding level. Filter usage information (e.g., if ALF is enabled at that level) can be signaled at the frame level, slice level, and / or CTB level. Referenced ALF APS IDs can be encoded at the slice level or frame level (e.g., if all slices within a frame use the same APS). Luma components can reference one or more (e.g., up to 7) ALF APSs. Chroma components can reference (e.g., 1) ALF APS. For luma CTB, an index can be signaled. This index can indicate which ALF APS or offline-trained luma filter set is used. For chroma CTB, this index can indicate which filter in the referenced APS is used.
[0104] This article provides features associated with encoder-side processes.
[0105] The encoder can compute the value of the ALF syntax by minimizing the rate-distortion cost (e.g., as described herein). The rate-distortion cost can be a weighted sum of distortion (e.g., measured as the squared error between the original sample and the sample after the ALF filter is applied) and the number of bits required to transmit the ALF syntax elements (e.g., as desired). Figure 9An RDO method 900 according to an embodiment for determining whether to notify the ALF of syntax values via signaling is shown. In a first step 910, an optimal set of adaptive filters can be derived, for example, at the slice level. One or more adaptive filters in the optimal set of adaptive filters for the current slice are optimal because they minimize the distortion between the original samples of the current slice and the samples of the current slice after the application of the optimal adaptive filters. For example, the filter coefficients can be calculated by solving the Wiener-Hopf equations. Statistics used (e.g., as needed) to calculate the filter coefficients and estimate the distortion can be collected for possible combinations of the amplitude limiting index (e.g., all possible combinations). Statistics can be collected for each CTB (e.g., for each CTB individually). In the case of the luminance component, statistics can be collected for the class of CTB (e.g., for each class of each CTB). In step 920, the filters are selected from the following: the optimal set of adaptive filters for the current slice, the optimal set of filters for previous slices (i.e., known to the decoder from previous ALF APS), or a fixed set of filters. In step 920, the encoder determines for each CTB in the slice whether it is advantageous to use the optimal filter in terms of RDO, or whether it is advantageous to rely on filters that depend on the referenced ALFAPS. For example, the encoding cost in step 920 could involve the syntax cost per CTB for signaling the on / off ALF flags, and the encoding cost could also involve the syntax cost per CTB for signaling the new filter index. In step 930, the encoding cost of the APS is considered. Based on the result of step 920, for each CTB in the current slice, the encoder can determine in step 930 whether to signal the optimal filter in the new APS. For example, step 930 enables the transmission of one or more syntax elements representing the optimal adaptive in-loop filter set for the current slice.
[0106] Typically according to the rate-distortion (RD) criterion To make an RDO decision, the RD criterion Using Lagrange multipliers Consider the resulting distortion and required bit rate Both: .
[0107] The value of the Lagrange multiplier used in this RD criterion can, for example, depend on the quantization parameter (QP) of the current slice.
[0108] In current ALF filtering development, the size of ALF filters has increased. Furthermore, as the number of coefficients and clipping indices in ALF filters increases, their signaling costs also rise. Consequently, outputting and signaling the RDO decision to the ALF APS becomes increasingly difficult, thus hindering the efficiency of ALF as a coding tool.
[0109] Therefore, this document proposes prioritizing signaling notification of new ALF APSs over other RDO decisions to be made by the encoder. According to a specific embodiment, by modifying the value of the Lagrange multiplier over the entire ALF RDO process, priority is given to signaling notification of new ALF APSs for the current slice / frame. Advantageously, this RDO adjustment also benefits the coding of subsequent slices / frames, as the most recently signaled ALF filter can be reused with minimal coding cost.
[0110] According to the first embodiment, the Lagrange multiplier is modified for the entire ALF RDO process.
[0111] According to the second embodiment, the Lagrange multiplier is modified in specific steps of the ALF RDO process, and different variations are disclosed based on combinations of these specific steps.
[0112] In the third embodiment, it is proposed to modify the ALFRDO Lagrange multiplier under certain encoding conditions (e.g., based on the temporal frame identifier TID).
[0113] The following describes various embodiments that can be used in combination or independently.
[0114] Figure 10 This illustrates a video coding method that modifies the Lagrange multiplier for the entire ALF RDO, according to an embodiment. Figure 10 Method 1000 can be used Figure 2 Implemented in the encoder. Figure 11 , Figure 12 , Figure 13 and Figure 14 This illustrates a video coding method for modifying the Lagrange multiplier according to one or more steps of ALF RDO, based on various embodiments. Figure 11 , Figure 12 , Figure 13 and Figure 14 Method 900 of any type can be used Figure 2 Implemented in the encoder.
[0115] Depending on specific characteristics, multiplier coefficients (also referred to as multiplier parameters below) can be introduced. And use it in the following way:
[0116] in This refers to the Lagrange multiplier specifically used in the ALF RDO process. This represents the default Lagrange multiplier value, which may, for example, depend on the slice QP.
[0117] According to different variations and referring to equations (15) and (16), the value It may not affect ALF RDO relative to current technology; value The cost of ALF encoding may be underestimated relative to the resulting distortion; value This may be relative to the increased ALF encoding cost caused by distortion.
[0118] In one variant, one or more multiplier parameters used for ALF RDO can fall within the range [0;1]. As an example, one or more multiplier parameters used for ALF RDO can take one of the following values: 0.5; 0.7; 0.75; 0.8; 0.99.
[0119] In another variant, one or more multiplier parameters used for ALF RDO can take values greater than 1.
[0120] According to the first embodiment, the Lagrange multiplier is modified for the entire ALF RDO process. In the first embodiment, ALFRDO can use the modified Lagrange multiplier, which differs from the Lagrange multiplier used in other RDO decisions made during the coding phase (such as CTU partitioning and coding mode decisions), such as... Figure 10 As shown. In one variant, the default Lagrange parameter can be multiplied by a positive factor less than 1. In another variant, the default Lagrange parameter is multiplied by a factor greater than 1.
[0121] According to the second embodiment, the Lagrange multiplier is modified in a specific step of the ALF RDO process, and different variations are disclosed herein. Figure 11 , Figure 12 , Figure 13 and Figure 14 This illustrates a video coding method for modifying the Lagrange multiplier according to one or more steps of ALF RDO, based on various embodiments.
[0122] exist Figure 11 In the first variant embodiment shown, modified Lagrange multipliers are generated for ALF APS. For example, the multiplier coefficients can be applied to the Lagrange parameters used in step 930, which enables the transmission of one or more syntax elements representing the optimal adaptive in-loop filter set for the current slice, with the multiplier coefficients in the range [0-1] to reduce the cost of transmitting one or more syntax elements representing the adaptive in-loop filtering pattern. Figure 11As shown, in the first variant embodiment, the steps of deriving the optimal ALF filter based on the current slice / frame statistics and the ALF CTU-level decision loop can both be performed using conventional default λ values, which, for example, depend on the slice QP. Only the final step (i.e., deciding whether a new ALF APS should be generated for the current slice / frame) can use the modified Lagrange parameters. This embodiment advantageously combines optimal filter derivation similar to current techniques with APS-only decision-making, which may be subject to underestimation (or overestimation, depending on) its signaling cost. The influence of the value of ( ).
[0123] As mentioned above, in one variant, the Lagrange parameter is multiplied by a positive factor less than 1 by default. In another variant, the Lagrange parameter is multiplied by a factor greater than 1 by default.
[0124] exist Figure 12 In the second variant embodiment shown, modified Lagrange multipliers are generated for the CTU loop and ALF APS. For example, multiplier coefficients are applied to the Lagrange parameters employed in step 930 to enable the transfer of one or more syntax elements representing the optimal adaptive in-loop filter set for the current slice, and wherein the multiplier coefficients are applied in step 920 to select a filter for the current block of the image. Figure 12 In a variant, step 910, deriving the optimal ALF filter based on the current slice / frame statistics, is performed using a conventional default λ value, which, for example, depends on the slice QP, while the remaining RDO steps (i.e., CTU looping and decisions to generate new ALF APSs) use modified Lagrange parameters. As previously described, in one variant, the default Lagrange parameter is multiplied by a positive factor less than 1. In another variant, the default Lagrange parameter is multiplied by a factor greater than 1. In one variant, the CTU loop and APS decisions can use the same modified λ value. In another variant, the CTU loop can use a first modified λ value, and the APS decisions can use a second modified λ value. In this embodiment variant using a single modified λ, local CTU-level decisions and APS decisions are advantageously made in a consistent manner, taking into account both the coding cost of potential new ALF APSs and the ALF control signaling cost in each CTU.
[0125] exist Figure 13 In the third variant embodiment shown, the Lagrange multipliers are modified for optimal filter derivation. For example, the multiplier coefficients can be applied in step 910 to derive the optimal adaptive filter set for the current slice. Figure 13In a variant, the optimal filter can be derived solely from the current slice / frame statistics using modified Lagrange parameters. As in the foregoing embodiments, in one variant, the default Lagrange parameters can be multiplied by a positive factor less than 1. In another variant, the default Lagrange parameters are multiplied by a factor greater than 1. In this variant of the embodiment, it is advantageous that only the optimal filter derivation step is modified, allowing the encoder options to include a larger set of ALF filters compared to the current encoder design, thereby utilizing potential ALF performance.
[0126] exist Figure 14 In the fourth variant embodiment shown, the Lagrange multipliers are modified for both the optimal filter derivation and APS generation. For example, the multiplier coefficients can be applied to the Lagrange parameters used in step 930 to enable the transmission of one or more syntax elements representing the optimal adaptive in-loop filter set for the current slice, and the multiplier coefficients can be applied in step 910 to derive the optimal adaptive filter set for the current slice. In this variant, the CTU loop can use a conventional default λ value, which, for example, depends on the slice QP. As in the aforementioned variant, the default Lagrange parameter can be multiplied by a positive factor less than 1. In another variant, the default Lagrange parameter can be multiplied by a factor greater than 1. In one variant, the optimal filter derivation and APS decision can use the same modified λ value. In another variant, the optimal filter derivation can use a first modified λ value, and the APS decision can use a second modified λ value. In the variant using a single reduced λ value, filter derivation and APS decisions are advantageously made in a consistent manner, taking into account the same underestimated coding cost of the new ALF filter, and preferentially informing the decision of the large ALF filter via signaling in the bitstream. This modified RDO benefits subsequent slices / frames, which can use potentially more efficient sets of ALF filters at minimal cost.
[0127] According to the third embodiment, the ALF RDO Lagrange multiplier is modified under certain encoding conditions (e.g., based on the temporal frame identifier TID). Figure 15 This illustrates video coding methods, according to various embodiments, in which the Lagrange multipliers are modified for ALF RDO depending on certain constraints. For example, in one variant, the condition is with respect to the temporal ID (TID) of the current slice, such as... Figure 15 As shown. A non-restrictive example of the conditions regarding the time-domain ID is as follows: -Is the TID of the current slice equal to the given value? -Is the TID of the current slice less than a given threshold? -Is the TID of the current slice greater than the given threshold? -Is the TID of the current slice within the given range? - Whether the TID of the current slice is outside the given range.
[0128] This document describes various methods, and each method includes one or more steps or actions for implementing the described method. Unless the correct operation of the method requires a specific order of steps or actions, the order and / or use of specific steps and / or actions may be modified or combined. Additionally, terms such as "first" and "second" may be used in various embodiments to modify elements, components, steps, operations, etc., for example, "first decoding" and "second decoding." Unless specifically required, the use of these terms does not imply a sequence of the modified operations. Therefore, in this example, the first decoding does not need to be performed before the second decoding and may, for example, be performed before, during, or in a time period overlapping with the second decoding.
[0129] The various methods and other aspects described in this application can be used to modify the module, for example, such as Figure 2 The motion compensation module (270) of the video encoder 200 shown is further illustrated. Furthermore, aspects of the invention are not limited to ECM and VVC, and can be applied to, for example, other standards and recommendations, as well as any extensions of such standards and recommendations. Unless otherwise indicated or technically excluded, the aspects described in this application may be used alone or in combination.
[0130] Various numerical values are used in this application. Specific values are for illustrative purposes, and the aspects described are not limited to these specific values.
[0131] Various implementations involve decoding. As used herein, “decoding” can include, for example, all or part of a process performed on a received encoded sequence to produce a final output suitable for display. In various embodiments, such processes include one or more processes typically performed by a decoder, such as entropy decoding, inverse quantization, inverse transform, and differential decoding. Whether the phrase “decoding process” is intended to specifically refer to a subset of operations or generally to a broader decoding process will be clear based on the specific context of the description and is believed to be fully understood by those skilled in the art.
[0132] Various implementations involve encoding. In a manner similar to the discussion above regarding "decoding," "encoding," as used in this application, can include, for example, all or part of a process performed on an input video sequence to produce an encoded bitstream.
[0133] Note that the syntax elements used here are descriptive terms. Therefore, the use of other syntax element names is not excluded.
[0134] The implementations and aspects described herein can be implemented, for example, in a method or process, apparatus, software program, data stream, or signal. Even if discussed only in the context of a single form of implementation (e.g., discussed only as a method), the implementation of the features in question can also be implemented in other forms (e.g., apparatus or program). For example, an apparatus can be implemented with appropriate hardware, software, and firmware. The method can be implemented, for example, in an apparatus, such as a processor, which generally refers to a processing device, including, for example, a computer, microprocessor, integrated circuit, or programmable logic device. Processors also include communication devices, such as computers, cellular phones, portable / personal digital assistants (“PDAs”), and other devices that facilitate information communication between end users.
[0135] References to "an embodiment," "an embodiment," "an implementation," or "an implementation," as well as other variations, mean that a particular feature, structure, characteristic, etc., described in connection with the embodiment is included in at least one embodiment. Therefore, the phrases "in an embodiment," "in an embodiment," "in an implementation," or "in an implementation," and any other variations appearing in various places throughout this application, do not necessarily refer to the same embodiment.
[0136] Furthermore, this application may involve "determining" various types of information. Determining information may include, for example, one or more of the following: estimation information, calculation information, prediction information, and information retrieved from memory.
[0137] Furthermore, this application may relate to "accessing" various types of information. Accessing information may include, for example, receiving information, retrieving information (e.g., from memory), storing information, moving information, copying information, calculating information, determining information, predicting information, and estimating information, or more of these.
[0138] Additionally, this application can refer to "receiving" various types of information. Like "accessing," receiving is intended to be a broad term. Receiving information can include, for example, accessing information and retrieving information (e.g., from memory). Furthermore, "receiving" is generally referred to in one or more ways during operations such as storing information, processing information, sending information, moving information, copying information, erasing information, calculating information, determining information, predicting information, or estimating information.
[0139] It should be understood that the use of any of the following “ / ”, “and / or”, and “…at least one of” (e.g., in the cases of “A / B”, “A and / or B”, and “at least one of A and B”) is intended to cover the selection of only the first listed option (A), or only the second listed option (B), 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 wording is intended to include selecting only the first listed option (A), or only the second listed option (B), or only the third listed option (C), or only the first and second listed options (A and B), or only the first and third listed options (A and C), or only the second and third listed options (B and C), or all three options (A, B, and C). As will be apparent to those skilled in the art and related fields, this can be extended to multiple listed items.
[0140] Furthermore, as used herein, the term "notify by signaling" refers, among other things, to instructing the corresponding decoder to provide certain information. For example, in some embodiments, the encoder signals the quantization matrix used for dequantization. Thus, in one embodiment, the same parameters are used on both the encoder and decoder sides. Therefore, for example, the encoder can send (explicit signaling) specific parameters to the decoder so that the decoder can use the same specific parameters. Conversely, if the decoder already has specific parameters as well as other parameters, signaling can be used without transmission (implicit signaling) to simply allow the decoder to know and select specific parameters. Bit savings are achieved in various embodiments by avoiding the transmission of any actual functionality. It should be understood that signaling can be implemented in various ways. For example, in various embodiments, one or more syntax elements, flags, etc., are used to signal information to the corresponding decoder. While the foregoing refers to the verb form of the term "notify by signaling," the term "signal" may also be used as a noun herein.
[0141] As will be apparent to those skilled in the art, implementations can generate various signals formatted to carry information, such as information that can be stored or transmitted. This information may include, for example, instructions for performing a method, or data generated by one of the described implementations. For example, a signal may be formatted to carry a bitstream of the described embodiment. Such a signal may be formatted as, for example, electromagnetic waves (e.g., using the radio frequency portion of the spectrum) or baseband signals. Formatting may include, for example, encoding the data stream and modulating a carrier wave with the encoded data stream. The information carried by the signal may be, for example, analog or digital information. It is well known that signals can be transmitted via various wired or wireless links. The signal may be stored on a processor-readable medium.
[0142] We describe multiple embodiments. Features of the embodiments can be provided individually or in any combination, and across various claim categories and types. Moreover, embodiments can include one or more of the following features, devices, and aspects, provided individually or in any combination, and across various claim categories and types.
Claims
1. A method for video encoding, the method comprising: Based on Using Lagrange parameters The obtained Lagrange rate distortion cost C To determine the set of encoding modes used to encode video image data, wherein D For distortion, R Bit rate; In response to determining the set of encoding modes, the video image data and related syntax are encoded; as well as The set of coding modes includes adaptive in-loop filtering modes, and the Lagrange rate distortion cost is based on... C Determining the adaptive in-loop filtering mode includes: using the Lagrange multiplier Applied to the Lagrange parameters According to Adjust the Lagrange parameters used to determine the adaptive loop filtering mode. The Lagrange multiplier It is within the range [0-1].
2. The method according to claim 1, wherein determining the adaptive in-loop filtering mode based on the Lagrange rate distortion cost obtained using Lagrange parameters further comprises: Derive the optimal set of adaptive filters for the current slice. The optimal adaptive filters minimize the distortion between the original samples of the current slice and the samples of the current slice after applying the optimal adaptive filters. For the current block of the image, a filter set is selected from the following: the optimal adaptive filter set for the current slice, the optimal filter set for the previous slice, or a fixed filter set; Enable transmission of one or more syntax elements representing the optimal set of adaptive filters for the current slice; and At least one of the Lagrange parameters used in the derivation step, the selection step, and the transmission enable step has been modified.
3. The method of any one of claims 1 and 2, wherein the Lagrange rate distortion cost for determining the adaptive in-loop filtering mode comprises the distortion and a weighted sum of the number of bits used to transmit one or more syntax elements representing the optimal adaptive filter set for the current slice.
4. The method of claim 3, wherein distortion is measured by the squared error between the original sample of the current slice and the sample of the current slice after applying the optimal adaptive filter.
5. The method according to any one of claims 2 to 4, wherein the multiplier coefficient is applied to the Lagrange parameter used in the step of derivation, or the step of selection or the step of enabling transmission, the Lagrange parameter being modified, and the multiplier coefficient being in the range [0-1].
6. The method according to any one of claims 2 to 4, wherein the multiplier coefficients are applied to the Lagrange parameters used in the step of enabling the transmission of one or more syntax elements representing the optimal adaptive filter set for the current slice, the multiplier coefficients being in the range [0-1] to reduce the cost of transmitting one or more syntax elements representing the optimal adaptive filter set.
7. The method according to any one of claims 2 to 4, wherein the multiplier coefficients are applied to the Lagrange parameters used in the step of enabling the transmission of one or more syntax elements representing the optimal set of adaptive filters for the current slice, and wherein the multiplier coefficients are applied to the step of selecting a filter for the current block of the image, the multiplier coefficients being in the range [0-1].
8. The method according to any one of claims 2 to 4, wherein the multiplier coefficients are applied to the step of deriving the optimal set of adaptive filters for the current slice, the multiplier coefficients being in the range [0-1].
9. The method according to any one of claims 2 to 4, wherein the multiplier coefficients are applied to the Lagrange parameters used in the step of enabling the transmission of one or more syntax elements representing the optimal adaptive filter set for the current slice, and wherein the multiplier coefficients are applied to the step of deriving the optimal adaptive filter set for the current slice, the multiplier coefficients being in the range [0-1].
10. The method according to any one of claims 2 to 9, wherein modifying the Lagrange parameter used to determine the adaptive in-loop filtering mode is performed in response to the value of the time-domain identifier of the current slice.
11. An apparatus comprising one or more processors, wherein the one or more processors are configured to perform the method of any one of claims 1 to 10.
12. A signal comprising video data, said video data being formed by performing the method of any one of claims 1 to 10.
13. A computer-readable storage medium storing instructions for video encoding according to any one of claims 1 to 10.
