[sane-devel] "stop and go" and colour lines with epson 1250

abel deuring adeuring@gmx.net
Fri, 07 May 2004 20:27:37 +0200

Gerhard Jaeger wrote:
> Hi,
> the 1250 is a "stupid" LM983x based scanner which knows nothing about
> jpeg compression. The stop and go is a "feature" of the LM983x to avoid
> data loss (of course you encounter this problem...)
> I think that the libusb and or the usb-stack itself is the problem. I've
> currently not testet here with 2.6 kernels.
> Another thing is the image size you scan. Tests showed, that scanning
> only small portions of a picture in 600dpi will work fine (of course - less
> data), while scanning larger portions will not work very well, but full-size
> scanning @300dpi should be no problem, at least with the plustek backend.

I think that there are several possible causes for scan head stops. 
Aside from the relatively low bandwidth of USB 1, a small buffer inside 
the scanner, combined with an application that perhaps processes data in 
a "somewhat complex" way is another. If the backend can't read data from 
the scanner, while the frontend does some other work, the scanner's data 
buffer may be completely filled, and hence the scan head must stop.

In order to avoid scan head stops, the Sharp and NEC backends use shared 
memory to transfer data between the reader process and the "main" 
process. This way, the reader process is not stuck in a write call to 
the pipe used by other backends to forward data to the main process. 
This way, I could completely avoid scan head stops even with old Pentium 
100 processors. OK, there are some other differences -- the Sharp and 
NEC backends support only SCSI scanners --, but using shared memory is 
perhaps worth a try.