flozz / yoga-image-optimizer

A graphical tool to convert and optimize JPEG, PNG and WebP images (based on YOGA)
https://yoga.flozz.org
GNU General Public License v3.0
142 stars 11 forks source link

JPEG XL transcoding feature (for big JPEG collections) #20

Open nekohayo opened 2 years ago

nekohayo commented 2 years ago

The biggest potential I see for this application is to be able to shrink down the heavy weight of my big photo gallery/storage on my computer, as I'm always running out of disk space. Yoga supporting JPEG XL would be a huge deal. It would be the most efficient image codec, and it would be an order of magnitude faster to encode than anything Yoga currently does.

JPEG XL can losslessly recompress/optimize existing JPEG images. There's just no downside.


Context: JPEG XL is the future of all image formats. It is a new royalty-free image codec targeting the image quality as found on the web, providing about 60% size savings when compared to original JPEG at the same perceptual quality, while supporting modern features like HDR, animation, alpha channel, lossless JPEG recompression, lossless and progressive modes. It is based on Google's PIK and Cloudinary's FUIF, and is an ISO standard.

Explanation here: https://www.slideshare.net/cloudinarymarketing/imagecon-2019-jon-sneyer

Reference implementation here: https://github.com/libjxl/libjxl/

Adoption:

flozz commented 2 years ago

Hello,

I want to add support for more image formats like AVIF and JPEG XL in YOGA, but I have no much time currently. I hope I will be able to work on this someday :)


As YOGA Image Optimizer is only a GUI for the YOGA library / CLI tool, I linked this issue on the YOGA project → https://github.com/wanadev/yoga/issues/41

nekohayo commented 2 years ago

I will also add (in case someone else is looking at this): JPEG XL can even replace PNG, because with lossless JXL you get an average of 30-40% filesize improvements compared to optimized PNG: https://www.reddit.com/r/jpegxl/comments/l9ta2u/how_does_lossless_jpegxl_compared_to_png/

So eventually this could be seen as the one format to rule them all and make the rest of the formats mostly "for legacy use" in Yoga, someday.