libheif

libheif is an HEIF and AVIF file format decoder and encoder.

OTHER License

Stars
1.7K
Committers
90

Bot releases are visible (Hide)

libheif - v1.18.2 - maintenance release Latest Release

Published by farindk 2 months ago

fixes:

  • fix regression that Exif orientation was not correctly reset when converting rotated HEIF (heif-dec)
  • swap Exif width/height when rotating image by 90 degrees
  • fix memory leak in OpenJPEG decoding plugin
  • pay attention to DESTDIR variable when installing heif-convert symlink
libheif - v1.18.1 - VVC syntax fix

Published by farindk 3 months ago

This releases fixes the syntax of the vvcC box and a few build issues.

  • now reads images generated by iOS 18
  • heif-convert has been renamed to heif-dec
  • encoding: property item boxes with identical content are reused
  • experimental codec plugins for VVC (vvenc/vvdec and uvg266)
  • experimental codec plugin for OpenJPH (High-throughput JPEG2000)
  • support ISO 23001-17 version 1 uncC minimized headers
  • support ISO 23001-17 images with 'deflate', 'zlib' and Brotli compression
  • heif-enc can read TIFF images
  • API functions to read/write raw items and item properties
  • many bug fixes and smaller enhancements
libheif - v1.17.6 - maintenance

Published by farindk 10 months ago

A couple of build fixes and bug fixes detected by fuzzing.

Corrects these issues:

libheif - v1.17.5 - build fix

Published by farindk 11 months ago

Fixes installation of the Gnome "heif.thumbnailer" config file.
No other fixes than that.

You don't need to update if you do not include this Gnome config file in your package.

libheif - v1.17.4 - maintenance

Published by farindk 11 months ago

Fixes:

  • ispe boxes in AVIF images with clap boxes were written with the wrong size (would only happen with svt-av1 encoder),
  • always output MIAF brand for AVIF images
  • fix kvazaar encoding with odd image sizes and encodings with non-4:2:0 chroma
libheif - v1.17.3 - bug fix

Published by farindk 12 months ago

Bug fix #1026: corrected transform box generation for heif_orientation_flip_vertically and heif_orientation_rotate_90_cw_then_flip_vertically

libheif - v1.17.2 - maintenance release

Published by farindk 12 months ago

Corrections:

  • #1010 loading of HEIF files with extra zero bytes at the end
  • #1015 / #1017 default nclx values now match sRGB
  • support JPEG2000 images with alpha channel
  • various smaller fixes
libheif - v1.17.1 - maintenance release

Published by farindk almost 1 year ago

This release mainly fixes compilation and build issues for various platforms.

Other changes:

  • fix issue of loading images with premultiplied alpha channel,
  • correctly set compatible_version for macOS dylib builds,
  • fix loading HDR PNGs, but encoding them as 8-bit SDR,
  • fix saving AVIF with alpha using the SVT-AV1 encoder,
  • @kleisauke has modernized the JS wrapper (thanks!).
libheif - Many new compression formats and codecs

Published by farindk about 1 year ago

This release introduces support for new compression formats:

  • JPEG in HEIF
  • JPEG2000

It contains these new codec plugins:

  • Kvazaar encoder (HEIC) as alternative to x265
  • ffmpeg decoder (HEIC) decoding with potential hardware decoder support
  • jpegdec, jpegenc codecs for JPEG in HEIF
  • j2kdec, j2kenc codecs for JPEG-2000 in HEIF (still experimental)

Moreover:

  • added support for region masks
  • added support for alpha channels in images decoded with JS/WASM
  • heif-enc and heif-convert can be called with only input filenames, input and output filename, or with -o option. This makes the use of the two command more consistent.
  • added 4:2:2 <-> 4:4:4 color conversion with bilinear upscaling / average filtering

Some more notable changes:

  • heif_context_get_image_handle() can now also access non-top-level images
  • add script to build Android libraries for all platforms
  • again, known bugs have been fixed

Thank you everyone who contributed with code or issue reports. Special thanks go to @bradh for work on the regions support and the uncompressed codec, to @dukesook for his work on JPEG2000 support, to Pierre-Anthony for our discussions on interpreting the JPEG2000-in-HEIF standard, to @Edi61 for providing the ffmpeg decoder plugin, to @fancycode who will again do the Debian packaging, and to @kmilos for continuously reporting and fixing compilation and configuration issues.

