Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for HEIC / HEIF images #106

Open
ppanopticon opened this issue Aug 27, 2024 · 1 comment
Open

Support for HEIC / HEIF images #106

ppanopticon opened this issue Aug 27, 2024 · 1 comment
Labels
enhancement New feature or request

Comments

@ppanopticon
Copy link
Member

ppanopticon commented Aug 27, 2024

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 TwelveMonkeys library does not currently support the format and it seems, that there are no immediate plans to change this. An issue has been open for several years now.
  • The NightMonkeys library does add support for HEIC / HEIF but only supports Java 22 (which is not an LTS version), since it relies on the new foreign memory API.

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).

@ppanopticon ppanopticon added the enhancement New feature or request label Aug 27, 2024
@ppanopticon ppanopticon added this to the Release Candidate #2 milestone Aug 27, 2024
@lucaro
Copy link
Member

lucaro commented Aug 27, 2024

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants