●動き予測
■動き予測アルゴリズム:5【--subme 5】
1(Fastest)---5(High Quality)-6(RDO Slowest)の6段階とRDOをB-frameにも適用する設定があり、初期値は5。6のRDO(Rate-Distortion-Optimizations)は5と比べて5〜10%ほど圧縮が効くことがありますが、H.264の必須サポートからは外れているようなので使わないほうが無難。PCでの再生なら6でもおそらく大丈夫。
5以上推奨。6は--subme 6のみ。6bは--subme 6に--b-rdo追加。
■サブピクセル制度:Hexagonal Search【--me "hex"】
[Fast] Diamond Search【"dia"】(解説 http://www.marumo.ne.jp/db2005_1.htm#18
) Hexagonal Search[Default]【"hex"】, Uneven Multi-Hexagon【"umh"】(解説
http://www.marumo.ne.jp/db2005_1.htm#18 ) Exhaustive Search【"esa"】(解説
http://www.marumo.ne.jp/db2005_1.htm#7 ) [Slow]の4種類があります。高速なのはDiamond
Searchなのであまり動きの激しくない素材ならばこれを選ぶとよいかもしれません。通常は初期値のHexagonal Searchか、検索精度と速度のバランスが優れているUneven
Multi-Hexagon(umh)を使うのがよさそう。総当たりで検出するExhaustive Search(esa)は膨大な時間が掛かるので避けたほうが無難。
■ベクトル探索範囲:16【--merange 16】
me umhとesaの検索範囲。初期値の16or32推奨。
■参照距離:1【--ref 1】
複数参照フレームの最大数。範囲1〜16。1は複数参照しない。一般的には多くても3〜4程度まで。
■彩度動き予測:off【--no-chroma-me】
色情報による動き検出を使うかのオプション。通常はON。CLI MODEではコマンド無しがON。上記コマンドを加えてOFF。
■混合参照:off【--mixed-refs】
デフォルトはoff。コマンド追加でon。サブブロック単位で参照するフレームを変える。画質、圧縮効率は上がり、速度は落ちる。デコードも重くなる。
●詳細設定
■SAR 【sar width,sar height】
再生側に情報として渡されるアスペクト比の情報。出力時の設定に合わせておきましょう。
■スレッド数:1【--threads 1】
x264のスレッド数の指定。マルチコアCPUやHyper-Threading対応CPUではプロセッサ数に合わせた値にしておくと処理が高速化されます。マルチコアCPUではその差は顕著。ただし分散処理によって高速化される代わりに、継ぎ目でオーバーヘッドが発生するようで、微妙に出力サイズが大きくなるので注意。
0入力か、--threads "auto"で自動でCPU数を検索し、その1.5倍の数値を入れる。エンコード中のCPU使用率がほぼ100%になる。
■ノイズ除去:off【--nr 1-100000】
デフォルトはoff。Wiener フィルタを使ったDCTドメインのノイズリダクション。AVISynthの相当品より高速で、実用範囲は100-200。
H.264規格に存在しないが素材の圧縮工程に入る前に適用するので、再生機器やデコーダの機能とは関係なく使える(たんにAVISynthでフィルタをかけるようなもの)。
DCTノイズ・リダクションの強さ。出力結果によっては調整が必要になるパラメータ。
■デブロックフィルター:on,0,0【--deblock 0:0】off:--no-deblock
MPEG系は量子化のプロセスや動き補償の結果、隣接したブロックの符号化でアーティファクトが発生します。H.264ではこれを軽減するためにDeblocking
filterが導入。その動作からループ・フィルターともいわれます。StrengthとThresholdのパラメータがありますが、+方向に動かして強くするとぼやけた感じに、−方向に動かすとくっきりとした感じの絵となります。どちらも範囲は−6〜+6。素材がアニメならば無効にしたほうが無難。実写ならば動きの多さと望みの出力ファイルサイズによって調整。基本的に+方向には動かさないほうが吉。
インループ・デブロッキング・フィルタ。MPEG系動画圧縮で不可避のブロックノイズ対策を映像データの中に埋め込んでしまえと言うもの。画質への影響は様々な意見があるので最初は弄らない方が良いかも。なお、再生時にデブロックフィルタをかけると機能がバッティングして良く無いとする説もある(Doom9のDoom9氏)。Deblocking
strength、Deblocking Thresholdともに範囲は-6〜6。それぞれalfa C0とBetaと思われる。
■CABAC:on【--no-cabac】
デフォルトon。チェックをはずすかコマンド--no-cabac追加でoff。
Context-based Adaptive. Binary Arithmetic Codingの略で、H.264/MPEG-4
AVCのキモの部分。変動シンボル確率分布を利用し、シンボル間の相関も利用することで圧縮率を向上させています。これを無効にするとそもそもH.264を使う必要がなくなってしまうため、このオプションは有効で使うべき。
■インターレス保持
■スキップMB検出
スキップ検出の非使用。画質向上
■DCT係数間引き:on【 --no-dct-decimate】
デフォルトon、チェックをはずすか上記コマンド追加でoff。動画圧縮は映像の細かい部分を省略するようなもので、その為に様々な手法を組み合わせて使う。dct
decimateもその一つ。切ると忠実度があがるが、必要なビットレートはやや上がる。一般的にDVDサイズで2000kbps程度を使うならほぼ確実にしあわせになれるかと。
誤差程度のDCT係数を間引くようになる。間引いた分圧縮率はわずかに上がり、画質は若干下がる。offにすると間引きをやめるため再現度は上がるが圧縮効率は下がる。
■RD最適化;None【--trellis 0】
Trellis RDO の適用。最終マクロブロックのみか、常時かを選択。要CABAC
DCT(Discrete Cosine Transform)で失われた情報を回復させて画質を若干向上させるモードを使用するかどうかのオプション。有効にすると処理が重くなります。画質優先ならばON。
コマンドは順に0,1,2数字が大きいほど画質優先で遅くなる。が、たいした変化は見られない気がするのでoffでいいかも。
■マトリックス:flat【--cqm "flat"】
使用するカスタム量子化マトリクスを指定。原文には You must specify the custom matrix
とあるが、絶対使った方が良い、といったところ。選択肢は flat(16) か jvtの筈だが、前者は使わないのと一緒でBaselineおよび
Main Profileまでの機器向け。2007秋現在、iPod, Apple TV, PSPなどが相当。jvtを使うとHigh
Profileになる
CQMはカスタム量子化マトリクス(Custom Quantisation Matrix)。
量子化マトリクスは格子状にならんだ数字(*数学で言う行列*)で、個々の数字をquantum(*量子/量子化マトリクスの値*)として扱う。この個々の数字が元の映像データをどのくらい破棄するかを決める。個々の数字が大きなマトリクスは映像がソフトになり、小さなマトリクスは映像のディテイル保持率があがる。x264のデフォルトは
"flat 16" マトリクスを使う。これは全ての数字が16で埋まっているもので、デコードの際に特別な扱いが不要なものだ(*Main
Profile以下*)。カスタム量子化マトリクスはHigh Profileの機能で、実際にはデコード負荷は増えも減りもしないのだが、デコーダ側のサポートが必要となる。XviDのカスタム量子化マトリクスを覚えている人もあるだろう。大半のケースでデフォルトのH.263量子化で充分だったが[*1]、x264でもflat
16で充分な場合が多いと思われる。しかし中には高周波領域に高い係数が入ったマトリクスを使いたい事があるかもしれない。細かいディテイルがややスムースになり圧縮しやすくなる(*ノイズなどの細かい部分を潰せる*)。
cqmはデフォルトのflatマトリクスか、jvtマトリクスの選択。
flatマトリクスは数字が全て16で埋まっているもので、jvtマトリクスはH.264規格の技術的な作業に当ったJoint
Video Teamが作ったものだ。このコマンドは外部ファイルを用意する必要が無いので使い易い。(--cqm "jvt")
*手許ではXviDのMPEG量子化マトリクスはブロックノイズが激減した記憶がある。
■ログ
x264がLogに書き出す情報の種別です。通常は変更しなくてかまいません。Noneにするのもよいかも?
|