app+docs: 参考帧窗口参数化(baselineFrames, 默认4)——实测延长到8会把开快门帧收进参考导致不稳定;结论:需快门感知的参考收集

This commit is contained in:
ZXCLI
2026-10-06 04:47:36 +08:00
parent 1d6c5e3e55
commit 3510bdc774
4 changed files with 43 additions and 12 deletions
@@ -241,10 +241,24 @@ raw 帧**逐个推进 `CAccumulator`(`Reset(pixels, baseLineAcc=4, 0)`,mode
每次 FFC `Restart`)→ 参考帧是"长窗口指数平均";而我们 `refPush` 只做**4 帧等权平均** →
参考帧噪声显著更大 → 残余条纹更多 ✗。
### 9.4 下一步(精确)
### 9.4 参考帧窗口的实测与教训(已参数化,默认仍 4 帧)
1. 把我们的参考帧收集改成与官方一致:FFC 窗口内**逐帧 IIR 累积**(权重 = `CAccumulator`
的 mode,来自 BasePara2.baseLineAcc=4;窗口长度按官方 baseline 状态持续时长),
`IrSession`/`RenderPipeline` 的黄金测试继续用文档化的旧配置(默认 4 帧等权)以免破坏 C 对齐;
2. 装机用同一套灰度域指标回归:目标空间 HF ≈0.34(±20%)、帧间噪声保持不变;
把参考窗口从 4 帧延长到 8 帧(`RenderPipeline.baselineFrames`)后实测:
| 配置 | 灰度空间 HF | 灰度帧间噪声 |
|---|---|---|
| 官方 App | 0.34 / 0.26 | 4.12 / 1.80 |
| 我们 baseline=4(原状) | 0.76 / 0.80 | 4.02 / 3.95 |
| 我们 baseline=8 | 0.77 / 0.84 | **9.91 / 8.83(变差 ✗)** |
→ **不能盲目延长窗口**:设备和我们的 FFC 时序里,快门窗口比"6…13 帧"短,
多收的帧实际是**开快门**帧,把参考污染了(输出不稳定)。参考帧收集必须
**感知快门状态**(例如按帧统计判断快门是否关闭),而不是按固定帧号取。
### 9.5 下一步(精确)
1. 参考帧收集改成**快门感知**:在 FFC(0) 之后逐帧判断"是否仍为闭合快门帧"
(可用帧统计/与前一帧的差异判断),把**所有闭合帧**都累积进参考(对齐官方
`PushBaselineRaw` 的语义),FFC(1) 之后重置;
2. 用同一套灰度指标回归:目标空间 HF ≈0.34、帧间噪声 ≤4;
3. 之后同步 csdk(pivot + 温度链 + 参考累积)。