This article is intended for advanced photographers and, of course, programmers.
As an imaging and iOS programming pro (see my latest Nokia Lumia 1020-specific article), people often ask me about the photo and video capabilities of iOS. While I'm currently working on no less than four major tutorials & roundups (panorama, HDR, low-light, and action shooting) I'll publish in the near future, I've decided to dedicate a “quick” separate article to a forum question HERE. Note that my HDR (High Dynamic Range) shooting article will build on the information in this article so that advanced users know how exposure compensation can be done in the best way on iOS.
Note that I'm discussing both bracketing and, generically, exposure compensation. The former is based on the latter—you generally shoot more than one exposure-compensated shot to get a bracketed series of shots, typically, for future (HDR etc.) processing. This also means that, as long as you understand what exposure compensation is, you'll also easily understand what bracketing is.
1. Is exposure compensation with dialed-in numbers at all possible?
You may already have seen something like this in the camera app of your non-iOS smartphone (or any dedicated camera):
(Showing the camera settings of the LG G2. Image source: DPReview Connect's G2 preview)
Here, I've annotated the -2...+2 slider at the top with a red rectangle. Basically, you'll find something very similar on all (non-iOS) mobile platforms and dedicated cameras under the icons “Exposure”, “Brightness” and the like.
You may already have noticed I've emphasized you won't find anything like this on iOS. On iOS, it's not possible to directly “dial in” an exposure compensation value, and it won't become possible in at least the next about 14 months either. (It's highly unlikely it'll be introduced to iOS before iOS 8, which is likely to be released Autumn 2014. And it's still not guaranteed this feature will ever be introduced to iOS.) Diametrically opposed to this is the approach of all(!) competing mobile operating systems:
- Android has had manual exp. comp. for many years in its stock Camera client (tested on, among other models, my Samsung Galaxy Ace running on 2.2.1)
- Symbian (tested on my Nokia N8), allowing for configuring bracketing in both the stock Camera app and third-party ones like CameraPro.
- Windows Phone (tested on my LG E900 on WP7.5 and HTC 8S on WP8.0)
- Samsung Bada (tested on my Samsung Wave S7230 running Bada 1.2 and my Samsung Wave I running Bada 2.0)
Note that I couldn't test this with the BlackBerry OS.
All these models let for +/- 2.0 EV settings. Note that the imaging flagship (and swan song) of the Symbian line, the Nokia PureView 808, allowed for a whopping -4...+4 EV exposure compensation, in addition to supporting shooting three bracketed shots from inside the stock Camera app. Read: no third-party apps needed for shooting bracketed shots as easily as possible, unlike with iOS.
2. The best way of bracketing / exposure compensation in iOS
Now that we know it's not possible—as opposed to all other mobile operating systems—to over/underexpose the image by a constant, what should you do to under/overexpose your image for further (for example HDR) processing or to emphasize something which, without exp. comp., would be invisible (because of, say, the low dynamic range of the sensor)? Fortunately, it's possible – just not as easily as on other platforms. In some cases, you simply won't be able to under/overexpose if the subject you shoot is of pretty much the same brightness everywhere.
2.1 The stock Camera client
Basically, you can do basic exp. comp. even in the stock Camera client. Just tap the brightest area before shooting to dial down the compensation and then take a shot. (If you tap the brightest area – for example, the Sun -, the image will be undrexposed the most.) Or, if you want to increase the compensation to positive values, do the opposite – tap the darkest area.
Let me show you some examples. Assume the following, very common scene: shooting the interior of a room with a very bright window:
(as with all the images in this article, click for the high-quality and, in cases, -size original)
where the interior of my summer cottage is dark, while the world outside is sunny. (Yes, even Central-North Finland can be this sunny :))
(Note that this shot has been generated with the in-camera HDR stitching of the third-party and, for HDR, excellent app “Top Camera”. The shot, as it's HDR, doesn't fully convey the vast difference between the light level outside and inside. You'll soon see how vast it is when I show you some non-HDR images of the same scene.)
Now, let's see what the outcome is if I tap the darkest possible area in the image to instruct the camera to set the global exposure of the image based on that area. In the following thumbnail, I've annotated the area I've tapped:
As you can see, the interior of the summer cottage is properly exposed, while the outside world is hopelessly over-exposed. (Note that I've also enabled the built-in HDR mode of the stock Camera app – the HDR shot is HERE. As I'll also explain in my future HDR Bible, the HDR mode of the stock Camera app is only able to increase the dynamic range of most images by around 1 EV, as opposed to proper multi-frame stitching. This is why the outside of the summer cottage is still seriously highlight clipped in the linked HDR image.)
Now, let's make a shot with as low an exposure compensation as possible, which means you'll need to pre-focus the brightest area; for example, one of the white tree-trunks outside:
(HDR version of the shot HERE. As opposed to the previous shot, it's almost indistinguishable from the non-HDR one.)
Note that you will not always want to tap the darkest/brightest areas; for example, when, in the above case, you only need -2 … +2 EV compensation. If you check the EXIF data of the above two images (the under- and the overexposed one), you'll see the overexposed one (the first) used ISO 160 and 1/20s shutter speed, while the underexposed one used ISO 50 (base ISO) and 1/531s. This is some 3 (difference between 50 and 160 ISO) + 5 (1/20s vs. 1/531s) = 8 EV difference!
(Incidentally, you can also easily see the area I used for setting the exposure. The first pair of the two “Subject Area” EXIF tags show where I've tapped to setting the exposure; with the overexposed image, it's x=2775, y=1177, while with the other one, x=270 y=1074. The x coordinate is measured from the left side of the image but, as in this case both images are rotated (in camera) by 180 degrees (see the “Orientation” tag's value), it's counted from the right in these cases.)
If you find this far too high, you can select an area without extremes in lighting.
Let's see another pair of shots – now, completely outside, next to the Iisalmi-Sonkajärvi road in Finland (I've also left the exact GPS coordinates in the original image – feel free to check them out). This pair also uses the brightest (in this case, the Sun) and darkest (shadows of the trees) points for setting the metering and, consequently, the generic exposure compensation.
This is the scene as shot by Top Camera in manual HDR mode:
(Again, I use Top Camera for showing the entire scene, with its lighting extremes, because it produces true HDR images, as opposed to the semi-HDR mode of the stock Camera client of iOS. I've set up the two points manually, using exactly the same areas as I've done with the stock Camera client below.)
This is the output of the stock Camera app after tapping the darkest area (the shadows of the trees; annotated below):
(HDR version HERE. It's significantly better than the non-HDR one as the Sun clips far later than in the non-HDR image above.)
And this is the output of the stock Camera app after selecting the Sun for metering:
(HDR version HERE. As can easily be seen, it has lower highlight clipping than the regular image but the different color channels clip differently, resulting in slightly uneven colors in the Sun. No such problems with the non-HDR image.)
As you can see, there is a major problem with this shot: the focus is totally messed up. It's not uncommon with contrast-detect cameras (as is the iPhone) to completely miss the focus when you focus to a very bright source of light. You can see this in effect. This means, should you need/want to use the stock Camera app for bracketing, be extra aware of the problems when directly using the Sun for metering. In the following section, I'll explain how this problem can be remedied, should you still want to maximize the underexposure. (Again, as there's no way of dialed-in exposure compensation in iOS, you need to find areas in the scene to apply the metering to. Too bad Apple didn't implement such vital functionality, not even in the programming API so that at least third-party apps could use it...)
By the way, the lighting difference is far less than in the previous summer cottage case: the two shutter speeds are 1/1808s and 1/10870 (the ISO, as was easy to predict, 50, that is, the lowest in both cases); that is, the difference is around 2.5EV – way less than the 8EV difference in the previous example.
2.1.1 Directly making use of the Sun for exposure setting
If you absolutely must use the least possible exposure compensation and you directly have the Sun in your scene to shoot, you will want to use it for metering. However, as we've seen, it can easily result in some major focusing issues. (Actually, with the non-jailbroken iPhone 5 running on 6.1.4, the vast majority of my test shots made with the stock Camera app and using the Sun for under-exposing resulted in completely unsharp images.)
Fortunately, there are several ways of avoiding this problem.
If your iDevice is jailbroken, you absolutely must purchase and use the stunning stock Camera plug-in “CameraTweak”, to which I've dedicated several articles in the past (see for example THIS). It's really-really essential and, basically, adds to the stock Camera app (almost) everything possible via the official API – and some other convenience tools like timers.
(the Cydia main page of CameraTweak)
As the standard API also supports separate boxes for light metering (it's the one that you'll want to point to the Sun to force the image to be as underexposed as possible), CameraTweak makes it available in the stock Camera client too. Let me show you an example:
In the above shot, I've used an orange rectangle to show the exposure ring, positioned on top of the four LED bulbs. The (blue) focus box has been positioned on top of the background (in the center right of the frame). In the case of the previous forest, it should be on top of the most radical contrast differences for the contrast focus detector to work as easily as possible; that is, for example, vertically halfway between the forest and the sky or the grass. The metering ring (the yellow one symbolizing the aperture blades) can, now, safely be positioned over the Sun – it's only for setting the exposure that it will be used for but not the focus.
Note that I've also drawn two other rectangles on the above screenshot. The red one (right at the bottom) shows the icon CameraTweak adds to the standard icon bar of Camera. You must tap it in order to make the icon row immediately above the standard bar visible.
It's in this second icon row that you need to enable “Advanced Mode” - it's the one with the separate focus and exposure boxes. To do this, tap the first icon on the left; here, I've annotated it with a green rectangle.
184.108.40.206 Third-party apps and separate focus / exposure indicators
If you can't / don't want to jailbreak, you'll need to use third-party apps to gain access to separate exposure / focus indicators. No matter which app you select, it'll surely have separate indicators and, consequently, will be able to shoot using the Sun to dial down the exposure.
Don't forget to enable advanced / pro mode (if it's not the default – it isn't in some third-party apps) to display both indicators and move them separately over the Sun (exposure) and something with as much contrast difference as possible.
I'll elaborate more on third-party apps in my next articles to help you choose the right one. For the time being, let me tell you that even the very cheap (and very popular) Camera+ (App Store link; $1.99) is able to do this:
Here, I've positioned the “Exposure” indicator over one of the LED bulbs, while I've set the focus indicator elsewhere.
(Note that, as with CameraTweak, the separate indicators must be first separated. With Camera+, just tap the “+” icon in the top right corner of the default, combined indicator.)
3. Bracketing with pre-setting the brightest and the darkest areas
You can make bracketing easier by using third-party apps that either let you set the brightest and the darkest areas for as fast bracketing as possible – or do this automatically.
Why bother? Why not just use the workflow as explained above? - you may ask. Well, when you shoot for later HDR processing meaning you'll need to shoot at least two shots, you'll find pre-setting the darkest / brightest areas will greatly help you shoot images that show as little between-shot movement as possible, particularly if you can put the iPhone on, say, a bench while shooting. When you need to tap the screen between the two shots to set another area to override the exposure, the camera will most definitely move, unless it's on a tripod. With apps allowing for pre-setting the two areas, you won't need to tap the screen between the two shots.
Tons of third-party App Store apps let for manual setup and some for automatic ones. Let me show you some of the better ones.
3.1 645 Pro MkII
645 Pro MkII (App Store link; $3.99) is one of the best camera apps. While it doesn't have goodies like panorama, light trail shooting or in-app HDR stitching, it's perfectly usable for three-image pre-set bracketing.
You'll want to, first, tap the upper left icon (in the screenshot above, annotated by a red rectangle) to show the circle with “1”. If you don't do this, the first image will always use center metering. After tapping the icon, it becomes draggable. In the above screenshot, as the center of the screen is very close to one of the bulbs, the first shot would have been almost as under-exposed as the second one. This is why I've explicitly displayed circle Nr. 1 and dragged it to a less-lit area – but paying attention to not drag it in the darkest area. After all, circle Nr. 3 has already been dragged there.)
After setting up the circles, just tap the shutter button in the right and the three images, with, with the above example, almost no / negative / positive exposure compensation, in this order, will be shot in quick succession, without any need for human interaction.
3.2 HDR Foto
If the somewhat lower resolution (on the iPhone 5, 2121*1591 equaling 3.3 Mpixels) HDR Foto ($0.99) isn't bad either, should you want to shoot bracketed shots with different regions set up prior to shooting to minimize camera movement between the two shots. You don't need to actually compute any HDR image – you can use the app only to save the two shots without creating an HDR version of them.
As with 645 (see the previous section), first, drag the two boxes on top of the brightest / darkest areas:
Then, tap the shutter icon. After the two shots have been shot, just tap the (annotated) save & continue icon below:
3.3 Pro HDR
Pro HDR ($1.99) also allows for, in addition to manual one, automatic image analyzing and bracketing. Its automatic analyzer is pretty slow on the iPhone 5. Nevertheless, if you don't want to drag the exposure indicators yourself, you may find it useful. The mode switch is right in the upper left corner of the main view. Here, I've set it to manual so that I can show you the two indicators (see green rectangle):
Remember to enable saving the originals in Settings:
3.4 True HDR
True HDR (AppStore link; $1.99) also allows for both manual area setup - and doing it automatically. You can select between the two modes right in the main menu (see the uppermost three menu items):
Remember to enable saving the original images in Settings (see annotation):
Finally, an in-app shot in manual mode:
3.5 HDR Camera Pro
HDR Camera Pro ($2.99), written by the developer of the famous, excellent CameraPro application on Symbian, supports both automatic and manual modes, it defaulting to the latter (you can switch between the two using the upper center switch in the main view). It's very fast but, as with HDR Foto, only saves reduced-resolution images (at 1536*2048).
As with most other apps, you must explicitly enable saving the original images to the Camera Roll:
Unfortunately, it, as of version 2.0, has some major problems (in addition to the restricted resolution):
- can't operate in landscape mode
- if you also make it generate a HDR version of the source images, it won't be correctly saved if you also enable high quality output.
I'm in contact with the developer; hopefully these problems will be fixed before long.
4. What about KitCam?
You may have noticed that, despite what I've stated above (“no explicit dialed-in exposure correction values in iOS, unlike in all other mobile operating systems”), the famous KitCam app, which has been recently removed from the AppStore (and will never return - see THIS), does have a -2...+2 EV slider, annotated in the following screenshot:
(Note that I've annotated the +/- icon used to display the slider block.)
How come it has this slider? Was I wrong, after all? Should you just ignore what I've stated so far?
The answer is, of course, nope. This slider sets the amplification applied to the already-shot image in post-processing. This means it's only different from just changing the brightness (probably selectively, to highlights / shadows only) in a desktop image viewer that it applies the amplification before saving to the target JPG.
This means the limited dynamic range of JPG files won't have a detrimental effect on the results. Nevertheless, they will still be sub-optimal as the limited dynamic range and shadow noise will make it impossible to fully emulate true exposure compensation. After all, when you you shoot an image, you can't afterwards fix for example highlight clipping or effectively eliminate noise. They're all hard-set by the actual sensor configuration (the ISO and the shutter speed duo) and cannot be eliminated.
Let's see some examples that this is indeed the case! I've selected a very contrasty scene: sun with both foliage and dark, homogenous colors in the darker areas. The latter is especially useful to quickly find how noisy a given shot is.
First, take a look at the following pair of shots. I've selected them based on the EV difference given by the variable parameters (ISO and shutter speed – remember that, as the iPhone doesn't have an ND filter or variable aperture, the aperture is always constant; with the iPhone 5, f/2.4).
Here's the image produced by KitCam, with default (center of the screen) focusing / metering and dialed-in +2 EV exp. comp. The shot has the variable parameters 1/137s shutter speed and 50 ISO.
Now, let's see how the stock Camera client shot the same scene:
Here, I've used the dark area for (united) focus / exposure metering, which resulted in the shot's being shot at 1/30s shutter speed (and, naturally, still at 50 ISO). Quickly doing the math, you'll see at once that the difference between the two shots is indeed around 2EV's; that is, the two shots are directly comparable, given that, during post processing, a +2EV exposure compensation has been applied to one of them.
Well, if you compare the shadow noise, you'll at once notice that the +2 EV compensation has indeed been added after taking the shot. The KitCam shot is way more noisy than the stock Camera shot.
Comparing the (for the most time, clipped) highlights (the Sun) delivers the opposite result. As the sensor was let collect photons for slightly more than four times more with the stock Camera shot than with the KitCam shot (1/30s vs. 1/137s), the bright areas of the image are way more clipped in the former's output than that of the latter. Incidentally, it was because of the same reason (4.5 times longer exposure, allowing the sensor to collect 4.5 times more photons arriving from the dark areas) that the image of the stock Camera app has way less shadow noise.
All in all, you don't want to use this slider to emulate exposure compensation. It'll deliver way inferior results – again, it's just applying post processing, unlike true exposure compensation. Use the (pretty awkward and complicated – again, Apple needs to be “thanked” for their pretty badly lagging behind the competition, camera-wise) exposure setting methods I've outlined above.