计算机视觉/视频分析

实现可定制的 GPU 加速视频转码流程

如今,视频占据互联网流量的80%以上。这些内容由各种设备生成并在各种设备上使用,包括IoT设备、智能手机、计算机和电视。随着像素密度和连接设备数量的增长,在快速、高效、高质量的视频编码和解码方面的持续投资至关重要。

最新的 NVIDIA 数据中心 GPU(例如 NVIDIA L40SNVIDIA L4 Tensor Core)可处理要求严苛的用例,包括 AI 训练、推理、视觉计算、云游戏和视频转码。通过将多个 NVIDIA 视频解码(NVDEC)和视频编码(NVENC)视频引擎与高级计算能力相结合,这些 GPU 可帮助合作伙伴加速和定制转码流程。

V-Nova 已将 MPEG-5 第 2 部分低复杂度增强视频编码 (LCEVC) 标准的实施移植到 NVIDIA GPU 上。LCEVC 利用 NVENC 视频引擎和 NVIDIA Ada 架构 GPU 的计算能力来增强现有的视频编码标准,从而提高视觉质量和空间可扩展性,使视频提供商能够构建高效的转码梯度。这些梯度对于在不同的网络条件和各种终端设备中保持最佳视频质量至关重要。

本文将介绍 NVIDIA 技术如何实现高效且可定制的视频转码流程。首先,它概述了 LCEVC 及其对 NVENC 和 NVIDIA Video Codec SDK 的使用情况。然后,将视觉质量和性能与基于 CPU 的实现进行比较。最后,我们重点介绍了使用云计算实例的联合转码解决方案的成本效益。

使用 MPEG-5 第 2 部分 LCEVC 增强视频编码标准

MPEG-5 LCEVC 是一种“编解码器增强器”,可提高任何视频编解码器的压缩效率,在比特率降低高达 40% 的情况下,提供更高的质量,同时降低总体计算复杂性,相比于使用基础编解码器的全分辨率编码。

LCEVC 采用混合编码方法,包含两个层:基础层和增强层(图 1)。基础层以较低的分辨率进行压缩,通常为目标分辨率的四分之一。增强层通过对残差信息进行编码来优化视频质量,即放大后的基础层与原始帧之间的差值。

LCEVC workflow, including (left to right) encoding, muxing, demuxing, and decoding.
图 1.LCEVC 编码和解码流程

LCEVC 的低复杂性支持高效、高性能的硬件和软件编码器和解码器的实现。V-Nova 与 NVIDIA 合作开发了适用于 NVIDIA GPU 的 LCEVC 编码器。与 NVENC 的紧密集成可确保在尽可能减少 GPU 资源占用的情况下实现最佳视频压缩性能。主要用例包括用于 VR/XR 的超低延迟像素流、云游戏和视频流的密集转码。在这些场景中,LCEVC 降低了带宽和交付成本,同时显著提高了服务质量。虽然本文重点介绍了 LCEVC 增强型 HEVC,但也支持 H.264/AVC,AV1 也在路线图中。

集成 NVENC 和 LCEVC 实现低延迟和延迟容忍的编码

NVIDIA 视频编解码器 SDK 版本 12.1 和 12.2 引入了一些新的低级别 API,以为 NVIDIA 客户提供更高的控制和灵活性。这些 API 增加了对重构帧输出的支持,以及对编码器统计数据的访问权限,旨在最大限度地提高性能和集成的易用性。此外,还为低延迟(LL)和延迟容忍的编码用例添加了新的编码工具,从而提高 NVENC 的视觉质量。

图 2 展示了 NVENC 和 LCEVC 编码器的集成。

Diagram shows NVENC and LCEVC encoder integration, with source video (left); downsampling, first-level corrections, normative upsampling, top-level corrections, mux (center); LCEVC and base compressed video (right).
图 2.NVENC 与 LCEVC 编码器的集成

以下功能对于将LCEVC GPU实现与NVENC视频编码引擎相结合至关重要:

  • 重构帧输出 API:在帧编码期间,NVIDIA ENCODE API 会提供设备内存中可用的压缩帧和重构帧。这使得 LCEVC 能够直接在 GPU 上对重构帧进行上采样和编码,从而无需通过 PCI Express 进行内存复制,也无需解码已编码的比特流以获得重构以进行进一步处理。
  • 编码器统计 API:速率控制对高效的 LCEVC 编码器实现提出了重大挑战。管理两个层而不是一个层,LCEVC 速率控制需要有关 base layer 编码过程的详细信息。LCEVC 利用编码器统计 API 来访问每个块的 QP 和位数。
  • 新的视频编码工具:除其他新增功能外,单向 B 帧超高质量(UHQ)调整信息分别提高了低延迟和延迟耐受用例的压缩效率。这些新工具不仅在单独使用 NVENC 时非常有用,而且在与 LCEVC(即作为其基础层)结合使用时也非常有用。

