iPhone 6 Slow Motion as a Visual Debugging Tool

In iOS app development it is imperative to get animations right. No question about that. Otherwise your app will look ugly and out-of-place. But debugging animations and transitions can present some headaches.

For the non-developers reading this: debugging is the act of examining the app with special tools to pinpoint problems. It usually involves slowing down or even stopping the program execution to the point where the developer can check and see how things are going.

For my custom animations I usually slow down the speed to check that everything is happening according to the choreography I have in mind. But there are a few places where I simply can’t do it. Case in point: navigation controller pops.

IMG_0138As I implemented search in my Mark II Artist’s Viewfinder app, I had a feeling that’s something goes wrong when I select a camera in the search results list and the navigation controller moves back to the virtual camera configuration screen. Something seemed to be under the search bar during the animation, but 0.3 seconds was hardly enough to see it.

Like in love – all is fair in debugging. So I picked up an iPhone 6 from our test device pool and recorded my 6 Plus’ screen during the animation – in SLO-MO mode at 240fps.

You can see a frame from that video on the left – and no, nobody will laugh on you when you record movies in portrait orientation for debugging purposes…

It’s noisy crap because it was recorded during Thursday evening, with the only light source in the room besides the phone’s screen itself being my monitor.

The search screen goes away horizontally to the right, and the keyboard slides down. There are some motion artifacts in the direction of the movement, but you can clearly see part of a second copy of the search bar under the real one (top right corner). This was due to not taking the status bar’s height into account when positioning the snapshot used to persist the search display controller’s image during the animation.

Bottom line: the iPhone 6′s high speed recording capability is something I will utilize more often for debugging.

Monitor Calibration vs Profiling

The photographic industry uses these phrases somewhat interchangeably, but they are two completely different concepts. So in this post I’d like to shed some light on what is what. This is the first in a series of posts about the subject of monitor calibration.

Calibration is the process of bringing a device into a known working condition. In case of monitors it consists of setting the device’s black point, white point and tone reproduction curve (sometimes incorrectly called gamma). The exact values for the calibration parameters depend on the actual application, but let me explain what they really mean as well as what are their recommended values or value ranges.

The white point’s luminance controls how bright the display will be. One should choose a value according to the output’s intended viewing environment. 80 cd/m2 is widely used in the printing industry, but not each monitor is capable of reaching this luminance or working there without ill effects. Some recommend 100-120 cd/m2 for brighter working environments. Output is the king, so one should set the working environment to match the output’s needs. Note that values over 120 cd/m2 will cause eye fatigue pretty fast. Top end EIZO displays or even the displays in Retina MacBook Pros has no problem working at 80 cd/m2. Actually the MacBook’s display is a bit over 50% of its brightness range at 80 cd/m2.

The white point’s color temperature controls how blue or yellow whites will be. The printing standard is D50 (5003K), where all wavelengths are roughly equally present. This is a good match for natural white papers, but brighter papers, loaded with optical brighteners might ask for “bluer” white, with higher color temperature, such as D65 (6504K). Ideally one should measure the color temperature off the papers. Regular monitors, especially those with bluish LED backlight have a hard time reaching D50: the blue channel is lowered too much and posterization kicks is. But the Retina MacBook Pro for example can be used at D50.

The black point controls how blacks will be handled. Its luminance should be set to minimum to utilize the monitors black separation capability as much as possible. ColorEyes Display Pro – the monitor calibration software I use – has a unique setting controlling how blacks are rendered. Every output device, be it a display or a printer, plugs the shadows to some degree. Relative black rendering tells ColorEyes Display Pro to find the lowest value where there’s still detail in the blacks and create the profile to map 0/0/0 there. Actually most calibration/profiling apps do this. But this not just makes matching multiple monitors almost impossible, but also causes problems with print preparation, because printers also tend to plug deep shadow detail.

The other choice in ColorEyes Display Pro is absolute black, which maps 0/0/0 to the absolute black (you know, the proverbial black cat in an unlit coal mine, in the middle of a moonless night). It results in more precise profiles not to mention that it makes multi-monitor matching possible.

