Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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 selected.

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 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  col-
	    ormapped  display or stored in a colormapped file format.  For exam-
	    ple, 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 pro-
	    vided only for backwards compatibility.

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

     -grayscale
	    Force grayscale output even if JPEG file is color.	Useful for view-
	    ing 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 sup-
	    port more than 256 colors, -colors 256 is assumed (unless you  spec-
	    ify  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 for-
	    mat 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, col-
	    ormapped 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 In-
	    dependent  JPEG Group's software was first released in 1991, the de-
	    compression time for a 1-megapixel JPEG image on a mainstream 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 be-
	    low, then there should be little or no perceptible	quality  differ-
	    ence  between  the	two  algorithms.  When decompressing images that
	    were compressed using quality levels above 85, however, the  differ-
	    ence 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 de-
	    generates for such images and can actually produce a more lossy out-
	    put 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 significantly more accurate results  than	the  int
	    method,  and it is much slower.  The float method may also give dif-
	    ferent results on different machines due to varying roundoff  behav-
	    ior, 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 compro-
	    mise 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.

     -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  at-
	    tached  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 de-
	    nial-of-service attacks instigated	by  specially-crafted  malformed
	    JPEG images containing numerous scans with missing image data or im-
	    age  data  consisting  only  of "EOB runs" (a feature of progressive
	    JPEG images that allows potentially hundreds of thousands of adjoin-
	    ing zero-value pixels to be represented using  only  a  few  bytes.)
	    Attempting to decompress such malformed JPEG images can cause exces-
	    sive  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 dimensions.

     -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 in-
	    creased accordingly.  Note that if decompression  scaling  is  being
	    used,  then  X,  Y, W, and H are relative to the scaled image dimen-
	    sions.  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  incom-
	    plete or corrupt 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  col-
     ors, 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 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.

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 specified when the pro-
	    gram was compiled, and itself is overridden by an explicit	-maxmem-
	    ory.

SEE ALSO
     cjpeg(1), jpegtran(1), rdjpgcom(1), wrjpgcom(1)
     ppm(5), pgm(5)
     Wallace,  Gregory K.  "The JPEG Still Picture Compression Standard", Commu-
     nications 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  infor-
     mation relevant to libjpeg-turbo, to wordsmith certain sections, and to de-
     scribe features not present in libjpeg.

				 4 November 2020			DJPEG(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=djpeg&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help