I really like what you're doing here. I'm one who feels there should be at least one profile that provides an exact match to what the camera makers put out, and it seems to me you've accomplished just that. Bravo!
What does it take to make a Camera Raw profile for any given camera that matches so well? Do you just need to feed your software a raw file and an already converted reference image (e.g., by the camera maker's software) with all the colors in it?
Well, my point was that v3 beta profile is good enough (although calibration procedure can be slightly improved). On several D700 photos I had (thanks menno1000 for the samples, because I don't have D700), it's very hard to see any difference between results from NX2 and ACR using whether v3 beta or my profile
There are also slight differences between jpeg from D700 and from NX2. It's the same with my Canon 400D - I compared some jpegs from the camera with results from Raw Image Task and Digital Photo Pro and all versions are slightly diferent from each other
The main reason why I don't like older camera profiles is because of some issues in highlights (already discussed here), but this was addressed with v2/v3 profiles. But doing similar test on 400D shown me that there are also some highlight issues with in-camera processing (also addressed with new models). It's quite complex stuff
Also, in case of Canon, there are considerable differences between sRGB profiles and Adobe RGB profiles in DPP software (even well inside sRGB gamut), that is also a reason for some mismatches between results from ACR and DPP when using sRGB, because there are no separate versions of camera profiles for these color spaces. In case of NX2, these differences are much smaller
In short, I don't think we need an absoulte match with manufacturer's profiles and I completely agree with Jeff's opinion about that
About calibrating procedure, it consists of making testing raw file (with a program) and developping it by the camera (in case of Canon compacts) or NX2 or DPP (in case of DSLR-s). After that, I calculate a profile on the differences between input and output. Since my profile in most parts looks very similar to v3 beta, I suppose that Adobe team used very similar approach. However, it's quite tricky to do it right, especially with the compacts, where I have relatively low quality data to play with (10 bit raw and 8 bit compressed jpeg output), so it took a lots of experimenting.
Thanks for the profile, Vit. Unfortunately, this profile seems to clip more blacks for me than the Adobe v3 profile with blacks = 0. Any ideas?
Try thinking about it this way:
Blacks = 5 actually clips the shadows. For that reason, tone curve in v3 beta (and other profiles from Adobe) is slightly raised to compensate. But very dark shadows (below RGB level about 10) are still too dark and the darkest tones are clipped
Blacks = 0 don't clip shadows (according to dng sdk source code) and tone curve in this profile is calculated to that. Of course, if you set blacks to 5, shadows will be too dark (darker than with v3 beta with blacks = 5; they will be also darker with blacks=0 than with v3 beta, as you noticed, because v3 is calibrated to blacks = 5)
Here is similar comparison for the bottom part of gray scale (levels 0-85) with default settings for each profile (including blacks)
Top chart - grayscale developped by NX2
middle chart - delta frame with v3 beta showing amount of mismatch in the far bottom part
bottom chart - delta frame with this profile showing amount of mismatch in the far bottom part
It's evident that tone curve in this profile is slightly better matched to NX2 tone curve. But these are really extremly dark tones and this difference is quite unimportant
Hi Vit, thank you for pursuing this and sharing your results. Nice work!
Out of curiosity, what did you do for the V == 0 case? Did you sample many dark (low V) points, then apply some (weighted) averaging to estimate the appropriate values for the bottom plane of the HSV cylinder?
Here is the last version of the chart I used for calibrating D700
It's a 16 bit, linear, whitebalanced representation of actual chart in raw color space, with marked sampling areas (I had to do this visualization when optimising the procedure for compacts, because of low quality data). In this case, I used 12 bit uncompressed raw. Size and a method of sampling is probably the reason of slightly more accurate calibration than v3 beta overall. For D700 and 400D, I didn't perform any additional LUT smoothing, but performed some smoothing for TC, which is sampled with 1024 points and then resampled to smaller number of points.
For V==0 (value segment 0 in LUT), I sampled points at V = 0.4 / (ValueSegments-1). This position is just because I could't go much lower on jpegs from compacts. But, on last version of the code, I came to conclusion that I'm not interested in determining actual LUT values for the very bottom of HSV cylinder, which is black, but I'm interested that I have such values in LUT that LookupTableInterpolate procedure during raw development returns correct values for area around bottom sampled points (optimal position for these points can be slightly higher or lower to minimise average error in the bottom part). After calculating all LUT points, I recalculated SatScale and ValScale for bottom points of LUT to get this. I didn't find very important to recalculate HueShift, so I left it as is.
If you are interested in some additional details, contact me on PM and I'll explain, since this very technical stuff won't be interesting for other members
Thanks for your work! I know few people who love to do pixel peeping and this profile would be of a good use to explain that LR is capable of everything!)