IP Library Granted Patent US 10,834,396
Granted Patent B2
US 10,834,396 · App. 16/381,568 · Granted Nov 10, 2020

Bilateral filter for predicted video data

Inventors: Li Zhang (San Diego, CA); Kai Zhang (San Diego, CA); Wei-Jung Chien (San Diego, CA); Marta Karczewicz (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/117H04N19/124H04N19/176H04N19/53H04N19/91
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 10,834,396
App. No.
16/381,568
Granted
Nov 10, 2020
Kind
B2
Abstract

A device for coding video data includes a memory configured to store video data; and one or more processors comprising circuitry and configured to generate a prediction block for a current block of video data; apply a bilateral filter to the prediction block to generate a filtered prediction block for the current block, wherein to apply the bilateral filter, the processor is configured to determine weighting values to apply to neighboring pixels to a current pixel of the prediction block to be filtered according to values of the neighboring pixels; and code the current block using the filtered prediction block.

Claims (60)

1. A method of coding video data, the method comprising:

generating a prediction block for a current block of video data;

applying a bilateral filter to the prediction block to generate a filtered prediction block for the current block, wherein applying the bilateral filter comprises determining weighting values to apply to neighboring pixels to a current pixel of the prediction block to be filtered according to values of the neighboring pixels; and

coding the current block using the filtered prediction block.

2. The method of claim 1 , wherein coding the current block comprises:

subtracting the filtered prediction block from the current block to form a residual block for the current block;

applying a transform to the residual block to generate a block of transform coefficients;

quantizing the transform coefficients to form quantized transform coefficients; and

entropy encoding the quantized transform coefficients.

3. The method of claim 1 , wherein coding the current block comprises:

entropy decoding quantized transform coefficients for the current block;

inverse quantizing the quantized transform coefficients to generate transform coefficients for the current block;

inverse transforming the transform coefficients to reproduce a residual block for the current block; and

combining the residual block with the filtered prediction block to decode the current block.

4. The method of claim 1 , wherein generating the prediction block comprises:

generating a first temporary prediction block according to a first set of motion information for the current block;

generating a second temporary prediction block according to a second set of motion information for the current block; and

combining the first temporary prediction block with the second temporary prediction block to generate the prediction block.

5. The method of claim 4 , further comprising generating the first set of motion information and the second set of motion information according to bi-prediction.

6. The method of claim 4 , further comprising generating the first set of motion information and the second set of motion information according to multi-hypothesis prediction.

7. The method of claim 1 , wherein generating the prediction block and applying the bilateral filter to the prediction block comprises:

generating a first temporary prediction block according to a first set of motion information for the current block;

bilateral filtering the first temporary prediction block to generate a first temporary filtered prediction block;

generating a second temporary prediction block according to a second set of motion information for the current block;

bilateral filtering the second temporary prediction block to generate a second temporary filtered prediction block; and

combining the first temporary filtered prediction block with the second temporary filtered prediction block to generate the prediction block.

8. The method of claim 7 , further comprising generating the first set of motion information and the second set of motion information according to bi-prediction.

9. The method of claim 7 , further comprising generating the first set of motion information and the second set of motion information according to multi-hypothesis prediction.

10. The method of claim 7 , wherein combining the first temporary filtered prediction block with the second temporary filtered prediction block comprises averaging the first temporary filtered prediction block with the second temporary filtered prediction block.

11. The method of claim 7 , wherein combining the first temporary filtered prediction block with the second temporary filtered prediction block comprises applying a first weight to the first temporary filtered prediction block and applying a second weight to the second temporary filtered prediction block.

12. The method of claim 7 , wherein combining the first temporary filtered prediction block with the second temporary filtered prediction block comprises generating the prediction block according to (M*P 0 +N*P 1 )/(M+N), wherein i in Pi denotes the filtered temporary prediction block from reference picture list i (i being 0 or 1), M denotes a linear weight for the first temporary filtered prediction block, and N denotes a linear weight for the second temporary filtered prediction block.

13. The method of claim 1 , wherein generating the prediction block comprises generating the prediction block according to at least one of inter-prediction, intra-prediction, intra-block copy, cross-component linear model prediction, inter-layer prediction in scalable video coding, or inter-view prediction in 3D-video coding.

14. The method of claim 1 , further comprising coding a flag for the current block indicating whether bilateral filtering is enabled.

15. The method of claim 1 , further comprising coding one or more flags for one or more prediction blocks of the current block indicating whether bilateral filtering is enabled for the corresponding prediction blocks.

16. The method of claim 1 , further comprising coding bilateral filter parameters for the current block.

17. The method of claim 1 , further comprising deriving one or more bilateral filter parameters without coding the derived bilateral filter parameters.

18. The method of claim 1 , further comprising determining whether bilateral filter parameters are to be derived or coded according to information indicating whether motion information for the current block is coded according to advanced motion vector prediction (AMVP) mode or merge mode.

19. The method of claim 1 , wherein the current block comprises a luminance (luma) block, the method further comprising avoiding bilateral filtering of prediction blocks for one or more chrominance (chroma) blocks corresponding to the luma block.

20. The method of claim 1 , wherein the current block comprises a block having a size less than a threshold, the method further comprising avoiding bilateral filtering of prediction blocks for blocks having sizes greater than or equal to the threshold.

21. The method of claim 1 , wherein the current block comprises a block having a predetermined shape, the method further comprising avoiding bilateral filtering of prediction blocks for blocks having shapes other than the predetermined shape.

22. The method of claim 1 , wherein applying the bilateral filter to the prediction block comprises applying the bilateral filter to the prediction block after determining that the current block is not predicted according to one or more predetermined prediction modes.

23. The method of claim 1 , wherein applying the bilateral filter to the prediction block comprises applying the bilateral filter to the prediction block after determining that a quantization parameter for the current block is below a threshold.

24. The method of claim 1 , wherein applying the bilateral filter to the prediction block comprises applying the bilateral filter to the prediction block after determining that a quantization parameter for the current block is above a threshold.

25. The method of claim 1 , wherein applying the bilateral filter to the prediction block comprises applying the bilateral filter to the prediction block after determining that a number of non-zero coefficients of the current block is less than or equal to a threshold.

26. The method of claim 1 , wherein applying the bilateral filter to the prediction block comprises applying the bilateral filter to the prediction block after determining that all absolute values for each non-zero transform coefficient of the current block are less than or equal to a threshold.

27. The method of claim 1 , further comprising coding data representing one or more default sets of bilateral filter parameters in at least one of a sequence parameter set, a picture parameter set, a video parameter set, or a slice header.

28. A device for coding video data, the device comprising:

a memory configured to store video data; and

one or more processors comprising circuitry and configured to:

generate a prediction block for a current block of video data;

apply a bilateral filter to the prediction block to generate a filtered prediction block for the current block, wherein to apply the bilateral filter, the processor is configured to determine weighting values to apply to neighboring pixels to a current pixel of the prediction block to be filtered according to values of the neighboring pixels; and

code the current block using the filtered prediction block.

29. A device for coding video data, the device comprising:

means for generating a prediction block for a current block of video data;

means for applying a bilateral filter to the prediction block to generate a filtered prediction block for the current block, wherein the means for applying the bilateral filter comprises means for determining weighting values to apply to neighboring pixels to a current pixel of the prediction block to be filtered according to values of the neighboring pixels; and

means for coding the current block using the filtered prediction block.

30. A non-transitory computer-readable storage medium having stored thereon instructions that, when executed, cause one or more processors to:

generate a prediction block for a current block of video data;

apply a bilateral filter to the prediction block to generate a filtered prediction block for the current block, wherein the instructions that cause the processor to apply the bilateral filter comprise instructions that cause the processor to determine weighting values to apply to neighboring pixels to a current pixel of the prediction block to be filtered according to values of the neighboring pixels; and

code the current block using the filtered prediction block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 18, 2019
From: ZHANG, LI; ZHANG, KAI; CHIEN, WEI-JUNG; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 049508/0509 →
Continuity (2)
Provisional Application 62656872 · Apr 12, 2018
Related Publication 20190320171A1 · Oct 17, 2019