[FFmpeg-devel] [PATCH] swscale/options: switch default to bicubic

Ronald S. Bultje rsbultje at gmail.com
Thu Oct 3 16:50:34 CEST 2013


Hi,

On Thu, Oct 3, 2013 at 10:38 AM, wm4 <nfxjfg at googlemail.com> wrote:

> On Thu, 3 Oct 2013 10:20:45 -0400
> "Ronald S. Bultje" <rsbultje at gmail.com> wrote:
> > On Thu, Oct 3, 2013 at 10:17 AM, wm4 <nfxjfg at googlemail.com> wrote:
> > > On Mon, 30 Sep 2013 22:20:07 +0200
> > > Michael Niedermayer <michaelni at gmx.at> wrote:
> > > > Suggested-by: Ronald S. Bultje
> > > > Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> > > > ---
> > > >  libswscale/options.c |    2 +-
> > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > >
> > > > diff --git a/libswscale/options.c b/libswscale/options.c
> > > > index 2b3147b..9e8703f 100644
> > > > --- a/libswscale/options.c
> > > > +++ b/libswscale/options.c
> > > > @@ -34,7 +34,7 @@ static const char *sws_context_to_name(void *ptr)
> > > >  #define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM
> > > >
> > > >  static const AVOption swscale_options[] = {
> > > > -    { "sws_flags",       "scaler flags",
> > >  OFFSET(flags),     AV_OPT_TYPE_FLAGS,  { .i64  = SWS_BILINEAR
> }, 0,
> > >       UINT_MAX,       VE, "sws_flags" },
> > > > +    { "sws_flags",       "scaler flags",
> > >  OFFSET(flags),     AV_OPT_TYPE_FLAGS,  { .i64  = SWS_BICUBIC
>  }, 0,
> > >      UINT_MAX,        VE, "sws_flags" },
> > > >      { "fast_bilinear",   "fast bilinear",                 0,
> > >       AV_OPT_TYPE_CONST,  { .i64  = SWS_FAST_BILINEAR  }, INT_MIN,
> INT_MAX,
> > >        VE, "sws_flags" },
> > > >      { "bilinear",        "bilinear",                      0,
> > >       AV_OPT_TYPE_CONST,  { .i64  = SWS_BILINEAR       }, INT_MIN,
> INT_MAX,
> > >        VE, "sws_flags" },
> > > >      { "bicubic",         "bicubic",                       0,
> > >       AV_OPT_TYPE_CONST,  { .i64  = SWS_BICUBIC        }, INT_MIN,
> INT_MAX,
> > >        VE, "sws_flags" },
> > >
> > > By the way, before this gets applied and just for consideration: Libav
> > > have a patch that select the scaling algorithm by
> upscaling/downscaling.
> > >
> >
> > I saw that one, it's hilarious. I don't think they understand scaling
> much.
> > I think for a universal default, bicubic is quite fine.
>
> In the end, it shouldn't matter too much (as long as the scaler is not
> buggy), but it'd still be nice if Libav libswscale and ffmpeg libswscale
> behaved the same way.


Why don't you try all the scalers on a bunch of HD clips (1080p50) and tell
me what your CPU usage is for each of these fancy scalers with default
filter order (20) compared to bicubic (and for fun, add bilinear and
fast_bilin also).

Now tell me how much better the quality is, visually, for each of them.

Now tell me if that was worth it, and by what metric you decided to come to
that conclusion (in terms of cpu vs quality trade-off).

That's how you decide this. Not by reading some forum posts.

Ronald


More information about the ffmpeg-devel mailing list