前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >掌握量化技术是视频压缩的关键

掌握量化技术是视频压缩的关键

作者头像
用户1324186
发布2022-02-18 10:52:59
2.4K0
发布2022-02-18 10:52:59
举报
文章被收录于专栏:媒矿工厂媒矿工厂

来源:IBC2021 主讲:J. Le Tanou @ MediaKind 翻译:钟宏成 演讲首先回顾了关于标量量化和率失真理论的基础知识,然后讨论了如何联合优化不同级别的量化以提高编码效率的方法。介绍了两个量化技术:时空依赖自适应量化(STAQ)与局部量化细化(LQR),这些方法可以在 HM 和 X265 上带来约 30% 的压缩性能。

目录

  • 动机与目标
  • 量化基础
  • 现代视频编解码标准中的量化
    • Picture/Slice Level
    • Block/CU Level
    • Coefficient Level
    • 本章总结
  • 两个量化技术
    • Spatio-Temporal Adaptive Quantization (STAQ)
    • Local QP Refinement (LQR)
  • 总结

动机与目标

在受限的网络和存储中进行视频传输的挑战。

  • 从现场拍摄或内容制作,到最后的客户交付,视频内容经历了几个阶段的转换。
  • 整个传输链必须依靠视频压缩来降低其在带宽和存储消耗方面的成本。
  • 压缩是链中主要的有损处理,以权衡视频质量和比特成本

视频编码利用信号的信息冗余来降低数据率。无损编码依赖于:差分预测编码、变换、熵编码。有损编码通过添加量化过程来进一步提高压缩效率。

图1: 混合视频编码框架

混合视频编码框架中,不同模块的自由度不同。固定处理步骤:

  • 熵编码
  • 反量化、反变换

受限处理步骤:

  • 运动预测
  • 环内滤波

完全自由处理步骤

  • 变换
  • 量化

量化基础

量化的概念很简单。其目的是将一组数值映射到一个较小的数值。量化是一个不可逆的过程,因为它引入了数据损失。这就是有损压缩的意义所在:为几个值选择一个代表。

这里不涉及矢量量化(Vector quantization, VQ),在通常的视频编码方案中只考虑标量量化(Scalar Quantization, SQ),其中变换(Transform)过程已经被假设为输出去相关的样本。

在视频编码器中,标量量化操作用(带圆整的)整数除法实现,除数是量化步长(QStep)。举例来说,除 10 再圆整到最近的整数操作会将 \{0,1,2,3,4\} 量化到 0, \{5,6...13,14\} 量化到 1。量化步长越大,量化强度与信号损失越高。反量化是由标准规定的,基本上就是量化后的信号乘上量化步长。

图2: 标量量化/反量化

VVC 带来了量化语法编码的最新进展。实际上,通过在系数编码语法中添加内存,“相关量化(Dependent Quantization)” 实现了使用单个语法元素对两个可能的量化值进行编码。在解码器端的反量化取决于先前状态机解码的系数的路径。尽管如此,基本机制仍然是标量量化。

现代视频编解码标准中的量化

现代视频编解码标准中的量化过程有多个级别的控制,包括一个量化参数(Quantization Parameter, QP) 和数个可选的细化步骤。在 AVC/H.264 和 HEVC/H.265 中,QP 范围是 [0, 51] 。在 VVC/H.266 中,QP 范围扩展到 [0, 63] 。对于这些标准,QP 用作一个索引来产生量化步长,QP 每增加 6,QStep 大小翻倍。

图3: 量化控制层级

QP 可以在图片级别进行适配,也可以在块(或编码单元 CU)级别使用更精细的粒度进行适配,如图 3 所示。图片级 QP 适配通常用于在 GOP 上满足全局速率约束(即目标比特率),即在 GOP 内调整以优化 RD 性能。例如,在用作给定 GOP 结构的参考帧上花费更多比特可能是合适的,因为它的错误将通过预测向前传播。

Picture/Slice Level

Picture/Slice QP 用于计算 Slice 的第一个块的 QP。如果不进一步细化,这个 QP 值将代表整个Slice(整个图片或图片的一部分)。量化矩阵允许频率相关的量化,作为 QP 的补充,通常在序列级或图片级发出信号。对于每个变换块大小,量化器步长可以根据频率系数位置进行调整。例如,为了更好地匹配人类视觉系统感知,与高频系数相比,低频系数可以用更精细的量化步长来量化。在 MPEG 视频标准中,这是通过缩放矩阵进行管理的,这些矩阵可选地在序列和图片参数集(SPS 和 PPS)中传输,并在图片级别参考使用(或不使用)。

Block/CU Level

