NVIDIA Maxine

视频特效 SDK 系统指南

视频特效 SDK 系统指南

《视频特效 SDK 系统指南》提供了有关开始使用 SDK、运行和构建示例应用程序以及可用示例应用程序的参考信息。

NVIDIA® 视频特效 SDK for Windows 用于将特效滤镜应用于视频。

该 SDK 由配备 Tensor Core 的 NVIDIA GPU 提供支持。借助 Tensor Core,算法吞吐量大大加快,延迟也得以降低。该 SDK 提供以下滤镜:

  • AI 绿幕(视频背景分割),用于分割和遮罩视频或图像中的背景区域。
  • 背景虚化(Beta 版),它使用来自 AI 绿幕滤镜或其他来源的分割蒙版,并在视频或图像的背景中产生模糊效果。
  • 编码器伪影消除(Beta 版),用于减少编码产生的块状和噪点伪影,同时保留原始视频的细节。
  • ArtifactReduction 效果具有以下模式:
    • 强度 0,应用较弱的效果。
    • 强度 1,应用较强的效果。
  • 超分辨率(Beta 版),用于放大视频并减少编码伪影。此滤镜可增强细节、锐化输出并保留内容。SuperRes 效果具有两种模式:
    • 强度 1,应用强增强效果。
    • 强度 0,应用较弱的增强效果,同时减少编码伪影。
  • 放大(Beta 版),这是一种快速轻量级的方法,用于放大输入视频并锐化生成的输出。

    此滤镜可以选择与编码器伪影消除流水线结合使用,以增强缩放效果,同时减少视频伪影。

  • 网络摄像头降噪(Beta 版),用于消除网络摄像头视频中的噪声,同时保留纹理细节。此效果具有以下模式:
    • 强度 0,应用较弱的效果。
    • 强度 1,应用较强的效果。

1.1. Windows 版视频特效 SDK 入门

视频特效 SDK 需要特定的 NVIDIA GPU 和特定版本的 Windows 操作系统以及 SDK 依赖的其他相关软件。

此 SDK 专为客户端应用程序集成和本地部署而设计和优化。我们不正式支持对此 SDK 在数据中心/云环境中的测试、实验和部署。

1.1.1. 硬件要求

视频特效 SDK 与基于 NVIDIA Turing™ 或 NVIDIA Ampere™ 或 NVIDIA Ada™ 架构且具有 Tensor Core 的 GPU 兼容。

1.1.2. 软件要求

视频特效 SDK 需要特定版本的 Windows 操作系统以及 SDK 依赖的其他相关软件。

表 1. Windows 软件要求
软件 所需版本
Windows 操作系统 64 位 Windows 10 或更高版本
Microsoft Visual Studio 2017 或更高版本
CMake 3.12 或更高版本
Windows 版 NVIDIA 显卡驱动程序 511.65 或更高版本

1.2. 安装 Windows 版视频特效 SDK

以下是有关安装 Windows 版 SDK 的信息。

SDK 以以下形式分发:

  • 开发 SDK 软件包。

    开发软件包包含 SDK 中的所有内容,包括 API 标头、运行时依赖项和示例应用程序。

  • 可再发行 SDK 软件包。

    如果您的应用程序只想集成 SDK API 标头并要求最终用户下载并安装 SDK 运行时依赖项,则可再发行软件包会更方便。

    要开发应用程序,由于这两个软件包中的基本内容相同,因此您可以使用任一软件包。

可再发行 SDK 软件包包含以下部分:

  • 一个开源存储库,其中包括 SDK API 标头、示例应用程序及其依赖库,以及一个代理文件,用于在没有 SDK DLL 的情况下启用编译。
  • 一个安装程序,用于安装以下 SDK 运行时依赖项:
    • DLL
    • 模型
    • SDK 依赖库

安装位置为 C:\Program Files\NVIDIA Corporation\NVIDIA Video Effects\ 目录。

对于基于 SDK 构建的应用程序,开发人员可以将运行时依赖项打包到应用程序中,或要求应用程序用户使用 SDK 安装程序。

注意

源代码和示例应用程序位于开发软件包中,并托管在 GitHub 上,网址为 https://github.com/nvidia/MAXINE-VFX-SDK


要使用 SDK 可再发行软件包,请从 GitHub 下载源代码并安装 SDK 二进制文件。

注意

如果您使用的是开发软件包,则可以忽略此步骤。


示例应用程序源代码演示了如何集成 API 标头和调用 SDK API。示例应用程序还包括 NVVideoEffectsProxy.cpp 文件,该文件用于链接到 SDK DLL,而无需导入库 (.lib) 文件。借助此文件,您可以独立于 SDK 安装程序编译开源代码。但是,SDK 运行时依赖项仍然是加载运行时依赖项、DLL 和模型所必需的。

1.3. 构建 Windows 版示例应用程序

为了演示视频特效 SDK 的功能,SDK 提供了示例应用程序作为源代码(您可以构建)和二进制文件(您可以直接运行而无需构建)。您可以从提供的批处理文件或应用程序二进制文件运行每个应用程序。

