IP Library › Granted Patent US 11,140,418
Granted Patent B2
US 11,140,418 · App. 16/511,957 · Granted Oct 5, 2021

Block-based adaptive loop filter design and signaling

Inventors: Marta Karczewicz (San Diego, CA); Nan Hu (San Diego, CA); Vadim Seregin (San Diego, CA); Akshay Gadde (Fremont, CA)
Assignee: Qualcomm Incorporated
H04N19/70H04N19/117H04N19/13H04N19/174H04N19/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,140,418
App. No.
16/511,957
Granted
Oct 5, 2021
Kind
B2
Abstract

A video decoder can be configured to set each block-level syntax element of a plurality of block-level syntax elements to a value indicating that an adaptive loop filter is enabled for an associated component of the video data in response to determining that a slice-level syntax element is set to a value indicating that values for the plurality of block-level syntax elements are inferred.

Claims (92)

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

receiving, for a first slice of video data, a first instance of slice-level syntax data;

determining whether the first instance of the slice-level syntax data indicates that values for a first plurality of block-level syntax elements for a block associated with the first slice are signaled in the video data or indicates that values for the first plurality of block-level syntax elements are inferred;

in response to determining that the first instance of the slice-level syntax data indicates that values for the first plurality of block-level syntax elements for the block associated with the first slice are signaled in the video data, receiving, for the first slice of video data, the first plurality of block-level syntax elements;

determining a value for each block-level syntax element of the first plurality of block-level syntax elements, wherein for each of the first plurality of block-level syntax elements, a first value indicates that an adaptive loop filter is enabled for an associated component of a block and a second value indicates that the adaptive loop filter is disabled for the associated component of the block;

receiving, for a second slice of the video data, a second instance of the slice-level syntax data;

determining whether the second instance of the slice-level syntax data indicates that values for a second plurality of block-level syntax elements for the second slice are signaled in the video data or indicates that values for the second plurality of block-level syntax elements are inferred;

in response to determining that the second instance of the slice-level syntax data indicates that values for the second plurality of block-level syntax elements are inferred, setting a value associated with each block-level syntax element of the second plurality of block-level syntax elements to the first value;

applying the adaptive loop filter to components of blocks of the first slice in accordance with the first plurality of block-level syntax elements;

applying the adaptive loop filter to components of blocks of the second slice in accordance with the second plurality of block-level syntax elements; and

outputting a decoded version of the first slice and a decoded version of the second slice.

2. The method of claim 1 , further comprising:

in response to receiving the second instance of the slice-level syntax data indicating that values for the second plurality of block-level syntax elements are inferred to be the first value, inferring the values for the second plurality of block-level syntax elements to be the first value without receiving, in the video data, instances of the second plurality of block-level syntax elements.

3. The method of claim 1 , wherein the first plurality of block-level syntax elements includes a plurality of syntax elements indicating whether the adaptive loop filter is enabled or disabled for blocks of a luma component of the first slice.

4. The method of claim 1 , wherein the first plurality of block-level syntax elements includes a plurality of syntax elements indicating whether the adaptive loop filter is enabled or disabled for blocks of a chroma component of the first slice.

5. The method of claim 1 , wherein the second plurality of block-level syntax elements includes a plurality of syntax elements indicating whether the adaptive loop filter is enabled or disabled for blocks of a luma component of the second slice.

6. The method of claim 1 , wherein the second plurality of block-level syntax elements includes a plurality of syntax elements indicating whether the adaptive loop filter is enabled or disabled for blocks of a chroma component of the second slice.

7. The method of claim 1 , wherein receiving the first plurality of block-level syntax elements comprises:

decoding a syntax element indicating whether the adaptive loop filter is enabled or disabled for a luma component of the first slice;

determining an entropy decoding context;

decoding, based on the determined entropy decoding context, a syntax element indicating whether the adaptive loop filter is enabled or disabled for a first chroma component (cb) of the block of the second slice; and

decoding, based on the determined entropy decoding context, a syntax element indicating whether the adaptive loop filter is enabled or disabled for a second chroma component (cr) of the block of the second slice.

8. A device for decoding video data, the device comprising:

a memory configured to store video data; and

one or more processors implemented in circuitry and configured to:

receive, for a first slice of video data, a first instance of slice-level syntax data;

determine whether the first instance of the slice-level syntax data indicates that values for a first plurality of block-level syntax elements for a block associated with the first slice are signaled in the video data or indicates that values for the first plurality of block-level syntax elements are inferred;

in response to determining that the first instance of the slice-level syntax data indicates that values for the first plurality of block-level syntax elements for the block associated with the first slice are signaled in the video data, receive, for the block of the first slice of video data, the first plurality of block-level syntax elements;

determining a value for each block-level syntax element of the first plurality of block-level syntax elements, wherein for each of the first plurality of block-level syntax elements, a first value indicates that an adaptive loop filter is enabled for an associated component of a block and a second value indicates that the adaptive loop filter is disabled for the associated component of the block;

