原汁原味补全官方管线细节:0x8c CDF 中心、temporal 移植、uniform 分支、状态标志

- 抓取官方会话控制字段确认实际启用路径:0x109c0→0x11ee0→0x19740;
  temporal(0x41fe0=1)/帧差(0x230=0)/隔行平滑(0x41fe8=0)/0x30=0 全关
- 实现 0x8c=1 分支:CDF 中心=max(均值bin, 累计75%bin),lres 545→631
  (官方 633,跨帧差 2 bin);用官方 cdf 离线验证 LUT 差异降至 123/1024
  (集中在灰度过渡区,跨帧异步所致)
- 移植 temporal filter(0x18001e920,0x41fe0>1 启用,默认关=官方)
- 补 uniform 帧分支(0x109c0:fmin==fmax 时 LUT/gray 置中灰)
- 补官方标志维护(0x4203c/0x42038/0x42004)
- 实机确认:ref=15502(type1)、d=-2390、win/stats 正常
This commit is contained in:
ZXCLI
2026-08-14 16:33:13 +08:00
parent 004f28910f
commit fe91a82762
92 changed files with 292 additions and 8 deletions
+12 -4
View File
@@ -127,12 +127,20 @@ LUT 填充公式:在正确 center 下 834/1024 精确,其余 ±1~±58 为
1. 1024-bin 直方图:bin = ((nuc-lo) * 0xffc00000/(hi-lo)) >> 22u32 算术)
2. 3-tap 就地平滑(bin 0..1022
3. 双向 CDF(从 mean-bin 向两侧累积):
3. **0x8c 分支(live=1**:找平滑后直方图累计 >= 总计数×3/4 的第一个 bin,
CDF 中心 = max(均值bin, 该bin)(实测 545 → 631,官方 633,跨帧差 2)
4. 双向 CDF(从中心向两侧累积):
- 向下:每累积 u21(=total>>12) 个计数 +0x100
- 向上:<8*u21 时每 u21 个 +0x100>=8*u21 时每 bin +0x200
4. 对比度曲线 curve[k] = max(1, (0x300000 + k*0x800)>>13)
5. 中心值二分搜索(fmin/fmax 对应 LUT 端约束)
6. center 时域平滑 + 重填
5. 对比度曲线 curve[k] = max(1, (0x300000 + k*0x800)>>13)
6. 中心值二分搜索(fmin/fmax 对应 LUT 端约束)
7. center 时域平滑 + 重填
验证:用官方同帧 cdf + 中心搜索,LUT 123/1024 差异,全部集中在 lres 上方
灰度过渡区(±1-7 级),来源是官方 SDK 抓帧的跨帧异步(cdf/lut 不同帧),
非算法差异。官方会话实测启用路径 = 0x109c0 → 0x11ee0 → 0x19740
temporal(0x41fe0=1)/帧差(0x230=0)/隔行平滑(0x41fe8=0)/0x30 gray 路径(0x30=0)
全部关闭,demo3 默认一致,temporal 已移植作备用开关。
## 6. 2x 升采样(0x180019740,逐像素验证)