开源存储库 包含用于构建示例应用程序的源代码和一个 NVVideoEffectsProxy.cpp 代理文件,用于在不显式链接到 SDK DLL 的情况下启用编译。

注意

要下载功能所需的模型和运行时依赖项,请运行 SDK 安装程序。

  1. 在下载的源代码的根文件夹中,启动 CMake GUI 并指定源文件夹和二进制文件的构建文件夹。
    1. 对于源文件夹,请确保路径以 OSS 结尾。
    2. 对于构建文件夹,请确保路径以 OSS/build 结尾。
    3. 使用 CMake 配置并生成 Visual Studio 解决方案文件。
    4. 单击配置
    5. 当系统提示您确认 CMake 可以创建构建文件夹时,单击确定
    6. 为生成器选择 Visual Studio,为平台选择 x64。
    7. 要完成配置 Visual Studio 解决方案文件,请单击完成
    8. 要生成 Visual Studio 解决方案文件,请单击生成
  2. 使用 Visual Studio 从您在上一步中生成的解决方案文件生成应用程序二进制 .exe 文件。
  3. 在 CMake 中,要打开 Visual Studio,请单击打开项目
  4. 在 Visual Studio 中,选择构建 > 构建解决方案

1.4. 在 Windows 上运行示例应用程序

本节提供有关如何在 Windows 上运行示例应用程序的信息。

1.4.1. 运行 AI 绿幕应用程序

AI 绿幕应用程序 (AigsEffectApp.exe) 演示了 SDK 的 AI 绿幕(视频背景分割)功能。

该应用程序接受视频文件或网络摄像头输出作为输入,并生成视频输出,视频输出可以存储在文件中或显示在窗口中。

该应用程序最初生成突出显示前景像素的输出。指定 --show 参数后,键盘控制中描述的按键会切换应用程序的行为。

您可以从提供的批处理文件或应用程序二进制文件运行此应用程序。

当通过命令行传递适当的 --comp_mode 值时,AigsEffectApp 示例应用程序还演示了背景虚化效果。有关控制应用程序的更多方法,请参阅以下内容:

1.4.2. 运行 UpscalePipeline 应用程序

提供了一个脚本文件 run.bat,向您展示如何运行 UpscalePipeline 应用程序。此脚本文件位于 Video Effects SDK 根文件夹下的 samples\UpscalePipelineApp 文件夹中。

注意

此批处理文件在可再发行安装程序包中称为 run.bat,在开发人员软件包中称为 run_local.bat。


此文件将所需 DLL 文件的路径添加到 Path 系统变量,并设置运行应用程序所需的选项。输入和输出已设置为 samples/input 文件夹中的图像,但您可以将它们设置为图像或视频 (MP4)。

  1. 打开命令提示符窗口。
  2. 导航到 samples\UpscalePipelineApp 文件夹。
    复制
    已复制!
                

    cd root-folder\samples\UpscalePipelineApp

  3. 执行 run.batrun_local.bat 文件。

有关控制应用程序的更多方法,请参阅以下内容:

1.4.3. 运行 DenoiseEffect 应用程序

提供了一个脚本文件 run.bat,向您展示如何运行 DenoiseEffect 应用程序。此脚本文件位于 Video Effects SDK 根文件夹下的 samples\DenoiseEffectApp 文件夹中。

注意

此批处理文件在可再发行安装程序包中称为 run.bat,在开发人员软件包中称为 run_local.bat


此文件将所需 DLL 文件的路径添加到 Path 系统变量,并设置运行应用程序所需的选项。输入当前设置为网络摄像头流,输出设置为视频文件,但您可以将它们设置为图像或视频 (MP4)。当示例应用程序运行时,您可以按 E 键来切换效果的开启和关闭。

  1. 打开命令提示符窗口。
  2. 导航到 samples\DenoiseEffectApp 文件夹。
    复制
    已复制!
                

    cd root-folder\samples\DenoiseEffectApp

  3. 执行 run.batrun_local.bat 文件。

有关控制应用程序的更多方法,请参阅以下内容:

1.4.4. 运行 VideoEffects 应用程序

提供了一个脚本文件 run.bat,向您展示如何运行 VideoEffects 应用程序。此脚本文件位于 Video Effects SDK 根文件夹下的 samples\VideoEffectsApp 文件夹中。

VideoEffects 应用程序可用于演示以下功能:

  • 伪影消除
  • 超分辨率
  • 放大
注意

此批处理文件在可再发行安装程序包中称为 run.bat,在开发人员软件包中称为 run_local.bat


此文件将所需 DLL 文件的路径添加到 Path 系统变量,并设置运行应用程序所需的选项。输入和输出已设置为 samples/input 文件夹中的图像,但您可以将它们设置为图像或视频 (MP4)。

  1. 打开命令提示符窗口。
  2. 导航到 samples\VideoEffectsApp 文件夹。
    复制
    已复制!
                

    cd root-folder\samples\VideoEffectsApp

  3. 执行 run.bat 或 run_local.bat 文件。

有关控制应用程序的更多方法,请参阅以下内容:

