电子说
在VVC中,与HEVC相比,增加了一个新的变换阶段,称为低频不可分离变换(LFNST)。主要条件是LFNST仅适用于亮度/色度分量的帧内块(启用单独的色度)。
LFNST的主要目标是进一步压缩低频初级变换系数之间的冗余,低频初级变换系数是来自常规方向帧内预测的变换系数。我们还可以添加,对于细长的矩形,LFNST有助于将系数精确地集中在右上角。
那么它是怎样工作的?LFNST应用于前向初级变换和量化(在编码器端)之间以及去量化和反向初级变换之间(在解码器端)。LFNST包含2种模式:4x4LFNST(对于宽度/高度<8 的块)和8x8LFNST(对于宽度/高度>=8 的块)。
例如,让我们考虑块 X的 4x4 LFNST:
首先,我们需要将 X表示为一维向量:
之后,不可分离变换可以计算为:F = T⋅ X (F和 X 是向量),其中T 是 16x16变换矩阵,F是具有变换系数的 16x1向量,可以使用以下方法将其重组为4x4 块光栅扫描顺序。
在LFNST中,使用了矩阵乘法的方法,因此为了节省存储矩阵系数的内存空间并降低计算复杂度,最好将矩阵维数最小化。这样。主要思想是将N维向量映射到R维向量,其中N>R,N/R是缩减因子。对于8x8 LFNST,缩减因子为4,因此变换矩阵为16x64。但在VVC 的后期阶段,它进一步减少到16x48。因此,由于矩阵维数减少,存储它们的内存使用量从10Kb 减少到8Kb,而性能没有太大下降。
对于解码器端的逆过程,逆LFNST 矩阵是前向变换矩阵的转置矩阵。
LFNST 有一些限制,不能在以下情况下使用:
1、块大小大于64x64 或宽度/高度CU 大于最大transform_block_size;
2、如果应用ISP TU 宽度或高度小于4;
3、块具有INTER 模式;
4、使用变换跳过;
5、块4x4 和 8x8具有超过 8个第一有效系数;
6、第一个子块中有一些系数;
7、如果只有1 个非归零系数(仅DC);需要注意的是,LFNST和 MTS是连接的:如果启用LFNST,则只能应用DCT-II 模式(MTS索引 = 0)。
LFNST 变换矩阵 T可以表示如下:
8 个不同的 16x16矩阵,用于 4x4LFNST(4lfnstTrSetIdx 和 2lfnst_idx 的笛卡尔积);
8 个不同的 16x48矩阵,用于 8x8LFNST;所有这些矩阵都预先计算并存储在编码器/解码器端。
选择最合适的 LFNST矩阵取决于lfnstTrSetIdx,它取决于在比特流中传输的IntraPredMode 和lfnst_idx。下面可以看到lfnstTrSetIdx对IntraPredMode的依赖表:
在这里你可以看到 LFNST如何在解码器端工作:
这就是今天的全部内容。在我们的下一篇文章中,我们将继续向您介绍VVC 转型创新。您也可以在这里查看我们之前关于MTS 的文章。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !