写点什么

画质之外,直播编码还应当关注哪些技术优化点

  • 2025-03-26
    北京
  • 本文字数:2103 字

    阅读完需:约 7 分钟

大小:1.10M时长:06:24
画质之外,直播编码还应当关注哪些技术优化点

随着直播行业用户基数趋于饱和,市场竞争已从早期的流量争夺转向精细质量比拼。从技术角度来看,用户对直播体验的期待不再停留于流畅播放的基础需求,而是向超高清画质、实时交互性、全场景适应性 等高阶指标转移。


根据《2024 年直播技术趋势》显示,视频质量被广泛认为是直播平台用户体验的核心因素,直播行业正在转向更高分辨率和帧率;而在实时互动直播中,低延迟能显著提升观众参与度。


而这一切的核心基础,便是视频编码效率,也就是压缩率。编码效率的提升,能够直接为用户带来更优质的观看体验。例如,理论上,新一代视频编码标准 H.266 相较于现有的 H.265/HEVC 标准,在保持相同画质的前提下,可实现 30%-50% 的码率节省,这对于整个视频传输链路的优化具有重大意义。火山引擎自研 BVC2 直播编码器正是瞄准直播场景,进行了深度优化,成功实现了在直播场景中对 H.266 标准的高效运用,从而有效优化了用户体验。

直播编码效率升级,针对不同编码需求、不同场景完成优化

火山引擎自研 BVC2 直播编码器,在六大技术维度实现了突破创新,不仅将编码效率提升至全新量级,更在动态场景处理、主观画质优化等维度进行了提升。


  1. 极致、简洁的工程架构

  • 流程重构: BVC2 重新梳理了编码流程,拆分高频路径和低频路径,确保高频路径足够简洁,低频路径则作为独立模块实现。

  • 数据结构优化: 秉承最简化和无重复信息的设计原则,优化内存使用效率,减少访存开销和重复计算。例如,通过缓存和重复利用差值、变换、失真、比特估计等关键计算结果,大幅减少了计算复杂度。

  • SIMD 优化: 通过重写指令集,对指令排布进行了更合理的设计,降低了 load/store 次数,同时根据系数特性(如非零系数范围)进行优化跳过,进一步提升计算效率。

通过系统性架构革新,BVC2 在保持核心逻辑极致简洁的同时,实现了计算资源的精准投放与高效复用。


  1. 灵活、精细化的并行框架

  • 多模块并行: 对编码、前处理、预分析等过程进行并行化设计,在线程调度上合理分配权重,降低线程等待时延。

  • 帧内+帧间并行: 通过帧类型、层级、参考关系等信息,灵活分配编码任务的线程优先级,优化线程池的调度。

  • 分块并行: 针对前处理和预分析模块引入分块并行方案,在损失极小的情况下加速这些模块的运算。

通过这些并行化优化,火山引擎自研编码器的 CPU 利用率大幅提升,满足了直播场景对实时性的要求。


  1. 数百个快速算法

  • 编码块划分加速: 根据周围块和历史划分信息,自适应调整划分深度和顺序,设计了多种提前终止划分的算法,减少了无效计算。

  • 模式决策优化: 采用模块独立粗选排序与统一精选结合的框架,大幅减少最终尝试的模式数量,同时通过提前跳出算法减少 RDO 的次数。

  • 运动搜索优化: 对前处理和预分析模块中的运动搜索进行简化,将结果用于加速编码过程中的模式决策。

  • 灵活参数控制: 针对 CU 大小、位置、QP、时间层等,设计了细粒度的参数调整机制,进一步优化了复杂度与压缩率的性价比。

总计实现了 200 多个快速算法,显著提升了编码速度,同时保持了较低的压缩率损失。


  1. 利用前处理、ROI 等算法优化主观体验

为了进一步提升主观体验,火山引擎自研编码器结合前处理与 ROI(感兴趣区域)等技术进行优化:

  • 自适应锐化: 根据画面内容动态调整锐化强度,增强细节表现,避免画面过于平滑。

  • ROI 优化: 针对画面中用户关注的关键区域(如人物面部、商品展示区域等),分配更多的编码资源,以确保这些区域的画质更高,而对背景区域进行适当压缩,从而实现更高的编码效率和更佳的主观体验。

