You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have been looking into improving heic decoding performance. My use case is:
Input: YUV420 HEVC, multiple tile
Output: RGB interlaced
In my benchmark with hacky implementation with libyuv (see the question below about why libyuv) and fixing the separate RGB channel to interlaced RGB conversion, my numbers are roughly:
42ms with ffmpeg decoder plugin (and libheif yuv2rgb conversion)
30ms with ffmpeg decoder plugin + libyuv for yuv2rgh interlaced conversion
Questions:
Does it make sense to use libyuv for yuv2rgb conversion? sharpyuv doesn't do yuv2rgb. The other alternative is libswscale (from ffmpeg), but following ffmpeg-devel mailing list, it has not been getting much love until recently and there is some suggestion that libyuv performs better than libswscale https://ffmpeg.org/pipermail/ffmpeg-devel/2024-June/330395.html
Is the logic to default to using chroma_444 in decode_image_planar intentional? Is there any objection to change it to depend on out_chroma instead?
Thanks
The text was updated successfully, but these errors were encountered:
In the upcoming v1.19.0, I have removed many of the unnecessary internal color conversions. Decoding should be faster in many cases.
To get the best decoding speed, use heif_decode_image() with heif_colorspace_unknown and heif_chroma_unknown. Then libheif will use the colorspace of the input image as long as possible.
I have been looking into improving heic decoding performance. My use case is:
In my benchmark with hacky implementation with libyuv (see the question below about why libyuv) and fixing the separate RGB channel to interlaced RGB conversion, my numbers are roughly:
Questions:
Thanks
The text was updated successfully, but these errors were encountered: