先日、AMD A10-7890Kで組みました
目的は撮り溜めた動画を一気に整理する為にGPGPUエンコードを使用することです。
A10-7890KはAPUで、最新GPU Radeonシリーズと同等のハードウェアエンコーダーVCE2に対応しています。
そこで、ずっと気になっていたVCEでエンコードが出来る「A's Video Converter」を使ってみました。
しかし、これが思っていた以上に曲者で大変でして…
数パターン試行錯誤した中で、上手く高画質を維持したエンコード設定をご紹介します。
ちなみに下記の設定を使った結果、DVDと同等のSD画質動画でソースの約1/8の時間(約230fps)、ファイルサイズは約1/4で変換完了。地デジやBDと同等のHD画質動画で約2/3の時間(約48fps)、ファイルサイズは約1/4で変換完了。
CPU使用率は1ファイルで25~45%。GPU使用率は設定値によって0~100%まで激しく変動していました。
まずは、Read Meにも書いてあるようにスプリッタやらデコーダーやらを集めなければなりませんが、小難しい事は置いといて、とにかくK-life Codec PackをDLして入れましょう。自分はいつも全部入りのMegaパックを使っています。
2023年現在、製作者のWebページにて推奨されているLAV Filtersの導入方法が公開されています。これだけでエンコード前の準備はOKです。
あとは、A's Video Converterを起動して設定>トランスコードの設定を開き、右側のタブから基本的な設定をしていきます。
・ビデオデコーダ
K-life Codec Packを入れたので、プルダウンをするとずらっとデコーダーがありますが、A's Video Converter製作者のBluesky氏がお薦めしているLAV Videos Decoderを使います。
右の設定ボタンを押せばインストールしたDecoder本体の詳細設定画面が現れますが、自分は全く変更していません。また、GPUデコードもチェックをしません。有効にするとCPU使用率低減効果がありますが、エンコード速度は若干遅くなります。
・オーディオデコーダ
ここでもLAV Audio Decoderを選べて詳細設定も出来ますが、自分は音声に拘りがないので敢えて自動にしています。
・スプリッタ
プルダウンからLAV Splitterを選びます。上手くエンコードが出来ない場合はMarumo ISDB Spltterを使うと良いとBluesky氏が推奨されています。
【フィルタ】
・DXVAプリプロセッサ
チェックをつけて設定画面を出し、「フレーム」タブのデインターレースのみチェック。Radeon GPUドライバーのデインターレースはとても優秀なんだそうです。その他は何も変更していません。
【オーディオエンコード】
ここはデフォルトで良いと思いますが、自分は容量削減の為にビットレートを128Kbpsに落としました。
【ビデオエンコード】
各項目をクリックすると設定値を変更することが出来ます。
・エンコーダ
VCEでのGPUエンコードが目的ですから、「AMD VCE H.264 Eecoder」を選択します。ただし、mp4エンコードしか出来ません。複雑な音声やチャプター、字幕等は付けられません。
・低遅延モード
キャプチャデバイス以外のソースでは無効を選択。
・レートコントロール
固定QPを選択。下記の最大最小QPを同時に設定する必要があります。*最後に検証結果あり
・最小QP
QPの設定値は0~51で、数字が小さいほど高品質です。レートコントロール固定QPの場合はビットレートの振り幅の大小を指定する必要があるので最小QPには51と入力。
・最大QP
いろいろ試した結果、ファイルサイズと映像品質のバランスが良い24を入力。
ここの設定値が0に近いほど、映像により多くのビットレートが与えられ高画質が期待できます。しかし、判定が大雑把なので数値が極端に小さいとソース以上のビットレートが振られて、ファイルサイズが無駄に大きくなります。
・QP(I/P/Bフレーム)
デフォルトのまま。
・品質 VS 速度
品質重視を選択。GPUエンコードでは元々変換速度が爆速なので、わずかな速度アップを望むよりも高品質の方が良いです。
・GOPサイズ
デフォルトのまま。
・Bフレーム
デフォルトのまま。
・参照フレーム
デフォルトのままでも良いと思いますが、高品質になる気がするので最大の3を入力。
・アスペクト比
デフォルトのまま。
・プロファイル
High Profileを選択。GPUエンコードでは元々変換速度が爆速なので~以下略。
・レベル
デフォルトのまま。再生環境によっては、4.1以上を選択しないと上手く再生出来ない場合も。
・CABAC
有効を選択。GPUエンコードでは元々~以下略。
これで設定完了です。開始ボタンを押す前にプルダウンから優先度を通常より上にしておきましょう
最後に、試行錯誤した検証結果を。使ったソースは、約57分のSD画質動画。今回ご紹介した設定で変換時間は7分29秒(227fps)。
自分はデコーダーやDXVAの設定値を変更しなかったので、【ビデオエンコード】のレートコントロールより下の項目が映像品質と密接に関わっていたのですが、想像通りの映像にエンコード出来なくて様々な設定値と格闘する羽目になりました
レートコントロールでは、プルダウンからCBR/VBR/固定QPの3つから圧縮ビットレート方法を選べますが、試しにVBR=平均ビットレートで目標2000、最大9800を指定しても、なぜか全シーンがほぼ2,000kbps固定になりCBR=固定ビットレート状態に。
固定QP=固定クオリティーでは、Handbrakeと同様の設定かと思って最大QPを20にしたら、ソースのビットレートの2倍とか無駄に大きく割り振られたシーンがありました…。
上記で紹介している最大QP 24でも、ソースのピークビットレートは9,000Kbps程度なのに、13,606Kbpsと9Mbpsを超えるシーンが複数出来ています。
だからといって、最大QPを徐々に大きくしてソースと同等の結果になる28にしてみたら、ファイルサイズは1/8に減りましたが映像にノイズが目立つようになってしまいました。
見る人によっては気にするほどじゃないかもしれませんが、数字が1増えるごとにアベレージビットレートが100~200Kbps落ちる感じです。
もちろん、デコーダーやフィルターの設定を正しく理解してないのが原因ですが、とりあえず爆速で綺麗な動画が出来たので「自分の知識ではここら辺が限界かな」とこれ以上の検証は諦めました
しかし、ご紹介出来なかった便利な機能も含めて、「A's Video Converter」はVCEエンコードソフトとして本当に素晴らしいツールだと思います。
AMDのGPGPUエンコードが気になる方は、ぜひ試してみてください
今回の購入先
H.265ハードウェアエンコードも対応の最新 AMD APU
H.265ハードウェアエンコードも対応の最新 Radeon GPU
関連商品