【发布时间】:2010-12-01 14:05:06
【问题描述】:
我的内部循环包含一个分析显示有问题的计算。
这个想法是采用灰度像素 x (0
- 对于 x
- 对于 x > .5,x
- f(0) = 0
- f(x) = 1 - f(1 - x),即它应该是“对称的”
- 最好是函数流畅。
所以图表必须看起来像这样:
.
我有两个实现(它们的结果不同但都是一致的):
float cosContrastize(float i) {
return .5 - cos(x * pi) / 2;
}
float mulContrastize(float i) {
if (i < .5) return i * i * 2;
i = 1 - i;
return 1 - i * i * 2;
}
因此,我请求对这些实现之一进行微优化,或者您自己的原始、更快的公式。
也许你们中的一个人甚至可以旋转这些位;)
【问题讨论】:
-
如果您能告诉我们您使用的是什么语言(我假设是 Java)以及所涉及的编译器/运行时是什么,也许我们可以为您提供更好的帮助。
-
带有 MS 编译器和运行时的 C#,但如果我发现需要,我愿意用 C++ 重写关键算法...
-
C# 带有驼峰式方法名称? :(
-
许多这样的函数在以零为中心时更快/更简单。我不确定你程序的其余部分,但如果这种代码很关键,你可以考虑重新定位你的数据表示以从 -1..1 而不是 0..1 缩放。
标签: optimization math formula