量化方式分类

标量量化

基本变量

  • 量化步长(Quantization - 图2):Quantization - 图3,其中Quantization - 图4Quantization - 图5分别是量化前后的变换系数;
  • 量化参数(Quantization - 图6):是Quantization - 图7表的序号值

    • Quantization - 图8Quantization - 图9有线性相关性,每当Quantization - 图10值增加 6,相应的Quantization - 图11就增加一倍;
    • 在 HEVC 中,亮度的Quantization - 图12共有 52 个值,对应Quantization - 图13的取值为 0~51,色度的Quantization - 图14值为 0~39。色度分量的 QP 一般沿用亮度的对应值,或者可以查表得到二者的对应关系。
      image.png
      image.png
      image.png

      量化与比例缩放

      比例缩放过程位于变换和量化之间,为了避免浮点运算,把分子分母放大后取整,以此保证运算精度。

      矢量量化 Quantization - 图18

      编码中的量化技术

      量化组(Quantization Group, QG)

      量化组是把一帧图像分成固定大小(N*N)的正方形像素块,其大小由 PPS 指定,且必须介于最小 CU 和 CTU 之间。一个 CTU 可以包含一个或多个固定大小的 QG,同一个 QG 内所有含非零系数的 CU 共享一个 QP 值。
      HEVC 中使用相邻 QG 的信息来预测当前 QG 的量化参数,左侧 QG 用Quantization - 图19表示,上方 QG 用Quantization - 图20表示,则预测的 QP 值为:Quantization - 图21
  • 对于 slice 中的第一个 QG,Quantization - 图22Quantization - 图23都不存在,此时用当前 slice 的 QP 作为该 QG 的预测 QP;

  • 若当前 QG 位于 slice 的最左侧或最上边,则Quantization - 图24Quantization - 图25中有一个不存在,将其替换为前一个已编码的 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