diff --git a/Build.cn.md b/Build.cn.md new file mode 100644 index 00000000..dc2e34ea --- /dev/null +++ b/Build.cn.md @@ -0,0 +1,49 @@ + +# 如何建立NVEnc +by rigaya + +## 0. 环境需求 +要构建NVEnc,需要以下组件。 + +- Visual Studio 2015 + CUDA 8.0 (x86) +- Visual Studio 2015/2017/2019 + CUDA 10.2 (x64) +- yasm +- Avisynth SDK +- VapourSynth SDK + +请将yasm设置为您的环境路径。 + +使用sdk安装Avisynth+和VapourSynth。 + +然后,Avisynth+ SDK 的 "avisynth_c.h" 和VapourSynth SDK 的 "VapourSynth.h" 应被添加到 Visual Studio 的包含路径中。 + +这些包括路径可以通过环境变量“AVISYNTH_SDK”和“VAPOURSYNTH_SDK”来传递。 + +使用默认安装,环境变量可以设置如下。 +```Batchfile +setx AVISYNTH_SDK "C:\Program Files (x86)\AviSynth+\FilterSDK" +setx VAPOURSYNTH_SDK "C:\Program Files (x86)\VapourSynth\sdk" +``` + +您还需要Caption2Ass_PCR的源代码。 + +```Batchfile +git clone https://github.com/maki-rxrz/Caption2Ass_PCR +setx CAPTION2ASS_SRC Caption2Ass_PCR /src +``` + +## 1. 下载源代码 + +```Batchfile +git clone https://github.com/rigaya/NVEnc --recursive +``` + +## 2. 构建 NVEncC.exe / NVEnc.auo + +最后,打开 NVEnc.sln,然后开始使用 Visual Studio 构建 NVEnc。 + +| | For Debug build | For Release build | +|:---------------------|:------|:--------| +|NVEncC(64).exe | DebugStatic | RelStatic | +|NVEnc.auo (win32 only) | Debug | Release | +|cufilters.auf (win32 only) | DebugFilters | RelFilters | diff --git a/Build.en.md b/Build.en.md index 36d4ccf6..fa294a76 100644 --- a/Build.en.md +++ b/Build.en.md @@ -6,7 +6,7 @@ by rigaya To build NVEnc, components below are required. - Visual Studio 2015 + CUDA 8.0 (x86) -- Visual Studio 2015/2017/2019 + CUDA 10.1 (x64) +- Visual Studio 2015/2017/2019 + CUDA 10.2 (x64) - yasm - Avisynth SDK - VapourSynth SDK diff --git a/Build.ja.md b/Build.ja.md index afb70087..3934e8b8 100644 --- a/Build.ja.md +++ b/Build.ja.md @@ -6,7 +6,7 @@ by rigaya ビルドには、下記のものが必要です。 - Visual Studio 2015 + CUDA 8.0 (x86) -- Visual Studio 2015/2017/2019 + CUDA 10.1 (x64) +- Visual Studio 2015/2017/2019 + CUDA 10.2 (x64) - yasm - Avisynth+ SDK - VapourSynth SDK diff --git a/Readme.cn.md b/Readme.cn.md new file mode 100644 index 00000000..524ff832 --- /dev/null +++ b/Readme.cn.md @@ -0,0 +1,153 @@ + +# NVEnc +by rigaya + +**[日本語版はこちら>>](./Readme.ja.md)** + +[![Build status](https://ci.appveyor.com/api/projects/status/dmlkxw4rbrby0oi9/branch/master?svg=true)](https://ci.appveyor.com/project/rigaya/nvenc/branch/master) + +本软件旨在研究NVIDIA的HW编码器(NVENC)的性能和图像质量。 +所开发的软件有两种类型,一种是独立运行的命令行版本,另一种是输出插件 [Aviutl](http://spring-fragrance.mints.ne.jp/aviutl/). + +- NVEncC.exe ... 支持代码转换的命令行版本。 +- NVEnc.auo ... [Aviutl](http://spring-fragrance.mints.ne.jp/aviutl/) 的输出插件。 + +## 下载 & update history +[rigayaの日記兼メモ帳>>](http://rigaya34589.blog135.fc2.com/blog-category-17.html) + +## 系统需求 +Windows 7, 8, 8.1, 10 (x86 / x64) +Aviutl 0.99g4 or later (NVEnc.auo) +支持NVENC的硬件 + NVIDIA GPU GeForce Kepler gen或更新(GT / GTX 6xx或更新) + ※ 由于GT 63x, 62x等是费米代的重命名,他们不能运行NVEnc。 + +| NVEnc | 所需图形驱动程序版本 | +|:-------------- |:--------------------------------- | +| NVEnc 0.00 or later | NVIDIA graphics driver 334.89 or later | +| NVEnc 1.00 or later | NVIDIA graphics driver 347.09 or later | +| NVEnc 2.00 or later | NVIDIA graphics driver 358 or later | +| NVEnc 2.08 or later | NVIDIA graphics driver 368.69 or later | +| NVEnc 3.02 or later | NVIDIA graphics driver 369.30 or later | +| NVEnc 3.08 or later | NVIDIA graphics driver 378.66 or later | +| NVEnc 4.00 or later | NVIDIA graphics driver 390.77 or later | +| NVEnc 4.31 or later | NVIDIA graphics driver 418.81 or later | +| NVEnc 4.51 or later | NVIDIA graphics driver 436.15 or later | + +## NVEncC的使用和选项 +[选项列表和详细的NVEncC](./NVEncC_Options.en.md) + +## 支持的编码特性的示例 +check-features的结果,驱动程序返回的功能列表。可能取决于驱动程序版本。 + +| GPU Gen | GPU Name | +|:---|:---| +| Kepler | [GTX660Ti](./GPUFeatures/gtx660ti.txt) | +| Maxwell | [GTX970](./GPUFeatures/gtx970.txt) | +| Pascal | [GTX1080](./GPUFeatures/gtx1080.txt), [GTX1070](./GPUFeatures/gtx1070.txt), [GTX1060](./GPUFeatures/gtx1060.txt) | +| Volta | [GTX1650](./GPUFeatures/gtx1650.txt) | +| Turing | [RTX2070](./GPUFeatures/rtx2070.txt), [RTX2060](./GPUFeatures/rtx2060.txt), [GTX1660Ti](./GPUFeatures/gtx1660ti.txt) | + +## 使用NVEnc的注意事项 +本软件是“按原样”提供的,没有任何形式的保证。 + +NVEnc的输出可能不包括max_dec_frame_buffering字段, +这可能会在某些回放环境中引起问题。 + +## Main usable functions +### Common to NVEnc / NVEncC +- Encoding using NVENC + - H.264 / AVC + - YUV420 / YUV444 + - H.265 / HEVC (2nd Gen Maxwell or later) + - YUV420 / YUV444 + - 10 bits +- Each encode mode of NVENC + - CQP (fixed quantization) + - CBR (Constant bitrate) + - CBRHQ (Constant bitrate, high quality) + - VBR (Variable bitrate) + - VBRHQ (Variable bitrate, high quality) +- Interlaced encoding (by PAFF) +- Lossless output (YUV 420 / YUV 444) +- supports setting of codec profile & level, SAR, colormatrix, maxbitrate, GOP len, etc... + +### NVEncC +- Supports cuvid decoding + - MPEG1 + - MPEG2 + - H.264 / AVC + - HEVC (10 bit / 12bitdepth with YUV444 support) + - VP9 +- Supports various formats such as avs, vpy, y4m, and raw +- Supports demux/muxing using libavformat +- Supports decode using libavcodec +- High performance filtering (VPP, Video Pre-Processing) + - cuvid built-in hw processing + - resize + - deinterlace (normal / bob) + - GPU filtering by CUDA + - rff (apply rff flag) + - deinterlacer + - afs (Automatic field shift) + - nnedi + - yadif + - colorspace conversion (x64 version only) + - hdr2sdr + - delogo + - subburn + - resize + - bilinear + - spline16, spline36, spline64 + - lanczos2, lanczos3, lanczos4 + - various algorithms by npp library are available (x64 version only) + - padding + - select-every + - deband + - noise reduction + - knn (K-nearest neighbor) + - pmd (modified pmd method) + - gauss (npp library, x64 version only) + - edge / detail enhancement + - unsharp + - edgelevel (edge ​​level adjustment) + +### NVEnc.auo (Aviutl plugin) +- Audio encoding +- Mux audio and chapter +- afs (Automatic field shift) support + +### cufilters.auf (Aviutl plugin) +- supported filters + - nnedi + - resize + - noise reduction + - knn (K-nearest neighbor) + - pmd (modified pmd method) + - edge / detail enhancement + - unsharp + - edgelevel (edge ​​level adjustment) + - deband + +### NVEnc 源码 +- MIT license. +- 这个程序是基于NVIDA CUDA样本,包括样本代码。 + 本软件包含NVIDIA公司提供的源代码。 +- 这个软件依赖于 + [jitify](https://github.com/NVIDIA/jitify), + [ffmpeg](https://ffmpeg.org/), + [tinyxml2](http://www.grinninglizard.com/tinyxml2/), + [dtl](https://github.com/cubicdaiya/dtl), + [libass](https://github.com/libass/libass), + [ttmath](http://www.ttmath.org/) & + [Caption2Ass](https://github.com/maki-rxrz/Caption2Ass_PCR). + 对于这些许可证,请参阅相应源代码的标题部分和NVEnc_license.txt。 + +- [如何构建](./Build.cn.md) + +### 关于源代码 +Windows ... VC build + +Character code: UTF-8-BOM +Line feed: CRLF +Indent: blank x4 \ No newline at end of file diff --git a/Readme.md b/Readme.md index 84a7f3ba..e65bf677 100644 --- a/Readme.md +++ b/Readme.md @@ -3,6 +3,7 @@ by rigaya **[日本語版はこちら>>](./Readme.ja.md)** +**[简体中文版本>>](./Readme.cn.md)** [![Build status](https://ci.appveyor.com/api/projects/status/dmlkxw4rbrby0oi9/branch/master?svg=true)](https://ci.appveyor.com/project/rigaya/nvenc/branch/master) diff --git a/cudaver.props b/cudaver.props index c1a49438..ad0b2afb 100644 --- a/cudaver.props +++ b/cudaver.props @@ -43,6 +43,13 @@ compute_30,compute_30;compute_50,compute_50;compute_75,compute_75 nvrtc64_101_0.dll + + 10 + 2 + $(CUDA_MAJOR_VER).$(CUDA_MINOR_VER) + compute_30,compute_30;compute_50,compute_50;compute_75,compute_75 + nvrtc64_102_0.dll +