NVEnc 7.41

- ノイズ除去フィルタを追加。(--vpp-denoise-dct)



※NVEnc 6.00から導入方法が変更されていますのでご注意ください。
※Aviutl向けには、Aviutl_NVEnc_7.xx.zip をダウンロードしてください。
ダウンロード>>

NVEncの導入
NVEncCオプション一覧>


スポンサーサイト



コメントの投稿

非公開コメント

追加コマンド枠経由のcropが正常に動作しない?

aviutlでvpp-afs,vpp-nnedi,vpp-yadif指定時に、追加コマンド枠経由で
cropを使用すると、以下の現象が発生したのでご報告します。
発見は7.31使用時ですが、最新の7.41でも同じ現象を確認しました。

なお、インタレ保持でのエンコードは、当方がGTX1660しかもっていない
ので確認できませんでした。等価になるとは思いませんが、aviutl本体で
afsをかける、またはclfilterでnnediをかけた状態でvppのインタレ解除を
「なし」にした場合は所期の動作(指定値通りクロップされる)を確認
しています。

1.左右を同じ値でcrop指定しても、対称にクロップされない。
  クロップ量は左右の指定値の合計になる(これは所期の動作)。

  --crop 180,0,180,0と指定すると、左90,右270のように非対称に
  クロップされる。
  
  目視なので実際の左右のクロップ量は正確には分りません。
  再生画面をキャプチャしたりして見比べる等したのですが、
  指定するクロップ量を左XL,右XRとすると、実際のクロップ量は
  左XL/2,右XR+XL/2のように思われます(これが当たっていると、
  以下の設定に対する結果も順当のように思えます)。
  総クロップ量は左右の指定値の合計となります。

2.以下のように指定すると左右対称にcropされる。

  --crop 360,0,0,0 で 左360,右0ではなく左右180ずつクロップされる。
  (XL/2=360/2=180,XR+XL/2=0,360/2=180)

3.クロップ量XLが偶数、XL/2が奇数となるような値を設定すると、奇数の
  値にクロップされてエンコードがエラーもなく終了してしまう。
  追加コマンド枠経由でも、--cropオプションで奇数の値を明示的に
  指定するとエラーチェックにひっかかるが、奇数×2の場合はエラー
  チェックをすりぬけてしまうような動作をしている。

  --crop 366,0,0,0と指定すると、NVEncCのエラーチェックの
  「クロップ数が偶数」というチェックをすり抜け、(おそらく)左右
  183がクロップされてエンコードされる(目視なので、本当に奇数分
  クロップされているかは不明。ログやMediainfoの結果では、366分
  クロップされているのだけは分かるが、等分でされているかは不明)。

  同様に--crop 270,0,90,0と指定すると、左135、右225でクロップされ、
  エラーチェックに引っかからずに終了する。

   因みに、3の2つのケースはどちらも色が異常になりました。多分
   開始位置が2の倍数になっていないのが悪いんでしょうね。


現象はファイル依存もなく、手順通りですぐに確認できると思います。

以下にvpp-yadifを指定した時のlogから設定部分を切り出したものを転記します。

--crop 180,0,180,0指定時

auo [info]: NVEnc options...
-d 0 -c hevc -u quality --interlace tff --vbr 0 --multipass 2pass-full --vbr-quality 27.00 --qp-init 20:23:25 --lookahead 32 --gop-len auto --bref-mode each --aq --aq-temporal --profile main10 --output-depth 10 --no-mp4opt --vpp-yadif --crop 180,0,180,0 -o hoge,mp4 --sm --parent-pid 00002a80 -i -
auo [info]: Convert yc48 -> p010 [AVX2]
NVEncC (x64) 7.41 (r2681) by rigaya, Jan 22 2024 13:02:15 (VC 1929/Win)
OS Version Windows 10 x64 (19045) [UTF-8]
CPU Intel Core i5-8500 @ 3.00GHz [TB: 3.92GHz] (6C/6T)
GPU #0: NVIDIA GeForce GTX 1660 (1408 cores, 1830 MHz)[PCIe3x16][551.23]
NVENC / CUDA NVENC API 12.1, CUDA 12.4, schedule mode: auto
Input Buffers CUDA, 44 frames
Input Info sm(p010)->p010 [AVX2], 1440x1080, 30000/1001 fps crop(366,0,0,0)
Vpp Filters copyHtoD
cspconv(p010 -> yv12(16bit))
yadif: mode auto
cspconv(yv12(16bit) -> p010)
Output Info H.265/HEVC main10 @ Level auto
1080x1080p 1:1 29.970fps (30000/1001fps)
avwriter: hevc => mp4