A fortunate coincidence that both my EIZO and my MacBook Pro’s Retina display start to plug shadows where my favorite Hahnemühle papers do (around 8/8/8, the EIZO being a bit better and the Retina a bit worse), so using absolute black rendering I can see on the monitor how the paper will behave.

Digital files represent image data quite differently than humans see. For a digital file (and also sensors) the brightest stop contains half of the numeric values usable at a given bit depth (e.g. 128 for a 8-bit file, 32768 for a 16-bit file). The second stop contains quarter of the values, and so on. This presents two problems: 1) darker parts of the image would get only a few different levels, resulting in posterization, 2) it would be quite difficult to work on these files due to the lack of “perceptual uniformity”, that is 128/128/128 is not twice as bright as 64/64/64. The role of the tone reproduction curve is to map file values into humanly “processable” values. Human perception follows a power-law; so using a single exponent can attain a surprisingly good approximation of the “ideal TRC” of human vision. This exponent is known as the gamma, and the mapping using the TRC is called gamma correction.

A gamma value of 2.2 gives a pretty good approximation of the ideal TRC, but plugs the shadows. To compensate for this, the sRGB TRC, which uses a 2.4 exponent combined with a linear section in the deep shadows, was invented (this is used as the TRC of Lightroom’s internal Melissa RGB working space). You could safely forget about gamma 1.8, a relic from the ages when Apple computers and printers used to have an internal gamma greater than 1.0. Well, the simple gamma TRC itself is a relic from times when computers were slow and storing and working with a few kilobytes of curve data was infeasible.

Nowadays we have a markedly better solution, called the L* curve. This is the most precise approximation of the ideal TRC, and doesn’t present a problem for today’s (and even yesterday’s) machines. So I highly recommend to use the L* TRC. I moved to a completely L*-based workflow (including RGB and gray working spaces) five years ago, and never looked back. But this is another story.

Profiling is the process of measuring the device’s color reproduction capabilities and creating an ICC profile file. In case of monitors it simply measures and stores the red/green/blue primaries and the color temperature of white. Well, the profile might also contain calibration curves (my ages old post explains this Apple invention in detail – its about Windows, but you’ll find useful information in the “Issue” section even if you happen to use a Mac).

Calibration and profiling walk hand in hand. There’s no point in calibrating a monitor without profiling it, and vice versa, profiling without prior calibration is an exercise in futility. Why big name measurement device manufacturers market low-end devices that are incapable of doing proper calibration is beyond me. Avoid these at all costs.

There’s an important consequence: one can’t freely change the monitor’s brightness and/or contrast after calibration, as it would invalidate the calibration and the profile built on top of it.

And I’ll discuss how OS X can be made a cooperating partner in keeping these constant in the next installment.

Mark II Artist’s Viewfinder 4.0 Released

avf2iconApple approved the latest update of the Mark II Artist’s Viewfinder, and it’s now available on the App Store.

It contains all the new developments I already mentioned in my last post, as well as the usual camera database updates. Plus a handy nice addition: you can now close the Quick Control Screen by tapping outside it.

This is a free update for existing Mark II owners, and upgrades are now available for previous Viewfinder Basic, Pro and Cine edition customers.

For the complete list of new features and additions please check out the press release.

Escaping Forward

When the iPhone 6 and 6 Plus arrived this fall, we had to make a choice. A choice about how we are going to support these phones with the Mark II Artist’s Viewfinder. We had two paths in front of us. An easy one, where we just measure the new phones, add them to the app’s database, but leave the app built with the iOS 7 SDK not caring about how it looks like on the bigger screens – this is the path some of our competitors took. Or a harder one, with adding full support for the larger screens as well as first-class iOS 8 support. We are not fans of half-baked ugly solutions, so of course we took the harder path.

Well, this proved to be a rather challenging one… Due to the ill-fated launch of iOS 8 (and 8.0.1 and 8.0.2), we also decided to fully support iOS 7.1 along the new OS. To work with larger iPhone screens, Apple completely revamped screen layout for iOS 8. Working with the sometimes contradicting requirements of the two OS generations was a time consuming puzzle to solve. We had to employ some pretty neat techniques, such as self-modifying code, and do tons of trial and error testing. After a couple of weeks of hard work, finally we had modified our internal frameworks to work smoothly with both OS version. But then, another monster reared his ugly head.

Previously we relied on the iPhone simulation on iPads. It’s completely broken on iOS 8, however. From erratically rotating status bars to half of keyboards laid out in the middle of the screen. At this point, we had to revisit our previous decision. But we strongly think that the easy path is not a real option, and this left only one possible solution. Escaping forward, and adding first-class iPad support.

We had to evaluate iPad user interface alternatives and design in general, as well as modifications of our frameworks to cope with even larger screens (some groundwork needed for this was already done because of iPhone 6). We spent another couple of weeks on this, but actually we had plenty of time as we were waiting for our iPhone 6 and 6 Plus to be delivered (operating in Hungary has a major drawback – new iPhones were only available from the beginning of November, plus add a week or two for shipping).

The result of these exercises is something I still find a great achievement: design and code that works equally well regardless of the screen size. We have even added support for non-Retina displays on the iPad 2 and original iPad mini. What this means to you? A single, universal app that supports both iPhones and iPads for $25. Some of our competitors sell two different iPad and iPhone apps, and you have to shell out $60 in total for those.

Below is a screen shot showing the iPad screen. I’m biased, but the app is a sheer joy to use on my iPad mini 3.


You may notice two things on the screen shot. First, we have full wide converter support now on iPads. My favorite here is the Schneider iPro Super Wide with its easy-to use but stable clip. Second is that frame lines are somewhat thicker than on the iPhone version.

Actually we have a new setting in the menu to control frame line thickness. You can choose from thin, medium and thick line widths. Thin is the thinnest line possible on Retina displays (and the default, or what you had in previous versions). On non-Retina iPads that we support thickness defaults to medium (and is not changeable).

These new features will be available in version 4.0 shortly. It’s already submitted for review to the App Store, and will be released as soon as Apple approves the update. The update will be free for existing Mark II Artist’s Viewfinder owners. For users of older Viewfinder Basic/Pro/Cine apps we are providing upgrades through upgrade bundles.

Canon EOS 7D Mark II First Impressions

When I first picked up the 7D Mark II at this year’s Photokina show, it struck me how similar it feels to the 5D Mark III. I thought that if image quality is there, I would definitely buy one. Due to this similarity with the 5D Mark III, I instantly knew that ergonomics and handling will be great. The only haunting question was image quality, but lacking any useful reviews, I had to place my order without knowing anything about it. My primary goal was to certify the camera for my ShutterCount app – and actually using it for photographing birds came as second. Purchasing blindly wasn’t that big risk, because if it somehow turns out to be something I don’t like, I would be able to easily sell it given the high demand.

And as you may guess, I really like the 7D Mark II. But being a perfectionist, I don’t think everything is as glorious as marketing materials may suggest. Some of my observations may look strange, or don’t even important to you and your style of photography, but this is what I think of the camera.


As I mentioned, handling is virtually identical to the 5D Mark III. I can switch between them effortlessly. The 7D is a tad smaller, and is on the edge of being comfortable in my large hands. Buttons and dials are almost the same on the two cameras, with two notable differences.

First is the lever around the joystick. This can be assigned to a few different functions. In my setup, it is used to switch AF point selection modes. This is a huge time and frustration saver, as I’m still unable to switch them with the M-Fn button without concentrating on what I’m doing. The problem on the 5D Mark III is that I have to press the AF point selection button, then use the M-Fn to switch the selection mode. There’s no way to toggle between those modes with M-Fn directly. But on the 7D Mark II the lever can be programmed to switch between these modes directly. This is a huge addition to the already great Canon user interface.

The other difference is not so great. On the 7D Mark II only the outer edge of the rear dial rotates, while on the 5D Mark III the whole dial (well, except the SET button) rotates. I find it way easier to handle the 5D Mark III style dial.

