NVENCによる高速エンコードの性能実験
See the codeby rigaya
This software is meant to investigate performance and image quality of HW encoder (NVENC) of NVIDIA. There are 2 types of software developed, one is command line version that runs independently, and the nother is a output plug-in of Aviutl.
rigayaの日記兼メモ帳>>
github releases
Install instructions for Windows and Linux
Build instructions for Windows and Linux
Windows 10/11 (x86 / x64)
Linux (x64/aarch64)
AviUtl 1.00/1.10 (NVEnc.auo)
AviUtl 2.00 beta19 or later (NVEnc.auo2)
Hardware which supports NVENC
NVIDIA GPU GeForce Late Kepler gen or later (GK110, GK208, GK210 or later)
※ Since GT 63x, 62x etc. are renames of the Fermi generation, they cannot run NVEnc.
NVIDIA graphics driver 452.39 or later
Option list and details of NVEncC
Result of --check-features, a feature list returned from the driver. May depend on the driver version.
| 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, Tesla T4G @ aarch64 |
| Ampere | RTX3090, RTX3080, RTX3050Ti | |
| Ada Lovelace | RTX4090, RTX4080 | |
| Blackwell | RTX5090, RTX5070 Ti |
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND.
Supports cuvid decoding
Supports various formats such as avs, vpy, y4m, and raw
Supports demux/muxing using libavformat
Supports decode using libavcodec
Parallel encoding supporting multi GPU
Calculation of ssim/psnr/vmaf/ssimulacra2/butteraugli/cvvdp of the encode
VPP (Video Pre-Processing) filters
| Category | Filters |
|---|---|
| Deinterlace | deinterlace (CUVID), afs, bwdif, yadif, nnedi, rtgmc, kfm, decomb, onnx-deint |
| Inverse Telecine / Decimation | rff, ivtc, decimate, mpdecimate, select-every |
| Noise Reduction | knn, pmd, nlmeans, hqdn3d, smooth, denoise-dct, fft3d, msmooth, degrain, convolution3d, gauss, nvvfx-denoise |
| Resize | resize (various algorithms, npp, nvvfx, ngx-vsr, libplacebo), descale |
| Edge / Detail Enhancement | unsharp, edgelevel, warpsharp, maa, cas, msharpen, detailsharpen |
| Dehalo / Deringing | dehalo, finedehalo, hqdering, vinverse |
| Color Adjustment | tweak, curves, softlight, chromashift, colorfix |
| Color Space / HDR | colorspace, libplacebo-tonemapping, ngx-truehdr |
| Debanding | deband, libplacebo-deband |
| Frame Interpolation | fruc, rife-ov |
| Other | delogo, subburn, pad, overlay, rotate, transform, stab, deflicker, deblock, libplacebo-shader, onnx, anime4k-shader |

NVEncC will automatically select a GPU depending on the options used, when there are multiple GPUs available which support NVENC. --device option can be used to specify on which GPU to run manually.
The purpose of selecting GPU with lower VE/GPU ulitization is to assign tasks to mulitple GPUs and improve the throughput of the tasks. Also, newer Gen GPU and GPU with more cores are assumed to have improved performance.
Please note that VE and GPU ulitization are check at the initialization pahse of the app, and there are delays in values taken. Therefore, it is likely that the multiple tasks started at the same time to run on the same GPU, and divided into multiple GPUs, even if the options are supported in every GPUs.
| NVEnc | Supported NVENC API | Required graphics driver version |
|---|---|---|
| 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 8.00 or later | 10.0 - 13.0 | NVIDIA graphics driver 452.39 or later |
| NVEnc 9.31 or later | 10.0 - 13.1 | NVIDIA graphics driver 452.39 or later |
| Supported NVENC API | Required graphics driver version |
|---|---|
| 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 |
| 13.0 | NVIDIA graphics driver (Win 570.00 / Linux 570.00) or later |
| 13.1 | NVIDIA graphics driver (Win 610.00 / Linux 610.00) or later |
| CUDA version | Required graphics driver version |
|---|---|
| 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 |
| 11.8 | NVIDIA graphics driver (Win 452.39 / Linux 450.80.02) or later |

