Message ID | 1552287748-11835-1-git-send-email-jing.a.sun@intel.com |
---|---|
State | Superseded |
Headers | show |
On 11-03-2019 12:32 PM, Jing SUN wrote: > Add docs for libsvt_hevc encoder in encoders.texi and general.texi > > Signed-off-by: Jun Zhao <jun.zhao@intel.com> > Signed-off-by: Huang, Zhengxu <zhengxu.huang@intel.com> > Signed-off-by: hassene <hassene.tmar@intel.com> > Signed-off-by: Jing SUN <jing.a.sun@intel.com> > --- > doc/encoders.texi | 145 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ > doc/general.texi | 8 +++ > 2 files changed, 153 insertions(+) > > diff --git a/doc/encoders.texi b/doc/encoders.texi > index 29625ba..0b30776 100644 > --- a/doc/encoders.texi > +++ b/doc/encoders.texi > @@ -1569,6 +1569,151 @@ Set maximum NAL size in bytes. > Allow skipping frames to hit the target bitrate if set to 1. > @end table > > +@section libsvt_hevc > + > +Scalable Video Technology for HEVC encoder (SVT-HEVC encoder) wrapper. Remove 'encoder' inside the brackets. > +This encoder requires the presence of the headers and > +library during configuration. You need to explicitly configure the > +build with @code{--enable-libsvthevc}. The library is detected using > +@command{pkg-config}. > + > +For more information about the library see > +@url{https://github.com/intel/SVT-HEVC.git}. > + > +@subsection Options > + > +The following FFmpeg global options affect the configurations of the > +libsvt_hevc encoder. s/configurations/configuration > +@table @option > +@item b (@emph{bitrate}) > +Set the bitrate (as a number of bits per second). Default is 7M. > + > +@item g / @option{gop_size} > +Set the GOP size. Default is -2 (unspecified). > + > +@item flags +cgop > +Enable closed GOP. > + > +@item qmin (@emph{min-q}) > +Defaults 10 "Default is 10." > +@item qmax (@emph{max-q}) > +Defaults 48 "Default is 48." > +Set minimum/maximum quantisation values. Valid range is from 0 to 51 s/quantisation/quantization > +Has to be qmax > = qmin). "It is required that qmax >= qmin". Ideally, this should be fully verbal, but will do. > +@item profile (@emph{profile}) > +Set profile restrictions. Can assume one of the following possible values: > + > +Default is 2 (main10). > + > +@table @samp > +@item main > +main profile > +@item main10 > +main10 profile > +@end table Move the default to after the table. > + > +@item level What are the permissible values? Is the default dynamic or fixed? > +@option{profile} sets the value of @emph{profile}. > +@option{level} sets the value of @emph{level}. If this refers to the bitstream flags, make that clearer, and use the exact labels e.g. profile_idc. Place each sentence after its option entry. > +@item hielevel > +Set hierarchical levels. Can assume one of the following possible values: > + > +Default is 3 (4level). > + > +@table @samp > +@item flat > +none hierarchy level > +@item 2level > +2-level hierarchy > +@item 3level > +3-level hierarchy > +@item 4level > +4-level hierarchy > +@end table Move the default to after the table. > +@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}. " Set lookahead depth (in frames). Range is @var{-1 - 256} where -1 indicates the value is unset. Default is -1. In rate-control mode @var{vbr}, if unset, the encoder will set this to the intra period value. In rate-control mode @var{cqp}, it is recommended that look-ahead depth be set. " What does the encoder do in cqp mode if value is unset? Are there specific guidelines for optimum la-depth value, in each rc mode? If there are significant tradeoffs, in terms of latency or resource usage, mention those. > +@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. " A preset setting the quality vs. density tradeoff that the encoder should make. Range is @var{0-12}. Lower values favour quality over density. Default is 9. " > +@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). > + > +@table @samp > +@item main > +main tier > +@item high > +high tier > +@end table Move default to after the table. > +@item rc > +Set bit rate control mode. Can assume one of the following possible values: > + > +Default is 0 (cqp). > + > +@table @samp > +@item cqp > +Constant QP (CQP) mode > +@item vbr > +Variable Bit Rate (VBR) mode > +@end table Move default to after the table. > +@item tune > +Set quality tuning mode. Can assume one of the following possible values: > + > +Default is 1 (oq). > + > +@table @samp > +@item sq > +Visually optimized mode > +@item oq > +PSNR / SSIM optimized mode > +@item vmaf > +VMAF optimized mode > +@end table Move default to after the table. > +@item bl_mode > +Enables or disables Random Access Prediction. Default is 0 (disable). > +@end table Double-check, but I think this end directive is meant to close the table for the private options and is not correctly placed. The one after hdr is the correct one. > +@item hdr > +High dynamic range input. Default is 0 (disable). "Flags input as having high dynamic range. Default is 0 (disabled)." Thanks, Gyan
diff --git a/doc/encoders.texi b/doc/encoders.texi index 29625ba..0b30776 100644 --- a/doc/encoders.texi +++ b/doc/encoders.texi @@ -1569,6 +1569,151 @@ Set maximum NAL size in bytes. Allow skipping frames to hit the target bitrate if set to 1. @end table +@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 @code{--enable-libsvthevc}. The library is detected using +@command{pkg-config}. + +For more information about the library see +@url{https://github.com/intel/SVT-HEVC.git}. + +@subsection Options + +The following FFmpeg global options affect the configurations of the +libsvt_hevc encoder. + +@table @option +@item b (@emph{bitrate}) +Set the bitrate (as a number of bits per second). Default is 7M. + +@item g / @option{gop_size} +Set the GOP size. Default is -2 (unspecified). + +@item flags +cgop +Enable closed GOP. + +@item qmin (@emph{min-q}) +Defaults 10 + +@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 1(vbr) mode. +Has to be qmax > = qmin). + +@item profile (@emph{profile}) +Set profile restrictions. Can assume one of the following possible values: + +Default is 2 (main10). + +@table @samp +@item main +main profile +@item main10 +main10 profile +@end table + +@item level + +@option{profile} sets the value of @emph{profile}. +@option{level} sets the value of @emph{level}. + +The encoder also has its own specific options: + +@table @option +@item vui +Enables or disables the vui structure in the HEVC elementary +bitstream. 0 = Off, 1 = On. Default is 0 (Off). + +@item aud (@emph{aud}) +Enable use of access unit delimiters when set to 1. Default is 0 (Off). + +@item hielevel +Set hierarchical levels. Can assume one of the following possible values: + +Default is 3 (4level). + +@table @samp +@item flat +none hierarchy level +@item 2level +2-level hierarchy +@item 3level +3-level hierarchy +@item 4level +4-level hierarchy +@end table + +@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}. + +@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. + +@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). + +@table @samp +@item main +main tier +@item high +high tier +@end table + +@item rc +Set bit rate control mode. Can assume one of the following possible values: + +Default is 0 (cqp). + +@table @samp +@item cqp +Constant QP (CQP) mode +@item vbr +Variable Bit Rate (VBR) mode +@end table + +@item qp +Initial quantization parameter for the intra pictures used when +@option{rc} is cqp mode. The range is from @var{0-51}. Default is 32. + +@item sc_detection +Enables or disables the scene change detection algorithm. Default is 0 (disable). + +@item tune +Set quality tuning mode. Can assume one of the following possible values: + +Default is 1 (oq). + +@table @samp +@item sq +Visually optimized mode +@item oq +PSNR / SSIM optimized mode +@item vmaf +VMAF optimized mode +@end table + +@item bl_mode +Enables or disables Random Access Prediction. Default is 0 (disable). +@end table + +@item hdr +High dynamic range input. Default is 0 (disable). +@end table + @section libtheora libtheora Theora encoder wrapper. diff --git a/doc/general.texi b/doc/general.texi index fe94c40..f90e188 100644 --- a/doc/general.texi +++ b/doc/general.texi @@ -234,6 +234,14 @@ FFmpeg can use the OpenJPEG libraries for decoding/encoding J2K videos. Go to instructions. To enable using OpenJPEG in FFmpeg, pass @code{--enable-libopenjpeg} to @file{./configure}. +@section Scalable Video Technology for HEVC + +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 @code{--enable-libsvthevc} to configure to +enable it. + @section TwoLAME FFmpeg can make use of the TwoLAME library for MP2 encoding.