iakmds / librecamera

A free and open source camera app for Android written in Flutter and Dart
https://f-droid.org/packages/com.iakmds.librecamera/
GNU General Public License v3.0
278 stars 27 forks source link

Support encoding natively to JPEG XL format #45

Closed nekohayo closed 1 year ago

nekohayo commented 1 year ago

Why: 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 (in my experience, it's been more like 80%), while supporting modern features like HDR, animation, alpha channel, lossless and backwards-compatible JPEG recompression (in my experience, you can save an average of roughly 20% in filesizes just by doing that), lossless and progressive modes. It is based on Google's PIK and Cloudinary's FUIF, and is an ISO standard.

It can even losslessly recompress existing JPEG images.

Explanation here:

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

Software implementations, and industry adoption:

The easiest way to implement this would be to integrate libjxl, which is already well-optimized for ARM.

iakmds commented 1 year ago

Good evening, thank you. It does indeed sound really interesting. Unfortunately I am quite limited by the Flutter camera, which is why this would take a lot of effort to implement.

In fact, a request for JPEG XL, along other formats, was already proposed in another issue, see #13. Because I'll leave the other issue open I'm going to close this one as a duplicate.