subq:速度と画質を取引するオプションの中では、一般的に subq と frameref が最も重要です。速度であれ画質であれ調整したいと思ったらこの二つを最初に弄りましょう。速度については、この二つは非常に密接な関係を持っています。
過去の実験では、デフォルト設定(frameref=1:subq=5)は frameref=1:subq=1 よりも35%ほど時間がかかります。 frameref=6 なら時間は60%以上かかります。subqがPSNRに与える影響は、参照フレーム数に関わらず非常にコンスタントなようです。一般的に subq=5 のPSNRは subq=1 より0.2-0.5 dB高くなりますが、これは充分に目で見て解る違いです。
subq=6 は妥当なコスト(低速化)でよりよい画質をもたらします。通常、subq=5 より global PSNR が 0.1-0.4 dB 向上し、速度は 25%-100% 低下します。subqの他のレベルとは異なり subq=6 はあまり frameref や me の値の影響を受けませんが、主に Bフレーム数の影響を受けます。一般的な使い方では、subq=6 は複雑で動きの多い場面では速度と画質の両方に大きな影響が出るが、動きの少ない場面では大した影響が無い事を意味します。なお、bframes は常に0以外にするのがお奨めです。
subq=7 は最も遅く、最も高画質になるモードです。一般にglobal PSNR は subq=6 より 0.01-0.05 dB 向上し、速度低下は 15%-33% くらいです。この取引は非常に分が悪いので時間を気にせずbit単位で節約したいのでも無い限り使う必要はないでしょう。
サブピクセル精度の動き予測方式の選択。速度と画質の取引に関わるオプションのなかでメジャーなものの一つ。--subme 6 & 7 ではRate Distortion Optimisation (RDO, レート歪最適化)も使う。CPU速度が充分なら推奨はこの二つだが、厳しい場合は5。
subpel計算の精度。このパラメータは動き予測の過程で、品質と速度のトレードオフを取り扱う。subq=5 はsubq=1よりも最大で10% 圧縮できる。
ここまでに於いて、"all candidates"(すべての候補)とは、必ずしも全てのマクロブロックタイプを試すとは限らない:4x4,4x8,8x4は、8x8が16x16よりも良い結果だった場合にのみ試行される。
※[1]:RDOをBフレームに使うには別途brdoを指定。
以下、[x264-devel] commit: Rework subme system, add RD refinement in B-frames ( Jason Garrett-Glaser )の抜粋試訳。commitのタイムスタンプは、JSTで2008年10月2日 11:43:15。
■試訳
submeシステムのリワーク。BフレームにRD refinement(*レート歪み精製?*)を追加。
新しいシステムは以下の通り。
この変更に伴い、--b-rdoオプションは削除。同じく--bimeも削除され、subme >= 5の際に自動適用される。
B-frameにおけるRD refinement (subme9) は、 qpel-RD ならびにbimeのRD versionを含む。
Rework subme system, add RD refinement in B-frames
The new system is as follows: subme6 is RD in I/P frames, subme7 is RD in all frames, subme8 is RD refinement in I/P frames, and subme9 is RD refinement in all frames.
subme6 == old subme6, subme7 == old subme6+brdo, subme8 == old subme7+brdo, subme9 == no equivalent
--b-rdo has, accordingly, been removed. --bime has also been removed, and instead enabled automatically at subme >= 5.
RD refinement in B-frames (subme9) includes both qpel-RD and an RD version of bime.