User Commands cjpeg(1)
NAME
cjpeg - compress an image file to a JPEG file
SYNOPSIS
cjpeg [options] [filename]
DESCRIPTION
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. The following input file formats are
currently supported:
]o BMP
]o PGM, the PBMPLUS gray-scale format
]o PM, the PBMPLUS color format
]o RLE, the Utah Raster Toolkit format
]o Targa
RLE is supported only if the URT library is available.
OPTIONS
All options may be abbreviated. For example, -grayscale may
be written -gray or -gr. Upper and lower case are
equivalent. For example, -BMP is the same as -bmp. British
spellings are also accepted. For example, -greyscale.
Basic Options
The following basic options are supported:
-grayscale Create a monochrome JPEG file from
color input. You should use this
switch when compressing a grayscale
BMP file, because cjpeg cannot
detect whether a BMP file uses only
shades of gray. By specifying the
-grayscale option, you create a
smaller JPEG file that takes less
time to process.
-optimize Optimize the entropy encoding param-
eters. If you do not specify this
option, default encoding parameters
are used. -optimize usually makes
the JPEG file a little smaller, but
cjpeg runs more slowly and needs
SunOS 5.11 Last change: 26 Mar 2004 1
User Commands cjpeg(1)
much more memory. Image quality and
speed of decompression are unaf-
fected by the -optimize option.
-progressive Create a progressive JPEG file. For
more information about the -progres-
sive option, see the Extended
Description section.
-quality N Scale the quantization tables to
adjust image quality. N ranges from
0 (worst) to 100 (best). The default
value is 75. For more information
about the -quality option, see the
Extended Description section.
-targa Specify that the input file is in
Targa format. Targa files that con-
tain an "identification" field are
not automatically recognized by
cjpeg. For such files, you must
specify -targa to make cjpeg treat
the input as Targa format. For most
Targa files, you do not need this
switch.
Intermediate Options
The following intermediate options are supported:
-dct fast Use the fast integer DCT method.
This method is less accurate than
the integer DCT method or the
floating-point DCT method.
-dct float Use the floating-point DCT method.
The float method is very slightly
more accurate than the int method,
but is much slower unless your
machine has very fast floating-point
hardware. The results of the
floating-point method may vary
slightly across machines, while the
SunOS 5.11 Last change: 26 Mar 2004 2
User Commands cjpeg(1)
integer methods should give the same
results everywhere.
-dct int Use the integer DCT method. This is
the default method.
-maxmemory N Set the limit for the amount of
memory to use in processing large
images. N is specified in thousands
of bytes, or in millions of bytes if
"M" is specified with the number.
For example, -max 4m selects 4000000
bytes. If more space is needed, tem-
porary files are used.
-outfile name Send the output image to the named
file, instead of to the standard
output.
-restart N Emit a JPEG restart marker every N
MCU rows, or every N MCU blocks if
"B" is specified with the number.
The default value is -restart 0,
which means no restart markers. For
more information about the -restart
option, see the Extended Description
section.
-smooth N Smooth the input image to eliminate
dithering noise. N ranges from 1 to
100, and indicates the strength of
smoothing. The default value is
-smooth 0, which means no smoothing.
For more information about the
-smooth option, see the Extended
Description section.
-verbose Display version information at
startup, and enable debug printout.
The -vv option displays more verbose
SunOS 5.11 Last change: 26 Mar 2004 3
User Commands cjpeg(1)
output than the -v option. The -vvv
option displays the most verbose
output.
You can also use -debug to specify
this option.
Advanced Options
The following advanced options are supported for advanced
users only:
-baseline Force baseline-compatible quantiza-
tion tables to be generated. This
clamps the quantization values to 8
bits, even at low quality settings.
This option is poorly named, because
-baseline does not ensure that the
output is actually baseline JPEG.
For example, you can use the -base-
line and -progressive options
together.
-qslots N[,...] Select which quantization table to
use for each color component.
-qtables file Use the quantization tables provided
in the specified text file.
-sample HxV[,...] Set the JPEG sampling factors for
each color component.
-scans file Use the scan script provided in the
specified text file.
OPERANDS
The following operands are supported:
filename The name of the image file to be
compressed.
SunOS 5.11 Last change: 26 Mar 2004 4
User Commands cjpeg(1)
EXTENDED DESCRIPTION
The -quality Option
The -quality option enables you to trade compressed file
size against the quality of the reconstructed image: the
higher the quality setting, the larger the JPEG file, and
the greater the similarity between the output image and the
original input. Normally, you use the lowest quality setting
that decompresses into an output image that is visually
indistinguishable from the original image. For this purpose,
the quality setting should be between 50 and 95. The default
value of 75 is often just right. If you see defects at
-quality 75, increase the quality by 5 until you are happy
with the output image. The optimal setting varies from one
image to another.
A value of -quality 100 generates a quantization table of
ones. This minimizes loss in the quantization step, but
information is still lost in subsampling, as well as round-
off error. The -quality 100 setting is mainly of interest
for experimental purposes. Quality values above 95 are not
recommended for normal use, as the compressed file size
increases dramatically for very little gain in output image
quality.
Quality values below 50 produce very small files of low
image quality. Settings of 5 to 10 might be useful in
preparing an index of a large image library, for example.
Quality values below 25 generate 2-byte quantization tables,
which are considered optional in the JPEG standard. cjpeg
emits a warning message when you specify such a quality
value, because some other JPEG programs might be unable to
decode the resulting file. Use -baseline if you need to
ensure compatibility at low quality values.
The -progressive Option
The -progressive option creates a "progressive JPEG" file.
In this type of JPEG file, the data is stored in multiple
scans of increasing quality. If the file is transmitted over
a slow communications link, the decoder can use the first
scan to display a low-quality image very quickly, and can
then improve the display with each subsequent scan. The
final image is exactly equivalent to a standard JPEG file of
the same quality setting, and the total file size is about
the same, or a little smaller. Caution: progressive JPEG is
not yet widely implemented, so many decoders are unable to
view a progressive JPEG file at all.
The -restart Option
The -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 usually
ruins the image from the point of the error to the end of
SunOS 5.11 Last change: 26 Mar 2004 5
User Commands cjpeg(1)
the image. With restart markers, the damage is usually con-
fined to the portion of the image from the point of the
error to the next restart marker. The restart markers occupy
extra space. We recommend -restart 1 for images that are
transmitted across unreliable networks.
The -smooth Option
The -smooth option filters the input to eliminate fine-scale
noise. This option is often useful when you convert dithered
images to JPEG: a moderate smoothing factor of 10 to 50
deletes dithering patterns from the input file, resulting in
a smaller JPEG file and a better-looking image. If the
smoothing factor is too large, the image visibly blurs.
Hints
Color GIF files are not the ideal input for JPEG. JPEG is
really intended for the compression of full-color 24-bit
images. In particular, do not try to convert cartoons, line
drawings, or other images that have only a few distinct
colors. GIF works well on these, but JPEG does not. If you
want to convert a GIF file to JPEG, you should experiment
with the -quality and -smooth options to get a satisfactory
conversion. A value of -smooth 10 is often helpful.
Avoid running an image through a series of JPEG
compression/decompression cycles. Image quality loss will
accumulate. After ten cycles, the image may be noticeably
worse than it was after one cycle. Use a lossless format
while manipulating an image, then convert to JPEG format
when you are ready to file the image away.
Use the -optimize option when you make a "final" version for
posting or archiving. Also, when you use low quality set-
tings, make very small JPEG files. The percentage improve-
ment is often much greater than on larger files. At present,
the -optimize option is always selected when generating pro-
gressive JPEG files.
EXAMPLES
Example 1: Compressing the PM File test.ppm With a Quality
Factor of 60 and Saving the Output as test.jpg
example% cjpeg -quality 60 test.ppm > test.jpg
ENVIRONMENT VARIABLES
cjpeg uses the following environment variables:
JPEGMEM The value of this environment vari-
able, if set, is the default memory
limit. The value is specified as
described for the -maxmemory option.
JPEGMEM overrides the default value
SunOS 5.11 Last change: 26 Mar 2004 6
User Commands cjpeg(1)
specified when the program was com-
piled, and is in turn overridden by
an explicit -maxmemory option.
ATRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
ATRIBUTE TYPE ATRIBUTE VALUE
Availability SUNWjpg
Interface stability Uncommitted
SEE ALSO
Wallace, Gregory K., The JPEG Still Picture Compression
Standard Communications of the ACM, April 1991 (vol. 34, no.
4), pp. 30-44.
djpeg(1), jpegtran(1), rdjpgcom(1), wrjpgcom(1)
NOTES
Arithmetic coding is not supported. GIF input files are not
supported. Not all variants of BMP and Targa file formats
are supported.
This man page was originally written by the Independent JPEG
Group. Updated by Breda McColgan, Sun Microsystems Inc.,
2004.
SunOS 5.11 Last change: 26 Mar 2004 7
|