Ver Greeneyes wrote:
Hmm, well, my results seemed to get worse when I disabled it, so I ended up
leaving it active. I don't understand it though!
Even with all the changes I've made, all my displays (none of which are
likely very good) have some amount of black crush that dispcal gets rid of.
The LUT does not map black to (0,0,0), but black isn't visibly raised :)
Is simply setting a white target a little below the native white a
workaround for this problem ?
Possibly, but what I'm seeing on my desktop monitor seems to indicate that
one of the color channels (blue) maxes out somewhat below 1.0 (last
calibration set it to 0.969315).
Yeah.. My simple solution works well for me (low variance between
measurements, no evidence of non-monotonicity), but I realize it might be
difficult to extend to work in general.
True, this is more of a workaround to coax the fitted curves into
identifying where black ends and where white begins. On the other hand, I
haven't seen any evidence of reduced accuracy near the center of the curve.
I suspect the ideal curves are simply much smoother and more predictable
there. My quantization pass displays the errors of the chosen values, and
they don't look any worse near the middle (errors of the quantized values
are generally between 0 and 0.5 DE).
very finicky and difficult, since there is no fool-proof way of knowing
the end to end quantization. Attempting to measure this proves to be hit
or miss, depending a lot on the instrument and display repeatability.
Yeah, my reasoning is that the measurements were based on madVR's patches,
which use dithering - but we don't know whether the GPU will truncate or
round the values. Since anything more precise than 8-bit is useless on my
monitors (which are all either 8-bit or 6-bit + FRC), this extra pass finds
which rounding actually produces the best result. But I don't know if it
helps in practice - it's more a case of cutting off every possible source
of errors.
I completely understand; I can always maintain my changes locally
until/unless you do rewrite it. I'm quite happy with the performance now
though! One thought I had for rewriting how dispcal works would be to
switch to a single pass, measuring the extremes first (white, black, 50%
grey) and then start filling in values in between, using the previously
measured values to limit the range of the values in between (and ensure
monotonicity). That way, barring measurement error, no fitting would be
required. It seemed like a pretty large time investment to try though.
I take that back: I just disabled that line again and now white is able to
achieve its target!