Astrophotography Exposure Guide: From “1/3 Histogram” to Sensor‑Level Control
When you start deep‑sky imaging with a DSLR, the classic advice is: “Expose until the sky hump is about one‑third from the left on the back‑of‑camera histogram.” It’s a great beginner rule of thumb, because that JPEG‑based histogram roughly tells you two things at once:
- The sky background is lifted above the noise floor.
- You’re (probably) not blowing out too many stars.
Once you move to capture software like NINA or other acquisition tools, that familiar DSLR histogram often disappears. Instead you get longer exposures, more flexibility, and a panel full of statistics: minimum, maximum, mean, maybe a basic histogram, but no simple “1/3 from the left” guidance. If you’re also introducing filters such as the Spectral Pro, exposure decisions become even less intuitive, because the filter dims the sky and the usual DSLR rule no longer applies directly.
I always found those raw numbers a little difficult to interpret; I prefer a visual approach, and maybe you will too. This guide walks through a sensor‑level way to pick exposure times using three real Canon 600D test frames at 30 s, 140 s, and 240 s, each with and without a filter. Along the way, it also explains why filtered imaging almost always needs longer exposures than unfiltered imaging: the filter cuts out part of the incoming spectrum, so the sky background arrives at the sensor with fewer photons per second and has to be exposed longer to rise safely above the noise floor.
The key is to stop thinking only in terms of “1/3 from the left in gamma space” and start thinking in terms of:
- Black level (the sensor’s electronic zero point)
- Sky background level above black
- White level (the true saturation point in RAW)
- How many pixels sit at or above that white level
You’ll see one notebook screengrab in this post showing:
- Linear RAW histograms (logarithmic y‑axis) for all six frames
- Vertical reference lines at black and white levels
- A text block of per‑frame stats above each plot
Everything else in the article explains what those features mean—what black level is, why we want the sky a few hundred ADU above it, why white level (not the numeric maximum) is the real saturation point, and why summing all pixels at or above white level gives a useful measure of how “hot” an exposure really is.
Reading the example plot
Before we dig into definitions, it’s worth taking a moment to describe what you’re actually looking at in the notebook screengrab.
Each exposure pair (30 s, 140 s, 240 s) is shown as:
- A block of text statistics at the top for the “with filter” and “without filter” frame.
- A single combined histogram underneath, with:
- The filtered frame plotted in one colour.
- The unfiltered frame plotted in another colour.
- Both curves drawn from the linear RAW values (in ADU) for every pixel.
- The vertical axis on a logarithmic scale, so both the big sky hump and the thin bright‑star tail are visible.
- Two vertical lines:
- One at the black level (where bias and read noise live).
- One at the white level (the true saturation threshold in RAW).
The horizontal axis is labelled “RAW value (ADU, linear)”. This is the sensor’s raw number scale, with:
- Black level up near the left.
- White level and any saturated data towards the far right.
The log‑scaled vertical axis is labelled “Pixel count (log scale)”. This simply means:
- High bumps show the ranges where lots of pixels live (usually the sky background).
- Long, low tails show rarer values—bright stars, hot pixels, and the few saturated samples near white level.
Above each histogram, the text block gives you the key numbers for that particular file:
- RAW minimum and maximum value seen.
- Black levels per channel.
- The white level from the RAW metadata.
- Total pixel count.
- How many pixels are at or above the white level, and what fraction of the frame they represent.
- An approximate background level and how far it sits above black.
Together, the text and the plot give you a complete story for each exposure:
- Where the sky hump sits between black and white.
- How much of the frame is actually saturated.
- How the filtered and unfiltered frames compare at the same exposure length.
With that picture in mind, we can now define the pieces more precisely, starting with black level.

