Releases: lxw112190/lw.PPOCR.C
Release list
v1.1.0 — lw.PPOCR.C Pure C OCR Runtime / 纯 C OCR 运行时
lw.PPOCR.C v1.1.0
Native x64 performance and memory release / 原生 x64 性能与内存优化版。
Highlights / 主要变化
- Compiled physical REC/DET execution, NHWC kernels, packed weights and fused
epilogues reduce repeated dispatch, layout conversion and intermediate work
on eligible AVX2 x64 hosts. Unsupported hosts retain their fallback paths. - Compiled REC programs share immutable packed constants across adaptive widths
and line workers while keeping mutable arenas instance-local. - Persistent line workers and parallel crop processing reduce repeated request
overhead. The maximum REC width remains 960 with adaptive per-line widths. - Fix streaming-crop experimental builds under MSVC
/WX; this does not
enable streaming crops in release defaults.
Performance evidence / 性能口径
The README snapshot is a local engineering measurement, not a measurement of
the tagged archive: Ryzen 7 7735H, Windows x64 Release/AVX2, bundled 500×500
sample, maximum REC width 960, one warm-up, three measured calls and three
fresh-process rounds. It includes resident widths and experimental dispatch
options documented in the baseline.
| Model | 1 worker | 4 workers | Peak WS, 1 worker | Peak WS, 4 workers |
|---|---|---|---|---|
| Tiny | 112.68 ms | 54.09 ms | 84.3 MiB | 100.6 MiB |
| Small | 375.91 ms | 217.74 ms | 198.5 MiB | 233.8 MiB |
| Medium | 1,217.17 ms | 979.30 ms | 744.8 MiB | 763.2 MiB |
Constant-sharing A/B lowered local peak WS by about 16–18 MiB for Tiny,
76–78 MiB for Small and 334–337 MiB for Medium, with paired latency within
±2%. These comparisons isolate constant sharing, not the total speedup over
v1.0.0. Peak WS includes initialization and a standalone detector handle.
Run the same-runner release comparison
against v1.0.0 for the exact candidate's end-to-end speedup. Do not pool
local and hosted-runner timings or imply that all six cases use less memory
than v1.0.0. Model-specific text differences are reported explicitly;
checksum changes alone are not proof of improved accuracy.
Compatibility and scope / 兼容性与支持范围
C ABI v1 and WASM Host ABI v1 remain frozen; this release does not change their
symbols, layouts or ownership rules. Tiny remains the sole stable model on
Windows x64, Linux x64 and modern browser WASM. Small and Medium remain Preview,
as do Android, Desktop Java/JNI and the optional architecture packages.
LWM v0.1 remains an internal Preview format. Model minimum-runtime metadata
remains an independent compatibility floor, not the package version.
WASM keeps the canonical stable default. LW_WASM_COMPILED_REC=OFF remains
the global default; experimental compiled SIMD128 Pointwise now defaults to
2×16. Its performance work targets Tiny and Small, not Medium mobile usage.
No pthread, relaxed-SIMD or fast-math requirement is introduced.
Upgrade and verification / 升级与校验
Replace binaries, SDKs and model packs as a matching release set; verify the
SHA-256 files before use. High-level ABI v1 applications retain their ABI
contract, while low-level model/session APIs remain experimental. Rebuilding
consumers and testing the exact extracted package is recommended.
Android demo versionCode advances to 3; its SDK/demo support remains Preview.
The release workflow rebuilds and verifies all 18 primary assets before
publication, and produces build-provenance attestations. Create a new
annotated v1.1.0 tag; tag signing is optional. Never move the published
v1.0.0 tag. Exact-tag CI and artifact validation remain mandatory.
v1.0.0 — lw.PPOCR.C Pure C OCR Runtime / 纯 C OCR 运行时
lw.PPOCR.C v1.0.0
v1.0.0 is the first stable release of the lightweight pure-C PP-OCR
runtime.
Stable scope
- C ABI v1 is frozen, including high-level REC, CLS, DET, and full-OCR APIs,
structure-prefix rules, ownership, UTF-8 text, status codes, and error
semantics. - WASM Host ABI v1 is frozen for the standalone browser SDK and the raw
Node.js/WASM runtime. - PP-OCRv6 Tiny is the stable runtime model and is the default in native,
browser, and Node/WASM packages. - Stable platform baselines are Windows x86-64, Linux x86-64, and modern
browser WASM. The release workflow runs the complete CTest and package
smoke-test matrix before publication.
Preview attachments
The Release also carries separately validated artifacts for evaluation:
Small and Medium model packs/browser files, Android ARM64, Desktop Java/JNI,
Linux ARM64, and LoongArch64. These remain Preview and are not part of the
permanent 1.0 support promise. Their model converters, device coverage, and
performance claims must be evaluated independently.
Format and supply chain
LWM v0.1 remains an internal Preview model format, not a stable interchange
format. Every primary download has a SHA-256 record; the publish workflow also
creates GitHub build-provenance attestations. The v1.0.0 tag must be an
annotated tag. A cryptographic tag signature is optional and is not a release
gate.
The stable Tiny model inputs and generated LWM assets are identified by these
SHA-256 values:
| Asset | SHA-256 |
|---|---|
| Tiny DET ONNX | 193bab7a04fca699a6c82e6abb5b81bdb28177f0abd4062552b04908dafb19f8 |
| Tiny CLS ONNX | dd8b2b61983d76ab230a58da9e0e0e84956b71c3877f2ce6e438fe22d74d2cf2 |
| Tiny REC ONNX | 9ef676d6ed3c88256a2d92c640c44f25b0c40947e111b14b8be8f594091563e6 |
| Tiny dictionary | 46e1b34ef45684cb46d75ac76d355341fe7f0a2c38d6ee02e63ae6b3878019fc |
| Tiny DET LWM | ba9164d371ac7003f90710c3106a344aeb906df2b0f1e7617fcf4608fa8cd66c |
| Tiny CLS LWM | d426c23f4758c9f21c5cbd0550ea9b90f1e7c0dd0289e1541e9754dee2e6ed61 |
| Tiny REC LWM | 59440146ae64068b70441f9c16b5878ccba21e75b41cb27220c8d9cc2d61e0ae |
The frozen manifest checksums are: C ABI
ce76163d17d445c3e8831c01fea6d4a733d38868741c144d1f9b93fb0ce0f209, WASM
Host ABI 9d6c674fa912038c9796346c5db89be76ad6e554c62ecb48c1b301e892f6d977,
and runtime contract d391e5e2f73400916d15d3343d79b1e381515ba16ca634aa90f1daf3a3589f90.
Upgrade guidance
Do not mix binaries, SDK files, model packs, or dictionaries from different
releases. Applications should use the frozen high-level C ABI or WASM Host ABI;
the low-level model/session planning APIs remain experimental. Rebuild native
and managed consumers when changing release assets.
v0.2.0-preview.1 — lw.PPOCR.C Pure C OCR Runtime / 纯 C OCR 运行时
What's Changed
- add java mac build by @wuyuan2009123 in #7
New Contributors
- @wuyuan2009123 made their first contribution in #7
Full Changelog: v0.1.0-preview.7...v0.2.0-preview.1
v0.1.0-preview.7 — lw.PPOCR.C Pure C OCR Runtime / 纯 C OCR 运行时
v0.1.0-preview.7
v0.1.0-preview.7 重点完善了 Java/JVM 支持,并进一步增强单文件离线 HTML OCR 的使用体验。
本版本新增 Android Java 接入、桌面 Java/JVM JNI 示例及 Windows/Linux 预编译 JNI 包,同时 HTML 版现在可以直接粘贴剪贴板中的截图或图片进行 OCR。
✨ 主要更新
Java / JVM 桌面支持
新增普通 Java/JVM 的 JNI 调用示例:
Java / JVM
↓
Java Wrapper
↓
JNI
↓
lw.PPOCR.C.dll / .so
v0.1.0-preview.6 — lw.PPOCR.C Pure C OCR Runtime / 纯 C OCR 运行时
v0.1.0-preview.6
本次 Preview 重点补齐 Android ARM64 Native 支持,同时继续完善 Web/PDF OCR 与阅读顺序能力。
Highlights
-
新增 Android ARM64 Native Preview
arm64-v8aminSdk 21- 完全离线 OCR
- 提供可直接安装的 Demo APK
- 提供 Android AAR 供项目集成
- DET + 可选 CLS + REC
- ARM64 NEON 加速
-
Android Demo 完整交互
- 图片选择与预览
- 手动开始识别
- OCR 检测框显示/隐藏
- 点击识别结果联动高亮检测框
- 复制、分享、TXT / JSON 导出
- 大图采样与 EXIF 方向处理
-
新增阅读顺序支持
- 标准横排
HORIZONTAL_LTR - 古籍竖排
VERTICAL_RTL - 竖排
VERTICAL_LTR
- 标准横排
-
Web Demo 体验改进
- 支持检测标注显隐
- 阅读顺序配置同步到 Web SDK
-
扫描 PDF 兼容性增强
- 内嵌 PDF.js 解码组件
- 改善 CCITT / JBIG2 / JPEG2000 等扫描 PDF 的离线渲染兼容性
-
Android 模型缓存增强
- 基于 manifest / SHA-256 的模型版本识别
- 避免升级后误用旧模型缓存
-
修复 Android Photo Picker 图片解码流程中的 bounds-only 判断问题
Android Downloads
lw.PPOCR.C-0.1.0-android-arm64-demo.apklw.PPOCR.C-0.1.0-android-arm64.aar
Android Preview 已完成 ARM64 真机验证。当前测试设备上,Release 优化版对仓库自带 500×500 示例图单次 OCR 约 0.6 秒;实际性能会随 SoC、系统和图片内容变化。
Release:
https://github.com/lxw112190/lw.PPOCR.C/releases/tag/v0.1.0-preview.6
v0.1.0-preview.5 — lw.PPOCR.C Pure C OCR Runtime / 纯 C OCR 运行时
v0.1.0-preview.4 — lw.PPOCR.C Pure C OCR Runtime / 纯 C OCR 运行时
v0.1.0-preview.3 — lw.PPOCR.C Pure C OCR Runtime / 纯 C OCR 运行时
v0.1.0-preview.2 — lw.PPOCR.C Pure C OCR Runtime / 纯 C OCR 运行时
What's Changed
- perf: enable WASM SIMD128 SSE2 backend by @lxw112190 in #4
New Contributors
- @lxw112190 made their first contribution in #4
Full Changelog: v0.1.0-preview.1...v0.1.0-preview.2
v0.1.0-preview.1 — lw.PPOCR.C Pure C OCR Runtime / 纯 C OCR 运行时
What's Changed
New Contributors
Full Changelog: https://github.com/lxw112190/lw.PPOCR.C/commits/v0.1.0-preview.1