hyperion.ng icon indicating copy to clipboard operation
hyperion.ng copied to clipboard

More advanced Color Calibration (calibrating the darker colors also?)

Open kevinlekiller opened this issue 4 years ago • 0 comments

I am using the latest version of Hyperion.ng

Feature request

Currently we can calibrate W RGB CMY (White Red Green Blue Cyan Magenta Yellow) (of course there's Gamma also, but this further complicates things, I'm not sure if we should include that in this discussion? but as I mention later I'm not a color correction expert so maybe it is pertinent), but this is at 100% of those values (I could be wrong but that is what I think?, if I am wrong, it still only gives you the option to correct those colors at a singular point, for better accurracy we should be able to calibrate this at more than 1 point.), ideally we should be able to calibrate at not 100%. With Calman (unfortunately, Windows only, so I use it in a VM, ideally Argyllcms would offer such capabilities ; I have patched Argyllcms to do this, but I don't have enough knowledge in color correction to trust myself enough to believe that the results are accurate, so I use a Windows VM with Calman, patch for Argyllcms here: https://gist.github.com/kevinlekiller/89c8ba84f6716d52a6b4b4204a42f5f7) you can do graypoint calibration which, by default does 0% (black) 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% (white) from what I can remember, you can also do CMY measurements. I don't think we should remove W, RGB and CMY 100% measurements from hyperion.ng since those are useful for calibration at 100% brightness of those values, but we should have at least a 2 point gray (25% + 75% ?) correction in addition to the current correction available to us. I'm not sure if that's possible. Ideally we could have a 10 or 20 point graypoint correction + WRGBCMY, although I understand the complexion from this.

What problem does this feature solve?

Currently if we correct the W RGB CMY, the bright colors are accurate, but the dark colors are extremely innacurate, in my case, dark grays end up Red. Theoretically we could use the current system to make dark colors accurate, by adjusting WRGBCMY while outputing a dark image, but that would make bright colors innacurate. We could also output a 50% W R G B C M Y images and calibrate, but 0% and 100% would be very offf also.

If we had some way to correct on the darker colors, we could avoid this usse.

What does the proposed API look like?

I'm not sure how the API would end up, although, obviously this would add significant complexion to the API if 10 or 20 point grayscale correction is implemented, but like I mentioned earlier, I believe even 2 point should be enough, personally I don't care that much about the LED color accuracy, but as it is, right now, the accuracy is so off on the dark colors that it is unimmersive. Currently an array is used for color accurancy, so a multi level array would be the best I think if more than 1 point correction is implemented.

How should this be implemented in your opinion?

I think from a simplicity standpoint, a 2 point grayscale correction (at 25% and 75%) and and current 100% WRGBCMY correction should be good enough, from a code perspective I've not explored solutions, my knowledge of how Hyperion currently does correction is currently nil, this issue is written in the hope that someone with knowledge on Hyperion's implementation of color correction can implement my request, but I am willing to attempt to try to implement my request if no one can do so.

Whatever is implemented, it has to be done in a way that lower and upper values bleed into each other. For example if we do 25% gray correction, this can not apply only to 0-49%, and and if we 75% gray, that can not apply only to 50-100%, otherwise you get a steep step between 49 and 50%. This is where the math becomes complex, and I'm sure there are existing formulas to deal with these issues, I just don't have the knowledge to give a method of implementation here.

Are you willing to work on this yourself?

Like I wrote in the previous comment, I am, if no one can.

-- Sorry for any spelling issues or hard to comprehend sentences, my native language is not English and I have not used a translator. Thank your in advance for reading my request.

The issue template is too basic for this discussion and color correction is obviously very complex, I'm just a amateur at color correction, I rely on tools like ArgylCMS, DisplayCal, Calman. From a mathematical perspective, I have almost no knowledge on how color correction works, I'm willing to do research on this if I have to, although I hope someone who already has the knowledge of color correction can chime in and perhaps lead to a proper solution to my feature request.

kevinlekiller avatar Dec 05 '20 21:12 kevinlekiller