QSVEncのLookaheadモード

Intlドライバの3220が出てる、とのコメントを頂きありがとうございました。

ためしてみるとAPI v1.7として認識され、無事Lookaheaadモードが動作した。

このLookaheadモードを細かく調べてみる…というのが内容。割といいかも?

QSVの問題点



1. 画質が悪い。

2. 特にビットレート指定モードの画質が悪い。
動きが激しかったり、場面の切り替わりだったり、フェードイン・アウトだったりするような容量を喰う場面で十分なビットレートを割り当られず、そうした場面で映像が破綻する。

3. CQP・VQPはそうした心配は無いものの、それでも画質が不安定。圧縮率がそもそも低いうえに、グラデーションのようなところを端折りがちで、ブロックのように見えたりする。

Lookaahead(先行探索付きレート制御)は、特にこの2番目の問題を解決できる。数多くのフレームを先行して分析しておくことで、ビットレートの配分の最適化と圧縮率の向上を狙っているみたい。

また、Lookahead depthというパラメータによってどのくらいフレーム分解析するかを指定できる。最大100まで。



環境・設定



環境
Core i7 4770K, 4C/8T
 Core: 4.5GHz @ 1.305V
 Cache: 4.3GHz @ 1.300V
 GPU: 1250MHz(Auto)

DDR3-2666, 2ch, 16GB, 10-12-12-31-2

Win7 x64 SP1
Intel 3220ドライバ
Avisynth 2.6.0 alpha 4
LSMASHSource.dll r629 (POP氏ビルド)
x264 r2334 x64

ソース
この大空に、翼をひろげて FLIGHT DIARY オープニングムービー(Downloadできるやつ)
VC-1, 1280x720p, 30.00fps, 3140frmaes, 約1分45秒, 70.5MB




エンコード後のビットレートがほぼ2000kbpsとなるように以下のオプションでエンコードした結果を比較した。

Lookaheadモード depth=40 (la2000_40)
--la 2000 --maxbitrate 25000 -u best --scenechange --la-depth 40 --crop 0,0,0,16

Lookaheadモード depth=60 (la2000_60)
--la 2000 --maxbitrate 25000 -u best --scenechange --la-depth 60 --crop 0,0,0,16

Lookaheadモード depth=100 (la2000_100)
--la 2000 --maxbitrate 25000 -u best --scenechange --la-depth 100 --crop 0,0,0,16

CBRモード
--cbr 2000 --maxbitrate 25000 -u best --scenechange --crop 0,0,0,16

VBRモード
--vbr 2800 --maxbitrate 25000 -u best --scenechange --crop 0,0,0,16

CQPモード
--cqp 25:27:30 -u best --scenechange --crop 0,0,0,16

VQPモード
--vqp 24:26:29 -u best --scenechange --crop 0,0,0,16

x264 2000kbps
--preset slower --bitrate 2000 --pass x --stats "[statsfile]" --ipratio
1.5 --qcomp 0.75 --vbv-bufsize 25000 --vbv-maxrate 25000 --keyint 300 --min-keyint 4 --bframes 4 --ref 5



速度とビットレート



で、速度とビットレートから。

QSVEnc_haswell_lookahead

ビットレートが折れ線。すべてのケースでほぼ2000kbpsになうようにしていることの確認。

棒グラフがエンコード速度。CQP/VQPが一番高速で、Lookaheadモードはやや遅め。ただ、それでもかなりの速度が出ているし、lookahead depthを変更しても速度に大きな差はないことがわかる。ちなみに、全パターンについてGPU Boostはきっちりかかっていた。



画質の比較



今回は2箇所で。

1つめが動きの少ないところ。2つめは動きの大きいところ。

画像は一部切り取りなのだけど、右端が切れているので、もしよければ別ウィンドウで開いて比較などしてください。



画質1 (1721フレーム目)



まず1721フレーム目で比較してみる。

オリジナル
見るところとしては、上のあたりとか、背景のテクスチャのあたりとか。
1721_original


Lookaheadモード depth40
髪のあたりの鮮明さもある程度保たれてるし、背景のテクスチャも少し潰れてるとはいえそれでも割と残ってる。
1721_la2000_40



Lookaheadモード depth60
背景のテクスチャの潰れ具合を見るにわずかにdepth40より劣化したかも。
1721_la2000_60



Lookaheadモード depth100
これも同様で、背景のテクスチャの潰れ具合から、わずかにdepth60よりも劣化した気がする。
1721_la2000_100



CBRモード 2000kbps
結構ひどい。
1721_cbr_2000



VBRモード 2800kbps
さらにひどい。というか2800kbpsで指定しないと2000kbpsにならないあたりもひどい。
1721_vbr_2800



CQPモード 25:27:30
かなり綺麗だと思う。
1721_cqp



VQPモード 24:26:29
かなり綺麗なCQPよりももうちょい綺麗。ここは動きの少ないところなので、VQPはCQPより画質をあげようとする。
1721_vqp



