docs: 第二十八轮心跳(温度链进 App 并真机验证;渲染差异收敛到 LUT-CDF,附下一步)

This commit is contained in:
ZXCLI
2026-10-06 03:36:57 +08:00
parent 604ab0cd7e
commit 4f3bb50e4a
+39
View File
@@ -489,6 +489,45 @@
"未连接"分支显示,正常出图时用户看不到任何反馈)。
- [x] 单测 66 → **76 项全绿**;debug + release(R8) 双构建通过;APK 已更新。
## 用户反馈修复 第二十八轮(2026-10-06,温度链进 App + 真机对比:渲染差异收敛到 LUT-CDF)
用户:把温度修改同步进 App、真机测试没问题后改入 csdk;用官方 App 拍照对比,有差异就
Android SDK 与 Linux SDK 交叉验证。
### 1) 温度链进 App(已装机运行)
- 新增 `core/OfficialTemp.kt`:官方放射学链(波段映射 + AT 环境误差修正 + 发射率 revise),
曲线 A 直接用现成 `OfficialTables.T2E`(646 项与官方逐项相等),斜率表现算(公式一致)。
- `IrSession` 解析 **BasePara2**(真机报文验证的偏移:payload 不含 magic,`+14 short fpaTempFix`、
`+40 int ATZeroErrorPoint`、`+44 float ATErrorSlope`)与 **DDT 尾部波段记录**;
`RenderPipeline.officialTemps()/probeTemp()` 与 `LiveViewModel` 已切到官方链(缺失参数自动回退旧曲线)。
- 单测(全绿,含既有 100+ 项):官方同帧夹具 400 点(均值 17.5 mC)+ 真机 BasePara2 报文
+ DDT 尾部记录与设备内存记录逐字段一致 + 曲线往返 + 波段单调性。
- 真机:`zero=22216 slope=-0.0279`,radRecord `bands=8 shift=12 eps=1.0`;实时读数
中心 27.8–28.5 ℃ / MAX 34.7 ℃。
- **新发现**:设备上报的 `fpaTempFix=1699` ≠ PC 上实测的补偿量 `v50`(=dev+0x5C−dev+0x54,
0…89 mC)→ App 侧 `sensorDeltaMc` 暂取 0(误差 ≤0.09 ℃),来源待定位。
### 2) 手机端拍照对比(详见 `rendering_diff_phone_20261006.md`)
- 官方 App 照片是**纯 JPEG(无任何数据块)**;我们的是完整 MDT。
- 同场景亮度:官方 mean≈84 / p50≈49,我们 mean≈53 / p50≈19(偏暗);实时画面同样复现
(mean 53–72 vs 20–25),确认是**显示映射差异**而非时刻/场景差异。
- **三 SDK 交叉验证**:窗口公式 `CalContrastOffsetedAutoEnlargeRange`(Android)与我们移植的
`statsWindow` 在对比度 c=0 时**逐字节一致**(官方 App 也只传 `setAutoEnlarge(enlargeRange=8)`,
未设对比度;Win/Linux 侧同名 API 参数一致);直方图骨架也一致(`0xFFC00000/span`、`>>20 & 0xffc`)。
- → 差异收敛到 **灰度 LUT 的 CDF 细节**:Android 版 `HistDeRedundance` 有**双向 CDF + 步长量化**
(`local_1024 = total>>12`、`iVar3 = 0x10000/local_1024`、前后向各建一张 0x10cc/0x10d0 表),
我们的 `lutRebuild`(PC 版语义)没有这套量化。
### 3) 下一步
1. 按 Android SDK `HistDeRedundance` 重做 `lutRebuild`(含 `+0x60` pivot 分支与双向 CDF 量化),
用真机截图/照片定量回归(目标:luma 直方图与官方 App 吻合)。
2. 补 `getExtParameter`(ExtPara:`intContrastOffset/intBrightOffset/intCurrentEnvTemperature`),
把设备的对比度/亮度/环境温度接进管线;温度读数接 App 的发射率设置。
3. App 确认无误后,按用户要求同步进 **csdk**(C 参考实现 + csdk 测试)。
## 用户反馈修复 第二十七轮(2026-10-06,官方温度链反编译:按 IDA 结果重建,系数待钉)
用户要求:"修复这些的时候要和 ida 或者 Ghidra 反编译的结果对的上,不要自己瞎猜,并且是