得益于摄像头和显示技术的进步,现在可以在 8K 分辨率和每秒 60 帧 (FPS) 下截取视频片段和玩游戏。RED Digital Cinema、Nikon 和 Canon 等主要的领先多媒体公司已经为消费者和专业市场推出了 8K60 摄像头。
在显示器方面,8K60 采用最新的 HDMI 2.1 标准,现已得到广泛应用,支持游戏显示器和智能电视。虽然 8K60 提供 惊人的画质和清晰度,但在传输和存储时消耗更多数据会带来巨大的成本。
因此,快速编解码器在弥合传感器和显示器之间的差距方面至关重要。为了促进 8K60 的广泛应用,NVIDIA Ada Lovelace GPU 架构提供了 NVENC 加速视频编码性能的引擎,同时保持高画质。(NVIDIA RTX 4090 和 4080 分别提供两个和三个 NVENC,而 NVIDIA RTX 6000 Ada Lovelace (L40) 也配备了 NVENC。)
实际上,与前几代产品相比,使用单个 GPU 时,这可以将编码性能提高一倍或三倍,从而实现 8K60 视频编码及以上。
本文将介绍如何使用分帧编码 (SFE) 技术利用 NVIDIA Ada Lovelace 架构中的多个可用 NVENC 来实现 8K60 视频编码性能。我们将探讨这种 SFE 技术如何在 4K 和 8K 分辨率下工作,以及如何通过 NVENCODE API 启用该技术。最后,我们将介绍一些基准测试,这些基准测试显示了这种技术在实际应用中的巨大性能优势。
分帧编码
SFE 是一种技术,它通过分割帧并使用 NVIDIA Ada Lovelace GPU 中存在的多个 NVENC 引擎对每个部分帧进行编码,从而在对单个视频序列进行编码时能够提高效率。这一技术已集成在 NVIDIA 视频编解码器 SDK 12.0 中。SFE 能够在可用的 NVENC 中有效地分割编码工作(图 1)。然而,到目前为止,SFE 是基于编码预设、调整信息和分辨率隐式启用的,以支持 HEVC 或 AV1 中的 8K 实时编码。(请注意,H.264 不支持 8K。)如需了解更多详情,请参阅 借助 AV1 和 NVIDIA Ada Lovelace 架构提高视频质量和性能。
通过 NVIDIA Video Codec SDK 12.1,您可以启用或禁用 SFE 功能。这意味着 SFE 现在可以在不受分辨率、预设和调整信息限制的情况下,利用 NVIDIA Video Codec SDK 12.1 中的两个甚至三个 NVENC,在 NVIDIA RTX 4090 和 NVIDIA RTX 6000 Ada 架构 上使用。这使得应用程序在使用双路或三路 SFE 对单个视频序列进行编码时,能够将编码性能提高一倍甚至三倍。在对 8K 视频进行编码时,这种性能提升尤其重要,因为这是一个对性能要求极高的应用场景。
4K 和 8K 分辨率下的 SFE
SFE 的应用方式可能会因分辨率和所选的视频编解码器而异。在关闭 SFE 的情况下使用 HEVC 时,只需使用单个切片。在使用双向或三向 SFE 时,会分别使用两个或三个切片。这些切片可水平地分离每帧。它适用于 4K 和 8K 分辨率(图 2)。此外,在对分辨率高达 4K 的视频进行编码时,这同样适用于 AV1.但是,AV1 使用图块而不是切片来创建这些独立的帧分区。
使用 AV1 编码 8K 视频时,请考虑标准定义的最大图块分辨率为 4096 x 2304 像素。这意味着在编码 8K 视频时,每个帧将被拆分为四个图块,每个图块的分辨率为四分之一(3840 x 2160 像素)。使用 SFE 时,为了实现与 HEVC 相同的性能优势,每个图块将进一步水平拆分,分别为 8 个或 12 个图块,双向和三向 SFE (图 3)。
表 1 总结了每个编解码器和输入视频分辨率所需的部分帧数和分辨率。
编解码器 | 视频分辨率 | 部分帧数和分辨率 | |||||
无 SFE | 双路 SFE | 三路 SFE | |||||
HEVC | 4K 分辨率 | 1x 3840 x 2160 | 2x 3840 x 1080 | 3x 3840 x 720 | |||
8K 分辨率 | 1x 7680 x 4320 | 2x 7680 x 2160 | 3x 7680 x 1440 | ||||
AV1 | 4K 分辨率 | 1x 3840 x 2160 | 2x 3840 x 1080 | 3x 3840 x 720 | |||
8K 分辨率 | 4 台 3840 x 2160 显示器 | 8x 3840 x 1080 | 12x 3840 x 720 |
启用分帧编码
随着 NVIDIA Omniverse 开发者套件的 API 更新,视频编解码器 SDK 12.1 在最新的 NVENCODER API 标头中引入了 NV_ENC_SPLIT_ENCODE_MODE
。这一功能可以实现对 SFE(分割帧编码)的控制,如表 2 所示。现在,使用隐式或显式模式配置 SFE 变得更加简单。通过 NV_ENC_SPLIT_AUTO_MODE
和 NV_ENC_SPLIT_AUTO_FORCED_MODE
,您可以轻松地采用 SFE 的隐式模式。如需了解更多详情,请参阅借助 AV1 和 NVIDIA Ada Lovelace 架构提高视频质量和性能。
其余选项是指显式 SFE 配置。这些选项包括强制禁用 SFE、双向或三路。要强制禁用 SFE,需要使用具有适当数量 NVENC 引擎的 NVIDIA GPU.
NV_ENC_SPLIT_ENCODE_MODE | SFE 类型 | 说明 |
NV_ENC_SPLIT_AUTO_MODE (0) | 自动模式(默认) | 双路 SFE 将根据输入视频分辨率和编码参数隐式触发 |
NV_ENC_SPLIT_AUTO_Forced_MODE (1) | 强制自动模式 | |
NV_ENC_SPLIT_Two_Forced_MODE (2) | 强制双向 SFE | 无论输入视频和编码参数如何,都将使用相应的 SFE 配置 |
NV_ENC_SPLIT_THREE_Forced_MODE (3) | 强制三路 SFE | |
NV_ENC_SPLIT_DISABLE_MODE (15) | 强制取消 SFE |
NV_ENC_SPLIT_ENCODE_MODE
选项最新的视频编解码器 SDK 编码示例AppEncMultiInstance
还重点介绍了如何向应用程序添加显式 SFE 控制。
性能和压缩效率基准测试
测试了多种配置和输入 8K 视频,如表 3 所示。
基准测试配置 | |
GPU | GPU RTX 6000 Ada 生成(3 个 NVENC) |
输入视频 | 7 个视频(4 个游戏视频和 3 个自然视频) |
编码器 | HEVC 和 AV1 |
预设 | P1 (最快)、P4 (中等)和 P7 (最慢) |
调优信息 | 低延迟 (LL) 和高质量 (HQ) |
比特率 | 15、20、60、150 和 250 Mbps |
执行了两种类型的基准测试:
转码性能:转码的目的是为了尽可能减少系统瓶颈(包括文件 I/O、CPU 与 GPU 之间的内存复制)的影响。为了测试转码性能,原始的 8K 视频被预先以非常高的比特率编码。在转码过程中,NVDEC 负责视频解码。而在没有使用分割、双向 SFE 和三路 SFE 的情况下,视频由一到三个 NVENC 进行重新编码。HEVC 和 AV1 的性能结果分别展示在图 4 和图 5 中。
压缩效率损失:通过在多个 NVENC 上拆分编码工作,预计会产生一定的压缩效率损失。为了测量这种损失,我们使用了 BD-RATE 指标,在多个基准配置中比较了单一编码、双向 SFE 和三路 SFE 之间的压缩效率。该指标反映了在相同目标质量下的平均压缩效率损失。在这些基准测试中,目标质量指标为 PSNR。HEVC 和 AV1 的压缩效率损失结果分别展示在图 6 和图 7 中。
使用双向 SFE 时,HEVC 和 AV1 的平均性能可提升约 1.8 倍。三路 SFE 可实现 HEVC 高达 2.95 倍、AV1 高达 2.31 倍的性能提升。在实践中,这可通过 NVIDIA RTX 6000 Ada Generation 实现 8K60 视频编码,同时使用 HEVC 和 AV1,并在中等预设 (P4) 下提供 LL 和 HQ 调优信息。
假设使用一到三个 NVENC 和一个 NVDEC,则 NVDEC 可能会成为转码 8K 时的瓶颈。因此,最快的预设 (P1) 可能会导致 FPS 平均最高达到约 120 FPS.这是单个 NVDEC 在 8K 下实现的平均最大性能。
只要 NVDEC 不是瓶颈,您就能看到更好的扩展效果。对于速度较慢的预设,例如 P4 和 P7,情况就是如此,与 P1 相比,性能扩展效果要好得多。
通常情况下,使用 BD-RATE (PSNR) 测量质量时,双向 SFE 的压缩效率损失预计不会超过 2%,三向 SFE 的压缩效率损失预计不会超过 4%.对于总部调整信息而言,此损失比 LL 更明显。此外,根据执行的基准测试,与 AV1 相比,使用 HEVC 时,此损失略为明显。
尽管与性能权衡相比,这种压缩效率损失仍然相对较低,但要由用户来确定所需的用例是否受益于更高的性能或压缩效率。无论如何,NVENCODE API 不仅可以完全控制 8K 的 SFE,而且还可以控制更低的分辨率。
总结
分帧编码 (SFE) 是一项革命性功能,它能在 8K60 及更高分辨率下实现视频编码。此功能让用户能够利用 NVIDIA Ada Lovelace 架构 GPU 中的多个 NVENC 强大功能,对单个视频序列进行编码。本文探讨了双向 SFE(使用两个 NVENC)和三路 SFE(使用三个 NVENC)的性能优势。NVIDIA 视频编解码器 SDK 提供了对 SFE 的显式控制,以便进行优化定制。