1.5. Windows 上的性能参考

此表列出了 NVIDIA 视频特效 SDK 的功能在一些受支持的 GPU 架构上的性能数据。

表 2。
  延迟(毫秒)
功能 RTX 2060 RTX 3090 RTX 4090
超分辨率 3.5 1.57 0.52
网络摄像头降噪 2.1 0.94 0.43
放大 0.17 0.07 0.03
编码器伪影消除 3.42 1.25 0.66
AI 绿幕 2.44 2.08 1.3


注意

特效的默认分辨率为 720p。对于超分辨率和放大功能,数据反映了 2 倍缩放(从 360p 到 720p)的性能。

面向 Linux 的视频特效 SDK 用于将特效滤镜应用于视频。

该 SDK 由配备 Tensor Core 的 NVIDIA GPU 提供支持。借助 Tensor Core,算法吞吐量大大加快,延迟也得以降低。该 SDK 提供以下滤镜:

  • AI 绿幕(视频背景分割),用于分割和遮罩视频或图像中的背景区域。
  • 背景虚化(Beta 版),它使用来自 AI 绿幕滤镜或其他来源的分割蒙版,并在视频或图像的背景中产生模糊效果。
  • 编码器伪影消除(Beta 版),用于减少编码产生的块状和噪点伪影,同时保留原始视频的细节。
  • ArtifactReduction 效果具有以下模式:
    • 强度 0,应用较弱的效果。
    • 强度 1,应用较强的效果。
  • 超分辨率(Beta 版),用于放大视频并减少编码伪影。此滤镜可增强细节、锐化输出并保留内容。SuperRes 效果具有两种模式:
    • 强度 1,应用强增强效果。
    • 强度 0,应用较弱的增强效果,同时减少编码伪影。
  • 放大(Beta 版),这是一种快速轻量级的方法,用于放大输入视频并锐化生成的输出。

    此滤镜可以选择与编码器伪影消除流水线结合使用,以增强缩放效果,同时减少视频伪影。

  • 网络摄像头降噪(Beta 版),用于消除网络摄像头视频中的噪声,同时保留纹理细节。此效果具有以下模式:
    • 强度 0,应用较弱的效果。
    • 强度 1,应用较强的效果。

2.1. Linux 版视频特效 SDK 入门

视频特效 SDK 需要特定的 NVIDIA GPU、特定版本的 Linux 操作系统以及 SDK 依赖的其他相关软件。

此 SDK 专为服务器端(数据中心/云)部署而设计和优化。我们不正式支持对此 SDK 在客户端应用程序集成和本地部署中的测试、实验和生产部署。

2.1.1. 硬件要求

视频特效 SDK 与基于 NVIDIA Turing™、NVIDIA Volta™ 或 NVIDIA Ampere™ 架构的 GPU 兼容。

注意

为了在使用 NVIDIA T4 和其他服务器 GPU 时获得最佳性能,请确保您使用的服务器满足这些类型产品的散热和气流要求。有关合格服务器的最新列表,请参阅 https://www.nvidia.com/en-us/data-center/tesla/tesla-qualified-servers-catalog/

2.1.2. 软件要求

NVIDIA 视频特效 SDK 需要特定版本的 Linux 以及 SDK 依赖的其他相关软件。

表 3. Linux 软件要求
软件 所需版本
Linux Ubuntu 18.04、Ubuntu 20.04 或 CentOS 7
CUDA 11.8.0
TensorRT 8.5.1.7(适用于 NVIDIA CUDA® 11.8)
cudnn 8.6.0.163(适用于相应的 NVIDIA TensorRT™/ CUDA 版本)
CMake 3.10
opencv 3.2+ 或 4.x(仅适用于示例应用程序)
Linux 版 NVIDIA 显卡驱动程序 520.61 或更高版本

2.2. 安装面向 Linux 的 NVIDIA 视频特效 SDK

SDK 以 .tar.gz 软件包(一种压缩 tar 格式)交付。

该软件包包含视频特效库和头文件,需要将其解压到 /usr/local/VideoFX 目录。

您可以从 https://developer.nvidia.com 下载先决条件。

表 4. 下载先决条件
先决条件 下载位置
CUDA https://developer.nvidia.com/cuda
TensorRT https://developer.nvidia.com/tensorrt
cudnn https://developer.nvidia.com/cudnn


有关以下 <version> 的版本号的更多信息,请参阅 软件要求

  • 安装 CUDA(包括显卡驱动程序)
    复制
    已复制!
                

    $ sudo sh cuda_<version>_linux.run


  • 安装 TensorRT
    复制
    已复制!
                

    $ sudo tar -xvf TensorRT-<version>.linux.x86_64-gnu.cuda-<version>.cudnn<version>.tar.gz -C /usr/local


  • 安装 cudnn
    复制
    已复制!
                

    $ tar -xvf cudnn-linux-x86_64-<version>_cuda11-archive.tar.xz $ sudo cp cudnn-linux-x86_64-<version>_cuda11-archive/include/cudnn*.h /usr/local/cuda/include $ sudo cp -P cudnn-linux-x86_64-<version>_cuda11-archive/lib/libcudnn* /usr/local/cuda/lib64 $ sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*


  • 安装 SDK
    复制
    已复制!
                

    $ sudo tar -xvf NVIDIA_VFX_SDK_<OS>_version>.tar.gz -C /usr/local


