Filter description signaling for multi-filter adaptive filtering
First Claim
1. A method of decoding a bitstream of encoded video data, the method comprising:
- receiving in the bitstream of encoded video data as part of a higher level coded unit, at a video decoder comprising one or more processors, a first syntax element, wherein a value of the first syntax element identifies a maximum number of filters allowed in a set of filters for a series of video blocks;
receiving, in the bitstream of encoded video data as part of a lower level coded unit, at the video decoder, a second syntax element, wherein a value of the second syntax element identifies a number of filters in the set of filters for the series of video blocks, wherein the number of filters in the set of filters is less than the maximum number of filters, wherein the higher level coded unit is hierarchically higher than the lower level coded unit;
reconstructing the set of filters based on the value of the first syntax element and the value of the second syntax element;
determining a mapping of ranges of an activity metric to filters in the set of filters based on the value of the first syntax element, wherein a number of ranges of the activity metric to be mapped to filters in the set of filters is a function of the maximum number of filters allowed in the set of filters as indicated by the value of the first syntax element;
generating a reconstructed block from a predictive block in a reference frame and a residual block;
determining a value of an activity metric for the reconstructed block;
selecting a filter from the set of filters based on the determined value of the activity metric and the mapping of the ranges of the activity metric to the filters in the set of filters;
applying the filter to samples of the reconstructed block of video as part of a loop filtering operation; and
outputting decoded video data comprising the filtered reconstructed block of video.
1 Assignment
0 Petitions
Accused Products
Abstract
Filtering is applied at an encoder, and filter information describing a set of filters is encoded in the bitstream to enable a decoder to identify the filtering that was applied at the encoder. The decoder receives encoded video data that includes the filter information, decodes the video data, and applies filtering based on the filtering information. The decoder applies the same filtering that was applied at the encoder. To potentially reduce the number of bits needed to reconstruct the set of filters and other filter information as well as to potentially improve decoder performance, filter description syntax describing the set of filters can be included in the bitstream. The filter description syntax may identify a number of filters in a set of filters, a maximum number of filters in a set of filters, and/or identify a shape of filters in a set of filters.
43 Citations
43 Claims
-
1. A method of decoding a bitstream of encoded video data, the method comprising:
-
receiving in the bitstream of encoded video data as part of a higher level coded unit, at a video decoder comprising one or more processors, a first syntax element, wherein a value of the first syntax element identifies a maximum number of filters allowed in a set of filters for a series of video blocks; receiving, in the bitstream of encoded video data as part of a lower level coded unit, at the video decoder, a second syntax element, wherein a value of the second syntax element identifies a number of filters in the set of filters for the series of video blocks, wherein the number of filters in the set of filters is less than the maximum number of filters, wherein the higher level coded unit is hierarchically higher than the lower level coded unit; reconstructing the set of filters based on the value of the first syntax element and the value of the second syntax element; determining a mapping of ranges of an activity metric to filters in the set of filters based on the value of the first syntax element, wherein a number of ranges of the activity metric to be mapped to filters in the set of filters is a function of the maximum number of filters allowed in the set of filters as indicated by the value of the first syntax element; generating a reconstructed block from a predictive block in a reference frame and a residual block; determining a value of an activity metric for the reconstructed block; selecting a filter from the set of filters based on the determined value of the activity metric and the mapping of the ranges of the activity metric to the filters in the set of filters; applying the filter to samples of the reconstructed block of video as part of a loop filtering operation; and outputting decoded video data comprising the filtered reconstructed block of video. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 36, 37, 40, 41)
-
-
9. A method of video encoding, the method comprising:
-
determining a maximum number of filters allowed in a set of filters for a series of video blocks; determining a number of filters to be included in the set of filters for the series of video blocks; determining a mapping of ranges of an activity metric to filters in the set of filters, wherein a number of ranges of the activity metric is a function of the maximum number of filters allowed in the set of filters as indicated by the value of the first syntax element; generating for inclusion in a bitstream of encoded video data, as part of a higher level coded unit, a first syntax element, wherein a value of the first syntax element identifies the maximum number of filters; generating for inclusion in the bitstream of encoded video data, as part of a lower level coded unit, a second syntax element, wherein a value of the second syntax element identifies the number of filters, wherein the number of filters in the set of filters is less than the maximum number of filters, wherein the higher level coded unit is hierarchically higher than the lower level coded unit; and outputting the bitstream of encoded video data comprising the first syntax element, the second syntax element, the set of filters, and for each range of the ranges of the activity metric, information for mapping the range of the activity metric to a filter in the set of filters; as part of a decoding loop; generating a reconstructed block from a predictive block in a reference frame and a residual block; determining a value of an activity metric for the reconstructed block; selecting a filter from the set of filters based on the determined value of the activity metric and the mapping of the ranges of the activity metric to the filters in the set of filters; applying the filter to samples of the reconstructed block of video. - View Dependent Claims (10, 11, 12, 42, 43)
-
-
13. A video decoding device comprising:
-
a memory storing a bitstream of encoded video data; a video decoder comprising one or more processors configured to; receive the bitstream of encoded video data; receive, in the bitstream of encoded video data as part of a higher level coded unit, a first syntax element, wherein a value of the first syntax element identifies a maximum number of filters allowed in a set of filters for a series of video blocks; receive, in the bitstream of encoded video data as part of a lower level coded unit, a second syntax element, wherein a value of the second syntax element identifies a number of filters in the set of filters for the series of video blocks, wherein the number of filters in the set of filters is less than the maximum number of filters, wherein the higher level coded unit is hierarchically higher than the lower level coded unit; reconstruct the set of filters based on the first syntax element and the second filter description; determine a mapping of ranges of an activity metric to filters in the set of filters based on the syntax element, wherein a number of ranges of the activity metric to be mapped to filters in the set of filters is a function of the maximum number of filters allowed in the set of filters as indicated by the value of the first syntax element; generate a reconstructed block from a predictive block in a reference frame and a residual block; determine a value of an activity metric for the reconstructed block; select a filter from the set of filters based on the determined value of the activity metric and the mapping of ranges of the activity metric to the filters in the set of filters; apply the filter to samples of the reconstructed block of video as part of a loop filtering operation; and output decoded video data comprising the filtered reconstructed block of video data. - View Dependent Claims (14, 15, 16, 17, 18, 19, 38, 39)
-
-
20. A video encoding device comprising:
-
a memory storing video data; a video encoder comprising one or more processors configured to; determine a maximum number of filters allowed in a set of filters for a series of video blocks; determine a number of filters to be included in the set of filters for the series of video blocks; determine a mapping of ranges of an activity metric to filters in the set of filters, wherein a number of ranges of the activity metric is a function of the maximum number of filters allowed in the set of filters as indicated by the value of the first syntax element; generate for inclusion in a bitstream of encoded video data, as part of a higher level coded unit, a first syntax element, wherein a value of the first syntax element identifies the maximum number of filters; generate for inclusion in a bitstream of encoded video data, as part of a lower level coded unit, a second syntax element, wherein a value of the second syntax element identifies the number of filters, wherein the number of filters in the set of filters is less than the maximum number of filters, wherein the higher level coded unit is hierarchically higher than the lower level coded unit; and output the bitstream of encoded video data comprising the first syntax element, the second syntax element, the set of filters, and for each range of the ranges of the activity metric, information for mapping the range of the activity metric to a filter in the set of filters; and as part of a decoding loop; generate a reconstructed block from a predictive block in a reference frame and a residual block; determine a value of an activity metric for the reconstructed block; select a filter from the set of filters based on the determined value of the activity metric and the mapping of the ranges of the activity metric to the filters in the set of filters; apply the filter to samples of the reconstructed block of video. - View Dependent Claims (21, 22, 23)
-
-
24. A non-transitory computer-readable storage medium having stored thereon instructions that, when executed, cause one or more processors of a device for decoding video data to:
-
receive a bitstream of encoded video data; receive in the bitstream of encoded video data as part of a higher level coded unit, at a video decoder, first syntax element, wherein a value of the first syntax element identifies a maximum number of filters allowed in a set of filters for a series of video blocks; receive, in the bitstream of encoded video data as part of a lower level coded unit, at the video decoder, second syntax element, wherein a value of the second syntax element identifies a number of filters in the set of filters for the series of video blocks, wherein the number of filters in the set of filters is less than the maximum number of filters, wherein the higher level coded unit is hierarchically higher than the lower level coded unit; reconstruct the set of filters based on the first syntax element and the second syntax element; determine a mapping of ranges of an activity metric to filters in the set of filters based on the first syntax element, wherein a number of ranges of the activity metric to be mapped to filters in the set of filters is a function of the maximum number of filters allowed in the set of filters as indicated by the value of the first syntax element; generate a reconstructed block from a predictive block in a reference frame and a residual block; determine a value of an activity metric for the reconstructed block; select a filter from the set of filters based on the determined value of the activity metric and the mapping of the ranges of the activity metric to the filters in the set of filters; apply the filter to samples of the reconstructed block of video as part of a loop filtering operation; and output decoded video data comprising the filtered reconstructed block of video. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31)
-
-
32. A non-transitory, computer-readable storage medium having stored thereon instructions that, when executed, cause one or more processors of a device for encoding video data to:
-
determine a maximum number of filters allowed in a set of filters for a series of video blocks; determine a number of filters to be included in the set of filters for the series of video blocks; determine a mapping of ranges of an activity metric to filters in the set of filters, wherein a number of ranges of the activity metric is a function of the maximum number of filters allowed in the set of filters as indicated by the value of the first syntax element; generate for inclusion in a bitstream of encoded video data, as part of a higher level coded unit, a first syntax element, wherein a value of the first syntax element identifies the maximum number of filters; generate for inclusion in the bitstream of encoded video data, as part of a lower level coded unit, a second syntax element, wherein a value of the second syntax element identifies the number of filters, wherein the number of filters in the set of filters is less than the maximum number of filters, wherein the higher level coded unit is hierarchically higher than the lower level coded unit; and output the bitstream of encoded video data comprising the first syntax element, the second syntax element, the set of filters, and for each range of the ranges of the activity metric, information for mapping the range of the activity metric to a filter in the set of filters; and as part of a decoding loop; generate a reconstructed block from a predictive block in a reference frame and a residual block; determine a value of an activity metric for the reconstructed block; select a filter from the set of filters based on the determined value of the activity metric and the mapping of the ranges of the activity metric to the filters in the set of filters; apply the filter to samples of the reconstructed block of video. - View Dependent Claims (33, 34, 35)
-
Specification