1passとか2passとかcrfとかABRとかCBRとかそうゆうの。
平均ビットレートで使うビットレートの指定。単位はキロビット/second ( kbps )。
特定のファイルサイズに収めたければ2パスを推奨。画質と特定のファイルサイズを両立できる。概ね1分以下の短いクリップでは3パスが有効かもしれない。x264の--bitrateは本質的にABR(平均ビットレート)だ。ストリーミング以外にCBR(固定ビットレート)を使う理由はあまり無いが、使う場合は--vbv-maxrateも調整すること。
Constant Rate Factor。名目上のQPに基づく1パス ABR。
*Zero1氏原文では整数指定だが、今回元にしたrev. 663では<float>、少数。
*x264cli --longhelpでは 画質ベースのVBR (名目上の QP) と表記しているが、Zero1氏原文および Handbrake wikiでは Constant Rate Factor(*レート係数固定*) と表記。いずれにせよx264ではまず使い物にならない--qp(画質固定1パス、QP固定1パスなど)の代替物として登場したもの。
ローカルビットレートの最大値。単位はkbits/second。
CBRモードを起動して、VBVバッファサイズを指定する(kbit)
VBVバッファ占有率の初期値。
x264が使う最小quantizerの指定。
高いquantizerを使ってもあまり見た目が変わらない場面でbitの浪費を抑える。XviDで最小quantizerを2にするようなものだが、H.264との量子化スケーリングの違いを忘れない事。
x264が使う最大quantizerの指定。
quantizerが自分の好みより高くなるフレームがあったらこれでキャップをかけることができる。一般的にx264のレートコントロールはとても優秀で、キチガイじみて高い/低い量子化値を使う事はあまりない。
ABRにおけるビットレートの逸脱許容範囲。1.0より大きくするとファイルサイズが目標より大きくなる事がある。同様に1.0より小さくすると目標より小さくなる事がある。
I-Pフレーム間のquantizer換算係数。
1.00でPとIに同じquantizerを使う。これは推奨しない。bitの無駄に等しいからだ。素材のAMV(*アニメ・ミュージック・ビデオ*)があまりBフレームを生成しないようだったら1.40より高くしても良いだろう。Pフレームの画質を落とす事になるが(その程度は--ipratioの指定値による)、その代わりハイ・モーション・エリアなどで画質のバラツキやブロックノイズが減り、安定する。
*ハイ・モーション・エリア:動きの多い部分。
--pass
マルチパスモードの起動。
XviDで馴染みのある1st, 2ndに、"nth pass" というものが加わっている。これはまず1stパスで統計を取り、次に"nth pass" を走らせるというものだ。そしてもし結果が気に入らなかったり目標ファイルサイズに合わなかったら、2回目のパスで使った設定でもう一回走らせる事ができる。この場合"nth pass"は3回目のパスを行う。"nth pass"を走らせる度に統計ファイルはアップデートされてゆく。一方2nd passは最終出力専用で統計ファイルをアップデートしない。
--pass 1
映像を分析してstats(*統計*)をファイルに書き出す。XviDの "2 pass - First pass" のようなものだ。デフォルトではこのオプションはmuxできるファイルを書き出す。ビットレートを指定してあれば1 pass ABRに --qp 18 を指定してあればXviDの first pass modeの最高画質とほぼ同等の画質になる。一般的には--pass 1はビットレート指定の方が後続パスの画質が良くなる。
--pass 2
--pass 1で作った統計ファイルの内容に応じてレートコントロールを行った映像を出力する。このモードはXviDの "2 pass - Second pass" に相当し、統計ファイルのアップデートはしない。よりよい画質とより小さなファイルサイズになるので、一般的には2パスがお奨めだ。内部動作を視覚化する方法は後述。
(1回目) --pass 1 = 最初の統計ファイルを作る
(2回目) --pass 2 = 1回目 の統計を使って出力
--pass 3
--pass 3
はやや特別で、「3回目に走らせるパス」という意味ではない。何回でも走らせる事ができる。画質向上は大した事がないので10パスとか試みないように。これはおおむね1000フレーム以下の短い素材、即ちビットレートの平均をうまくだすには短すぎる素材に向いている。--pass 3は--pass 1と--pass 2を合わせたようなもので、--pass 1の統計を読み込み、それを参考にファイルを書き出しつつ、同時に統計ファイルにアップデートをかける。つまり "nth pass" モードを使ってエンコードすると、2回目のパスより良い統計ファイルを使う事ができるわけだ。これは内部動作を視覚化すると解り易い。視覚化(*--visualize*)は1回目の統計ファイルをベースにするが2回目を走らせるとそのリファインぶりを確かめることができる。
(1回目) --pass 1 = 最初の統計ファイルを作る
(2回目) --pass 3 = 1回目 の統計を使って出力 + 統計ファイルのアップデート
(3回目) --pass 3 = 2回目 の統計を使って出力 + 統計ファイルのアップデート
マルチパスエンコードで使う統計ファイルのパスと名前を指定。全てのパスが同じログファイルを参照しない限り、正しく動作しない。
QP curve compression(*QPカーブコンプレッション*)。
低くするとビットレートの変動幅が減り、0.00でCBRになる。高くするとquantizerの変動幅が減り、1.0でCQPになる。
推奨はデフォルトの0.60のまま。特にAMVでは0.00のCBRは非常に良く無い。ローモーション/複雑さの少ない場面でbitを節約して、ハイモーション/複雑な場面に回すx264のレートコントロール機能を阻害するからだ。
フレームの複雑さを見積り、それに応じた時間軸スムージングを行うもの。カーブコンプレッションの前に時間軸上のQPのバラツキを抑えるのに使う。低くするとQPの変動幅が増え、高くするとQPの変動幅がスムースになる。このオプションは統計ファイルを使う為、有効なのはtwo and nth パスモードだけだ。わからなかったらデフォルトの20.0のままにしておくのが良い。
--cplxblur同様だが、時間軸スムーシングをかけるのは量子化パラメータ(QP)。
ここでも低くするとQPの変動幅が上がり、高くすると変動幅がスムースになる。
おそらくこのオプションも弄る必要が無いが、実験してみたい人もあるだろう。
映像の特定部分のビットレート調整。指定書式は
<start frame>,<end frame>,<option>
<option>の中身は
q=<integer> (QPの強制)、または
b=<float> (ビットレートの係数)。
/で区切ると複数のゾーン指定ができる。
--zones 200,900,b=0.50/1000,1200,b=2.0
これでフレーム番号200-900の区間のビットレートは平均の約半分に、フレーム番号1000-1200の区間のビットレートが平均の概ね倍になる。