画質比較 2018.11 (アニメ版)

せっかくHEVCにBフレームの追加されたRTX2070を入手したので、画質比較を行ってみた。

今度はアニメ絵で比較。実写版はこちら

実写でもやったssimの比較に加えて、実際の絵でも比較したので、気になる法を確認してみて参考にしてください。

画像をたくさん貼ったのでちょっと重いかも…?

環境・条件



テスト用の環境はこんな感じ。

x264/x265nvenc(1060)nvenc(2070)qsv(HSW)qsv(KBL)
CPUi9 7980xe i3 4130 i7 7700K
GPU - GTX1060 RTX2070 HDG 4400 HDG 630
ドライバ 416.34 5058 6326
OS Win10 x64


使用ソフト

x264 r2901 x64
x265 2.8+74 x64
NVEncC 4.22 x64
QSVEncC 3.11 x64

入力
サクラノ詩 OP
sakura_op.mpg 1280x720 30fps 3501frame

使用コマンド
なお、x264/x265では、今回入れてない--tune ssimを入れて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> --lookahead 32

nvenc HEVC
--vbrhq 0 --vbr-quality <x> --lookahead 32 -c hevc

nvenc HEVC 10bit
--vbrhq 0 --vbr-quality <x> --lookahead 32 -c hevc --output-depth 10

nvenc HEVC + Bframes
--vbrhq 0 --vbr-quality <x> --lookahead 32 -c hevc -b 3

nvenc HEVC 10bit + Bframes
--vbrhq 0 --vbr-quality <x> --lookahead 32 -c hevc --output-depth 10 -b 3

qsv H.264
--icq <x> -u 1

qsv HEVC
--icq <x> -u 1 -c hevc

qsv HEVC 10bit
--icq <x> -u 1 -c hevc --profile main10



画質比較結果 (ssim:all)



縦軸SSIMが高いほど画質がよく、横軸ビットレートが小さいほど圧縮できているので、左上にいればいるほど良いことになる。

全データ (クリックで拡大)




多すぎてよくわからないので、少しづつ確認。

まずはCPUエンコ。なお、--tune ssimを入れてないので、さらにssim的には改善の余地があることに注意。

x264よりx265のほうが圧縮比はよいという、まあそうだろうなという結果(その分エンコ時間やばいけど…)。veryslowにすることで、1~2割程度の改善が図れることもわかる。

CPUエンコ比較(クリックで拡大)




今度はnvenc同士の比較。Turingで大幅によくなっていることがわかる。同じ設定同士でも改善しているほか、待望のHEVC+Bフレームで特に大きく改善している。

nvenc同士の比較(Pascal vs Turing) (クリックで拡大)




qsv同士の比較。

これまであまり意識したことがなかったが、H.264ではHaswell → Kabylakeで実はよくなっていることがわかる。

謎なのはHEVCで8bitだとH.264より悪いという結果に。10bitを使うことでやっと上回ることができる。

qsv同士の比較(Haswell vs Kabylake) (クリックで拡大)




現行最新世代のnvencとqsvの比較。

H.264ではqsvのほうが相変わらず優秀。

ところが、HEVCではBフレームが追加されたnvencが優位に。qsvはKabylake以来、アップデートが入っていないのが痛い。というか10nmが不調で新製品というか新アーキテクチャ?が出せないのが原因なのだろうが(一応Coffelakeという「新製品」は出ているけど、あれは単にKabylakeのコア増やしただけのやつだし…)

nvenc(2070)とqsv(Kabylake)の比較 (クリックで拡大)




デフォルト設定のCPUエンコとnvencの比較。

x264/x265は--tune ssimによってssimに最適化すればssim指標についてはさらに改善できる余地はあるとはいえ、hwエンコのHEVCを使えばx264と戦える圧縮比が出せるようになってきた、というのは大きいかも。

CPUエンコとnvencの比較 (クリックで拡大)




画質比較結果 (768フレーム目)



実写のところでもいったように、Turing世代になって全体的な改善+HEVCへのBフレーム追加で、NVENCがかなり改善されてきている。

で、数字の上ではそうなんだけど、結局どんな感じの絵なの?というところが気になるので、いつも通り絵を貼っていくことにする。

