WAI integer-exact conditional codec — in-browser, no ML runtime

This tab decodes the export tool's debug form of a wai.neural.int_hyper bitstream (cond_bitstream.json; the payload an envelope carries is WIH1, which decodeWih1 reads): a factorized side-stream z and the Gaussian-conditional main stream y, both rANS-coded. It decodes them to RGB with the same pure-i64 Rust that decodes natively, compiled to wasm32 — no onnxruntime-web, no WebGPU, no float anywhere. The whole path is integer: factorized z → integer hyper-decoder → integer-σ entropy bucketing → integer synthesis. Because of that (the integer-entropy contract) the reconstruction is byte-identical on every machine, so the page re-checks its FNV-1a against the hash the native reference produced — a pretrained learned codec verified client-side, no server.

loading model…
image — bitstream — quality — decoded hash — native hash —

Why the whole decode is integer: a float learned codec's entropy decode can desync on ~1e-5 of cross-platform drift in the scale σ, so its output is reproducible only on the same build. int_hyper is the pretrained mbt2018_mean mean-scale hyperprior, post-training-quantized to integer (CI requires its decode within 1 dB of the same model's float decode on a pinned test photograph), and its entire decode is integer, so the hash above is portable: this browser, a native sink, and the conformance corpus all produce the same bytes. The wire carries only the bitstream (its size is shown above); the model is the installed codec. Note: the model files are large (PTQ weights) and not committed — generate them with tools/wai_sota_int_synth_export.py into demo/int_hyper/.