NVEncに自動フィールドシフトを追加 (NVEnc 3.18)
NVEncにGPU版自動フィールドシフトを追加、そのほかrff対応、インタレ維持フィルタリングなど、インタレ関係の機能強化。
このあたりの機能追加は、去年あたりから更新してきたNVEnc 3.xx系でやりたかったことのうち最も大きなもので、一時期あまり進まなかったりしたものの、やっとたどり着けた感じ。まあ、どの程度需要があるのかよくわからないけど…。
ちなみに、NVEncCからvpp-afs使うと、結構高速に処理できて、fullHDに対してGTX1060でも調子良ければ360fpsぐらい出ている。NVEnc.auoから使うとあまり速度が出ません…。

NVEnc 3.18の変更点
・自動フィールドシフトを追加。(vpp-afs)
・インタレの場合に各種フィルタがフィールドを維持したまま処理できるように。
・rffを適切に反映し、フィールドに展開する機能を追加。(vpp-rff)
・高ビット深度のyuv420からp010に変換するときに異常終了することがあるのを修正。
NVEnc 3.19の変更点
[NVEnc.auo]
HEVCエンコ時にフレームタイプが設定できるように。
詳細
・インタレの場合に各種フィルタがフィールドを維持したまま処理できるように。
vpp-resize, vpp-knn, vpp-pmd, vpp-gauss, vpp-unsharpが対象。これでインタレ保持リサイズなどが可能になった。
vpp-delogo, vpp-debandはもとから対応済みのため、ひとまずすべてのフィルタがインタレを考慮して処理できるようになった。
フィールド分離を行って、フィールドごとにフィルタ処理を行い、再度フレームに戻す、という処理をフィルタごとに行っている。
・rffを適切に反映し、フィールドに展開する機能を追加。(vpp-rff)
avcuvid読み込み時、rff=1の場合専用。またtrim, vpp-deinterlaceとは併用できない。
rffフラグがある入力ファイルの場合、これまではそのままでは音ズレしてしまうため、--avsync forcecfrなどを使う必要があった。ただ、--avsync forcecfrは、音声と同期をとるために単にフレームの水増しを行っているだけなので、rffフラグ本来の効果が得られていなかった。
--vpp-rffを使うと、rff本来の処理である、「最初のフィールドを繰り返す」処理が適切に行われ、特に--avsync forcecfrなどを使用しなくても音ズレが生じなくなると思う。
一応手元では問題ないけど、手元にはrffのサンプルがあまりないので、もしかすると考慮できていない場合が存在するかもしれない…。
・自動フィールドシフトを追加。(vpp-afs)
インタレ解除をする自動フィールドシフトを追加。基本的にはAviutlの自動フィールドシフトをCUDAでGPUに移植したもの。パラメータ等もそのまま使えるようにした。
ただ、やはり画素の精度が異なるのと(YC48 vs YUV420 8bit)、GPUで処理するため若干処理方法が変わっているため、全く同じ結果にはならなくなっている。具体的には、同じ設定値でCPU版と比べると若干だけど縞が検出されにくくなっている。
また、一部機能制限があって、現状Aviutl版にある以下の機能には非対応。
- 解除Lv5
- シーンチェンジ検出(解除Lv1)
- 編集モード
- ログ保存
- ログ再生
- YUY2補間
- シフト・解除なし
パラメータ ... 基本的にはAviutl版のパラメータをそのまま使用する。
top=<int> (上)
bottom=<int> (下)
left=<int> (左)
right=<int> (右)
判定に使用する領域から除外する範囲の指定。
method_switch=<int> (切替点)
切替点が大きいほど、新方式の判定になりやすい(0で常に新方式判定off)
coeff_shift=<int> (判定比)
判定比率が小さいほど、フィールドをシフトしにくい(0で常にシフト判定off)
thre_shift=<int> (縞(シフト))
シフトの判定に使用する縞検出の閾値。値が小さいほど、縞と判定されやすくなる。
thre_deint=<int> (縞(解除))
縞解除用の縞検出の閾値。値が小さいほど、縞と判定されやすくなる。
thre_motion_y=<int> (Y動き)
thre_motion_c=<int> (C動き)
動き検出の閾値。値が小さいほど、動きと判定されやすくなる。
level=<int> (解除Lv)
縞解除の方法の選択。
shift=<bool> (フィールドシフト)
フィールドシフトを行う。
drop=<bool> (間引き)
フィールドシフトを行うことで生じた表示時間の1フレームより短いフレームを間引く。
smooth=<bool> (スムージング)
24fps=<bool> (24fps化)
24fps化を強制する、映画・アニメ用のオプション。フィールドシフトと間引きをonにする必要がある。
tune=<bool> (調整モード)
縞模様と動きの判定結果の確認用。
rff=<bool>
入力フレームにrffフラグ付きのプログレフレームがある場合、これをチェックしてインタレ解除処理に反映する。rffフラグ付きのプログレフレームについては、フィールドシフトを行わずに、フレームの表示時間の修正のみを行う。
log=<bool>
フレームごとの判定状況等をcsvファイルで出力。(デバッグ用のログ出力)
一括設定用オプション
たくさんあるパラメータを一括指定するためのオプション。一括設定用オプションは必ず先に読み込まれ、個別オプションの指定があればそちらで上書きされる。
ini=<string> [NVEncCのみ]
指定したini設定ファイルから設定を読み込む。この設定ファイルはAviutl版自動フィールドシフト 高速化 7.5a+20以降のafs.aufで出力できるものを使用する。
iniファイルの例
preset=<string> [NVEncCのみ]
以下の表のプリセットをロード。
ダウンロード>>
ダウンロード (ミラー) >>
OneDriveの調子がいまいちの時はミラー(GDrive)からどうぞ。同じものです。
ソースはこちら>>
このあたりの機能追加は、去年あたりから更新してきたNVEnc 3.xx系でやりたかったことのうち最も大きなもので、一時期あまり進まなかったりしたものの、やっとたどり着けた感じ。まあ、どの程度需要があるのかよくわからないけど…。
ちなみに、NVEncCからvpp-afs使うと、結構高速に処理できて、fullHDに対してGTX1060でも調子良ければ360fpsぐらい出ている。NVEnc.auoから使うとあまり速度が出ません…。

