AskaEth
1725af631b
图库: 门控模型接真缩解后端 + _step 全格式后端(M27)
M23 交付了真缩解后端却「修好了用不上」:_step 只接 JPEG,而阅读器的峰值模型
仍是 stb 口径(PNG/BMP 按 W·H·4、JPEG 按缩解后整幅 RGBA),12MP/PNG 页全被判
超预算占位。本次把两处缝焊上:
- sdk/meow_ui_img.c:meow_img_load_file_step 的 JPEG-only 限制放开到 PNG/BMP;
新增 meow_img_load_file_step_ex 回报实际路径(backend/stb),日志可核对预判。
- tuku/logic/reader/page_source.[ch]:新增 reader_estimate_peak(),成为峰值模型 +
预算 + MemAvailable 门控的唯一实现(reader 不再另写一份)。
* 后端命中(JPEG SOF0/1/2、≤3 分量、8bit、N=1..7;PNG 非交错/标准压缩/合法色型;
BMP DIB≥40/BI_RGB/8·16·24·32bpp)→ 峰值 = 目标图 + 分量平面/行缓冲 + 固定开销,
与源分辨率无关 → 直接放行,不门控;
* 只有回退 stb(CMYK/算术编码、Adam7、RLE/1-4bpp、N≥8 小图等)才按 M22 stb 模型
算峰值,超 3MB 或 MemAvailable <6MB 才占位。Adam7 另补 stb 的整幅暂存上界。
- reader:删掉本地 stb 模型/常量,统一调 reader_estimate_peak;日志加 path=backend|stb。
- 测试:6 类典型页(2000×3000 baseline/渐进/restart、1600×2400 PNG/BMP、4MP、12MP)
断言全部 backend + 不占位 + 估算 ≥ 实测且 ≤1.5×(实测 1.03–1.08×);两条路径输出
尺寸逐像素一致;CMYK/Adam7/1bpp 断言走 stb 并按旧门控占位;连翻 30 页无占位、
单页分配峰值 ≤3MB;membudget 链接补 meow_ui_time.c 与 M23 两个解码 TU。
2026-11-06 11:46:16 +08:00
..
2026-09-03 05:09:05 +08:00
2026-09-01 21:12:17 +08:00
2026-09-04 18:05:36 +08:00
2026-09-03 05:09:05 +08:00
2026-09-01 21:12:17 +08:00
2026-09-03 05:09:05 +08:00
2026-09-01 21:08:40 +08:00
2026-09-02 09:08:51 +08:00
2026-09-04 18:05:36 +08:00
2026-09-02 09:08:51 +08:00
2026-09-01 21:08:40 +08:00
2026-09-01 21:08:40 +08:00
2026-09-01 21:08:40 +08:00
2026-09-01 21:08:40 +08:00
2026-11-06 11:46:16 +08:00
2026-09-01 21:08:40 +08:00
2026-09-04 18:05:36 +08:00
2026-09-01 21:08:40 +08:00
2026-09-03 05:09:05 +08:00
2026-09-01 21:08:40 +08:00
2026-09-02 09:08:51 +08:00
2026-09-01 21:08:40 +08:00
2026-09-02 09:08:51 +08:00
2026-09-03 06:51:44 +08:00
2026-09-01 21:08:40 +08:00
2026-09-04 18:05:36 +08:00
2026-09-01 21:08:40 +08:00