IP Library › Granted Patent US 10,694,202
Granted Patent B2
US 10,694,202 · App. 15/828,280 · Granted Jun 23, 2020

Indication of bilateral filter usage in video coding

Inventors: Li Zhang (San Diego, CA); Wei-Jung Chien (San Diego, CA); Marta Karczewicz (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/44H04N19/117H04N19/157H04N19/176H04N19/61H04N19/70H04N19/80H04N19/86
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,694,202
App. No.
15/828,280
Granted
Jun 23, 2020
Kind
B2
Abstract

Embodiments include use of a bilateral filter applied to reconstructed blocks as an in-loop filter by both the encoder and decoder. In particular, embodiments include systems and methods of explicitly and implicitly signaling for which blocks to apply bilateral filtering.

Claims (570)

1. A method of decoding video data, comprising:

decoding data from a video bitstream indicating a mode for coding a video block;

predicting the video block according to the mode to generate a predicted video block of the video block;

decoding, from the video bitstream, data indicative of a difference between the video block and the predicted video block, the data indicative of the difference comprising data indicative of whether the difference is represented by at least one non-zero transform coefficient;

reconstructing samples associated with the video block based on the predicted video block and the difference;

decoding a flag from the video bitstream indicating whether to apply bilateral filtering to the reconstructed samples;

deblock filtering the reconstructed samples of the video block; and

performing the bilateral filtering as an in-loop filter for reducing artifacts on the reconstructed samples based on the flag and based on whether the difference is represented by the at least one non-zero transform coefficient, wherein the deblock filtering is performed prior to the bilateral filtering, and wherein performing the bilateral filtering on the reconstructed samples comprises generating a filtered sample value, I D (i,j), using neighboring ones of the reconstructed samples according to

∑

k

,

l

⁢

I

⁡

(

k

,

l

)

*

ϖ

⁡

(

i

,

j

,

k

,

l

)

∑

k

,

l

⁢

ϖ

⁡

(

i

,

j

,

k

,

l

)

,

wherein ω (i, j, k, l) is a weight assigned for a sample (k, l) to filter a sample (i, j) and is defined as

ϖ

⁡

(

i

,

j

,

k

,

l

)

=

e

(

-

(

i

-

k

)

2

+

(

j

-

l

)

2

2

⁢

⁢

σ

d

2

-

I

⁡

(

i

,

j

)

-

I

⁡

(

k

,

l

)

2

2

⁢

σ

τ

2

)

,

wherein I(i, j) and I(k, l) are intensive value of samples (i, J) and (k,l) respectively, ad is a spatial parameter, and σ T is a range parameter.

2. The method of claim 1 , wherein decoding the flag comprises decoding the flag from a syntax structure associated with at least one of a transform unit that includes the video block, a prediction unit that include the video block, or a largest coding unit that includes the video block.

3. The method of claim 1 , wherein the video block is within a coding unit of a picture and wherein performing the bilateral filtering is further based on whether the coding unit is an intra-coded coding unit or an inter-coded coding unit.

4. The method of claim 1 , wherein the video block is within a slice of a picture and wherein performing the bilateral filtering is further based on whether the slice is an intra-coded slice or an inter-coded slice.

5. The method of claim 1 , wherein performing the bilateral filtering on the reconstructed samples based on the flag and further based on at least one of a coding unit type associated with the video block, a motion precision associated with the video block, or a deblock filter parameter associated with the video block.

6. A method of encoding video data, comprising:

encoding data into a video bitstream indicating a mode for coding a video block;

predicting the video block according to the mode to generate a predicted block of the video block;

encoding, into the video bitstream, data indicative of a difference between the video block and the predicted video block, the data indicative of the difference comprising data indicative of whether the difference is represented by at least one non-zero transform coefficient;

reconstructing samples associated with the video block based on the predicted video block and the difference;

encoding a flag into the video bitstream indicating whether to apply bilateral filtering to the reconstructed samples;

deblock filtering the reconstructed samples of the video block; and

performing the bilateral filtering as an in-loop filter for reducing artifacts on the reconstructed samples based on a value of the flag and based on whether the difference is represented by the at least one non-zero transform coefficient, wherein the deblock filtering is performed prior to the bilateral filtering, and wherein performing the bilateral filtering on the reconstructed samples comprises generating a filtered sample value, I D (i,j), using neighboring ones of the reconstructed samples according to

∑

k

,

l

⁢

I

⁡

(

k

,

l

)

*

ϖ

⁡

(

i

,

j

,

k

,

l

)

∑

k

,

l

⁢

ϖ

⁡

(

i

,

j

,

k

,

l

)

,

wherein ω (i,j, k, l) is a weight assigned for a sample (k, l) to filter a sample (i, j) and is defined as

ϖ

⁡

(

i

,

j

,

k

,

l

)

=

e

(

-

(

i

-

k

)

2

+

(

j

-

l

)

2

2

⁢

⁢

σ

d

2

-

I

⁡

(

i

,

j

)

-

I

⁡

(

k

,

l

)

2

2

⁢

σ

τ

2

)

,

wherein I(i, j) and I(k, l) are intensive value of samples (i, j) and (k,l) respectively, σ d is a spatial parameter, and σ T is a range parameter.

7. The method of claim 6 , wherein encoding the flag comprises encoding the flag from a syntax structure associated with at least one of a transform unit that includes the video block, a prediction unit that include the video block, or a largest coding unit that includes the video block.

8. The method of claim 6 , wherein the video block is within a coding unit of a picture and wherein performing the bilateral filtering is further based on whether the coding unit is an intra-coded coding unit or an inter-coded coding unit.

9. The method of claim 6 wherein the video block is within a slice of a picture and wherein performing the bilateral filtering is further based on whether the slice is an intra-coded slice or an inter-coded slice.

10. An apparatus for decoding video data, comprising:

a memory configured to store the video data; and

a video processor configured to:

decode data from a video bitstream indicating a mode for coding a video block;

predict the video block according to the mode to generate a predicted block of the video block;

decode, from the video bitstream, data indicative of a difference between the video block and the predicted video block, the data indicative of the difference comprising data indicative of whether the difference is represented by at least one non-zero transform coefficient;

reconstruct samples associated with the video block based on the predicted video block and the difference;

decode a flag from the video bitstream indicating whether to apply bilateral filtering to the reconstructed samples;

deblock filter the reconstructed samples of the video block; and

perform the bilateral filtering as an in-loop filter for reducing artifacts on the reconstructed samples based on the flag and based on whether the difference is represented by the at least one non-zero transform coefficient, wherein the video processor is configured to deblock filter the reconstructed samples of the video block prior to performing the bilateral filtering, and wherein to perform the bilateral filtering on the reconstructed samples, the video processor is configured to generate a filtered sample value, I D (i, j), using neighboring ones of the reconstructed samples according to

∑

k

,

l

⁢

I

⁡

(

k

,

l

)

*

ϖ

⁡

(

i

,

j

,

k

,

l

)

∑

k

,

l

⁢

ϖ

⁡

(

i

,

j

,

k

,

l

)

,

wherein ω (i, j, k, l) is a weight assigned for a sample (k, l) to filter a sample (i, j) and is defined as

ϖ

⁡

(

i

,

j

,

k

,

l

)

=

e

(

-

(

i

-

k

)

2

+

(

j

-

l

)

2

2

⁢

⁢

σ

d

2

-

I

⁡

(

i

,

j

)

-

I

⁡

(

k

,

l

)

2

2

⁢

σ

τ

2

)

,

wherein I(i, j) and I(k, l) are intensive value of samples (i, j) and (k, l) respectively, σ d is a spatial parameter, and σ T is a range parameter.

11. The apparatus of claim 10 , wherein to decode the flag, the video processor is configured to decoder the flag from a syntax structure associated with one or more of a transform unit, a prediction unit, or a largest coding unit that includes the video block.

12. An apparatus for encoding video data, comprising:

a memory configured to store the video data; and

a video processor configured to:

encode data into a video bitstream indicating a mode for coding a video block;

predict the video block according to the mode to generate a predicted block of the video block;

encode, into the video bitstream, data indicative of a difference between the video block and the predicted video block, the data indicative of the difference comprising data indicative of whether the difference is represented by at least one non-zero transform coefficient;

reconstruct samples associated with the video block based on the predicted video block and the difference;

encode a flag into the video bitstream indicating whether to apply bilateral filtering to the reconstructed samples;

deblock filter the reconstructed samples of the video block; and

perform the bilateral filtering as an in-loop filter for reducing artifacts on the reconstructed samples based on a value of the flag and based on whether the difference is represented by the at least one non-zero transform coefficient, wherein the video processor is configured to deblock filter the reconstructed samples of the video block prior to performing the bilateral filtering, and wherein to perform the bilateral filtering on the reconstructed samples, the video processor is configured to generate a filtered sample value, I D (i, j), using neighboring ones of the reconstructed samples according to

∑

k

,

l

⁢

I

⁡

(

k

,

l

)

*

ϖ

⁡

(

i

,

j

,

k

,

l

)

∑

k

,

l

⁢

ϖ

⁡

(

i

,

j

,

k

,

l

)

,

wherein ω (i, j, k, l) is a weight assigned for a sample (k, l) to filter a sample i, j and is defined as

ϖ

⁡

(

i

,

j

,

k

,

l

)

=

e

(

-

(

i

-

k

)

2

+

(

j

-

l

)

2

2

⁢

⁢

σ

d

2

-

I

⁡

(

i

,

j

)

-

I

⁡

(

k

,

l

)

2

2

⁢

σ

τ

2

)

,

wherein I(i, j) and I(k, l) are intensive value of samples (i, j) and (k, l) respectively, σ d is a spatial parameter, and σ T is a range parameter.

13. The apparatus of claim 12 , wherein to encode the flag, the video processor is configured to encode the flag from a syntax structure associated with one or more of a transform unit, a prediction unit, or a largest coding unit that includes the video block.

14. The apparatus of claim 12 , wherein the video block is within a coding unit of a picture and wherein the video processor is further configured to perform the bilateral filtering based on whether the coding unit is an intra-coded coding unit or an inter-coded coding unit.

15. A non-transitory computer readable medium having stored thereon instructions that when executed by a video processor cause the video processor to:

decode data from a video bitstream indicating a mode for coding a video block;

predict the video block according to the mode to generate a predicted block of the video block;

decode, from the video bitstream, data indicative of a difference between the video block and the predicted video block, the data indicative of the difference comprising data indicative of whether the difference is represented by at least one non-zero transform coefficient;

reconstruct samples associated with the video block based on the predicted video block and the difference;

decode a flag from the video bitstream indicating whether to apply bilateral filtering to the reconstructed samples;

deblock filter the reconstructed samples of the video block; and

perform the bilateral filtering as an in-loop filter for reducing artifacts on the reconstructed samples based on the flag and based on whether the difference is represented by the at least one non-zero transform coefficient, wherein the instructions when executed cause the video processor to deblock filter the reconstructed samples of the video block prior to performing the bilateral filtering, and wherein to perform the bilateral filtering on the reconstructed samples, the instructions cause the video processor to generate a filtered sample value, I D (i,j), using neighboring ones of the reconstructed samples according to

∑

k

,

l

⁢

I

⁡

(

k

,

l

)

*

ϖ

⁡

(

i

,

j

,

k

,

l

)

∑

k

,

l

⁢

ϖ

⁡

(

i

,

j

,

k

,

l

)

,

wherein ω (i,j, k, l) is a weight assigned for a sample (k, l) to filter a sample (i, j) and is defined as

ϖ

⁡

(

i

,

j

,

k

,

l

)

=

e

(

-

(

i

-

k

)

2

+

(

j

-

l

)

2

2

⁢

⁢

σ

d

2

-

I

⁡

(

i

,

j

)

-

I

⁡

(

k

,

l

)

2

2

⁢

σ

τ

2

)

,

wherein I(i, j) and I(k, l) are intensive value of samples (i, j) and (k,l) respectively, σ d is a spatial parameter, and σ T is a range parameter.

16. The apparatus of claim 15 , wherein the video block is within a coding unit of a picture and wherein the instructions further cause the video processor to perform the bilateral filtering based on whether the coding unit is an intra-coded coding unit or an inter-coded coding unit.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 4, 2018
From: ZHANG, LI; CHIEN, WEI-JUNG; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 044539/0862 →
Continuity (2)
Provisional Application 62429052 · Dec 1, 2016
Related Publication 20180160134A1 · Jun 7, 2018
Cited By (5)
US 12,244,794 US 12,382,033 US 12,593,038 US 12,684,174 US 12,739,368