大厂Data+Agent 秘籍:腾讯/阿里/字节解析如何提升数据分析智能。 了解详情
写点什么

“世界杯直播”技术实践解析:抖音视频编码器优化

字节跳动-多媒体实验室

  • 2023-03-03
    北京
  • 本文字数:1721 字

    阅读完需:约 6 分钟

“世界杯直播”技术实践解析:抖音视频编码器优化

对于世界杯这样的大型体育赛事而言,视频编码算法既要在高速运动、复杂纹理的场景下确保直播内容的清晰度和流畅度,保障用户的观赛体验,又要兼顾码率、延迟等对网络传输层面尤为敏感的指标。


另外,抖音实现了业界首次的世界杯比赛支持 4K HDR 10-bit 直播,其内容信息量相较于以往有极大提升,对编码器的实时性提出了更高要求。火山引擎如何完成这个挑战?

BVC 编码器长期迭代优化


火山引擎自研的 BVC 编码器经过多年的技术攻关和优化技术积累,以及在不同视频服务业务方向上的长期迭代优化,目前其编码性能和编码器架构的计算效率都处于业界领先水平,在国际权威编码器大赛 MSU 比赛中多次夺冠。

世界杯项目针对性优化

概述


在 BVC 编码器的基础上,火山引擎多媒体实验室针对世界杯比赛场景进行了一系列针对性优化。


首先通过科学构建世界杯比赛视频的测试集,分析足球比赛视频特性,进一步挖掘了当前场景下的先验信息,有效提升了编码效率,在保证画质的情况下进一步降低了码率,同时优化了码率平稳性以及码控精度。


同时,团队优化了多核下的并行机制,极大幅度提升了 CPU 利用率;同时分析并优化了 4K HDR 10-bit 视频编码中的复杂度瓶颈,进一步加快了 HDR 视频的编码速度。最终使得 BVC 编码器在保证画质和降低码率的同时,能进一步提升编码速度,达到并超出了 4K HDR 10-bit 50fps 视频实时编码的要求。

另外在线上部署时,团队通过主观质量评测专门对足球赛事视频优化了各种不同质量配置下的最优码率,比如超高清 4K,超高清 HDR,蓝光 HD 等质量配置,保证不同用户的观看质量。

优化成果


本次 BVC 编码器共优化了 3 个不同档位,分别用于 4K HDR/SDR 编码,1080p 编码,以及 720p/480p 编码。


(1)针对世界杯场景, BVC 编码器优化前后各项指标对比如下图


可见优化后,BVC 编码器既有相同视频质量下带宽收益(BD-Rate),尤其是在相同 VMAF 质量指标时码率节省收益显著,同时编码速度和 CPU 利用率也提升较大(尤其是 4K 档位),码控精准度也有显著提升。



(2)针对世界杯场景的 4K 10 - bit 视频  BVC 编码器与开源 x265 编码器性能对比如下图:

可见在相同 PSNR 下,BVC 编码器的带宽节省高于 x265 的 veryslow 最慢档,且在相同测试条件下,编码速度也高于 x265 的 ultrafast 最快档。



备注:上述图示中,speed(相对于 x265 ultrafast 编码速度)越大越好,bandwidth(相对于 x265 ultrafast 带宽)越小越好。

优化手段


团队通过精准构建世界杯足球比赛测试集,有效约束了团队的优化场景,既能为团队提供更多的足球比赛视频的先验信息,同时也不会导致过拟合的情况。在此基础上,团队做了大量编码器内核优化,包括编码工具调优,新增数十项主/客观编码算法,多线程调度以及 SIMD 等工程优化加速,码率控制优化等;在优化过程中,团队使用了多个质量评价指标对优化技术性能进行评估,最终实现了在保证画质不变的条件下既有码率节省又有速度提升的优化效果。


(1)构建精准的足球比赛测试序列


团队分析了足球比赛视频中每个片段的时域复杂度和空域复杂度,同时根据每个片段的场景内容,筛选出了数十个作为足球比赛测试集。


在此基础上,团队加入了部分通用测试视频防止过拟合,构建了最终的测试集,如下图:


(2)优化编码器内核


团队首先测试了已有的数十个编码工具在当前场景的性价比,找出性价比最高的(复杂度最低,码率节省最高)工具在当前场景下开启,并关闭性价比低的工具。


在此基础上,团队针对编码器内部的多个不同模块,其中包括预分析和编码过程中运动搜索,模式决策,环路滤波等,开发了数十项新算法,进一步提高了编码效率和降低模块的计算复杂度,加快编码速度。


