独断と偏見によるプリセット解釈 簡易版
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

独断と偏見によるプリセット解釈 簡易版

2014-05-25 06:44
  • 11
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
x264のオプションの解説簡易版になります。
ニコ生においてよく触れられる項目を浅く広くざっくりと解説しています。
参考程度にしていただき、興味を持った項目はさらに自分で調べてみることをお勧めします。
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
このページは間違い等が見つかり次第順次更新していきます。
もし間違っている項目や解説がありましたら、教えていただけると非常に助かります!

------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
・x264形式表現 ・ffmpeg形式表現 (範囲 デフォルト値)
(noneは存在しないため指定不可、表記なしはx264と同様)
デフォルト値はmediumの数値より
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
・8x8dct (0,1 デフォルト1)

8x8離散コサイン変換使用の有無。
使用にはprofile highが必要で、baselineやmainでは無効になる。
partition i8x8を使用するためには8x8dctが必要。
no-8x8dctと言う表記もあり、その場合は逆になる。

0…8x8dct無効
1…8x8dct有効

------------------------------------------------------------------------------------------------
・aq-mode (0,1,2 デフォルト1)

フレーム内でのビット再配分Adaptive Quantization(AQ)の有無と種類。
有効にするとビットを削っても劣化がわかりづらい場所からわかりやすい場所へとビットの再配分を行う。
わかりづらい場所とは輪郭部等、わかりやすい場所とはフラットな地面や壁等。
2にすると再配分にさらにメリハリがつく。

0…AQを無効
1…AQを有効にし、フレーム内でのビット再配分を許可する
2…1のフレーム内ビット再配分の強弱をさらにはっきりさせたもの

------------------------------------------------------------------------------------------------
・aq-strength (0.0~3.0 デフォルト1.0)

上記のaq-modeにおける強度。0にするとaq-mode無効と同様の結果になる。
強くすればするほどビット再配分の強度が上がる。
上げると比較的フラットな場所に出るブロックノイズに対して特に効果的。
下げると細部や輪郭部の劣化を少し抑えられる。

------------------------------------------------------------------------------------------------
・b-adapt ・b_strategy (0,1,2 デフォルト1)

Bフレームの連続配置方式を決めるオプション。

0…無効。常に指定したBフレーム数を連続して配置する
1…高速なアルゴリズム。Bフレーム数が16の時に使用する
2…最適なアルゴリズム。一般的にはこれを指定する

------------------------------------------------------------------------------------------------
・b-bias ・bframebias (-100~100 デフォルト0)

Pフレームの代わりとしてのBフレームの入りやすさ。
上げるとBフレームがよく入るようになる。

------------------------------------------------------------------------------------------------
・b-pyramid (none,strict,normal デフォルトnormal)

本来参照できないBフレームを参照可能にするオプション。
時間軸的に近いBフレームから参照することが出来るため、予測誤差の発生を抑えられる可能性がある。

none…無効
strict…Blu-Rayに適した規格
normal…基本的にはこれを指定する。bframes2以上必要

------------------------------------------------------------------------------------------------
・bframes ・bf (0~16 デフォルト3)

Bフレームの最大連続数を指定するオプション。
BフレームはIPBフレームの中で最も容量が小さいものであり
これを多くすることによって圧縮効率を上げることが出来る。
ビットを節約できるので、低ビットレートでは効果が高い。
しかし増やすと遅延と負荷が増える。

------------------------------------------------------------------------------------------------
・cabac ・coder (0,1 デフォルト1)

cabacを使用するかどうかを決めるオプション。
使用するにはprofile main以上が必要。
オフにするとcavlcを使用する。軽いが画質は下がる。

0…無効
1…有効

------------------------------------------------------------------------------------------------
・cqm ・none (flat,jvt デフォルトflat)

flatは細部からフラットな部分まで同じ係数の破棄率。
jvtはビットを多く消費する細部を多めに破棄し、
綺麗になりやすいフラットな部分を出来るだけ忠実に残す。
jvtはflatに比べると全体的にスムースになるが、細部は潰れる。AQと似た効果が得られる。

flat…細部とフラットな部分に差を付けない デフォルト
jvt…細部を多く破棄、フラットな部分の劣化を抑える profile high以上必要

------------------------------------------------------------------------------------------------
・dct-decimate ・none (0,1 デフォルト1)

非常に微細なディテールを除去するオプション。
オンにするとビットの節約になるが、ほんのわずかに画質は低下する。

