← Back to all sparks
L

libheif

DEVOPS
Velocity0.0

HEIF and AVIF image file format library

The HEIF library quietly became a video decoder, then a scientific image container.

heifimage-sequencesmulti-spectralcodecsc-library
Current state
libheif is at 1.22.0. Two releases in this window changed what the library is for: 1.21.0 added full read and write support for HEIF image sequences, which also lets it decode most MP4 video, and 1.22.0 opened a public API for arbitrary image components with signed, float and complex pixel types. The releases between them are build fixes and a maintenance patch.
Where it's heading
libheif is expanding along two axes at once — time, via sequences and an x264 encoder plugin, and channel semantics, via multi-spectral and filter-array data that has nothing to do with human vision. The ISO/IEC 23001-17 rewrite that picks the codec path from the input is what makes the second axis practical rather than theoretical.
Prediction
The 1.22.0 notes say generic components are currently limited to the 23001-17 codec with JPEG 2000 to follow, so the next release most likely extends that component model to JPEG 2000 rather than opening a third front.

Recent moves

  1. 2mo ago

    v1.22.0 - generic image components, ISO/IEC 23001-17 (lossless images) rewrite

    ⚡ SPARK

    The second of the two releases that redefine the library's scope: arbitrary image components with non-visual pixel types, on top of a rearchitected lossless codec. It moves libheif from a photo container toward a general raster container.

    View source ↗
  2. 6mo ago

    v1.21.2 - bug fixes

    A bug-fix patch whose only additions are JPEG 2000 and uncompressed support in the JS/WASM build script, plus a sequence-metadata fix for the OpenH264 plugin. Build plumbing behind the 1.21 sequence work.

    View source ↗
  3. 7mo ago

    v1.21.1 - build fix

    A single missing include that broke builds on some GCC versions. The notes say to skip it if your build already worked.

    View source ↗
  4. 7mo ago

    v1.21.0 - image sequences

    ⚡ SPARK

    The release where a still-image library started handling time. Sequences, alpha in auxiliary tracks, edit-list repetition and an x264 plugin arrive together, and the FFmpeg decoder plugin picks up H.264 alongside H.265.

    View source ↗
  5. 1y ago

    v1.20.2 - maintenance release

    Maintenance: deferred size checks so very large tiled images can be decoded tile by tile, GIMI content ID fixes and a CMake switch to drop the SDL dependency. Small corrections around the sequence work.

    View source ↗
  6. 1y ago

    v1.20.1 - plugin loading bugfix

    A one-bug patch in decoder plugin loading, explicitly unnecessary for anyone not using plugins.

    View source ↗