Replies: 1 comment 6 replies
-
This is my understanding. While in theory gain map technology can be applied to any image standard, to my knowledge there was no initiative towards webp standard. ultrahdr (base image + gain image) format requires the image file standard the ability to signal multiple images in single file. Jpeg standard does not support signalling more than one image in its file, but there is an extension format for jpeg, JPEG MPO, which allows signalling multiple images in single file. Using jpeg mpo, primary image and gain map image are signalled together along with some metadata (gainmap metadata) which are combined at the decoding side to create the final hdr image. Similarly, image file formats that are based on ISO base media file format (ISOBMFF), like heif, avif, jpegxl, ... also have the ability to signal multiple images and hence can support ultrahdr. I think webp format cannot signal multiple images and hence it may not be possible to achieve ultrahdr like effect with webp. coming to avif, you can perhaps tune some encoding speed presets and disable few toolsets to achieve your target compression (if the default setting is taking more time than what you desired). |
Beta Was this translation helpful? Give feedback.
-
This question is mostly about the format itself rather than this library, but...
Since I recently got myself a phone that shoots in ultra HDR, I naturally started wanting everything to support it. Before asking other people about it though, it feels fair to first explore adding support to my own project. And this is where I hit a snag: I make heavy use of WebP in my image processing/storage pipeline. I convert all user-uploaded images to high-quality WebP for storage, to save space, and then I serve smaller WebP and JPEG representations of that one file through imgproxy. Both Smithereen itself and imgproxy use libvips for image processing, which is considering adding support for ultra HDR.
However, even when libvips does add that support, it still doesn't appear that WebP is one of the supported formats:
libultrahdr/ultrahdr_api.h
Lines 148 to 153 in ea518da
So what's the best course of action for me here? I did give AVIF a try a while ago, but was unsatisfied with the glacially slow encoding speed (it took hundreds of milliseconds per image on an Apple M1), so unless something has changed about that, switching to AVIF isn't really a viable option.
Beta Was this translation helpful? Give feedback.
All reactions