Loop filter for use in an encoder and related signal processing method

By using a constraint-direction enhancement filter and decision circuit in the encoder, and referring to the list of filter strengths of previous frames to determine the optimal filter strength for the current frame, the problem of complex operations in the hardware is solved, enabling just-in-time encoding and reducing circuit complexity.

CN116112692BActive Publication Date: 2026-03-17REALTEK SEMICON CORP
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-04-12
Publication Date
2026-03-17

AI Technical Summary

Technical Problem

In the existing technology, the operation of the constrained direction enhancement filter is complex and computationally intensive, making it difficult to implement real-time encoding in hardware.

Method used

A constrained direction enhancement filter and decision circuit are adopted to determine the optimal filtering strength of the current frame by referring to the list of filtering strengths of previous frames, and the filtering operation is implemented in hardware to reduce the complexity of circuit design and support just-in-time encoding.

Benefits of technology

It enables efficient determination of the filter strength list in hardware, supports on-the-fly encoding and reduces circuit complexity, and is suitable for loop filter processing in encoders.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116112692B_ABST
    Figure CN116112692B_ABST
Patent Text Reader

Abstract

The present application provides a loop filter for an encoder, which comprises a constrained directional enhancement filter and a decision circuit. The constrained directional enhancement filter is used to process a plurality of frames, wherein for a first frame of the plurality of frames, the constrained directional enhancement filter determines the best filter strength for each block in the first frame from a first filter strength list, and determines a second filter strength list according to the content of the first frame. The decision circuit is used to record which index number in the first filter strength list the best filter strength corresponding to each block in the first frame is, and provides the first filter strength list and the index number corresponding to each block to an encoding circuit of the encoder as the output of the encoder.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to video encoders, and more particularly to loop filters for encoders and related signal processing methods. Background Technology

[0002] In the AV1 (AOMedia Video 1) video coding format defined by the Open Media Consortium (AOMedia), a Constraint Directional Enhancement Filter (CDEF) is used to remove coding artifacts in the video encoder, thereby improving image quality. In the operation of the CDEF, firstly, for each block in a frame (e.g., a block containing 64*64 pixels), the CDEF uses 64 different filter intensities to filter the block, producing 64 filtered results. Then, the mean-square error (MSE) between each filtered result and the original brightness of the block is calculated, and the filter intensity corresponding to the filter result with the smallest MSE is selected as the optimal filter intensity for that block. Next, after determining the optimal filter intensity for each block, a frame-level filter strength list is created based on these optimal filter intensities. The AV1 specification specifies that the length of the filter strength list can be 1, 2, 4, or 8, meaning the filter strength list can only include 1, 2, 4, or 8 filter strengths. Specifically, after the mean square error (MSE) of all blocks in the entire frame is calculated, filter strength lists of the four lengths mentioned above are created based on the MSE of multiple blocks and the optimal filter strength. The rate-distortion cost (RD cost) of each filter strength list is then calculated. The filter strength list with the lowest RD cost is then selected as the final filter strength list. After determining the final filter strength list, each block in the frame needs to select an optimal filter strength from the final filter strength list again, and the index of the optimal filter strength corresponding to each block in the final filter strength list is recorded. Finally, the final filter strength list and the index corresponding to each block are incorporated into the bitstream and transmitted to other electronic devices or components.

[0003] However, since the above encoding method requires waiting for the mean square error to be calculated for all blocks in the frame before determining the final filter strength list, it is not suitable for hardware implementation due to signal delay considerations. Furthermore, the computational load is too large, as each block requires 64 different filtering intensities, 64 mean square errors to be calculated, and the final filter strength list to be selected from four lists. Therefore, it is difficult to perform real-time encoding in hardware. Summary of the Invention

[0004] Therefore, one object of the present invention is to provide an encoder and associated encoding method that can effectively determine the list of filter strengths and perform the operation of the constrained direction enhancement filter, thereby solving the problems described in the prior art.

