L Camera is an open source app available through Github that shows off the benefits of the new camera APIs in Android Lollipop.
These include the ability to shoot RAW—in DNG format, with each image weighing in at 16.2MB—and manual control over exposure and focus.
L Camera is not intended to replace the main camera app installed on your phone. It lacks features and is a little buggy, but is a great tool for exploring the capabilities of your Lollipop-equipped smartphone. In the coming months we’d expect devs to produce more consumer oriented camera apps that utilise the new features in Lollipop, and we’d also hope to see manufacturers to add some of these features to their own first-party camera apps too.
We loaded up L Camera on our Nexus 5 to see what it could do. The results are pretty impressive. The Nexus 5 gets a tangible upgrade from the new software, and shows that the camera is capable of capturing more detail and wider dynamic range than the original stock camera app had us believe.
To illustrate the major benefit of shooting RAW we’ll use the shot below. On the left is the Jpeg taken by the L Camera app, and on the right is the RAW in DNG format.
Immediately you can see that the processed Jpeg has slightly better exposure and more contrast due to the adjustments applied while processing, and there’s also a white balance difference between the two shots. We actually found that the RAW images had consistently more accurate white balance than the Jpegs produced in L Camera. The RAW image, don’t forget is completely unprocessed.
In both cases we feel the image is a tad over-exposed, and would like to recover some of the detail in the clouds.
After importing the Jpeg into Lightroom and adjusting the Highlights slider, and setting white and black points, we end up with this:
Very quickly we’ve hit the limits of what we can do with a Jpeg. The brightest part of the image—the top left area of the sky—contains literally no data. We cannot recover any detail from that part of the image because it does not exist. The detail was discarded when the Jpeg was saved. As a result that part of the image can never be anything other than pure white.
If we do the same with the RAW image, we get this:
We can see that the sensor on the Nexus 5 has captured far more data than the Jpeg was showing us. Recovering the highlights in Lightroom enabled us to see actual clouds in the top left section of the image. In fact, the whole sky has a softer and more natural look.
Knowing that the RAW image contains so much extra information, we can then take our processing to a more extreme level.
With just a few more adjustments we’ve been able to turn the bright, light cloud into a more apocalyptic vision so popular among many photographers on Flickr. This simply would not have been possible if we were limited to only using the Jpeg.
RAW images will also save considerably more fine detail than a Jpeg. The camera software discards a lot of detail when saving an image as a Jpeg, partly because a Jpeg is, by definition, compressed, and partly because noise reduction is applied, which tends to cause a smearing effect.
Here’s a picture of a tower. The underside is in shadow, and it’s a good 30 feet or more away. If we zoom in 200% to the area outlined we can see just how much fine detail the Nexus 5 sensor and lens are capturing, and how much is being discarded in the Jpeg.
The RAW image above clearly shows the vertical bars on the railings around the steps.
In the Jpeg below, all of that fine detail has been wiped out.
Remember that the amount of detail in an image is primarily a consequence of the sensor and lens. If a middling-quality camera like that in the Nexus 5 is capturing more detail than the Jpeg is showing, then better Android cameras like those in the Galaxy Note 4 or the Xperia Z3 should get a considerable upgrade as a result of running Lollipop.
Another benefit that the new camera APIs in Lollipop bring is full manual control, including manual focus and control over shutter speed and ISO.
A quick illustration of this can be seen below.
The image on the left is the Jpeg shot on fully Auto. The software chose a shutter speed of 1/12 and ISO 3200 and produced a noisy, blotchy mess and struggled to even focus properly.
On the right is a RAW image, which we manually set a shutter speed of one second and ISO 800, producing a perfectly exposed and perfectly sharp shot.
It’s not possible to shoot handheld with a shutter speed of a second—the camera needs to be propped up somewhere if not placed on a tripod—so it’s not a catch-all solution. But it does open up the Android camera to far more creative photography.
High ISO and the laws of physics
Manual controls are ideal for helping you avoid setting the ISO too high, but are only an option if you’re shooting static subjects; it’s not possible to shoot moving objects or people with a slow shutter speed.
In these instances increasing the ISO is unavoidable if you’re to get a sharp image. Here, the benefits from Lollipop are less clear. RAW is not a magic bullet that can solve every problem, and the higher the ISO goes the more the laws of physics take over.
The tiny sensors that are installed in smartphones will always be limited in lowlight conditions simply because they are not large enough to capture much light. The more you increase the ISO, the more noise is added to the image.
Jpegs try to get around this by adding blanket noise reduction to the shot. This cleans it up but also, as we’ve seen, wipes out anyone detail that was captured. You can manually remove noise from a RAW image in Lightroom or Photoshop, but this will always come at the expense of detail. Finding the right balance is a judgement everyone makes on their own.
Often this judgement will depend on the intended use for the image. Below is a shot taken at ISO 1600. At small size it looks fine, and would be acceptable for sharing on social media.
Zoomed in to 100% reveals plenty of noise in the image. The left side of the image is untouched, and the right has some noise reduction applied, but we wouldn’t want to use the image at any large size.
The Nexus 5 can shoot up to ISO 10000, although in L Camera it would always cause the camera to crash and require a reboot before it was able to process the Jpeg. Here’s what an unprocessed RAW shot at ISO 10000 on a Nexus 5 looks like.
High ISO performance does vary significantly depending on the camera sensor the smartphone is using. We’d expect better results from better cameras, but we suspect the days of high ISO shooting in smartphones are still a way off.
It’s very early days for Lollipop and the new camera APIs, and at the time of writing there are no camera apps on the Play Store that take advantage of it.
But the benefits are clear. Even on existing hardware you’ll be able to produce images with more detail and wider dynamic range, and also utilise slower shutter speeds for lowlight photography.
You’ll still bump up against the laws of physics for extreme conditions, but there’s little doubt that every smartphone that employs the new camera features in Lollipop will get a significant upgrade; while in future smartphone cameras and camera apps will designed from the ground up with these considerations in mind.
We’re about to enter an exciting new era for Androidography.