在编码单元 (CU) 级别调整 QP 是压缩效率的基石。在大多数视频编解码器/标准中,允许块 QP 值自适应。通常,为了减少每个编码块要传输的数据量,对本地 QP 值进行 DPC 编码。QP 预测是从相邻块和按解码顺序的前一个 QP 进行的,因此只有 delta QP,即预测值和当前 QP 值之间的差异,必须用信号发送。

同样,只有 QP 预测和信令机制是标准化的,这让我们可以自由地开发具有各种优化标准、各种范围(即块级、帧级、GOP 级)和各种复杂性的自适应 QP (AQP) 算法。通常,块 QP 值可以针对信号的局部特征,或预测方案中的块相关性优化量化级别,以提供更好的视觉质量。使用 RDO 使局部 QP 适应局部特征是最大化压缩效率的一种选择。如前所述,目的是限制关于速率的失真。失真与 QStep 相关,即随着 QStep 增加,失真增加。根据量化步骤的速率稍微复杂一些,因为速率取决于 delta QP 成本、量化系数的数量及其大小。QStep 越高,变换系数的数量及其幅度越低,但可能 delta QP 成本更高。理想的解决方案是为 GOP 中的每个块确定提供最佳全局 RDO 的 QP 组合。

AQP 算法通常旨在为每个块先验地确定最佳 QP,以提供最佳全局主观或客观质量,同时满足速率约束。这些算法可以设计为仅考虑空间信息(即帧内或块内的统计信息)来估计帧的 QP。更好的算法通常会考虑时间信息(即帧间统计信息),例如试图测量 GOP 中的块持久性。这种算法,例如时空 AQP 通过将块之间的所有时间和空间相关性估计到一个 GOP 中,成功地更好地优化了全局 R-D 权衡。

作为先验 AQP 算法的补充(即基于估计),可以对局部 QP 进行后验改进,以调整 RDO。这样的后验算法,例如局部 QP 细化 (LQR) 或“多 QP 优化”,通过最小化局部 RDO 来调整给定块的一组 QP 候选。如果仔细实施,LQR 算法可以在不影响全局 RDO 的情况下显著提高编码效率。编码效率的附加值不是基于估计,而是基于真实的失真和速率测量,准确地考虑了块之间的所有依赖关系。

Coefficient Level

每个变换系数的最终量化调整也是可能的。它可以帮助基于给定的 R-D 标准最小化来提高客观分数。但额外的感知标准(例如噪声整形、系数过滤/丢弃等)也可用于减少特定的视觉伪影(例如条带、振铃等)。系数量化优化的主要优点在于不引入任何额外的语法比特成本开销;仅调整量化值,同时保持量化参数不变。

对于每个系数,舍入(到量化引入的整数除法)设置阈值,用于将一组值映射到唯一值。回到前面的量化步长等于 10 的示例,我们可以移动舍入阈值,使得 \{0,1,2,3,4,5,6,7,8\} 量化为 0,\{9,10 ,….,17,18\} 到 1 等。调整舍入在量化过程中提供了很大的自由度。对于讨论的示例,它只是对死区的修改,但可以设计更智能的策略。

格状量化,例如 RDO-Q 是系数级别的智能量化策略的一个选项。在典型配置中,对于每个系数,应测试两个可能的重构值(下舍入和上舍入),并应根据给定的 R-D 标准保留最好的一个。例如,给定 57 的系数和等于 10 的量化步长,围绕 5.7 的可能量化系数为 5 和 6,可能的重构值为 50 和 60。块中的每个系数都存在相同的两个选项,从而导致网格架构 . 它定义了使用维特比算法解决的最小路径问题优化,用于识别舍入的最佳组合。

我们不会进一步开发这部分,然而,一个重要的评论是系数级量化优化不会影响量化步长/参数的优化,这是本文的目的。

本章总结

量化过程可以在不同的粒度级别进行优化,大多数技术都可以组合。一旦定义了 失真 D,要解决的优化问题就是在速率 R 约束下最小化 D。不幸的是,在处理实际实现时,计算复杂性和资源消耗是权衡压缩效率的额外限制。

两个量化技术

  • Spatio-Temporal Adaptive Quantization (STAQ)
    • 优化全局 R-D 标准,将编码依赖性考虑纳入 GOP
    • 对 GOP 上的时间失真传播进行建模
    • 基于先验 R(D) 建模的每个块输出“最佳” delta-QP
  • Local QP Refinement (LQR)
    • 在不考虑编码依赖性的情况下优化本地 R-D
    • 迭代 RDO 方法,可细化每个块的后验 delta-QP 值
    • 有助于补偿 R(D) 建模泄漏或对 STAQ 的简化

Spatio-Temporal Adaptive Quantization (STAQ)

