STANNIX Solutions for the Real World


Manual: djpeg

DJPEG(1)				   General Commands Manual				    DJPEG(1)

NAME
       djpeg - decompress a JPEG file to an image file

SYNOPSIS
       djpeg [ options ] [ filename ]

DESCRIPTION
       djpeg  decompresses  the	 named JPEG file, or the standard input if no file is named, and produces an
       image file on the standard output.  PBMPLUS (PPM/PGM), BMP, GIF, or Targa output format	can  be	 se‐
       lected.

OPTIONS
       All  switch  names  may be abbreviated; for example, -grayscale may be written -gray or -gr.  Most of
       the "basic" switches can be abbreviated to as little as one letter.  Upper and lower case are equiva‐
       lent (thus -BMP is the same as -bmp).  British spellings are also accepted (e.g., -greyscale), though
       for brevity these are not mentioned below.

       The basic switches are:

       -colors N
	      Reduce image to at most N colors.	 This reduces the number of colors used in the output image,
	      so that it can be displayed on a colormapped display or stored in a colormapped  file  format.
	      For example, if you have an 8-bit display, you'd need to reduce to 256 or fewer colors.

       -quantize N
	      Same  as	-colors.   -colors is the recommended name, -quantize is provided only for backwards
	      compatibility.

       -fast  Select recommended processing options for fast, low quality output.  (The default options	 are
	      chosen  for  highest  quality  output.)	Currently, this is equivalent to -dct fast -nosmooth
	      -onepass -dither ordered.

       -grayscale
	      Force grayscale output even if JPEG file is color.  Useful for viewing on monochrome displays;
	      also, djpeg runs noticeably faster in this mode.

       -rgb   Force RGB output even if JPEG file is grayscale.

       -scale M/N
	      Scale the output image by a factor M/N.  Currently the scale factor must be M/8, where M is an
	      integer between 1 and 16 inclusive, or any reduced fraction thereof (such as 1/2,	 3/4,  etc.)
	      Scaling  is  handy  if the image is larger than your screen; also, djpeg runs much faster when
	      scaling down the output.

       -bmp   Select BMP output format (Windows flavor).  8-bit colormapped format is emitted if -colors  or
	      -grayscale is specified, or if the JPEG file is grayscale; otherwise, 24-bit full-color format
	      is emitted.

       -gif   Select  GIF  output format (LZW-compressed).  Since GIF does not support more than 256 colors,
	      -colors 256 is assumed (unless you specify a smaller number of colors).  If you specify -fast,
	      the default number of colors is 216.

       -gif0  Select GIF output format (uncompressed).	Since GIF does not support  more  than	256  colors,
	      -colors 256 is assumed (unless you specify a smaller number of colors).  If you specify -fast,
	      the default number of colors is 216.

       -os2   Select BMP output format (OS/2 1.x flavor).  8-bit colormapped format is emitted if -colors or
	      -grayscale is specified, or if the JPEG file is grayscale; otherwise, 24-bit full-color format
	      is emitted.

       -pnm   Select  PBMPLUS  (PPM/PGM)  output format (this is the default format).  PGM is emitted if the
	      JPEG file is grayscale or if -grayscale is specified; otherwise PPM is emitted.

       -targa Select Targa output format.  Grayscale format is emitted if the JPEG file is grayscale  or  if
	      -grayscale  is  specified;  otherwise,  colormapped format is emitted if -colors is specified;
	      otherwise, 24-bit full-color format is emitted.

       Switches for advanced users:

       -dct int
	      Use accurate integer DCT method (default).

       -dct fast
	      Use less accurate integer DCT method [legacy feature].   When  the  Independent  JPEG  Group's
	      software	was first released in 1991, the decompression time for a 1-megapixel JPEG image on a
	      mainstream PC was measured in minutes.  Thus, the fast integer DCT algorithm provided  notice‐
	      able  performance	 benefits.  On modern CPUs running libjpeg-turbo, however, the decompression
	      time for a 1-megapixel JPEG image is measured in milliseconds, and thus the performance  bene‐
	      fits  of	the fast algorithm are much less noticeable.  On modern x86/x86-64 CPUs that support
	      AVX2 instructions, the fast and int methods have similar performance.  On other types of CPUs,
	      the fast method is generally about 5-15% faster than the int method.

	      If the JPEG image was compressed using a quality level of 85 or below, then  there  should  be
	      little  or  no  perceptible quality difference between the two algorithms.  When decompressing
	      images that were compressed using quality levels above 85, however, the difference between the
	      fast and int methods becomes more pronounced.  With images compressed  using  quality=97,	 for
	      instance,	 the  fast  method  incurs generally about a 4-6 dB loss in PSNR relative to the int
	      method, but this can be larger for some images.  If you can avoid it,  do	 not  use  the	fast
	      method  when decompressing images that were compressed using quality levels above 97.  The al‐
	      gorithm often degenerates for such images and can actually produce a more lossy  output  image
	      than if the JPEG image had been compressed using lower quality levels.

       -dct float
	      Use  floating-point  DCT	method [legacy feature].  The float method does not produce signifi‐
	      cantly more accurate results than the int method, and it is much slower.	The float method may
	      also give different results on different machines due to varying	roundoff  behavior,  whereas
	      the integer methods should give the same results on all machines.

       -dither fs
	      Use Floyd-Steinberg dithering in color quantization.

       -dither ordered
	      Use ordered dithering in color quantization.

       -dither none
	      Do  not use dithering in color quantization.  By default, Floyd-Steinberg dithering is applied
	      when quantizing colors; this is slow but usually produces the best results.  Ordered dither is
	      a compromise between speed and quality; no dithering is fast but usually	looks  awful.	Note
	      that these switches have no effect unless color quantization is being done.  Ordered dither is
	      only available in -onepass mode.

       -icc file
	      Extract ICC color management profile to the specified file.

       -map file
	      Quantize	to the colors used in the specified image file.	 This is useful for producing multi‐
	      ple files with identical color maps, or for forcing a predefined set of  colors  to  be  used.
	      The file must be a GIF or PPM file. This option overrides -colors and -onepass.

       -nosmooth
	      Use a faster, lower-quality upsampling routine.

       -onepass
	      Use  one-pass instead of two-pass color quantization.  The one-pass method is faster and needs
	      less memory, but it produces a lower-quality image.  -onepass is ignored unless you  also	 say
	      -colors N.  Also, the one-pass method is always used for grayscale output (the two-pass method
	      is no improvement then).

       -maxmemory N
	      Set  limit  for  amount of memory to use in processing large images.  Value is in thousands of
	      bytes, or millions of bytes if "M" is attached to the number.  For example,  -max	 4m  selects
	      4000000 bytes.  If more space is needed, an error will occur.

       -maxscans N
	      Abort  if	 the  JPEG  image contains more than N scans.  This feature demonstrates a method by
	      which applications can guard against denial-of-service attacks instigated by specially-crafted
	      malformed JPEG images containing numerous scans with missing image data or image data consist‐
	      ing only of "EOB runs" (a feature of progressive JPEG images that allows potentially  hundreds
	      of  thousands  of	 adjoining zero-value pixels to be represented using only a few bytes.)	 At‐
	      tempting to decompress such malformed JPEG images can cause excessive CPU activity, since	 the
	      decompressor  must fully process each scan (even if the scan is corrupt) before it can proceed
	      to the next scan.

       -outfile name
	      Send output image to the named file, not to standard output.

       -memsrc
	      Load input file into memory before decompressing.	 This feature was implemented  mainly  as  a
	      way of testing the in-memory source manager (jpeg_mem_src().)

       -report
	      Report decompression progress.

       -skip Y0,Y1
	      Decompress  all  rows of the JPEG image except those between Y0 and Y1 (inclusive.)  Note that
	      if decompression scaling is being used, then Y0 and Y1 are relative to the scaled image dimen‐
	      sions.

       -crop WxH+X+Y
	      Decompress only a rectangular subregion of the image, starting at point X,Y with width  W	 and
	      height  H.   If  necessary, X will be shifted left to the nearest iMCU boundary, and the width
	      will be increased accordingly.  Note that if decompression scaling is being used, then  X,  Y,
	      W,  and  H are relative to the scaled image dimensions.  Currently this option only works with
	      the PBMPLUS (PPM/PGM), GIF, and Targa output formats.

       -strict
	      Treat all warnings as fatal.  This feature also demonstrates a method  by	 which	applications
	      can  guard  against  attacks  instigated by specially-crafted malformed JPEG images.  Enabling
	      this option will cause the decompressor to abort if the JPEG image contains incomplete or cor‐
	      rupt image data.

       -verbose
	      Enable debug printout.  More -v's give more output.  Also, version information is	 printed  at
	      startup.

       -debug Same as -verbose.

       -version
	      Print version information and exit.

