• aomencのオプション 2/2

    2018年03月18日 16時04分
    最終更新: 2018-04-03 (77cab41fff4bea69760e882a22327ad1d7ef1b93)

    1ページ目

    Twopass Rate Control Options

    オプション デフォルト
    説明
    メモ
    --bias-pct=<arg>50
    CBR/VBR bias (0=CBR, 100=VBR)
    Bias, expressed on a scale of 0 to 100, for determining target size for the current frame.
    The value 0 indicates the optimal CBR mode value should be used.
    The value 100 indicates the optimal VBR mode value should be used.
    Values in between indicate which way the encoder should "lean."
    aom/aom_encoder.h
    --minsection-pct=<arg>0
    GOP min bitrate (% of target)
    This value, expressed as a percentage of the target bitrate, indicates the minimum bitrate to be used for a single GOP (aka "section")
    aom/aom_encoder.h
    --maxsection-pct=<arg>2000
    GOP max bitrate (% of target)
    This value, expressed as a percentage of the target bitrate, indicates the maximum bitrate to be used for a single GOP (aka "section")
    aom/aom_encoder.h

    Keyframe Placement Options

    オプション デフォルト
    説明
    メモ
    --kf-min-dist=<arg>0
    Minimum keyframe interval (frames)
    This value, expressed as a number of frames, prevents the encoder from placing a keyframe nearer than kf_min_dist to the previous keyframe.
    At least kf_min_dist frames non-keyframes will be coded before the next keyframe.
    Set kf_min_dist equal to kf_max_dist for a fixed interval.
    aom/aom_encoder.h
    --kf-max-dist=<arg>9999
    Maximum keyframe interval (frames)
    This value, expressed as a number of frames, forces the encoder to code a keyframe if one has not been coded in the last kf_max_dist frames.
    A value of 0 implies all frames will be keyframes. Set kf_min_dist equal to kf_max_dist for a fixed interval.
    aom/aom_encoder.h
    --disable-kf
    Disable keyframe placement
    設定するとAOM_KF_DISABLED
    設定しないとAOM_KF_AUTO

    This value indicates whether the encoder should place keyframes at a fixed interval, or determine the optimal placement automatically (as governed by the #kf_min_dist and #kf_max_dist parameters)
    aom/aom_encoder.h

    AV1 Specific Options

    オプション デフォルト
    説明
    メモ
    --cpu-used=<arg>
    CPU Used (0..8)
    0 ~ 8を指定する。
    主に動き予測に影響を与える設定で、大きい数字になるほどエンコード速度が速くなり品質が下がる。
    0にすると1より10倍くらい時間がかかるようになる。
    1 ~ 8の間の変化はそこそこなのでこの辺りから適当に選べばよいと思う。
    --dev-sf=<arg>
    Dev Speed (0..255)
    開発用の速度設定?
    セットしても特別早くなったり遅くなったりしないようなのでよくわからない。
    --auto-alt-ref=<arg>
    Enable automatic alt reference frames
    1を指定するとAlt reference frameがONになる。
    Alt reference frameとは対象のフレームより未来のフレームを参照することらしい。
    ONにすると圧縮率が上がってシーク性能が落ちると思われる。
    --sharpness=<arg>
    Loop filter sharpness (0..7)
    デブロッキングフィルタの効き具合の設定と思われる。
    出来上がった動画を見ながら調整すればよいかと。
    --static-thresh=<arg>
    Motion detection threshold
    Codec control function to set the threshold for MBs treated static.
    aomcx.h
    --single-tile-decoding=<arg>0
    Single tile decoding (0: off (default), 1: on)
    タイルの並列デコードを無効にする設定?
    --tile-columns=<arg>0
    Number of tile columns to use, log2
    並列エンコード/デコードのためにフレームを分割する場合の横の分割数
    log2で指定するため以下のようになる
    0: 分割しない
    1: 2分割する
    2: 4分割する
    n: 2^n分割する

    分割されたサイズが256ピクセルより小さいまたは4096ピクセルより大きい場合それぞれ256ピクセル、4096ピクセルになるようキャップされる。
    分割した分だけ並列エンコードが出来る。(--threads参照)
    あと分割した分いくらか容量が増えるようだ。
    --tile-rows=<arg>0
    Number of tile rows to use, log2 (set to 0 while threads > 1)
    並列エンコード/デコードのためにフレームを分割する場合の縦の分割数
    ただ、縦に分割しても後のタイルが前のタイルに依存するため並列処理は出来なく、
    後ろのタイル処理中の前のタイルに対して先にI/Oを行えるというだけ。
    問題なのはI/Oではなく処理時間の方なので設定してもあんまり意味なさそう。
    0: 分割しない
    1: 2分割する
    2: 4分割する
    --arnr-maxframes=<arg>
    AltRef max frames (0..15)
    Alt reference frameを何個作るかの最大値の設定のような気がする。
    たくさんあると圧縮率が上がってシーク性能が下がるのだと思う。
    とりあえず最大で設定してみてシーク性能が気に入らなければ下げればよいか。
    --arnr-strength=<arg>
    AltRef filter strength (0..6)
    Alt reference frameを作るときのフィルタのパラメータっぽいけどさっぱりわからない。
    --tune=<arg>
    Distortion metric tuned with psnr, ssim, cdef-dist, daala-dist
    画質測定方法の設定。
    psnr: PSNR
    ssim: SSIM ただし現時点では未実装
    cdef-dist: わからん
    daala-dist: daalaと付いているのでdaalaで実装された何らかの処理なのだと思う
    --cq-level=<arg>
    Constant/Constrained Quality level
    品質を0~63で設定する。数字が小さいほど画質がよくなり容量が増える。
    --max-intra-rate=<arg>0
    Max I-frame bitrate (pct)
    This value controls additional clamping on the maximum size of a keyframe.
    It is expressed as a percentage of the average per-frame bitrate, with the special (and default) value 0 meaning unlimited, or no additional clamping beyond the codec's built-in algorithm.

    For example, to allocate no more than 4.5 frames worth of bitrate to a keyframe, set this to 450.
    aomcx.h
    --max-inter-rate=<arg>0
    Max P-frame bitrate (pct)
    This value controls additional clamping on the maximum size of an inter frame.
    It is expressed as a percentage of the average per-frame bitrate, with the special (and default) value 0 meaning unlimited, or no additional clamping beyond the codec's built-in algorithm.

    For example, to allow no more than 4.5 frames worth of bitrat to an inter frame, set this to 450.
    aom/aomcx.h
    --gf-cbr-boost=<arg>0
    Boost for Golden Frame in CBR mode (pct)
    CBRモードでGolden frameのサイズ(容量)を%で指定して増量する。
    (例えば100%を指定すると2倍の容量を使うようになる)
    Golden frameはキーフレーム的な物だが増やすとどうなるんだろう?
    --lossless=<arg>
    Lossless mode (0: false (default), 1: true)
    可逆圧縮の設定。
    未指定だとだいたい非可逆圧縮になるが場合によっては可逆圧縮になるかもしれない。
    可逆圧縮したいときだけ設定すればよいと思う。
    0: 非可逆圧縮
    1: 可逆圧縮
    --enable-cdef=<arg>1
    Enable the constrained directional enhancement filter (0: false, 1: true (default))
    Constrained Directional Enhancement Filter(CDEF)の設定
    0: 使用しない
    1: 使用する
    たぶんOFFにすると画質が下がってエンコード速度が上がるのだと思う。
    --enable-restoration=<arg>1
    Ebable the loop restoration filter (0: false, 1: true (default))
    Loop restoration filter?の設定
    0: 使用しない
    1: 使用する
    たぶんOFFにすると画質が下がってエンコード速度が上がるのだと思う。
    --enable-qm=<arg>0
    Enable quantisation matrices (0: false (default), 1: true)
    量子化マトリクスの設定
    0: 使用しない
    1: 使用する
    たぶん離散コサイン変換した後のピクセルデータにかけるマトリクスのことだと思うけどAV1はデフォルトでは使わないらしい。
    --qm-min=<arg>8
    Min quant matrix flatness (0..15), default is 8
    量子化マトリクス生成時のパラメータだと思うんだけど何を設定するとどういうマトリクスが生成されるかわからない。

    AOM can operate with different ranges of quantisation matrices.
    As quantisation levels increase, the matrices get flatter.
    This control sets the minimum level of flatness from which the matrices are determined.

    By default, the encoder sets this minimum at half the available range.
    aom/aomcx.h
    --qm-max=<arg>15
    Max quant matrix flatness (0..15), default is 15
    量子化マトリクス生成時のパラメータだと思うんだけど何を設定するとどういうマトリクスが生成されるかわからない。

    AOM can operate with different ranges of quantisation matrices.
    As quantisation levels increase, the matrices get flatter.
    This control sets the maximum level of flatness possible.

    By default, the encoder sets this maximum at the top of the available range.
    aom/aomcx.h
    --enable-dist-8x8=<arg>0
    Enable dist-8x8 (0: false (default), 1: true)
    画質評価を8x8ピクセルで行う設定のような気がするけど元がいくつでやってるかわからないので有効にしたら良くなるのか悪くなるのかわからない。

    The dist_8x8 is enabled automatically for model tuning parameters that require measuring distortion at the 8x8 level.
    This control also allows measuring distortion at the 8x8 level for other tuning options (e.g., PSNR), for testing purposes.
    0 = do not use dist_8x8
    1 = use dist_8x8

    By default, the encoder does not use dist_8x8
    aom/aomcx.h
    --frame-parallel=<arg>0
    Enable frame parallel decodability features (0: false (default), 1: true)
    有効にすると並列デコード可能なようにエンコードする。
    ただし並列デーコードのためにフレーム間の依存性を下げるらしいのでたぶん容量が増える。
    --error-resilient=<arg>0
    Enable error resilient features (0: false (default), 1: true)
    有効にするとフレーム情報の取得を保証してくれるらしい?
    --aq-mode=<arg>0
    Adaptive quantization mode (0: off (default), 1: variance 2: complexity, 3: cyclic refresh)
    適応量子化マトリクスのアルゴリズム指定のような気がするけどどれがどういう効果になるか謎。

    AV1 has a segment based feature that allows encoder to adaptively change quantization parameter for each segment within a frame to improve the subjective quality.
    This control makes encoder operate in one of the several AQ_modes supported.

    By default, encoder operates with AQ_Mode 0(adaptive quantization off).
    aom/aomcx.h
    --deltaq-mode=<arg>0
    Delta qindex mode (0: off (default), 1: deltaq 2: deltaq + deltalf)
    適応量子化マトリクスのアルゴリズム指定のような気がするけどういう効果になるか謎。

    AV1 has a segment based feature that allows encoder to adaptively change quantization parameter for each segment within a frame to improve the subjective quality.
    The delta q mode is added on top of segment based feature, and allows control per 64x64 q and lf delta.
    This control makes encoder operate in one of the several DELTA_Q_modes supported.

    By default, encoder operates with DELTAQ_Mode 0(deltaq signaling off).
    aom/aomcx.h
    --frame-boost=<arg>0
    Enable frame periodic boost (0: off (default), 1: on)
    周期性を元に品質を上げてくれる設定?
    自動で適切な設定を選んでくれるとか書いてあるけどdefault 0とも書いてあってよくわからん。

    One AV1 encoder speed feature is to enable quality boost by lowering frame level Q periodically. This control function provides a mean to turn on/off this feature.
    0 = off
    1 = on

    By default, the encoder is allowed to use this feature for appropriate encoding modes.
    aom/aomcx.h
    --noise-sensitivity=<arg>0
    Noise sensitivity (frames to blur)
    0~6の間で設定できるみたいだけど設定するとどうなくかはよくわからない。
    --tune-content=<arg>
    Tune content type default, screen
    default: 通常の動画
    screen: スクリーンキャプチャ動画(使い方動画みたいな静止画が多い動画向け?)
    --cdf-update-mode=<arg>1
    CDF update mode for entropy coding (0: no CDF update; 1: update CDF on all frames(default); 2: selectively update CDF on some frames
    累積分布関数の更新方法?
    たぶん何か予測する処理のためのデータの更新頻度の設定だと思うけどよくわからない。
    デフォルトで毎フレーム更新しているようなのでそれでいいのではなかろうか。
    --color-primaries=<arg>
    Color primaries (CICP) of input content: bt709, unspecified, bt601, bt470m, bt470bg, smpte240, film, bt2020, xyz, smpte431, smpte432, ebu3213
    入力動画の色空間指定
    --transfer-characteristics=<arg>
    Transfer characteristics (CICP) of input content: unspecified, bt709, bt470m, bt470bg, bt601, smpte240, lin, log100, log100sq10, iec61966, bt1361, srgb, bt2020-10bit, bt2020-12bit, smpte2084, hlg, smpte428
    入力動画の表示階調特性(ガンマカーブとか)の指定
    --matrix-coefficients=<arg>
    Matrix coefficients (CICP) of input content: identity, bt709, unspecified, fcc73, bt470bg, bt601, smpte240, ycgco, bt2020ncl, bt2020cl, smpte2085, chromncl, chromcl, ictcp
    入力動画の係数行列(RGB⇔YUV変換行列)指定
    --chroma-sample-position=<arg>
    The chroma sample position when chroma 4:2:0 is signaled: unknown, vertical, colocated
    たぶんNV12とNV21の違いを指定するのだと思う。
    --min-gf-interval=<arg>0
    min gf/arf frame interval (default 0, indicating in-built behavior)
    Golden frameとAlt reference frameの間に入るフレームの最小値。
    いまいち操作するとどうなるかわからない。
    0を指定するとデフォルトの動作(4を指定した時と同じ動作になる模様)
    --max-gf-interval=<arg>0
    max gf/arf frame interval (default 0, indicating in-built behavior)
    Golden frameとAlt reference frameの間に入るフレームの最大値。
    いまいち操作するとどうなるかわからない。
    0を指定するとデフォルトの動作(16を指定した時と同じ動作になる模様)
    --sb-size=<arg>
    Superblock size to use dynamic, 64, 128
    スーパーブロック?のサイズ指定。
    デフォルトではフレームごとに自動で選択してくれるそうなのでそれでいいのではなかろうか。
    --num-tile-groups=<arg>1
    Maximum number of tile groups, default is 1
    分割したタイルをグループ化した時の1グループに入るタイルの数?
    --mtu-sizeを指定した場合はその値を元に上書きされる。
    ということなのでたぶんストリーミング配信とかする時用のパラメータではなかろうか。
    --mtu-size=<arg>0
    MTU size for a tile group, default is 0 (no MTU targeting), overrides maximum number of tile groups
    タイルグループに対するByte数。
    MTUはMaximum Transmission UnitのMTUでよいのか?
    たぶんストリーミング配信とかする時用のパラメータではなかろうか。
    --timing-info=<arg>0
    Signal timing info in the bitstream: unspecified, constant
    Signal picture(キーフレーム?)の挿入タイミングの設定。
    --film-grain-test=<arg>0
    Film grain test vectors (0: none (default), 1: test-1 2: test-2, ... 16: test-16)
    Film grainのプリセット番号を設定する?
    --film-grain-table=<arg>
    Path to file containing film grain parameters
    Film grain用のパラメータが記載された設定ファイル的な物を指定するようだがどのような内容を書くかがわからない。
    --enable-ref-frame-mvs=<arg>1
    Enable temporal mv prediction (default is 1)
    フレーム間予測をONにする。
    ONにすると画質が上がってエンコード速度が下がるのだと思う。
    ONにするオプションでデフォルトがONということはOFFにするときには0を明示的に指定しろということらしい。
    -b <arg>
    --bit-depth=<arg>
    Bit depth for codec (8 for version <=1, 10 or 12 for version 2) 8, 10, 12
    出力データのビット深度を指定する。(8 or 10 or 12)
    --input-bit-depth=<arg>
    Bit depth of input
    入力データのビット深度を指定する。
    --sframe-dist=<arg>
    S-Frame interval (frames)
    引数の処理が怪しくて何故かDual filter(AV1E_SET_ENABLE_DF)にセットされている(未実装?)
    --sframe-mode=<arg>
    S-Frame insertion mode (1..2)
    引数の処理が怪しくて何故か超解像度(AV1E_SET_ENABLE_JNT_COMP)にセットされている(未実装?)
    --annexb=<arg>
    Save as Annex-B
    Annex Bの形式で出力する(複数のOBUを含む形式)
    引数の処理が怪しくて対応する設定値が無いようだ(未実装?)

    コメントを書く

    名前
    本文
    編集用パスワード
    管理者のみ閲覧