Support for GX680 digital back including DCP (#6655)
* Initial support for GX680 digital back With help from LibRaw for decoding support. Estimates for color calibration are very rough... * Small modification to black level, add DCP
This commit is contained in:
parent
21a7c97ede
commit
3423a7ac55
BIN
rtdata/dcpprofiles/FUJIFILM DBP for GX680.dcp
Normal file
BIN
rtdata/dcpprofiles/FUJIFILM DBP for GX680.dcp
Normal file
Binary file not shown.
@ -1586,6 +1586,12 @@ Camera constants:
|
|||||||
"raw_crop": [ 0, 5, 7752, 5184 ]
|
"raw_crop": [ 0, 5, 7752, 5184 ]
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{ // Quality C
|
||||||
|
"make_model": "FUJIFILM DBP for GX680",
|
||||||
|
"dcraw_matrix": [ 12741, -4916, -1420, -8510, 16791, 1715, -1767, 2302, 7771 ], // same as S2Pro as per LibRaw
|
||||||
|
"ranges": { "white": 4096, "black": 132 }
|
||||||
|
},
|
||||||
|
|
||||||
{ // Quality C, Leica C-Lux names can differ?
|
{ // Quality C, Leica C-Lux names can differ?
|
||||||
"make_model" : [ "LEICA C-LUX", "LEICA CAM-DC25" ],
|
"make_model" : [ "LEICA C-LUX", "LEICA CAM-DC25" ],
|
||||||
"dcraw_matrix" : [7790, -2736, -755, -3452, 11870, 1769, -628, 1647, 4898]
|
"dcraw_matrix" : [7790, -2736, -755, -3452, 11870, 1769, -628, 1647, 4898]
|
||||||
|
@ -2464,6 +2464,30 @@ void CLASS unpacked_load_raw()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// RT - from LibRaw
|
||||||
|
void CLASS unpacked_load_raw_FujiDBP()
|
||||||
|
/*
|
||||||
|
for Fuji DBP for GX680, aka DX-2000
|
||||||
|
DBP_tile_width = 688;
|
||||||
|
DBP_tile_height = 3856;
|
||||||
|
DBP_n_tiles = 8;
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
int scan_line, tile_n;
|
||||||
|
int nTiles = 8;
|
||||||
|
tile_width = raw_width / nTiles;
|
||||||
|
ushort *tile;
|
||||||
|
tile = (ushort *) calloc(raw_height, tile_width * 2);
|
||||||
|
for (tile_n = 0; tile_n < nTiles; tile_n++) {
|
||||||
|
read_shorts(tile, tile_width * raw_height);
|
||||||
|
for (scan_line = 0; scan_line < raw_height; scan_line++) {
|
||||||
|
memcpy(&raw_image[scan_line * raw_width + tile_n * tile_width],
|
||||||
|
&tile[scan_line * tile_width], tile_width * 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
free(tile);
|
||||||
|
fseek(ifp, -2, SEEK_CUR); // avoid EOF error
|
||||||
|
}
|
||||||
|
|
||||||
// RT
|
// RT
|
||||||
void CLASS sony_arq_load_raw()
|
void CLASS sony_arq_load_raw()
|
||||||
@ -10067,6 +10091,9 @@ canon_a5:
|
|||||||
} else if (!strcmp(model, "X-Pro3") || !strcmp(model, "X-T3") || !strcmp(model, "X-T30") || !strcmp(model, "X-T4") || !strcmp(model, "X100V") || !strcmp(model, "X-S10")) {
|
} else if (!strcmp(model, "X-Pro3") || !strcmp(model, "X-T3") || !strcmp(model, "X-T30") || !strcmp(model, "X-T4") || !strcmp(model, "X100V") || !strcmp(model, "X-S10")) {
|
||||||
width = raw_width = 6384;
|
width = raw_width = 6384;
|
||||||
height = raw_height = 4182;
|
height = raw_height = 4182;
|
||||||
|
} else if (!strcmp(model, "DBP for GX680")) { // Special case for #4204
|
||||||
|
width = raw_width = 5504;
|
||||||
|
height = raw_height = 3856;
|
||||||
}
|
}
|
||||||
top_margin = (raw_height - height) >> 2 << 1;
|
top_margin = (raw_height - height) >> 2 << 1;
|
||||||
left_margin = (raw_width - width ) >> 2 << 1;
|
left_margin = (raw_width - width ) >> 2 << 1;
|
||||||
@ -10074,6 +10101,16 @@ canon_a5:
|
|||||||
if (width == 4032 || width == 4952 || width == 6032 || width == 8280) left_margin = 0;
|
if (width == 4032 || width == 4952 || width == 6032 || width == 8280) left_margin = 0;
|
||||||
if (width == 3328 && (width -= 66)) left_margin = 34;
|
if (width == 3328 && (width -= 66)) left_margin = 34;
|
||||||
if (width == 4936) left_margin = 4;
|
if (width == 4936) left_margin = 4;
|
||||||
|
if (width == 5504) { // #4204, taken from LibRaw
|
||||||
|
left_margin = 32;
|
||||||
|
top_margin = 8;
|
||||||
|
width = raw_width - 2*left_margin;
|
||||||
|
height = raw_height - 2*top_margin;
|
||||||
|
load_raw = &CLASS unpacked_load_raw_FujiDBP;
|
||||||
|
filters = 0x16161616;
|
||||||
|
load_flags = 0;
|
||||||
|
flip = 6;
|
||||||
|
}
|
||||||
if (!strcmp(model,"HS50EXR") ||
|
if (!strcmp(model,"HS50EXR") ||
|
||||||
!strcmp(model,"F900EXR")) {
|
!strcmp(model,"F900EXR")) {
|
||||||
width += 2;
|
width += 2;
|
||||||
|
@ -432,6 +432,7 @@ void parse_hasselblad_gain();
|
|||||||
void hasselblad_load_raw();
|
void hasselblad_load_raw();
|
||||||
void leaf_hdr_load_raw();
|
void leaf_hdr_load_raw();
|
||||||
void unpacked_load_raw();
|
void unpacked_load_raw();
|
||||||
|
void unpacked_load_raw_FujiDBP();
|
||||||
void sinar_4shot_load_raw();
|
void sinar_4shot_load_raw();
|
||||||
void imacon_full_load_raw();
|
void imacon_full_load_raw();
|
||||||
void packed_load_raw();
|
void packed_load_raw();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user