x264 2pass 2000kbps
x264はさすがというべきで、QSVEncで最も綺麗なVQPより更に綺麗だと思う。
1721_x264



画質2 (2127フレーム目)



オリジナル
動きが大きく、かつQSVが苦手そうなところ。QSVは強い線は残っても、弱い線が潰れやすいので…
2127_original



Lookaheadモード depth 40
結構ひどい。クリックして別ウィンドウで開くと右端が見えると思うけど、右端とかは本当に線が見えなくなってしまっている。
2127_la2000_40



Lookaheadモード depth 60
まだひどいものの、depth 40よりは改善した。
2127_la2000_60



Lookaheadモード depth 100
depth 60よりいいかというと、場所による。ぱっと見はいい…かなあ。
2127_la2000_100



CBRモード 2000kbps
見るに耐えない。
2127_cbr2000



VBRモード 2800kbps
CBRよりはマシだが、まだ相当ひどい。
2127_vbr_2800



CQPモード 25:27:30
QSVEncのなかではこれが一番いいかも。
2127_cqp



VQPモード 24:26:29
今度はVQPのほうがCQPより汚い。これはVQPが動きの大きい所ではややビットレートをケチり、浮いたビットレートを動きの少ないところに回そうとするため。
2127_vqp



x264 2pass 2000kbps
さすがに素晴らしい。
2127_x264




ビットレート分配



x264 2pass 2000kbps
まずx264から。大きくビットレートを変動させ、最適な配分を行なって画質を維持している。
bitrate_x264



Lookaheadモード depth 40
ある程度ビットレートを変動させている模様。
bitrate_la40



Lookaheadモード depth 60
変動幅はdepth 40より大きめか。
bitrate_la60



Lookaheadモード depth 100
さらに大きく変動させている。
bitrate_la100



VBRモード 2800kbps
なぞの変動。たぶんあまり適切な分配ではない。
bitrate_vbr2800



CQPモード 25:27:30
CQPゆえの非常に大きな変動。
bitrate_cqp



VQPモード 24:26:29
VQPはCQPとはやや異なった分配を行う。CQPよりもやや変動を抑えよう、という方向性。
bitrate_vqp



結局Lookaheadモードってどうよ?



わりと使えるんじゃないかと。

いままでのCBR/VBRのビットレート指定モードは、ビットレートを大きめに設定しておかないと部分的に破綻が目立った。しかし、Lookaheadモードは少しビットレートを小さめに設定しても目立った破綻なくエンコードしてくれるようだ。

もちろん、ビットレートをダイナミックに変動させ、圧縮率を高めたり画質を維持するという点ではCQP/VQPにはかなわないし、x264にかなうはずもない。

それでも、ビットレート指定モードで圧縮率を高めに設定できる初めての実用的なモードなんじゃないかな、と思う。

CPU性能はやや物足りず、冷却性能が残念(どころか最悪)だったHaswellにとって、このQSVのLookaheadモードの追加は、AVX2に次ぐ良い点だと思う。


スポンサーサイト

コメントの投稿

非公開コメント

管理人のみ閲覧できます

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

No title

Lookaheadモードのレビュー(?)ありがとうございました。
depthは大きい方がいいのかと思ってたのですが、一概にそうでもないところが面白かったです。

ちょっと確認したいことが…

初歩的な質問で申し訳ないんですが…
9.18.10.3220で追加されるHW API 1.7のLookaheadは
Gen4 HD GraphicsのQSVでしか使えない感じでしょうか。

というのも、
Gen3 HD Graphics (HD4000/HD2500)とQSVを搭載したIvyBridgeでは使えないのかなーと、ふと疑問に思ってしまって。
※9.18.10.3220 自体がGen4なHD Graphicsを認識しないとインストーラーで弾かれるとかなのかな…

No title

>広告について
fc2ブログの規定で表示しなければならない広告以外は載せるつもりは一切ありませんので、ご了承ください。

>Lookaheadのdepthについて
わたしも意外でした。バランスとしては60~80ぐらいがいいのかなと。40はやや少ないかも、100は多すぎかもです。

>Lookaheadの使用可能条件
9.18.10.3220そのものはGen3(IvyBridge, HDG4000/HDG2500)にも提供されているようです。しかし、LookaheadのほうはGen4(Haswell, HDG4200/4600/5000+)限定とIntelの資料にありました。ハードウェアに依存しているのかな…と思います。

Re: ちょっと確認したいことが…

なるほど。
Gen4(HD4***/5***)のみの拡張なんですね。
お調べ頂いて、ありがとうございました(^^

QSVEnc/QSVEncC目的で買うなら
IvyBridge(Gen3 HD Graphics)でよいのか
Haswell(Gen4 HD Graphics)のほうがよいのか
エンコード速度以外の要素で比較したとき
(Ivy QSVより遅くなったとは言え、
rigayaさんの検証結果を拝見すると
Haswell QSVの速度でも十分高速に思えたため)
どちらがいいのか、決め倦ねていたところだったんです。
プロフィール

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