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.
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).