manpagez: man pages & more
man djpeg(1)
Home | html | info | man
djpeg(1)                                                              djpeg(1)


       djpeg - decompress a JPEG file to an image file


       djpeg [ options ] [ filename ]


       djpeg  decompresses  the  named  JPEG file, or the standard input if no
       file is named, and produces an image file on the standard output.  PBM-
       PLUS  (PPM/PGM),  BMP,  GIF, Targa, or RLE (Utah Raster Toolkit) output
       format can be selected.  (RLE is supported only if the URT  library  is


       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 equivalent (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 out-
              put.   (The  default options are chosen for highest quality out-
              put.)  Currently, this is  equivalent  to  -dct  fast  -nosmooth
              -onepass -dither ordered.

              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.  Since GIF does not support more  than
              256 colors, -colors 256 is assumed (unless you specify a smaller
              number of colors).

       -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 for-
              mat).  PGM is emitted if  the  JPEG  file  is  grayscale  or  if
              -grayscale is specified; otherwise PPM is emitted.

       -rle   Select RLE output format.  (Requires URT library.)

       -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; other-
              wise, 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  main-
              stream  PC  was measured in minutes.  Thus, the fast integer DCT
              algorithm provided noticeable 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  benefits  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,  how-
              ever,  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  algorithm  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 lev-

       -dct float
              Use floating-point  DCT  method  [legacy  feature].   The  float
              method does not produce significantly 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  multiple  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.

              Use a faster, lower-quality upsampling routine.

              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.

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

              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().)

       -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-

       -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.

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

       -debug Same as -verbose.

              Print version information and exit.


       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


       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 recommended settings.

       -dct  fast and/or -nosmooth gain speed at a small sacrifice in quality.
       When producing a color-quantized 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.


              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.


       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.


       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.


       Support for compressed GIF output files was removed in djpeg v6b due to
       concerns  over  the Unisys LZW patent.  Although this patent expired in
       2006, djpeg still lacks compressed GIF support,  for  these  historical
       reasons.   (Conversion  of JPEG files to GIF is usually a bad idea any-
       way, since GIF is a 256-color format.)  The uncompressed GIF files that
       djpeg  generates  are larger than they should be, but they are readable
       by standard GIF decoders.

                                4 November 2020                       djpeg(1)

libjpeg-turbo 2.0.6 - Generated Tue Jan 19 15:10:08 CST 2021
© 2000-2021
Individual documents may contain additional copyright information.