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
989 stars 35 forks source link

Fantastic piece of sofware! #18

Open James-F2 opened 2 years ago

James-F2 commented 2 years ago

This allowed me to use all the picture settings in my monitor that are typically locked in sRGB Picture Mode. The Dithering option eliminated all banding issues I saw in v1.0, and the custom gamma curve is great.

Even though I have an i1 Display Pro, for simplicity I create a "Synthetic ICC" in DisplayCAL with my EDID xy coordinates and custom gamma curve so I can tweak it further in Novideo sRGB, or I can measure my actual xy coordinates with the i1 and then create a Synthetic ICC. Now I have control over my monitor without being limited by the sRGB Picture Mode that does not allow me to change anything, AND have accurate REC.709 gamut in games, browsing, etc.

Thank you again for this amazing software.

PS. An icon for the software will be great, it looks like a virus without an icon. haha

aufkrawall commented 2 years ago

Did some more testing: I think configuring more than 2 single channel patches (i.e. 1x R,G,B in actual patches) doesn't seem to help for lower delta values. I ran calibration with just that and 256 neutral patches and got my best result so far with 3x curves (Maximum ΔE*00 0.71, maximum gamma deviation 0.06).

Curiously, running that profiling config with a different system (different display and colorimeter) again lead to a color tint with very dark gray when applying calibration via novideo_srgb (gets more visible with e.g. 0% black output offset). I intend to check what happens with less grayscale patches there. I'm getting this also with my system when using more single channel patches, so what I can say already is that it seems to be connected to the number of patches used with 3x curves.

I'd be curious if 3x curves are mathematically expected to be significantly better than 1x?

James-F2 commented 2 years ago

The calibration is as accurate as your meter with different spectral distribution of the panel backlight.

I get spectacular results with no visible tint or coloration down to 0 black, with 3x Curves + Matrix (256 grey and 2 single channel patches), i1 Display Pro.

X-Rite rebranded the i1 Display series as "Calibrite ColorChecker Display Pro" now.

aufkrawall commented 2 years ago

The calibration is as accurate as your meter with different spectral distribution of the panel backlight.

Well, there never is any close to black tint also with 3x curves when calibration is applied via VCGT/gamma ramps instead. I'll have another look what happens with such an "affected" profile when generating a 3D LUT from it and applying it via ledoge's other great tool dwm_lut. My layman gut feeling is that under some circumstances something goes wrong with close to blacks in novideo_srgb and 3x curves profile. When a 3D LUT generated from the same profile looks fine, I think it can be assumed that nothing's wrong with the measurements or the profile per se.

ledoge commented 2 years ago

Curiously, running that profiling config with a different system (different display and colorimeter) again lead to a color tint with very dark gray when applying calibration via novideo_srgb

Not really sure why that would happen, I'd assume that such a tint could be caused by generating a matrix optimized for many color patches, but that's not the case here. Maybe try generating an XYZ LUT profile from the same measurement data and see if that works better?

I'd be curious if 3x curves are mathematically expected to be significantly better than 1x?

It really depends on the display, as you need 3 curves to describe its behaviour unless the 3 channels can all be described by the same tone response curve. So either the monitor needs to have near-identical response curves on each channel natively, or you can use a VCGT calibration to "align" them while targeting some gamma. With no VCGT calibration, I'm pretty sure you should always do 3 curves.

aufkrawall commented 2 years ago

Thanks, so clearly 3x curves is preferred. But curiosity prevails, I'll need to give single curve another try to see by how much results are worse with same profiling patches vs. my current 3x profile. =) Really glad that 3x now works at least for my own system with plenty of grayscale patches.

I'll give XYZ another try on that other system.

markanini commented 2 years ago

You can to test 1x curve without profiling again with file-create profile from measurement data.

I prefer the 3xcurves+Matrix and the default matrix test chart containing 29 neutral patches. It's stays a little closer to target gamma near black. Comparing to a test chart with 256 neutral patches average DeltaE is higher but not a huge difference. I always set tone curve (and white point) to as measured.

