dwww Home | Manual pages | Find package

Pnmpsnr User Manual(1)      General Commands Manual     Pnmpsnr User Manual(1)

NAME
       pnmpsnr - compute the difference between two images (the PSNR)

SYNOPSIS
       pnmpsnr

       [pnmfile1]

       [pnmfile2]

       [-rgb] [-machine] [-max=n] [-target=n] [-target1=n] [-target2=n] [-tar-
       get3=n]

       Minimum unique abbreviations of options are acceptable.   You  may  use
       double hyphens instead of single hyphen to denote options.  You may use
       white space in place of the equals sign to separate an option name from
       its value.

DESCRIPTION
       This program is part of Netpbm(1).

       pnmpsnr  reads two PBM, PGM, or PPM files, or PAM equivalents, as input
       and computes the magnitude of difference between the two  images  as  a
       peak  signal-to-noise ratio (PSNR) This metric is typically used in im-
       age compression papers to rate the distortion between original and  de-
       coded image.

       pnmpsnr  either  prints these values or compares them to thresholds you
       specify.

       The PSNR of a given component is the ratio of the maximum  mean  square
       difference  of component values that could exist between the two images
       (a measure of the information content in an image) to the  actual  mean
       square  difference  for  the  two subject images.  It is expressed as a
       decibel value.

       The mean square difference of a component for two images  is  the  mean
       square difference of the component value, comparing each pixel with the
       pixel in the same position of the other image.   For  the  purposes  of
       this computation, components are normalized to the scale [0..1].

       The maximum mean square difference is identically 1.

       So the higher the PSNR, the closer the images are.  A luminance PSNR of
       20 means the mean square difference of the luminances of the pixels  is
       100 times less than the maximum possible difference, i.e. 0.01.

       Note  that the word "peak" is a misnomer; there is no maximum involved;
       the metric is a mean.  But "peak signal to noise  ratio"  is  for  some
       reason the common term for this measurement.

       If  the  inputs  are PBM or PGM, pnmpsnr computes the PSNR of the lumi-
       nance only.  Otherwise, it computes three separate  PSNRs:  either  the
       luminance,  and chrominance (Cb and Cr) components of the colors or the
       red, green, and blue components.

       By default, the program prints the PSNRs to Standard Output  in  human-
       friendly form.

       With the -machine option, the program prints the PSNRs, but in machine-
       friendly form.

       With a -target[x] option, the program just prints 'match' or 'nomatch',
       depending on whether the PSNRs exceed targets you specify.

       pnmpsnr  reports  the PSNR either in human-friendly form or in machine-
       friendly form (see -machine).

OPTIONS
       In addition to the options common to all programs  based  on  libnetpbm
       (most notably -quiet, see
        Common  Options  ⟨index.html#commonoptions⟩  ), pnmpsnr recognizes the
       following command line options:

       -rgb   This option causes pnmpsnr to compare the red, green,  and  blue
              components  of  the  color rather than the luminance and chromi-
              nance components.  It has no effect on a monotone image.

              This option was new in Netpbm 10.71 (June 2015).

       -machine
              This option causes pnmpsnr  to  report  the  PSNRs  in  machine-
              friendly  form,  so  another program can easily use the informa-
              tion.

              The output is a single line.  It  contains  one  floating  point
              decimal number for each color component, with a single space be-
              tween every two.  (This means there are either 1 or 3  numbers).
              For  the  YCbCr  color space (no -rgb), they are in the order Y,
              Cb, Cr.  For the RGB color space (-rgb), they are in R, G, B or-
              der.  For a monotone image, there is one number.

              Where  the  component does not differ between the images, so the
              PSNR is infinite, the number is inf

              But note that the number displayed is also modified by  the  ef-
              fect of -max.  In particular, with -max, you will never see inf.

              This option has no effect when you also specify -target[n].

              This option was new in Netpbm 10.74 (March 2016).

       -max=n This is meaningful only with -machine.

              It  specifies  the  maximum number pnmpsnr will print as a PSNR.
              If the PSNR is greater than n, pnmpsnr just prints n.   n  is  a
              decimal  floating  point number.  An infinite PSNR is considered
              greater than any number.

              This is mainly useful to deal with infinite PSNRs.  It is  often
              much more convenient to have a program process only numbers than
              to make it deal with infinity, and often a very large number has
              the same effect on a program as infinity.

              Note  that  the  output is logarithmic, which means you will not
              see really large but finite numbers.  If you specify  -max=1000,
              the  only  way you will see 1000 in the output is if the PSNR is
              really infinite.  Two images with as many pixels  as  there  are
              electrons in the universe, differing in only one pixel, and only
              in the smallest amount representable in the Netpbm format,  have
              a PSNR less than 1000.

              This option was new in Netpbm 10.74 (March 2016).

       -target=n

              This  option  causes  pnmpsnr to run in comparison mode - rather
              than print the PSNRs, it just tells you whether the PSNRs exceed
              n  (a  floating  point number), i.e. whether the compared images
              are the same within a given margin of error.  If  all  the  com-
              puted  PSNRs  (luminance for a PBM or PGM; luminance and chromi-
              nance or red, green, and blue for PPM)  exceed  n,  the  program
              prints  'match'  to  Standard Output.  Otherwise, it prints 'no-
              match'.

              If you also specify any of -target1, -target2, or -target3,  and
              the images are color, pnmpsnr ignores -target.

              This  is  mainly useful for use in a program.  If you're running
              pnmpsnr manually, you could just run pnmpsnr without -target and
              compare the PSNRs to your targets yourself.

              This option was new in Netpbm 10.82 (March 2018).

       -target{1,2,3}=n
              Like  -target,  these options cause pnmpsnr to run in comparison
              mode.  But they provide  separate  targets  for  the  individual
              color component PSNRs.  -target1, target-2, and -target3 are for
              either the Y, Cb, and Cr components, respectively, or  the  red,
              green, and blue components, respectively, depending upon whether
              you specified -rgb.

              If you don't specify the corresponding  -targetn  option  for  a
              component,  pnmpsnr ignores the PSNR of that component in decid-
              ing whether the images match.

              If the image is a PBM or PGM, these options have no effect,  ex-
              cept  that  it  stilll  selects comparison mode, so if you don't
              also specify -target, and the image is PBM or PGM,  the  program
              fails.

              Note that the options are defined so that you could code a pnmp-
              snr command in a program that works on both color  and  monotone
              images,  specifying individual PSNR targets for use on the color
              images and the single target for use on the monotone images.

              These options were new in Netpbm 10.82 (March 2018).

SEE ALSO
       pnm(1)

DOCUMENT SOURCE
       This manual page was generated by the Netpbm tool 'makeman'  from  HTML
       source.  The master documentation is at

              http://netpbm.sourceforge.net/doc/pnmpsnr.html

netpbm documentation            06 January 2018         Pnmpsnr User Manual(1)

Generated by dwww version 1.15 on Sat Jun 29 02:20:36 CEST 2024.