拡張 x264 出力 (GUI) プラグインとは

 拡張x264出力(GUI)プラグインは、libx264というAVC/H.264エンコード用ライブラリをGUIで操作できるようにした、AviUtl専用のエンコーダー(出力プラグイン)であり、同一のリビジョン番号のx264.exe(libx264の開発元であるx264チームにより提供されるCLIエンコーダー)に公式にコミットされたオプション(機能)はほぼすべて使えるようになっている。
 ただし、GUIで操作できるオプションは限定されている。しかし、GUIに設定項目がないオプションをコマンドタブにてCLI同様に直接記載するか、またはCLIモードに切り替えて全オプションをCLI同様に直接記載することで対処できる。
rigaya氏が公開している物については、拡張 x264 出力(GUI)Exの設定項目とその機能についてを参照。

作者のseraphy氏がサイトを閉鎖したようなので、x264に関する最新情報は、拡張 x264 出力(GUI)Exの設定項目とその機能についてのページに更新すること!

スポンサード リンク


拡張 x264 出力(GUI)の設定項目とその機能について

 以下の説明内容はr2762(r:revision、リビジョン番号)現在の情報。
 項目名の右の【】内は、対応するオプションとそのオプションのデフォルト。
 足りない情報、間違った情報、変更されたオプション等は、見つけた者が追加・修正・削除すること。