0…除去オフ
1…除去オン デフォルト

------------------------------------------------------------------------------------------------
・deblock (-6~6 デフォルト0,0)

ブロックノイズの低減に効果的なオプション。
左の数値はデブロックフィルタの境界検出閾値。
これを大きくすると、より多種のブロックノイズにフィルタがかかる。
この範囲は右の数値の影響を受ける。
右の数値はデブロックフィルタのディテール検出閾値。
これを大きくすると極小さなブロックノイズにもフィルタがかかるようになる。

基本的に数値をプラス方向に大きくするとやわらかくぼやけた風になる。
マイナス方向にすると効果が弱くなり、原画に近いくっきりさになる。
デフォルトの0:0で有効。無効にする場合はno-deblockを使用する。

------------------------------------------------------------------------------------------------
・direct ・direct-pred (none,spatial,temporal,auto デフォルトspatial)

ダイレクトマクロブロックで使う動き予測方法。

spatialは似たような動きを含む画像で、動きの速度が変化する対象に有効な方法。
temporalは異なる動きを含む画像で、動きの速度が一定の対象に有効な方法。

none…最も遅く、さらには画質も悪くなるため非推奨
spatial…同一時間の周辺のマクロブロックとその動きの情報から予測する
temporal…後続するPフレームから動きの情報を予測する
auto…spatialとtemporal両方を使い分けるが低速 最も良い結果になるため推奨

------------------------------------------------------------------------------------------------
・fast-pskip (0,1 デフォルト1)

fast-pskipはPフレームに含まれるマクロブロックを判定し、
前のフレームとほぼ差がないマクロブロックであった場合にエンコードせずに処理を省略するというオプション。
スキップさせるとビットの節約になるが、一部ノイズのような残像が残る場合がある。

0…スキップ判定オフ
1…スキップ判定オン デフォルト

------------------------------------------------------------------------------------------------
・ipratio ・i_qfactor (デフォルト1.40 i_qfactorは逆数指定 ipratio1.40≒i_qfactor0.71)

Pフレームを基準にして、Iフレームの品質を決めるオプション。
この数値を上げるとIフレームの品質が上がり、それを参照するPとBフレームの画質も向上する。
しかし上げ過ぎるとIフレームにビットが多く割かれ、PとBの画質が落ちる場合もある。
1.0に近付くほどIとPのQPが近くなる。

------------------------------------------------------------------------------------------------
・keyint ・g (デフォルト250)

IDRフレームの入る間隔の開き上限を指定するオプション。
IDRフレームはシーク可能なポイントとなる。
あまりにも大きな値にするとニコ生用途ではタイムシフトとして視聴が出来なくなる場合がある。
使用するfpsの10倍程度に指定することが多い。

------------------------------------------------------------------------------------------------
・level (1~5.2,-1で自動 デフォルト-1 ffmpeg形式では10倍指定する 例3.1=31)

指定するレベルによって解像度、FPS、ref等に上限がある。
基本的には-1の自動で問題は無いが、NLEは自動で5.1になるため指定必須。
level3.1で解像度720x576,66.7fps,ref11まで対応しているので
指定する場合はニコ生用途では3.1で十分。
よく使われるのは3,3.1,4,4.1あたり。
5.1等の高いレベルにすると、機器によっては視聴に影響が出る場合がある。

------------------------------------------------------------------------------------------------
・mbtree (0,1 デフォルト1)

AQとは違い時間軸、つまりフレームをまたいでビットレートの再配分を行う。
動きの多い部分からビットを削り、動きの少ない部分にビットを多く配分する傾向がある。
qcompとの関係が強く、qcompを上げると効果が弱くなり、下げると強くなる。
no-mbtreeという表記もあり、その場合は逆になる。

0…無効
1…有効

------------------------------------------------------------------------------------------------
・min-keyint ・keyint_min (デフォルト0でauto)

IDRフレームの入る最小間隔。
autoはkeyint/10、もしくは指定したfpsのどちらか小さいほうの値になる。
基本的にはautoでFPSの等倍がよく使われる。

------------------------------------------------------------------------------------------------
・mixed-refs (0,1 デフォルト1)

8x8のサブブロックが独自に参照するフレームを選べるようになるオプション。
オフにすると全て同一のフレームから参照しなければいけなくなる。
オンにすると圧縮効率が上がり画質が向上する。
no-mixed-refsという表記もあり、その場合は逆になる。

