[libav-bugs] [Bug 584] New: FFV1: Multithreading for FFV1.1

bugzilla at libav.org bugzilla at libav.org
Mon Nov 4 02:47:36 CET 2013


https://bugzilla.libav.org/show_bug.cgi?id=584

           Summary: FFV1: Multithreading for FFV1.1
           Product: Libav
           Version: git HEAD
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: enhancement
          Priority: Normal
         Component: libavcodec
        AssignedTo: bugzilla at libav.org
        ReportedBy: pb at das-werkstatt.com


I've noticed that it seems to be that ffmpeg's ffv1 implementation is
able to use multiple cores while encoding/decoding FFV1 version 1,
whereas libav's current implementation does not:

------------------------
$ time make fate-ffv1.1 SAMPLES=fate-suite THREADS=1
real    0m12.013s
user    0m11.213s
sys    0m0.504s
------------------------
$ time make fate-ffv1.1 SAMPLES=fate-suite THREADS=8
real    0m13.416s
user    0m12.353s
sys    0m0.680s
------------------------

In ffmpeg's implementation, I see parallel usage on my CPU graph, as
well as the speed is faster with THREADS=8:

------------------------
$ time make SAMPLES=fate-suite fate-ffv1.1 THREADS=1
real    0m18.247s
user    0m16.933s
sys    0m0.856s
------------------------
$ time make SAMPLES=fate-suite fate-ffv1.1 THREADS=8
real    0m14.235s
user    0m19.717s
sys    0m1.040s
------------------------

NOTE: ffmpeg's execution time is longer, because it's running 4
additional tests which aren't done in libav's testset.


I remember something about a change by Niedermayer which greatly
improved decoding speeds of FFV1.1. I think it correlated with the
switching to "threadframe" [1]. Maybe...? Don't know the code.


== References:
[1]
http://git.videolan.org/?p=ffmpeg.git;a=commit;h=69cfe63a43f43207f72fd677c47eafcf58fcfd13

-- 
Configure bugmail: https://bugzilla.libav.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.


More information about the libav-bugs mailing list