それっぽい解説が記述してあるサイト→
X264 Setting - MeWiki?(英語だけど一番詳しくて信頼性が高い) http://mewiki.project357.com/wiki/X264_Settings
MPlayer and MEncoder on MacOSX - x264コーデックでのエンコード http://www.wikihouse.com/htumenc/index.php?Doc%2Fmenc-feat-x264
  • ビットレート
    • 映像
  • シングルパス - 固定ビットレート
    ビットレートを指定して1回だけエンコードを行う。
    目標となるビットレートを設定することでエンコード後の容量は予測がつけやすくなるが、ビットが大量に必要になる部分ではビットが不足し、逆にそれほど必要がない部分では無駄にビットを割り振ってしまうため、画質は良くない。
    また、x264は厳密な固定ビットレートにはエンコード出来ないため、ビットレートもきっちり指定した通りにはならない。
    定められた容量に抑えたいのであればマルチパスエンコードを、1回のエンコードで済ませたいのであれば品質基準VBRを用いるべし。
  • シングルパス - 固定量子化量【--qp <integer>】
    映像の量子化量、すなわち映像をどれくらい圧縮するかの基準となる値を指定する。値が小さいほど高画質・低圧縮になり、値が大きいほど低画質・高圧縮になる。
    固定量子化量では品質基準VBRの項に記したようなビットレートの節約を行わないので、固定量子化量を用いてエンコードすると、品質基準VBRを用いてエンコードしたものに比べて視覚的に同じ品質でも容量だけが大きくなる。
    ある開発者曰く「特殊な実験目的以外では使う価値がまったくない」とのこと。
    品質基準VBRでエンコードすると汚いので固定量子化量が良いと思った人は、品質基準VBRで後述のビットレート変動量を多めに調整すると良い。
  • シングルパス - 品質基準VBR【--crf 23】
    映像の視覚的品質を指定する。固定量子化量と同様、値が小さいほど高画質・低圧縮になり、値が大きいほど低画質・高圧縮になる。0に設定すると可逆圧縮になる。
    品質基準VBRでは人間の視覚では劣化を認知できないような、複雑であったり動きの激しいシーンのqp(量子化量)を上げてビットレートを節約するため、より少ない容量で高画質に見せることが出来る。
    エンコード後の容量に制限がない場合であれば、通常品質基準VBRを使う。
  • マルチパス - 1st PASS
    x264は基本的に品質基準VBRで使うものであるが、品質基準VBRを使用すると出来上がるファイルの容量や平均ビットレートは、実際にエンコードが終了するまでは分からない。
    一方、世の中にはファイルサイズやビットレートに制限があるため、これを使えない(使いにくい)事情が存在する(例えばニコニコ投稿用のエンコードとか)。
    マルチパスとはあらかじめ1回エンコードを行って動画の情報を収集し、2回目のエンコードで指定されたビットレートをきっちり守りつつ、最善の結果を出すという方式である。
    1st PASSを選んだ場合、x264はとりあえずエンコードを1回適当に行って動画のいろいろな情報の下調べを行い、ログファイルを作って記録する。このモードでエンコードされた動画はただの下調べの結果に過ぎないのでかなり酷い出来になりがちである。
  • マルチパス - Nth PASS
    マルチパスの2回目(もしくは3回目、4回目…)を行う。
    1stPASSで収集したログファイルを頼りに、エンコードを行う。これによって出力されたファイルは、ほぼ正確に指定されたビットレートを守りつつ、視覚的品質にも優れたものとなる。(ただし、あくまでも指定されたビットレートの範囲内の品質なので、ビットレートが決定的に不足している場合はどうにもならない)。
    基本的に、品質よりもビットレートを目標に合わせる事の方が優先されるので、ファイルサイズがほぼ同一の品質基準VBRとマルチパスエンコードでは、品質基準VBRのほうが見た目がよいといったこともしばしば起こる。
    マルチパスの回数は合計2回だけで十分であるが、あまりにも動画のフレーム数が少なすぎ、また動画が動きが激しかったりシーンチェンジが頻発するものである場合は、うまくビットレートをやり繰り出来ず指定した数値を上回ってしまうことがある。このような場合のみ、3回目、4回目…を行うことで、ひょっとするとぎりぎり指定値内に収めることができるかもしれない。それでもダメな場合がほとんどではあるのだが。
    ちなみに2回目ですでに指定値内でエンコードできた場合は、それ以後100PASS、1000PASS、10000PASS行っても画質は変わらないか、むしろ下がるだけである。
  • 自動マルチパス
    自動で指定した回数のマルチパスを行う。
    マルチパスエンコードを行う場合、通常はまず1stPASSを行い、その後改めてNthPASSに設定し直して再度エンコードする必要がある。しかし。x264gui.auoは最初にいきなりNthPASSを選んでも、これにチェックを入れておけば、自動で1stPASSを行ってくれる親切設計になっている。
    どうしても3PASS以上やりたい人は、行いたい回数だけ数値を上げればよい。
  • nul出力
    マルチパス出力時に最終パス以外では動画ファイルを出力しない方式。
    自動マルチパス出力する際は出力された動画ファイルは自動的に上書きされるので、使用しなくても結果は変わらないが、HDDアクセスが減って少しエンコードが速くなるかもしれない。通常は自動マルチパスと一緒にチェックを入れておくといい。
  • ターボ
    マルチパスエンコードを行う際、必要最低限のオプション以外を使用しないことによって、1stPASSを時間短縮するモード。CLIでオフにしたいなら--slow-firstpassを付け加える。
    具体的な内容は、1stPASSのみ--no-8x8dct --me dia --partitions none --ref 1 --subme 2(ただし元々の設定が1以下の場合は変更なし) --trellis 0 --fast-pskipに変更し、2ndPASS以降は元の設定をそのまま使う。
    使用した場合、ひょっとすると2回目以降のパスにおいて必要な情報が得られず画質が下がるかもしれないが、x264開発者によれば「影響はほとんどない」らしい。
  • ビットレート(kbps)【--bitrate <integer>】
    「シングルパス - 固定ビットレート」もしくはマルチパスにおいて、再生時間1秒あたりの目標データ量を設定(音声を除く)する。単位はキロビット毎秒(kbps)。どれくらいの数値を指定すればよいかは特に決まっていないので、通常は音声との兼ね合いや目標ファイルサイズから計算し、指定可能な最大値を入力する。マルチパスを行わない場合は指定値をオーバーしたりもするが、マルチパスエンコード時の最終出力は、あきらかに無理なものでない限り、ほぼ指定値通りとなる。
    一般会員は映像、音声、オーバーヘッド合計で656kbps以下にしなければならない。
  • マルチパス【--pass 3】(CLI MODEのみの説明)
    シングルパスの場合はこのコマンドは使わない。--pass 1はマルチパスの1回目のパスに使う。ログを新たに書き換える。--pass 3ではログを参照しながら書き換える。Nth-passで使う。--pass 2ではログを参照し、書き換えない。最終passでそれまでのログを書き換えたくない場合使う。
    すなわちマルチパスでは通常、初回は--pass 1、それ以降は--pass 3と指定しておけばよい。
  • デフォルトプリセット
    ユーザビリティ向上のためx264にはある程度のプリセットが用意されている。慣れれば(特にCLI使用者には)とても便利だが、制限がきついニコニコ向けエンコードの場合、初心者は使わないほうがよいかもしれない。(あくまでもニコニコ向けでの話。一般的なエンコードにおいてはプリセットを使ったほうが良い場合が多い)
    各プリセットを選択すると、オプションの該当項目のデフォルト値がプリセット値で上書きされる。
    • 速度【--preset Medium】
      ultrafastからplaceboまで全10種類。下に行くほど画質は上がるが遅くなる。
      特にplacebo(プラシーボ:偽薬)は遅すぎる上に画質の向上は名前のとおり気のせいレベルという冗談のようなもの。
      参考:Doom10 forum "Best encode settings?"
       質問者「presetをveryslowからplaceboに変更したら、どれくらい画質は向上するの?」
       Dark Shikari(x264の開発者の一人)「多分1%未満」
      しかし世の中にはplaceboよりもさらに遅い設定を使いたがる愚者が多いのもまた事実…。
       ultrafast: ref 1, scenecut 0, no-deblock, no-cabac, bframes 0, b-adapt 0,partitions none, no-8x8dct, me dia, subme 0, aq-mode 0, no-mixed-refs, trellis 0, no-mbtree, weightp 0, no-weightb
       superfast: partitions i8x8,i4x4, me dia, subme 1, ref 1, no-mixed-refs, trellis 0, no-mbtree, no-weightb, weightp 0
       veryfast: no-mixed-refs, ref 1, subme 2, no-mbtree, trellis 0, weightp 0
       faster: no-mixed-refs, ref 2, subme 4, weightp 1, rc-lookahead 20
       fast:ref 2, subme 6, rc-lookahead 30
       medium: デフォルト値からの変更なし
       slow: me umh, subme 8, ref 5, b-adapt 2, direct auto, rc-lookahead 50
       slower: me umh, subme 9, ref 8, b-adapt 2, direct auto, partitions all, trellis 2, rc-lookahead 60
       veryslow: me umh, subme 10, merange 24, ref 16, b-adapt 2, direct auto, partitions all, trellis 2, bframes 8, rc-lookahead 60
       placebo: me tesa, subme 10, merange 24, ref 16, b-adapt 2, direct auto, partitions all, no-fast-pskip, trellis 2, bframes 16, rc-lookahead 60, slow-firstpass(マルチパス時のみ)
    • チューニング【--tune none】
      全8種類。映像の質の調整を行うためのものと、再生環境に応じた調整を行うものの2種類に分類される。デフォルトはnone(変更なし)。
      ファイルサイズやビットレートに制限のあるニコニコでは、使用するとかえって悪くなることもある。なお<unset>は変更しないの意味。
      [映像の質の調整を行うtune]
       film:実写(もしくはそれっぽいCG等)映像向け
        deblock -1:-1, psy-rd <unset>:0.15
       animation:アニメ向け
        ref 各プリセット値が1以上の場合2倍(最大16)、プリセット値が0の場合は1に変更, deblock 1:1, psy-rd 0.4:<unset>, aq-strength 0.6, bframes 各プリセット+2(最大16)
       grain: 細かい粒子が漂っているような映像向け(アニメの回想シーンとか)。
        deblock -2:-2, psy-rd <unset>:0.25, no-dct-decimate, ipratio 1.1, pbratio 1.1, aq-strength 0.5, deadzone-intra 6, deadzone-inter 6, qcomp 0.8
       stillimage: 静止画向け
        deblock -3:-3, psy-rd 2.0:0.7, aq-strength 1.2
       psnr: psnr(エンコ前とエンコ後の映像を比較する時に使う計測値)が最大になるようにする。これを使用すると見た目は酷くなる事が多いので普通は使わない。
        aq-mode 0, no-psy
       ssim: psnrと同様で、ssimが最大になるようにする。これまた使えば見た目はひどくなることが結構ある。
        aq-mode 2, no-psy
      [再生環境に応じた調整を行うtune]
       fastdecode:再生負荷を実用的なレベルで軽減する(画質は下がる)。これを使ってもまだ再生が重いのであれば、あとは平均fpsを落とすか、解像度を下げるか、PCを新しいものに買い換えるかしたほうがよい。
        no-deblock, no-cabac, no-weightb, weightp 0
       zerolatency:エンコード時のレイテンシ(エンコード前のデータがエンコーダーに入力されてから、エンコード済みのデータとして出力されるまでのタイムラグ)を最小に抑えるための設定。とにかく入れたものを少しでも早く出すために品質等は二の次になっている。基本的に放送、ストリーミング用途のための設定。
        b-frames 0, force-cfr, rc-lookahead 0, sync-lookahead 0, slice-threads
    • プロファイル【--profile high】
      H.264には再生環境の互換性を規定するための規格が決められており、各再生環境が対応しているプロファイルによって使用できる機能(オプション)に制限がかかる。FlashPlayerはHighプロファイルに対応しているので、特に機能制限はないと考えてよい。なお、ロスレス(--crf 0 または --qp 0)の場合はこの設定は無視される。
       baseline:Baselineプロファイル。携帯電話のほとんどや旧式iPod等はこのプロファイルでないと再生できない。
        no-8x8dct, bframes 0, no-cabac, cqm flat, weightp 0
       main:Mainプロファイル。PSP、iPhone等はこのプロファイルでないと再生できない。
        no-8x8dct, cqm flat
       high:Highプロファイル。
        オプションの変更なし
  • なお各オプションの設定は、次の順番でデフォルト値の上書きを行う。
    1:最初にすべてのオプションをデフォルト値に設定
    2:速度(--preset)の設定を上書き
    3:チューニング(--tune)の設定を上書き
    4:ユーザーが個別に設定した値を上書き
    5:2パスエンコードの際にturboモードになっていれば(--slow-firstpassを指定していない場合)、1stパスのみturboモード用に変更
    6:プロファイル(--profile)の設定を上書き
    7:レベル(--level、後述)の設定を上書き
  • 音声
    • エンコーダ
      音声をエンコードするエンコーダを指定。通常はNeroAACエンコーダを指定する。
    • (エンコーダのアプリケーション名)の指定
      音声エンコーダーが保存されているパスを指定。上記でNeroAACエンコーダを選択した場合、neroAacEnc?.exeの場所を指定する。デフォルトの位置と異なる場合があるので注意。
    • エンコード設定
      音声のエンコード方式及び音声1秒間に収める目標データ量を設定。単位はキロビット。
    • .mp4
      MP4Boxがあると設定できるようになる。
      「mp4box.exeの指定」で場所を指定し、「外部Muxerを利用する」にチェックを入れれば使用可能となる。ニコニコ用ではこれは使わないこと。
    • .mkv
      MKVToolnixに入っている、mkvmerge.exeがあると設定できるようになる。
      「mkvmerge.exeの指定」で場所を指定し、「外部Muxerを利用する」にチェックを入れれば使用可能となる。ニコニコ用ではこれは使わないこと。
  • レート設定
    • ビットレート
      • I-Pフレーム間QP係数(%):40【--ipratio 1.4】
        IフレームとPフレームの量子化値換算係数。Pフレームを基準に、Iフレームの品質をどれくらいまで上げてよいかを指定する。
        値を小さくするとIフレームとPフレームのQP係数は近くなる。ビットレート指定でのエンコードでは、大きくするとPフレームのQPがやたら高くなりがちで平均画質が下がるので、上げすぎはお奨めしない。また、下げすぎるとIフレームの質が低下する。デフォルトのままで問題なし。
        (x264本体の設定値) = 1 + (x264gui上の設定値) / 100
      • B-Pフレーム間QP係数(%):30【--pbratio 1.3】
        PフレームとBフレームの量子化値換算係数。Pフレームを基準に、Bフレームの品質をどれくらいまで下げてよいかを指定する。なお後述のmbtree使用時は自動的に調整されるため、この値は無視される。
        設定値に関してはI-Pフレーム間QP係数と同様。
      • ビットレート変動量(%):60【--qcomp 0.6】
        割り当てビットレートの変動許容量。理論上では0に設定すると固定ビットレートと同じ挙動を、1に設定すると固定量子化量と同じ挙動になる。
        Dark Shikari氏によると、心理的に最適な値はデフォルトの0.6よりも大きいかもしれないとのこと(ソース)。特にアニメの場合は0.8程度に設定しても上げすぎではないだろう。
        後述のmb-treeの効き目を調節する役割も持つ。
        (x264本体の設定値) = (x264gui上の設定値) / 100
    • 量子化の限度
      • QPの下限:10【--qpmin 10】
        最小量子化値。値が小さいほど低圧縮・高画質となり、0では可逆圧縮になる。範囲は0~(qpmaxの値)。
        多くのソースではqpが16を下回ってきたあたりから劣化を認知できなくなるとされる。
        これを下げる必要があるとすれば、例えばバンディング低減用にディザを保持する場合くらいのものだが、ビットレート、ファイルサイズに制限のあるニコニコでは、そこまで出来る余裕はまずないだろう。
        それほど綺麗じゃなくて良いから容量を抑えたいという場合は、16あたりから徐々に増やして調整していくと良い。
      • QPの上限:69【--qpmax 69】
        最大量子化値。値が大きいほど高圧縮・低画質となり、69は設定上最高圧縮・最低画質。範囲は0~69。
        この値を30~40あたりまで下げることでqpの幅を自分の意図通りに設定できるかもしれないが、x264は自動でqpを調節しているため、デフォルトから変更するのは非推奨。
      • QP変動幅の最大:4【--qpstep 4】
        連続フレーム間における量子化値の最大変動幅。範囲1~51。
        アニメなど場面転換前後の落差が激しい素材では増やしても良いかもしれないが、基本的にデフォルトのままで構わない。
    • シーンカット
      • シーンカット閾値:40【--scenecut 40】
        シーンチェンジを検出するしきい値=Iフレームの挿入しやすさ。値を大きくするとIフレームの検出が多くなる。0にすると全く検出を行なわなくなり、Iフレームの間隔が--keyintの値に固定される(--no-scenecut)。
        初期値から変更しなくて問題ない。シーンチェンジの検出が増えると大した場面転換でない画面の変化でもIフレームを挿入するようになるため、品質基準VBRではファイルサイズが大きくなり、2パスエンコードの場合は画質が落ちる。また値が小さいと適正箇所にIフレームが入らない。シーク間隔を調整する目的以外でこれをいじる必要はない。
        以下の条件式を満たすとき、I-frameが挿入される模様。
        100 * (1 - (P-frameのビットサイズ) / (I-frameのビットサイズ) ) < scenecut * (直前のIDR-frameとの間隔) / keyint
      • IDRフレーム間隔の下限:自動【--min-keyint auto】
        IDR-frames間の最小間隔。
        最小GOP(Group Of Pictures)サイズ。新しいIDR-frameが挿入され、次のGOPが始まるまでに連続するフレーム数の下限を指定する。min-keyintの値より短い間隔で場面転換があった場合、x264は場面転換をIフレームとしてエンコードし、新しいGOPを開始しない。
        映像の切り替わるところを確実にシークポイントにしたい場合はこれを1にすること。ただし1に設定した場合、IDR-frameより前にある同じようなフレームを参照出来ず、ビットを無駄に使う可能性はある。
      • IDRフレーム間隔の上限:250【--keyint 250】
        IDR-framesの最大間隔。FPS×10が一般的。直前のIDR-frameとの間隔がkeyintの値になった場合、強制的にIDR-frameを挿入する。
        大きくするとIDRフレームの数が減って、相対的に必要なビットレートが下がる(画質があがる)かもしれないが、シークが効きにくい(下手するとまったく出来ない)動画になることもある。
        直前のIDR-frameとのフレーム間隔がkeyintの値に近づくとI-frameを挿入しやすくなるため、keyintを大きくするとscenecutによるI-frameの挿入も行われにくくなる。
  • マクロブロック
    • マクロブロックタイプの指定
      • 8x8 離散コサイン変換【--no-8x8dct】
      • 8x8, 8x16 and 16x8 Pフレーム動き補償【--partitions "p8x8"】
      • 8x8, 8x16 and 16x8 Bフレーム動き補償【--partitions "b8x8"】
      • 4x4, 4x8 and 8x4 Pフレーム動き補償【--partitions "p4x4"】
      • 8x8 イントラ動き補償【--partitions "i8x8"】
      • 4x4 イントラ動き補償【--partitions "i4x4"】
        8x8 離散コサイン変換を使用するとHigh Profileになる。p4x4はp8x8をつけないと効かない。i8x8は8x8dctが無ければ効かない。
        16x16のマクロブロックを、場面やフレームタイプに応じてさらに細かく分割できるようにしましょうというもの。
        8x8 離散コサイン変換はブロックを8x8にしてDCT処理を行なうようにするためのオプションで、画質が向上する。ポータブルメディアプレイヤーで再生するなどの制限がない限り、ONにしたほうがよい。
        他項目は量子化の際に使われるブロックサイズ。高画質を狙うならばチェックを多くつけておいたほうが良い。だたし、多くつけると再生負荷も大きくなる。p4x4は得られる画質の向上に比べてエンコード負荷が大きいので、切るのもアリ。
        全部使う場合コマンドは --partitions all。デフォルトはp4x4以外ON。【--8x8dct --partitions "p8x8,b8x8,i8x8,i4x4"】
  • Bフレーム設定
    • Bフレームの最大連続数:3【--bframes 3】
      B-Frameの最大連続数、初期値は3。範囲0~16で、0はB-Frame無し。この値を大きくすると圧縮率が向上。1以上でMP4コンテナではディレイフレームが1枚発生する。--b-adapt 2の場合は3~5推奨。
    • 適応的Bフレーム挿入:簡易【--b-adapt 1】
      最大連続数の範囲でBフレームに適するものをBフレームとし、適さないものをPフレームとする。無効(--b-adapt 0)にすると常に--bframesで設定した枚数を連続して使う(非推奨)。
      簡易(--b-adapt 1)は高速な簡易判定を行う。完全(--b-adapt 2)にすると正確な判定を行うが1pass目が--bframesの数に応じて低速になる。
      エンコードに余裕があれば完全(2)が良い。
    • 傾向:0【--b-bias 0】
      B-Frameの挿入傾向を調整。範囲-90~100(x264guiでは-100まで設定できるが、-90として扱われる)。
      一般的に0で問題ない。プラス方向に補正するとB-Frameの使用量が増大し、マイナス方向に補正すれば減少する。どちらにしても画質が劣化する可能性のほうが高い。
    • 参照距離:3【--ref 3】
      参照に使えるフレームの最大距離数。範囲1~16(0を指定すると1として扱われる)。1は複数参照しない。2以上で複数参照可能になる。
      これを高くしすぎると動画を再生する際のメモリ消費量が増え、PC以外の再生ハード(BDプレーヤー、PS3、PSP、iPod等)での再生において、互換性に問題が生じることがよく起こる。またあまり増やすとエンコードにかかる時間が増えるので、せいぜい6程度までにしておくほうが無難である。
    • 混合:on 【--no-mixed-refs】
      デフォルトはon。チェックを外せばoff(CLIなら上記コマンド追加でoff)。
      サブブロック単位で参照するフレームを変える。画質、圧縮効率は上がり、エンコード、デコードは遅くなる。
    • ピラミッド参照化:normal【--b-pyramid "normal"】
      none(0)、strict(1)、normal(2)の3種類。
      デフォルトはnormal。B-FrameでI-FrameとP-Frameだけでなく、B-Frameからの参照も許可するためのオプション。使用するには--bframes が2以上必要。エンコードのスピードと画質は少し上昇するが、FlashPlayerで再生する場合、MP4コンテナ使用時のディレイフレームが2枚に増え、再生負荷も若干上がる。
      strictは実質ブルーレイディスクの規格に適合させるための方式で、normalはx264独自の方式。普通に使う分にはstrictを使用する利点はほぼ無い。再生負荷を下げたい場合はnoneに変更する。r1367からmb-treeと同時に使用できるようになった。
    • 重み付け予測:Bフレーム on 【--no-weightb】、Pフレーム Smart analysis【--weightp 2】
      デフォルトはBフレームはon、チェックを外すか上記コマンド--no-weightbを追加でoff。PフレームはデフォルトはSmart analysis(--weightp 2)。B-Frame、P-Frameに参照する前後(Pは前方だけ)のフレームからの距離に応じた補正をかける。
      フェードインやフェードアウトの圧縮効率改善を狙ったもので、B-Frameに関しては--b-adapt 2で正確な重み付け予測ができる。--b-adapt 1での効果はいまいちのよう。
      P-Frameに関してはデフォルトはSmart analysisになっている。これはBlind offsetやnoneよりも高度な分析を行う。なお、いくつかのデコーダーにおいて、weightp 1または2を使うと映像が壊れる(ブロックが発生する)現象が確認されている。これにはFlashPlayer10.0も含まれており、修正は10.1で行われた。また、smile鯖にweightp 1または2を使った動画を投稿すると、未対応形式の動画として蹴られることがよく起こり、運よく蹴られずにすんでも「エコノミー症候群」を発症することも何例か確認されてる。エコノミー回避動画以外ではweightp 0にしたほうがよいだろう。
      参考:The spec-violation hall of shame(恥知らずな規格違反者たちの殿堂)
  • 詳細
    • 動き予測
      • 動き予測アルゴリズム:Hexagonal Search【--me "hex"】
        「Diamond Search【"dia"】[Fast] (解説)」、「Hexagonal Search【"hex"】[Default] 」、「Uneven Multi-Hexagon search【"umh"】(解説)」、「Exhaustive Search【"esa"】 (解説)」、「Hadamard Exhaustive Search【"tesa"】[Slow]」の5種類。
        diaは最も精度が低く、tesaは最も精度が高い。また、速度はdiaが最も速く、tesaが最も遅い(5種の処理時間比較グラフ)。
        精度が高いほうが画質、圧縮効率が良いが、多くの場合esaやtesaを指定してもumhとほとんど変わらない。それに引き換え、総当たりで検出するExhaustive Search(esa)とHadamard Exhaustive Search(tesa)は膨大な時間が掛かるため、余程時間に余裕がある場合でなければ使わない方が良い(特にtesaは現在までに何度か高速化のための手直しをされてきたが、それでもまだまだ遅い)。
        通常は初期値のHexagonal Searchか、検索精度と速度のバランスが優れているUneven Multi-Hexagon(umh)を使うのが良い。Diamond Searchも、あまり動きの激しくない素材ならばよいかもしれない。
      • サブピクセル精度:7【--subme 7】
        0から10までの11段階。7と9を使う場合は要--bframes 1以上。10(QP-RD)を使う場合は後述の--aq-modeを1か2、--trellisを2にする必要がある。
        7以上推奨。高いほど画質が上がるが遅くなる。
        なお、1st passでもsubme 0は実験的な用途以外では使わない方が良い。
      • ベクトル探索範囲:16【--merange 16】
        動き探索につかわれるpredictor(予測器)の距離。meがdiaかhexの場合は4~16まで、meがumh、esa、tesaの場合はx264guiでは4~64まで指定できる。
        8~24を推奨。動画の解像度が高い場合は、ある程度大きな数字にした方が効果が高くなるが、非常に時間がかかる。SD解像度で8~16、HD解像度でも24あれば十分といわれている。現在の一般的な動画においてこれ以上の値に設定しても、得られる効果はplaceboと判断されるケースがほとんどであろう。また大きくし過ぎると誤判定を起こすこともあるため、やりすぎはよくない。
      • 彩度動き予測:on【--no-chroma-me】
        色情報による動き検出を使うかのオプション。通常はON。チェックを外すか上記コマンド入力でOFF。
      • 動き予測方式:Spatial【--direct "Spatial"】
        B-Framesの中に「ダイレクト」というマクロブロックタイプがあった時に、そこで使うモーションベクトルの予測方式。Autoでフレーム毎に最適な方式を選ぶ。
        Spatialは2D優先、Temporalは3Dの時間軸を考慮して圧縮を行なう。圧縮率は後者が優れているが、副作用で残像が残る可能性があるので、Autoにしておくのが良い。Noneは最も遅い上に画質も最悪なので、使わない方がいい。
    • 詳細設定
      • SAR 【--sar 0:0】
        SampleAspectRatio?(別名PAR:PixelAspectRatio?)の設定。再生側に情報として渡されるピクセル単位のアスペクト比の情報。無指定なら1:1と同じ。ニコニコではこれは指定していても無視されるので、いじる意味がない。エンコード前にフィルタでリサイズや黒ベタ追加、クリッピング等をきっちり行っておくこと。
      • スレッド数:0【--threads 0】
        x264のスレッド数の指定。0だと自動でCPU数を検索し、Core2Quadなら6、Corei7ならHTT有効だと12のようにCPUスレッド数の1.5倍の数値になる(推奨)。
        エンコード以外の作業を並行して行いたい場合、これを指定して使用するCPUスレッドを下げても良いが、CPUをフルに使えなくなるのでまずプロセスの優先度を下げることを勧めたい。
        CPU使用率が低いからと言って自動の値より大きくしても、効果はないかむしろ悪くなるだけなのでいじる必要はない。
      • スライス-スレッド:off【--sliced-threads】
        デフォルトoff、チェックでスレッド分割をスライスベースでサポートする。ストリーミングエンコード用なので、ニコニコ用エンコードでは使ってはいけない。
      • ノイズ除去:0【--nr 0-100000】
        デフォルトは0(off)。Wienerフィルタを使ったDCTドメインのノイズリダクション。MPlayerやAviSynthの相当品(hqdn3d)より高速で、実用範囲は100-200。
        H.264規格には本来存在しないが、素材の圧縮工程に入る前に適用するので、再生機器やデコーダの機能とは関係なく使える(単にAviSynthでフィルタをかけるようなもの)。
        後述の--psy-rdと効果が対立するため、どちらかしか使えない。両方使用しようとすると両方無効となる。
      • デブロックフィルタ:on,0,0【--deblock 0:0】off:--no-deblock
        MPEG系は量子化のプロセスや動き補償の結果、隣接したブロックの符号化でアーティファクトが発生する。H.264ではこれを軽減するためにDeblocking filterを導入。その動作からインループ・フィルターともいわれる。
        StrengthとThresholdのパラメータがあるが、+方向に動かして強くするとぼやけた感じに、-方向に動かすとくっきりとした感じの絵となる。範囲は-6~+6。映像がぼやけているように感じられる場合、ビットレートが十分であれば0より小さい値に設定しても良いかもしれない。ただし、0から値を動かすとSSIMやPSNRは低下するため、動かすにしても±1程度に収めておいたほうが無難だと思われる。
        輪郭を強調したいのであればエッジレベル強調などのフィルタを使用すべし。
        デコードが重くなるオプションなので、再生負荷軽減のため画質劣化を許容できるのであれば切るのもあり。
      • CABAC:on【--no-cabac】
        デフォルトon。チェックをはずすかコマンド--no-cabac追加でoff。
        Context-based Adaptive. Binary Arithmetic Codingの略で、H.264/MPEG-4 AVCのキモの部分。変動シンボル確率分布を利用し、シンボル間の相関も利用することで圧縮率を向上させている。
        無効にすると再生時の負荷が大幅に減少するが、ビットレートが元々足りないような動画でこれを切ると、画質は大幅にダウンする。
      • インターレス保持【--tff, --bff】
        インターレースでエンコードする際のみonにする。--tffでトップファースト、--bffでボトムファーストになる。
        FlashPlayerはインターレース非対応なので、これは使ってはいけない。
      • スキップMB検出:on【--no-fast-pskip】
        デフォルトon、チェックをはずすか上記コマンド追加でoff。スキップ検出の非使用。offにするとエンコードは遅くなるが、特にいいことはない。
      • DCT係数間引き:on【--no-dct-decimate】
        デフォルトon、チェックをはずすか上記コマンド追加でoff。動画圧縮は映像の細かい部分を省略するようなもので、その為に様々な手法を組み合わせて使う。dct decimateもその一つ。切ると忠実度は上がるが、必要なビットレートも上がる。
        デフォルトのONのままで構わない。画質を向上させたいならビットレートを上げるかcrfをより小さい値に設定するのが筋。
      • RD最適化;Last MB Encode【--trellis 1】
        Trellis RDO の適用。最終マクロブロックのみか、常時かを選択。要CABAC。
        DCT(Discrete Cosine Transform)で失われた情報を回復させて画質を若干向上させるモードを使用するかどうかのオプション。コマンドは順に0(None),1(Last MB Encode),2(All MB Encode)で数字が大きいほど画質優先で遅くなる。
      • マトリックス:flat【--cqm flat】
        CQMはカスタム量子化マトリクス(Custom Quantisation Matrix)のこと。デフォルトのflatマトリクスか、jvtマトリクスを選択する。
        量子化マトリクスは格子状にならんだ数字(数学で言う行列)で、個々の数字をquantum(量子/量子化マトリクスの値)として扱う。この個々の数字が元の映像データをどのくらい破棄するかを決める。個々の数字が大きなマトリクスは映像がソフトになり、小さなマトリクスは映像のディティール保持率があがる。x264のデフォルトは "flat 16" マトリクスを使う。これは全ての数字が16で埋まっているもので、デコードの際に特別な扱いが不要なものだ(Main Profile以下)。カスタム量子化マトリクスはHigh Profileの機能で、実際にはデコード負荷は増えも減りもしないのだが、デコーダ側のサポートが必要となる。
        x264の場合、下手にいじってもいいことはないのでflat推奨。
      • ログ
        x264がLogに書き出す情報の種別。通常は変更しなくて構わない。いろいろ画質を追求したりしたければ、まずはこのログの読み方を覚えよう。読み方に関してはこちらを参照
      • mb-treeレート制御【--no-mbtree】
        デフォルトON。チェックを外すかコマンド入力でOFF。
        映像を先読みしてQPの決定に重み付けを行う(時間軸で映像を観察して、後々重要になりそうな部分の品質を上げておき、どうでもよさそうなところは品質を下げる)。特に動きが少なくて平板な部分が多い動画につかうと、ビットレートを大幅に節約でき、その分全体的な品質の向上が見込める。--qcompの値を上げると効き目が弱くなり、下げると強くなる。
  • その他
    • Adaptive Quantization
      マクロブロック単位でのQP可変を実行する。
      例えば人間の顔がアップで映っている場合、すべて同一QPに設定すると肌がのっぺりして質感が失われる場合がある。
      AQを用いると髪の毛や輪郭(高周波部分)のQPを上げてビットを節約し、余ったビットを使って肌(低周波部分)のQPを下げて質感を出すといった事が出来る。
      あくまで使えるビット量は変わらないので、全ての部分の画質を向上する事は出来ない。
      人間の目で劣化が目立ちにくい部分のビットを削り、劣化が目立ちやすい部分にビットを回してくれるのがVAQである。
      • モード;VAQ【--aq-mode 1】
        デフォルトはVAQ(--aq-mode 1)、無効(--aq-mode 0)はこの機能を使用しない。AutoVAQ(--aq-mode 2)はVAQのビットレート配分をさらにメリハリをつけたものにする。AutoVAQはr1457で挙動が改善され、アニメでも輪郭が荒れにくくなった。
        なお、前述のmb-treeを使用する場合にはこの機能は必要不可欠なため、mb-treeをonにすると、こちらを無効(--aq-mode 0)にしても強制的に--aq-mode 1 --aq-strength 0に変更される。
      • 強度;1.00【--aq-strength 1.00】
        AQを動作させる強さ。範囲0~3。0に近いほど弱くなってQPの差が少なくなり、数値を大きくするほどQPの差が大きくなる(AutoVAQ使用時はQPの差はさらに激しくなる)。
        0でモード無効と同様の結果になる。
        アニメ等ディテールに乏しく低周波成分が多いものには0~0.6くらいの弱めの数値を選ぶのが一般的。
        FPS等のゲーム動画で壁や地面に発生するブロックノイズに悩まされてる人は、AutoVAQでここを1.0~1.5くらいにしてみるのもいいかもしれない。
        (なおx264gui.auoではこの値にマイナスを指定できるが、x264本体では0.0として扱われる)
    • Psy-RD【--psy-rd 1.0:0.0】
      要subme6以上。書法は--psy-rd <Psy-RD:Psy-Trellis>。コマンド--no-psy入力でオフ(0.0:0.0)になる。
      視覚心理的に見て複雑とみられる部分や、色が激しく変化する部分などのqp値を下げ、最適化する。
      エンコード時に潰れやすい細部やフィルムグレインなどの表現力が高まる。
      初期値の1.0:0.0ではビットレートはかなり増えるのでニコニコではオフするか0.5:0.0など低い数値にするほうがいいかも。アニメなどの素材ではオフ(0.0:0.0)にするか0.3:0.0など低い数値がお勧め。
      Psy-trellisは細かいディザやグレインを残したい場合に効果的なオプション。ただし、効果が分かりにくくビットレートの消費も大きいため、プレミアム会員でビットレートに余裕がある等の場合以外は非推奨。
    • 結果出力
      エンコード時にPSNR、SSIMを計算するかどうかの設定。
      チェックを入れるとPSNR、SSIMを計算し、エンコード終了時にログに計算結果を表示する。計算する場合は、エンコードにかかる時間がほんの若干増える。
    • スライス数
      使うとエンコ時間が長くなり、圧縮率と画質は落ちる。
      BDエンコ用、もしくはHDサイズのリアルタイムストリーミング用オプション。
      AviUtlでリアルタイムストリーミング用エンコードを行うことはまずありえないので、使うとすればBD用エンコードと言うことになる。当然、ニコニコ向けエンコードでは使用する必要も意義もまったくない。
      絶対に0以外にしないこと。
    • Level
      細かい説明は省略。詳細はこちらなどを参照のこと。
      現在のx264は、Levelの自動調節機能を実装している。これを指定すると、x264は指定レベルに収まるように各値を自動的に調整してくれる(1920x1080iの動画で--preset veryslow --profile high --level 4.1とすれば、--refは自動的に3まで減る等)。
      これを指定しない場合は、x264は使用されたオプション類からLevelを計算する。
    • ステータスファイル【--stats ".\x264.stats"】
      マルチパスエンコードで使う統計ファイルのパスと名前を指定。全てのパスが同じログファイルを参照しない限り、正しく動作しない。
      なおマルチパス時にmb-treeを使用すると、このファイルと同じ場所に"ステータスファイル名.mbtree"という、もうひとつのログファイルが作成される。
  • コマンド
    上記のGUIで設定できないオプションはここに直接コマンドを記載することで使用する。コマンドを記載した場合は必ず右下の「画面に反映」ボタンを押すこと(押さなかった場合は無視される)。
    なお、ここにGUIでも設定できるオプションを記載した場合は、GUIにおける設定はこちらの内容で上書きされる。
    • コマンド欄で設定するべき重要オプション
      • --colormatrix smpte170m もしくは--colormatrix bt709
        YUV-RGB変換をプレーヤー(デコーダーやフィルターやレンダラー)が行う際に使用するマトリクス(行列)を強制する。
        PC用モニター等RGBしか表示出来ないものでYUVで圧縮された動画を再生する場合は、YUV-RGB変換は不可欠であるが、この処理(計算)を行う際には、SD解像度(縦解像度が720未満)の場合はBT.601(SMPTE170m もしくは BT.470bg)、HD解像度(縦が720以上)の場合はBT.709と呼ばれる行列を使用することと国際規格で決められている。
        これは本来、再生側が解像度から自動的に判別するのが望ましいのではあるが、世の中にはそうなっていないものも多く存在するため、動画にこの情報を埋め込むことで再生側に使用する行列を指定することが必要な場合がある。
        ソースのマトリクス(行列)がわからなければ、仕方がないのでundef(再生環境におまかせ)にする。
  • 拡張設定
    x264には本来存在しない、拡張x264出力プラグイン独自の機能を設定する。
    • 自動フィールドシフトv7対応
      デフォルトはオフ。AviUtlの自動フィールドシフトプラグインを使用している場合以外はチェックを入れてはいけない。
    • ビデオ先読みスレッド
      デフォルトはオフ。使用するとメモリ消費量が増え、クラッシュする危険性が高くなる可能性があるが、スピードが少し速くなるかもしれない。
    • インターレース対応YUY2->YV12変換(MMX/SSE)
      デフォルトはオン。AviUtlとx264の仕様上絶対に必要な機能なので、チェックは外せないようになっている。
    • Timecode.txt出力
      デフォルトはオフ。オンにすると、Timecodev2ファイルが映像ファイルと同時に出力される。
      ソースがVFR(可変フレームレート)の場合はチェックをいれ、エンコード後にDtsEdit?などで出力したTimecodev2と動画をmuxする。一般的な動画はCFR(固定フレームレート)で関係ないので、よくわからない場合はオフで問題ない。
    • 初期ディレイカットは本家のmp4コンテナの格納方法の変更に伴って削除された。また、自動フィールドシフトプラグインを使用した際のみTimeScale?を入力の4倍にするようになり、Timecode4倍精度のチェックボックスも廃止された。

