允中 发自 凹非寺 量子位 编辑 | 公众号 QbitAI
腾讯发布全球首个面向移动端的H.266/VVC标准视频解码器,即其自研的O266移动端版本,手机可看4K超高清VVC视频。O266已成为世界领先的全平台VVC解码器,支持main10 profile,包括高分辨率、高动态范围、屏幕内容编码等重要功能。
近几年,以视频为信息载体的互联网应用越来越广泛,海量视频数据的存储及传输对视频编解码技术提出了更高的要求。以腾讯为代表的众多国内外公司参与的新一代国际视频编解码标准 H.266/VVC相较于上一代标准H.265/HEVC,在同样的主观质量下,可以减少50%左右的数据大小,既能满足人们对视频质量的追求,又能降低存储与流量消耗。
H.266/VVC在main10 profile里能同时支持高分辨率、高动态范围、屏幕内容编码等功能,进一步提升在各种视频场景下的编解码能力,这得益于其更灵活的编码结构和更加优化的编码技术。
腾讯自研的H.266/VVC编解码器 O266enc和O266dec,由腾讯多媒体实验室编解码团队于2019年牵头并协同腾讯云架构平台部、微信和腾讯视频等多个团队联合研发。经过不懈的努力与探索,最终在H.266/VVC标准定稿后的三个月内,即2020年10月,率先发布了基于X86平台的实时H.266/VVC解码器O266dec,以及基于该解码器的开源播放器O266player,目前能够在PC端上完成4K H.266/VVC视频的实时解码。
△ O266player视频播放示意图
2021年1月,O266dec新增main10 profile移动端解码器,进一步促进了H.266/VVC标准生态建设。它以全面的模块性能优化和出色的并行结构设计,能够达到266标准在移动端的单核1080p或多核4K码流的实时解码,未来将广泛应用于面向移动端的视频点播、视频直播、音视频通信、视频智能生产、短视频、VR/AR等各个领域,服务于腾讯内外部相关业务。
O266player能够实现清晰流畅的视频播放,得益于O266dec优秀的视频解码架构,通过多维度的并行处理,从而达到大幅利用多核多线程技术的目的,使其解码性能指标大幅提升。O266dec的并行解码架构主要包括以下四个方面:
第一、帧层级并行:独立并行解码帧内预测帧,以及没有相互依赖性的帧间预测帧;同时不同帧之间的熵解码和像素处理也可以并行。
第二、CTU层级并行:利用Wavefront技术可以实现不同CTU行之间的CTU级的并行解码。
第三、模块层级并行:针对像素的操作,如运动矢量推导、预测、反量化、反变换和重建等,以及环路滤波操作可以并行处理。
第四、亚CTU层级并行:所有帧间预测CU都可以并行解码,并最大程度的利用SIMD指令。
为了能够在移动端支持H.266/VVC解码,腾讯多媒体实验室在O266dec上增加了许多移动端相关优化,使得其解码器性能在移动端得到大幅提升。
例如,自适应环路滤波器(Adaptive Loop Filter,ALF)作为H.266/VVC解码器中复杂度最大,优化难度最高的模块,是腾讯在移动端平台上优化的重点,该模块在整个解码过程中的复杂度占比如图所示。
△ 优化前各模块解码复杂度占比图
从图中可以看出ALF模块占整个解码复杂度的60%以上,复杂度占比远超其他模块,同时它的优化复杂度也是最高的,流程上的简化以及提升并行性都是比较困难的,因此是所有模块中优化优先级最高的。为提升移动端ALF解码速度,团队对整个ALF流程进行整理与分类,并充分结合移动端SIMD对ALF滤波模块进行优化,使得解码器速度得到大幅提升, 解码速度是原始代码的2倍以上。
除去ALF模块之外,对于同样复杂度较高的插值(Interpolation)模块,团队也对其进行了细致优化。插值模块也是H.266/VVC解码器中计算量比较大的一个模块,其涵盖的多种多样的滤波器是整个模块的优化重点。团队对滤波器参数特点进行了充分的分析,并将其根据参数类型以及输出结果进行分类与逻辑优化,在结合移动端SIMD的基础上,使得解码速度得到明显提升。
除去一些通用模块,团队对于针对B帧等其他编码工具集模块都着手进行了优化,优化范围与内容相对比较全面。例如双向光流(Bi-directional optical flow,BDOF)模块,它是一个用于4x4子块级别上优化CU的双向预测信号,经过团队的细致优化,这一模块的解码速度也获得了进一步提升。
此外团队对于其他重要模块也都进行了深度优化,优化完成后各模块性能占比饼图如下图所示。
△ 移动端优化完成后各模块复杂度占比示意图
以iOS端A14处理器为测试平台,O266dec移动端性能如下:
在单线程下,O266dec在采用RA(Radom Access)配置时, 对于2K标准序列,可完全满足30fps实时解码的需求;对于2K SCC(Screen Content Coding)序列可充分满足60fps以上的实时解码需求。
在多线程下,O266dec在采用RA(Radom Access)配置时, 4K标准序列在6线程下的解码速度可以达到30帧左右,可以实现266在移动端的实时解码。
同时,腾讯自研的解码器也已经集成在了O266player的iOS端应用上,在移动端播放H.266解码画面清晰流畅,能够充分满足H.266/VVC实时解码的需求,性能优势十分明显。
面向移动端的O266dec是国内首个H.266/VVC标准在移动端的实际应用,是腾讯视频编解码技术进展的又一个重要里程碑。未来腾讯多媒体实验室将持续优化和完善解码器,将最新技术输出至行业,助力多媒体生态技术的发展以及数字化产业的建设。
— 完 —