FFhistory: optimisations

There has never been an official explanation for FFmpeg name but people agree it has something to do with being fast (Stefano Sabatini had an output of some program trying to decipher this acronym in his mail signatures but it was just a joke). So we need to mention the people who made FFmpeg really fast by providing various optimisations.

The first SIMD optimisations were done for x86 by Fabrice himself, later joined by Michael Niedermayer and many others. Through the time various other architectures got dedicated code as well, like PowerPC and SPARC at first and ARM later. And there were optimisations for various exotic platforms, mostly from Måns Rullgård (but he deserves a separate post).

Here’s a list of people I can remember who worked on various optimisations. I omitted people mentioned in earlier posts, x264 developers and various paid engineers who sent patches when FFmpeg became popular enough (like from Serbian division of MIPS or from Loongson).

  • Luca Barbato—now there’s a guy I can tell stories about, so please wait until the next post where I can tell you about the times he actually worked, including on AltiVec optimisations;
  • Clément Bœsch—he’s responsible for some libswscale ARMv8 optimisations as well as co-writing VP9 decoder. You may also know him for palettisation code (so you can finally encode animated GIFs with FFmpeg);
  • Christophe Gisquet—the guy was interested in optimising various things and did exactly that, both on source code level and in assembly;
  • Janne Grunau—a former MythTV developer who started to be active in FFmpeg in 2010. Beside being good in ARM assembly optimisations, he was a good overall maintainer and server admin. He also was the one undertaking a tedious task of converting SVN repository into Git properly (with mapping committers, demangling mail addresses and so on—something an automatic conversion can’t do). And he was foolish hospitable enough to let me stay at his apartment during LinuxTag 2010 along with Diego;
  • Alexandra Hájková—her achievements will be told in one of the upcoming posts;
  • Marc Hoffman—some Altivec and Blackfin optimisations;
  • Siarhei Siamashka—IIRC he was a Belarusian programmer working at Nokia. He did ARM optimisations in the times when the architecture still lacked SIMD;
  • Martin Storsjö—even if he was more involved in streaming protocols support (the company he was working at had something to do with live streaming), he did ARMv7 and ARMv8 NEON optimisations until it out-shined the rest of his work.

Maybe their contributions were not immediately observable but they cut decoding time, saved battery on mobile devices and sometimes changed playback experience from annoying to acceptable. So they deserve your gratitude.

6 Responses to “FFhistory: optimisations”

  1. Paul says:

    Better write memoirs instead of obscure blog entries.
    For example: “My lost memories of FFmpeg”.

  2. Kostya says:

    Can’t do that, they’re lost.

  3. Paul says:

    Fine, but then you are in need to write “My project”. The exciting story about NihAV conception.

    My perspective about all this sorry situation is very different.

  4. Kostya says:

    The first posts in NihAV category of this blog are exactly that: what thoughts I have about creating it, the initial draft in C and how the current Rust implementation started. What else is there to write about?

  5. Paul says:

    Real book you can touch and smell, that is left to do. You are very good ghost writer for sure.