RAW based exposure feedback

Started by Audionut, May 29, 2014, 05:41:00 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

Audionut

Magic Lantern contains a number of exposure feedback features, based from raw data.  This is very beneficial, as regular Canon exposure feedback is subject to picture style, and other JPG based processing.




These features can be found in the Overlay menu.




They work in both Movie mode and Photo mode Live View, and in the Quick Image review. 

In Movie mode Live View, you must load one of the raw recording modules and have it activated for raw based exposure feedback to function.
In Photo mode (Live View or not), picture quality must be set to raw in Canon menu, and in Photo mode Live View, ExpSim must be enabled.

Spotmeter
Histogram
Simplified Histobar
Zebras
Dual ISO Zebras
RAW vs JPG




Spotmeter



The spotmeter is a tool used to meter a particular area of the scene.  For instance, you may want to meter a particular area of your scene, as a highlight, a midtone, or whatever.  The raw based spotmeter in ML works in EV (Exposure Value) units, and represents the EV from saturation (overexposure).

Here is a teddy bear, showing the midtone patch metered for a midtone, checking the white level at this metering, and then Exposing to the Right.





Histogram



The histogram provides a graphical representation of the exposure of the entire scene.



The colors in the histogram, represent the color channel in the camera (Red, Green, Blue).
You will also notice, that ML displays Cyan, Magenta and Yellow.  If you look at the color chart below, you can see that Yellow falls in between Green and Red, and hence, Yellow represents data in both the Green and Red channels.  Cyan being the data from Green and Blue channels, and Magenta being the data from Blue and Red channels.  White indicates data from all color channels.

The white vertical lines at the rear of the histogram display, represent full stop EV.  So the very right hand side of the histogram represents overexposure.  The first line from the right hand side, represents 1 EV (a full stop) from overexposure, the next line is another 1 EV (2 EV total) from overexposure, and so on.




When the scene contains overexposure, the histogram will provide warnings.



The colored circles in the histogram, warn of overexposure in the color channel.  Small circles show a very small amount of exposure, with the circles increasing in size.  When at least 1 % of the pixels of a channel are overexposed, the numbers inside these colored circles, describe the percentage of pixels that have been overexposed in that color channel.  In the above example. 1% of red pixels have been overexposed, 10% of green pixels and 2% of Blue pixels.

Note:  This information is derived from the downsized Live View stream.  So the percentages reported, may not be an extremely accurate representation of the actual percentage, but provides useful information nonetheless.




The histogram in ML also contains Exposure to the Right information.  This feedback show the user how far they can Expose to the Right before overexposing.



Take this scene metered with Canon Av mode.


Here we are being given feedback that suggests we can push the exposure 1.5 EV (stops) before overexposure.
And in the two images below, on the left hand side, the scene has been Exposed to the Right, and on the right hand side, the scene has been overexposed.



Note:  Due to inconsistencies in the original firmware design, determining the correct overexposure point is extremely difficult.  You should be very wary when the histogram reads from -0.4EV through to (slight) overexposure.  There may be some slight overexposure when none is reported, or vice-versa, there may be no overexposure even though some has been reported.  If you know the true saturation value for your sensor at the shot settings, you may wish to use raw_diag if you like to nitpick.

Otherwise, to be certain of no overexposure, target a ETTR hint > -0.4EV.

Further discussion.




The histogram in ML also contains Dynamic Range feedback.  This describes the ratio between the reported white level, and the Noise Floor of the camera, and is only very accurate when the image contains overexposed pixels.





Note:  The brown area in the histogram represents this noise floor.




Simplified Histobar

For LiveView work, there is also the Simplified Histobar.



The Histobar is shown here at the top left of the liveview screen.



Red indicates overexposure, blue indicates extreme underexposure, and the yellow bar represents the midpoint.
The blue bar increases in size with increasing underexposure.  So the image above shows a small amount of the scene is extremely underexposed, and a full bar would indicate a large amount of the scene is extremely underexposed.

The midtone point is the median of the scene.  For further information, see this post by a1ex.




Zebras



Zebras provide a graphical overlay of the areas in the scene which are overexposed, and underexposed.



And a scene showing zebras/histogram, with overexposure, and underexposure.



As with the histogram, the color displayed by the zebras, represent the color channel in the camera that is overexposed.  Again, a Cyan reading is describing overexposure in both the Green, and the Blue channels, Yellow describing both Green and Red channels, and Magenta describing both Red and Blue channels.

Unlike the histogram, black describes overexposure in all color channels, and white describes underexposure.  This underexposure point describes any data that is within 1 EV of the camera noise floor.


Update:  dmilligan added some underexposure adjustment to the zebras.


This allows you to choose at what exposure the underexposure zebras will be displayed.  0 EV means that the zebras will be displayed where the amount of noise in the image, is equal to the amount of signal in the image (the noise floor). 
A general consensus amongst photographers, is that the limit for acceptable amount of noise in images, is 2 EV above this noise floor.




Dual ISO Zebras

When using dual ISO, there are dual exposures and the zebras reflect this.  With dual ISO there are two types of zebras. 
Full/solid zebras which work exactly like normal zebras, and describe overexposure in both ISOs
And half/stripe zebras which represent overexposure only in the higher ISO.

Looking at this image below from DeafEyeJedi, we can see there are solid zebras (black/yellow/green) in the lamp shade, and solid zebras (green/cyan) on the laptop screen.



So both ISOs being used in dual ISO have been overexposed in these areas.  The other stripe zebras are showing where only the higher ISO has been overexposed, in this case, blue, yellow and green on the wall behind.

The image below shows the same scene with only the higher ISO being overexposed, and only half/stripe zebras being displayed.






RAW vs JPG

So, what's the big deal with raw based feedback.  JPG processing is designed simply to produce good looking images directly from the camera.  Since all of the Canon exposure feedback is based from this JPG processing (even when shooting raw), it suffers from inaccuracy.  Raw data is not affected by picture style, white balance, or any other JPG based processing.  So when using raw data for exposure feedback, we have a very accurate representation of the actual raw data.

As an example, here is a scene showing the accuracy differences. 

The image on the left is showing Canon exposure feedback, and the image on the right is the raw histogram from Magic Lantern.


Notice how the Canon histogram is showing a large amount of overexposure in the red channel.  However, the actual raw data still contains some slight headroom.

jose_ugs


88oak88

loved this post'm kinda newbie in this area, and some post are very technical and does not reach the layman User, much of ML tools are unused for lack of an explanation like this too simply, thank you.

RTLdan

Great info!
Some of these tools are very common for experienced users, but this is the kind of info that would have helped a lot when I was first learning how to read the meters!

Is it safe to assume that since it is not listed as a RAW metering tool in this post, that the waveform monitor is jpeg based?

Thanks!
-Daniel

Audionut

Correct.  Only the spotmeter, histogram and zebras work with raw data.

a1ex

For this reason, Stevefal proposed to hide the jpeg-based exposure tools (like false colors, waveform, vectorscope) when shooting RAW. It should create less confusion, though some people may wonder where did these features go.

Audionut

And less clutter.  Yamlmo removed  :P

Kharak

Quote from: Audionut on September 04, 2014, 05:50:13 AM
Correct.  Only the spotmeter, histogram and zebras work with raw data.

I was under the impression that the waveform was RAW too.. Now looking at the menu again I see it doesn't mention anything about RAW.

This changes everything, I've been basing all my exposure on the Waveform
once you go raw you never go back

RTLdan

Coming from the video side of things, I too had been using the waveform monitor almost exclusively while shooting h.264... and the habit carried over into taking photos with RAW. I guess I need to retrain myself.

I've been experimenting lately with using the spotmeter to expose a subjects skin (caucasian skin) at between 50% and 70%. This seems to provide a decently exposed image for me -- although it only takes into account the brightest spot of the subject, of course.

