環境
Win7 x64
Core i7 4770K (4C/8T @ 4.4GHz)
DDR3-2600, 2ch, 16GB, 10-12-12-31-2
Asrock Z87 Extreme4
Intel HDGraphics 4600 as 2nd GPU
Intel 10.18.10.3621ドライバ
Aviutl 1.00
QSVEnc 1.23
x265guiEx 3.34β
x264 rev2431 x64(komisar氏)
x265 1.1+200
ソース
この大空に、翼をひろげて FLIGHT DIARY オープニングムービー(Downloadできるやつ)
VC-1, 1280x720p, 30.00fps, 3140frmaes, 約1分45秒, 70.5MB
設定
QSVEnc VQP
--vqp 23:26:28 --quality best --bframes 2 --gop-len 300 --scenechange
QSVEnc Lookahead
--la 2000 --quality best --bframes 2 --gop-len 300 --la-depth 60
QSVEnc ICQ
--icq 27 --quality best --bframes 2 --gop-len 300 --scenechange
QSVEnc LA-ICQ
--la-icq 28 --quality best --bframes 2 --gop-len 300 --la-depth 60
NVEnc
CQP 24:27:29
x264
--preset slower --crf 23 --ipratio 1.5 --qcomp 0.75 --aq-strength 0.4 --psy-rd 1:0.2 --bframes 4 --ref 4 --keyint 300
x265
--preset slower --crf 22 --aq-strength 0.4 --psy-rd 1 --keyint 300 --b-adapt 2 --frame-threads 5
ビットレート

だいたい2000kbpsにそろえた。
結果 (1721frame目)
オリジナル
QSV VQP 23:26:28 (1923kbps)まあまあだがいまいちよくない。

QSV LA (1977kbps)うーん、ちょっと残念。

QSV ICQ 27 (1922kbps)わりといい線いってると思う。

QSV LA-ICQ 28 (2010kbps)いいのだけど、ICQよりは微妙か? LookaheadはAPI v1.10で指定方法が変わったということなので、1.10で細かく調整するとよくなるのかも?

NVEnc CQP 24:27:29 (2010kbps)残念すぎる。

x264 preset slower, crf 23 (1984kbps)さすがのx264。

x265 preset slower, crf 22 (1993kbps)画質は素晴らしいのだが、エンコ速度が遅い。とにかく遅い。まあ、presetをslowerとかにしなければよいのだが…。

結果 (2127frame目)
オリジナル
QSV VQP 23:26:28 (1923kbps)このあたりは動きの多めなところなので、VQPはやや苦手。

QSV LA (1977kbps)悪くはないが、よくはない。

QSV ICQ 27 (1922kbps)そこそこいい絵になっているように思う。

QSV LA-ICQ 28 (2010kbps)いいのだけど、1721フレーム目同様、ICQよりは微妙か?

NVEnc CQP 24:27:29 (2010kbps)よくない。

x264 preset slower, crf 23 (1984kbps)このフレーム単体なら、ICQのほうが綺麗。もちろん、多くのところではx264のほうがずっと綺麗。

x265 preset slower, crf 22 (1993kbps)さすがです、がエンコ速度が遅すぎます。

ICQ画質まとめ
今回抜き出したフレームはそこそこいい画質だけど、動画として見たとき、とくにフェードイン・フェードアウトのようなところは不安定で、そういったところはx264に遠く及ばないと思う。(x264は設定によってさらに画質向上させられるし)
それでも、今までのエンコモードに比べれば相当よくなってるわけで、ハードウェアエンコにしてはICQモード、意外とすごいんじゃん?
その他メモ書き (というか愚痴)
なぜLookahead + シーンチェンジ検出だとしばらくするとフリーズするのか、わからんという話。
QSVEncのシーンチェンジ検出とそれによるキーフレームの指定は、Media SDK側で勝手にやってくれているものではなく、シーンチェンジを自前で適当に検出して、検出したところにMedia SDKの「強制的にキーフレームに指定する機能」を使ってキーフレームを指定している。(EncodeFrameAsyncでmfxEncodeCtrlを渡すとできる)
が、この「強制的にキーフレームに指定する機能」をLookaheadと使うとフリーズする、というよりVCのデバッグモードで適当に追いかけると、どうもEncodeFrameAsyncが永遠にMFX_WRN_DEVICE_BUSYを返し続ける(結果フリーズしたようにみえる)ようで…なぜだ…。
これもAPI v1.10に対応すれば治るんかなあ…
というより、最近追加されたAdaptiveIがちゃんと動いてくれれば、あんなわたしの書いた適当かつ怪しげでなにやってるのかよくわかってないけどなんとなくそれっぽく動いてるシーンチェンジ検出コード使うよりずっといいはずなのだが…?