Benchmarks and measurements
This page publishes methodology and fully contextualised Astraios measurements. It does not publish an Astraios-versus-Siril speed-up, because the two tools have not yet been timed on the same data with comparable settings. When that is done it will appear here with hardware, versions, frame count, dimensions, settings, warm-up, synchronization and repeat-run details.
What runs on the GPU
| Stage | Astraios |
|---|---|
| Registration (star detection, matching, warp) | GPU |
| Pixel rejection (sigma, winsorized, linear fit, percentile, min/max) | GPU |
| Integration, drizzle | GPU |
| Wavelet, chroma and TGV denoise; AI denoise; AI super-resolution | GPU |
| Deconvolution (Richardson-Lucy, spatially varying, multi-frame) | GPU |
| Wavelet sharpen, unsharp mask, convolution, CLAHE | GPU |
| Background extraction, stretches, curves | GPU |
| Master calibration combine | CPU (astropy/numpy) |
| Non-local-means denoise | CPU (OpenCV) |
| Plate solving, catalog lookups, file I/O | CPU |
Every GPU stage has a CPU implementation that produces the same result within a tolerance of 0.001% of full scale, so a CPU-only machine gets the same output, slower.
Reproducing timings
The repository ships scripts/benchmark.py. It prints the device, frame size and count, and the median wall-clock of each operation after a warm-up run with a device synchronize around the timed region.
poetry run python scripts/benchmark.py --size 3000x4000 --frames 30 --color
poetry run python scripts/benchmark.py --frames-dir /path/to/lights --runs 5 --json astraios.json
Illustrative shape of one run, not a published number (synthetic 1.5 MP colour frames, 8 subs, NVIDIA RTX 5060 Laptop GPU, machine under other load): register plus stack 8 frames 1898 ms; drizzle 2x 133 ms; wavelet denoise 129 ms; Richardson-Lucy 30 iterations 78 ms; background extraction 53 ms. Rules for a fair comparison and a Siril script template are in docs/BENCHMARKS.md.
Quality comparison with Siril 1.4.4
Measured on on the maintainer's machine (NVIDIA RTX 5060 Laptop GPU, 7.7 GB VRAM, Fedora-based Linux): the same 50 JPEG subs of M42 (Sony A7 III, 6000×4000, 240 mm) registered and stacked in Astraios 0.1.25 and in Siril 1.4.4 through siril-cli with matched settings (Lanczos-4 registration, winsorized sigma clipping 3/3, additive-plus-scaling normalization, no weighting) and the same reference frame. The two stacks were registered to each other and identical sky and the same 554 stars were compared.
| Measure | Astraios | Siril 1.4.4 |
|---|---|---|
| Same-star peak height (ratio) | 1.005 | 1.000 |
| Same-star FWHM | 3.76 px | 3.79 px |
| Sky noise at the 1 px scale (Siril = 1) | 1.10 | 1.00 |
| Sky noise at 4×4 and 8×8 binning | 1.00 | 1.00 |
Stacking Astraios' own aligned frames in Siril gives the same result as stacking them in Astraios (noise ratio 0.996 to 1.006), so normalization, rejection and integration are equivalent. The single-pixel difference comes from Siril's clamped Lanczos-4 resampling versus Astraios' bicubic warp. These are quality measurements, not timings.