Block-based adaptive loop filter design and signaling
AssigneeQUALCOMM Incorporated
InventorsMarta Karczewicz, Nan Hu, Vadim Seregin, Akshay Gadde
Life of this patent
Estimating the term…
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.
Claims30
A method of decoding video data, the method comprising:
- receiving, for a first slice of video data, a first instance of a slice-level syntax element;
- determining whether the first instance of the slice-level syntax element is set to a value indicating 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 is set to a second value indicating 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 element is set to the value indicating 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 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 a first value of a block-level syntax element indicates that an adaptive loop filter is enabled for an associated component of the video data and a second value of the block-level syntax element indicates that the adaptive loop filter is disabled for the associated component;
- receiving, for a second slice of the video data, a second instance of the slice-level syntax element;
- determining whether the second instance of the slice-level syntax element is set to a value indicating that values for a second plurality of block-level syntax elements for a block of a second slice are signaled in the video data or a value indicating that values for the second plurality of block-level syntax elements are inferred to be the first value;
- in response to determining that the second instance of the slice-level syntax element is set to the value indicating that values for the second plurality of block-level syntax elements are inferred, setting each block-level syntax element of the second plurality of block-level syntax elements to the first value;
- applying the adaptive loop filter to the block of the first slice and the block of the second of slice;
- and
- outputting a decoded block of the first slice and a decoded block of the second slice.
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 a slice-level syntax element;
- determine whether the first instance of the slice-level syntax element is set to a value indicating 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 is set to a second value indicating 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 element is set to the value indicating 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;
- determine a value for each block-level syntax element of the first plurality of block-level syntax elements, wherein a first value of a block-level syntax element indicates that an adaptive loop filter is enabled for an associated component of the video data and a second value of the block-level syntax element indicates that the adaptive loop filter is disabled for the associated component;
- receive, for a second slice of the video data, a second instance of the slice-level syntax element;
- determine whether the second instance of the slice-level syntax element is set to a value indicating that values for a second plurality of block-level syntax elements for a block of a second slice are signaled in the video data or a value indicating that values for the second plurality of block-level syntax elements are inferred to be the first value;
- in response to determining that the second instance of the slice-level syntax element is set to the value indicating that values for the second plurality of block-level syntax elements are inferred, set each block-level syntax element of the second plurality of block-level syntax elements to the first value;
- apply the adaptive loop filter to the block of the first slice and the block of the second of slice;
- and
- output a decoded block of the first slice and a decoded block of the second slice.
A computer-readable medium storing instructions that when executed by one or more processor cause the one or more process to:
- receive, for a first slice of video data, a first instance of a slice-level syntax element;
- determine whether the first instance of the slice-level syntax element is set to a value indicating 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 is set to a second value indicating 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 element is set to the value indicating 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;
- determine a value for each block-level syntax element of the first plurality of block-level syntax elements, wherein a first value of a block-level syntax element indicates that an adaptive loop filter is enabled for an associated component of the video data and a second value of the block-level syntax element indicates that the adaptive loop filter is disabled for the associated component;
- receive, for a second slice of the video data, a second instance of the slice-level syntax element;
- determine whether the second instance of the slice-level syntax element is set to a value indicating that values for a second plurality of block-level syntax elements for a block of a second slice are signaled in the video data or a value indicating that values for the second plurality of block-level syntax elements are inferred to be the first value;
- in response to determining that the second instance of the slice-level syntax element is set to the value indicating that values for the second plurality of block-level syntax elements are inferred, set each block-level syntax element of the second plurality of block-level syntax elements to the first value;
- apply the adaptive loop filter to the block of the first slice and the block of the second of slice;
- and
- output a decoded block of the first slice and a decoded block of the second slice.
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 all associated components 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 all associated components of the first slice, set a first instance of a slice-level syntax element to a value indicating that values for a first plurality of block-level syntax elements for a first block of 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 all associated components 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 all associated components of the second slice, set a second instance of the slice-level syntax element to a value indicating that values for a second plurality of block-level syntax elements for a second block of the second slice of video data are signaled in the video data;
- determine, for each respective component of a second block of the second slice, whether the adaptive loop filter is enabled or disabled for the respective component of the second block;
- based on determining whether the adaptive loop filter is enabled or disabled for the respective component of the second block, set, for each respective component, a syntax element of a 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 element, the second instance of the slice-level syntax element, and the second plurality of block-level syntax elements.
Dependencies are inferred from the claim text.