[sane-devel] meaning of 1200x2400 etc. explained

m. allan noah kitno455 at gmail.com
Fri Feb 15 05:15:07 UTC 2008


your english is quite clear, and you certainly understand the
mechanical aspect, but i think you give the scanner too much credit.
they dont have the brains to oversample and then downsample. they move
the motor faster and take fewer readings. the end user would scream
about the speed at lower resolutions otherwise.

back to the real issue: independent control of X and Y resolution.
some scanners support it, some dont. some backends do it, some dont.
Those that do seem to always output stretched images, so most end
users probably dont do it. I have often considered removing it from my
backends, because it seems to cause more questions than answers.

allan

On 2/14/08, Gernot Hassenpflug <aikishugyo at gmail.com> wrote:
> On Fri, Feb 15, 2008 at 9:57 AM, m. allan noah <kitno455 at gmail.com> wrote:
>  > so you want the backend to scan at 1200x2400 but return 2400x2400
>  >  data?
>
>
> No. I guess my english is not very clear :-(
>
>
>  > it would have to interpolate 50% of the data in the scan with
>  >  'made up' data. or do you want to scan at 1200x2400 and return
>  >  1200x1200, in which case you have scanned twice as much data as you
>  >  need.
>
>
> No... please don't be insulted if I am a) wrong below, and b) describe
>  things you already understand much better than I.
>
>  What I am saying is that there are two specs, maybe only one of which
>  you have control over:
>
>  - the horizontal scanning resolution which is given by the spacing or
>  interpolated processing or whatever of the CCDs. Let's assume it is
>  spacing, so this is the optical resolution. This is the first number,
>  1200. This is what the scanner can optically do.
>
>  - vertical movement increment, also specified in dpi, and controlled
>  by the linear motor of the scanner. This is entirely independent from
>  the horizontal resolution, but for various reasons you might want it
>  to be a factor several times the horizontal resolution. This is done a
>  lot in signal processing (radar, for example) and is called
>  over-sampling, done to improve the smoothness of images even though no
>  more resolution is possible over that of the optical resolution.
>  Basically, it decreases the jaggedness of diagonal lines, and lessens
>  the effects of any statistical noise in the image. The scanner should
>  have the intelligence to make the output pixels square---I can imagine
>  that the CCDs might not be square either but optimized for the
>  horizontal direction.
>
>  - the user only knows about the horizontal (optical) scanning
>  resolution, and specifies it: 1200. He cannot specify a higher number
>  because unless the scanner has some horizontal movement capability, it
>  cannot do higher even by interpolation. If the scanner had two offset
>  rows of CCDs then double the resolution would be possible, but again,
>  the user would simply be told that the scanner has 2400dpi scanning
>  capability (like how printer heads are nowadays, as I understand it).
>
>  Anyway, when the scanner now does its thing at 1200dpi, the linear
>  motion happens at 2400dpi (or for some scanners maybe even at higher
>  factors), oversampling. The whole idea of "more than you need" is
>  completely flawed, because the quality of an image for the human eye
>  is a lot different to that required by sampling theory for example.
>  Oversampling is very necessary in practice to allow humans to
>  interpret the image and see structure at a higher level than that laid
>  down by simple theory. So the scanner takes the oversampled
>  information, and then does some processing to filter out noise,
>  finally giving you back a 1200dpi by 1200dpi image. The user never
>  gets the 2400dpi data.
>
>  Am I still wrong here?
>
>  Regards, Gernot
>


-- 
"The truth is an offense, but not a sin"



More information about the sane-devel mailing list