[Theora-dev] Theora on ARM9 i.MX21

Maik Merten maikmerten at gmx.net
Sun Nov 27 02:40:29 PST 2005

Ben Hoyt wrote:
> Hi, we're looking at using Freescale's i.MX21 ARM9 266MHz processor to
> decode video. We need to use MPEG-4 or something with equivalent
> compression, and Theora looks good.

First of all: I have no experience with embedded devices. I'm not a
Theora developer either.

> But I'm just not sure about the speed. We only need decode, fixed
> resolution (probably about CIF 352 x 288, 30ish fps), no post
> processing, should be fairly simple stuff.

Well, more than one year ago my aging K6-2+ 500 was able to decode such
videos with zero problems (it was able to decode PAL/NTSC full
resolution with frame-drops where bitrate spikes occured). It was using
plain libtheora (without MMX).

I estimate that CIF took something like 30% of my old machine's CPU power.

I'm fully aware that usual ARM CPUs don't have the same computing power
as equally clocked desktop x86 CPUs. OTOH the ARM9 is quite advanced IIRC.

It may be useful for you to know that Theora is basically 100% integer
based (which would make your task much more easy - or so I think).

The original VP3 codec (on which Theora is based) surfaced somewhere in
2001 IIRC and isn't computationally more intensive as MPEG4 and worked
well on average systems of this time. There are no algorithmic changes
in the decoding part (just more configuaration flexibility) so Theora
should be just as fast.

Beside plain libtheora (libtheora-mmx wouldn't suit your needs I guess
;) ) there's the experimental Theora implementation by Derf (
http://svn.xiph.org/experimental/derf/theora-exp/ ) which has an
unusable encoder but a very fast decoder in plain C. Not only is this
decoder faster than plain libtheora but it's spec complete, too - so you
may be interested in trying that decoder.


Maik Merten

More information about the Theora-dev mailing list