Comparing Interpolators - 29 June

I've been using OSS for image processing for a few years now, and every so often I like to review the range of alternatives. Way, way back when I first started using Linux in 2014, I was so concerned with producing digital images with the highest possible quality I learned how to run autotools to compile the edge version of Imagemagick. This was a wonderful thing to learn, and a real feeling of accomplishment when the high-bit-depth options I wanted paid off.

These days, we don't have to work nearly so hard to get high-quality high-depth image processing with both Krita and the development version of Gimp offering at least 16-bit ints per channel. Both also include relatively sophisticated interpolation algorithms for scaling, one of the most important aspects of manipulating digital images. For this post, I'm presenting three 8x crops to compare, so the reader can come to their own conclusions.

My own preferences are toward the blurrier side of the tradeoff matrix, where using "Nohalo" or "Lohalo" depends on the source image. These two filters ought to trade names, but I don't think that will happen based on previous Gimp mailing-list chatter. The Gimp "Cubic" filter is almost completely useless without further processing, but its suppression of color artifacts and aliasing is very high.

I tried to arrange the samples in order from crunchiest to blurriest, but this is really difficult to do; the Lanczos filter is less aliasing than Krita Bicubic (iris of the eye is rounder), but produces very noticable haloes (very obvious in the text sample). There are also other aspects to consider, like how the Krita filters are more biased toward black (producing a sharper-looking image in typical use), which also subtly modifies the saturation and hue of high chroma colors. At any rate, between the four best options, most photographers wouldn't be going wrong for most imaging demands. If you have the patience, try out the different options and stick with what you think works!

Color sample without interpolation.
Krita's Lanczos 3-lobe sampler.
Krita's Bicubic sampler.
Gimp's "Nohalo" sampler.
Gimp's "Lohalo" sampler.
Gimp's "Cubic" sampler.
Eyes sample without interpolation.
Krita's Lanczos 3-lobe sampler.
Krita's Bicubic sampler.
Gimp's "Nohalo" sampler.
Gimp's "Lohalo" sampler.
Gimp's "Cubic" sampler.
Text sample without interpolation.
Krita's Lanczos 3-lobe sampler.
Krita's Bicubic sampler.
Gimp's "Nohalo" sampler.
Gimp's "Lohalo" sampler.
Gimp's "Cubic" sampler.