I understand that fallback to AHD is automatic when 'libraw can not do otherwise'.
But my question was about the value stored by user_qual after dcraw_process.
I've made this test: set user_qual to 18 (to be sure to activate the fallback to AHD), call of dcraw_process, and then display the value of user_qual which were still 18. So, is there a solution to know if the fallback has actually happened?
Yes, fallback to AHD (user_qual=3) is explicitly stated in docs:
===
Values 5-9 are useful only if "LibRaw demosaic pack GPL2" compiled in (see README.demosaic-packs in your distribution for details). Value 10 is useful only if LibRaw compiled with "LibRaw demosaic pack GPL3". If some interpolation method is unsupported because LibRaw compiled without corresponding demosaic pack, AHD interpolation will be used without any notice.
=== http://www.libraw.org/docs/API-datastruct-eng.html#libraw_output_params_t
Right! I've made my tests too quickly.
Is user_qual set to 3 by libraw if the user set it to 9 for example (without additional demoniac packs)?
Anyway, it is now clear. Thank you very much for answering.
If you build libraw *without* additional 'demosaic packs', then interpolations from 5 to 10 are not compiled in (and library will fallback to user_qual=3, AHD interpolation)
OpenMP accelerated are:
ppg interpolation (user_qual = 2) and AHD (user_qual=3)
Yes, 'model 1' means 'iProcessor.imgdata.params.user_qual = 1' in my question.
Thank you for replying, it's good to know (I didn't find this information in the documentation).
After some rapid tests, it appears indeed that 'only' the interpolations 5 to 9 are OpenMP accelerated.
Thank you again!
Hi, I just found out I forgot to respond, so I'm gonna do it now and try to remember where the problem was and what was the solution. :)
In the end it was (as it usually is with the stuff you're learning to use) my own fault (that much I remeber).
I'm not sure if it was because I was setting the values of gama etc. before LibRaw::unpack() or had error in build settings causing the new code to be built elsewhere and was always running the old project. (Or maybe both, so many things happen when you're trying to figure something out :))
Well, both would be nice to know about. The situation has changed for me since asking this question :) Right now color profile could help me a bit more.
Calculated temperature *will* differ from camera because camera and LibRaw uses different color profile (because color profile is used for xy-calculation)
The only way to check results is to compare to Adobe software (Lightroom or Camera Raw) with same color profiles (so, for example, DNG file with built-in camera matrices: ACR/Lr uses embedded color datain DNG case and LibRaw may be forced to do the same)
qDslrDashboard is a cross platform application (Android, iOS, Linux, OSX, Windows) for controlling DSLR (Nikon, Canon, Sony) and is using LibRaw for displaying RAW images downloaded from DSLR.
My Win32 binary works on it as well (although the color matrix does seem a bit odd, it loads). It's the Mac one that crashes. I'll see what I can do on the GitHub -- didn't see the link to it on the site.
Strangely enough, but LibRaw 0.16 (Win32 binary) handles this file OK.
FastRawViewer uses 'master branch' (available on GitHub: https://github.com/LibRaw/LibRaw)
This branch to be released as LibRaw 0.17 within month or less.
After years of hacking bits out of dcraw myself, I adopted LibRAW quite some time ago and haven't looked back. The software is designed for astrophotography and is called "Nebulosity 3" -- http://www.stark-labs.com/nebulosity.html
Hi! I've been looking for such a tool as well. Lately digikam makers pulled together the DNG writer for their solution. However, you can very well use the HDRMerge tool and it's command-line interface to achieve good quality. I did some testing, and to me it looks like the DNGs produced with this combo are faster in Lightroom to load than those produced by Adobe.
As to my own motivation, I'm interested in getting the best possible results out of Sony A7, and currently the best results sharpness wise still come from TIFF files produced by ImageDataConverter. I hope the best result at some point will come from LibRaw. I will be switching to DNGs by LibRaw for performance now.
LibRaw do not calculates raw data histogram.
So, you need to
1) unpack raw values using LibRaw::unpack()
2) (if needed) subtract black level (bias)
3) calculate histogram by you own code
I understand that fallback to AHD is automatic when 'libraw can not do otherwise'.
But my question was about the value stored by user_qual after dcraw_process.
I've made this test: set user_qual to 18 (to be sure to activate the fallback to AHD), call of dcraw_process, and then display the value of user_qual which were still 18. So, is there a solution to know if the fallback has actually happened?
LibRaw's dcraw_process() call is mostly identical to dcraw's processing.
Highlight recovery is applied after white balance and demosaic
Yes, fallback to AHD (user_qual=3) is explicitly stated in docs:
===
Values 5-9 are useful only if "LibRaw demosaic pack GPL2" compiled in (see README.demosaic-packs in your distribution for details). Value 10 is useful only if LibRaw compiled with "LibRaw demosaic pack GPL3". If some interpolation method is unsupported because LibRaw compiled without corresponding demosaic pack, AHD interpolation will be used without any notice.
===
http://www.libraw.org/docs/API-datastruct-eng.html#libraw_output_params_t
Right! I've made my tests too quickly.
Is user_qual set to 3 by libraw if the user set it to 9 for example (without additional demoniac packs)?
Anyway, it is now clear. Thank you very much for answering.
If you build libraw *without* additional 'demosaic packs', then interpolations from 5 to 10 are not compiled in (and library will fallback to user_qual=3, AHD interpolation)
OpenMP accelerated are:
ppg interpolation (user_qual = 2) and AHD (user_qual=3)
Yes, 'model 1' means 'iProcessor.imgdata.params.user_qual = 1' in my question.
Thank you for replying, it's good to know (I didn't find this information in the documentation).
After some rapid tests, it appears indeed that 'only' the interpolations 5 to 9 are OpenMP accelerated.
Thank you again!
'model 1' is 'VNG interpolation', right? This interpolation is not OpenMP accelerated in LibRaw.
Libraw contains several demosaic methods. Which one do you use?
The camera to sRGB matrix is in imgdata.color.rgb_cam[3][4] array.
This is 'device link'profile, you may multiply this matrix to another one (e.g. srgb to Adobe RGB) to get different output color space.
Hi, I just found out I forgot to respond, so I'm gonna do it now and try to remember where the problem was and what was the solution. :)
In the end it was (as it usually is with the stuff you're learning to use) my own fault (that much I remeber).
I'm not sure if it was because I was setting the values of gama etc. before LibRaw::unpack() or had error in build settings causing the new code to be built elsewhere and was always running the old project. (Or maybe both, so many things happen when you're trying to figure something out :))
Well, both would be nice to know about. The situation has changed for me since asking this question :) Right now color profile could help me a bit more.
Calculated temperature *will* differ from camera because camera and LibRaw uses different color profile (because color profile is used for xy-calculation)
The only way to check results is to compare to Adobe software (Lightroom or Camera Raw) with same color profiles (so, for example, DNG file with built-in camera matrices: ACR/Lr uses embedded color datain DNG case and LibRaw may be forced to do the same)
Thank for reply.
I looked to DNG SDK but I am not able move cam_mul[] to DNG SDK required parameters dng_xy_coord. Calculated temperature is different than on camera.
What is right way how convert cam_mul to xy or XYZ?
Thank you
Ladislav
You may use code from Adobe DNG SDK sources.
For bayer image, use imgdata.rawdata.raw_image array to access unprocessed values decoded from raw file
Hi, I am working on similar function. For me will be nice RGB values.
Thanks
qDslrDashboard is a cross platform application (Android, iOS, Linux, OSX, Windows) for controlling DSLR (Nikon, Canon, Sony) and is using LibRaw for displaying RAW images downloaded from DSLR.
Glad to hear.
OK - false alarm. Build settings on one of the Macs was causing this... Sorry!
Craig
My Win32 binary works on it as well (although the color matrix does seem a bit odd, it loads). It's the Mac one that crashes. I'll see what I can do on the GitHub -- didn't see the link to it on the site.
Craig
Strangely enough, but LibRaw 0.16 (Win32 binary) handles this file OK.
FastRawViewer uses 'master branch' (available on GitHub: https://github.com/LibRaw/LibRaw)
This branch to be released as LibRaw 0.17 within month or less.
After years of hacking bits out of dcraw myself, I adopted LibRAW quite some time ago and haven't looked back. The software is designed for astrophotography and is called "Nebulosity 3" -- http://www.stark-labs.com/nebulosity.html
http://www.stark-labs.com/depot/neb3_color256x256.png
Craig
Do you need 'color profile' data, or image pixels in RGB?
Hi! I've been looking for such a tool as well. Lately digikam makers pulled together the DNG writer for their solution. However, you can very well use the HDRMerge tool and it's command-line interface to achieve good quality. I did some testing, and to me it looks like the DNGs produced with this combo are faster in Lightroom to load than those produced by Adobe.
http://jcelaya.github.io/hdrmerge/
http://jcelaya.github.io/hdrmerge/documentation/2014/07/11/user-manual.html
As to my own motivation, I'm interested in getting the best possible results out of Sony A7, and currently the best results sharpness wise still come from TIFF files produced by ImageDataConverter. I hope the best result at some point will come from LibRaw. I will be switching to DNGs by LibRaw for performance now.
LibRaw do not calculates raw data histogram.
So, you need to
1) unpack raw values using LibRaw::unpack()
2) (if needed) subtract black level (bias)
3) calculate histogram by you own code
Pages