0…無効
1…有効 ref2以上必要

------------------------------------------------------------------------------------------------
・me ・me_method (dia,hex,umh,esa,tesa ffmpeg形式ではepzs,hex,umh,full デフォルトhex)

負荷と画質に大きく関わるオプション。
diaからtesaまで順に、より正確に、より負荷が大きくなる
実用的な範囲ではumhまでが上限 これ以上は効果の割に非常に高負荷

------------------------------------------------------------------------------------------------
・merange ・me_range (dia,hexでは4~16 umh以上では4~64 デフォルト16)

動き予測範囲と呼ばれる、meの予測する最大範囲を指定するオプション。
実用上は16で十分であり推奨値。上げると負荷が増える。
HD解像度や動きの激しい映像の場合は上げると効果があると言われている。

------------------------------------------------------------------------------------------------
・nr ・none (0~100000 デフォルト0)

ノイズリダクションというノイズ低減のオプション。
圧縮に入る前にノイズを除去するため、エンコードによって出るノイズには効果が無い。
psyと排他なため、使う場合はどちらかのみとなる。両方指定するとどちらもオフになる。
公式では使う場合100~1000が実用的だとしている。

------------------------------------------------------------------------------------------------
・pbratio ・b_qfactor (デフォルト1.30 b_qfactorは逆数)

Pフレームを基準としてBフレームの品質を決めるオプション。
しかしmbtreeが有効の場合、自動で決まるため変更の必要はない。

------------------------------------------------------------------------------------------------
・partitions (i8x8,p8x8,b8x8,i4x4,p4x4,all,none デフォルトi8x8,p8x8,b8x8,i4x4)

フレームタイプごとにどれだけ細分化出来るかを決めるオプション。
多いほど高負荷になる。
i8x8を使用するためには8x8dctが必要。

i8x8,p8x8,b8x8,i4x4…デフォルト
all…デフォルトにp4x4を追加したもの
none…i16x16,p16x16,b16x16のみを使用する

------------------------------------------------------------------------------------------------
・profile (baseline, main, high)

profileは圧縮する際に使われる機能の範囲を指定するオプション。
highでは機能の制限は特に無い為、特に理由がない限りはhighで問題ない。
一部の機器でどうしても視聴できない場合、mainやbaselineが必要になる場合がある。

baseline…最も軽いが、機能制限が多い 最も互換性がある
main…baselineに bframes(b-adapt、b-bias、b-pyramid、b8x8)、cabac(trellis)、weightp、weightbを追加
high…mainに 8x8dctとcqm変更(jvt)を追加

------------------------------------------------------------------------------------------------
・psy (0,1 デフォルト1)

psy-rdの有効無効を決めるオプション。
no-psyという表記もあり、その場合は逆になる。
nrと排他であるため、使用する場合はどちらかのみ指定。
両方指定するとどちらも無効になる。

0…psy-rd無効
1…psy-rd有効 デフォルト

------------------------------------------------------------------------------------------------
・psy-rd (Psy-RDO,Psy-Trellis それぞれ0.00~10.00 デフォルト1.0:0.0)

左はPsy-RDOの強度。
細部の圧縮率を下げ潰れにくくする。subme6以上必要。
右はPsy-Trellisの強度。
フラットで綺麗な場所からビットを削り、細部や粒子表現などにビットを割り振る。trellis1以上必要。
どちらも使用すると必要なビットが増え、上げ過ぎると不自然な絵になるため注意。
nrと排他であるため、使用する場合はどちらかのみ指定。
両方指定するとどちらも無効になる。

------------------------------------------------------------------------------------------------
・qcomp (0.00~1.00 デフォルト0.60)

動きの多い場所と動きの少ない場所の間でのビットレート割り振りのバランスを決めるオプション。
上げると固定量子化に近づき、画質の変動を抑える代わりにビットレートの変動を許可する。
下げると固定ビットレートにに近づき、ビットレートの変動を抑える代わりに画質の変動を許可する。
上げ過ぎると動きの少ない場所からビットが削られ、文字などの静的な場所の画質が落ちる。
下げ過ぎると動きの少ない場所に過剰にビットを割り振り、動きの多い場所の画質が落ちる。

------------------------------------------------------------------------------------------------
・qpmax (0~69 デフォルト69)

量子化(圧縮率)の上限値を決めるオプション。
高い数値にするほど高圧縮(低画質)まで許可される。
下げるとストリーミングが不安定になる事があるため基本はデフォルト推奨。

