encoders.texi: update libvpx documentation

modeled after the libx264 section.

Reviewed-by: Lou Logan <lou@lrcd.com>
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: James Zern <jzern@google.com>
This commit is contained in:
James Zern 2015-06-09 20:36:33 -07:00
parent 2819aeb0f3
commit 8ce321f0aa

View File

@ -1416,113 +1416,141 @@ You need to explicitly configure the build with @code{--enable-libvpx}.
@subsection Options @subsection Options
Mapping from FFmpeg to libvpx options with conversion notes in parentheses. The following options are supported by the libvpx wrapper. The
@command{vpxenc}-equivalent options or values are listed in parentheses
for easy migration.
To reduce the duplication of documentation, only the private options
and some others requiring special attention are documented here. For
the documentation of the undocumented generic options, see
@ref{codec-options,,the Codec Options chapter}.
To get more documentation of the libvpx options, invoke the command
@command{ffmpeg -h encoder=libvpx}, @command{ffmpeg -h encoder=libvpx-vp9} or
@command{vpxenc --help}. Further information is available in the libvpx API
documentation.
@table @option @table @option
@item threads @item b (@emph{target-bitrate})
g_threads Set bitrate in bits/s. Note that FFmpeg's @option{b} option is
expressed in bits/s, while @command{vpxenc}'s @option{target-bitrate} is in
kilobits/s.
@item profile @item g (@emph{kf-max-dist})
g_profile
@item vb @item keyint_min (@emph{kf-min-dist})
rc_target_bitrate
@item g @item qmin (@emph{min-q})
kf_max_dist
@item keyint_min @item qmax (@emph{max-q})
kf_min_dist
@item qmin @item bufsize (@emph{buf-sz}, @emph{buf-optimal-sz})
rc_min_quantizer Set ratecontrol buffer size (in bits). Note @command{vpxenc}'s options are
specified in milliseconds, the libvpx wrapper converts this value as follows:
@code{buf-sz = bufsize * 1000 / bitrate},
@code{buf-optimal-sz = bufsize * 1000 / bitrate * 5 / 6}.
@item qmax @item rc_init_occupancy (@emph{buf-initial-sz})
rc_max_quantizer Set number of bits which should be loaded into the rc buffer before decoding
starts. Note @command{vpxenc}'s option is specified in milliseconds, the libvpx
wrapper converts this value as follows:
@code{rc_init_occupancy * 1000 / bitrate}.
@item bufsize, vb @item undershoot-pct
rc_buf_sz Set datarate undershoot (min) percentage of the target bitrate.
@code{(bufsize * 1000 / vb)}
rc_buf_optimal_sz @item overshoot-pct
@code{(bufsize * 1000 / vb * 5 / 6)} Set datarate overshoot (max) percentage of the target bitrate.
@item rc_init_occupancy, vb @item skip_threshold (@emph{drop-frame})
rc_buf_initial_sz
@code{(rc_init_occupancy * 1000 / vb)}
@item rc_buffer_aggressivity @item qcomp (@emph{bias-pct})
rc_undershoot_pct
@item skip_threshold @item maxrate (@emph{maxsection-pct})
rc_dropframe_thresh Set GOP max bitrate in bits/s. Note @command{vpxenc}'s option is specified as a
percentage of the target bitrate, the libvpx wrapper converts this value as
follows: @code{(maxrate * 100 / bitrate)}.
@item qcomp @item minrate (@emph{minsection-pct})
rc_2pass_vbr_bias_pct Set GOP min bitrate in bits/s. Note @command{vpxenc}'s option is specified as a
percentage of the target bitrate, the libvpx wrapper converts this value as
follows: @code{(minrate * 100 / bitrate)}.
@item maxrate, vb @item minrate, maxrate, b @emph{end-usage=cbr}
rc_2pass_vbr_maxsection_pct @code{(minrate == maxrate == bitrate)}.
@code{(maxrate * 100 / vb)}
@item minrate, vb @item crf (@emph{end-usage=cq}, @emph{cq-level})
rc_2pass_vbr_minsection_pct
@code{(minrate * 100 / vb)}
@item minrate, maxrate, vb @item quality, deadline (@emph{deadline})
@code{VPX_CBR} @table @samp
@code{(minrate == maxrate == vb)} @item best
Use best quality deadline. Poorly named and quite slow, this option should be
@item crf avoided as it may give worse quality output than good.
@code{VPX_CQ}, @code{VP8E_SET_CQ_LEVEL} @item good
Use good quality deadline. This is a good trade-off between speed and quality
@item quality when used with the @option{cpu-used} option.
@table @option @item realtime
@item @var{best} Use realtime quality deadline.
@code{VPX_DL_BEST_QUALITY}
@item @var{good}
@code{VPX_DL_GOOD_QUALITY}
@item @var{realtime}
@code{VPX_DL_REALTIME}
@end table @end table
@item speed @item speed, cpu-used (@emph{cpu-used})
@code{VP8E_SET_CPUUSED} Set quality/speed ratio modifier. Higher values speed up the encode at the cost
of quality.
@item nr @item nr (@emph{noise-sensitivity})
@code{VP8E_SET_NOISE_SENSITIVITY}
@item mb_threshold @item static-thresh
@code{VP8E_SET_STATIC_THRESHOLD} Set a change threshold on blocks below which they will be skipped by the
encoder.
@item slices @item slices (@emph{token-parts})
@code{VP8E_SET_TOKEN_PARTITIONS} Note that FFmpeg's @option{slices} option gives the total number of partitions,
while @command{vpxenc}'s @option{token-parts} is given as
@code{log2(partitions)}.
@item max-intra-rate @item max-intra-rate
@code{VP8E_SET_MAX_INTRA_BITRATE_PCT} Set maximum I-frame bitrate as a percentage of the target bitrate. A value of 0
means unlimited.
@item force_key_frames @item force_key_frames
@code{VPX_EFLAG_FORCE_KF} @code{VPX_EFLAG_FORCE_KF}
@item Alternate reference frame related @item Alternate reference frame related
@table @option @table @option
@item vp8flags altref @item auto-alt-ref
@code{VP8E_SET_ENABLEAUTOALTREF} Enable use of alternate reference frames (2-pass only).
@item @var{arnr_max_frames} @item arnr-max-frames
@code{VP8E_SET_ARNR_MAXFRAMES} Set altref noise reduction max frame count.
@item @var{arnr_type} @item arnr-type
@code{VP8E_SET_ARNR_TYPE} Set altref noise reduction filter type: backward, forward, centered.
@item @var{arnr_strength} @item arnr-strength
@code{VP8E_SET_ARNR_STRENGTH} Set altref noise reduction filter strength.
@item @var{rc_lookahead} @item rc-lookahead, lag-in-frames (@emph{lag-in-frames})
g_lag_in_frames Set number of frames to look ahead for frametype and ratecontrol.
@end table @end table
@item vp8flags error_resilient @item error-resilient
g_error_resilient Enable error resiliency features.
@item aq_mode @item VP9-specific options
@code{VP9E_SET_AQ_MODE} @table @option
@item lossless
Enable lossless mode.
@item tile-columns
Set number of tile columns to use. Note this is given as
@code{log2(tile_columns)}. For example, 8 tile columns would be requested by
setting the @option{tile-columns} option to 3.
@item tile-rows
Set number of tile rows to use. Note this is given as @code{log2(tile_rows)}.
For example, 4 tile rows would be requested by setting the @option{tile-rows}
option to 2.
@item frame-parallel
Enable frame parallel decodability features.
@item aq-mode
Set adaptive quantization mode (0: off (default), 1: variance 2: complexity, 3:
cyclic refresh).
@end table
@end table @end table