Libjpg – Pioneer BDP-320 Manuel d'utilisation

Page 49

Advertising
background image

49

Fr

07

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.
A “png_get_copyright” function is available, for convenient
use in “about” boxes and the like:
printf(“%s”,png_get_copyright(NULL));Also, the PNG logo
(in PNG format, of course) is supplied in the files
“pngbar.png” and “pngbar.jpg (88x31) and “pngnow.png”
(98x31).
Libpng is OSI Certified Open Source Software. OSI Certified
Open Source is a certification mark of the Open Source
Initiative.

Glenn Randers-Pehrson
glennrp at users.sourceforge.net
2-Apr-08

libjpg

The Independent JPEG Group’s JPEG software
README for release 6b of 27-Mar-1998
This distribution contains the sixth public release of the
Independent JPEG Group’s free JPEG software. You are welcome
to redistribute this software and to use it for any purpose, subject
to the conditions under LEGAL ISSUES, below.
Serious users of this software (particularly those
incorporating it into larger programs) should contact IJG at
[email protected] to be added to our electronic mailing
list. Mailing list members are notified of updates and have a
chance to participate in technical discussions, etc.
This software is the work of Tom Lane, Philip Gladstone, Jim
Boucher, Lee Crocker, Julian Minguillon, Luis Ortiz, George
Phillips, Davide Rossi, Guido Vollbeding, Ge’ Weijers, and
other members of the Independent JPEG Group.
IJG is not affiliated with the official ISO JPEG standards
committee.
DOCUMENTATION ROADMAP
This file contains the following sections:
OVERVIEW

General description of JPEG and the
IJG software.

LEGAL ISSUES

Copyright, lack of warranty, terms of
distribution.

REFERENCES

Where to learn more about JPEG.

ARCHIVE LOCATIONS Where to find newer versions of this

software.

RELATED SOFTWARE

Other stuff you should get.

FILE FORMAT WARS

Software *not* to get.

TO DO

Plans for future IJG releases.

Other documentation files in the distribution are:
User documentation:

install.doc

How to configure and install the IJG
software.

usage.doc

Usage instructions for cjpeg, djpeg,
jpegtran, rdjpgcom, and wrjpgcom.

*.1 Unix-style man pages for programs (same info as

usage.doc).

wizard.doc

Advanced usage instructions for JPEG
wizards only.

change.log

Version-to-version change highlights.

Programmer and internal documentation:

libjpeg.doc

How to use the JPEG library in your own
programs.

example.c

Sample code for calling the JPEG library.

structure.doc

Overview of the JPEG library’s internal
structure.

filelist.doc

Road map of IJG files.

coderules.doc Coding style rules --- please read if you

contribute code.

Please read at least the files install.doc and usage.doc. Useful
information can also be found in the JPEG FAQ (Frequently
Asked Questions) article. See ARCHIVE LOCATIONS below to
find out where to obtain the FAQ article.
If you want to understand how the JPEG code works, we
suggest reading one or more of the REFERENCES, then
looking at the documentation files (in roughly the order
listed) before diving into the code.
OVERVIEW
This package contains C software to implement JPEG image
compression and decompression. JPEG (pronounced “jay-peg”) is
a standardized compression method for full-color and gray-scale
images. JPEG is intended for compressing real-world scenes; line
drawings, cartoons and other non-realistic images are not its
strong suit. JPEG is lossy, meaning that the output image is not
exactly identical to the input image. Hence you must not use JPEG
if you have to have identical output bits. However, on typical
photographic images, very good compression levels can be
obtained with no visible change, and remarkably high
compression levels are possible if you can tolerate a low-quality
image. For more details, see the references, or just experiment
with various compression settings.
This software implements JPEG baseline, extended-sequential,
and progressive compression processes. Provision is made for
supporting all variants of these processes, although some
uncommon parameter settings aren’t implemented yet. For
legal reasons, we are not distributing code for the arithmetic-
coding variants of JPEG; see LEGAL ISSUES. We have made no
provision for supporting the hierarchical or lossless processes
defined in the standard.
We provide a set of library routines for reading and writing
JPEG image files, plus two sample applications “cjpeg” and

“djpeg”, which use the library to perform conversion
between JPEG and some other popular image file formats.
The library is intended to be reused in other applications.
In order to support file conversion and viewing software, we
have included considerable functionality beyond the bare
JPEG coding/decoding capability; for example, the color
quantization modules are not strictly part of JPEG decoding,
but they are essential for output to colormapped file formats
or colormapped displays. These extra functions can be
compiled out of the library if not required for a particular
application. We have also included jpegtran, a utility for
lossless transcoding between different JPEG processes, and
“rdjpgcom” and “wrjpgcom”, two simple applications for
inserting and extracting textual comments in JFIF files.
The emphasis in designing this software has been on
achieving portability and flexibility, while also making it fast
enough to be useful. In particular, the software is not
intended to be read as a tutorial on JPEG. (See the
REFERENCES section for introductory material.) Rather, it is
intended to be reliable, portable, industrial-strength code.
We do not claim to have achieved that goal in every aspect
of the software, but we strive for it.
We welcome the use of this software as a component of
commercial products. No royalty is required, but we do ask
for an acknowledgement in product documentation, as
described under LEGAL ISSUES.
LEGAL ISSUES
In plain English:
1. We don’t promise that this software works. (But if you find

any bugs, please let us know!)

