Stacking Quality: Direct vs. Stack-of-Stacks

CrowdSky stacks your raw frames into 15-minute chunks. But what if you want to combine hours of data — does pre-stacking into chunks lose quality compared to stacking everything at once? We ran the numbers. The short answer: no.

The Bottom Line

You can safely delete your raw files after CrowdSky has stacked them into 15-minute chunks. If you later want to combine multiple chunks into a deeper image, the result is statistically indistinguishable from stacking all the original raw frames at once.

In our test with 520 frames of M16 (Eagle Nebula), the stack-of-stacks actually measured lower background noise than the direct stack, detected more stars, and agreed to within 0.4 ADU per pixel.

Visual Comparison

520 raw frames (10 s exposure, LP filter) stacked two ways: all at once (left) and via eight 15-minute chunks then combined (right). Can you tell the difference?

Side-by-side comparison of direct stack vs. stack-of-stacks of M16

Measured Results

After aligning both results to the same reference frame, we compared background noise, star detection, and resolution. The two methods are nearly identical on every metric.

Metric Direct Stack Stack-of-Stacks Difference
Background noise (R) 1.73 ADU 1.54 ADU −10.7%
Background noise (G) 1.55 ADU 1.34 ADU −13.4%
Background noise (B) 1.51 ADU 1.40 ADU −7.0%
Background mean level 1631.1 ADU 1631.7 ADU +0.6 ADU
Stars detected 1981 2021 +40
Median star FWHM 2.774 px 2.825 px +1.9%
Median star SNR 72.1 73.5 +2.0%
Median pixel difference 0.4 ADU

Green values favour the stack-of-stacks. The only metric where the direct stack edges ahead is star FWHM (+1.9%), caused by one extra round of image interpolation during alignment — a sub-pixel effect invisible in practice.

Difference Image

Subtracting one result from the other (after alignment) shows the per-pixel residual. The image is almost perfectly flat — the only visible structure is at the very brightest stars, where different sigma-clipping decisions affect a handful of pixels.

Per-channel difference image between direct stack and stack-of-stacks

Colour scale spans roughly ±3 ADU. The median absolute difference across all pixels is just 0.4 ADU — entirely explained by the integer rounding when saving intermediate FITS files.

Star Quality Distributions

Star FWHM distribution comparison

Star sharpness (FWHM) distributions overlap almost perfectly. The +1.9% broadening in the stack-of-stacks comes from one extra interpolation pass during the second-tier alignment.

Star SNR distribution comparison

Signal-to-noise distributions are essentially identical, confirming that pre-stacking preserves the full depth of the data.

Why Pre-Stacking Doesn't Lose Quality

For a pure mean combination (no outlier rejection), stacking in two tiers is mathematically identical to stacking in one pass:

mean(mean(chunk1), …, mean(chunkK))  =  mean(all M frames)

The noise reduction factor is √M regardless of whether you compute it in one step or two. You don't add noise between stages — you divide it at each stage, and the total reduction is the same.

The small differences that do arise come from three sources:

  1. Sigma clipping granularity. The second-tier combination has only K = 8 data points per pixel (one per chunk), giving slightly different outlier rejection than the K = 520 points available in a direct stack. In practice this made the stack-of-stacks cleaner, not noisier.
  2. Double interpolation. Two rounds of alignment each resample the image, adding a tiny amount of PSF broadening (+1.9% FWHM). Invisible in real images.
  3. Integer quantisation. Intermediate stacks are saved as 16-bit integers, rounding fractional ADU values. This adds ~0.3 ADU of noise per intermediate, which shrinks to ~0.1 ADU after combining eight chunks — negligible compared to the ~1.5 ADU background noise.

Test Details

TargetM16 (Eagle Nebula)
Frames520 × 10 s, LP filter, Seestar S50
Session2025-08-01, 01:00–03:00 UTC (~2 hours)
Blocks8 × 15-minute chunks (45–69 frames each)
Stacking methodSigma-clipped mean (σ = 3.0), astroalign registration
Direct stackTwo-pass streaming (Welford’s algorithm), single reference frame
Stack-of-stacksFrameCollection per block → astroalign Tier-2 combine
Alignment offset34.1 px shift, 0.071° rotation between the two results