--crop 360,0,0,0指定時

auo [info]: NVEnc options...
-d 0 -c hevc -u quality --interlace tff --vbr 0 --multipass 2pass-full --vbr-quality 27.00 --qp-init 20:23:25 --lookahead 32 --gop-len auto --bref-mode each --aq --aq-temporal --profile main10 --output-depth 10 --no-mp4opt --vpp-yadif --crop 360,0,0,0 -o hoge.mp4 --sm --parent-pid 00002a80 -i -
auo [info]: Convert yc48 -> p010 [AVX2]
NVEncC (x64) 7.41 (r2681) by rigaya, Jan 22 2024 13:02:15 (VC 1929/Win)
OS Version Windows 10 x64 (19045) [UTF-8]
CPU Intel Core i5-8500 @ 3.00GHz [TB: 3.92GHz] (6C/6T)
GPU #0: NVIDIA GeForce GTX 1660 (1408 cores, 1830 MHz)[PCIe3x16][551.23]
NVENC / CUDA NVENC API 12.1, CUDA 12.4, schedule mode: auto
Input Buffers CUDA, 44 frames
Input Info sm(p010)->p010 [AVX2], 1440x1080, 30000/1001 fps crop(366,0,0,0)
Vpp Filters copyHtoD
cspconv(p010 -> yv12(16bit))
yadif: mode auto
cspconv(yv12(16bit) -> p010)
Output Info H.265/HEVC main10 @ Level auto
1080x1080p 1:1 29.970fps (30000/1001fps)
avwriter: hevc => mp4


--crop 366,0,0,0指定時

auo [info]: NVEnc options...
-d 0 -c hevc -u quality --interlace tff --vbr 0 --multipass 2pass-full --vbr-quality 27.00 --qp-init 20:23:25 --lookahead 32 --gop-len auto --bref-mode each --aq --aq-temporal --profile main10 --output-depth 10 --no-mp4opt --vpp-yadif --crop 366,0,0,0 -o hoge,mp4 --sm --parent-pid 00002a80 -i -
auo [info]: Convert yc48 -> p010 [AVX2]
NVEncC (x64) 7.41 (r2681) by rigaya, Jan 22 2024 13:02:15 (VC 1929/Win)
OS Version Windows 10 x64 (19045) [UTF-8]
CPU Intel Core i5-8500 @ 3.00GHz [TB: 3.92GHz] (6C/6T)
GPU #0: NVIDIA GeForce GTX 1660 (1408 cores, 1830 MHz)[PCIe3x16][551.23]
NVENC / CUDA NVENC API 12.1, CUDA 12.4, schedule mode: auto
Input Buffers CUDA, 44 frames
Input Info sm(p010)->p010 [AVX2], 1440x1080, 30000/1001 fps crop(366,0,0,0)
Vpp Filters copyHtoD
cspconv(p010 -> yv12(16bit))
yadif: mode auto
cspconv(yv12(16bit) -> p010)
Output Info H.265/HEVC main10 @ Level auto
1074x1080p 1:1 29.970fps (30000/1001fps)
avwriter: hevc => mp4
.
ちなみにコマンドラインで上記の--crop 180,0,180,0指定時と
同等の以下のオプションで直に叩いた場合は、問題なく指定
どおりに左右対称にクロップされました。

NVEncC64.exe -c hevc -u quality --interlace tff --vbr 0 --multipass 2pass-full --vbr-quality 27.00 --qp-init 20:23:25 --lookahead 32 --gop-len auto --bref-mode each --aq --aq-temporal --profile main10 --output-depth 10 --no-mp4opt --vpp-yadif --crop 180,0,180,0 --trim 27502:29300 -o hoge.mp4 -i hoge.ts