要安装 CUDA 11.8 并保留旧版(受支持)显卡驱动程序(例如 418 和 440 版本),您需要仔细安装 CUDA 工具包和 CUDA 兼容性软件包。有关更多信息,请参阅 CUDA 兼容性README_quickstart.md 文件。

注意

如果您计划使用旧版(受支持)显卡驱动程序,则必须设置 LD_LIBRARY_PATH 以包含兼容性软件包,方法是运行以下命令

复制
已复制!
            

export LD_LIBRARY_PATH=/usr/local/cuda/compat:$LD_LIBRARY_PATH


2.3. 构建 Linux 版示例应用程序

为了演示视频特效 SDK 的功能,SDK 提供了示例应用程序作为源代码(您可以构建)。然后,您可以从提供的 shell 脚本或应用程序二进制文件运行每个应用程序。

要构建示例应用程序,请运行以下命令

复制
已复制!
            

/usr/local/VideoFX/share/build_samples.sh


按照提示提供安装位置并构建示例应用程序。该脚本可能会提示您安装必要的先决条件。

2.4. 在 Linux 上运行示例应用程序

本节提供有关如何在 Linux 中运行示例应用程序的信息。

2.4.1. 从 Shell 脚本运行 AI 绿幕应用程序

AI 绿幕应用程序 AigsEffectApp 演示了 SDK 的 AI 绿幕(视频背景分割)功能。该应用程序接受图像、视频文件或网络摄像头输出作为输入,并生成视频输出,视频输出可以存储在文件中或显示在窗口中。

~/mysamples 文件夹包含以下 shell 脚本:

  • run_aigs_webcam.sh
  • run_aigs_image.sh

要在 SDK 中包含的示例图像上运行 AI 绿幕示例应用程序,请运行以下命令

复制
已复制!
            

$ cd ~/mysamples $ ./run_aigs_image.sh


此步骤将创建一个名为 aigs_image_out.jpg 的输出图像。

要通过使用连接的网络摄像头在屏幕上显示来运行 AI 绿幕示例应用程序,请运行以下命令

复制
已复制!
            

$ cd ~/mysamples $ ./run_aigs_webcam.sh


注意

要直接从命令行运行应用程序,请查看 shell 脚本的内容。


有关控制应用程序的更多方法,请参阅以下内容:

2.4.2. 从 Shell 脚本运行 UpscalePipeline 应用程序

以下是有关如何在 Linux 上运行 UpscalePipeline 应用程序的信息。

要在 SDK 中的示例图像上运行 UpscalePipeline 示例应用程序,请运行以下命令

复制
已复制!
            

$ cd ~/mysamples $ ./run_upscalepipeline.sh


注意

要直接从命令行运行应用程序,请查看 shell 脚本的内容。


有关控制应用程序的更多方法,请参阅以下内容:

2.4.3. 从 Shell 脚本运行 DenoiseEffect 应用程序

~/mysamples 文件夹包含 run_denoiseeffect.sh shell 脚本。

要在 SDK 中的示例图像上运行 DenoiseEffect 示例应用程序,请运行以下命令

复制
已复制!
            

./run_denoiseeffect.sh


输入当前设置为网络摄像头流,输出设置为视频文件,但您可以将它们设置为图像或视频。当示例应用程序运行时,您可以按 E 键来切换效果的开启和关闭。

注意

要直接从命令行运行应用程序,请查看 shell 脚本的内容。


有关控制应用程序的更多方法,请参阅以下内容:

2.4.4. 从 Shell 脚本运行批量效果应用程序

某些效果可以利用批处理来实现更高的性能。BatchEffectApp 包含演示同时处理一批图像所需的额外步骤的代码。与其他示例应用程序不同,此应用程序接受多个图像用作输入。

注意

~/mysamples 文件夹包含 run_batcheffect.sh shell 脚本。


要在批量示例图像上运行 BatchEffectApp,请运行

复制
已复制!
            

$ cd ~/mysamples $ ./run_batcheffect.sh


注意

要直接从命令行运行应用程序,请查看 shell 脚本的内容。


有关控制应用程序的更多方法,请参阅以下内容:

2.4.5. 从 Shell 脚本运行批量降噪效果应用程序

批量降噪效果应用程序可用于对用户指定批次中的多个视频流中的帧进行降噪。BatchDenoiseEffectApp 包含演示同时处理多个视频流所需的额外步骤的代码。该应用程序假定输入视频具有相同的分辨率和长度。与其他示例应用程序不同,此应用程序接受多个视频用作输入。

注意

~/mysamples 文件夹包含 run_batchdenoiseeffect.sh shell 脚本。


要在批量示例图像上运行 BatchDenoiseEffectApp,请运行

复制
已复制!
            

$ cd ~/mysamples $ ./run_batchdenoiseeffect.sh inFile1 [ ... inFileN ]


