前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >通用场景下的开源优化 VVC 编码器

通用场景下的开源优化 VVC 编码器

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

来源:SPIE 2021 作者:Adam Wieckowski, Christian Stoffers, Benjamin Bross, Detlev Marpe 内容整理:赵研 在 HEVC 标准发布七年后,通用视频编码标准 H.266/VVC 于 2020 年 7 月定稿。同样视频质量下相比 HEVC, VVC 可提供约 50% 的码率节省。为了提供比 VVC 参考软件 VTM 更快的运行速度,优化软件 VVenC 于不久后开源。VVenC 同样支持多线程、码率控制、主观质量优化等附加功能,并针对高分辨率下的 Random Access 模式做了优化。本文对 VVenC 在各种配置和视频内容下的性能进行测试。实验表明,VVenC 可以用更低的算力达到近似 VTM 的性能,并提供了额外的 R-D (码率-失真) 工作点。

目录

  • 介绍
  • VVenC
    • 支持的 VVC 特性
    • 增加的优化和配置空间
    • 预设参数设置推导
    • 低延时 (Low Delay, LD) 和 全帧内 (All Intra, AI) 模式支持
    • 屏幕内容编码工具 (Screen Content Coding, SCC) 支持
    • 高动态范围视频 (High Dynamic Range, HDR) 支持
  • 实验内容
  • 实验结果
    • 不同视频分辨率下的编码性能
    • 不同时域模式下的编码性能
    • 不同视频内容下的编码性能
  • 总结
  • 参考文献

介绍

经测试,VVC 编码标准比 HEVC 有 50% 的码率节省,并广泛支持各种视频内容和用例。与 HEVC 不同的是,第一版 VVC 标准已经具备屏幕内容编码、高层语义划分等功能,并支持各种特殊视频格式:10 bit 位深的高动态范围 (High Dynamic Range, HDR)、可选的色度采样格式 (包括 4:4:4)、分辨率缩放和参考帧重采样。目前,VVC 标准的第二版制定工作正在进行中,该版标准将支持 10 bit 以上位深和更高分辨率视频编码。

VTM 是 VVC 的参考测试模型,用于标准制定中的算法评估测试。VTM 没有针对实际应用进行优化,而是用繁琐的算法模块改进来尽可能获得最大编码增益。因此,VTM 编码器中各组件的优化程度和矢量化程度不均匀,缺乏多线程支持和高效的码率估计,并且只支持基本的主观质量优化。在 Random Access 通用测试配置下,VTM 的运行时间大约是 HM (HEVC 标准参考软件) 的 8 倍,这是 VVC 自身计算复杂度的增长、模块数量增加引起的解空间增大和更灵活的划分机制引起的。

在 VVC 标准定稿后不久,一项新的开源编码器 VVenc 开源发布,旨在提供真实应用场景下的 VVC 编码实现:以更短的运行时间达到与 VTM 近似的性能,并提供额外的工作点(fast, faster, medium, slow, slower),可以达到更高的运行速度。此外,VVenC 支持真实应用场景下的编码功能,如多线程加速、单阶段/双阶段码控和主观质量优化等。本文对 VVenC 在不同配置下的编码性能进行测试,并对不同视频内容和非通测内容的高分辨率视频进行评估。

VVenC

继 2020 年发布的 0.1 版本后,VVenC 1.0 版本于 2021 年五月发布。以下如无特别说明,所有测试内容均来自于 VVenC 1.0 版本。该工程用 C++ 编写,并提供了两个独立的编码器运行程序。

支持的 VVC 特性

VVenC 编码器支持用 Main10 配置文件进行单 slice (/tile) 编码,以及 4:0:0 和 4:4:4 的色度下采样格式,但目前仍不支持 Main10-4:4:4 配置文件。VVC Main10 除了自适应变换 (ACT) 和 双向加权预测 (BCW) 以外的编码工具都在 VVenC 1.0 中支持,而这两者也会在后续 1.1、1.2 版本中引入。非 YUV 格式内容会在预处理时被转为 YUV 格式,因此 ACT 不是 VVenC 目前的研发重点。 虽然 VVenC 编码器不能通过参考帧重采样改变分辨率,但可以将其产生的比特流进行分割和重结合(只需要微小的改动),以自适应分辨率变化的视频码流。

增加的优化和配置空间

VVenC 是从 VTM 的基础版本改进而来的,移植了很多 VTM 内部结构和应用接口。在此基础上,VVenC 将 VTM 中的核心编码工具进行了性能改进和底层优化。因此,VVenC 中许多工具都和 VTM 中的非常相似,但性能更佳。

