1992-12-09 19:00:00 -05:00
|
|
|
.TH CJPEG 1 "4 November 1992"
|
1991-12-12 19:00:00 -05:00
|
|
|
.SH NAME
|
|
|
|
cjpeg \- compress an image file to a JPEG file
|
|
|
|
.SH SYNOPSIS
|
|
|
|
.B cjpeg
|
|
|
|
[
|
1992-12-09 19:00:00 -05:00
|
|
|
.BI \-quality " N"
|
1991-12-12 19:00:00 -05:00
|
|
|
]
|
|
|
|
[
|
1992-12-09 19:00:00 -05:00
|
|
|
.B \-grayscale
|
1991-12-12 19:00:00 -05:00
|
|
|
]
|
|
|
|
[
|
1992-12-09 19:00:00 -05:00
|
|
|
.B \-optimize
|
|
|
|
]
|
|
|
|
[
|
|
|
|
.B \-targa
|
|
|
|
]
|
|
|
|
[
|
|
|
|
.BI \-maxmemory " N"
|
|
|
|
]
|
|
|
|
[
|
|
|
|
.BI \-restart " N"
|
|
|
|
]
|
|
|
|
[
|
|
|
|
.BI \-smooth " N"
|
|
|
|
]
|
|
|
|
[
|
|
|
|
.B \-verbose
|
|
|
|
]
|
|
|
|
[
|
|
|
|
.B \-debug
|
|
|
|
]
|
|
|
|
[
|
|
|
|
.B \-arithmetic
|
|
|
|
]
|
|
|
|
[
|
|
|
|
.B \-nointerleave
|
|
|
|
]
|
|
|
|
[
|
|
|
|
.BI \-qtables " file"
|
|
|
|
]
|
|
|
|
[
|
|
|
|
.BI \-sample " HxV[,...]"
|
1992-03-16 19:00:00 -05:00
|
|
|
]
|
|
|
|
[
|
1991-12-12 19:00:00 -05:00
|
|
|
.I filename
|
|
|
|
]
|
|
|
|
.LP
|
|
|
|
.SH DESCRIPTION
|
|
|
|
.LP
|
|
|
|
.B cjpeg
|
|
|
|
compresses the named image file, or the standard input if no file is
|
|
|
|
named, and produces a JPEG/JFIF file on the standard output.
|
1992-12-09 19:00:00 -05:00
|
|
|
The currently supported input file formats are: PPM (PBMPLUS color
|
1991-12-12 19:00:00 -05:00
|
|
|
format), PGM (PBMPLUS gray-scale format), GIF, Targa, and RLE (Utah Raster
|
|
|
|
Toolkit format). (RLE is supported only if the URT library is available.)
|
|
|
|
.SH OPTIONS
|
1992-12-09 19:00:00 -05:00
|
|
|
All switch names may be abbreviated; for example,
|
|
|
|
.B \-grayscale
|
|
|
|
may be written
|
|
|
|
.B \-gray
|
|
|
|
or
|
|
|
|
.BR \-gr .
|
|
|
|
Most of the "basic" switches can be abbreviated to as little as one letter.
|
|
|
|
Upper and lower case are equivalent (thus
|
|
|
|
.B \-GIF
|
|
|
|
is the same as
|
|
|
|
.BR \-gif ).
|
|
|
|
British spellings are also accepted (e.g.,
|
|
|
|
.BR \-greyscale ),
|
|
|
|
though for brevity these are not mentioned below.
|
|
|
|
.PP
|
|
|
|
The basic switches are:
|
1991-12-12 19:00:00 -05:00
|
|
|
.TP
|
1992-12-09 19:00:00 -05:00
|
|
|
.BI \-quality " N"
|
1991-12-12 19:00:00 -05:00
|
|
|
Scale quantization tables to adjust image quality. Quality is 0 (worst) to
|
|
|
|
100 (best); default is 75. (See below for more info.)
|
|
|
|
.TP
|
1992-12-09 19:00:00 -05:00
|
|
|
.B \-grayscale
|
|
|
|
Create monochrome JPEG file from color input. Be sure to use this switch when
|
|
|
|
compressing a grayscale GIF file, because
|
|
|
|
.B cjpeg
|
|
|
|
isn't bright enough to notice whether a GIF file uses only shades of gray.
|
|
|
|
By saying
|
|
|
|
.BR \-grayscale ,
|
|
|
|
you'll get a smaller JPEG file that takes less time to process.
|
|
|
|
.TP
|
|
|
|
.B \-optimize
|
1991-12-12 19:00:00 -05:00
|
|
|
Perform optimization of entropy encoding parameters. Without this, default
|
|
|
|
encoding parameters are used.
|
1992-12-09 19:00:00 -05:00
|
|
|
.B \-optimize
|
1991-12-12 19:00:00 -05:00
|
|
|
usually makes the JPEG file a little smaller, but
|
|
|
|
.B cjpeg
|
1992-03-16 19:00:00 -05:00
|
|
|
runs somewhat slower and needs much more memory. Image quality and speed of
|
|
|
|
decompression are unaffected by
|
1992-12-09 19:00:00 -05:00
|
|
|
.BR \-optimize .
|
1991-12-12 19:00:00 -05:00
|
|
|
.TP
|
1992-12-09 19:00:00 -05:00
|
|
|
.B \-targa
|
1991-12-12 19:00:00 -05:00
|
|
|
Input file is Targa format. Targa files that contain an "identification"
|
|
|
|
field will not be automatically recognized by
|
|
|
|
.BR cjpeg ;
|
|
|
|
for such files you must specify
|
1992-12-09 19:00:00 -05:00
|
|
|
.B \-targa
|
|
|
|
to make
|
1991-12-12 19:00:00 -05:00
|
|
|
.B cjpeg
|
1992-12-09 19:00:00 -05:00
|
|
|
treat the input as Targa format.
|
1991-12-12 19:00:00 -05:00
|
|
|
.PP
|
|
|
|
The
|
1992-12-09 19:00:00 -05:00
|
|
|
.B \-quality
|
1991-12-12 19:00:00 -05:00
|
|
|
switch lets you trade off compressed file size against quality of the
|
1992-12-09 19:00:00 -05:00
|
|
|
reconstructed image: the higher the quality setting, the larger the JPEG file,
|
|
|
|
and the closer the output image will be to the original input. Normally you
|
|
|
|
want to use the lowest quality setting (smallest file) that decompresses into
|
|
|
|
something visually indistinguishable from the original image. For this
|
|
|
|
purpose the quality setting should be between 50 and 95; the default of 75 is
|
|
|
|
often about right. If you see defects at
|
|
|
|
.B \-quality
|
1991-12-12 19:00:00 -05:00
|
|
|
75, then go up 5 or 10 counts at a time until you are happy with the output
|
|
|
|
image. (The optimal setting will vary from one image to another.)
|
|
|
|
.PP
|
1992-12-09 19:00:00 -05:00
|
|
|
.B \-quality
|
1991-12-12 19:00:00 -05:00
|
|
|
100 will generate a quantization table of all 1's, eliminating loss in the
|
|
|
|
quantization step (but there is still information loss in subsampling, as well
|
|
|
|
as roundoff error). This setting is mainly of interest for experimental
|
1992-12-09 19:00:00 -05:00
|
|
|
purposes. Quality values above about 95 are
|
1991-12-12 19:00:00 -05:00
|
|
|
.B not
|
|
|
|
recommended for normal use; the compressed file size goes up dramatically for
|
|
|
|
hardly any gain in output image quality.
|
|
|
|
.PP
|
1992-12-09 19:00:00 -05:00
|
|
|
In the other direction, quality values below 50 will produce very small files
|
|
|
|
of low image quality. Settings around 5 to 10 might be useful in preparing an
|
|
|
|
index of a large image library, for example. Try
|
|
|
|
.B \-quality
|
|
|
|
2 (or so) for some amusing Cubist effects. (Note: quality
|
1991-12-12 19:00:00 -05:00
|
|
|
values below about 25 generate 2-byte quantization tables, which are
|
1992-12-09 19:00:00 -05:00
|
|
|
considered optional in the JPEG standard.
|
1991-12-12 19:00:00 -05:00
|
|
|
.B cjpeg
|
1992-12-09 19:00:00 -05:00
|
|
|
emits a warning message when you give such a quality value, because some
|
|
|
|
commercial JPEG programs may be unable to decode the resulting file.)
|
|
|
|
.PP
|
|
|
|
Switches for advanced users:
|
|
|
|
.TP
|
|
|
|
.BI \-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,
|
|
|
|
.B \-max 4m
|
|
|
|
selects 4000000 bytes. If more space is needed, temporary files will be used.
|
|
|
|
.TP
|
|
|
|
.BI \-restart " N"
|
|
|
|
Emit a JPEG restart marker every N MCU rows, or every N MCU blocks if "B" is
|
|
|
|
attached to the number.
|
|
|
|
.B \-restart 0
|
|
|
|
(the default) means no restart markers.
|
|
|
|
.TP
|
|
|
|
.BI \-smooth " N"
|
|
|
|
Smooth the input image to eliminate dithering noise. N, ranging from 1 to
|
|
|
|
100, indicates the strength of smoothing. 0 (the default) means no smoothing.
|
|
|
|
.TP
|
|
|
|
.B \-verbose
|
|
|
|
Enable debug printout. More
|
|
|
|
.BR \-v 's
|
|
|
|
give more output. Also, version information is printed at startup.
|
|
|
|
.TP
|
|
|
|
.B \-debug
|
|
|
|
Same as
|
|
|
|
.BR \-verbose .
|
|
|
|
.PP
|
|
|
|
The
|
|
|
|
.B \-restart
|
|
|
|
option inserts extra markers that allow a JPEG decoder to resynchronize after
|
|
|
|
a transmission error. Without restart markers, any damage to a compressed
|
|
|
|
file will usually ruin the image from the point of the error to the end of the
|
|
|
|
image; with restart markers, the damage is usually confined to the portion of
|
|
|
|
the image up to the next restart marker. Of course, the restart markers
|
|
|
|
occupy extra space. We recommend
|
|
|
|
.B \-restart 1
|
|
|
|
for images that will be transmitted across unreliable networks such as Usenet.
|
|
|
|
.PP
|
|
|
|
The
|
|
|
|
.B \-smooth
|
|
|
|
option filters the input to eliminate fine-scale noise. This is often useful
|
|
|
|
when converting GIF files to JPEG: a moderate smoothing factor of 10 to 50
|
|
|
|
gets rid of dithering patterns in the input file, resulting in a smaller JPEG
|
|
|
|
file and a better-looking image. Too large a smoothing factor will visibly
|
|
|
|
blur the image, however.
|
|
|
|
.PP
|
|
|
|
Switches for wizards:
|
|
|
|
.TP
|
|
|
|
.B \-arithmetic
|
|
|
|
Use arithmetic coding rather than Huffman coding. (Not currently
|
|
|
|
supported for legal reasons.)
|
|
|
|
.TP
|
|
|
|
.B \-nointerleave
|
|
|
|
Generate noninterleaved JPEG file (not yet supported).
|
|
|
|
.TP
|
|
|
|
.BI \-qtables " file"
|
|
|
|
Use the quantization tables given in the specified file. The file should
|
|
|
|
contain one to four tables (64 values each) as plain text. Comments preceded
|
|
|
|
by '#' may be included in the file. The tables are implicitly numbered
|
|
|
|
0,1,etc. If
|
|
|
|
.B \-quality
|
|
|
|
N is also specified, the values in the file are scaled according to
|
|
|
|
.BR cjpeg 's
|
|
|
|
quality scaling curve.
|
|
|
|
.TP
|
|
|
|
.BI \-sample " HxV[,...]"
|
|
|
|
Set JPEG sampling factors. If you specify fewer H/V pairs than there are
|
|
|
|
components, the remaining components are set to 1x1 sampling. The default
|
|
|
|
setting is equivalent to \fB\-sample 2x2\fR.
|
|
|
|
.PP
|
|
|
|
The "wizard" switches are intended for experimentation with JPEG. If you
|
|
|
|
don't know what you are doing, \fBdon't use them\fR. You can easily produce
|
|
|
|
files with worse image quality and/or poorer compression than you'll get from
|
|
|
|
the default settings. Furthermore, these switches should not be used when
|
|
|
|
making files intended for general use, because not all JPEG implementations
|
|
|
|
will support unusual JPEG parameter settings.
|
1991-12-12 19:00:00 -05:00
|
|
|
.SH EXAMPLES
|
|
|
|
.LP
|
|
|
|
This example compresses the PPM file foo.ppm with a quality factor of
|
|
|
|
60 and saves the output as foo.jpg:
|
|
|
|
.IP
|
1992-12-09 19:00:00 -05:00
|
|
|
.B cjpeg \-quality
|
1991-12-12 19:00:00 -05:00
|
|
|
.I 60 foo.ppm
|
|
|
|
.B >
|
|
|
|
.I foo.jpg
|
1992-12-09 19:00:00 -05:00
|
|
|
.SH ENVIRONMENT
|
|
|
|
.TP
|
|
|
|
.B JPEGMEM
|
|
|
|
If this environment variable is set, its value is the default memory limit.
|
|
|
|
The value is specified as described for the
|
|
|
|
.B \-maxmemory
|
|
|
|
switch.
|
|
|
|
.B JPEGMEM
|
|
|
|
overrides the default value specified when the program was compiled, and
|
|
|
|
itself is overridden by an explicit
|
|
|
|
.BR \-maxmemory .
|
1991-12-12 19:00:00 -05:00
|
|
|
.SH SEE ALSO
|
|
|
|
.BR djpeg (1)
|
|
|
|
.br
|
1992-03-16 19:00:00 -05:00
|
|
|
.BR ppm (5),
|
|
|
|
.BR pgm (5)
|
|
|
|
.br
|
1991-12-12 19:00:00 -05:00
|
|
|
Wallace, Gregory K. "The JPEG Still Picture Compression Standard",
|
|
|
|
Communications of the ACM, April 1991 (vol. 34, no. 4), pp. 30-44.
|
|
|
|
.SH AUTHOR
|
|
|
|
Independent JPEG Group
|
|
|
|
.SH BUGS
|
|
|
|
Arithmetic coding and interleaved output not yet supported.
|
|
|
|
.PP
|
|
|
|
Not all variants of Targa file format are supported.
|
|
|
|
.PP
|
|
|
|
The
|
1992-12-09 19:00:00 -05:00
|
|
|
.B -targa
|
1991-12-12 19:00:00 -05:00
|
|
|
switch is not a bug, it's a feature. (It would be a bug if the Targa format
|
|
|
|
designers had not been clueless.)
|
|
|
|
.PP
|
1992-12-09 19:00:00 -05:00
|
|
|
Still not as fast as we'd like.
|