NVEnc 3.18の変更点
・自動フィールドシフトを追加。(vpp-afs)
・インタレの場合に各種フィルタがフィールドを維持したまま処理できるように。
・rffを適切に反映し、フィールドに展開する機能を追加。(vpp-rff)
・高ビット深度のyuv420からp010に変換するときに異常終了することがあるのを修正。
NVEnc 3.19の変更点
[NVEnc.auo]
HEVCエンコ時にフレームタイプが設定できるように。
詳細
・インタレの場合に各種フィルタがフィールドを維持したまま処理できるように。
vpp-resize, vpp-knn, vpp-pmd, vpp-gauss, vpp-unsharpが対象。これでインタレ保持リサイズなどが可能になった。
vpp-delogo, vpp-debandはもとから対応済みのため、ひとまずすべてのフィルタがインタレを考慮して処理できるようになった。
フィールド分離を行って、フィールドごとにフィルタ処理を行い、再度フレームに戻す、という処理をフィルタごとに行っている。
・rffを適切に反映し、フィールドに展開する機能を追加。(vpp-rff)
avcuvid読み込み時、rff=1の場合専用。またtrim, vpp-deinterlaceとは併用できない。
rffフラグがある入力ファイルの場合、これまではそのままでは音ズレしてしまうため、--avsync forcecfrなどを使う必要があった。ただ、--avsync forcecfrは、音声と同期をとるために単にフレームの水増しを行っているだけなので、rffフラグ本来の効果が得られていなかった。
--vpp-rffを使うと、rff本来の処理である、「最初のフィールドを繰り返す」処理が適切に行われ、特に--avsync forcecfrなどを使用しなくても音ズレが生じなくなると思う。
一応手元では問題ないけど、手元にはrffのサンプルがあまりないので、もしかすると考慮できていない場合が存在するかもしれない…。
・自動フィールドシフトを追加。(vpp-afs)
インタレ解除をする自動フィールドシフトを追加。基本的にはAviutlの自動フィールドシフトをCUDAでGPUに移植したもの。パラメータ等もそのまま使えるようにした。
ただ、やはり画素の精度が異なるのと(YC48 vs YUV420 8bit)、GPUで処理するため若干処理方法が変わっているため、全く同じ結果にはならなくなっている。具体的には、同じ設定値でCPU版と比べると若干だけど縞が検出されにくくなっている。
また、一部機能制限があって、現状Aviutl版にある以下の機能には非対応。
- 解除Lv5
- シーンチェンジ検出(解除Lv1)
- 編集モード
- ログ保存
- ログ再生
- YUY2補間
- シフト・解除なし
パラメータ ... 基本的にはAviutl版のパラメータをそのまま使用する。
top=<int> (上)
bottom=<int> (下)
left=<int> (左)
right=<int> (右)
判定に使用する領域から除外する範囲の指定。
method_switch=<int> (切替点)
切替点が大きいほど、新方式の判定になりやすい(0で常に新方式判定off)
coeff_shift=<int> (判定比)
判定比率が小さいほど、フィールドをシフトしにくい(0で常にシフト判定off)
thre_shift=<int> (縞(シフト))
シフトの判定に使用する縞検出の閾値。値が小さいほど、縞と判定されやすくなる。
thre_deint=<int> (縞(解除))
縞解除用の縞検出の閾値。値が小さいほど、縞と判定されやすくなる。
thre_motion_y=<int> (Y動き)
thre_motion_c=<int> (C動き)
動き検出の閾値。値が小さいほど、動きと判定されやすくなる。
level=<int> (解除Lv)
縞解除の方法の選択。
解除Lv | ||
---|---|---|
Lv0 | 解除なし | 横縞模様の解除を行わない。 フィールドシフトで組み合わされた新しいフレームがそのまま出力になる。 |
Lv1 | フィールド三重化 | フィールドシフトで組み合わされた新しいフレームに、さらに1つ前の フィールドを残像として足しこむ。 動きによる縞模様は完全に残像に変換される。 |
Lv2 | 縞検出二重化 | フレーム内で縞模様を検出して、縞の部分を平均化して残像に変える。 フィールド単位の動きが少ない映像向け。 |
Lv3 | 動き検出二重化 | 前のフレームと比較をして、動き(色の変化)があった部分だけ縞の平均化を行う。 解除Lv2だと平均化されてしまう静止した横縞模様を保存できる。 静止したテロップの細かい文字や、アニメなどの枠線付きの静止画の 輪郭をつぶしたくない場合に使用する。 |
Lv4 | 動き検出補間 | 前のフレームと比較をして動きがあった部分は、片方のフィールドを潰して残す方のフィールドの画像で補間する。 残像はなくなりますが、この解除がかかった部分は縦の解像度が半分になる。 |
Lv5 | 斜め線補正補間 | 非対応 |
shift=<bool> (フィールドシフト)
フィールドシフトを行う。
drop=<bool> (間引き)
フィールドシフトを行うことで生じた表示時間の1フレームより短いフレームを間引く。
smooth=<bool> (スムージング)
24fps=<bool> (24fps化)
24fps化を強制する、映画・アニメ用のオプション。フィールドシフトと間引きをonにする必要がある。
tune=<bool> (調整モード)
縞模様と動きの判定結果の確認用。
色 | 意味 |
---|---|
青 | 動きを検出 |
灰 | 縞を検出 |
水色 | 動き + 縞を検出 |
rff=<bool>
入力フレームにrffフラグ付きのプログレフレームがある場合、これをチェックしてインタレ解除処理に反映する。rffフラグ付きのプログレフレームについては、フィールドシフトを行わずに、フレームの表示時間の修正のみを行う。
log=<bool>
フレームごとの判定状況等をcsvファイルで出力。(デバッグ用のログ出力)
一括設定用オプション
たくさんあるパラメータを一括指定するためのオプション。一括設定用オプションは必ず先に読み込まれ、個別オプションの指定があればそちらで上書きされる。
ini=<string> [NVEncCのみ]
指定したini設定ファイルから設定を読み込む。この設定ファイルはAviutl版自動フィールドシフト 高速化 7.5a+20以降のafs.aufで出力できるものを使用する。
iniファイルの例
[AFS_STG]
up=8
bottom=8
left=16
right=16
method_watershed=91
coeff_shift=191
thre_shift=447
thre_deint=44
thre_Ymotion=111
thre_Cmotion=222
mode=4
field_shift=1
drop=1
smooth=1
force24=1
tune_mode=0
rff=0
log=0
preset=<string> [NVEncCのみ]
以下の表のプリセットをロード。
例: アニメプリセットをロード後、"24fps"をonに、"rff"を"on"に
--vpp-afs preset=anime,24fps=true,rff=true
default | triple (動き重視) | double (二重化) | anime cinema (アニメ/ 映画) | min_afterimg (残像 最小化) | 24fps (24fps 固定) | 30fps (30fps 固定) | |
---|---|---|---|---|---|---|---|
method_switch | 0 | 0 | 0 | 64 | 0 | 92 | 0 |
coeff_shift | 192 | 192 | 192 | 128 | 192 | 192 | 192 |
thre_shift | 128 | 128 | 128 | 128 | 128 | 448 | 128 |
thre_deint | 48 | 48 | 48 | 48 | 48 | 48 | 48 |
thre_motion_y | 112 | 112 | 112 | 112 | 112 | 112 | 112 |
thre_motion_c | 224 | 224 | 224 | 224 | 224 | 224 | 224 |
level | 3 | 1 | 2 | 3 | 4 | 3 | 3 |
shift | on | off | on | on | on | on | off |
drop | off | off | on | on | on | on | off |
smooth | off | off | on | on | on | on | off |
24fps | off | off | off | off | off | on | off |
tune | off | off | off | off | off | off | off |
rff | off | off | off | off | off | off | off |
ダウンロード>>
ダウンロード (ミラー) >>
OneDriveの調子がいまいちの時はミラー(GDrive)からどうぞ。同じものです。
ソースはこちら>>
スポンサーサイト