[Rawstudio-commit] r3006 - branches/rawstudio-ng-color/plugins/colorspace-transform

Klaus Post klauspost at gmail.com
Sat Jan 16 13:03:51 CET 2010


Author: post
Date: 2010-01-16 13:03:51 +0100 (Sat, 16 Jan 2010)
New Revision: 3006

Modified:
   branches/rawstudio-ng-color/plugins/colorspace-transform/colorspace_transform.c
Log:
Adjust integer colorspace conversion precision [part1/2].

Modified: branches/rawstudio-ng-color/plugins/colorspace-transform/colorspace_transform.c
===================================================================
--- branches/rawstudio-ng-color/plugins/colorspace-transform/colorspace_transform.c	2010-01-16 12:03:03 UTC (rev 3005)
+++ branches/rawstudio-ng-color/plugins/colorspace-transform/colorspace_transform.c	2010-01-16 12:03:51 UTC (rev 3006)
@@ -183,17 +183,17 @@
 				( i[R] * mati.coeff[0][0]
 				+ i[G] * mati.coeff[0][1]
 				+ i[B] * mati.coeff[0][2]
-				+ 128 ) >> 8;
+				+ MATRIX_RESOLUTION_ROUNDER ) >> MATRIX_RESOLUTION;
 			g =
 				( i[R] * mati.coeff[1][0]
 				+ i[G] * mati.coeff[1][1]
 				+ i[B] * mati.coeff[1][2]
-				+ 128 ) >> 8;
+				+ MATRIX_RESOLUTION_ROUNDER ) >> MATRIX_RESOLUTION;
 			b =
 				( i[R] * mati.coeff[2][0]
 				+ i[G] * mati.coeff[2][1]
 				+ i[B] * mati.coeff[2][2]
-				+ 128 ) >> 8;
+				+ MATRIX_RESOLUTION_ROUNDER ) >> MATRIX_RESOLUTION;
 
 			r = CLAMP(r, 0, 65535);
 			g = CLAMP(g, 0, 65535);
@@ -209,7 +209,7 @@
 }
 
 static void
-transform16_c(gushort *input, gushort *output, gint num_pixels, const gint pixelsize, RS_MATRIX3 *matrix)
+transform16_c(gushort* __restrict input, gushort* __restrict output, gint num_pixels, const gint pixelsize, RS_MATRIX3 *matrix)
 {
 	gint r,g,b;
 	RS_MATRIX3Int mati;
@@ -222,17 +222,17 @@
 			( input[R] * mati.coeff[0][0]
 			+ input[G] * mati.coeff[0][1]
 			+ input[B] * mati.coeff[0][2]
-			+ 128 ) >> 8;
+			+ MATRIX_RESOLUTION_ROUNDER ) >> MATRIX_RESOLUTION;
 		g =
 			( input[R] * mati.coeff[1][0]
 			+ input[G] * mati.coeff[1][1]
 			+ input[B] * mati.coeff[1][2]
-			+ 128 ) >> 8;
+			+ MATRIX_RESOLUTION_ROUNDER ) >> MATRIX_RESOLUTION;
 		b =
 			( input[R] * mati.coeff[2][0]
 			+ input[G] * mati.coeff[2][1]
 			+ input[B] * mati.coeff[2][2]
-			+ 128 ) >> 8;
+			+ MATRIX_RESOLUTION_ROUNDER ) >> MATRIX_RESOLUTION;
 
 		r = CLAMP(r, 0, 65535);
 		g = CLAMP(g, 0, 65535);




More information about the Rawstudio-commit mailing list