1540 lines
87 KiB
JSON
1540 lines
87 KiB
JSON
/*
|
|
|
|
DO NOT EDIT THIS FILE!
|
|
|
|
All changes made here will be lost on software update.
|
|
If you want to add custom values or changes existing ones,
|
|
create a "camconst.json" file next to your personal "options" file.
|
|
Its values will then override and/or complete the ones of this file.
|
|
|
|
If you add values for your own camera and are okay to share them with
|
|
RawTherapee's community, please drop a link on the user's forum
|
|
|
|
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
|
|
entry in RT's file, your values will replace RT's ones, even if RT's ones are
|
|
more complete and/or detailed. You might want to copy/paste RT's levels first
|
|
(if provided) to your user's file and complete/modify it.
|
|
|
|
Same for the White level(s), independently from the Black level(s).
|
|
|
|
|
|
----------------------------------------------------------------------------------
|
|
|
|
|
|
This file is in JSON format and contains camera constants which RawTherapee uses
|
|
when parsing raw files.
|
|
|
|
Raw files themselves unfortunately do not contain all information needed for making
|
|
a raw conversion, typically color response information and black/white levels are
|
|
missing. That's why this file is needed.
|
|
|
|
It's read once during startup, so if the file is updated you need to restart
|
|
RawTherapee in order to take effect. The file is not intended for modification by
|
|
the casual user, but advanced users can add missing camera information to this file.
|
|
If you do so please report at http://code.google.com/p/rawtherapee/issues so we can
|
|
extend the distributed version of this file so your provided camera information
|
|
becomes available to all.
|
|
|
|
RawTherapee uses DCRAW as the raw format parser. DCRAW contains hard-coded camera
|
|
constants, but not for all cameras and not always accurate information. For example
|
|
DCRAW only support one white level, while some cameras have different white levels
|
|
per channel and per ISO. If a camera is not listed in this file the constants from
|
|
DCRAW will be used, if listed here this information will override any constants in
|
|
DCRAW (if any).
|
|
|
|
Some cameras may only have partial information here, for example if the raw file
|
|
itself contains a color matrix it's not entered here. A camera whose black level
|
|
is measured on special pixels in the raw file should only have white levels here
|
|
etc.
|
|
|
|
Examples:
|
|
|
|
{
|
|
// make and model separated with single space, must match make
|
|
// and model as provided by dcraw (case-insensitive).
|
|
"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 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
|
|
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 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 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
|
|
},
|
|
|
|
{
|
|
"make_model": "ManufacturerA ModelB",
|
|
"dcraw_matrix": [ 7530,-1942,-255,-4318,11390,3362,-926,1694,7649 ],
|
|
// black and white levels per ISO per channel
|
|
// this example only two ISOs, normally the list should be more populated.
|
|
// When RawTherapee asks for black/white levels for a specific ISO the closest
|
|
// match is picked.
|
|
"ranges": {
|
|
"black": [
|
|
{ "iso": 100, "levels": 10 }, // here only one level, same level for all channels
|
|
{ "iso": 3200, "levels": [ 50, 60, 50 ] } // 3 levels, G2 same as G1
|
|
],
|
|
"white": [
|
|
{ "iso": 100, "levels": [ 10000, 11000, 10000, 12000 ] }, // 4 levels, G1 and G2 different
|
|
{ "iso": 3200, "levels": [ 11000, 11000, 10000, 12000 ] }
|
|
]
|
|
}
|
|
}
|
|
|
|
How to measure white levels:
|
|
----------------------------
|
|
|
|
Dcraw which provides the default values to RawTherapee often provides too high
|
|
white levels, and only provides a single value regardless of color channel, ISO
|
|
or aperture. If you open an image with a large clipped area and that is
|
|
rendered in a pink/magenta color rather than white it usually means that the
|
|
white level constant is too high. You can fix this by adjusting the
|
|
"Raw White Point" in the raw tab inside RawTherapee, or permanently fix it by
|
|
measuring and providing a more exact white level in camconst.json so
|
|
RawTherapee gets to know from start where the camera actually clips.
|
|
|
|
Providing a complete and detailed white-level profile can be a quite large
|
|
and complicated effort. As an alternative you can provide a simpler profile.
|
|
We suggest one of the following alternatives in rising difficulty (and
|
|
generally diminishing return):
|
|
|
|
A) Provide a single white-level value measured on the native ISO (base ISO).
|
|
For many cameras this will actually be complete information, those that
|
|
don't vary on channel, ISO or aperture.
|
|
B) Check through all ISOs and if there are differences in white level provide
|
|
an array with white level per ISO.
|
|
C) In addition to ISO, check for aperture scaling and add that.
|
|
D) In addition to ISO and aperture scaling check for color channel
|
|
differences and add that.
|
|
|
|
Doing A) is often better than nothing, as dcraw's default is often too high.
|
|
B) can also be worthwhile for some cameras (or else you'll get pink highlights
|
|
for some ISOs), while C) and D) can generally be seen as fine-tuning.
|
|
|
|
Here follows a guide how to measure white levels (clipping levels):
|
|
|
|
Shoot with your camera into a bright light source, such as a lamp, and make
|
|
sure the shutter speed is long enough to get overexposure (we want
|
|
clipping!). Preferably overexpose lightly, say 1 or 2 stops if you can. The
|
|
reason for this is that some cameras with fuzzy white levels may look less
|
|
fuzzy than they actually are if over-exposure is heavy.
|
|
|
|
Use f/5.6 or smaller aperture (=larger f-number) to avoid any raw scaling
|
|
the camera might have for large apertures.
|
|
|
|
Open the file in a raw analyzer such as Rawdigger and check the pixel values
|
|
for the clipped areas (if you are using Rawdigger, make sure you have disabled
|
|
"subtract black" in preferences or else sample values can be wrong). In this
|
|
stage we always look at white level before black level subtraction! White
|
|
levels can be different on color channel (R, G1, B, G2, note the two greens,
|
|
most often both green channels have the same white level though) and vary
|
|
depending on ISO setting, so if you want to provide a complete profile make
|
|
one shoot for each ISO (even 1/3 steps, so yes it can be quite a lot of
|
|
pictures to shoot and check).
|
|
|
|
In addition, many cameras scale the raw values for large apertures. It's
|
|
generally not that important to cover this, but if you want to extract most
|
|
out of the camera you should cover this too. Then you need to shoot with a
|
|
wide aperture lens (ideally the widest available from the manufacturer) and
|
|
test each aperture (1/3 steps) from the widest (say f/1.2) until the camera
|
|
stops scaling the raw values (usually f/2.8 or f/4.0). If the camera also
|
|
have ISO scaling you need to shoot at these different ISOs to detect any
|
|
differences in scaling, there can be a bit of variation. If you don't have
|
|
access to the widest lens available for the system (say only an f/1.8 lens
|
|
instead of an f/1.2) it can still be valuable to have the values down to
|
|
what you can provide. Brands known to have models that have aperture scaling
|
|
of white levels include Canon and Nikon. Note that if white levels are not
|
|
scaled the camera may have raw scaling anyway (Sony for example), but as
|
|
such scaling will not affect raw decoding we don't need to care about that.
|
|
|
|
PROVIDE CONSERVATIVE VALUES. Most cameras have a little noise at the white
|
|
level, and some can have a lot. In your raw analyzer, move around and look at
|
|
the values in the clipped areas to get a sense of the variation, and/or look
|
|
at the histogram. While it's common to with very little variation, say only
|
|
+/-2 units, some can have +/-500 or more (some may have different variation
|
|
depending on ISO). There can also be camera-to-camera variation.
|
|
|
|
If the white level is set too high RawTherapee will not think the pixels are
|
|
clipped and you can get discoloured highlights (usually pink), this is what
|
|
we want to avoid. If white level is set too low RawTherapee will clip early, ie
|
|
you lose a little highlight detail, but the color is rendered correctly and
|
|
highlight reconstruction can work properly, so this is not as bad. This is why
|
|
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
|
|
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
|
|
with knowledge where the image clips rather than keeping that last 0.005 stop
|
|
of highlight information and risking that clipping will not be detected
|
|
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.
|
|
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
|
|
power of two - 1, such as 4095 or 16383. Then you pick a value just before the
|
|
bell shape rises, ie to the left of the bell meaning that you cut away the
|
|
whole fuzzy noise peak. If a little of the starting edge of the noise will be
|
|
included it's not harmful, but 99% of it should be above.
|
|
This would mean that it's better to measure white level on long exposure/ high temp
|
|
raws but since this if difficult and time consuming we choose to measure on normal
|
|
raws and cover the abnormalities whith the conservative WL values.
|
|
|
|
If you have used Adobe's DNG Converter and analyzed it's output you may have
|
|
noticed that it's very conservative regarding white levels, ie it cuts away
|
|
quite a lot from the top. While we also recommend to be conservative, you can
|
|
generally be a little bit less so than Adobe's DNG Converter. RawTherapee is
|
|
meant to max out what you can get from your camera, and the white levels should
|
|
mirror that, within reason.
|
|
|
|
The aperture scaling feature is meant to raise the white level to not miss out
|
|
on highlight detail when the camera has scaled the raw values (and thus
|
|
raised white levels). Many cameras do this, but not all, and can only do it
|
|
for lenses that report aperture to the camera (ie you see it in the EXIF
|
|
data). Providing proper aperture scaling values is a bit more advanced task,
|
|
so if you are unsure we recommend to skip that part.
|
|
|
|
Beware that the raw format may have a ceiling so that it clips scaled values,
|
|
for example the Canon 5D mark II maxes out at 16383 which happens at f/1.8
|
|
for ISOs with the white level at 15750, but for ISO160 when the white level
|
|
is 12800 it does not max out. If there is such a raw limit it must also be
|
|
provided ("ranges":"white_max"). Usually you will not need a margin on
|
|
white_max as it clips there as a result of an in-camera math operation.
|
|
|
|
Note that aperture scaling can be quite small, for the 5D mark II it's only
|
|
0.2 stop down to f/1.2 and then it can be discussed if it's worthwhile to care.
|
|
The "worst" cameras scale about 0.6 stops though, and then it's more
|
|
valuable to compensate. If you skip aperture scaling RawTherapee will clip the
|
|
files a little bit too early and you miss that last fraction of highlight
|
|
detail, but you get no processing problems. Setting unconservative scale
|
|
factors can on the other hand cause a too high whitelevel and break highlight
|
|
processing, so be careful.
|
|
|
|
Scaling can vary sligthly depending on ISO (if white levels vary) so make
|
|
sure to provide conservative scalings so regardless of ISO you don't get a
|
|
too high white level. We recommend to keep a small margin here also
|
|
white levels, ie 0.5% lower or so. For example if base (not conservative!)
|
|
white level is 15750 and the scaled is 16221 we have a scaling factor of
|
|
16221/15750=1.0299 ie +2.9% we set the factor to 1.025 to keep a margin.
|
|
The abnormal cases are already covered by setting conservative per ISO White levels.
|
|
|
|
The scale factor you provide here is applied on the white level before black
|
|
level subtraction (if any), ie directly on the white level value you provide in
|
|
the camconst.json file. Black level (if provided) is not scaled. Please report
|
|
to us if you come across a camera which scales black levels, then we can add
|
|
that as an option. Usually the camera applies an offset to shift back the
|
|
black level to the standard level after scaling.
|
|
|
|
If RawTherapee doesn't find an entry for the aperture used in the image, it
|
|
will pick the closest above. Ie if the apertures 1.0 and 2.0 is in the table
|
|
and the image has aperture 1.2, it will pick scaling for 2.0, even if 1.0 is
|
|
the closer aperture. The reason for always checking the closest above is that
|
|
we rather get a bit too low white level than too high, as discussed before.
|
|
|
|
Some cameras have different white levels on different color channels. When
|
|
this is the case the difference is often so small so you can just provide a
|
|
single value instead, ie a conservative value based on the lowest clipping.
|
|
|
|
What we know at the time of writing about different brands/models (not
|
|
complete info):
|
|
|
|
- Canon CR2: typically same clipping per channel, but significant variations
|
|
on ISO and aperture. Maxes out at 16383, black level measured on masked
|
|
black pixels, ie don't provide that.
|
|
- Nikon NEF: sometimes different clipping per color (most often negligible
|
|
though). Will do aperture and ISO scaling, but often to a lesser extent
|
|
than Canon files, ie not as much to gain.
|
|
- Sony ARW2: no scaling. Generally black level around 512, and white level
|
|
16350 and to be conservative say 16300.
|
|
|
|
Note that some raw formats may go through a certain amount of pre-processing
|
|
based on meta data, such as curve and levels adjustments and various
|
|
calibrations. The Phase One IIQ is one example, and this means that if you
|
|
look at the data in a raw analyzer such as RawDigger it may perform a
|
|
different type of preprocessing than RawTherapee's loader does, and you may
|
|
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
|
|
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.
|
|
|
|
Reset exposure sliders to neutral, and zoom in on a large clipped highlight.
|
|
Move around the mouse pointer within, it should show stable 100% on R G B. If
|
|
so, the white level is not too high, it could however be too low. To test that,
|
|
go to the raw tab and adjust the "whitepoint linear correction factor", reduce
|
|
it until one of the channels is no longer 100%, and then increase in steps of
|
|
0.01 until all are 100 again. Usually you play around in the range 0.90 to
|
|
0.99, ie a very small adjustment. When you've found this factor you should
|
|
apply it on the old white level to find a new larger one. As RT's "whitepoint
|
|
linear correction factor" work after blacklevel subtraction and camconst.json
|
|
want values without it we need to do some math:
|
|
|
|
BL = black level (typically something near 0, 256, 512, 1024 or 2048 find it in the
|
|
verbose output or if available in camconst.json)
|
|
F = whitepoint linear correction factor you just found out (typically in the
|
|
range 0.90 to 0.99 if you need to increase white level, 1.01 to 1.10 if
|
|
decrease)
|
|
oldWL = old white level, found in verbose output or in camconst.json if
|
|
available.
|
|
|
|
new white level = BL + (oldWL - BL) / F
|
|
|
|
Note that if black level is 0 which it is for many cameras, the formula
|
|
simplifies to: new white level = oldWL / F.
|
|
|
|
Here's an example from a Canon 1000D: black level is 256, old white level is
|
|
3651, whitepoint correction factor becomes 0.90, then new white level is
|
|
256 + (3651 - 256) / 0.9 = 4028.
|
|
|
|
If your camera have different black levels per channel use the one which
|
|
yields the smallest white level (can be the largest or smallest, test!).
|
|
|
|
This new white level you then enter in your camconst.json file. The same
|
|
procedure can be used if the white level is too high, ie if you see pink
|
|
highlights, then increase the correction factor above 1.0 until you just start
|
|
seeing stable 100% on all channels, you use the same formula to calculate the
|
|
new smaller white level.
|
|
|
|
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 ),
|
|
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
|
|
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
|
|
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!
|
|
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.
|
|
|
|
Currently we have chosen not to provide any guide how to measure black levels
|
|
as we don't think it will be a common task (it's also more difficult to do
|
|
than measure white levels). If you experience a black level issue it's more
|
|
likely due to a format parsing bug which should be fixed in DCRaw and/or
|
|
RawTherapee's raw format parser.
|
|
|
|
How does a black level issue look? If the image has a color cast and is
|
|
possibly duller than normal it's likely that black levels are off. The color
|
|
cast is typically stronger in darker colors but it can be hard to see, it's
|
|
more often experienced as a cast over the whole image.
|
|
|
|
*/
|
|
{"camera_constants": [
|
|
|
|
/*
|
|
|
|
When adding camera constants please set a quality level so we know the status for future updates
|
|
|
|
Quality A: complete information, no need to add more, to the best of our knowledge
|
|
Quality B: not complete, but very little to gain from adding more
|
|
Quality C: complementing with additional information would provide significant gain
|
|
Quality X: unknown, ie we knowing to little about the camera properties to know if
|
|
we have enough info or not.
|
|
|
|
*/
|
|
|
|
{ // quality A
|
|
"make_model": "Canon EOS 5D Mark II",
|
|
"dcraw_matrix": [ 4716,603,-830,-7798,15474,2480,-1496,1937,6651 ],
|
|
"ranges": {
|
|
// black levels are read from raw masked pixels
|
|
// white levels are same for all colors, but vary on ISO
|
|
"white": [
|
|
{ "iso": 50, "levels": 15600 }, // typical: 15760
|
|
{ "iso": 100, "levels": 15600 },
|
|
{ "iso": 125, "levels": 15600 },
|
|
{ "iso": 160, "levels": 12700 },
|
|
{ "iso": 200, "levels": 15600 },
|
|
{ "iso": 250, "levels": 15600 },
|
|
{ "iso": 320, "levels": 12700 }, // typical: 12810
|
|
{ "iso": 400, "levels": 15600 },
|
|
{ "iso": 500, "levels": 15600 },
|
|
{ "iso": 640, "levels": 12700 },
|
|
{ "iso": 800, "levels": 15600 },
|
|
{ "iso": 1000, "levels": 15600 },
|
|
{ "iso": 1250, "levels": 12700 },
|
|
{ "iso": 1600, "levels": 15600 },
|
|
{ "iso": 2000, "levels": 15600 },
|
|
{ "iso": 2500, "levels": 15600 },
|
|
{ "iso": 3200, "levels": 15600 },
|
|
{ "iso": 4000, "levels": 15600 },
|
|
{ "iso": 5000, "levels": 15600 },
|
|
{ "iso": 6400, "levels": 16200 }, // typical: 16383
|
|
{ "iso": 12800, "levels": 16200 },
|
|
{ "iso": 25600, "levels": 16200 }
|
|
],
|
|
"white_max": 16383,
|
|
"aperture_scaling": [
|
|
/* note: no scale factors known for and f/1.0 (had no lenses to test with), but the
|
|
typical 15700 white level maxes out at "white_max" for f/1.8 and below anyway. */
|
|
{ "aperture": 1.2, "scale_factor": 1.100 }, // guessed by relative 5DIII data
|
|
{ "aperture": 1.4, "scale_factor": 1.077 },
|
|
{ "aperture": 1.6, "scale_factor": 1.054 },
|
|
{ "aperture": 1.8, "scale_factor": 1.039 },
|
|
{ "aperture": 2.0, "scale_factor": 1.031 },
|
|
{ "aperture": 2.2, "scale_factor": 1.021 },
|
|
{ "aperture": 2.5, "scale_factor": 1.016 },
|
|
{ "aperture": 2.8, "scale_factor": 1.010 },
|
|
{ "aperture": 3.2, "scale_factor": 1.004 },
|
|
{ "aperture": 3.5, "scale_factor": 1.003 }
|
|
]
|
|
}
|
|
},
|
|
{ // quality A,
|
|
"make_model": "Canon EOS 5D Mark III",
|
|
"dcraw_matrix": [ 6722,-635,-963,-4287,12460,2028,-908,2162,5668 ],
|
|
"ranges": {
|
|
// black levels are read from raw masked pixels
|
|
// white levels are same for all colors, but vary on ISO
|
|
"white": [
|
|
{ "iso": [ 50, 100, 125, 200, 250, 400, 500, 800, 1000, 1600, 2000, 3200, 4000, 6400, 8000, 12800, 16000, 20000 ], "levels": 15180 }, // typical: 15282
|
|
{ "iso": [ 160, 320, 640, 1250, 2500, 5000, 10000 ], "levels": 13200 }, // typical: 13306
|
|
{ "iso": [ 25600, 32000, 40000, 51200, 102400 ], "levels": 16200 }
|
|
],
|
|
"white_max": 16383,
|
|
"aperture_scaling": [
|
|
{ "aperture": 1.2, "scale_factor": 1.130 },
|
|
{ "aperture": 1.4, "scale_factor": 1.090 },
|
|
{ "aperture": 1.6, "scale_factor": 1.065 },
|
|
{ "aperture": 1.8, "scale_factor": 1.040 },
|
|
{ "aperture": 2.0, "scale_factor": 1.025 },
|
|
{ "aperture": 2.2, "scale_factor": 1.020 },
|
|
{ "aperture": 2.5, "scale_factor": 1.015 },
|
|
{ "aperture": 2.8, "scale_factor": 1.010 },
|
|
{ "aperture": 3.2, "scale_factor": 1.005 },
|
|
{ "aperture": 3.5, "scale_factor": 1.002 }
|
|
]
|
|
}
|
|
},
|
|
|
|
{ // 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": [
|
|
{ "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
|
|
],
|
|
"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.8, "scale_factor": 1.040 }, // guessed
|
|
{ "aperture": 2.0, "scale_factor": 1.030 }, // 15800/15283
|
|
{ "aperture": 2.2, "scale_factor": 1.020 }, // guessed
|
|
{ "aperture": 2.5, "scale_factor": 1.015 }, // 15541/15283
|
|
{ "aperture": 2.8, "scale_factor": 1.010 }, // 15437/15283
|
|
{ "aperture": 3.2, "scale_factor": 1.005 }, // 15361/15283
|
|
{ "aperture": 3.5, "scale_factor": 1.000 } // no sample
|
|
]
|
|
}
|
|
},
|
|
{ // Quality A, ISO and aperture WL data by CharlyW at RawTherapee forums, missing samples safely guessed
|
|
"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": [
|
|
{ "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 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",
|
|
"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": [
|
|
{ "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
|
|
],
|
|
"white_max": 16383,
|
|
"aperture_scaling": [
|
|
/* note: no scale factors known for f/1.6, f/1.0 (had no lenses to test with) */
|
|
{ "aperture": 1.4, "scale_factor": 1.200 }, // 15100/12277 exif
|
|
{ "aperture": 1.6, "scale_factor": 1.100 }, // guessed
|
|
{ "aperture": 1.8, "scale_factor": 1.050 }, // 14372/13583 - 13283
|
|
{ "aperture": 2.0, "scale_factor": 1.030 }, // 14034/13583 - 12973
|
|
{ "aperture": 2.2, "scale_factor": 1.015 }, // 13808/13583 - 12766
|
|
{ "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 }
|
|
]
|
|
}
|
|
},
|
|
|
|
{ // 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 ],
|
|
"masked_areas": [ 20, 2, 2616, 20 ],
|
|
"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
|
|
{ "iso": [ 200, 400 ], "levels": 16100 }, // typical 16224
|
|
{ "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
|
|
typical 12700 white levels maxes out at "white_max" for f/1.4 and below anyway. */
|
|
{ "aperture": 1.4, "scale_factor": 1.265 }, // 16142/12744
|
|
{ "aperture": 1.6, "scale_factor": 1.145 }, // 15872/13825
|
|
{ "aperture": 1.8, "scale_factor": 1.090 }, // 15103/13825
|
|
{ "aperture": 2.0, "scale_factor": 1.035 }, // 14334/13825
|
|
{ "aperture": 2.2, "scale_factor": 1.005 }, // 13950/13825
|
|
{ "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": [
|
|
{ "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": 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": [
|
|
{ "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
|
|
],
|
|
"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
|
|
typical 12650 white levels maxes out at "white_max" for f/1.4 and below anyway. */
|
|
{ "aperture": 1.4, "scale_factor": 1.300 }, // gaps 81of301
|
|
{ "aperture": 1.6, "scale_factor": 1.200 },
|
|
{ "aperture": 1.8, "scale_factor": 1.140 },
|
|
{ "aperture": 2.0, "scale_factor": 1.080 }, // gaps 1of11
|
|
{ "aperture": 2.2, "scale_factor": 1.060 },
|
|
{ "aperture": 2.5, "scale_factor": 1.050 },
|
|
{ "aperture": 2.8, "scale_factor": 1.030 },
|
|
{ "aperture": 3.2, "scale_factor": 1.015 },
|
|
{ "aperture": 3.5, "scale_factor": 1.000 } // no sample but it would be negligible
|
|
]
|
|
}
|
|
},
|
|
{ // 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": [
|
|
{ "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
|
|
],
|
|
"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
|
|
typical 12650 white levels maxes out at "white_max" for f/1.4 and below anyway. */
|
|
{ "aperture": 1.4, "scale_factor": 1.300 }, // gaps 81of301
|
|
{ "aperture": 1.6, "scale_factor": 1.200 },
|
|
{ "aperture": 1.8, "scale_factor": 1.140 },
|
|
{ "aperture": 2.0, "scale_factor": 1.080 }, // gaps 1of11
|
|
{ "aperture": 2.2, "scale_factor": 1.060 },
|
|
{ "aperture": 2.5, "scale_factor": 1.050 },
|
|
{ "aperture": 2.8, "scale_factor": 1.030 },
|
|
{ "aperture": 3.2, "scale_factor": 1.015 },
|
|
{ "aperture": 3.5, "scale_factor": 1.000 } // no sample but it would be negligible
|
|
]
|
|
}
|
|
},
|
|
{ // 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": [
|
|
{ "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
|
|
],
|
|
"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
|
|
12500 white levels nearly maxes out for f/1.4 and below anyway. */
|
|
{ "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.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 }
|
|
]
|
|
}
|
|
},
|
|
|
|
{ // 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": [
|
|
{ "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
|
|
],
|
|
"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
|
|
typical 12650 white levels maxes out at "white_max" for f/1.4 and below anyway. */
|
|
{ "aperture": 1.4, "scale_factor": 1.290 }, // guessed from 60D data
|
|
{ "aperture": 1.6, "scale_factor": 1.190 }, // guessed
|
|
{ "aperture": 1.8, "scale_factor": 1.140 }, // guessed
|
|
{ "aperture": 2.0, "scale_factor": 1.090 }, // 12293/11222 = 1.095
|
|
{ "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 } //
|
|
]
|
|
}
|
|
},
|
|
|
|
{ // 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": [
|
|
{ "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": [ 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
|
|
typical 12650 white levels maxes out at "white_max" for f/1.4 and below anyway. */
|
|
{ "aperture": 1.4, "scale_factor": 1.200 }, // 16332/13583
|
|
{ "aperture": 1.6, "scale_factor": 1.080 }, // guessed
|
|
{ "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 } //
|
|
]
|
|
}
|
|
},
|
|
|
|
{ // 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": [
|
|
{ "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": [ 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
|
|
typical 12650 white levels maxes out at "white_max" for f/1.4 and below anyway. */
|
|
{ "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 }, // 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 } //
|
|
]
|
|
}
|
|
},
|
|
|
|
{ // 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": [ 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
|
|
"masked_areas": [ 148, 2, 3340, 78 ],
|
|
"ranges": { "white": 16300 }
|
|
},
|
|
|
|
{ // Quality B, not supported by the current Dcraw 9.22
|
|
"make_model": "Canon PowerShot G7 X",
|
|
"dcraw_matrix": [ 9602,-3823,-937,-2984,11495,1675,-407,1415,5049 ], // DNG_V8.7 D65
|
|
// "raw_crop": [ 116, 24, 5504, 3680 ], // Sensor size 5632x3710. Largest usefull frame 120-5616X28-3702 = 5504x3682, 4pix RTborders, Left Border 120-4, Top border 28-4
|
|
"raw_crop": [ 128, 36, 5480, 3656 ], // Default official 3/2 frame 5472X3648, 4pix borders, Left Border 132-4, Top border 40-4
|
|
"masked_areas": [ 40, 4, 3680, 76 ],
|
|
"ranges": { "white": 4080 }
|
|
},
|
|
|
|
{ // Quality A, changes for raw crop which is wrong (larger) in Dcraw
|
|
"make_model": "Canon PowerShot S120",
|
|
"dcraw_matrix": [ 6961,-1685,-695,-4625,12945,1836,-1114,2152,5518 ],
|
|
"raw_crop": [ 120, 30, 4024, 3030 ],
|
|
"masked_areas": [ 32, 2, 3028, 80 ],
|
|
"ranges": { "white": 4050 }
|
|
},
|
|
|
|
{ // 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,
|
|
"masked_areas": [ 20, 2, 3480, 80 ],
|
|
"ranges": { "white": 4050 } // nominal 4080-4093
|
|
},
|
|
|
|
{ // Quality A
|
|
"make_model": "FUJIFILM S1",
|
|
"dcraw_matrix": [ 12297,-4882,-1202,-2106,10691,1623,-88,1312,4790 ] // DNG_v8.5 D65
|
|
},
|
|
|
|
{ // 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
|
|
// "dcraw_matrix": [ 9289,-3279,-632,-3539,11137,2758,-1049,1950,6544 ], // X-RITE D55
|
|
"ranges": { "white": 16100 }
|
|
},
|
|
|
|
{ // Quality B
|
|
"make_model": "FUJIFILM X30",
|
|
"dcraw_matrix": [ 12328,-5256,-1144,-4469,12927,1675,-87,1291,4351 ], // DNG_v8.7 D65
|
|
"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": { "white": 4080 } // Black is auto extracted from exif, lower WL to 4080 from 4095 due to some non linearity detected at raw highlights
|
|
},
|
|
|
|
{ // 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
|
|
"make_model": "Nikon D7000",
|
|
"dcraw_matrix": [ 7530,-1942,-255,-4318,11390,3362,-926,1694,7649 ], // matrix provided by Tanveer(tsk1979)
|
|
"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, 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 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, 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, 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
|
|
"raw_crop": [ 0, 0, 6034, 4028 ], // Dcraw has no raw crop for D610
|
|
"ranges": {
|
|
"white": [
|
|
{ "iso": [ 50, 100 ], "levels": [ 15800, 15700, 15800 ] }, // typical G1/G2 15778, R/B 15879 lowered to 15700, 15800 for possible WL distribution under LENR
|
|
{ "iso": [ 200, 400, 800 ], "levels": [ 16300, 15700, 16300 ] }, // 15878, 16383
|
|
{ "iso": 1600, "levels": [ 16300, 16100, 16300 ] }, // 16145-165, 16383
|
|
{ "iso": [ 3200, 6400, 12800, 25600 ], "levels": [ 16300, 16300, 16300 ] } // 16383
|
|
],
|
|
"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
|
|
"ranges": {
|
|
"white": [
|
|
{ "iso": [ 100, 125, 160, 200, 250, 320, 400, 500, 640, 800, 1000, 1250 ], "levels": [ 16300, 15700, 16300 ] }, // 15779-15781
|
|
{ "iso": [ 1600 ], "levels": 16000 }, // 16085-16113
|
|
{ "iso": [ 2000, 2500, 3200, 4000, 5000, 6400, 12800, 25600 ], "levels": 16300 } // 16383
|
|
]
|
|
}
|
|
},
|
|
{ // quality B, WL set at 16300 from nominal 16380 for possible non linearities with LENR
|
|
"make_model": "Nikon D810",
|
|
"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": { "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 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
|
|
// "raw_crop": [ 4, 4, 4616, 3464 ], // olympus jpeg crop 8, 8, 4608, 3456
|
|
"ranges": { "white": 4080 }
|
|
},
|
|
{ // Quality A, white level correction
|
|
"make_model": "OLYMPUS E-PM2",
|
|
"dcraw_matrix": [ 8380,-2630,-639,-2887,10725,2496,-627,1427,5438 ],
|
|
"ranges": { "white": 4040 } // nominal 4056
|
|
},
|
|
|
|
{ // Quality B, with long exposure noise reduction White Level gets WL-BL = around 256_12bit levels less
|
|
"make_model": "OLYMPUS E-PL7",
|
|
"dcraw_matrix": [ 9197,-3190,-659,-2606,10830,2039,-458,1250,5458 ], // DNG_V8.7 D65
|
|
"ranges": { "white": 4080 } // nominal 4093
|
|
},
|
|
|
|
/* 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 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 offstet. Dcraw/RT read the base BL from exif and calculates total BL = BLbase+BLoffset
|
|
"white": [
|
|
{ "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
|
|
"make_model": "Panasonic DMC-FZ150",
|
|
"dcraw_matrix": [ 10435,-3208,-72,-2293,10506,2067,-486,1725,4682 ], // RT, copy from custom dcp d55
|
|
"ranges": { "black": 15, "white": 4050 } // 15 is BL offstet. Dcraw/RT read the base offset from exif and calculates total BL = BLbase+BLoffset
|
|
},
|
|
|
|
{ // 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 BL from exif and calculates total BL = BLbase+BLoffset
|
|
"white": [
|
|
{ "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
|
|
"make_model": [ "Panasonic DMC-LF1", "Leica C (Typ 112)" ],
|
|
"dcraw_matrix": [ 9379,-3267,-816,-3227,11560,1881,-926,1928,5340 ],
|
|
"ranges": { "black": 15, "white": 4050 } // 15 is BL offstet. Dcraw/RT read the base offset from exif and calculates total BL = BLbase+BLoffset
|
|
},
|
|
{ // Quality A
|
|
"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": 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": {
|
|
"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
|
|
{ "iso": [ 1600, 3200, 6400 ], "levels": 4060 } // exif 3967, histogram peak 4095 and distribution down to 4070
|
|
]
|
|
}
|
|
},
|
|
{ // 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": {
|
|
"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": {
|
|
"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
|
|
},
|
|
{ // Quality A, Replicated from rawimage.cc
|
|
"make_model": "Panasonic DMC-G5",
|
|
"dcraw_matrix": [ 7122,-2092,-419,-4643,11769,3283,-1363,2413,5944 ], // RT
|
|
"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
|
|
},
|
|
{ // 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": {
|
|
"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": {
|
|
"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
|
|
},
|
|
{ // 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": {
|
|
"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
|
|
},
|
|
{ // 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": {
|
|
"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": {
|
|
"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": {
|
|
"black": 16, // 16 is BL offstet. Dcraw/RT read the base black from exif and calculates total BL = BLbase+BLoffset
|
|
"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
|
|
]
|
|
}
|
|
},
|
|
|
|
{ // 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": {
|
|
"black": 16, // 16 is BL offstet. Dcraw/RT read the base black from exif and calculates total BL = BLbase+BLoffset
|
|
"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
|
|
]
|
|
}
|
|
},
|
|
|
|
{ // Quality A,
|
|
"make_model": "Panasonic DMC-GM1",
|
|
"dcraw_matrix": [ 6770,-1895,-744,-5232,13145,2303,-1664,2691,5703 ],
|
|
"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": {
|
|
"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", "Panasonic DMC-GF7" ],
|
|
"dcraw_matrix": [ 7610,-2780,-576,-4614,12195,2733,-1375,2393,6490 ],
|
|
"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
|
|
"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": {
|
|
"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
|
|
"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": {
|
|
"white": [
|
|
{ "iso": 100, "levels": 16310 }, // 16317 or 16350
|
|
{ "iso": 200, "levels": 16120 }, // 16254 or 16125
|
|
{ "iso": 400, "levels": 15860 }, // 16125 or 15868
|
|
{ "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, 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",
|
|
"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, 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": {
|
|
"white": [
|
|
{ "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 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": 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
|
|
"make_model": "Sigma SD1",
|
|
"dcraw_matrix": [ 5270,42,-814,3737,5506,124,1112,9714,4510 ], // experimental from icm 1.04477,-0.74838,1.01617, -0.54028,2.52690,-3.83257, 0.54869,-0.69556,3.73746
|
|
"ranges": { "black": 16, "white": 4070 },// BL is 16 or 31, should be measured at the horizontal black stripe at the top
|
|
"raw_crop": [ 12, 52, -110, -8 ]
|
|
},
|
|
{ // Quality C, correction for frame width, color matrix investigated ..
|
|
"make_model": "Sigma SD1 Merrill",
|
|
"dcraw_matrix": [ 7211,-1577,-769,4996,3428,440,2717,7117,4699 ], // experimental inverted icc cloudy8140 d65
|
|
// "dcraw_matrix": [ 5666,139,-892,3780,5428,270,1366,9757,4526 ], // experimental inverted icc sunny8161
|
|
// "dcraw_matrix": [ 10288,-2449,-1718,8976,1868,-1608,7011,5039,-249 ], // experimental inverted icc tungsten8130 wp11
|
|
// "dcraw_matrix": [ 5864,679,-1491,2963,7635,-919,-640,13738,2790 ], // experimental inverted icc sunny8160
|
|
// "dcraw_matrix": [ 14032,-2231,-1016,-5263,14816,170,-112,183,9113 ], // hardcoded
|
|
"ranges": { "black": 16, "white": 4070 }, // BL is 16 or 31, should be measured at the horizontal black stripe at the top
|
|
"raw_crop": [ 12, 52, -110, -8 ] // for small size all numbers/2
|
|
},
|
|
{ // Quality C, correction for frame width, color matrix guessed ..
|
|
"make_model": [ "Sigma DP1 Merrill", "Sigma DP2 Merrill", "Sigma DP3 Merrill" ],
|
|
"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
|
|
"dcraw_matrix": [ 5991,-1456,-455,-4764,12135,2980,-707,1425,6701 ],
|
|
"ranges": { "black": 512, "white": 16300 }
|
|
},
|
|
|
|
{ // 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 ],
|
|
"ranges": { "black": 512, "white": 16300 }
|
|
},
|
|
{ // 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 ],
|
|
"ranges": { "black": 512, "white": 16300 }
|
|
},
|
|
|
|
{ // Quality A, correction for frame width
|
|
"make_model": [ "Sony ILCE-3000", "Sony ILCE-3500", "Sony ILCE-5000", "Sony ILCE-QX1" ],
|
|
"dcraw_matrix": [ 5991,-1456,-455,-4764,12135,2980,-707,1425,6701 ], // adobe dcp d65
|
|
"ranges": { "black": 512, "white": 16300 },
|
|
"raw_crop": [ 0, 0, 5476, 3656 ]
|
|
},
|
|
{ // 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 ],
|
|
"ranges": { "black": 512, "white": 16300 }
|
|
},
|
|
{ // Quality A
|
|
"make_model": "Sony ILCE-6000",
|
|
"dcraw_matrix": [ 5991,-1456,-455,-4764,12135,2980,-707,1425,6701 ], // adobe dcp d65
|
|
"raw_crop": [ 0, 0, 6024, 4024 ],
|
|
"ranges": { "black": 512, "white": 16300 }
|
|
},
|
|
{ // Quality A
|
|
"make_model": "Sony ILCE-7M2",
|
|
"dcraw_matrix": [ 5271,-712,-347,-6153,13653,2763,-1601,2366,7242 ], // DNGv8.7.1
|
|
"ranges": { "black": 512, "white": 16300 }
|
|
},
|
|
{ // Quality A, correction for frame width
|
|
"make_model": "Sony ILCE-7R",
|
|
"dcraw_matrix": [ 4913,-541,-202,-6130,13513,2906,-1564,2151,7183 ],
|
|
"raw_crop": [ 0, 0, 7372, 4920 ],
|
|
"ranges": { "black": 512, "white": 16300 }
|
|
},
|
|
{ // Quality B, correction for frame width
|
|
"make_model": "Sony ILCE-7S",
|
|
"dcraw_matrix": [ 5838,-1430,-246,-3497,11477,2297,-748,1885,5778 ], // DNG D65
|
|
"raw_crop": [ 0, 0, 4254, 2848 ],
|
|
"ranges": { "black": 512, "white": 16300 }
|
|
},
|
|
{ // Quality A,
|
|
"make_model": "Sony DSC-RX100M3",
|
|
"dcraw_matrix": [ 6596,-2079,-562,-4782,13016,1933,-970,1581,5181 ], // DNG D65
|
|
"ranges": { "black": 800, "white": 16300 }
|
|
},
|
|
|
|
/* Phase One: color matrices borrowed from Adobe DNG Converter, black/white levels tested on actual raw files.
|
|
Note: the dcraw decoder makes black level subtraction and various corrections to the raw values based on
|
|
metadata embedded in the IIQ format, so what we see here is the result after that, ie black level is 0,
|
|
and white level is typically at or close to 65535. However sensors vary a bit and can be noisy around clip
|
|
so we cut away 0.05 stop from top down to 63300 to be a bit conservative. */
|
|
{ // quality A
|
|
"make_model": [ "Phase One P40+", "Phase One IQ140", "Leaf Credo 40", "Phase One P65+", "Phase One IQ160", "Leaf Credo 60", "Phase One IQ260" ],
|
|
"dcraw_matrix": [ 8035,435,-962,-6001,13872,2320,-1159,3065,5434 ],
|
|
"ranges": { "black": 0, "white": 63300 }
|
|
},
|
|
{ // quality A
|
|
"make_model": [ "Phase One IQ180", "Leaf Credo 80", "Phase One IQ280" ],
|
|
"dcraw_matrix": [ 6294,686,-712,-5435,13417,2211,-1006,2435,5042 ],
|
|
"ranges": { "black": 0, "white": 63300 }
|
|
},
|
|
{ // quality A
|
|
"make_model": [ "Phase One P20", "Phase One P20+", "Phase One P25", "Phase One P25+" ],
|
|
"dcraw_matrix": [ 2905,732,-237,-8135,16626,1476,-3038,4253,7517 ],
|
|
"ranges": { "black": 0, "white": 63300 }
|
|
},
|
|
{ // quality A
|
|
"make_model": [ "Phase One P21", "Phase One P21+" ],
|
|
"dcraw_matrix": [ 6516,-2050,-507,-8217,16703,1479,-3492,4741,8489 ],
|
|
"ranges": { "black": 0, "white": 63300 }
|
|
},
|
|
{ // quality A
|
|
"make_model": [ "Phase One P30", "Phase One P30+"],
|
|
"dcraw_matrix": [ 4516,-244,-36,-7020,14976,2174,-3206,4670,7087 ],
|
|
"ranges": { "black": 0, "white": 63300 }
|
|
},
|
|
{ // quality A
|
|
"make_model": [ "Phase One P45", "Phase One P45+" ],
|
|
"dcraw_matrix": [ 5053,-24,-117,-5685,14077,1703,-2619,4491,5850 ],
|
|
"ranges": { "black": 0, "white": 63300 }
|
|
},
|
|
{ // quality X, matrix taken from H5D-50c which has the same sensor, probably with the same CFA. Color looks good to the eye with files tested.
|
|
"make_model": [ "Phase One IQ250", "Leaf Credo 50" ],
|
|
"dcraw_matrix": [ 4932, -835, 141, -4878, 11868, 3437, -1138, 1961, 7067 ],
|
|
"ranges": { "black": 0, "white": 64400 } // CMOS sensor, we dare to set white level a bit higher than for the more varying Phase One CCDs
|
|
},
|
|
|
|
{ // Quality A for tested CFV, the other models have the same sensor (16 megapixel square sensor)
|
|
"make_model": [ "Hasselblad V96C", "Hasselblad CFV", "Hasselblad CFV-II" ],
|
|
"dcraw_matrix": [ 8519, -3260, -280, -5081, 13459, 1738, -1449, 2960, 7809 ] // borrowed from Adobe's DNG converter
|
|
},
|
|
{ // Quality A for tested CF-22, the other models have the same sensor
|
|
"make_model": [ "Hasselblad CF-22", "Hasselblad CF-22MS", "Hasselblad CFH-22", "Hasselblad H3D-22", "Hasselblad H3DII-22" ],
|
|
"dcraw_matrix": [ 8519, -3260, -280, -5081, 13459, 1738, -1449, 2960, 7809 ] // borrowed from Adobe's DNG converter
|
|
},
|
|
{ // Quality A for tested H3D-31, the other models have the same sensor
|
|
"make_model": [ "Hasselblad H3D-31", "Hasselblad H3DII-31", "Hasselblad H4D-31" ],
|
|
"dcraw_matrix": [ 5458, -1448, 145, -4479, 12338, 2401, -1659, 3086, 6710 ] // borrowed from Adobe's DNG converter
|
|
},
|
|
{ // Quality A for tested CFV-39, the other models have the same sensor. Small filter differences may exist so some might do better with a slightly different profile
|
|
"make_model": [ "Hasselblad CF-39", "Hasselblad CF-39MS", "Hasselblad CFH-39", "Hasselblad CFV-39", "Hasselblad H3D-39", "Hasselblad H3DII-39", "Hasselblad H3DII-39MS" ],
|
|
"dcraw_matrix": [ 3857, 452, -46, -6008, 14477, 1596, -2627, 4481, 5718 ] // borrowed from Adobe's DNG converter
|
|
},
|
|
{ // Quality A for tested CFV-50, the other models have the same sensor
|
|
"make_model": [ "Hasselblad CFV-50", "Hasselblad H3DII-50", "Hasselblad H3DII-50MS", "Hasselblad H4D-50", "Hasselblad H4D-50MS", "Hasselblad H4D-200MS", "Hasselblad H5D-50", "Hasselblad H5D-50MS", "Hasselblad H5D-200MS" ],
|
|
"dcraw_matrix": [ 5656, -659, -346, -3923, 12306, 1791, -1602, 3509, 5442 ] // borrowed from Adobe's DNG converter
|
|
},
|
|
{ // Quality A
|
|
"make_model": [ "Hasselblad H4D-40", "Hasselblad H5D-40" ],
|
|
"dcraw_matrix": [ 6159, -1402, -177, -5439, 12762, 3007, -955, 2200, 7104 ] // borrowed from Adobe's DNG converter
|
|
},
|
|
{ // Quality A for tested H4D-60, the other models have the same sensor
|
|
"make_model": [ "Hasselblad H4D-60", "Hasselblad H5D-60" ],
|
|
"dcraw_matrix": [ 9662, -684, -279, -4903, 12293, 2950, -344, 1669, 6024 ] // borrowed from Adobe's DNG converter
|
|
},
|
|
{ // Quality A
|
|
"make_model": [ "Hasselblad H5D-50c", "Hasselblad CFV-50c" ],
|
|
"dcraw_matrix": [ 4932, -835, 141, -4878, 11868, 3437, -1138, 1961, 7067 ]
|
|
},
|
|
|
|
// dummy test entry to test the parser and show the format with all entries active
|
|
{
|
|
"make_model": "DummyMake DummyModel",
|
|
"dcraw_matrix": [ 7530,-1942,-255,-4318,11390,3362,-926,1694,7649 ],
|
|
"raw_crop": [ 10, 20, 4000, 3000 ],
|
|
"masked_areas": [ 51, 2, 3804, 156, 51, 5794, 3804, 5792 ],
|
|
"ranges": {
|
|
"aperture_scaling": [
|
|
{ "aperture": 1.2, "scale_factor": 1.1 },
|
|
{ "aperture": 1.4, "scale_factor": 1.08 }
|
|
],
|
|
"black": [
|
|
{ "iso": 100 , "levels": [ 10, 20, 10, 20 ] },
|
|
{ "iso": [100, 200] , "levels": [ 30, 40, 30 ] },
|
|
{ "iso": 3200, "levels": [ 50, 60, 50, 60 ] }
|
|
],
|
|
"white": [
|
|
{ "iso": 100 , "levels": [ 10000, 11000, 10000, 11000 ] },
|
|
{ "iso": 3200, "levels": [ 11000, 11000, 10000, 11000 ] }
|
|
],
|
|
"white_max": 16383
|
|
}
|
|
}
|
|
]}
|