[0005] In one embodiment of the present invention, a loop filter for an encoder is disclosed, comprising a constrained direction enhancement filter and a decision circuit. The constrained direction enhancement filter processes multiple frames, wherein, for a first frame, the constrained direction enhancement filter determines the optimal filter intensity for each block in the first frame in a first filter intensity list, and determines a second filter intensity list based on the content of the first frame; and for a second frame, the constrained direction enhancement filter determines the optimal filter intensity for each block in the second frame in the second filter intensity list, and determines a third filter intensity list based on the content of the second frame. The decision circuit is coupled to the constrained direction enhancement filter and is used to record which index in the first filter intensity list corresponds to the optimal filter intensity for each block in the first frame, and provides the first filter intensity list and the index corresponding to each block to an encoding circuit of the encoder as the output of the encoder.

[0006] In another embodiment of the present invention, a signal processing method for an encoder is disclosed, comprising the following steps: sequentially receiving a plurality of frames; for a first frame among the plurality of frames, determining the optimal filter strength of each block in the first frame in a first filter strength list, and determining a second filter strength list based on the content of the first frame; recording which number in the first filter strength list corresponds to the optimal filter strength of each block in the first frame, and providing the first filter strength list and the number corresponding to each block to an encoding circuit of the encoder as the output of the encoder; and for a second frame among the plurality of frames, determining the optimal filter strength of each block in the second frame in the second filter strength list, and determining a third filter strength list based on the content of the second frame. Attached Figure Description

[0007] Figure 1 This is a schematic diagram of an encoder according to an embodiment of the present invention;

[0008] Figure 2 , Figure 3 This is a diagram illustrating the directional lookup of blocks as mentioned in the AV1 video encoding format;

[0009] Figure 4 , Figure 5 This is a schematic diagram of the main filter taps corresponding to different directions mentioned in the AV1 video encoding format;

[0010] Figure 6 This is a schematic diagram of the secondary filter taps mentioned in the AV1 video encoding format;

[0011] Figure 7 This is a schematic diagram illustrating a list of filter strengths for multiple frames referencing previous frames, according to an embodiment of the present invention.

[0012] Figure 8 A schematic diagram illustrating the calculation of brightness values ​​before and after processing using a deblocking circuit for constrained directional enhancement filters. Detailed Implementation

[0013] Figure 1 This is a schematic diagram of an encoder 100 according to an embodiment of the present invention. Figure 1 As shown, encoder 100 includes a prediction circuit 110, a transformation circuit 120, a quantization circuit 130, an encoding circuit 140, an inverse quantization circuit 150, an inverse transformation circuit 160, and a loop filter 170. Loop filter 170 includes a de-blocking circuit 172, a constraint direction enhancement filter 174, and a decision circuit 176. In this embodiment, encoder 100 supports the AV1 video encoding format defined by the Open Media Consortium (AOMedia).

[0014] In the main operation of encoder 100, prediction circuit 110 receives external image data (image frames) and interpolated frames or predicted image data generated internally by encoder 100, thereby generating predicted image data and residual error data. Specifically, prediction circuit 110 first divides the received frame into multiple blocks and performs inter-frame prediction, intra-frame prediction, motion estimation, and / or motion compensation on these multiple blocks to generate predicted image data and multiple residual error data corresponding to the multiple blocks. Next, conversion circuit 120 performs Discrete Cosine Transform (DCT) on the multiple residual error data to convert the residual error data into frequency domain data. Then, quantization circuit 130 quantizes the frequency domain data generated by conversion circuit 120 to generate quantized data, where the quantization operation of each frame corresponds to a quantization parameter, and the quantization parameter is then processed by encoding circuit 140 to generate encoded data, which is then transmitted to a decoder (not shown) through a back-end channel. Furthermore, the dequantization circuit 150 performs a dequantization operation on the quantized data generated by the quantization circuit 130, while the inverse conversion circuit 160 performs an inverse conversion operation (inverse discrete cosine transform) on the output of the dequantization circuit 150 to generate inverse-converted residual error data. Then, the predicted image data generated by the prediction circuit 110 is added to the inverse-converted residual error data generated by the dequantization circuit 150 to generate input image data, which is then fed into the loop filter 170. Since the residual error data is distorted during the operation of the conversion circuit 120, quantization circuit 130, dequantization circuit 150, and inverse conversion circuit 160, and because the prediction circuit 110 processes images in blocks, the input image data will have some differences in texture compared to the original image data. The loop filter 170 is used to reduce these differences.

