QSVEnc 1.01

[共通]
Intel Media SDK 2013 R2 ベースに移行、API v1.7に仮対応。
・libmfxsw32.dll / libmfxsw64.dll を更新。

指定しても効果のないAPI v1.6の機能を削除。
- マクロブロック単位のレート制御
- 拡張レート制御 (ビットレート指定モードの時のみ)

API v1.7の機能を追加。
- 先行探索レート制御 (lookahead)
- 歪みレート最適化 (trellis)


[QSVEncC]
qualityオプションが正しく読めない問題を修正。
ご指摘ありがとうございます。



期待のLookaheadを追加したので、あとはAPI v1.7対応のドライバ待ち。今出ているドライバでは使えないので、チェックも当然できていない。まあ仮対応、ということで。



QSVEnc ダウンロード>>


スポンサーサイト

コメントの投稿

非公開コメント

QSVEncC 0.23v2からのバージョンアップ

QSVEncC 0.23v2からのバージョンアップ報告です
すばやい対応、お疲れ様です、感謝です

同じソース、同じオプションで164fpsから175fpsへ10fps近く速くなりました
SandyBridgeなんですが、色空間変換がAVX対応になったのが効いたのかな?

以下が使用コマンド
QSVEncC.exe --vbr 4000 --maxbitrate 12000 --quality balanced --bframes 2 --gop-len 30 --crop 0,0,0,8 --tff --avi -i "input.avs" -o "output.264"

win8クリーンインスト実行

クリーンインストした後Updateがあるのを気がつきました。
さて結果ですが。
Win8クリーンインスト直後はhw-checkが成功したものの
数時間経った時IntelHDグラフィックスアイコンからPOPUPで
「Displayが接続されていません」と通知があった以降
hw-checkが通らなくなりました。それまでは動いていたのになんで?
仕方がないので一度復元から戻し即効でテストしてみました。
結果としてはHWエンコも成功し150fpsをキープ。
(ivyの160fpsに比べて多少落ちたかなって程度)
2度目を実施しようとするとPOPUPで打ち止め。
そこで今度は仮想VGAを立てて確認。
すると以前と違ってWARNINGも出ずHWエンコできました。
150fpsキープです。
--qualityのオプションも問題ありません。fastestからbestまで
正常に動作するようです。
ただ。fpsがほとんど誤差範囲でしか変わりませんでした。
品質は・・・当方の目では違いがわかりません。
長さ5分30秒619MBの地デジTSアニメで
best73MB。fast78MB。faster80MB。fastest81MBという結果に。
はて?品質が良くなるのならfastestよりbestの方が容量多くなる
ならわかりますがなぜか逆転してる。
でも満足の結果です。Win7ではWin8と変わりありませんでした。
ありがとうございました。
option
--y4m --quality best --output-res 1280x720 --cqp 24:26:27 --gop-len 300 --bframes 3 --scenechange --profile high --level 4.1 --sar -16:-9 -i - -o %output_264%
avs2pipemod使用です。

No title

お二人とも報告ありがとうございます。

SandyBridgeでも高速化するのですね。AVXに加え、Media SDK側でも改良が行われたのかもしれないです。

dGPUや品質設定については時間ができたらもう少し細かく調べてみます。

高速化されません・・・

QSVEncを便利に利用させていただいております、ありがとうございます。

構成はCore i3 3225 + DDR3-1600 8GB + P8H77i です。
Aviutlにて入力プラグインはm2v.auiを使用しています。Aviutl側は何もフィルタ等使用していません。

QSVEnc0.19v2以降バージョンアップを行っていますが、どうしても高速化されず1440×1080iのエンコードで0.19v2では120fps前後ですが、1.01も含めて0.20以降のバージョンでは100fps程度となってしまいます。

0.20以降の高速化はcore i7 などのCPUパワーがあるものに対して有効なのでしょうか?0.19v2ではCPU使用率が50%を切るのですが、1.01では60%程度に上昇しています。

それとも、パイプモードなどを使用してAviutlは使用しないほうがよいのでしょうか・・・

何か見落としがあるとは思うのですが、アドバイスいただけると幸いです。

参考に実行ログを以下に示します。

