IEEE ISCAS-VSPC 2022最佳论文 :VVC编码复杂度精准控制

来源:ISCAS 2022,TBC2022
内容整理:黄琰
该项工作是上海交通大学图像所,宋利教授带领的 Medialab 实验室与字节跳动多媒体实验室的合作产出。文中采用码率控制的思想,将编码时间视作资源,通过结合预分配、多粒度反馈,以及合适的编码决策,可以实现平均误差低至 0.02% 的精准的图片级和视频级复杂度控制。

图片级复杂度控制部分,获得 IEEE ISCAS 2022 VSPC 最佳论文[1],拓展的视频级复杂度控制已经发表于 IEEE Transactions on Broadcasting[2]。该项工作有效解决了快速算法对单个序列和 QP 表现不稳定的情况,也为将来延迟约束的编码场景,提供了可能的解决思路。

2020 年 7 月,由 ITU-T 的 VCEG 和 ISO/IEC 的 MPEG 组成的联合视频专家组 JVET 发布了最新一代的视频编码标准 VVC(Versatile Video Coding)。VVC 是 HEVC 之后的下一代编码标准,将由 ITU-T 作为 H.266 发布,并在 ISO / IEC 标准中构成 MPEG-I 第 3 部分(ISO / IEC 23090-3)。作为最新的视频编码标准,VVC的目标是在节省50%码率的情况下,取得与HEVC相同的视觉质量。此外,VVC 也被寄希望于在新兴场景中得到很好的应用,包括高动态范围(HDR),自适应比特流,计算机生成的内容以及沉浸式应用(如360视频和增强现实(AR)等)。

但是 VVC 的复杂度相对于 HEVC 成倍提升,根据标准提案 JVET-Z0003, 在 AI,RA,LDP 配置下,VVC 的复杂度是 HEVC 的 2563%, 787% 和 626% [3]。为了降低复杂度,已经开始有研究工作,将HEVC中应用的不同类型方法,包括启发式算法,统计学习方法和机器学习方法,移植到 VVC 中。快速算法是降低编码器复杂的常用手段,但是对于不同序列和 QP 的不稳定表现,使得很难实现指定单个序列单个配置的目标编码时间,这限制了编码器的实际用途。举个例子,当手机还剩 10 秒钟关机,而在关机之前我们希望在受限的时间内完成视频的编码过程并发送出去;或者我们在玩一个 VR 游戏,这个游戏要求每一帧的编码延迟在 10ms 以内,否则编码延迟的波动可能会导致游戏体验者的眩晕感。快速算法无法应对这种情况,这使得快速算法更适用于离线的,大规模编码场景,用来节省计算机集群的算力。但是不适用于现在越来越流行的视频,VR 直播等。

为了保证对于不同序列,不同 QP 下,整个序列的编码时间,甚至单帧编码时间的稳定。我们设计了一种能精准控制编码复杂度的框架。另外,为了应对 VVC 的复杂度问题,该框架被部署在 VVC 中进行验证测试。

方法

受码率控制的启发,在本文中,时间被视为一种资源,我们考虑 GOP 内编码的分层结构,帧内不可加速比例,以及帧内不同区域的内容重要,设计了一种自上而下的分配方案和自下而上的反馈方案,来通过控制 QTMT 最大深度,实现编码复杂度的精准控制。首先我们介绍几种用于图片级复杂度控制的技术。

图片复杂度控制框架

针对单帧图片的复杂度控制场景的框架,主要由编码复杂度预算预分配,目标预算下编码决策,以及反馈三个模块构成(分别对应图中绿色,黄色和蓝色块)。其中编码决策部分又包含编码时间估计,以及目标编码时间下编码模式选择两部分

图片

编码时间预估模型

首先,为了确定每一个待编码块 CTU 本身的复杂程度,也就是不对它进行任何加速时,其编码所需消耗的时间,我们探索了一种基于 Cost 的编码时间预估模型 T-C 模型。我们发现,VVC 中每一个 CTU 中 Planar Cost,与对应的 CTU 亮度压缩时间,存在一定的规律性,经过幂函数拟合和验证,可以比较好地跟踪编码时间。经过与 SATD 和 DC cost 预测进行横向对比,该模型具有一定的精度优势。

图片

预分配

复杂度分配的目的是在编码之前,将目标编码时间分配到各个编码单元之中。在分配的过程中,需要考虑每一个编码单元本身所需要的计算复杂度,避免不合理的分配。举个例子,假如为原本计算复杂度就很高的 CTU 设置一个较低的目标时间,比较容易造成较大的性能损失,而且因为给定的分配不合理,会导致目标实现无法实现,给反馈带来压力。经过探索,我们发现 SATD 可以衡量每一个 CTU 的复杂度,并以此为权重进行复杂度的初步分配。在 GOP 之内,我们发现不同 Tid 下编码时间呈现出一定的规律性。因此在预分配过程中,我们也考虑 Tid 对编码时间的影响。

图片

反馈

在编码完成每一个 CTU 之后,分配的编码时间和真实编码时间的差值,也就是编码误差,需要被控制。我们设计了一个滑动窗口,来控制每一级反馈的力度。滑动窗口的长度我们固定为 20,当然为了保证每一帧的预算能够比较精确地实现,当剩余 CTU 数量不足时滑动窗口对应缩短。

