H.265/HEVC学习笔记:变换
一、 原理
图像变换编码是指将以空间域中像素形式描述的图像转换至变换域(频域),以变换系数的形式加以表示。由于绝大多数图像都含有较多平坦区域和内容变化缓慢的区域,适当的变换可使图像能量在空间域的分散分布转换为在变换域的相对集中分布,以达到去除空间冗余的目的。
在H.265/HEVC中,对经过预测编码后的预测残差进行变换,并根据预测残差的特点使用离散余弦变换和离散正弦变换两种变换方式。
二、离散余弦变换(DCT)
2.1 DCT原理及特点
傅里叶变换表明,任何信号都能表示为多个不同振幅和频率的正弦或余弦信号的叠加。如果将离散信号分解为余弦信号的叠加,则称为离散余弦变换(DCT)。数学上共存在8中DCT:
在以上8类DCT中,前四类对应于偶数阶的实偶DFT,后四类对应于奇数阶的实偶DFT。在图像、音视频编码等多媒体信号处理领域,Ⅱ类DCT应用最为广泛。对于预测编码后的残差信号,多集中于低频区域。图5.1给出了二维8x8DCT基图像,任一8x8像素块可以表示为图5.1中的64个基图像的加权和,其权值即为对应位置的DCT系数。
2.2 整数DCT
为了便于硬件实现,提高计算速度,从H.264/AVC开始视频编码中使用了整数DCT,最初仅使用了4x4整数DCT变换矩阵。4x4整数DCT变换矩阵的推导过程如下:
在H.264/AVC中规定,变换过程只进行式(5-3)中的矩阵相乘“C_f XC_f^T”部分,而标量相乘部分与后续的量化过程一块进行。
8x8整数DCT变换矩阵的推导过程与4x4整数DCT类似,结果如下:
2.3 H.265/HEVC中的整数DCT
H.265/HEVC中沿用了H.264/AVC所采用的整数DCT技术,但进行了一些改进。H.265/HEVC中使用了4中不同尺寸的整数DCT,分别为4x4、8x8、16x16、32x32。对于变换矩阵,H.265/HEVC没有采用近似的方式调整c和b的值,而是利用与较大的整数相乘来保留一定的小数精度。
另外三种尺寸的整数DCT推导方法与4x4整数DCT相同。
三、离散正弦变换(DST)
3.1 DST的原理及特点
如果将离散信号分解为正弦信号,则称为离散正弦信号(DST)。在数学上存在8种DST:
在上述8类DST中,前四类对应于偶数阶的实奇DFT,后四类对应于奇数阶的实奇DFT。H.265中使用的是Ⅶ类DST,其二维形式为:
3.2 H.265/HEVC中的整数DST
H.265/HEVC标准规定,在帧内4x4模式亮度分量残差编码中使用4x4整数DST,而在帧内其他模式、帧间所有模式,以及所有色差分量的残差编码中一律使用整数DCT。这主要是由于帧内预测利用周围已重构块边缘像素预测当前块的方法使得帧内预测残差具有如下特征:距离预测像素越远,预测残差越大。而DST的基函数能够很好的适应这一特征。4x4整数DST的推导过程如下: