aeharding / aeharding/kjerag

Chromatic Calibration: automatic photometric lens fusion with Studio parity

Abierto
#185 2 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Rust
Estrellas
1
Forks
0
Merge medio
1 d 15 h
PR fusionados (30 d)
4

Descripción

## Goal

Add **Chromatic Calibration with Studio parity** after issue #184 delivers the initial
shared ONE X2/X4 Air camera stitcher. In Studio project terminology this is
`image_fusion`: photometric matching of the two lenses' color and brightness,
not optical chromatic-aberration correction or per-channel lens displacement.
It must be automatic and require no calibration control or setup.

## Evidence already available

- `docs/research/linux-landscape.md` section 6 records the maker SDK's
`EnableStitchFusion` description: it corrects exposure/brightness mismatch
across the seam.
- The exact Studio 6.0.2 Flow On and Flow Off projects authenticated by
`docs/research/studio-video-oracle-602.json` both encode Image Fusion **ON**.
They isolate optical flow, not Image Fusion, and provide no Image-Fusion-off
result or coefficients.
- `crates/render/src/chromatic.rs` and `crates/render/src/chroma.rs` retain a
GPU correction field whose zero value is exact neutral; the generic
compositor applies per-lens additive Y/Cb/Cr corrections before RGB
conversion and blending. The selected direct Type-2 path does not currently
consume that correction.
- Issue #103 is related historical seam-photometry work, not this completion
item. Its applied field was owner-rejected; its measurement and
anti-acceptance record in `docs/research/seam-blending.md` remains binding.

## Required work

1. Preserve an exact default-neutral per-lens photometric input at the shared
GPU source-sampling/fusion boundary. Apply it to each geometrically selected
lens sample before alpha blending. Missing or not-yet-measured data must
produce byte-identical neutral output.
2. Derive observations only from source locations proven to represent the same
scene point by the active per-frame geometry. Gate or reject occlusion,
parallax, invalid coverage and unaligned seam samples. Do not infer color
from same-direction samples before alignment.
3. Estimate automatically from pixels. Do not use per-clip tuning, a setup
ritual, shutter as a brightness ratio, invented coefficients, or an
unsupported claim that Studio's field/grid applies unchanged.
4. Keep the implementation GPU-resident and frame/capture identity explicit.
Reuse qualified existing machinery only where its coordinate, lens-order
and temporal contracts match the shared engine.

## Acceptance

- Prove neutral mode exactly preserves the issue #184 render for both cameras.
- Compare actual rendered sequences with the relevant Studio setting isolated;
inspect the correction's full painted area and seam trace, then obtain the
owner's eye verdict. Metrics alone do not establish parity.
- Report active-playback throughput at output resolution plus median, p95, p99
and maximum frame times, source cadence and audio underruns. A kernel-only
result is insufficient.

This issue is required follow-on work. It is not implemented, verified or
Studio-parity-complete today. Broader optimization RE remains frozen. Reuse
existing references first; new evidence should answer a bounded photometric
question, not reopen general stitching research.

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.