[0015] It should be noted that the operation of the prediction circuit 110, conversion circuit 120, quantization circuit 130, encoding circuit 140, inverse quantization circuit 150 and inverse conversion circuit 160 in encoder 100 is well known to those skilled in the art, and the focus of the present invention is on the deblocking circuit 172, constraint direction enhancement filter 174 and decision circuit 176 in loop filter 170. Therefore, the following description mainly focuses on the loop filter 170.

[0016] In the operation of loop filter 170, deblocking circuit 172 filters the input image data to eliminate the blocking effect caused by quantization errors at block boundaries. The deblocking circuit mainly performs three tasks: boundary strength calculation, boundary analysis, and filter implementation. Since deblocking circuit 172 is commonly found in block-based codecs, its details will not be elaborated here. Next, regarding the operation of constrained direction enhancement filter 174, please refer to [reference needed]. Figure 2 , Figure 3 As shown, the AV1 video encoding format specification mentions performing direction lookup on blocks to determine which of the eight different directions (d=0~7) the texture of that block belongs to; further refer to... Figures 4-6 As shown, the AV1 video encoding format specification also mentions primary and secondary filter taps corresponding to different directions. In the primary filter taps, the values ​​a and b in the diagram can be (2, 4) or (3, 3) respectively, depending on the intensity classification. Therefore, since there are 16 filter intensities for the primary filter taps and 4 filter intensities for the secondary filter taps, it can be considered as having 64 filter intensities (i.e., 16 primary filter taps multiplied by 4 secondary filter taps). However, as described in the prior art, selecting 64 filter intensities would be too complex for the operation of the constrained direction enhancement filter 174. Therefore, this embodiment only selects a portion of the filter intensities for subsequent operations to reduce the complexity of the circuit design and achieve real-time processing. In the following example, the selection of 5 primary filter taps and 2 secondary filter taps is used for illustration. That is, in this embodiment there will only be 10 filter strengths (i.e., 5 primary filter taps multiplied by 2 secondary filter taps). The selection of 5 primary filter taps and 2 secondary filter taps can be done in any suitable way, such as equidistant selection, but the present invention is not limited thereto.

[0017] In the operation of the constrained orientation enhancement filter 174, each frame directly uses the list of filter intensities determined by the constrained orientation enhancement filter 174 and the decision circuit 176 when processing the previous frame to determine the optimal filter intensity for each block in that frame. Simultaneously, the constrained orientation enhancement filter 174 also uses 10 preset different filter intensities to filter the block, generating 10 filtering results. Then, the mean square error (MSE) between each filtering result and the original brightness of the block is calculated, and the filter intensity corresponding to the filtering result with the smallest MSE is selected as the optimal filter intensity for that block. Next, after determining the optimal filter intensity for each block, it is determined based on the rate-distortion cost as described in the prior art for these optimal filters.

[0018] Specifically, refer to Figure 7 It shows multiple frames and their corresponding quantization parameters (QP) and picture order counts (POC). These multiple frames include a key frame and multiple inter-frame coded frames, and the inter-frame coded frames can be generated based on the content of other frames. Figure 7 The arrows above indicate which frames the frame referenced for generation. For example, the content of a frame with a POC of 2 can be generated based on the content of frames with POCs of 0 and 4. In the operation of the loop filter 170, firstly, when processing a keyframe with a POC of 0, the constrained orientation enhancement filter 174 can look up a list of filter intensities based on the quantization parameter "20" of the keyframe. This list includes one or more of the aforementioned 10 filter intensities. Assuming the list includes four different filter intensities, the constrained orientation enhancement filter 174 uses these four different filter intensities to filter each block in the keyframe, generating four filtering results. Then, it calculates the mean square error between each filtering result and the original brightness of the block (i.e., the input image data to the loop filter 170 or the output of the deblocking circuit 172), and selects the filter intensity corresponding to the filtering result with the smallest mean square error as the optimal filter intensity for that block. After determining the optimal filtering strength for each block, the decision circuit 176 records which index in the filtering strength list corresponds to the optimal filtering strength for each block. Finally, the filtering strength list and the index corresponding to each block are transmitted to the encoding circuit 140 and incorporated into the bit stream and transmitted to other electronic devices or other components.

