Next correction of DCRAW camera color matrices

on behalf of Colin, see issue #930
This commit is contained in:
Oliver Duis
2011-09-06 19:34:36 +02:00
parent 8f7eaf6071
commit 2617c6bccf
2 changed files with 108 additions and 43 deletions

View File

@@ -1,5 +1,5 @@
--- C:/GCC/RT/RTSrc/rtengine/dcraw.c Tue Aug 16 06:59:22 2011
+++ C:/GCC/RT/RTSrc/rtengine/dcraw.cc Thu Sep 01 18:46:35 2011
+++ C:/GCC/RT/RTSrc/rtengine/dcraw.cc Mon Sep 05 17:48:51 2011
@@ -1,3 +1,14 @@
+/*RT*/#include <glib.h>
+/*RT*/#include <glib/gstdio.h>
@@ -313,7 +313,7 @@
- { "Canon EOS 7D", 0, 0x3510,
- { 6844,-996,-856,-3876,11761,2396,-593,1772,6198 } },
+ { "Canon EOS 7D", 0, 0x3510, /* RT - Colin Walker */
+ { 8937,-1470,-939,-2286,10178,2456,-404,1267,8877 } },
+ { 5962,-171,-732,-4189,12307,2099,-911,1981,6304 } },
{ "Canon EOS 10D", 0, 0xfa0,
{ 8197,-2000,-1118,-6714,14335,2592,-2536,3178,8266 } },
{ "Canon EOS 20Da", 0, 0,
@@ -328,13 +328,22 @@
{ "Canon EOS 300D", 0, 0xfa0,
{ 8197,-2000,-1118,-6714,14335,2592,-2536,3178,8266 } },
{ "Canon EOS 350D", 0, 0xfff,
@@ -6298,7 +6319,7 @@
{ "Canon PowerShot SX1 IS", 0, 0,
{ 6578,-259,-502,-5974,13030,3309,-308,1058,4970 } },
{ "Canon PowerShot SX110 IS", 0, 0, /* DJC */
- { 14134,-5576,-1527,-1991,10719,1273,-1158,1929,3581 } },
+ { 14134,-5576,-1527,-1991,10719,1273,-1158,1929,3581 } },
{ "CASIO EX-S20", 0, 0, /* DJC */
{ 11634,-3924,-1128,-4968,12954,2015,-1588,2648,7206 } },
{ "CASIO EX-Z750", 0, 0, /* DJC */
@@ -6367,8 +6388,8 @@
{ 13690,-5358,-1474,-3369,11600,1998,-132,1554,4395 } },
{ "FUJIFILM FinePix F550EXR", 0, 0,
{ 13690,-5358,-1474,-3369,11600,1998,-132,1554,4395 } },
- { "FUJIFILM FinePix X100", 0, 0,
- { 12161,-4457,-1069,-5034,12874,2400,-795,1724,6904 } },
+ { "FUJIFILM FinePix X100", 0, 0,
+ { "FUJIFILM FinePix X100", 0, 0, /* RT - Colin Walker */
+ { 10841,-3288,-807,-4652,12552,2344,-642,1355,7206 } },
{ "Imacon Ixpress", 0, 0, /* DJC */
{ 7025,-1415,-704,-5188,13765,1424,-1248,2742,6038 } },
@@ -350,7 +359,26 @@
{ "NIKON D70", 0, 0,
{ 7732,-2422,-789,-8238,15884,2498,-859,783,7330 } },
{ "NIKON D80", 0, 0,
@@ -6581,12 +6602,12 @@
@@ -6557,8 +6578,8 @@
{ 7828,-1761,-348,-5788,14071,1830,-2853,4518,6557 } },
{ "OLYMPUS E-330", 0, 0,
{ 8961,-2473,-1084,-7979,15990,2067,-2319,3035,8249 } },
- { "OLYMPUS E-30", 0, 0xfbc,
- { 8144,-1861,-1111,-7763,15894,1929,-1865,2542,7607 } },
+ { "OLYMPUS E-30", 0, 0xfbc, /* RT - Colin Walker */
+ { 8510,-2355,-693,-4819,12520,2578,-1029,2067,7752 } },
{ "OLYMPUS E-3", 0, 0xf99,
{ 9487,-2875,-1115,-7533,15606,2010,-1618,2100,7389 } },
{ "OLYMPUS E-400", 0, 0,
@@ -6575,24 +6596,26 @@
{ 8785,-2529,-1033,-7639,15624,2112,-1783,2300,7817 } },
{ "OLYMPUS E-520", 0, 0xfd2,
{ 8344,-2322,-1020,-7596,15635,2048,-1748,2269,7287 } },
- { "OLYMPUS E-5", 0, 0,
- { 11200,-3783,-1325,-4576,12593,2206,-695,1742,7504 } },
+ { "OLYMPUS E-5", 0, 0, /* RT - Colin Walker */
+ { 9732,-2629,-999,-4899,12931,2173,-1243,2353,7457 } },
{ "OLYMPUS E-600", 0, 0xfaf,
{ 8453,-2198,-1092,-7609,15681,2008,-1725,2337,7824 } },
{ "OLYMPUS E-620", 0, 0xfaf,
{ 8453,-2198,-1092,-7609,15681,2008,-1725,2337,7824 } },
@@ -360,16 +388,41 @@
- { 8343,-2050,-1021,-7715,15705,2103,-1831,2380,8235 } },
- { "OLYMPUS E-P3", 0, 0, /* DJC */
- { 7488,-3021,-55,-2377,8348,4029,-816,2405,6327 } },
- { "OLYMPUS E-PL1s", 0, 0,
- { 11409,-3872,-1393,-4572,12757,2003,-709,1810,7415 } },
- { "OLYMPUS E-PL1", 0, 0,
- { 11408,-4289,-1215,-4286,12385,2118,-387,1467,7787 } },
- { "OLYMPUS E-PL2", 0, 0,
- { 15030,-5552,-1806,-3987,12387,1767,-592,1670,7023 } },
+ { "OLYMPUS E-P1", 0, 0xffd, /* RT - Colin Walker */
+ { 8834,-2344,-804,-4691,12503,2448,-978,1919,7603 } },
+ { "OLYMPUS E-P2", 0, 0xffd, /* RT - Colin Walker */
+ { 7758,-1619,-800,-5002,12886,2349,-985,1964,8305 } },
+ { "OLYMPUS E-P3", 0, 0, /* RT - Colin Walker */
+ { 7041,-1794,-336,-3790,11192,2984,-1364,2625,6217 } },
{ "OLYMPUS E-PL1s", 0, 0,
{ 11409,-3872,-1393,-4572,12757,2003,-709,1810,7415 } },
{ "OLYMPUS E-PL1", 0, 0,
@@ -6683,30 +6704,32 @@
+ { "OLYMPUS E-PL1s", 0, 0, /* RT - Colin Walker */
+ { 9010,-2271,-838,-4792,12753,2263,-1059,2058,7589 } },
+ { "OLYMPUS E-PL1", 0, 0, /* RT - Colin Walker */
+ { 9010,-2271,-838,-4792,12753,2263,-1059,2058,7589 } },
+ { "OLYMPUS E-PL2", 0, 0, /* RT - Colin Walker */
+ { 11975,-3351,-1184,-4500,12639,2061,-1230,2353,7009 } },
+ { "OLYMPUS E-PL3", 0, 0, /* RT - Colin Walker */
+ { 7041,-1794,-336,-3790,11192,2984,-1364,2625,6217 } },
{ "OLYMPUS SP350", 0, 0,
{ 12078,-4836,-1069,-6671,14306,2578,-786,939,7418 } },
{ "OLYMPUS SP3", 0, 0,
@@ -6607,8 +6630,8 @@
{ 10915,-3677,-982,-5587,12986,2911,-1168,1968,6223 } },
{ "OLYMPUS SP570UZ", 0, 0,
{ 11522,-4044,-1146,-4736,12172,2904,-988,1829,6039 } },
- { "OLYMPUS XZ-1", 0, 0,
- { 10901,-4095,-1074,-1141,9208,2293,-62,1417,5158 } },
+ { "OLYMPUS XZ-1", 0, 0, /* RT - Colin Walker */
+ { 8665,-2247,-762,-2424,10372,2382,-1011,2286,5189 } },
{ "PENTAX *ist DL2", 0, 0,
{ 10504,-2438,-1189,-8603,16207,2531,-1022,863,12242 } },
{ "PENTAX *ist DL", 0, 0,
@@ -6683,30 +6706,32 @@
{ 10909,-4295,-948,-1333,9306,2399,22,1738,4582 } },
{ "LEICA D-LUX 5", 143, 0,
{ 10909,-4295,-948,-1333,9306,2399,22,1738,4582 } },
@@ -420,18 +473,28 @@
{ "Phase One H 20", 0, 0, /* DJC */
{ 1313,1855,-109,-6715,15908,808,-327,1840,6020 } },
{ "Phase One P 2", 0, 0,
@@ -6769,8 +6792,8 @@
{ 6907,-1256,-645,-4940,12621,2320,-1710,2581,6230 } },
{ "SONY NEX-5", 116, 0, /* DJC */
{ 6807,-1350,-342,-4216,11649,2567,-1089,2001,6420 } },
@@ -6765,20 +6790,22 @@
{ 5413,-1162,-365,-5665,13098,2866,-608,1179,8440 } },
{ "SONY DSLR-A900", 128, 0,
{ 5209,-1072,-397,-8845,16120,2919,-1618,1803,8654 } },
- { "SONY NEX-3", 138, 0, /* DJC */
- { 6907,-1256,-645,-4940,12621,2320,-1710,2581,6230 } },
- { "SONY NEX-5", 116, 0, /* DJC */
- { 6807,-1350,-342,-4216,11649,2567,-1089,2001,6420 } },
- { "SONY NEX-C3", 128, 0, /* DJC */
- { 5171,-1786,-46,-3375,9315,4061,-611,1865,6473 } },
- { "SONY NEX", 128, 0, /* Adobe's matrix */
- { 6549,-1550,-436,-4880,12435,2753,-854,1868,6976 } },
+ { "SONY NEX-3", 128, 0, /* RT - Colin Walker */
+ { 5145,-741,-123,-4915,12310,2945,-794,1489,6906 } },
+ { "SONY NEX-5", 128, 0, /* RT - Colin Walker */
+ { 5154,-716,-115,-5065,12506,2882,-988,1715,6800 } },
+ { "SONY NEX-C3", 128, 0, /* RT - Colin Walker */
+ { 5130,-1055,-269,-4473,11797,3050,-701,1310,7121 } },
{ "SONY NEX", 128, 0, /* Adobe's matrix */
{ 6549,-1550,-436,-4880,12435,2753,-854,1868,6976 } },
+ { "SONY NEX-5N", 138, 0, /* RT - Colin Walker */
+ { 5130,-1055,-269,-4473,11797,3050,-701,1310,7121 } },
{ "SONY SLT-A33", 128, 0,
@@ -6778,7 +6801,9 @@
{ 6069,-1221,-366,-5221,12779,2734,-1024,2066,6834 } },
{ "SONY SLT-A35", 128, 0, /* DJC */
{ 4504,-1495,115,-3507,9101,4407,-669,1844,6806 } },
{ "SONY SLT-A55", 128, 0,
@@ -442,7 +505,7 @@
};
double cam_xyz[4][3];
char name[130];
@@ -7021,6 +7046,12 @@
@@ -7021,6 +7048,12 @@
fread (head, 1, 32, ifp);
fseek (ifp, 0, SEEK_END);
flen = fsize = ftell(ifp);
@@ -455,7 +518,7 @@
if ((cp = (char *) memmem (head, 32, "MMMM", 4)) ||
(cp = (char *) memmem (head, 32, "IIII", 4))) {
parse_phase_one (cp-head);
@@ -7028,6 +7059,8 @@
@@ -7028,6 +7061,8 @@
} else if (order == 0x4949 || order == 0x4d4d) {
if (!memcmp (head+6,"HEAPCCDR",8)) {
data_offset = hlen;
@@ -464,7 +527,7 @@
parse_ciff (hlen, flen - hlen);
} else if (parse_tiff(0)) apply_tiff();
} else if (!memcmp (head,"\xff\xd8\xff\xe1",4) &&
@@ -7071,6 +7104,7 @@
@@ -7071,6 +7106,7 @@
fseek (ifp, 100+28*(shot_select > 0), SEEK_SET);
parse_tiff (data_offset = get4());
parse_tiff (thumb_offset+12);
@@ -472,7 +535,7 @@
apply_tiff();
} else if (!memcmp (head,"RIFF",4)) {
fseek (ifp, 0, SEEK_SET);
@@ -7116,8 +7150,7 @@
@@ -7116,8 +7152,7 @@
parse_redcine();
load_raw = &CLASS redcine_load_raw;
gamma_curve (1/2.4, 12.92, 1, 4095);
@@ -482,7 +545,7 @@
parse_rollei();
else if (!memcmp (head,"PWAD",4))
parse_sinar_ia();
@@ -7172,7 +7205,7 @@
@@ -7172,7 +7207,7 @@
if (height == 3136 && width == 4864) /* Pentax K20D and Samsung GX20 */
{ height = 3124; width = 4688; filters = 0x16161616; }
if (!strcmp(model,"K-r") || !strcmp(model,"K-x"))
@@ -491,7 +554,7 @@
if (!strcmp(model,"K-5"))
{ left_margin = 10; width = 4950; filters = 0x16161616; }
if (!strcmp(model,"K-7"))
@@ -8791,13 +8824,13 @@
@@ -8791,13 +8826,13 @@
FORCC ppm [col*colors+c] = curve[image[soff][c]] >> 8;
else FORCC ppm2[col*colors+c] = curve[image[soff][c]];
if (output_bps == 16 && !output_tiff && htons(0x55aa) != 0x55aa)
@@ -507,7 +570,7 @@
{
int arg, status=0;
int timestamp_only=0, thumbnail_only=0, identify_only=0;
@@ -8910,7 +8943,7 @@
@@ -8910,7 +8945,7 @@
case 'i': identify_only = 1; break;
case 'c': write_to_stdout = 1; break;
case 'v': verbose = 1; break;
@@ -516,7 +579,7 @@
case 'f': four_color_rgb = 1; break;
case 'A': FORC4 greybox[c] = atoi(argv[arg++]);
case 'a': use_auto_wb = 1; break;
@@ -9173,3 +9206,4 @@
@@ -9173,3 +9208,4 @@
}
return status;
}