来源:Streaming Media 2021 主讲:Daniel Zhou, Technical Director & Software Architect, NETINT 翻译:钟宏成 本次演讲将介绍基于硬件的视频编码的进展。目前大规模视频服务和平台被迫降低其运营成本,同时减少碳足迹。演讲将比较 GPU、FPGA 和基于 ASIC 硬件的数据中心视频编码。并介绍 ASIC 能够解锁新视频应用并提高现有解决方案的经济可行性的特定用例。
- 新编码技术的需求
- 不同视频应用的需求
- 向更新编码标准的转变
- 软件编码的问题
- HEVC 软件编码的技术替代
- 基于 ASIC 的解决方案
- ASIC 解决方案与 CPU / GPU 方案的对比
- Codensity 视频引擎架构
- 使用案例
- 用于视频编码的可组合基础设施
- 移动云游戏
新编码技术的需求
不同视频应用的需求
视频传输占据了互联网流量的主要部分。从传统的视频应用 VOD;近年来不断扩张的移动社交视频、直播;以及交互式视频流,包括云游戏、云桌面和 AR、VR 应用。
视频编码的能力对构建这些应用至关重要。不同的应用场景有不同的需求,视频编码、转码也在不断提出新的需求
- VOD 在分发前预先编码,大量的视频内容需要可扩展的高密度、节能、低成本的编码;
- 直播流与交互式视频需要实时编码;
- 高交互性应用需要低延迟编码;
- 更高分辨率、更高压缩效率的需求;
- 更新编码标准(HEVC,AV1)的支持。
向更新编码标准的转变
由于专利相关的原因,从 AVC 向 HEVC 的转变很慢,但现在也在逐渐完成:NETFLIX, Amazon Prime, Disney 以及更多的流媒体平台都在支持 HEVC。所有新的手机都支持 HEVC 的硬件解码,避免了因为 HEVC 软解导致的电量以及发热问题。
AV1 的支持正在广泛发生,从设备制造商、平台、应用支持、移动设备支持、播放器 SDK、芯片支持。
软件编码的问题
软件编码器的伸缩性很差,双路 Xeon Gold 6230@2.10GHz 的服务器使用 x265 medium preset 只能支持 4-5 路 HEVC 1080p30 的编码,使用 Intel SVT 编码器,双路 Xeon Gold 6230 可以支持 8 路HEVC 1080p30 的编码。
软件编码器难以处理视频编码标准升级带来的复杂度提升:AVC (x 4-10 MPEG2) => HEVC (x 4-10 AVC) => AV1 (x 5-10 HEVC) => VVC
另外,软件编码器也难以处理 4K/8K 的实时编码,以及超低延迟的视频编码。
HEVC 软件编码的技术替代
Zhou 对比了 HEVC 编码的不同方案,从 软件编码的 x265 到 ASIC,解决方案具有更高的密度、更低的资源占用和更低的能源消耗。
- x265
- 最低的密度和容量
- 高资源占用、低伸缩性
- 非常高的运营费用
- Intel SVT
- 提升的密度和容量
- 有限的编码质量/速度选项
- 低灵活性
- GPU
- 提升的密度和容量
- 外形尺寸和功耗使扩展变得困难
- 规模使用时昂贵
- FPGA
- 提升密度和容量、功耗
- 需要在主机服务器内封装 FPGA
- 昂贵
- SoC (ASIC)
- 最高的密度、最低的成本
- 编码标准无关的确定的超低延迟
- 最高的能量效率
- U.2 与云存储扩展的兼容性
- 从现有的软件解决方案轻松切换到基于 ASIC 的解决方案
基于 ASIC 的解决方案
几乎所有的 YouTube 视频都是由 Google 的 ASIC 编码器:Argos 系统转码的。
ASIC 解决方案与 CPU / GPU 方案的对比
接下来 Zhou 给出了 ASIC 编码解决方案对比 CPU / GPU 解决方案在多个维度的对比。对比条件为 1080p30fps 编码,相比软件编码方案,ASIC 解决方案在服务器部署密度有 10 倍提升、功耗上节能 20 倍,在碳排放上有巨大优势。
1080p30 | Intel SVT | NVENC | ASIC |
---|---|---|---|
Encoders per 1RU | 2x Xeon Gold 6148 | 4x NVIDIA T4 | 10x NETINT T408 |
Streams per 1RU | 8 | 40 w/o b, 16 w/ b | 80 |
Power per 1RU | 465W | 440W | 250W |
Power per Stream | 58W | 11W w/o b, 27W w/ b | 3W |
Codensity 视频引擎架构
NETINT Codensity 视频引擎在上层提供了 FFmpeg libavcodec 用于视频编码和 libavfilter 插件用于一些视频 2d 操作,也提供了一些 FFmpeg AI plugin,用于例如 ROI 和背景检测替换的一些特性,便于整合到现有的工作流。下层调用标准 NVMe 驱动,因此支持各平台,无需安装额外驱动。
Codensity 视频引擎架构
下一代 Codensity G5 将在 2022 就绪,编码能力将四倍于 G4,包含:
- 单卡 8Kp60 或 4x 4Kp60 或 32x 1080p30 live
- 支持 AV1, HEVC, H.264
- 2D scaling / overlay graphics engine
- AI DNN engine
- 进一步提升密度,降低 TCO
使用案例
用于视频编码的可组合基础设施
由于使用 NVMe 作为设备接口,我们可以利用 NVMe 技术的优势来放大硬件加速能力,下图是一个案例:一群计算负载可以通过网线或光线连接共享两个装有编码加速卡的服务器,外置的编码加速服务器使得缩放编码能力、适应不同应用需求变得简单。
可组合基础设施示意
移动云游戏
ARM 服务器可以与 GPU、ASIC 编码器一起提供高性能商业移动云游戏平台。
移动云游戏架构性能
使用 AISC 相比 GPU 编码器有下列优势:
- GPU 编码器的质量、API 会变化,使用 ASIC 编码器可以使解决方案不限制于一种 GPU,提高部署灵活性;
- ASIC 编码不会影响 GPU 的游戏渲染、光线追踪性能;
- ASIC 编码提供高密度的 HEVC 编码,并且即将支持 AV1 。