NVEnc 5.24

English version of changelog>>

いろいろいただいた要望やコメントをもとに修正と機能追加を実施。

これで年内最後の更新?
・x86版をCUDA11ベースに更新し、VC2019に移行。
これにより、x86版については、NVIDIA グラフィックドライバ 456.81 以降が必要。

CUDA9~10にかけて、なぜかx86ビルドがサポートされなかったため、x86版のためにCUDA8と、これに対応するVC2015を使う必要があり、これまではx64版をVC2019+CUDA10、x86版をVC2015+CUDA8で作成してきた。

これがCUDA11で再びx86ビルドが可能になったのと、いい加減VC2015の環境でコンパイルできるコードを維持するのが辛くなってきたので、x86版をVC2019+CUDA11、x64版はVC2019+CUDA10で作成するようにした。

x64版をCUDA10のままにするのは、特にCUDA11で使いたい機能がないのと、なるべく古いドライバでも動くようにするため。

正直、x86版はもういらないじゃないかという気もするけど、一応今後もしばらくはビルドだけしていく予定。

・timecodeの出力を追加。(--timecode)
Amatzukazeで、vpp-afsとvpp-mpdecimateを併用すると音ずれするという問題への対処。

Amatzukazeを実際に動かしてみてログをみて勉強してみたのだけど、どうもNVEncC64.exeからraw出力+timecode読み込みでvfrを実現しているみたいでmp4/mkvのコンテナは活用していないみたい。このとき、vpp-afsのtimecode出力だと、vpp-afsの後で処理されるvpp-mpdecimateの処理結果が反映されないtimecodeが出てしまい音ずれが生じてしまっていた。

そこで、これらをひっくるめた最終的なtimecode出力オプションを用意すればよさそうということで、今回このオプションを追加してみた。

・--check-featureでLevelの値を表示するように。
要望のあった表示の改善。

・--vpp-colorspace hdr2sdr=bt2390の実装見直し。
前回実装したhdr2sdr=bt2390の処理が誤っているのではないかという指摘があったので、再検証してみた。どうも処理時の規格化の有無について誤解していたようだったので、これを改善した。

・--vpp-colorspace hdr2sdrにdesaturation curveの実装。
hdr2sdr=bt2390の修正を行う中で、mpvのdesaturation curveという機能があったほうがよさそうということで機能追加。desat_base, desat_strength, desat_expを追加。

・libvmaf v2.0.0+ に更新。
最近更新されたvmaf 2.0.0への対応。従来(v1.3.15)と比べわりと高速化。どうも計算処理をこれまでの浮動小数点演算から固定小数点演算に変更し、AVX2/AVX512の整数SIMDを活用することで高速化しているらしい。それでもCPU処理なのでまだNVEncのエンコードには追いつかない模様で、かなりエンコードが遅くなるので、依然として評価用。

・YUV444でnppを使用したリサイズを行うとエラーで落ちてしまうのを修正。
指摘のあった問題の修正。



ダウンロード>>
ダウンロード (ミラー) >>

NVEncCのオプションについてはこちら。
NVEncCオプション一覧>

ソースはこちら>>


スポンサーサイト



コメントの投稿

非公開コメント

No title

字幕のズレが治りました!
さすがの一言です!ありがとうございました!!

Re: No title

字幕の問題、ご指摘ありがとうございました。

無事字幕のズレが治ったとのこと、安心しました!

No title

いつもお世話になっております。

同じNVEncを使った出力なのですが。
Simple x264/x265 Launcherを使う場合は、GPUの使用率が60%くらいで、FHDは350-400fps/sで安定しています。

AVITUALからNVEncを使う場合は、GPU使用率が20%くらいしか無くて、エンコード速度が100-150fps/sしかでません。


透過性ロゴを除去したくて、できれば使い慣れてきたAVITUALを使いたいのですが、高速化の方法がわからなくて、困っています。


この前、確かここでGPUとCPUのデータ交換が遅いせいで、GPUが遊んでるという内容の記事で、高速化する方法が書いてあったような気がするのですが、記事がどうも見つからなくなって、どうか助けていただけないでしょうか。

お願いいたします。

Re: No title

NVEncを使った出力についてですが、Aviutlから出力する場合、CPUでデコードし、その後比較的重い内部フォーマットを引き回すので、かなりCPUとCPUのメモリ帯域に速度が依存し、またどうしても限界があります。

Aviutl+NVEncを使って1080pのtsのエンコードを行い、私の考えうる限り速度が出るように設定して、以下のような感じです。

Ryzen7 3700X(8コア) + DDR4-3600,2ch + GTX1080 → 最大140fps程度 (VE=20%程度)
i9 7980XE(18コア) + DDR4-3600,4ch + RTX2070 → 最大280fps程度 (VE=75%程度)

※なお、GPU使用率よりはVE(Video Engine)使用率を参考にしてください。

なので、環境次第ですが150fpsいっていればよいほうかもしれないです。

AviutlでNVEnc出力を高速化する場合の注意点は以下の通りです。

・lwinput.auiのようなスレッド並列効果の高い入力プラグインで"直接"読み込む。

・フィルタは最低限とする。

・Aviutl「システムの設定」の画像処理のスレッド数は「0(=自動)」あるいはシステムの最大スレッド数とする。

一度、ご確認いただければと思います。

No title

ご丁寧な回答ありがとうございます!大変良くわかりました。

今1080tiを使っていますが、ベンチマークだけ見ると、RXT
2070とそれほど差はないようですが、rigayaさんが出してくれたデータを見ると結構違いますね。

