量化方式分类
标量量化
基本变量
- 量化步长(
):
,其中
和
分别是量化前后的变换系数;
量化参数(
):是
表的序号值
和
有线性相关性,每当
值增加 6,相应的
就增加一倍;
- 在 HEVC 中,亮度的
共有 52 个值,对应
的取值为 0~51,色度的
值为 0~39。色度分量的 QP 一般沿用亮度的对应值,或者可以查表得到二者的对应关系。
量化与比例缩放
比例缩放过程位于变换和量化之间,为了避免浮点运算,把分子分母放大后取整,以此保证运算精度。矢量量化
编码中的量化技术
量化组(Quantization Group, QG)
量化组是把一帧图像分成固定大小(N*N)的正方形像素块,其大小由 PPS 指定,且必须介于最小 CU 和 CTU 之间。一个 CTU 可以包含一个或多个固定大小的 QG,同一个 QG 内所有含非零系数的 CU 共享一个 QP 值。
HEVC 中使用相邻 QG 的信息来预测当前 QG 的量化参数,左侧 QG 用表示,上方 QG 用
表示,则预测的 QP 值为:
。
对于 slice 中的第一个 QG,
和
都不存在,此时用当前 slice 的 QP 作为该 QG 的预测 QP;
若当前 QG 位于 slice 的最左侧或最上边,则
和
中有一个不存在,将其替换为前一个已编码的 QG。
量化矩阵(Quantization Matrix, QM)
量化矩阵的原理是对不同位置的系数使用不同的 QP 值,由于人眼对高频不敏感,因此对左上角低频系数使用小步长量化,而对右下角高频系数使用大步长量化。以此在保证主观质量的情况下,提高压缩效率。
HEVC 中的量化矩阵
HEVC 支持量化矩阵,但默认不启用。HEVC 的量化矩阵与 TU 大小相同,有 4x4, 8x8, 16x16, 32x32 四种尺寸。在 HM 中只存了 4x4 和 8x8 的矩阵,通过对 8x8 插值得到 16x16 和 32x32。HEVC 中有两种形式的量化矩阵:默认量化矩阵、自定义量化矩阵。
VVC 中的量化矩阵
VVC 与 HEVC 一样,支持默认 QM 和自定义 QM,区别在于:
VVC 中增加了更多尺寸:64x64 亮度、2x2 和 32x32 色度;
- 与高频调零技术结合:比如对于 64x64 的 TU,对应的 8x8 QM 右下角的 4x4 区域可以调为零;
- 增加多核变换和 NSST 相关的限制;
- 支持矩形 TU,其 QM 通过按比例下采样得到。
Reference
WebPageBlog - 量化参数与 HEVC
CSDN - HEVC代码学习43:默认量化矩阵 Paper