HTJ2K Rust

HTJ2K Rust

J2K supports HTJ2K Part 15 Rust APIs for HT codestream decode, encode, recode, JPH still-image wrapping, and JPEG-to-HTJ2K transcode workflows, with optional CUDA and Metal adapter crates for supported routes.

Release status: j2k 0.8.0 is published on crates.io; see the release policy for support details.

HTJ2K Rust codec and transcode pipeline

Decode and encode

The j2k facade owns public HTJ2K application APIs for raw HT codestreams and JPH still-image files, including cleanup and refinement packet paths.

cargo add j2k

Recode

Classic JPEG 2000 inputs use coefficient-domain recode where valid, and a pixel-preserving fallback for signed, high-bit, lossy, sampled, or otherwise incompatible coefficient-domain cases.

Transcode

j2k-transcode provides JPEG-to-HTJ2K coefficient-domain transcode primitives, with CUDA and Metal acceleration crates for supported transform stages.

cargo add j2k-transcode

Part 15 block coding

HT cleanup, significance-propagation refinement, magnitude-refinement, packet length signaling, quality-layer contributions, and strict decode coverage are tracked by repo-local tests.

JPH files

JPH wrapping and inspection reuse the JP2 box parser and validate HT codestream branding so HTJ2K files are distinct from classic JP2 files.

Limits

HTJ2K requests above the Part 15 coded-bitplane limit reject explicitly. External OpenJPH/Kakadu parity remains publication evidence, not a silent runtime fallback.

Related search paths

See Rust JPEG 2000 Codec, CUDA JPEG2000 Rust, Metal JPEG2000 Rust, and GPU Backends for related codec and backend pages.