十四变换编码:2H264的整数变换方法——整数变换与量化
Posted 叮咚咕噜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了十四变换编码:2H264的整数变换方法——整数变换与量化相关的知识,希望对你有一定的参考价值。
一、背景
为了进一步节省图像传输码率,需要对 图像信号进行压缩,通常采用变换编码及量化消除图像信号中的相关性及减少图像编码的动态范围。
H264中整数变换及量化的具体过程如下图所示:
二、整数变换
1、实数DCT
- 对于H264,由离散余弦公式得到,4 * 4大小的离散余弦变换矩阵为:
- 将相同的部分用符号表示:
- 从残差矩阵到系数矩阵的变换为:
2、整数DCT
由于在解码端的浮点运算精度问题,会造成解码后的数据的失配,进而引发漂移,;所以对其进行改造,采用整数DCT技术,有效地减少计算量,同时不损失图像准确度。
- 原DCT变换等价于:
- d=c/b(≈0.414)。符号“⊗”表示(CXCT)结果中的每个元素乘以矩阵 E 中对应位置上的系数值的运算。为了简化计算,取 d 为 0.5。同时又要保持变换的正交性,对 b 进行修正,取b = 根号下5分之2 。
- 经过修正之后的变换为:
- 在上式中,Ef被并入量化中实现,剩下的只有加减和移位,构成了实际的整数变换操作。
- 由于前面d和b做了修正,因此变换之后的值略有可忽略的差异
三、量化
1、背景
-
量化过程在不降低视觉效果的前提下应尽量减少图像编码长度,较少视觉恢复中不必要的信息。
-
H264采用标量量化技术,它将每个图像样点编码映射成较小的数值。
-
信号的采样和量化:
- 采样:连续信号按照某个频率取样
- 采样后信号的幅值取值范围连续
-
量化的效果:
- 连续信号经过采样生成离散时间信号
- 离散时间信号经过量化生成数字信号
-
同样对一个模拟信号进行采样和量化,结果可能差别非常大
2、量化步长与量化参数
- 在H264中,量化步长Qstep由量化参数QP决定
- 量化参数越大,量化步长越大,数据损失越大:QP每增加6,Qstep增加一倍;
- 亮度分量的量化参数范围为[0,51],色度分量的量化参数范围为[0,39](为了避免在较高量步长时出现颜色量化人工效应)
3、H264的量化
- 在各种有损视频编码方法中,编码后信息的失真主要由量化过程产生
- 量化的数据是像素预测残差块的变换系数矩阵
- 量化显著缩短了变换系数的编码长度,极大提升压缩比率
- H264的量化采用标量量化,量化原理如下:
- 其中,y为输入的样本值,Qstep为量化步长,FQ为量化后的输出值
- 反量化过程为量化的逆过程,即:
- 对于变换系数矩阵,H264的量化原理为:
- 其中:Wij为变换变换之后的值,PF为矩阵Ef的对应位置的元素,即:
- 最终公式推导
4、16 * 16模式与色度分量直流部分的量化
- 对于16 * 16模式,以及色度分量,不仅CAVLC部分将直流与交流部分分别编码,在变换量化部分也分别进行
- 16 * 16模式包含4 * 4个4 * 4大小的系数矩阵,每个系数矩阵的直流部分一起组成一个直流4 * 4的新矩阵
- 对于色度分量,每个宏块分别包含Cr和Cb两个分量,每个包含4个4 * 4大小的系数矩阵,每个系数矩阵的直流部分组合为一个2 * 2大小的新矩阵
- hadamard变换:
5、色度块的直流系数变换量化
以上是关于十四变换编码:2H264的整数变换方法——整数变换与量化的主要内容,如果未能解决你的问题,请参考以下文章
H.264/AVC视频编解码技术详解十四H.264的变换编码——矩阵运算与正交变换基本概念
Codecs系列HEVC标准:变换量化技术及x265实现分析