Hardware Accelerated Video Decoding


Maltanar

Still Fresh
Joined
Jan 1, 2008
Messages
22
Location
Ankara, Turkey
Website
www.maltanar.net
Hi all,

I was wondering what the current status for hardware-accelerated video is on OMAP3 systems, and more specifically on the Pandora? (or possibly the BeagleBoard)

The wiki and progress reports often contain statements like "Movieplayer: Not using hardware acceleration yet" and similar. I can imagine the DSP would greatly speed up video decoding. Are there any ongoing projects? Or would it be trivial to implement and just being deprioritized since there are more important issues at hand?
 
Theres only a few of us bodies, and we're all fully occupied already.. so it is not unprioritiuzed, just no one has the spare cycles to work on it. It is also a large job (I think) --

ie: In my limited experience, hardware decoders are not 'magic solutions' where you copy blocks of files into RAM and they draw them on the screen; it can't work like that, it has to be at a much lower level. (Think of the multimedia extensions to Intel chips back years ago) -- the hardware usually offers colour-space translation opcodes, matric operations that are fast or many-paralleled for the sorts of things you need to do in common decoding problems, stuff like that. So you have to code to the hardware for each codec you need to decode, and video decoding is a highly complex thing with many codecs (and subcodecs, somethig like h264 is not just one codec).

So to my brain, on the surface it seem slike a big project. But I've not looked into libffmpeg, maybe it has stubs where you drop in hardware decoding as overrides to software equivilents, so maybe its a few weeks of hacking only. *dunno*

But it probably will not be easy or too quick.

If no one else looks into it, I figure I will once we get shipped. In the mean time, just like for iphone/ipod/PSP/etc, you can transcode to pandora friendly formats and resolutions and it works fine; but with hw decoding, you shouldn't have to transcode imho.

jeff
 
Maybe this project is useful: GStreamer on TI DaVinci and OMAP.
The DMAI based GStreamer plug-in provides high performance audio and video streaming using DaVinci hardware accelerators in a familiar GStreamer framework. The DaVinci Multimedia Application Interface (DMAI) is an API on top DaVinci software technology that allows a consistent means to utilizing DaVinci hardware accelerators. The supported DaVinci platforms include OMAP3, DM6467, DM355 and DM6446 devices.
 
Strange, in the Marketing documents of the TI OMAP Chipset it sounds like you just have to snip with the fingers and you have instant HW-Accelerated everything. :D

skeezix said:
Theres only a few of us bodies, and we're all fully occupied already.. so it is not unprioritiuzed, just no one has the spare cycles to work on it. It is also a large job (I think) --
Simple Solution: find more talented (and bored) coders with too much free time. I bet, they are out there, they are starving for working onto such a great device like the Pandora...we just have to find them. So many employless people out there... if you build it, they will come...or something like that. :lol:
 
Last edited by a moderator:
fusion_power said:
Strange, in the Marketing documents of the TI OMAP Chipset it sounds like you just have to snip with the fingers and you have instant HW-Accelerated everything. :D

And thats Marketing for you! :eek:
 
Last edited by a moderator:
So go find some ;)

As with anything else.. there are infinite people willing to criticize, but very few willing to commit <good or even bad> code :)

I imagine once the device ships, suddenly there'll be a few hundred more coder eyeballs so a lot of magic can happen.

jeff
 
skeezix said:
So go find some ;)

As with anything else.. there are infinite people willing to criticize, but very few willing to commit <good or even bad> code :)

I imagine once the device ships, suddenly there'll be a few hundred more coder eyeballs so a lot of magic can happen.

jeff

My motivation for asking the question in the first place is because I want to start participating by actually committing some code :)

Something that I just noticed is that BeagleBoard, which was accepted into Google's Summer of Code as a mentoring organization this year, has a related item under their project ideas section:

Port MPlayer or GStreamer with DSP codec support: Medium GStreamer is a multimedia package that handles streaming and file playback for a variety of multimedia files. The port was done for DaVinci, it would be cool to have a simiilar port done for Beagleboard. http://focus.ti.com/dsp/docs/dspsplash.tsp?contentId=3100. There's a lot of work done in the GStreamer arena: BeagleBoard/gst-openmax and there's also the gst-dsp. These projects are targeted for the bridgedriver.

Seeing that I also am a student and will be having free time over this summer, I think I might at least be able to get started. Doing this with the GSoC scholarship would be desirable, but even without that I think it would be a valuable thing to have video HW acceleration for OMAP3, and especially the Pandora.

One question that sprang into my mind was whether it would be possible to work on something like this without having the hardware. Barring the possibility that the first batch Pandoras start getting shipped next week, could one do work towards this without having an OMAP3 board in possession? Would emulators suffice?
 
Last edited by a moderator:
I imagine it would be brutal without having an accurate hw (be it emulator or real.) But is there an OMAP emulator available?

jeff
 
Googling after it brought up qemu-omap3 and the qemu project in maemo. The second one looks better developed, though the project doesn't seem that alive.

Regarding DSP utilization for video decoding on OMAP3s, both gst-dsp and TI's work (as per Zotty's post) seem to have come a long way already. Especially TI's, it lists "TIViddec2 (xDM 1.2) MPEG2, MPEG4, H264" in the feature grid for OMAP3x video decoding. I wonder if there is some catch involved, perhaps TI keeping the source for the DSP algorithms to themselves and distributing only the binary images? Or some other reason why we wouldn't want to (or prefer to) use it with the Pandora?
 
AFAIR the TI plugin is binary only and requires a higher kernel.
We won't risk to break the OS shortly before release and switch to a higher kernel without having the time left to discover and fix bugs.

But that's all on our To-Do list for the next big OS release :)

With that plugin, the Beagleboard uses 15% CPU while decoding a 720p H264 AFAIR, so yes, this is definately gonna help.
 
Back
Top