[0019] In addition, the constrained direction enhancement filter 174 also uses 10 preset different filter intensities to filter each block in the keyframe with a POC of 0 to generate 10 filter results. Then, it calculates the mean square error between each filter result and the original brightness of the block, and selects the filter intensity corresponding to the filter result with the smallest mean square error as the optimal filter intensity for that block. Next, after determining the optimal filter intensity for each block, it establishes multiple candidate filter intensity lists of different lengths based on the mean square errors of multiple blocks and the optimal filter intensities, and calculates the rate-distortion cost (RD cost) for each filter intensity list. Finally, it selects the candidate filter intensity list with the smallest rate-distortion cost as the final filter intensity list.

[0020] When processing inter-coded frames with a POC of 1, the constrained direction enhancement filter 174 can look up a table based on the quantization parameter "28" of the keyframe to obtain a list of filter strengths, for example, a list containing only two different filter strengths. Then, through operations similar to those described for the keyframe, the optimal filter strength for each block is obtained. The decision circuit 176 records which index in the filter strength list corresponds to the optimal filter strength for each block, and then transmits the filter strength list and the index corresponding to each block to the encoding circuit 140 for transmission to other electronic devices or components. Furthermore, the constrained direction enhancement filter 174 also uses 10 preset different filter strengths to perform filtering operations on each block in the inter-coded frame with a POC of 1 to determine its own list of filter strengths.

[0021] When processing inter-coded frames with a POC of 2, the processing method is the same as that for inter-coded frames with a POC of 1 and keyframes with a POC of 0.

[0022] Next, when processing inter-coded frames with a POC of 3, since the corresponding quantization parameter "28" is the same as that of inter-coded frames with a POC of 1, the filter strength list determined when processing inter-coded frames with a POC of 3 can be directly used. For example, a filter strength list that includes only two different filter strengths can be used. The constrained direction enhancement filter 174 directly uses these two different filter strengths to perform filtering operations on each block in the inter-coded frame to produce two filtering results. Then, the mean square error between each filtering result and the original brightness of the block (i.e., the input image data to the loop filter 170 or the output of the deblocking circuit 172) is calculated, and the filter strength corresponding to the filtering result with the smallest mean square error is selected as the optimal filter strength for that block. Then, the decision circuit 176 records which number in the filter strength list corresponds to the optimal filter strength for each block, and then transmits the filter strength list and the number corresponding to each block to the encoding circuit 140 for transmission to other electronic devices or other components.

[0023] Furthermore, the constrained direction enhancement filter 174 and the decision circuit 176 directly use the filter strength list determined when processing inter-coded frames with a POC of 1 to process inter-coded frames with a POC of 3. This allows them to obtain the optimal filter strength for each block. Simultaneously, the constrained direction enhancement filter 174 uses 10 preset different filter strengths to filter each block in the inter-coded frame with a POC of 3, generating 10 filtering results. Then, the mean square error between each filtering result and the original brightness of the block is calculated, and the filter strength corresponding to the filtering result with the smallest mean square error is selected as the optimal filter strength for that block. Next, after determining the optimal filter strength for each block, multiple candidate filter strength lists of different lengths are established based on the mean square errors of multiple blocks and the optimal filter strength. The rate-distortion cost (RD cost) of each filter strength list is calculated accordingly. Finally, the candidate filter strength list with the smallest rate-distortion cost is selected as the final filter strength list.

