07
50
Nl
program generated from the IJG code, this does not limit
you more than the fore going paragraphs do.
The Unix configur ation script “confi gure” was produced
with GNU Autoconf . It is copyright by the Fr ee Software
Foundation but is freel y distributable. The sam e holds for its
supporting scripts (con fig.guess, config.sub, ltconfig,
ltmain.sh). Another support script, install-sh, is copyright
by M.I.T. but is also freely distributable.
It appears that the arithmetic coding option of the JPE G
spec is covered by patents owned by IBM, AT&T, and
Mitsubishi. Hence arithmetic coding cannot legally be
used without obtaining one or more licenses. For this
reason, s upport f or arithmet ic coding h as been re moved
from the free JPEG software. (Since arithmetic coding
provides only a marginal gain over the unpatented Huffman
mode, it is unlikely that very many implementat ions will
support it.) So far as we are aware, there are n o patent
restricti ons on the remaining co de.
The IJG distribution formerly inclu ded code to read and
write GIF files. To avoid entanglement with the Unisys LZW
patent, GIF rea ding support has been removed altoge ther,
and the GIF writer has been sim plified to produce
uncompressed G IFs. This techni que does not use th e LZW
algorithm; the resulting GIF files are larger than usual, but
are readable by all standard GIF decoders.
We are required to state that
“The Graphic s Interchan ge Format( c) is the Copyrig ht
property of C ompuServe Incorpor ated. GIF(sm) is a
Service Ma rk proper ty of Com puServe Incorpor ated.”
REFERENCES
We highly recommen d reading on e or more of these
references before trying to understan d the innards of th e
JPEG sof tware.
The best short technical intr oduction to the JPEG
compress ion algorith m is
Wallace, Gregory K. “The JPEG Still Picture Compression
Standard”,
Communications of the ACM, Ap ril 1991 (vol. 3 4 no. 4),
pp. 30-44.
(Adjacent articles in that issue discuss MPEG motion
picture compression, applications of JPEG, and related
topics.) If y ou don’t have the CACM issu e handy, a
PostScript file containing a revised ve rsion of Wallace’s
article is available at ftp://ftp.uu.net/ graphics/jpeg/
wallace.ps.gz. The file (actually a preprint for an article that
appeared in IEEE Tran s. Consumer Electronics) omits the
sample images that appeared in CACM, but it inclu des
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 te chnical, more le isurely introduction to
JPEG can be found in T he Data Compression Book by Mark
Nelson and Jean-loup Gailly, published by M&T Books (New
York), 2nd e d. 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 compre ssion in general. The book’s
JPEG sample code is far from industrial-str ength, but when
you are ready to look at a full implementation, you’ve got
one here...
The best full 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-0127 2-1. Price
US$59.95, 638 pp. The book includes the compl ete text of
the ISO JPEG standards (DIS 10918-1 and draft DIS 1091 8-
2). This is by far the most complete exposition of JPEG in
existence, and we highly rec ommend it.
The JPEG standard itself is not available electronically; you
must order a paper copy through ISO or ITU. (Unless you
feel a need t o own a certified official copy, we recommend
buying the Pennebaker and Mitchell book instead; it’s
much cheaper and includes a great deal of usefu l
explanatory material.) In the USA, copies of the standard
may be ord ered fro m ANSI Sales at (212) 64 2-4900, o r from
Global Engineerin g Documen ts at (800 ) 854-71 79. (ANSI
doesn’t take credit card orders, but Global does .) It’s not
cheap: as of 1992, ANSI was charging $95 for Part 1 and $47
for Part 2, plus 7% shippin g/handling. The standard is
divided into two parts, Part 1 being the actual specification,
while Part 2 covers compliance testing methods. Part 1 is
titled “Digit al Compression and Codi ng of Continuous-t one
Still Images, Part 1: Requirements and guideli nes” and has
document number s ISO/IEC IS 10918-1, ITU-T T.81. Part 2 is
titled “Digit al Compression and Codi ng of Continuous-t one
Still Images, Part 2: Compliance testing” and has
document number s ISO/IEC IS 10918-2, I TU-T T.83.
Some extensions to the original JPEG standard are defined
i n J P E G P a r t 3 , a n e w e r IS O s t and a r d n u mbe r e d I S O/I E C I S
10918-3 and ITU-T T. 84. IJG currently does no t support any
Part 3 extensions .
The JPEG standard does not specify all details of an
interchangeable file format. For the omitte d details we
follow th e “JFIF” convention s, revisio n 1.02. A copy of the
JFIF spec is available from:
Literature Department
C-Cube Microsy stems, Inc.
1778 McCarthy Blvd .
Milpi tas, CA 95035
phone (408) 944 -6300, fax (408) 944- 6314
A PostScript version of this document is available by FTP at
ftp://ftp.uu.net/ graphics/jpeg/jfif.ps.gz. T here is also a plain
text version at ftp://ftp.uu.net/graphics/ jpeg/jfif.txt.gz, but it
is missing the figures.
The TIFF 6.0 file format specification c an be obtained by FTP
from ftp://ftp.sgi.c om/graphics/tiff/TIFF6.ps. gz. The JPEG
incorporation scheme found in the TIFF 6.0 spec of 3-June -
92 has a numb er of serious problems. IJG do es not
recomm end use of the TIF F 6.0 desig n (TIFF Comp ression
tag 6). Instead, we recommend the JPEG design pr oposed
by TIFF Technical No te #2 (Compression tag 7). Co pies of
this Note can be obtained from ftp.sgi.com or fro m ftp://
ftp.uu.net/ graphics/jpeg/. It is expect ed that the next
revision of the TIFF spec will replace the 6.0 JPEG design
with the Note’s de sign. Although IJ G’s own co de does not
support TIFF/JPEG, the free li btiff library uses our library to
implement TI FF/JPEG per the Note . libtiff is available fr om
ftp://ftp.sgi.com/grap hics/tiff/.
ARCHIVE LOCATIONS
The “official” archive site for this software is ftp.uu.net
(Internet addre ss 192.48.96.9). The most recent released
version can always be found there in directory graphics/
jpeg. This p articular vers ion will be archive d as ftp://
ftp.uu.net/ graphics/jpeg/ jpegsrc.v6b.ta r.gz. If you don’t
have direct Internet acce ss, UUNET’s ar chives are also
available via UUCP; contact help@uunet.uu.net for
information on retrieving files that way.
Numerous Interne t sites maintain copies of the UUNET
files. Howe ver, only f tp.uu.net is gu aranteed to have the
latest official vers ion.
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 t he Graphics Support f orum (GO
CIS:GRAPHSUP) , library 12 JPEG Tools. Again, t hese
versions may some times lag behind the ftp.uu.net releas e.
The JPEG FAQ (Frequently Aske d Questions) article is a
useful source of general informatio n about JPEG. It is
updated constantly and therefore is not inc luded in this
distribu tion. The FAQ is po sted ev ery two we eks to Use net
newsgroup s comp.graphics .misc, news.an swers, and
other groups. It is av ailable on the World Wide Web at http: /
/www.faqs. org/faqs /jpeg-faq/ and other news.an swers
archive sites, inc luding the official news.answers archive at
rtfm.mit.e du: ftp:/ /rtfm.mit. edu/pub/ usenet/ne ws.answers /
jpeg-faq/. If yo u don’t have Web or FTP access, send e- mail
to mail-server@rtfm.m it.edu with body
send usenet/n ews.answers/jpeg-faq/par t1
send usenet/n ews.answers/jpeg-faq/par t2
RELATED SOFTWARE
Numerous vie wing and image mani pulation progra ms now
support JPEG. (Quite a few of them use this library to do so.)
The JPEG FAQ described above lists some of the mo re
popular free and shareware viewers, and tells where to
obtain them on Inte rnet.
If you are on a Unix machine, we highly re commend Jef
Poskanzer’s free PBMPLUS software, which provides many
useful operatio ns on PPM-format image files. In particular,
it can convert PPM images to and from a w ide range of
other formats, thus making cjpeg/djpeg considerably more
useful. The latest version is distributed by the NetPBM
group, and is avai lable from numerous sites, notably ftp://
wuarchive.wustl.edu/graphics/ graphics/packages/
NetPBM/. Unfortunatel y PBMPLUS/NET PBM is not nearly
as portable as the IJG software is; you are likely to have
difficulty m aking it work on any non-Unix ma chine.
A different free JPEG implementation , written by the PVRG
group at Stanford, is available from ftp://
havefun.stanford .edu/pub/jpeg/. Th is program is designed
for research and experimentation rather than production
use; it is slo wer, harder to use, an d less portab le than the
IJG code, but it is e asier to read and modify. Also, the PVRG
code supports lossless JPEG, which we do not. (On the
other hand, it doesn’t do prog ressive JPEG .)
FILE FORMA T WARS
Some JPEG programs produce files that are not compatible
with our library. Th e root of the problem is that th e ISO
JPEG committee failed to specify a concre te file format.
Some vendors “filled in th e blanks” on their own, creating
proprietar y formats that no one els e could read. (For
example, none of t he early commercial JPEG
implementations for the M acintosh were able to exchange
compress ed files .)
The file format we have adopted is called JFIF (see
REFERENCES). This form at has been agreed to by a
number of major c ommercial JPEG ven dors, and it has
become the de facto standard. JFIF is a minimal or “ low
end” represent ation. We recommend the use of TIFF/JPEG
(TIFF revision 6.0 as modif ied 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 wide ly supported , unfortun ately.
The upcoming JPEG Part 3 stan dard defines a file format
called SPIF F. SPIFF i s interope rable with JFIF, in th e sense
that most JFIF dec oders should be able to read the most
common vari ant of SPIFF. SPIFF has so me technical
advantages over JFIF, but its major claim t o 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 SPIF F once the standard is frozen , but we have
not decided whether it should become our default output
format or not. (In any cas e, our decoder will rema in capable
of reading JFIF indefini tely.)
Various propr ietary file formats incorporating JPEG
compression also exist. We have little or no sympathy fo r
the existence of these format s. Indeed, one of the original
reasons for dev eloping this free software was to he lp force
convergence on co mmon, open format standar ds for JPEG
files. Don ’t use a propr ietary fi le forma t!
TO DO
The major thrust for v7 will probably be improvement of
visual qual ity. The current me thod for scaling the
quantization tables is known n ot to be very good at lo w 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 ve rsions, we are consider ing suppo rting some o f
the upcoming JP EG Part 3 exte nsions --- princ ipally,
variable quantization and the SPIFF file format.
As always, speeding things up is of great interest.
Please send bug reports, offers of help, et c. to jpeg-
info@uune t.uu.net.
libupnp
Copyright (c) 2000-2003 Intel Corpor ation
All rights reserve d.
Redistribution and use in source and binary forms, with or
without modification, are permitted pr ovided that the
following conditions are met:
* Redistributio ns of sour ce code must retain the above
copyright notice, this list of conditions and the following
disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials
provided with the distribu tion.
* Neither nam e of Intel Corporation no r the names of its
contributor s may be used to endorse or promote
products de rived from th is software without sp ecific
prior written permission .
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
HOLDERS AND CONTRIBUTORS
“AS IS” AND ANY EX PRESS OR IMPL IED WARRANTIES ,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF M ERCHANTABILITY AND FI TNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
EVENT SHALL INTEL OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLU DING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SER VICES; LOSS OF USE, DATA,
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGE NCE OR OT HERWIS E) ARIS ING IN AN Y WAY O UT
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.
AVC/H.264
THIS PRODUCT IS LICENSED UNDER THE AVC PATENT
PORTFOLIO L ICENSE FOR TH E PERSONAL AND N ON-
COMMERCIAL USE OF A CONSUMER TO (i) ENCODE
VIDEO IN COMPLIANCE WITH THE AVC STANDARD (”AVC
VIDEO”) AND/OR (ii) DECODE AVC VIDEO THAT WAS
ENCODED BY A CONSUMER ENGAGED IN A PERS ONAL
AND NON-COMMERCIAL ACTIVITY AND/OR WAS
OBTAINED FROM A VIDEO PROVIDER LICENSED TO
PROVIDE AVC VIDEO. No LICENSE IS GRANTED OR
SHALL BE IMPLIED FOR ANY OTHER USE. ADDITIONAL
INFORMATION MAY BE OBTAINED FROM MPEG LA, L.L.C.
SEE HTTP://MPEGLA.COM.
GNU GENERAL PUBLIC LICEN SE
Version 2, June 199 1
Copyright © 198 9, 1991 Free Software Foundation, Inc., 51
Franklin Street , Fifth Floor, Boston, MA 0211 0-1301 USA
Everyone is p ermitted to copy and distribute v erbatim
copies of th is license documen t, but changi ng it is n ot
allowed.
Preamble
The licenses for mo st software are designed to take away
your freedom to share and change it. By co ntrast, the GNU
General Public License is intended to guarantee your
freedom to share and change free software - to make sure
320_YXJ5_IBD_NL.book Page 50 M onday, March 2, 2009 10: 13 AM