EXAMPLES
       This  example decompresses the JPEG file foo.jpg, quantizes it to 256 colors, and saves the output in
       8-bit BMP format in foo.bmp:

	      djpeg -colors 256 -bmp foo.jpg > foo.bmp

HINTS
       To get a quick preview of an image, use the -grayscale and/or -scale switches.  -grayscale -scale 1/8
       is the fastest case.

       Several options are available that trade off image quality to gain speed.  -fast turns on the  recom‐
       mended settings.

       -dct  fast and/or -nosmooth gain speed at a small sacrifice in quality.	When producing a color-quan‐
       tized image, -onepass -dither ordered is fast but much  lower  quality  than  the  default  behavior.
       -dither none may give acceptable results in two-pass mode, but is seldom tolerable in one-pass mode.

ENVIRONMENT
       JPEGMEM
	      If  this	environment  variable  is  set, its value is the default memory limit.	The value is
	      specified as described for the -maxmemory switch.	 JPEGMEM overrides the default value  speci‐
	      fied when the program was compiled, and itself is overridden by an explicit -maxmemory.

SEE ALSO
       cjpeg(1), jpegtran(1), rdjpgcom(1), wrjpgcom(1)
       ppm(5), pgm(5)
       Wallace,	 Gregory K.  "The JPEG Still Picture Compression Standard", Communications of the ACM, April
       1991 (vol. 34, no. 4), pp. 30-44.

AUTHOR
       Independent JPEG Group

       This file was modified by The libjpeg-turbo Project to include only information relevant to  libjpeg-
       turbo, to wordsmith certain sections, and to describe features not present in libjpeg.

					       4 November 2020					    DJPEG(1)