[sane-devel] EPSON 3490, calibration and raw data

Oliver Schwartz Oliver.Schwartz at gmx.de
Thu Feb 16 20:49:52 UTC 2006


> Reading the sources to snapscan backend I got the impression that:
> a) before the actual scanning the scanner performs white level
> calibration (and, with TPU, black level calibration).
>    This is actually READ/READ_CALIBRATION and
> READ/READ_CALIBRATION_BLACK and the scanner just scans 16 lines of
> open area behind the actual film (and respectively 48 lines for
> black calibration, not sure where).
>    The images are either 8-bit or 16-bit, but I'm not sure all bits
> are used (details?).

The Epson 3490 uses 14 bit internally. The gamma table is used to 
spread or shrink the values into 8 / 16 bit.

> b) the scanned "calibration image" is averaged and a single line is
> sent back using SEND/READ_CALIBRATION and
> SEND/READ_CALIBRATION_BLACK. Not sure about 16-bit, does the values
> differ from 8-bit mode?

Yes. The scanner sends back 16 bit/channel or 8 bit/channel.

> c) eventually the "analog" gamma information is uploaded to the
> scanner as well (not yet sure about details, someone?).
> What do I need? I need to obtain "raw" scan data, without any
> calibration or gamma correction at scanning time.

I'm not sure that's what you really want. You should at least apply 
calibration before scanning, because there's no easy way to 
compensate different gain / black level of sensor elements 
afterwards. Anyway, if you really want to skip calibration you can 
just turn it off in xsane (or whatever frontend you use) by 
unchecking the option "quality calibration").

> Next thing, "analog" gamma - does setting it to 1.0 prevents
> scanner firmware from doing any calculations?

It will calculate something anyway, but if you set brightness / 
contrast to 0 and gamma to 1.0 it should result in a linear gamma 
table, so you get unchanged data in 16 bit mode.  :-).

Note that xsane provides its own sliders for gamma / brightness / 
contrast for post-processing. Use the sliders in the "standard 
option" window to set the backend values.

> Is this scanner really 48-bit (3 * 16 bit)? Can I really get full
> 16-bit data from it?

No, that's marketing blah blah. It's 3*14 bit, i.e. 42 bit.

> Do you think adding "get raw data" option and possibly "get
> calibration data" (for further processing with general
> image-manipulation programs) to this backend would make sense?

I'm not sure the calibration data would be of any use. "Get raw data" 
is just a gamma value of 1.0 and disabled quality calibration, which 
is already possible. If you really want to do the quality calibration 
afterwards you can just as well do a black scan / white scan with 
quality calibration turned off and figure out how to correct your 
image data from that...

I'm interested in any results you achieve. Let me know how you get on.


More information about the sane-devel mailing list