vitrivr / vitrivr-engine

vitrivr's next-generation retrieval engine. It is capable of extracting and retrieving a wider range of multimedia objects such as audio, video, images or 3d models.
https://vitrivr.org
MIT License
6 stars 3 forks source link

Support for HEIC / HEIF images #106

Open ppanopticon opened 3 months ago

ppanopticon commented 3 months ago

Task Description

In the XReco context, @rahelarnold98 and I have realized, that the Java ImageIO facility we use in the ImageDecoder 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).

lucaro commented 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.