GPU性能でエンコード速度は変わるのか?
アドビ製品におけるRadeonのGPUエンコーダーの使い方を解説したが、CPUエンコードをGPUエンコードにすることで実際どの程度早くなるのか、そして画質はどう変わるのか検証してみた。検証環境は以下の通りとなる。
今回CPUはメインストリームCPUとしては最多コア数を誇るRyzen 9 3950Xを選択。CPUコア数の多いCPUといえばRyzen Threadripperだが、Media Encoderでは全てのコアを使い切れない(参考記事:https://ascii.jp/elem/000/004/005/4005423/)ので、Ryzen 9 3950Xが最適と判断した。
ビデオカードはNavi世代の中からRX 5700とRX 5500XTの2モデルを準備。GPUの性能の高いものと低いもので、GPUエンコード時間に差はでるのかも確認しておきたい。
【検証環境】 | |
---|---|
CPU | AMD Ryzen 9 3950X (16コア/32スレッド、3.5GHz~4.7GHz) |
マザーボード | GIGABYTE「X570 AORUS MASTER」 (BIOS F11) |
メモリー | G.Skill「F4-3200C16D-32GTZRX」×2 (DDR4-3200、16GB×4) |
グラフィック | AMD「Radeon RX 5700リファレンスカード」 ASRock「Radeon RX 5500 XT Challenger D 4G OC」 (Radeon RX 5500XT) |
ストレージ | GIGABYTE「GP-ASM2NE6200TTTD」 (NVMe M.2 SSD、2TB) |
電源ユニット | Super Flower「Leadex Platinum 2000W」 (2000W、80Plus Platinum) |
CPUクーラー | Corsair「H115i Pro RGB」 (簡易水冷、280mm) |
OS | Windows 10 Pro 64bit版 (May 2020 Update) |
テストはPremiere Pro 2020で編集した4K動画(再生時間約3分半)を、Media Encoder 2020で1本のMP4動画に出力するときの時間を比較する。エンコード設定はH.264がVBR 1パスの80Mbps(最大95Mbps)、H.265がVBR 1パスの50Mbps(最大60Mbps)とした。
GPUエンコードを利用すると、H.264ではCPUの処理時間のほぼ半分程度、H.265ではCPUエンコードの7分の1程度の時間で終了した(CPUエンコードの処理時間はRX 5700でも5500XTでもほぼ同じ)。RadeonのGPUエンコーダーを上手く利用すれば、エンコード時間を大幅に短縮できることが分かったはずだ。
だがGPUエンコードは高速なぶん画質が粗いため、決して万能ではないというのが動画界隈での常識だ。前述の通り、Premiere ProではCPUエンコード時は目標ビットレートと最大ビットレートの2つが指定できるのに、GPUエンコード時は目標ビットレートしか指定できない。低負荷で高速なぶん小回りが効かない、そして画質も控えめというのがGPUエンコードの定説だ。
ではRadeonのGPUエンコーダーはCPUエンコーダーに比べどの程度画質が劣るのだろうか? 次の図はMedia Encoder 2020で書き出した4K MP4動画の拡大図だ。
十分にビットレートが高い状態であれば、GPUエンコードもCPUエンコードも全く見分けがつかないようだ。では同じ素材を使って8Mbpsでエンコードした場合はどうなのだろうか?
ビットレートが低い状態だと、RadeonのGPUエンコーダーではディテールが著しく低下する。編集した動画の流れをみたい時にはGPUエンコーダーは有効だが、画質を重視したい時はCPUを使いVBR 2パスでエンコードする方が良さそうだ。
週刊アスキーの最新情報を購読しよう