iOS Accelerate Framework vImage - Melhoria de desempenho?

Estou trabalhando com o OpenCV e a estrutura Accelerate da Apple e considero o desempenho do Accelerate lento e a documentação da Apple limitada. Vamos pegar por exemplo:

void equalizeHistogram(const cv::Mat &planar8Image, cv::Mat &equalizedImage)
{
    cv::Size size = planar8Image.size();
    vImage_Buffer planarImageBuffer = {
        .width = static_cast<vImagePixelCount>(size.width),
        .height = static_cast<vImagePixelCount>(size.height),
        .rowBytes = planar8Image.step,
        .data = planar8Image.data
    };

    vImage_Buffer equalizedImageBuffer = {
        .width = static_cast<vImagePixelCount>(size.width),
        .height = static_cast<vImagePixelCount>(size.height),
        .rowBytes = equalizedImage.step,
        .data = equalizedImage.data
    };

    TIME_START(VIMAGE_EQUALIZE_HISTOGRAM);
    vImage_Error error = vImageEqualization_Planar8(&planarImageBuffer, &equalizedImageBuffer, kvImageNoFlags);
    TIME_END(VIMAGE_EQUALIZE_HISTOGRAM);
    if (error != kvImageNoError) {
        NSLog(@"%s, vImage error %zd", __PRETTY_FUNCTION__, error);
    }
}

Essa chamada leva aproximadamente 20 ms. Qual tem o significado prático de ser inutilizável na minha aplicação. Talvez a equalização do histograma seja inerentemente lenta, mas eu também testei BGRA-> Grayscale e descobri que o OpenCV pode fazer isso em ~ 5ms e a vImage leva ~ 20ms.

Ao testar outras funções, encontrei umprojeto que criou um aplicativo deslizante simples com umfunção de desfoque (essência) que eu limpei para testar. Aproximadamente ~ 20ms também.

Existe algum truque para tornar essas funções mais rápidas?

questionAnswers(3)

yourAnswerToTheQuestion