STAQ 是一种全局 R-D 优化算法,在整个 GOP 上根据 R 最小化 D,并为每个块提供最佳局部量化器。在实践中,该算法是 MBTree 算法的深度演进,其中所有机制都经过重新审视,对 R-D 标准进行了更好的建模。最值得注意的是,STAQ 中的失真建模允许轻松引入感知标准,与基于 MSE 的更简单模型相比,这有助于显著改善主观质量结果。

STAQ 基于一个单一的原则:失真随时间传播。应用于每个块的量化过程会产生失真。通过预测(即运动补偿预测),每个参考块上产生的部分失真通过运动补偿传播到下一个块上以进行编码。因此,逐个图像编码中,块失真随着时间累积。通常,时间失真传播(从一幅图像到另一幅图像)在 Skip 模式时最大,而在帧内编码时传播停止(即没有运动补偿)。算法的本质就是识别出预测中引用最多的样本区域,对这些区域进行尽可能好的编码(低失真/低 QP),并尽可能多地复制这些区域(比特率几乎为零)

图4: 被参考重用的块与未被参考重用的块

如图 4 所示,在第一张图像的左上角,绿色区域(或块)持续存在于序列的下一张图像中,并且经常被参考用于预测。该区域在第一张图像编码时将使用较低量化步长,所考虑的区域在时间上相对静止,因此连续的运动补偿将倾向于跳过模式(即样本区域的副本),并且编码器将几乎不需要比特就可以获取最小失真。同样的原理也适用于任何预测良好的运动区域。因此,出现了一个理想的副作用:副本不会产生视频质量波动,并且视频质量会随着时间的推移而稳定。相反,当未来图像中出现遮挡时(图 4 中的红色区域),下一个块很可能会被帧内编码,从而打破时间依赖。因此,对于预测参考概率较低的区域,无需在编码上花费太多比特。

STAQ 构建了一个加权依赖网络,将同一 GOP 的所有块连接在一起,考虑了运动估计、编码模式概率、从前瞻模块估计的其他信息以及 GOP 的目标比特率。空间(即帧内)失真也会传播,通常从图像的左上角向下传播到图像的右下角(取决于标准)。STAQ 将空间和时间失真传播集成到其 R-D 优化中。

STAQ 提供了令人印象深刻的客观收益。我们在论文 “Optimal Adaptive Quantization based on Temporal Distortion Propagation model for HEVC” 中广泛详细地分析并分析了一个简化的 STAQ 模型,称为基于速率失真的时空量化 (RDSTQ) 算法。通过在 HEVC 参考模型 (HM) 中实施 RDSTQ 算法,我们报告了在相同的基于 SSIM 和基于 PNSR 的质量下,与没有自适应量化相比,平均比特率节省高达 -26.9% 和 -15.6%。在 HM 的上下文中,所提出的算法明显优于最先进的相关方法。表 1 总结了使用 JCT-VC 测试条件的编码效率结果。

表1: RDSTQ 的 RD 性能

除了客观指标分数比较之外,还根据配对比较方法,在非专家 MediaKind 的员工中进行了几次主观质量评估会议。对结果的分析表明,由于 STAQ 算法,空间和时间质量得到了一致的改进。 STAQ 的一个非常重要和内在的好处是随着时间的推移提高视频质量稳定性,这是 SSIM 或 PSNR 都没有衡量的特性。

最后,如前所述,STAQ 依赖于预分析模块来进行各种信号统计估计,称为 Look-ahead。Look-ahead 模块是大多数高效商业编码器中可用的子过程。与没有自适应量化相比,为 STAQ 建模添加到 MediaKind 优化的软件编码器中的计算开销对整体编码运行时间的影响不到 3%(使用优化和多线程)。 相对于较小的运行时间增加,显著的视频质量增益使 STAQ 成为最强大的自适应量化算法之一。

Local QP Refinement (LQR)

LQR代表本地QP优化。粗略地说,对于每个块或CU进行详尽的编码,它包括通过测量产生的失真(从重建循环中)和速率(从熵编码估计中)权衡来彻底竞争几组局部量化参数。这种蛮力算法或概念并不是新出现的;但需要大量的知识来有效地实现实时软件编码,并结合全局R-D优化。LQR的动机是,通过精炼或调整后验的一组局部量化器候选将有助于跟踪两种有利情况: 要么是局部“失真降低”(对于几乎相同的速率),要么是局部“速率降低”(对于几乎相同的失真)

STAQ 中先验的 RD 建模有一些已知的限制:

  • 用香农熵作为码率的估计,但 CABAC 不一定符合香农熵
  • 没有考虑旁路语法信令成本,如 delta-QP 语法
  • 理论分析中使用了一些假设,如高码率假设
  • 模型中包含了一些简化,如 inter 概率等。