Audionut

If the spotmeter is reporting in percentages, it's working in jpeg mode.  Look at the options in the OP, you need to set it to raw mode.  Here, you probably want evenly lit Caucasian skin around -2 EV.  Of course, this only exposes for that spot, and you may want to use zebras to get an idea of the exposure for the entire scene.  If the zebra overlay isn't an issue while shooting, I'd probably just stick with zebras.

If you're shooting with controlled lighting conditions, then I would absolutely use zebras for exposure, then disable the overlay, and shoot away.

Kharak

So is there no chance for the waveform to be developed in to RAW?

And I was laughing at the fs700 waveform :)
once you go raw you never go back

a1ex

The hardest part is finding a place for it in the menu :P

Kharak

Quote from: Audionut on May 29, 2014, 05:41:00 PM




The histogram in ML also contains Dynamic Range feedback.  This describes the ratio between the reported white level, and the Noise Floor of the camera, and is only very accurate when the image contains overexposed pixels.



Note:  The brown area in the histogram represents this noise floor.






I don't really understand the part about Dynamic Range Feedback..

I don't see or don't know how to see the noise floor in my histogram, could you be more specific Audionut? I am sure I am seeing it, but not sure what I am looking at.
once you go raw you never go back

Audionut

Two images shot @ ISO 100.  One has overexposed pixels, the other does not.





Notice the brown shaded area to the left of the histogram.  This is the noise floor.  Here is another shot @ ISO 6400, showing differences.



The noise floor doesn't actually raise per se as might be concluded by looking at the histogram.  Instead, the range between overexposure (clipping, saturation (the right hand side of the histogram)) and the noise floor decreases.

Personally, rather then using the histogram to judge image details in the noise floor, I use zebras.  As the image details become closer to the noise floor of the camera, it contain more noise.  dmilligan added adjustment to the zebras, so that you can control your own personal noise preferences.

Quote from: Audionut on May 29, 2014, 05:41:00 PM
Update:  dmilligan added some underexposure adjustment to the zebras.


2 EV is an general recommendation for acceptable noise in the image.  0 EV means only show zebras where the noise in the image equals the detail in the image (low quality, very noisy), and higher numbers mean less noise.  Generally I shoot with underexposure zebras at 3 EV.  This means, if there are no zebras in the image, I know I have high quality pixels with very little noise.  The other advantage to zebras, is that you have visual feedback on the display of where in the actual image, overexposure, or noise is occurring.

Kharak

Thank you for clarifying.

I always use RAW zebras for exposure feedback, but want to understand the other features as well. How does the Histogram measure the noise floor?

is the noise floor absolute useless underexposure?

once you go raw you never go back

Audionut

It's been a while since I looked at the code, but iirc, based on the noise in the optical black area of the image.

http://en.wikipedia.org/wiki/Noise_floor
QuoteIn signal theory, the noise floor is the measure of the signal created from the sum of all the noise sources and unwanted signals within a measurement system, where noise is defined as any signal other than the one being monitored.

There are some factors that change the noise floor of the camera.  Temperature is an external component that changes the noise levels.  The hotter the sensor becomes, the higher the noise level and vice-versa.

On Canon cameras, ISO also adjusts the noise floor.  With increased ISO (increased sensitivity), the camera is better able to distinguish between noise signal, and wanted signal, compared to lower ISO.  In essence, the noise floor is lowered.

Underexposure isn't really related to the noise floor, though you can underexpose the image to the point where the wanted signal becomes berried in noise.  Think of the noise floor as the point of no return.  If the histogram shows detail in the brown shaded area, the image detail is gone.  There is simply to much noise and not enough (wanted) detail.  In fact as mentioned previously, 2 EV (stops) above the noise floor is considered the lower limit of noise acceptability.  That is to say, any detail in the noise floor, and through to 2 EV above the noise floor contains to much noise.  So in essence, if your camera is rated as having 11 stops of dynamic range, only 9 stops is useable, the rest is noise.

