10. Iteration using Newton’s Method

I believe Iliah Borg invented this method. It is based on a standard computer numerical analysis technique called Newton’s Method, which was in part invented by Isaac Newton.

Borg describes this method as follows:

Suppose you are displaying some grey on your monitor, shoot it …and white-balance the shot. Now if, in a linear space [that’s close to the camera’s native space – the sRGB primaries and white points should be OK, as should those from Adobe (1998) RGB], you multiply the R and B by the resulting custom WB coefficients you should have a magentish square. Taking WB from that square should bring you into ballpark for UniWB.

If you’re not satisfied with the results, you will be closer and you can repeat the process.

Borg does his approach in the native color space of the monitor, except with a gamma of one. I have found that it takes several iterations for this technique to converge if you don’t start fairly close to the right magenta value. A tiny bit of it is because of the noise in the monitor photographing process, but most of it is because the green values in the raw image change even though the green value in the monitor color space is constant. This means that the green sensor in the camera is responding to some part of the spectrum of the red and/or blue monitor pixels. A communications engineer would call that inter-channel crosstalk, and it slows convergence, in essence forcing the algorithm to chase a moving target.

Calculating the values for each iteration in camera space instead of monitor space — the same technique that works so well in the one-step approach, makes convergence much faster. However, to perform this calculation requires generating and inverting the monitor-to-raw-value matrix, which is the bulk of the effort required for the one-step solution. It would be possible to eliminate the requirement for a calibrated monitor by performing iteration in camera space. If there is interest in this technique, I will provide a spreadsheet to do the calculations.

However, at this point, I think that people interested in an iterative approach, possibly because they don’t have access to Excel, should use Iliah Borg’s method just as he described it above.