ZXCLI df6c6dd444 移植官方附加环节全部路径:帧差/隔行平滑/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 验证状态更新
2026-08-14 16:52:52 +08:00

MAG160C 热像仪逆向工程

MAG160C 热像仪(160×120USB VID 0x833C)的 USB 协议、官方 SDK 逆向、纯 C SDK 和官方渲染管线逐像素复刻demo3 v5)的完整工程。

从这里开始

新接手者按顺序阅读:

  1. analysis/reverse_20260813_full.md — 官方管线 Ghidra 全量逆向 + 鬼影根因(最新)
  2. analysis/session_state.md — 当前会话状态与恢复点(心跳锚点)
  3. 交接_完整逆向工程说明_20260811.md — 项目总交接(目录/环境/历史/失败路线)
  4. analysis/protocol_spec.md — USB 协议/帧/命令/温度规格
  5. csdk/README.mdC SDK 完整使用文档(构建/API/工具/测试)
  6. csdk/tools/mag160c_demo3.c — 主程序(官方管线复刻)

当前状态(2026-08-13

  • demo3 v5 已完整复刻官方渲染管线:DDT 校准表加载 → 快门驱动端点选择与 Q12 插值 → ref=FFC 窗口 4×type1 帧均值 → NUC 查表 → 盲元补偿 → 窗口 → LUT1024 重建 → 灰度 → 2x 升采样 → 官方调色板
  • 逐像素验证:NUC+盲元 0/19200、插值 0 误差、2x 0/76800、窗口一致
  • 同静态场景 gray 直方图与官方相关性 0.92(跨会话)
  • 原"鬼影"问题的根因已定位并复刻官方行为(见 reverse_20260813_full.md §7

硬件

  • 设备:MAG160C 热像仪,分辨率 160×12015 fps
  • USB VID0x833C,常见 PID0x0001
  • 帧:19200 个小端 uint16;端点:命令 0x03/响应 0x82/实时帧 0x81

快速入口

# 编译 demo3(官方管线复刻)
gcc -O2 -w -DMAG160C_STATIC -I"csdk\third_party\libusb\win64" -I"csdk\include" -I"csdk\src" `
    -o build-artifacts\mag160c_demo3.exe csdk\tools\mag160c_demo3.c `
    csdk\src\mag160c_display.c csdk\src\mag160c_error.c `
    csdk\third_party\libusb\win64\libusb-1.0.x64.a -lgdi32 -luser32

# 启动
Start-Process "build-artifacts\mag160c_demo3.exe" -WorkingDirectory "build-artifacts"

详细用法见 csdk/README.md

仓库结构

路径 用途
csdk/ 纯 C SDK + 工具(见 csdk/README.md
analysis/ 逆向证据:反编译导出(ida/)、协议规格、交接文档、抓帧数据
IR_Camera_SDK-1.0.1/ 原厂 Windows/Android/Linux SDK
build-artifacts/ 运行目录(demo3 exe、DDT 表、官方抓帧工具)
docs/ vendor-docs/ app/ 历史资料与模块文档
tools/resume_rev.ps1 会话恢复脚本(心跳配套)

历史文档(早期 findings/progress/task_plan、根目录抓帧残留)已归档到 analysis/history/;早期探索工具源码在 csdk/tools/legacy/

仓库说明

仓库包含官方 SDK、第三方依赖、二进制样本和抓帧数据。部分内容可能受原厂 许可限制,仅用于本项目的互操作性研究和设备调试。大型文件使用 Git LFS。

S
Description
No description provided
Readme
1.1 GiB
Languages
C 43%
Assembly 11.2%
Python 10%
Java 9.3%
C++ 6.9%
Other 19.4%