# MAG160C 逆向交接文档 v4(2026-08-12 深夜) > **最新快照。** 前版:handoff_20260812.md(白天)。 > 本轮完成:官方 NUC/参考帧机制完整逆向 + demo3 修复(颗粒感/FFC 变色)。 ## 1. 本轮成果 1. **完整逆向官方帧处理链(Windows CoreSDKLib.dll)**: ``` USB帧 → 帧计数分支(0x18000a0xx): 帧1-5: 0x18000c760(校正表生成, 无显示) 帧6-9: 0x18000c620(推帧0x41ee0平滑器→生成ref) + 0x18000c760 帧==9: 发送FFC(0x6bb6b672,1) 帧10+: 0x18000ca30(主处理) → 0x18000c950: 0x41f10平滑器(模式1: 首帧拷贝+EMA1/2) → f20缓冲(0x41f20) → 0x180017200(NUC查表: d=(f20-ref)>>1, 阈值表*(0x41858), 增益表*(0x41870), out=gain×d>>12+off, shift=0x11c=12) → dev+0x270 → 0x180017330(3x3加权, 表驱动) → dev+0x270 → 0x18001e920(0x41f40平滑) → 0x180010780(温度) → 0x1800109c0(窗口) → 放大 ``` 2. **参考帧机制(决定性)**: - ref(0x41ef0) = 平滑器0x41ee0(模式4)输出 = 启动时~22帧累加>>2(≈5.4×帧均值) - 只在启动(帧6-9)与FFC时更新;**正常流中不更新**(帧10+不推帧0x41ee0) - FFC后ref仅全局偏移变化(-145/-214),空间结构保持 - **官方ref含启动场景,不吸收后续场景 → 物体显示正常、无鬼影** 3. **表机制**: - 0x41848/0x41850 = 端点表1, 0x41858 = 插值输出(阈值表, 3项s16全局) - 0x41860/0x41868 = 端点表2, 0x41870 = 插值输出(增益表 nsegs×19200×(gain,off)) - 0x180016dd0/0x180016f10 = 分段线性插值(按dev+0x54温度在断点0x41564间插值) - 0x180016ae0 = 端点表初始化(帧0, 从配置0x417xx加载) - nsegs=0x41554=3, 端点索引0x41840, 断点0x41564/0x41568 4. **demo3 修复(用户反馈: 颗粒感+FFC变色)**: - **斜率 3 → 0.41**(官方量级: 物体100 counts → nuc 41; 之前3倍放大27倍噪声) - **FFC后不重采集ref**(REF_REINIT_AFTER_FFC=0, 只rebase全局偏移) — 重采集会吸收场景使物体消失/FFC后画面错 - 3x3双向滤波(live与ref同滤波, mura匹配) - 像素偏移+0修正, 启动延迟采集, 采集期间冻结显示 - **实测: temporal gray std 54→22, FFC前后gray均值恒定(74.5), 无颜色跳变** ## 2. 关键实测数据(pairs_nuc2) | 量 | 值 | |---|---| | nuc(0x270) | mean~9706 std~41 时域噪声13.7 | | f20(0x41f20) | ~10855±3639(≈USB帧, 含mura) | | ref(0x41ef0) | ~14654±3656(=f20+3875, mura同源corr0.998) | | d2=(f20-ref)>>1 | std~114, 与nuc相关仅0.04(坐标/语义错位, 未完全解密) | | 增益表seg1 | gain均值3352(≈0.82×4096), off≈9660(≈nuc) | | 平滑器模式 | 0x41fd8=4(0x41ee0), 0x41fdc=1(0x41f10), 0x41fe0=1, 0x41fe4=5 | | 帧流参数 | 2d78=4 2d88=5 2d8c=4 2d90=1800 2d94=250 | ## 3. demo3 当前状态 - 编译: build-artifacts/mag160c_demo3.exe - 管线: counts →(3x3+坏点)→ nuc=(live-ref)×0.41+9804 → 窗口[mean±312] → LUT1024 → palette256 → 2x显示 - ref: 启动nread>=130后45帧中值采集; FFC后只rebase全局偏移(不重采集) - 诊断: demo3_diag.txt(每帧 ref/live/nuc/窗口统计), demo3_auto_*.bmp(自动截图) ## 4. 未完成/待验证 - [ ] 官方nuc与(f20-ref)的精确映射(相关0.04, 表机制复杂未完全解码) - [ ] demo3斜率0.41的实机画面确认(对比度/颜色方向) - [ ] 0x180016ae0端点表初始化(0x417xx配置/DDT加载) - [ ] FFC状态机(0x73bf4, 帧号75/130) - [ ] ThermalSDK.dll完整逆向 - [ ] 启动黑屏~9秒可优化(更早采集或显示预热画面) - [ ] 热源场景验证(确认颜色方向: 热=白/红) ## 5. 环境 - 设备: Get-PnpDevice | ? InstanceId -match 833C - harness: build-artifacts/tsdk_pair2.exe [边界参数] - 官方SDK: IR_Camera_SDK-1.0.1/windows/windows/app/ - 反汇编: analysis/disasm/coresdk_windows_disasm.txt(193k行, UTF-16) - Python: numpy/scipy/PIL