【x264】 r2200 から導入された lookahead threads について

負荷が小さい設定ほどCPU使用率が小さくエンコード速度が上がらなかったが、この設定でそれらの低負荷の設定でもCPU負荷を上げてエンコード速度が上がるようになった。

デフォルトは論理コア数が6以下は 1 、論理コア数が8から12までは 2 になる。0 は指定できない。計算方法は論理コア数に6を割って小数点以下を切り上げる。

ffmpeg 独自の設定ではオプションが見つからなかったので

-x264opts lookahead-threads=2

などと設定するが、自動設定なので特に変更する必要はない。

以下技術的な話
Threaded lookahead - Doom9's Forum

27th May 2012, 18:28 #2
LoRd_MuldeR
First of all, the changelog says that "lookahead threads are 1/6 of regular threads". So unless you have a CPU with 8+ cores (which would result in 12 encoding threads and thus in 2 lookahead threads) nothing has changed for you.

Furthermore "does not seem to be consistently any worse" means that it isn't always worse. And even then, the difference will probably be too small to worry about. Anyway, you can set "--lookahead-threads 1" to be sure...

Unread 27th May 2012, 23:34 #14
Dark Shikari
Hmm. I should probably tweak this because more lookahead threads will definitely help on the first-pass encode (or any similar heavily-lookahead-bottlenecked situation), even with fewer threads.

But coming up with an algorithm to decide things might be a little tricky. 1/6 is just a start.


28th May 2012, 15:20 #17
me7
If I understand this right, x264 used to have a single lookahead thread that could become a bottleneck if the encoding threads that depend on it were too fast (CPU utilization below 100%). Multithreaded lookahead improves such scenarios, but if you already get 100% CPU utilization with a single lookahead thread you don't need to care. Is this correct?



猫科研究所 - x264-changelog-jp r2100-r2199

git-id : 999b753ff0f4dc872077f4fa90d465e948cbe656
著者: Jason Garrett-Glaser
日付: Tue May 8 15:42:56 2012 -0700
スレッド化lookahead(先読み)。

各lookaheadフレーム解析の呼び出しを複数のスレッドに分割。品質に小さな影響があるが、定常的に悪いというわけでもないようだ。

これは多コアかつframe threads(訳注:スライス単位ではなくフレーム単位でのスレッド化でx264ではデフォルトの方式)でのボトルネックを緩和するのに役立つ。

多くのケースで、これは多コアシステム上でのパフォーマンスを劇的に増大させる。

例えば、12コアi7システム上では--preset veryfastでの1080pエンコードが100%以上速い。

実際のシステム上で--preset slowでのリアルタイム1080p30が実現可能だろう。

sliced-threadsに対しては、このパッチは設定に関わらず速いはず(~10%)である。

デフォルトでは、lookaheadスレッドは通常のスレッドの1/6である。

これは厳密なものではないが、実際のシステム上で全てのプリセットに対しよく効くようだ。

sliced-threadsではエンコードスレッドの数と同じである。

関連記事

コメント

非公開コメント

プロフィール

ロベルト

お問い合わせはこちらまで
robelt2525[at]gmail.com

中の人 @nico_lab

広告リンク
Amazon
楽天市場

ブログ更新用 @blo_nico_lab

詳しいプロフィールはこちら

当ブログは、Amazonアソシエイトに参加しています。