amatsukazeとAviutlでNVEncできるようになったので色々備忘録
NVEncの利点欠点なども
現状SWエンコとHWエンコ(NVEnc)の画質は
x265>x264>NVEnc h.265(10bit B frame)>NVEnc h.264
といった感じだと思うのでNVEncするならh.265 10bit+B Frame一択(BフレはRTX20シリーズ以降)
amatsukazeは本体とNVEncC64.exeを入手すればそのまま使える
Aviutlは導入がめんどいが自動化してくれるツールが付属している(自分は手動で入れてる)
h.265にはx264のようなcrf(品質基準VBR)の設定がないが似たような使い方ができるオプションはある
–vbrhq 0 でVBRビットレートを無効にして –vbr-quality 28 のように数値を指定することでCRFになる
コマンド全体の例としては以下のようになる
-c hevc –profile main10 –preset quality –vbrhq 0 –vbr-quality 28 –gop-len auto –lookahead 32 –output-depth 10 –weightp –bframes 3 –ref 6 –bref-mode each
※Aviutlの拡張NVEncの場合はモードVBRにして品質目標=0に指定した後追加オプションに以下を入力
–vbrhq 0 –vbr-quality 28
・10ビット出力のための –profile main10 –output-depth 10 あたりも忘れずに指定
・bフレーム数とref値についてもx264時と似た傾向でbフレ数x2がベストなref値 (bフレ4以上は無意味?)
・–gop-len でキーフレーム挿入間隔(フレーム数)を指定可能 固定間隔ではない
拡張NVEncの場合はCQPモード(固定量子化量)が推奨らしいその場合の指定方法は以下
–cqp 28:30:32
QP I frame : QP P frame : QP B frame のように量子化量を指定する(数値大で圧縮率も大)
IPBフレームのCQP値はそれぞれ2ずつ増やしていくのがセオリーみたい
ちなみに画質は –cqp 28:30:32 ≧ –vbr-quality 28 みたいな感じだと思うが
cqpのほうが出来上がりサイズが若干小さいのでケースバイケースの可能性もある
–vbr-quality 26,28,30,32の画質と出来上がりサイズを比較すると
26高画質だがサイズがでかい、28画質とサイズのバランス最高、30劣化が気になりだす、32低画質だが許容範囲
アニメは26~28 実写は28~30辺りが良いんでないかなと
ただSWエンコでも言えるがアナログフィルムソースの実写作品はフィルムグレインの影響で全然縮まないので
思い切って32辺りでエンコするのがいいかも
例えば某海外ドラマで水牛法廷物は本編40分強で28指定で400~600MB
同ゾンビドラマで恐らくフィルム撮影物は本編40分強で28で1.2GB超え、32指定で600~800MB
後者は明らかに劣化が目立つがもともとのノイズ分布も多いので妥協して32指定している
KFMで可変24fpsにしているので30fpsや60fpsではもっとサイズ差は顕著だろうな
ただデジタル撮影ものはソースから10分の1程度まで縮むので驚異的なサイズだと思う
エンコ速度はamatsukazeでソース映像の半分の時間でエンコできる
可変フレームレート2passとか本来重い作業なのだけどKFMによってGPU処理できるし
–vbrhq 0指定で2passエンコードになるけどそれを加味しても倍速エンコードは驚異的
※自分はamatsukazeの自動CMカットは信用していないのでCM解析でtrim検出後
TrimViewerでTrim位置のズレなどを修正してソースフォルダに保存すれば強制Trim指定できる
そもそも海外ドラマの場合番組冒頭と尻の部分にCMが入るんで自動でうまくカットできないのだ
このTrim編集の時間も6分程度かかるのでそれを加味してもエンコはソース時間の半分ということ
Aviutlでは60fps化してのエンコしかしない予定なので不明だけど
エンコ時間はソースの1.5倍程度はかかるかも
avisynth経由でのソース読み込みおよびBob化なのでマルチスレッド処理が苦手なのもあってか遅い
ちなみにBob化でKTGMCが使えるのでCPUオンリーよりかは格段に軽いけど
NVEncのデメリットは画質とインタレ保持の可否
画質はBフレーム対応以降は劇的に改善したがそれでもx265には及ばない
ビットレート換算で1.5倍程度は盛らないとx265と同程度の画質にならない
またインタレ保持についての可否も不透明で現状デコーダーが対応していないのでインタレ解除必須
インタレ解除も完璧なものは存在しないので解除ミスしたら修正は不可能だからこそ
インタレ保持の重要性って大きいし何より重い解除フィルターが必要ないのでNVEncならもっと爆速だろう






コメントを残す