The GIMP 2.9 "Image/Precision" menu has too many options. GIMP users are going to find all these options confusing.

Internally babl/GEGL/GIMP operates at 32-bit floating point, regardless of the image precision the user happens to choose.

The reason GIMP allows the user to choose the precision isn't to dictate the precision of the internal operations, but rather only to set the precision of the results of editing operations as stored in memory and in the XCF layer stack. This is for the benefit of users with lower-RAM systems (and this is a very nice feature to have, given test results shown below).

The 64f precision options apparently are mostly for the benefit of scientists who might want to import and export 64-bit FITS files. These options should be removed from the Image/Precision menu and moved to the import and export dialogs.

The 64f import dialog should make it clear that the original 64-bit precision image will be reduced to 32-bit floating point precision upon import. Likewise the 64f export dialog should make it clear that the exported image really only has 32-bit floating point precision.

GIMP's 64-bit floating point precision is only of use when importing and exporting from/to a file format (like FITS) that supports 64-bit floating point precision. GIMP can't actually process the image using 64-bit precision. So allowing the user to choose 64-bit precision while editing is misleading and also a waste of the user's sytem resources.

RAM and disk space comparison for GIMP's various Image/Precision options:

I opened a 32-bit floating point XCF layer stack. The image itself was 2820 x 2116 pixels (small compared to the size of images saved by today's cameras). The XCF file had 15 layers and 8 masks. I saved the XCF file at various bit depths, and checked the size on disk of the resulting file:

 8i  68 MB
16i 286 MB
32i 753 MB

16f 297 MB
32f 754 MB
64f 844 MB (this seems too small, but I checked twice)

Then I did a series of 9 editing operations on each XCF file. I used htop to keep track of RAM usage, each time closing the XCF file and also closing GIMP, before restarting GIMP and opening the next XCF file.

Here's how much system RAM was used just to open the XCF files:

 8i 0.5 GB
16i 1.3 GB
16f 1.3 GB
32f 2.4 GB
32i 2.4 GB
64f 4.7 GB

Here's how much system RAM was used for each XCF file at step 9:

 8i  1.8 GB
16i  3.3 GB
16f  3.4 GB
32f  6.2 GB
32i  6.4 GB
64f 12.0 GB

During editing, the 64f XCF file maxed out at 12 GB somewhere between editing operations 6 and 7, so maybe after that it was swapping to a tmp RAM "disk" that I set up (the actual physical disk swap space was never used).

GIMP's 64f "Image/Precision" options use a whole lot of RAM during processing, for absolutely *zero* precision gain in the results, as all GIMP internal processing is done at 32f. Having these precisions available in the "Image/Precision" menu is confusing and misleading.

Even if GIMP actually could operate internally at 64-bit precision, for photographic editing, digital painting, and VFX editing purposes (or so I've been told, I'm not a VFX person), 32-bit floating point is more than enough.


Reply via email to