Skip to content

Releases: lxw112190/lw.PPOCR.C

v1.1.0 — lw.PPOCR.C Pure C OCR Runtime / 纯 C OCR 运行时

Choose a tag to compare

@github-actions github-actions released this 27 Sep 01:32

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 运行时

Choose a tag to compare

@github-actions github-actions released this 18 Sep 01:24

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 运行时

Choose a tag to compare

@github-actions github-actions released this 09 Sep 14:48

What's Changed

New Contributors

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 运行时

Choose a tag to compare

@github-actions github-actions released this 05 Sep 12:45

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 运行时

Choose a tag to compare

@github-actions github-actions released this 03 Sep 05:57

v0.1.0-preview.6

本次 Preview 重点补齐 Android ARM64 Native 支持,同时继续完善 Web/PDF OCR 与阅读顺序能力。

Highlights

  • 新增 Android ARM64 Native Preview

    • arm64-v8a
    • minSdk 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.apk
  • lw.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 运行时

Choose a tag to compare

@github-actions github-actions released this 01 Sep 08:19

v0.1.0-preview.4 — lw.PPOCR.C Pure C OCR Runtime / 纯 C OCR 运行时

Choose a tag to compare

@github-actions github-actions released this 31 Aug 08:12

v0.1.0-preview.3 — lw.PPOCR.C Pure C OCR Runtime / 纯 C OCR 运行时

Choose a tag to compare

@github-actions github-actions released this 30 Aug 11:23

v0.1.0-preview.2 — lw.PPOCR.C Pure C OCR Runtime / 纯 C OCR 运行时

Choose a tag to compare

@github-actions github-actions released this 28 Aug 07:59

What's Changed

  • perf: enable WASM SIMD128 SSE2 backend by @lxw112190 in #4

New Contributors

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 运行时

Choose a tag to compare

@github-actions github-actions released this 26 Aug 08:42

What's Changed

New Contributors

  • @sdcb made their first contribution in #2

Full Changelog: https://github.com/lxw112190/lw.PPOCR.C/commits/v0.1.0-preview.1