What is black level?
Digital cameras don’t use a true zero code for “no light.” Instead, they add an electronic offset so that read noise and calibration errors don’t produce negative values. That offset is the black level.
For a Canon 600D shooting RAW:
- Bit depth is 14‑bit, so the full numeric range is 0–16383.
- The camera’s black level per channel is around 2048 ADU (Analog‑Digital Units, your own equipment will vary).
- Even a perfectly dark pixel will sit near 2048, not near 0.
You can think of black level as the “electronic zero point” of the sensor. Anything at or near that level is dominated by:
- Bias (constant electronic offset)
- Read noise
- Dark current (for long exposures)
When you plot a histogram of all RAW values, the black level appears as the left‑hand “wall” where pixel counts suddenly rise: the point where the bias/read‑noise distribution starts.
Why the sky background must sit above black level
In deep‑sky imaging, you want your subs to be sky‑noise limited, not read‑noise limited. That means the random variations from the sky background (light pollution, airglow, moonlight) should dominate over the camera’s internal noise.
On a linear RAW histogram, this is easy to see:
- The black‑level line marks where bias and read noise live.
- The sky background hump is the large bump a bit to the right of that line.
The distance between them is what matters. If the sky hump:
- Hugs the black‑level line (only a small offset): exposure is too short; your noise is still dominated by electronics.
- Sits clearly to the right—typically a few hundred ADU above black on a 14‑bit DSLR: your subs are long enough that sky noise dominates, and stacking more exposures will efficiently improve SNR.
There’s no single magic number here; it’s a feel you build for your own camera and sky. But visually, you want a clear gap between the sky hump and the black‑level line, not just a slight bulge at the base.
Why adding a filter pushes you to longer subs
This is where filters like the Spectral Pro come in. A filter:
- Cuts out part of the incoming spectrum—especially light pollution lines and broadband continuum.
- Reduces the rate at which photons from the sky (and the target) reach the sensor.
On the linear RAW histogram, that means:
- The entire sky hump shifts left, towards the black‑level line, compared to an unfiltered frame with the same exposure time.
If you want to bring that hump back into a safe, sky‑noise‑dominated zone, you have to:
- Increase exposure length until the sky hump sits comfortably above black level again, even though the filtered frame might “look” darker to the eye.
This explains the everyday experience that:
- Unfiltered subs might be fine at, say, 30s under your sky.
- With a filter, you may need 240 s or more to get the sky background to the same “safe” position above black level, while still keeping saturation under control.
Maximum bit depth isn’t the saturation point
Because the 600D is a 14‑bit camera, it’s tempting to assume that saturation happens at code 16383 (2^14), the top of the numeric range. In practice it doesn’t work that way.
Manufacturers reserve some headroom and define a white level below the numeric maximum. For the Canon 600D at a typical ISO, you might see values like:
- RAW white level: 13584 ADU
- RAW max (actual highest code present in the frame): maybe 15300 ADU or similar
This tells you two things:
-
White level is the processing saturation point.
Anything at or above the white level is treated as “clipped” in RAW‑aware processing. Highlight reconstruction and tone curves assume no additional recoverable detail above this point. - Values above white level are “headroom,” not extra dynamic range.
The sensor and electronics can produce codes above the white level, but those values don’t represent extra meaningful scene information. They’re effectively “beyond white.”
So for exposure decisions, you should think in terms of:
- Saturation point = white level, not the absolute maximum code the ADC can produce.
On your linear RAW histogram, the white‑level line marks the point beyond which brighter pixels are no longer useful in terms of capturing additional dynamic range.
Summing all values at and above white level
To understand how “hot” an exposure really is, you don’t care about the exact shape of the extreme right tail; you care how much of the frame is beyond the useful highlight range. That’s where summing all values at or above white level comes in.
Conceptually:
- Flatten the RAW image into a long list of pixel values.
- Mark every pixel whose value is greater than or equal to the white level.
- Count how many there are and compare that to the total number of pixels.
This gives you:
- A saturated pixel count: how many sensor elements have effectively hit the ceiling.
- A saturated fraction: what percentage of the frame is unusably bright.
What’s interesting in real astro data is how small that number usually is:
- In the test frames, even 240‑second subs had only tens of saturated pixels out of ~18 million.
- The saturated fraction was typically a tiny fraction of a percent—often more like 0.000x%.
That tells you:
- You can afford fairly long exposures before the sensor’s highlight capacity truly becomes a problem.
- It’s normal for bright star cores to saturate a little; that doesn’t automatically mean your subs are “ruined,” especially if the saturated fraction stays tiny and the subject’s core (nebula, galaxy) is still below white level.
Why the log‑scaled y‑axis matters
A linear histogram tends to hide the interesting detail in deep‑sky data:
- The sky hump can dominate the scale.
- The faint tail of star cores and the tiny cluster of saturated pixels are squashed down near zero.
Switching to a logarithmic y‑axis fixes this:
- The main sky hump becomes a broad feature.
- The long tail of brighter pixels becomes clearly visible as it stretches towards the white‑level line.
- Even a small spike at saturation stands out, letting you see how populated that region really is.
Paired with vertical lines at:
- Black level (bias pedestal)
- White level (saturation threshold)
a log‑scaled linear RAW histogram gives you an immediate visual answer to:
- “How high is my sky compared to the noise floor?”
- “How close am I to the sensor’s ceiling, and how much of the data is actually clipped?”
What’s missing in typical NINA‑style histograms
Most capture tools, including NINA, already show some form of histogram, but they usually:
- Work in a gamma‑corrected or stretched space rather than pure linear RAW.
- Use a linear y‑axis, which hides faint tails.
- Don’t explicitly mark black level and white level.
That’s why the statistics panel (min, max, mean) can feel abstract: you know in theory what they mean, but it’s hard to relate them to the same kind of “feel” you get from a back‑of‑camera histogram.
By adding:
- A linear RAW histogram
- A logarithmic y‑axis
- Vertical markers at black level and white level
- A small text panel summarising:
- Background level and how far it sits above black
- Saturated pixel count and fraction
you get a much more intuitive bridge between the numbers and what’s actually happening on the sensor.
How to read these plots in practice
With a single combined plot (like the one from your notebook) showing multiple exposures and both filtered and unfiltered data, the workflow is:
-
Find the black‑level line.
This is roughly where the left‑hand side of the histogram “stands up.” Anything at or slightly above this line is dominated by bias and read noise. -
Find the white‑level line.
This is the processing saturation point. Anything to the right is effectively clipped; anything right up against it is dangerously close. -
Look for the sky hump.
This is the big bump somewhere between those two lines.- If it’s jammed up against black: subs are too short.
- If it sits nicely away from black but still well left of white: you’re in the sweet spot.
- If it’s drifting far to the right and a noticeable chunk of pixels live near or beyond white: subs are probably longer than you need.
-
Check the saturated fraction.
A tiny saturated fraction (e.g. only a few dozen pixels in 18 million) is normal and mostly comes from bright star cores. As that fraction grows, you start losing highlight structure in more of the frame.
When I originally captured this data, I didn’t have this kind of sensor‑level histogram in front of me. I was mostly relying on the basic statistics panel and manually checking stretched histograms in tools like Siril, Darktable and GIMP. Those views were useful, but they lacked three things that turn out to be crucial for exposure decisions: a true linear RAW histogram, a logarithmic y‑axis to reveal the faint tails, and explicit black‑ and white‑level markers to show where the noise floor and saturation actually sit. Without that context it was much harder to judge whether the Spectral Pro–filtered subs could safely be pushed longer.
Looking back at the plots now, the filtered sky peak still sits relatively close to the black‑level line and the number of saturated pixels is extremely small, which strongly suggests I could have stretched those exposures further and gained more signal without running into serious clipping.
Tying it back to filters and practical exposure choices
Once you’ve seen a few of these plots, patterns emerge:
-
Unfiltered imaging
- The sky hump is brighter for a given exposure time.
- Under your conditions, a mid‑range exposure (for example, 140 s) might place the hump comfortably above black level with almost no clipping.
- Pushing to 240 s may still be technically safe in RAW, but gives diminishing returns and moves more signal into the upper part of the range.
-
Filtered imaging (e.g. Spectral Pro)
- The same exposure times produce a sky hump closer to black because the filter has removed a lot of flux.
- To bring the sky hump back into that “few hundred ADU above black” comfort zone, you typically increase exposure time (e.g. 240 s instead of 140 s).
- Even at those longer times, the saturated fraction can remain extremely small because the filter limits how many pixels can get close to white level.
You don’t need to do any heavy calculation during a live session. Instead, you:
- Take a few test subs at different lengths.
- Look at where the background hump sits relative to the black‑ and white‑level lines.
- Glance at how many pixels the analysis tool reports as saturated.
- Pick an exposure where:
- The sky hump is clearly above black, and
- The saturated fraction is comfortably tiny.
From there, you can establish your own “house standards” for different combinations of camera, ISO, sky brightness and filters. And as histogram‑analysis tools evolve to show linear RAW with log scaling and these level markers directly inside your capture workflow, this way of thinking becomes just as easy—and much more informative—than aiming for “1/3 from the left” on a DSLR. Keep your eyes peeled as we will be releasing a python script to help you finding your ideal exposure at the start of an imaging session.