[theora] Optimised ARM Ogg/Theora/Vorbis decoder

Robin Watts theora at wss.co.uk
Thu Sep 17 07:36:21 PDT 2009

In message <a960cd1d0909170422l85637e9tf202a85f1143088e at mail.gmail.com>
          Claus Höfele <claus at claushoefele.com> wrote:
> Any performance data on running your decoder on the iPhone?

I don't have an iPhone, so I've not tried it. Buy me a Mac and an
iPhone and I'll try and produce some timings >8*)

Alternatively the source code is available so please feel free to
give it a whirl yourself.

> Presumably, because the iPhone supports floating-point calculations
> natively and has a SIMD unit, it might be better to go that route
> for best performance.

I suspect that floating point won't help - however good the iPhones
FP is it's unlikely to be faster than Tremor/Tremolo.

There are potentially operations that could be accelerated using
SIMD, but the single largest consumer of runtime is the YUV2RGB code
(50%+ of the time). I've spent a few days reading up on the SIMD
options available to us (varying from Xscale to ARMv5E, v6, v7 and
NEON), and I can't immediately see how any of that can accelerate the
YUV2RGB process (when we are going to RGB565 at least).

I'd imagine that the iphone probably has some nifty hardware to
accelerate that process though.

The next largest consumer of time is the postprocessing code (if
enabled). I have started on a version locally that might be faster
using ARMv6 SIMD, but sadly, I don't have a ARMv6 device to hand to
test it on.

Robin Watts,             Email: <mailto:Robin.Watts at wss.co.uk>
Warm Silence Software,   WWW:   <http://www.wss.co.uk/>
P.O.Box 28, Woodstock,   Tel:   01608 737172 (or Mobile: 07885 487642)
Oxfordshire, OX20 1XX    Fax:   01608 737172

More information about the theora mailing list