The SOTA int_hyper vector needs a ~23 MB PTQ model that can't be committed, so
the conformance test skipped without it and CI never exercised the decode. This
adds a SMALL synthetic conditional codec (deterministic random integer weights,
fixed seed) that drives the SAME path end to end — factorized z → integer h_s →
integer-σ entropy bucketing → integer rANS → integer synthesis g_s → RGB — with
a committed expected FNV-1a. ~7 KB total, so it commits and verifies anywhere.
- tools/wai_int_hyper_tiny_vector.py: builds the tiny g_s/h_s (convT/igdn/leaky/
conv) + tiny entropy tables (Gaussian-conditional y + factorized z) + a real
rANS bitstream (CompressAI encoder), reusing the SOTA export's integer-net
runner so the math is identical. Emits JSON + compact-binary models, entropy,
bitstream, and the expected hash.
- tests/vectors/int_hyper/: the committed vector (tiny_{g_s,h_s}.{json,bin},
tiny_entropy.json, tiny_bitstream.json, tiny.json).
- new test decodes_the_committed_tiny_conformance_vector: NEVER skips; decodes
the committed bitstream via BOTH the JSON and the compact-binary model and
asserts both reproduce the committed FNV-1a (7cbe882c42c6725d), byte-for-byte.
The numbers aren't a "real" codec (random weights) — the point is a deterministic,
artifact-free exercise of every integer op, so int_hyper now has the same
committed-conformance footing as the other capabilities.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
1 line
No EOL
70 B
JSON
1 line
No EOL
70 B
JSON
{"rgb_hash": "7cbe882c42c6725d", "out_c": 3, "out_h": 16, "out_w": 16} |