Coder Social home page Coder Social logo

ledoge / novideo_srgb Goto Github PK

View Code? Open in Web Editor NEW
989.0 22.0 35.0 158 KB

Calibrate monitors to sRGB or other color spaces on NVIDIA GPUs, based on EDID data or ICC profiles

License: GNU General Public License v3.0

C# 100.00%
nvidia monitors color-correction windows

novideo_srgb's People

Contributors

beefcat666 avatar ledoge avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

novideo_srgb's Issues

Not a big issue - Super Ultra Wide Monitor

First of all, thank you very much for this wonderful software. You deserve all the best for giving us this software.

Let's get to the issue... I use a Samsung Neo G9 monitor with 32:9 aspect ratio (super ultra wide) with 5120x1440 resolution.

When Windows comes back from standby mode, the left half of the screen is clamped and the other half is not. I just need to disable the "clamp" and enable it again to solve the problem.

As I said, it's not a big issue, but I thought you might want to know.

If you need anything, let me know.

Thanks a lot.

Works like charm!

Novideo_SRGB and DWM_LUT are god sent, thank you very much ledoge!

The real question is why NVIDIA are denying us this feature when it already exists in the driver?
The monitor manufacturer has to provide accurate EDID xy gamut coordinates for this to be reliable, maybe that's why NVIDIA is reluctant to enable this in the Control Panel?

Measured with i1 Display Pro
Gigabyte M32Q

Disabled:
Disabled

Enabled:
Enabled

Linux version? (Please)

This tool is amazing, they can make a version for Linux, compatible with the AUR repository?

Thanks a lot, they saved my monitor xD

Can't handle certain file path

When I tried to load an ICC profile from "C:\Users\username\AppData\Roaming\DisplayCAL\storage\UP2516D #2 2022-05-07 15-20 120cdm² 0.3127x 0.329y sRGB F-S XYZLUT+MTX", the program crashed every time I clicked on "OK". I had to move the file to some other place to load it.

Simple question on usage

Apologies if I'm missing something but:

  • Do I need to keep the program running at all times?
  • Do I need to re-launch it at every reboot?

Thanks

No issue. Just want to thank you. THANK YOU!!!!!

Oh my god! I was looking for this solution for 3 years now. Maybe 4. My wide gamut monitor somehow lost it's srgb internal profile. And there is no way to bring it back. So I suffered from over-saturated colors for years on that monitor.
I tried to make my own version of similar functionality over magnifier API. But what you did is jus AWESOME and way BETTER. GOD BLESS YOU.

Fullscreen games break the sRGB clamp after alt-tabbing or closing the game

When there is an sRGB clamp applied by this program and you launch a fullscreen game (true exclusive fullscreen, not borderless fullscreen) and then alt-tab out of it or close the game again, the sRGB clamp stops being applied. When launching novideo_srgb again, the checkbox is still ticked but it is clearly not active and has to re-toggled twice to make it work again.

This is reproducible with most if not all games that offer an exclusive fullscreen mode. I experienced this with Overwatch, League of Legends and Apex Legends.

EDIT 05.05.: This mostly affects esports games apparently, I do not have this issue in CP2077 and The Talos Principle for example.

custom EDID chromaticity values aren't picked up

Hello,
I've changed chromaticity values for my EDID and installed it via CRU. However, novideo_srgb still reports the default EDID values:
edid

info

I wonder if I'm missing something? I also tried installing the custom EDID as monitor driver, it made no difference.
Thanks!

Is the processing in 16bit?

I'm seeing banding in the dark region when enabling gamut clamping.
I'm wondering whether the internal GPU process is in 16bit before it outputs 8bit to display?

Attached ICC from EDID and 16bit grey ramp test pattern.
16Bit Gradient.zip
Gigabyte M32Q.zip

Disabled:
*Left most shade is 0,0,0 black, pattern zoomed 500%, camera overexposed, IPS glow.
Disabled

Enabled 1:
Enabled 1

Enabled 2:
Enabled 2

Fantastic piece of sofware!

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

Error code 180 when switching display

Using Windows 11 build 22xxx I have experienced error code 180 SOMETIMES when switching from "secondary display" to "primary display" from windows 11 taskbar menu.

Happens more often if the primary display haven't been active for a while.

Currently testing switching display through two external applications. Haven't had any errors but it's too early to say.

Off topic: I feel that windows and/or Nvidia lately have issues with powered off displays, and the desktop often does a connection sound and an animation.

IMG_20220917_013010

About Dithering

A few words to clarify the dithering options available in novideo_srgb.

First, an image worth a thousand words;

D

