Generalized sample offset
This disclosure relates to adaptive loop filtering (ALF) for cross-component sample offset (CCSO) and local sample offset (LSO). ALF uses reconstructed samples of a first color component as input (e.g., Y or Cb or Cr). For CCSO, the output is applied on a second color component which is a different color component of the first color component. For LSO, the output is applied on the first color component. A combined ALF may be generalized for CCSO and LSO by considering a delta value between neighboring samples of a collocated (or current) sample and also considering a level value of the collocated (or current) sample.
1 . A method for video decoding, the method comprising:
receiving a video bitstream corresponding to a plurality of pictures, including a current picture;
selecting, based on a first flag in the video bitstream, a sample offset filter for a current sample of the current picture, wherein the sample offset filter is one of a local sample offset (LSO) and a cross-component sample offset (CCSO), and wherein the first flag indicates whether the sample offset filter is applied for one or multiple color components;
selecting, based on a second flag in the video bitstream, an offset type to be used with the sample offset filter, wherein the second flag indicates whether a gradient offset (GO) is applied jointly with a band offset (BO), and wherein the BO is applied regardless of whether the GO is applied;
when the second flag indicates that the GO is applied jointly with the BO and the selected sample offset filter is CCSO, deriving an offset for the sample offset filter using:
a first delta value between neighboring samples and a co-located sample of a different color component; and
a value of the co-located sample of the different color component;
when the second flag indicates that the GO is applied jointly with the BO and the selected sample offset filter is LSO, deriving the offset for the sample offset filter using:
a second delta value between neighboring samples and the current sample; and
a value of the current sample; and
determining an output value of the sample offset filter based on the current sample.
2 . The method of claim 1 , further comprising:
determining a filtered sample value based on the current sample and the output value of the sample offset filter.
3 . The method of claim 1 , wherein the second flag is signaled via a high level syntax transmitted in a slice header, picture header, frame header, superblock header, coding tree unit (CTU) header, or tile header.
4 . The method of claim 1 , wherein the second flag is signaled via a block level transmission in a coding unit level, prediction block level, transform block level, or filtering unit level.
5 . A computing system, comprising:
control circuitry;
memory; and
one or more sets of instructions stored in the memory and configured for execution by the control circuitry, the one or more sets of instructions comprising instructions for:
receiving video data comprising a current picture;
selecting a sample offset filter for a current sample of the current picture, wherein the sample offset filter is one of a local sample offset (LSO) and a cross-component sample offset (CCSO);
determining that a band offset (BO) is to be applied with the sample offset filter;
determining whether a gradient offset (GO) is to be applied jointly with the BO;
when the GO and BO are to be jointly applied and the selected sample offset filter is CCSO, deriving an offset for the sample offset filter using:
a first delta value between neighboring samples and a co-located sample of a different color component; and
a value of the co-located sample of the different color component;
when the GO and BO are to be jointly applied and the selected sample offset filter is LSO, deriving the offset for the sample offset filter using:
a second delta value between neighboring samples and the current sample; and
a value of the current sample;
signaling a first flag indicating whether the sample offset filter is applied for one or multiple color components; and
signaling a second flag indicating whether the GO is jointly applied with the BO.
6 . The computing system of claim 5 , wherein the one or more sets of instructions further comprise instructions for determining a filtered sample value based on the current sample and an output value of the sample offset filter.
7 . The computing system of claim 5 , wherein the second flag is signaled via a high level syntax.
8 . The computing system of claim 5 , wherein the second flag is signaled via a block level syntax.
9 . A non-transitory computer-readable storage medium storing one or more instructions and a video bitstream that is generated by a video encoding method, the instructions, when executed by a processor, cause a computing system to perform the video encoding method, the video bitstream comprising:
encoded information for a plurality of pictures, including a current picture;
a first flag indicating a sample offset filter to be applied for a current sample of the current picture, wherein the sample offset filter is one of a local sample offset (LSO) and a cross-component sample offset (CCSO), and wherein the first flag indicates whether the sample offset filter is applied for one or multiple color components;
a second flag indicating whether a gradient offset (GO) is applied jointly with a band offset (BO), and wherein the BO is applied regardless of whether the GO is applied; and
wherein, when the GO and BO are to be jointly applied and the selected sample offset filter is CCSO, the video encoding method comprises deriving an offset for the sample offset filter using:
a first delta value between neighboring samples and a co-located sample of a different color component; and
a value of the co-located sample of the different color component; and
wherein, when the GO and BO are to be jointly applied and the selected sample offset filter is LSO, the video encoding method comprises deriving the offset for the sample offset filter using:
a second delta value between neighboring samples and the current sample; and
a value of the current sample.
10 . The non-transitory computer-readable storage medium of claim 9 , wherein the first flag is in a high level syntax of the video bitstream.
11 . The non-transitory computer-readable storage medium of claim 9 , wherein the first flag is in a block level syntax of the video bitstream.
12 . The non-transitory computer-readable storage medium of claim 9 , wherein, when the GO is not to be jointly applied with the BO, the video encoding method comprises deriving the offset for the sample offset filter using only the BO.
13 . The non-transitory computer-readable storage medium of claim 9 , wherein the second flag is in a high level syntax of the video bitstream.
14 . The non-transitory computer-readable storage medium of claim 9 , wherein the second flag is in a block level syntax of the video bitstream.
15 . The method of claim 1 , wherein, when the second flag indicates that the GO is not applied jointly with the BO, the method further comprises deriving the offset for the sample offset filter using only the BO.
16 . The method of claim 1 , wherein the first flag is signaled via a high level syntax.
17 . The method of claim 1 , wherein the first flag is signaled via a sequence parameter set, picture parameter set, or video parameter set.
18 . The computing system of claim 5 , wherein, when the GO is not to be jointly applied with the BO, the one or more sets of instructions further comprise instructions for deriving the offset for the sample offset filter using only the BO.
19 . The computing system of claim 5 , wherein the first flag is signaled via a sequence parameter set, picture parameter set, or video parameter set.
20 . The computing system of claim 5 , wherein the second flag is signaled via a sequence parameter set, picture parameter set, or video parameter set.