diff --git a/rtengine/camconst.json b/rtengine/camconst.json index fa291adf8..b2e5f3a4e 100755 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -12,7 +12,7 @@ IMPORTANT: ---------- - + 1. If you set the dcraw matrix in your user file for an already existing entry in RT's file (same camera, same model), your values will replace RT's ones. 2. If you set the Black level(s) values in your user file for an already existing @@ -60,21 +60,21 @@ Examples: "make_model": "ManufacturerA ModelB", // ColorMatrix with D65 Calibration Illuminant, in dcraw format "dcraw_matrix": [ 7530, -1942, -255, -4318, 11390, 3362, -926, 1694, 7649 ], - // black level (or black offset if a base black is already calculated by Dcraw, see Panasonic) + // black level (or black offset if a base black is already extracted from exif by Dcraw, see Panasonic, resent Nikon ) // and white level same for all colors at all ISOs "ranges": { "black": 10, "white": 1000 }, // crop away masked sensor borders, 10 pixels left, 20 pixels top, resulting image width/height 4000x3000 // instead of width/height you can write a negative number which specifies how much of right/bottom border - that should be removed but keep in mind that sometimes after converting to DNG the borders are already + that should be removed but keep in mind that sometimes after converting to DNG the borders are already cropped so the "negative number" way is not totally safe. "raw_crop": [ 10, 20, 4000, 3000 ], // Almost same as MaskedAreas DNG tag, used for black level measuring here two areas defined "masked_areas": [ 51, 2, 3804, 156, 51, 5794, 3804, 5792 ], - The difference here is the meaning of the numbers which here are expressing the absolute distance (in pixels) - of each side of each rectangular "masked area" from the top and left side of the sensor + The difference here is the meaning of the numbers which here are expressing the absolute distance (in pixels) + of each side of each rectangular "masked area" from the top and left side of the sensor - the first number is the distance of the top edge from the sensor's top - - the second is the distance of the left side from the sensors left - - the third is the distance of the bottomn side from the sensors top + - the second is the distance of the left side from the sensor's left + - the third is the distance of the bottom side from the sensor's top - the fourth is the distance of the right side from the sensor's left }, @@ -180,7 +180,7 @@ we want conservative values. By conservative values we mean that if you see a white level of most often 15760 and occassionally 15759 (ie very small variation of white level which is a common case), you set the white level around 40-80 14bit units below or -10-20 12bit units. Say at 15700 in this example, or 4080 instead of 4095 for +10-20 12bit units. Say at 15700 in this example, or 4080 instead of 4095 for 12bit raws. This way we get a little margin from noise and camera variation. Since sensor raw values are linear you lose in this example log2(1-50/15760) = -0.005 stop of detail, ie irrelevant. Thus it's better to provide RawTherapee @@ -191,7 +191,7 @@ properly. It is very usual for white level to be a bell distribution instead of a candle when the camera applies long exposure noise reduction by subtracting a black frame and/or when the system is destabilized due to temperature. Some models have -always a bell distribution at WL. +always a bell distribution at WL. If you have a fuzzy white level look at the linear histogram; you will probably see a normal/gaussian distribution (bell shape) noise peak at clipping and probably also a peak at a hard raw data clip level usually at or close to a @@ -279,7 +279,7 @@ end up providing incompatible black/white levels. You can use RawTherapee for analysis too, it's safer as you are using it's own raw decoder but it's not as user-friendly: enable verbose mode in options -so you get output on the console. When you load a file you will see a message +so you get output on the console. When you load a file you will see a message of current black and white levels and if they came from dcraw or camconst.json. If you're adjusting an existing camconst.json value you can just read what it is in the file and not need to enable verbose output. @@ -325,17 +325,17 @@ About black levels: ------------------- Unlike for white levels it's much more common that black levels can be -derived from the format. Either it's simply 0 (typical for old Nikon cameras, -newer Nikons (year2013-14) have a BL at around 150 12bit or 600/768 14bit ), +derived from the format. Either it's simply 0 (typical for old Nikon cameras, +newer Nikons (year2013-14) have a BL at around 150 12bit or 600/768 14bit ), or it can be derived from masked pixels (typical for Canon cameras) or otherwise -be extracted from some tag. -Some formats have built-in subtraction information and are pre-processed by DCRaw +be extracted from some tag. +Some formats have built-in subtraction information and are pre-processed by DCRaw to end up at a black level of zero(Phase One's IIQ). For Panasonic raws beginning from Dcraw v9.21 Dcraw/RT reads base BL from exif data -(tags 0x001c BlackLevelRed, 0x001d BlackLevelGreen, 0x001e BlackLevelBlue)and we -define in "ranges": { "black": the needed offset of around 15. The (total) BL RT displays is base+offset +(tags 0x001c BlackLevelRed, 0x001d BlackLevelGreen, 0x001e BlackLevelBlue)and we +define in "ranges": { "black": the needed offset of around 15. The (total) BL RT displays is base+offset In all, you typically should not care about the black level in camconst.json, -any information that can be derived from the raw file itself should not be specified in camconst.json! +any information that can be derived from the raw file itself should not be specified in camconst.json! Sony's ARW2 is one of the few exceptions (with single black level around 512, or 800 for RX10/100 models), but DCraw generally has good constants for these already. @@ -365,7 +365,7 @@ Quality X: unknown, ie we knowing to little about the camera properties to know */ - { // quality A + { // quality A "make_model": "Canon EOS 5D Mark II", "dcraw_matrix": [ 4716,603,-830,-7798,15474,2480,-1496,1937,6651 ], "ranges": { @@ -438,22 +438,52 @@ Quality X: unknown, ie we knowing to little about the camera properties to know ] } }, + + { // Quality C, intermediate ISO samples missing but safely guessed, aperture scaling measures missing + "make_model": [ "Canon EOS 5DS R", "Canon EOS 5DS" ], + // "dcraw_matrix": [ 6848,-1661,-221,-3904,10931,3434,-470,1251,6039 ], // DNG_V9.0 A + "dcraw_matrix": [ 6250,-711,-808,-5153,12794,2636,-1249,2198,5610 ], // DNG_V9.0 D65 + "raw_crop": [ 192, 96, 8696, 5800 ], // 800, 300, 7500, 4700 - 160,64,8730x5800 - sensor 8896x5920 top64, left160, official crop left196, top100, right 8883, bottom 5891, 8688X5792 + "masked_areas": [ 100, 40, 5892, 158 ], // left out 40 first columns from calculations because possibly the BL is still imbalanced there + "ranges": { + "white": [ + { "iso": 100, "levels": 14650 }, // typical 14733 + { "iso": [ 160, 320, 640, 1250, 2500, 5000 ], "levels": 15280 }, // typical 15383 + { "iso": [ 125, 200, 250, 400, 500, 800, 1000, 1600, 2000, 3200 ], "levels": 15280 }, // typical 15383 + { "iso": [ 4000, 6400, 8000, 10000, 12800, 16000, 20000, 25600 ], "levels": 15100 } // clippings at R 15200-15280, G1,G2,B 15360-15390 + ], + "white_max": 16383, + "aperture_scaling": [ + /* note: scale factors measured for f/2.8 only, */ + { "aperture": 1.4, "scale_factor": 1.055 }, // guessed + { "aperture": 1.6, "scale_factor": 1.034 }, // guessed + { "aperture": 1.8, "scale_factor": 1.021 }, // guessed + { "aperture": 2.0, "scale_factor": 1.013 }, // guessed + { "aperture": 2.2, "scale_factor": 1.008 }, // guessed + { "aperture": 2.5, "scale_factor": 1.005 }, // guessed + { "aperture": 2.8, "scale_factor": 1.003 }, // 14783/14733 + { "aperture": 3.2, "scale_factor": 1.000 }, // guessed + { "aperture": 3.5, "scale_factor": 1.000 } + ] + } + }, + { // Quality A, some missing scaling factors are safelly guessed - most samples by sfink16 at RT forums "make_model": "Canon EOS 6D", "dcraw_matrix": [ 7034,-804,-1014,-4420,12564,2058,-851,1994,5758 ], - "ranges": { - "white": [ + "ranges": { + "white": [ { "iso": [ 50, 100, 125, 200, 250, 400, 500, 800, 1000, 1600, 2000, 3200, 4000, 6400, 8000, 12800, 16000, 25600 ], "levels": 15180 }, // typical 15283 { "iso": [ 160, 320, 640, 1250, 2500, 5000, 10000, 20000 ], "levels": 13100 }, // typical 13225 - { "iso": [ 51200, 102400 ], "levels": 16280 } // typical 16383 - ], + { "iso": [ 51200, 102400 ], "levels": 16280 } // typical 16383 + ], "white_max": 16383, "aperture_scaling": [ /* note: no scale factors known for f/1.0 (had no lenses to test with), but the ISO 160-320... 12650 white levels maxes out at "white_max" for f/1.2 and below anyway. */ { "aperture": 1.2, "scale_factor": 1.130 }, // from histogramm 1 gap in every 7 levels { "aperture": 1.4, "scale_factor": 1.090 }, // histogram 3 gaps in every 32 levels - { "aperture": 1.6, "scale_factor": 1.060 }, // 16213/15283 + { "aperture": 1.6, "scale_factor": 1.060 }, // 16213/15283 { "aperture": 1.8, "scale_factor": 1.040 }, // guessed { "aperture": 2.0, "scale_factor": 1.030 }, // 15800/15283 { "aperture": 2.2, "scale_factor": 1.020 }, // guessed @@ -468,12 +498,12 @@ Quality X: unknown, ie we knowing to little about the camera properties to know "make_model": "Canon EOS 7D", "dcraw_matrix": [ 5962,-171,-732,-4189,12307,2099,-911,1981,6304 ], // Colin Walker // "dcraw_matrix": [ 6844,-996,-856,-3876,11761,2396,-593,1772,6198 ], // dcraw - "ranges": { - "white": [ + "ranges": { + "white": [ { "iso": [ 100, 125 ], "levels": 13480 }, // typical 13584 { "iso": [ 160, 320, 640, 1250, 2500 ], "levels": 12550 }, // typical 12650 - { "iso": [ 200, 250, 400, 500, 800, 1000, 1600, 2000, 3200, 4000, 5000, 6400, 12800 ], "levels": 15200 } // typical 15304 - ], + { "iso": [ 200, 250, 400, 500, 800, 1000, 1600, 2000, 3200, 4000, 5000, 6400, 12800 ], "levels": 15200 } // typical 15304 + ], "white_max": 16383, "aperture_scaling": [ /* note: no scale factors known for f/1.2 and f/1.0 (no lenses to test with), but the @@ -485,24 +515,49 @@ Quality X: unknown, ie we knowing to little about the camera properties to know { "aperture": 2.2, "scale_factor": 1.050 }, // 14386/13584 { "aperture": 2.5, "scale_factor": 1.040 }, // 14272/13584 { "aperture": 2.8, "scale_factor": 1.030 }, // 14042/13584 - { "aperture": 3.2, "scale_factor": 1.015 }, // guessed + { "aperture": 3.2, "scale_factor": 1.015 }, // guessed { "aperture": 3.5, "scale_factor": 1.000 } // guessed negligible ] } }, + { // Quality b, ISO and aperture WL data by ..... at RawTherapee forums, missing samples safely guessed + "make_model": "Canon EOS 550D", + "dcraw_matrix": [ 6941,-1164,-857,-3825,11597,2534,-416,1540,6039 ], // dcraw 550d + "ranges": { + "white": [ + { "iso": [ 100, 125 ], "levels": 13480 }, // typical 13584 + { "iso": [ 160, 320, 640, 1250, 2500 ], "levels": 12550 }, // typical 12650 + { "iso": [ 200, 250, 400, 500, 800, 1000, 1600, 2000, 3200, 4000, 5000, 6400, 12800 ], "levels": 15200 } // typical 15304 + ], + "white_max": 16383, + "aperture_scaling": [ + /* note: no scale factors known for f/1.2 and f/1.0 (no lenses to test with), but the + typical 12650 white levels maxes out at "white_max" for f/1.4 and below anyway. */ + { "aperture": 1.4, "scale_factor": 1.250 }, // guessed + { "aperture": 1.6, "scale_factor": 1.150 }, // guessed + { "aperture": 1.8, "scale_factor": 1.110 }, // 15196/13584 + { "aperture": 2.0, "scale_factor": 1.080 }, // 14734/13584 + { "aperture": 2.2, "scale_factor": 1.050 }, // 14386/13584 + { "aperture": 2.5, "scale_factor": 1.040 }, // 14272/13584 + { "aperture": 2.8, "scale_factor": 1.030 }, // 14042/13584 + { "aperture": 3.2, "scale_factor": 1.015 }, // guessed + { "aperture": 3.5, "scale_factor": 1.000 } // guessed negligible + ] + } + }, { // Quality A, f/1.6 aperture scale factor missing but safely guessed, ISO and aperture data by charlyw at RT forums - "make_model": "Canon EOS 7D Mark II", + "make_model": "Canon EOS 7D Mark II", "dcraw_matrix": [ 7268,-1082,-969,-4186,11839,2663,-825,2029,5839 ], // dng_v8.7 d65 // "dcraw_matrix": [ 6285,-147,-821,-4080,11695,2714,-1045,2459,5497 ], // DXO D50 - "ranges": { - "white": [ + "ranges": { + "white": [ { "iso": [ 100, 125 ], "levels": 13500 }, // typical 13583 - LENR 13550 { "iso": [ 160, 320, 640, 1250, 2500, 5000 ], "levels": 12500 }, // typical 12559 { "iso": [ 200, 250, 400, 500, 800, 1000, 1600, 2000, 3200, 4000 ], "levels": 15200 }, // typical 15303 - LENR 15270,15260,15240,15220, - { "iso": [ 6400, 8000, 10000, 12800, 16000, 20000, 25600 ], "levels": 15100 }, // typical G1,G2 15303, R,B = 15430 LENR 15200 .. 15100 - { "iso": 51200, "levels": 16300 } // typical 16383 red 16371 - ], + { "iso": [ 6400, 8000, 10000, 12800, 16000, 20000, 25600 ], "levels": 15100 }, // typical G1,G2 15303, R,B = 15430 LENR 15200 .. 15100 + { "iso": 51200, "levels": 16300 } // typical 16383 red 16371 + ], "white_max": 16383, "aperture_scaling": [ /* note: no scale factors known for f/1.6, f/1.0 (had no lenses to test with) */ @@ -514,7 +569,7 @@ Quality X: unknown, ie we knowing to little about the camera properties to know { "aperture": 2.5, "scale_factor": 1.007 }, // 13696/13583 - 12662 { "aperture": 2.8, "scale_factor": 1.007 }, // 13696/13583 - 12663 { "aperture": 3.2, "scale_factor": 1.000 }, // 13583/13583 - 12559 - { "aperture": 3.5, "scale_factor": 1.000 } + { "aperture": 3.5, "scale_factor": 1.000 } ] } }, @@ -522,10 +577,10 @@ Quality X: unknown, ie we knowing to little about the camera properties to know { // Quality A - ISO and aperture WL data by Ilias at Avclub gr forums "make_model": "Canon EOS 40D", "dcraw_matrix": [ 6071,-747,-856,-7653,15365,2441,-2025,2553,7315 ], - "raw_crop": [ 30, 18, 3908, 2602 ], + "raw_crop": [ 30, 18, 3908, 2602 ], "masked_areas": [ 20, 2, 2616, 20 ], - "ranges": { - "white": [ + "ranges": { + "white": [ { "iso": 100, "levels": 13700 }, // typical 13825 { "iso": [ 125, 250, 500, 1000, 3200 ], "levels": 16280 }, // typical 16383 { "iso": [ 160, 320, 640 ], "levels": 12600 }, // typical 12744 @@ -533,7 +588,7 @@ Quality X: unknown, ie we knowing to little about the camera properties to know { "iso": 800, "levels": 15900 }, // gaussian histogram 15900-16224 { "iso": 1600, "levels": 14900 }, // gaussian histogram 14900-15750 { "iso": 1250, "levels": 11900 } // gaussian histogram 11900-12500 - ], + ], "white_max": 16383, "aperture_scaling": [ /* note: no scale factors known for f/1.2 and f/1.0 (had no lenses to test with), but the @@ -546,39 +601,39 @@ Quality X: unknown, ie we knowing to little about the camera properties to know { "aperture": 2.5, "scale_factor": 1.000 } // 13825/13825 ] } - }, + }, { // Quality A, ISO and aperture WL data by Ayshih at Magic Lantern forums "make_model": "Canon EOS 50D", "dcraw_matrix": [ 4920,616,-593,-6493,13964,2784,-1774,3178,7005 ], - "ranges": { - "white": [ + "ranges": { + "white": [ { "iso": [ 100, 125 ], "levels": 13300 }, // typical 13432 { "iso": [ 160, 320, 640, 1250 ], "levels": 12700 }, // typical 12790-12810 { "iso": [ 200, 250, 400, 500, 800, 1000, 1600, 2000, 2500, 3200 ], "levels": 15630 }, // typical 15763-15733 { "iso": [ 6400, 12800 ], "levels": 16200 } // typical 16383 - ], + ], "white_max": 16383, "aperture_scaling": [ - { "aperture": 1.4, "scale_factor": 1.270 }, - { "aperture": 1.6, "scale_factor": 1.150 }, - { "aperture": 1.8, "scale_factor": 1.090 }, - { "aperture": 2.0, "scale_factor": 1.040 }, - { "aperture": 2.2, "scale_factor": 1.020 }, + { "aperture": 1.4, "scale_factor": 1.270 }, + { "aperture": 1.6, "scale_factor": 1.150 }, + { "aperture": 1.8, "scale_factor": 1.090 }, + { "aperture": 2.0, "scale_factor": 1.040 }, + { "aperture": 2.2, "scale_factor": 1.020 }, { "aperture": 2.5, "scale_factor": 1.010 }, { "aperture": 2.8, "scale_factor": 1.000 }, { "aperture": 3.2, "scale_factor": 1.000 } - ] + ] } }, { // Quality A, ISO and aperture WL data copyed from Shalrath's 60D data at RawTherapee forums "make_model": "Canon EOS 60Da", "dcraw_matrix": [ 17492,-7240,-2023,-1791,10323,1701,-186,1329,5406 ], // 60Da dng d65 - "ranges": { - "white": [ + "ranges": { + "white": [ { "iso": [ 100, 125 ], "levels": 13480 }, // typical 13583 { "iso": [ 160, 320, 640, 1250, 2500 ], "levels": 12550 }, // typical 12650 - { "iso": [ 200, 250, 400, 500, 800, 1000, 1600, 2000, 3200, 4000, 5000, 6400, 12800 ], "levels": 15200 } // typical 15304 - ], + { "iso": [ 200, 250, 400, 500, 800, 1000, 1600, 2000, 3200, 4000, 5000, 6400, 12800 ], "levels": 15200 } // typical 15304 + ], "white_max": 16383, "aperture_scaling": [ /* note: no scale factors known for f/1.2 and f/1.0 (had no lenses to test with), but the @@ -598,12 +653,12 @@ Quality X: unknown, ie we knowing to little about the camera properties to know { // Quality A, ISO and aperture WL data by Shalrath at RawTherapee forums "make_model": "Canon EOS 60D", "dcraw_matrix": [ 6719,-994,-925,-4408,12426,2211,-887,2129,6051 ], - "ranges": { - "white": [ + "ranges": { + "white": [ { "iso": [ 100, 125 ], "levels": 13480 }, // typical 13583 { "iso": [ 160, 320, 640, 1250, 2500 ], "levels": 12550 }, // typical 12650 - { "iso": [ 200, 250, 400, 500, 800, 1000, 1600, 2000, 3200, 4000, 5000, 6400, 12800 ], "levels": 15200 } // typical 15304 - ], + { "iso": [ 200, 250, 400, 500, 800, 1000, 1600, 2000, 3200, 4000, 5000, 6400, 12800 ], "levels": 15200 } // typical 15304 + ], "white_max": 16383, "aperture_scaling": [ /* note: no scale factors known for f/1.2 and f/1.0 (had no lenses to test with), but the @@ -623,13 +678,13 @@ Quality X: unknown, ie we knowing to little about the camera properties to know { // Quality B, more aperture scale factors needed "make_model": "Canon EOS 70D", "dcraw_matrix": [ 7034,-804,-1014,-4420,12564,2058,-851,1994,5758 ], // DNG D65 - "ranges": { - "white": [ + "ranges": { + "white": [ { "iso": [ 100, 125 ], "levels": 13480 }, // typical 13583 { "iso": [ 160, 320, 640, 1250, 2500, 5000 ], "levels": 12450 }, // typical 12559 - { "iso": [ 200, 250, 400, 500, 800, 1000, 1600, 2000, 3200, 4000, 6400, 8000, 10000 ], "levels": 15200 }, // typical 15303 - ISO 8000-10000 guessed - { "iso": [ 12800, 25600 ], "levels": 16200 } // typical 16383 - ], + { "iso": [ 200, 250, 400, 500, 800, 1000, 1600, 2000, 3200, 4000, 6400, 8000, 10000 ], "levels": 15200 }, // typical 15303 - ISO 8000-10000 guessed + { "iso": [ 12800, 25600 ], "levels": 16200 } // typical 16383 + ], "white_max": 16383, "aperture_scaling": [ /* note: no scale factors known for f/1.2 and f/1.0 (had no lenses to test with), but even with the @@ -637,12 +692,12 @@ Quality X: unknown, ie we knowing to little about the camera properties to know { "aperture": 1.4, "scale_factor": 1.240 }, // guessed { "aperture": 1.6, "scale_factor": 1.160 }, // guessed { "aperture": 1.8, "scale_factor": 1.110 }, // 31of35 - { "aperture": 2.0, "scale_factor": 1.060 }, // guessed + { "aperture": 2.0, "scale_factor": 1.060 }, // guessed { "aperture": 2.2, "scale_factor": 1.030 }, // guessed { "aperture": 2.5, "scale_factor": 1.015 }, // guessed { "aperture": 2.8, "scale_factor": 1.008 }, // 15432/15303 { "aperture": 3.2, "scale_factor": 1.000 }, - { "aperture": 3.5, "scale_factor": 1.000 } + { "aperture": 3.5, "scale_factor": 1.000 } ] } }, @@ -650,12 +705,12 @@ Quality X: unknown, ie we knowing to little about the camera properties to know { // Quality b, scaling factors missing but guessed safely "make_model": [ "Canon EOS 1200D", "Canon EOS Rebel T5", "Canon EOS 600D", "Canon EOS Rebel T3i" ], "dcraw_matrix": [ 6461,-907,-882,-4300,12184,2378,-819,1944,5931 ], // dcp D65 colormatrix2 - "ranges": { - "white": [ + "ranges": { + "white": [ { "iso": [ 100, 125 ], "levels": 13480 }, // typical 13583 { "iso": [ 160, 320, 640, 1250, 2500, 5000, 10000 ], "levels": 12550 }, // typical 12650 - { "iso": [ 200, 250, 400, 500, 800, 1000, 1600, 2000, 3200, 4000, 6400, 8000, 12800 ], "levels": 15200 } // typical 15303 - ], + { "iso": [ 200, 250, 400, 500, 800, 1000, 1600, 2000, 3200, 4000, 6400, 8000, 12800 ], "levels": 15200 } // typical 15303 + ], "white_max": 16383, "aperture_scaling": [ /* note: no scale factors known for f/1.2 and f/1.0 (had no lenses to test with), but the @@ -667,8 +722,8 @@ Quality X: unknown, ie we knowing to little about the camera properties to know { "aperture": 2.2, "scale_factor": 1.060 }, // 11971/11222 = 1.066 { "aperture": 2.5, "scale_factor": 1.050 }, // guessed { "aperture": 2.8, "scale_factor": 1.030 }, // iso100: 14042/13584=1.0336 - iso200 15820/15303 = 1.0348 - { "aperture": 3.2, "scale_factor": 1.000 }, // - { "aperture": 3.5, "scale_factor": 1.000 } // + { "aperture": 3.2, "scale_factor": 1.000 }, // + { "aperture": 3.5, "scale_factor": 1.000 } // ] } }, @@ -676,13 +731,13 @@ Quality X: unknown, ie we knowing to little about the camera properties to know { // Quality A, only one scaling factor missing and guessed safely "make_model": [ "Canon EOS 650D", "Canon EOS Rebel T4i" ], "dcraw_matrix": [ 6602,-841,-939,-4472,12458,2247,-975,2039,6148 ], - "ranges": { - "white": [ + "ranges": { + "white": [ { "iso": [ 100, 125 ], "levels": 13480 }, // typical 13583 { "iso": [ 160, 320, 640, 1250, 2500, 5000, 10000 ], "levels": 12550 }, // typical 12650 - { "iso": [ 200, 250, 400, 500, 800, 1000, 1600, 2000, 3200, 4000, 6400, 8000 ], "levels": 15200 }, // typical 15303 + { "iso": [ 200, 250, 400, 500, 800, 1000, 1600, 2000, 3200, 4000, 6400, 8000 ], "levels": 15200 }, // typical 15303 { "iso": [ 12800, 25600 ], "levels": 16200 } // typical 16383 - ], + ], "white_max": 16383, "aperture_scaling": [ /* note: no scale factors known for f/1.2 and f/1.0 (had no lenses to test with), but the @@ -692,24 +747,53 @@ Quality X: unknown, ie we knowing to little about the camera properties to know { "aperture": 1.8, "scale_factor": 1.055 }, // 14372/13583 { "aperture": 2.0, "scale_factor": 1.030 }, // 14034/13583 { "aperture": 2.2, "scale_factor": 1.025 }, // 13921/13583 - { "aperture": 2.5, "scale_factor": 1.020 }, // - { "aperture": 2.8, "scale_factor": 1.000 }, // - { "aperture": 3.2, "scale_factor": 1.000 }, // - { "aperture": 3.5, "scale_factor": 1.000 } // + { "aperture": 2.5, "scale_factor": 1.020 }, // + { "aperture": 2.8, "scale_factor": 1.000 }, // + { "aperture": 3.2, "scale_factor": 1.000 }, // + { "aperture": 3.5, "scale_factor": 1.000 } // ] } }, + { // Quality C, aperture scale factors and intermediate ISOs missing but safely guessed + "make_model": [ "Canon EOS 750D", "Canon EOS Rebel T6i", "Canon EOS 760D", "Canon EOS Rebel T6s" ], + "dcraw_matrix": [ 6362,-823,-847,-4426,12109,2616,-743,1857,5635 ], // dng_v9.0 d65 + "raw_crop": [ 72, 34, 6024, 4022 ], // full size 6096x4056, official crop 84,46,6083,4045 + "masked_areas": [ 40, 16, 4000, 54 ], + "ranges": { + "white": [ + { "iso": [ 100, 125 ], "levels": 13300 }, // typical 13583 + { "iso": [ 160, 320, 640, 1250, 2500, 5000 ], "levels": 12500 }, // typical 12600 + { "iso": [ 200, 250, 400, 500, 800, 1000, 1600, 2000, 3200, 4000 ], "levels": 15200 }, // typical 15303 + { "iso": [ 6400, 8000, 10000, 12800, 16000, 20000 ], "levels": 15100 }, // typical 15303 + { "iso": 25600, "levels": 16300 } // typical 16383 + ], + "white_max": 16383, + "aperture_scaling": [ + /* note: all scale factors are guessed to be same as 7DII */ + { "aperture": 1.4, "scale_factor": 1.200 }, // guessed + { "aperture": 1.6, "scale_factor": 1.100 }, // guessed + { "aperture": 1.8, "scale_factor": 1.050 }, // guessed + { "aperture": 2.0, "scale_factor": 1.030 }, // guessed + { "aperture": 2.2, "scale_factor": 1.015 }, // guessed + { "aperture": 2.5, "scale_factor": 1.007 }, // guessed + { "aperture": 2.8, "scale_factor": 1.007 }, // guessed + { "aperture": 3.2, "scale_factor": 1.000 }, // guessed + { "aperture": 3.5, "scale_factor": 1.000 } + ] + } + }, + { // Quality B, missing scaling factors are guessed safely from 650D relative data "make_model": "Canon EOS M", "dcraw_matrix": [ 6602,-841,-939,-4472,12458,2247,-975,2039,6148 ], - "ranges": { - "white": [ + "ranges": { + "white": [ { "iso": [ 100, 125 ], "levels": 13480 }, // typical 13583 { "iso": [ 160, 320, 640, 1250, 2500, 5000, 10000 ], "levels": 12550 }, // typical 12650 - { "iso": [ 200, 250, 400, 500, 800, 1000, 1600, 2000, 3200, 4000, 6400, 8000 ], "levels": 15200 }, // typical 15303 + { "iso": [ 200, 250, 400, 500, 800, 1000, 1600, 2000, 3200, 4000, 6400, 8000 ], "levels": 15200 }, // typical 15303 { "iso": [ 12800, 25600 ], "levels": 16200 } // typical 16383 - ], + ], "white_max": 16383, "aperture_scaling": [ /* note: no scale factors known for f/1.2 and f/1.0 (had no lenses to test with), but the @@ -720,18 +804,45 @@ Quality X: unknown, ie we knowing to little about the camera properties to know { "aperture": 2.0, "scale_factor": 1.030 }, // 15821/15303 { "aperture": 2.2, "scale_factor": 1.025 }, // 15691/15303 { "aperture": 2.5, "scale_factor": 1.020 }, // 12947/12650 - { "aperture": 2.8, "scale_factor": 1.000 }, // - { "aperture": 3.2, "scale_factor": 1.000 }, // - { "aperture": 3.5, "scale_factor": 1.000 } // + { "aperture": 2.8, "scale_factor": 1.000 }, // + { "aperture": 3.2, "scale_factor": 1.000 }, // + { "aperture": 3.5, "scale_factor": 1.000 } // ] } }, - { /* Quality B, needs a way to auto apply 3/2 or 4/3 crops (read exif tags ..) to work better with auto distortion, + { // Quality C, White Levels not properly indicated, aperture scaling..missing scaling factors are guessed + "make_model": "Canon EOS M3", + "dcraw_matrix": [ 6362,-823,-847,-4426,12109,2616,-743,1857,5635 ], // DNG_V8.8 D65 + "raw_crop": [ 72, 34, 6024, 4022 ], // full size 6096x4056, official crop 84,46,6083,4045 + "masked_areas": [ 40, 16, 4000, 54 ], + "ranges": { + "white": [ + { "iso": [ 100, 125, 160 ], "levels": 16300 }, // 16383 + { "iso": [ 320, 640, 1250, 2500, 5000, 10000 ], "levels": 12600 }, // 12632..14500 + { "iso": [ 200, 250, 400, 500, 800, 1000, 1600, 2000, 3200, 4000 ], "levels": 15000 }, // 15095, 15488 + { "iso": [ 6400, 8000, 12800, 25600 ], "levels": 16200 } // 16383 + ], + "white_max": 16383, + "aperture_scaling": [ + /* note: need for more data to properly fill all scale factors */ + { "aperture": 1.4, "scale_factor": 1.200 }, // guessed + { "aperture": 1.6, "scale_factor": 1.080 }, // guessed + { "aperture": 1.8, "scale_factor": 1.055 }, // guessed + { "aperture": 2.0, "scale_factor": 1.030 }, // guessed + { "aperture": 2.2, "scale_factor": 1.025 }, // guessed + { "aperture": 2.5, "scale_factor": 1.020 }, // guessed + { "aperture": 2.8, "scale_factor": 1.000 }, // + { "aperture": 3.2, "scale_factor": 1.000 }, // + { "aperture": 3.5, "scale_factor": 1.000 } // + ] + } + }, + { /* Quality B, needs a way to auto apply 3/2 or 4/3 crops (read exif tags ..) to work better with auto distortion, for the moment just comment-uncomment the desired raw crop */ "make_model": "Canon PowerShot G1 X Mark II", "dcraw_matrix": [ 7378,-1255,-1043,-4088,12251,2048,-876,1946,5805 ], // D65 matrix from adobe dcp - // "raw_crop": [ 80, 50, 4400, 3316 ], // full frame 4480x3366 borders 80,50 - much shade in corners, no/wrong auto distortion + // "raw_crop": [ 80, 50, 4400, 3316 ], // full frame 4480x3366 borders 80,50 - much shade in corners, no/wrong auto distortion // "raw_crop": [ 104, 144, 4360, 3128 ], // Mixed best average frame, width is 4352 from 3/2, height 3120 from 4/3 - auto distortion does not work correctly // "raw_crop": [ 200, 144, 4168, 3128 ], // Optional official 4/3 frame 4160x3120, 4pix borders, Left Border 204-4, Top Border 148-4 "raw_crop": [ 104, 252, 4360, 2912 ], // Default official 3/2 frame 4352X2904, 4pix borders, Left Border 108-4, Top border 256-4 @@ -756,10 +867,10 @@ Quality X: unknown, ie we knowing to little about the camera properties to know "ranges": { "white": 4050 } }, - { // Quality B + { // Quality B "make_model": "Canon PowerShot SX60 HS", "dcraw_matrix": [ 13161,-5451,-1344,-1989,10654,1531,-47,1271,4955 ], // DNG_V8.7 D65 - "raw_crop": [ 120, 34, 4616, 3464 ], // full raw 4768x3516, Usable 96,16,4672,3498 - Canon official 4608x3456 left 124 top 38, + "raw_crop": [ 120, 34, 4616, 3464 ], // full raw 4768x3516, Usable 96,16,4672,3498 - Canon official 4608x3456 left 124 top 38, "masked_areas": [ 20, 2, 3480, 80 ], "ranges": { "white": 4050 } // nominal 4080-4093 }, @@ -769,12 +880,17 @@ Quality X: unknown, ie we knowing to little about the camera properties to know "dcraw_matrix": [ 12297,-4882,-1202,-2106,10691,1623,-88,1312,4790 ] // DNG_v8.5 D65 }, - { // Quality B, + { // Quality B, "make_model": [ "FUJIFILM X100S", "FUJIFILM X100T" ], "dcraw_matrix": [ 10592,-4262,-1008,-3514,11355,2465,-870,2025,6386 ], // DNG_v8.7 D65 "ranges": { "white": 16100 } }, + { // Quality B + "make_model": "FUJIFILM X-A2", + "dcraw_matrix": [ 10763,-4560,-917,-3346,11311,2322,-475,1135,5843 ], // DNG D65 + "ranges": { "white": 4050 } + }, { // Quality B "make_model": [ "FUJIFILM X-T1", "FUJIFILM X-E2" ], "dcraw_matrix": [ 8458,-2451,-855,-4597,12447,2407,-1475,2482,6526 ], // DNG D65 @@ -785,20 +901,37 @@ Quality X: unknown, ie we knowing to little about the camera properties to know { // Quality B "make_model": "FUJIFILM X30", "dcraw_matrix": [ 12328,-5256,-1144,-4469,12927,1675,-87,1291,4351 ], // DNG_v8.7 D65 - "ranges": { "white": 4048 } + "ranges": { "white": 4040 } }, - + { // Quality B + "make_model": "FUJIFILM XQ2", + "dcraw_matrix": [ 9252,-2704,-1064,-5893,14265,1717,-1101,2341,4349 ], // DNG_v8.8 D65 + "ranges": { "white": 4040 } + }, { // Quality A "make_model": [ "Nikon 1 V3", "Nikon 1 J4" ], // Same format - "dcraw_matrix": [ 5958,-1559,-571,-4021,11453,2939,-634,1548,5087 ], // matrix from DNG_v8.5 d65 - // "dcraw_matrix": [ 5306,-1066,-469,-3865,11189,3076,-399,1341,5120 ], // matrix dXo D50, - "ranges": { "black": 200, "white": 4080 } // exif BL=800, lower WL to 4080 from 4095 due to some non linearity detected at raw highlights + "dcraw_matrix": [ 5958,-1559,-571,-4021,11453,2939,-634,1548,5087 ], // matrix from DNG_v8.5 d65 + // "dcraw_matrix": [ 5306,-1066,-469,-3865,11189,3076,-399,1341,5120 ], // matrix dXo D50, + "ranges": { "white": 4080 } // Black is auto extracted from exif, lower WL to 4080 from 4095 due to some non linearity detected at raw highlights }, - { // Quality A, - "make_model": "Nikon 1 S2", // - "dcraw_matrix": [ 6612,-1342,-618,-3338,11055,2623,-174,1792,5075 ], // matrix from DNG_v8.5 d65 - "ranges": { "black": 200, "white": 4080 } // exif BL=800 + + { // Quality C, color data from preliminary measures instead of the Dcraw's matrix + "make_model": "Nikon 1 J5", // + "dcraw_matrix": [ 7651,-2102,-751,-3299,11101,1651,-1011,2242,5770 ], // matrix from ICC converted to Dcraw format XYZ on ImagingResource stillife sample + "ranges": { + "white": [ + { "iso": [ 160, 200 ], "levels": 4000 }, // typical G1/G2 4020-4028, R/B 4088 + { "iso": [ 400, 800, 1600, 3200 ], "levels": 4000 }, // g1/g2 4030-4040, r/b 4088 + { "iso": [ 6400, 12800 ], "levels": 4080 } // 4090 + ] + } + }, + + { // Quality A, + "make_model": "Nikon 1 S2", // + "dcraw_matrix": [ 6612,-1342,-618,-3338,11055,2623,-174,1792,5075 ], // matrix from DNG_v8.5 d65 + "ranges": { "white": 4080 } // BL autodetected from exif }, { // quality B, lacks aperture and ISO scaling, known to exist, but little to gain as the levels are so close to white_max @@ -807,25 +940,46 @@ Quality X: unknown, ie we knowing to little about the camera properties to know "ranges": { // measured at ISO 100. ISO differences not measured, but known to exist "white": [ 16370, 15760, 16370 ], // typical R 16383, G 15778, B 16383 - "white_max": 16383 // aperture scaling not measured, but known to exist, at f/1.8 the G channels hits white_max - } + } }, - { // Quality B, does not work with 12bit files + { // Quality B, aperture scaling used to scale WL at safer levels "make_model": "Nikon D5300", - "dcraw_matrix": [ 6988,-1384,-714,-5631,13410,2447,-1485,2204,7318 ], // adobe dcp d65 - "ranges": { "black": 600, "white": 16300 } // attention.. BL/WL values are for 14bit files, has to be BL150/WL4070 for 12bit files. WL typical 16383 set to 16300 for safety + "dcraw_matrix": [ 6988,-1384,-714,-5631,13410,2447,-1485,2204,7318 ], // adobe dng_v8.8 d65 + "ranges": { "white": 16300 } // attention.. WL value is for 14bit files, has to be 4070 for 12bit files. WL typical 16383 set to 16300 for safety }, - { // Quality B, does not work with 12bit files - "make_model": "Nikon D750", - "dcraw_matrix": [ 9020,-2890,-715,-4535,12436,2348,-934,1919,7086 ], // adobe dcp d65 DNGv8.7 - "ranges": { "black": -600, "white": 16300 } // attention.. BL/WL values are for 14bit files, has to be BL150/WL4070 for 12bit files. WL typical 16383 set to 16300 for safety + { // Quality B, aperture scaling used to scale WL at safer levels + "make_model": "Nikon D5500", + "dcraw_matrix": [ 8821,-2938,-785,-4178,12142,2287,-824,1651,6860 ], // adobe dng_v9.0 d65 + "ranges": { "white": 16300 } // attention.. WL value is for 14bit files, has to be 4070 for 12bit files. WL typical 16383 set to 16300 for safety }, - { // quality B, lacks WL measures at intermediate ISOs (160-250-320 ..) and measures at long exposures with LongExposureNoiseReduction + { // Quality B, color matrix from DNG_v9.0 instead of internal Dcraw_v9.25_r1.475, + "make_model": "Nikon D7200", + "dcraw_matrix": [ 8322,-3112,-1047,-6367,14342,2179,-988,1638,6394 ], // adobe dng_v9.0 d65 + "ranges": { "white": 16300 } // attention.. WL values are for 14bit files, has to be WL4070 for 12bit files. WL typical 16383 set to 16300 for safety, + }, + + { // quality B, samples by joachip at RT forums, are measures at long exposures with LongExposureNoiseReduction + // aperture scaling known to exist, but little to gain as the levels are so close to white_max + "make_model": "Nikon D600", + "dcraw_matrix": [ 8178,-2245,-609,-4857,12394,2776,-1207,2086,7298 ], // dcp d65 + // "raw_crop": [ 0, 0, 6034, 4028 ], // dcraw + "ranges": { + "white": [ + { "iso": [ 50, 100 ], "levels": [ 15800, 15800, 15350 ] }, // typical G1/G2/R 15879, B 15395-15670 lowered to 15800, 15350, 3969 B3917 + { "iso": [ 200, 400, 800 ], "levels": [ 16300, 15700, 16300 ] }, // 15878, 16383 + { "iso": 1000, "levels": [ 16300, 16100, 16300 ] }, // 12bit lossless r4095, 3981-10, b4041- 12bit lossy r,g1,g2 3961 - b3917, + { "iso": 1600, "levels": [ 16300, 16100, 16300 ] }, // 16145-165, 16383 + { "iso": [ 3200, 6400, 12800, 25600 ], "levels": [ 16300, 16300, 16300 ] } // 16383 + ], + "white_max": 16383 + } + }, + { // quality B, lacks WL measures at intermediate ISOs (160-250-320 ..) and measures at long exposures with LongExposureNoiseReduction // aperture scaling known to exist, but little to gain as the levels are so close to white_max "make_model": "Nikon D610", "dcraw_matrix": [ 8178,-2245,-609,-4857,12394,2776,-1207,2086,7298 ], // dcp d65 @@ -840,7 +994,20 @@ Quality X: unknown, ie we knowing to little about the camera properties to know "white_max": 16383 } }, - + + { // quality B; Data from RusselCottrell at RT forums. sensor is not uniform + "make_model": "Nikon D700", + "dcraw_matrix": [ 8139,-2171,-663,-8747,16541,2295,-1925,2008,8093 ], + "ranges": { "white": 15750 } // Non linearities start at 15750 (hi ISOs) 15850 (low ISOs) with long exposures (>2sec) and LENR ON .. nominal 15892 + // white 15750 is correct for 14bit files, 12 bit files need white level at 3900 + }, + + { // Quality B, + "make_model": "Nikon D750", + "dcraw_matrix": [ 9020,-2890,-715,-4535,12436,2348,-934,1919,7086 ], // adobe dcp d65 DNGv8.7 + "ranges": { "white": 16300 } // attention.. WL values are for 14bit files, has to be WL4070 for 12bit files. WL typical 16383 set to 16300 for safety + }, + { // quality B; Data from RussellCottrell at RT forums. Largest aperture scale factor is 1.013, about 1/50th of a stop "make_model": "Nikon D800E", "dcraw_matrix": [ 7866,-2108,-555,-4869,12483,2681,-1176,2069,7501 ], // D800/D800E from dcraw.c @@ -852,22 +1019,26 @@ Quality X: unknown, ie we knowing to little about the camera properties to know ] } }, - { // quality B; Data from RusselCottrell at RT forums. sensor is not uniform - "make_model": "Nikon D700", - "dcraw_matrix": [ 8139,-2171,-663,-8747,16541,2295,-1925,2008,8093 ], - "ranges": { "white": 15750 } // Non linearities start at 15750 (hi ISOs) 15850 (low ISOs) with long exposures (>2sec) and LENR ON .. nominal 15892 - }, - { // quality B, BL and colour matrix corrections for Dcraw's v9.22 r1467 preliminary support - // WL set at 16300 from nominal 16380 for possible non linearities with LENR + { // quality B, WL set at 16300 from nominal 16380 for possible non linearities with LENR "make_model": "Nikon D810", - // "dcraw_matrix": [ 6502,-2328,154,-4249,9943,4307,-1303,2538,8108 ], // dcraw 9.22 v1.467 "dcraw_matrix": [ 9369,-3195,-791,-4488,12430,2301,-893,1796,6872 ], // dcp_v8.6 d65 - "raw_crop": [ 0, 0, 7380, 4928 ], // Official raw crop 7380x4928, - "ranges": { "black": 600, "white": 16300 }, // attention BL600 is for 14bit raws and has to be 150 for 12 bit raws. Typical WL at 16383 - "white_max": 16383 + "raw_crop": [ 0, 0, 7380, 4928 ], // Official raw crop 7380x4928, + "ranges": { "white": 16300 } // attention WL 16300 is for 14bit raws and has to be 4070 for 12 bit raws. Typical WL at 16383 + }, + { // Quality b, 16Mp and 64Mp raw frames + "make_model": "OLYMPUS E-M5MarkII", + "dcraw_matrix": [ 9422,-3258,-711,-2655,10898,2015,-512,1354,5512 ], // DNG_v8.8 D65 + "raw_crop": [ 0, 0, -6, -6 ], // largest valid, full 64Mp 9280x6938, official crop 0 0 9216 6912 - safe 5755 + "ranges": { + "white": [ + { "iso": [ 100, 200 ], "levels": 3950 }, // normal 4080-4095, HR Dpreview 4047, IR 3956 + { "iso": [ 400, 800, 1600, 3200 ], "levels": 4070 }, // 4070-4095 + { "iso": [ 6400, 12800, 25600 ], "levels": 4040 } // 4000-4095 + ] + } }, - { // Quality A, new model, there is a conflict with E-M1 in Dcraw.cc, raw crop correction + { // Quality b, crop correction "make_model": "OLYMPUS E-M10", "dcraw_matrix": [ 8380,-2630,-639,-2887,10725,2496,-627,1427,5438 ], "raw_crop": [ 0, 0, 4624, 3472 ], // largest valid - full frame is 4640x3472 @@ -886,20 +1057,21 @@ Quality X: unknown, ie we knowing to little about the camera properties to know "ranges": { "white": 4080 } // nominal 4093 }, - /* since Dcraw_v9.21 Panasonic base BL is read from exif (tags 0x001c BlackLevelRed15 is BL offstet. + /* since Dcraw_v9.21 Panasonic base BL is read from exif (tags 0x001c BlackLevelRed15 is BL offstet. Dcraw/RT read the base offset from exif and calculates total BL = BLbase+BLoffset, 0x001d BlackLevelGreen, 0x001e BlackLevelBlue and we define here the needed offset of around 15. The total BL is base+offset */ - { // Quality C, CameraPhone, no RAW samples but as it has the same sensor as FZ1000 .. + { // Quality B, CameraPhone, some samples are missing but has the same sensor as FZ1000 .. "make_model": "Panasonic DMC-CM1", "dcraw_matrix": [ 8770,-3194,-820,-2871,11281,1803,-513,1552,4434 ], // dcp_v8.7 d65 - "ranges": { - "black": 15, // 15 is BL offset. Copy from FZ1000 + "ranges": { + "black": 15, // 15 is BL offstet. Dcraw/RT read the base BL from exif and calculates total BL = BLbase+BLoffset "white": [ - { "iso": 80, "levels": 3720 }, // copy from FZ1000 - { "iso": [ 125, 200, 400, 800, 1600, 3200, 6400, 12600, 25600 ], "levels": 4060 } // copy from FZ1000 + { "iso": 80, "levels": 3600 }, // exif:3277 distribution peak at 3700 up to +/- 100 + { "iso": [ 100, 125, 200, 400, 800, 1600 ], "levels": 4050 }, // exif 4095 distribution 4050-4095 + { "iso": [ 3200, 6400, 12600, 25600 ], "levels": 4080 } // exif 4095 distribution 4080-4095 ] - } + } }, { // Quality A , replicated from rawimage.cc @@ -908,17 +1080,17 @@ Quality X: unknown, ie we knowing to little about the camera properties to know "ranges": { "black": 15, "white": 4050 } // 15 is BL offstet. Dcraw/RT read the base offset from exif and calculates total BL = BLbase+BLoffset }, - { // Quality B, New model, color data based on dng_v8.6 - // Intermediate ISO and Long exposure samples missing. + { // Quality A, samples by helices at Rt forums "make_model": [ "Panasonic DMC-FZ1000", "Leica V-LUX (Typ 114)" ], "dcraw_matrix": [ 7830,-2696,-763,-3325,11667,1866,-641,1712,4824 ], // dcp_v8.6 d65 - "ranges": { - "black": 15, // 15 is BL offstet. Dcraw/RT read the base offset from exif and calculates total BL = BLbase+BLoffset + "ranges": { + "black": 15, // 15 is BL offstet. Dcraw/RT read the base BL from exif and calculates total BL = BLbase+BLoffset "white": [ - { "iso": 80, "levels": 3720 }, // exif:3277 distribution peak at 3742 up to +/- 10 - { "iso": [ 125, 200, 400, 800, 1600, 3200, 6400, 12600, 25600 ], "levels": 4060 } // exif 4095 normal distribution 4080-4095 + { "iso": 80, "levels": 3600 }, // exif:3277 distribution peak at 3700 up to +/- 100 + { "iso": [ 100, 125, 200, 400, 800, 1600 ], "levels": 4050 }, // exif 4095 distribution 4050-4095 + { "iso": [ 3200, 6400, 12600, 25600 ], "levels": 4080 } // exif 4095 distribution 4080-4095 ] - } + } }, { // Quality A @@ -930,15 +1102,21 @@ Quality X: unknown, ie we knowing to little about the camera properties to know "make_model": [ "Panasonic DMC-TZ60", "Panasonic DMC-TZ61", "Panasonic DMC-ZS40", "Panasonic DMC-ZS41" ], "dcraw_matrix": [ 8607,-2822,-808,-3755,11930,2049,-820,2060,5224 ], // matrix from Adobe dcp v8.4 "raw_crop": [ 8, 8, -8, -8 ], // crop according to exif 4896 X 3672 plus 4 pixels borders. RT's frame gets smaller than Dcraw but works better with auto distortion - "ranges": { "black": 15, "white": 4050 } // 15 is BL offstet. Dcraw/RT read the base offset from exif and calculates total BL = BLbase+BLoffset + "ranges": { "black": 14, "white": 4050 } // 15 is BL offstet. Dcraw/RT read the base offset from exif and calculates total BL = BLbase+BLoffset + }, + { // Quality B, + "make_model": [ "Panasonic DMC-TZ70", "Panasonic DMC-TZ71", "Panasonic DMC-ZS50", "Panasonic DMC-ZS51" ], + "dcraw_matrix": [ 8802,-3135,-789,-3151,11468,1904,-550,1745,4810 ], // DNG_V8.8 D65 + "raw_crop": [ 4, 4, -4, -4 ], // full raw 4/3 4144x3016 8,8,3008,4008 = 4000X3000. RT's frame gets smaller than Dcraw but works better with auto distortion + "ranges": { "black": 14, "white": 4050 } // 12+1+1 is BL offset }, // Panasonic DMC-FZ150,G10,G1,G2,G3,G5,GF1,GF2,GF3 are included as overwrites of the same items of rawimage.cc to test the Dcraw9.21 patch - + { // Quality A, Replicated from rawimage.cc "make_model": [ "Panasonic DMC-G10", "Panasonic DMC-G2" ], "dcraw_matrix": [ 8310,-1811,-960,-4941,12990,2151,-1378,2468,6860 ], // Colin Walker - "ranges": { + "ranges": { "black": 15, // 15 is black offset, Dcraw/RT read the base black from exif and calculates total BL = BLbase+BLoffset "white": [ { "iso": [ 100, 200, 400, 800 ], "levels": 3920 }, // exif:3967 distribution peak at 3967 +/- up to 50 @@ -949,160 +1127,160 @@ Quality X: unknown, ie we knowing to little about the camera properties to know { // Quality A, Replicated from rawimage.cc "make_model": "Panasonic DMC-G1", "dcraw_matrix": [ 7477,-1615,-651,-5016,12769,2506,-1380,2475,7240 ], // Colin Walker - "ranges": { + "ranges": { "black": 15, // 15 is BL offstet. Dcraw/RT read the base black from exif and calculates total BL = BLbase+BLoffset "white": [ { "iso": [ 100, 200, 400, 800 ], "levels": 3920 }, // exif:4095 distribution peak at 3977 +/- up to 50 { "iso": [ 1600, 3200 ], "levels": 4060 } // exif 4095, histogram peak 4095 and distribution down to 4070 ] - } + } }, { // Quality A, Replicated from rawimage.cc "make_model": "Panasonic DMC-G3", "dcraw_matrix": [ 6051,-1406,-671,-4015,11505,2868,-1654,2667,6219 ], // Colin Walker - "ranges": { + "ranges": { "black": 15, // 15 is BL offstet. Dcraw/RT read the base black from exif and calculates total BL = BLbase+BLoffset - "white": 4060 } // exif:4095 normal distribution 4080-4095, 4070-4095 on long exposure NR + "white": 4060 } // exif:4095 normal distribution 4080-4095, 4070-4095 on long exposure NR }, { // Quality A, Replicated from rawimage.cc "make_model": "Panasonic DMC-G5", "dcraw_matrix": [ 7122,-2092,-419,-4643,11769,3283,-1363,2413,5944 ], // RT - "ranges": { + "ranges": { "black": 15, // 15 is BL offstet. Dcraw/RT read the base black from exif and calculates total BL = BLbase+BLoffset - "white": 4060 } // exif:4095 normal distribution 4080-4095, 4070-4095 on long exposure NR + "white": 4060 } // exif:4095 normal distribution 4080-4095, 4070-4095 on long exposure NR }, { // Quality A, Replicated from rawimage.cc "make_model": "Panasonic DMC-GF1", "dcraw_matrix": [ 7863,-2080,-668,-4623,12331,2578,-1020,2066,7266 ], // Colin Walker - "ranges": { + "ranges": { "black": 15, // 15 is BL offstet. Dcraw/RT read the base black from exif and calculates total BL = BLbase+BLoffset "white": [ { "iso": [ 100, 200, 400, 800 ], "levels": 3920 }, // exif:4095 distribution peak at 3977 +/- up to 50 { "iso": [ 1600, 3200 ], "levels": 4060 } // exif 4095, histogram peak 4095 and distribution down to 4070 ] - } + } }, { // Quality A, Replicated from rawimage.cc "make_model": "Panasonic DMC-GF2", "dcraw_matrix": [ 7694,-1791,-745,-4917,12818,2332,-1221,2322,7197 ], // Colin Walker - "ranges": { + "ranges": { "black": 15, // 15 is BL offstet. Dcraw/RT read the base black from exif and calculates total BL = BLbase+BLoffset - "white": 4050 } // exif:4095 normal distribution 4080-4095, 4050-4095 on long exposure NR + "white": 4050 } // exif:4095 normal distribution 4080-4095, 4050-4095 on long exposure NR }, { // Quality A, Replicated from rawimage.cc "make_model": "Panasonic DMC-GF3", "dcraw_matrix": [ 8074,-1846,-861,-5026,12999,2239,-1320,2375,7422 ], // Colin Walker - "ranges": { + "ranges": { "black": 15, // 15 is BL offstet. Dcraw/RT read the base black from exif and calculates total BL = BLbase+BLoffset - "white": 4050 } // exif:4095 normal distribution 4080-4095, 4050-4095 on long exposure NR + "white": 4050 } // exif:4095 normal distribution 4080-4095, 4050-4095 on long exposure NR }, { // Quality A, Replicated from rawimage.cc "make_model": "Panasonic DMC-GH1", "dcraw_matrix": [ 6360,-1557,-375,-4201,11504,3086,-1378,2518,5843 ], // Colin Walker - "ranges": { + "ranges": { "black": 15, // 15 is BL offstet. Dcraw/RT read the base black from exif and calculates total BL = BLbase+BLoffset "white": [ { "iso": [ 100, 200, 400, 800 ], "levels": 3930 }, // exif:4095 distribution peak at 3982 +/- up to 50 { "iso": [ 1600, 3200 ], "levels": 4060 } // exif 4095, histogram peak 4095 and distribution down to 4070 ] - } + } }, { // Quality A, Replicated from rawimage.cc "make_model": "Panasonic DMC-GH2", // "dcraw_matrix": [ 6855,-1765,-456,-4223,11600,2996,-1450,2602,5761 ], // Colin Walker - disabled due to problems with underwater "dcraw_matrix": [ 7780,-2410,-806,-3913,11724,2484,-1018,2390,5298 ], // Dcraw d65 - "ranges": { + "ranges": { "black": 15, // 15 is BL offstet. Dcraw/RT read the base black from exif and calculates total BL = BLbase+BLoffset "white": [ { "iso": [ 100, 200, 400, 800 ], "levels": 3930 }, // exif:4095 distribution peak at 3982 +/- up to 50 { "iso": [ 1600, 3200, 6400, 12800 ], "levels": 4060 } // exif 4095, histogram peak 4095 and distribution down to 4070 ] - } + } }, { // Quality B, variable WL "make_model": "Panasonic DMC-GH3", "dcraw_matrix": [ 6559,-1752,-491,-3672,11407,2586,-962,1875,5130 ], // dcp d65 - "ranges": { + "ranges": { "black": 16, // 16 is BL offstet. Dcraw/RT read the base black from exif and calculates total BL = BLbase+BLoffset - "white": [ + "white": [ { "iso": 125, "levels": 3500 }, // gaussian 3600-4095 - { "iso": [ 160, 200, 250, 320, 400, 500, 640, 800, 1000, 1250, 1600, 2000, 2500, 3200, 4000, 5000, 6400, 12800, 25600 ], "levels": 4080 } // nominal 4095 - ] + { "iso": [ 160, 200, 250, 320, 400, 500, 640, 800, 1000, 1250, 1600, 2000, 2500, 3200, 4000, 5000, 6400, 12800, 25600 ], "levels": 4080 } // nominal 4095 + ] } }, { // Quality B, some ISO WLevels are safely guessed "make_model": "Panasonic DMC-GH4", - "dcraw_matrix": [ 7122,-2108,-512,-3155,11201,2231,-541,1423,5045 ], // dng_v8.5 d65 - "ranges": { + "dcraw_matrix": [ 7122,-2108,-512,-3155,11201,2231,-541,1423,5045 ], // dng_v8.5 d65 + "ranges": { "black": 16, // 16 is BL offstet. Dcraw/RT read the base black from exif and calculates total BL = BLbase+BLoffset - "white": [ + "white": [ { "iso": 100, "levels": 2700 }, // gaussian center at 2870-2920 range +/- 150, exif 2111 - { "iso": 125, "levels": 3100 }, // guessed - { "iso": [ 160, 200, 250, 320, 400, 500, 640, 800, 1000, 1250, 1600, 2000, 2500, 3200, 4000, 5000, 6400, 12800, 25600 ], "levels": 4080 } // nominal 4095 - ] + { "iso": 125, "levels": 3100 }, // guessed + { "iso": [ 160, 200, 250, 320, 400, 500, 640, 800, 1000, 1250, 1600, 2000, 2500, 3200, 4000, 5000, 6400, 12800, 25600 ], "levels": 4080 } // nominal 4095 + ] } }, - { // Quality A, + { // Quality A, "make_model": "Panasonic DMC-GM1", "dcraw_matrix": [ 6770,-1895,-744,-5232,13145,2303,-1664,2691,5703 ], - "ranges": { + "ranges": { "black": 15, // 15 is BL offstet. Dcraw/RT read the base offset from exif and calculates total BL = BLbase+BLoffset "white": [ { "iso": 125, "levels": 3100 }, // bell shape 3150-3650 - exif 2616 { "iso": 160, "levels": 3600 }, // guessed from relative GX7 data { "iso": [ 200, 250, 320, 400, 500, 640, 800, 1000, 1250, 1600, 2000, 2500, 3200, 4000, 5000, 6400, 12800, 25600 ], "levels": 4080 } // nominal 4095 ] - } + } }, { // Quality B, uncertainty about ISO100 WL "make_model": "Panasonic DMC-GM5", "dcraw_matrix": [ 8238,-3244,-679,-3921,11814,2384,-836,2022,5852 ], // dng_v8.7 d65 - "ranges": { + "ranges": { "black": 15, // 15 is BL offstet. Dcraw/RT read the base offset from exif and calculates total BL = BLbase+BLoffset "white": [ { "iso": 100, "levels": 2800 }, // bell shape 2850-3250 - exif 2111 { "iso": [ 200, 250, 320, 400, 500, 640, 800, 1000, 1250, 1600, 2000, 2500, 3200, 4000, 5000, 6400, 12800, 25600 ], "levels": 4080 } // nominal 4095 ] - } + } }, - { // Quality A, - "make_model": "Panasonic DMC-GX7", + { // Quality A, + "make_model": [ "Panasonic DMC-GX7", "Panasonic DMC-GF7" ], "dcraw_matrix": [ 7610,-2780,-576,-4614,12195,2733,-1375,2393,6490 ], - "ranges": { + "ranges": { "black": 15, // 15 is BL offstet. Dcraw/RT read the base offset from exif and calculates total BL = BLbase+BLoffset "white": [ { "iso": 125, "levels": 3100 }, { "iso": 160, "levels": 3600 }, { "iso": [ 200, 250, 320, 400,500, 640, 800, 1000, 1250, 1600, 2000, 2500, 3200, 4000, 5000, 6400, 12800, 25600 ], "levels": 4080 } // nominal 4095 ] - } + } }, - { // Quality B, uncertainty about ISO 100 WL + { // Quality B, uncertainty about ISO 100 WL "make_model": [ "Panasonic DMC-LX100", "Leica D-LUX (Typ 109)" ], "dcraw_matrix": [ 8844,-3538,-768,-3709,11762,2200,-698,1792,5220 ], // DNG_V8.7 d65 // "dcraw_matrix": [ 6538,-1614,-549,-5475,13096,2646,-1780,2799,5612 ], // calculated from DxO D50 - "ranges": { + "ranges": { "black": 15, // 15 is BL offstet calculated from exif data. "white": [ { "iso": 100, "levels": 2300 }, // gaussian 2400-2700 exif_linearitylimit 2111 { "iso": [ 160, 200, 250, 320, 400, 500, 640, 800, 1000, 1250, 1600, 2000, 2500, 3200, 4000, 5000, 6400, 12800, 25600 ], "levels": 4080 } // nominal 4095 ] - } + } }, - { // Quality B, intermediate ISOs info missing + { // Quality B, intermediate ISOs info missing "make_model": [ "RICOH PENTAX K-3", "PENTAX K-3" ], "dcraw_matrix": [ 7415,-2052,-721,-5186,12788,2682,-1446,2157,6773 ], // adobe dcp d65 // "dcraw_matrix": [ 8542,-2581,-1144,-3995,12301,1881,863,1514,5755 ], // pentax DNG // "dcraw_matrix": [ 6464,-1574,-422,-5324,12712,2934,-1129,1724,6900 ], // DxO "raw_crop": [ 10, 4, 6028, 4024 ], - "ranges": { + "ranges": { "white": [ { "iso": 100, "levels": 16310 }, // 16317 or 16350 { "iso": 200, "levels": 16120 }, // 16254 or 16125 @@ -1110,41 +1288,70 @@ Quality X: unknown, ie we knowing to little about the camera properties to know { "iso": 800, "levels": 15360 }, // 15868 or 15364-15370 { "iso": [ 1600, 3200, 6400, 12800, 25600, 51200 ], "levels": 16300 } // 16383 - pentax dng tag is 15868-15350 ] - } - }, + } + }, - { // Quality B, corrections for raw crop vs Dcraw9.21, matched to Samsung's default - "make_model": "Samsung NX mini", + { // Quality B, intermediate ISOs info missing, spread due to blackframe subtraction guessed to be around 10levels + "make_model": "PENTAX K10D", + "dcraw_matrix": [ 9566,-2863,-803,-7170,15172,2112,-818,803,9705 ], // adobe DNG d65 + // "raw_crop": [ 0, 0, 3888, 2608 ], + "ranges": { + "white": [ + { "iso": 100, "levels": 4080 }, // R,G1,B = 4095 G2= 4087 + { "iso": 200, "levels": 4080 }, // R,G1,B = 4093-94 G2= 4087or94 + { "iso": 400, "levels": 4080 }, // R,G1 = 4093-94, B=4094 G2= 4087or93or94 + { "iso": 800, "levels": 4070 }, // R,G1 = 4091-4093, B=4091-92 G2= 4078or82or84-86 + { "iso": [ 1600, 3200 ], "levels": 4060 } // 4067or4073-76 + ] + } + }, + + { // Quality B, corrections for raw crop vs Dcraw9.21, matched to Samsung's default + "make_model": "Samsung NX mini", "dcraw_matrix": [ 5222,-1196,-550,-6540,14649,2009,-1666,2819,5657 ], // dng 8.6 d65 "raw_crop": [ 128, 36, 5480, 3656 ], // jpeg 5472x3648 - full raw: 5664 x 3710 - Samsung's official crop: 132, 40, 5604, 3688 "ranges": { "white": 4030 } // double clipping point for each channel at a) 4095 and b) bell distribution with peak at 4038 .. used the conservative one }, - { // Quality A, Conflict with "Samsung NX30" in Dcraw_v9.21_r1.414, frame corrections and color data - "make_model": "Samsung NX3000", + { // Quality A, Conflict with "Samsung NX30" in Dcraw_v9.21_r1.414, frame corrections and color data + "make_model": "Samsung NX3000", "dcraw_matrix": [ 8060,-2933,-761,-4504,12890,1762,-630,1489,5227 ], // DNG_v8.7.1 D65 "raw_crop": [ 92, 38, 5480, 3656 ] // jpeg 5472x3648 - full raw: 5600 x 3714 - Samsung's official crop: 96, 42, 5568, 3690 }, - { // Quality B, Crash on SRWs, RT normally use the embedded data with DNGs so needs adobe_coeff setting in dcraw.cc to always use the data from camconst.json for NX1 - "make_model": "Samsung NX1", - "dcraw_matrix": [ 10686,-4042,-1052,-3595,13238,276,-464,1259,5931 ], // DNG_v8.7 D65 - // "dcraw_matrix": [ 13298,-6099,-296,-5243,16153,-1235,-508,1220,7758 ], // DNG_v8.7 Standard Light A + { // Quality B, RT normally use the embedded data with DNGs but because various DNG use different color matrix adobe_coeff setting is used in dcraw.cc to always use the data from camconst.json for NX1 + "make_model": [ "Samsung NX1", "Samsung NX500" ], + "dcraw_matrix": [ 10686,-4042,-1052,-3595,13238,276,-464,1259,5931 ], // DNG_v8.7 D65 + // "dcraw_matrix": [ 13298,-6099,-296,-5243,16153,-1235,-508,1220,7758 ], // DNG_v8.7 Standard Light A // "dcraw_matrix": [ 9598,-3268,-634,-5678,14795,824,-1255,2675,4523 ], // SAMSUNG DNG CONVERTER - "ranges": { + "ranges": { "white": [ - { "iso": 100, "levels": 16050 }, // typical 16084, LE 16120 and 16383, LENR 16280 + { "iso": 100, "levels": 16000 }, // typical 16084, LE 16120 and 16383, LENR 16280 { "iso": [ 200, 400, 800, 1600, 3200, 6400, 12800 ], "levels": 16300 }, // 16383 { "iso": [ 25600, 51200 ], "levels": 16300 } // 16383 ] } }, - { // Quality c, corrections for frame size, black level not declared properly + { // Quality c, corrections for frame size, black and white levels not declared properly + "make_model": "Sigma SD9", + "dcraw_matrix": [ 14996,-3468,-1425,5576,3642,972,1761,3773,3720 ], // experimental calculated from sun0.icc data + "ranges": { "black": 0, "white": 16383 },// black is already subtracted by dcraw, white copied from x3dump data + "raw_crop": [ 20, 8, -18, -12 ] + }, + { // Quality c, corrections for frame size, black level not declared properly + "make_model": "Sigma SD10", + "dcraw_matrix": [ 12555,-1865,-1125,5093,4120,867,1929,3810,3507 ], // experimental calculated from .icc data + "ranges": { "black": 0, "white": 16383 },// black is already subtracted by dcraw, white copied from x3dump data + // "raw_crop": [ 0, 0, -0, -0 ] + "raw_crop": [ 20, 8, -18, -12 ] + }, + { // Quality c, corrections for frame size, black and white levels not declared properly "make_model": "Sigma SD14", "dcraw_matrix": [ 16411,-4764,-2383,8110,2603,-645,3135,3878,1984 ], // experimental inverted icc wp12 - build with BL=15 // "dcraw_matrix": [ 13804,-4156,-1896,6917,1909,-431,2768,2989,1741 ], // experimental inverted icc wp10 - build with BL=15 - "ranges": { "black": 15, "white": 4080 },// peripheral black stripes give BL around 37 - "raw_crop": [ 18, 12, 2652, 1768 ] + "ranges": { "black": 0, "white": 16383 },// peripheral black stripes give BL around 37 + "raw_crop": [ 0, 0, -0, -0 ] + // "raw_crop": [ 18, 12, 2652, 1768 ] }, { // Quality c, correction for frame width @@ -1165,11 +1372,12 @@ Quality X: unknown, ie we knowing to little about the camera properties to know }, { // Quality C, correction for frame width, color matrix guessed .. "make_model": [ "Sigma DP1 Merrill", "Sigma DP2 Merrill", "Sigma DP3 Merrill" ], - "dcraw_matrix": [ 7211,-1577,-769,4996,3428,440,2717,7117,4699 ], // copy fron SD1 Merrill icc cloudy8140 d65 + "dcraw_matrix": [ 5666,139,-892,3780,5428,270,1366,9757,4526 ], // copy fron SD1 Merrill icc cloudy8140 d65 "ranges": { "black": 16, "white": 4070 }, // BL is 16 or 31, should be measured at the horizontal black stripe at the bottom "raw_crop": [ 12, 0, -110, -62 ] // for small size all numbers/2 }, + { // Quality A, correction for color matrix from Colin Walker's d50 to dng d65 "make_model": "Sony NEX-C3", // "dcraw_matrix": [ 5130,-1055,-269,-4473,11797,3050,-701,1310,7121 ], // Colin walker's d50 kept for possible consistency issues @@ -1180,10 +1388,10 @@ Quality X: unknown, ie we knowing to little about the camera properties to know { // Quality A, correction for frame width "make_model": "Sony NEX-5N", "dcraw_matrix": [ 5991,-1456,-455,-4764,12135,2980,-707,1425,6701 ], - "raw_crop": [ 0, 0, 4920, 3276 ], + "raw_crop": [ 0, 0, 4920, 3276 ], "ranges": { "black": 512, "white": 16300 } }, - { // Quality A, + { // Quality A, "make_model": "Sony ILCA-77M2", "dcraw_matrix": [ 5991,-1732,-443,-4100,11989,2381,-704,1467,5992 ], // adobe dcp d65 "raw_crop": [ 0, 0, 6024, 4024 ], @@ -1196,7 +1404,7 @@ Quality X: unknown, ie we knowing to little about the camera properties to know "ranges": { "black": 512, "white": 16300 }, "raw_crop": [ 0, 0, 5476, 3656 ] }, - { // Quality A, + { // Quality A, "make_model": "Sony ILCE-5100", "dcraw_matrix": [ 5991,-1456,-455,-4764,12135,2980,-707,1425,6701 ], // adobe dcp d65 "raw_crop": [ 0, 0, 6024, 4024 ],