0
이 기능은 화상 처리의 몇몇 예에서 가져는 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로 줄어 듭니다.
내가 생각할 수있는 한 가지 간단한 방법은'source + overlay' 값의 분포를 검사하여 가장 높은 확률을 가진 술어를 먼저 검사하는 것입니다. –
루프가 얼마나 큽니까? – Mark
어떻게 측정하나요? 컴파일러를 연결하지 않고 릴리즈에서 실행합니까? – Euphoric