此过程对 N 个输入文件 inFile1inFileN 中的视频进行降噪,并将输出写入 N 个相应的输出文件。

注意

目前,SDK 未提供用于批量降噪的示例输入视频。

2.4.6. 从 Shell 脚本运行批量 AI 绿幕效果应用程序

批量 AI 绿幕效果应用程序可用于在多个视频流批次中的帧上运行效果,并且批次大小等于视频数量。BatchAigsEffectApp 包含演示同时处理多个视频流所需的额外步骤的代码。该应用程序假定输入视频具有相同的分辨率和长度。与其他示例应用程序不同,此应用程序接受多个视频用作输入。

注意

~/mysamples 文件夹包含 run_batchaigseffect.sh shell 脚本。


要在示例视频上运行 BatchAigsEffectApp,请运行

复制
已复制!
            

$ cd ~/mysamples $ ./run_batchaigseffect.sh


此过程对两个输入文件中的视频进行降噪,并将输出写入两个相应的输出文件。

2.4.7. 从 Shell 脚本运行 VideoEffects 应用程序

以下是有关运行 VideoEffects 应用程序的一些信息。~/mysamples 文件夹包含 run_videoeffects.sh shell 脚本。

要在 SDK 中的示例图像上运行 VideoEffects 示例应用程序,请运行以下命令

复制
已复制!
            

./run_videoeffects.sh


有关控制应用程序的更多方法,请参阅以下内容:

注意

要直接从命令行运行应用程序,请查看 shell 脚本的内容。

2.5. Linux 上的性能参考

此表列出了 NVIDIA 视频特效 SDK 的功能在一些受支持的 GPU 架构上的性能数据。

表 5。
  延迟(毫秒) 吞吐量(实现 30 FPS 的最大流数)
功能 T4 A10 A40 T4 A10 A40
超分辨率 3.16 1.43 1.1 10 23 30
网络摄像头降噪 2.64 1.09 0.88 14 30 30
放大 0.21 0.09 0.07 157 367 471
编码器伪影消除 4.4 1.65 1.2 8 20 28
AI 绿幕 2.4 1.3 1.17 14 25 28


注意

特效的默认分辨率为 720p。对于超分辨率和放大功能,数据反映了 2 倍缩放(从 360p 到 720p)的性能。吞吐量定义为实现 30FPS 实时性的最大流数。

为了演示视频特效 SDK 的功能,SDK 提供了示例应用程序作为源代码(您可以构建)和二进制文件(您可以直接运行而无需构建)。您可以从提供的 shell 脚本或应用程序二进制文件运行每个应用程序。

重要提示

要退出应用程序,您不能只关闭窗口。您需要输入 Q 或 Escape 键。

3.1. AI 绿幕应用程序

本节提供 AI 绿幕应用程序的命令行和键盘控制信息。

3.1.1. AI 绿幕应用程序命令行参考

以下是 AI 绿幕应用程序的命令行参考信息。

复制
已复制!
            

AigsEffectApp [arguments...]


以下是参数

--in_file=path
应用程序要处理的图像文件或视频文件。
--webcam[=(true|false)]
如果为 true,则使用网络摄像头作为输入而不是文件。
--cam_res=[widthx]height

如果 --webcamtrue,则指定网络摄像头的分辨率,width 是可选的。如果省略,则 widthheight 计算得出,以提供 16:9 的纵横比。例如

复制
已复制!
            

--cam_res=1280x720 or -–cam_res=720


如果 --webcamfalse,则忽略此参数。

--out_file=path
要存储视频输出的文件。
--show[=(true|false)]
如果为 true,则在窗口中显示生成的视频输出。
--model_dir=path
包含要用于转换的模型文件的文件夹的路径。
--codec=fourcc
输出视频文件的视频编解码器的四字符代码 (FOURCC)。默认值为 H264。
--help
显示命令的帮助信息。
--mode=(0|1)
选择运行应用程序的模式:
  • 0 选择最佳质量。
  • 1 选择最快性能。
--comp_mode=(0|1|2|3|4|5|6)
其中 mode 选择要使用的合成模式:
  • 0:显示分割蒙版 (compMatte)。
  • 1:将蒙版叠加在图像之上 (compLight)。
  • 2:提供 BGR={0,255,0} 背景图像的合成 (compGreen)。
  • 3:提供 BGR={255,255,255} 背景图像的合成 (compWhite)。
  • 4:不进行合成,但显示输入图像 (compNone)。
  • 5:将蒙版叠加在图像上 (compBG)。
  • 6:通过使用分割蒙版 (compBlur) 对输入图像应用背景虚化滤镜。

3.1.2. 键盘控制

以下是 AI 绿幕应用程序的键盘控制信息。

