libheif icon indicating copy to clipboard operation
libheif copied to clipboard

Competition and trends in the github library.

Open Jamaika1 opened this issue 1 year ago • 5 comments

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

Jamaika1 avatar Dec 17 '23 07:12 Jamaika1

Possibly this should be a Discussion item (not an issue).

bradh avatar Dec 17 '23 08:12 bradh

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.

farindk avatar Dec 18 '23 00:12 farindk

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.

bradh avatar Dec 18 '23 09:12 bradh

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.

bradh avatar Dec 18 '23 09:12 bradh