View Single Post
Posts: 182 | Thanked: 540 times | Joined on Aug 2009 @ Finland
#32
I think you are mixing things together for no real benefit. NEON is part of ARM core, ARM is capable to run both NEON and ARM pipelines in parallel in some cases. DSP core is a separate part, has different assembly and generally speaking you can have devices where DSP is not present but NEON and VFP are supported, like BeagleBoard.

Look at NEON optimizations Siarhei Siamashka did for pixman: http://cgit.freedesktop.org/~siamash...rm-neon-update in his development tree. NEON code can be written by hands but with fairly recent gcc autovectorization on -O3 level could produce you NEON code on ARM. The latter is not always of good quality and generally needs more love from compiler folks to be useful. Siarhei's code makes good use of aggressive prefetching to allow both ARM and NEON be busy.

DSP programming in OMAP chipsets is a different story. You need a proprietory tools for it. But once you've done your algorithms and compiled them, you can use recently opened Maemo's gst-dsp to hook up algorithms into gstreamer pipelines. It works faster and more reliable than original TI's library for DSP communication. See http://maemo.gitorious.org/maemo-multimedia/gst-dsp for more details in the code.

There is also OpenMAX bridge for gstreamer: http://maemo.gitorious.org/maemo-multimedia/gst-openmax which has been in use for some time but also needs more love before becoming really useful. gst-dsp and NEON optimizations approaches worked better.
 

The Following 3 Users Say Thank You to abbra For This Useful Post: