[sane-devel] SANE2 and filmscanners

Jonathan Buzzard jonathan@buzzard.org.uk
Mon, 23 Dec 2002 16:42:35 +0000

henning@meier-geinitz.de said:
> >The first is multipass scanning. Basically what happens here is that
> >the scanner can read the values several times and returns the averaged
> >result. This is useful for reducing noise from the A/D in the image data.
> But if the scanner does this internally, is there any need for the
> SANE API to know about that? Ok, a well known option may make sense. 

Firstly multi-pass scanning is much slower than a single pass. So you
at least need to be able to turn it on off.

> Ok. Should the averaging be done by the frontend or by the backend? If
> it should be done by the frontend, there is no need for a well know
> option. Otherwise, the backend might consume a lot of memory for the
> multiple passes. 

Well I would say probably the backend. Remember that film scanning just
eats memory anyway. A full frame scan from 35mm at 2800dpi and 16bit depth
is 60MB. Some of the pro end scanners are 4000dpi, and do medium format
6x9cm. Most scanners that can do a full 16bit offer hardware multipass,
and if your bit depth is less you can sum it all in one 16 bitcopy anyway.
If if doing software multipass at full 16bit resolution it only requires
twice the memory. 

> What kind of option do you want to have? Bool (multipass on or off) or
> int number-of-passes (default = 1)? If the backend does it in
> dsoftware, it can set SANE_CAP_EMULATED. 

I was thinking of a option like say SANE_NUMBER_PASSES which is an option
list. The reason for this is that most hardware based multi-pass scanning
offers only powers of two passes, so 2,4,8,16. I presume the reason is that
divide by 2 (or powers of 2) is much easier in hardware as it is just simple

> > Batch scanning is the other. Here you might have a film or slide holder
> > that has several separate images (or even an APS adaptor) and you
> > just want to click a button to scan the lot. You need some way to
> > communicate to the front end just how many images there are to scan etc. 
> Why? Just return SANE_STATUS_NO_DOCS when finished.

True but closely related to this is the fact that scanning a single frame
is a slow process; 10 minutes a frame is not unrealistic. Therefore
if I only want one frame scanning the lot is a massive pain. If I have
an APS film it will be horrendous if I just want frame 38 say. So you
also need a way to select individual frames from what ever is loaded.
On my scanner I have a holder for negatives, which has up to six frames,
a holder for slides which has four and an APS adaptor which can take
an APS film cartridge. From memory depending on which you insert into
the scanner Vuescan offers an appropriate list to scan from.

The backend needs some way to communicate to the front end a range
of possible pictures to scan from, and this needs to be able to change
while the front end is running. i.e. I might start off a session scanning
a strip of negatives then switch to slides or APS.

Basically all I am doing is looking at Vuescan and thinking what do we
need in the SANE standard to allow someone to write a free clone. One
other thought that has crossed my mind as I am scanning in my brothers
wedding photographs are options to do with exposure. I am not an expert
but Vuescan is presenting me with options to "Lock exposure",
for a "Long exposure pass" and set manual RGB/Infrared exposure.

I would say from reading the Vuescan help that the "Long exposure pass"
and Lock exposure option is a front end thing that is done with scanners
that allow you to set manual exposure. In the mean time there needs
to be some way of asking for a change in the exposure time of the CCD,
in the standard. I am not sure how this is communicated to the scanner,
but VueScan allows you to multiply the exposure time by a scale factor.
So it might be 1.5 times normal etc. With the possibility that is can
be separate for the RGB and Infrared channels (if the scanner supports
this of course).


Jonathan A. Buzzard                 Email: jonathan@buzzard.org.uk
Northumberland, United Kingdom.       Tel: +44(0)1661-832195