Here's a more interesting link directly from the app developers: http://www.snappylabs.com/blog/snappycam/2013/07/31/iphone-k...
> extended some of that research to create a new algorithm
> 10,000 lines of hand-tuned assembly code
> optimized out pipeline bubbles using a cycle counter tool
Color me impressed. It sounds like they really pulled out all the stops.
There's no reason he couldn't do the same on Android and see similar gains. It would just be a lot of work..
Edit: A new algorithm counts as science, but the TechCrunch article really gave no justification for the claim.
If you like signal processing, fixed point arithmetic, SIMD cores, and assembly, then this is for you. :-)
That's a cool feat and is a little damning for Accelerate.framework, although the way techcrunch writes it I expected a new kind of fast cosine transform.
The actual DCT algorithm created and used in the app is different to the typical AAN (Arai, Agui, Nakajima) DCT algorithm that's used in JPEG codecs, at least all the ones I've seen.
It's all about doing as little work as possible to achieve the end result. That's why there's so much asm implementation, with carefully chosen NEON instructions for each step.
Think of it as a cross-layer optimization between algorithm and implementation... done by hand. :-)
While SnappyCam has been the most difficult, complex, piece of software I've written since I started coding in my early teens, it's also been one of the most satisfying technically.
I'd love to disclose the many, many optimizations baked in, but as this is a commercial app I must keep much of it as a trade secret.
I will say though that a lot of precomputation was involved, both for the encoder and decoder. Jumped at the chance to avoid computation, memory reads, etc., as much as possible. :-)
Well done on realising something that seems obvious in retrospect, but most people still miss.
G'day from across the ditch John and I'm glad to see things are going well! (from John D. in Sydney)
[1] http://www.rmit.edu.au/browse/Current%20students%2FAdmin%20e...
The Australian Communications Theory Workshop was such a long time ago--what great memories. :-)
What are you up to these days?
Will definitely look you up when I'm down next. Trying to drop by more consistently during the summer these days. I spent five weeks in Melbourne last Jan and loved every minute of warmth. :)