H.264でBフレームが使用でき、かつやっとのことで品質指定モード(qvbr-quality)も使用できるようになったということで、わずかに期待できるかもしれない、ということで久しぶりに画質比較を行ってみた。
環境
VCEEncは7950Xの環境で実行。
また、比較のため、Bフレームが使用できないRX5500XT(RDNA1)でも測定を行ってみた。
VCE/VCN環境
CPU | Ryzen9 7950X |
コア数 | 16C/32T |
L2 | 16MB |
L3 | 64MB |
メモリ | G.skill F5-6000J3238G32GX2-TZ5RS |
速度/電圧 | DDR5-6000 @ 1.4V |
容量 | 32GBx2 |
タイミング | 32-38-38-96-1 |
dGPU | 玄人志向 RD-RX5500XT-E8GB Radeon RX5500XT 8GB (ドライバ: 22.10.2) |
SSD1 | KIOXIA EXCERIA Pro 1TB PCIe Gen4 |
SSD2 | Plextor M9P 1TB NVMe PCIe Gen3 |
マザー | MSI Pro X670-P WIFI |
冷却 | Fractal Design Celsius+ S28 Prisma |
電源 | Seasonic FOCUS PX-750 |
ケース | Define 7 Compact LightTG |
OS | Windows 11 22000 |
QSV/NVENC環境
CPU | i9 12900K |
---|
コア数 | 8P+8E / 24T |
L2 Cache | 14MB |
L3 Cache | 30MB |
電圧 | Offset -0.13V~0.00V |
PL1/PL2 | 241W |
tau | 56s |
IccMax | Unlimited |
メモリ | DDR4-3600 2ch |
メモリ容量 | 8GBx4 |
タイミング | 16-19-19-39-1 |
メモリコントローラ | Gear1 |
iGPU | Intel UHD Graphics 770 (32EU) (ドライバ: 31.0.101.3277) |
dGPU | Intel Arc A380 (128EU) (ドライバ: 31.0.101.3277) |
dGPU | NVIDIA Geforce RTX 2070 (ドライバ : 497.29) |
マザー | MSI MAG Z690 TOMAHAWK WIFI DDR4 |
冷却 | Corsair iCUE H150i RGB PRO (360mm) |
電源 | Seasonic FOCUS PX-750 |
ケース | Themaltake Core V71 |
OS | Windows 11 22000 |
エンコーダ
QSVEncC 6.08
QSVEncC 7.20 (DG2用)
NVEncC 5.43
VCEEncC 7.12
入力動画
sample_movie_1080p.mpg MPEG2 1920x1080 29.97fps 5203frame
AvisynthのLWLibavVideoSourceで読み込み (SWデコード)
使用コマンド
qsv H.264 (-u 1:quality, 4:normal)
--icq <x> -u <1,4>
qsv HEVC (-u 1:quality, 4:normal)
--icq <x> -u <1,4> -c hevc
qsv HEVC 10bit (-u 1:quality, 4:normal)
--icq <x> -u <1,4> -c hevc --profile main10 --output-depth 10
qsv H.264 FF (-u 1:quality, 4:normal)
--icq <x> -u <1,4> --fixed-func
qsv HEVC FF (-u 1:quality, 4:normal)
--icq <x> -u <1,4> --fixed-func -c hevc
qsv HEVC FF 10bit (-u 1:quality, 4:normal)
--icq <x> -u <1,4> --fixed-func -c hevc --profile main10 --output-depth 10
qsv AV1 FF (-u 1:quality, 4:normal)
--icq <x> -u <1,4> --level 5.2 --fixed-func -c av1
qsv AV1 FF 10bit (-u 1:quality, 4:normal)
--icq <x> -u <1,4> --level 5.2 --fixed-func -c av1 --output-depth 10
nvenc H.264
--vbrhq 0 --vbr-quality <x> --preset quality --weightp --bref-mode each --lookahead 32 --level 5.1
nvenc HEVC
--vbrhq 0 --vbr-quality <x> --preset quality --weightp --bref-mode each --lookahead 32 -c hevc --level 6 -b 3
nvenc HEVC 10bit
--vbrhq 0 --vbr-quality <x> --preset quality --weightp --bref-mode each --lookahead 32 -c hevc --level 6 --output-depth 10 -b 3
vceenc H.264
--qvbr-quality <x> -u slow --level 5.1 -b 3 --b-pyramid --ref 4 --pa lookahead=32,motion-quality=auto
画質比較にあたっては、VCE/VCNで品質指定モードの使用できるH.264のみを検証する。
HEVCでは、RDNA2世代でも依然として品質指定モードは使用できない。そのため、
品質指定モードの使用できる他のエンコーダと比べると大きく画質ー容量比が悪化するのは明らかで公平とも言えないため、比較は行わない。
使用したオプションは下記通りで、いろいろ試したが、BフレームとPre-analysisのLookaheadを有効にした、品質を重視した設定としている。
--qvbr-quality <x> -u slow --level 5.1 -b 3 --b-pyramid --ref 4 --pa lookahead=32,motion-quality=auto
画質比較
では早速、画質比較の結果を見てみる。
bitrate-ssim
縦軸SSIMが高いほど画質がよく、横軸ビットレートが小さいほど圧縮できているので、左上にいればいるほど良いことになる。
※凡例の □ をクリックすると、グラフ線のオン/オフができます。
※マウスをグラフの 〇 のところにあてると、値が確認できます。
グラフが表示されない場合はこちら。
よく知られたことではあるが、VCEの画質ー容量比の結果は、QSV/NVENCと比べると明らかに一段劣るものとなってしまっている。
また、Bフレームの有無の差がかなり小さく、Bフレームを有効にしてもわずかに画質ー容量比が改善する程度なのは正直かなり驚いてしまった(Bフレームを有効にし忘れたのか、ログを見返してしまった)…。
bitrate-fps
今度は縦軸をエンコード速度(fps)にとったもの。
※凡例の □ をクリックすると、グラフ線のオン/オフができます。
※マウスをグラフの 〇 のところにあてると、値が確認できます。
グラフが表示されない場合はこちら。
画質ー容量比がいまいちならエンコード速度は速いのか、というとこちらもよいところはない。QSV/NVENCともにH.264は非常に高速である一方、VCE/VCNはかなり遅い結果となってしまった。
内蔵GPUだから遅いのか、というとそうでもなさそうで、そこそこの性能を持つRX5500XTでも同様である。もちろん、同じRDNA2でもRX6xxxなら高速、という可能性も残されてはいるが…
まとめ
というわけで、VCE/VCNの画質の状況を確認した。
RDNA2世代でBフレームが使用可能になった。他のサイトではBフレーム採用で画質向上、とされていたので、わずかに期待していたが、今回の比較ではその効果は限定的と言わざるを得ない結果となった。
一般にBフレームはかなり圧縮率改善に効くはずなので、困惑してしまう。
もう少し調べてみる必要があるかもしれない。