James-F2 commented 2 years ago

DeltaE of the black shades is dependent on the Tone Curve selected in the Verification tab. I verify with Relative 2.2. 0% Offset.

EDIT: I don't care much about <1 verification of the black shades, as long as the steps are smooth and uniform visually with test patterns it is okay.

markanini commented 2 years ago

Good point, use them too. However most test ramps are not in a perceptual color space and cause an inflated chase for near black shade differentiation. The lagom.nl black test is also an offender.

aufkrawall commented 2 years ago

Again regarding that dark grayscale tint issue: I thought it was the same issue with the VA device as it was with my IPS device when using more color patches with 3x curves + matrix. But it turned out it was not, also single curve + matrix could exhibit it, also with just 3 color patches and relatively few grayscale patches. It also wasn't isolated to novideo_srgb, the dark gray color tint also occured with 3D LUT applied via dwm_lut.

So for whatever weird reason, that VA display requires to also perform the calibration step with DisplayCal, then dark gray doesn't have weird color tints. We used XYZ LUT + matrix format profile with default test chart. We didn't try a new calibration in 3x curves + matrix format yet, as it takes forever with the Spyder 4 and calibration set to medium. I suppose gamma curve result is a bit worse that way vs. preferred 3x curves without calibration step, but it's still well within an acceptable margin.

erusyns commented 2 years ago

hey james how do get 3x curves + matrix? i only have option for curves+matrix

James-F2 commented 2 years ago

"Curves" is 3 curves (R,G,B). The other is "Single Curve" which is r,g,b, locked to the same value.

VA panels are very slow in dark shades, this is most probably the reason aufkrawall see some tint there without calibration, especially with temporal dithering.

erusyns commented 2 years ago

"Curves" is 3 curves (R,G,B). The other is "Single Curve" which is r,g,b, locked to the same value.

VA panels are very slow in dark shades, this is most probably the reason aufkrawall see some tint there without calibration, especially with temporal dithering.

thank you, im struggling to get my black and red to <1. can you check my step and possibly point out what i did wrong?

https://drive.google.com/file/d/11m-hZi03f5JE-_DcN-4WH0TV0HgbPfe2/view?usp=sharing

James-F2 commented 2 years ago

Your results are excellent, don't obsess.

erusyns commented 2 years ago

Your results are excellent, don't obsess.

lol, i cant really stand the red popping out from other colours.

aufkrawall commented 2 years ago

lol, i cant really stand the red popping out from other colours.

Well, according to you results, it shouldn't. At least not more than 100% red usually does as a signal color to human perception. But why did you set brightness to 55% in the Nvidia control panel? Increase backlight brightness instead if you find the result too dark.

You can't "fix" the deviation for black, I suspect it's the color temperature of the IPS glow. I had two Nano IPS devices myself for a brief moment and the terrible warm IPS glow was one of the main reasons why I sent them back.

Edit: On the other hand, your report shows negative deviation of red channel for black, so what I wrote above might be also totally untrue.

I see brightness control actually is grayed out with the reference mode checkbox ticked...

aufkrawall commented 2 years ago

To share some experiences and thoughts after extended usage and calibrations:

aufkrawall commented 1 year ago

novideo_srgb (left) with 52 grayscale patches actually achieves better BT.1886 gamma curve accuracy than VCGT with medium calibration speed (right): gamma

VCGT is noticeably darker with near blacks, but it's apparently wrong.

ossnorry commented 1 year ago

For correcting white point when monitor RGB isn't enough, so I still need to do a tone curve calibration or is the matrix enough? It seems like I'm getting closer to 6504k with tone curve, but I could be making a mistake with my test chart.

erusapien commented 1 year ago

sorry to revive and old thread, how do you create an synthetic profile? @James-F2 I mean how to enter those values? Where can I obtain the values for my monitor to input into synth profile?