通过这些优化,不仅在编码效率上表现出色,还显著提升了用户观看体验,尤其在动态场景和重点区域的画质上有了明显改善。


  1. 丰富的 preset,满足不同速度编码需求

火山引擎自研编码器提供了丰富的编码预设(preset),支持从 slow 到 hyperfast 的多种档位,满足从高压缩率到低复杂度的不同应用场景需求:

  • slow、medium: 适用于高质量直播等场景,注重压缩率的优化,提供接近极限的画质表现。

  • fast、veryfast、superfast: 适用于常规直播场景,平衡编码效率与计算复杂度。

  • hyperfast: 面向低延迟、高实时性需求的场景,极大降低编码复杂度。

通过这些预设,用户可以灵活选择编码器的工作模式,从而在画质、延迟和计算性能之间实现最佳平衡。


  1. 针对不同内容场景的优化

  • 游戏场景: 针对游戏直播的高动态画面特点,优化了运动估计和模式决策算法,减少画面拖影和模糊问题。

  • 电商场景: 对电商直播中的静态商品展示和快速切换场景分别进行优化,提升画面细节并适当降低码率优化流畅度。

通过大量测试,BVC2 针对不同类型的内容场景调整编码参数,实现了更高的压缩率和更好的画质表现。

压缩率显著提升,超越主流开源解码器


火山引擎自研 BVC2 编码器针对直播场景的深度性能优化,可通过多维度客观指标对比测试结果,以下展示 BVC2 不同预设档位与主流开源编码器的对比测试结果,为行业提供量化参考:


  • BVC2 slow preset 对比 HM (测试条件: RA CQP )

PSNR BD-Rate
SSIM BD-Rate
VMAF
Speed-up
Y
U
V
YUV
Y
U
V
YUV


Class A1
-20.03%
-35.52%
-39.70%
-24.56%
-22.77%
-50.11%
-49.52%
-27.07%
-23.95%
892
Class A2
-18.36%
-31.03%
-28.23%
-21.37%
-22.38%
-38.61%
-37.18%
-25.03%
-27.74%
756
Class B
-12.34%
-41.96%
-40.55%
-18.45%
-16.90%
-49.10%
-49.40%
-21.85%
-21.38%
884
Class C
-3.53%
-23.80%
-22.44%
-7.39%
-9.71%
-29.41%
-29.91%
-12.95%
-10.11%
593
Overall
-12.73%
-33.64%
-33.08%
-17.31%
-17.25%
-41.95%
-41.78%
-21.16%
-20.16%
760
UHD+HD Average
-16.08%
-37.22%
-36.96%
-20.91%
-20.00%
-46.51%
-46.10%
-24.14%
-23.81%
847


  • BVC2 medium preset 对比 x265 medium (测试条件:CBR)

PSNR BD-Rate
SSIM BD-Rate
VMAF
Speed-up
Y
U
V
YUV
Y
U
V
YUV


Class A1
-51.14%
-57.96%
-63.21%
-53.52%
-46.36%
-63.55%
-65.54%
-49.57%
-44.06%
1.2
Class A2
-56.40%
-62.84%
-58.39%
-57.17%
-50.08%
-60.54%
-54.69%
-51.56%
-49.73%
1.0
Class B
-49.35%
-57.90%
-58.97%
-51.18%
-48.07%
-58.07%
-59.84%
-49.37%
-51.42%
1.0
Class C
-45.11%
-53.34%
-56.13%
-47.17%
-43.29%
-53.75%
-57.49%
-45.06%
-45.66%
1.4
Overall
-49.99%
-57.69%
-58.95%
-51.78%
-46.86%
-58.51%
-59.32%
-48.70%
-48.08%
1.1
UHD+HD Average
-51.76%
-59.26%
-59.97%
-53.45%
-48.15%
-60.24%
-59.99%
-50.02%
-48.95%
1.0


  • BVC2 medium preset 对比 AOM-AV1 (测试条件:CBR)

PSNR BD-Rate
SSIM BD-Rate
VMAF
Speed-up
Y
U
V
YUV
Y
U
V
YUV


