Skip to content

v1.0.1.85 — FPN residual refine + low-light overhaul

Choose a tag to compare

@NickEngmann NickEngmann released this 01 Aug 15:20

Vertical banding — round 2 (works with ZERO calibration)

  • Per-capture residual refine ("bootstrap destripe"): at encode time each frame's residual column offset is estimated from its own dark flat rows and removed — uncalibrated devices get ~80% of the banding fix immediately (real-capture: band p95 10.6→2.3 DN), and calibrated devices get the full-resolution/PRNU residue the 1280-bin profile can't represent. Engage-gated: clean frames stay bit-identical. Escape hatch: set_fpn_refine off.
  • FPN auto-calibration now actually arms on plain-P4 v1.3: the calibration tasks spawn with PSRAM stacks (the 16 KB internal stack never fit on v1.3 — profiles could never be stored).
  • Rotated re-encodes no longer mis-apply the FPN profile (rotation ran before the column mapping — it was adding banding on album-ROTATE captures).

Low-light shots

  • New encode-side low-light pipeline (lowlight.c): edge-preserving noise reduction (flat noise 0.65→0.27 DN, JPEG blocking 1.68→1.33) + a hybrid linear+gamma lift that reaches the target brightness the old 3.0× linear clamp never could — while capping total lift at 4.5× so a black room stays black instead of gray fog. Ordered-dither requantization prevents shadow posterization. Escape hatch: set_lowlight off.
  • Dark-scene 8× analog gain ceiling (camera side): the P4 raises the OV5640 analog gain ceiling from 2× to 8× when the scene is dark (bench-measured ~3× more source signal, digital lift dropped from a pegged 300% to ~150%), reverting to 2× in bright scenes. Rides the same hysteresis as adaptive JPEG quality; the refine + NR absorb the noise/banding cost.

Validation

134+ host unit tests (incl. 11 new), host_encode 114/0, fast e2e 35/39 on the bench (all 4 non-passes triaged as known flakes / transients that pass standalone), on-device A/B on two P4X rigs incl. night captures. Cameras auto-update to S3 build fw_crc 0xb12c0e87 on first boot.