ITU-T T.814 · ISO/IEC 15444-15 BSD-3-Clause C++11 · CMake 3.14+ v0.19.0

High-Throughput
JPEG 2000, open source.

A complete C++ implementation of JPEG 2000 Part 1 and High-Throughput JPEG 2000 (Part 15) — SIMD-accelerated across x86-64, AArch64 and WebAssembly, with a multi-threaded encode/decode pipeline.

build · open_htj2k
# clone & build (CMake 3.14+, C++11)
$ cmake -B build -DCMAKE_BUILD_TYPE=Release
$ cmake --build build -j
# lossy encode @ quality 90
$ open_htj2k_enc -i in.ppm -o out.jph Qfactor=90
# decode to RGB
$ open_htj2k_dec -i in.j2c -o out.ppm
✓ 582 conformance tests passing
4K@60
fps sustained, RFC 9828 RTP receiver
582
conformance tests green in CI
4×
SIMD targets: AVX2 · AVX-512 · NEON · WASM
Qfactor
single-knob quality control for lossy encode, like JPEG
01

Highlights

Standards compliance Part 1 + Part 15

Full HTJ2K encode + decode and Part 1 decode; partial Part 2.

  • Conformance-tested against ITU-T T.803 | ISO/IEC 15444-4
  • JPH .jph format with colour-spec box parsing
  • Automatic YCbCr colorspace detection on decode

Performance SIMD + threads

Vectorized hot paths for color transform, DWT and HT block coding.

  • AVX2 / AVX-512 (x86-64), NEON (AArch64), WASM SIMD
  • Built-in thread pool for encode and decode
  • Three decode APIs: invoke() · line_based() · stream()

Live streaming experimental

RFC 9828 JPEG 2000 over RTP with sub-codestream latency.

  • New WebTransport browser viewer — live streams decoded in WASM, WebGL2 rendering
  • Three-thread native pipeline: receive → decode → render
  • HDR colour: PQ / HLG + BT.2020 gamut mapping
  • Sustains 4K @ 60 fps on modern x86-64 (AVX2)

JPIP gigapixel viewer 15444-9

Stream and explore 42K+ canvases in the browser — pan and zoom with viewport-region decode.

  • In-browser WASM viewer, WebGL2 GPU rendering
  • Resolution-progressive delivery over HTTP/1.1 or HTTP/3
  • IDWT zero-skip + region-of-interest decode for fast navigation
  • Foveated rendering — gaze-driven LOD cones experimental
02

Supported formats

FormatEncodeDecodeNotes
.jhc / .j2c / .j2kHTJ2K / JPEG 2000 Part 1 codestream
.jphJPH file format; colour-spec box auto-detects YCbCr
PGM / PPM / PGXGrayscale, packed RGB, per-component files
TIFF8/16-bit per sample via libtiff; encode input only
RAWPacked samples, decoder output only