1) You need to compile rawspeed as a library (this is not a problem, just make library from object files)
2) You may need to patch RawSpeed using provided patches (in LibRaw's rawspeed folder)
to provide Dll export (for Windows/DLL) and rawspeed_get_number_of_processor_cores() call
3) You may used qmake .pro file (provided with LibRaw's patches) to build RawSpeed.a/.dll
Thanks for doing this! Good job, both Alexey and LibRaw team!
This is great news, but Apple still hasn't added support for compressed .RAF files. How do I incorporate this support into Apple's raw.plist? Or is that not possible, and I have to rely on third party apps to support compressed .RAF files?
Hi Alex,
We're preforming some noise suppression prior to passing the raw buffer into the demosaicing chain, so yes, we have raw pixel values in the neighborhood of 0.
Falka, As the guy who sat in the office next to yours, i figured i'd come on and say thank you for your help this summer!
On a more technical note, taking a closer look at the imagery generated utilizing DHT, we found some artifacts in near-nodata (CFA ~= 0) regions of an image (or if you just hack off the bottom end prior to passing it into DHT). I believe these are just integer wrap-arounds.
lexa, we'll be sure to look into compiling with OpenMP!
I am very sorry if you felt weary of our conversations. As I said, I have difficulty in clarifying dcraw’s raw processing, and its key seems to be scaling at last. Given scaling is the setting of white level as you said, how are the values between black and white levels then converted to the 16 working bit ? Is there any rule of the conversion as adobe describes in the specification of DNG ? https://wwwimages.adobe.com/content/dam/Adobe/en/products/photoshop/pdfs...
Hi lexa
>dcraw's scale_colors() does
> - black subtraction
> - white balance
> - and data scaling (looks like it is 'setting of white level' in your terms?)
>in one action.
In your wording, scaling of dcraw looks like "mapping DN values so as to fit to the 16 working bit". Is it ?
If you think it strange, lets join them together in the name of black level application. For me, setting was fixing and a state before implementation. In this regard, I had forgotten to note another element of white level implementation.
>I suppose that scaling consists of 5 elements: 1) linearization of curved values as far as an irreversible raw file is concerned, 2)setting of black level, 3) setting of white level, 4) subtraction of black level values from each pixel, and 5) mapping modified values to a logical range of 0-1.
In the case of dcraw, 5th element is not appropriate.
Thanks. Finally, I want to clarify the key reason why an image derived from -D -W looks so dark. Because the command does not scale DNs. Yes. But which element of scaling enables conversion (boost) of 12 or 14 bit DNs so as to fit to the 16 working bit ?
Sorry for ambiguity. I mean by "maps" " places without changing values". For example, 16384th DN of a 14 bit raw is placed without change to 16384th of 16bit by -D. Is it ok?
Slightly more details are here: https://github.com/LibRaw/LibRaw/blob/master/README.RawSpeed.txt
1) You need to compile rawspeed as a library (this is not a problem, just make library from object files)
2) You may need to patch RawSpeed using provided patches (in LibRaw's rawspeed folder)
to provide Dll export (for Windows/DLL) and rawspeed_get_number_of_processor_cores() call
3) You may used qmake .pro file (provided with LibRaw's patches) to build RawSpeed.a/.dll
Thank you.
libraw.h does not contains string 'CreateLibraw', may be it something C# specific?
There are a lot of libraw_set_... calls in C api, that calls will set params in imgdata.params array
I do not think it is possible. So, only 3rd party apps may help (like our FastRawViewer, for example)
Thanks for doing this! Good job, both Alexey and LibRaw team!
This is great news, but Apple still hasn't added support for compressed .RAF files. How do I incorporate this support into Apple's raw.plist? Or is that not possible, and I have to rely on third party apps to support compressed .RAF files?
Thanks in advance.
David
Hi Alex,
We're preforming some noise suppression prior to passing the raw buffer into the demosaicing chain, so yes, we have raw pixel values in the neighborhood of 0.
sorry, could not understand what is 'CFA ~=' (CFA is color filter array, it is constant over the image). Is it really 'data values ~= 0' ?
Falka, As the guy who sat in the office next to yours, i figured i'd come on and say thank you for your help this summer!
On a more technical note, taking a closer look at the imagery generated utilizing DHT, we found some artifacts in near-nodata (CFA ~= 0) regions of an image (or if you just hack off the bottom end prior to passing it into DHT). I believe these are just integer wrap-arounds.
lexa, we'll be sure to look into compiling with OpenMP!
Thank you!
Sorry, API documentation is incomplete for COLOR() call and needs to be updated.
the row,col parameters you feed to COLOR() call should be relative to image visible area, not full sensor area.
So, the intended use is (pseudocode, there is no raw_image call!)
For most cameras this does not matter because top_margin,left_margin are multiple of 2, but both 60D and 1Ds2 use odd top_margin.
Thanks for your response. I'm gonna dig it for a while, though I am not a programmer but only a user. Best,
dcraw.c is self-documented (in computer code). The function you need to analyze is scale_colors()
I am very sorry if you felt weary of our conversations. As I said, I have difficulty in clarifying dcraw’s raw processing, and its key seems to be scaling at last. Given scaling is the setting of white level as you said, how are the values between black and white levels then converted to the 16 working bit ? Is there any rule of the conversion as adobe describes in the specification of DNG ? https://wwwimages.adobe.com/content/dam/Adobe/en/products/photoshop/pdfs...
Also, dcraw.c is very well documented (in C language :) and annotated (see links above).
It is very hard to translate from "C" to human language if all terms are not very well defined before.
Sorry, I'm really tired of this discussion.
Yes. Or no. I do not know is my 'data scaling' is the same of your 'mapping to fit'. The problem is with the terms, as usual.
Hi lexa
>dcraw's scale_colors() does
> - black subtraction
> - white balance
> - and data scaling (looks like it is 'setting of white level' in your terms?)
>in one action.
In your wording, scaling of dcraw looks like "mapping DN values so as to fit to the 16 working bit". Is it ?
Hope, this is my last answer in this thread.
dcraw's scale_colors() does
- black subtraction
- white balance
- and data scaling (looks like it is 'setting of white level' in your terms?)
in one action.
If you think it strange, lets join them together in the name of black level application. For me, setting was fixing and a state before implementation. In this regard, I had forgotten to note another element of white level implementation.
Still unable to understand what is 'setting of black level' if 'subtraction of black level values' is a separate step.
I put it at the beginning of my question:
>I suppose that scaling consists of 5 elements: 1) linearization of curved values as far as an irreversible raw file is concerned, 2)setting of black level, 3) setting of white level, 4) subtraction of black level values from each pixel, and 5) mapping modified values to a logical range of 0-1.
In the case of dcraw, 5th element is not appropriate.
I did not understand the question (again). What 'element of scaling' is?
Thanks. Finally, I want to clarify the key reason why an image derived from -D -W looks so dark. Because the command does not scale DNs. Yes. But which element of scaling enables conversion (boost) of 12 or 14 bit DNs so as to fit to the 16 working bit ?
Yes, values are (mostly) unchanged (excluding PhaseOne data correction and, may be, something like it)
Sorry for ambiguity. I mean by "maps" " places without changing values". For example, 16384th DN of a 14 bit raw is placed without change to 16384th of 16bit by -D. Is it ok?
Pages