用于大规模视频流的硬件编码架构

来源:StreamingMedia 2021
主讲:DanielZhou, 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 mediumpreset 只能支持 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

    NETINT Codensity 视频引擎在上层提供了 FFmpeg libavcodec 用于视频编码和 libavfilter 插件用于一些视频 2d 操作,也提供了一些 FFmpeg AI plugin,用于例如 ROI 和背景检测替换的一些特性,便于整合到现有的工作流。下层调用标准 NVMe 驱动,因此支持各平台,无需安装额外驱动。


    1.jpg

    Codensity 视频引擎架构


下一代Codensity G5 将在 2022 就绪,编码能力将四倍于 G4,包含:

·     单卡8Kp60 或 4x 4Kp60 或 32x 1080p30live

·     支持AV1, HEVC, H.264

·     2D scaling / overlay graphics engine

·     AI DNN engine

·     进一步提升密度,降低 TCO

使用案例

用于视频编码的可组合基础设施

由于使用 NVMe 作为设备接口,我们可以利用 NVMe 技术的优势来放大硬件加速能力,下图是一个案例:一群计算负载可以通过网线或光线连接共享两个装有编码加速卡的服务器,外置的编码加速服务器使得缩放编码能力、适应不同应用需求变得简单。

2.jpg

可组合基础设施示意


移动云游戏

ARM 服务器可以与 GPU、ASIC 编码器一起提供高性能商业移动云游戏平台

3.jpg

使用AISC 相比 GPU 编码器有下列优势:

·     GPU 编码器的质量、API 会变化,使用 ASIC 编码器可以使解决方案不限制于一种 GPU,提高部署灵活性;

·     ASIC 编码不会影响 GPU 的游戏渲染、光线追踪性能;

·      ASIC 编码提供高密度的 HEVC 编码,并且即将支持 AV1 。