Files
MapLibreParticleLab/docs/报告/STEP-087_QBIN_V3解码与13.4.1-particle.9升级_Codex完成报告_v1.md
tei a4cb727b16
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
docs: close STEP-087 particle.9 release
2026-09-21 10:02:33 +09:00

3.4 KiB
Raw Permalink Blame History

STEP-087 QBIN V3 解码与 13.4.1-particle.9 升级完成报告 v1

1. 执行方式

本任务最初尝试在 Mac 上交给 Codex 执行,但 Codex CLI 返回 usage limit,未实际执行修改。后续由 ChatGPT 通过 RDC 直接在 Mac 专用工作树 /Users/tei/dev/MapLibreParticleLab-qbv3-p9 完成代码、测试、版本升级、文档与 Git 收尾。

2. 实施内容

  • 基线包含 13.4.1-particle.8 的 Android / iOS 统一发行改动。
  • 新增 QbinV3Decoder,按 WeatherV2 QBIN V3 v2.2 冻结稿实现固定 Header / Descriptor、CRC32、canonical packing、VALIDITY、Predictor + ZigZag + Rice、Direction 环形残差与资源上限校验。
  • 生产 Block Geometry 固定为 16×16;不做双块尺寸猜测。
  • EncodedFieldIngress 显式识别 QBV2 / QBV3 magic;V2 兼容链保留,V3 使用新 decoder;解码后仍统一进入 FieldProfileValidator。
  • RasterArraySource::submitEncodedField() 改为统一使用 EncodedFieldIngress::decodeAndValidate()。
  • CMake / Bazel Core 注册 V3 decoder;CMake test 注册 V3 tests。
  • 新增 Current / Rain / Wave / Wind 共 8 个 QBIN V3 Golden Fixtures 及 manifest / 校验脚本。
  • Native / RN 当前版本声明统一升级到 13.4.1-particle.9。

3. Block Geometry 结果

C++ benchmark 使用四类真实 Golden 数据共 8 帧:

  • 16×16:2,470,419 bytes;encode 218.713 ms;decode 104.121 ms。
  • 32×32:2,514,288 bytes;encode 200.101 ms;decode 101.451 ms。
  • 32×32 payload 增加 43,869 bytes(约 +1.7758%),而 8 帧总 decode 仅减少约 2.67 ms。
  • 因网络/缓存/跨桥传输尺寸是 QBIN V3 的核心目标,最终冻结 16×16。

4. 验证结果

  • QBIN V3 Golden Fixtures 校验:PASS,8 files,block=16×16。
  • C++ 定向测试:PASS 8 / FAIL 0。
  • Current / Rain / Wave / Wind V3 解码结果与对应 V2 canonical raw 做逐 plane / validity byte-for-byte 对比:PASS 8 / FAIL 0。
  • git diff --check:PASS。
  • iOS Metal MapLibre.dynamic 正式 Bazel 构建:PASS;生成 device-arm64 MapLibre.dynamic.xcframework.zip。
  • Android 统一 Release 构建:PASS,包含 armeabi-v7a、arm64-v8a、x86、x86_64 四 ABI。
  • Android APK / ADB:按项目规则未执行,由用户手工完成。

5. 文档与数据

  • 原始设计:docs/30_设计/WeatherV2_QBIN_V3通用天气场二进制格式与React独立Render_Binding设计_v2.2_最终冻结稿.md。
  • Block Geometry 决策:docs/30_设计/MapLibreParticle_QBIN_V3_Decoder与BlockGeometry实施决策_v1.md。
  • Step 记录:docs/50_Step记录/STEP-087_QBIN_V3解码与13.4.1-particle.9升级_v1.md。
  • Golden Fixtures:integration/react-native/MapLibreParticleRNTestHost/assets/qbin-v3-golden/。

6. Git 收尾

  • 实现提交:0e8c87fe49fb45c23a88d8f6cbf79dbc70df393c
  • 实现提交信息:feat: add QBIN V3 decoder for particle.9
  • 发布 finalize 提交:63047540cba703c8efeae0df71e759e165315f85
  • 发布 finalize 提交信息:release: finalize unified particle.9
  • Push:PASS
  • 远端分支:origin/particle/main
  • Release Final HEAD / Tag HEAD:63047540cba703c8efeae0df71e759e165315f85
  • Release Tag:maplibre-particle/rn/13.4.1-particle.9
  • Android AAR:6114067c45685e2d20b3dd5115c480a39341177ac8608f86ec431562f649e395
  • RN tgz:98dc94e88dc69c06c9d99cc8ece3547f0489ba650c4a3d71814eab45e8720dcb
  • iOS XCFramework zip:fbda91e09d53e3cd1362590bfc0410b6fb5f9fef4cf99796d4ab7b4b84c93562
  • SwiftPM:6.28.0-particle.9,public readback PASS。