画質比較 (2020.03) 実写編 エンコード速度

0 0
この前の記事 画質比較 (2020.03) 実写編 の時のエンコード速度の確認。


環境・条件



>
x264
x265
nvenc
(1060)
nvenc
(2070)
qsv
(HSW)
qsv
(KBL)
qsv
(ICL)
vce
(Vega)
CPUR7
3700X
i9 7980xei3
4170
i7
7700K
i5
1035G7
R3
3200G
CPU Clock4.4GHz4.1/4.0/3.9GHz3.7GHz4.5GHz3.7GHz4.2GHz
RAMDDR4
-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.1950587870764120.2.1
OSWin10 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。

ssim2_202003_encode_speed.png

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程度とかなり低い)
ページトップ