pnmscale - scale a PNM file quickly


DESCRIPTION

       pnmscalefixed is the same thing as pnmscale except that it
       uses fixed point arithmetic internally instead of floating
       point,  which  makes  it  run faster.  In turn, it is less
       accurate and may distort the image.

       Use the pnmscale man page with pnmfixed.   This  man  page
       only describes the difference.

       pnmscalefixed uses fixed point 12 bit arithmetic.  By con­
       trast, pnmscale uses floating point  arithmetic  which  on
       most  machines  is  probably 24 bit precision.  This makes
       pnmscalefixed run faster (30% faster in  one  experiment),
       but the imprecision can cause distortions at the right and
       bottom edges.

       The distortion takes the following form:  One  pixel  from
       the  edge  of  the  input is rendered larger in the output
       than the scaling factor requires.  Consequently, the  rest
       of  the image is smaller than the scaling factor requires,
       because the overall dimensions of the image are always  as
       requested.   This  distortion will usually be very hard to
       see.

       pnmscalefixed with the -verbose option tells you how  much
       distortion there is.

       The  amount of distortion depends on the size of the input
       image and how close the scaling factor is to  an  integral
       1/4096th.

       If  the  scaling  factor  is  an exact multiple of 1/4096,
       there is no distortion.  So, for example doubling or halv­
       ing  an  image  causes  no distortion.  But reducing it or
       enlarging it by a third would cause some  distortion.   To
       consider an extreme case, scaling a 100,000 row image down
       to 50,022 rows would create an output image  with  all  of
       the  input squeezed into the top 50,000 rows, and the last
       row of the input copied into the bottom 22 rows of output.

       pnmscalefixed  could probably be modified to use 16 bit or
       better arithmetic without losing anything.  The  modifica­
       tion  would  consist  of  a  single constant in the source
       code.  Until  there  is  a  demonstrated  need  for  that,
       though,  the  Netpbm  maintainer  wants to keep the safety
       cushion afforded by the original 12 bit precision.


Man(1) output converted with man2html