针对世界杯场景中视频时域复杂度高特点,团队通过优化了码率控制算法,保证了场景切换时的码率平稳性,同时提高了整体码率的精准性。团队也优化了支持 ROI 区域的码控算法,在相同码率下使得主观感受更优,有效提高了足球比赛中人眼敏感的球员区域以及草坪区域的主观质量。


团队也进行了大量并行优化,通过多线程任务调度以及 SIMD 优化,提升了多核下的 CPU 利用率,极大加快了编码速度。


优化示例


 1 )解决 480p 档位拖影问题


优化前(左) vs 优化后(右):



 2 )提升 720p/480p 草坪清晰度


优化前(左) vs 优化后(右):



2023-03-03 16:094605
用户头像
鲁冬雪 GMI Cloud Head of China Marketing

发布了 370 篇内容, 共 306.4 次阅读, 收获喜欢 304 次。

关注

评论

发布
暂无评论
发现更多内容

Docker Compose快速部署多容器服务实战

闫同学

Docker 容器 11月月更

基于Jmeter的百万级tps性能测试实践

环信

Jmeter 性能测试

Baklib|SaaS产品,实现企业流程数字化

Baklib

SaaS

网络安全之命令执行漏洞复现

网络安全学海

黑客 网络安全 信息安全 渗透测试 漏洞挖掘

2022-11-15:这里有 n 个航班,它们分别从 1 到 n 进行编号。 有一份航班预订表 bookings , 表中第 i 条预订记录 bookings[i] = [firsti, lasti,

福大大架构师每日一题

算法 rust 福大大

JS in CSS:一键支持响应式布局

iofod jude

前端 后端 低代码 iofod

数字化时代,企业需要怎样的数据中台?报名元年微课堂,一起来探索

元年技术洞察

数据中台

实践分享:30分钟在电脑端运行小程序

FN0

桌面应用 桌面应用开发

教学:制作 GitHub 同步近期博客卡片

小鑫同学

前端 Github' 11月月更

当前API安全产品现状

阿泽🧸

API 11月月更

技术解读倚天 ECS 实例——Arm 芯片的 Python-AI 算力优化 | 龙蜥技术

OpenAnolis小助手

Python AI arm ECS sig

算法题学习---两个链表的第一个公共结点

桑榆

算法题 11月月更

Baklib|我的企业是不是需要一个维基页面呢?

Baklib

维基

如何在SpringBoot项目中,实现记录用户登录的IP地址及归属地信息?

wljslmz

日志 IP springboot 登录 11月月更

Baklib|信息管理和知识管理是如何影响你的业务的?

Baklib

知识管理

web前端面试技巧-如何自我介绍?如何应对hr?

肥晨

前端面试 面试技巧 11月月更

漫画|微信群聊的程序员们

肥晨

程序员生活 11月月更 程序员漫画

【愚公系列】2022年11月 微信小程序-app.json配置属性之requiredBackgroundModes

愚公搬代码

11月月更

关于Web3.0,你了解多少?个推与您畅聊下一代互联网

个推

互联网 元宇宙 Web3.0

RocketMQ 5.0 API 与 SDK 的演进

阿里巴巴云原生

阿里云 RocketMQ 云原生

分布式系统设计之常见的负载均衡算法

闫同学

负载均衡 11月月更 分布式系统设计

【LeetCode】数组元素积的符号Java题解

Albert

算法 LeetCode 11月月更

数据指标体系搭建步骤

穿过生命散发芬芳

11月月更 数据指标体系

Pytorch实现经典模型AlexNet模型

Studying_swz

深度学习 11月月更

OpenSergo 流量路由:从场景到标准化的探索

阿里巴巴云原生

阿里云 微服务 云原生

IM开源项目OpenIM部署文档-从准备工作到nginx配置

Geek_1ef48b

IM即时通讯私有化部署,WorkPlus助力企业构建安全办公环境

BeeWorks

有趣的 Go HttpClient 超时机制

捉虫大师

Go HTTP 11月月更

简单组合逻辑电路

芯动大师

Verilog LED数码管 11月月更

数据分析er看过来,五款工具有你需要的

葡萄城技术团队

数据分析 前端 数据可视化

组织赋能,统一企业门户实现高效化、移动化协作

BeeWorks

“世界杯直播”技术实践解析:抖音视频编码器优化_AI&大模型_InfoQ精选文章