New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 800008 link

Starred by 3 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 3
Type: Bug



Sign in to add a comment

Color management - Black tones brightened too much

Reported by enterthe...@gmail.com, Jan 8 2018

Issue description

UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36

Steps to reproduce the problem:
1. Install monitor profile.
2. View image when using the monitor profile.

What is the expected behavior?
The image should display correctly. Instead, the blacks are lifted too much.

What went wrong?
It looks as if black-point compensation ends up being applied twice, leading to images where pixels which should be black end up dark gray. This in turn makes JPEG compression artifacts more visible in the shadows.

I asked about black-point compensation in  issue #755747 
https://bugs.chromium.org/p/chromium/issues/detail?id=755747#c59

I attached an image which demonstrates the problem. On the right you see the image as viewed in Geeqie using the attached monitor profile and black-point compensation. On the left you see the same image viewed in Chrome after uploading to Facebook. Facebook re-compressed the image using high compression, which affected dark areas the most. As the browser is doing something wrong with the black point and boosting it more than it should, the dark areas suddenly become very visible. The image looks like garbage.

This is not a Facebook problem - the same boosting of blacks happens if I upload it to any other website.

Did this work before? N/A 

Chrome version: 63.0.3239.108  Channel: stable
OS Version: 
Flash Version:
 
B133HAN02.1 #1 2016-10-19 21-46 D6500 2.2 F-S XYZLUT+MTX.icc
788 KB Download
screenshot_20180108_193545.png
3.0 MB View Download
Reproduced in chromium-63.0.3239.84 and google-chrome-63.0.3239.108
Attached test image. All rights reserved, use it for testing only.
2017-12-22 henrik renberg 07.zip
969 KB Download
Components: Internals>GPU
Cc: scroggo@chromium.org hubbe@chromium.org ccameron@chromium.org
Labels: Needs-Feedback
If I'm reading this right, your comparison is a before image in Geeqie and then an after image which has been compressed more in Chrome? Can you save a comparison of the after image in Geeqie vs Chrome so we can see what is going on better (and remove the Needs-Feedback label).

Comment 5 by hubbe@chromium.org, Feb 20 2018

When you "install monitor profile", how do you actually do that? (what program, what flags)

I wonder if the ICC profile gets used to both calibrate and profile the screen, which could cause adjustments to be applied twice.

Comment 6 by hubbe@chromium.org, Feb 20 2018

Also, what ICC profile is the image using?

> When you "install monitor profile", how do you actually do that?

When writing the bug report I used Oyranos. I have since deleted Oyranos and reverted to either using argyll-dispwin manually or through DisplayCAL.

> I wonder if the ICC profile gets used to both calibrate and profile the screen, which could cause adjustments to be applied twice.

That doesn't make much sense. The ICC profile is the result of profiling a calibrated screen. It optionally contains calibration curves which, if used, must be loaded into the video card gamma lookup table.

> Also, what ICC profile is the image using?

RT_sRGB (higher precision sRGB equivalent).

---

Chrom(e/ium) relies on a color management service such as Oyranos to get its color management parameters instead of simply exposing the following options to the user:
- Monitor profile (ICC file)
- Rendering intent
- Black point compensation

Color management services are notorious for being unreliable. Oyranos was the problem here - I installed it to test an unrelated issue, and it cause this bug.

I have since removed all traces of Oyranos, loaded the calibration curves into the VCGT and pointed the _ICC_PROFILE X11 atom to my monitor profile (manually using ArgyllCMS or through DisplayCAL), and now the bug symptoms are gone.

That's not to say that this issue can be closed, because the problem could still be there, I just can no longer reproduce it.

Chrom(e/ium) should let the user manually configure the three things I listed above.
Project Member

Comment 8 by sheriffbot@chromium.org, Feb 21 2018

