← Handbook

Deconvolution and Linear Sharpening

Recover spatial detail blurred by seeing and optics on linear data, before stretch makes the blur visually obvious and harder to separate from noise.

schema 1 · revision 2

Recognize it

Intended output

A still-linear image with tighter stars and recovered fine structure, with no new ringing halos and no loss of faint extended signal.

Required input state

What NOVA does

NOVA's standard-mode default is bxt_deconvolve: BlurXTerminator with automatic PSF detection, stellar amount 0.5 and nonstellar amount 0.3. This runs through the stand-alone RC-Astro CLI, not PixInsight -- current NOVA tries a remote GPU endpoint first, falls back to a local RC-Astro CLI (CPU) if that is unavailable, and only falls back to SASpro's Cosmic Clarity Sharpen at the same amounts as a last resort. Each engine change is a real change in risk profile, not a silent equivalent. Because the RC-Astro path can drop WCS metadata and its output orientation is independently verified before acceptance, a result whose orientation cannot be confirmed is discarded and treated the same as an outright engine failure, falling through to the next tier rather than risking an unverified flip reaching later steps.

Use when

  • Stars and fine detail are measurably softer than the PSF should allow on otherwise well-tracked, well-focused linear data.

Skip when

  • Stars are elongated or trailed from tracking/guiding error rather than seeing blur.
  • The image is already noisy or oversharpened; deconvolution amplifies both.
  • No stable PSF can be estimated.

Limits

  • Deconvolution is not a fix for elongated or trailed stars; that is a tracking/guiding problem, not a PSF-blur problem.
  • AI deconvolution can ring stars into halos that only become obvious after stretch and star removal -- NOVA's own fallback path documents exactly this failure on NGC 6914.
  • A stable, estimable PSF is required; deconvolving an unstable or unknown PSF amplifies noise and artifacts instead of recovering detail.
  • AI deconvolution/restoration (BXT) and classical Richardson-Lucy deconvolution are not the same category of operation as generic linear sharpening, and neither is the same category as Cosmic Clarity Sharpen's AI sharpening fallback; treating any of them as mathematically equivalent because each increases apparent sharpness would be wrong.
  • A stronger apparent sharpness on the linear preview is not evidence of better restoration; it can equally mean noise or ringing that has not yet become visible.
  • When a measured PSF diameter is supplied instead of automatic detection, whether that value and BlurXTerminator's own expected unit agree is not established here -- this is an unresolved contract question, not a settled fact, and should not be normalized away.

