移植官方附加环节全部路径:帧差/隔行平滑/gray覆盖/Nx升采样(编译开关+按键测试)

- OFF_IMPL_230: 帧差调整 0x175a0 逐行移植(0x278 官方 NULL 时 no-op)
- OFF_IMPL_41FE8: 隔行平滑 0x184f0(2x)/0x18660(4x) 逐行翻译(4相位加权插值)
- OFF_IMPL_30: gray 覆盖路径——0x17c40 manual 逐行翻译(8x8窗口4x4采样
  对比度增强累积→gray);0x17770 auto 双边滤波结构移植(官方空间权重表
  在 .data 被裁剪无法提取,用标准高斯核近似,文档注明)
- OFF_IMPL_UPSCALE: Nx 升采样 4x/8x(2x 已验证模式推广,线性插值+边缘外推)
- 运行时按键切换:0=41fe8 模式、8=0x230、9=0x30 模式
- 验证:默认版无回归;全开版运行正常,41fe8=1 平滑生效(nuc std 250→95)
- 文档:csdk/README 开关说明、csdk/README 验证状态更新
This commit is contained in:
ZXCLI
2026-08-14 16:52:52 +08:00
parent 51c8ba9174
commit df6c6dd444
4 changed files with 1013 additions and 3 deletions
+29 -1
View File
@@ -151,10 +151,38 @@ USB帧(type=0) → 快门提取(帧尾字) → FFC状态机(0x9ee0)
→ 端点选择+Q12插值(0x16ae0/0x16dd0/0x16f10, 快门驱动)
→ ref = FFC窗口4个type=1帧均值(0x41ee0 mode=4)
→ NUC查表(0x17200) → 盲元补偿(0x17330, 32条固定记录)
统计+窗口(0x10780/0x109c0, half=312) → LUT1024重建(0x11ee0)
[可选后处理: temporal 0x1e920 / 帧差 0x175a0 / 隔行平滑 0x184f0/0x18660]
→ 统计+窗口(0x10780/0x109c0, half=312) → LUT1024重建(0x11ee0, 含0x8c)
→ 灰度+2x升采样(0x19740) → 官方调色板
```
#### 官方附加环节编译开关(默认 0 = 官方当前会话行为)
官方 SDK 中这些路径编译在内但当前会话控制字段为 0(未执行)。demo3
全部移植,用编译开关启用,运行时用按键切换测试:
| 开关 | 对应官方函数 | 官方字段 | 按键 |
|---|---|---|---|
| `OFF_IMPL_230` | 帧差调整 0x175a0 | 0x230=0 | 8 |
| `OFF_IMPL_41FE8` | 隔行平滑 0x184f0(2x)/0x18660(4x) | 0x41fe8=0 | 0 |
| `OFF_IMPL_30` | gray 覆盖 0x17770(auto)/0x17c40(manual) | 0x30=0, 0x84 | 9 |
| `OFF_IMPL_UPSCALE` | Nx 升采样 4x/8x | 当前 2x | — |
```powershell
# 默认版本(与官方行为一致)
gcc ... 见上文 demo3 编译命令
# 全部附加环节开启版(默认展示各路径,按键切回官方默认)
gcc -O2 -w -DOFF_IMPL_41FE8=1 -DOFF_IMPL_30=1 -DOFF_IMPL_230=1 -DMAG160C_STATIC ...
```
说明:
- 0x17770auto gray 双边滤波)的空间权重表在官方二进制 .data 节被裁剪
无法提取,demo3 用标准高斯核近似(σ=2.0),值域核按官方生成式(sqrt 核)。
- 0x17c40manual)已逐行翻译:8x8 窗口 4x4 采样对比度增强累积 → gray。
- 0x18660 为逐行翻译(4 相位加权插值);0x184f0 为 2-tap 半分辨率插值。
- 验证:默认版无回归;41fe8=1 开启后 NUC 输出 std 从 ~250 降到 ~95(平滑生效)。
运行(需要 `build-artifacts/` 下的 DDT 表文件):
```powershell