[sane-devel] LiDE 90 Calibration

Pierre Willenbrock pierre at pirsoft.dnsalias.org
Thu Sep 4 19:59:10 UTC 2008


guillaume.gastebois at free.fr schrieb:
> Hello,
> 
> It seems that in Windows snoop calibration of LiDE 90 is done with
 > half CCD even if scanning is in full sensor resolution.
> Is it so in sane ?
> 
> If not, is it usefull to implement it ? Where to do that ?

To be on the safe side, all calibration steps are using the same 
settings(minus motor control, but that is hardly calibratable) as the 
final scan. This is to keep all possibly hidden parameters the same.

Theoretically, it would be okay to just keep the calibration for one 
half and one full calibration setting, since that is the only setting 
that may change the sensor characteristics. It should be possible to 
calculate the rest.

If the function that scales from full resolution to half resolution is 
known(for example the average), one could theoretically calculate that, 
too, but if it is not the average, this may get complicated. (My scanner 
sort of adds adjacent pixels.)

The LED, offset and gain calibration steps can(should be able to) work 
with any resolution, only the shading calibration needs to be adjusted 
to fill the correct locations of the shading calibration data set.

The former steps can be found in genesys_gl841.c. The shading 
calibration is in genesys.c:

* genesys_flatbed_calibration
controls all calibration steps

* sanei_genesys_init_shading_data
clears the shading data. not strictly needed, both chips have a setting 
to ignore the shading data.

* dev->model->cmd_set->init_regs_for_shading
sets up the scanning parameters(call into the chip specific vtable).

* genesys_dark_shading_calibration
* genesys_dummy_dark_shading
* genesys_white_shading_calibration
* genesys_dark_white_shading_calibration
Different methods to acquire dark and bright samples to be stored in 
dev->dark_average_data and dev->white_average_data.

* genesys_send_shading_coefficient
finally calculates and sends the shading coefficients. look in the 
CCD_CANONLIDE90 case for the actual code doing the calculations. This 
has not seen a lot of changes after i got it to work. This uses the data 
stored in dev->dark_average_data and dev->white_average_data.

The main changes needed would be in the init_regs_for_scanning and 
genesys_send_shading_coefficient functions. The rest should work with that.

This could be very useful when the calibration cache code gets commited, 
because it would reduce the number of calibrations to at most 2. 
(Currently it is in the experimental repository, and i could not get 
myself to add support in the gl646-part, yet.)

> Regards
> Guillaume

Regards,
   Pierre



More information about the sane-devel mailing list