写点什么

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

  • 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:504372

评论

发布
暂无评论

MySQL 15条常用的SQL知识(18/100)

hackstoic

MySQL

ScrollView 和 RelativeLayout两个布局技巧

逆锋起笔

android xml 3月月更 android布局

千万级学生管理系统的考试试卷存储方案

Geek_8d5fe5

「架构实战营」

峰会报名|从金融行业技术选型,看 RocketMQ 如何应对严苛挑战

阿里巴巴云原生

阿里云 RocketMQ 云原生 消息队列 峰会报名

强大的JSON.stringify,你真的会使用吗?

战场小包

JavaScript 前端 3月月更

几种如何判断环境是否连上网方法!推荐最后一种

华为云开发者联盟

网络 nodejs ipv4 上网 网络接口

PHP 遇见 Serverless,帮你解决这些痛点!

阿里巴巴云原生

php 阿里云 Serverless 云原生

模块八-作业二

hunk

云原生训练营

在阿里巴巴,我们如何先于用户发现和定位 Kubernetes 集群问题?

阿里巴巴云原生

阿里云 云原生 分享 KubeProbe

【BBC learningenglish】with Tango

IT蜗壳-Tango

3月月更

如何在windows下成功的编译和安装python组件hyperscan

华为云开发者联盟

正则表达式 windows hyperscan python组件 正则表达式引擎

架构实战营:模块四作业

刘璐

节省 58% IT 成本,调用函数计算超过 30 亿次,石墨文档的 Serverless 实践

阿里巴巴云原生

阿里云 云原生 函数计算 石墨文档 资源伸缩

感受当下-人生意义的思索

李印

自我感悟 生活的意义

Python二分查找,字符串模板,textwrap模块,每天写写Python自然就会了,每日Python第2天

梦想橡皮擦

3月月更

列存Delta表是个什么东东

华为云开发者联盟

存储 GaussDB(DWS) 列存表 delta表

前端实现word、excel、pdf、ppt、mp4、图片、文本等文件的预览

CRMEB

最佳实践:Kubernetes 集群中 DNS 故障的可观测性与根因诊断

阿里巴巴云原生

阿里云 Kubernetes 云原生 服务器 DNS

【模块四】千万级学生管理系统考试试卷存储方案设计

yhjhero

#架构训练营

CNCF Serverless工作流社区携手华为云FunctionGraph,开拓Serverless编排新时代

华为云开发者联盟

json Serverless 华为云 FunctionGraph CNCF Serverless Workflow

分布式数据库排序及优化

vivo互联网技术

分布式数据库

第四课作业

浪飞

千万级学生管理系统考试试卷存储方案

Geek_36cc7c

为什么说程序猿也要有产品思维

慕枫技术笔记

技术思维 内容合集 3月月更

数据分析不能落地?快来围观,学会数据分析应用,一起升职加薪!

博文视点Broadview

千万学生管理系统之考试模块存储架构设计

随欣所遇

架构训练营5期

工作想法小计(4):2/28 - 3/4

非晓为骁

个人成长 工作 细节 工作想法

构建 Go 应用 docker 镜像的十八种姿势

万俊峰Kevin

微服务 web开发 go-zero docker image Go 语言

千万级学生管理系统Redis存储架构

IT屠狗辈

redis 架构实战营

架构师训练营模块四作业

刘帅

模块四

blazar

「架构实战营」

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