Cc: kylec...@chromium.org
Labels: -Needs-Feedback
Thank you for providing more feedback. Adding the requester to the cc list.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Comment 9 by piman@chromium.org, Feb 26 2018

Owner: hubbe@chromium.org
Status: Assigned (was: Unconfirmed)
Reassigning to hubbe to comment on suggestions in #7, and/or close. I don't think we have plans to expose micro-management of the display profile in Chrome.
This is color management, not micro management. If a project has code in place to support color management, which Chromium apparently does, it would be bizarre and unfortunate if the project stopped short of the finish line, unless the project was operating under the delusion that color management services are available and reliable. Ubuntu 18.04 LTS, for example, ships(1) colord-kde from 2013(2) which leaves users with non-functional color management(3). All users of Chromium need to see correct colors in any distro or OS is the ability to point to the monitor profile (the ICC file) and select the rendering intent (as GIMP, RawTherapee, etc. let them do). Black point compensation on/off would be a bonus. There is much to gain through little work, and most of it is already in place - please don't stop short.

1- https://packages.ubuntu.com/search?keywords=colord-kde&searchon=names&suite=bionic&section=all
2- https://github.com/KDE/colord-kde/releases/tag/COLORD_KDE_0_3_0
3- http://www.lieberbiber.de/2018/02/24/open-source-color-management-is-broken/

Comment 11 by hubbe@chromium.org, Feb 26 2018

But the ICC profile is already available as an X atom, which is what chrome uses.

Also, if color management is broken on linux, then we should just turn off color management in chrome on linux, it's not our job to fix it. (And this makes me sad, because I'm primarily a Linux user.)


> But the ICC profile is already available as an X atom, which is what chrome uses.

There are valid reasons why one might want to use a different profile than the one from the X11 atom. See section C:
https://ninedegreesbelow.com/photography/monitor-profile-calibrate-confuse.html#choice

Furthermore, the X11 atom is set only for the primary screen.

What I'm proposing is both very simple to implement, as it's nothing more than a filechooser to point to an ICC file, and it allows any user of any operating system or distro to use the correct color profile on any screen.

Lastly, the ICC profile alone does not cut it - you need to allow the user to choose the rendering intent in case the profile supports more than relative colorimetric (most profiles support only relative colorimetric). That's a combobox with only 4 items.

Two small and simple additions to solve everything.

> Also, if color management is broken on linux, then we should just turn off color management in chrome on linux, it's not our job to fix it.

Every operating system has color management oddities including macOS. However color management can and does work in Linux.

If you have a personal interest in the matter, you can find me and other open-source developers over at the Pixls.us forums:
https://discuss.pixls.us/

Comment 13 by hubbe@chromium.org, Feb 27 2018

There are X11 atoms for secondary screens as well. (Although I'm not sure if chrome are using those at this time.)

Let me make this simple: Chrome will not have UI for selecting ICC profiles or rendering intent. We could potentially add command-line flags for power users, but even that will meet with some resistance.

Problem still persists.

Chrome 65.0.3325.181

chrome://flags/#force-color-profile set to "Default"

Using the monitor profile from the first post,
B133HAN02.1 #1 2016-10-19 21-46 D6500 2.2 F-S XYZLUT+MTX.icc

The monitor profile is set in the X11 atom:
$ xprop  -display :0 -len 14 -root _ICC_PROFILE
_ICC_PROFILE(CARDINAL) = 0, 12, 80, 12, 97, 114, 103, 108, 2, 32, 0, 0, 109, 110

black_artifacts.jpg is a sample image to reproduce the problem.

imgur-2018_04_15-20:33:52.png is a screenshot showing that image opened in Chrome in the top half, and the same image viewed in any other program (this was Geeqie).
black_artifacts.jpg
818 KB View Download
imgur-2018_04_15-20:33:52.png
2.6 MB View Download
Labels: -Pri-2 Pri-3
Owner: ----
Status: Available (was: Assigned)

Sign in to add a comment