此函数取自图像处理的一些示例,它返回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。
答案 0 :(得分:0)
您在此尝试实现的目标称为钳制。之前已经多次讨论过。我建议你看看那些讨论。因此,我不是重复那些,而是提出一些问题。您的实现是否必须纯粹是C?价值是否需要浮动?是否还有其他优化选项:SIMD,线程,GPU?