Astrophotography Stacking Guide: Frames, Rejection, and Dithering

Stacking is how astrophotographers beat noise: you align many exposures of the same target and combine them so random noise averages out while the faint signal reinforces. The payoff follows the square root of frame count — sixteen subs give you roughly four times the signal-to-noise of one. It is the single highest-leverage step in deep-sky imaging.

Properly, “stacking” is two operations: registration (aligning every frame to a common reference) and integration (statistically combining them). Done right it also rejects satellite trails, cosmic-ray hits, and the odd aircraft. This guide covers how many frames you actually need, which rejection algorithm to use, why dithering at capture matters more than any setting, and the mistakes that quietly wreck a stack. It is the core technique behind everything in the image processing pipeline.

Dozens of deep-sky sub-exposures aligned and stacking into a single nebula image on a laptop

Why Stacking Works: The Square-Root Rule

A single sub-exposure of a galaxy is mostly noise — read noise, thermal noise, shot noise from the sky background — with a thin real signal buried in it. Because that noise is random and the signal is not, averaging many frames pushes the noise toward zero while the signal stays put. The result is a cleaner image you can stretch much harder before it falls apart.

The exact relationship is that signal-to-noise improves with the square root of the number of frames (assuming equal sub length). Four frames roughly double SNR; nine frames triple it; a hundred frames gives ten times. That diminishing return is why imagers talk in total integration hours, not frame counts, and why there is no shortcut — you cannot process a thin two-frame stack into a deep image. The photons either landed on the sensor or they did not.

How Many Frames Do You Need?

There is no universal number, but there is a useful floor: aim for at least 20-30 subs for any serious target, and far more for faint nebulae and galaxies. Below about 15 frames, the rejection algorithms that throw out satellites and outliers have too little data to judge what is an outlier, so you lose their protection just when a stray trail can ruin the shot.

Sub-exposure length is the other half of the equation. Longer subs collect more signal per frame and help faint targets clear the read noise floor, but they also bloat stars, risk satellite trails, and demand better guiding. From my Bortle 5 backyard I keep individual subs short enough that light pollution does not swamp the histogram and just shoot more of them; from my darker Nordic site I can run longer subs and fewer frames for the same depth. Total integration time is what matters — how you slice it into subs is a tradeoff between your sky, your mount, and your tracking. The PHD2 autoguiding guide covers getting subs long enough to count.

Calibrate Before You Stack — Always

Stacking raw, uncalibrated frames is the most common beginner error, and it shows up as a background full of hot pixels, amp glow, and dust-mote shadows that no later step removes cleanly. Calibration frames — darks, flats, and bias or dark-flats — are measured and subtracted from each light frame before registration, so the integration combines clean data.

The order inside any stacking tool is fixed: calibrate each light, register the calibrated lights to a reference, then integrate. Build your calibration masters from 20-30 frames each so they do not inject their own noise. I keep a dark library for my cooled camera at set temperatures and reshoot flats every session because dust moves and focus changes. Skipping flats is the single most visible omission — vignetting and dust shadows survive every stretch.

Registration and Integration: Picking a Rejection Method

Registration aligns frames by detecting stars and computing the transform that maps each sub onto a reference; modern tools do this automatically and can even handle field rotation between sessions. Integration then combines the aligned frames pixel by pixel, and the rejection algorithm you choose decides how outliers get thrown out before averaging.

This is one place a comparison genuinely helps, because the right choice depends on your frame count:

Rejection methodBest frame countWhat it does
No rejection (pure average)Any (optimal for noise only)Maximum SNR but keeps every trail and outlier
Percentile clipping4-10 framesGentle rejection when data is scarce
Sigma clipping10-20 framesRejects pixels beyond a sigma threshold
Winsorized sigma clipping20+ framesRobust outlier rejection, my default
Linear fit clipping25+ frames, varying conditionsHandles changing sky brightness across a session

For most of my sessions with 30 to 60 subs, Winsorized sigma clipping is the sweet spot — aggressive enough to kill satellites, robust enough not to chew real signal. With marginal frame counts, drop to a gentler method or you will reject too much.

Equatorial mount and guide scope at night, illustrating dithering between sub-exposures for cleaner stacks

Dithering: The Setting That Beats All Settings

Dithering — nudging the mount a few pixels in a random direction between subs — is the most underrated quality lever in stacking. It moves the target slightly on the sensor each frame so that fixed-pattern noise, hot pixels, and walking noise land on different pixels every time. When the frames are registered back into alignment, those defects scatter and the rejection algorithm erases them.

The practical effect is dramatic: dithered data stacks cleaner than undithered data even with identical calibration, and it largely defeats the diagonal “walking noise” that plagues drift-prone setups. It costs a few seconds of settle time per frame and needs guiding (or a capture tool that can dither through the mount), but it is free image quality. I dither every session. If you also enable drizzle integration on a well-dithered, slightly undersampled data set, you can recover a little real resolution — but drizzle without dithering does nothing useful.

What a Good Stack Looks Like

The output of integration is a single linear master that still looks nearly black on screen — that is correct. Pull up a screen-transfer or autostretch preview and you should see smooth background, round stars, no walking-noise diagonals, no dust shadows, and faint target structure emerging from a clean field. That linear master is the raw material for the rest of the pipeline: gradient removal, color calibration, stretching, then noise and sharpening.

From here the workflow diverges by software. If you want a free, capable path, stack in Siril or Deep Sky Stacker and finish elsewhere; the PixInsight vs Siril comparison lays out which finishing tool fits your goals. Whatever you choose, a clean stack is the foundation — the acquisition gear that feeds it is covered in the imaging chain guide, and the camera choices that set your noise floor in the DSLR vs cooled vs mono comparison.

Frequently Asked Questions

How many frames should I stack for astrophotography?

Aim for at least 20-30 subs for any serious target and far more for faint galaxies and nebulae. Below about 15 frames, outlier-rejection algorithms have too little data to remove satellite trails and cosmic rays reliably. Total integration time matters more than the exact frame count.

Do I have to calibrate frames before stacking?

Yes. Calibration frames (darks, flats, bias) are subtracted from each light frame before registration and integration. Stacking uncalibrated data leaves hot pixels, amp glow, and dust shadows that no later processing fully removes. Flats in particular are the most visible omission.

What is dithering and why does it matter?

Dithering nudges the mount a few pixels randomly between subs so fixed-pattern noise and hot pixels land on different pixels each frame. After registration, the rejection algorithm erases them. It produces noticeably cleaner stacks and defeats diagonal walking noise for the cost of a little settle time.

Which rejection algorithm should I use?

It depends on frame count. With 20 or more subs, Winsorized sigma clipping is a robust default that kills satellites without chewing real signal. With under 15 frames use a gentler method like percentile clipping, because aggressive rejection needs enough frames to judge outliers.

Why does my stacked image still look black?

That is normal for a linear master. Deep-sky signal sits in the bottom few percent of the histogram. Use a screen-transfer or autostretch preview to inspect it, and apply the real nonlinear stretch later in the workflow after color and gradient work.

Related Guides

Written by

Kenny Nyhus Fadil

View all posts

Send Transmission

Your frequency (email) will not be broadcast publicly.