[0024] In simple terms, when processing inter-coded frames with a POC of 3, the constrained direction enhancement filter 174 and the decision circuit 176 directly use the filter strength list determined when processing inter-coded frames with a POC of 1 to process the inter-coded frames with a POC of 3. That is, the optimal filter strength transmitted to each block in the bitstream is selected by the filter strength list determined by the inter-coded frames with a POC of 1. In the above operation, since it is not necessary to determine its own filter strength list before processing inter-coded frames with a POC of 3, the encoding operation can be accelerated. In addition, since inter-coded frames with a POC of 3 are very close to inter-coded frames with a POC of 1, the image content will not change much, so the above operation will not cause too much error or distortion to the image processing. On the other hand, when processing inter-coded frames with a POC of 3, it also generates its own most suitable filter strength list, but it does not use this filter strength list itself, but uses it for subsequent frames.

[0025] When processing inter-coded frames with a POC of 4, the processing method is the same as that for frames with POCs of 0, 1, and 2.

[0026] When processing inter-coded frames with a POC of 5, the processing method is similar to that for inter-coded frames with a POC of 3. Simply put, since the quantization parameter "28" corresponding to the inter-coded frame with a POC of 5 is the same as that for the inter-coded frame with a POC of 3, the constraint direction enhancement filter 174 and the decision circuit 176 directly use the filter strength list determined when processing the inter-coded frame with a POC of 3 to process the inter-coded frame with a POC of 5. That is, the optimal filter strength transmitted to each block in the bitstream is selected by the filter strength list determined by the inter-coded frame with a POC of 3. Furthermore, when processing the inter-coded frame with a POC of 5, a filter strength list that is most suitable for itself is also generated, but it is not used by itself; instead, it is used by subsequent frames.

[0027] When processing inter-coded frames with a POC of 1, the constrained direction enhancement filter 174 can look up a table based on the quantization parameter "28" of the keyframe to obtain a list of filter strengths, for example, a list containing only two different filter strengths. Then, through operations similar to those described for the keyframe, the optimal filter strength for each block is obtained. The decision circuit 176 records which index in the filter strength list corresponds to the optimal filter strength for each block, and then transmits the filter strength list and the index corresponding to each block to the encoding circuit 140 for transmission to other electronic devices or components. Furthermore, the constrained direction enhancement filter 174 also uses 10 preset different filter strengths to perform filtering operations on each block in the inter-coded frame with a POC of 1 to determine its own list of filter strengths.

[0028] When processing inter-coded frames with a POC of 2, the processing method is the same as that for inter-coded frames with a POC of 1 and keyframes with a POC of 0.

[0029] Next, when processing inter-coded frames with a POC of 3, since its corresponding quantization parameter "28" is the same as that of inter-coded frames with a POC of 1, the inter-coded frames with a POC of 3 can directly use the filter strength list determined when processing the inter-coded frames with a POC of 1. For example, a filter strength list that includes only two different filter strengths. The constrained direction enhancement filter 174 directly uses these two different filter strengths to perform filtering operations on each block in the inter-coded frame to produce two filtering results. Then, the mean square error between each filtering result and the original brightness of the block (i.e., the input image data to the loop filter 170 or the output of the deblocking circuit 172) is calculated, and the filter strength corresponding to the filtering result with the smallest mean square error is selected as the optimal filter strength for that block. Then, the decision circuit 176 records which number in the filter strength list corresponds to the optimal filter strength for each block, and then transmits the filter strength list and the number corresponding to each block to the encoding circuit 140 for transmission to other electronic devices or other components.

[0030] Furthermore, the constrained direction enhancement filter 174 and the decision circuit 176 directly use the filter strength list determined when processing inter-coded frames with a POC of 1 to process inter-coded frames with a POC of 3. This obtains the optimal filter strength for each block. Simultaneously, the constrained direction enhancement filter 174 uses 10 preset different filter strengths to filter each block in the inter-coded frame with a POC of 3, generating 10 filtering results. Then, the mean square error between each filtering result and the original brightness of the block is calculated, and the filter strength corresponding to the filtering result with the smallest mean square error is selected as the optimal filter strength for that block. Next, after determining the optimal filter strength for each block, multiple candidate filter strength lists of different lengths are established based on the mean square errors of multiple blocks and the optimal filter strength. The rate-distortion cost (RD cost) of each filter strength list is calculated accordingly. Finally, the candidate filter strength list with the smallest rate-distortion cost is selected as the final filter strength list.