receive, for a second slice of the video data, a second instance of the slice-level syntax data;

determine whether the second instance of the slice-level syntax data indicates that values for a second plurality of block-level syntax elements for the second slice are signaled in the video data or indicates that values for the second plurality of block-level syntax elements are inferred;

in response to determining that the second instance of the slice-level syntax data indicates that values for the second plurality of block-level syntax elements are inferred, set a value associated with each block-level syntax element of the second plurality of block-level syntax elements to the first value;

apply the adaptive loop filter to components of blocks of the first slice in accordance with the first plurality of block-level syntax elements;

apply the adaptive loop filter to components of blocks of the second slice in accordance with the second plurality of block-level syntax elements; and

output a decoded version of the first slice and a decoded version of the second slice.

9. The device of claim 8 , wherein the one or more processors are further configured to:

in response to receiving the second instance of the slice-level syntax data indicating that values for the second plurality of block-level syntax elements are inferred to be the first value, infer the values for the second plurality of block-level syntax elements to be the first value without receiving, in the video data, instances of the second plurality of block-level syntax elements.

10. The device of claim 8 , wherein the first plurality of block-level syntax elements includes a plurality of syntax elements indicating whether the adaptive loop filter is enabled or disabled for blocks of a luma component of the first slice.

11. The device of claim 8 , wherein the first plurality of block-level syntax elements includes a plurality of syntax elements indicating whether the adaptive loop filter is enabled or disabled for blocks of a chroma component of the first slice.

12. The device of claim 8 , wherein the second plurality of block-level syntax elements includes a plurality of syntax elements indicating whether the adaptive loop filter is enabled or disabled for blocks of a luma component of the second slice.

13. The device of claim 8 , wherein the second plurality of block-level syntax elements includes a plurality of syntax elements indicating whether the adaptive loop filter is enabled or disabled for blocks of a chroma component of the second slice.

14. The device of claim 8 , wherein to receive the first plurality of block-level syntax elements, the one or more processors are further configured to:

decode a syntax element indicating whether the adaptive loop filter is enabled or disabled for a luma component of the first slice;

determine an entropy decoding context;

decode, based on the determined entropy decoding context, a syntax element indicating whether the adaptive loop filter is enabled or disabled for a first chroma component (cb) of the block of the second slice; and

decode, based on the determined entropy decoding context, a syntax element indicating whether the adaptive loop filter is enabled or disabled for a second chroma component (cr) of the block of the second slice.

15. The device of claim 8 , wherein the device comprises a wireless communication device, further comprising a receiver configured to receive encoded video data.

16. The device of claim 15 , wherein the wireless communication device comprises a telephone handset and wherein the receiver is configured to demodulate, according to a wireless communication standard, a signal comprising the encoded video data.

17. A non-transitory computer-readable medium storing instructions that when executed by one or more processor cause the one or moreprocessors to:

receive, for a first slice of video data, a first instance of slice-level syntax data element;

determine whether the first instance of the slice-level syntax data indicates that values for a first plurality of block-level syntax elements for a block associated with the first slice are signaled in the video data or indicates that values for the first plurality of block-level syntax elements are inferred;

in response to determining that the first instance of the slice-level syntax data indicates that values for the first plurality of block-level syntax elements for the block associated with the first slice are signaled in the video data, receive, for the first slice of video data, the first plurality of block-level syntax elements;

determining a value for each block-level syntax element of the first plurality of block-level syntax elements, wherein for each of the first plurality of block-level syntax elements, a first value indicates that an adaptive loop filter is enabled for an associated component of a block and a second value indicates that the adaptive loop filter is disabled for the associated component of the block;

receive, for a second slice of the video data, a second instance of the slice-level syntax data;

determine whether the second instance of the slice-level syntax data indicates that values for a second plurality of block-level syntax elements for the second slice are signaled in the video data or indicates that values for the second plurality of block-level syntax elements are inferred;

in response to determining that the second instance of the slice-level syntax data indicates that values for the second plurality of block-level syntax elements are inferred, set a value associated with each block-level syntax element of the second plurality of block-level syntax elements to the first value;

apply the adaptive loop filter to components of blocks of the first slice in accordance with the first plurality of block-level syntax elements;

apply the adaptive loop filter to components of blocks of the second slice in accordance with the second plurality of block-level syntax elements; and

output a decoded version of the first slice and a decoded version of the second slice.

18. The non-transitory computer-readable medium of claim 17 , wherein the one or more processors are further configured to:

in response to receiving the second instance of the slice-level syntax data indicating that values for the second plurality of block-level syntax elements are inferred to be the first value, infer the values for the second plurality of block-level syntax elements to be the first value without receiving, in the video data, instances of the second plurality of block-level syntax elements.

19. The non-transitory computer-readable medium of claim 17 , wherein the first plurality of block-level syntax elements includes a plurality of syntax elements indicating whether the adaptive loop filter is enabled or disabled for blocks of a luma component of the first slice.

