Open ppanopticon opened 3 months ago
The 'state-of-the-art' part is up for discussion, as it is still a niche occurrence, and there are several other up-and-coming image formats, including AVIF and JPEG XL (both of which are proper open formats in contrast to at least some variants of HEIF). Ideally, we would support all of these, and whenever this can be done with just the inclusion of another library, I see no reason why we should not. The next LTS version of the JVM is version 25, scheduled to be released a year from now. I'm personally not a fan of depending on functionality that is not available in the latest LTS, at least not for core dependencies. So if you need support for this stuff earlier, it's probably best to handle this via a specific module, since then one does not force the entire stack to depend on the latest JVM version—my 2 cents.
Task Description
In the XReco context, @rahelarnold98 and I have realized, that the Java
ImageIO
facility we use in theImageDecoder
does not support the HEIF image format. Now this format becomes more and more virulent, since every iPhone / iPad produces it. Nevertheless, it seems that support for it on the Java platform is not very mature yet. This is what I found:The goal of this task is therefore to add HEIC / HEIF compatibility to
vitrivr-engine
, since I would argue, this is a state-of-the-art format that we ought to support in the near future.Dependencies
None
Boundary Conditions
Ideally, this change should be implemented as an extension to Java's
ImageIO
facilities (like TwelveMonkeys).