iPhone 11 UWA Camera : Disturbing Discoveries

After just spending a day’s worth with the iPhone 11 Pro ultra wide angle camera, I’ve discovered a few things everyone should be aware of. I’m rather tired of Apple’s half-assed approach to everything photography related. This is not a whining of a 20-something reviewer. This is from someone who wasted months of his life to transform Apple’s incomplete, amateurish APIs to something suitable for professional photo apps, and wrote exposure calculation, image encoding/decoding/display and color space transformation code along the way.

To anyone reading this at Apple: I’m open to provide you with consultancy to help get your act together and make a truly pro-level camera device / API.

No RAW

Take a look on any JPG file from the ultra wide camera. You’ll see heavy smearing and exaggerated chromatic aberration as you approach the corners. These are telltale signs of distortion correction going on (I have quite a lot of experience in this since I wrote the world’s first wide angle converter real-time distortion correction code on iOS for the Mark II Artist’s Viewfinder six years ago).

Which means that the laws of physics still apply, and supports my suspicion that the ultra wide angle camera in fact has a pretty awful tiny lens, with huge amount of distortion. And Apple doesn’t want to advertise this, so rather turned RAW capture completely off for this camera. Why? Leica, Nikon, Panasonic all do software distortion correction for expensive lenses, and the photographer at least have the freedom to correct it or leave the distortion in place for artistic purposes. (That I would never buy a 5 grand lens that require distortion correction is a tale for another day.)

The professional approach would be to provide RAW capture, and include distortion correction data inside the DNG so that RAW converters could pick it up (with the WarpRectilinear opcode).

2-3 Stop Vignetting

iPhone 11 Pro Max ultra wide camera vignetting

Now seriously. When one does distortion correction, why vignetting correction isn’t in place is beyond me. The above shot is just a wall shot under daylight, and not something suitable for exact measurements. I might do it later on, but currently this is enough to illustrate how much vignetting the image suffers from.

Again, the professional approach would be to correct this in JPG images and live video stream (or even better, provide an API to be able to control the correction), and include the necessary correction data inside the DNG files (FixVignetteRadial opcode).

No Focusing

This camera has a fixed focus lens. Read: no focusing of any kind. With such an ultra wide lens, the lack of focusing ability is mostly disguised by huge depth of field. But don’t expect to use it for ultra wide closeups.

Conclusion

Anyone touting this camera as a professional grade, DSLR (or even medium format) contender must live in a reality distortion field, powered by a huge marketing budget. Over-processed Apple JPGs suck. They always sucked. Not having proper RAW capture on the ultra wide camera is a huge drawback of the iPhone 11 series, hindering their usability for professional image capture.

  ☕ ☕ ☕

Did you enjoy this post? Consider buying me a coffee if so.

One Last Argument Against JPG

I’ve been teaching the benefits of shooting RAW (instead of JPG) for more than a decade. About a year ago, while developing the new display engine for Technical Camera and Kuuvik Capture 4, I did discover another strong reason why you should stop shooting JPG if you care about image quality.

Let me review the usual arguments first.

Limited, 8-bit depth. Digital cameras record at 12 to 16 bits per pixel. Even old ones and your iPhone are 12 bit devices, high-end digital backs are 16. Contemporary DSLR and mirrorless offerings record at 14 bits per pixel. Converting these high bit depth images back to 8 will have serious impact on dynamic range and color range. This is because the 256 possible steps in a JPG aren’t enough to describe a huge range of light and color. And then banding rears up its ugly head. For example, colorwise you are limited to the Adobe RGB color space, while your camera is capable of recording much more.

Fixed white balance. Once a JPG is created, white balance is fixed for good, and cannot be modified later on. You can tweak a little with hard Photoshop work, but it’s quite disastrous.

Lossy compression. The JPG format was designed to compress the hell out of image data. Consequently, you lose some data even on the highest compression quality setting. And digital cameras tend not to use the highest compression quality.

And here’s the last argument:

4:2:2 or 4:2:0 chroma subsampling. If you aren’t familiar with chroma subsampling, read the Wikipedia article first. All Canon and Nikon cameras I’ve seen files from use 4:2:2 subsampling, which means that the color information is halved horizontally. iPhone JPGs are even worse with 4:2:0 subsampling, that is, 3/4 of the color information is missing (you won’t notice it, because the heavy-handed over-processing in these files make them look like crap at actual pixels level anyway). As a comparison, the JPG Quarter HQ image quality setting in Technical Camera uses 4:4:4 chroma subsampling that preserves full color information at every pixel. These HQ files also use higher compression quality setting and are usually quite large.

As you see, JPG files are handicapped at every imaginable level. That’s fine for web display, but make this format totally unsuitable for image capture. Storage is dirt cheap these days, for example a high quality 32GB SanDisk Extreme Pro SD card sells for less than $15, and can store a thousand 26 megapixel images in my EOS RP. In my opinion even lossy RAW compression (such as C-RAW in new Canons) has zero significance in terms of storage. Go with the highest quality, lossless RAW. There will come a time when you’ll be grateful that you did.

