Severity: High. The README tip says "Start with default settings and adjust from there", but the defaults fail on realistic footage.
Problem
Without -fl/-fh, postprocess_phase_signals applies no filtering. The phase signals are measured relative to frame 0, so any slow motion (camera or tripod creep, thermal drift, the object settling) appears as a large low-frequency ramp. After sub-bands are added, the output is min/max normalised to [−1, 1], so the ramp takes up almost all of the range and the audio shrinks to a small fraction of it. Any DC offset also affects the cross-correlation alignment.
Evidence (synthetic, 0.05 px, 440/660/250 Hz tones, 2200 fps, 0.5 s)
| added linear drift over the clip |
default: correlation with truth |
default: in-band (100–1000 Hz) RMS |
-fl 100: correlation |
-fl 100: in-band RMS |
| 0 px |
1.000 |
0.504 |
0.997 |
0.485 |
| 0.3 px |
0.264 |
0.127 (−12 dB) |
0.998 |
0.504 |
| 3 px |
−0.025 |
0.016 (−30 dB) |
0.952 |
0.426 |
A drift of 0.3 px over half a second is small for real footage, yet it makes the default output nearly useless.
Suggested fix
- Make a gentle high-pass the default, e.g.
-fl defaulting to max(20 Hz, fps/200). Keep --no-filter for raw analysis.
- Always remove the mean and linear trend of each band before alignment and summing.
- Normalise robustly: scale by a high percentile (e.g. the 99.9th of |x|) or to a target RMS, and clip, instead of min/max, which a single transient (a knock or a dropped frame) can dominate.
- Update the README tip.
Acceptance criteria
Severity: High. The README tip says "Start with default settings and adjust from there", but the defaults fail on realistic footage.
Problem
Without
-fl/-fh,postprocess_phase_signalsapplies no filtering. The phase signals are measured relative to frame 0, so any slow motion (camera or tripod creep, thermal drift, the object settling) appears as a large low-frequency ramp. After sub-bands are added, the output is min/max normalised to [−1, 1], so the ramp takes up almost all of the range and the audio shrinks to a small fraction of it. Any DC offset also affects the cross-correlation alignment.Evidence (synthetic, 0.05 px, 440/660/250 Hz tones, 2200 fps, 0.5 s)
-fl 100: correlation-fl 100: in-band RMSA drift of 0.3 px over half a second is small for real footage, yet it makes the default output nearly useless.
Suggested fix
-fldefaulting tomax(20 Hz, fps/200). Keep--no-filterfor raw analysis.Acceptance criteria