diff --git a/docs/android_app/session_state.md b/docs/android_app/session_state.md index e1d41f0..da73d75 100644 --- a/docs/android_app/session_state.md +++ b/docs/android_app/session_state.md @@ -489,6 +489,44 @@ "未连接"分支显示,正常出图时用户看不到任何反馈)。 - [x] 单测 66 → **76 项全绿**;debug + release(R8) 双构建通过;APK 已更新。 +## 用户反馈修复 第二十九轮(2026-10-06,渲染差异定位并修复:灰度 CDF 的 75% pivot) + +用户:"我说的就是渲染的差异……官方的对比度似乎更高,而且画面里面的条纹看起来也更少。" + +### 1) 逐一排除(都有反编译或实测证据) + +- **窗口**:Android `GrayEnlarge`/`CalContrastOffsetedAutoEnlargeRange` 与我们的 `statsWindow` + 在对比度 c=0 时逐字节一致(官方 App 也只传 `setAutoEnlarge(enlargeRange=8)`); +- **灰度 LUT/CDF 算法**:Android `HistDeRedundance` 与我们 `lutRebuild` 逐行一致 + (1024 桶直方图、双向 CDF、`total>>12`、`0x100/0x200` 步进); +- **调色板**:官方照片与我们照片都完美拟合 2 号铁虹(中位色差 0.67 / 1.00); + `VendorPalettes` 已记录 case 2 与我们的表 256/256 一致(§7 的"调色板不同"是裁剪污染误判,已纠正); +- **条纹本身**:我们手机 NUC 的 column-HF 7.20(0.63%)vs 官方 7.81(0.63%),渲染平坦块列抖动 + 更低(0.34–0.94 vs 0.81–1.44)→ 数据/降噪不差于官方。 + +### 2) 定案:**`cdfPivot75`(SDK 里由 `+0x60` 参数控制的 CDF 75% 分位支路)** + +测量方法:关闭两边对话框后同刻各截实时画面,用**调色板反解灰度**(99%+ 像素可唯一反解, +排除显示路径/色域影响): + +| | p25 | p50 | p75 | mean | +|---|---|---|---|---| +| 官方 App | 48 | **61** | 129 | 82.2 | +| 我们(pivot 开,原状) | 23 | **33** | 82 | 60.2 | +| 我们(pivot 关) | 31–34 | **50–54** | 132–135 | **79.8–81.2** ✔ | + +→ 关掉 pivot 后与官方分布重合。修复:`IrSession` 构造实时管线时显式 +`cdfPivot75 = false`(类默认仍为 true,C 参考的黄金测试不受影响)。已装机复验(视觉一致)。 + +这同时解释"条纹更少"的观感:偏暗/低对比时噪声与残留 FPN 更显眼。 + +### 3) csdk 同步 + +- 工具已改为 `cdf_pivot_75 = 0`(与官方手机 App 一致,库保留开关;`render_offline.c` + 生成黄金夹具仍用 1); +- 温度链移植(放射学分支)规格已写进 `csdk/README.md`,**待有 C 编译器时落地** + (本机当前 gcc/clang 均缺失,无法编译验证)。 + ## 用户反馈修复 第二十八轮(2026-10-06,温度链进 App + 真机对比:渲染差异收敛到 LUT-CDF) 用户:把温度修改同步进 App、真机测试没问题后改入 csdk;用官方 App 拍照对比,有差异就