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
HEIF format support in OpenCV #14534
Comments
I would also point to https://github.com/nokiatech/heif for more details on the format and the original source code of the reader/writer. |
Hi @alalek By now HEIC is the default image format on new iOS versions, Android 10 added support for HEIC, Windows and Mac also do support the format. It would be great if we could just load them in opencv directly as well. |
Hi @alalek, |
Some research on HEIF format and support optionsGeneralHEIF is not single file format like JPEG or PNG, but container like AVI for video and may contain single image, sequence of images, images derived from other images like expose stacks and extra data like sound, text, meta information. The format is designed for several codec types, including JPEG, H264, H265, AV1 and the list can be extended in future. HEIC just HEIF branch with default codec HEVC, ITU-T H.265. Existing solutions
|
Nokia HEIF conformance data: https://github.com/nokiatech/heif_conformance |
Related work on HEIF support in FFmpeg: https://trac.ffmpeg.org/ticket/6521 |
If this issue still open can you assign it to me? |
Yes, sure. |
@asmorkalov Can you provide me some resources as i am a absolute beginner in open source and guide me what I have to learn for working on this issue? |
Can we just use libheif(with LGPL license)? I wonder if the two Licenses conflict. If conflict, we should search for another solution |
It seems that only link libheif dynamic libraries is OK under the LGPL license. |
Multi-frame images are not supported by imread/imwrite for now. OpenCV reads single frame only. cv::VideoCapture should be used/implemented for sequences. |
Just to add this would be very useful for our use case. We deal with large numbers of big images (100MB PNGs) that we need to store lossless. WebP doesn't do well compressing these (only 10% improvement over PNG but takes 10x longer to encode) whereas HEIC can store them half the size (yes, lossless) while not being much slower than PNG encoding. |
I'm trying to use the HEIF library. I want to convert the primary image in the heif file into a |
Is it a dead end? |
This would be very useful. |
HEIF is a container format -- HEIC is using HEIF with HEVC/H265 while AVIF is using HEIF with AV1. AVIF is already implemented in #23596 and so it sounds like the remaining work is to implement HEIC support (i.e. specifically HEIF with HEVC/H265). The problem is that there doesn't look like there is any non-LGPL open source library for HEVC/H265 decoding. The options that I have found at libdeh265 and ffmpeg. It does sound like using ffmpeg to decode HEIC makes sense especially since https://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=a0821345eb31b727d93c9c3ed7d74d2774c73afa (where some heic support was added to ffmpeg). I can help to make a patch if there are some agreement about what's the best way forward :) |
This is a feature request, not a bug.
Detailed description
https://github.com/strukturag/libheif
I'd like to access HEIF files directly without conversion. Is it possible to add a build flag by using libheif?
The text was updated successfully, but these errors were encountered: