Add new comment

Inconsistent black and white values

I noticed a few unexpected values for the black, maximum and linear_max fields when I was working with a collection of files in my repo.

1. For some files read from an Olympus XZ-1, linear_max values were lower than black values. linear_max reported values of {10, 10, 10, 10} but black was reported as {67, 67, 67, 67}.

2. For many files, when I do:
// memcpy the CFA data from rp.imgdata.rawdata.raw_image into my buffer

I expected the minimum values of the data in my buffer to be no less than value in black + cblack but I do see some entries that dont satisfy this. Does libraw do any additional processing on the CFA data at unpack()?

Also, before I perform my processing, I am trying to scale the CFA data into a full uint16 range. Hence, I require accurate values for minimum and maximum to use to perform this scaling. Not sure if I should use maximum or data_maximum or linear_max as the max-value.

Would appreciate your help.