计算机视觉/视频分析

使用适用于 HEVC 的 NVIDIA 视频编解码器 SDK 12.2 提高视频质量

NVIDIA 视频编解码器 SDK为 Windows 和 Linux 上的硬件加速视频编码和解码提供了一套全面的 API 集。The 12.2 版本提高了高效视频编码(HEVC)的视频质量,特别是自然视频内容的比特率显著降低。这篇文章详细介绍了以下新功能:

  • 前瞻性级别增加前瞻性分析以提高质量(仅限 HEVC)。
  • 时间滤波有助于提高压缩效率通过滤除噪声(仅限 HEVC)。
  • 高位深度编码将 8 位内容编码为 10 位的(HEVC 和 AV1)。
  • 单向 B 帧(而不是 P 帧)在延迟敏感的用例中提高了质量,这特别适用于 HEVC。
  • UHQ(超高质量)调谐信息在延迟容忍用例中提供 HEVC 仅限的最佳质量。

前瞻级别 

前瞻性级别可以帮助分析未来的帧,并实现对不同帧的有效比特分配,以优化编码效率。它使用编码树单元(CTU)和其他编码统计信息来改进速率控制,这对于延迟容忍编码非常有用。Video Codec SDK 12.2 提供了多达四个不同的前瞻性级别,具有不同的性能和质量权衡。

使用以下设置:

  • enableLookahead开启向前看。
  • LookaheadDepth确定将被缓冲在先行队列中用于分析的帧数。
  • LookaheadLevel确定将要进行的分析级别,以便提供质量改进。较高的LookaheadLevel在降低性能和增加视频存储器使用的情况下提供更好的质量,相比于较低的LookaheadLevel

时间滤波 

使用相机捕获的自然视频内容具有噪声,该噪声可能来自包括传感器噪声在内的一系列因素。噪声可以减少时间冗余,从而增加用于编码的比特数,降低压缩效率。

时间滤波通过使用来自相邻帧的补丁来过滤当前帧,从而减少这种噪声。时间滤波器使用运动估计在相邻帧中找到当前帧的补丁,然后使用这些补丁来对当前帧进行滤波。滤波是使用 CUDA 内核完成的,而运动估计是使用 NVIDIA 编码器(NVENC)硬件执行的。

可以通过设置tfLevel来启用临时过滤临时过滤可以为自然视频内容提供 4-5%的平均编码增益请注意,此功能可能不会为合成或屏幕内容提供显著的增益。

A representation of the past and future frames that get used for filtering the current frame.
图 1。用于时间滤波的帧

建议同时使用前瞻级别和时间过滤,这两个功能相互补充,导致总体 BD-BR 节省大于单个功能提供的 BD-BR 节约的总和然而,没有限制单独使用这些功能,每个功能都可以单独编程。

高比特深度编码 

将 8 位内容编码为 10 位内容可以提供编码增益。视频编解码器 SDK 12.2 提供了设置inputBitDepth= 8 和outputBitDepth= 10 以启用高位深度编码的选项,从而将 8 位内容编码为 10 位提高相关性,结果实现更好的压缩。

从 8 位到 10 位的转换发生在 NVENC 驱动程序中,使用 CUDA 实现 HEVC 和 HW 实现 AV1。它的性能损失可以忽略不计。通过启用高比特深度编码,可以预期 3-4%的编码效率增益,对于特定序列则可以预期更高的编码效率增益。

A representation of the video pipeline on both the encode and decode sides when using the high bit-depth encoding. The 8-bit to 10-bit conversion on the encode side happens within the driver.
图 2:用于使用高位深度编码的管道

当客户端应用程序控制编码器和解码器时,可以使用此功能。如果解码器支持 10 位解码,强烈建议使用此功能,因为这将提高编码效率。

然而,该功能将导致 GPU 内存利用率的增加,因为内部缓冲区将以 10 位格式分配。

单向 B 帧

单向 B 帧是特殊 B 帧,仅使用来自过去帧的预测,避免与传统 B 帧相关联的延迟问题。这使得它们对于低延迟编码非常有用。传统的 B 帧从 L0 和 L1 方向进行预测,而单向 B 帧仅从 L0 方向进行预测。

单向 B 帧从前两个帧进行预测,相比仅从 P 帧进行预测的 P 帧,提供 3-4%的 BD-BR 节省。通过设置enableUniDirectionalB=1,可以启用单向 B 帧,平均提高编码效率 3-4%,特定序列的增益可达 15%。

图 3 显示了用于仅具有 I/P 帧的序列的参考列表创建的不同图片。参考列表 L0 仅使用来自过去的图片。

Different pictures used for reference list creation for a sequence having only I/P frames.
图 3。用于 I/P 帧序列的参考列表

图 4 显示了对正常 B 帧的参考列表 L0 和 L1 使用不同图片的情况。L0 列表使用过去的图片,L1 列表使用将来的图片。

The use of different pictures for reference lists L0 and L1 for a normal B frame.
图 4。用于正常 B 帧序列的参考列表

图 5 显示了对单向 B 帧的参考列表 L0 和 L1 使用不同图片的情况。L0 和 L1 参考列表都是仅根据以前的图片创建的。

The use of different pictures for reference lists L0 and L1 for unidirectional B frames.
图 5。参考列表用于使用单向 B 帧的序列

UHQ 调谐信息

UHQ 调谐信息结合了前瞻级别和时间滤波,为各种预设提供了最佳质量和性能折衷,以实现最高质量的延迟容忍编码。UHQ 调谐信息自动设置前瞻和时间滤波的最佳设置,使客户端应用程序能够使用 UHQ 调谐信息,而不是单独调整这两个功能。

此功能还将 B 帧的数量固定为五个,同时使用中间 B 帧作为参考。UHQ 还禁用自适应 I 帧和自适应 B 帧,并使用固定的 GOP(图片组)结构。

图 6 显示了 P1、P4 和 P7 预设的 HQ 和 UHQ 调谐信息的比特率节省和性能,以及高比特深度编码,这与作为参考点的 x265 介质进行比较。p4 和 p7 预设在 UHQ 调谐信息上超过 x265 Slow 的比特率节省。UHQ 调谐信息上的 p1 预设仅比 x265 Slow 高 3%。UHQ P1 提供了 x265 的 4 倍 FPS,而 UHQ p4 可以在 x265 Slow 上提供高达 3 倍 FPS。

Chart showing the bit rate savings and performance for HQ and UHQ Tuning Info and compares this against x265 medium as the reference point.
图 6。HQ 和 UHQ 调谐信息的比特率节省和性能

开始使用 Video Codec SDK 12.2

视频编解码器 SDK 12.2 通过提高 HEVC 编码的视频编码质量,特别是对于自然视频内容,实现了显著降低比特率。新功能包括前瞻级别、时间滤波、更高比特深度编码、单向 B 帧和 UHQ 调谐信息。

下载视频编解码器 SDK 12.2开始使用,并加入NVIDIA 开发者论坛的对话,要了解有关新视频功能的更多信息,请参阅使用 AV1 和 NVIDIA Ada Lovelace 架构提高视频质量和性能

 

标签