Communications of the ACM, April 1991 (vol. 34 no. 4), pp. 30-44.
(Adjacent articles in that issue discuss MPEG motion picture compression, applications
of JPEG, and related topics.) If you don't have the CACM issue handy, a PostScript file
containing a revised version of Wallace's article is available at http://www.ijg.org/files/
wallace.ps.gz. The file (actually a preprint for an article that appeared in IEEE Trans.
Consumer Electronics) omits the sample images that appeared in CACM, but it
includes corrections and some added material. Note: the Wallace article is copyright
ACM and IEEE, and it may not be used for commercial purposes.
A somewhat less technical, more leisurely introduction to JPEG can be found in "The
Data Compression Book" by Mark Nelson and Jean-loup Gailly, published by M&T
Books (New York), 2nd ed. 1996, ISBN 1-55851-434-1. This book provides good
explanations and example C code for a multitude of compression methods including
JPEG. It is an excellent source if you are comfortable reading C code but don't know
much about data compression in general. The book's JPEG sample code is far from
industrial-strength, but when you are ready to look at a full implementation, you've got
one here...
The best currently available description of JPEG is the textbook "JPEG Still Image
Data Compression Standard" by William B. Pennebaker and Joan L. Mitchell,
published by Van Nostrand Reinhold, 1993, ISBN 0-442-01272-1. Price US$59.95,
638 pp. The book includes the complete text of the ISO JPEG standards (DIS 10918-1
and draft DIS 10918-2).
Although this is by far the most detailed and comprehensive exposition of JPEG
publicly available, we point out that it is still missing an explanation of the most
essential properties and algorithms of the underlying DCT technology.
If you think that you know about DCT-based JPEG after reading this book, then you are
in delusion. The real fundamentals and corresponding potential of DCT-based JPEG are
not publicly known so far, and that is the reason for all the mistaken developments
taking place in the image coding domain.
The original JPEG standard is divided into two parts, Part 1 being the actual
specification, while Part 2 covers compliance testing methods. Part 1 is titled "Digital
Compression and Coding of Continuous-tone Still Images, Part 1: Requirements and
guidelines" and has document numbers ISO/IEC IS 10918-1, ITU-T T.81. Part 2 is
titled "Digital Compression and Coding of Continuous-tone Still Images, Part 2:
Compliance testing" and has document numbers ISO/IEC IS 10918-2, ITU-T T.83.
The JPEG standard does not specify all details of an interchangeable file format. For the
omitted details we follow the "JFIF" conventions, revision 1.02. A copy of the JFIF
spec is available from:
Literature Department
C-Cube Microsystems, Inc.
1778 McCarthy Blvd.
Milpitas, CA 95035
phone (408) 944-6300, fax (408) 944-6314
A PostScript version of this document is available at http://www.ijg.org/files/jfif.ps.gz.
There is also a plain text version at http://www.ijg.org/files/jfif.txt.gz, but it is missing
the figures.
The TIFF 6.0 file format specification can be obtained by FTP from ftp://ftp.sgi.com/
graphics/tiff/TIFF6.ps.gz. The JPEG incorporation scheme found in the TIFF 6.0 spec
of 3-June-92 has a number of serious problems. IJG does not recommend use of the
TIFF 6.0 design (TIFF Compression tag 6). Instead, we recommend the JPEG design
proposed by TIFF Technical Note #2 (Compression tag 7). Copies of this Note can be
obtained from http://www.ijg.org/files/. It is expected that the next revision of the TIFF
spec will replace the 6.0 JPEG design with the Note's design. Although IJG's own code
does not support TIFF/JPEG, the free libtiff library uses our library to implement TIFF/
JPEG per the Note.
ARCHIVE LOCATIONS
The "official" archive site for this software is www.ijg.org. The most recent released
version can always be found there in directory "files". This particular version will be
archived as http://www.ijg.org/files/jpegsrc.v7.tar.gz, and in Windows-compatible
"zip" archive format as http://www.ijg.org/files/jpegsr7.zip.
The JPEG FAQ (Frequently Asked Questions) article is a source of some general
information about JPEG. It is available on the World Wide Web at http://www.faqs.org/
faqs/jpeg-faq/ and other news.answers archive sites, including the official
news.answers archive at rtfm.mit.edu: ftp://rtfm.mit.edu/pub/usenet/news.answers/
jpeg-faq/. If you don't have Web or FTP access, send e-mail to mail-
server@rtfm.mit.edu with body
send usenet/news.answers/jpeg-faq/part1
send usenet/news.answers/jpeg-faq/part2
ACKNOWLEDGMENTS
Thank to Juergen Bruder of the Georg-Cantor-Organization at the Martin-Luther-
University Halle for providing me with a copy of the common DCT algorithm article,
only to find out that I had come to the same result in a more direct and comprehensible
way with a more generative approach.
Thank to Istvan Sebestyen and Joan L. Mitchell for inviting me to the ITU JPEG (Study
Group 16) meeting in Geneva, Switzerland.
Thank to Thomas Wiegand and Gary Sullivan for inviting me to the Joint Video Team
(MPEG & ITU) meeting in Geneva, Switzerland.
Thank to John Korejwa and Massimo Ballerini for inviting me to fruitful consultations
in Boston, MA and Milan, Italy.
Thank to Hendrik Elstner, Roland Fassauer, and Simone Zuck for corresponding
business development.
Thank to Nico Zschach and Dirk Stelling of the technical support team at the Digital
Images company in Halle for providing me with extra equipment for configuration
tests.
Thank to Richard F. Lyon (then of Foveon Inc.) for fruitful communication about JPEG
configuration in Sigma Photo Pro software.
Last but not least special thank to Thomas G. Lane for the original design and
development of this singular software package.
vii
FILE FORMAT WARS
The ISO JPEG standards committee actually promotes different formats like JPEG-
2000 or JPEG-XR which are incompatible with original DCT-based JPEG and which
are based on faulty technologies. IJG therefore does not and will not support such
momentary mistakes (see REFERENCES). We have little or no sympathy for the
promotion of these formats. Indeed, one of the original reasons for developing this free
software was to help force convergence on common, interoperable format standards for
JPEG files. Don't use an incompatible file format! (In any case, our decoder will remain
capable of reading existing JPEG image files indefinitely.)
TO DO
v7 is basically just a necessary interim release, paving the way for a major breakthrough
in image coding technology with the next v8 package which is scheduled for release in
the year 2010.
Please send bug reports, offers of help, etc. to jpeg-info@jpegclub.org.
■ About International Components for Unicode
ICU License - ICU 1.8.1 and later
COPYRIGHT AND PERMISSION NOTICE
Copyright (C) 1995-2003 International Business Machines Corporation and others
All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy of this
software and associated documentation files (the "Software"), to deal in the Software
without restriction, including without limitation the rights to use, copy, modify, merge,
publish, distribute, and/or sell copies of the Software, and to permit persons to whom
the Software is furnished to do so, provided that the above copyright notice(s) and this
permission notice appear in all copies of the Software and that both the above copyright
notice(s) and this permission notice appear in supporting documentation.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO
EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR
CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER
RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
OF THIS SOFTWARE.
Except as contained in this notice, the name of a copyright holder shall not be used in
advertising or otherwise to promote the sale, use or other dealings in this Software
without prior written authorization of the copyright holder.
All trademarks and registered trademarks mentioned herein are the property of their
respective owners.
■ About libpng
This copy of the libpng notices is provided for your convenience. In case of any
discrepancy between this copy and the notices in the file png.h that is included in the
libpng distribution, the latter shall prevail.
COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
If you modify libpng you may insert additional notices immediately following this
sentence. This code is released under the libpng license.
libpng versions 1.2.6, August 15, 2004, through 1.2.45, July 7, 2011, are Copyright (C)
2004, 2006-2009 Glenn Randers-Pehrson, and are distributed according to the same
disclaimer and license as libpng-1.2.5 with the following individual added to the list of
Contributing Authors
Cosmin Truta
libpng versions 1.0.7, July 1, 2000, through 1.2.5 - October 3, 2002, are Copyright
(C) 2000-2002 Glenn Randers-Pehrson, and are distributed according to the same
disclaimer and license as libpng-1.0.6 with the following individuals added to the
list of Contributing Authors
Simon-Pierre Cadieux
Eric S. Raymond
Gilles Vollant
and with the following additions to the disclaimer:
There is no warranty against interference with your enjoyment of the library or
against infringement. There is no warranty that our efforts or the library will fulfill
any of your particular purposes or needs. This library is provided with all faults,
and the entire risk of satisfactory quality, performance, accuracy, and effort is with
the user.
libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are Copyright (C)
1998, 1999 Glenn Randers-Pehrson, and are distributed according to the same
disclaimer and license as libpng-0.96, with the following individuals added to the list of
Contributing Authors:
Tom Lane
Glenn Randers-Pehrson
Willem van Schaik
libpng versions 0.89, June 1996, through 0.96, May 1997, are Copyright (C) 1996, 1997
Andreas Dilger Distributed according to the same disclaimer and license as libpng-0.88,
with the following individuals added to the list of Contributing Authors:
John Bowler
Kevin Bracey
Sam Bushell
Magnus Holmgren