0.19v2実行時
------------------------------------------------------------------------------------------------------------------------------
[D:\共有フォルダ\testtest.mp4]
------------------------------------------------------------------------------------------------------------------------------
auo [info]: converting YUY2 -> NV12i, using SSE2 SSSE3
qsv [info]: based on Intel(R) Media SDK Encoding Sample Version 3.5.915.45327
qsv [info]: Input Frame Format NV12
qsv [info]: Output Video H.264/AVC High @ Level 4
qsv [info]: 1440x1080i 4:3 29.970fps (30000/1001fps), interlaced(tff)
qsv [info]: Encode Mode Constant QP (CQP)
qsv [info]: CQP Value I:24 P:26 B:27
qsv [info]: Target usage quality
qsv [info]: Ref frames 2 frames
qsv [info]: Bframe Settings 3 frames
qsv [info]: Max GOP Length 300 frames
qsv [info]: Scene Change Detection off
qsv [info]: Memory type d3d9
qsv [info]: Input Buffer Size 4 frames
qsv [info]: Intel iGPU ID 1st GPU
qsv [info]: Media SDK impl QuickSyncVideo (hardware encoder), API v1.4
auo [info]: NeroAacEnc で音声エンコードを行います。 AAC-LC ビットレート指定, 128kbps
qsv [info]: encoded 54560 frames, 119.82 fps, 9892.16 kbps, 2146.78 MB

qsv [info]: frame type IDR 182
qsv [info]: frame type I 182, total size 13.46 MB
qsv [info]: frame type P 13640, total size 779.45 MB
qsv [info]: frame type B 40738, total size 1353.87 MB
auo [info]: QuickSyncVideoエンコード : 0時間 7分35.4秒
auo [info]: L-SMASH muxer でmuxを行います。映像: on, 音声:off, tc:off, 拡張モード:なし
auo [info]: L-SMASH remuxer でmuxを行います。映像: on, 音声: on, tc:off, 拡張モード:なし
auo [info]: 総エンコード時間 : 0時間 9分 4.9秒

2013年7月5日 23時07分 エンコード終了
-------------------------------------------------------------------------------------

1.01実行時
------------------------------------------------------------------------------------------------------------------------------
[D:\共有フォルダ\testtest.mp4]
------------------------------------------------------------------------------------------------------------------------------
auo [info]: converting YUY2 -> NV12i, using SSE2 SSSE3 AVX
qsv [info]: API v1.6 feature is currently limited to Haswell CPUs.
qsv [info]: based on Intel(R) Media SDK Encoding Sample Version 4,0,760,0
qsv [info]: Input Frame Info auo: yuy2->nv12, 1440x1080, 30000/1001 fps
qsv [info]: Output Video H.264/AVC High @ Level 4
qsv [info]: 1440x1080i 4:3 29.970fps (30000/1001fps), interlaced(tff)
qsv [info]: Encode Mode Constant QP (CQP)
qsv [info]: CQP Value I:24 P:26 B:27
qsv [info]: Target usage 1 - best
qsv [info]: Ref frames 2 frames
qsv [info]: Bframe Settings 3 frames
qsv [info]: Max GOP Length 300 frames
qsv [info]: Scene Change Detection off
qsv [info]: Memory type d3d9
qsv [info]: Input Buffer Size 3 frames
qsv [info]: Intel iGPU ID 1st GPU
qsv [info]: Media SDK impl QuickSyncVideo (hardware encoder), API v1.6
auo [info]: NeroAacEnc で音声エンコードを行います。 AAC-LC ビットレート指定, 128kbps
qsv [info]:
qsv [info]: encoded 54560 frames, 102.55 fps, 9892.16 kbps, 2146.78 MB
qsv [info]: encode time 0:08:52

qsv [info]: frame type IDR 182
qsv [info]: frame type I 182, total size 13.46 MB
qsv [info]: frame type P 13640, total size 779.45 MB
qsv [info]: frame type B 40738, total size 1353.87 MB
auo [info]: QuickSyncVideoエンコード : 0時間 8分52.1秒
auo [info]: L-SMASH muxer でmuxを行います。映像: on, 音声:off, tc:off, 拡張モード:なし
auo [info]: L-SMASH remuxer でmuxを行います。映像: on, 音声: on, tc:off, 拡張モード:なし
auo [info]: 総エンコード時間 : 0時間10分29.7秒

2013年7月5日 23時19分 エンコード終了
-------------------------------------------------------------------------------------





No title

>>Hiroさん
Input Buffer Sizeは同じ値に合わせて比較した方がいいのでは?

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

No title

>Hiro様
QSVEnc 0.19と1.01でこれほど差が出るとは驚きました。

QSVEnc 0.19と0.20で速度に影響する変更は2点あります。