[0031] In simple terms, when processing inter-coded frames with a POC of 3, the constrained direction enhancement filter 174 and the decision circuit 176 directly use the filter strength list determined when processing inter-coded frames with a POC of 1 to process the inter-coded frames with a POC of 3. That is, the optimal filter strength for each block transmitted to the bitstream is selected by the filter strength list determined by the inter-coded frames with a POC of 1. In the above operation, since it is not necessary to determine its own filter strength list before processing inter-coded frames with a POC of 3, the encoding operation can be accelerated. In addition, since inter-coded frames with a POC of 3 are very close to inter-coded frames with a POC of 1, the image content will not change much, so the above operation will not cause too much error or distortion to the image processing. On the other hand, when processing inter-coded frames with a POC of 3, it also generates its own most suitable filter strength list, but it does not use this filter strength list itself, but uses it for subsequent frames.

[0032] When processing inter-coded frames with a POC of 4, the processing method is the same as that for frames with POCs of 0, 1, and 2.

[0033] When processing inter-coded frames with a POC of 5, the processing method is similar to that for inter-coded frames with a POC of 3. Simply put, since the quantization parameter "28" corresponding to the inter-coded frame with a POC of 5 is the same as that for the inter-coded frame with a POC of 3, the constraint direction enhancement filter 174 and the decision circuit 176 directly use the filter strength list determined when processing the inter-coded frame with a POC of 3 to process the inter-coded frame with a POC of 5. That is, the optimal filter strength transmitted to each block in the bitstream is selected by the filter strength list determined by the inter-coded frame with a POC of 3. Furthermore, when processing the inter-coded frame with a POC of 5, a filter strength list that is most suitable for itself is also generated, but it is not used by itself; instead, it is used by subsequent frames.

[0034] The subsequent processing of frames with POCs of 6 to 12 can refer to the above description, that is, directly use the filter strength list determined by the previous frame to determine the best filter strength for each block of the current frame, where the previous frame is the frame with the same quantization parameters and the closest to the current frame, and at the same time generate the most suitable filter strength list for the current frame to use for subsequent frames. Figure 7 The arrows below show a list of filter strengths to be referenced when processing the current frame, which determines which previous frame to use.

[0035] In one embodiment, to avoid affecting the parallel operation of the pipeline, when the constrained direction enhancement filter 174 calculates the mean square error of the blocks, the upper left region uses the brightness value after processing by the deblocking circuit 172, while the remaining region uses the brightness value before processing by the deblocking circuit 172. For example, refer to... Figure 8 The illustration shows a block of 64*64 pixels. When the constrained orientation enhancement filter 174 calculates the mean square error of the block, the 56*56 pixels in the diagonal region are the brightness values ​​after processing by the deblocking circuit 172, while the blank areas use the brightness values ​​before processing by the deblocking circuit 172. This design is because, in this embodiment, the deblocking circuit 172 needs to be offset 8 pixels to the upper left during operation. Therefore, the constrained orientation enhancement filter 174 may not be able to immediately obtain the brightness values ​​processed by the deblocking circuit 172 when processing the blank areas shown in the illustration. However, this invention is not limited to this.

[0036] It should be noted that in the examples above, the luminance (luma) value of the pixels is used for explanation in many places, but the loop filter 170 also processes the chroma (chroma) value at the same time during operation, and the processing method is similar to that described above.

[0037] In summary, the loop filter and related signal processing method for encoders of this invention utilizes the filter strength list of previous frames to process the current frame and simultaneously determines the filter strength list of the current frame for use by subsequent frames. This effectively enables parallel computation and achieves real-time encoding, and can also be implemented using hardware circuitry.

[0038] The above description is only a preferred embodiment of the present invention. Any equivalent changes and modifications made in accordance with the scope of the patent application of the present invention shall be within the scope of the present invention.

[0039] Explanation of reference numerals in the attached figures:

[0040] 100: Encoder

[0041] 110: Predictive Circuit

[0042] 120: Conversion circuit

[0043] 130: Quantization circuit

[0044] 140: Encoding circuit

