After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 720045 - Add black point compensation to Preferences/Color Management
Add black point compensation to Preferences/Color Management
Status: RESOLVED FIXED
Product: GIMP
Classification: Other
Component: General
git master
Other All
: Normal normal
: 2.10
Assigned To: GIMP Bugs
GIMP Bugs
Depends on:
Blocks:
 
 
Reported: 2013-12-07 23:58 UTC by Elle Stone
Modified: 2013-12-11 23:00 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Patch to add black point compensation to Preferences/Color Management (11.58 KB, patch)
2013-12-07 23:58 UTC, Elle Stone
none Details | Review

Description Elle Stone 2013-12-07 23:58:40 UTC
Created attachment 263729 [details] [review]
Patch to add black point compensation to Preferences/Color Management

The current Gimp Preferences/Color Management doesn't allow the user to choose whether or not to use black point compensation for the display monitor or for proofing. Instead:

* If the user chooses the relative colorimetric intent, they automatically get black point compensation.

* If the user chooses perceptual intent, they automatically do not get black point compensation.

I made a patch (attached) that adds the user option to choose whether to use black point compensation for the display and also for soft proofing. Also I revised a few of the "on hover" tool-tips and modified a couple of the default settings.
Comment 1 Michael Natterer 2013-12-08 19:50:14 UTC
I don't exactly know why we need this but you clearly know better :)
Comment 2 Max Mustermann 2013-12-08 20:29:16 UTC
A bit about the theoretical background in plain words as I've read it (Elle, please correct me if I'm wrong):
The motivation for blackpoint compensation is that fine details (local contrast) can get lost when mapping from a larger color space to a smaller one (i.e. AdobeRGB -> CMYK), especially in the dark regions around the blackpoint. This might be wanted or not (usually it is not) - that's why the user should have the option to compensate the blackpoint or not.
Comment 3 Elle Stone 2013-12-08 21:27:49 UTC
Working spaces like sRGB have a zero black point. Devices like monitors and printers have higher than zero black points. Paper and ink can't reflect no light. LCD monitors can't emit zero light. 

So without black point compensation, when going from a working space to the monitor or to a printer, deep shadows are simply clipped to solid black. So the shadow detail is still in the working image, but not shown on the monitor, making the user think that the image is actually darker than it is. And if printed without black point compensation, the shadow detail would be lost altogether. 

The LCMS black point compensation algorithm is a straightforward linear remapping of all the image values, so white goes to (relative) white, solid black from the working space goes to a lighter shade equal to the device profile's black point, and everything in between is proportionally modified. So when you use black point compensation, you end up with slightly less global contrast in order to preserve shadow detail. 

If there isn't any shadow detail to preserve (maybe it's a high key image), then when soft proofing to a printer or other output device (maybe to a digital picture frame), you might choose to not use black point compensation in order to preserve the original image contrast.

So it's not really a matter of mapping from a larger to a smaller color space, but rather mapping between color spaces with different black points. For instance, you could have a small working space with a zero black point and a device that's described by a larger color space with a higher black point.
Comment 4 Michael Natterer 2013-12-09 01:27:47 UTC
Thanks, pushed to master with some cosmetic changes:

commit a4821914d355afc2f45a7491cc7746cd39ac6846
Author: Elle Stone <ellestone@ninedegreesbelow.com>
Date:   Sat Dec 7 13:42:11 2013 -0500

    Bug 720045 - Add black point compensation to Preferences/Color Management
    
    Make black point compensation configurable separately for both proof
    and display.

 app/dialogs/preferences-dialog.c | 24 +++++++++++++++++++++++-
 libgimpconfig/gimpcolorconfig.c  | 53 ++++++++++++++++++++++++++++++++++++++++++----------
 libgimpconfig/gimpcolorconfig.h  |  6 +++++-
 modules/display-filter-lcms.c    | 29 +++++++++++++++++-----------
 4 files changed, 89 insertions(+), 23 deletions(-)
Comment 5 Michael Natterer 2013-12-11 23:00:57 UTC
Btw, we should really have sections like comment 3 in the manual :)