图片

编码模式决策

我们使用基于帕累托准则生成查找表,来生成不同目标下的编码模式配置。VVC 中存在 QT MT BT 三个深度,我们对这三个深度进行组合,作为编码配置,对所选择的序列进行编码。然后我们将每一个配置,在所选序列上的平均表现,提取出来,画出左边的单配置表现图。其中的包络配置,代表着给定时间节省下的平均最低性能损失,我们将这些配置提取到右边的表格,作为我们的候选配置。

图片

视频复杂度控制

为了实现序列的复杂度控制,我们进一步引入了 GOP 级和帧级的多粒度复杂度分配和反。其中还探索了帧-CTU 编码时间的关系,实现多粒度的分配和反馈中的完整映射。首先,一个序列被以 GOP 为单位天然切成了几段,包括第一个I帧,以及接下来的 K 个 GOP,和剩余的帧。因此,我们将一个序列的编码预算,首先按照 GOP 中帧的数量,进行平均分配。在 GOP 之内,不同 Tid 下编码时间呈现出的规律性,也通过在线训练获取并利用。

图片

另外,因为加速方法设计在亮度压缩模块,所以其余的模块的时间在进行分配的时候我们考虑提前预留。我们在从 GOP 到 Frame 的分配过程中,预留出了一部分不可加速的时间,来实现完整的映射。

图片

所控制的亮度压缩模块 Luma Compress 和单帧编码时间之间的关系如上图所示,上述预留的时间,就是示意图中 Luma Compress 以外的区域,我们将单帧编码时间和累计亮度压缩时间分别收集,发现了如右图所示的线性的关系。我们基于线性关系,设计了一个线性模型,用于指导帧级预算到 CTU 预算的映射,也用于辅助前面说到的,从 GOP 到帧级预算的分配。

实验

图片级编码时间控制

为了验证图片级编码复杂度的控制效果,我们首先使用默认 VTM-10 编码 Class A-E 的一帧,在编码过程中收集目标编码模块的编码时间,然后将编码时间乘以 30%~90% 作为我们的目标编码时间。然后我们将目标编码时间输入到经过修改的编码器中,并对比默认 VTM-10 的编码结果,其编码性能如右表所示,其中 30%~90% 代表目标模块的目标编码时间比例。首先,左图展示了 CTU 粒度的平均误差,证明了我们的方法平均编码误差向 0 收敛。右边的表格展示了不同目标亮度压缩时间下,整体的 RD 性能和编码控制的误差平均来说,我们设计的复杂度控制方案同时具备良好的 RD 表现和精确的时间控制

图片

序列级编码时间控制

我们首先展示一下序列中每一帧的表现,来证明序列的精准不完全来自于多帧的反馈,而是来自单帧的控制和多帧反馈的结合。

图片

可以看出,结合了 CTU 级的复杂度分配和反馈,以及 I 帧和 B 帧的编码决策选择,不同序列下的单帧编码时间可以被比较准确地控制。接下来展示一下方法的整体表现,和一些基于 HEVC 的复杂度控制方法之间的对比。可以看到得益于我们的多粒度复杂度分配和反馈机制,复杂度可以被精确地控制,误差只有 0.03%,性能损失也相对比较合理

图片

右图是累计编码误差的收敛过程,因为前面有17帧训练帧,在训练过程中使用原始编码模式,因此在前 17 帧中编码误差线性提升。假如没有复杂度控制,编码误差将沿着训练帧的轨迹不断提升。但是加上复杂度控制后,累计编码误差逐渐下降并收敛到接近 0。另外收敛过程比较均匀,是因为我们的方法结合了比较长远的视角,比如 GOP 级;以及比较短的视角,比如帧级,通过结合实现较为温和的反馈模式和合理的性能损失。

结论

我们设计了基于 Tid,SATD 的权重和线性模型,来实现带权重的分配和反馈。为了实现给定的复杂度,我们探索了基于 Planarcost 与时间的关系的 T-C 模型,来指导 I 帧中 CTU 编码决策的选择。此外,针对 B 帧,我们设计了多粒度的分配和反馈,来实现整体的精准编码复杂度控制。另外,通过多粒度反馈机制,各个粒度既统一,又相对独立,每一个粒度都致力于实现目标编码时间,同时,更高一级的粒度又对低一级的粒度的整体误差进行监控,调节。

目前而言,本工作是第一个基于 VVC 的编码复杂度控制工作。我们设计的方案支持直接指定目标编码时间或者目标 FPS,并在 one pass 内精确地实现目标编码时间。就实验结果来说,在不同目标时间下,我们的方法平均实现编码复杂度精度 0.24%,0.02% 和 0.03%,实现了精准的编码复杂度控制。

相关文献

[1] Y. Huang, J. Xu, L. Zhang, Y. Zhao, and L. Song, “Intra encoding complexity control with a time-cost model for versatile video coding,”arXiv preprint arXiv:2206.05889, 2022. 

[2] 期刊TBC版本:https://ieeexplore.ieee.org/document/9829846.

[3] Bossen F, Li X, Suehring K, et al. AHG report: Test model software development (AHG3)[R]. JVET-Z0003-v1. 26th JVET meeting by teleconference, April 2022.

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(1)

相关推荐

发表回复

登录后才能评论