-
Andrey Filippov authored
FPN = mean(scene - backProject(center)) is a fixed point that preserves the center's own content residual (the rotating ghost): recomputing against the same contaminated center reproduces the same ghost regardless of rot_period or photometric vintage (POSE-12 confirmed: 43.1/92.0 unchanged). Iterate per Andrey's design (internal handoff 2026-07-06): 1. subtract fpn_k from scenes in memory (setApplyFPN, delta-aware) 2. rebuild the center IMAGE from the corrected scenes over integer rotations - new Cuas.rebuildCenterImageInMemory(): new-average only (no parent cumulative fold), NOTHING persisted, center_clt and image_center untouched (the .cuas cumulative is upstream state) 3. back-propagate against the rebuilt center image (swapped in/restored around the measurement) -> residual dG = the ghost 4. fpn_{k+1} = fpn_k + dG in NEW arrays (scenes hold fpn_k references as applied-FPN for delta re-apply); prints |dG| RMS/max per iteration 5. cuas_debug saves per-iteration -FPN-DG-ITERn Gated by new dialog field "FPN back-propagation iterations" next to "Rotation period"; default 1 keeps the POSE-12 baseline bit-reproducible. Verify by RT-RENDER horizon/sky pk-pk (43.1/92.0 -> temporal-noise floor). Data path verified: applyFPN sets hasNewImageData, honored by both GpuQuad.setBayerImages and GpuQuadJna, so corrected pixels reach the GPU for the rebuild and the second back-propagation. Co-Authored-By:Claude Fable 5 <noreply@anthropic.com>
3b1049d6
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| rt | ||
| CorrectionFPN.java | ||
| Cuas.java | ||
| CuasCenterLma.java | ||
| CuasData.java | ||
| CuasMotion.java | ||
| CuasMotionLMA.java | ||
| CuasMultiSeries.java | ||
| CuasRanging.java | ||
| CuasTile.java |