Windows ... VC build
Character code: UTF-8-BOM
Line feed: CRLF
Indent: blank x4
64 followers · starred Jun 2022
153 followers · starred May 2022
13 followers · starred Oct 2017
C++
74.9%
Cuda
19.2%
C
5.1%
NVENCによる高速エンコードの性能実験
See the codeby rigaya
This software is meant to investigate performance and image quality of HW encoder (NVENC) of NVIDIA. There are 2 types of software developed, one is command line version that runs independently, and the nother is a output plug-in of Aviutl.
rigayaの日記兼メモ帳>>
github releases
Install instructions for Windows and Linux
Build instructions for Windows and Linux
Windows 10/11 (x86 / x64)
Linux (x64/aarch64)
AviUtl 1.00/1.10 (NVEnc.auo)
AviUtl 2.00 beta19 or later (NVEnc.auo2)
Hardware which supports NVENC
NVIDIA GPU GeForce Late Kepler gen or later (GK110, GK208, GK210 or later)
※ Since GT 63x, 62x etc. are renames of the Fermi generation, they cannot run NVEnc.
NVIDIA graphics driver 452.39 or later
Option list and details of NVEncC
Result of --check-features, a feature list returned from the driver. May depend on the driver version.
| 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, Tesla T4G @ aarch64 |
| Ampere | RTX3090, RTX3080, RTX3050Ti | |
| Ada Lovelace | RTX4090, RTX4080 | |
| Blackwell | RTX5090, RTX5070 Ti |
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND.
Supports cuvid decoding
Supports various formats such as avs, vpy, y4m, and raw
Supports demux/muxing using libavformat
Supports decode using libavcodec
Parallel encoding supporting multi GPU
Calculation of ssim/psnr/vmaf/ssimulacra2/butteraugli/cvvdp of the encode
VPP (Video Pre-Processing) filters
| Category | Filters |
|---|---|
| Deinterlace | deinterlace (CUVID), afs, bwdif, yadif, nnedi, rtgmc, kfm, decomb, onnx-deint |
| Inverse Telecine / Decimation | rff, ivtc, decimate, mpdecimate, select-every |
| Noise Reduction | knn, pmd, nlmeans, hqdn3d, smooth, denoise-dct, fft3d, msmooth, degrain, convolution3d, gauss, nvvfx-denoise |
| Resize | resize (various algorithms, npp, nvvfx, ngx-vsr, libplacebo), descale |
| Edge / Detail Enhancement | unsharp, edgelevel, warpsharp, maa, cas, msharpen, detailsharpen |
| Dehalo / Deringing | dehalo, finedehalo, hqdering, vinverse |
| Color Adjustment | tweak, curves, softlight, chromashift, colorfix |
| Color Space / HDR | colorspace, libplacebo-tonemapping, ngx-truehdr |
| Debanding | deband, libplacebo-deband |
| Frame Interpolation | fruc, rife-ov |
| Other | delogo, subburn, pad, overlay, rotate, transform, stab, deflicker, deblock, libplacebo-shader, onnx, anime4k-shader |

NVEncC will automatically select a GPU depending on the options used, when there are multiple GPUs available which support NVENC. --device option can be used to specify on which GPU to run manually.
The purpose of selecting GPU with lower VE/GPU ulitization is to assign tasks to mulitple GPUs and improve the throughput of the tasks. Also, newer Gen GPU and GPU with more cores are assumed to have improved performance.
Please note that VE and GPU ulitization are check at the initialization pahse of the app, and there are delays in values taken. Therefore, it is likely that the multiple tasks started at the same time to run on the same GPU, and divided into multiple GPUs, even if the options are supported in every GPUs.
| NVEnc | Supported NVENC API | Required graphics driver version |
|---|---|---|
| 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 8.00 or later | 10.0 - 13.0 | NVIDIA graphics driver 452.39 or later |
| NVEnc 9.31 or later | 10.0 - 13.1 | NVIDIA graphics driver 452.39 or later |
| Supported NVENC API | Required graphics driver version |
|---|---|
| 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 |
| 13.0 | NVIDIA graphics driver (Win 570.00 / Linux 570.00) or later |
| 13.1 | NVIDIA graphics driver (Win 610.00 / Linux 610.00) or later |
| CUDA version | Required graphics driver version |
|---|---|
| 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 |
| 11.8 | NVIDIA graphics driver (Win 452.39 / Linux 450.80.02) or later |

Windows ... VC build
Character code: UTF-8-BOM
Line feed: CRLF
Indent: blank x4
64 followers · starred Jun 2022
153 followers · starred May 2022
13 followers · starred Oct 2017
C++
74.9%
Cuda
19.2%
C
5.1%