Kuuvik Capture 4 : Image Display Enhancements

Kuuvik Capture 4.0 is now available on the Mac App Store. This is the first release in the version 4 series, and brings the first batch of enhancements to the app. The first batch, because instead of waiting for every single feature we planned for version 4 to be complete (and delaying the release significantly), we decided make new features available as they are ready, so you can enjoy their benefits as soon as possible.

Let’s begin discussing the new stuff with the display engine. My FastPath imaging engine, that provides highly optimized image decoding and display, debuted in Technical Camera. Later on the Mark II Artist’s Viewfinder received it. And now Kuuvik Capture joins the club. It provides up to 2x faster JPG display (including the JPG previews embedded into RAW files), plus massive memory savings: I had measured around 100 megabytes less GPU memory usage with 5DS R files, for example.

But the story doesn’t end here. In contrast to this lightning fast preview display, it seemed that RAW loading and decoding (that’s a prerequisite for the RAW histogram and RAW-based clipping warnings) takes forever. And we wanted that users could begin working on the images the instant they appear on the screen. So we made RAW data loading asynchronous, taking place in the background. There’s no more waiting for the “Loading” progress bar.

A circular progress indicator on the RAW histogram’s panel lets you know how the loading goes forward. With the exception of a few operations (such as image deletion and purging) you are allowed to do anything during RAW loading. If you move to another image or capture a new one, loading is automatically cancelled, so you don’t have to waste your time on waiting for something that will be instantly thrown away.

And there’s even more. RAW loading consumes a lot of energy, and there are situations when conserving battery is of paramount importance. Thus we added a new preference to be able to turn off automatic loading completely.

The default is to automatically load RAW data, so that both the RAW histogram and clipping warnings could work as expected. Well, there’s a little difference from previous versions: with the Prefer RAW clipping warning option you’ll see the processed warning layers until the ones generated from RAW data arrive. In previous versions these processed clipping warning layers were not displayed at all.

Should you need the histogram or the warning layers later on, you always have the option to load the RAW data manually. Just click the placeholder on the RAW histogram, or choose the Load RAW data command from the menu, or press Cmd+L.

Power efficiency and speed were always cornerstone features of Kuuvik Capture. This new release brings both to a completely new level.

The last on the list of image display enhancements is support for images in color spaces other than sRGB and Adobe RGB. While images produced by Canon cameras are always in one of these two, images from other sources can be in others as well. For example JPG files produced by Technical Camera can be in the Display P3 color space. ProPhoto RGB and Display P3 are supported on macOS 10.11.2 or later, and arbitrary profiles on macOS 10.12 or later.

Kuuvik Capture 4.0 is available on the Mac App Store. It is a free update for users who purchased the app earlier from there. You can see the complete list of new features and changes in the release notes.

Introducing Technical Camera

I’m pleased to introduce my newest app, called Technical Camera. It is a still camera app for the conscious image maker. Why another camera app? Well, the main image from the app’s site may contain some clues.

Motivation

The story of Technical Camera began in the fall of 2015 (in a post I briefly mentioned that I’m working on a photo app). In the following years I did experiment a lot with different apps and photo taking features of iOS, and to say that I was frustrated is an understatement.

While I saw that the phones themselves has potential, each and every app fell short in one or more ways. Let me list the most problematic points:

1) Cluttered screens. The image (both the live view and the ones during playback) on a camera is a sacred area. Putting buttons, icons, sliders and other distracting ornaments on the image itself is a cardinal sin in my book. Especially since the iPhone display is so large with wast empty spaces around the camera’s 4:3 aspect ratio image.

2) Photos stores everything in bulk, you have to manually move every image into its album (in a rather twisted and backward way). Organizing your stuff is a royal pain this way.

3) Nobody needs 12 megapixel images when taking a picture of an electricity or gas meter. Large images when a low resolution would be sufficient are just a waste of time and network bandwidth (that is, money) and en masse has unnecessary environmental impact.

4) Apps made by developers who aren’t working photographers. This results in all kind of clumsy to downright misleading solutions and user interfaces.

These aren’t just from a photographer’s perspective. My better half Agnes complained about 2) and 3) for a very long time, and her most frequent use case is visual note-taking.

Technical Camera solves all these problems and also borrows technologies from our other professional apps (like real-time distortion correction for wide converter lenses from the Mark II Artist’s Viewfinder), to make something rather unique.

I’m going to explain how these things are accomplished and how to utilize Technical Camera to its maximum potential in posts coming. So it’s worth keeping an eye on my blog if you are looking for an app that transforms the mobile photography experience.

What it isn’t

I feel it important to discuss upfront what’s not included. This is a still photography app. No videos. No selfies. No digital processing in-camera, like automatically stitched panoramas, or lighting simulation. No AI. These are left out because we either have opposing views, or because the main focus of the app is making great still images.

Availability

Technical Camera is available for pre-oreder now on the App Store, at a 30% discounted price. It will be released on June 12.

Kuuvik Capture 3.3 : Clipping Warnings

