Commit 8ce321f0 authored by James Zern's avatar James Zern

encoders.texi: update libvpx documentation

modeled after the libx264 section.
Reviewed-by: 's avatarLou Logan <lou@lrcd.com>
Reviewed-by: 's avatarStefano Sabatini <stefasab@gmail.com>
Signed-off-by: 's avatarJames Zern <jzern@google.com>
parent 2819aeb0
...@@ -1416,113 +1416,141 @@ You need to explicitly configure the build with @code{--enable-libvpx}. ...@@ -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.
@table @option 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}.
@item threads To get more documentation of the libvpx options, invoke the command
g_threads @command{ffmpeg -h encoder=libvpx}, @command{ffmpeg -h encoder=libvpx-vp9} or
@command{vpxenc --help}. Further information is available in the libvpx API
documentation.
@item profile @table @option
g_profile
@item vb @item b (@emph{target-bitrate})
rc_target_bitrate 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 g @item g (@emph{kf-max-dist})
kf_max_dist
@item keyint_min @item keyint_min (@emph{kf-min-dist})
kf_min_dist
@item qmin @item qmin (@emph{min-q})
rc_min_quantizer
@item qmax @item qmax (@emph{max-q})
rc_max_quantizer
@item bufsize, vb @item bufsize (@emph{buf-sz}, @emph{buf-optimal-sz})
rc_buf_sz Set ratecontrol buffer size (in bits). Note @command{vpxenc}'s options are
@code{(bufsize * 1000 / vb)} 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}.
rc_buf_optimal_sz @item rc_init_occupancy (@emph{buf-initial-sz})
@code{(bufsize * 1000 / vb * 5 / 6)} 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 rc_init_occupancy, vb @item undershoot-pct
rc_buf_initial_sz Set datarate undershoot (min) percentage of the target bitrate.
@code{(rc_init_occupancy * 1000 / vb)}
@item rc_buffer_aggressivity @item overshoot-pct
rc_undershoot_pct Set datarate overshoot (max) percentage of the target bitrate.
@item skip_threshold @item skip_threshold (@emph{drop-frame})
rc_dropframe_thresh
@item qcomp @item qcomp (@emph{bias-pct})
rc_2pass_vbr_bias_pct
@item maxrate, vb @item maxrate (@emph{maxsection-pct})
rc_2pass_vbr_maxsection_pct Set GOP max bitrate in bits/s. Note @command{vpxenc}'s option is specified as a
@code{(maxrate * 100 / vb)} percentage of the target bitrate, the libvpx wrapper converts this value as
follows: @code{(maxrate * 100 / bitrate)}.
@item minrate, vb @item minrate (@emph{minsection-pct})
rc_2pass_vbr_minsection_pct Set GOP min bitrate in bits/s. Note @command{vpxenc}'s option is specified as a
@code{(minrate * 100 / vb)} percentage of the target bitrate, the libvpx wrapper converts this value as
follows: @code{(minrate * 100 / bitrate)}.
@item minrate, maxrate, vb @item minrate, maxrate, b @emph{end-usage=cbr}
@code{VPX_CBR} @code{(minrate == maxrate == bitrate)}.
@code{(minrate == maxrate == vb)}
@item crf @item crf (@emph{end-usage=cq}, @emph{cq-level})
@code{VPX_CQ}, @code{VP8E_SET_CQ_LEVEL}
@item quality @item quality, deadline (@emph{deadline})
@table @option @table @samp
@item @var{best} @item best
@code{VPX_DL_BEST_QUALITY} Use best quality deadline. Poorly named and quite slow, this option should be
@item @var{good} avoided as it may give worse quality output than good.
@code{VPX_DL_GOOD_QUALITY} @item good
@item @var{realtime} Use good quality deadline. This is a good trade-off between speed and quality
@code{VPX_DL_REALTIME} when used with the @option{cpu-used} option.
@item realtime
Use realtime quality deadline.
@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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment