GPU2020年01月02日 13:20

RX480が調子が悪いので。
エンコが早いというNvidiaで調べてみた。

1660無印を100としたとき
価格は税抜、比較はFFベンチベースQFHD/FHD

1660 23.5k 100% 100%
1600S 24.7k 117% 111%
1660ti 28.7k 117% 120%
2060 34.4k 143% 133%
2060S 44.0k 167% 123%
2070 50k
2070S 56k
2080 78k
2080s 82.5k
2080ti 130k

2060以上であればFHD以上の解像度を用意しないと差が出ない?
逆に言えばFHD以上にする気があるなら2060以上にしておくべき?

Amatsukaze その12020年01月04日 03:07

いろいろ試してるところ
今の所30分のbsのtsを突っ込んで6分弱程度

--aq --aq-temporal
--weightp
 誤差程度の差?

--preset
  defaultからqualityにするとエンコーダのfpsが75%くらいに落ちる
  defaultでいい気がする

--vbrhq 
 ビットレート指定できるけど実測で半分くらいのレートになる
 (vbr-quality 0と組み合わせた場合)
 ※追試したらきちんと指定のレートで出る・・・。なんだったんだろう。

-ref
 上げるとサイズが小さくなるが速度が遅くなる・・・らしい
 今はとりあえず12にしている
 6も12もそこまで速度は変わらないようだ。

-b
  3でいいんじゃないかというのを見たけど
  5にしても問題がなさそうなので5にした
  (5までしか上がらない)
  上げるとPフレームが減ってBフレームが増えサイズが小さくなる。
  (3→5で4%くらい)
  最終的な速度は殆ど変わらないか少し早くなった

--bref-mode each
  rtx2060sにしたのはこれが目的なので?
  offにすると倍くらい早くなる模様

デインタレ
  KFM 24fpsになるので早くなるがVFRだとmuxに時間がかかる
  QTGMC 出力が60fpsなのでどうしても遅くなる
        muxは早い

  KFMでDecombUCF
        入れるの推奨っぽい(抜くと多少早くなる)
        動きの早い動画での破綻を防ぐ
  出力は悩み中。今は24fps。
     VFR/VFR(上限30fps)にすると
     フィルタパスが2パスになり、かつ最終段のmuxで時間がかかる
     (フレームレートに合わせて調整してるから?)
     処理するフレームも増えるので、
     諸々こみで最終的な時間は1.7倍くらい余計にかかる
     ただテロップが横に流れるところとかは60fpsになって
     キレイになる
     (そこしか差がわからないとも言う)

デブロッキング
  入れると顕著に遅くなる(80%くらい?)

時間軸安定化&バンディング低減
  offにするとぐっと早くなる(+30%くらい)
  onにしてるけど

Amatsukaze その22020年01月04日 15:37

あとはどのくらいの品質レートが必要か調査

プリセットでエンコーダーをx.265に変えて
--input-depth 10 --output-depth 10 --preset ultrafast --lossless
で出力されたものをリファレンスにして
vbr-qualityを変えていくつかエンコードし、
ffmpegでSSIMを出力してみた

○サンプル1
Fate kaleid liner プリズマ☆イリヤ ドライ!!の2話のts
冒頭からOP終了まで
1:48 1080iでリサイズなし

vbr-quality   SSIM    bitrate    
20        0.988602  9.330Mbps
24        0.988153  6.752Mbps
25        0.987207  5.904Mbps
26        0.986213  5.177Mbps
27        0.985179  4.531Mbps
28        0.984147  3.993Mbps

○サンプル2
Fate kaleid liner プリズマ☆イリヤ ツヴァイ!の2話
冒頭からOP終了まで
1:54 1080iでリサイズなし

vbr-quality   SSIM    bitrate    
24        0.991130  5.343Mbps
25        0.990506  4.658Mbps
26        0.989871  4.082Mbps
27        0.989174  3.568Mbps

結構ソースによって数値が変わるんだなぁ、というのが正直なところ。
ワーストケースで0.987を超える、という基準だとTQ25?
試しにドライの方の全編(30:30/4.00GB)をTQ25でエンコードしてみると
ビットレートは3.628Mbpsになった。(833MB)
TQ26だと3.140Mbps(721MB)。これだけ違うと26でもいいかなぁ…。
TQ27だと2.719Mbps(624MB)。
結構圧縮がきくところと効かないところがあるようだ…。