示例应用程序提供键盘控制来更改应用程序的运行时行为:

  • C:在以下图像渲染方式之间切换:
    • 0:显示分割蒙版 (compMatte)。
    • 1:将蒙版叠加在图像之上 (compLight)。
    • 2:提供 BGR={0,255,0} 背景图像的合成 (compGreen)。
    • 3:提供 BGR={255,255,255} 背景图像的合成 (compWhite)。
    • 4:不进行合成,但显示输入图像 (compNone)。
    • 5:将蒙版叠加在图像上 (compBG)。
    • 6:通过使用分割蒙版 (compBlur) 对输入图像应用背景虚化滤镜。
  • F:切换帧率显示开关。
  • QEscape:退出应用程序并干净地完成写入任何输出文件。

3.2. UpscalePipeline 应用程序

本节提供 UpscalePipeline 应用程序的命令行和键盘控制信息。

3.2.1. UpscalePipeline 应用程序命令行参考

以下是 UpscalePipeline 应用程序的命令行参考信息。

复制
已复制!
            

UpscalePipelineApp [arguments...]


以下是参数

--in_file=path
应用程序要处理的图像文件或视频文件。
--out_file=path
要存储视频输出的文件。
--resolution=NNN
输出图像/视频垂直分辨率,从输入垂直分辨率按 1.3333、1.5、2、3 或 4 的比例缩放。
--show[=(true|false)]
如果为 true,则在窗口中显示生成的视频输出。
--model_dir=path
包含将用于转换的模型文件的文件夹的路径。
--codec=fourcc
输出视频文件的视频编解码器的四字符代码 (FOURCC)。默认值为 H264。
--ar_mode=(0|1) 用于 ArtifactReduction
选择要应用的滤镜强度:
  • 0 选择较弱的效果。
  • 1 选择较强的效果。
--upscale_strength=[0.0-1.0] 用于 Upscale
选择要应用的放大滤镜强度:
  • 0 选择不增强。
  • 1 选择最大清晰度。

默认值为 0.4。

--progress
显示进度。
--verbose [=(true|false)]
详细输出。
--debug [=(true|false)]
打印额外的调试信息。
--help
显示命令的帮助信息。

3.2.2. 键盘控制

以下是 UpscalePipeline 应用程序的键盘控制信息。

示例应用程序提供用于更改应用程序运行时行为的键盘控制:

  • F:切换帧率显示开关。
  • QEscape:退出应用程序并干净地完成写入任何输出文件。

3.3. DenoiseEffect 应用程序

本节提供 DenoiseEffect 应用程序的命令行和键盘控制信息。

3.3.1. DenoiseEffect 应用程序命令行参考

以下是 DenoiseEffect 应用程序的命令行参考信息。

复制
已复制!
            

DenoiseEffectApp [arguments...]


以下是参数

--in_file=path
应用程序要处理的图像文件或视频文件。
--out_file=path
要存储图像或视频输出的文件。
--show[=(true|false)]
如果为 true,则在窗口中显示生成的视频输出。
--model_dir=path

包含将用于转换的模型文件的文件夹的路径。

--codec=fourcc

输出视频文件的视频编解码器的四字符代码 (FOURCC)。默认值为 H264

无损编解码器,例如 Huffman 无损编解码器 (FOURCC=HFYU),可用于保存输出视频,而不会产生任何压缩伪影。在 Windows 上,要使用 Huffman 无损编解码器,请从https://sourceforge.net/projects/opencvlibrary/files/3.4.6/下载 opencv_ffmpeg346_64.dll 文件,并将其复制到应用程序搜索路径上的某个位置。

--strength=(0|1)
  • 0 选择较弱的效果。
  • 1 选择较强的效果。
--progress
显示进度。
--webcam
使用网络摄像头作为输入。
--verbose [=(true|false)]
详细输出
--debug[=(true|false)]
打印额外的调试信息。
--help
显示命令的帮助信息。

3.3.2. 键盘控制

以下是 DenoiseEffect 应用程序的键盘控制信息。

示例应用程序提供了用于更改应用程序运行时行为的键盘控制:

  • E:切换效果的开启和关闭。
  • F:切换帧率显示开关。
  • QEscape:退出应用程序并干净地完成写入任何输出文件。

3.4. BatchEffectApp 应用程序

本节提供 BatchEffectApp 应用程序的命令行和键盘控制信息。

3.4.1. BatchEffectApp 命令行参考

以下是 BatchEffectApp 应用程序的命令行参考信息。

复制
已复制!
            

BatchEffectApp [flags ...] inFile1 [ inFileN ...]


以下是标志

--out_file=<path>
要写入的输出视频文件,这是一个带有 %u 或 %d 的模式,默认为 "BatchOut_%02u.mp4"
--effect=<effect>
将应用以下效果之一:
  • Transfer
  • ArtifactReduction
  • SuperRes
  • GreenScreen
  • 放大
--strength=<value>

效果的强度

用于放大的 [0.0, 1.0] 范围。

--scale=<scale>
将应用的缩放因子,可以是 1.3333333、1.5、2、3 或 4。
--mode=<mode>
对于 SuperRes 和 ArtifactReduction,模式值为 0 或 1:
  • 0:弱效果
  • 1:强效果
--model_dir=<path>
包含模型的目录的路径。
--verbose
详细输出。
--help
帮助消息。

3.4.2. 键盘控制

以下是 BatchEffectApp 应用程序的键盘控制信息。

