Full-screen histogram WIP

Started by a1ex, October 30, 2017, 10:26:45 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Audionut

Quote from: a1ex on November 01, 2017, 07:48:40 PM
The tiny markers are the medians. Maybe I should find some other representation.

They look fine here.  Excellent actually, once you know what they represent.  The fact that you have a marker for each color channel, that the spacing between the markers matches the spacing in the highlights, and that the markers are around the middle.................omg, there are those median markers I was asking about.  :)
Just needs a code push so that I can document it.  :D  Then RTFM becomes relevant.

It's amazing how much exposure data you have in that last qemu image.

I'm wondering how good my copy paste skills are.  I'm thinking I should be able to pinch dmilligan's zebra underexposure code and apply it to the (shaded area of the) histogram.  But I haven't looked, I'm just guessing as per usual.  edit:  I should stop trying to use up more available time then I have, and stick to updating a few things around the forum first.

Audionut

I'm starting to question the pros/cons with compressing the CDF graphs.  Truth be told, I think I'm starting to question how I look at histograms.

Lets look at log and linear histograms of this image.  I've put grid lines at 1/3EV, and saturation occurs at 2 and 2/3EV (close enough), easy to see on the log scale.  Scaled to around 12EV, which is what ML displays via the markers at the bottom of the screenshots.



Now the log histogram, linear CDF and compressed CDF as displayed by ML.


I'll make a note here that one of the tactics used by CDF to represent data is the vertical scale.  So what is clear to see is how the linear and compressed CDF graphs do accurately represent linear and log histograms.

I was having a panic attack earlier, because the noise floor area of the log histogram and linear CDF above are remarkably different.  But after slapping myself sideways and remembering that the log graph over exaggerates the number of pixels (from a visual perspective), I'm ready to completely reverse  how I look at these things.

You may (I know I did) look at the log histogram and say, omg, look how much data is below the noise floor, and then look at the linear CDF and think, meh, it's not that much.  Lets let images tell the story.

Here is an image with underexposure indicators (blue shading) set to 10.6EV below saturation (the same value that ML reports).


When I look at this image I think, meh, it's not that much.  If you add up the percentages of underexposed pixels from all of the color channels, 1.7%.
So I've harped on about a general consensus of acceptable noise in images being 2EV above the noise floor of the camera.  As a marker on the linear CDF image, this places the noise floor mark around here.


Suddenly the linear CDF graph seems to more accurately represent the number of 'noisy' pixels.  There's more of the linear CDF data in the 'noisy' zone.  On the left is an image with underexposure indication set to 8.6EV below saturation (10.8% of pixels).  And on the right with underexposure indication set to 7.6EV below saturation (24.5% of pixels), where the CDF graph really begins to go vertical (the vertical aspect being an important aspect of CDF).  Although to be fair, the log histogram goes vertical here also (third image in this post).


Going back to the two images that I took issue with earlier, this time with a marker on the linear CDF graph 2EV above the noise floor.


I guess when I consider the amount of 'noisy' pixels, and not simply the amount of pixels completely buried in the noise floor, I stop having a panic attack about the 'lack of' shadow detail in the linear CDF graphs, and when remaining as linear, rather then compressed, the CDF graphs retain the valuable vertical detail (especially in the midtones).



TLDR:  CDF is probably linear for a reason.  Maybe we should leave it alone.

a1ex

On shadows, you are generally interested in "large" percentiles - that are well represented on the linear CDF. Example: 1/4 of the image (25%) is "too noisy".

On highlights, you usually want to check the specular highlights. If you consider a highlight covering 1% of the image area, that area is quite large - divide the image by 10 horizontally and vertically, and one such square has 1% of the area.

1% on the CDF is about 2-3 pixels on the screen. 10% is clearly noticeable, and when evaluating shadows, it's a good choice.

The specular highlights from E5D3LL0001005.CR2 have a total area of about 6000 pixels out of 3870x5796 - that gives 0.027%. On the camera screen, that's about 90 pixels (so not exactly negligible - I'd like to know about such highlight in the first flower image, for example). Good luck noticing it on the linear CDF ;)

Audionut

I did think about some sort of blended CDF.  Compressed in the highlights and shadows, and linear through the midtones, but forgot to mention it in my wall of text.

You do have a valid point about the flower image, you do need to look closely to see the overexposure, but I like to think that the zoomed histogram covers this highlight area well.
The linear CDF on this image clearly shows the underexposure in the red channel, the compressed version seems to be inaccurate.  Didn't even realise this until you pointed it out :P

edit:  You're planned markers on the right, if I understand correctly will probably help to show an accurate representation of this underexposure.  But then it's back to mental calculation I suppose.  I think I'm starting to nitpick.  Goodnight.

edit again:  The compressed CDF does seem to match the histogram better in the red channel.

a1ex

Some examples with markers:








Showing 12 stops below 16383. A small space appears on the right because the white level is usually a bit lower (about 13000 - 15000).

Grid lines at  0.1, 1, 10, 50, 90, 99 and 99.9%.

Median marker is 5 stops above the noise floor, shadow markers are at 2 stops above (more or less arbitrary choices).

heyjoe

It's getting better and better :)

Quote from: a1ex on November 02, 2017, 09:11:39 PM
Some examples with markers:
Could you please explain how we would use those while shooting?

BTW the white rectangles can be visually problematic: imagine shooting architecture - a building with lots of small white tiles or something else with repeating pattern.

Quote
Showing 12 stops below 16383. A small space appears on the right because the white level is usually a bit lower (about 13000 - 15000).
That offset is what I was asking for previously. Makes things much more readable. If you can add it globally left and right it would be great.

Another thing: having channel histograms on top of each other makes it a little difficult to say which channels are clipped and which not. Sometimes one may want to clip one channel but not another. How about an option to have them separate (below each other)? Also considering there is so much space on top and left and bottom right of the CDF it seems to me the display can be optimized by using a non-uniform X log scale, i.e. bottom and top 2-3EV stretched horizontally and what lies in the middle more compressed. Then the CDF can be stretched to the top (with small edge offset) and place a huge zoom of the shadow and highlights histograms on top left and bottom right. Quick sketch:



What do you think?

Audionut

Split this topic from link in op.  Cleaned out some of the off-topic (I have my hand raised) and gave a1ex OP.

DeafEyeJedi

Quote from: heyjoe on November 01, 2017, 05:47:11 PM
...Could you at least add a little spacing (few pixels) left and right of the graphics to avoid having vertical lines being placed right at the edge of the LCD?

+1
5D3.113 | 5D3.123 | EOSM.203 | 7D.203 | 70D.112 | 100D.101 | EOSM2.* | 50D.109

D_Odell

This is excellent! Is it hard for the cpu?
5D3 [size=6pt](OLPF removed)[/size] :: 1.1.3 :: Canon FD L Serie