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.'"
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
Theora isn't bad. It's better than MPEG-1 and a MPEG-2, and similar quality to MPEG-4 part 2. It's not as good as H.264, VC-1, or Dirac, but that's not the same as being bad. It's perfectly acceptable for a lot of uses.
I am TheRaven on Soylent News
I'll admit that Theora isn't the greatest video codec. But it's been explained many times that Mozilla simply can't use MPEG-4 AVC/h.264 because of the patents involved.
Mozilla and wider Open Source world has three options: (not mutually exclusive)
But no amount of whinging will make them use AVC/h.264. It's simply not an option at the moment.
Your mind is wrong.
Lets look at graphics cards. A DSP is the same "thing" as a GPU is, in that it's a special purpose processing unit (ie, Graphics Processing Unit, Digital Signal Processor...). Rendering with a GPU is a hell of a lot faster than with a general CPU. Likewise, processing digital signals is a hell of a lot faster in a DSP than with a general CPU.
So, to reiterate: you are wrong.
For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
They made their point quite clearly.
They can't embed the codec and remain truly Free software.
Second, while they could link to platform-provided codecs, it's a support nightmare.
Third, it would legitimize patented crap.
That's currently the situation with plugins. They're pieces of object code, so you're dependent on the plugin developer to provide you with a version for your OS/architecture. For example, Flash (something that HTML 5 and the video tag could replace) is (AFAIK) only available on three mainstream platforms - Win/x86, OSX/x86, and Linux/x86. There's a beta version for x86-64 and special versions (Lite?) for embedded devices, but that's pretty much it. As for the Quicktime plugin, there's no Linux or *BSD support at all (mainly because there's no QT on those platforms), although there's plugins that use VLC or totem, etc instead.
Now, lets look at Firefox. The Debian iceweasel package (Firefox without the branding) is listed as being available for 14 architectures (not counting the unofficial 68k port that languishes at 2.0). That includes x86-64 for your latest AMD64/Intel64 machines, armel for your portable ARM devices, powerpc for your old G3/G4/G5 PowerMacs, and a bunch of other architectures too. None of those are supported by Adobe or the many other companies that have, over the years, tried to lock us into their proprietary software with binary-only plugins. So I'm siding with Mozilla for some very practical reasons. Theora's not the best out there, but I'd prefer the web to be open to all.
If all internet use h.264 now, will still be using, and in far more ways, in 5. You now can move away with not so big effort, in 5 years will be impossible, and most of the internet content will be tied to the will of a single company wanting that you and everyone else in the planet pays them for every device and app that potentially connects to internet. Support it "by now",and will never be pressure to change till will be too late.
And open source somewhat follows the "shoulders of giants" idea, all have the source, so the experience could be used with another future open source codec if necessary.
Heh... Damnshock, have you ever worked with a TI SoC?
The codec was implemented against the C64x+ on a Linux based target on OMAP3.
Each phone isn't magically different in that respect. In fact, TI provides a platform SDK to use the DSP and everybody using Linux as their base OS is using the same SDK and pathways to get the data in/out of the engine and merely specifying their own get/on get/off points, which are actually submitted to the DSP via the API TI provides to each and every customer of their hardware.
What does this mean?
It means that the DSP work done now is available, largely ready for use on:
Motorola Droid ...and anything else using an OMAP3 SoC and Linux.
Palm Pre
Palm Pixi
Nokia N900
BeagleBoard and derivatives...
Gumstix Overo Water & Fire
Open Pandora Handheld
iPhone GS...
Seriously. Done once, able to be used elsewhere as long as you provide consistent interface rules. You might need to adjust the place you get and put the data for the operation, but the algorithm and the vast bulk of the DSP code doesn't change from device to device.
More to the point, you're going to find that with a bit of tweakage, the work can probably be implemented on OMAP2 platforms such as the Nokia N800/N810 as there's more than enough headroom on the C64x+ to lead me to believe that there's a possibility of doing it on a C55x class DSP- not that someone would go to that trouble unless there was a business case for it.
Now, this doesn't mean everybody gets "hardware" Theora yet- you still need to implement for at least Blackfin and Snapdragon as well for the bulk of the mobile device space. The main big deal here is that it has now been shown that it CAN be done and done fairly easily.
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas