Tuesday, October 20, 2009

Vignetting Correction Issues on the Leica M9 Part II

This is a follow-up to my previous post on vignetting corrections with the M9, here. In that post I said that I was working on a new version of CornerFix that would address the issues that I had identified. That new version is out now, as version, and can be downloaded from Sourceforge here.

To recap, the previous post showed images of the Tim Ashley's 18mm f/3.8 as corrected by the M9's in-camera correction firmware. The result was a red tint on one edge. I also mentioned that the then current version of CornerFix couldn't do much with the problem, because V1.2 of CornerFix couldn't deal with optical decentering.

However, V1.3.0.0 can. Here's the result, first correcting the 18mm f/3.8 for an original image for which coding was disabled (so no in-camera corrections):

18mm f/3.8 uncoded with CornerFix correction

And now if we use CornerFix to correct the nasty in-camera corrections that gave a red edge:

18mm f/3.8 coded as "Auto" with additional CornerFix correction

Both of those are (IMHO) pretty good - they show no visible signs of red edges anywhere. However, I do recommend that if you are going to use CornerFix, you shoot with lens detection disabled, aka with the lens uncoded. The reason is that if you have a camera/lens combination that shows the decentering issue (and every M9 image I've analyzed regardless of lens shows it) and use your lens coded, a interference pattern can form between the actual vignetting and the in-camera correction. Think about two circles, on top of each other, the same size, but with their centers slightly offset as shown below:

Interference between offset circles

Where the circles come together, you get e.g., over-correction, and where they are far apart, under-correction, in a complex two dimensional pattern. And that pattern is unfortunately nearly impossible to correct; there is no way to tell the difference between what should be there and what shouldn't. That may or may not occur in your case, but the easy way to avoid it is not to use in-camera corrections when you're planning to use CornerFix.


Alex A. Naanou said...


Here's an idea about what might be causing the asymmetry...

You did not consider that the color filter array on the sensor is in fact asymmetrical. So, shifting the angle of incidence, plus the shifted micro-lenses may well impact differently the differently filtered sensors in different sensor locations...

In addition, this could even contribute to color leakage from one photo-site to the adjacent, depending on sensor construction (this would be very easy to test). :)

Sandy said...


The CFA is indeed inherently asymmetrical, but only by one pixel, which I doubt could cause the problem.

Some form of asymmetry in the microlenses I think would be possible, but it would have to be a LOT of asymmetry(!)


Alex A. Naanou said...

The question is not in by how much the CFA is asymmetrical, but rather, in how the micro-lenses are shifted relative to the photo-sites, by how much, their spacing and isolation.

One way to test for leakage is to photograph a clean single channel color, let's say red, and look at the relative response in other colors near the edges of the sensor compared to the clean center. If I'm right we should see asymmetrical leakage to other channels, mostly related to CFA geometry.

Can't test this myself as I not yet have an M9...

I can't think of a reliable way to test for asymmetry effects of the CFA other than the above...

Sandy said...


There could be a sensor microlens misalignment issue, I agree. I'm not however sure that the impact will be that simple, and practically, it will be difficult to measure. The thing is, (A) the microlenses are above the CFA array, so you won't really see e.g., red light being bent into a blue pixel - its white light that gets bent. Also, (B) the responses of the RGB pixels in a CFA array overlap considerably anyway, so even with "pure red light", you'd get a response from the other pixels anyway.

BTW, I don't have a M9 either(!)