Written November 2015. Updated August 2017. Please note that much of the information on this page is not valid for the recently released GIMP 2.9.6. Hopefully eventually I'll find the time to update this tutorial, but it won't be any time soon.

Part 1: New high bit depth precision options, New color management options, New algorithms

Introduction: high bit depth GIMP 2.9/2.10 Purpose of this guide This user's guide introduces you to some of high bit depth GIMP's new editing capabilities that are made possible by GEGL's high bit depth processing. The guide also points out a few "gotchas" that you should be aware of. Please keep in mind that GIMP 2.9 really is a development branch, so many things don't yet work exactly like they will work when GIMP 2.10 is released. Useful links: the official GIMP website, builds for Windows and MAC, building GIMP on Linux GIMP website

GIMP IRC and mailing list information

Partha's GIMP 2.9 builds for Windows and MAC, including a portable Windows build of my patched GIMP plus information on compiling GIMP on Windows.

Precompiled versions of high bit depth GIMP are more or less widely available for the various Linux operating systems. If you run Linux and you'd like to compile high bit depth GIMP yourself, Building GIMP for artists and photographers has step-by-step instructions. High bit depth GIMP is a work in progress. The primary goal for the GIMP 2.10 release is full "Geglification" of the GIMP code base. Editing in sRGB vs editing in other color spaces For best results when using GIMP 2.9/2.10, only edit sRGB images. GIMP 2.8 has hard-coded sRGB parameters that make many editing operations produce wrong results for images that are in RGB working spaces other than sRGB. GIMP 2.9 does have — and almost certainly GIMP 2.10 will have — these same hard-coded sRGB parameters. Full support for editing images in other RGB working spaces likely won't happen at least until GIMP 3.0. However, the next big change for GIMP will be the change-over from GTK+2 to GTK+3 (or GTK+4?), which is a pretty critical step as GTK+2 is on the verge of being retired. GIMP development is a volunteer effort, porting GIMP over to GEGL has required an enormous amount of work, and porting from GTK+2 to GTK+3 isn't exactly a trivial task. More GIMP developers would help a lot, so if you have any coding skills, please consider volunteering. If you really do want to edit in color spaces other than sRGB, my patched version of GIMP 2.9 ("GIMP-CCE") allows you to edit in any well-behaved RGB working space. However, please be aware that default GIMP has quite a lot of functionality that I've removed from GIMP-CCE.

New high bit depth precision options Menu for choosing the image precision As shown by the screenshot below, high bit depth GIMP offers five different image precisions: Three integer precisions: 8-bit integer, 16-bit integer, and 32-bit integer.

Two floating point precisions: 16-bit floating point and 32-bit floating point. Menu for choosing the image precision. Which precision should you choose for editing? If you have a fast computer with a lot of RAM, I recommend that you always promote your images to 32-bit floating point before you begin editing. Here's why: Regardless of which precision you choose, all babl/GEGL/GIMP internal processing is done at 32-bit floating point. Read that sentence three times. There seems to be a small speed penalty for not using 32-bit floating point precision. The Precision menu options dictate how much memory is used to store in RAM the results of internal calculations: Choosing 32-bit floating point precision allows you to take full advantage of GEGL's 32-bit floating point processing.

If you are working on a lower-RAM machine, performance will benefit from using 16-bit floating point or integer precision, but of course the price is a loss in precision as new editing operations use the results of previous edits as stored in memory.

On very low RAM systems, performance will benefit even more from using 8-bit integer precision. But if you use 8-bit integer precsion, you are throwing away most of the advantages of working with a high bit depth image editor.

64-bit precision is made available mostly to accomodate importing and exporting very high bit precision images for scientific editing. You don't gain any computational precision from using 64-bit precision for actual editing. If you choose 64-bit precision for editing, all you are really doing is wasting system RAM resources. As discussed in Part 2 of this article, "Using high bit depth GIMP's floating point precision for unclamped editing" (and depending on your editing style and goals), instead of 32-bit floating point precision, sometimes you might prefer using 16-bit or 32-bit integer precision. But making full use of all of high bit depth GIMP's new editing capabilities does require using floating point precision. Sometimes people assume that floating point is "more precise" than integer, but this isn't actually true: At any given bit-depth, integer precision is more precise than floating point precision, but uses about the same amount of RAM: 16-bit integer precision is more precise than 16-bit floating point precision, and the two precisions use about the same amount of RAM.

