AICon议程上新60%,阿里国际、360智脑、科大讯飞、蔚来汽车分享大模型探索与实践 了解详情
写点什么

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

字节跳动视频云技术团队

  • 2023-03-05
    北京
  • 本文字数:2549 字

    阅读完需:约 8 分钟

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

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


随着网络环境的优化和移动设备性能的提升,高清流畅的极致观影体验吸引着更多的终端用户。高分辨率视频资源也给压缩标准提出了新的要求。从 H.264/AVC 标准到 H.265/HEVC 标准,虽然压缩效率提升一倍,但依然无法满足高清视频的压缩需求。因此,拥有更高压缩效率的 H.266/VVC 标准诞生。诞生初期,由于 H.266/VVC 编码标准复杂,且缺少对应的终端设备硬解码,让商业落地显得遥不可及。



用户通过高清、超高清视频获得极致的观看体验      


01

H.266/VVC 标准的压缩效率比 H.265/HEVC 提升一倍


多功能视频编码 ( Versatile Video Coding , VVC ,也称为 H.266 ) 是联合视频专家组制定的最新一代视频编码标准,于 2020 年 7 月正式定稿。作为 HEVC 的继任者, H.266/VVC 能够在相同的质量下将压缩效率再提升一倍。 H.266/VVC 标准的推动将能为未来视频内容的发展提供巨大的潜力。


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



而在相同的编码质量下, H.266/VVC 标准的压缩率可以比 H.265/HEVC 标准提升一倍!


举个例子,使用 H.265/HEVC 编码标准,用户观看一部电影需要 1GB 的流量,换成 H.266/VVC 编码标准后,仅需 500MB 的流量,并且在智能终端播放的时候,画质可以保持不变。 H.266/VVC 标准,使高清在线视频不再是流量吞噬者。


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


02

BVC 解码器,打通 H.266/VVC 标准落地的最后一公里


BVC 是字节跳动自研的新一代解码器,已正式支持 H.266/VVC 标准。 BVC 解码器可应用于 Android 、 iOS 、 Linux 、 MacOS 和 Windows 等多种平台。


针对移动端用户众多、设备性能参差不齐的问题,我们在 Android 和 iOS 的 Arm 平台上,对 BVC 解码器进行了特别的优化,在部分设备上的解码速度达到参考软件的数十倍。 BVC 的高效解码,使 H.266/VVC 标准的商业落地不再遥不可及。


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


图 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 标准视频资源的解码,并为用户带来流畅的观看体验。


03

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


为了有效降低 BVC 解码器的计算复杂度,加快解码速度,我们从并行性、代码框架、汇编指令和访存效率等方向进行了优化,性能改善显著。


细粒度的并行算法


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


对流水线友好的代码框架


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


高吞吐量的汇编优化


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


高效的访存设计


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


04

详细性能数据


我们使用 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 。


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


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


05

总结


BVC 解码器可以实现超清、高质视频的实时快速解码,展现出在移动端上卓越的解码能力,对视频行业的发展和 H.266/VVC 标准的落地起到积极的推进作用。


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


2023-03-05 15:0610690
用户头像
鲁冬雪 GMI Cloud China Marketing Manager

发布了 362 篇内容, 共 256.8 次阅读, 收获喜欢 293 次。

关注

评论 1 条评论

发布
用户头像
问一下对协议的支持怎么样?在没有硬件支持的情况下,对CPU的占用率如何
2023-03-10 20:11 · 天津
回复
没有更多了
发现更多内容

上线操作规范——基础版本

程序员架构进阶

团队管理 开发流程 发布流程 规范

解读下一代网络:算力网络正从理想照进现实

华为云开发者联盟

AI 5G 网络 云技术

架构师训练营 - 第 9 周课后作业(1 期)

Pudding

详解企业管理系统工作流配置

Marilyn

敏捷开发 工作流 软件架构

田哥:面试被问== 与equals 的区别,该怎么回答?

田维常

面试

第9周学习总结

饭桶

阿里云原生中间件首次实现自研、开源、商用“三位一体”,技术飞轮效应显现

阿里巴巴云原生

阿里云 云原生 中间件

第九周课后练习

饭桶

架构训练营 - 第9周课后作业 - 学习总结

Pudding

0到1产品需求整理分析模型参考

燕陈华

产品设计 产品需求

Minikube-运行在笔记本上的Kubernetes集群

网管

学习 Kubernetes k8s minikube k8s入门

华为云MVP付健权:从机械工程师到AI开发者的华丽转身

华为云开发者联盟

AI 转型 工程师

软件测试系统学习流程和常见面试题

测试人生路

软件测试

从基础设施到云原生应用,全方位解读阿里云原生新锐开源项目

阿里巴巴云原生

阿里云 开源 云原生

开发霸总:我要让所有人知道,这个扫码组件,被你承包了

蚂蚁集团移动开发平台 mPaaS

支付宝 uniapp mPaaS

《Elasticsearch服务器开发》.pdf

田维常

elasticsearch

智能灯串开发资料全开源!为这个冬天装点烂漫“星空”

智能物联实验室

人工智能 物联网 智能硬件 智能家居

LeetCode069-x的平方根-easy

书旅

数据结构 算法 Go 语言

排序与二分

落曦

Java程序员说:世界上有三个伟大的发明【火、轮子、kafka】

Java架构师迁哥

Serverless 架构就不要服务器了?

华为云开发者联盟

云计算 Serverless 架构

云原生趋势下的迁移与容灾思考

阿里巴巴云原生

云原生 迁移 容灾

披星戴月地辛苦割胶或成历史,海南胶园迎来这一“神器”!

华为云开发者联盟

云计算 大数据 IoT

为什么你的“开发速度”和“产品性能”,都比不过竞品?丨开发者必读

葡萄城技术团队

记一次HEX和RGB互换算法的思考及应用

徐小夕

Java 面试 算法 大前端

第九周总结

Istio 中的智能 DNS 代理功能

Jimmy Song

开源 云原生 Service Mesh istio 服务网格

第九周作业

Geek_4c1353

极客大学架构师训练营

第九周作业

“人上人”大专学历,通过系统的六个学习步骤,艰难4面终砍offer,“跳进”字节跳动

Java架构追梦

Java 架构 字节跳动 面试 微服务

除了类 Excel, SpreadJS 表格控件还能为系统开发带来什么价值?

葡萄城技术团队

字节新一代解码器 BVC 帮助 H.266/VVC 标准商业落地_语言 & 开发_InfoQ精选文章