今度はより広くQSVEnc/NVEnc/VCEEncのH.264/HEVCのそれぞれについて、VBRモードで多くのGPUで画質比較を行った。
比較環境
QSV
Arc A380
i9 12900K iGPU
i7 7700K iGPU
i3 4170 iGPU
NVENC
RTX4080
RTX2070
GTX1060
VCEEnc
7950X iGPU
RX5500XT
RX550
エンコーダ
QSVEncC 7.23
NVEncC 7.02
VCEEncC 7.12
入力動画1 (アニメ版)
sakuranotoki_op.mp4 H.264 1920x1080 30fps 3194frame
AvisynthのLWLibavVideoSourceで読み込み (SWデコード)
使用コマンド
qsv H.264 VBR (-u 1:quality, 4:normal)
--fallback-rc --la-depth 60 --la [x] -u [1,4] -c h264 --level 5.1
FF: [--fixed-func]
qsv HEVC VBR (-u 1:quality, 4:normal)
--fallback-rc --la-depth 60 --la [x] -u [1,4] -c hevc --level 6 --max-bitrate 60000
10bit: [--profile main10 --output-depth 10]
FF: [--fixed-func]
qsv AV1 VBR (-u 1:quality, 4:normal)
--fallback-rc --la-depth 60 --la [x] -u [1,4] -c av1 --max-bitrate 60000
10bit: [--output-depth 10]
nvenc H.264 VBR
--vbr [x] --level 5.1
quality: --preset quality --multipass 2pass-full --lookahead 32 --weightp --bref-mode each
nvenc HEVC VBR
--vbr [x] -c hevc --level 6
quality: --preset quality --multipass 2pass-full --lookahead 32 --weightp --bref-mode each
10bit: --output-depth 10 --profile main10
nvenc AV1 VBR
--vbr [x] -c av1
quality: --preset quality --multipass 2pass-full --lookahead 32 --weightp --bref-mode each
10bit: --output-depth 10
vceenc H.264 VBR
--vbr [x] --level 5.1 --max-bitrate 60000
quality: -u slow
vceenc HEVC VBR
--vbr [x] -c hevc --level 6 --max-bitrate 60000
quality: -u slow
10bit: --output-depth 10 --profile main10
vceenc AV1 VBR
--vbr [x] -c av1 --max-bitrate 60000
quality: -u slow
10bit: --output-depth 10
画質比較(H.264)
では早速、画質比較の結果を見てみる。あまり線が多いと分かりにくくなるので、まずH.264から。
bitrate-vmaf
縦軸vmafが高いほど画質がよく、横軸ビットレートが小さいほど圧縮できているので、左上にいればいるほど良いことになる。
※凡例の □ をクリックすると、グラフ線のオン/オフができます。
※マウスをグラフの 〇 のところにあてると、値が確認できます。
グラフが表示されない場合はこちら。
H.264に関しては、RTX20xx以降のNVENCが最も画質ー容量比で優れているようで、そのあとに内蔵GPUのQSV、そしてGTX10xxのNVENCやArc A380のQSVと続く。
SandyBridge(i5 2410M)のQSVはやはり初代だけあって、多少画質ー容量比で劣っているのが確認できる。
VCE/VCNについては、Bフレームの採用で画質の向上したRDNA2(7950X iGPU)は、RDNA1(RX5500XT)やその前の世代のエンコーダよりかなり画質ー容量比が改善しているようだ。以前固定品質モードでは大きな差がなかったが、VBRモードで真価を発揮するということだろうか?
ただ、その大きく改善したRDNA2のエンコーダでさえ、SandyBridgeのQSVには画質ー容量比で追いつけていない。
SandyBridgeは、2011年発売で32nmプロセスだ。そのSandyBridgeのiGPUに、今年発売の6nmのZen4 iGPUが画質ー容量比で負けてしまうのは、なかなか悲しいものがある。
12/16に発売のRDNA3では、改善されることを期待したいが…
bitrate-ssim
縦軸SSIMが高いほど画質がよく、横軸ビットレートが小さいほど圧縮できているので、左上にいればいるほど良いことになる。
※凡例の □ をクリックすると、グラフ線のオン/オフができます。
※マウスをグラフの 〇 のところにあてると、値が確認できます。
グラフが表示されない場合はこちら。
ssimでは、基本的にはvmafとそう大きくは変わらないが、細部では順序が入れかわっていたりする。
bitrate-fps
今度は縦軸をエンコード速度(fps)にとったもの。
※凡例の □ をクリックすると、グラフ線のオン/オフができます。
※マウスをグラフの 〇 のところにあてると、値が確認できます。
グラフが表示されない場合はこちら。
Intel Arc GPUやRTX20xx以降のNVENCは高画質なうえに高速で、非常に素晴らしいできだと思う。
VCEも、RX550ではあまり速度が出ないものの、RX5500XTは健闘している。7950Xの内蔵GPUはやはり内蔵GPUだけに非力なのかもしれない。
画質比較(HEVC)
次にHEVCを見てみよう。
bitrate-vmaf
縦軸vmafが高いほど画質がよく、横軸ビットレートが小さいほど圧縮できているので、左上にいればいるほど良いことになる。
※凡例の □ をクリックすると、グラフ線のオン/オフができます。
※マウスをグラフの 〇 のところにあてると、値が確認できます。
グラフが表示されない場合はこちら。
HEVCでは、Arc A380が画質ー容量比で一番優れる結果となった。その後、i9 12900K内蔵GPU、RTX20xx以降のNVENCと続く。
IceLake以前(ここでは7700K)のHEVCはかなり微妙な結果だ。
H.264のときと同じく、RDNA2(7950X iGPU)は、RDNA1(RX5500XT)よりも画質ー容量比で特に低ビットレートよりで改善されていて、低ビットレート側では7700Kを上回ることができている。とはいえ、7700KのHEVCもあまりほめられたものではないのだが…。HEVCについても、RDNA3で改善されることを期待したい。
bitrate-ssim
縦軸SSIMが高いほど画質がよく、横軸ビットレートが小さいほど圧縮できているので、左上にいればいるほど良いことになる。
※凡例の □ をクリックすると、グラフ線のオン/オフができます。
※マウスをグラフの 〇 のところにあてると、値が確認できます。
グラフが表示されない場合はこちら。
ssimでは、基本的にはvmafとそう大きくは変わらないが、細部では順序が入れかわっていたりする。
bitrate-fps
今度は縦軸をエンコード速度(fps)にとったもの。
※凡例の □ をクリックすると、グラフ線のオン/オフができます。
※マウスをグラフの 〇 のところにあてると、値が確認できます。
グラフが表示されない場合はこちら。
VCEのエンコード速度が暴れてしまっているが、速度が出ればVBRモードではかなり速度が出るようだ。
Intel Arc GPUは高画質なうえに高速で、非常に素晴らしいできだと思う。
NVENCに関しては少しずつ高速化しているが、最高画質設定はなかなか重いようだ。
Intelの内蔵GPUのHEVCは高画質な代わりにかなり遅め。もちろん、これも設定次第ではあるのだが…。
まとめ
ということでなかなか大量のデータとなってしまい、見づらいかもしれないが、VBRモードで手持ちのGPUで画質比較を行った。
HWエンコードが少しずつ進化してきている様子も確認できたし、画質ー容量比で相対的にどのくらいの位置にいるのかわかって満足。
さて、そろそろRDNA3発売日となる(どういうわけか日本は12/16だが)。
GPU性能自体も楽しみではあるが、それはさまざまなレビューを見させていただくとして、AV1に対応するとされるRDNA3がどのようなエンコーダを搭載してくるのか、非常に楽しみだ。