如前所述,VTM 中编码模式的搜索空间很大,只保守地采用了较少早停机制。VVenC 中对模式搜索算法进行优化,简单用例中只允许在几种预设配置中 (fast, faster, medium, slow, slower) 进行选择,只有专业应用中才会精确选择各个编码工具的搜索变量。此前的惯例是:如果对应编码工具的开关标识被设为 '0',说明其被禁用;如果标识位是大于零的值则说明启用。而对于这种多速率设定的情况,标识位的数值越大,则说明选用了越快的编码速度配置。此外,VVenC 还引入了一些独立的加速工具,对其分别进行控制。

与 VTM 相比,VVenC 对划分、运动估计和一些帧内编码的模式搜索都进行了优化,以优化模式选择速度。此外,基于整数的优化 RDOQ 也在 faster 和 fast 配置中被引入。

预设参数设置推导

VVenC 中可调节的配置参数及其范围如表 1 所示。

表1. VVenC 中的参数选择

这些参数取值范围的推导过程是从对配置空间帕累托集 (Pareto Set) 的近似开始的,通过禁用大多数编码工具,开启几乎所有加速工具,可以近似确定一个搜索起点。随后在每一次迭代过程中,都对后续的一组候选工作点进行测试,具有最佳这种性能的配置向量会被选为帕累托集新的近似点。该过程会重复很多次,并确定一个点集作为最优帕累托近似。该过程不能得到真正的最优点,因为没有考虑到配置选择间的相互作用,也没有对整个搜索空间进行遍历。

近似的帕累托最优点集中,有五个工作点被选作预设配置点:fast, faster, medium, slow, slower,速度最慢的配置 (slower) 提供与 VTM 相同的压缩性能。而速度最快的配置 (faster) 与 HM-16 相比,只需很小比例的运行时间就能取得至少 10% 的 BD-rate 增益。其他三个工作点在速度和压缩性能方面均取得了较好的权衡。该帕累托集近似是在 JVET CTC 的一系列测试序列 (class A1, A2, B) 上根据经验确定的,本文将对 VVenC 在其他序列和配置上的性能进行介绍。

低延时 (Low Delay, LD) 和 全帧内 (All Intra, AI) 模式支持

上一节中的最优参数推导在 随机接入 (Random Access, RA) 模式下可取得最优效果。根据 JVET-CTC 规定,RA 模式的随机接入间隔大约为一秒。除了 RA 模式,JVET CTC 还规定了 All Intra (AI) 模式和两种 Low Delay (LD) 模式 (分别只允许使用 P 帧或 B 帧做帧间预测)。为了继承前文中推导出的条件,编码器内部配置需要与其兼容。

本文中的测试使用了最简单的方式:AI 模式下,只允许使用 IDR (Instantaneous Decoding Refresh) 帧或 CRA (Clean Random Access) 帧,所有的帧间编码工具关闭; 对于 LD 模式,文中只测试了 Low Delay-B 配置,并沿用 VTM Low Delay-B 中 GOP=8 的设定,并将所有双向等距预测的模式 (e.g. DMVR, BDOF) 等模块禁用。

屏幕内容编码工具 (Screen Content Coding, SCC) 支持

VVenC 支持 VVC Main10 配置中的所有屏幕内容编码 (SCC) 工具。在 JVET CTC 规范中,所有这些 SCC 工具的启用与否是由测试序列决定的。而 VVenC 作为一个实用编码器,不需要终端用户了解最优编码参数的设定。VVenC 使用内置的屏幕内容检测工具,并根据相应的内容分类结果来决定各个编码工具的开或关。因此,这里的 SCC 工具打破了以往搜索算法的语义描述:对于 TS (Transform Skip, 变换跳过), Chroma TS, IBC (Intra Block Copy, 帧内块拷贝)及 BDPCM (Block Differential Pulse Code Modulation, 块差分脉冲编码调制) 等工具来说,标识位值为 '0' 代表该工具被禁用,'1' 代表该工具总被打开,'2' 代表应根据帧内容分类结果来决定是否启用。因此 IBC 需要一个单独的参数来选择速度。此外,MCTF (Motion Compensated Temporal Filter, 运动补偿时域滤波) 在屏幕内容下也会被禁用。具体的设定参见表 1。

高动态范围视频 (High Dynamic Range, HDR) 支持

VVenC 编码器也支持 HDR 视频编码,涉及参数包括色彩格式、QP 偏移等,这里将它们统一合并为一个 'Hdr' 参数,其取值为以下几个值之一:{'off', 'pq', 'pq_2020', 'hlg', 'hlg_2020'},分别对应于输入信号为 SDR, PQ, HLG 等格式,并支持 BT.709 和 BT.2020 色彩空间的区分。本文测试中,分别将 '--Hdr=pq' 和 '--Hdr=hlg' 设定用于 JVET CTC H1 class 和 H2 class 的视频。与 VTM 不同的是,设定 Hdr 参数将使编码器生成 HDR SEI 元数据。

实验内容

