libheif
libheif copied to clipboard
Competition and trends in the github library.
At the end of the year I look at what has changed. A new AV2 codec has arrived, and it is unknown what its future will be. The joke is that you can't install AOM and AVM together because they have the same function names. Is this a transitional version or maybe a new codec? Who knows that. webp2 changed practically nothing. Just added libjxl. It is no longer compatible with the new libavif. The VVC C++11 codec did not appear. There are either trial versions or in C++17 or higher.
HEIF example from the movie vvc
MP4Box.exe -add-image output_uvg266.mp4:primary -ab heic -new image.heic
HEIFinfo_avx.exe image_vvc.heif
MIME type: image/heif
main brand: mif1
compatible brands: mif1, heic
image: 1920x1080 (id=1), primary
colorspace: YCbCr, unknown
bit depth: 15,-1
No information about codec type.
JpegXS library is still in beta. https://jpeg.org/jpegxs/software.html libjpeg-turbo 8/12/16bit (losseless) codec appeared, but it is unknown whether jpegxt/ls was therefore discontinued and abandoned. How does this relate to heif. As for ffmpeg jpegls is compatible(charls), jpegxt is not. https://github.com/libjpeg-turbo/libjpeg-turbo/commit/be96fa0a403e5d084719757f7b8241d20393246d https://github.com/thorfdbg/libjpeg/commit/9e0cea29d7ba7a2c1e763865391bc94b336da25e https://github.com/team-charls/charls/commit/0f47e2bcbee813aeb1a3c20823a7ddccebe9438b libheif converts j2k,htj2k but can't import and export j2k/ht2k. There is no plugin in ffmpeg
cwp2_avx.exe image.jpg -info -q 100 -nometadata -mt -effort 7 -uv_mode 2 -csp 0 -o image.wp2 av1enc_avx.exe -q 100 -444 -size 280x420 -effort 7 -thread 4 -tune butteraugli image.wp2 -d image.av1 av2enc_avx.exe -q 100 -444 -size 280x420 -effort 7 -thread 4 -tune ssim image.wp2 -d image.av2 avifenc_aom_avx.exe -c aom -l -d 8 -y 444 -r full -s 7 -j 4 image.jpg image1.avif avifenc_avm_avx.exe -c avm -l -d 8 -y 444 -r full -s 7 -j 4 image.jpg image2.avif heifenc_avx.exe image.jpg --verbose --avif -L -q 100 -e aom --no-alpha -p speed=7 -p chroma=444 -p threads=4 -p tune=ssim --matrix_coefficients=0 --full_range_flag=1 -o image3.avif heifenc_avx.exe image.jpg --verbose -L -q 100 -e x265 --no-alpha -p chroma=444 -p tune=ssim --matrix_coefficients=0 --full_range_flag=1 -o image1.heif heifenc_avx.exe image.jpg --verbose -L -q 100 -e kvazaar --no-alpha --matrix_coefficients=0 --full_range_flag=1 -o image2.heif heifenc_avx.exe image.jpg --verbose --jpeg2000 -L -q 100 -e openjpeg --no-alpha --matrix_coefficients=0 --full_range_flag=1 -o image3.heif heifenc_avx.exe image.jpg --verbose --htj2k -L -q 100 -e openjph --no-alpha --matrix_coefficients=0 --full_range_flag=1 -o image4.heif
Possibly this should be a Discussion item (not an issue).
Possibly this should be a Discussion item (not an issue).
Yes, but @Jamaika1 thanks anyway for the collection of information.
A new AV2 codec has arrived, and it is unknown what its future will be. The joke is that you can't install AOM and AVM together because they have the same function names.
On the other hand, that seems to make the implementation simple if we can simply copy/paste the AOM plugin code to a large extent.
The VVC C++11 codec did not appear. There are either trial versions or in C++17 or higher.
Does that matter? I mean both, that it is C++17, and whether anyone uses VVC at all. I have never seen a valid VVC in HEIF file. That's why all development in libheif for that has stopped.
JpegXS library is still in beta. https://jpeg.org/jpegxs/software.html
While JPEG-XS can be wrapped in HEIF, its pretty pointless. The whole point of XS is very low latency - less than one frame. That goes away if you need a file wrapper.
libheif converts j2k,htj2k but can't import and export j2k/ht2k. There is no plugin in ffmpeg
To be fair, the convert (decode) and encode tools are examples.
You may be able to build gdal with a recent version of libheif to get conversion from JPEG-2000 to HEIF-with-JPEG2000, and other combinations like that.