28 |
23 |
29 OVERVIEW General description of JPEG and the IJG software. |
24 OVERVIEW General description of JPEG and the IJG software. |
30 LEGAL ISSUES Copyright, lack of warranty, terms of distribution. |
25 LEGAL ISSUES Copyright, lack of warranty, terms of distribution. |
31 REFERENCES Where to learn more about JPEG. |
26 REFERENCES Where to learn more about JPEG. |
32 ARCHIVE LOCATIONS Where to find newer versions of this software. |
27 ARCHIVE LOCATIONS Where to find newer versions of this software. |
33 RELATED SOFTWARE Other stuff you should get. |
28 ACKNOWLEDGMENTS Special thanks. |
34 FILE FORMAT WARS Software *not* to get. |
29 FILE FORMAT WARS Software *not* to get. |
35 TO DO Plans for future IJG releases. |
30 TO DO Plans for future IJG releases. |
36 |
31 |
37 Other documentation files in the distribution are: |
32 Other documentation files in the distribution are: |
38 |
33 |
39 User documentation: |
34 User documentation: |
40 install.doc How to configure and install the IJG software. |
35 install.txt How to configure and install the IJG software. |
41 usage.doc Usage instructions for cjpeg, djpeg, jpegtran, |
36 usage.txt Usage instructions for cjpeg, djpeg, jpegtran, |
42 rdjpgcom, and wrjpgcom. |
37 rdjpgcom, and wrjpgcom. |
43 *.1 Unix-style man pages for programs (same info as usage.doc). |
38 *.1 Unix-style man pages for programs (same info as usage.txt). |
44 wizard.doc Advanced usage instructions for JPEG wizards only. |
39 wizard.txt Advanced usage instructions for JPEG wizards only. |
45 change.log Version-to-version change highlights. |
40 change.log Version-to-version change highlights. |
46 Programmer and internal documentation: |
41 Programmer and internal documentation: |
47 libjpeg.doc How to use the JPEG library in your own programs. |
42 libjpeg.txt How to use the JPEG library in your own programs. |
48 example.c Sample code for calling the JPEG library. |
43 example.c Sample code for calling the JPEG library. |
49 structure.doc Overview of the JPEG library's internal structure. |
44 structure.txt Overview of the JPEG library's internal structure. |
50 filelist.doc Road map of IJG files. |
45 filelist.txt Road map of IJG files. |
51 coderules.doc Coding style rules --- please read if you contribute code. |
46 coderules.txt Coding style rules --- please read if you contribute code. |
52 |
47 |
53 Please read at least the files install.doc and usage.doc. Useful information |
48 Please read at least the files install.txt and usage.txt. Some information |
54 can also be found in the JPEG FAQ (Frequently Asked Questions) article. See |
49 can also be found in the JPEG FAQ (Frequently Asked Questions) article. See |
55 ARCHIVE LOCATIONS below to find out where to obtain the FAQ article. |
50 ARCHIVE LOCATIONS below to find out where to obtain the FAQ article. |
56 |
51 |
57 If you want to understand how the JPEG code works, we suggest reading one or |
52 If you want to understand how the JPEG code works, we suggest reading one or |
58 more of the REFERENCES, then looking at the documentation files (in roughly |
53 more of the REFERENCES, then looking at the documentation files (in roughly |
220 including JPEG. It is an excellent source if you are comfortable reading C |
198 including JPEG. It is an excellent source if you are comfortable reading C |
221 code but don't know much about data compression in general. The book's JPEG |
199 code but don't know much about data compression in general. The book's JPEG |
222 sample code is far from industrial-strength, but when you are ready to look |
200 sample code is far from industrial-strength, but when you are ready to look |
223 at a full implementation, you've got one here... |
201 at a full implementation, you've got one here... |
224 |
202 |
225 The best full description of JPEG is the textbook "JPEG Still Image Data |
203 The best currently available description of JPEG is the textbook "JPEG Still |
226 Compression Standard" by William B. Pennebaker and Joan L. Mitchell, published |
204 Image Data Compression Standard" by William B. Pennebaker and Joan L. |
227 by Van Nostrand Reinhold, 1993, ISBN 0-442-01272-1. Price US$59.95, 638 pp. |
205 Mitchell, published by Van Nostrand Reinhold, 1993, ISBN 0-442-01272-1. |
228 The book includes the complete text of the ISO JPEG standards (DIS 10918-1 |
206 Price US$59.95, 638 pp. The book includes the complete text of the ISO JPEG |
229 and draft DIS 10918-2). This is by far the most complete exposition of JPEG |
207 standards (DIS 10918-1 and draft DIS 10918-2). |
230 in existence, and we highly recommend it. |
208 Although this is by far the most detailed and comprehensive exposition of |
231 |
209 JPEG publicly available, we point out that it is still missing an explanation |
232 The JPEG standard itself is not available electronically; you must order a |
210 of the most essential properties and algorithms of the underlying DCT |
233 paper copy through ISO or ITU. (Unless you feel a need to own a certified |
211 technology. |
234 official copy, we recommend buying the Pennebaker and Mitchell book instead; |
212 If you think that you know about DCT-based JPEG after reading this book, |
235 it's much cheaper and includes a great deal of useful explanatory material.) |
213 then you are in delusion. The real fundamentals and corresponding potential |
236 In the USA, copies of the standard may be ordered from ANSI Sales at (212) |
214 of DCT-based JPEG are not publicly known so far, and that is the reason for |
237 642-4900, or from Global Engineering Documents at (800) 854-7179. (ANSI |
215 all the mistaken developments taking place in the image coding domain. |
238 doesn't take credit card orders, but Global does.) It's not cheap: as of |
216 |
239 1992, ANSI was charging $95 for Part 1 and $47 for Part 2, plus 7% |
217 The original JPEG standard is divided into two parts, Part 1 being the actual |
240 shipping/handling. The standard is divided into two parts, Part 1 being the |
218 specification, while Part 2 covers compliance testing methods. Part 1 is |
241 actual specification, while Part 2 covers compliance testing methods. Part 1 |
219 titled "Digital Compression and Coding of Continuous-tone Still Images, |
242 is titled "Digital Compression and Coding of Continuous-tone Still Images, |
|
243 Part 1: Requirements and guidelines" and has document numbers ISO/IEC IS |
220 Part 1: Requirements and guidelines" and has document numbers ISO/IEC IS |
244 10918-1, ITU-T T.81. Part 2 is titled "Digital Compression and Coding of |
221 10918-1, ITU-T T.81. Part 2 is titled "Digital Compression and Coding of |
245 Continuous-tone Still Images, Part 2: Compliance testing" and has document |
222 Continuous-tone Still Images, Part 2: Compliance testing" and has document |
246 numbers ISO/IEC IS 10918-2, ITU-T T.83. |
223 numbers ISO/IEC IS 10918-2, ITU-T T.83. |
247 |
224 IJG JPEG 8 introduces an implementation of the JPEG SmartScale extension |
248 Some extensions to the original JPEG standard are defined in JPEG Part 3, |
225 which is specified in a contributed document at ITU and ISO with title "ITU-T |
249 a newer ISO standard numbered ISO/IEC IS 10918-3 and ITU-T T.84. IJG |
226 JPEG-Plus Proposal for Extending ITU-T T.81 for Advanced Image Coding", April |
250 currently does not support any Part 3 extensions. |
227 2006, Geneva, Switzerland. The latest version of the document is Revision 3. |
251 |
228 |
252 The JPEG standard does not specify all details of an interchangeable file |
229 The JPEG standard does not specify all details of an interchangeable file |
253 format. For the omitted details we follow the "JFIF" conventions, revision |
230 format. For the omitted details we follow the "JFIF" conventions, revision |
254 1.02. A copy of the JFIF spec is available from: |
231 1.02. JFIF 1.02 has been adopted as an Ecma International Technical Report |
255 Literature Department |
232 and thus received a formal publication status. It is available as a free |
256 C-Cube Microsystems, Inc. |
233 download in PDF format from |
257 1778 McCarthy Blvd. |
234 http://www.ecma-international.org/publications/techreports/E-TR-098.htm. |
258 Milpitas, CA 95035 |
235 A PostScript version of the JFIF document is available at |
259 phone (408) 944-6300, fax (408) 944-6314 |
236 http://www.ijg.org/files/jfif.ps.gz. There is also a plain text version at |
260 A PostScript version of this document is available by FTP at |
237 http://www.ijg.org/files/jfif.txt.gz, but it is missing the figures. |
261 ftp://ftp.uu.net/graphics/jpeg/jfif.ps.gz. There is also a plain text |
|
262 version at ftp://ftp.uu.net/graphics/jpeg/jfif.txt.gz, but it is missing |
|
263 the figures. |
|
264 |
238 |
265 The TIFF 6.0 file format specification can be obtained by FTP from |
239 The TIFF 6.0 file format specification can be obtained by FTP from |
266 ftp://ftp.sgi.com/graphics/tiff/TIFF6.ps.gz. The JPEG incorporation scheme |
240 ftp://ftp.sgi.com/graphics/tiff/TIFF6.ps.gz. The JPEG incorporation scheme |
267 found in the TIFF 6.0 spec of 3-June-92 has a number of serious problems. |
241 found in the TIFF 6.0 spec of 3-June-92 has a number of serious problems. |
268 IJG does not recommend use of the TIFF 6.0 design (TIFF Compression tag 6). |
242 IJG does not recommend use of the TIFF 6.0 design (TIFF Compression tag 6). |
269 Instead, we recommend the JPEG design proposed by TIFF Technical Note #2 |
243 Instead, we recommend the JPEG design proposed by TIFF Technical Note #2 |
270 (Compression tag 7). Copies of this Note can be obtained from ftp.sgi.com or |
244 (Compression tag 7). Copies of this Note can be obtained from |
271 from ftp://ftp.uu.net/graphics/jpeg/. It is expected that the next revision |
245 http://www.ijg.org/files/. It is expected that the next revision |
272 of the TIFF spec will replace the 6.0 JPEG design with the Note's design. |
246 of the TIFF spec will replace the 6.0 JPEG design with the Note's design. |
273 Although IJG's own code does not support TIFF/JPEG, the free libtiff library |
247 Although IJG's own code does not support TIFF/JPEG, the free libtiff library |
274 uses our library to implement TIFF/JPEG per the Note. libtiff is available |
248 uses our library to implement TIFF/JPEG per the Note. |
275 from ftp://ftp.sgi.com/graphics/tiff/. |
|
276 |
249 |
277 |
250 |
278 ARCHIVE LOCATIONS |
251 ARCHIVE LOCATIONS |
279 ================= |
252 ================= |
280 |
253 |
281 The "official" archive site for this software is ftp.uu.net (Internet |
254 The "official" archive site for this software is www.ijg.org. |
282 address 192.48.96.9). The most recent released version can always be found |
255 The most recent released version can always be found there in |
283 there in directory graphics/jpeg. This particular version will be archived |
256 directory "files". This particular version will be archived as |
284 as ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz. If you don't have |
257 http://www.ijg.org/files/jpegsrc.v8.tar.gz, and in Windows-compatible |
285 direct Internet access, UUNET's archives are also available via UUCP; contact |
258 "zip" archive format as http://www.ijg.org/files/jpegsr8.zip. |
286 help@uunet.uu.net for information on retrieving files that way. |
259 |
287 |
260 The JPEG FAQ (Frequently Asked Questions) article is a source of some |
288 Numerous Internet sites maintain copies of the UUNET files. However, only |
261 general information about JPEG. |
289 ftp.uu.net is guaranteed to have the latest official version. |
|
290 |
|
291 You can also obtain this software in DOS-compatible "zip" archive format from |
|
292 the SimTel archives (ftp://ftp.simtel.net/pub/simtelnet/msdos/graphics/), or |
|
293 on CompuServe in the Graphics Support forum (GO CIS:GRAPHSUP), library 12 |
|
294 "JPEG Tools". Again, these versions may sometimes lag behind the ftp.uu.net |
|
295 release. |
|
296 |
|
297 The JPEG FAQ (Frequently Asked Questions) article is a useful source of |
|
298 general information about JPEG. It is updated constantly and therefore is |
|
299 not included in this distribution. The FAQ is posted every two weeks to |
|
300 Usenet newsgroups comp.graphics.misc, news.answers, and other groups. |
|
301 It is available on the World Wide Web at http://www.faqs.org/faqs/jpeg-faq/ |
262 It is available on the World Wide Web at http://www.faqs.org/faqs/jpeg-faq/ |
302 and other news.answers archive sites, including the official news.answers |
263 and other news.answers archive sites, including the official news.answers |
303 archive at rtfm.mit.edu: ftp://rtfm.mit.edu/pub/usenet/news.answers/jpeg-faq/. |
264 archive at rtfm.mit.edu: ftp://rtfm.mit.edu/pub/usenet/news.answers/jpeg-faq/. |
304 If you don't have Web or FTP access, send e-mail to mail-server@rtfm.mit.edu |
265 If you don't have Web or FTP access, send e-mail to mail-server@rtfm.mit.edu |
305 with body |
266 with body |
306 send usenet/news.answers/jpeg-faq/part1 |
267 send usenet/news.answers/jpeg-faq/part1 |
307 send usenet/news.answers/jpeg-faq/part2 |
268 send usenet/news.answers/jpeg-faq/part2 |
308 |
269 |
309 |
270 |
310 RELATED SOFTWARE |
271 ACKNOWLEDGMENTS |
311 ================ |
272 =============== |
312 |
273 |
313 Numerous viewing and image manipulation programs now support JPEG. (Quite a |
274 Thank to Juergen Bruder for providing me with a copy of the common DCT |
314 few of them use this library to do so.) The JPEG FAQ described above lists |
275 algorithm article, only to find out that I had come to the same result |
315 some of the more popular free and shareware viewers, and tells where to |
276 in a more direct and comprehensible way with a more generative approach. |
316 obtain them on Internet. |
277 |
317 |
278 Thank to Istvan Sebestyen and Joan L. Mitchell for inviting me to the |
318 If you are on a Unix machine, we highly recommend Jef Poskanzer's free |
279 ITU JPEG (Study Group 16) meeting in Geneva, Switzerland. |
319 PBMPLUS software, which provides many useful operations on PPM-format image |
280 |
320 files. In particular, it can convert PPM images to and from a wide range of |
281 Thank to Thomas Wiegand and Gary Sullivan for inviting me to the |
321 other formats, thus making cjpeg/djpeg considerably more useful. The latest |
282 Joint Video Team (MPEG & ITU) meeting in Geneva, Switzerland. |
322 version is distributed by the NetPBM group, and is available from numerous |
283 |
323 sites, notably ftp://wuarchive.wustl.edu/graphics/graphics/packages/NetPBM/. |
284 Thank to John Korejwa and Massimo Ballerini for inviting me to |
324 Unfortunately PBMPLUS/NETPBM is not nearly as portable as the IJG software is; |
285 fruitful consultations in Boston, MA and Milan, Italy. |
325 you are likely to have difficulty making it work on any non-Unix machine. |
286 |
326 |
287 Thank to Hendrik Elstner, Roland Fassauer, Simone Zuck, Guenther |
327 A different free JPEG implementation, written by the PVRG group at Stanford, |
288 Maier-Gerber, and Walter Stoeber for corresponding business development. |
328 is available from ftp://havefun.stanford.edu/pub/jpeg/. This program |
289 |
329 is designed for research and experimentation rather than production use; |
290 Thank to Nico Zschach and Dirk Stelling of the technical support team |
330 it is slower, harder to use, and less portable than the IJG code, but it |
291 at the Digital Images company in Halle for providing me with extra |
331 is easier to read and modify. Also, the PVRG code supports lossless JPEG, |
292 equipment for configuration tests. |
332 which we do not. (On the other hand, it doesn't do progressive JPEG.) |
293 |
|
294 Thank to Richard F. Lyon (then of Foveon Inc.) for fruitful |
|
295 communication about JPEG configuration in Sigma Photo Pro software. |
|
296 |
|
297 Thank to Andrew Finkenstadt for hosting the ijg.org site. |
|
298 |
|
299 Last but not least special thank to Thomas G. Lane for the original |
|
300 design and development of this singular software package. |
333 |
301 |
334 |
302 |
335 FILE FORMAT WARS |
303 FILE FORMAT WARS |
336 ================ |
304 ================ |
337 |
305 |
338 Some JPEG programs produce files that are not compatible with our library. |
306 The ISO JPEG standards committee actually promotes different formats like |
339 The root of the problem is that the ISO JPEG committee failed to specify a |
307 "JPEG 2000" or "JPEG XR" which are incompatible with original DCT-based |
340 concrete file format. Some vendors "filled in the blanks" on their own, |
308 JPEG and which are based on faulty technologies. IJG therefore does not |
341 creating proprietary formats that no one else could read. (For example, none |
309 and will not support such momentary mistakes (see REFERENCES). |
342 of the early commercial JPEG implementations for the Macintosh were able to |
310 We have little or no sympathy for the promotion of these formats. Indeed, |
343 exchange compressed files.) |
|
344 |
|
345 The file format we have adopted is called JFIF (see REFERENCES). This format |
|
346 has been agreed to by a number of major commercial JPEG vendors, and it has |
|
347 become the de facto standard. JFIF is a minimal or "low end" representation. |
|
348 We recommend the use of TIFF/JPEG (TIFF revision 6.0 as modified by TIFF |
|
349 Technical Note #2) for "high end" applications that need to record a lot of |
|
350 additional data about an image. TIFF/JPEG is fairly new and not yet widely |
|
351 supported, unfortunately. |
|
352 |
|
353 The upcoming JPEG Part 3 standard defines a file format called SPIFF. |
|
354 SPIFF is interoperable with JFIF, in the sense that most JFIF decoders should |
|
355 be able to read the most common variant of SPIFF. SPIFF has some technical |
|
356 advantages over JFIF, but its major claim to fame is simply that it is an |
|
357 official standard rather than an informal one. At this point it is unclear |
|
358 whether SPIFF will supersede JFIF or whether JFIF will remain the de-facto |
|
359 standard. IJG intends to support SPIFF once the standard is frozen, but we |
|
360 have not decided whether it should become our default output format or not. |
|
361 (In any case, our decoder will remain capable of reading JFIF indefinitely.) |
|
362 |
|
363 Various proprietary file formats incorporating JPEG compression also exist. |
|
364 We have little or no sympathy for the existence of these formats. Indeed, |
|
365 one of the original reasons for developing this free software was to help |
311 one of the original reasons for developing this free software was to help |
366 force convergence on common, open format standards for JPEG files. Don't |
312 force convergence on common, interoperable format standards for JPEG files. |
367 use a proprietary file format! |
313 Don't use an incompatible file format! |
|
314 (In any case, our decoder will remain capable of reading existing JPEG |
|
315 image files indefinitely.) |
368 |
316 |
369 |
317 |
370 TO DO |
318 TO DO |
371 ===== |
319 ===== |
372 |
320 |
373 The major thrust for v7 will probably be improvement of visual quality. |
321 Version 8.0 is the first release of a new generation JPEG standard |
374 The current method for scaling the quantization tables is known not to be |
322 to overcome the limitations of the original JPEG specification. |
375 very good at low Q values. We also intend to investigate block boundary |
323 More features are being prepared for coming releases... |
376 smoothing, "poor man's variable quantization", and other means of improving |
324 |
377 quality-vs-file-size performance without sacrificing compatibility. |
325 Please send bug reports, offers of help, etc. to jpeg-info@uc.ag. |
378 |
|
379 In future versions, we are considering supporting some of the upcoming JPEG |
|
380 Part 3 extensions --- principally, variable quantization and the SPIFF file |
|
381 format. |
|
382 |
|
383 As always, speeding things up is of great interest. |
|
384 |
|
385 Please send bug reports, offers of help, etc. to jpeg-info@uunet.uu.net. |
|