[FFmpeg-devel] [PATCH v6 2/2] doc: Add libsvt_hevc encoder docs

Sun, Jing A jing.a.sun at intel.com
Mon Mar 11 08:02:20 EET 2019


-----Original Message-----
From: ffmpeg-devel [mailto:ffmpeg-devel-bounces at ffmpeg.org] On Behalf Of Mark Thompson
Sent: Wednesday, March 6, 2019 6:19 AM
To: ffmpeg-devel at ffmpeg.org
Subject: Re: [FFmpeg-devel] [PATCH v6 2/2] doc: Add libsvt_hevc encoder docs

On 05/03/2019 07:43, Jing SUN wrote:
> Add docs for libsvt_hevc encoder in encoders.texi and general.texi
> 
> Signed-off-by: Jun Zhao <jun.zhao at intel.com>
> Signed-off-by: Huang, Zhengxu <zhengxu.huang at intel.com>
> Signed-off-by: hassene <hassene.tmar at intel.com>
> Signed-off-by: Jing SUN <jing.a.sun at intel.com>
> ---
>  doc/encoders.texi | 161 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  doc/general.texi  |   8 +++
>  2 files changed, 169 insertions(+)
> 
> diff --git a/doc/encoders.texi b/doc/encoders.texi index 
> 29625ba..64ddb2f 100644
> --- a/doc/encoders.texi
> +++ b/doc/encoders.texi
> @@ -1569,6 +1569,167 @@ Set maximum NAL size in bytes.
>  Allow skipping frames to hit the target bitrate if set to 1.
>  @end table
>  
> + at section libsvt_hevc
> +
> +Scalable Video Technology for HEVC encoder (SVT-HEVC encoder) wrapper.
> +
> +This encoder requires the presence of the headers and library during 
> +configuration. You need to explicitly configure the build with 
> + at code{--enable-libsvthevc}. The library is detected using 
> + at command{pkg-config}.
> +
> +For more information about the library see 
> + at url{https://github.com/intel/SVT-HEVC.git}.
> +
> + at subsection Options
> +
> +The following FFmpeg global options affect the configurations of the 
> +libsvt_hevc encoder.
> +
> + at table @option
> + at item b  (@emph{bitrate})
> +Set the bitrate (as a number of bits per second). Default is 7M.
> +
> + at item refs (@emph{ref})
> +Number of reference frames each P-frame can use. The range is from @var{0-16}.
> +Default is 0(disabled).

Wouldn't 0 mean that P frames can't exist, so the whole stream must be intra-only?
[SUN, Jing] To be modified in v7.

> + at item g  / @option{gop_size}
> +Set the GOP size. Default is 64.

This doesn't appear to match what is set in the other patch.
[SUN, Jing] To be modified in v7.

> +
> + at item flags +cgop
> +Enable closed GOP.
> +
> + at item qmin (@emph{min-q})
> +Defaults 10
> +
> + at item qmax (@emph{max-q})
> +Defaults 48
> +
> +Set minimum/maximum quantisation values.  Valid range is from 0 to 51 
> +(Only used when bit rate control mode @option{rc} is set to 0(cqp) mode.
> +Has to be qmax > = qmin).

In the other patch you only set them in VBR mode, not CQP mode.
[SUN, Jing] To be modified in v7.

> +
> + at item profile (@emph{profile})
> +Set profile restrictions. Can assume one of the following possible values:
> +
> +Default is 2 (main10).
> +
> + at table @samp
> + at item main
> +main profile
> + at item main10
> +main10 profile
> + at end table
> +
> + at item level
> +
> + at option{profile} sets the value of @emph{profile_idc} and the @emph{constraint_set*_flag}s.
> + at option{level} sets the value of @emph{level_idc}.

The syntax elements named here exist only in H.264, not H.265.
[SUN, Jing] To be modified in v7.

> +
> +The encoder also has its own specific options:
> +
> + at table @option
> + at item vui
> +Enables or disables the vui structure in the HEVC elementary 
> +bitstream. 0 = Off, 1 = On. Default is 0 (Off).
> +
> + at item aud (@emph{aud})
> +Enable use of access unit delimiters when set to 1. Default is 0 (Off).
> +
> + at item hielevel
> +Set hierarchical levels. Can assume one of the following possible values:
> +
> +Default is 3 (4level).
> +
> + at table @samp
> + at item flat
> +none hierarchy level
> + at item 2level
> +2-level hierarchy
> + at item 3level
> +3-level hierarchy
> + at item 4level
> +4-level hierarchy
> + at end table
> +
> + at item la_depth
> +Set look-ahead depth, depending on bit rate control mode @option{rc}, 
> +when bit rate control mode is set to vbr it's best to set this 
> +parameter to be equal to the intra period value (such is the default 
> +set by the encoder), when cqp is chosen, then a look ahead is recommended. The range is from @var{0-256}.
> +
> + at item intra_ref_type
> +Set intra refesh type. Can assume one of the following possible values:
> +
> +Default is 2 (idr).
> +
> + at table @samp
> + at item cra
> +open group of pictures
> + at item idr
> +closed group of pictures
> + at end table

This option doesn't exist in the other patch.
[SUN, Jing] To be modified in v7.

> +
> + at item preset
> +A preset defining the quality vs density tradeoff point that the 
> +encoding is to be performed at.(e.g. 0 is the highest quality mode,
> +12 is the highest density mode). The range is from @var{0-12}. Default is 9.
> +
> + at item tier
> +Set @emph{general_tier_flag}.  This may affect the level chosen for 
> +the stream if it is not explicitly specified. Can assume one of the following possible values:
> +
> +Default is 1 (main).
> +
> + at table @samp
> + at item main
> +main tier
> + at item high
> +high tier
> + at end table
> +
> + at item rc
> +Set bit rate control mode. Can assume one of the following possible values:
> +
> +Default is 0 (cqp).
> +
> + at table @samp
> + at item cqp
> +Constant QP (CQP) mode
> + at item vbr
> +Variable Bit Rate (VBR) mode
> + at end table
> +
> + at item qp
> +Initial quantization parameter for the intra pictures used when 
> + at option{rc} is cqp mode. The range is from @var{0-51}. Default is 32.
> +
> + at item sc_detection
> +Enables or disables the scene change detection algorithm. Default is 0 (disable).
> +
> + at item tune
> +Set quality tuning mode. Can assume one of the following possible values:
> +
> +Default is 1 (oq).
> +
> + at table @samp
> + at item sq
> +Visually optimized mode
> + at item oq
> +PSNR / SSIM optimized mode
> + at item vmaf
> +VMAF optimized mode
> + at end table
> +
> + at item bl_mode
> +Enables or disables Random Access Prediction. Default is 0 (disable).
> + at end table
> +
> + at item hdr
> +High dynamic range input. Default is 0 (disable).
> + at end table
> +
>  @section libtheora
>  
>  libtheora Theora encoder wrapper.
> diff --git a/doc/general.texi b/doc/general.texi index 
> fe94c40..9863e14 100644
> --- a/doc/general.texi
> +++ b/doc/general.texi
> @@ -126,6 +126,14 @@ The dispatcher is open source and can be 
> downloaded from  with the @code{--enable-libmfx} option and 
> @code{pkg-config} needs to be able to  locate the dispatcher's @code{.pc} files.
>  
> + at section Scalable Video Technology for HEVC

Please keep the sections in this file in alphabetical order.
[SUN, Jing] To be modified in v7.

> +
> +FFmpeg can make use of the SVT-HEVC library for HEVC encoding.
> +
> +Go to @url{https://github.com/intel/SVT-HEVC.git} and follow the 
> +instructions for installing the library. Pass 
> + at code{--enable-libsvthevc} to configure to enable it.
> +
>  @section Kvazaar
>  
>  FFmpeg can make use of the Kvazaar library for HEVC encoding.
> 

- Mark
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel at ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel


More information about the ffmpeg-devel mailing list