画質比較 (2020.03) 実写編 エンコード速度
この前の記事 画質比較 (2020.03) 実写編 の時のエンコード速度の確認。
環境・条件
使用ソフト
x264 r2988 x64
x265 3.3+2 x64
NVEncC 4.68 x64
QSVEncC 3.33 x64
VCEEncC 5.04 x64
入力
sample_movie_1080p.mpg
MPEG2 1920x1080 29.97fps 5203frame
使用コマンド
QSVEnc/NVEncについては、おそらく画質が一番高くなるであろうオプションを試した。x264/x265はきりがないのでpresetをそのまま使用している。
なお、x264/x265では、今回入れてない--tune ssimを入れてssimに最適化したエンコをすることでさらにssim的には改善の余地があることに注意。
x264 medium
--crf <x>
x264 veryslow
--crf <x> --preset veryslow
x265 medium
--crf <x>
x265 veryslow
--crf <x> --preset veryslow
x265 medium 10bit
--crf <x> --input-depth 10 --output-depth 10
x265 veryslow 10bit
--crf <x> --input-depth 10 --output-depth 10 --preset veryslow
nvenc H.264
--vbrhq 0 --vbr-quality <x> --preset quality --weightp --bref-mode each --lookahead 32 --level 5.2
nvenc HEVC
--vbrhq 0 --vbr-quality <x> --preset quality --weightp --bref-mode each --lookahead 32 -c hevc --level 6
nvenc HEVC 10bit
--vbrhq 0 --vbr-quality <x> --preset quality --weightp --bref-mode each --lookahead 32 -c hevc --level 6 --output-depth 10
nvenc HEVC + Bframes
--vbrhq 0 --vbr-quality <x> --preset quality --weightp --bref-mode each --lookahead 32 -c hevc --level 6 -b 3
nvenc HEVC 10bit + Bframes
--vbrhq 0 --vbr-quality <x> --preset quality --weightp --bref-mode each --lookahead 32 -c hevc --level 6 --output-depth 10 -b 3
qsv H.264 (-u 1:slow, 4:medium, 7:fast)
--la-icq <x> --la-depth 60 -u <1,4,7>
qsv HEVC (-u 1:slow, 4:medium, 7:fast)
--icq <x> -u <1,4,7> -c hevc
qsv HEVC 10bit (-u 1:slow, 4:medium, 7:fast)
--icq <x> -u <1,4,7> -c hevc --profile main10 --output-depth 10
vce H.264
--cqp <x>:<x>+2:<x>+5 -u slow
--vbr <x> -u slow
vce HEVC
--cqp <x>:<x>+2:> -u slow -c hevc
--vbr <x> -u slow -c hevc
結果
というわけで、エンコード速度をずらっと並べてみた。
棒が複数ある場所は青がH.264、ピンクがHEVC、オレンジがHEVC 10bit。

HEVCのGPUエンコード速度を比べると、NVENCはslowでも十分高速だけど、QSVの場合はslowにすると画質が良い分かなり速度が落ちてしまう(Icelakeで50fps弱)。ただ、mediumやfastにすれば、多少画質は落ちるものの120fps台でのエンコードが可能なので、リアルタイムエンコが必要な場合にも対応可能となっている。
またQSVのslowだと、最近は多コアCPUが一般的になってきているのもあって、Ryzenでx265回せばよくね? みたいな話になってしまう。そういう意味でもmediumあたりを使って低電力で高速エンコ、あたりがよいのかもしれない。(QSV中の消費電力はこの辺に書いたけど、GPUがほぼ100%稼働しているにしてはCPU Package Powerが15~18W程度とかなり低い)
環境・条件
x264 x265 | nvenc (1060) | nvenc (2070) | qsv (HSW) | qsv (KBL) | qsv (ICL) | >vce (Vega) | |
CPU | R7 3700X | i9 7980xe | i3 4170 | i7 7700K | i5 1035G7 | R3 3200G | |
CPU Clock | 4.4GHz | 4.1/4.0/3.9GHz | 3.7GHz | 4.5GHz | 3.7GHz | 4.2GHz | |
RAM | DDR4 -3600 2ch | DDR4 -3600 4ch | DDR3 -2133 2ch | DDR4 -3600 2ch | LPDDR4X -3733 2ch | DDR4 -2666 2ch | |
GPU | - | GTX 1060 | RTX 2070 | HDG 4400 | HDG 630 | Iris Plus | Vega8 |
ドライバ | 442.19 | 5058 | 7870 | 7641 | 20.2.1 | ||
OS | Win10 x64 |
使用ソフト
x264 r2988 x64
x265 3.3+2 x64
NVEncC 4.68 x64
QSVEncC 3.33 x64
VCEEncC 5.04 x64
入力
sample_movie_1080p.mpg
MPEG2 1920x1080 29.97fps 5203frame
使用コマンド
QSVEnc/NVEncについては、おそらく画質が一番高くなるであろうオプションを試した。x264/x265はきりがないのでpresetをそのまま使用している。
なお、x264/x265では、今回入れてない--tune ssimを入れてssimに最適化したエンコをすることでさらにssim的には改善の余地があることに注意。
x264 medium
--crf <x>
x264 veryslow
--crf <x> --preset veryslow
x265 medium
--crf <x>
x265 veryslow
--crf <x> --preset veryslow
x265 medium 10bit
--crf <x> --input-depth 10 --output-depth 10
x265 veryslow 10bit
--crf <x> --input-depth 10 --output-depth 10 --preset veryslow
nvenc H.264
--vbrhq 0 --vbr-quality <x> --preset quality --weightp --bref-mode each --lookahead 32 --level 5.2
nvenc HEVC
--vbrhq 0 --vbr-quality <x> --preset quality --weightp --bref-mode each --lookahead 32 -c hevc --level 6
nvenc HEVC 10bit
--vbrhq 0 --vbr-quality <x> --preset quality --weightp --bref-mode each --lookahead 32 -c hevc --level 6 --output-depth 10
nvenc HEVC + Bframes
--vbrhq 0 --vbr-quality <x> --preset quality --weightp --bref-mode each --lookahead 32 -c hevc --level 6 -b 3
nvenc HEVC 10bit + Bframes
--vbrhq 0 --vbr-quality <x> --preset quality --weightp --bref-mode each --lookahead 32 -c hevc --level 6 --output-depth 10 -b 3
qsv H.264 (-u 1:slow, 4:medium, 7:fast)
--la-icq <x> --la-depth 60 -u <1,4,7>
qsv HEVC (-u 1:slow, 4:medium, 7:fast)
--icq <x> -u <1,4,7> -c hevc
qsv HEVC 10bit (-u 1:slow, 4:medium, 7:fast)
--icq <x> -u <1,4,7> -c hevc --profile main10 --output-depth 10
vce H.264
--cqp <x>:<x>+2:<x>+5 -u slow
--vbr <x> -u slow
vce HEVC
--cqp <x>:<x>+2:> -u slow -c hevc
--vbr <x> -u slow -c hevc
結果
というわけで、エンコード速度をずらっと並べてみた。
棒が複数ある場所は青がH.264、ピンクがHEVC、オレンジがHEVC 10bit。

HEVCのGPUエンコード速度を比べると、NVENCはslowでも十分高速だけど、QSVの場合はslowにすると画質が良い分かなり速度が落ちてしまう(Icelakeで50fps弱)。ただ、mediumやfastにすれば、多少画質は落ちるものの120fps台でのエンコードが可能なので、リアルタイムエンコが必要な場合にも対応可能となっている。
またQSVのslowだと、最近は多コアCPUが一般的になってきているのもあって、Ryzenでx265回せばよくね? みたいな話になってしまう。そういう意味でもmediumあたりを使って低電力で高速エンコ、あたりがよいのかもしれない。(QSV中の消費電力はこの辺に書いたけど、GPUがほぼ100%稼働しているにしてはCPU Package Powerが15~18W程度とかなり低い)
スポンサーサイト