HaswellでのQSVEncを細かく

タイトル通り、HaswellでのQSVを細かく調べた。

特に品質設定とビットレートや速度、あるいはメモリ速度との関係など。

注意



この記事はHaswellについての記事です。7段の品質設定は、Haswellの機能と思われるので、Sandy/Ivyでは異なる特性を示すと思います。(そして速度だけ見ればIvyが一番速い可能性が高いです)



構成と設定



構成
Core i7 4770K
ASRock Z87 Extreme4
GSkill F3-2600C10Q-16GTXD (DDR3-2600)
MSI N660GTX Twin Frozr III OC
Corsair H100i
Platimax EPM600AWT
Antec P280
Plextor M5P 256GB
HGST 0S03357
HGST HDP725050GLA360

設定・環境
Core i7 4770K, 4C/8T
 Core = 4.5GHz @ 1.305V
 Cache = 4.2GHz @ 1.300V
 GPU = 1250MHz (Auto)

Win7 x64 SP1
Intel HDG4600 9.15.10.3186 ドライバ
Aviutl 1.00
QSVEnc 1.03
lwinput.aui r629 (POP氏ビルド)

avisynth 2.6.0 alpha 4
QSVEncC x86 1.03 (※x86のほうがなぜか高速)
LSMASHSource r629 (POP氏ビルド)

ソース
H.264/AVC, 1920x1080p, 23.976fps, 2154frames, 112MB
lwinput.aui / LSMASHSource(dr=true) 読み

QSVEnc設定
VQP: 22:24:27
品質設定: 4 - balanced
シーンチェンジ検出: オン


QSVEncCオプション
--vqp 22:24:27 --scenechange --crop 0,0,0,10

iGPU(HDG4600)は例のなんちゃってマルチモニタで2nd GPUとして使用。

速度はいつもどおり一発勝負。



QSVEncC 品質設定と速度・ビットレートの関係



まずはQSVEnCのほうから。LSMASHSource(dr=true)のavsファイル経由で読み込み、QSVEncC側でcropしたあと、そのままエンコードしている。

この時のメモリ速度はDDR3-2666。

QSVEncC_speed_bitrate_table

QSVEnc_Quality_Bitrate

品質設定を変えていくとどうなるか、という図。

高速寄りに振っていくと、速度が大幅に上昇し、そのかわり圧縮率が下がる、というまあ当たり前の図になってる。こうしてみると「4 - balanced」が費用対効果がよさそうに見える。VQPで基本的に品質設定によらず同じQP値でエンコードするとはいえ、細かい画質に差がある可能性はあるだろうけど、「1 - best」あたりが本当に速度低下に見合った品質かは怪しいかなと。




QSVEncC メモリ速度とQSVエンコ速度




前はIvyBridgeで調べたけど、今度はHaswellで。

今回比べるメモリ速度は

DDR3-1066 (17.1GB/s) CL=6-6-6-16-2
DDR3-1333 (21.3GB/s) CL=7-7-7-18-2
DDR3-1600 (25.6GB/s) CL=8-8-8-20-2
DDR3-1866 (29.9GB/s) CL=9-9-9-24-2
DDR3-2133 (34.1GB/s) CL=9-11-10-28-2
DDR3-2400 (38.4GB/s) CL=10-11-11-30-2
DDR3-2666 (42.7GB/s) CL=10-12-12-31-2

メモリのレイテンシは一般的な値を適当に設定したもの。メモリ電圧は面倒なので全部1.65V。

QSVEnc_MemSpeed_Speed

相変わらずメモリ速度に強烈に依存する特性は健在みたい。高速な設定では、特にDDR3-2133ぐらいまでは大きく速度が伸びている。一方、高品質よりの設定では、メモリ速度による差はさほど大きくはない。



QSVEncC 品質設定とQSVエンコ速度



今度は、さっきのグラフの軸を取り替えたもの。データとしては同じ。

QSVEnc_Quality_Speed

品質設定 3 と 4 の速度差がやたら大きいこと、高品質設定ではメモリ速度による差が小さいことなどがはっきりする。

一応、GPU Boostのかかり具合を確認。品質設定 1~7までを連続で実行した時のGPU-Z。

QSVEncC_2666_02

GPU Loadのところに山が7つあるけど、これがそれぞれ品質設定 1(best)~7(fastest)で実行した時のもの。GPU Core Clockをみるとこの間ずっと上限(1250MHz)に張り付いた状態になっている。品質設定を高速寄りに振るに連れ、GPU使用率が下がりはするが、それでもBoost状態は維持できているようだ。



QSVEnc 品質設定とQSVエンコ速度



今度はAviutlの出力プラグイン、QSVEnc.auoのほう。メモリ速度はDDR3-2666。

QSVEnc_spped_table

QSVEncauo_speed_quality

え゛…なんでこうなった。遅いし、品質設定によって速度が変わってない = 高速設定にしても速くなってない。

理由は簡単で…


QSVEnc_2666


こんなかんじで、さっきのQSVEncCの時と違ってGPU負荷、GPUの動作周波数共に不安定ことが原因。これは品質「3 - high」あたりだけど、このあと高速寄りの品質:4~7では完全にGPU Boostが止まり、最低クロックの600MHzで安定してしまった。むう。

ちなみに色変換にはnilpo氏のyuy2_color_stを使わせてもらっている。QSV実行時には色変換はシングルスレッドのほうが10%ぐらい速くなる。



まとめ?



・Haswellでは確かに7段階の品質設定が存在する。

・品質 「4:balanced」と「3:high」の間には大きな速度差がある。

・メモリ速度は相変わらず大きく効く。DDR3-1866ぐらいはあるといいかもしれない(このぐらいなら値段も大して高くないし)。

・今回GPUは定格だが、GPUもオーバークロックするならもっと高速なメモリがあるといいかも。ただ高いからねえ、円安だし。

・HaswellのQSVEncで速度が出ない場合、GPU Boostが効かなくなってしまってるかもしれない。



昔はQSVEncとQSVEncCの速度差は大したことなかったけど、

・0.20からのチューニング
・avsのvfw経由の読み込み
・LSMASHSourceのDirectRenderingに対応したcropオプション

あたりでQSVEncCのほうが速くなったのでだいぶ差がついてきた。(QSVEncCのほうが速い)

そのうえHaswell + QSVEncでGPU Boostがかからないとなると致命的なので、どうしたものか…。もちろん解像度や設定次第ではちゃんとBoostしてくれるんだろうけど…。


スポンサーサイト

コメントの投稿

非公開コメント

No title

素朴な疑問ですが品質設定が7~2まではずっと減少してきたビットレートが、品質設定:1になると上がってしまっていますが、これは(画質を上げる為にビットレートが盛られるせいで)同等の出力画質で比較した場合の圧縮率自体は品質設定:2よりは上であると考えてよい...のかな?

15.31.14.3220

beta版だとは思うのですが、MediaSDK\config.iniがapiversion=107になっており、API v1.7に対応してそうなのでお知らせします。

15.31.14.3220
http://www.station-drivers.com/page/intel%20graphics.htm

No title

>品質設定:1
画質が飛躍的に良くなっていたりはしないので、割と謎です…。

>15.31.14.3220
お知らせ下さりありがとうございます。Lookaheadモード、いろいろ試してみました。
http://rigaya34589.blog135.fc2.com/blog-entry-380.html
プロフィール

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