示例应用程序提供了用于更改应用程序运行时行为的键盘控制:

  • F:切换帧率显示开关。
  • QEscape:退出应用程序并干净地完成写入任何输出文件。

3.5. BatchDenoiseEffectApp 应用程序

本节提供 BatchDenoiseEffectApp 应用程序的命令行和键盘控制信息。

3.5.1. BatchDenoiseEffectApp 命令行参考

以下是 BatchDenoiseEffectApp 应用程序的命令行参考信息。

复制
已复制!
            

BatchDenoiseEffectApp [flags ...] inFile1 [ inFileN ...]


以下是标志

--out_file=<path>
要写入的输出视频文件,这是一个带有 %u 或 %d 的模式,默认为 "BatchOut_%02u.mp4"
--strength=<value>
Strength 的值为 0 或 1。
--batchsize=<value>
批处理大小。默认值:8
--model_dir=<path>
包含模型的目录的路径。
--verbose
详细输出。
--help
帮助消息。

3.5.2. 键盘控制

以下是 BatchDenoiseEffectApp 应用程序的键盘控制信息。

示例应用程序提供了用于更改应用程序运行时行为的键盘控制:

  • F:切换帧率显示开关。
  • QEscape:退出应用程序并干净地完成写入任何输出文件。

3.6. BatchAigsEffectApp 应用程序

本节提供 BatchAigsEffectApp 应用程序的命令行和键盘控制信息。

3.6.1. BatchAigsEffectApp 命令行参考

以下是关于 BatchAigsEffectApp 的 CLI 参考的一些信息。

以下是 BatchAigsEffectApp 应用程序的命令行参考信息。

复制
已复制!
            

BatchAigsEffectApp [flags ...] inFile1 [ inFileN ...]


以下是标志

--out_file=<path>
要写入的输出视频文件,这是一个带有 %u%d 的模式,默认为 "BatchOut_%02u.mp4"
--model_dir=<path>
包含模型的目录的路径。
--mode=<value>
选择运行应用程序的模式:
  • 0 选择最佳质量。
  • 1 选择最快性能。
--verbose
详细输出。
--codec=<fourcc>
所需编解码器的 fourcc 代码,例如 avc1 和 h264。
--help
帮助消息。

3.7. VideoEffects 应用程序

本节提供 VideoEffects 应用程序的命令行和键盘控制信息。

3.7.1. VideoEffects 应用程序命令行参考

以下是 VideoEffects 应用程序的命令行参考信息。

复制
已复制!
            

VideoEffectApp [arguments...]


以下是参数

--in_file=path
应用程序要处理的图像文件或视频文件。
--effect=ArtifactReduction, SuperRes, 或 Upscale
此参数选择将应用的效果:
  • ArtifactReduction:消除编码器伪影,而不更改分辨率。
  • SuperRes:消除伪影(模式 0)并将分辨率提升到指定的输出分辨率。
  • Upscale:快速放大器,可将视频分辨率提高到指定的输出分辨率。
注意

您还可以选择运行带有 --help 标志的 VideoEffectsApp 时列出的任何效果。


--resolution=NNN
来自 Upscale 和 SuperRes 的所需输出垂直分辨率,缩放倍数为输入分辨率的 1.3333x、1.5x、2x、3x 或 4x 倍。
--out_file=path
要存储视频输出的文件。
--show[=(true|false)]
如果为 true,则在窗口中显示生成的视频输出。
--model_dir=path
包含要用于转换的模型文件的文件夹的路径。
--codec=fourcc
输出视频文件的视频编解码器的四字符代码 (FOURCC)。默认值为 H264。
--strength=[0.0-1.0] 用于 Upscale
用于调整清晰度的连续变量值。
--mode=(0 或 1) 用于 SuperRes 或 ArtifactReduction
选择要应用的滤波器的模式:
  • 0 选择较弱的效果。
  • 1 选择较强的效果。
--verbose [=(true|false)]
详细输出。
--debug
打印额外的调试信息。
--help
显示命令的帮助信息。

3.7.2. 键盘控制

以下是 VideoEffects 应用程序的键盘控制信息。

示例应用程序提供了用于更改应用程序运行时行为的键盘控制:

  • F:切换帧率显示开关。
  • QEscape:退出应用程序并干净地完成写入任何输出文件。

本节包含有关使用 Video Effects SDK 的附加信息。

4.1. 以无损格式保存输出视频

无损编解码器(例如 Ut Video Codec)可用于保存示例应用程序的输出视频,而不会产生任何压缩伪影。

例如,要使用此编解码器保存输出视频,请在应用程序的命令行参数中使用 --codec=ULY0 选项。在 Windows 上,要使用 Ut Video Codec,请从 https://sourceforge.net/projects/opencvlibrary/files/3.4.6/ 下载 opencv_ffmpeg346_64.dll 文件,并将该文件复制到应用程序搜索路径上的某个位置。

声明