The use of LP-E6N (and LP-E6) batteries is a big plus. I have a total of four of those, and their small size as well as the small charger makes life much easier than with those giant 1-series batteries and chargers.


While a well though out control layout is absolutely required to provide a good user experience, the software behind these controls is equally important. I generally like Canon’s modus operandi and menu structures, but find their cameras lacking in customization options. As a developer, I don’t get why they limit the set of assignable functions for some buttons…

The 7D Mark II is a combination of a step forward here and marketing bullshit there.

What is a step forward in my book is that you can program two buttons on the back of the camera to initiate AF. For example I generally use the AF-ON button in single point selection mode (or whatever seems appropriate at the moment), and the * button to initiate AF in automatic AF point selection mode with AI SERVO focusing. This is something I used extensively on the 1D Mark II a decade ago, and is a very welcome addition to the 7D Mark II. But here you can do even more: set AF customization parameters differently for the two buttons. This is a level of customization that I would expect in 2014. I wish that this feature will make its way to the 5D Mark III firmware in the future.

The other one is what seems to be designed by the marketing department. I’m talking about the intervalometer and the bulb timer. Nikons have built-in intervalometers for ages, and it’s great that Canon finally made a step in this direction, just the bad implementation renders it useless. You can’t use the bulb timer together with the intervalometer, and also can’t use mirror lock-up with the intervalometer. But I would only use the intervalometer in these modes… For example intervalometer and bulb timer together is required for executing astrophoto sequences. And I would love to use mirror lock-up and intervalometer together for taking all sort of exposure sequences. That is, the camera’s intervalometer implementation is totally unusable for me. It seems that I’ll have to use Kuuvik Capture‘s exposure sequencing features for the foreseeable future (well, as soon as Kuuvik Capture gets 7D Mark II support).

Image Quality

Let me begin with saying that I completely hate what the original 7D produces. Its images are soft, with a veil over the whole image. I had to massage 7D raws way too much to get results up to my standards. I have two other contemporary APS-C Canons, a 100D and a 650D, plus an older 50D. None of them is great in the image quality department. So I was very curious to see what the 7D Mark II can produce.

What delayed this first impressions post a few weeks is that I needed a version of Capture One 8 with 7D Mark II support. I downloaded Canon’s DPP, but I could cry from what I saw with that. Lifeless, flat, soft images. Even with 5D3 files. Lightroom was marginally better. Then Capture One 8.0.2 arrived and the smile returned to my face.

As a side note, if image quality is important to you, I would strongly recommend to check out Capture One.

I made a little test. Mounted my Sigma 50/1.4 DG HSM Art lens on both cameras, and shot an image at f/5 (to avoid diffraction effects on the 7D Mark II). I didn’t want to equalize angle of view and depth of field between the images, just pixel peep a bit. You can see crops of these below. Images are straight out of Capture One, with no tweaking of any kind.


100% crop of the 5D Mark III image. Click the image for 100% view on non-retina displays.

Conditions were less than favorable. Flat light due to the thick cloud layer and strong backlighting above the road. Both cameras performed admirably. What surprised me are the rich and deep yellows from the 7D Mark II.


100% crop of the 7D Mark II image. Click the image for 100% view on non-retina displays.

No other surprises here though. The 20 megapixel resolution of the 7D Mark II is well above what top-of-the-line glass can resolve. You can see lots of empty magnification in the 7D image. The camera requires the very best glass available. I’m fortunate enough to carry some gems in my bag, but even with those lenses I would prefer a 15-16 megapixel resolution. Physics is physics, no matter how marketing folks want to bend reality. I would expect disappointing results with lower end glass.

This is a specialty camera. I plan to use it for birds and astrophotography. Both these genres need a wide open lens, so the very low diffraction limit (f/6.7 or so) is not an issue for me. It produces 1.6x more depth of field than the 5D Mark III at the same aperture, so I don’t have to waste light by stopping down for more DoF for birds up close. Not to mention that I can leave light-sapping teleconverters out of the equation most of the time.