今回の現象はaviutl経由ということで、
・直でNVEncCを叩いた時は問題がない
 =NVEncC単独でのcropには問題がないと思われること
・結局のところNVEncの追加コマンドを使わずに
 aviutl本体のクリッピング&リサイズフィルタでクロップして
 しまえば何の支障もなくエンコードできること
等から実運用上は問題ないと言えるのですが、見つけてしまった
ので(^^;)、ひとまずご報告します。
妙なものみつけちゃってすみませんm(_ _)m


Re: 追加コマンド枠経由のcropが正常に動作しない?

詳しくお調べいただいたところ、大変申し訳ないのですが、Aviutlプラグインからのcrop指定には対応しておりません。実装・検証の手間を削減するため、Aviutl本体のクリッピング機能でのクロップ処理を想定していました。そのため、通常の設定欄からは設定できないようにしております。(正直追加コマンド欄は盲点でした…)

ご指摘のように、Aviutl本体のクリッピング機能で代用可能なので、そちらで対応願えないでしょうか。

ゆくゆくはエラー処理を追加するか直すかしたいとは思いますが、一応想定していない処理なので、優先度は低めになってしまうかと思います。

No title

rigaya様
コメント入力で「再度実行」メッセージが出て書き込
みができず、ご返事が遅くなりました。

なるほど、動作保証外でしたか。
今までずっと追加コマンド欄で上下のcropを使って(
使えて?)いたので、動作が確認されているものと
思っていました。
…というか、動作保証云々以前の話で、追加コマンド
欄って、単に書かれたもの丸投げでNVEncCにオプション
追加するだけのものだと思ってました。
そして、各オプションのパラメータやオプション間の
依存性/排他性やチェックはNVEncCにお任せで、
問題があった時はNVEncCがエラー終了するので、その
メッセージがスルーでlog画面に表示されるのだと。
だから今回「あれ?何か違うみたいだな」って思った
こともあって報告した次第です。


ともあれ、cropについてはわたしも優先度は限りなく
低いだろうな~と思ってましたので、いっそ注記のみ
で放置でもいいかも?と思います。

vppフィルタのタブ内にないもので、本体のplug-inと
重複するものと言えば…ひょっとしてロゴ消し
(--vpp-delogo)も追加コマンド欄での動作保証対象外
ですか?
あ、あれは本体にplug-in入れる入れないは自由だから
cropとは扱いが違うかな?
すぐには無理とは思いますが、適当なタイミングで
いいので、ドキュメント等で、追加コマンド欄経由
では動作保証外になるオプション(もしくは逆に動作
保証されているオプション)をコマンド毎に個別に
ではなく一覧で教えていただければ嬉しいです。

…こんな面倒なことお願いしていると、「追加コマ
ンド欄そのものをなくす」という選択肢が出てくる
かもしれませんが、オプションそのものや、その
パラメータのお試しとして使うことがままあるので、
できれば廃止はしないで「追加コマンド欄経由の
動作は基本保証しませんよー」の宣言程度でお願い
します(^^;)

Re: No title

おっしゃる通り、基本的には追加コマンド欄は単に書かれたものをそのままNVEncCにオプション追加するだけです。基本的にAviutlプラグインからの動作チェックは設定画面にあるもののみ行っているので、個々のオプションについての動作チェックは基本的にはしていません。

なので、追加コマンド欄に関しては、「コマンドラインにオプションが追加されること「だけ」」を動作検証しており、個別機能としての検証を行う予定はありません。原則として自由に適当に使ってね状態です。(もともとそういう要望で半分実験用につけたので、なくすことはしないです)

現実的には、入出力系は異常が発生する可能性が高く、音声・字幕系オプションは機能しませんが、それ以外は概ね大丈夫なのかなと思います。

cropに関してはかなり特殊で、Aviutl側での処理を前提にしていたこと(NVEncCに渡す前にcropしたほうが処理量が減るので理屈の上では速度面で有利のため)、さらにplugin経由だと通常とまったく違う処理を通るので、特に問題が発生しやすい状態でした。(個人的にはインタレなしなら動いたことのほうが意外でした…)

vpp-delogoは大丈夫だとは思いますが、私自身は使うときはAviutlのプラグイン側で処理しています。

