by rigaya
本软件旨在研究NVIDIA的HW编码器(NVENC)的性能和图像质量。 所开发的软件有两种类型,一种是独立运行的命令行版本,另一种是输出插件 Aviutl.
- NVEncC.exe ... 支持代码转换的命令行版本。
- NVEnc.auo ... Aviutl 的输出插件。
rigayaの日記兼メモ帳>> github releases
Windows 10/11 (x86 / x64)
Linux (x64/aarch64)
Aviutl 1.00 or later (NVEnc.auo)
支持NVENC的硬件
NVIDIA GPU GeForce Kepler gen或更新(GT / GTX 6xx或更新)
※ 由于GT 63x, 62x等是费米代的重命名,他们不能运行NVEnc。
NVEnc | 支持的NVENC API | 所需图形驱动程序版本 |
---|---|---|
NVEnc 0.00 or later | 4.0 | NVIDIA graphics driver 334.89 or later |
NVEnc 1.00 or later | 5.0 | NVIDIA graphics driver 347.09 or later |
NVEnc 2.00 or later | 6.0 | NVIDIA graphics driver 358 or later |
NVEnc 2.08 or later | 7.0 | NVIDIA graphics driver 368.69 or later |
NVEnc 3.02 or later | 7.0 | NVIDIA graphics driver 369.30 or later |
NVEnc 3.08 or later | 8.0 | NVIDIA graphics driver 378.66 or later |
NVEnc 4.00 or later | 8.1 | NVIDIA graphics driver 390.77 or later |
NVEnc 4.31 or later | 9.0 | NVIDIA graphics driver 418.81 or later |
NVEnc 4.51 or later | 9.1 | NVIDIA graphics driver 436.15 or later |
NVEnc 5.10 or later | 9.0 - 10.0 | NVIDIA graphics driver 418.81 or later |
NVEnc 5.18 or later | 9.0 - 11.0 | NVIDIA graphics driver 418.81 or later |
NVEnc 5.24 or later | 9.0 - 11.0 | NVIDIA graphics driver 418.81 or later (x64) NVIDIA graphics driver 456.81 or later (x86) |
NVEnc 5.36 or later | 9.0 - 11.1 | NVIDIA graphics driver 418.81 or later (x64) NVIDIA graphics driver 456.81 or later (x86) |
NVEnc 7.00 or later | 9.0 - 12.0 | NVIDIA graphics driver 418.81 or later (x64) NVIDIA graphics driver 456.81 or later (x86) |
NVEnc 7.26 or later | 9.0 - 12.1 | NVIDIA graphics driver 418.81 or later (x64) NVIDIA graphics driver 456.81 or later (x86) |
NVEnc 7.49 or later | 9.0 - 12.2 | NVIDIA graphics driver 418.81 or later (x64) NVIDIA graphics driver 456.81 or later (x86) |
支持的NVENC API | 所需图形驱动程序版本 |
---|---|
9.0 | NVIDIA graphics driver (Win 418.81 / Linux 418.30) or later |
9.1 | NVIDIA graphics driver (Win 436.15 / Linux 435.21) or later |
10.0 | NVIDIA graphics driver (Win 445.87 / Linux 450.51) or later |
11.0 | NVIDIA graphics driver (Win 456.71 / Linux 455.28) or later |
11.1 | NVIDIA graphics driver (Win 471.41 / Linux 470.57.02) or later |
12.0 | ??? |
12.1 | NVIDIA graphics driver (Win 531.61 / Linux 530.41.03) or later |
12.2 | NVIDIA graphics driver (Win 551.76 / Linux 550.54.144) or later |
CUDA 版本 | 所需图形驱动程序版本 |
---|---|
10.1 | NVIDIA graphics driver (Win 418.96 / Linux 418.39) or later |
10.2.89 | NVIDIA graphics driver (Win 440.33 / Linux 441.22) or later |
11.0.2 | NVIDIA graphics driver (Win 451.48 / Linux 450.51.05) or later |
11.0.3 | NVIDIA graphics driver (Win 451.82 / Linux 450.51.06) or later |
11.1.0 | NVIDIA graphics driver (Win 456.38 / Linux 455.23) or later |
11.1.1 | NVIDIA graphics driver (Win 456.81 / Linux 455.32) or later |
11.2 | NVIDIA graphics driver (Win 460.89 / Linux 460.27.04) or later |
注:中文文档更新可能不及时,不同之处请参考其他语言
check-features的结果,驱动程序返回的功能列表。可能取决于驱动程序版本。
GPU Gen | Windows | Linux |
---|---|---|
Kepler | GTX660Ti | Tesla K80 |
Maxwell | GTX970 | Tesla M80 |
Pascal | GTX1080, GTX1070, GTX1060, GTX1050Ti | GTX1080 |
Volta | GTX1650 | |
Turing | RTX2070, RTX2060, GTX1660Ti, GTX1650 Super | Tesla T4 |
Ampere | RTX3090, RTX3080, RTX3050Ti | |
Ada Lovelace | RTX4090, RTX4080 |
本软件是“按原样”提供的,没有任何形式的保证。
- 利用 NVENC 编码
- H.264 / AVC
- YUV420 / YUV444
- H.265 / HEVC (2nd Gen Maxwell or later)
- YUV420 / YUV444
- 10 bits
- AV1 (Ada Lovelace or later)
- H.264 / AVC
- NVENC 的编码模式
- CQP (fixed quantization)
- CBR (Constant bitrate)
- CBRHQ (Constant bitrate, high quality)
- VBR (Variable bitrate)
- VBRHQ (Variable bitrate, high quality)
- 隔行扫描编码 (利用 PAFF)
- 无损输出 (YUV 420 / YUV 444)
- 支持设置编解码器配置和级别、SAR、颜色滤镜、最大比特率、GOP长度等
- 支持 cuvid 解码 (NVIDIA 硬件解码)
- MPEG1
- MPEG2
- H.264 / AVC
- HEVC (10 bit / 12bitdepth with YUV444 support)
- VC-1
- VP9
- AV1
- 支持 avs, vpy, y4m, raw 等格式
- 通过 libavformat 支持封装/解封装
- 通过 libavcodec 支持解码
- 统计编码的ssim/psnr/vmaf参数
- 高性能过滤 (VPP, 视频预处理)
- cuvid 内建硬件处理
- resize
- deinterlace (normal / bob)
- 使用 CUDA 的 GPU filtering
- rff (apply rff flag)
- deinterlacer
- afs (Automatic field shift)
- nnedi
- yadif
- decimate
- mpdecimate
- colorspace conversion (x64 version only)
- hdr2sdr
- sdr2hdr (NGX TrueHDR)
- tonemap (libplacebo)
- lut3d
- delogo
- subburn
- custom shader (libplacebo)
- resize
- bilinear
- spline16, spline36, spline64
- lanczos2, lanczos3, lanczos4
- 一系列npp库提供的算法 (x64 version only)
- nvvfx-superres (超分辨率)
- ngx-vsr
- libplacebo
- transpose / rotate / flip
- padding
- select-every
- deband
- deband
- libplacebo
- noise reduction
- knn (K-nearest neighbor)
- pmd (modified pmd method)
- gauss (npp library, x64 version only)
- convolution3d
- nvvfx-artifact-reduction
- nvvfx-denoise
- edge / detail enhancement
- unsharp
- edgelevel (edge level adjustment)
- warpsharp
- cuvid 内建硬件处理
- 音频编码
- 封装音频和章节
- 支持afs (Automatic field shift)
- 支持的过滤器:
- nnedi
- resize
- noise reduction
- knn (K-nearest neighbor)
- pmd (modified pmd method)
- edge / detail enhancement
- unsharp
- edgelevel (edge level adjustment)
- deband
当有多个支持NVENC的GPU可用时,NVEncC将根据当前的选项自动选择一个GPU,--device 选项用于手动指定在哪个GPU上运行。
- 选择支持以下项目的GPU 将检查GPU是否支持以下项目
- 当前使用的编解码器,配置,级别
- 此外,如果选定了以下项目,也将进行检查
- 10bit 位深度编码
- 无损编码
- 交错编码
- 硬件支持统计ssim/psnr/vmaf
- 支持以下项目的GPU优先
- 支持B帧
- 如果有多个GPU支持1.和2.列出的条件,将选择以下GPU
- 媒体引擎占用率较低的GPU
- 核心占用率较低的GPU
- 架构较新的GPU
- 有更多CUDA core的GPU
选择媒体引擎占用率较低的GPU的目的是希望将多个任务分配给不同的GPU并提高任务的吞吐量。 此外,我们假设较新架构的GPU以及有更多内核的GPU有更高的性能
注意软件会在启动阶段获取媒体引擎和GPU占用率,并且取值过程存在延迟。因此,在有多个GPU且它们都支持当前设定的选项的情况下,若有多个任务同时启动,那么它们可能会选择在同一GPU上运行。
- MIT license.
- 这个程序是基于NVIDA CUDA样本,包括样本代码。 本软件包含NVIDIA公司提供的源代码。
- --vpp-nvvfx 过滤器由 NVIDIA BROADCAST 提供技术支持
- 这个软件依赖于 jitify, ffmpeg, libplacebo, libhdr10plus, libdovi, vmaf, tinyxml2, dtl, libass, ttmath & Caption2Ass. 对于这些许可证,请参阅相应源代码的标题部分和NVEnc_license.txt。
Windows ... VC build
Character code: UTF-8-BOM
Line feed: CRLF
Indent: blank x4