Class A1
-32.23%
-42.26%
-44.79%
-35.59%
-34.21%
-49.07%
-49.09%
-36.57%
-25.17%
4.3
Class A2
-40.19%
-58.63%
-55.09%
-43.67%
-39.67%
-59.87%
-56.25%
-43.95%
-35.16%
3.7
Class B
-47.15%
-58.00%
-57.50%
-49.40%
-48.55%
-59.26%
-58.67%
-49.94%
-42.65%
3.6
Class C
-45.84%
-58.87%
-59.25%
-48.82%
-50.66%
-62.69%
-63.70%
-52.88%
-44.55%
3.8
Overall
-42.42%
-55.21%
-54.95%
-45.34%
-44.47%
-58.26%
-57.61%
-46.85%
-38.16%
3.8
UHD+HD Average
-41.18%
-53.88%
-53.38%
-44.07%
-42.22%
-56.65%
-55.40%
-44.66%
-35.84%
3.8


从以上测试数据可以清晰地看出,火山引擎自研 BVC2 直播编码器在直播场景下相较于主流开源编码器展现出明显优势:在保持显著压缩率提升的同时,编码速度方面也实现不同程度的性能突破。

2025-03-26 16:504614

评论

发布
暂无评论

GitHub上标星68k,基于SpringBoot+Netty分布式开源的即时通讯系统项目

Java架构之路

Java 程序员 编程语言 Netty 项目实战

开源=免费?

Philips

开源 开源社区

上手深度学习之前,我们先聊聊“数学”

华为云开发者联盟

神经网络 学习 数学

区块链掀起全民创业热潮!数字资产是未来全球最具前景和价值的!

CECBC

区块链 数字货币

甲方日常 25

句子

生活 随笔杂谈 日常

谈谈测试

BigBang!

测试的价值 测试文化 测试落地

单例模式

knight

软件架构(2)-框架设计

Zeke

极客大学架构师训练营

重塑产业+价值共识,区块链助力供应链金融数字化

CECBC

区块链 供应链物链

第三周学习代码重构总结

三板斧

极客大学架构师训练营

一个草根的日常杂碎(9月29日)

刘新吾

随笔杂谈 生活记录 社会百态

LeetCode题解:242. 有效的字母异位词,数组排序,JavaScript,详细注释

Lee Chen

大前端 LeetCode

关于 UML 类图

西贝

UML 图表

技术解读丨目标检测之RepPoints系列算法

华为云开发者联盟

算法 神经 目标检查

深入剖析 | Java15语法特性

九叔(高翔龙)

Java 架构 Java 分布式 java15新特性

2020HC大会上,这群人在讨论云原生…

华为云开发者联盟

华为 华为云 大会

极光无限:用AI赋能安全 解决安全行业人才紧缺难题

风向标

人工智能

数据库选型入门必读:如何在眼花缭乱的产品中挑出最适合业务的?

华为云开发者联盟

数据库 数据库选择 关系型

从三个产业侧影,打开万物智能的应用之匙

脑极体

架构师训练营 1 期 - 第三周 - 设计模式

三板斧

极客大学架构师训练营

中秋佳节,程序员教你AI三步成诗,秒变“李白”

华为云开发者联盟

AI 中秋

在vue2中使用ts

正经工程师

typescript vue.js

一周信创舆情观察(9.21~9.27)

统小信uos

阿里内部超流行的“SpringBoot+ 微服务指南”,理论与实战双管齐下

Java架构之路

Java 程序员 微服务 Spring Boot 编程语言

国内上市进程或将提速!百度宣布小度科技独立融资

脑极体

代码重构 - 课后作业

Nick~毓

太牛了,这份神仙级面试笔记把所有 Java 知识面试题都详解出来了

Java架构之路

Java 程序员 面试 编程语言

第三课代码重构课后作业

Geek_michael

极客大学架构师训练营

架构师训练营 - 作业 - 第二周

Max2012

全文!马云对数字时代全球化的全新解读

CECBC

全球化 数字时代

架构师训练营 1 期第 3 周:代码重构 - 作业

piercebn

极客大学架构师训练营

画质之外,直播编码还应当关注哪些技术优化点_字节跳动_火山引擎视频云_InfoQ精选文章