US-12621500-B1 - Fast search for parameters of an in-loop deringing filter
Abstract
Techniques for method for filtering artifacts from digital video are disclosed. In an example, a method includes accessing a video stream that includes a block with sub-blocks. The method includes, for each candidate filter strength parameter of a set of candidate filter strength parameters associated with the block, filtering each sub-block using a filter having the candidate filter strength parameter, creating a filtered block by combining the filtered sub-blocks, and calculating, for the filtered block, a distortion error measurement between a corresponding source block and the filtered block. The method includes selecting the filter strength parameters associated with a lowest distortion error measurement of the distortion error measurements. The method includes applying the selected filter strength parameters to an in-loop deringing filter to generate a filtered block of video.
Inventors
- Yi Guo
- Zhichu HE
- Rui Li
- Bo Ling
- Jing Wu
- Minxia Yang
- Shiyan Zhang
- Yichen Zhang
Assignees
- Zoom Video Communications, Inc.
Dates
- Publication Date
- 20260505
- Application Date
- 20230523
Claims (20)
- 1 . A method for filtering artifacts from digital video, the method comprising: accessing a video stream, wherein the video stream comprises a block comprising a plurality of sub-blocks; for each candidate filter strength parameter of a set of candidate filter strength parameters associated with the block: filtering each sub-block of the plurality of sub-blocks using a filter having the candidate filter strength parameter; creating a filtered block by combining the filtered sub-blocks; and calculating, for the filtered block, a distortion error measurement between a corresponding source block and the filtered block; selecting the candidate filter strength parameter associated with a lowest distortion error measurement of the distortion error measurements; and applying the selected filter strength parameter to an in-loop deringing filter to generate a filtered block of video.
- 2 . The method of claim 1 , wherein applying the selected filter strength parameters to the in-loop deringing filter comprises: filtering the block with the selected filter strength parameter; and outputting the filtered block of video.
- 3 . The method of claim 1 , wherein the plurality of sub-blocks represents at least a 4×4 block.
- 4 . The method of claim 1 , wherein the calculating the distortion error measurement comprises calculating an error for a portion of a sub-block.
- 5 . The method of claim 1 , wherein each block represents a luminance component of the video stream, wherein the applying further comprises: accessing, from the video stream, a chrominance component associated with the luminance component, the chrominance component comprising a chrominance block comprising a plurality of chrominance sub-blocks; filtering each chrominance sub-block of the plurality of chrominance sub-blocks using the filter having the candidate filter strength parameter; creating a filtered chrominance block by combining the filtered chrominance sub-blocks; and outputting the filtered chrominance block.
- 6 . The method of claim 1 , wherein calculating, for the filtered block, the distortion error measurement further comprises: determining that the distortion error measurement is greater than a threshold associated with a previously filtered block; and responsive to the determining, outputting previous filter parameters associated with the previously filtered block.
- 7 . The method of claim 1 , wherein the set of candidate filter strength parameters comprises a single filter parameter derived from one or more quantization parameters of the block.
- 8 . A system comprising: a non-transitory computer-readable medium storing processor-executable program instructions; and one or more processors communicatively coupled to the non-transitory computer-readable medium and configured to execute processor-executable program instructions stored in the non-transitory computer-readable medium to: access a video stream, wherein the video stream comprises a block comprising a plurality of sub-blocks; for each candidate filter strength parameter of a set of candidate filter strength parameters associated with the block: filter each sub-block of the plurality of sub-blocks using a filter having the candidate filter strength parameter; create a filtered block by combining the filtered sub-blocks; and calculate, for the filtered block, a distortion error measurement between a corresponding source block and the filtered block; select the candidate filter strength parameter associated with a lowest distortion error measurement of the distortion error measurements; and apply the selected filter strength parameter to an in-loop deringing filter to generate a filtered block of video.
- 9 . The system of claim 8 , wherein the one or more processors are configured to execute further processor-executable program instructions to: filter the block with the selected filter strength parameter; and output the filtered block of video.
- 10 . The system of claim 8 , wherein the plurality of sub-blocks represents at least a 4×4 block.
- 11 . The system of claim 8 , wherein the one or more processors are configured to execute further processor-executable program instructions to calculate an error for a portion of a sub-block.
- 12 . The system of claim 8 , wherein each block represents a luminance component of the video stream, wherein the one or more processors are configured to execute further processor-executable program instructions to: access, from the video stream, a chrominance component associated with the luminance component, the chrominance component comprising a chrominance block comprising a plurality of chrominance sub-blocks; filter each chrominance sub-block of the plurality of chrominance sub-blocks using the filter having the candidate filter strength parameter; create a filtered chrominance block by combining the filtered chrominance sub-blocks; and output the filtered chrominance block.
- 13 . The system of claim 8 , wherein the one or more processors are configured to execute further processo-executable program instructions to: determing that the distortion error measurement is greater than a threshold associated with a previously filtered block; and responsive to the determining, output previous filter parameters associated with the previously filtered block.
- 14 . The system of claim 8 , wherein the set of candidate filter strength parameters comprises a single filter parameter derived from one or more quantization parameters of the block.
- 15 . A non-transitory computer-readable medium comprising processor-executable instructions: access a video stream, wherein the video stream comprises a block comprising a plurality of sub-blocks; for each candidate filter strength parameter of a set of candidate filter strength parameters associated with the block: filter each sub-block of the plurality of sub-blocks using a filter having the candidate filter strength parameter; create a filtered block by combining the filtered sub-blocks; and calculate, for the filtered block, a distortion error measurement between a corresponding source block and the filtered block; select the candidate filter strength parameter associated with a lowest distortion error measurement of the distortion error measurements; and apply the selected filter strength parameter to an in-loop deringing filter to generate a filtered block of video.
- 16 . The non-transitory computer-readable medium of claim 15 , further comprising processor-executable instructions configured to cause the one or more processors to: filter the block with the selected filter strength parameter; and output the filtered block of video.
- 17 . The non-transitory computer-readable medium of claim 15 , wherein the plurality of sub-blocks represents at least a 4×4 block.
- 18 . The non-transitory computer-readable medium of claim 15 , further comprising processor-executable instructions configured to cause the one or more processors to calculate an error for a portion of a sub-block.
- 19 . The non-transitory computer-readable medium of claim 15 , wherein each block represents a luminance component of the video stream, further comprising processor-executable instructions configured to cause the one or more processors to: access, from the video stream, a chrominance component associated with the luminance component, the chrominance component comprising a chrominance block comprising a plurality of chrominance sub-blocks; filter each chrominance sub-block of the plurality of chrominance sub-blocks using the filter having the candidate filter strength parameter; create a filtered chrominance block by combining the filtered chrominance sub-blocks; and outputting the filtered chrominance block.
- 20 . The non-transitory computer-readable medium of claim 15 , further comprising processor-executable instructions configured to cause the one or more processors to: determine that the distortion error measurement is greater than a threshold associated with a previously filtered block; and responsive to the determining, output previous filter parameters associated with the previously filtered block.
Description
FIELD This disclosure generally relates to video coding. More specifically, but not by way of limitation, this disclosure relates to improved techniques for determining optimal parameters for video filters that reduce artifacts in coded video. BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 depicts an example system for providing video conferencing functionality to client devices. FIG. 2 depicts an example system in which a video conference provider provides video conferencing functionality to various client devices. FIG. 3 depicts an example system for video conferencing. FIG. 4 depicts an example system for video conferencing. FIG. 5 depicts an example video filter. FIG. 6 is a flowchart of an example of a method for performing filtering of video by using an in-loop deringing filter. FIG. 7 illustrates different directions identified in a video block. FIG. 8 is a flowchart of an example of a method for determining a strength parameter for use in in-loop filtering of video. FIG. 9 illustrates an example computing device for providing video conferencing functionality. DETAILED DESCRIPTION Disclosed solutions relate to improved digital video coding, specifically improved techniques for determining optimum parameters used by in-loop deringing filters. Numerous applications such as online video conferencing rely on video coding. But video coding can result in undesirable artifacts such as ringing. Ringing appears as spurious signals in video frames near sharp transitions such as an edge of an object. Additionally, ringing artifacts can degrade the prediction performance of video encoders. An In-Loop Deringing Filter (IDF) can be used to reduce these video artifacts. But the effectiveness of an IDF depends on various filter parameters including strength and damping. Filter strength, in particular, can affect video quality. Further, these parameters generally vary by block and therefore are re-calculated in real-time. Therefore, calculating these parameters in real-time uses computing resources and can introduce delay. Accordingly, disclosed solutions determine an optimum filter strength from a set of existing strength candidate parameters while meeting real-time performance constraints. With these improved filter parameters, video quality is improved, and the use of processing resources in applications that employ video encoding and video decoding is reduced. Disclosed solutions can be used by a video encoder, for example, to improve deblocking filtering of reference blocks of video used for prediction, and can be used by a decoder that decodes a bitstream encoded by a video encoder using a deblocking filter. The following illustrative example is provided to introduce the reader to the general subject matter discussed herein, but the disclosure is not limited to this example. In the example, to reduce artifacts, a video encoder in a video conferencing application determines an IDF strength parameter for an encoded video block (e.g., a two-dimensional set of pixels that is part of a video frame). Before filtering, the video encoder evaluates each candidate filter strength parameter of the set of candidate filter strength parameters. For instance, the video encoder applies a first candidate filter strength parameter to each sub-block (i.e., part of the block) of video. The video encoder then reassembles the sub-blocks into a block, and calculates a resulting error relative to a corresponding source video block (i.e., before coding). This process continues for each candidate filter strength parameter. Finally, the video encoder selects the candidate filter strength parameter that resulted in the lowest error. The resulting candidate filter strength parameter can be used by the video encoder and/or transmitted, or signaled, in the encoded video frame and later used by a video decoder. Techniques are described herein in the context of improved in-loop deringing filters for use in video conferencing systems. But those of ordinary skill in the art will realize that the following description is illustrative only and is not intended to be in any way limiting. For instance, disclosed techniques can be employed in video encoding or decoding in other contexts. Referring now to FIG. 1, FIG. 1 shows an example, system 100, that provides video conferencing functionality to various client devices. The system 100 includes a chat and video conference provider 110 that is connected to multiple communication networks 120, 130, through which various client devices, 140-180, can participate in video conferences hosted by the chat and video conference provider 110. For example, the chat and video conference provider 110 can be located within a private network to provide video conferencing services to devices within the private network, or it can be connected to a public network (e.g., the internet) so it may be accessed by anyone. Some examples may even provide a hybrid model in which a chat and video conference provider 110 may supply comp