xii
APPENDIX
You can also obtain this software in DOS-compatible “zip” archive format from the
SimTel archives (ftp://ftp.simtel.net/pub/simtelnet/msdos/graphics/), or on CompuServe
in the Graphics Support forum (GO CIS:GRAPHSUP), library 12 “JPEG Tools”. Again,
these versions may sometimes lag behind the ftp.uu.net release.
The JPEG FAQ (Frequently Asked Questions) article is a useful source of general
information about JPEG. It is updated constantly and therefore is not included in this
distribution. The FAQ is posted every two weeks to Usenet newsgroups
comp.graphics.misc, news.answers, and other groups. 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 [email protected] with
body
send usenet/news.answers/jpeg-faq/part1
send usenet/news.answers/jpeg-faq/part2
RELATED SOFTWARE
Numerous viewing and image manipulation programs now support JPEG. (Quite a few
of them use this library to do so.) The JPEG FAQ described above lists some of the more
popular free and shareware viewers, and tells where to obtain them on Internet.
If you are on a Unix machine, we highly recommend Jef Poskanzer’s free PBMPLUS
software, which provides many useful operations on PPM-format image files. In
particular, it can convert PPM images to and from a wide range of other formats, thus
making cjpeg/djpeg considerably more useful. The latest version is distributed by the
NetPBM group, and is available from numerous sites, notably ftp://wuarchive.wustl.edu/
graphics/graphics/packages/NetPBM/.
Unfortunately PBMPLUS/NETPBM is not nearly as portable as the IJG software is; you
are likely to have difficulty making it work on any non-Unix machine.
A different free JPEG implementation, written by the PVRG group at Stanford, is
available from ftp://havefun.stanford.edu/pub/jpeg/. This program is designed for
research and experimentation rather than production use; it is slower, harder to use, and
less portable than the IJG code, but it is easier to read and modify. Also, the PVRG code
supports lossless JPEG, which we do not. (On the other hand, it doesn’t do progressive
JPEG.)
FILE FORMAT WARS
Some JPEG programs produce files that are not compatible with our library. The root of
the problem is that the ISO JPEG committee failed to specify a concrete file format.
Some vendors “filled in the blanks” on their own, creating proprietary formats that no
one else could read. (For example, none of the early commercial JPEG implementations
for the Macintosh were able to exchange compressed files.)
The file format we have adopted is called JFIF (see REFERENCES). This format has
been agreed to by a number of major commercial JPEG vendors, and it has become the
de facto standard. JFIF is a minimal or “low end” representation. We recommend the use
of TIFF/JPEG (TIFF revision 6.0 as modified by TIFF Technical Note #2) for “high
end” applications that need to record a lot of additional data about an image. TIFF/JPEG
is fairly new and not yet widely supported, unfortunately.
The upcoming JPEG Part 3 standard defines a file format called SPIFF. SPIFF is
interoperable with JFIF, in the sense that most JFIF decoders should be able to read the
most common variant of SPIFF. SPIFF has some technical advantages over JFIF, but its
major claim to fame is simply that it is an official standard rather than an informal one.
At this point it is unclear whether SPIFF will supersede JFIF or whether JFIF will
remain the de-facto standard. IJG intends to support SPIFF once the standard is frozen,
but we have not decided whether it should become our default output format or not. (In
any case, our decoder will remain capable of reading JFIF indefinitely.)
Various proprietary file formats incorporating JPEG compression also exist. We have
little or no sympathy for the existence of these formats. Indeed, one of the original
reasons for developing this free software was to help force convergence on common,
open format standards for JPEG files. Don’t use a proprietary file format!
TO DO
The major thrust for v7 will probably be improvement of visual quality. The current
method for scaling the quantization tables is known not to be very good at low Q values.
We also intend to investigate block boundary smoothing, “poor man’s variable
quantization”, and other means of improving quality-vs-file-size performance without
sacrificing compatibility.
In future versions, we are considering supporting some of the upcoming JPEG Part 3
extensions --- principally, variable quantization and the SPIFF file format.
As always, speeding things up is of great interest.
Please send bug reports, offers of help, etc. to [email protected].
■
About PNG Reference Library
libpng versions 1.2.6, August 15, 2004, through 1.2.29, May 8, 2008, are Copyright (c)
2004, 2006-2008 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
Greg Roelofs
Tom Tanner
libpng versions 0.5, May 1995, through 0.88, January 1996, are Copyright (c) 1995,
1996 Guy Eric Schalnat, Group 42, Inc.
For the purposes of this copyright and license, “Contributing Authors” is defined as the
following set of individuals:
Andreas Dilger
Dave Martindale
Guy Eric Schalnat
Paul Schmidt
Tim Wegner
The PNG Reference Library is supplied “AS IS”. The Contributing Authors and Group
42, Inc. disclaim all warranties, expressed or implied, including, without limitation, the
warranties of merchantability and of fitness for any purpose. The Contributing Authors
and Group 42, Inc. assume no liability for direct, indirect, incidental, special, exemplary,
or consequential damages, which may result from the use of the PNG Reference Library,
even if advised of the possibility of such damage.
Permission is hereby granted to use, copy, modify, and distribute this source code, or
portions hereof, for any purpose, without fee, subject to the following restrictions:
1.
The origin of this source code must not be misrepresented.
2.
Altered versions must be plainly marked as such and must not be misrepresented
as being the original source.
3.
This Copyright notice may not be removed or altered from any source or altered
source distribution.
The Contributing Authors and Group 42, Inc. specifically permit, without fee, and
encourage the use of this source code as a component to supporting the PNG file format
in commercial products. If you use this source code in a product, acknowledgment is not
required but would be appreciated.
■
About zlib Library
Copyright notice:
(C) 1995-2004 Jean-loup Gailly and Mark Adler
This software is provided ‘as-is’, without any express or implied warranty. In no event
will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose, including
commercial applications, and to alter it and redistribute it freely, subject to the following
restrictions:
1.
The origin of this software must not be misrepresented; you must not claim that
you wrote the original software. If you use this software in a product, an
acknowledgment in the product documentation would be appreciated but is not
required.
2.
Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3.
This notice may not be removed or altered from any source distribution.
Jean-loup Gailly
Mark Adler
If you use the zlib library in a product, we would appreciate *not* receiving lengthy
legal documents to sign. The sources are provided for free but without warranty of any
kind. The library has been entirely written by Jean-loup Gailly and Mark Adler; it does
not include third-party code.
If you redistribute modified sources, we would appreciate that you include in the file
ChangeLog history information documenting your changes. Please read the FAQ for
more information on the distribution of modified source versions.