Another thing I don’t understand is raving reviews about the camera’s high ISO capabilities. It’s a stop worse than the 5D Mark III, so ISO 1600 is the absolute maximum I would ever use. If I need ISO 3200, then the 5D3 comes out from the bag. The 7D2 shares the low ISO characteristics with other APS-C Canons, that is, ISO 200 has more dynamic range and bit depth than ISO 100. Speaking of dynamic range, it is a tad better on the 7D2 (11.2 stops @ ISO 200) than on the 5D3 (10.9 stops @ ISO 100). That is, you still have to watch your shadows.

In subjective evaluation, images from the 7D Mark II look markedly better to my eye than those from the 7D. They are also better than other APS-C Canons. But still, APS-C is APS-C, so A2 sized fine art prints are out of reach for this camera.

Closing Words

I haven’t touched AF performance and actual action use, because we are before the winter birding season. I’ll cover those as soon as I will have experience on the topic.

So, to summarize things: this is a very competent image making machine for action and bird photographers, where telephoto reach is at utmost importance. But forget it for landscapes, though. There are no surprises here that defy physics. The camera combines stunning handling with pretty usable image quality. While I would give an A to it as a camera (handling, AF and such), image quality only receives a B (because of the needlessly high resolution and its side effects).

Introducing Viewfinder Upgrades

upgrade-proAlong with the recent arrival of iOS 8, Apple brought an exciting new feature to the App Store: app bundles. As the name implies, this is about bundling apps together and offering them for less than the individual parts would cost. You can even complete a bundle, by paying the price difference between the bundle’s price and what you already spent on individual components of the bundle.

To put it another way, with bundle completion developers can reward their existing customers and offer them other products at a reduced price. If this sounds a way to provide upgrades to you, then you’re right.

This is exactly how we are offering upgrades for existing Viewfinder Basic, Pro and Cine edition owners to the Mark II Artist’s Viewfinder.

Upgrade prices are calculated dynamically from what you spent on the original Viewfinder. For example if you bought Viewfinder Pro for its highest $19.99 price, then you will only be charged for $10 to have the Mark II (compared to the regular $24.99 price). But if you spent $14.99 on Viewfinder Pro, then the upgrade will cost you $15.

At the moment upgrade bundles are live for Viewfinder Pro and Cine editions, and the Viewfinder Basic upgrade will follow these as soon as Apple approves it. There will also be an upgrade bundle for ALPA eFinder. Update: both the Viewfinder Basic and ALPA eFinder upgrades are now online.

As a side effect of upgrade bundles, we have re-introduced old Viewfinder editions to the App Store. The Basic edition now costs $4.99, while both the Pro and Cine editions sell for $9.99. These old editions do not and will not support new iOS devices, such as the iPhone 6 and 6 Plus, but present a good opportunity to get these useful tools at highly reduced prices.

And while we are at iPhone 6 and 6 Plus support: version 4.0 of the Mark II Artist’s Viewfinder, which will support these new phones as well as this year’s iPad models, is scheduled for release in December.

ShutterCount Supports the 7D Mark II

I received my Canon EOS 7D Mark II last Thursday. The very first thing I did with the camera was to add it to ShutterCount. Well, this was one of the reasons for buying it.

A first impressions post will also come in a couple of days weeks, but first things first.


Apple approved the update last night, so the new Mac version (1.3) is now available on the Mac App Store.

The Windows version (1.1) was released last Friday, and is available through the app’s auto-update feature (just click the Check for Updates… item in the Help menu).

The update is free for existing users. New customers can buy the app for the usual €2.69 / $2.99 / £1.99 price either on the Mac App Store for OS X, or through the app’s home page for Windows.

20-40% Photokina Discounts Now Live!


Please enjoy the following discounts from now on until the end of the fair:

  • 40% discount for the Mark II Artist’s Viewfinder. The app is now available on the App Store for this discounted price.
  • 20% discount for Kuuvik Capture. Please use the coupon code photokina14 at checkout.
  • If you have your Canon camera with you, bring it to our booth for a free shutter count reading! For the list of supported cameras please visit the ShutterCount web page.

For details about the exhibited products, directions to our stand and other information, please visit DIRE Studio’s Photokina page.