diff mbox

[FFmpeg-devel,2/3] doc/encoders: Add libaom-av1

Message ID 20181105145246.1157-2-sw@jkqxz.net
State Accepted
Headers show

Commit Message

Mark Thompson Nov. 5, 2018, 2:52 p.m. UTC
---
Updated to add some more explanation of the rate control mode selection.


 doc/encoders.texi | 108 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 108 insertions(+)

Comments

Gyan Nov. 5, 2018, 3:20 p.m. UTC | #1
On Mon, Nov 5, 2018 at 8:23 PM Mark Thompson <sw@jkqxz.net> wrote:

> ---
> Updated to add some more explanation of the rate control mode selection.
>
>
>  doc/encoders.texi | 108 ++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 108 insertions(+)
>
> diff --git a/doc/encoders.texi b/doc/encoders.texi
> index 1ca0ef1543..f2e4199017 100644
> --- a/doc/encoders.texi
> +++ b/doc/encoders.texi
> @@ -1370,6 +1370,114 @@ makes it possible to store non-rgb pix_fmts.
>
>  @end table
>
> +@section libaom-av1
> +
> +libaom AV1 encoder wrapper.
> +
> +Requires the presence of the libaom headers and library during
> +configuration.  You need to explicitly configure the build with
> +@code{--enable-libaom}.
> +
> +@subsection Options
> +
> +The wrapper supports the following standard libavcodec options:
>

Do we really need to duplicate the text for the generic options? That will
lead to bloat if widely adopted.


Gyan
Mark Thompson Nov. 5, 2018, 3:34 p.m. UTC | #2
On 05/11/18 15:20, Gyan wrote:
> On Mon, Nov 5, 2018 at 8:23 PM Mark Thompson <sw@jkqxz.net> wrote:
> 
>> ---
>> Updated to add some more explanation of the rate control mode selection.
>>
>>
>>  doc/encoders.texi | 108 ++++++++++++++++++++++++++++++++++++++++++++++
>>  1 file changed, 108 insertions(+)
>>
>> diff --git a/doc/encoders.texi b/doc/encoders.texi
>> index 1ca0ef1543..f2e4199017 100644
>> --- a/doc/encoders.texi
>> +++ b/doc/encoders.texi
>> @@ -1370,6 +1370,114 @@ makes it possible to store non-rgb pix_fmts.
>>
>>  @end table
>>
>> +@section libaom-av1
>> +
>> +libaom AV1 encoder wrapper.
>> +
>> +Requires the presence of the libaom headers and library during
>> +configuration.  You need to explicitly configure the build with
>> +@code{--enable-libaom}.
>> +
>> +@subsection Options
>> +
>> +The wrapper supports the following standard libavcodec options:
>>
> 
> Do we really need to duplicate the text for the generic options? That will
> lead to bloat if widely adopted.

Which parts do you object to?  This text is trying to explain how the standard options apply to libaom and what their defaults are.

Thanks,

- Mark
Gyan Nov. 5, 2018, 3:49 p.m. UTC | #3
On Mon, Nov 5, 2018 at 9:04 PM Mark Thompson <sw@jkqxz.net> wrote:

> On 05/11/18 15:20, Gyan wrote:
> > On Mon, Nov 5, 2018 at 8:23 PM Mark Thompson <sw@jkqxz.net> wrote:
> >
> >> ---
> >> Updated to add some more explanation of the rate control mode selection.
> >>
> >>
> >>  doc/encoders.texi | 108 ++++++++++++++++++++++++++++++++++++++++++++++
> >>  1 file changed, 108 insertions(+)
> >>
> >> diff --git a/doc/encoders.texi b/doc/encoders.texi
> >> index 1ca0ef1543..f2e4199017 100644
> >> --- a/doc/encoders.texi
> >> +++ b/doc/encoders.texi
> >> @@ -1370,6 +1370,114 @@ makes it possible to store non-rgb pix_fmts.
> >>
> >>  @end table
> >>
> >> +@section libaom-av1
> >> +
> >> +libaom AV1 encoder wrapper.
> >> +
> >> +Requires the presence of the libaom headers and library during
> >> +configuration.  You need to explicitly configure the build with
> >> +@code{--enable-libaom}.
> >> +
> >> +@subsection Options
> >> +
> >> +The wrapper supports the following standard libavcodec options:
> >>
> >
> > Do we really need to duplicate the text for the generic options? That
> will
> > lead to bloat if widely adopted.
>
> Which parts do you object to?  This text is trying to explain how the
> standard options apply to libaom and what their defaults are.
>

Makes sense. But items like g, the color props or profile are covered by
the generic text. Maybe for completeness' sake, we should keep them here.

LGTM

Gyan
Mark Thompson Nov. 18, 2018, 6:16 p.m. UTC | #4
On 05/11/18 15:49, Gyan wrote:
> On Mon, Nov 5, 2018 at 9:04 PM Mark Thompson <sw@jkqxz.net> wrote:
> 
>> On 05/11/18 15:20, Gyan wrote:
>>> On Mon, Nov 5, 2018 at 8:23 PM Mark Thompson <sw@jkqxz.net> wrote:
>>>
>>>> ---
>>>> Updated to add some more explanation of the rate control mode selection.
>>>>
>>>>
>>>>  doc/encoders.texi | 108 ++++++++++++++++++++++++++++++++++++++++++++++
>>>>  1 file changed, 108 insertions(+)
>>>>
>>>> diff --git a/doc/encoders.texi b/doc/encoders.texi
>>>> index 1ca0ef1543..f2e4199017 100644
>>>> --- a/doc/encoders.texi
>>>> +++ b/doc/encoders.texi
>>>> @@ -1370,6 +1370,114 @@ makes it possible to store non-rgb pix_fmts.
>>>>
>>>>  @end table
>>>>
>>>> +@section libaom-av1
>>>> +
>>>> +libaom AV1 encoder wrapper.
>>>> +
>>>> +Requires the presence of the libaom headers and library during
>>>> +configuration.  You need to explicitly configure the build with
>>>> +@code{--enable-libaom}.
>>>> +
>>>> +@subsection Options
>>>> +
>>>> +The wrapper supports the following standard libavcodec options:
>>>>
>>>
>>> Do we really need to duplicate the text for the generic options? That
>> will
>>> lead to bloat if widely adopted.
>>
>> Which parts do you object to?  This text is trying to explain how the
>> standard options apply to libaom and what their defaults are.
>>
> 
> Makes sense. But items like g, the color props or profile are covered by
> the generic text. Maybe for completeness' sake, we should keep them here.
> 
> LGTM

Applied with minor changes - I removed the colour properties setting because it wasn't adding anything, and I added some more text to the GOP size option to describe the default behaviour.

Thanks,

- Mark
diff mbox

Patch

diff --git a/doc/encoders.texi b/doc/encoders.texi
index 1ca0ef1543..f2e4199017 100644
--- a/doc/encoders.texi
+++ b/doc/encoders.texi
@@ -1370,6 +1370,114 @@  makes it possible to store non-rgb pix_fmts.
 
 @end table
 
+@section libaom-av1
+
+libaom AV1 encoder wrapper.
+
+Requires the presence of the libaom headers and library during
+configuration.  You need to explicitly configure the build with
+@code{--enable-libaom}.
+
+@subsection Options
+
+The wrapper supports the following standard libavcodec options:
+
+@table @option
+
+@item b
+Set bitrate target in bits/second.  By default this will use
+variable-bitrate mode.  If @option{maxrate} and @option{minrate} are
+also set to the same value then it will use constant-bitrate mode,
+otherwise if @option{crf} is set as well then it will use
+constrained-quality mode.
+
+@item g
+Set GOP size (maximum distance between key frames).
+
+@item qmin qmax
+Set minimum/maximum quantisation values.  Valid range is from 0 to 63
+(warning: this does not match the quantiser values actually used by AV1
+- divide by four to map real quantiser values to this range).  Defaults
+to min/max (no constraint).
+
+@item minrate maxrate bufsize rc_init_occupancy
+Set rate control buffering parameters.  Not used if not set - defaults
+to unconstrained variable bitrate.
+
+@item threads
+Set the number of threads to use while encoding.  This may require the
+@option{tiles} option to also be set to actually use the specified
+number of threads fully.  Defaults to the number of hardware threads
+supported by the host machine.
+
+@item profile
+Set the encoding profile.  Defaults to using the profile which matches
+the bit depth and chroma subsampling of the input.
+
+@item color_range color_primaries colorspace color_trc
+Set colour properties.  Defaults to using the properties from the input,
+if available.
+
+@end table
+
+The wrapper also has some specific options:
+
+@table @option
+
+@item cpu-used
+Set the quality/encoding speed tradeoff.  Valid range is from 0 to 8,
+higher numbers indicating greater speed and lower quality.  The default
+value is 1, which will be slow and high quality.
+
+@item auto-alt-ref
+Enable use of alternate reference frames.  Defaults to the internal
+default of the library.
+
+@item lag-in-frames
+Set the maximum number of frames which the encoder may keep in flight
+at any one time for lookahead purposes.  Defaults to the internal
+default of the library.
+
+@item error-resilience
+Enable error resilience features:
+@table @option
+@item default
+Improve resilience against losses of whole frames.
+@end table
+Not enabled by default.
+
+@item crf
+Set the quality/size tradeoff for constant-quality (no bitrate target)
+and constrained-quality (with maximum bitrate target) modes. Valid
+range is 0 to 63, higher numbers indicating lower quality and smaller
+output size.  Only used if set; by default only the bitrate target is
+used.
+
+@item static-thresh
+Set a change threshold on blocks below which they will be skipped by
+the encoder.  Defined in arbitrary units as a nonnegative integer,
+defaulting to zero (no blocks are skipped).
+
+@item drop-threshold
+Set a threshold for dropping frames when close to rate control bounds.
+Defined as a percentage of the target buffer - when the rate control
+buffer falls below this percentage, frames will be dropped until it
+has refilled above the threshold.  Defaults to zero (no frames are
+dropped).
+
+@item tiles
+Set the number of tiles to encode the input video with, as colums x
+rows.  Larger numbers allow greater parallelism in both encoding and
+decoding, but may decrease coding efficiency.  Defaults to the minimum
+number of tiles required by the size of the input video (this is 1x1
+(that is, a single tile) for sizes up to and including 4K).
+
+@item tile-columns tile-rows
+Set the number of tiles as log2 of the number of tile rows and columns.
+Provided for compatibility with libvpx/VP9.
+
+@end table
+
 @section libkvazaar
 
 Kvazaar H.265/HEVC encoder.