Open ghost opened 1 year ago
See: https://github.com/SDWebImage/SDWebImageAVIFCoder/pull/7
Actually, before v0.5.0 (which is originally written by me), it use avifImageYUVToRGB
to convert it, exactly what you think. And code is simple.
But @ledyba-z create that PR and use vImage for conversion and provide the performance result, so I merge it and release the new version.
And then, since @ledyba-z no longer maintain this repo and write his own AVIF decoder (!), so I maintained this code and get updated to libavif's API break, until now 😂
If you think there are performance regression, I can provide a option in AVIFCoder to let you customize, like :
typedef enum RGBYUVConversion {
case vImage,
case libyuv,
case sharpyuv
} RGBYUVConversion;
@interface SDImageAVIFCoder
// Control the default RGB to YUV conversion, defaults to vImage (which is fast on Apple platforms)
@class (assign) BOOL RGBYUVConversion defaultConversion;
@end
if so, thank you very much.
Ah, yes. vImage frameworks can convert YUV to RGB about 100x faster than naive CPU code.
@dreampiggy Hi, I have quit my job on link-u, which is a manga company, and moved to a energy company. But I am still interested in maintaining, so feel free to mention when something happen to vImage codes!
为什么不使用接口avifImageYUVToRGB直接转成 RGB 呢,看现在是使用 iOS的 API 自己转,这种方式是速度快吗。