Version 3.3 is an important milestone in Kuuvik Capture‘s history. It replaces the Apple-provided display processing frameworks – which continuously entertained me with serious bugs over the years – with my own code. And as it usually happens when I put my stuff in place of some dependency, it’s significantly faster, more reliable and opens up new possibilities. This post is about one of those new possibilities.

The app had RAW-based clipping warnings from the very beginning. Multi-level warnings that get stronger as more channels are clipped were introduced in version 2.4. And now clipping warnings based on processed (JPEG) data join Kuuvik Capture’s exposure evaluation toolset.

RAW and Processed clipping warning layers

Processed clipping warnings are also multi-level. And they are available during live view and movie recording. Just keep in mind that exposure simulation should be enabled on the camera for the best results (otherwise live view will not reflect your current exposure).

RAW and processed layers can be shown separately or combined. When used together, the processed layer usually triggers first, just like I showed that in my post about the Dual Histogram. To be able to distinguish the two types when used together, you can choose from different color themes for the processed warning layers (RAW layers are always red/blue).

Menu items controlling warning layers.

There are a bunch of items added to the View menu, as well as to the image’s right-click context menu and to the histogram’s context menu. You can toggle each of the four layers separately, or turn the whole stack on and off with the Clipping Warnings command (or by pressing the W key) when the warnings get in the way of evaluating composition. A new toolbar button is also added for the complete layer stack toggle.

Prefer RAW disables processed layers when RAW data is available for an image. My preferred way of working is to turn Prefer RAW on and set processed warnings to the red/blue theme. This way I always have red/blue warnings: processed ones during live view and for JPG files, and RAW ones for RAW files.

The new display engine also allowed me to reduce aliasing in the RAW shadow clipping warning layer – no more eye straining checkerboard patterns.

Kuuvik Capture 3.3 is available now on the Mac App Store. It is a free update for users who purchased the app from there. You can see the complete list of new features and changes in the release notes.

Kuuvik Capture 3.2 : The Dual Histogram

The very first Kuuvik Capture release introduced RAW histograms in an attempt to provide a tool for judging exposure more precisely than what regular histograms are capable of. I even wrote an article on the merits of having a RAW histogram. The conclusion of that article was that despite you have a RAW histogram, white balancing could clip channels in the converted image even if everything was fine with the RAW; so you need to see both the RAW and the processed histograms (preferably in your RAW converter) for the final decision on your exposure.

While my former article revolved around the white balance issue, other image processing parameters, like picture style and color space, also have heavy influence on histogram precision and usability. Making to see both histogram types a fundamental need. Not to mention that launching a RAW converter is not always convenient to do.

So version 3.2 sports a new Dual Histogram tool to show Kuuvik Capture’s RAW histogram along the usual one generated from processed data.

For images, the processed part is based on the JPG preview that every RAW image contains (this is what Kuuvik Capture displays, and this is the source of the histogram shown on the camera’s LCD). This represents how the image was processed by the camera. Your RAW converter will almost certainly convert it in a different way, so the final word on exposure still belongs to the converter. But the camera’s interpretation gives a solid starting point.

The processed histogram also indicates the image’s color space. Different color spaces have different clipping points – more on this later.

You can clearly see on the example how white balancing influenced things. You’d be in trouble having made a decision solely based on the RAW histogram in this case – the blue channel would be almost completely clipped. The example belongs to the original of the following photo (that is, before contrast stretching and other adjustments).

Ice Abstract

For live view and movie recording the camera always serves video frames in sRGB – even if you set your camera to Adobe RGB. But why is that important? Well, it’s time to talk about the effect of color space choice on histograms.

Color spaces vs. histograms

I made two photos of a regular ColorChecker chart. One with setting the camera to sRGB and another with setting it to Adobe RGB. Lighting and exposure were the same.

As you can see, there’s absolutely no clipping in the RAW data. And there’s no clipping when converted to Adobe RGB. But in sRGB both highlights and shadows are clipped! So live view (which is always in sRGB) may show some clipping while Adobe RGB not. And even a histogram from an Adobe RGB conversion might show clipping while there’s absolutely no clipping in the image when converted to ProPhoto RGB in Capture One.

I’d recommend to treat these processed histogram clipping warnings as different levels. The sRGB warning in live view goes off first, this should ring a bell in your head to watch more closely after taking the image, as there may be a problem. After taking a picture, if Adobe RGB shows clipping, then it’s time to either check it in your RAW converter or back off a little bit.

But RAW histogram clipping warnings are always hard facts: indicating unrecoverable data loss.

The above example explains why I recommend to set your camera to Adobe RGB: to prevent premature clipping in histograms displayed on the camera’s LCD.

A few words on JPG support

JPG files slowly become a first-class citizen in Kuuvik Capture. The JPG processing engine in version 3.2 is up to 5x faster than previous releases. This speedup is what allows efficient histogram generation and made Dual Histograms possible. JPG histogram display was also a requirement for a JPG-only workflow, which was high on our feature request list. And now it’s fully supported as you’ll see in my upcoming post.

Kuuvik Capture 3.2 is available on the Mac App Store. It is a free update for existing Kuuvik Capture 2.x and 3.x users.