libheif - v1.16.2 - fix build issues, fix command line tools

Published by farindk over 1 year ago

This release

  • adds an option to heif-convert to set the PNG compression level,
  • fixes a few build issues with some compilers,
  • fixes the --encoder option in heif-enc,
  • fixes heif_item_get_properties_of_type and heif_item_get_transformation_properties.
libheif - v1.16.1 - fix building gdk-pixbuf loader

Published by farindk over 1 year ago

Small maintenance update that fixes building the gdk-pixbuf loader.
The source package name has also been changed back to the old naming scheme.

libheif - v1.16.0 - Regions / chroma quality / uncompressed codec

Published by farindk over 1 year ago

This is a large release with many new features.

  • Support for HEIFv2 regions (rgan) and user annotations (udes). This enables to annotate regions in the image with several geometric primitives and assign user text descriptions to them. Thank you @bradh for the contributions. Mask support will be added soon.
  • Previously, chroma was downsampled and upsampled with a simple nearest-neighbor method. We now included the sharp-yuv chroma downsampling algorithm. This gives improved image quality when images are downsampled to 4:2:0 and upsampled with bilinear interpolation. Thank you @maryla-uc for the contributions.
  • The bilinear chroma upsampling and averaging downsampling algorithms are also new. You can choose what to use.
  • We added experimental support for decoding uncompressed images according to ISO/IEC 23001-17:2023. This is work in progress and currently decoding only. Thank you @bradh for the contributions.
  • There are new APIs to query the image transformations. Thus, you may choose to get the original image and apply the transformations yourself.
  • A longstanding bug writing non-compliant 'ispe' boxes (image size) has been fixed. Files should be standard compliant now.
  • When building binary packages, you can now make use of a CMake presets to set a default configuration.
  • The deprecated autotools build files have been removed.
libheif - v1.15.2 - maintenance release

Published by farindk over 1 year ago

  • Fixes an incompatibility with AOM v3.6.0.
  • A couple of smaller fixes.
libheif - v1.15.1 - fix compilation without plugins

Published by farindk over 1 year ago

build fix only

libheif - v1.15.0 - Windows plugins / CLLI, MDCV, PASP boxes

Published by farindk over 1 year ago

  • codec plugin system now also works with Windows
  • heif_convert: manually choose which decoder should be used
  • support for CLLI (content light level box), MDCV (mastering display colour volume), PASP (pixel aspect) information
  • ICC profile support in gdk-pixbuf loader
  • various fixes
libheif - v1.14.2 - maintenance

Published by farindk almost 2 years ago

A function name typo in the C++ wrapper was corrected in v1.14.1, but the old function name should not have been removed from the API
(ColorProfile_nclx::set_color_primaries()). The old name is added to the API again in this release.

This is the only change in this update.

libheif - v1.14.1 - maintenance release

Published by farindk almost 2 years ago

This release fixes

  • various issues is the build system
  • encoding images smaller than 64x64 with svt-av1
  • the 'quality' parameter for svt-av1
  • a potentially wrong image orientation for PNG inputs
  • crash on non-null terminated XMP input
  • HDR RGB to YCbCr conversion coefficients for limited range coefficients
libheif - v1.14.0 - codec plugins / svt-av1 backend

Published by farindk almost 2 years ago

  • adds SVT-AV1 encoder as AVIF backend
  • dynamic plugin interface for installing codecs independently from libheif (currently Unix only)
  • add XMP header compression (using zlib)
  • library should now be initialized with heif_init()
  • heif_convert: extract EXIF and XMP to separate files
  • heif_enc: add benchmarking function to compare codecs
  • copy EXIF/XMP between HEIC/AVIF files and JPEG/PNG in all kinds of combinations
  • remove EXIF orientation tag from input when converting to HEIC/AVIF and generate irot/imir boxes matching the input orientation
libheif - v1.13.0

Published by farindk about 2 years ago

  • pay attention to the correct chroma sample positions
  • heif_image now holds a list of decoding warnings
  • use AOM AOM_USAGE_ALL_INTRA mode instead of AOM_USAGE_GOOD_QUALITY
  • 'strict' decoding mode with more checks for standard conformity of input
  • support for EXIF data >64k in JPEG output
  • proper library initialization and cleanup
  • separate quality settings for alpha channel (AOM)
  • improve color conversion speed (no lroundf)
  • build and packaging fixes