32-bit integer is more precise than 32-bit floating point precision, and the two precisions use about the same amount of RAM. Even though in theory 32-bit integer is more precise than 32-bit floating point, GEGL/GIMP's internal processing always uses 32-bit floating point precision. So for GIMP, even when you choose 32-bit integer precision, the actual precision of the editing operations is still 32-bit floating point. Using the image precision options when exporting an image to disk The precision menu options have another extremely important use beside dictating the precision with which the results of editing operations are held in RAM. When you export the image to disk, the precision options allow you to change the bit depth of the exported image. For example, some image editors can't read floating point tiffs. So if you want to export an image as a tiff file that will be opened in another image editor that can only read 8-bit and 16-bit integer tiffs, and your GIMP XCF layer stack is currently using 32-bit floting point precision, you might want to change the XCF layer stack precision to 16-bit integer before exporting the tiff. After exporting the image, don't forget to hit "UNDO" ("Edit/Undo . . . ", or else just use the CNTL-Z keyboard shortcut) to get back to 32-bit floating point precision (or whatever other precision you were using).

New color management options High bit depth GIMP automatically detects camera DCF information For reasons only the camera manufacturers know, instead of embedding a proper ICC profile in camera-saved jpegs, usually they embed "DCF" and "maker note" information. Whenever a camera manufacturer offers the option to embed a color space that isn't officially supported by the DCF/Exif standards, each manufacturer feels free to improvise with new tags. High bit depth GIMP does detect and assign the correct color space for most camera-saved jpegs. Like all editing software, GIMP has to play "catch up" with new tags for new color spaces offered by new camera models. Tell your camera manufacturer that you want proper ICC profiles embedded in your camera-saved jpegs. Black point compensation Unlike GIMP 2.8, GIMP 2.9 does offer black point compensation as an explicit option, and it's enabled by default. GIMP 2.9 offers black point compensation as an explicit option. As an aside, GIMP 2.8 actually did offer black point compensation, but in a very round-about way: In GIMP 2.8, if you used the default "Perceptual intent" for the Display rendering intent, then black point compensation was disabled. And if you chose "Relative colorimetric" for the Display rendering intent, then black point compensation was enabled. Even though black point compensation is checked by default in high bit depth GIMP, whether you should use black point compensation partly depends on the color management settings provided by the other imaging software that you routinely use. For example, Firefox doesn't provide for black point compensation. So if one of your goals is to make sure that images look the same as displayed in various softwares, you need to make sure all the relevant color management settings match. What is black point compensation? LCD monitors can't display "zero light". There's always some minimum amount of light coming from the screen. Fill your screen with a solid black image, turn out all the lights and close the doors and curtains, and you'll see what I mean. Black point compensation compensates for the fact that RGB working spaces like sRGB allow you to produce colors (for example solid black, R=G=B=0) that are darker than your monitor can actually display. GIMP uses the LCMS2 black point compensation algorithm, which very sensibly scales the image tonality so that "solid black" in the image file maps to "darkest dark" in the monitor profile's color gamut. Non-zero and zero black points (images produced using icc_examin and ArgyllCMS). However, depending on your monitor profile, using or not using black point compensation might not make any difference at all. The only time black point compensation makes a difference is if the Monitor profile you choose in "Preferences/Color management" actually does have a "higher than zero" black point. Why some monitor profiles do and some don't have "higher than zero" black points is beyond the scope of this tutorial. Suffice it to say that a very accurate LCD monitor profile will always have a higher than zero black point. But sometimes, and especially for consumer-grade monitors, a very accurate monitor profile will make displayed images look worse than they will when using a less accurate monitor profile.