High speed full-frame continuous shooting is one of the key pillars of photography, especially where action is concerned. It is a core technology of professional DSLRs enhancing their ability to capture decisive moments in challenging environments. In what looks like a groundbreaking development for iPhone photography, the developer of the latest version of SnappyCam Pro claims that it can produce high-quality 8 MP images shooting at 20 full-sensor pictures/sec on your iPhone 5 and significant speed improvements on older models and other iOS devices. Can it?

At the heart of SnappyCam Pro is a capture and image signal processing engine that took a year of research to develop. Photos are captured and buffered and then processed by the multi-threaded JPEG compression engine which compresses shots in software considerably faster than a hardware encoder.

John Papandriopoulos, the inventor and developer of SnappyCam, says he had to rewrite the JPEG codec to make these speed improvements feasible. He studied the fast Discrete Cosine Transform (DCT) algorithms developed when JPEG was first introduced in the 1990s. The research was then applied to create a new algorithm suitable for the ARM NEON SIMD co-processor instruction set architecture. "The final implementation comprises nearly 10,000 lines of hand-tuned assembly code and over 20,000 lines of low-level C codec," he says. "At first we did try to leverage the iPhone graphics processing unit for the DCT computation. It turned out to be a dead end. The ARM NEON approach was the way to go," Papandriopoulos adds. "We also optimized out pipeline bubbles using a cycle counter tool so that every clock tick was put to work."

SnappyCam is touting a speed four times faster than the normal iPhone 5 Camera app and more than double the speed of the 7.5 shots per second from the Samsung Galaxy S4. Now here is where it gets a little murky. The first question that springs to mind is how can a smartphone shoot 50 percent more frames per second than say a Canon 1D MKII which is an older Canon model with an 8.2 megapixel effective resolution?

In order to achieve these high speeds SnappyCam captures full sensor 8 MP images (3264x2448 pixels) but in real time compresses them producing smaller file sizes. Does this mean that the developer's claims are false? Technically not, as the app is still using the full sensor to capture the original images prior to compression. In order to comprehend the science here we need to look at a captured image in 3 ways: resolution, quality and file size.

Resolution is defined by your camera or smartphone's image sensor (the device that converts an optical image into an electrical signal) size and refers to the number of pixels in an image. Resolution is usually stated as the width and height of the image and the total number of pixels. For example, an image that is 3,504 pixels wide and 2,336 pixels high contains 8,185,344 pixels (8.2 megapixels).

The quality of an image is defined by the amount of compression applied in any one of a number of different file formats (or resizing software post capture). File formats like TIFF, BMP and RAW do not compress images whereas JPG, PNG and GIF compress your files in order to reduce storage space and enable camera hardware and software to shoot at more frames per second.

Both resolution and quality will define your file size on any given image sensor. Resolution by cropping and quality by compressing. Herein lies the rub. Papandriopoulos has re-written the JPEG codec to enable faster compression without, from the look of his sample images, overly degrading them. This is unlikely to have Canon or Nikon shaking in their boots but it is a significantly clever step in the right direction for high speed image capture on smartphones.

High end DSLRs have a 1,500–2,500 shot battery life and a sophisticated AI Servo mode for continuous focus tracking enabling photographers to capture sharp images of subjects moving forwards or backwards and horizontally. While smartphones are improving in these technical areas, physical size and processing power requirements are always going to be a limiting factor.

SnappyCam Pro does have the ability to zoom up to six times enabling you to get closer to the action, change aspect ratios to 4:3, widescreen 16:9, square 1:1 and more, geo-tag your images and add sound effects when you shoot.

For now, the app will not be ported to Android although this is feasible where similar ARM processors with compatible NEON SIMD extensions are used.

Even with continuous full frame shooting, smartphones aren't yet threatening DSLRs that offer full resolution RAW and large JPEG file sizes, extremely accurate focusing, ever improving ISO performance, significant dynamic range and weatherproofing. SnappyCam Pro on iOS devices will give you the ability to pick and choose from multiple shots increasing your chance of nailing a precious decisive moment whether it be a family portrait, kid's sporting highlight or special family occasion.