Scientific and aesthetic notes

  • BXT deconvolution/restoration is not classical Richardson-Lucy, and neither is the same operation as Cosmic Clarity Sharpen's AI sharpening fallback; only BXT is the default -- classical RL (deconvolve_rl) is an explicit experiment-mode comparison, not the recipe path, and Cosmic Clarity Sharpen is a last-resort fallback engine, not an interchangeable alternative.
  • The same amounts (0.5 stellar / 0.3 nonstellar) mean different things on BXT and Cosmic Clarity Sharpen; do not treat identical numbers as proof of identical output.
  • NOVA's classical RL comparators run at 20 and 40 iterations -- fixed classical baselines for contrast, not tuned equivalents of BXT's adaptive AI model.
  • A fair comparison across deconvolution candidates needs the same linear parent, a controlled PSF and adaptation policy, identical masks, and matched downstream stretch, since ringing and faint-structure damage can become evident only after nonlinear transformation.
  • Deconvolution experiments span three different kinds of probe -- swapping the executing engine (BXT vs Cosmic Clarity vs classical RL), swapping the strategy at a fixed engine (bxt_globular's nonstellar=0.0 adaptation vs the general default), and tuning a parameter within one strategy -- and conflating them treats an engine change as if it were a dial turn.

Evidence and measurements

after deconvolution before and afterbefore deconvolution before and after
beforeafter
deconvolution before and after

Cross-tool matrix

Tool EquivalenceExpected resultEvidence
novaExact replayStars tighten and fine detail sharpens without new ringing or halos.nova-deconvolution-source, nova-m66-run-1.24.7
pixinsightExact replaySharper stars and detail with no visible ringing at native scale.nova-deconvolution-source, nova-m66-run-1.24.7
sirilSame engine, adapted hostMatches the PixInsight/NOVA BXT result closely; same engine, different host.m66-manual-verification
sasproFunctional alternativeSharper stars and detail; compare galaxy detail, star cores, dark rings, and halos 1:1 before accepting.saspro-source-1.18.0, m66-manual-verification

NOVA Python pipeline workflow 1.24.7

  1. Run on linear data after background extraction and color calibration, before denoise.
  2. Use automatic PSF detection unless a specific estimate is already validated.
  3. Inspect stars and faint structure at 1:1 before accepting; a plausible preview is not sufficient evidence against ringing that only appears after later steps.

Controls and starting ranges

engine default
bxt_deconvolve (BlurXTerminator via the stand-alone RC-Astro CLI, not PixInsight)
dispatch order
remote GPU endpoint first, local RC-Astro CLI (CPU) second, cc_sharpen_inprocess last resort
M66 recorded amounts
stellar_amount 0.5, nonstellar_amount 0.3
globular preset
bxt_globular sets nonstellar_amount 0.0 with automatic PSF -- an object-specific adaptation, not the general default
manual PSF mode
bxt_auto_psf=False passes a measured PSF diameter instead of letting BXT auto-detect it

Mask behavior: No explicit mask; protection comes from amount and PSF choice, not a painted mask.

Failure modes

  • Cosmic Clarity Sharpen looks sharper on the linear preview but rings stars into halos that become catastrophic after stretch and star removal.
  • Deconvolving noisy or poorly tracked data amplifies the defect instead of detail.

Recovery

  • Revert to the pre-deconvolution linear image and re-run with the primary BXT path or a lower amount.

PixInsight BlurXTerminator Core 1.9.3 Lockhart host; BlurXTerminator version not independently confirmed in this repo

  1. Run BlurXTerminator directly on the linear image with automatic PSF detection.
  2. Use NOVA's recorded amounts (stellar 0.5, nonstellar 0.3) as a starting point, not a universal preset.
  3. Compare star profiles and faint structure before and after at native scale.

Controls and starting ranges

M66 recorded amounts
stellar_amount 0.5, nonstellar_amount 0.3
PSF
automatic detection (auto_psf)

Mask behavior: Not applicable; BXT operates on the full image without a painted mask.

Failure modes

  • Accepting a sharpened linear preview without checking for ringing after stretch and star removal.

Recovery

  • Undo and re-run with a lower amount or a manually estimated PSF.

Siril via RC-Astro > BlurXTerminator.py (licensed external integration) RC Astro BlurXTerminator wrapper UI 1.0.5, model Latest v4, verified in Siril 1.4.4

  1. Open Scripts > Python Scripts > RC-Astro > BlurXTerminator.py on the linear image.
  2. Enable Automatic PSF; leave Correct Only off so deblurring/sharpening is applied.
  3. Record the wrapper and model version shown, since they are not bundled with stock Siril.

Controls and starting ranges

M66 verified settings
Automatic PSF on; Sharpen Stars 0.50; Adjust Star Halos 0.00; Sharpen Nonstellar 0.30; Correct Only off; Tile Overlap 0.20

Mask behavior: Not demonstrated; treat as full-image like the PixInsight host.

Failure modes

  • Treating this as a stock Siril feature -- it requires a separately licensed RC Astro integration.
  • Siril has no native AI deconvolution; classical Richardson-Lucy PSF-from-stars is the only no-extra-cost native path and is not equivalent.

Recovery

  • Revert to the pre-deconvolution image and re-run with adjusted amounts or the native RL path.

Seti Astro Suite Pro Cosmic Clarity Sharpen 1.18.0 source-inspected; Cosmic Clarity Sharpen demonstrated at version 1.19.11

  1. Run Cosmic Clarity Sharpen in Both mode (stellar and non-stellar) on the linear image.
  2. This is the same engine NOVA's bxt_deconvolve falls back to -- treat its ringing risk as real, not hypothetical, and inspect star profiles closely.
  3. Do not present the demonstrated amounts as a recovered NOVA value; they are a tested starting point.

Controls and starting ranges

M66 demonstrated
automatic PSF detection; mode Both; stellar amount 0.50; non-stellar amount 0.50; non-stellar PSF 3.0
NOVA fallback amounts
stellar_amount 0.5, nonstellar_amount 0.3 (not the same non-stellar value as the demonstrated run)

Mask behavior: Not demonstrated; full-image operation.

Failure modes

  • The same halo/ringing failure NOVA's own code documents for this engine, appearing after stretch and star removal.
  • Treating the RC Astro CLI integration explored in the same session as evidence for the SASpro-native Cosmic Clarity result -- it is a separate paid engine path.

Recovery

  • Revert to the linear input, reduce the amount, or use the primary BXT path instead.

Validation status

Not yet Jeff-validated. Use this as sourced guidance, not a certification.

Sources

Related evidence

The M66 recipe and Jeff-validation ledger will link here when their static exports are available. Until then, this article remains explicitly unvalidated.