2. You can use this software for whatever you want. You don’t

have to pay us.

3. You may not pretend that you wrote this software. If you

use it in a program, you must acknowledge somewhere in
your documentation that you’ve used the IJG code.

In legalese:
The authors make NO WARRANTY or representation, either
express or implied, with respect to this software, its quality,
accuracy, merchantability, or fitness for a particular
purpose. This software is provided “AS IS”, and you, its user,
assume the entire risk as to its quality and accuracy.
This software is copyright © 1991-1998, Thomas G. Lane. All
Rights Reserved except as specified below.
Permission is hereby granted to use, copy, modify, and
distribute this software (or portions thereof) for any purpose,
without fee, subject to these conditions:
(1)If any part of the source code for this software is

distributed, then this README file must be included, with
this copyright and no-warranty notice unaltered; and any
additions, deletions, or changes to the original files must
be clearly indicated in accompanying documentation.

(2)If only executable code is distributed, then the accompanying

documentation must state that “this software is based in part
on the work of the Independent JPEG Group”.

(3)Permission for use of this software is granted only if the

user accepts full responsibility for any undesirable
consequences; the authors accept NO LIABILITY for
damages of any kind.

These conditions apply to any software derived from or
based on the IJG code, not just to the unmodified library. If
you use our work, you ought to acknowledge us.
Permission is NOT granted for the use of any IJG author’s name
or company name in advertising or publicity relating to this
software or products derived from it. This software may be
referred to only as “the Independent JPEG Group’s software”.
We specifically permit and encourage the use of this software as
the basis of commercial products, provided that all warranty or
liability claims are assumed by the product vendor.
ansi2knr.c is included in this distribution by permission of L.
Peter Deutsch, sole proprietor of its copyright holder,
Aladdin Enterprises of Menlo Park, CA. ansi2knr.c is NOT
covered by the above copyright and conditions, but instead
by the usual distribution terms of the Free Software
Foundation; principally, that you must include source code if
you redistribute it. (See the file ansi2knr.c for full details.)
However, since ansi2knr.c is not needed as part of any
program generated from the IJG code, this does not limit you
more than the foregoing paragraphs do.
The Unix configuration script “configure” was produced with
GNU Autoconf. It is copyright by the Free Software
Foundation but is freely distributable. The same holds for its
supporting scripts (config.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 JPEG 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, support for
arithmetic coding has been removed from the free JPEG
software. (Since arithmetic coding provides only a marginal
gain over the unpatented Huffman mode, it is unlikely that
very many implementations will support it.) So far as we are
aware, there are no patent restrictions on the remaining
code.
The IJG distribution formerly included code to read and write
GIF files. To avoid entanglement with the Unisys LZW patent,
GIF reading support has been removed altogether, and the
GIF writer has been simplified to produce uncompressed
GIFs. This technique does not use the 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 Graphics Interchange Format(c) is the Copyright
property of CompuServe Incorporated. GIF(sm) is a
Service Mark property of CompuServe Incorporated.”

REFERENCES
We highly recommend reading one or more of these
references before trying to understand the innards of the
JPEG software.
The best short technical introduction to the JPEG
compression algorithm is

Wallace, Gregory K. “The JPEG Still Picture Compression
Standard”,
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 ftp://ftp.uu.net/graphics/jpeg/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 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-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).
This is by far the most complete exposition of JPEG in
existence, and we highly recommend it.
The JPEG standard itself is not available electronically; you
must order a paper copy through ISO or ITU. (Unless you feel
a need to own a certified official copy, we recommend
buying the Pennebaker and Mitchell book instead; it’s much
cheaper and includes a great deal of useful explanatory
material.) In the USA, copies of the standard may be ordered
from ANSI Sales at (212) 642-4900, or from Global
Engineering Documents at (800) 854-7179. (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% shipping/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 “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.
Some extensions to the original JPEG standard are defined
in JPEG Part 3, a newer ISO standard numbered ISO/IEC IS
10918-3 and ITU-T T.84. IJG currently does not support any
Part 3 extensions.
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 by FTP at
ftp://ftp.uu.net/graphics/jpeg/jfif.ps.gz. There 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 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 ftp.sgi.com or from ftp://ftp.uu.net/graphics/
jpeg/. 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. libtiff is available from ftp://ftp.sgi.com/graphics/
tiff/.
ARCHIVE LOCATIONS
The “official” archive site for this software is ftp.uu.net
(Internet address 192.48.96.9). The most recent released
version can always be found there in directory graphics/jpeg.
This particular version will be archived as ftp://ftp.uu.net/
graphics/jpeg/jpegsrc.v6b.tar.gz. If you don’t have direct
Internet access, UUNET’s archives are also available via
UUCP; contact [email protected] for information on
retrieving files that way.
Numerous Internet sites maintain copies of the UUNET files.
However, only ftp.uu.net is guaranteed to have the latest
official version.
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.

320_YXJ5_IBD_FR.book Page 49 Monday, March 2, 2009 9:58 AM

Advertising