[sane-devel] experimental/genesys backend status update
svoltz@wanadoo.fr
svoltz@wanadoo.fr
Sat, 19 Feb 2005 07:34:17 +0100
Hello,
here's another status update of the experimental genesys backend after
checkin last updates. Scanner does origin searching, coarse gain, offset and
shading calibration. Gray level and color 8 bits scans works for 50, 100, 150, 200,
300, 350, 400 and 600 dpi. Image quality is allready rather good in spite of the
issues below.
There are important problems to fix before the backend is fully
operational:
- head moving to scan area is broken. The steps amount computing has to
be fixed.
- R, G and B lines don't come in sync and we will have to do line
distance correction. I'm rather inclined to do it when scanning will
work reliably, because it would be currently too complex for
debugging.
- the MD6471 motor can be set to any resolution from 50 to 1200 dpi, with
50 dpi steps. This doesn't fit with the current enumeration of Y
resolutions.
- starting from 250 dpi, there is a lot of backtracking. This doesn't
happen under windows, even with usbsnoop running. So there is something
wrong with bulk reads. Maybe we should use sanei_usb_read_int instead of
sanei_usb_read_bulk, or do some synchronization.
- sometimes, depending on the amount of data read by a previous can,
scanimage hangs in genesys_park_head, after searching origin. When xsane
this doesn't happen sine origin searching is done once.
- since CCD and motor resolution are not allways the same, scan lines have
to be shrunk. Currently, this is done by 'deletion', averaging should
be better. Maybe this resizing could be made a sanei function.
- current calibration are designed for 'half CCD' resolution, and will
have to be modified for full optical range, depending on scan's
settings.
- 650 to 1200 dpi scans must be fixed.
- shading calibration is broken. I believe it because the data sent has
to match the scan area (SHDAREA is set), while it is currently for the
whole line.
- shading calibration uses a hard coded value in genesys_dummy_dark_shading
- there are 2 settings for CCD, one for full resolution, another for
half resolution. So I think we need two regs_0x08_0x0b sets in
Genesys_Sensor.
- we need a Genesys_Motor struct where we will move all harcoded values.
- genesys_park_head has an hack: it restarts motor, will have to find why
it stops.
Regards,
Stef