[FFmpeg-devel] [PATCH] avcodec/libvpxenc: add VP8/9 sharpness config option
Rene Claus
rclaus at google.com
Thu Dec 20 00:41:36 EET 2018
Yes, setting it to zero is the same as not setting it at all.
I'll look into updating vp8cx.h
On Wed, Dec 19, 2018 at 2:03 PM James Almer <jamrial at gmail.com> wrote:
> On 12/19/2018 6:52 PM, Rene Claus wrote:
> > This commit adds configuration options to libvpxenc.c that can be used to
> > tune the sharpness parameter for VP8 and VP9.
> >
> > Signed-off-by: Rene Claus <rclaus at google.com>
> > ---
> > doc/encoders.texi | 4 ++++
> > libavcodec/libvpxenc.c | 6 ++++++
> > 2 files changed, 10 insertions(+)
> >
> > diff --git a/doc/encoders.texi b/doc/encoders.texi
> > index ca3892d682..3dd2989526 100644
> > --- a/doc/encoders.texi
> > +++ b/doc/encoders.texi
> > @@ -1767,6 +1767,10 @@ Set number of frames to look ahead for frametype
> and ratecontrol.
> > @item error-resilient
> > Enable error resiliency features.
> >
> > + at item sharpness @var{integer}
> > +Set sharpness.
> > +The valid range is [0, 7]. Default: 0
>
> I assume 0 means disabled and it would be the same as not setting this
> control id at all, right?
>
> Also, if you're going to update the documentation, you should take the
> chance to mention this valid range in vp8cx.h
>
> > +
> > @item VP8-specific options
> > @table @option
> > @item ts-parameters
> > diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c
> > index 39af586790..f9b19a8975 100644
> > --- a/libavcodec/libvpxenc.c
> > +++ b/libavcodec/libvpxenc.c
> > @@ -76,6 +76,7 @@ typedef struct VPxEncoderContext {
> > struct FrameListData *coded_frame_list;
> >
> > int cpu_used;
> > + int sharpness;
> > /**
> > * VP8 specific flags, see VP8F_* below.
> > */
> > @@ -130,6 +131,7 @@ static const char *const ctlidstr[] = {
> > [VP8E_SET_TUNING] = "VP8E_SET_TUNING",
> > [VP8E_SET_CQ_LEVEL] = "VP8E_SET_CQ_LEVEL",
> > [VP8E_SET_MAX_INTRA_BITRATE_PCT] = "VP8E_SET_MAX_INTRA_BITRATE_PCT",
> > + [VP8E_SET_SHARPNESS] = "VP8E_SET_SHARPNESS",
> > #if CONFIG_LIBVPX_VP9_ENCODER
> > [VP9E_SET_LOSSLESS] = "VP9E_SET_LOSSLESS",
> > [VP9E_SET_TILE_COLUMNS] = "VP9E_SET_TILE_COLUMNS",
> > @@ -751,6 +753,9 @@ FF_ENABLE_DEPRECATION_WARNINGS
> > return AVERROR(EINVAL);
> > }
> >
> > + if (ctx->sharpness)
> > + codecctl_int(avctx, VP8E_SET_SHARPNESS, ctx->sharpness);
> > +
> > if (CONFIG_LIBVPX_VP8_ENCODER && avctx->codec_id ==
> AV_CODEC_ID_VP8) {
> > #if FF_API_PRIVATE_OPT
> > FF_DISABLE_DEPRECATION_WARNINGS
> > @@ -1193,6 +1198,7 @@ static int vpx_encode(AVCodecContext *avctx,
> AVPacket *pkt,
> > {"arnr_strength", "altref noise reduction filter strength",
> offsetof(VPxContext, arnr_strength), AV_OPT_TYPE_INT, {.i64 = 3}, 0, 6,
> VE}, \
> > {"arnr_type", "altref noise reduction filter type",
> offsetof(VPxContext, arnr_type), AV_OPT_TYPE_INT, {.i64 = 3}, 1, 3, VE}, \
> > {"rc_lookahead", "Number of frames to look ahead for alternate
> reference frame selection", offsetof(VPxContext, lag_in_frames),
> AV_OPT_TYPE_INT, {.i64 = 25}, 0, 25, VE}, \
> > + { "sharpness", "Sharpness", offsetof(VPxContext, sharpness),
> AV_OPT_TYPE_INT, {.i64 = 0}, 0, 7, VE},
> >
> > #if CONFIG_LIBVPX_VP8_ENCODER
> > static const AVOption vp8_options[] = {
> >
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
More information about the ffmpeg-devel
mailing list