man > pnmpsnr(1)

⚡ TLDR: pnmpsnr (tldr-pages)

Compute the difference between two images.

  • Compute the difference, i.e. the peak signal-to-noise ratio (PSNR) between two images
    pnmpsnr {{path/to/file1.pnm}} {{path/to/file2.pnm}}
  • Compare the color components rather than the luminance and chrominance components of the images
    pnmpsnr {{path/to/file1.pnm}} {{path/to/file2.pnm}} -rgb
  • Run in comparison mode, i.e. only output `nomatch` or `match` depending on whether the computing PSNR exceeds `n` or not
    pnmpsnr {{path/to/file1.pnm}} {{path/to/file2.pnm}} -target {{n}}
  • Run in comparison mode and compare the individual image components, i.e. Y, Cb, and Cr, to the corresponding thresholds
    pnmpsnr {{path/to/file1.pnm}} {{path/to/file2.pnm}} -target1 {{threshold_Y}} -target2 {{threshold_Cb}} -target3 {{threshold_Cr}}
  • Run in comparison mode and compare the individual image components, i.e. red, green, and blue to the corresponding thresholds
    pnmpsnr {{path/to/file1.pnm}} {{path/to/file2.pnm}} -rgb -target1 {{threshold_red}} -target2 {{threshold_green}} -target3 {{threshold_blue}}
  • Produce machine-readable output
    pnmpsnr {{path/to/file1.pnm}} {{path/to/file2.pnm}} -machine
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] [-target3=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 mag‐
       nitude of difference between the two images as a peak signal-to-noise ratio (PSNR) This  met‐
       ric is typically used in image compression papers to rate the distortion between original and
       decoded 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 luminance 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  -ma‐
       chine).



OPTIONS
       In  addition  to  the options common to all programs based on libnetpbm (most notably -quiet,
       see  Common Options ), 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 chrominance 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 information.

              The output is a single line.  It contains one floating point decimal number  for  each
              color  component, with a single space between 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 order.  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 effect of -max.  In partic‐
              ular, 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 fi‐
              nite  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  elec‐
              trons  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 computed
              PSNRs (luminance for a PBM or PGM; luminance and chrominance or red, green,  and  blue
              for  PPM)  exceed  n,  the  program  prints 'match' to Standard Output.  Otherwise, it
              prints 'nomatch'.

              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 ig‐
              nores the PSNR of that component in deciding whether the images match.

              If the image is a PBM or PGM, these options have no effect, except that it stilll  se‐
              lects  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 pnmpsnr command in  a  pro‐
              gram  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)
pnmpsnr(1) □✕
NAME SYNOPSIS
pnmpsnr
DESCRIPTION OPTIONS
-rgb This option causes pnmpsnr to compare the red, green, and blue components of the color -machine -max=n This is meaningful only with -machine. -target=n -target{1,2,3}=n
SEE ALSO DOCUMENT SOURCE

Generated by phpman v4.11.2-32-gc3d6661 · Markdown · JSON · MCP Author: Che Dong Under GNU General Public License
2026-10-04 13:18 @216.73.216.55
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 Transitional!Valid CSS!

^_top_^