На iOS как быстро преобразовать RGB24 в BGR24?

Я использую vImageConvert_RGB888toPlanar8и vImageConvert_Planar8toRGB888из Accelerate.framework для преобразования RGB24 в BGR24, но когда данные, которые необходимо преобразовать, очень велики, например, 3M или 4M, время, необходимое для этого, составляет около 10 мс. Итак, кто-нибудь знает какую-нибудь достаточно быструю идею? Мой код такой:

- (void)transformRGBToBGR:(const UInt8 *)pict{
rgb.data = (void *)pict;

vImage_Error error = vImageConvert_RGB888toPlanar8(&rgb,&red,&green,&blue,kvImageNoFlags);
if (error != kvImageNoError) {
    NSLog(@"vImageConvert_RGB888toARGB8888 error");
}

error = vImageConvert_Planar8toRGB888(&blue,&green,&red,&bgr,kvImageNoFlags);
if (error != kvImageNoError) {
    NSLog(@"vImagePermuteChannels_ARGB8888 error");
}

free((void *)pict);
}
7
задан Cameron Lowell Palmer 25 February 2015 в 14:54
поделиться