译者注:
本文译自提案JVET-D1001的2.4.3小节的内容。
提案作者的文章:
Exploiting Non-Local Correlation via Signal-Dependent Transform (SDT), IEEE JOURNAL OF SELECTED TOPICS IN SIGNAL PROCESSING, VOL. 5, NO. 7, NOVEMBER 2011, Cuiling Lan, Jizheng Xu, Senior Member, IEEE, Guangming Shi, Senior Member, IEEE, and Feng Wu, Senior Member, IEEE
考虑到相邻帧之间有很多相似的块,信号依赖的变换(SDT)通过K-L变换(Karhunen-Loéve transform)挖掘这个相关性,以增强编码性能。这种训练出来的K-L变换起到更高效地压缩能量的作用。
图 24: 挖掘非局部相关性的K-L变换的流程图
上面的流程图描述了这个想法。对于当前编码块C,首先,获取一个参考块,该参考块包含重建的左-上模板tb和编码块的预测块p。然后,这个参考块被用来搜索与参考块最相似的N个块。最后,基于这些块和预测块的一维的KLT被计算出来。当前编码块在解码端是未知的,所以不能用来搜集相似的候选块。预测块和重建模板被用来指引相似块的搜索,而非使用原来的块。此工具用于4x4、8x8、16x16和32x32大小的块。
总所周知,K-L变换是就能量压缩性能性能而言最优的变换。通过搜索N个与参考块最相似的重建块,得到xi,i=1,2,…,N。这里,xi=(xi1, xi2, …, xiD)T和D表示变换块的矢量维度。例如,对于4x4编码块,D为16。这些块减预测块p,再除以根号N,得到残差块ui,i=1,2, …, N。这些残差块被用作KLT的训练样本。这N个训练样本可以表示为(u1, x2, …, xN),这个一个DxN的矩阵。协方差矩阵Σ:
该协方差矩阵的维度为DxD,该协方差矩阵的特征向量就是KLT的基向量。对于自然图像视频的内容,我们发现选择候选数量N为100已经有足够好的性能了。
特征值分解的计算复杂度是O(D3)。对于4x4的块,D为16,计算复杂度为O(163)是可接受的。对于大块,复杂度将会非常高。对于32x32的块,D为1024,时间复杂度是4x4的块的262144倍,就变得难以接受了。
考虑到这点,利用一个快速算法来使得KLT可行。Σ的维数是DxD。然而,UTU 的维度低得多:NxN。我们计算Σ’=UTU的特征向量ϕ,它满足以下方程:
ϕ是特征向量矩阵, Λ表示由特征值组成的对角矩阵。在上式两边同时左乘 U ,得到:
往上面的方程增加括号,得到:
列向量 Uϕ就是 UUT的特征向量,对角矩阵 Λ的元素即是相应的特征值。令 φ=Uϕ。这暗示了高维协方差矩阵 UTU这暗示了高维协方差矩阵 UTU可以通过低维的协方差矩阵 UUT的特征向量?乘以 U得到, φ和 Λ的维度均为 D×N。 UTU 的所有其他的 (D-N)个特征向量的特征值均为0。我们可以施密特正交化来补充这 (D-N)个特征向量,以得到 D×D的特征向量矩阵。为了降低矩阵乘法的复杂度,可以用得到的 N个特征向量来执行KLT变换,让剩余的 (D-N)个变换系数为0。这不会降低性能,因为前 N个投影可以覆盖信号的大部分能量,基向量从编码块的高相关样品训练而来。
在JEM中,上述的KLT在编码块的块层实现。为了能更好地适应图像视频的内容,所提方案支持4x4、8x8、16x16和32x32编码块大小的KLT。在JEM的编码端,通过使用率失真优化在SDT和AMT(advanced multiple transform)中选择最优的变换模式。