|
1 .TH CJPEG 1 "30 December 2009" |
|
2 .SH NAME |
|
3 cjpeg \- compress an image file to a JPEG file |
|
4 .SH SYNOPSIS |
|
5 .B cjpeg |
|
6 [ |
|
7 .I options |
|
8 ] |
|
9 [ |
|
10 .I filename |
|
11 ] |
|
12 .LP |
|
13 .SH DESCRIPTION |
|
14 .LP |
|
15 .B cjpeg |
|
16 compresses the named image file, or the standard input if no file is |
|
17 named, and produces a JPEG/JFIF file on the standard output. |
|
18 The currently supported input file formats are: PPM (PBMPLUS color |
|
19 format), PGM (PBMPLUS gray-scale format), BMP, Targa, and RLE (Utah Raster |
|
20 Toolkit format). (RLE is supported only if the URT library is available.) |
|
21 .SH OPTIONS |
|
22 All switch names may be abbreviated; for example, |
|
23 .B \-grayscale |
|
24 may be written |
|
25 .B \-gray |
|
26 or |
|
27 .BR \-gr . |
|
28 Most of the "basic" switches can be abbreviated to as little as one letter. |
|
29 Upper and lower case are equivalent (thus |
|
30 .B \-BMP |
|
31 is the same as |
|
32 .BR \-bmp ). |
|
33 British spellings are also accepted (e.g., |
|
34 .BR \-greyscale ), |
|
35 though for brevity these are not mentioned below. |
|
36 .PP |
|
37 The basic switches are: |
|
38 .TP |
|
39 .BI \-quality " N[,...]" |
|
40 Scale quantization tables to adjust image quality. Quality is 0 (worst) to |
|
41 100 (best); default is 75. (See below for more info.) |
|
42 .TP |
|
43 .B \-grayscale |
|
44 Create monochrome JPEG file from color input. Be sure to use this switch when |
|
45 compressing a grayscale BMP file, because |
|
46 .B cjpeg |
|
47 isn't bright enough to notice whether a BMP file uses only shades of gray. |
|
48 By saying |
|
49 .BR \-grayscale , |
|
50 you'll get a smaller JPEG file that takes less time to process. |
|
51 .TP |
|
52 .B \-optimize |
|
53 Perform optimization of entropy encoding parameters. Without this, default |
|
54 encoding parameters are used. |
|
55 .B \-optimize |
|
56 usually makes the JPEG file a little smaller, but |
|
57 .B cjpeg |
|
58 runs somewhat slower and needs much more memory. Image quality and speed of |
|
59 decompression are unaffected by |
|
60 .BR \-optimize . |
|
61 .TP |
|
62 .B \-progressive |
|
63 Create progressive JPEG file (see below). |
|
64 .TP |
|
65 .BI \-scale " M/N" |
|
66 Scale the output image by a factor M/N. Currently supported scale factors are |
|
67 8/N with all N from 1 to 16. |
|
68 .TP |
|
69 .B \-targa |
|
70 Input file is Targa format. Targa files that contain an "identification" |
|
71 field will not be automatically recognized by |
|
72 .BR cjpeg ; |
|
73 for such files you must specify |
|
74 .B \-targa |
|
75 to make |
|
76 .B cjpeg |
|
77 treat the input as Targa format. |
|
78 For most Targa files, you won't need this switch. |
|
79 .PP |
|
80 The |
|
81 .B \-quality |
|
82 switch lets you trade off compressed file size against quality of the |
|
83 reconstructed image: the higher the quality setting, the larger the JPEG file, |
|
84 and the closer the output image will be to the original input. Normally you |
|
85 want to use the lowest quality setting (smallest file) that decompresses into |
|
86 something visually indistinguishable from the original image. For this |
|
87 purpose the quality setting should be between 50 and 95; the default of 75 is |
|
88 often about right. If you see defects at |
|
89 .B \-quality |
|
90 75, then go up 5 or 10 counts at a time until you are happy with the output |
|
91 image. (The optimal setting will vary from one image to another.) |
|
92 .PP |
|
93 .B \-quality |
|
94 100 will generate a quantization table of all 1's, minimizing loss in the |
|
95 quantization step (but there is still information loss in subsampling, as well |
|
96 as roundoff error). This setting is mainly of interest for experimental |
|
97 purposes. Quality values above about 95 are |
|
98 .B not |
|
99 recommended for normal use; the compressed file size goes up dramatically for |
|
100 hardly any gain in output image quality. |
|
101 .PP |
|
102 In the other direction, quality values below 50 will produce very small files |
|
103 of low image quality. Settings around 5 to 10 might be useful in preparing an |
|
104 index of a large image library, for example. Try |
|
105 .B \-quality |
|
106 2 (or so) for some amusing Cubist effects. (Note: quality |
|
107 values below about 25 generate 2-byte quantization tables, which are |
|
108 considered optional in the JPEG standard. |
|
109 .B cjpeg |
|
110 emits a warning message when you give such a quality value, because some |
|
111 other JPEG programs may be unable to decode the resulting file. Use |
|
112 .B \-baseline |
|
113 if you need to ensure compatibility at low quality values.) |
|
114 .PP |
|
115 The |
|
116 .B \-quality |
|
117 option has been extended in IJG version 7 for support of separate quality |
|
118 settings for luminance and chrominance (or in general, for every provided |
|
119 quantization table slot). This feature is useful for high-quality |
|
120 applications which cannot accept the damage of color data by coarse |
|
121 subsampling settings. You can now easily reduce the color data amount more |
|
122 smoothly with finer control without separate subsampling. The resulting file |
|
123 is fully compliant with standard JPEG decoders. |
|
124 Note that the |
|
125 .B \-quality |
|
126 ratings refer to the quantization table slots, and that the last value is |
|
127 replicated if there are more q-table slots than parameters. The default |
|
128 q-table slots are 0 for luminance and 1 for chrominance with default tables as |
|
129 given in the JPEG standard. This is compatible with the old behaviour in case |
|
130 that only one parameter is given, which is then used for both luminance and |
|
131 chrominance (slots 0 and 1). More or custom quantization tables can be set |
|
132 with |
|
133 .B \-qtables |
|
134 and assigned to components with |
|
135 .B \-qslots |
|
136 parameter (see the "wizard" switches below). |
|
137 .B Caution: |
|
138 You must explicitly add |
|
139 .BI \-sample " 1x1" |
|
140 for efficient separate color |
|
141 quality selection, since the default value used by library is 2x2! |
|
142 .PP |
|
143 The |
|
144 .B \-progressive |
|
145 switch creates a "progressive JPEG" file. In this type of JPEG file, the data |
|
146 is stored in multiple scans of increasing quality. If the file is being |
|
147 transmitted over a slow communications link, the decoder can use the first |
|
148 scan to display a low-quality image very quickly, and can then improve the |
|
149 display with each subsequent scan. The final image is exactly equivalent to a |
|
150 standard JPEG file of the same quality setting, and the total file size is |
|
151 about the same --- often a little smaller. |
|
152 .PP |
|
153 Switches for advanced users: |
|
154 .TP |
|
155 .B \-dct int |
|
156 Use integer DCT method (default). |
|
157 .TP |
|
158 .B \-dct fast |
|
159 Use fast integer DCT (less accurate). |
|
160 .TP |
|
161 .B \-dct float |
|
162 Use floating-point DCT method. |
|
163 The float method is very slightly more accurate than the int method, but is |
|
164 much slower unless your machine has very fast floating-point hardware. Also |
|
165 note that results of the floating-point method may vary slightly across |
|
166 machines, while the integer methods should give the same results everywhere. |
|
167 The fast integer method is much less accurate than the other two. |
|
168 .TP |
|
169 .B \-nosmooth |
|
170 Don't use high-quality downsampling. |
|
171 .TP |
|
172 .BI \-restart " N" |
|
173 Emit a JPEG restart marker every N MCU rows, or every N MCU blocks if "B" is |
|
174 attached to the number. |
|
175 .B \-restart 0 |
|
176 (the default) means no restart markers. |
|
177 .TP |
|
178 .BI \-smooth " N" |
|
179 Smooth the input image to eliminate dithering noise. N, ranging from 1 to |
|
180 100, indicates the strength of smoothing. 0 (the default) means no smoothing. |
|
181 .TP |
|
182 .BI \-maxmemory " N" |
|
183 Set limit for amount of memory to use in processing large images. Value is |
|
184 in thousands of bytes, or millions of bytes if "M" is attached to the |
|
185 number. For example, |
|
186 .B \-max 4m |
|
187 selects 4000000 bytes. If more space is needed, temporary files will be used. |
|
188 .TP |
|
189 .BI \-outfile " name" |
|
190 Send output image to the named file, not to standard output. |
|
191 .TP |
|
192 .B \-verbose |
|
193 Enable debug printout. More |
|
194 .BR \-v 's |
|
195 give more output. Also, version information is printed at startup. |
|
196 .TP |
|
197 .B \-debug |
|
198 Same as |
|
199 .BR \-verbose . |
|
200 .PP |
|
201 The |
|
202 .B \-restart |
|
203 option inserts extra markers that allow a JPEG decoder to resynchronize after |
|
204 a transmission error. Without restart markers, any damage to a compressed |
|
205 file will usually ruin the image from the point of the error to the end of the |
|
206 image; with restart markers, the damage is usually confined to the portion of |
|
207 the image up to the next restart marker. Of course, the restart markers |
|
208 occupy extra space. We recommend |
|
209 .B \-restart 1 |
|
210 for images that will be transmitted across unreliable networks such as Usenet. |
|
211 .PP |
|
212 The |
|
213 .B \-smooth |
|
214 option filters the input to eliminate fine-scale noise. This is often useful |
|
215 when converting dithered images to JPEG: a moderate smoothing factor of 10 to |
|
216 50 gets rid of dithering patterns in the input file, resulting in a smaller |
|
217 JPEG file and a better-looking image. Too large a smoothing factor will |
|
218 visibly blur the image, however. |
|
219 .PP |
|
220 Switches for wizards: |
|
221 .TP |
|
222 .B \-arithmetic |
|
223 Use arithmetic coding. |
|
224 .B Caution: |
|
225 arithmetic coded JPEG is not yet widely implemented, so many decoders will be |
|
226 unable to view an arithmetic coded JPEG file at all. |
|
227 .TP |
|
228 .B \-baseline |
|
229 Force baseline-compatible quantization tables to be generated. This clamps |
|
230 quantization values to 8 bits even at low quality settings. (This switch is |
|
231 poorly named, since it does not ensure that the output is actually baseline |
|
232 JPEG. For example, you can use |
|
233 .B \-baseline |
|
234 and |
|
235 .B \-progressive |
|
236 together.) |
|
237 .TP |
|
238 .BI \-qtables " file" |
|
239 Use the quantization tables given in the specified text file. |
|
240 .TP |
|
241 .BI \-qslots " N[,...]" |
|
242 Select which quantization table to use for each color component. |
|
243 .TP |
|
244 .BI \-sample " HxV[,...]" |
|
245 Set JPEG sampling factors for each color component. |
|
246 .TP |
|
247 .BI \-scans " file" |
|
248 Use the scan script given in the specified text file. |
|
249 .PP |
|
250 The "wizard" switches are intended for experimentation with JPEG. If you |
|
251 don't know what you are doing, \fBdon't use them\fR. These switches are |
|
252 documented further in the file wizard.txt. |
|
253 .SH EXAMPLES |
|
254 .LP |
|
255 This example compresses the PPM file foo.ppm with a quality factor of |
|
256 60 and saves the output as foo.jpg: |
|
257 .IP |
|
258 .B cjpeg \-quality |
|
259 .I 60 foo.ppm |
|
260 .B > |
|
261 .I foo.jpg |
|
262 .SH HINTS |
|
263 Color GIF files are not the ideal input for JPEG; JPEG is really intended for |
|
264 compressing full-color (24-bit) images. In particular, don't try to convert |
|
265 cartoons, line drawings, and other images that have only a few distinct |
|
266 colors. GIF works great on these, JPEG does not. If you want to convert a |
|
267 GIF to JPEG, you should experiment with |
|
268 .BR cjpeg 's |
|
269 .B \-quality |
|
270 and |
|
271 .B \-smooth |
|
272 options to get a satisfactory conversion. |
|
273 .B \-smooth 10 |
|
274 or so is often helpful. |
|
275 .PP |
|
276 Avoid running an image through a series of JPEG compression/decompression |
|
277 cycles. Image quality loss will accumulate; after ten or so cycles the image |
|
278 may be noticeably worse than it was after one cycle. It's best to use a |
|
279 lossless format while manipulating an image, then convert to JPEG format when |
|
280 you are ready to file the image away. |
|
281 .PP |
|
282 The |
|
283 .B \-optimize |
|
284 option to |
|
285 .B cjpeg |
|
286 is worth using when you are making a "final" version for posting or archiving. |
|
287 It's also a win when you are using low quality settings to make very small |
|
288 JPEG files; the percentage improvement is often a lot more than it is on |
|
289 larger files. (At present, |
|
290 .B \-optimize |
|
291 mode is always selected when generating progressive JPEG files.) |
|
292 .SH ENVIRONMENT |
|
293 .TP |
|
294 .B JPEGMEM |
|
295 If this environment variable is set, its value is the default memory limit. |
|
296 The value is specified as described for the |
|
297 .B \-maxmemory |
|
298 switch. |
|
299 .B JPEGMEM |
|
300 overrides the default value specified when the program was compiled, and |
|
301 itself is overridden by an explicit |
|
302 .BR \-maxmemory . |
|
303 .SH SEE ALSO |
|
304 .BR djpeg (1), |
|
305 .BR jpegtran (1), |
|
306 .BR rdjpgcom (1), |
|
307 .BR wrjpgcom (1) |
|
308 .br |
|
309 .BR ppm (5), |
|
310 .BR pgm (5) |
|
311 .br |
|
312 Wallace, Gregory K. "The JPEG Still Picture Compression Standard", |
|
313 Communications of the ACM, April 1991 (vol. 34, no. 4), pp. 30-44. |
|
314 .SH AUTHOR |
|
315 Independent JPEG Group |
|
316 .SH BUGS |
|
317 GIF input files are no longer supported, to avoid the Unisys LZW patent. |
|
318 (Conversion of GIF files to JPEG is usually a bad idea anyway.) |
|
319 .PP |
|
320 Not all variants of BMP and Targa file formats are supported. |
|
321 .PP |
|
322 The |
|
323 .B \-targa |
|
324 switch is not a bug, it's a feature. (It would be a bug if the Targa format |
|
325 designers had not been clueless.) |