本文测试编码器为 VVenC 1.0.0,以单线程的 HM-16.23 和 VTM-12.0 编码器为对比,其中 HM 是性能基准 (anchor)。实验设备为 32 核的 Intel Xeon E5-2697A-v4@2.6GHz CPU,禁用超线程技术。

每个编码器都在四个固定的 QP 值 (22, 27, 32, 37) 下进行编码,以 PSNR 作为失真度量标准,BD-rate性能比较如图 1,2,3 和 表 2 所示,其中横轴的运行时间采用对数坐标。

表2. 图 1-3 的数据整理

实验结果

不同视频分辨率下的编码性能

此处采用 RA 模式对 JVET CTC 通测序列进行测试,VTM 和 VVenC 编码器采用 GOP=32,HM 编码器采用 GOP=16设定,但 I 帧周期与 VTM 对齐。除了 VVenC 的 faster 配置以外,所有编码器都使用了 MCTP (Motion Compensated Temporal Filter, 运动补偿时域滤波) 工具。

实验结果如图 1 和表 2 所示,可以看出 slower 设定下的 VVenC 编码器大约与 VTM 性能相当,但运行时间只有后者的一半左右。这五个工作点设置近似均匀地完成了编码速度由慢到快的过渡。

跨序列类别比较可以发现,VTM 和 VVenC 有相同的变化趋势:随着视频分辨率增加,压缩效率也逐渐提高,这是因为 VVC 标准针对高分辨率视频进行了专门的优化。此外,虽然 VVenC 的编码性能在各类别近似均衡,但 class A1 和 A2 中的视频序列在 medium 设定下曲线交叉,即 faster 和 slower 配置可以分别为 A1 和 A2 的序列提供更好的性能折衷。这说明 A1 类的序列特性对更简约的工具集响应更好,而仿射运动估计可以为 A2 中的序列带来更好性能。

图1. RA 模式下各序列 class 的通测性能比较 (HD4K 是 class A1, A2, B 的集合)

不同时域模式下的编码性能

图 2 和表 2 中展示了在 LD 和 AI 模式下三种编码器的通测性能比较。除了 class E 在 LD-B 模式下的表现以外,其他各项对比与 RA 模式下的结果 (图1) 非常相似。class E 中的序列为会议视频,视频内容的运动信息很少,在 LD-B 配置下显示出最好的性能,这可能是 VVenC 中的默认 SCC 编码机制引起的:虽然 class E 中的视频不是屏幕内容,但这些较为静态的视频被编码器识别为屏幕内容,并使用 SCC 工具进行编码,进而取得了一些性能增益。

可以看出,VVenC 在 LD 配置下的编码速度可达 VTM 的两倍,而编码效率与后者相当甚至更优。在 AI 模式下,VVenC slower 配置相较于 VTM 大约有 1.5 倍的加速比,这可能是因为 VVenC 对一些帧内编码工具 (e.g. ISP, LFNST) 进行了选择性开启。此外,VVenC 在 class A2 上的性能相较于 VTM 有大约 2% 的损失。

图2. LD 和 AI 模式下各序列 class 的通测性能比较

不同视频内容下的编码性能

VVenC 的五种编码配置都针对 JVET 高分辨率 SDR 序列 (class A1, A2, B) 进行了优化。图 3 中展示了编码器在其他测试序列下的性能表现,序列来源为 HHI-Berlin 测试集。可以看出,VTM 和 VVenC 相较于 HM 的性能提升均有所下降。除了 faster 配置以外,其他模式均最擅长对 8k 视频的处理,其次是 4k 和 2k。

图 3 中 a) 和 b) 图分别展示了对 HDR 视频和屏幕内容的编码性能。与 VTM 不同的是,为了确保终端用户可以正确重建 HDR 视频,VVenC 需要生成并传输恰当的 SEI 信息。此外,VVenC 对屏幕内容的处理有两种方式:VVenC auto SCC 和 VVenC SCC,前者采用了自动的屏幕内容检测机制,而后者则显式打开了 SCC 编码工具。由于屏幕内容检测可能会有误判,因此 auto SCC 略有性能损失。作为基准的 HM 编码器不具备屏幕内容编码工具,因此在这部分测试中,VTM 和 VVenC 的性能优势尤为明显。

图3. RA 模式下不同视频内容的编码性能比较

总结

本文对开源的 VVC 编码器 VVenC 进行了性能测试。实验表明,除了屏幕内容编码之外,VVenC 都能以更快的运行速度提供近似 VTM 的压缩效率:在 slower 配置下,VVenC 可以提供至少两倍的加速比,其他配置的加速效果更强。通过对各种视频类型进行测试,也表明 VVenC 是一个成熟的通用 VVC 编码器,可以提供跨内容和用例的良好编码性能。此外,实验证明:1) 自动屏幕内容检测是非常有效的;2) 简化的 HDR 参数不仅易于使用,还保持了压缩性能。