If you want to know more about noise levels in Canon cameras, I suggest to spend some time reading this thread.  Check out the Any recommended reading? section in the opening post of that thread to help understand what is being researched in that thread.

a1ex

Quote from: Kharak on January 27, 2015, 02:05:09 PM
is the noise floor absolute useless underexposure?

This image should make things clear (click to zoom). The noise floor is at the first tick. The scale is linear - first tick has SNR = 0 EV, second has 1 EV, middle has 2 EV and far end has 3 EV.



from http://theory.uchicago.edu/~ejm/pix/20d/tests/noise/noise-p2.html#SNR-DR

Kharak

Ok, Thank you Alex. First and 2nd ticks are useless to work with, judging from your example.

I think I could use the 4th tick with that noise in a shadow in a scene, possibly the 3rd with some well adjusted noise reduction. Depending on artifacts and other lively noise. Guess it really depends on the scene aswell, how much information I really want to show the viewer in that area. But definitely useless if I did a shot where the viewer has to read the Declaration.

So in the latest example you gave me Audionut, where the noise floor covers about 30% of the histogram, with that information give or take, I can say that 30% of the shot is useless information or too noisy to retrieve anything usable? Not sure if I am reading it right.

once you go raw you never go back

a1ex

Quote from: Kharak on January 27, 2015, 06:05:33 PM
So in the latest example you gave me Audionut, where the noise floor covers about 30% of the histogram, with that information give or take, I can say that 30% of the shot is useless information or too noisy to retrieve anything usable? Not sure if I am reading it right.

If you set the histogram scaling to linear, yes. By default, it's logarithmic (this makes it easier to see whether a small area of the image is clipped or underexposed, but you can't tell how much by looking at areas on the histogram).

Kharak

Thanks for clarifying A1ex and Audionut.

After using ML for years now and after ML Raw came out, I still stand in awe of how much you guys have managed to pull out of these cameras. I thought of a good comparison to tell "normal people" when I try to explain what great feature Magic Lantern is, it is like a Nokia 3310 turned in to a Smartphone with all the features.

It is an incredibly powerful tool you have created, absolutely mindblowing!

Thank you.

once you go raw you never go back

Andy600

@a1ex - is there a technical reason why raw metering is not available unless you are shooting raw?

One scenario I can think of where it would be useful is when shooting H.264 with Cinestyle. I know you can use a workaround i.e. enable MLV, expose with raw metering, disable MLV and record but if it's possible for raw metering anytime it would be good to have the option.
Colorist working with Davinci Resolve, Baselight, Nuke, After Effects & Premier Pro. Occasional Sunday afternoon DOP. Developer of Cinelog-C Colorspace Management and LUTs - www.cinelogdcp.com

vertigopix

QuoteOne scenario I can think of where it would be useful is when shooting H.264 with Cinestyle. I know you can use a workaround i.e. enable MLV, expose with raw metering, disable MLV and record but if it's possible for raw metering anytime it would be good to have the option.

Great idea !

a1ex

I don't see the point. You can easily find an image that is not overexposed in RAW, but is overexposed by about 1 stop (sometimes more) in JPEG/H.264.

If you shoot with a picture profile that does not reach 255, simply adjust the overexposure threshold.

Andy600

That is the point (the 'sometimes more' bit).

What I'm asking is not useful at all for shooting H.264/Jpeg with ProLost Settings or default Pic Styles but Cinestyle would benefit from more accurate metering and raw ettr because there is literally no wiggle room with 8Bit log recording if you want to capture the max DR.

You can monitor RGB meters and stop down to guesstimate the clipping point but I prefer not to guess. The workaround I mentioned does give good results considering the limitations of H.264.
Colorist working with Davinci Resolve, Baselight, Nuke, After Effects & Premier Pro. Occasional Sunday afternoon DOP. Developer of Cinelog-C Colorspace Management and LUTs - www.cinelogdcp.com

Audionut

Adjust the overexposure threshold.  235 is probably a good starting point.