wai-web: full JPEG-AI codestream->RGB decode in wasm (decodeJpegAiFull) #56

Merged
dcharlot merged 1 commit from wai-jpegai-full-wasm into main 2026-08-25 17:09:39 -04:00
Owner

The whole byte-exact decoder as a browser entry, driving the full-image path of the live /jpegai demo.

Verified end-to-end in real Chrome on the live site: fetches the model bundle from /models/jpegai/v1 (~12 MB zstd), decodes test256 in ~10.5 s of pure-i64 wasm, paints the 256x256 image, and the decoded RGB hashes byte-identically to native (sha256 dbc494a5…, matching the reconstruction-binding test's native decode) — decode-equivalence across host and browser. The JS side passes raw bytes; the wasm parses (no double-parse).

The demo page + weights are already deployed (portal via deploy.sh wai, weights via deploy.sh wai-models).

Co-Authored-By: Claude Opus 4.8 [email protected]

The whole byte-exact decoder as a browser entry, driving the full-image path of the live /jpegai demo. **Verified end-to-end in real Chrome on the live site**: fetches the model bundle from /models/jpegai/v1 (~12 MB zstd), decodes test256 in ~10.5 s of pure-i64 wasm, paints the 256x256 image, and the decoded RGB hashes byte-identically to native (sha256 dbc494a5…, matching the reconstruction-binding test's native decode) — decode-equivalence across host and browser. The JS side passes raw bytes; the wasm parses (no double-parse). The demo page + weights are already deployed (portal via deploy.sh wai, weights via deploy.sh wai-models). Co-Authored-By: Claude Opus 4.8 <[email protected]>
The whole byte-exact decoder (wai::jpegai_decode::decode) as a browser entry: 13
byte inputs (codestream + the model weight bundle from wai_jpegai_build_e2e_inputs.py
+ norm tables), returns the decoded RGB. Same integer decoder a native sink runs,
compiled to wasm32.

Verified in node: decodes test256 to 256x256 in ~8s and the RGB is byte-identical
to the native decode (sha256 dbc494a5…, the same digest the reconstruction-binding
test produced natively) — decode-equivalence across host and browser. The JS side
passes raw bytes; the wasm parses, so there is no JS-side double-parse. Drives the
full-image path of the /jpegai demo.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Transaction-Science/open-standards!56
No description provided.