OLD | NEW |
1 #include <cmath> | 1 #include <cmath> |
2 #include <math.h> | 2 #include <math.h> |
3 | 3 |
4 #include "SkBitmap.h" | 4 #include "SkBitmap.h" |
5 #include "skpdiff_util.h" | 5 #include "skpdiff_util.h" |
6 #include "SkPMetric.h" | 6 #include "SkPMetric.h" |
7 #include "SkPMetricUtil_generated.h" | 7 #include "SkPMetricUtil_generated.h" |
8 | 8 |
9 struct RGB { | 9 struct RGB { |
10 float r, g, b; | 10 float r, g, b; |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
155 bitmap->unlockPixels(); | 155 bitmap->unlockPixels(); |
156 return true; | 156 return true; |
157 } | 157 } |
158 | 158 |
159 // From Barten SPIE 1989 | 159 // From Barten SPIE 1989 |
160 static float contrast_sensitivity(float cyclesPerDegree, float luminance) { | 160 static float contrast_sensitivity(float cyclesPerDegree, float luminance) { |
161 float a = 440.0f * powf(1.0f + 0.7f / luminance, -0.2f); | 161 float a = 440.0f * powf(1.0f + 0.7f / luminance, -0.2f); |
162 float b = 0.3f * powf(1.0f + 100.0f / luminance, 0.15f); | 162 float b = 0.3f * powf(1.0f + 100.0f / luminance, 0.15f); |
163 float exp = expf(-b * cyclesPerDegree); | 163 float exp = expf(-b * cyclesPerDegree); |
164 float root = sqrtf(1.0f + 0.06f * expf(b * cyclesPerDegree)); | 164 float root = sqrtf(1.0f + 0.06f * expf(b * cyclesPerDegree)); |
165 if (!std::isfinite(exp) || !std::isfinite(root)) { | 165 if (!SkScalarIsFinite(exp) || !SkScalarIsFinite(root)) { |
166 return 0; | 166 return 0; |
167 } | 167 } |
168 return a * cyclesPerDegree * exp * root; | 168 return a * cyclesPerDegree * exp * root; |
169 } | 169 } |
170 | 170 |
171 #if 0 | 171 #if 0 |
172 // We're keeping these around for reference and in case the lookup tables are no
longer desired. | 172 // We're keeping these around for reference and in case the lookup tables are no
longer desired. |
173 // They are no longer called by any code in this file. | 173 // They are no longer called by any code in this file. |
174 | 174 |
175 // From Daly 1993 | 175 // From Daly 1993 |
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
457 if (!bitmap_to_cielab(baseline, &baselineLAB) || !bitmap_to_cielab(test, &te
stLAB)) { | 457 if (!bitmap_to_cielab(baseline, &baselineLAB) || !bitmap_to_cielab(test, &te
stLAB)) { |
458 return true; | 458 return true; |
459 } | 459 } |
460 | 460 |
461 result->poiCount = 0; | 461 result->poiCount = 0; |
462 result->result = pmetric(&baselineLAB, &testLAB, &result->poiCount); | 462 result->result = pmetric(&baselineLAB, &testLAB, &result->poiCount); |
463 result->timeElapsed = get_seconds() - startTime; | 463 result->timeElapsed = get_seconds() - startTime; |
464 | 464 |
465 return true; | 465 return true; |
466 } | 466 } |
OLD | NEW |