20. The non-transitory computer-readable medium of claim 17 , wherein the first plurality of block-level syntax elements includes a plurality of syntax elements indicating whether the adaptive loop filter is enabled or disabled for blocks of a chroma component of the first slice.

21. The non-transitory computer-readable medium of claim 17 , wherein the second plurality of block-level syntax elements includes a plurality of syntax elements indicating whether the adaptive loop filter is enabled or disabled for blocks of a luma component of the second slice.

22. The non-transitory computer-readable medium of claim 17 , wherein the second plurality of block-level syntax elements includes a plurality of syntax elements indicating whether the adaptive loop filter is enabled or disabled for blocks of a chroma component of the second slice.

23. The non-transitory computer-readable medium of claim 17 , wherein to receive the first plurality of block-level syntax elements, the one or more processors are further configured to:

decode a syntax element indicating whether the adaptive loop filter is enabled or disabled for a luma component of the first slice;

determine an entropy decoding context;

decode, based on the determined entropy decoding context, a syntax element indicating whether the adaptive loop filter is enabled or disabled for a first chroma component (cb) of the block of the second slice; and

decode, based on the determined entropy decoding context, a syntax element indicating whether the adaptive loop filter is enabled or disabled for a second chroma component (cr) of the block of the second slice.

24. A device for encoding video data, the device comprising:

a memory configured to store video data; and

one or more processors implemented in circuitry and configured to:

determine whether all blocks of a first slice of video data have an adaptive loop filter enabled for a component of the first slice;

in response to determining that all blocks of the first slice of video data have the adaptive loop filter enabled for the component of the first slice, set a first instance of a slice-level syntax data to a value indicating that values for a first plurality of block-level syntax elements for the first slice of video data are inferred;

determine whether all blocks of a second slice of video data have the adaptive loop filter enabled for the component of the second slice;

in response to determining that not all blocks of the second slice of video data have the adaptive loop filter enabled for the component of the second slice, set a second instance of the slice-level syntax data to a value indicating that values for a second plurality of block-level syntax elements for the second slice of video data are signaled in the video data;

determine, for each respective block of the component of the second slice, whether the adaptive loop filter is enabled or disabled for the respective block;

based on determining whether the adaptive loop filter is enabled or disabled for the respective block of the component of the second slice, set, for each respective block of the component of the second slice, a syntax element of the second plurality of syntax elements to either a first value indicating that the adaptive loop filter is enabled or a second value indicating that the adaptive loop filter is disabled; and

output an encoded bitstream of video data comprising the first instance of the slice-level syntax data, the second instance of the slice-level syntax data, and the second plurality of block-level syntax elements.

25. The device of claim 24 , wherein the first plurality of block-level syntax elements includes a plurality of syntax elements indicating whether the adaptive loop filter is enabled or disabled for blocks of a luma component of the first slice.

26. The device of claim 24 , wherein the first plurality of block-level syntax elements includes a plurality of syntax elements indicating whether the adaptive loop filter is enabled or disabled for blocks of a chroma component of the first slice.

27. The device of claim 24 , wherein the second plurality of block-level syntax elements includes a plurality of syntax elements indicating whether the adaptive loop filter is enabled or disabled for blocks of a luma component of the second slice.

28. The device of claim 24 , wherein the second plurality of block-level syntax elements includes a plurality of syntax elements indicating whether the adaptive loop filter is enabled or disabled for blocks of a chroma component of the second slice.

29. The device of claim 24 , wherein the device comprises a wireless communication device, further comprising a transmitter configured to transmit encoded video data.

30. The device of claim 29 , wherein the wireless communication device comprises a telephone handset and wherein the transmitter is configured to modulate, according to a wireless communication standard, a signal comprising the encoded video data.

31. The method of claim 1 , wherein:

setting each block-level syntax element of the second plurality of block-level syntax elements to the first value comprises setting each block-level syntax element of the second plurality of block-level syntax elements to the first value without receiving, in a bitstream of the video data, instances of the second plurality of block-level syntax elements; and

receiving the first plurality of block-level syntax elements comprises receiving the first plurality of block-level syntax elements in the bitstream of the video data.

32. The device of claim 8 , wherein:

to set each block-level syntax element of the second plurality of block-level syntax elements to the first value, the one or more processors are further configured to set each block- level syntax element of the second plurality of block-level syntax elements to the first value without receiving, in a bitstream of the video data, instances of the second plurality of block- level syntax elements; and

to receive the first plurality of block-level syntax elements, the one or more processors are further configured to receive the first plurality of block-level syntax elements in the bitstream of the video data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 24, 2019
From: KARCZEWICZ, MARTA; HU, NAN; SEREGIN, VADIM; GADDE, AKSHAY
To: QUALCOMM INCORPORATED
Reel/Frame 050478/0079 →
Continuity (2)
Provisional Application 62699560 · Jul 17, 2018
Related Publication 20200029095A1 · Jan 23, 2020