本文档仅供参考,不应视为对产品的特定功能、状况或质量的保证。NVIDIA Corporation(“NVIDIA”)对本文档中包含信息的准确性或完整性不作任何明示或暗示的陈述或保证,并且对本文档中包含的任何错误不承担任何责任。NVIDIA 对因使用此类信息而造成的后果或使用或因使用此类信息而可能导致的侵犯专利或第三方的其他权利不承担任何责任。本文档不承诺开发、发布或交付任何材料(如下定义)、代码或功能。

NVIDIA 保留随时对本文档进行更正、修改、增强、改进和任何其他更改的权利,恕不另行通知。

客户在下订单之前应获取最新的相关信息,并应验证此类信息是否为最新且完整。

除非 NVIDIA 和客户的授权代表签署的单独销售协议(“销售条款”)另有约定,否则 NVIDIA 产品的销售受订单确认时提供的 NVIDIA 标准销售条款和条件的约束。NVIDIA 特此明确反对将客户通用条款和条件应用于购买本文档中引用的 NVIDIA 产品。本文档不直接或间接地构成任何合同义务。

NVIDIA 产品并非设计、授权或保证适用于医疗、军事、航空、航天或生命支持设备,也不适用于 NVIDIA 产品的故障或失灵可能合理预期会导致人身伤害、死亡或财产或环境损害的应用。NVIDIA 对在上述设备或应用中包含和/或使用 NVIDIA 产品不承担任何责任,因此,此类包含和/或使用由客户自行承担风险。

NVIDIA 不保证或声明基于本文档的产品将适用于任何特定用途。NVIDIA 不一定会对每种产品的所有参数进行测试。客户有责任评估和确定本文档中包含的任何信息的适用性,确保产品适用于并符合客户计划的应用,并为应用执行必要的测试,以避免应用或产品的默认设置。客户产品设计的缺陷可能会影响 NVIDIA 产品的质量和可靠性,并可能导致超出本文档中包含的附加或不同条件和/或要求。对于可能基于或归因于以下原因的任何默认设置、损坏、成本或问题,NVIDIA 不承担任何责任:(i) 以任何违反本文档的方式使用 NVIDIA 产品;或 (ii) 客户产品设计。

本文档未授予 NVIDIA 专利权、版权或其他 NVIDIA 知识产权下的任何明示或暗示的许可。NVIDIA 发布的关于第三方产品或服务的信息不构成 NVIDIA 授予的使用此类产品或服务的许可,也不构成对其的保证或认可。使用此类信息可能需要获得第三方专利或第三方其他知识产权下的第三方许可,或获得 NVIDIA 专利或 NVIDIA 其他知识产权下的 NVIDIA 许可。

只有在事先获得 NVIDIA 书面批准的情况下,才可以复制本文档中的信息,复制时不得更改,并且必须完全遵守所有适用的出口法律和法规,并附带所有相关的条件、限制和声明。

本文档以及所有 NVIDIA 设计规范、参考板、文件、图纸、诊断程序、列表和其他文档(统称和单独称为“材料”)均“按原样”提供。NVIDIA 对材料不作任何明示、暗示、法定或其他方面的保证,并明确声明不承担任何关于非侵权性、适销性和特定用途适用性的暗示保证。在法律未禁止的范围内,在任何情况下,NVIDIA 均不对任何损害(包括但不限于任何直接、间接、特殊、附带、惩罚性或后果性损害)负责,无论其由何种原因引起,也无论责任理论如何,即使 NVIDIA 已被告知可能发生此类损害,NVIDIA 亦不负责。尽管客户可能因任何原因遭受任何损害,但 NVIDIA 对本文所述产品的对客户的累计总责任应根据产品的销售条款进行限制。

VESA DisplayPort

DisplayPort 和 DisplayPort Compliance Logo、DisplayPort Compliance Logo for Dual-mode Sources 以及 DisplayPort Compliance Logo for Active Cables 是视频电子标准协会在美国和其他国家/地区拥有的商标。

HDMI

HDMI、HDMI 标志和 High-Definition Multimedia Interface 是 HDMI Licensing LLC 的商标或注册商标。

OpenCL

OpenCL 是 Apple Inc. 的商标,已获得 Khronos Group Inc. 的许可使用。

商标

NVIDIA、NVIDIA 徽标以及 cuBLAS、CUDA、CUDA Toolkit、cuDNN、DALI、DIGITS、DGX、DGX-1、DGX-2、DGX Station、DLProf、GPU、JetPack、Jetson、Kepler、Maxwell、NCCL、Nsight Compute、Nsight Systems、NVCaffe、NVIDIA Ampere GPU 架构、NVIDIA Deep Learning SDK、NVIDIA Developer Program、NVIDIA GPU Cloud、NVLink、NVSHMEM、PerfWorks、Pascal、SDK Manager、T4、Tegra、TensorRT、TensorRT Inference Server、Tesla、TF-TRT、Triton Inference Server、Turing 和 Volta 是 NVIDIA Corporation 在美国和其他国家/地区的商标和/或注册商标。其他公司和产品名称可能是与其相关的各自公司的商标。

© 2021-2023 NVIDIA Corporation 及其附属公司。保留所有权利。 上次更新时间:2022 年 12 月 20 日。