フィルター処理にGPUを利用するとエンコードは速くなるのか?
TMPGEnc Video Mastering Works 6(以下:TVMW6)はGPUを利用した [NVIDIA CUDA] でのエンコードをすることができます。NVIDIAも動画エンコードに関しては力を入れていますが、昔から “GPUを使ってエンコードした動画はスピードは速いけど、荒い・汚い・サイズが小さくならない” と言われてきました。 TVMW6でも映像エンコーダーに “NVENC” を利用してエンコードすることができますが、CPUをぶん回してエンコードする映像エンコーダー “x264” にスピード以外は勝てません。
そこでTVMW6は映像フィルター処理にGPUを利用してエンコードをすることができます。[NVIDIA CUDA] を利用するためには対応するGPUとCPUよりGPUで処理する方が速い場合に限ります。
検証環境
[検証マシンスペック] CPU:Xeon E5-2670 * 2(3.3GHz, 8コア16スレッド) M/B:Z9PA-D8C メモリ:64GB(DDR3-1333 ECC Reg 8GB * 8) GPU:MSI GTX 980Ti LIGHTNING [使用フィルター] インターレース解除:常にインターレース解除を行う(2倍 fps 化) インターレース解除の方法:アニメ補間2 映像リサイズ 画像配置方法:画面中心に表示(指定したサイズ) 映像リサイズ リサイズ:1280 x 720 ピクセル 映像リサイズ リサイズ手法:Lanczos-3 高精度映像ノイズ除去 強さ:250 高精度映像ノイズ除去 範囲:狭い(高速) - ディテール保存重視 [映像出力設定] 映像エンコーダー:x264 フレームレート:59.94 fps レート調整モード:VBR(固定品質) 最大ビットレート:24 Mbps 品質:62 [検証映像] 2016/10/23(日)放送 ONE PIECE 第761話「刻限迫る ミンク族と一味の絆」 ドラゴンボール超 第63話「サイヤ人の細胞を汚すな!ベジータの壮絶バトル開演!!」
検証に使用したGPU
検証にはMSIの [GTX 980Ti LIGHTNING] を使用しています。下の画像はGPU-ZのGPU情報です。
NVIDIA CUDAを無効化でCPUオンリーでエンコード
TVMW6の環境設定でCUDAモジュールを読み込まないようにしてCUDAを無効化します。
バッチエンコードで [x264 エンコード 有効] と表示されているのでCPUのみで処理されています。GPU-ZでもGPUが使用されていないことがわかります。モニターに表示しているので0 MHzにはなりません。
NVIDIA CUDAを有効化してCPUとGPUでエンコード
TVMW6の環境設定でCUDAを有効化して [フィルタリングに CUDA を使用する] にチェックを入れます。
[NVIDIA CUDA] を無効化してエンコードした際と異なりバッチエンコードでは前処理の項目が追加で表示されるようになりました。
GPU-ZでもGPUがフルに稼働していることがわかります。
前処理にGPUを利用しているだけなのでCPUもリソースとして使用されていますが1プロセッサのみが100%で稼働しています。
CPU vs CPU&GPUエンコード結果
バッチエンコードの上2つがCPUオンリー、下2つが [NVIDIA CUDA] を映像フィルター処理に使用したエンコード結果です。
CPUオンリーでは “2時間30分”、[NVIDIA CUDA] 利用では “1時間30分”でエンコードが完了しました。
エンコードを1時間短縮することができました。その他のアニメでも1時間短縮してエンコードすることができたので [NVIDIA CUDA] はかなり有効です。