wai-rs: jpegai_icci::IcciNet — the eICCI filter, float-exact vs the ONNX #15
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/jpegai-icci-net2"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Completes eICCI, the last unported JPEG-AI decode stage: three planes in, three refined planes out (wavelet included).
The shipped ONNX is far smaller than the reference class implies — trust the export, not
icci_models.py:(145,265 params, 21 tensors.) The exporter folded/deduped nearly everything: the luma BN is folded into
onnx::Conv_8299; every conv bias is zero (hence deduped to one tensor); every block scale = scaleY = 0.1 (also deduped);BNUVis γ=1,β=0,μ=0,σ²=1 ⇒x/√(1+ε), folded intoconv_firstUV.IcciNetalso drops a redundancy: the reference rebuilds identical chroma features once per chroma plane. The trunk is evaluated once and fed to both heads — same output, half the chroma work.Validated against the ONNX (ort): max|Δ| = 0.0 / 1e-7 / 0.0 for Y/U/V. Float, not quantised — the net is float in the reference, and IEEE-754 with fixed accumulation order is deterministic, so the port is byte-identical with no PTQ error.
dcharlot referenced this pull request2026-11-06 13:54:17 -05:00