[FFmpeg-devel] [NOPATCH] lavfi/mp: drop tinterlace wrapper

Stefano Sabatini stefasab at gmail.com
Thu Apr 25 18:10:08 CEST 2013


On date Thursday 2013-04-25 17:37:53 +0200, Stefano Sabatini encoded:
> On date Thursday 2013-04-25 16:21:02 +0200, Clément Bœsch encoded:
> > On Thu, Apr 25, 2013 at 04:08:44PM +0200, Stefano Sabatini wrote:
> > [...]
> > > First note, mp=tinterlace only supports yuv420p and variants formats,
> > > so it doesn't make sense to test other formats, nor with modes which
> > > are only supported in tinterlace. With the other formats tinterlace
> > > is faster since it avoids conversions.
> > > 
> > > Second observations, due to various issues the null muxer is
> > > duplicating frames, I need to set PTS to NAN (thus reproducing the
> > > same issue of mp=tinterlace) in order to avoid the dup problem.
> > > 
> > > Updated benchmarks follow.
> [...]
> > Here are my results:
> > 
> > % for i in 0 1 2 3 4; do for f in mp=tinterlace tinterlace; do filter="$f=$i"; echo "$filter:"; ./ffmpeg -v 0 -f lavfi -i "testsrc=d=200,format=yuv420p,$filter,setpts=nan" -f null - -benchmark; done; echo; done 
> > mp=tinterlace=0:
> > bench: utime=3.320s
> > bench: maxrss=355984kB
> > tinterlace=0:
> > bench: utime=3.100s
> > bench: maxrss=58360kB
> > 
> > mp=tinterlace=1:
> > bench: utime=3.093s
> > bench: maxrss=351176kB
> > tinterlace=1:
> > bench: utime=2.967s
> > bench: maxrss=42944kB
> > 
> > mp=tinterlace=2:
> > bench: utime=3.127s
> > bench: maxrss=350920kB
> > tinterlace=2:
> > bench: utime=2.967s
> > bench: maxrss=43680kB
> > 
> > mp=tinterlace=3:
> > bench: utime=3.603s
> > bench: maxrss=56320kB
> > tinterlace=3:
> > bench: utime=3.360s
> > bench: maxrss=57104kB
> > 
> > mp=tinterlace=4:
> > bench: utime=3.120s
> > bench: maxrss=350908kB
> > tinterlace=4:
> > bench: utime=3.003s
> > bench: maxrss=44200kB
> > 
> > ... I believe we can drop mp=tinterlace.
> 
> Even with optimizations tinterlace is still slightly slower (I wonder
> why):

Well after more tests (this time with d=300):
mp=tinterlace=0:
bench: utime=6.600s
bench: maxrss=481940kB
tinterlace=0:
bench: utime=6.588s
bench: maxrss=59560kB

mp=tinterlace=1:
bench: utime=6.296s
bench: maxrss=491472kB
tinterlace=1:
bench: utime=6.316s
bench: maxrss=26912kB

mp=tinterlace=2:
bench: utime=6.296s
bench: maxrss=491368kB
tinterlace=2:
bench: utime=6.276s
bench: maxrss=28940kB

mp=tinterlace=3:
bench: utime=7.072s
bench: maxrss=41100kB
tinterlace=3:
bench: utime=7.000s
bench: maxrss=60056kB

mp=tinterlace=4:
bench: utime=6.364s
bench: maxrss=491644kB
tinterlace=4:
bench: utime=6.376s
bench: maxrss=26544kB

I suppose the slower times may be an artifact due to heating (latest
tests have more chance to get higher values). More benchmarks are
welcome, but I think it's safe to drop the wrapper.

--------8<------------>8--------------------------------------
#! /bin/sh

for i in 0 1 2 3 4; do
    for f in mp=tinterlace tinterlace; do
        filter="$f=$i";
        echo "$filter:";
        ./ffmpeg -v 0 -f lavfi -i "testsrc=d=300,format=yuv420p,$filter,setpts=nan" -f null - -benchmark;
        #sleep 10;
    done;
    echo;
done
--------8<------------>8--------------------------------------
-- 
FFmpeg = Faithless and Frightening Meaningful Puritan Elastic Generator


More information about the ffmpeg-devel mailing list