Color calibration - colorfulness

Well you have put forth some calculations so I am sure that he will be able to comment and clarify it. I think line 2815 is a typo I just don;t know if it impacts the value of the variable. It could potentally set something to zero that is not intended or as @MartinL said maybe it does nothing…

I don’t think it’s a typo.

I just can’t see why it is there as it is the only line with this format the others don’t have it…

You can see that it declares a float[4], which means an array of 4 floating-point numbers. The 4th value is not used, as far as I know (it’s sometimes used ‘alpha’ (opaqueness) control, but the LMS (a family of colour spaces modelling human vision) values are never used with masks in the calculation, if my understanding is correct.
My guess is that it’s declared as 4 elements to optimise memory access. 1 float value takes 4 bytes; 3 would take an awkward 12. Awkward, as if you read memory in e.g. 64-bit / 8-byte chunks, there will be some triplets (12-bytes for 3 floats) that lie on a chunk boundary, requiring two memory accesses. Additionally, in multithreaded environments, writing such a boundary-crossing value would dirty two pages in the cache, requiring more cache invalidation.
Unfortunately, my work does not require such optimisations (I’m slowed down by over-engineered, complex technology, not by cache access patterns), so I’m not up to speed :slight_smile: in this topic. If what I wrote is complete gibberish, someone will correct me (I hope).

That’s right.

2 Likes

Thanks, Aurélien! There’s a definite improvement. The purples are still affected by the green, but much less than previously.

Without touching green colourfulness:


v2:

v1, for comparison:

2 Likes

That can’t be avoided though, unless you have laser lights where only one channel is non-zero.

1 Like

I’ll pick my lighting more carefully next time. :smiley: A light-sabre with a belt clip-on sounds like a practical and portable solution.

But using a laser as unique light source will get you a monochrome image, a bit like sodium lights…

In practice, most colours are not fully saturated, which means their rgb representation contains some of each of the primaries. Thus each control in colorfullness will influence all pixels (to a varying extend, one hopes :wink: )

Yes, I’m aware of lasers being monochromatic light sources, but they’re still cool. Now I have a reason (pretext) go get a light sabre. Just like I got a Spider Pro belt holster to fulfil the cowboy dreams I’d had as a kid. :smiley:

1 Like

That looks really nice…I think a nice addition to the module would be a function like we have with the masking display. So the eyeball icon that displays the image without the mask temporarily. The could be added to the colorfulness and brightness tabs to allow for assessment of the adjustments. Since the tabs are embedded in the module you can’t assess the adjustment easily as you normally would by turning it off or one. I am not sure how hard that would be to implement. Likely not too easy but it would be a nice addition.

Which Cat setting did you use for this. I was playing around last night after updating to a new build to try to test this and it still was acting weird with the green (negative boosted it and + muted it) so I need to double check that I have the v2 in place. I was trying to define in practical terms the actions of the sliders. I was comparing full scale + vs full scale - for each slider using both normalized and non normalized and under bypass and Cat16…also do you do this with gamut compression disabled or at default??

Just curious

Color calibration - colorfulness - #81 by aurelienpierre v2 (as visible in the screenshot); it’s not on master yet.
This was with the channel mixer preset (bypass CAT, no gamut compression).
Do not expect complete separation of channels.

Feature got merged minutes ago.

Thanks I thought it had been merged. I understand, well I should say I can appreciate that removing green (or any of them) affects all the colors or should I would think, and depending on the settings to a lesser or greater degree depending on the array of colors in the image . I was just trying to get a practical understanding of the net effect or observed effect on the image so as to determine predictable behaviour. With my build when I increase green it reduces green and when I reduce green it boosts it which seemed counter to expectation from a slider with a color and -/+. When I first saw the slider my instinct was that it was similar to using the channel mixer and the reducing green would be similar for example to removing 0.3 of green ie the slider value from all of the color channels. Clearly this is not what it does but that was what I initially thought it was doing.

I just want to pause and thank you for the time you take to respond and the excellent information. I appreciate the help I just wanted to acknowledge that …online is so impersonal at times…so thank you…and similar sentiments go out to others on the forum that have taken time to reply or engage with advice comments and information thanks very much…

6 Likes

That’s very kind of you, thanks, but all I did was trying to understand what’s going on; I was just one of the confused users here. @anon41087856, @neuralyzer and @flannelhead are the people who did the real work.

4 Likes

I couldn’t resist I was re-reading this post and caught you using the word intuitive…:wink:

1 Like

Pun intended.

The fact that many things are intuitive if you have a math level >= bachelor of sciences proves that intuitivity is only ever contextual. Nobody is born with walking, reading, writing or counting skills, they are all learned along, still people think alphabetical order is something intuitive. So, yeah, my fight is to make people realize that intuitivity is an hidden expectation of new things behaving like old things you already learned so you can spare a new learning process (aka lazyness disguised as rational expectation). Which is silly if you are just starting in a new field or with a new framework.

I truly wonder how many adults could read today if they would have been given the choice to not go to school as kids. I believe most of us can read right now only because nobody asked for their opinion when they were mandatorily sent to school between 6 and 14 or 16. Problem is, people get the choice to be lazy at adult age with vocational skills, and rely on others to do the boring and difficult stuff for them.

6 Likes