参考文献

[1] ITU-T and ISO/IEC JTC 1, “Versatile video coding,” Rec. ITU-T H.266 and ISO/IEC 23090-3 (VVC), August, (2020). Google Scholar [2] ITU-T and ISO/IEC JTC 1, “High Efficiency Video Coding,” Rec. ITU-T H.265 and ISO/IEC 23008-2 (HEVC), April, (2013). Google Scholar [3] V. Baroncini and M. Wien, “VVC Verification Test Report for UHD SDR Video Content,” doc. JVET-T2020 of ITU-T/ISO/IEC Joint Video Experts Team (JVET), 20th meeting, October, (2020). Google Scholar [4] V. Baroncini and M. Wien, “VVC verification test report for HD SDR and 360° video content,” doc. JVET-V2020 T2020 of ITU-T/ISO/IEC Joint Video Experts Team (JVET), 22th meeting, April, (2021). Google Scholar [5] B. Bross, “Overview of the Versatile Video Coding (VVC) Standard and its Applications,” in IEEE Transactions on Circuits and Systems for Video Technology, (2021). Google Scholar [6] F. Bossen, X. Li, K. Sühring, K. Sharman, and V. Seregin, “JVET AHG report: Test model software development (AHG3),” doc. JVET-W0003 of ITU-T/ISO/IEC Joint Video Experts Team (JVET), 23rd meeting, July, (2021). Google Scholar [7] F. Bossen, J. Boyce, X. Li, V. Seregin, and K. Sühring, “VTM common test conditions and software reference configurations for SDR video,” doc. JVET-T2010 of ITU-T/ISO/IEC Joint Video Experts Team (JVET), 20th meeting, October, (2020). Google Scholar [8] A. Wieckowski, “VVenC: An Open and Optimized VVC Encoder Implementation,” in 2021 IEEE International Conference on Multimedia & Expo Workshops (ICMEW), (2021). Google Scholar [9] J. Brandenburg, “Towards Fast and Efficient VVC Encoding,” in 2020 IEEE 22nd International Workshop on Multimedia Signal Processing (MMSP), (2020). Google Scholar [10] J. Brandenburg, “Pareto-optimized coding configurations for VVenC, a fast and efficient VVC encoder,” in 2021 IEEE 23rd International Workshop on Multimedia Signal Processing (MMSP), Google Scholar [11] R. Skupin, “Open GOP Resolution Switching in HTTP Adaptive Streaming with VVC,” in 2021 Picture Coding Symposium (PCS), (2021). Google Scholar [12] P. Czyzżak and A. Jaszkiewicz, “Pareto simulated annealing—a metaheuristic technique for multiple-objective combinatorial optimization,” Journal of Multi-Criteria Decision Analysis, 7 34 –47 (1998). https://doi.org/10.1002/(SICI)1099-1360(199801)7:1<34::AID-MCDA161>3.0.CO;2-6 Google Scholar SFX@SJTU [13] G. Bjøntegaard, “Calculation of average PSNR differences between RD-curves,” Technical Report VCEG-M33, ITU-T SG16/Q6, Austin, Texas, USA, (2001). Google Scholar [14] ITU-T HSTP-VID-WPOM and ISO/IEC TR 23002-8, “Working practices using objective metrics for evaluation of video coding efficiency experiments,” (2021). Google Scholar [15] B.Bross, H. Kirchhoffer, C.Bartnik, M. Palkow, and D. Marpe, “AHG4 Multiformat Berlin Test Sequences,” doc. JVET-Q0791, January, (2020). Google Scholar [16] A. Segall, E. François, W. Husak, S. Iwamura, D. Rusanovskyy, “JVET common test conditions and evaluation procedures for HDR/WCG video,” JVET-V2021 of ITU-T/ISO/IEC Joint Video Experts Team (JVET), 22nd meeting, Apr., (2021). Google Scholar

最后附上演讲视频:

http://mpvideo.qpic.cn/0bc3cmaa4aaa34ajss7gfzqvae6dbyjqadqa.f10002.mp4?dis_k=57fb536211e2779a8c10ed9f253e9f3a&dis_t=1645150731&vid=wxv_2229856777368633350&format_id=10002&support_redirect=0&mmversion=false

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • VVenC
    • 支持的 VVC 特性
    • 增加的优化和配置空间
    • 预设参数设置推导
    • 低延时 (Low Delay, LD) 和 全帧内 (All Intra, AI) 模式支持
    • 屏幕内容编码工具 (Screen Content Coding, SCC) 支持
    • 高动态范围视频 (High Dynamic Range, HDR) 支持
  • 实验内容
  • 实验结果
    • 不同视频分辨率下的编码性能
    • 不同时域模式下的编码性能
    • 不同视频内容下的编码性能
  • 总结
  • 参考文献
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档