Incase you hadn’t figured it already, the demo I was teasing with before the show was our “Zero shutter lag” imaging demo. We’ve posted a picture and a link to the associated Flickr stream already but I think a more detailed write-up is in order now…
Smile! You’re on camera…
We were demonstrating a camera application that could take pictures the instant you press the capture button. To date, there is always a slight delay on camera phones between the user pressing the button and the camera actually capturing the image. Since our set-up elimates this delay we’ve dubbed it “Zero shutter lag“.
To make it a bit more fun we had a few effects that could be applied to the photos such as black & white, sepia, milky and more. Some of these also worked in real-time on the camera view-finder. There were also a number of celebrity lookalikes to pose with: Posh’n'Becks*, Del boy (a character from “Only Fools and Horses” for the non-Brits reading this), Jean-Luc Picard, Austin Powers and Kylie Minogue.
The finished images could then be uploaded directly to Flickr and from there were then downloaded and displayed on the main Symbian stand (behind the coffee bar) and the ScreenPlay demo. You could also get your photo printed out onto a keyring, bottle opener or fridge magnet for added freebie goodness!
The demo was built on Symbian OS 9.5 and running on a Texas Instruments 3430 development board with a 3.2 mega-pixel OmniVision camera. Although they don’t look like phones, such dev boards are representative of mobile phones – same CPU, memory, peripherals etc. – but have some extra connections to help software development.
The software that enabled the zero shutter lag feature was by Scalado. By working closely with them, we have pre-integrated Scalado’s imaging solutions into Symbian OS. This means that it’s a lot quicker, cheaper and easier for Symbian OS licensees to use Scalado’s software in their products if they so desire. A great example of the Symbian Parter Network in action!
How the magic happens
You may be wondering why we haven’t had zero shutter lag before. Well, traditionally phone cameras will send a low-resolution stream of images while the viewfinder is being displayed. This is because using full-sized images for the viewfinder is prohibitively CPU and memory intensive. When the user presses the capture button the camera therefore has to switch into full-resolution mode first and this takes some time (largely because it involves re-calibration for which the camera needs to capture a few frames as reference). That’s where the delay is introduced.
Enter Scalado. They have some incredibly clever and effecient JPEG-decoding software. In fact, it’s so nippy that it allows us to use a full resolution feed from the camera for our view-finder (and that’s all running ARM-side btw). When it comes to capture time that means we already have a full sized, JPEG file that we just need to save to disk. No more switching camera modes equals no more lag!
Although our demo app didn’t do this, it wouldn’t be much of a stretch to buffer the last few seconds’ worth of camera frames so that when you capture it could present you with photos from just before you pressed the button. That way even if you were a bit late to press the button you still wouldn’t miss those once-in-a-lifetime moments! You could also implement a burst capture mode along similar lines.
With higher spec camera hardware and sufficient bandwidth on the camera connection you could up the mega-pixels quite significantly too. Scalado recons that with the CPU we were using their solution could comfortably decode up to 20 mega-pixel images. Sweet!
* Incase you were wondering: The Posh’n'Becks were the same ones that appeared on Dragon’s Den!