There are certainly some things we want a reader to do automatically before the 
data is passed through OIIO to the calling app -- uncompress, de-bayerization, 
making equal resolution for all color channels, converting to some kind of 
RGB-based color space, converting to one of the standard (whole-byte) data 
types, etc.

But given those constraints, the general approach in OIIO is usually to get as 
close to raw data as possible. So if libraw is capable of giving us 
photometrically linear and relatively unprocessed data without losing 
precision, that's what we should be asking for and giving to the app. At least 
by default -- it's fine to have a "config" parameter that requests other 
functionality that libraw is capable of, such as the auto_bright or gamma 
correction. But I don't think that should be the default.

Is Mark or anybody else from DNeg reading this? Would that be ok for you if we 
changed the default, and you would use the configuration options if you had 
been intentionally using auto-bright all along? Or are we overlooking something?

It would probably be a good thing for somebody to read the libraw docs in 
detail, and make sure that we have ALL the defaults set sensibly, with 'config' 
overrides for any particularly interesting functionality that it can do upon 
reading.


> On Sep 10, 2016, at 7:45 AM, Haarm-Pieter Duiker <l...@duikerresearch.com> 
> wrote:
> 
> Hello,
> 
> I've been running into an issue with the OIIO libRaw support and wanted to 
> see if anyone else had run into the same problem and found a workaround.
> 
> The issue
> Raw files read and developed by OIIO using libRaw are automatically 
> brightened.
> 
> The potential cause tl;dr
> The RawInput::open method doesn't set the 'no_auto_bright' flag
> https://github.com/OpenImageIO/oiio/blob/master/src/raw.imageio/rawinput.cpp#L130
>  
> <https://github.com/OpenImageIO/oiio/blob/master/src/raw.imageio/rawinput.cpp#L130>
> like dcraw does when using either the '-4' flag or the '-W' flag.
> https://github.com/LibRaw/LibRaw/blob/master/samples/dcraw_emu.cpp#L337 
> <https://github.com/LibRaw/LibRaw/blob/master/samples/dcraw_emu.cpp#L337>
> https://www.cybercom.net/~dcoffin/dcraw/dcraw.c 
> <https://www.cybercom.net/~dcoffin/dcraw/dcraw.c> - line 9963 or 9965
> 
> Context
> If you use dcraw, or libRaw's dcraw_emu, to convert raw images to Tiff, and 
> you want to produce linear 16 bit data for your exposures, the '-4' flag is 
> often used. That is a shorthand for the flags '-6 -W -g 1 1'. '-6' set up 16 
> bit data processing. '-g 1 1' sets the gammas to 1.0, 1.0. '-W' turns off 
> dcraw's 'auto_bright' functionality. The last flag is especially important if 
> you want to merge exposures or otherwise treat your data as a more exact 
> measurement of the world.
> 
> Suggestion
> Add the line:
>     m_processor.imgdata.params.no_auto_bright = 1;
> around line 137 of rawinput.cpp
> https://github.com/OpenImageIO/oiio/blob/master/src/raw.imageio/rawinput.cpp#L137
>  
> <https://github.com/OpenImageIO/oiio/blob/master/src/raw.imageio/rawinput.cpp#L137>
> 
> Open question
> For general OIIO usage, is there a good reason to be able to turn 
> 'auto_bright' on?
> 
> Will be testing that out this weekend but figured I'd see if there was an 
> alternate approach to solving this problem.
> 
> Thanks in advance for your help,
> HP
> 
> 
> 
> 
> _______________________________________________
> Oiio-dev mailing list
> Oiio-dev@lists.openimageio.org
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

--
Larry Gritz
l...@larrygritz.com


_______________________________________________
Oiio-dev mailing list
Oiio-dev@lists.openimageio.org
http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

Reply via email to