CPUの性能の差でしょうか?

今4Kのエンコード性能をアップグレードしたいのですが、CPU(i7-7800X)とGPU(1080ti)のどちらか一つだけ変えるのだとしたら、どちらがよいのでしょうか?

GPUの場合は、3070か3080tiを考えていたが、rigayaさんの結果を見たら2070でもありのような気がしてきました。

コスパ的にどれが良いとお考えでしょうか?

No title

度々失礼なんですが。4KのエンコードはAVITUALを介さずに、コマンドラインからNCEncを使おうと考えています。

となると、やはりアップグレードはCPUよりGPUにしたほうが良いのでしょうか?

それと、実は1080tiは2枚持っています。
GPU新調するより、2枚挿しもありでしょうか?
3090も発売されたようで、早いうち2枚とも売って、GPUを新調したほうが良いのでしょうか。

質問ばかりで申し訳ありません。

No title

わたしの結果の違いは、GPUの差というよりはCPUとCPUのメモリ帯域の差が出ていると思います。

Aviutlから使う場合に限っては、CPUとメモリの影響が出やすいです。ただ、i7-7800Xもメモリは4chなので、CPUの差でしょうか…?

> 4KのエンコードはAVITUALを介さずに、コマンドラインからNCEncを使おうと考えています。
その場合はCPUの影響はかなり小さくなるので、CPUを強化してもエンコード速度にはあまり効かないと思います。

また、RTX2xxx系とGTX1xxx系の差はどちらかというと高速化よりは画質の向上に振られている印象です。下記でGTX1060とRTX2070を比べているので参考にしていただければと思います。。
https://rigaya34589.blog.fc2.com/blog-entry-1232.html

残念ながら私がRTX3xxx系を持っていないので、RTX2xxx系と比べて速くなるかはわかりません。申し訳ありません。

> GPU 2枚挿し
残念ながら、GPU2枚挿しをしてもエンコード速度が速くなることはないです。もっとも、同時に並行して複数エンコードする場合には効果があるかもしれません。

No title

ご丁寧にありがとうございます!

少し調べたところ、NVEncはTuring世代以降Bフレームもサポートされるようになったようですね。

やはり早いうち新しいグラボを購入したほうがよさそうです。値段は高騰中なのですが(;^_^A

いろいろとありがとうございました。
プロフィール

rigaya

Author:rigaya
アニメとか見たり、エンコードしたり。
連絡先(@を半角にしてください!)
rigaya34589@live.jp
github

最新記事
最新コメント
カテゴリ
月別アーカイブ
カウンター
検索フォーム
いろいろ
公開中のAviutlプラグインとかのダウンロード

○Aviutlプラグイン
x264guiEx 2.xx (ミラー)
- x264を使用したH264出力
- x264guiExの導入>
- x264.exeはこちら>

x265guiEx (ミラー)
- x265を使用したH.265/HEVC出力
- x265.exeはこちら>

QSVEnc + QSVEncC (ミラー)
- QuickSyncVideoによるH264出力
- QSVEncCはコマンドライン版
- QSVEncC 導入/使用方法>
- QSVEncCオプション一覧>

NVEnc + NVEncC (ミラー)
- NVIDIAのNVEncによるH264出力
- NVEncCオプション一覧>

VCEEnc + VCEEncC (ミラー)
- AMDのVCEによるH.264出力
- VCEEncCオプション一覧>

svtAV1guiEx (ミラー)
- SVT-AV1によるAV1出力

ffmpegOut (ミラー)
- ffmpeg/avconvを使用した出力

自動フィールドシフト (ミラー)
- SSE2~AVX2による高速化版
- オリジナル: aji様

エッジレベル調整MT (ミラー)
- エッジレベル調整の並列化/高速化
- SSE2~AVX対応
- オリジナル: まじぽか太郎様

バンディング低減MT (ミラー)
- SSE2~AVX2による高速化版
- オリジナル: まじぽか太郎様

PMD_MT (ミラー)
- SSE2~FMA3による高速化版
- オリジナル: スレ48≫989氏

透過性ロゴ (ミラー)
- SSE2~FMA3によるSIMD版
- オリジナル: MakKi氏

AviutlColor (ミラー)
- BT.2020nc向け色変換プラグイン
- BT.709/BT.601向けも同梱

○その他
x264afs (ミラー)
- x264のafs対応版

aui_indexer (ミラー使い方>)
- lsmashinput.aui/m2v.auiの
 インデックス事前・一括生成

auc_export (ミラー使い方>)
- Aviutl Controlの
 エクスポートプラグイン版
 エクスポートをコマンドから

aup_reseter (ミラー)
- aupプロジェクトファイルの
 終了フラグを一括リセット

CheckBitrate (ミラー, 使い方, ソース)
- ビットレート分布の分析(HEVC対応)

チャプター変換 (ミラー使い方>)
- nero/appleチャプター形式変換

エッジレベル調整 (avisynth)
- Avisynth用エッジレベル調整

メモリ・キャッシュ速度測定
- スレッド数を変えて測定

○ビルドしたものとか
L-SMASH (ミラー)
x264 (ミラー)
x265 (ミラー)

○その他
サンプル動画
その他

○読みもの (ミラー)
Aviutl/x264guiExの色変換
動画関連ダウンロードリンク集
簡易インストーラの概要

○更新停止・公開終了
改造版x264gui
x264guiEx 0.xx
RSSリンクの表示
リンク
QRコード
QR