IP Library › Granted Patent US 11,863,779
Granted Patent B2
US 11,863,779 · App. 17/815,466 · Granted Jan 2, 2024

Cross-component adaptive loop filter in video coding

Inventors: Nan Hu (San Diego, CA); Vadim Seregin (San Diego, CA); Cheng-Teh Hsieh (Del Mar, CA); Marta Karczewicz (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/44H04N19/105H04N19/117H04N19/132H04N19/176H04N19/186H04N19/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 11,863,779
App. No.
17/815,466
Granted
Jan 2, 2024
Kind
B2
Abstract

An example device for decoding video data includes one or more processors implemented in circuitry and configured to: decode a coding tree unit (CTU) of video data, the CTU including a luminance (luma) block and a chrominance (chroma) block, to produce a decoded luma block and a decoded chroma block; determine that a chroma sample of the decoded chroma block is on a first side of an adaptive loop filter (ALF) virtual boundary and that a co-located luma sample of the decoded luma block is on a second side of the ALF virtual boundary, the co-located luma sample being co-located with the chroma sample, the first side being different than the second side; and in response to determining that the chroma sample is on the first side and the luma sample is on the second side, disable cross-component adaptive loop filtering (CC-ALF) for the chroma sample.

Claims (620)

1. A method of filtering decoded video data, the method comprising:

decoding a coding tree unit (CTU) of video data, the CTU including a luminance (luma) block and a chrominance (chroma) block corresponding to the luma block, to produce a decoded luma block and a decoded chroma block; and

executing one or more functions that apply filtered values to one or more chroma samples of the chroma block only when the one or more chroma samples and collocated luma samples of the luma block are on a common side of a virtual boundary, wherein the function takes as input a size of the luma block.

2. The method of claim 1 , wherein the CTU conforms to one of a 4:4:4 format or 4:2:2 format.

3. The method of claim 1 , further comprising calculating the filtered values according to scaledSum=Clip3(−(1<<(BitDepth−1)), (1<<(BitDepth−1))−1, (sum+64)>>7), wherein scaledSum represents a filtered value, Clip3 represents a clipping function that rounds a value of an input to Clip3, BitDepth represents a bit depth for the video data, and sum represents a value calculated from samples of a luma picture including the luma block.

4. The method of claim 3 , further comprising calculating the value of sum according to:

sum

=

f

[

0

]

*

(

recPictureL

[

hx

]

⁢

vy

-

yP

⁢

1

]

-

recPictureL

[

hx

]

[

vy

]

+

f

[

1

]

*

(

recPictureL

[

hx

-

1

]

[

vy

]

-

recPictureL

[

hx

]

[

vy

]

)

+

f

[

2

]

*

(

recPictureL

[

hx

+

1

]

[

vy

]

-

recPictureL

[

hx

]

[

vy

]

)

+

f

[

3

]

*

(

recPictureL

[

hx

-

1

]

[

vy

+

yP

⁢

1

]

-

recPictureL

[

hx

]

[

vy

]

)

+

f

[

4

]

*

(

recPictureL

[

hx

]

[

vy

+

yP

⁢

1

]

-

recPictureL

[

hx

]

[

vy

]

)

+

f

[

5

]

*

(

recPictureL

[

hx

+

1

]

[

vy

+

yP

⁢

1

]

-

recPictureL

[

hx

]

[

vy

]

)

+

f

[

6

]

*

(

recPictureL

[

hx

]

[

vy

+

yP

⁢

2

]

-

recPictureL

[

hx

]

[

vy

]

)

,

wherein recPictureL represents the luma picture including the luma block.

5. The method of claim 1 , wherein the one or more functions that apply the filtered values to the one or more chroma samples of the chroma block only when the one or more chroma samples and the collocated luma samples of the luma block are on the common side of the virtual boundary comprise:

if ( y<Ctb Size Y /SubHeight C −2 and y *SubHeight C>=Ctb Size Y −4), scaledSum=0,

sum=curr+scaledSum, and

CC-ALFPicture[ xCtbC+x][yCtbC+y ]=Clip3(0,(1<<BitDepth)−1, sum)

wherein CtbSizeY represents the size of the luma block, SubHeightC is determined according to a chroma format for the CTU, sum represents a value calculated from samples of a luma picture including the luma block, curr represents a current value of one of the samples of the chroma block prior to filtering, scaledSum represents the filtered value, CC-ALFPicture represents a filtered chroma picture corresponding to the chroma block, xCtbC+x represents an x-position of a sample of the filtered chroma picture, yCtbC+y represents a y-position of the sample of the filtered chroma picture, and BitDepth represents a bit depth of the video data.

6. The method of claim 1 , further comprising encoding the CTU prior to decoding the CTU.

7. A device for filtering decoded video data, the device comprising:

a memory configured to store video data; and

one or more processors implemented in circuitry and configured to:

decode a coding tree unit (CTU) of video data, the CTU including a luminance (luma) block and a chrominance (chroma) block corresponding to the luma block, to produce a decoded luma block and a decoded chroma block; and

execute one or more functions that apply filtered values to one or more chroma samples of the chroma block only when the one or more chroma samples and collocated luma samples of the luma block are on a common side of a virtual boundary, wherein the function takes as input a size of the luma block.

8. The device of claim 7 , wherein the CTU conforms to one of a 4:4:4 format or 4:2:2 format.

9. The device of claim 7 , wherein the one or more processors are further configured to calculate the filtered values according to scaledSum=Clip3(−(1<<(BitDepth−1)), (1<<(BitDepth−1))−1, (sum+64)>>7), wherein scaledSum represents a filtered value, Clip3 represents a clipping function that rounds a value of an input to Clip3, BitDepth represents a bit depth for the video data, and sum represents a value calculated from samples of a luma picture including the luma block.

10. The device of claim 9 , wherein the one or more processors are further configured to calculate the value of sum according to:

sum

=

f

[

0

]

*

(

recPictureL

[

hx

]

[

vy

-

yP

⁢

1

]

-

recPictureL

[

hx

]

[

vy

]

)

+

f

[

1

]

*

(

recPictureL

[

hx

-

1

]

[

vy

]

-

recPictureL

[

hx

]

[

vy

]

)

+

f

[

2

]

*

(

recPictureL

[

hx

+

1

]

[

vy

]

-

recPictureL

[

hx

]

[

vy

]

)

+

f

[

3

]

*

(

recPictureL

[

hx

-

1

]

[

vy

+

yP

⁢

1

]

-

recPictureL

[

hx

]

[

vy

]

)

+

f

[

4

]

*

(

recPictureL

[

hx

]

[

vy

+

yP

⁢

1

]

-

recPictureL

[

hx

]

[

vy

]

)

+

f

[

5

]

*

(

recPictureL

[

hx

+

1

]

[

vy

]

-

recPictureL

[

hx

]

[

vy

]

)

+

f

[

6

]

*

(

recPictureL

[

hx

]

[

vy

+

yP

⁢

2

]

-

recPictureL

[

hx

]

[

vy

]

)

,

wherein recPictureL represents the luma picture including the luma block.

11. The device of claim 7 , wherein the one or more functions that apply the filtered values to the one or more chroma samples of the chroma block only when the one or more chroma samples and the collocated luma samples of the luma block are on the common side of the virtual boundary comprise:

if ( y<Ctb Size Y /SubHeight C −2 and y *SubHeight C>=Ctb Size Y −4), scaledSum=0,

sum=curr+scaledSum, and

CC-ALFPicture[ xCtbC+x][yCtbC+y ]=Clip3(0,(1<<BitDepth)−1, sum),

wherein CtbSizeY represents the size of the luma block, SubHeightC is determined according to a chroma format for the CTU, sum represents a value calculated from samples of a luma picture including the luma block, curr represents a current value of one of the samples of the chroma block prior to filtering, scaledSum represents the filtered value, CC-ALFPicture represents a filtered chroma picture corresponding to the chroma block, xCtbC+x represents an x-position of a sample of the filtered chroma picture, yCtbC+y represents a y-position of the sample of the filtered chroma picture, and BitDepth represents a bit depth of the video data.

12. The device of claim 7 , wherein the one or more processors are further configured to encode the CTU prior to decoding the CTU.

13. A non-transitory computer-readable storage medium having stored thereon instructions that, when executed, cause a processor to:

decode a coding tree unit (CTU) of video data, the CTU including a luminance (luma) block and a chrominance (chroma) block corresponding to the luma block, to produce a decoded luma block and a decoded chroma block; and

execute one or more functions that apply filtered values to one or more chroma samples of the chroma block only when the one or more chroma samples and collocated luma samples of the luma block are on a common side of a virtual boundary, wherein the function takes as input a size of the luma block.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the CTU conforms to one of a 4:4:4 format or 4:2:2 format.

15. The non-transitory computer-readable storage medium of claim 13 , further comprising instructions that cause the processor to calculate the filtered values according to scaledSum=Clip3(−(1<<(BitDepth−1)), (1<<(BitDepth−1))−1, (sum+64)>>7), wherein scaledSum represents a filtered value, Clip3 represents a clipping function that rounds a value of an input to Clip3, BitDepth represents a bit depth for the video data, and sum represents a value calculated from samples of a luma picture including the luma block.

16. The non-transitory computer-readable storage medium of claim 15 , further comprising instructions that cause the processor to calculate the value of sum according to:

sum

=

f

[

0

]

*

(

recPictureL

[

hx

]

[

vy

-

yP

⁢

1

]

⁢

-

recPictureL

[

hx

]

[

vy

]

)

+

f

[

1

]

*

(

recPictureL

[

hx

-

1

]

[

vy

]

⁢

-

recPictureL

[

hx

]

[

vy

]

)

+

f

[

2

]

*

(

recPictureL

[

hx

+

1

]

[

vy

]

⁢

-

recPictureL

[

hx

]

[

vy

]

)

+

f

[

3

]

*

(

recPictureL

[

hx

-

1

]

[

vy

+

yP

⁢

1

]

⁢

-

recPictureL

[

hx

]

[

vy

]

)

+

f

[

4

]

*

(

recPictureL

[

hx

]

[

vy

+

yP

⁢

1

]

⁢

-

recPictureL

[

hx

]

[

vy

]

)

+

f

[

5

]

*

(

recPictureL

[

hx

+

1

]

[

vy

+

yP

⁢

1

]

⁢

-

recPictureL

[

hx

]

[

vy

]

)

+

f

[

6

]

*

(

recPictureL

[

hx

]

[

vy

+

yP

⁢

2

]

⁢

-

recPictureL

[

hx

]

[

vy

]

)

,

wherein recPictureL represents the luma picture including the luma block.

17. The non-transitory computer-readable storage medium of claim 13 , wherein the one or more functions that apply the filtered values to the one or more chroma samples of the chroma block only when the one or more chroma samples and the collocated luma samples of the luma block are on the common side of the virtual boundary comprise:

if ( y<Ctb Size Y /SubHeight C −2 and y *SubHeight C >=CtbSizeY−4), scaledSum=0,

sum=curr+scaledSum, and

CC-ALFPicture[ xCtbC+x][yCtbC+y ]=Clip3(0,(1<<BitDepth)−1, sum),

wherein CtbSizeY represents the size of the luma block, SubHeightC is determined according to a chroma format for the CTU, sum represents a value calculated from samples of a luma picture including the luma block, curr represents a current value of one of the samples of the chroma block prior to filtering, scaledSum represents the filtered value, CC-ALFPicture represents a filtered chroma picture corresponding to the chroma block, xCtbC+x represents an x-position of a sample of the filtered chroma picture, yCtbC+y represents a y-position of the sample of the filtered chroma picture, and BitDepth represents a bit depth of the video data.

18. The non-transitory computer-readable storage medium of claim 13 , further comprising instructions that cause the processor to encode the CTU prior to decoding the CTU.

19. A device for filtering decoded video data, the device comprising:

means for decoding a coding tree unit (CTU) of video data, the CTU including a luminance (luma) block and a chrominance (chroma) block corresponding to the luma block, to produce a decoded luma block and a decoded chroma block; and

means for executing one or more functions that apply filtered values to one or more chroma samples of the chroma block only when the one or more chroma samples and collocated luma samples of the luma block are on a common side of a virtual boundary, wherein the function takes as input a size of the luma block.

20. The device of claim 19 , wherein the CTU conforms to one of a 4:4:4 format or 4:2:2 format.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2022
From: HU, NAN; SEREGIN, VADIM; HSIEH, CHENG-TEH; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 060989/0924 →
Continuity (4)
Continuation 17096740 · Nov 12, 2020
Provisional Application 62985684 · Mar 5, 2020
Provisional Application 62936046 · Nov 15, 2019
Related Publication 20220377360A1 · Nov 24, 2022
Cited By (1)
US 12,739,369