Systems and methods for applying non-separable transforms on inter prediction residuals
The various implementations described herein include methods and systems for coding video. In one aspect, a method includes receiving a video bitstream that includes a set of inter mode encoded blocks and a corresponding set of transform coefficients. The method includes deriving a set of inter mode residual blocks from the set of transform coefficients. The method includes determining, according to a value of a first indicator in the video bitstream, whether one or more non-separable transform kernels are to be applied to the set of inter mode residual blocks. The method includes applying a first non-separable transform kernel when the indicator has a first value, and forgoing applying the first non-separable transform kernels when the indicator has a second value. The method also includes reconstructing a set of video blocks using the set of inter mode residual blocks and a corresponding set of prediction blocks.
1 . A method of video decoding performed at a computing system having memory and one or more processors, the method comprising:
receiving a video bitstream that includes a set of inter mode encoded blocks and a corresponding first set of transform coefficients and includes a set of intra mode encoded blocks and a corresponding second set of transform coefficients;
deriving a set of inter mode residual blocks from the first set of transform coefficients;
deriving a set of intra mode residual blocks from the second set of transform coefficients;
determining, according to a value of a first indicator in the video bitstream, a first set of intra secondary transform (IST) kernels that are allowed to be applied to the set of intra mode residual blocks;
determining, according to a value of a second indicator in the video bitstream, a second set of IST kernels that are allowed to be applied to the set of inter mode residual blocks, wherein the second set of IST kernels includes one or more IST kernels not in the first set of IST kernels;
identifying, according to a third indicator, an IST kernel from the second set of IST kernels:
applying the IST kernel to the set of inter mode residual blocks; and
reconstructing a set of video blocks using the set of inter mode residual blocks and a corresponding set of prediction blocks.
2 . The method of claim 1 , wherein the first indicator is encoded in the video bitstream using a binary encoding; and
the method further comprises identifying a value of the first indicator via a binarized decoding of the first indicator.
3 . The method of claim 2 , wherein the first indicator comprises a binarized codeword, and a binary symbol of the binarized codeword indicates whether any IST kernels are to be applied to the set of inter mode residual blocks.
4 . The method of claim 1 , wherein the third indicator has a value selected from a set of N values, N being a positive integer; and
the method further comprises identifying the IST kernel from the second set of IST kernels using the value of the third indicator.
5 . The method of claim 4 , further comprising identifying the second set of IST kernels from a plurality of sets of non-separable transform kernels based on one or more predicted samples for the set of inter mode encoded blocks.
6 . The method of claim 5 , wherein the one or more predicted samples comprise corner samples from the corresponding set of prediction blocks.
7 . The method of claim 5 , wherein the one or more predicted samples comprise boundary samples from the corresponding set of prediction blocks.
8 . The method of claim 5 , wherein identifying the second set of IST kernels based on the one or more predicted samples comprises identifying the second set of IST kernels using a statistical analysis of spatial directional patterns in the one or more predicted samples.
9 . The method of claim 8 , wherein the statistical analysis includes applying an edge detection technique.
10 . The method of claim 5 , wherein the second set of IST kernels is identified based on prediction mode information from neighboring blocks for the set of video blocks.
11 . The method of claim 4 , further comprising identifying, according to a value of the first indicator in the video bitstream, the first set of IST kernels from a plurality of sets of IST kernels, wherein the first indicator has a value selected from a set of M values, M being a positive integer.
12 . The method of claim 11 , wherein M is based on a number of intra prediction modes for the video bitstream.
13 . The method of claim 11 , wherein Mis based on a number of IST sets applicable to intra mode coded blocks.
14 . The method of claim 13 , wherein Mis less than the number of IST sets applicable to intra mode coded blocks.
15 . The method of claim 4 , further comprising identifying the set of IST kernels from a plurality of sets of IST kernels in accordance with a default set index.
16 . The method of claim 4 , wherein the set of IST kernels includes one or more IST kernels used for both inter mode residual blocks and intra mode residual blocks.
17 . The method of claim 1 , wherein the second first indicator is a binary indicator indicating whether any kernels are allowed to be applied to the set of inter mode residual blocks.
18 . The method of claim 1 , wherein the second indicator is signaled in a high-level syntax of the video bitstream.
19 . 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 that includes a set of video blocks;
deriving a set of intra mode residual blocks from the set of video blocks;
deriving a set of inter mode residual blocks from the set of video blocks;
identifying a first set of intra secondary transform (IST) kernels applicable to the set of intra mode residual blocks;
identifying a second set of IST kernels applicable to the set of inter mode residual blocks, wherein the second set of IST kernels includes one or more IST kernels not in the first set of IST kernels;
generating a first set of transform coefficients from the set of inter mode residual blocks using a first IST kernel from the second set of IST kernels;
generating a second set of transform coefficients from the set of intra mode residual blocks using a second IST kernel from the first set of IST kernels;
determining a value for a first indicator indicating that the second set of IST kernels are applicable to the set of inter mode residual blocks;
signaling the first indicator and a second indicator indicating the first IST kernel in a video bitstream; and
signaling the first set of transform coefficients and the second set of transform coefficients in the video bitstream.
20 . A non-transitory computer-readable storage medium storing a video bitstream that is generated by a video encoding method, the video bitstream comprising:
coded information for a plurality of blocks of video data, including a first set of transform coefficients corresponding to a set of intra mode blocks and a second set of transform coefficients corresponding to a set of inter mode blocks;
a first indicator indicating that a first set of intra secondary transform (IST) kernels are applicable to the set of inter mode residual blocks; and
a second indicator indicating that a second set of IST kernels are applicable to the set of intra mode residual blocks, wherein the second set of IST kernels includes one or more IST kernels not in the first set of IST kernels;
wherein the video encoding method comprises:
deriving the set of intra mode residual blocks;
deriving the set of inter mode residual blocks;
identifying the first set of IST kernels applicable to the set of inter mode residual blocks;
identifying the second set of IST kernels applicable to the set of intra mode residual blocks;
generating the first set of transform coefficients from the set of inter mode residual blocks using a first IST kernel from the first set of IST kernels;
generating the second set of transform coefficients from the set of intra mode residual blocks using a second IST kernel from the second set of IST kernels;
signaling the first indicator the second indicator in the video bitstream; and
signaling the first set of transform coefficients and the second set of transform coefficients in the video bitstream.