拡張 x264 出力 CLI MODE (& x264.exe 全機能)

拡張x264出力(GUI)の設定画面の右上にある「CLI MODE」ボタンを押すと、x264.exeをCLIで使用するのと同じ状態になる。
以下にx264.exeの全オプション(x264.exe --fullhelp)を転載する。(内容はx264.nlのものに準拠)

x264 core:148 r2579 73ae2d1
Syntax: x264 [options] -o outfile infile
 Infile can be raw (in which case resolution is required),
  or YUV4MPEG (*.y4m),
  or Avisynth if compiled with support (yes).
  or libav* formats if compiled with lavf support (yes) or ffms support (no).
 Outfile type is selected by filename:
 .264 -> Raw bytestream
 .mkv -> Matroska
 .flv -> Flash Video
 .mp4 -> MP4 if compiled with GPAC or L-SMASH support (no)
 Output bit depth: 8 (configured at compile time)
 Options:
 -h, --help                  List basic options
     --longhelp              List more options
     --fullhelp              List all options
 Example usage:
     Constant quality mode:
           x264 --crf 24 -o <output> <input> 
     Two-pass with a bitrate of 1000kbps:
           x264 --pass 1 --bitrate 1000 -o <output> <input>
           x264 --pass 2 --bitrate 1000 -o <output> <input>
     Lossless:
           x264 --qp 0 -o <output> <input>
     Maximum PSNR at the cost of speed and visual quality:
           x264 --preset placebo --tune psnr -o <output> <input>
     Constant bitrate at 1000kbps with a 2 second-buffer:
           x264 --vbv-bufsize 2000 --bitrate 1000 -o <output> <input>
 Presets:
     --profile <string>      Force the limits of an H.264 profile
                                 Overrides all settings.
                                 - baseline:
                                   --no-8x8dct --bframes 0 --no-cabac
                                   --cqm flat --weightp 0
                                   No interlaced.
                                   No lossless.
                                 - main:
                                   --no-8x8dct --cqm flat
                                   No lossless.
                                 - high:
                                   No lossless.
                                 - high10:
                                   No lossless.
                                   Support for bit depth 8-10.
                                 - high422:
                                   No lossless.
                                   Support for bit depth 8-10.
                                   Support for 4:2:0/4:2:2 chroma subsampling.
                                 - high444:
                                   Support for bit depth 8-10.
                                   Support for 4:2:0/4:2:2/4:4:4 chroma subsampling.
     --preset <string>       Use a preset to select encoding settings [medium]
                                 Overridden by user settings.
                                 - ultrafast:
                                   --no-8x8dct --aq-mode 0 --b-adapt 0
                                   --bframes 0 --no-cabac --no-deblock
                                   --no-mbtree --me dia --no-mixed-refs
                                   --partitions none --rc-lookahead 0 --ref 1
                                   --scenecut 0 --subme 0 --trellis 0
                                   --no-weightb --weightp 0
                                 - superfast:
                                   --no-mbtree --me dia --no-mixed-refs
                                   --partitions i8x8,i4x4 --rc-lookahead 0
                                   --ref 1 --subme 1 --trellis 0 --weightp 1
                                 - veryfast:
                                   --no-mixed-refs --rc-lookahead 10
                                   --ref 1 --subme 2 --trellis 0 --weightp 1
                                 - faster:
                                   --no-mixed-refs --rc-lookahead 20
                                   --ref 2 --subme 4 --weightp 1
                                 - fast:
                                   --rc-lookahead 30 --ref 2 --subme 6
                                   --weightp 1
                                 - medium:
                                   Default settings apply.
                                 - slow:
                                   --b-adapt 2 --direct auto --me umh
                                   --rc-lookahead 50 --ref 5 --subme 8
                                 - slower:
                                   --b-adapt 2 --direct auto --me umh
                                   --partitions all --rc-lookahead 60
                                   --ref 8 --subme 9 --trellis 2
                                 - veryslow:
                                   --b-adapt 2 --bframes 8 --direct auto
                                   --me umh --merange 24 --partitions all
                                   --ref 16 --subme 10 --trellis 2
                                   --rc-lookahead 60
                                 - placebo:
                                   --bframes 16 --b-adapt 2 --direct auto
                                   --slow-firstpass --no-fast-pskip
                                   --me tesa --merange 24 --partitions all
                                   --rc-lookahead 60 --ref 16 --subme 11
                                   --trellis 2
     --tune <string>         Tune the settings for a particular type of source
                             or situation
                                 Overridden by user settings.
                                 Multiple tunings are separated by commas.
                                 Only one psy tuning can be used at a time.
                                 - film (psy tuning):
                                   --deblock -1:-1 --psy-rd <unset>:0.15
                                 - animation (psy tuning):
                                   --bframes {+2} --deblock 1:1
                                   --psy-rd 0.4:<unset> --aq-strength 0.6
                                   --ref {Double if >1 else 1}
                                 - grain (psy tuning):
                                   --aq-strength 0.5 --no-dct-decimate
                                   --deadzone-inter 6 --deadzone-intra 6
                                   --deblock -2:-2 --ipratio 1.1
                                   --pbratio 1.1 --psy-rd <unset>:0.25
                                   --qcomp 0.8
                                 - stillimage (psy tuning):
                                   --aq-strength 1.2 --deblock -3:-3
                                   --psy-rd 2.0:0.7
                                 - psnr (psy tuning):
                                   --aq-mode 0 --no-psy
                                 - ssim (psy tuning):
                                   --aq-mode 2 --no-psy
                                 - fastdecode:
                                   --no-cabac --no-deblock --no-weightb
                                   --weightp 0
                                 - zerolatency:
                                   --bframes 0 --force-cfr --no-mbtree
                                   --sync-lookahead 0 --sliced-threads
                                   --rc-lookahead 0
     --slow-firstpass        Don't force these faster settings with --pass 1:
                                 --no-8x8dct --me dia --partitions none
                                 --ref 1 --subme {2 if >2 else unchanged}
                                 --trellis 0 --fast-pskip
 Frame-type options:
 -I, --keyint <integer or "infinite"> Maximum GOP size [250]
 -i, --min-keyint <integer>  Minimum GOP size [auto]
     --no-scenecut           Disable adaptive I-frame decision
     --scenecut <integer>    How aggressively to insert extra I-frames [40]
     --intra-refresh         Use Periodic Intra Refresh instead of IDR frames
 -b, --bframes <integer>     Number of B-frames between I and P [3]
     --b-adapt <integer>     Adaptive B-frame decision method [1]
                                 Higher values may lower threading efficiency.
                                 - 0: Disabled
                                 - 1: Fast
                                 - 2: Optimal (slow with high --bframes)
     --b-bias <integer>      Influences how often B-frames are used [0]
     --b-pyramid <string>    Keep some B-frames as references [normal]
                                 - none: Disabled
                                 - strict: Strictly hierarchical pyramid
                                 - normal: Non-strict (not Blu-ray compatible)
     --open-gop              Use recovery points to close GOPs
                             Only available with b-frames
     --no-cabac              Disable CABAC
 -r, --ref <integer>         Number of reference frames [3]
     --no-deblock            Disable loop filter
 -f, --deblock <alpha:beta>  Loop filter parameters [0:0]
     --slices <integer>      Number of slices per frame; forces rectangular
                             slices and is overridden by other slicing options
     --slices-max <integer>  Absolute maximum slices per frame; overrides
                             slice-max-size/slice-max-mbs when necessary
     --slice-max-size <integer> Limit the size of each slice in bytes
     --slice-max-mbs <integer> Limit the size of each slice in macroblocks (max)
     --slice-min-mbs <integer> Limit the size of each slice in macroblocks (min)
     --tff                   Enable interlaced mode (top field first)
     --bff                   Enable interlaced mode (bottom field first)
     --constrained-intra     Enable constrained intra prediction.
     --pulldown <string>     Use soft pulldown to change frame rate
                                 - none, 22, 32, 64, double, triple, euro (requires cfr input)
     --fake-interlaced       Flag stream as interlaced but encode progressive.
                             Makes it possible to encode 25p and 30p Blu-Ray
                             streams. Ignored in interlaced mode.
     --frame-packing <integer> For stereoscopic videos define frame arrangement
                                 - 0: checkerboard - pixels are alternatively from L and R
                                 - 1: column alternation - L and R are interlaced by column
                                 - 2: row alternation - L and R are interlaced by row
                                 - 3: side by side - L is on the left, R on the right
                                 - 4: top bottom - L is on top, R on bottom
                                 - 5: frame alternation - one view per frame
                                 - 6: mono - 2D frame without any frame packing
                                 - 7: tile format - L is on top-left, R split across
 Ratecontrol:
 -q, --qp <integer>          Force constant QP (0-69, 0=lossless)
 -B, --bitrate <integer>     Set bitrate (kbit/s)
     --crf <float>           Quality-based VBR (0-51) [23.0]
     --rc-lookahead <integer> Number of frames for frametype lookahead [40]
     --vbv-maxrate <integer> Max local bitrate (kbit/s) [0]
     --vbv-bufsize <integer> Set size of the VBV buffer (kbit) [0]
     --vbv-init <float>      Initial VBV buffer occupancy [0.9]
     --crf-max <float>       With CRF+VBV, limit RF to this value
                                 May cause VBV underflows!
     --qpmin <integer>       Set min QP [0]
     --qpmax <integer>       Set max QP [69]
     --qpstep <integer>      Set max QP step [4]
     --ratetol <float>       Tolerance of ABR ratecontrol and VBV [1.0]
     --ipratio <float>       QP factor between I and P [1.40]
     --pbratio <float>       QP factor between P and B [1.30]
     --chroma-qp-offset <integer>  QP difference between chroma and luma [0]
     --aq-mode <integer>     AQ method [1]
                                 - 0: Disabled
                                 - 1: Variance AQ (complexity mask)
                                 - 2: Auto-variance AQ
                                 - 3: Auto-variance AQ with bias to dark scenes
     --aq-strength <float>   Reduces blocking and blurring in flat and
                             textured areas. [1.0]
 -p, --pass <integer>        Enable multipass ratecontrol
                                 - 1: First pass, creates stats file
                                 - 2: Last pass, does not overwrite stats file
                                 - 3: Nth pass, overwrites stats file
     --stats <string>        Filename for 2 pass stats ["x264_2pass.log"]
     --no-mbtree             Disable mb-tree ratecontrol.
     --qcomp <float>         QP curve compression [0.60]
     --cplxblur <float>      Reduce fluctuations in QP (before curve compression) [20.0]
     --qblur <float>         Reduce fluctuations in QP (after curve compression) [0.5]
     --zones <zone0>/<zone1>/...  Tweak the bitrate of regions of the video
                             Each zone is of the form
                                 <start frame>,<end frame>,<option>
                                 where <option> is either
                                     q=<integer> (force QP)
                                 or  b=<float> (bitrate multiplier)
     --qpfile <string>       Force frametypes and QPs for some or all frames
                             Format of each line: framenumber frametype QP
                             QP is optional (none lets x264 choose). Frametypes: I,i,K,P,B,b.
                                 K=<I or i> depending on open-gop setting
                             QPs are restricted by qpmin/qpmax.
 Analysis:
 -A, --partitions <string>   Partitions to consider ["p8x8,b8x8,i8x8,i4x4"]
                                 - p8x8, p4x4, b8x8, i8x8, i4x4
                                 - none, all
                                 (p4x4 requires p8x8. i8x8 requires --8x8dct.)
     --direct <string>       Direct MV prediction mode ["spatial"]
                                 - none, spatial, temporal, auto
     --no-weightb            Disable weighted prediction for B-frames
     --weightp <integer>     Weighted prediction for P-frames [2]
                                 - 0: Disabled
                                 - 1: Weighted refs
                                 - 2: Weighted refs + Duplicates
     --me <string>           Integer pixel motion estimation method ["hex"]
                                 - dia: diamond search, radius 1 (fast)
                                 - hex: hexagonal search, radius 2
                                 - umh: uneven multi-hexagon search
                                 - esa: exhaustive search
                                 - tesa: hadamard exhaustive search (slow)
     --merange <integer>     Maximum motion vector search range [16]
     --mvrange <integer>     Maximum motion vector length [-1 (auto)]
     --mvrange-thread <int>  Minimum buffer between threads [-1 (auto)]
 -m, --subme <integer>       Subpixel motion estimation and mode decision [7]
                                 - 0: fullpel only (not recommended)
                                 - 1: SAD mode decision, one qpel iteration
                                 - 2: SATD mode decision
                                 - 3-5: Progressively more qpel
                                 - 6: RD mode decision for I/P-frames
                                 - 7: RD mode decision for all frames
                                 - 8: RD refinement for I/P-frames
                                 - 9: RD refinement for all frames
                                 - 10: QP-RD - requires trellis=2, aq-mode>0
                                 - 11: Full RD: disable all early terminations
     --psy-rd <float:float>  Strength of psychovisual optimization ["1.0:0.0"]
                                 #1: RD (requires subme>=6)
                                 #2: Trellis (requires trellis, experimental)
     --no-psy                Disable all visual optimizations that worsen
                             both PSNR and SSIM.
     --no-mixed-refs         Don't decide references on a per partition basis
     --no-chroma-me          Ignore chroma in motion estimation
     --no-8x8dct             Disable adaptive spatial transform size
 -t, --trellis <integer>     Trellis RD quantization. [1]
                                 - 0: disabled
                                 - 1: enabled only on the final encode of a MB
                                 - 2: enabled on all mode decisions
     --no-fast-pskip         Disables early SKIP detection on P-frames
     --no-dct-decimate       Disables coefficient thresholding on P-frames
     --nr <integer>          Noise reduction [0]
     --deadzone-inter <int>  Set the size of the inter luma quantization deadzone [21]
     --deadzone-intra <int>  Set the size of the intra luma quantization deadzone [11]
                                 Deadzones should be in the range 0 - 32.
     --cqm <string>          Preset quant matrices ["flat"]
                                 - jvt, flat
     --cqmfile <string>      Read custom quant matrices from a JM-compatible file
                                 Overrides any other --cqm* options.
     --cqm4 <list>           Set all 4x4 quant matrices
                                 Takes a comma-separated list of 16 integers.
     --cqm8 <list>           Set all 8x8 quant matrices
                                 Takes a comma-separated list of 64 integers.
     --cqm4i, --cqm4p, --cqm8i, --cqm8p <list>
                             Set both luma and chroma quant matrices
     --cqm4iy, --cqm4ic, --cqm4py, --cqm4pc <list>
                             Set individual quant matrices
 Video Usability Info (Annex E):
 The VUI settings are not used by the encoder but are merely suggestions to
 the playback equipment. See doc/vui.txt for details. Use at your own risk.
     --overscan <string>     Specify crop overscan setting ["undef"]
                                 - undef, show, crop
     --videoformat <string>  Specify video format ["undef"]
                                 - component, pal, ntsc, secam, mac, undef
     --range <string>        Specify color range ["auto"]
                                 - auto, tv, pc
     --colorprim <string>    Specify color primaries ["undef"]
                                 - undef, bt709, bt470m, bt470bg, smpte170m,
                                   smpte240m, film, bt2020
     --transfer <string>     Specify transfer characteristics ["undef"]
                                 - undef, bt709, bt470m, bt470bg, smpte170m,
                                   smpte240m, linear, log100, log316,
                                   iec61966-2-4, bt1361e, iec61966-2-1,
                                   bt2020-10, bt2020-12
     --colormatrix <string>  Specify color matrix setting ["???"]
                                 - undef, bt709, fcc, bt470bg, smpte170m,
                                   smpte240m, GBR, YCgCo, bt2020nc, bt2020c
     --chromaloc <integer>   Specify chroma sample location (0 to 5) [0]
     --nal-hrd <string>      Signal HRD information (requires vbv-bufsize)
                                 - none, vbr, cbr (cbr not allowed in .mp4)
     --filler                Force hard-CBR and generate filler (implied by
                             --nal-hrd cbr)
     --pic-struct            Force pic_struct in Picture Timing SEI
     --crop-rect <string>    Add 'left,top,right,bottom' to the bitstream-level
                             cropping rectangle
 Input/Output:
 -o, --output <string>       Specify output file
     --muxer <string>        Specify output container format ["auto"]
                                 - auto, raw, mkv, flv
     --demuxer <string>      Specify input container format ["auto"]
                                 - auto, raw, y4m, avs, lavf
     --input-fmt <string>    Specify input file format (requires lavf support)
     --input-csp <string>    Specify input colorspace format for raw input
                             - valid csps for `raw' demuxer:
                               i420, yv12, nv12, nv21, i422, yv16, nv16, i444, yv24, bgr, bgra, rgb
                             - valid csps for `lavf' demuxer:
                               yuv420p, yuyv422, rgb24, bgr24, yuv422p,
                               yuv444p, yuv410p, yuv411p, gray, monow, monob,
                               pal8, yuvj420p, yuvj422p, yuvj444p, xvmcmc,
                               xvmcidct, uyvy422, uyyvyy411, bgr8, bgr4,
                               bgr4_byte, rgb8, rgb4, rgb4_byte, nv12, nv21,
                               argb, rgba, abgr, bgra, gray16be, gray16le,
                               yuv440p, yuvj440p, yuva420p, vdpau_h264,
                               vdpau_mpeg1, vdpau_mpeg2, vdpau_wmv3,
                               vdpau_vc1, rgb48be, rgb48le, rgb565be,
                               rgb565le, rgb555be, rgb555le, bgr565be,
                               bgr565le, bgr555be, bgr555le, vaapi_moco,
                               vaapi_idct, vaapi_vld, yuv420p16le,
                               yuv420p16be, yuv422p16le, yuv422p16be,
                               yuv444p16le, yuv444p16be, vdpau_mpeg4,
                               dxva2_vld, rgb444le, rgb444be, bgr444le,
                               bgr444be, ya8, bgr48be, bgr48le, yuv420p9be,
                               yuv420p9le, yuv420p10be, yuv420p10le,
                               yuv422p10be, yuv422p10le, yuv444p9be,
                               yuv444p9le, yuv444p10be, yuv444p10le,
                               yuv422p9be, yuv422p9le, vda_vld, gbrp, gbrp9be,
                               gbrp9le, gbrp10be, gbrp10le, gbrp16be,
                               gbrp16le, yuva422p, yuva444p, yuva420p9be,
                               yuva420p9le, yuva422p9be, yuva422p9le,
                               yuva444p9be, yuva444p9le, yuva420p10be,
                               yuva420p10le, yuva422p10be, yuva422p10le,
                               yuva444p10be, yuva444p10le, yuva420p16be,
                               yuva420p16le, yuva422p16be, yuva422p16le,
                               yuva444p16be, yuva444p16le, vdpau, xyz12le,
                               xyz12be, nv16, nv20le, nv20be, rgba64be,
                               rgba64le, bgra64be, bgra64le, yvyu422, vda,
                               ya16be, ya16le, gbrap, gbrap16be, gbrap16le,
                               qsv, mmal, d3d11va_vld
     --output-csp <string>   Specify output colorspace ["i420"]
                                 - i420, i422, i444, rgb
     --input-depth <integer> Specify input bit depth for raw input
     --input-range <string>  Specify input color range ["auto"]
                                 - auto, tv, pc
     --input-res <intxint>   Specify input resolution (width x height)
     --index <string>        Filename for input index file
     --sar width:height      Specify Sample Aspect Ratio
     --fps <float|rational>  Specify framerate
     --seek <integer>        First frame to encode
     --frames <integer>      Maximum number of frames to encode
     --level <string>        Specify level (as defined by Annex A)
     --bluray-compat         Enable compatibility hacks for Blu-ray support
     --avcintra-class <integer> Use compatibility hacks for AVC-Intra class
                                 - 50, 100, 200
     --stitchable            Don't optimize headers based on video content
                             Ensures ability to recombine a segmented encode
 -v, --verbose               Print stats for each frame
     --no-progress           Don't show the progress indicator while encoding
     --quiet                 Quiet Mode
     --log-level <string>    Specify the maximum level of logging ["info"]
                                 - none, error, warning, info, debug
     --psnr                  Enable PSNR computation
     --ssim                  Enable SSIM computation
     --threads <integer>     Force a specific number of threads
     --lookahead-threads <integer> Force a specific number of lookahead threads
     --sliced-threads        Low-latency but lower-efficiency threading
     --thread-input          Run Avisynth in its own thread
     --sync-lookahead <integer> Number of buffer frames for threaded lookahead
     --non-deterministic     Slightly improve quality of SMP, at the cost of repeatability
     --cpu-independent       Ensure exact reproducibility across different cpus,
                                 as opposed to letting them select different algorithms
     --asm <integer>         Override CPU detection
     --no-asm                Disable all CPU optimizations
     --opencl                Enable use of OpenCL
     --opencl-clbin <string> Specify path of compiled OpenCL kernel cache
     --opencl-device <integer> Specify OpenCL device ordinal
     --dump-yuv <string>     Save reconstructed frames
     --sps-id <integer>      Set SPS and PPS id numbers [0]
     --aud                   Use access unit delimiters
     --force-cfr             Force constant framerate timestamp generation
     --tcfile-in <string>    Force timestamp generation with timecode file
     --tcfile-out <string>   Output timecode v2 file from input timestamps
     --timebase <int/int>    Specify timebase numerator and denominator
                <integer>    Specify timebase numerator for input timecode file
                             or specify timebase denominator for other input
     --dts-compress          Eliminate initial delay with container DTS hack
 Filtering:
     --vf, --video-filter <filter0>/<filter1>/... Apply video filtering to the input file
     Filter options may be specified in <filter>:<option>=<value> format.
     Available filters:
     crop:left,top,right,bottom
           removes pixels from the edges of the frame
     resize:[width,height][,sar][,fittobox][,csp][,method]
           resizes frames based on the given criteria:
           - resolution only: resizes and adapts sar to avoid stretching
           - sar only: sets the sar and resizes to avoid stretching
           - resolution and sar: resizes to given resolution and sets the sar
           - fittobox: resizes the video based on the desired constraints
              - width, height, both
           - fittobox and sar: same as above except with specified sar
           - csp: convert to the given csp. syntax: [name][:depth]
              - valid csp names [keep current]: i420, yv12, nv12, nv21, i422, yv16, nv16, i444, yv24, bgr, bgra, rgb
              - depth: 8 or 16 bits per pixel [keep current]
           note: not all depths are supported by all csps.
           - method: use resizer method ["bicubic"]
              - fastbilinear, bilinear, bicubic, experimental, point,
              - area, bicublin, gauss, sinc, lanczos, spline
     select_every:step,offset1[,...]
           apply a selection pattern to input frames
           step: the number of frames in the pattern
           offsets: the offset into the step to select a frame
           see: http://avisynth.nl/index.php/Select#SelectEvery

