字节跳动新一代解码器BVC,助力H.266/VVC标准商业落地

随着近几年移动终端的蓬勃发展,上一代视频编码标准H265/HEVC已经得到广泛应用,但其压缩效率仍无法满足大量4K/1080P等高清视频资源的需求。过大的视频资源压缩文件,占据了存储空间并吞噬着网络带宽,导致用户观看视频时频繁卡顿。最新一代视频编码标准H.266/VVC标准的出现,则给视频内容的发展提供巨大的潜力。

据悉,字节跳动自研的新一代编解码器BVC已支持H.266/VVC标准,可以在Android、iOS、Linux、MacOS和Windows等平台上,实现超清、高质视频的实时快速解码。

H.266/VVC全称为多功能视频编码 (Versatile Video Coding,VVC,也称为H.266),是联合视频专家组制定的最新一代视频编码标准,于2020年7月正式定稿。作为HEVC的继任者,H.266/VVC能够在相同的质量下将压缩效率再提升一倍。举个例子,使用H.265/HEVC编码标准,用户观看一部电影需要1GB的流量,换成H.266/VVC编码标准后,仅需500MB的流量,并且在智能终端播放的时候,画质可以保持不变。H.266/VVC标准,使高清在线视频不再是流量吞噬者。

尽管H.266/VVC优势十分明显,但其解码复杂度显著高于H.265/HEVC标准,终端设备解码过程中会出现设备发热、耗电增加以及视频卡顿的现象,影响用户观看体验。因此,在硬件解码芯片尚未问世的背景下,如何设计并实现一款超高性能的VVC软件解码器是众多音视频公司的重要目标。

在各种设备上,BVC解码器可实现对H.266/VVC标准视频资源的解码

测试数据显示,根据国际会议提案JEVT-V128,在搭载A14处理器的iPhone 12上,对于4K分辨率标准测试码流,BVC单线程平均解码速度达到了22fps;2线程可以实现4K视频的实时解码。对于1080p分辨率标准测试码流,BVC单线程平均解码速度是86 fps,即单线程可实时解码1080p视频。因此,在高端手机上,BVC解码器支持流畅播放高清甚至超高清视频。

字节跳动新一代解码器BVC,助力H.266/VVC标准商业落地

图1 对比不同线程的BVC与VTM-11.0的解码速度

图1展示了在iPhone12上,BVC和参考软件VTM-11.0解码不同分辨率视频的速度对比。横轴依次代表解码4K、1080p、480p和240p分辨率的视频;纵轴表示使用VTM-11.0解码和BVC分别使用1、2、4、6线程解码的平均帧率,数值越大表明解码速度越快。虚线表示各分辨率视频实时播放的常用帧率。可以看出,BVC仅单线程的解码速度相较于VTM-11.0就有着6-10倍的巨大优势。

除了上述标准测试码流外,以BVC编码器生成的抖音视频码流测试显示,BVC解码器表现出了强大的解码性能。在性能逊于iPhone 12的小米6手机上,BVC单线程即可完成1080p视频的实时解码;在其它中低端手机上,BVC单线程即可完成对720p视频的实时解码

BVC解码器的出现,使得在各种性能的设备上均可实现对H.266/VVC标准视频资源的解码,并为用户带来流畅的观看体验。

BVC解码器如何实现技术突破

流畅的观看体验是如何实现的呢?据悉,为了有效降低BVC解码器的计算复杂度,加快解码速度,字节跳动旗下火山引擎多媒体实验室从并行性、代码框架、汇编指令和访存效率等方向进行了优化,性能改善显著。

具体如下:

细粒度的并行算法:BVC支持不同层次的并行算法,包括帧级并行、块级并行和模块级并行。帧级并行即同时解码多个视频帧,可以充分利用多核CPU的性能,并行程度最高;块级并行即同时解码多个解码块;模块级并行即利用CPU的剩余资源,同时处理多个较复杂的模块。块级与模块级相结合可以高效降低视频帧的输出时延,保障视频会议和直播等实时场景的流畅体验。

对流水线友好的代码框架:BVC有着非常轻量级的代码框架,更加迎合空间较小、性能较差的移动端设备。针对各个功能模块特性,BVC有不同的算法实现,尽可能减少了分支跳转,提升了CPU流水线的饱和度。

高吞吐量的汇编优化:采用高吞吐量的SIMD指令,针对像素帧内预测、帧间插值、量化、变换、重建和环路滤波等复杂模块做汇编优化,均达到了数倍的模块加速比,最大程度提升CPU的计算效率。

高效的访存设计:移动设备内存和缓存空间较小,访存效率有限,这极大地制约了解码器的性能。为此,火山引擎多媒体实验室针对BVC解码器的访存进行了优化,包括减少内存读写次数、集中内存使用和提高缓存命中率。优化后,访存不再成为在移动设备上解码超高清视频的瓶颈。

BVC解码器的单线程达到参考软件的8.8

火山引擎多媒体实验室使用VVC官方参考软件VTM-11.0做了一组测试。在通用配置下,生成若干组8比特码流,打开标准测试条件下的全部工具,包括较复杂的DMVR、BDOF和ALF等。测试的序列为标准通用测试序列,包括class A、B、C、D、F五类。其中,class F是屏幕内容场景,分辨率从480p到1080p不等;class A-D为自然场景,视频的分辨率分别为4K、1080p、480p和240p。

字节跳动新一代解码器BVC,助力H.266/VVC标准商业落地

表1 解码器速度对比详细数据

在iPhone 12(A14处理器)上,BVC单线程解码4K分辨率、8比特标准测试码流的速度平均达到了22fps,是参考软件VTM-11.0解码速度的10倍;在使用全部6个线程后解码速度甚至可达55 fps,最高达到78fps。对于1080p分辨率、8比特标准测试码流,BVC解码器的单线程平均解码速度是86 fps,达到参考软件的8.8倍。

总结

BVC解码器可以实现超清、高质视频的实时快速解码,展现出在移动端上卓越的解码能力,对视频行业的发展和H.266/VVC标准的落地起到积极的推进作用。据著名知识产权媒体IAM报道,截至2021年2月,字节跳动在H.266/VVC标准贡献者排行榜上名列全球第三,占比9.33%。

基于实际应用中的问题和挑战,字节跳动的技术团队还将持续发力,不断优化BVC解码器的性能,为新一代标准的落地做出更多贡献。

火山引擎多媒体实验室团队介绍

多媒体实验室致力于研究、探索多媒体领域的前沿技术,参与国际、国内多媒体方向的标准化工作,为多媒体内容分析、处理、压缩、传输、创新交互等领域提供完善的解决方案。目前多媒体实验室所提供的众多创新算法已经广泛应用在了抖音、西瓜视频等产品的点播、直播、实时通信、图片等多媒体业务,在成本、体验、能力几方面赋能业务,为其提供极致的视频技术和产品体验。

(免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。 )