使图像处理功能更快

时间:2016-09-10 07:38:11

标签: c# image-processing bit-manipulation

此函数取自图像处理的一些示例,它返回0到255之间的值:

private static byte CalculateColorComponentBlendValue(float source, float overlay)
{
    float resultValue = 0;
    byte resultByte = 0;

    resultValue = source + overlay;

    if (resultValue > 255)
    {
        resultByte = 255;
    }
    else if (resultValue < 0)
    {
        resultByte = 0;
    }
    else
    {
        resultByte = (byte)resultValue;
    }

    return resultByte;
}

它被称为一个大循环。这可以以某种方式进行优化吗?可能会有一些操作?现在整个循环需要400ms,如果我删除对此函数的调用,它会减少到200ms。

1 个答案:

答案 0 :(得分:0)

您在此尝试实现的目标称为钳制。之前已经多次讨论过。我建议你看看那些讨论。因此,我不是重复那些,而是提出一些问题。您的实现是否必须纯粹是C?价值是否需要浮动?是否还有其他优化选项:SIMD,线程,GPU?