方法としては、うえのSSIMのグラフを作るのに使ったサンプル点のうち、1200~1500kbpsレンジに来ているサンプル点をピックアップして比較していく。

オリジナル


x264 medium crf=25 1364.29kbps ssim:all=0.985335


x264 veryslow crf=25 1212.76kbps ssim:all=0.985365


x265 medium crf=23 1264.9kbps ssim:all=0.987654


x265 veryslow crf=23 1300.27kbps ssim:all=0.989303


x265 10bit medium crf=23 1261.98kbps ssim:all=0.98882


x265 10bit veryslow crf=23 1359.57kbps ssim:all=0.990398


NVENC(GTX1060) H.264 vbrq=31 1429.76kbps ssim:all=0.982278


NVENC(GTX1060) HEVC vbrq=31 1527.32kbps ssim:all=0.98355


NVENC(GTX1060) HEVC 10bit vbrq=31 1423.96kbps ssim:all=0.983293


NVENC(RTX2070) H.264 vbrq=31 1360.75kbps ssim:all=0.982484


NVENC(RTX2070) HEVC vbrq=31 1413.17kbps ssim:all=0.984665


NVENC(RTX2070) HEVC 10bit vbrq=31 1412.54kbps ssim:all=0.985871


NVENC(RTX2070) HEVC+Bframe vbrq=31 1225.21kbps ssim:all=0.984764


NVENC(RTX2070) HEVC 10bit+Bframe vbrq=31 1225.88kbps ssim:all=0.985879


QSV(i3 4130) H.264 icq=25 1316.47kbps ssim:all=0.982087


QSV(i7 7700K) H.264 icq=25 1353.11kbps ssim:all=0.98375


QSV(i7 7700K) HEVC icq=25 1346.22kbps ssim:all=0.98253


QSV(i7 7700K) HEVC icq=25 1315.72kbps ssim:all=0.984027




画質比較結果 (1747フレーム目)



オリジナル


x264 medium crf=25 1364.29kbps ssim:all=0.985335


x264 veryslow crf=25 1212.76kbps ssim:all=0.985365


x265 medium crf=23 1264.9kbps ssim:all=0.987654


x265 veryslow crf=23 1300.27kbps ssim:all=0.989303


x265 10bit medium crf=23 1261.98kbps ssim:all=0.98882


x265 10bit veryslow crf=23 1359.57kbps ssim:all=0.990398


NVENC(GTX1060) H.264 vbrq=31 1429.76kbps ssim:all=0.982278


NVENC(GTX1060) HEVC vbrq=31 1527.32kbps ssim:all=0.98355


NVENC(GTX1060) HEVC 10bit vbrq=31 1423.96kbps ssim:all=0.983293


NVENC(RTX2070) H.264 vbrq=31 1360.75kbps ssim:all=0.982484


NVENC(RTX2070) HEVC vbrq=31 1413.17kbps ssim:all=0.984665


NVENC(RTX2070) HEVC 10bit vbrq=31 1412.54kbps ssim:all=0.985871


NVENC(RTX2070) HEVC+Bframe vbrq=31 1225.21kbps ssim:all=0.984764


NVENC(RTX2070) HEVC 10bit+Bframe vbrq=31 1225.88kbps ssim:all=0.985879


QSV(i3 4130) H.264 icq=25 1316.47kbps ssim:all=0.982087


QSV(i7 7700K) H.264 icq=25 1353.11kbps ssim:all=0.98375


QSV(i7 7700K) HEVC icq=25 1346.22kbps ssim:all=0.98253


QSV(i7 7700K) HEVC icq=25 1315.72kbps ssim:all=0.984027




結構微妙な差なのもあって、静止画で比べてもなおよくわからんものもちらほら。まあx264/x265の画質がいいのはさすがという感じだけど、NVENCのBフレーム付きのHEVCも結構いい線言ってるんじゃないかと思う。そもそも昔はぱっと見ただけでHWエンコはそれとわかったのが、よく見れば…という感じになってきていて、着実に進化しているんだなと感じた。

また昔はNVENCとQSVを比べると、QSVのほうがいいという感じだったけど、Turing世代で逆転してしまったかな、という印象。QSVはさっきも書いたけど、遅れに遅れている10nmのせいで、新製品(新アーキテクチャ)を出せていないし、また当分は出そうにないのが痛い。もうIcelakeとか14++で作ってくれないかな…。



