Alternative clipping method and apparatus in adaptive loop filter
Patent Information
- Application Number
- CN202580019768.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-03-07
- Filing Date
- 2025-03-06
- Publication Date
- 2026-10-09
Smart Images

Figure CN122893295A_ABST
Abstract
Description
[0001] Cross-references
[0002] This disclosure is part of a non-provisional application that claims priority from U.S. Provisional Application No. 63 / 562,328, filed March 7, 2024. The contents of the aforementioned application are incorporated herein by reference. Technical Field
[0003] This specification relates to video encoding and decoding. Specifically, this disclosure relates to a method and apparatus for an adaptive loop filter (ALF). Background Technology
[0004] Unless otherwise stated herein, the methods described in this section do not constitute prior art in the following claims, nor are they acknowledged as prior art by virtue of their inclusion in this section.
[0005] Versatile Video Coding (VVC) is the latest international video coding standard developed by the Joint Video Experts Team (JVET) of the ITU-T Video Coding Experts Group (VCEG) and the ISO / IEC Moving Picture Experts Group (MPEG). This standard was published as an ISO standard in February 2021: ISO / IEC 23090-3: 2021, titled: Information technology - Coded representation of immersive media - Part 3: Versatile video coding. VVC is based on its predecessor, High Efficiency Video Coding (HEVC), and improves coding efficiency by adding more coding tools, enabling it to handle various types of video sources, including 3D video signals.
[0006] In VVC, the encoded image is divided into non-overlapping square regions represented by relevant code tree units (CTUs). The leaf nodes of the code tree correspond to code tree units (CUs). The encoded image can be represented by a set of slices, each slice containing an integer number of CTUs. Individual CTUs within a slice are processed in raster-scan order. A CTU consists of one luma CTB and two chroma CTBs. Summary of the Invention
[0007] In some embodiments, a decoder for decoding a video stream associated with video data includes: a storage module for receiving the video stream associated with an image of the video data, wherein the image contains a current video region; a processing module for performing the following steps: determining a filtering operation applied to the current video region from the syntax of the video stream; determining a clipping index element set for the current video region; and a filter for performing the filtering operation on the current video region according to the clipping index element set, generating a filtered current video region using a selected clipping function among a plurality of clipping functions, wherein the clipping index element set is used to indicate the selected clipping function, a piecewise coordinate point element, and a slope element to construct the selected clipping function.
[0008] In some embodiments, the cut index element set is determined by an Adaptation Parameter Set (APS) in the syntax of the video bitstream.
[0009] In some embodiments, the shearing function corresponds to a piecewise shearing function group, including a ReLU function, a LeakyReLU function, an inverse ReLU function, an inverse LeakyReLU function, a ReLU function with shearing, a LeakyReLU function with clipping, a shifted ReLU function with / without clipping, a shifted LeakyReLU function with / without clipping, a shifted ReLU function with non-constant clipping, a shifted LeakyReLU function with non-constant clipping, a sawtooth wave function with clipping, and a periodic sawtooth wave function.
[0010] In some embodiments, the shearing function corresponds to a group of non-piecewise shearing functions, including a sigmoid function and a hyperbolic tangent (tanh) function.
[0011] In some embodiments, the shear index element set is further used to indicate a shift vector element to move the segmented coordinate point element a distance in one direction according to the shift vector.
[0012] In some embodiments, the current video region includes a current sample, and the filtering operation uses a clipping function to clip the difference between the value of a neighboring sample and the value of the current sample.
[0013] In some embodiments, the decoder further includes: performing a classification operation on the current region to classify the current region according to a category index indication; and determining the clipping index element set according to the category index.
[0014] In some embodiments, a method for processing video data includes: receiving an image of the video data, wherein the image contains a current video region; determining a filtering operation to be applied to the current video region; determining a clipping index element set for the current video region; and performing the filtering operation on the current video region to generate a filtered current video region using a selected clipping function among a plurality of clipping functions, wherein the clipping index element set is used to indicate the selected clipping function, a piecewise coordinate point element, and a slope element to construct the selected clipping function.
[0015] In some embodiments, the method further includes: embedding the cut index element set into a syntax of a video stream.
[0016] In some embodiments, the clipping index element set is embedded in the adaptive parameter set (APS), filter set, or filter level of the syntax of the video bitstream.
[0017] In some embodiments, the shearing function corresponds to a piecewise shearing function group, including a ReLU function, a LeakyReLU function, an inverse ReLU function, an inverse LeakyReLU function, a ReLU function with shearing, a LeakyReLU function with clipping, a shifted ReLU function with / without clipping, a shifted LeakyReLU function with / without clipping, a shifted ReLU function with non-constant clipping, a shifted LeakyReLU function with non-constant clipping, a sawtooth wave function with clipping, and a periodic sawtooth wave function.
[0018] In some embodiments, the shearing function corresponds to a group of non-piecewise shearing functions, including a sigmoid function and a hyperbolic tangent (tanh) function.
[0019] In some embodiments, the shear index element set is further used to indicate a shift vector element to move the segmented coordinate point element a distance in one direction according to the shift vector.
[0020] In some embodiments, the current video region includes a current sample, and the filtering operation uses a clipping function to clip the difference between the value of a neighboring sample and the value of the current sample.
[0021] In some embodiments, the method further includes: performing a classification operation on the current region to classify the current region into a category indicated by a category index; and determining the set of clipping index elements based on the category index.
[0022] In some embodiments, the cut index element set is determined based on the precision of a filter coefficient.
[0023] In some embodiments, the cut index element set is determined based on a filtered sample source.
[0024] In some embodiments, the cut index element set is determined based on the bit depth of the ALF filter coefficients.
[0025] In some embodiments, a method for processing video data includes: receiving an image of video data, wherein the image contains a current video region; determining a filtering operation to be applied to the current video region; determining a clipping index element set for the current video region; and performing the filtering operation on the current video region to generate a filtered current video region using a selected clipping function among a plurality of clipping functions, wherein the clipping index element set is used to indicate the selected clipping function and is implicitly determined by an existing flag.
[0026] In some embodiments, the existing flag is associated with a category index, a filter coefficient precision, a filter sample source, or an ALF filter coefficient bit depth. Attached Figure Description
[0027] The details of this disclosure will be best understood when read in conjunction with the following detailed description and the accompanying drawings. The drawings, which are incorporated in and form part of this specification, illustrate several exemplary embodiments and, together with the corresponding description, provide examples for explaining embodiments and related principles of this disclosure. It should be noted that the drawings are not necessarily drawn to scale, as some components may be shown out of proportion to their actual dimensions in order to clearly illustrate the concepts of this disclosure.
[0028] Figure 1A An exemplary adaptive inter / intra video encoding and decoding system is described, which incorporates loop processing.
[0029] Figure 1B Explanation Figure 1A The corresponding decoder of the encoder.
[0030] Figures 2A to 2D An example of using subsampled Laplace to calculate the classification of adaptive loop filters (ALF) is shown.
[0031] Figure 3 The ALF filter shapes applied to the chroma component (left) and luminance component (right) are illustrated.
[0032] Figure 4A This explains the position of the CC-ALF relative to other loop filters.
[0033] Figure 4B A diamond filter for chromaticity samples is described.
[0034] Figure 5 This describes the 25-tap large filter used in the CCALF process.
[0035] Figure 6 This explains the diamond-shaped ALF in ECM-5.0.
[0036] Figure 7 This illustrates a role Figure 6 The longer ALF of the medium rhombus ALF alternative.
[0037] Figure 8 This describes the filter shape of ALF in ECM-7.0.
[0038] Figure 9 An example of an ALF with an additional fixed filter is described.
[0039] Figure 10 An example of a CCALF filter shape is shown.
[0040] Figure 11A-11R The ALF clipping functions according to some embodiments of this disclosure are described.
[0041] Figure 12 A flowchart illustrates an example method for ALF processing of video reconstruction according to an embodiment of the present disclosure. Detailed Implementation
[0042] The following disclosure provides various embodiments or examples to achieve different features of the provided subject matter. To simplify this disclosure, specific components and arrangements are described below. These are, of course, merely examples and are not intended to be limiting. Any variations, derivatives, and / or extensions based on the teachings described herein are within the scope of this disclosure. In some cases, well-known methods, procedures, components, and / or circuits involved in one or more exemplary embodiments may be described at a relatively high level to avoid unnecessarily obscuring the teachings of this disclosure.
[0043] In this specification, "signaling" and "signaled" may refer to information embedded, inserted, received, or extracted from a bitstream to control a filter, such as enabling or disabling a mode or other control parameters. It is also understood that "category" indicates the type of element, while "active" indicates that the corresponding filter / tool is in use.
[0044] Figure 1AAn exemplary adaptive inter / intra video coding system 1000A is described, which incorporates loop processing. As shown, the adaptive inter / intra video coding system 1000A receives an input video source 1002 and encodes the video source into a video bitstream 1004. The adaptive inter / intra video coding system 1000A has multiple components or modules for encoding the video source 1002, including at least an intra prediction module 110, an inter prediction module 112, a switching module 114, an adder 116, a transform module (T) 118, a quantization module (Q) 120, an entropy encoder module 122, an inverse quantization module (IQ) 124, an inverse transform module (IT) 126, a reconstruction module 128, a loop filter module (ILPF) 130, and a reconstructed image buffer 134.
[0045] In some embodiments, modules 112-130 are software instruction modules executed by one or more processing units (e.g., processors) of a computing device or electronic device. In some embodiments, modules 112-130 are hardware circuit modules implemented by one or more integrated circuits (ICs) of an electronic device. Although modules 112-130 are shown as independent modules, some modules may be combined into a single module.
[0046] For intra-frame prediction, the prediction data is derived from previously encoded video data in the current image. For inter-frame prediction module 112, motion estimation (ME) is performed at the encoder end, and motion compensation (MC) is performed based on the result of motion estimation (ME) to provide prediction data derived from other images and motion data. Switching module 114 selects either intra-frame prediction module 110 or inter-frame prediction module 112, and the selected prediction data is provided to adder 116 to form prediction error, also known as residual. The prediction error is then processed by transform module (T) 118, followed by quantization module (Q) 120. The transformed and quantized residual is subsequently encoded by entropy encoder module 122 to be included in the video bitstream 1004 corresponding to the compressed video data. The video bitstream associated with the transform coefficients is then packaged with side information, such as motion and encoding / decoding modes associated with intra-frame and inter-frame prediction, and other information related to loop filters applied to the underlying image regions. Side information related to intra-prediction module 110, inter-prediction module 112, and loop filter module 130, such as Figure 1AThe data is provided to the entropy encoder module 122. When using inter-frame prediction mode, the reference image or image must also be reconstructed at the encoder end. Therefore, the residuals from the transform and quantization are processed by the inverse quantization module (IQ) 124 and the inverse transform module (IT) 126 to recover the residuals. The residuals are then added back to the prediction data 136 in the reconstruction module 128 to reconstruct the video data. The reconstructed video data can be stored in the reconstructed image buffer 134 and used for prediction of other images.
[0047] like Figure 1A As shown, the received video signal 1002 undergoes a series of processing steps in the encoding system 1000A. The reconstructed video data from the reconstruction module 128 may be subject to various impairments due to these processing steps. Therefore, the loop filter module 130 is typically applied to the reconstructed video data before it is stored in the reconstructed image buffer 134 to improve video quality. For example, a deblocking filter (DF), sample adaptive offset (SAO), and adaptive loop filter (ALF) may be used. Loop filter information may need to be included in the video bitstream 1004 so that the decoder can correctly recover the required information. Therefore, loop filter information is also provided to the entropy encoder module 122 for incorporation into the bitstream. Figure 1A In the process, the loop filter module 130 is applied to the reconstructed video before the reconstructed samples are stored in the reference image buffer 134. Figure 1A The system described is intended to demonstrate an exemplary architecture of a typical video encoder. It may correspond to a High Efficiency Video Codec (HEVC) system, VP8, VP9, H.264, or VVC.
[0048] Figure 1B An exemplary adaptive inter / intra video decoding system 1000B is shown, including loop processing. As shown, the adaptive inter / intra video decoding system 1000B receives a video bitstream 1004 and decodes it into a video signal 1006. The adaptive inter / intra video decoding system 1000B has multiple components or modules for decoding the video bitstream 1004, including at least a switching module 114, an inverse quantization module (IQ) 124, an inverse transform module (IT) 126, a reconstruction module 128, a loop filter module (ILPF) 130, a reconstructed image buffer 134, an entropy decoder module 140, an intra-frame prediction module 150, and a motion compensation module (MC) 152.
[0049] In some embodiments, modules 114-152 are software instruction modules executed by a processing unit (e.g., a processor) of one or more computing devices or electronic devices. In some embodiments, modules 114-152 are hardware circuit modules implemented by one or more integrated circuits (ICs) of an electronic device. Although modules 114-152 are shown as separate modules, some of these modules may be combined into a single module.
[0050] like Figure 1B As shown, the decoder 1000B can use functional modules similar to or partially identical to the encoder, except for the transform module 118 and the quantization module 120, because the decoder only needs the inverse quantization (IQ) module 124 and the inverse transform module 126. The decoder uses the entropy decoding module 140 to decode the video bitstream 1004 into quantized transform coefficients and the required encoding / decoding information (e.g., ILPF information, intra-frame prediction information, and inter-frame prediction information), instead of the entropy encoder module 122. The intra-frame prediction module 150 at the decoder end does not need to perform mode search. Instead, the decoder only needs to generate intra-frame predictions based on the intra-frame prediction information received from the entropy decoding module 140. Furthermore, for inter-frame prediction, the decoder only needs to perform the motion compensation module (MC 152) based on the inter-frame prediction information received from the entropy decoding module 140, without needing motion estimation (ME). The video data reconstructed by the reconstruction module 128 may be subject to various impairments due to a series of processing steps. Therefore, the video quality is typically improved by applying the loop filter module 130 before the reconstructed video data is stored in the reconstructed image buffer 134. For example, a deblocking filter (DF), sample adaptive offset (SAO), and adaptive loop filter (ALF) can be used.
[0051] According to the VVC specification, the input image is divided into non-overlapping square regions called Codec Tree Units (CTUs), similar to HEVC. Each CTU can be further divided into one or more smaller Codec Units (CUs). The resulting CU partitions can be square or rectangular in shape. Furthermore, VVC divides the CTU into Prediction Units (PUs) as units applied to the prediction process, such as inter-frame prediction, intra-frame prediction, etc. Additionally, a CTU contains one luma CTB and two chroma CTBs, while a CU also contains one luma CU and two chroma CUs. To minimize artifacts, DBF, SAO, or ALF processing is applied to the luma and chroma CUs respectively, using different parameters (e.g., index, mode, function, and / or coefficients). In some cases, the filter parameters of one CU may be adopted by the filters of another CU.
[0052] In VVC
[0053] Adaptive Loop Filter
[0054] If the ALF tool is enabled, it is enabled at least for the luma component, and an index in the bitstream further indicates whether ALF is enabled for each chroma component. The Adaptive Loop Filter (ALF) is applied to block-based filter tuning. For the luma component, one of 25 filters is selected for each sample block (e.g., N=4) in the luma CU based on the direction and activity of the local gradient.
[0055] Block Classification
[0056] For the luminance component, each The block is locally classified into one of 25 categories. Category index C is based on its directionality. And the quantitative value of activity The exported data is shown below:
[0057] In order to calculate and First, the gradients in the horizontal, vertical, and two diagonal directions are calculated using the one-dimensional Laplacian operator:
[0058]
[0059]
[0060]
[0061] Where index and It refers to The coordinates of the top-left sample within the block. Representing coordinates The reconstructed sample.
[0062] Please refer to Figures 2A through 2D, which show examples of adaptive loop filter (ALF) classification using subsampled Laplace calculations. To reduce the complexity of block classification, a one-dimensional subsampled Laplace calculation is applied in the vertical direction (…). Figure 2A ) and horizontal direction ( Figure 2B As shown in Figures 2C-2D, the same downsampling position is used for gradient calculation in all directions. Figure 2C g in d1 and Figure 2D g in d2 ).
[0063] Then Set the maximum and minimum values of the gradient in the horizontal and vertical directions: ,
[0064] The maximum and minimum values of the gradients in the two diagonal directions are set as follows: ,
[0065] In order to derive directionality The values are compared with each other and with two thresholds. and Compare: Step 1: If and If both are true, then set to .
[0066] Step 2: If If yes, continue from step 3; otherwise, continue to step 4.
[0067] Step 3: If , Set as ;otherwise Set as .
[0068] Step 4: If , Set as ;otherwise Set as .
[0069] Activity Value The calculation is as follows:
[0070] Further quantization to the range of 0 to 4, the quantized value is expressed as .
[0071] For the chromaticity components in the image, no classification method is applied. In this application, a set of ALF coefficients is applied to each chromaticity CUs.
[0072] Filter shape
[0073] Please see Figure 3 , Figure 3This illustrates the ALF filter shapes applied to the chroma component (left) and luma component (right). A 7×7 rhombus (filter length 12, e.g., C0-C11) is applied to the luma component, and a 5×5 rhombus (filter length 6, e.g., C0-C5) is applied to the chroma component. After local classification, filters are selected to filter sample blocks based on the category index C.
[0074] Geometric transformation of filter coefficients and clipping values
[0075] In another embodiment, before filtering each N×N luminance block, the filtering coefficients may be adjusted based on the gradient value calculated for that block. and the corresponding filter cutoff value Apply geometric transformations, such as rotation or diagonal and vertical flipping. This is equivalent to applying these transformations to samples within the filter support region. The idea is to make different blocks to which ALF is applied more similar by aligning their orientations.
[0076] Three geometric transformations are introduced, including diagonal, vertical flip, and rotation: diagonal:
[0077] V-flip vertically: ,
[0078] Rotation: ,
[0079] in It is the size of the filter. These are coefficient coordinates, which make the position... Located in the top left corner, position Located in the bottom right corner. Based on the gradient values calculated for this block, the transformation is applied to the filter coefficients f(k, l) and the shear value. The following table summarizes the relationship between the transformation and the four gradients in the four directions.
[0080] Table 1 shows the mapping between the calculated gradient and the transformation.
[0081]
[0082] Filtering process
[0083] At the decoder end, in VVC, when ALF is enabled for CTB, each sample within the CU Filtered, resulting sample values As shown below,
[0084] in Indicates the filtering coefficients used for decoding. It is a shearing function. This represents the clipping parameters for decoding. Variables k and l in... and The value varies between these values, where L represents the filter length. (Shearing function) Corresponding to function The shearing operation introduces non-linear changes, making ALF more effective by reducing the impact of excessive differences between adjacent sample values and the current sample value.
[0085] Cross-component adaptive loop filter
[0086] Figure 4A The placement of the CC-ALF relative to other loop filters is illustrated. In another embodiment, the CC-ALF performs adaptive linear filtering on the luminance component and uses the filtered luminance component of its output to refine the chrominance component. Figure 4A This diagram illustrates the system-level arrangement of the CC-ALF process alongside the SAO, luminance ALF, and chrominance ALF processes. As... Figure 4A As shown, each color component (i.e., Y, Cb, and Cr) is processed by its corresponding sample adaptive offset SAO (i.e., luminance sample adaptive offset unit SAO Luma 410, first chrominance sample adaptive offset unit SAO Cb 412, and second chrominance sample adaptive offset unit SAO Cr 414). After the SAO, a luminance adaptive loop filter ALF Luma 420 is applied to the luminance component processed by SAO Luma 410, and a chrominance adaptive loop filter ALF Chroma 430 is applied to the Cb component processed by SAO Cb 412 and the Cr component processed by SAO Cr 414. However, there are cross-component terms from luminance to chrominance components (i.e., first chrominance cross-component adaptive loop filter CC-ALF Cb 422 and second chrominance cross-component adaptive loop filter CC-ALFCr 424). The output of the cross-component ALF is added to the output of ALF Chroma 430 (using adders 432 and 434, respectively).
[0087] Please see Figure 4B . Figure 4B A diamond filter for chroma samples is shown. In CC-ALF, this is achieved by applying a linear diamond filter (e.g., ...) to the luminance channel. Figure 4B The filtering is accomplished using filters 440 and 442. Figure 4B In the diagram, blank circles represent luminance samples, and dot-filled circles represent chrominance samples. Each chrominance channel uses one filter, and the operation is expressed as follows:
[0088] in It is the i-position of the chroma component being refined. Based on The brightness position, It is the filter support region in the luminance component. . represents the filter coefficients.
[0089] like Figure 4B As shown, the luminance filtering support is the region co-located with the current chrominance sample after considering the spatial scaling factor between the luminance and chrominance planes.
[0090] The VVC reference software computes CC-ALF filter coefficients by minimizing the mean squared error of each chroma channel to match the original content, using a VTM algorithm process similar to chroma ALF. Specifically, it derives the correlation matrix and uses a Cholesky decomposition solver to compute coefficients in an attempt to minimize the mean squared error metric. A maximum of eight CC-ALF filters can be designed and transmitted per image during filter design. The corresponding filters are then indicated for two chroma channels in units of CTU.
[0091] Other features of CC-ALF include: The design uses a 3x4 rhombus shape and has 8 taps.
[0092] The seven filter coefficients are transmitted in the Adaptive Parameter Set (APS).
[0093] Each transmitted coefficient has a 6-bit dynamic range and is limited to powers of 2.
[0094] The eighth filter coefficient is derived in the decoder, making the sum of the filter coefficients equal to 0.
[0095] An APS can be referenced in the slice header.
[0096] Control the selection of CC-ALF filters for each chromaticity component at the CTU level.
[0097] The horizontal virtual boundary padding uses the same memory access mode as the brightness ALF.
[0098] As an additional feature, the reference encoder can enable some basic subjective adjustments via a configuration profile. When enabled, the VTM reduces the application of CC-ALF in high-QP encoding and near-mid-gray or regions containing a large number of high-frequency luminance values. Algorithmically, this is achieved by disabling the application of CC-ALF in the CTU if any of the following conditions are true: The slice QP value minus 1 is less than or equal to the base QP value.
[0099] The number of chroma samples whose local contrast is greater than (1 << (bitDepth–2))–1 exceeds the CTU height, where local contrast is the difference between the maximum and minimum luminance sample values within the filter's supported region.
[0100] More than a quarter of the chroma samples are in the range between (1 << (bitDepth–1))–16 and (1 << (bitDepth–1))+ 16.
[0101] The motivation behind this feature is to provide guarantees that CC-ALF will not amplify artifacts introduced early in the decoding path (primarily because VTM does not currently explicitly optimize for subjective chroma quality). It is anticipated that alternative encoder implementations will not use this feature or will employ alternative strategies suited to their encoding characteristics.
[0102] Filter parameter signaling
[0103] The ALF filter parameters are signaled in the Adaptive Parameter Set (APS). A maximum of 25 sets of luma filter coefficients and cutoff value indices, and a maximum of eight sets of chroma filter coefficients and cutoff value indices can be signaled in an APS. To reduce bit overhead, filter coefficients from different luma component categories can be combined. The APS indices used for the current slice are signaled in the slice header.
[0104] The clipping index, decoded from APS, allows the use of clipping value tables for the luma and chroma components to determine the clipping value. These clipping values are determined based on the internal bit depth. More precisely, the clipping value is obtained using the following formula:
[0105] Where B equals the internal bit depth, a is a preset constant value equal to 2.35, and N equals 4, which is the number of clipping values allowed in VVC. Then AlfClip is rounded to the nearest power of 2.
[0106] The slice header can signal up to seven APS indices to specify the luma filter set used for the current slice. The filtering process can be further controlled at the CTB level. A flag must be signaled to indicate whether the ALF is applied to the luma CTB. The luma CTB can select a filter set from 16 fixed filter sets and the filter set in the APS. Additionally, a filter set index must be signaled to indicate the filter set applied to the luma CTB. The 16 fixed filter sets are predefined and hard-coded in the encoder and decoder.
[0107] For chroma components, an APS index is signaled in the slice header to indicate the chroma filter set used for the current slice. At the CTB level, if there is more than one chroma filter set in the APS, a filter index is signaled for each chroma CTB.
[0108] Filter coefficients are quantized to a standard of 128. To limit multiplication complexity, bitstream consistency is applied, ensuring that coefficient values at non-center positions are between -27 and 27 - 1. Center position coefficients are not signaled in the bitstream and are treated as equal to 128.
[0109] Adaptive Loop Filter in ECM (Enhanced Compression Model)
[0110] ALF simplified removal
[0111] In ECM, ALF gradient downsampling and ALF virtual boundary processing are removed. The sample block size (NxN) used for classification is reduced from 4x4 to 2x2. The filter size coefficients for luminance ALF and chrominance ALF are increased to 9x9.
[0112] Block Classification
[0113] In ECM, to filter luminance samples, three different classifications (C0, C1, and C2) and three different sets of filters (F0, F1, and F2) are used. Sets F0 and F1 contain fixed filters with coefficients trained for classifications C0 and C1. The filter coefficients in F2 are signaled. A classifier is then used. The category assigned to a given sample Decide which set of filters to use F i .
[0114] Furthermore, based on directionality and activity Assign a category to each 2x2 block :
[0115] in Indicates directionality The total number.
[0116] Similar to VVC, a one-dimensional Laplacian is used to compute the gradient values in the horizontal, vertical, and two diagonal directions for each sample. The sum of the gradients of samples within a 4×4 window covering a 2×2 block of the target is used for classifier C0, while the sum of the gradients of samples within a 12×12 window is used for classifiers C1 and C2. The sums of the horizontal, vertical, and two diagonal gradients are expressed as follows: , , and Directionality By
[0117] Determined by comparison with a set of thresholds. Directionality Similar to exporting using thresholds 2 and 4.5 in VVC. For and First, calculate the horizontal / vertical edge strength. and diagonal edge strength Using thresholds .if Then the edge strength =0; otherwise, It makes The largest integer that is true. If Then the edge strength =0; otherwise, It makes The largest integer that is true. When When horizontal / vertical edges dominate, use Table 2A to derive... Otherwise, if the diagonal edges dominate, derive the value using Table 2B. .
[0118] Table 2A. Mapping and arrive
[0119]
[0120] Table 2B. Mapping arrive
[0121]
[0122] In order to obtain The sum of vertical and horizontal gradients Mapped to 0 The range, of which for Equals 4, for and It equals 15.
[0123] In ALF_APS, up to 4 luminance filter sets can be signaled, and each set can have up to 25 filters.
[0124] Replacement for 2x2 ALF classifier
[0125] The classification in ALF extends with an additional alternative classifier. For a signaled set of luminance filters, a flag is signaled to indicate whether the alternative classifier is applied. Geometric transformations are not applied to the alternative band-based classifier. When applying the band-based classifier, the sum of sample values for a 2x2 luminance block is first computed. Then the class index is calculated as follows: class_index = (sum 25) >> (sample bit depth + 2)
[0126] Residual-based classifiers
[0127] The third classifier is based on the luminance residual sample values. For each 2x2 luminance block, the sum of the absolute values of the residual samples in the neighboring 8x8 windows is calculated, and the class index is derived as follows: classIdx = sum >> (sample bit depth–4) The value of classIdx ranges from 0 to 24, the same as in ECM-8.0. The classifier is used to signal each set of luminance filters in the APS.
[0128] Filtering process
[0129] First, two 13x13 rhombus fixed filters, F0 and F1, are applied to derive two intermediate samples R_0(x,y) and R_1(x,y). Then, F2 is applied to R_0(x,y), R_1(x,y), and the neighboring samples to derive the filtered samples.
[0130] in It is the shearing difference between neighboring samples and the current sample. , yes The shearing difference between the current sample and the current sample. Filter coefficients. Signaled.
[0131] CCALF uses a long tap filter.
[0132] The CCALF process uses a linear filter to filter luminance sample values and generate residual corrections for chrominance samples. A large 25-tap filter is used in the CCALF process, as shown in Figure 4. For a given chip, the encoder can collect chip statistics, analyze them, and can filter up to 16 filters via APS signaling.
[0133] The CCALF process uses a linear filter to filter luminance sample values and generate residual corrections for chrominance samples. A large 25-tap filter is used in the CCALF process, such as... Figure 5 As shown. In Figure 5 In the code, the taps of the luminance samples are displayed as gray dots, and the corresponding chrominance sample positions are displayed as small dashed circles. For a given segment, the encoder can collect and analyze the statistical data of that segment, and can signal up to 16 filters via Adaptive Parameter Set (APS) signaling.
[0134] Adaptive filter shape switching and adaptive loop filtering using samples before deblocking filters
[0135] Two candidate filter shapes: such as Figure 6 The rhombus shown and as Figure 7 The new cross shape shown can be adaptively selected by the luminance filter in ALF. Both filter shapes have 22 luminance filter coefficients. Note that these 22 taps are derived from 20 space taps (located in...). Figure 6 and Figure 7 (610 and 710 in the middle) and 2 taps based on fixed filters (in the middle) Figure 6 and Figure 7 It consists of 620 and 720.
[0136] In each Adaptive Parameter Set (APS), the shape index of the derived luma filter is signaled and transmitted to the decoder. Each APS contains luma filters associated with the filter shape index.
[0137] For each CTB, an APS index is signaled and transmitted to indicate the shape of the luma filter used to filter the current CTB. When filtering luma samples, the coefficients and clipping indices are also rearranged according to the corresponding filter shape.
[0138] Rhombus brightness ALF was Figure 7 The longer filter shown is replaced.
[0139] The samples before the deblocking filter are used as additional input to the ALF. The final ALF samples are obtained by weighting the regular ALF and the samples applied before the deblocking filter. Specifically, the filtered samples are obtained as follows:
[0140] in It is the shearing difference between neighboring samples and the current sample. , It is the shearing difference between the intermediate sample and the current sample. ,as well as It is the shearing difference between the neighboring samples before the deblocking filter and the current sample. Filter coefficients The signal is transmitted. In this test, a 3x3 diamond shape is applied to the samples before the deblocking filter. In the APS, the signal transmits a flag to indicate whether the samples before the deblocking filter are used in the ALF; this flag is always set to true in the encoder.
[0141] Extended taps based on fixed filter output for ALF
[0142] The filters trained online in ALF include four types of filter taps: spatial taps (810), reconstruction-before-DBF based taps (840), residual based taps (850), and fixed filter output based taps (820 and 830), such as Figure 8 As shown.
[0143] ALF with residual samples
[0144] The residual samples are used as additional input to ALF. The filtered samples are obtained as follows:
[0145] in These are the neighboring residual sample values after shearing. These are clipped residual samples filtered by a fixed filter. For the residual samples, the fixed filter is reused from the fixed filter trained after linear SAO.
[0146] Additional fixed filter for ALF
[0147] An additional fixed filter with a 7x7 rhombus shape has been introduced, and its parameters are stored in both the encoder and decoder. This newly added fixed filter is not categorized.
[0148] The online filter or online trained filter of the proposed method is as follows: Figure 9As shown, spatial taps 910 (i.e., taps #0 to #19), reconstruction-before-DBF based taps 940 (i.e., taps #26, #27, #36), residual based taps 950 (i.e., #37 to #38), and fixed filter output based taps 920 and 930 (i.e., taps #20 to #25, #34, #35) remain the same as in ECM-8.0, and several extended taps 960 (i.e., taps #28 to #33, #39) are introduced in the lumen online training filter. The reconstructed before DBF is input to additional fixed filters to generate filter outputs, which are then used as inputs to the new extended taps. Online filters, or online training filters, refer to filters specified in the adaptive parameter set (APS), where the filters are trained in the encoder and signaled and transmitted to the decoder. Online filters, or online training filters, are the opposite of fixed filters, which are linearly trained and predefined in the specification.
[0149] This filter is always enabled and requires no filter shape switching.
[0150] Improved fixed filter for ALF
[0151] Two Laplacian-based classifiers (one for each fixed filter) are applied to a 2x2 block. Within each classifier, activity and orientation values are derived based on 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 this 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 classifiers. The square root of the sum of squared differences is further quantized using the scaling factor. .value It is an integer between 0 and 7 (inclusive). Let i = 0, 1, then This represents the classifier for the i-th fixed filter in ECM-9.0. Then, the proposed class index... Exported as .
[0152] The total number of fixed filters remains unchanged.
[0153] Then, a category index is determined based on the activity and directionality values. Two diamond-shaped fixed filters are selected from the two filter sets using the two derived category indices. Both fixed filters are applied to samples prior to the DBF and ALF inputs, with an additional diamond-shaped 9x9 filter used for samples prior to the DBF. The shape of the first fixed filter applied to the ALF input samples is reduced from 13x13 to 9x9, while the shape of the second fixed filter applied to the ALF input remains unchanged at 13x13, as shown in the table below.
[0154] Table 3. Mapping and arrive
[0155]
[0156] Fixed filter Applied to The output (instead of the ALF input) and the sample before DBF.
[0157] Finally, a signaled filter is applied to the ALF input samples, the samples before the deblocking filter (DBF), the outputs of the two fixed filters, the output of the Gaussian filter, and the residual data.
[0158] Luminance residual tap in CCALF (JVET-AF0197)
[0159] Figure 10 An example of the CCALF filter shape is illustrated. For CCALF, five luminance residual taps arranged in a cross shape are added. The extended taps take the co-located and neighboring luminance residual values as inputs.
[0160] ALF with alternative shearing function
[0161] In VVC and ECM ALF, if nonlinear filtering is enabled for a filter set, a clipping index is signaled and a clipping operation is enabled during filtering. When the filter set is applied, a filter coefficient is multiplied by a clipped sample difference, where the clipping threshold is determined by a corresponding clipping index. This nonlinear mechanism provides multiple ways to model the relationship between the neighbor differences of reconstructed samples and the encoding / decoding distortion of samples. This disclosure provides further clipping operations and related syntax designs to further improve encoding / decoding efficiency.
[0162] In some embodiments, piecewise linear functions are used for ALF shearing. For example, the sample difference is divided into multiple intervals, and for each interval, a corresponding linear function can be applied to derive the sheared value.
[0163] Example A: The ReLU (Modified Linear Unit) function is used for ALF shearing. If the sample difference is greater than or equal to zero, the linear function is the identity function (slope equal to 1); while if the sample difference is less than zero, the linear function is the zero function, such as... Figure 11A As shown. The ReLU function consists of two linear segments that intersect at the origin (0,0), and can be expressed as follows:
[0164] Example B: The leakyReLU function is used for ALF shearing. If the sample difference is greater than or equal to zero, the linear function is the identity function (slope equal to 1); while if the sample difference is less than zero, the slope of the linear function is less than 1, such as... Figure 11B As shown. The leakyReLU function consists of two linear segments that intersect at the origin (0,0), and can be expressed as follows:
[0165] Example C: More complex piecewise linear functions are used for ALF shearing, such as Figure 11C As shown. A linear function can have multiple different slopes; for example, a slope greater than 1, a slope equal to 1, or a slope less than 1. Within certain intervals, multiple slope values within a linear function can be the same. A piecewise linear function consists of three linear segments at x = ki and x = -ki, and can be expressed as...
[0166] Example D: The inverse ReLU function is used for ALF shearing. If the sample difference is less than or equal to zero, the linear function is the identity function (slope equal to 1); while if the sample difference is greater than zero, the linear function is the zero function, such as... Figure 11D As shown. The inverse ReLU function consists of two linear segments that intersect at the origin (0,0), and can be expressed as...
[0167] Example E: The inverse leaky ReLU function is used for ALF shearing. If the sample difference is less than or equal to zero, the linear function is the identity function (slope equal to 1); while if the sample difference is greater than zero, the slope of the linear function is less than 1, such as... Figure 11E As shown. The inverse leaky ReLU function consists of two linear segments that intersect at the origin (0,0), and can be expressed as:
[0168] Example F: The ReLU function with clipping is used for ALF clipping. If the sample difference is greater than or equal to zero and less than a threshold, the linear function is the identity function (slope equal to 1). For sample differences greater than or equal to a threshold, the sample differences are clipped to the threshold. If the sample difference is less than zero, the linear function is the zero function, such as... Figure 11F As shown. The ReLU function with shearing consists of three linear segments segmented at x = ki and the origin (0,0), and can be expressed as follows:
[0169] Example G: The leakyReLU function with clipping is used for ALF clipping. If the sample difference is greater than or equal to zero and less than a threshold, the linear function is the identity function (slope equal to 1). For sample differences greater than or equal to a threshold, the sample differences are clipped to the threshold. If the sample difference is less than zero, the slope of the linear function is smaller, such as... Figure 11G As shown. The leaky ReLU function with shearing consists of three linear segments piecewise at x = ki and the origin (0,0), and can be expressed as:
[0170] Example H: Absolute shearing is used for Adaptive Loop Filtering (ALF) shearing. If the sample difference is greater than or equal to zero and less than a threshold, the linear function is the identity function (slope equal to 1). For sample differences greater than or equal to the threshold, the sample difference is sheared to the threshold. If the sample difference is negative, the sheared value will be the absolute value of the sample difference, such as... Figure 11H As shown. The absolute shear function consists of four linear segments, segmented at x = ki, x = -ki, and the origin (0,0), and can be expressed as...
[0171] Example 1: Back shearing is used for adaptive loop filter (ALF) shearing. If the sample difference is less than a positive threshold or greater than a negative threshold, the sample difference will be sheared to the threshold. For sample differences greater than a positive threshold or less than a negative threshold, an identity function (with a slope of 1) is applied, such as... Figure 11I As shown. The back shear function consists of four linear segments, segmented at x = ki, x = -ki, and the origin (0,0), and can be expressed as...
[0172] Example J: Mini-maximum shearing is used for adaptive loop filtering (ALF) shearing. If the sample difference lies between a positive threshold 1 and a positive threshold 2, an identity function (with a slope of 1) is applied. For sample differences greater than positive threshold 2 / less than positive threshold 1, the sample difference is sheared to the threshold 2 / threshold 1 value. A similar concept can be extended to the negative part, such as... Figure 11J As shown. The back shear function consists of six linear segments, segmented at x = ±ki, x = ±kj and the origin (0,0), and can be expressed as...
[0173] Example K: The shifted ReLU function is used for shearing in Adaptive Loop Filtering (ALF). If the sample difference is greater than or equal to an offset or vector, the linear function is the identity function (slope equal to 1). If the sample difference is less than the offset, the linear function is the zero function, such as... Figure 11K As shown. The shift ReLU function consists of two linear segments that intersect at the coordinates of the point shifted from the origin (0,0) and the offset value, and can be expressed as...
[0174] Example L: The shifted ReLU function with shearing is used for adaptive loop filtering (ALF) shearing. If the sample difference is greater than or equal to an offset and less than a threshold, the linear function is the identity function (slope equal to 1). For sample differences greater than or equal to the threshold, the sample differences are sheared to the threshold. If the sample difference is less than the offset, the linear function is the zero function, such as... Figure 11L As shown. The shifted ReLU function consists of three linear segments, segmented at x = ki and x = offset, and can be expressed as...
[0175] Example M: The shifted LeakyReLU function is used for adaptive loop filtering (ALF) shearing. If the sample difference is greater than or equal to an offset, the linear function is the identity function (slope equals 1); while if the sample difference is less than the offset, the slope of the linear function is less than 1, such as... Figure 11M As shown. The shift-LeakyReLU function consists of two linear segments, segmented at x = offset, and can be expressed as...
[0176] Example N: The shifted LeakyReLU function with shearing is used for adaptive loop filtering (ALF) shearing. If the sample difference is greater than or equal to an offset and less than a threshold, the linear function is the identity function (slope equal to 1). For sample differences greater than or equal to the threshold, the sample differences are sheared to the threshold. If the sample difference is less than the offset, the slope of the linear function is less than 1. Figure 11N As shown. The shift-leakyReLU function with shearing consists of three linear segments, segmented at x = ki and x = offset, and can be expressed as
[0177] Example O: A shifted ReLU function with non-constant shearing is used for adaptive loop filtering (ALF) shearing. The linear function is the identity function (slope equal to 1) if the sample difference is greater than or equal to an offset and less than a threshold. For sample differences greater than or equal to the threshold, the slope of the linear function is less than 1. If the sample difference is less than the offset, the linear function is the zero function, such as... Figure 11O As shown. The shift ReLU function with non-constant shear consists of three linear segments, segmented at x = ki and x = offset, and can be expressed as
[0178] Example P: The shifted LeakyReLU function with non-constant shearing is used for adaptive loop filtering (ALF) shearing. The linear function is identical (slope equal to 1) if the sample difference is greater than or equal to an offset and less than a threshold. For sample differences greater than or equal to the threshold, the slope of the linear function is less than 1. If the sample difference is less than the offset, the slope of the linear function is less than 1. Figure 11P As shown. The shift-LeakyReLU function with non-constant shear consists of three linear segments, segmented at x = ki and x = offset, and can be expressed as
[0179] Example Q: A sawtooth wave function with shearing is used for adaptive loop filtering (ALF) shearing. If the sample difference is within an interval, the linear function is the identity function (slope equal to 1). If the sample difference is greater than or less than an offset, the linear function is the inverse identity function (slope equal to -1). For sample differences greater than 2... Offset or less than -2 The offset, where the sample difference is clipped to zero, is as follows: Figure 11Q As shown, the sawtooth wavefunction with shearing consists of three linear segments, segmented at x = ki and x = -ki, and can be expressed as...
[0180] Example R: Periodic sawtooth wave functions are used for adaptive loop filtering (ALF) shearing. Linear functions with slopes equal to 1 and -1 are periodically used to shear sample differences, such as... Figure 11R As shown, the periodic sawtooth wave function consists of multiple linear segments.
[0181] In other embodiments, non-piecewise functions can be used for ALF clipping.
[0182] Example S: Use the sigmoid function to cut ALF.
[0183] Example T: Use the hyperbolic tangent (tanh) function for ALF shearing.
[0184] Example U: The VVC or ECM shearing operation (minimum-maximum shear) can be used in conjunction with other examples.
[0185] In one embodiment, for grammar design, different coefficients have different sets of clipping operations. The set of clipping operations used for a coefficient can be determined based on the source to which the coefficient will be applied, by the index of the coefficient, or by the classification result.
[0186] In other embodiments, the ALF consists of pre-ALF taps, pre-DBF taps, taps based on fixed filter outputs, and cross-component taps, wherein the cross-component taps perform luminance / chrominance component filtering using the luminance / chrominance component coefficients of the signaled chrominance / luminance sample values. In such an ALF, the cross-component taps perform filtering operations using alternative shearing functions (e.g., embodiments A-T, such as ReLU / leakyReLU shearing functions), while the other taps perform filtering operations using shearing similar to VVC / ECM (e.g., embodiment U).
[0187] In ALF, two index sets are predefined. For coefficients in the first index set, the cutoff threshold is {1024, 128, 32, 8}, while for coefficients in the second index set, the cutoff threshold is {1024, 64, 16, 4}.
[0188] Furthermore, in another embodiment, for the classification operation of sample blocks, each NxN block will be classified into different categories. For some categories (indicated by the category index), an alternative shearing function (e.g., in embodiments A~T, such as the ReLU / leakyReLU shearing function) is used, while for other categories, a shearing operation similar to VVC / ECM is used (e.g., in embodiment U).
[0189] In other embodiments, whether alternative cuts are used and / or which set of alternative cuts is used is signaled at the APS / filter set / filter level or image / sub-image / piece / tile / CTB / block level of the video bitstream syntax.
[0190] In a further embodiment, as shown in the table below, the first bin of the encoding and decoding indicates the use of a ReLU-type shearing operation. If the first bin is 1, the current coefficient uses a ReLU-type shearing operation. If the first bin is 0, the signal is assigned two additional bins to indicate the threshold of a VVC / ECM-like shearing operation with a corresponding threshold.
[0191] Table 4A
[0192] In addition, the table below shows another example where truncated binary is used in syntax design.
[0193] Table 4B
[0194] Further, as shown in the table below, at the APS / filter set level, a flag is added to the signal to indicate whether a VVC / ECM-like clipping operation or a ReLU-like clipping operation is used. If a VVC / ECM-like clipping operation is used, the signal at the filter level uses the same clipping syntax as VVC / ECM; if a ReLU-like clipping operation is used, an alternative clipping syntax signal is used or no clipping syntax signal is required.
[0195] Table 5A
[0196] Another example of a table: Table 5B
[0197] In other embodiments, whether to use alternative shearing and / or which set of alternative shearing operations to use is implicitly determined by some existing flags in the APS, such as classifier flags, ALF filter coefficient bit depth or coefficient precision flags, used alone or in combination.
[0198] In further embodiments, if a filter set selects a gradient-based classifier, a set of shearing operations is used for the filters in the filter set; if a filter set selects a band-based classifier, another set of shearing operations is used for the filters in the filter set; and if a filter set selects a residual-based classifier, yet another set of shearing operations is used for the filters in the filter set.
[0199] If a filter set chooses to signal with 8-bit coefficients, a VVC / ECM-like clipping operation with a clipping threshold set {1024, 128, 32, 8} is used for the filters in the filter set; if a filter set chooses to signal with less than 8-bit coefficients, a VVC / ECM-like clipping operation with a clipping threshold set {1024, 64, 16, 4} is used for the filters in the filter set. Otherwise, an alternative clipping function (e.g., embodiments A-T, such as the ReLU / leakyReLU clipping function) is selected.
[0200] Figure 12 A flowchart illustrating an example step method for processing video data according to an embodiment of the present disclosure is provided. The steps shown in the flowchart can be implemented at an encoder as program code executable on one or more processors (e.g., one or more CPUs). The steps shown in the flowchart can also be implemented in hardware, for example, by arranging one or more electronic devices or processors to perform the steps in the flowchart. The method includes: receiving an image of video data, wherein the image contains a current video region (1210); determining a filtering operation to be applied to the current video region (1220); determining a set of clipping index elements for the current video region (1230); and performing the filtering operation on the current video region according to the set of clipping index elements, generating a filtered current video region using a selected clipping function among a plurality of clipping functions, wherein the set of clipping index elements includes a first clipping index element indicating the selected clipping function, and a second clipping index element including a piecewise coordinate point element and a slope element, corresponding to function parameters for constructing the selected clipping function (1240).
[0201] In some embodiments, the current video region contains a current sample, and the filtering operation uses a clipping function to clip the difference between the value of a neighboring sample of the current sample and the value of the current sample.
[0202] In some embodiments, the shearing function corresponds to a piecewise shearing function group or a non-piecewise shearing function group; wherein the piecewise shearing function group includes a ReLU function, a LeakyReLU function, an inverse ReLU function, an inverse LeakyReLU function, a ReLU function with clipping, a LeakyReLU function with clipping, a shifted ReLU function with / without clipping, a shifted LeakyReLU function with / without clipping, a shifted ReLU function with non-constant clipping, a shifted LeakyReLU function with non-constant clipping, a sawtooth wave function with clipping, and a periodic sawtooth wave function, while the non-piecewise shearing function group includes a sigmoid function and a hyperbolic tangent (tanh) function.
[0203] In some embodiments, the method may further include embedding the cut index element set into a syntax of a video bitstream. The cut index element set is embedded into an adaptive parameter set (APS), filter set, or filter level of the syntax of the video bitstream.
[0204] In some embodiments, the first clipping index element may be determined based on the precision of a filter coefficient. Alternatively, the first clipping index element may be determined based on a source of filtered samples.
[0205] In some embodiments, the second shear index element further includes a shift vector element to move the segmented coordinate point element a distance in one direction according to the shift vector.
[0206] In some embodiments, the method may further include: performing a classification operation on the current region to classify the current region into a category indicated by a category index; and determining a first clipping index element based on the category index.
[0207] The proposed method described above can be implemented in the encoder and / or decoder. For example, the proposed method can be implemented in the loop filtering module of the encoder, and / or in the loop filtering module of the decoder.
[0208] Any of the ALF processing methods described above can be implemented in the encoder and / or decoder. For example, any proposed method can be implemented in the loop filter module of the encoder or decoder (e.g., Figure 1A and Figure 1BThe proposed method can be implemented as an ILPF 130. Alternatively, any proposed method can be implemented as a circuit connected to the encoder and / or motion compensation module's codec module, or the decoder's merge candidate derivation module. A simplified ALF method can also be implemented using executable software or firmware code stored on media such as a hard drive or flash memory for use by a central processing unit (CPU) or programmable device such as a digital signal processor (DSP) or field-programmable gate array (FPGA).
[0209] The flowcharts shown are intended to illustrate examples of video encoding and decoding according to this disclosure. Those skilled in the art can modify each step, rearrange the steps, split the steps, or combine the steps to implement this disclosure without departing from its spirit. Specific syntax and semantics are used in this disclosure to illustrate examples of implementing this disclosure. Those skilled in the art can implement this disclosure by using equivalent syntactic and semantic substitutions without departing from its spirit.
[0210] The foregoing description is intended to enable those skilled in the art to implement this disclosure in the context of a particular application and its requirements. Various modifications to the described embodiments will be apparent to those skilled in the art, and the general principles defined herein can be applied to other embodiments. Therefore, this disclosure is not intended to be limited to the specific embodiments shown and described, but should be given the broadest scope consistent with the principles and novel features disclosed herein. In the foregoing detailed description, various specific details have been shown to provide a thorough understanding of this disclosure. However, those skilled in the art will understand that this disclosure can be practiced.
[0211] The embodiments of this disclosure as described above can be implemented in various hardware, software code, or combinations of both. For example, embodiments of this disclosure may be one or more circuits integrated into a video compression chip, or program code integrated into video compression software, to perform the processes described herein. Embodiments of this disclosure may also be program code to be executed on a digital signal processor (DSP) to perform the processes described herein. This disclosure may also relate to multiple functions executed by a computer processor, digital signal processor, microprocessor, or field-programmable gate array (FPGA). These processors can be configured to execute machine-readable software code or firmware code to perform the specific methods embodied in this disclosure. The software code or firmware code can be developed in different programming languages and different formats or styles. The software code can also be compiled for different target platforms. However, different code formats, styles, and languages of software code and other configuration code methods for performing tasks according to this disclosure do not depart from the spirit and scope of this disclosure.
[0212] The foregoing outlines features of several embodiments or examples to enable those skilled in the art to better understand various aspects of this disclosure. Those skilled in the art should understand that they can readily use this disclosure as the basis for designing or modifying other processes and structures to achieve the same purposes and / or obtain the same advantages as the embodiments or examples described herein. Those skilled in the art should also recognize that these equivalent structures do not depart from the spirit and scope of this disclosure, and that they can make various changes, substitutions, and alterations without departing from the spirit and scope of this disclosure.
Claims
1. A decoder for decoding a video bitstream associated with video data, comprising: A storage module is configured to receive a video stream associated with an image of the video data, wherein the image contains a current video region; A processing module is used to perform the following steps: Determine a filtering operation to be applied to the current video region from the syntax of the video stream; Determine a clipping index element set for the current video region. as well as A filter is used to perform the filtering operation on the current video region based on the set of clipping index elements, generating the filtered current video region using a selected clipping function from a plurality of clipping functions. The shear index element set is used to indicate the selected shear function, a piecewise coordinate point element, and a slope element to construct the selected shear function.
2. The decoder of claim 1, wherein the cut index element set is determined by an adaptive parameter set (APS) in the syntax of the video bitstream.
3. The decoder as claimed in claim 1, wherein the clipping function corresponds to a group of piecewise clipping functions, including a ReLU function, a LeakyReLU function, an inverse ReLU function, an inverse LeakyReLU function, a clipped ReLU function, a clipped LeakyReLU function, a shifted ReLU function with / without clipping, a shifted LeakyReLU function with / without clipping, a shifted ReLU function with non-constant clipping, a shifted LeakyReLU function with non-constant clipping, a clipped sawtooth wave function, and a periodic sawtooth wave function.
4. The decoder as claimed in claim 1, wherein the shearing function corresponds to a group of non-piecewise shearing functions, including a sigmoid function and a hyperbolic tangent (tanh) function.
5. The decoder of claim 1, wherein the cut index element set is further configured to indicate a shift vector element to move the segmented coordinate point element a distance in one direction according to the shift vector.
6. The decoder of claim 1, wherein the current video region comprises a current sample, and wherein the filtering operation is to use a clipping function to clip the difference between the value of a neighboring sample of the current sample and the value of the current sample.
7. The decoder of claim 1, further comprising: Perform a classification operation on the current region to classify it into a category indicated by a category index; as well as The set of clipping index elements is determined based on the category index.
8. A method for processing video data, comprising: Receive an image of the video data, wherein the image contains a current video region; Determine a filtering operation to be applied to the current video region; Determine a clipping index element set for the current video region. as well as The filtering operation is performed on the current video region, generating a filtered version of the current video region using a selected clipping function from a set of multiple clipping functions. The shear index element set is used to indicate the selected shear function, a piecewise coordinate point element, and a slope element to construct the selected shear function.
9. The method of claim 8, further comprising: Embed the cut index element set into a syntax of a video stream.
10. The method of claim 9, wherein the cut index element set is embedded in the adaptive parameter set (APS), filter set, or filter level of the syntax of the video bitstream.
11. The method of claim 8, wherein the shearing function corresponds to a piecewise shearing function group, including a ReLU function, a LeakyReLU function, an inverse ReLU function, an inverse LeakyReLU function, a ReLU function with clipping, a LeakyReLU function with clipping, a shift ReLU function with / without clipping, a shift LeakyReLU function with / without clipping, a shift ReLU function with non-constant clipping, a shift LeakyReLU function with non-constant clipping, a sawtooth wave function with clipping, and a periodic sawtooth wave function.
12. The method of claim 8, wherein the shearing function corresponds to a group of non-piecewise shearing functions, including a sigmoid function and a hyperbolic tangent (tanh) function.
13. The method of claim 8, wherein the shear index element set is further configured to indicate a shift vector element to move the segmented coordinate point element a distance in one direction according to the shift vector.
14. The method of claim 8, wherein the current video region comprises a current sample, and wherein the filtering operation is to use a clipping function to clip a difference between the value of a neighboring sample of the current sample and the value of the current sample.
15. The method of claim 8, further comprising: Perform a classification operation on the current region to classify it into a category indicated by a category index; as well as The set of clipping index elements is determined based on the category index.
16. The method of claim 8, wherein the cut index element set is determined based on the precision of a filter coefficient.
17. The method of claim 8, wherein the cut index element set is determined based on a filtered sample source.
18. The method of claim 8, wherein the cut index element set is determined based on the bit-depth of the ALF filter coefficients.
19. A method for processing video data, comprising: Receive an image containing video data, wherein the image contains a current video region; Determine a filtering operation to be applied to the current video region; Determine a clipping index element set for the current video region. as well as The filtering operation is performed on the current video region, generating a filtered current video region using a selected clipping function from a set of multiple clipping functions. The set of clipping index elements is used to indicate the selected clipping function and is implicitly determined by an existing flag.
20. The method of claim 19, wherein the existing flag is associated with a category index, a filter coefficient precision, a source of a filtered sample, or an ALF filter coefficient bit depth.