CPU 与 GPU 视频编码基准测试

本节基准测试 CPU 和 GPU 转码工作流实现,重点关注视频压缩和编码速度。我们研究了两个用例:用于云游戏和像素流的超高质量(UHQ)自然视频转码和低延迟编码。测试包括以各种流相关比特率进行全高清和 UHD 编码,并将原生 HEVC 编码器(NVENC HEVC 和 x265)与其 LCEVC 增强版本进行比较。比较评估了 CPU 和 GPU 工作流的质量和成本。

方法

这些测试在具有和不具有 NVIDIA GPU 的可比云计算实例上运行。表 1 列出了这两种云计算实例类型的硬件和编码配置;表 2 显示了每个用例的测试内容。

硬件和 CPU/GPU 编码器配置
云计算实例 CPU:AMD EPYC 9R14 – 16 个 vCPU
GPU:不适用
CPU:AMD EPYC 7R13 – 8 vCPUGPU:NVIDIA L4 – 2x NVENC
每小时成本 0.88 美元 0.98 美元
编码器 x265、LCEVC (CPU) x265 NVENC HEVC、LCEVC (GPU) NVENC HEVC
预设 P4
表 1. 硬件和 CPU/GPU 编码器配置(撰写本文时的成本/小时)

 

测试内容和用例
用例/调整 低延迟 (LL) 延迟容忍/超高质量 (UHQ)
内容类型 游戏和自然 自然
输入视频 11 个视频
分辨率/比特率 1080p60 (4, 7, 12, and 15 Mbps) 和 2160p60 (12, 15, 22, and 30 Mbps)
表 2.测试内容和用例

所有编码器均使用 FFmpeg 6.1 版本进行测试。为确保公平比较,NVENC HEVC 和 x265 配置密切匹配,调整了 GOP 大小、B 帧数量和前瞻性深度。此外,为了最大限度地提高硬件利用率,FFmpeg 对多个流进行并行编码。查看用于测试的完整命令行

FFmpeg 报告的平均每流每秒编码帧数(FPS)必须乘以流数量才能得出总 FPS。为了确定编码一小时视频的成本,我们将此 FPS 与相应的实例成本相结合。对于 LCEVC x265 和 LCEVC NVENC HEVC,这些过程被重复了。

虽然最新版本的 LCEVC NVENC HEVC 已经表现出强劲的性能,但我们预计会随着开发的继续进行进一步的改进。因此,所呈现的性能评估应该被视为保守的。

视觉质量结果

为了评估视觉质量(VQ),我们使用了一系列视频序列,包括自然场景(适用于 UHQ 和 LL)和游戏内容(适用于 LL),以确保进行全面测试。视频集合包括 5 个全高清(1080p)视频和 6 个 UHD(2160p)分辨率视频。我们评估了各种编码场景的视觉质量,1080p 视频的目标比特率为 4-15 Mbps,UHD 视频的目标比特率为 12-30 Mbps。

我们使用 Video Multi-Method Assessment Fusion (VMAF,使用 libvmaf 3.0.0) 指标来确定其与 MOS 分数的高相关性(主观质量评估)。此外,我们还计算了 VMAF No Enhancement Gain (VMAF-NEG),以考虑潜在的图像增强偏差。LCEVC旨在最大限度地提高主观视觉质量。独立第三方已进行了几次主观质量评估,例如在 MPEG 标准化过程中。这些结果包括 BD-RATE(MOS)与 AVC、HEVC 和 VVC 的对比。

图 3 至图 6 展示了按测试内容求取平均值的速率失真(RD)曲线,按分辨率、调优和目标指标进行分离。这些结果表明:

  • 与 x265 (红色虚线) 相比,NVENC HEVC (红色实线) 始终能够实现更高的编码效率。
  • 使用 LCEVC(绿线)增强的 NVENC HEVC 和 x265 的性能均优于其原生版本
  • LCEVC 持续降低 VMAF 和 VMAF-NEG 的比特率保存。
