//! The LIVE JPEG AI decode: `jpegai::decode(codestream, model)` → RGB, with no //! per-image schedule fixtures. Every per-image quantity is derived from the //! bitstream (the residual mask `sigma_skip > 382`, the σ surfaces, indexes, //! rvs); the model bundle supplies only checkpoint constants. Compared against //! the reference decoder's PNG — the same bar as the staged `jpegai_e2e` test, //! but through the dispatchable library entry point. //! //! This is the whole-decode test behind the dispatchable `wai.image.jpegai` ONNX //! path, so a missing input follows the headline-claim rule (support/ //! require_vectors.rs): without its inputs it skips loudly, and with //! `WAI_REQUIRE_SOTA_VECTORS=1` it fails. Its inputs — the float model bundle, the //! traced nets under `model16/`, the extracted model constants and the reference //! PNG — exist only in the local JPEG-AI asset directory //! (`wai/jpegai-vm-assets`, exported from the ISO/IEC 6048-1 reference software; //! not in the repository), and the test also needs the `neural` (ONNX Runtime) and //! `codecs` features. No CI job runs it; it is verified only on a machine holding //! those assets. `WAI_JPEGAI_ASSETS` points it at the directory from elsewhere; a //! directory it names must exist and hold every input, or the test fails with or //! without the switch. Unset or empty, the default below is used, and only that //! default may be absent and skip. #![cfg(all(feature = "neural", feature = "codecs"))] #[path = "support/require_vectors.rs"] mod require_vectors; use require_vectors::InputDir; use wai::neural::jpegai::{decode, JpegAiModel}; const TEST: &str = "jpegai_live::jpegai_live_decode_matches_reference"; const PRODUCE: &str = "the local JPEG-AI asset directory wai/jpegai-vm-assets (exported from the \ ISO/IEC 6048-1 reference software; not in the repository), or WAI_JPEGAI_ASSETS=