Author: post
Date: 2009-12-31 01:52:35 +0100 (Thu, 31 Dec 2009)
New Revision: 2933
Modified:
branches/rawstudio-ng-color/plugins/dcp/dcp-sse.c
Log:
Clamp after exposure before contrast to match C routine.
Modified: branches/rawstudio-ng-color/plugins/dcp/dcp-sse.c
===================================================================
--- branches/rawstudio-ng-color/plugins/dcp/dcp-sse.c 2009-12-31 00:27:23 UTC
(rev 2932)
+++ branches/rawstudio-ng-color/plugins/dcp/dcp-sse.c 2009-12-31 00:52:35 UTC
(rev 2933)
@@ -699,7 +699,12 @@
__m128 y2_r = _mm_mul_ps(exposure_slope, _mm_sub_ps(r,
exposure_black));
__m128 y2_g = _mm_mul_ps(exposure_slope, _mm_sub_ps(g,
exposure_black));
__m128 y2_b = _mm_mul_ps(exposure_slope, _mm_sub_ps(b,
exposure_black));
-
+
+ /* x = MIN(1.0, x) */
+ max_val = _mm_load_ps(_ones_ps);
+ y2_r = _mm_min_ps(y2_r, max_val);
+ y2_g = _mm_min_ps(y2_g, max_val);
+ y2_b = _mm_min_ps(y2_b, max_val);
__m128 black_plus_radius =
_mm_load_ps(_black_plus_radius);
__m128 r_mask = _mm_cmpgt_ps(r, black_plus_radius);
__m128 g_mask = _mm_cmpgt_ps(g, black_plus_radius);
@@ -710,6 +715,8 @@
y_r = _mm_or_ps(y_r, _mm_and_ps(r_mask, y2_r));
y_g = _mm_or_ps(y_g, _mm_and_ps(g_mask, y2_g));
y_b = _mm_or_ps(y_b, _mm_and_ps(b_mask, y2_b));
+
+ /* if (x <= dcp->exposure_black - dcp->exposure_radius)
x = 0; */
black_minus_radius = _mm_load_ps(_black_minus_radius);
r_mask = _mm_cmple_ps(r, black_minus_radius);
g_mask = _mm_cmple_ps(g, black_minus_radius);
@@ -1390,6 +1397,12 @@
__m128 y2_g = _mm_mul_ps(exposure_slope, _mm_sub_ps(g,
exposure_black));
__m128 y2_b = _mm_mul_ps(exposure_slope, _mm_sub_ps(b,
exposure_black));
+ /* x = MIN(1.0, x) */
+ max_val = _mm_load_ps(_ones_ps);
+ y2_r = _mm_min_ps(y2_r, max_val);
+ y2_g = _mm_min_ps(y2_g, max_val);
+ y2_b = _mm_min_ps(y2_b, max_val);
+
__m128 black_plus_radius =
_mm_load_ps(_black_plus_radius);
__m128 r_mask = _mm_cmpgt_ps(r, black_plus_radius);
__m128 g_mask = _mm_cmpgt_ps(g, black_plus_radius);
_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit