IP Library › Granted Patent US 12,022,098
Granted Patent B2
US 12,022,098 · App. 17/681,427 · Granted Jun 25, 2024

Neural network-based in-loop filter with residual scaling for video coding

Inventors: Yue Li (San Diego, CA); Li Zhang (San Diego, CA); Kai Zhang (San Diego, CA)
H04N19/42H04N19/124H04N19/176H04N19/186H04N19/30H04N19/70H04N19/82
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,022,098
App. No.
17/681,427
Granted
Jun 25, 2024
Kind
B2
Abstract

A method implemented by a video coding apparatus. The method includes applying an output of a neural network (NN) filter to an unfiltered sample of a video unit to generate a residual, applying a scaling function to the residual to generate a scaled residual, adding another unfiltered sample to the scaled residual to generate a filtered sample, and converting between a video media file and a bitstream based on the filtered sample that was generated. A corresponding video coding apparatus and non-transitory computer readable medium are also disclosed.

Claims (32)

1. A method implemented by a video coding apparatus, comprising:

applying an output of a neural network (NN) filter to an unfiltered sample of a video unit to generate a residual;

applying a scaling function to the residual to generate a scaled residual;

adding another unfiltered sample to the scaled residual to generate a filtered sample; and

converting between a video media file and a bitstream based on the filtered sample that was generated.

2. The method of claim 1 , further comprising reconstructing the unfiltered sample prior to generating the residual.

3. The method of claim 1 , wherein the filtered sample is generated according to Y=X+F(R), where X represents the unfiltered sample, R represents the residual determined based on the output of the NN filter, F represents the scaling function, and Y represents the filtered sample.

4. The method of claim 1 , wherein the filtered sample is generated according to Y=X+F(R, X), where X represents the unfiltered sample, R represents the residual determined based on the output of the NN filter, F represents the scaling function, and Y represents the filtered sample.

5. The method of claim 1 , wherein the filtered sample is generated according to Y=X+F(R−X), where X represents the unfiltered sample, R represents the residual determined based on the output of the NN filter, F represents the scaling function, and Y represents the filtered sample.

6. The method of claim 1 , wherein the filtered sample is generated according to Y=Clip(X+F(R)), where X represents the unfiltered sample, R represents the residual determined based on the output of the NN filter, F represents the scaling function, Clip represents a clipping function based on a bit depth of the unfiltered sample, and Y represents the filtered sample.

7. The method of claim 1 , wherein the scaling function is based on a linear model according to F(R)=α×R+β, where R represents the residual determined based on the output of the NN filter, F represents the scaling function, and α and β represent a pair of coefficient candidates (α, β).

8. The method of claim 1 , further comprising determining an inference block size to be used when the NN filter is applied to the unfiltered sample.

9. The method of claim 8 , further comprising selecting the inference block size from a plurality of inference block size candidates, wherein each of the plurality of inference block size candidates is based on at least one of a quantization parameter, a slice type, a picture type, a partition tree, and a color component.

10. The method of claim 1 , further comprising parsing the bitstream to obtain an indicator, wherein the indicator indicates which inference block size is to be used when the NN filter is applied to the unfiltered sample.

11. The method of claim 8 , wherein the inference block size has a first value for a first bit rate and a second value for a second bit rate, wherein the first value is higher than the second value, and wherein the first bit rate is lower than the second bit rate.

12. The method of claim 8 , wherein the inference block size has a first value for a first resolution and a second value for a second resolution, wherein the first value is higher than the second value, and wherein the first resolution is higher than the second resolution.

13. The method of claim 1 , wherein the NN filter is one of a plurality of NN filters whose outputs are applied to the unfiltered sample to generate the residual.

14. The method of claim 13 , wherein some of the plurality of NN filters use different inference block sizes when the outputs are applied to the unfiltered sample.

15. The method of claim 13 , wherein the outputs of the plurality of NN filters are individually weighted and applied to the unfiltered sample as a weighted sum.

16. The method of claim 13 , wherein a model and a weight corresponding to each of the plurality of NN filters is signaled in the bitstream.

17. The method of claim 13 , wherein a weight corresponding to each of the plurality of NN filters is based on one or more of a quantization parameter, a slice type, a picture type, a color component, a color format, and a temporal layer.

18. The method of claim 13 , wherein a weight corresponding to each of the plurality of NN filters is based on one or more of an NN filter model, an inference block size, or a spatial location of the unfiltered sample.

19. An apparatus for coding video data comprising a processor and a non- transitory memory with instructions thereon, wherein the instructions upon execution by the processor cause the processor to:

apply an output of a neural network (NN) filter to an unfiltered sample of a video unit to generate a residual;

apply a scaling function to the residual to generate a scaled residual;

add another unfiltered sample to the scaled residual to generate a filtered sample; and

convert between a video media file and a bitstream based on the filtered sample that was generated.

20. A non-transitory computer readable medium comprising a computer program product for use by a coding apparatus, the computer program product comprising computer executable instructions stored on the non-transitory computer readable medium that, when executed by one or more processors, cause the coding apparatus to:

apply an output of a neural network (NN) filter to an unfiltered sample of a video unit to generate a residual;

apply a scaling function to the residual to generate a scaled residual;

add another unfiltered sample to the scaled residual to generate a filtered sample; and

convert between a video media file and a bitstream based on the filtered sample that was generated.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2023
From: BYTEDANCE INC.
To: LEMON INC.
Reel/Frame 062609/0858 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 26, 2022
From: LI, YUE; ZHANG, LI; ZHANG, KAI
To: BYTEDANCE INC.
Reel/Frame 060022/0251 →
Continuity (2)
Provisional Application 63156726 · Mar 4, 2021
Related Publication 20220286695A1 · Sep 8, 2022
Cited By (1)
US 12,549,776