Hardware-Accelerated Ogg Theora For Firefox Mobile
An anonymous reader writes "Matthew Gregan is working on bringing David Schleef's DSP accelerated port of Theora to Firefox Mobile. He writes on his blog: 'The C64x+ DSP is often found in systems built upon TI's OMAP3 SoC, such as the Palm Pre, Motorola Droid, and Nokia N900. Last year, Mozilla funded a port, named Leonora, of Xiph's Theora video codec to the TI C64x+ DSP. David Schleef conducted the port impressively quickly and published his results. The intention of this project was to provide a high-quality set of royalty-free media codecs for a common mobile computing platform. The initial focus is Firefox Mobile on the N900, so I am working on integrating David's work into Firefox. To experiment with other facilities Firefox could use to accelerate video playback, and test integration, I've been hacking on a branch of a stand-alone Ogg Theora and Vorbis player originally written by Chris Double called plogg.'"
I have no idea why Firefox still fights against the giant and loses money and time on it. Great, they got hw-accelerated Theora to one single mobile phone. What about all the televisions, other mobile phones, computers, airplanes, PS3, 360, and everything else under the sun that has H.264 hw supported? It's a lost battle.
If I were them, I would seriously start concentrating on the next generation of video codecs. It might be closed H.264 for now, but if you want to get an open source product out there, you have to make it technically better, make sure (and contact!) companies to support it in their products, and just do marketing and PR.
Open source has some advantages, but if it's technically lesser and doesn't work with companies, it's not going to win.
In my mind, hardware accelerated means using fixed-function, special purpose functional blocks in silicon. Saying that using a DSP is hardware acceleration for video codecs is like saying that software is hardware accelerated by the execution units of a CPU.
It's great seeing the benchmarks showing the CPU usage dropping from 99% to 1%, but at the same time the DSP and GPU usage is going up by some unstated amount. It would be really great to see some comparison of how this effects the battery life. Playing MP3s on the C64x can be done in a bit under 15mW, but Theora is a lot more complex and doing the colourspace conversions and compositing on the GPU is going to add a bit too. I'd expect the power usage to be lower than doing it on the CPU, but maybe not by a huge amount.
Either way, it's great that they can free up the CPU to do other stuff. 0.4% of the ARM core isn't really enough to run the scripts that typically accompany a web page that uses the video tag, 99% almost certainly is.
I am TheRaven on Soylent News
This is a good example how open systems drive innovation. Allowing people to tinker with the device (root access, access to the DSP) attracts hackers, which in this case lead to DSP accelerated Theora video decoding. It's quite fitting that Apple is resisting Theora in HTML 5, mainly because their devices don't have accelerated Theora decoding (this is what I assume). While at the same time the restrictions imposed by Apple make it impossible to develop something like this for their iCrap devices (apart from not having root access, no API for accessing the DSP, it would also violate the developer agreement.. since you need some DSP assembly, which is not an approved language).
Will this work be adaptable to the VP8 codecs should Google open source them?
(DENVER, CO, US – 2 February 2010) – MPEG LA announced today that its AVC Patent Portfolio License will continue not to charge royalties for Internet Video that is free to end users (known as Internet Broadcast AVC Video) during the next License term from January 1, 2011 to December 31, 2015. Products and services other than Internet Broadcast AVC Video continue to be royalty-bearing, and royalties to apply during the next term will be announced before the end of 2010.
So how about instead of touting a codec thats already outdated use h.264 for now and use the next 5 years to develop a codec that is actually better in some way.
Morpheus, God of Dreams.
No, that's a stupid idea.
Not all systems have an h.264 codec installed. Mac OS X does (via QuickTime). Windows 7 has an included h.264 codec, but neither Windows Vista nor Windows XP do. The only available h.264 codecs for Windows Vista and Windows XP are either commercial (which nearly nobody will have installed) or unlicensed. On Linux, there is exactly one licensed h.264 codec (Fluendo's GStreamer plugin), which virtually nobody has installed.
So this doesn't solve the problem at all. It also has some rather bad side-effects.
First, it makes the browser behave differently depending on which OS you're using. Mac OS X can basically only play h.264 and MPEG-4 ASP out of the box, and only in the MPEG-4 / QuickTime container format. Windows XP and Vista can play a couple of useless, outdated codecs in the AVI container, or one of several versions of WMV. Oh, and Windows XP didn't ship with a WMV9 codec. On Linux... anything can happen - GStreamer may or may not be available, and what codecs it actually contains varies widely (although it almost always includes Theora). What about embedded systems that don't even have their own codecs? What about embedded systems which have their own codecs, but provide no way to install new ones?
It also increases the attack surface, which will cause more security vulnerabilities. Say you just let DirectShow handle any media type. You've not only exposed Windows' h.264 decoder, but also every other decoder and parser available through DirectShow. Some of those are from the mid to late 90's. More likely than not, they're full of security vulnerabilities.
To put it another way:
IE9 ships with it's own h.264 decoder. It's the only way to support h.264 on Vista, and it limits the attack surface. Silverlight ships with it's own h.264 decoder, for exactly the same reasons. So does Flash. Safari on Windows effectively ships with it's own h.264 decoder (via QuickTime). It only uses the OS supplied codecs on a Mac, where Apple control the entire platform anyway. Chrome includes it's own h.264 and Theora decoders on all platforms. Opera includes it's own Theora decoder, via an included version of GStreamer. Firefox includes it's own Theora decoder.
You know, Firefox already plays h.264 just fine.
By using Flash.
Refusing to support h.264 in HTML5 is not going to stop anyone using h.264, it's going to stop people using HTML5 since they'll just use Flash instead.
And so, Mozilla loses twice.