变换编码:
是指将以空间域像素形式描述的图像转换至变换域。以变换系数的形式加以表示。适当的变换可使图像能量在空间域的分散分布转换为在变换域的相对集中分布,从而达到去除空间冗余的目的。
DCT:
离散余弦变换(Discrete Cosine Transform,DCT)与去相关性性能最优的K-L变换相比,与输入信号无关且存在快速实现算法,性能接近K-L变换,广泛应用在图像视频编码中。H264首次使用整数DCT技术。
DST:
H265引入了离散正弦变换技术。
H266除了沿用传统的DCT-II
变换,还采用了多核变换选择
、高频调零
、子块变换
、色度残差联合编码
等技术。
多核变换选择:
支持DCT-II、DST-VII、DCT-VIII三种变换核来应对不同的残差分布。
高频调零:
对于尺寸为MxN的变换块,如果M或N等于最大允许尺寸,则将变换后的部分高频系数置为0,仅保留低频系数,该技术称为高频调零技术。
子块变换:
当同一CU包含不同内容时,由于运动补偿能力不同,不同区域的预测残差可能不同。针对采用帧间预测的CU,H266允许采用SBT技术,仅对CU部分区域的预测残差进行变换。
色度残差联合编码:
H266使用了色度残差联合编码(Joint Coding of Chroma Residuals, JCCR)技术来降低色度分量之间的相关性,其中在对传统的空间变换前,先对Cb、Cr分量使用分量间变换(Inter-Component Transform, ICT
)技术。分量间变换是对相同位置的两个色度分量进行变换,目的是去除色度分量间的相关性,所用变换是旋转变换。
为了进一步去除变换域的冗余,H266引入二次变换,二次变换采用低频不可分变换,只针对帧内模式,并且主变换为DCT-II的情形,只对主变换系数的低频部分进行处理。
LFNST:
即低频不可分变换;在视频编码中,变换是去除预测残差空间冗余的重要工具;特别是帧内预测模式,在对预测残差进行主变换之后,其中一些低频分量仍可能是可预测的模式。为了进一步处理这些仍具有预测模式的低频系数,LFNST采用的变换不可单独使用,并且只对主变换系数的低频部分进行变换。LFNST支持两种变换尺寸,4x4、8x8,选择哪种尺寸由TU的尺寸隐式决定。
LFNST变换核:
与DCT、DST直接根据表达式进行数学推导不同,LFNST的变换核是由离线训练得到;训练过程可视为一个聚类问题,每个聚类的质心就是最佳不可分变换的变换核。
H264中规定了哈达玛(Hadamard)变换的使用方法及语法元素。因为熵编码以TU为单位,自H265标准开始,标准哦那种就不再使用哈达玛变换了,但其仍在图像视频编码中有其他应用。
沃尔什-哈达玛变换(Walsh-Hadamard Transform,WHT):
是广义傅立叶变换的一种,其变换矩阵Hm 是一个2mx2m的矩阵,称为哈达玛矩阵。其递推定义为:
哈达玛变换性质:
(1)哈达玛矩阵的元素都是+1、-1,且其特征值也只包含+1、-1;
(2)哈达玛矩阵为正交、对称矩阵,相应的哈达玛变换为正交变换;
(3)哈达玛矩阵奇数行(列)偶对称,偶数行(列)奇对称;
(4)满足帕斯瓦尔定理,即变换前后能量守恒;
哈达玛变换的特点:
与离散余弦变换DCT相比,哈达玛变换仅仅含有加(减)法运算,而且可用递归形式快速实现,另外其正向变换和反向变换具有相同的形式,因此其算法复杂度较低,且容易实现。
哈达玛变换的应用:
在图像、视频处理领域,哈达玛变换常用于计算残差信号的SATD(Sum of Absolute Transformed Difference
);SATD是指将残差信号进行哈达玛变换后,再求各元素绝对值的和。考虑到哈达玛变换的复杂度远小于DCT,同样小于整数DCT,因此SATD广泛用于视频编码中的快速的快速模式选择。
JVET输出文档:
https://www.itu.int/wftp3/av-arch/jvet-site/
书籍:
新一代通用视频编码H266/VVC:原理、标准与实现[万帅 霍俊彦 马彦卓 杨付正/著]
本系列博客主要是对《新一代通用视频编码H266/VVC:原理、标准与实现》
的学习笔记。