ledoge / novideo_srgb

Calibrate monitors to sRGB or other color spaces on NVIDIA GPUs, based on EDID data or ICC profiles
GNU General Public License v3.0
988 stars 35 forks source link

Documentation and user guides #11

Open provanguard opened 2 years ago

provanguard commented 2 years ago

Would it be possible for you to write up some step-by-step documentation about how to use the application, and in particular including the following aspects:

In general I would like there to be an easy guide that I could always refer to, to perform full calibration of my ASUS PG329Q wide color gamut monitor using DisplayCAL and then use the novideo_srgb tool to ensure the image on the screen is clamped to sRGB color space, with maximum color accuracy. I normally calibrate to gamma 2.2 and D65.

ledoge commented 2 years ago

To be honest, I'm not entirely sure myself as to what options you'd ideally use in DisplayCAL to achieve the best possible color accuracy with this tool. However, you can think of it like doing the work that color management would normally do in some program, which e.g. means that it shouldn't really matter which gamma you actually calibrate to.

If you don't care about the exact black point e.g. for accurate BT.1886 tracking, you should be perfectly fine by just calibrating with DisplayCAL's default sRGB settings, optionally with a different white point and/or gamma target (or setting gamma to "as measured" should also be fine). Then just load the ICC profile into novideo_srgb, enable gamma calibration and select sRGB/2.2 gamma there, and that's what your screen will end up being calibrated to (feel free to verify this with DisplayCAL's verification tab, and make sure that "Use simulation profile as display profile" is checked).

If you do care about the exact black point, I believe you should change "Profile type" to "Curves + matrix" (or, if "Tone curve" is not set to "As measured", "Single curve + matrix" might give you better results) and make sure that "Black point compensation" is disabled.

I think in theory enabling the sRGB mode in your monitor shouldn't result in any worse results as long as it doesn't reduce the sRGB coverage (which is a non-trivial assumption), and I don't see how it could give you any better results. So I would definitely leave it off.

provanguard commented 2 years ago

Here are my settings in DisplayCAL. I am not an expert in this app, nor in calibration in general. Just tried to replicate the settings that xrite i1profiler is using as recommended for photo editing.

capture_20211228_200214

capture_20211228_200222

capture_20211228_200226

provanguard commented 2 years ago

What should I start with? DisplayCAL calibration on an unclamped monitor? Or on already clamped? Should I load the profile generated by DisplayCAL into the novideo_srgb tool and enable clamp? Is that it? What options should I chose in the tool?

I am still running the version 0.3-test where I modified the RGB points, based on what I found in the DisplayCAL profile information.

capture_20211228_201247

capture_20211228_201845

When I am now testing the same profile loaded into the tool with selected gamma 2.2, I have an impression (not measured yet) that in the new version I am getting more saturation. So my conclusion is that I am using the tool in the wrong way and hence I asked for the more detailed guide.

Capture

By the way, I am using a youtube video containing different faces, which I found very easy to quickly check if there is too much saturation of red colors: https://youtu.be/BQQxNa6U6X4?t=256

provanguard commented 2 years ago

Please note that values shown in Use EDID primaries setting are quite different from the ones provided by DisplayCAL. Also, there are 3 decimal places in the tool, while DisplayCAL has 4. I am not sure what that means, but I assume that this is the reason to have the option to load the ICM profile created by DisplayCAL and read the values from there instead of the EDID.

provanguard commented 2 years ago

Here are the profiles I generated using DisplayCAL, back when first testing version 0.3-test - one before using the clamp and one after. sRGB coverage is at 0,995 for the first and 0,9945 for the second.

profiles.zip

ledoge commented 2 years ago

What should I start with? DisplayCAL calibration on an unclamped monitor?

Yes.

Please note that values shown in Use EDID primaries setting are quite different from the ones provided by DisplayCAL. Also, there are 3 decimal places in the tool, while DisplayCAL has 4.

That and the additional saturation you're seeing now is due to the EDID values being inaccurate. The highlighted values in that DisplayCAL screenshot are the actual measured ones, which are accurate (assuming your colorimeter is not broken). These are also (effectively) being used by novideo_srgb now with the ICC profile selected, along with the VCGT and TRC curves.

Your usage of DisplayCAL and novideo_srgb looks correct from those screenshots – run DisplayCAL on the unclamped display, then load the resulting profile exactly like in your novideo_srgb screenshot, enable the clamp and you should be good to go. If you want to use sRGB gamma instead now there's no need to re-calibrate, just change the gamma in novideo_srgb to sRGB.

aufkrawall commented 2 years ago

Yep. The way you recommended to test (but still XYZ + matrix profile type), I can confirm that I could nicely bring down delta values from terrible (display's default rec709 oversaturation) to okayish (clamping with default EDID chromaticity values) to good (clamping with ICC chromaticity values) to great (clamping with ICC chromaticity values + corrected gamma 2.2). Simply fantastic. :)

provanguard commented 2 years ago

Just loaded the latest version 1.2. What is the difference between absolute and relative gamma? Why are the new default values for relative and absolute gamma at 2.2000000476837158 ?

ledoge commented 2 years ago

Why are the new default values for relative and absolute gamma at 2.2000000476837158 ?

Oops, that's a bug, thanks for catching it. Fixed it now.

What is the difference between absolute and relative gamma?

Absolute gamma means that the exponent used is the actual value you entered, while relative calculates a new exponent so that the grayscale level at 50% input level is equivalent to what it would be on a display with a black level of zero and the exponent you entered. If your ICC profile includes black point compensation (or your display actually has infinite contrast), there will be no difference between them.

provanguard commented 2 years ago

Given I have a LED monitor, which does not have an infinite contrast, which setting is recommended, relative or absolute? I assume this should also be configured during calibration in DisplayCAL.

ledoge commented 2 years ago

Purely personal preference. I think DisplayCAL uses relative by default (I believe you need to enable advanced options or whatever it's called to see it?). Not sure if that implementation works exactly the same as mine, but I based it off an explanation of how it works that I read at some point.

provanguard commented 2 years ago

Perfect :) I think this new addition of using the profile and setting the gamma is a great killer option, which makes it much easier to use the app after calibration. Thanks!

A minor request, since I usually pin the app to the start menu, could you add an icon to the executable? And out of curiosity, what is the meaning of the app name ? :)

ledoge commented 2 years ago

I would definitely add an icon if I had one, but someone else would have to make it as I'm definitely not artistically inclined.

Novideo is a bastardization of NVIDIA used on /r/AyyMD, I used it because I'm pretty sure naming anything after a company or a trademarked name is a bad idea (and I think it's funny).