1. yuy2→nv12変換でstream命令をstore命令に変更。
2. 内部パラメータpipelinedepthを 3 から 6 に変更。

もう一度手元で試しましたが、QSVEncでは基本的に変更後(0.20~1.01)のほうがわずかですが速い結果となりました。加えてQSVEncCでは上のほうで報告してくださっている方がいるように大きく高速化しています。

遅くなるというのはCPUやGPUの違いによるものなのかもしれないと思いますが、Core i7系しか持っていないため、ちょっと検証が難しいです。

そこで、面倒かけますが時間があるときにテストにご協力いただけないでしょうか?

2つの変更のうち、どちらが影響しているのかを調べるため、4パターン作成しました。
1. store命令 + pipelinedepth 3 (QSVEnc 1.01と同じ)
2. stream命令 + pipelinedepth 3
3. store命令 + pipelinedepth 6
4. stream命令 + pipelinedepth 6 (QSVEnc 0.19と同じ)

こちらの"QSVEnc_test_stream_and_pipelinedepth.zip"の中に4通りのQSVEnc.auoを入れたので、それぞれ同じ設定で速度を比較していただけれとありがたいです。
http://cid-6bdd4375ac8933c6.office.live.com/browse.aspx/QSVEnc/test


>ご指摘いただいた方へ
ありがとうございます。次回修正します。

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

No title

>Hiro様
面倒なテストしてくださりありがとうございました。感謝です。

しかし、結果として1.のv1.01が最も速くなっており、またv0.19相当のものも速度が出ておらず、原因がさらにわからなくなってしまいました。すみません…。

おっしゃているように、Aviutlの設定の問題なのでしょうか? うーん。

QSVEncの速度に影響する要因として、Aviutlの色変換が挙げられます。QSV実行時には、nilpoさん作成の色変換プラグイン(http://nilposoft.info/archives/435)を使用したほうが高速になると思います。これは色変換というメモリコピーのような処理をマルチスレッドで行なっても、メモリアクセスの競合を引き起こすだけでメリットがないことが多いためです。[設定]>[色変換の設定]から無変換を選択して使用します。こちらも試してみていただければと思います。

No title

先に示した0.19と1.01の比較はaviutlの設定に違いがありました。お騒がせしてすみません。

aviutlに組み込まれている「YUY2フィルタモード」(システムの設定でON/OFF)を使用するかしないかがかなり影響していました。条件をそろえて、紹介いただいたnilpoさん作成の色変換プラグイン(yuy2_color_st)を使用した場合と比較してみました。

1440×1080i
1.01+YUY2フィルタモード  123.5 fps
1.01+yuy2_color_st      116.8 fps
0.19+YUY2フィルタモード  120.4 fps
0.19+yuy2_color_st      112.3 fps

720×480i
1.01+YUY2フィルタモード  324 fps
1.01+yuy2_color_st      440 fps
0.19+YUY2フィルタモード  268 fps
0.19+yuy2_color_st      327 fps

結果的には、同条件であれば1.01は0.19より速いという結果になりました。ただ、フィルタモードの影響に関しては、元の動画のサイズで速度が反転してしまいました。このあたりは、デコード側のボトルネックが効いてCPUの能力の影響が大きいのでしょうか?

基本的には「1.01+yuy2_color_st」で運用していこうと思います。

No title

ああ、なるほど、yuy2フィルタモードですか、それなら速くなっていたのも頷けます。メモリコピーの量が減る分高速化するはずです。

yuy2フィルタモードは基本的にいつでも高速だと思っていたので、低解像度の結果は意外です。なぜだ…。

※特定のところだけ削除はできないので、一度コメント削除して再投稿で対応させていただきました。

No title

その後何度かテストしていたところ、yuy2フィルタモード+QSVEnc1.03で、720×480i のエンコードが510fps出るようになりました。yuy2フィルタモードの方がすべてのケースで速いということになりました。GPUのクロックもコンスタントに1050MHzに到達しています。とりあえず、いいセッティングが見つかったのでこれで行きます。(すみません、いろいろいじって、先のテストで速度が低かった原因がよくわからなくなりました・・・)

ところで、yuy2フィルタモードとyuy2_color_stは、エンコード結果に大きな差が出るのでしょうか?

Re: No title

> ところで、yuy2フィルタモードとyuy2_color_stは、エンコード結果に大きな差が出るのでしょうか?
特に顕著な差はないと思います。どうしても気になるようでしたら実際に試してみていただければと思います。
プロフィール

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