[0045] 150: Dequantization circuit

[0046] 160: Inverting Conversion Circuit

[0047] 170: Loop Filter

[0048] 172: Deblocking Circuit

[0049] 174: Constrained Direction Enhancement Filter

[0050] 176: Decision Circuit

Claims

1. A loop filter for use in an encoder, comprising: a constrained directional enhancement filter configured to process a plurality of frames, wherein for a first frame of the plurality of frames, the constrained directional enhancement filter determines a best filter strength for each block in the first frame from a first list of filter strengths, and determines a second list of filter strengths based on content of the first frame; and for a second frame of the plurality of frames, the constrained directional enhancement filter determines a best filter strength for each block in the second frame from the second list of filter strengths, and determines a third list of filter strengths based on content of the second frame; and a decision circuit coupled to the constrained directional enhancement filter and configured to record which index of the first list of filter strengths corresponds to the best filter strength for each block in the first frame, and provide the first list of filter strengths and the index corresponding to each block to an encoding circuit of the encoder as an output of the encoder, wherein the constrained directional enhancement filter uses a plurality of different filter strengths to filter each block in the first frame to generate a plurality of filter results, and determines the second list of filter strengths based on the plurality of filter results for each block in the first frame. The constrained directional enhancement filter selects the first list of filter strengths by table lookup if a quantization parameter corresponding to the first frame is different from quantization parameters of frames of the plurality of frames that precede the first frame. The constrained directional enhancement filter does not use the second list of filter strengths to determine the best filter strength for each block in the first frame from the first list of filter strengths.

2. The loop filter of claim 1, wherein, The second frame is subsequent to the first frame, and the second frame corresponds to a same quantization parameter as the first frame.

3. The loop filter of claim 1, wherein, The constrained directional enhancement filter does not use the third list of filter strengths to determine the best filter strength for each block in the second frame from the second list of filter strengths.

4. The loop filter of claim 1, wherein, The constrained directional enhancement filter calculates a mean squared error of each filter result and an original luminance of the corresponding block, and for each block, selects a filter strength corresponding to a filter result having a smallest mean squared error as the best filter strength for the block.

5. The loop filter of claim 4, wherein, After determining the best filter strength for each block, the constrained directional enhancement filter establishes a candidate list of filter strengths based on the mean squared error and the best filter strength for each block, and calculates a rate-distortion cost of the candidate list of filter strengths to determine the second list of filter strengths.

6. The loop filter of claim 1, wherein, Further comprising:

7. The loop filter of claim 6, wherein, a deblocking circuit configured to deblock the plurality of frames to generate a plurality of processed frames to the constrained directional enhancement filter, wherein the plurality of processed frames comprises a processed first frame.

8. The loop filter of claim 1, wherein, ​ ​ The constrained directional enhancement filter determines the optimal filter strength in the first filter strength list for each block in the first frame based on the first frame and part of the processed first frame, and determines the second filter strength list based on the first frame and part of the processed first frame.

9. The loop filter of claim 8, wherein, For each block, the constrained directional enhancement filter uses the content of the first frame in a first area of the block and uses the content of the processed first frame in a second area of the block for determining the optimal filter strength in the first filter strength list for the block.

10. A signal processing method for use in an encoder, comprising: receiving a plurality of frames sequentially; for a first frame among the plurality of frames, determining an optimal filter strength in a first filter strength list for each block in the first frame, and determining a second filter strength list based on the content of the first frame; recording which number in the first filter strength list each block in the first frame corresponds to the optimal filter strength, and providing the first filter strength list and the number corresponding to each block to an encoding circuit of the encoder as an output of the encoder; and for a second frame among the plurality of frames, determining an optimal filter strength in the second filter strength list for each block in the second frame, and determining a third filter strength list based on the content of the second frame, wherein a plurality of different filter strengths are used to filter each block in the first frame to generate a plurality of filter results, and the second filter strength list is determined based on the filter results of each block in the first frame. ​

Citation Information

Patent Citations

  • Adaptive in-loop filtering for video coding

    CN110784725A

  • Directional deringing filters

    US20170013260A1