I would immediately suggest not to use Temporal dithering because it is at the mercy of your LCD panel speed, overdrive overshoot, and refresh rate. which might not produce accurate shade even though it is a small change each frame.
If you are not working with static images like editing magazines, forget about Temporal dithering now.

I will use MadVR in 2bit to demonstrate Static and Dynamic dithering.

2bit No Dithering;
2bit no dithering

2bit Static Dithering;
2bit Static Dithering

2bit Dynamic Dithering;
2bit Dynamic Dithering

Static dithering has almost no overshoot error on LCD panels, and the least amount of flickering and noise.
With a modern high DPI true 8bit panels the the dithering pattern is completely invisible, the pixels are too small and too close in color/shade.

Dynamic dithering will change the dithering pattern every Hz/Frame of your monitor refresh rate.
Theoretically it should "hide" the dithering pattern at the cost of random pixel noise, but since we are talking about modern high resolution and high refresh rate 8bit panels the noise is completely invisible in this case too.
Theoretically we "could" see some random pixel overshoot under a microscope..... no.

Personally I would suggest Static because it does the job perfectly, but if you are sure that you actually see the random 8bit dithering pattern (I highly doubt it) you can bump up to Dynamic.

This is my take on things, I'll be happy to learn if I missed something.
Cheers

Intel Graphics Support?

My laptop uses Intel Graphics for the laptop display, instead of the Nvidia GPU. As a result, I cannot do any sRGB clamping using novideo_srgb. Can you please add support for Intel adapters?

Feature to clamp colors beyond sRGB without oversaturation of colors below sRGB?

My monitor has reds and blues that are under sRGB, but greens are above sRGB. When clamped to sRGB, the reds and blues become over saturated while the greens are properly clamped. A way to disable over saturation for colors that are less than sRGB would be nice, and only the colors that go beyond sRGB would be clamped in this mode. Another idea is to have a percent sRGB option to clamp to.

Black level not right when using "Calibrate gamma to Relative 2.2"?

Hi,
Im still not sure what im doing wrong. Im using and ICC Profile, which I created with this recommended settings #28 (comment)
In novideo_srgb i select "Calibrate gamma to Relative 2.2" with 100 % black output offset. But with these settings i cant see the squares in the first row and even half of the second row in this test: http://www.lagom.nl/lcd-test/black.php
What am i doing wrong? I tried to experiment with a differnt black output offset. I tred to lower the black level offset to 50 % which helps with the visabilitty of the squares but im not sure if this is the right way ... i drives me nuts ;) my main goal was to compensate my monitors factory gamma of 2.3. ..

Thanks for the help

Grayscale is too bright

When I set calibration to sRGB brightness is too high, wich breaks brightness calibration games as I can no longer make the sign disappear (like in Alien Isolation or Metro Redux). If I use the same profile in DisplayCal's Profile Loader it calibrates properly.
PXL_20220208_095856241
PXL_20220208_095936845

Why do i get banding when I disable the clamp?

There's no banding when I start the computer or when I enable the clamp.
But when I disable the clamp i get banding (visible on lagom test and even on wallpaper).
I have to restart the computer to go back to normal.

.NET 6

Any plans to migrate to .NET 6?

Thanks a lot for this tool!

Getting Artefacts when using "Calibrate gamma to sRGB"