Graphs showing 2160p60 tune LL rate-distortion curves comparing x265, LCEVC x265, NVENC HEVC and LCEVC NVENC HEVC.
图 3. 对比 x265、LCEVC x265、NVENC HEVC 和 LCEVC NVENC HEVC 的 2160p60 调优 LL 速率失真曲线。
Graphs showing 1080p60 tune LL rate-distortion curves comparing x265, LCEVC x265, NVENC HEVC, and LCEVC NVENC HEVC.
图 4. 1080p60 调优 LL 率失真曲线,比较 x265、LCEVC x265、NVENC HEVC 和 LCEVC NVENC HEVC。
Graph showing 2160p60 tune UHQ rate-distortion curves comparing x265, LCEVC x265, NVENC HEVC, and LCEVC NVENC HEVC.
图 5. 比较 x265、LCEVC x265、NVENC HEVC 和 LCEVC NVENC HEVC,调整 2160p60 的 UHQ 率失真曲线。
Figure 6. 1080p60 tune UHQ rate-distortion curves comparing x265, LCEVC x265, NVENC HEVC and LCEVC NVENC HEVC.
图 6. 1080p60 调优 UHQ 率失真曲线,对比 x265、LCEVC x265、NVENC HEVC 和 LCEVC NVENC HEVC。

表 3 比较了将 LCEVC 添加到 NVENC HEVC 和 x265 时所节省的比特率。从该表中,我们得出以下结论:

  • 与 NVENC HEVC 相比,LCEVC NVENC HEVC 的 BD 率提升类似于或高于 LCEVC x265 与 x265 的 BD 率提升。
  • 这种效率是通过 V-Nova 紧密集成 LCEVC 与 NVENC,使用 NVENCODER API 为 LCEVC 的速率控制提供重建的帧和编码器统计数据。
分辨率 调整 BD-RATE LCEVC NVENC HEVC 与 NVENC HEVC 的对比 BD-RATE LCEVC x265 与 x265 的对比
VMAF VMAF-NEG VMAF VMAF-NEG
2160p60 UHQ -35.30% -18.74% -33.21% -20.04%
LL -30.65% -16.53% -19.85% -7.92%
1080p60 UHQ -22.39% -4.42% -23.61% -7.29%
LL -25.04% -11.44% -19.82% -9.06%
表 3. BD-RATE (VMAF/VMAF-NEG) 之间的 GPU 编码器 (NVENC HEVC 和 LCEVC NVENC HEVC) 与 CPU 编码器 (x265 和 LCEVC x265)

性能和成本结果

我们使用与视觉质量测试相同的命令行,测量了原生 HEVC 编码器及其 LCEVC 增强版本的低延迟和超高质量音频的 CPU 和 GPU 工作流的编码速度。从中,我们推导出对 1 小时视频进行编码的实例成本。

图 7 中的结果显示:

  • 在使用和不使用 LCEVC 的分辨率下,对于 LL 和 UHQ 音乐,GPU 加速的 HEVC 编码比基于 CPU 的 x265 便宜 2-4 倍。
  • LCEVC 可加速 CPU 和 GPU 的实现,尤其是在更高的分辨率和质量设置下。
  • 将 NVIDIA NVENC 与 LCEVC GPU 编码器相结合,可提供最高的吞吐量,从而实现更低的服务成本,同时显著提高视觉质量。
Cost per hour of encoded video (USD) for Low-Latency (LL) and Ultra-High-Quality (UHQ) use cases between the GPU video encoders, NVENC HEVC and LCEVC NVENC HEVC, and CPU encoders x265 and LCEVC x265.
图 7. GPU 视频编码器 (NVENC HEVC 和 LCEVC NVENC HEVC) 和 CPU 编码器 (x265 和 LCEVC x265) 的 LL 和 UHQ 用例的每小时编码视频成本 (USD)

NVIDIA 和 V-Nova 都通过软件更新来增强其解决方案的性能和视觉质量。由于 V-Nova 的低复杂性、软件增强性质,因此打算进一步提高现有硬件的 LCEVC 编码性能,从而降低成本。

总结

NVENC+LCEVC 联合转码解决方案由 NVIDIA 和 V-Nova 合作开发,重点介绍了 NVENCODE API 如何与 LCEVC GPU 编码器紧密集成。这使客户能够将 NVIDIA 的硬件加速 NVENC 与 V-Nova 的 LCEVC 多层编解码器增强功能相结合。与基于 CPU 的解决方案相比,这种集成可提高视觉质量、提高吞吐量并降低成本。

准备好开始使用了吗?下载 NVIDIA 视频编解码器 SDKLCEVC GPU 编码器

 

Tags