ssimのグラフ作るのに大量にエンコード・集計したので疲れた & 部屋が熱くなった…。



実写版はこちら


スポンサーサイト

コメントの投稿

非公開コメント

No title

お疲れ様です
相変わらず、いい仕事してますねぇ~

画像とビットレート、SSIMなどをそれぞれ比較してじっくり見てみましたが、Turing世代のHEVCの大健闘っぷりはすごいですねぇ
画像ごとのビットレートを見ると、NVEnc HEVCのBフレームありはx265よりほんの少し低ビットレートになっている状態でこの結果ですので、
逆にNVEnc HEVCのBフレームありのほうが少々ビットレートを高めになるような設定でエンコードした場合は、なお一層いい勝負になるだろう
ことは容易に想像がつきますね
いよいよ本格的にNVEncを使う時代がやってきたようです!

Re: No title

ありがとうございます。参考となれば幸いです。

正直、Turingでここまで改善されるとは驚いていて、速度もそれなりに出るので、使いやすくなっているかなという印象です。

あとはRTX2060、RTX2050…などで手を出しやすくなるといいのですが。ちょっと現行のTuring世代は値段が高いです…。
プロフィール

rigaya

Author:rigaya
アニメとか見たり、エンコードしたり。
連絡先(@を半角にしてください!)
rigaya34589@live.jp
github

最新記事
最新コメント
カテゴリ
月別アーカイブ
カウンター
検索フォーム
いろいろ
公開中のAviutlプラグインとかのダウンロード

○Aviutlプラグイン
x264guiEx 2.xx (ミラー)
- x264を使用したH264出力
- x264guiExの導入>
- x264.exeはこちら>

x265guiEx (ミラー)
- x265を使用したH.265/HEVC出力
- x265.exeはこちら>

QSVEnc + QSVEncC (ミラー)
- QuickSyncVideoによるH264出力
- QSVEncCはコマンドライン版
- QSVEncC 導入/使用方法>
- QSVEncCオプション一覧>

NVEnc + NVEncC (ミラー)
- NVIDIAのNVEncによるH264出力
- NVEncCオプション一覧>

VCEEnc + VCEEncC (ミラー)
- AMDのVCEによるH.264出力

ffmpegOut (ミラー)
- ffmpeg/avconvを使用した出力

自動フィールドシフト (ミラー)
- SSE2~AVX2による高速化版
- オリジナル: aji様

エッジレベル調整MT (ミラー)
- エッジレベル調整の並列化/高速化
- SSE2~AVX対応
- オリジナル: まじぽか太郎様

バンディング低減MT (ミラー)
- SSE2~AVX2による高速化版
- オリジナル: まじぽか太郎様

PMD_MT (ミラー)
- SSE2~FMA3による高速化版
- オリジナル: スレ48≫989氏

透過性ロゴ (ミラー)
- SSE2~FMA3によるSIMD版
- オリジナル: MakKi氏

AviutlColor (ミラー)
- BT.2020nc向け色変換プラグイン
- BT.709/BT.601向けも同梱

○その他
x264afs (ミラー)
- x264のafs対応版

aui_indexer (ミラー使い方>)
- lsmashinput.aui/m2v.auiの
 インデックス事前・一括生成

auc_export (ミラー使い方>)
- Aviutl Controlの
 エクスポートプラグイン版
 エクスポートをコマンドから

aup_reseter (ミラー)
- aupプロジェクトファイルの
 終了フラグを一括リセット

CheckBitrate (ミラー, 使い方, ソース)
- ビットレート分布の分析(HEVC対応)

チャプター変換 (ミラー使い方>)
- nero/appleチャプター形式変換

エッジレベル調整 (avisynth)
- Avisynth用エッジレベル調整

メモリ・キャッシュ速度測定
- スレッド数を変えて測定

○ビルドしたものとか
L-SMASH (ミラー)
x264 (ミラー)
x265 (ミラー)

○その他
サンプル動画
その他

○読みもの (ミラー)
Aviutl/x264guiExの色変換
動画関連ダウンロードリンク集
簡易インストーラの概要

○更新停止・公開終了
改造版x264gui
x264guiEx 0.xx
RSSリンクの表示
リンク
QRコード
QR