------------------------------------------------------------------------------------------------
・qpmin (0~qpmaxの値 デフォルト0)

量子化(圧縮率)の下限値を決めるオプション。
上げることで静止画やほぼ動きのない場所での必要以上のビットの使用を制限し節約になるが、上げ過ぎると画質が極端に落ちる場合もある。

------------------------------------------------------------------------------------------------
・qpstep ・qdiff (2~69 デフォルト4)

隣接するフレーム間でのQPの最大変動量を決めるオプション。
大きくすることによって短い間隔での画質の変動を許可する。
しかしビットレートが制限されている場合、変更してもあまり極端な差は出ない。

------------------------------------------------------------------------------------------------
・ratetol ・bt (0.1~100 デフォルト1.0)

時間軸に沿ってのビットレート変動の程度を決めるオプション。
下げるとビットレートの変動を抑え、画質の変動を許可する。
上げるとビットレートの大きな変動に繋がり、画質の変動を抑えるが安定性が落ちる。
しかしビットレートが制限されている場合、変更してもあまり極端な差は出ない。

------------------------------------------------------------------------------------------------
・rc-lookahead (0~keyintの数値 デフォルト40)

mbtreeにおいて先読みするフレームの数を決めるオプション。
これによって指定される範囲内で、フレームをまたいでビットレートの再配分が行われる
20fpsで20に指定した場合、約1秒の遅延になる。
大きくすることによって先読み範囲が増え、
画質の向上と範囲内に収まる急激な映像の変化に強くなるが遅延が増える。

------------------------------------------------------------------------------------------------
・ref ・refs (1~16 デフォルト3)

参照するフレーム距離の最大数を決めるオプション。
上げることによって圧縮率と画質の向上になるが、負荷と遅延が増加する。
また試聴する側の負荷も増大し、高くし過ぎると環境によっては見ることが出来ない場合がある。

------------------------------------------------------------------------------------------------
・scenecut ・sc_threshold (0~100 デフォルト40)

I/IDRフレームの入りやすさを決めるオプション。
上げるとよりシーンチェンジに敏感に反応しI/IDRフレームを入れる。
0にするとkeyintの値でI/IDRフレームが入る。
上げ過ぎると無駄にサイズの大きなI/IDRフレームが入るためビットの無駄遣いになる。

------------------------------------------------------------------------------------------------
・subme ・subq (0~11 デフォルト7)

サブピクセル精度の動き予測方式を決めるオプション。
基本的に上げるほど高負荷高画質になるが、11は非常に高負荷。
10以上を指定するためにはaq-mode1以上とtrellis2が必要。
6以上を指定するとpsy-rdの使用が可能になる。

------------------------------------------------------------------------------------------------
・trellis (0,1,2 デフォルト1)

dct(離散コサイン変換)によって失われた極細部の情報を回復させるオプション。
これもビットの再配分を行い最適化するもの。cabacが必要となる。
ビットあたりの画質が向上するため、ビットの節約にもなる。

0…無効
1…最終マクロブロックエンコード時のみ適用 デフォルト
2…常時適用 さらに高効率で高画質高負荷 subme10で必要

------------------------------------------------------------------------------------------------
・weightb (0,1 デフォルト1)

Bフレーム適応重み補完予測方式を使うオプション。
重み付けはフレームを参照するときに距離や前後どちらを重要視させるかを指定する。
フェードアウト等の急に暗くなるような変化がある場合、そちら側の参照を控えて高効率化しビットの節約にもなる。
no-weightbという表記もあり、その場合は逆になる。

0…無効
1…有効 デフォルト

------------------------------------------------------------------------------------------------
・weightp (0,1,2 デフォルト2)

Pフレーム適応重み補完予測方式を使うオプション。
重み付けはフレームを参照するときに距離によって重要度指定をする。
フェードアウト等の急に暗くなるような変化がある場合、遠い距離の参照を控えて高効率化しビットの節約にもなる。

0…無効
1…simple analysis 重複しての参照をしない
2…smart analysis 重複しての参照を許可 デフォルト

------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
間違いの発見や質問がありましたらここにコメントor
私のコミュニティ

こちらまでお願いします。

また、各種汎用プリセットや一部のゲーム専用のものも配布しておりますので
よろしければお試しください。


広告
コメントを書く
コメントをするには、
ログインして下さい。