----- 設定プリセット ------
エンコーダ: NVEnc
エンコーダ追加オプション: -c hevc --preset default --vbrhq 0 --vbr-quality 27 --lookahead 32 --output-depth 10 -b 5 --ref 12 --bref-mode each --aq --aq-temporal
JoinLogoScpコマンドファイル: チャンネル設定に従う
JoinLogoScpオプション: チャンネル設定に従う
chapter_exeオプション:
MPEG2デコーダ: デフォルト
H264デコーダ: デフォルト
出力フォーマット: MP4
出力選択: 通常
SCRenameによるリネームを行う: No
SCRename書式: $SCtitle$\$SCtitle$ $SCpart$第$SCnumber$話 「$SCsubtitle$」 ($SCservice$) [$SCdate$]
ジャンルごとにフォルダ分け: No
実行前バッチ: なし
実行後バッチ: なし
フィルタ-CUDAで処理: Yes
フィルタ-インターレース解除: Yes
フィルタ-インターレース解除方法: KFM
フィルタ-SMDegrainによるNR: No
フィルタ-DecombUCF: Yes
フィルタ-出力fps: 24fps
フィルタ-VFRフレームタイミング: 120fps
フィルタ-デブロッキング: No
フィルタ-リサイズ: No
フィルタ-時間軸安定化: Yes
フィルタ-バンディング低減: Yes
フィルタ-エッジ強調: No
2パス: No
CMビットレート倍率: 0.5
自動ビットレート指定: No
自動ビットレート係数: 0:0:0
ニコニコ実況コメントを有効にする: No
ニコニコ実況コメントのエラーを無視する: No
NicoJKログから優先的にコメントを取得する: No
NicoJK18サーバからコメントを取得する: No
コメント出力フォーマット: 1
関連ファイル(*.err,*.program.txt)も処理: No
字幕を無効にする: Yes
マッピングにないDRCS外字は無視する: No
ロゴ検出判定しきい値を低くする: No
ロゴ検出に失敗しても処理を続行する: Yes
ロゴ消ししない: Yes
メインフォーマット以外は結合しない: No
システムにインストールされているAviSynthプラグインを有効にする: No
ネットワーク越しに転送する場合のハッシュチェックを無効にする: No
ログファイルを出力先に生成しない: No
一時ファイルを削除せずに残す: No
PMT更新によるCM認識: なし
ロゴ最長フェードフレーム数指定: なし

-------

Amatsukaze その32020年01月05日 04:55

ソースが低レートなときに破綻するのがわかったので
とりあえず色々試行錯誤してパラメーターを変更

最終的にデインタレはNVEncCにお任せして
逆テレシネ(24fps化)もとりやめ
その分デブロックを弱めにかけてみました。
一番効果があったのはpresetをqualityに変えたことでしたが。

意外とチャプターが打たれていると便利なことがわかったので
NVEncCを直接キックするのはやめてAmatsukaze経由にしました。
presetがqualityだとあまり直接コマンドキックと変わらないってのもある

ts突っ込んでチャプター打ちその他込で7分/本くらい

---現時点での最終---
エンコーダ: NVEnc
エンコーダ追加オプション: -c hevc --preset quality --vbrhq 0 --vbr-quality 26 --lookahead 32 --output-depth 10 -b 3 --ref 12 --bref-mode each --aq --vpp-afs preset=anime,timecode=true
JoinLogoScpコマンドファイル: チャンネル設定に従う
JoinLogoScpオプション: チャンネル設定に従う
chapter_exeオプション:
MPEG2デコーダ: デフォルト
H264デコーダ: デフォルト
出力フォーマット: MP4
出力選択: 通常
SCRenameによるリネームを行う: No
SCRename書式: $SCtitle$\$SCtitle$ $SCpart$第$SCnumber$話 「$SCsubtitle$」 ($SCservice$) [$SCdate$]
ジャンルごとにフォルダ分け: No
実行前バッチ: なし
実行後バッチ: なし
フィルタ-CUDAで処理: Yes
フィルタ-インターレース解除: No
フィルタ-デブロッキング: Yes
フィルタ-デブロッキング強度: 弱
フィルタ-デブロッキング品質: 中(3)
フィルタ-リサイズ: No
フィルタ-時間軸安定化: Yes
フィルタ-バンディング低減: Yes
フィルタ-エッジ強調: No
2パス: No
CMビットレート倍率: 0.5
自動ビットレート指定: No
自動ビットレート係数: 0:0:0
ニコニコ実況コメントを有効にする: No
ニコニコ実況コメントのエラーを無視する: No
NicoJKログから優先的にコメントを取得する: No
NicoJK18サーバからコメントを取得する: No
コメント出力フォーマット: 1
関連ファイル(*.err,*.program.txt)も処理: No
字幕を無効にする: Yes
マッピングにないDRCS外字は無視する: No
ロゴ検出判定しきい値を低くする: No
ロゴ検出に失敗しても処理を続行する: Yes
ロゴ消ししない: Yes
メインフォーマット以外は結合しない: No
システムにインストールされているAviSynthプラグインを有効にする: No
ネットワーク越しに転送する場合のハッシュチェックを無効にする: No
ログファイルを出力先に生成しない: No
一時ファイルを削除せずに残す: No
PMT更新によるCM認識: なし
ロゴ最長フェードフレーム数指定: なし
---

RTX2060 SUPERとAmatsukaze2020年01月12日 17:22

 最近もともと使っていたAMDのRadeonRX480が調子が悪っぽいということもあり、新年の初売りでNvidiaのRX2060Superを買いました。
 だいたいベンチで倍になる感じで入れ替えをしているので、RX480からRX2060SUPERで約倍。3年毎に倍になる世界ってのもすごいけど。

 それにしてもNvidiaのカードとか何年ぶりなんだろうか、というレベル
480の前が7850か70、その前が5830、その前はなんだっけか…。

 ついでにAmatsukazeを入れてNVEncCを使って大量に溜まっているtsを
H.265で圧縮しようという目的で、新年そうそう色々と試してみました。

 いつの間にやら早くなったものんだ、というのが正直なところ。
普通に見れるレベルで30分が5分で処理できるってのは驚異。
容量も1/4とかになるしな…。