在本文中,我们证明(后验的)利用失真或速率的本地QP优化可以在不损害任何(先验)全局R-D优化的情况下带来额外的压缩效率。事实上,LQR 插件在编码效率上可以补充具有全局 RDO 激励的自适应 QP 算法,如 STAQ。一种解释是,它有助于补偿先验模型的估计误差,如 STAQ,通过真实的后验测量(验证)的失真和率;例如更好地优化增量 QP 语法成本。此外,与 STAQ 一样,LQR 执行的 R-D 优化可以由各种失真准则驱动,如 MSE 或任何其他基于 HVS 的度量。

图5:根据重建网格的失真

反量化之后会产生失真。稍微改变量化步长也会稍微改变可能的重构值比例:可能的重构值滑向量化的值方向或相反方向。图 5 说明了使用 HEVC 量化参数 𝑃 时可能的重建值的位移(偏移)。绘制给定量化值的等重建曲线以显示对数形式。量化值在由 𝑃 到 QStep 尺度定义的重建值网格上重建。如图 5 所示,如果我们考虑一个给定的系数 ( QP 值),这种落在格点上的有利情况就是我们定义的“失真下降”。尽管这种情况的概率随着块中非零变换系数的数量而减少,但对于多个块中相当大比例的非零变换系数,“失真下降”效应仍然可能。

相反,对于几乎没有失真增加,对于某些选定的 QStep 值,块的速率可以有利地降低。通过设计,当增加 𝑃 时,量化值幅度会降低,并且速率会按预期降低;在大多数情况下,量化误差和失真会相应增加。有趣的是,可以观察到,对于某些变换后的系数分布,速率下降(或“下降”)相对于局部失真的增加可能是显著的,从而导致局部 R-D 权衡。

此外,我们观察到,对于一些转换后的系数分布,并在 CABAC 上下文中,小的 𝑃 减少可能导致几乎没有速率增加。可以用两个事实来解释。首先,当改变 𝑃 时,CABAC 上下文可能更适合,从而使量化系数的熵编码更有效。其次,轻微的量化系数比特率增加可以通过差分 𝑃 语法比特率降低来补偿。这两种情况产生的速率低于我们称之为“ratedrop”的预期。

总体而言,在不影响任何全局 RDO 的情况下,局部提炼一组 𝑃 候选可以同时对速率和失真都有好处,这就是 LQR 所做的。

最后,由于额外的启发式和优化(例如变换域中的失真估计),LQR 实现可以在计算开销方面保持合理,在 MediaKind 优化的软件 HEVC 编码器中,总体编码运行时间增加低于 10%。

表 2 总结了 LQR 算法结合 STAQ (RDSTQ) 的压缩效率性能,在 x265 中实现并使用 JCT-VC 常见测试条件。作为 STAQ 算法的补充,编码效率附加项可节省约 6% 的比特率 相同的 PSNR 或基于 SSIM 的质量。

表2: 在 RDSTQ 基础上添加 LQR 的 RD 性能(x265)

总结

通过分享适用于大多数现代视频压缩标准的混合视频编码方案的概述,我们强调了量化在优化视频质量-比特率权衡中的关键作用,作为(几乎)唯一可调节的有损处理步骤进入任何编码系统。因此,我们详细介绍了可用于量化优化的各种级别的粒度和控制点,尤其是块或 CU 级别的 QP 自适应。

作为实际示例,我们介绍并分享了对两种自适应量化算法的一些见解:STAQ 和 LQR。仔细实施这两种互补算法可以升级基于 HEVC 的实时软件编码器,在相同的基于 SSIM 的质量下,比特率节省超过 -25%。这些算法将受益于任何支持本地 QP 自适应的标准(例如 MPEG-2、H264/AVC、H266/VVC 等)。

通常,用于视频标准开发的软件参考编码器模型不实现前瞻模块和高级编码器量化技术,它在某种程度上低估了给定标准提供的压缩效率性能。最终导致大多数商业编码器提供商将在这些缺失的性能优化上竞争。

最后附上演讲视频:http://mpvideo.qpic.cn/0b2ejyaacaaadiaekihss5qvatwdafhaaaia.f10002.mp4?dis_k=f528acceca5c03ffdff4fb0391e1d552&dis_t=1645152642&vid=wxv_2242692425712615431&format_id=10002&support_redirect=0&mmversion=false

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-01-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 媒矿工厂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 动机与目标
  • 量化基础
  • 现代视频编解码标准中的量化
    • Picture/Slice Level
      • Block/CU Level
        • Coefficient Level
          • 本章总结
          • 两个量化技术
            • Spatio-Temporal Adaptive Quantization (STAQ)
              • Local QP Refinement (LQR)
              • 总结
              相关产品与服务
              图像处理
              图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档