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

準備中。項目名右につく値はデフォルト。【】内はデフォルトをあらわしたコマンド。CLI MODEでのみ、書き加えることで使う。

それっぽい解説が記述してあるサイト→
アニメエンコで役に立つかもしれない覚書 - 4章 x264 http://www.geocities.jp/encmemo5whf6jvag8/index2.html#Chapter4
x264 を使う - オプション一覧 http://x264.tobinaka.com/index.php?Usage%2FOptions
MPlayer and MEncoder on MacOSX - x264コーデックでのエンコード http://www.wikihouse.com/htumenc/index.php?Doc%2Fmenc-feat-x264
  • ビットレート
    • 映像
      • nul出力
      • 自動マルチパス
        自動で指定した回数のマルチパスを行う。
      • ビットレート(kbps):800【--bitrate 800】
        動画1秒間に収める目標データ量を設定(音声を除く)。単位はキロビット毎秒。数値は動画内容、下記オプションなどにより前後します。
        適正なビットレートというものは無い。というのが原則なので主観と世評で決める他無い。世間的にはDVD解像度で2000(kbps)程度が多い。一方 H.264規格のプロトタイプは1024kbpsで素材と見分けがつかないという評価を出している。BPP表も参考されたい。
        Losslessは量子化工程を省く--qpに0 を指定するものと思われる。この場合bitrate指定は無意味。
        ニコニコでは映像、音声、オーバーヘッド合計で800kbps以下にしなければならない。
      • マルチパス【--pass 3】(CLI MODEのみの説明)
        シングルパスの場合はこのコマンドは使わない。--pass 1はマルチパスのfirst passに使う。ログを新たに書き換える。--pass 3ではログを参照しながら書き換える。Nth-passで使う。--pass 2ではログを参照し、書き換えない。最終passでそれまでのログを書き換えたくない場合使う。
        すなわちマルチパスでは通常、初回 --pass 1 それ以降 --pass 3 と指定しておけばよい。
      • ステータスファイル【--stats ".\x264.stats"】
        マルチパスエンコードで使う統計ファイルのパスと名前を指定。全てのパスが同じログファイルを参照しない限り、正しく動作しない。
    • 音声
      • エンコーダ
        音声をエンコードするエンコーダを指定。通常は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フレームの量子化値換算係数。Iに適用された平均量子化値にここの値を掛けたものがPに適用される。
        値を小さくするとIフレームとPフレームのQP係数は近くなる。大きくするとPフレームの平均画質が下がるので、上げすぎはお奨めしない。
      • B-Pフレーム間QP係数(%):30【--pbratio 1.3】
        P フレームとBフレームの量子化値換算係数。Pに適用された平均量子化値にここの値を掛けたものがBに適用される。
      • ビットレート変動量(%):60【--qcomp 0.6】
        割り当てビットレートの変動許容量。値が小さいと急激なシーンの変化時にデータレートを無駄遣いする可能性あり。初期値のままで特に問題なし。頻繁かつ急激に変化するようなソースでは増やすと効果があるかもしれません。
    • 量子化の限度
      • QPの下限:10【--qpmin 10】
        最小量子化値(0に近いほど低圧縮・高画質)
      • OPの上限:51【--qpmax 51】
        最大量子化値(51は最高圧縮・最低画質)
      • QP変動幅の最大:4【--qpstep 4】
        連続フレーム間における量子化値の最大変動幅。デフォルト4。範囲1-50。アニメなど場面転換前後の落差が激しい素材では増やすと地味にシアワセになれる。8程度。素材問わず20程度とする設定例もあり。
        マルチパス処理時に使われるパラメータ、最小Quantizerと最大Quantizerの指定です。この範囲に限定できるので画質を一定以上に保ちたいようなケースで役立ちます。 狭すぎると目標ビットレートから大幅にオーバーする可能性あり。
    • シーンカット
      • シーンカット閾値:40【--scenecut 40】
        シーンチェンジを検出するしきい値=Iフレームの挿入しやすさ。高くするとたくさん入るが、不必要に入ってbitが無駄になるかもしれない。例えば場面転換と言うほどでもない画面の変化など。低くするとIの挿入頻度が減るが、やりすぎると --keyint 指定値への依存度が上がって適正箇所にIが入らない。例えば場面転換に非常に大きいPフレームが入るなど(Pは先行するIかPが無いとデコードできない)。
        初期値から変更しなくても問題ありません。値を大きくすると検出されることが多くなり、1にすると全く検出を行ないません。シーンチェンジの検出が増えるとファイルサイズが大きくなり、画質が向上。適切な値を初期値の40周辺から探る感じが吉。
        default値である40だと、アニメーションでは足りないということが多々あり。60以上必要な場合もあるだろう。
      • IDRフレーム間隔の下限:25【--min-keyint 25】
        I-frames 間の最小間隔。映画は24、アニメは1程度。他は30が一般的
        最小GOP(Group Of Pictures)サイズ。新しいIDRが強制挿入され、次のGOPが始まる前に連続するフレーム数の下限を指定する。--min-keyintの値より短い間隔で場面転換があったら、x264は場面転換をIフレームとしてエンコードし、新しいGOPを開始しない。
      • IDRフレーム間隔の上限:250【--keyint 250】
        I-frames間の最大間隔。FPS×10が一般的。但しこれは慣習的なもので、特に大きくしても画質には関係ない。H264/AVCの最大GOP間隔は純粋にシークのスムーズさを決めるだけ。
  • ビットレート
    • マクロブロックタイプの指定
      • 8x8 離散コサイン変換【--8x8dct】
        High Profileになる。デフォルトoff。チェックを入れるかコマンドを加えてon。
      • 8x8, 8x16 and 16x8 Pフレーム動き補償【--partitions "p8x8"】
      • 8x8, 8x16 and 16x8 Bフレーム動き補償【--partitions "b8x8"】
      • ※1 4x8, 4x8 and 8x4 Pフレーム動き補償【--partitions "p4x4"】
      • 8x8 イントラ動き補償【--partitions "i8x8"】
      • 4x4 イントラ動き補償【--partitions "i4x4"】
        partitions
        16x16のマクロブロックを、場面やフレームタイプに応じてさらに細かく分割できるようにしましょうというもの。
        p4x4はほとんどのケースでメリットが無いが、希に画質向上する場合もある。p4x4はp8x8をつけないと効かない。i8x8は8x8dctが無ければ効かない。
        8x8 離散コサイン変換はブロックを8x8にしてDCT処理を行なうようにするためのオプション。ファイルサイズは少々大きくなるが画質が向上。ONにしたほうがよい。
        他項目は量子化の際に使われるブロックサイズ。高画質を狙うならばチェックを多くつけておいたほうがよいが、細かく指定するとファイルサイズと再生負荷が増える。
        全部使う場合コマンドは --partitions "all"も可。(これに--8x8dctは含まれない)
        デフォルトはp4x4以外ON。【--8x8dct --partitions "p8x8,b8x8,i8x8,i4x4"】
  • Bフレーム設定
    • Bフレームの最大連続数:2【--bframes 2】
      連続する最大のB Frame数、初期値は2。範囲0~16で、0はBフレーム無し。この値を大きくすると圧縮率が向上。MP4コンテナではディレイフレームが1枚発生する。
    • 適応的Bフレーム挿入:on【--no-b-adapt】
      デフォルトon。チェックをはずすか上記コマンド追加でoff。
      最大連続数の範囲でBフレームに適するものをBフレームし、適さないものをPフレームとする。
      B-Frames の連続枚数を映像内容に応じて自動調節。適応的B挿入というか間引きというか。これを使えば上記が16でもBBBと3連続すら稀になる。
      適応型B-Frameを使うオプションなのでONのままでよいと思います。
      (rev969以降では無効、簡易、完全から選べます。無効は適応的Bフレーム挿入を使いません。簡易はやや不正確ですが適応的Bフレーム挿入を有効にします。完全は1pass目が非常に遅くなりますが、完璧な位置でのBフレームの挿入を行います。)
    • 傾向:0【--b-bias 0】
      B-Framesの挿入傾向を調整。高い程Bを使う傾向が増える。低い程減る。
      一般的に0で問題ない。プラス方向に補正するとB-frameの使用量が増大。無理矢理増やすと逆に画質が劣化する。
    • 参照:1【--ref 1】
      複数参照フレームの最大数。範囲1~16。1は複数参照しない。一般的には多くても3~4程度まで。
    • 参照フレーム化:off【--b-pyramid】
      デフォルトoff。チェックかコマンド追加でon。B-Frames も参照フレームに使う。ディレイフレームが2枚に増える。
      B-frameでI-frameとP-frameだけでなく、B-frameからの参照も許可するためのオプション。多くの場合、圧縮率は向上しますが画質が若干低下する場合もある。
    • 双方向の動き予測:off【--bime】
      デフォルトoff。チェックかコマンド追加でon。動き予測の精度最適化に前後両方向の時間軸を使う。
      前後の映像の平均の画像も元の絵との比較対象にする。画質がわずかに低下します。
      (rev996以降でこの項目は廃止、subme5以上で自動的に有効になります。)
    • 重み付け予測:off【--weightb】
      デフォルトoff。チェックかコマンド追加でon。B-frameに参照する前後のフレームからの距離に応じた補正をかける。要B-frame 1以上。
      フェードインやフェードアウトの圧縮効率改善を狙ったものだが、x264では適応的B 挿入が強く、あまり出番が無いという説もある。
      フェードイン/フェードアウトのような部分での画質低下を抑えるための機能で通常はONにしておいたほうがよいかと思われます。
    • 混合参照:off【--mixed-refs】
      デフォルトはoff。コマンド追加でon。サブブロック単位で参照するフレームを変える。画質、圧縮効率は上がり、速度は落ちる。デコードも重くなる。
  • 動き予測方式:Auto【--direct "auto"】
    B-Framesの中に「ダイレクト」というマクロブロックタイプがあった時に、そこで使うモーションベクトルの予測方式。Autoでフレーム毎に最適な方式を選ぶ。
    Spatialは2D優先、Temporalは3Dの時間軸を考慮して圧縮を行ないます。圧縮率の向上ならば後者ですが、副作用で残像が残る可能性があるので、Autoにしておくのが良い。Noneは最も遅い上に画質も最悪。使わない方がいい。
  • 詳細
    • 動き予測
      • サブピクセル精度:5【--subme 5】
        1(Fastest)---5(High Quality)-7(RDO Level2 Slowest)の7段階とRDOをB-frameにも適用する設定があり、初期値は5。6のRDO(Rate-Distortion-Optimizations)は5と比べて5~10%ほど圧縮効率が向上。7は6に比べて若干圧縮効率が向上するが、処理時間も大幅に増える。
        5以上推奨。6は--subme 6のみ。6b,7b--b-rdoを追加、BフレームにもRDOを適用することで圧縮効率が向上する。
        (rev996以降からはオプションが変わって、6+brdoは7に、7+brdoは8になった。9は新しく追加されたオプションで、かなり遅いが圧縮効率は最も高い)
      • 動き予測アルゴリズム:Hexagonal Search【--me "hex"】
        「Diamond Search【"dia"】[Fast] (解説 http://www.marumo.ne.jp/db2005_1.htm#18)」、「Hexagonal Search【"hex"】[Default] 」、「Uneven Multi-Hexagon search【"umh"】(解説 http://www.marumo.ne.jp/db2005_1.htm#18 )」、「Exhaustive Search【"esa"】 (解説 http://www.marumo.ne.jp/db2005_1.htm#7 )」、「Hadamard Exhaustive Search【"tesa"】[Slow]」の5種類があります。
        効果
        画質…dia は精度が低く tesa は精度が高い。精度が高いほうが圧縮効率がいい。動きの少ない動画では esa や tesa を指定しても効果が出にくい。
        速度…dia が最も速く、 tesa が最も遅い(5種の処理時間比較グラフ…http://kenknown.blog42.fc2.com/blog-entry-98.html)。
        再生…なし。
        通常は初期値のHexagonal Searchか、検索精度と速度のバランスが優れているUneven Multi-Hexagon(umh)を使うのがよさそう。高速なのはDiamond Searchで、あまり動きの激しくない素材ならばよいかもしれません。
        総当たりで検出するExhaustive Search(esa)、Hadamard Exhaustive Search(tesa)は膨大な時間が掛かるので避けたほうが無難。
      • ベクトル探索範囲:16【--merange 16】
        me umhとesaの検索範囲(サーチ半径、モーションベクトルサーチ範囲)。初期値の16~32を推奨。値を大きくすると大きい動きも正確に検出できるようになるが、時間が非常にかかる。解像度が高いほど効果がある
      • 彩度動き予測:off【--no-chroma-me】
        色情報による動き検出を使うかのオプション。通常はON。CLI MODEではコマンド無しがON。上記コマンドを加えてOFF。
    • 詳細設定
      • 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。量子化度合いが強くデブロックフィルタが効き過ぎてのっぺりする場合は、-方向に動かすと見やすくなるかもしれない。基本的に+方向には動かさないほうが吉。ほとんどの映像素材で0:0が最適な数値なので満足な画質が得られないとき以外は弄らない方がいい
        デコードが非常に重くなるオプションなので、見れない人も出てくる。デブロックをオフするくらいならVP6を使うか--no-cabacオプションを使うと良い。
      • CABAC:on【--no-cabac】
        デフォルトon。チェックをはずすかコマンド--no-cabac追加でoff。
        Context-based Adaptive. Binary Arithmetic Codingの略で、H.264/MPEG-4 AVCのキモの部分。変動シンボル確率分布を利用し、シンボル間の相関も利用することで圧縮率を向上させています。無効にすると再生時の負荷が大幅に減少するが、画質も大幅にダウンする。
      • インターレス保持
      • スキップ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数字が大きいほど画質優先で遅くなる。
      • マトリックス:flat【--cqm "flat"】
        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")
        元動画にノイズが多い場合などはjvtを使う良い。ノイズが少ない場合はflatにしてAQを用いた方が良いかも。
  • ログ
    x264がLogに書き出す情報の種別です。通常は変更しなくてかまいません。Noneにするのもよいかも?
  • その他
    • Variance Adaptive Quantization
      マクロブロック単位でのQP可変を実行する。
      例えば人間の顔がアップで映っている場合、すべて同一QPに設定すると肌がのっぺりして質感が失われる場合がある。
      AQを用いると髪の毛や輪郭(高周波部分)のQPを上げてビットを節約し、余ったビットを使って肌(低周波部分)のQPを下げて質感を出すといった事が出来る。
      あくまで使えるビット量は変わらないので、全ての部分の画質を向上する事は出来ない。
      人間の目で劣化が目立ちにくい部分のビットを削り、劣化が目立ちやすい部分にビットを回してくれるのがVAQである。
      • AQ Mode;フレーム間 bits分配【--aq-mode 2】
        アニメーションでは無効推奨。無効はAQを無効にし、フレーム内で同一QPを使用する。フレーム内 bits分配はフレーム内でビットを分配する。フレーム間 bits分配はフレームを超えてビットを分配する。
      • 強度;1.00【--aq-strength 1.00】
        AQを動作させる強さ。0に近いほど弱くなってQPの差が少なくなり、数値を大きくするほどQPの差が大きくなる。
    • Psy-RD
      要subme6以上 デフォルトで1.0:0.0
      書法は<Psy-RD:Psy-Trellis>
      視覚心理的に見て複雑とみられる部分や、色が激しく変化する部分などのqp値を下げ、最適化する。
      エンコード時に潰れやすい細部やフィルムグレインなどの表現力が高まる。
      初期値の1.0:0.0ではビットレートはかなり増えるのでニコニコではオフするか0.5:0.0など低い数値にするといい。アニメやCGなどの素材ではオフ(0.0:0.0)にするか0.3:0.0など低い数値がお勧め
      Psy-Trellisはまだテスト段階なので使わない方がいい

表示

  • コマンド
  • 拡張設定

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