参考…H.264動画からエンコードのオプションコマンドを知るツール「Mediainfo GUI」

H.264動画を直接ダウンロードできる場合に、Mediainfo GUIを使えば、読み込んだH.264動画のエンコード時のオプションコマンドを(ある程度?)知ることができます。
ジャンル(実写、スポーツ、アニメ、3Dゲーム、2Dゲーム、etc.)によって適切なオプションはかなり変わりますが、自身がよくエンコードするジャンルで高画質なH.264動画を見つけられたら、その動画から直接オプションを調べられるため、巷の解説よりもはるかに参考にできると思われます。

参考その2…もっと色々知りたい人は

ネット上には様々な情報が氾濫していますが、x264について書かれた日本語情報は正確なものばかりではありません。
もしあなたが精度の高い情報を手に入れたいと思うのなら、海外のサイトに行きましょう。

  • Doom10 Forum: Digital Video Discussion
    x264の公式フォーラム(英語オンリー)。
    ここにある情報は非常に正確です(もし間違った情報が投稿された場合、即座に開発チームメンバーや世界中のエンコオタクからツッコミをくらいます)。
  • Doom9's Forum
    世界的に有名なDVDリッピング/動画エンコード関連の総合フォーラム(英語オンリー)
    AviSynthMediaPlayerClassic-homecinemaといった有名なアプリケーションの公式フォーラムが置かれています。
    Doom10が発足するまでは、x264の公式フォーラムもここにありました。
  • #x264@freenode
    x264の公式IRCチャンネル
    topicは"open source MPEG-4 AVC / H.264 encoding and Touhou discussion"
    ここに入る場合は文字コードをUTF-8にしておきましょう。
    anime/東方ファンの溜まり場で、なんと日本語での発言もオーケー。

コメント

最新の10件を表示しています。 コメントページを参照

  • スマン合ってた。しかし制御と変動量のどっちを取るか迷うな -- 2010-10-23 (土) 12:12:35
  • ここまで詳しくありがとうございます 分りやすいです -- hyko? 2010-12-09 (木) 04:19:38
  • seraphy氏がサイト閉じちゃったので、rigaya版Exのページを作成した。以後はあちらで -- 2011-01-06 (木) 01:06:08
    • tune touhouって今もあるの? -- yumetodo? 2014-01-21 (火) 19:58:03
  • CLI の --fullhelp を最新版に修正しました。 -- 2015-08-08 (土) 13:07:08
  • rc-lookaheadがどういう効果か確認しようかと思ったら説明がなくなってた・・・ -- 2015-11-08 (日) 10:20:02
  • 取り敢えずqpmaxが69に変わっていたから修正 -- 2017-02-01 (水) 23:28:30
  • そろそろ、x264に関する情報の更新先を、このページとGUIExのページのどちらかに一本化した方が良いように思われる。 -- 2017-03-29 (水) 12:33:26
  • ということで、注意喚起を追加した。 -- 2017-03-29 (水) 12:55:21
  • 注意喚起というより、このページ自体の削除はだめ?2つあるとややこしいんだけど -- 2017-03-30 (木) 12:01:23
  • 確かに。でも、ここにリンク張ってる人もいるだろうし、あれだけデカデカと書いてあれば、気付かないことは無いんじゃないか? -- 2017-03-30 (木) 14:54:27
お名前:

ニコwikiサイト内検索
カスタム検索
トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS  ニコニコ関連記事のRSS 
Last-modified: 2017-03-29 (水) 12:56:35 (543d) Site admin: takechan
Powered by はてなウェブサービス SimpleAPI