No title

動画をスマホのながら見用にNVEncで圧縮しているのですが、容量の限界を感じています。
いっそ出力フレームレートを半分の12程度に削減できないかと、オプションを確認してみたのですが、出力フレームのコントロールに対する記述は24fps指定しか見当たりませんでした。

現状ほかのfpsに関しては非対応でしょうか?

Re: No title

他のフレームレートということですが、残念ながら任意のフレームレートへの変換機能はありません。

ただ、一応フレームを間引く機能(--vpp-select-every)はあり、フレームレートを1/2とか1/3とかの1/nにすることは可能ですので今回の用途でしたら活用できるかもしれません。(最近動かしていないので若干不安ですが…)

詳細は下記をご確認ください。
https://github.com/rigaya/NVEnc/blob/master/NVEncC_Options.ja.md#--vpp-select-every-intparam1int

一度お試しいただければと思います。

--profileの指定が効いていない?

hevcにエンコする際、「--profile main10」や「--profile main444 --lossless」と指定しても、YUV420 8bitの動画が出来ます。
--profileの指定が効いてないような気が・・・

--profileの指定が効いていない?

「--profile main444 --lossless」に関しては勘違いだったかもです。
入力ソースにYUV444P16のストリーム指定したらYUV444P10で出力されました。

Re: --profileの指定が効いていない?

10bit出力を行いたい場合、profileの指定だけでなく、--output-depth 10が指定されているかご確認ください。(profileのほうは実は不要で、指定なしでも自動的にmain10になると思います)

Re: --profileの指定が効いていない?

>profileの指定だけでなく、--output-depth 10が指定されているかご確認ください。

了解です。以前はprofileだけで勝手になってたような気がしましたが、記憶違いでしたか。
お手数おかけしました_(..)_

No title

> 以前はprofileだけで勝手になってたような気がしました

以前--output-depthが未実装の頃はおっしゃる通りの挙動でしたが、--output-depthを追加したのでそちらでの切り替えが適切なように思い変更しました。
言われてみるとほかのエンコーダーとは統一できていないかもしれません。
プロフィール

rigaya

Author:rigaya
アニメとか見たり、エンコードしたり。
連絡先: rigaya34589@live.jp
github twitter

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

○Aviutl 出力プラグイン
x264guiEx 3.xx
- x264を使用したH264出力
- x264guiExの導入紹介動画>
- x264guiExの導入
- x264guiExのエラーと対処方法>
- x264.exeはこちら>

x265guiEx
- x265を使用したH.265/HEVC出力
- x265guiExの導入>
- x265.exeはこちら>

QSVEnc + QSVEncC
- QuickSyncVideoによるHWエンコード
- QSVEnc 導入/使用方法>
- QSVEncCオプション一覧>

NVEnc + NVEncC
- NVIDIAのNVEncによるHWエンコード
- NVEnc 導入/使用方法>
- NVEncCオプション一覧>

VCEEnc + VCEEncC
- AMDのVCE/VCNによるHWエンコード
- VCEEnc 導入/使用方法>
- VCEEncCオプション一覧>

svtAV1guiEx
- SVT-AV1によるAV1出力
- svtAV1guiExの導入>
- SVT-AV1単体はこちら>

VVenCguiEx
- VVenCによるVVC出力
- VVenCguiExの導入>

ffmpegOut
- ffmpegを使用した出力
- ffmpegOutの導入>


○Aviutl フィルタプラグイン
自動フィールドシフト (ミラー)
- SSE2~AVX512による高速化版
- オリジナル: aji様

clcufilters 
- OpenCL/CUDAのGPUフィルタ集
- 対応フィルタの一覧等はこちら

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

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

PMD_MT
- SSE2~AVX512による高速化版
- オリジナル: スレ48≫989氏

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

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

○その他
Amatsukaze改造版
- AmatsukazeのAV1対応版

tsreplace
- tsの映像のみを置き換えて圧縮

rkmppenc
- Rockchip系SoCのhwエンコーダ

fawutil
- FAW(FakeAACWave)⇔aac変換
- 二重音声の取り扱いにも対応

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 (ミラー)
SVT-AV1 (ミラー)

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

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

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