SnappyCam Pro is available at the iTunes store. The video below shows an interactive frame by frame example of the SnappyCam app in action.

Source: SnappyCam, Developer's Blog

Update (Aug 8, 2013): This story originally stated that "SnappyCam captures full quality 8 MP images but in real time crops and compresses them to 1440 x 1080 pixels (1.5 MP) resolution." This information was incorrectly supplied via the source and has now been corrected to reflect the fact that SnappyCam captures full sensor 8 MP images (3264x2448 pixels).



  • Am I misunderstanding something, or is this method capturing less frames per second and less resolution than just capturing HD video using the stock app, and later grabbing applicable frames from that video?

    The only thing I can think of is maybe when capturing video with the stock app, the entire sensor is not used, so the FOV is different? (Not sure either way on that). Even if true, it doesn't seem like enough reason to be so impressed by this. Move closer to target and use the built-in HD video to capture higher resolution and more fps.

    pj_rage 7th August, 2013 @ 6:29 a.m. (California Time)
  • HD video is at most 1920x1080, or about 2 mp. They're talking about capturing at 8 mp. And sometimes getting closer is not an option.

    TJG 7th August, 2013 @ 8:14 a.m. (California Time)
  • Thought I'd share my thoughts on this as I've tried it and it has now become a permanent app on my iPhone 4s.

    App makes best use of full light. Ie - even with flash enabled, it works a hell of a lot better in full sun, which is the intended market. I suspect this is a function of the iPhone (or any camera auto mode) that compensates for low light by slowing shutter speed, thereby blurring fast moving objects. The developer can choose to program the iPhone override this and give the user an option to adjust dark photos externally in Photoshop or something. I would have preferred this.

    It is definitely processing something, as the iPhone gets bloody hot. So advise not to use this continuously in hot surrounds, or you may upset your phone.

    When using ultra wide (equivalent to largest frame) as max frames, you can only do 12fps. I don't know if this feature is due to limitation of write to CPU/ram, or just a soft limitation to allow continuous shooting. If write to ram space is limiting, a indicator with decreasing percentage of memory available would be better as I like full frame and only really take a few seconds of footage at a time, so I think 30 fps would be nice.

    Maybe future phones (looking at you Apple/Samsung) will have 120fps. Would be cool to use this app for slow motion stuff.

    Nairda 11th August, 2013 @ 5:45 p.m. (California Time)
  • Nairda, I'm the SnappyCam developer and thought to provide some further background on your thoughts:

    SnappyCam tries to minimize exposure time so that individual shots are as motion-blur free as possible. Ultimately we're limited by hardware and the access given to us by Apple's APIs.

    The hardware is generally capable of shortening the exposure time further, but as 3rd party developers we can only clamp the maximum exposure time to 1/N where N is the capture rate. e.g. N == 30, so a maximum exposure time of 33.3msec.

    The camera will otherwise automatically adjust the exposure rate between the above 1/N maximum, and some pre-determined minimum. That's why in strong daylight, SnappyCam can perform even better as the camera floats the exposure to the shorter values.

    We push your iPhone to the limit, on both capture- and processing-speed. On dual core devices (iPhone 4S+, iPad 2+), we utilize all available CPUs to make JPEG compression faster. That way you can view the entire sequence quickly, or take back-to-back bursts quickly.

    Your 12 fps full-sensor capture is the practical hardware limitation on iPhone 4s. But on iPhone 5, it's higher at 20 fps. And on iPhone 5s, it's an amazing 30 fps at full-sensor 8 Mpx resolution.

    We already support 120 fps capture at 1 Mpx on iPhone 5s. Apple's newest iPhone hardware is really quite spectacular! (On iPhone 5, the hardware is capable 60 fps at 1 Mpx under iOS 7. Your iPhone 4s is also capable 60 fps at 1 Mpx but only under iOS 5.)

    jpap 14th October, 2013 @ 3:27 a.m. (California Time)
  • Is this app available for iphone today? I am not able to locate the app in the itunes store. Thank you.

    Abbie Tobin Dunagan 23rd January, 2014 @ 7:13 a.m. (California Time)

Post a Comment

Login with Facebook: