Some news is making the rounds that Google is funding ARM improvements for the Theora video decoder. It gives the free software faithful renewed hope. However, reading this news makes me wonder: Doesn’t FFmpeg already have ARM optimizations for Theora? In fact, it does, as indicated by the existence of the file libavcodec/arm/vp3dsp_neon.S. This has optimized IDCT transform/get/put and loop filter functions for NEON instruction sets. I know there are several different types of SIMD for ARM chips and I don’t know if NEON is the most common variety.
The most pressing reason for funding this effort is, of course, license purity.
BSD license is precisely the reason. But David said that FFmpeg’s decoder is about 10% faster currently on modern ARM and theorarm’s build system basically doesn’t work.
Not to mention the MC functions in dsputil_neon.S that Mans wrote long ago, one of the benefits of having a common framework for stuff ;)
Anyway, I get the impression from Chris DiBona’s comment that this was less because Google wanted to use libtheora on ARM and more about Google supporting open source development in general. Certainly it’ll be used by Mozilla (which is who I had expected to pay for Theorarm to be merged back into libtheora.)
I wouldn’t be too surprised if Theorarm was a bit faster than FFmpeg on ancient cores (ARM7, ARM9) since that’s what most of its asm is written assuming, but I don’t care about them since they have no SIMD. (IwMMXt doesn’t count)
At least merging back into libtheora should get it a build system with the standard autoconf levels of brokenness, I don’t really count the current makefile you have to edit (and which can’t produce even a static library) as a build system.
> standard autoconf levels of brokenness
> current makefile you have to edit
To be honest, I am unsure which one sounds more scary to me.
A Makefile at least is hackable if you want to build on/for a strange system, with auto* you first have to port those and then it still won’t work and you have to debug the code auto* generates which is an unreadable mess (even for auto-generated code I consider it sub-standard in readability).
first the blog post is done by … the theorarm developer. So the contents is a bit subjective…
Also theorarm license sucks : it is GPL or commercial (ie you paid the main developer to escape GPL).
Google already use ffmpeg in chrome. I wonder why they didn’t choose it for arm.
Oh they change the license to bsd (the page was updated since yesterday).
Pingback: Tweets that mention Google Funding VP3 On ARM | Breaking Eggs And Making Omelettes -- Topsy.com
Yes, this looks like an exercise in futility given that FFmpeg already has optimizations and is still faster. I suggest we try our best to merge whatever can be merged from theorarm into FFmpeg to maintain the edge…
There’s nothing there worth touching.
What a pointless exercise in duplication.