Hi,
im new here and already posted on this in the displaycal forum (https://hub.displaycal.net/forums/topic/calibration-of-asus-pg279qm/#post-35376). i put myself into the calibration jungle recently. ;) novideo_srgb is a great software. I try to use it with my ASUS PG279QM. So i created an ICC profile set to sRGB in DisplayCal (Monitor set to widegamut) and loaded that icc in novideo_srgb.
im using this profile:
PG279QM #1 2022-05-10 21-35 D6504 sRGB F-S XYZLUT+MTX.zip

Unfortunatly my Monitor has 2.3 Gamma from the factory. Therefore i tried to set the gamma in novideo_srgb to: calibrate to sRGB -> but the result is that its too bright an i get artifacts in game in color gradients.:
13-05-_2022_15-13-48
When i deactivate the gamma feature in novideo_srgb i get this (how i should look), but Gamma is 2.3 instead auf 2.2... ;(

13-05-_2022_15-14-02

What can i do to use novideo_srgb an get perfect 2.2 Gamma as well?

Thank u very much

Sandro

Documentation and user guides

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:

  • Calibration with DisplayCAL and using the profile with the novideo_srgb tool
  • Calibration with DisplayCAL to gamma 2.2 vs to sRGB and using the novideo_srgb tool
  • Calibration in user mode vs sRGB mode (with locked monitor settings) on a wide color gamut monitor and using the novideo_srgb tool (optional)

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.

HDR Strange Windows Issue

First of all I'd like to say once more that this software is incredible and a must have for anyone who cares about color accuracy and color profiling.

Now a strange issue is happening when I enable HDR which actually seems to be a windows related issue rather than novideo_srgb's but this is is the only place that you'll get what's happening right away.

If I enable HDR and fiddle with the SDR/HDR brightness setting the colors get clamped (clamped gets activated inside novideo_srgb).
Sometimes it only takes HDR to be enabled and clamp turns on, other times it turns on the moment you touch the brightness setting.
When clamped colors and white look less bright and vibrant compared to no clamping and there is a slight green tint. At first I thought this would be normal but after testing and comparing I'm positive that without clamping I'm getting a better picture, colors and accuracy overall as seen on eizo and lagom websites.

Another strange thing is that I remember a point in time when this wasn't happening but can't figure out what changed that behavior.

Would anyone have any clue why this happens and can anyone else reproduce it?
I tried installing different GPU Drivers, different Monitor Drivers, disabling my second monitor and clearing novideo_srgb config.
Also tried 4 different versions of novideo_srgb but doesn't seem to be related to the issue.

BTW I'm using two monitors,
LG 32GP850-B and ASUS MX259H,
driven by an ASUS GeForce 1060 (latest drivers)..

Thank you..

About banding in dark tones [not an issue]

If anybody has TERRIBLE banding in dark tones, try installing the latest graphics driver from NVIDIA website. Today I formatted my PC, and I was using Windows Update graphics driver, which works fine for most things, until I noticed this terrible banding in dark tones after using novideo_srgb (even when I had dithering enabled, it didn't work). Installing the drivers from NVIDIA website fixed the issue.

Using Windows Update drivers:
before
Using NVIDIA website drivers:
after

Modes Switch...

Love your work, I got a excellent result on my Y9000P 2022.(colour gamut slightly bigger than sRGB)

Is there possible to add some preset function, to easily switch between different usages. Such as sRGB for web browser, Adobe RGB for photoshop, BT709 for SDR video...

Clamp is lost when monitor wakes up from stand-by

My PC runs 24/7 but the Windows power plan that I use sends my AW3423DW to stand-by mode after 10 minutes of inactivity.

Unfortunately, the clamp is lost when my display turns back on when I come back to the PC and move my mouse to wake up the display.

Is there any workaround for this?

Testing feedback

Hi @ledoge ,

I have calibrated my ASUS monitor PG329Q with DisplayCAL, with and without using the clamp tool. As requested I am providing the icc profiles.

ICCs.zip

Applies clamp when NV HDR is enabled

Glad that the clamp disables itself when HDR is enabled but it remains active when the application or game enables HDR automatically, for example Elden Ring, RE2/3 Remake and MPCBE with MadVR to name a few which use the NVapi for HDR.

Custom cursors in some games are washed out

First of all, thank you for writing this very nice software. It's great to be able to both clamp my wide gamut monitor to srgb and use a color calibration at the same time without having to set up something like a lut in reshade for each game that I play.

I have noticed something odd happening in some games that use their own mouse cursor: they get very washed out when the clamping is on.
I am able to verify how the cursors should look by using the sRGB mode on my monitor or looking at the content with a screen that does not have a wide gamut.

List of confirmed games:
-World of Warcraft
-Patfhinder: Wrath of the Righteous
-Halo: The Master Chief Collection
-Mass Effect 3: Legendary Edition
-Crysis 3

Some details about my setup:
Monitor: LG27GP950
Graphics card: MSI GeForce GTX 3080 Ti Gaming X Trio 12G
OS: Windows 11

Not an issue.

This is my way to say thanks.

a bit of context :
I'm just an average joe user interested in replacing his monitor and being concerned about color accuracy
I'm no professional but instead I like colors to be what they should be :
e.g. if I take a photo with a camera (wife is photographer) in sRGB, and that the colors of the photo are accurate to reality, I want my monitor to display it correctly.

so I got interested in gamut software clamps since I read about it there: https://pcmonitors.info/articles/taming-the-wide-gamut-using-srgb-emulation/
all this talk is a bit over my head (when I read about the "testing feedback" for example)

I hope this tool gets more interest/traction/views
Nevertheless, just wanted to say thanks.

Program does not start

When I click on it, it appears in task manager for 0.5 second and disappears.
My Laptop Msi Creator z16, rtx 3060
Second monitor Dell s2721dgf.
Even without an additional monitor does not launch.

Clamping carries over to HDR mode

The sRGB clamping of DCI-P3 colors carries over when enabling HDR, be it on the desktop or playing HDR games, which unintendedly reduces color depth and saturation.

color banding in youtube video

PXL_20220803_182430711
PXL_20220803_182437982

image

I have tried turning on and off dither and every mode, srgb/absolute/relative. also with other icm profile. Is there something i dont know?

To Calibrate, or not to Calibrate... and more Questions.

Reading ledoge's reply from another thread, which I'll quote here:

Calibrating just adds vcgt data to the profile (which might result in a more accurate profile?), but novideo_srgb works perfectly fine with or without vcgt data. It's not relevant for the calculation of the black point.

I'm still not sure whether "Tone Curve" Calibration is needed at all, or skipping Calibration by selecting "As Measured" will produce just as accurate gamma tracking with Profiling only.
The big factor for this decision is measurement time, by skipping calibration I save a lot of time.

Questions;

  1. Is Profiling only provides enough data for "calibrate gamma to" option in novideo_srgb to generate an accurate gamma curve?
  2. If so, will more grey/neutral patches in the Testchart produce more data points for the LUT math to work with hence producing more accurate results with less interpolation?
  3. What Profile Type will produce the best results for color and gamma tracking?

Thank you.

i wanna donate a few dollars

novideo_srgb completely transformed my clipstudio to blender to davinci resolve workflow (none of these progs supports color correction like an artist needs it ) and will save me so much time, and all the guessing and checking is gone.

no more test rendering to compare them in krita/photoshop and all that workload overhead.

you should put a paypal link in your account description! i also posted it on every discord and forum becasue its the most amazing thing.

ive searched for something like this for a long time! and you are the hero who finally made it !

Is it possible to edit the edid of the monitor so built in srgb clamp works correctly.

Srgb mode of my monitor clamp the colors too much. Is it possible to edit the monitor's edid in a way that i can tune how built in srgb clamp work or SDR calibration in Windows HDR mode work ? Both looks identically dull (srgb clamp in SDR, SDR image in HDR). My monitor is gsync ultimate so it has SDR calibration in HDR mode but both this calibration and the srgb mode overshoots and clamps more than it should.

Closes when PC wakes up

When I wake PC from hibernate, sign in, and the system starts up, I noticed that the application closes though the clamp is still enabled.

Thank you! What are the differences in dithering options for 10-bit output?

First of all, not a real issue!

EDID primaries work just fine without access to a colorimeter on my DELL S3220DGF monitor! Just had to delete the manufacturer provided .icm profile (or things got "corrected" twice in color managed applications). The EDID values and the .icm profile looked pretty identical when eyeballing, but of course clamping this way benefits ALL programs.

However I am not sure what dithering option is the "best"? Not sure if I see any difference, but would be nice to know which in theory is the most accurate. In my case my monitor is 1440p 10-bit panel. Or should 10-bit users disable dithering altogether?

XYZ + Matrix Profile Support

@ledoge, I noticed the readme was updated. Does this tool now support XYZ + Matrix profiling?

I did a little testing and chose a XYZ + Matrix profile but am getting quite odd results. Everything on the desktop has a red hue on it now. Doesn't seem to be working properly.

Dip at 90% mark in gamma curve when dithering is enabled

Hi, I've noticed that when dithering is enabled that there is a dip and the gamma is lower than expected at exactly the 90% mark on a DisplayCal verification report, I've noticed people mention this before with the nvidia dithering hack on their forums for calibration luts, and i've noticed it on other verification reports too. (dithering method doesn't matter, same results whether temporal or other)

2.2 relative with 100% black output offset dithering on:
2 2 dithering

2.2 relative with 100% black output offset dithering off:
2 2 no dithering

BT.1886 dithering on:
bt 1886 dithering

BT.1886 dithering off:
bt 1886 no dithering

Literally everything else is better with dithering on (gamma tracking besides 90% and gray balance) but no matter what gamma I try it seems to always have that dip at 90% when dithering is on even if the rest is perfect. I've tried other gamma values with dithering disabled and even though the accuracy is worse (espec at 95%+), it always hits 90% correctly whereas with dithering enabled it will droop again at 90%. Seems like a glitch with nvidia dithering and I feel like it affects perceived contrast in the lighter areas even though it is very slight.

NV HDR reports colour space settings as bt709

When I switch to OS HDR the colour space is reported as bt2020. With apps that auto switch to HDR like Elden Ring and MadVR the colour space is reported as bt709 and the colours are slightly of even thought my display enables and reports HDR (compared to before).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.