(*Bフレームの*)ダイレクトマクロブロックで使う動き予測方式の選択。
temporal(*時間軸*)が一般的にはベター。動き予測に後続するPフレームを使うからだ。
spatial(*空間軸*)は周辺マクロブロックとそのモーションを使う。
noneは最も画質が悪いだけでなく速度まで落ちる。
autoは自動で temporal/spatial 予測を使い分ける。遅いがベストチョイス。
--direct defines the motion predicition used for direct macroblocks. Temporal is usually the better choice since it uses the following P-frame for motion prediction, as opposed to spatial which relies on surrounding macroblocks and their motion. Selecting none will of course give lower quality, and surprisingly, lower speed. Auto is the automatic selection of temporal and/or spatial prediction. It is a slower mode, but it allows it to make the best choice and alternate between modes, as opposed to using one or the other.
2007/07/03(火) x264 [9] --direct
・・--interlaced を使っている場合は spatial または noneのみ。
・・noneではスキップ-B(消費ビットが 1 bit 未満で済む)も使えなくなり圧縮効率が落ちる。時間ダイレクトモードは動きが少ないシーンで有利に働き、空間ダイレクトモードは動きの多い (OP 等の)シーンで有利に働く。どちらのモードを使うかはスライス単位でしか切り替えることができないのだけれど、--direct auto を指定した場合は、シーンに応じてエンコーダがどちらのモードを使うかを選択してくれる。マルチパスの場合は stats ファイルからデータを読んでどちらのモードを使うか決定するし、シングルパスの場合でも、直前のフレームで、時間ダイレクトと空間ダイレクト、どちらの方がスキップ MB にできる割合が高かったかで判定するというロジックになっている。