Subversion Repositories shark

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 pj 1
 jrevdct.c comes from the IJG libjpeg release,
2
The "official" archive site for this software is ftp.uu.net (Internet
3
address 192.48.96.9).  The most recent released version can always be
4
found there in directory graphics/jpeg.
5
This is the README from that software.
6
 
7
The Independent JPEG Group's JPEG software
8
==========================================
9
 
10
README for release 6a of 7-Feb-96
11
=================================
12
 
13
This distribution contains the sixth public release of the Independent JPEG
14
Group's free JPEG software.  You are welcome to redistribute this software and
15
to use it for any purpose, subject to the conditions under LEGAL ISSUES, below.
16
 
17
Serious users of this software (particularly those incorporating it into
18
larger programs) should contact IJG at jpeg-info@uunet.uu.net to be added to
19
our electronic mailing list.  Mailing list members are notified of updates
20
and have a chance to participate in technical discussions, etc.
21
 
22
This software is the work of Tom Lane, Philip Gladstone, Luis Ortiz, Jim
23
Boucher, Lee Crocker, Julian Minguillon, George Phillips, Davide Rossi,
24
Ge' Weijers, and other members of the Independent JPEG Group.
25
 
26
IJG is not affiliated with the official ISO JPEG standards committee.
27
 
28
 
29
DOCUMENTATION ROADMAP
30
=====================
31
 
32
This file contains the following sections:
33
 
34
OVERVIEW            General description of JPEG and the IJG software.
35
LEGAL ISSUES        Copyright, lack of warranty, terms of distribution.
36
REFERENCES          Where to learn more about JPEG.
37
ARCHIVE LOCATIONS   Where to find newer versions of this software.
38
RELATED SOFTWARE    Other stuff you should get.
39
FILE FORMAT WARS    Software *not* to get.
40
TO DO               Plans for future IJG releases.
41
 
42
Other documentation files in the distribution are:
43
 
44
User documentation:
45
  install.doc       How to configure and install the IJG software.
46
  usage.doc         Usage instructions for cjpeg, djpeg, jpegtran,
47
                    rdjpgcom, and wrjpgcom.
48
  *.1               Unix-style man pages for programs (same info as usage.doc).
49
  wizard.doc        Advanced usage instructions for JPEG wizards only.
50
  change.log        Version-to-version change highlights.
51
Programmer and internal documentation:
52
  libjpeg.doc       How to use the JPEG library in your own programs.
53
  example.c         Sample code for calling the JPEG library.
54
  structure.doc     Overview of the JPEG library's internal structure.
55
  filelist.doc      Road map of IJG files.
56
  coderules.doc     Coding style rules --- please read if you contribute code.
57
 
58
Please read at least the files install.doc and usage.doc.  Useful information
59
can also be found in the JPEG FAQ (Frequently Asked Questions) article.  See
60
ARCHIVE LOCATIONS below to find out where to obtain the FAQ article.
61
 
62
If you want to understand how the JPEG code works, we suggest reading one or
63
more of the REFERENCES, then looking at the documentation files (in roughly
64
the order listed) before diving into the code.
65
 
66
 
67
OVERVIEW
68
========
69
 
70
This package contains C software to implement JPEG image compression and
71
decompression.  JPEG (pronounced "jay-peg") is a standardized compression
72
method for full-color and gray-scale images.  JPEG is intended for compressing
73
"real-world" scenes; line drawings, cartoons and other non-realistic images
74
are not its strong suit.  JPEG is lossy, meaning that the output image is not
75
exactly identical to the input image.  Hence you must not use JPEG if you
76
have to have identical output bits.  However, on typical photographic images,
77
very good compression levels can be obtained with no visible change, and
78
remarkably high compression levels are possible if you can tolerate a
79
low-quality image.  For more details, see the references, or just experiment
80
with various compression settings.
81
 
82
This software implements JPEG baseline, extended-sequential, and progressive
83
compression processes.  Provision is made for supporting all variants of these
84
processes, although some uncommon parameter settings aren't implemented yet.
85
For legal reasons, we are not distributing code for the arithmetic-coding
86
variants of JPEG; see LEGAL ISSUES.  We have made no provision for supporting
87
the hierarchical or lossless processes defined in the standard.
88
 
89
We provide a set of library routines for reading and writing JPEG image files,
90
plus two sample applications "cjpeg" and "djpeg", which use the library to
91
perform conversion between JPEG and some other popular image file formats.
92
The library is intended to be reused in other applications.
93
 
94
In order to support file conversion and viewing software, we have included
95
considerable functionality beyond the bare JPEG coding/decoding capability;
96
for example, the color quantization modules are not strictly part of JPEG
97
decoding, but they are essential for output to colormapped file formats or
98
colormapped displays.  These extra functions can be compiled out of the
99
library if not required for a particular application.  We have also included
100
"jpegtran", a utility for lossless transcoding between different JPEG
101
processes, and "rdjpgcom" and "wrjpgcom", two simple applications for
102
inserting and extracting textual comments in JFIF files.
103
 
104
The emphasis in designing this software has been on achieving portability and
105
flexibility, while also making it fast enough to be useful.  In particular,
106
the software is not intended to be read as a tutorial on JPEG.  (See the
107
REFERENCES section for introductory material.)  Rather, it is intended to
108
be reliable, portable, industrial-strength code.  We do not claim to have
109
achieved that goal in every aspect of the software, but we strive for it.
110
 
111
We welcome the use of this software as a component of commercial products.
112
No royalty is required, but we do ask for an acknowledgement in product
113
documentation, as described under LEGAL ISSUES.
114
 
115
 
116
LEGAL ISSUES
117
============
118
 
119
In plain English:
120
 
121
1. We don't promise that this software works.  (But if you find any bugs,
122
   please let us know!)
123
2. You can use this software for whatever you want.  You don't have to pay us.
124
3. You may not pretend that you wrote this software.  If you use it in a
125
   program, you must acknowledge somewhere in your documentation that
126
   you've used the IJG code.
127
 
128
In legalese:
129
 
130
The authors make NO WARRANTY or representation, either express or implied,
131
with respect to this software, its quality, accuracy, merchantability, or
132
fitness for a particular purpose.  This software is provided "AS IS", and you,
133
its user, assume the entire risk as to its quality and accuracy.
134
 
135
This software is copyright (C) 1991-1996, Thomas G. Lane.
136
All Rights Reserved except as specified below.
137
 
138
Permission is hereby granted to use, copy, modify, and distribute this
139
software (or portions thereof) for any purpose, without fee, subject to these
140
conditions:
141
(1) If any part of the source code for this software is distributed, then this
142
README file must be included, with this copyright and no-warranty notice
143
unaltered; and any additions, deletions, or changes to the original files
144
must be clearly indicated in accompanying documentation.
145
(2) If only executable code is distributed, then the accompanying
146
documentation must state that "this software is based in part on the work of
147
the Independent JPEG Group".
148
(3) Permission for use of this software is granted only if the user accepts
149
full responsibility for any undesirable consequences; the authors accept
150
NO LIABILITY for damages of any kind.
151
 
152
These conditions apply to any software derived from or based on the IJG code,
153
not just to the unmodified library.  If you use our work, you ought to
154
acknowledge us.
155
 
156
Permission is NOT granted for the use of any IJG author's name or company name
157
in advertising or publicity relating to this software or products derived from
158
it.  This software may be referred to only as "the Independent JPEG Group's
159
software".
160
 
161
We specifically permit and encourage the use of this software as the basis of
162
commercial products, provided that all warranty or liability claims are
163
assumed by the product vendor.
164
 
165
 
166
ansi2knr.c is included in this distribution by permission of L. Peter Deutsch,
167
sole proprietor of its copyright holder, Aladdin Enterprises of Menlo Park, CA.
168
ansi2knr.c is NOT covered by the above copyright and conditions, but instead
169
by the usual distribution terms of the Free Software Foundation; principally,
170
that you must include source code if you redistribute it.  (See the file
171
ansi2knr.c for full details.)  However, since ansi2knr.c is not needed as part
172
of any program generated from the IJG code, this does not limit you more than
173
the foregoing paragraphs do.
174
 
175
The configuration script "configure" was produced with GNU Autoconf.  It
176
is copyright by the Free Software Foundation but is freely distributable.
177
 
178
It appears that the arithmetic coding option of the JPEG spec is covered by
179
patents owned by IBM, AT&T, and Mitsubishi.  Hence arithmetic coding cannot
180
legally be used without obtaining one or more licenses.  For this reason,
181
support for arithmetic coding has been removed from the free JPEG software.
182
(Since arithmetic coding provides only a marginal gain over the unpatented
183
Huffman mode, it is unlikely that very many implementations will support it.)
184
So far as we are aware, there are no patent restrictions on the remaining
185
code.
186
 
187
WARNING: Unisys has begun to enforce their patent on LZW compression against
188
GIF encoders and decoders.  You will need a license from Unisys to use the
189
included rdgif.c or wrgif.c files in a commercial or shareware application.
190
At this time, Unisys is not enforcing their patent against freeware, so
191
distribution of this package remains legal.  However, we intend to remove
192
GIF support from the IJG package as soon as a suitable replacement format
193
becomes reasonably popular.
194
 
195
We are required to state that
196
    "The Graphics Interchange Format(c) is the Copyright property of
197
    CompuServe Incorporated.  GIF(sm) is a Service Mark property of
198
    CompuServe Incorporated."
199
 
200
 
201
REFERENCES
202
==========
203
 
204
We highly recommend reading one or more of these references before trying to
205
understand the innards of the JPEG software.
206
 
207
The best short technical introduction to the JPEG compression algorithm is
208
	Wallace, Gregory K.  "The JPEG Still Picture Compression Standard",
209
	Communications of the ACM, April 1991 (vol. 34 no. 4), pp. 30-44.
210
(Adjacent articles in that issue discuss MPEG motion picture compression,
211
applications of JPEG, and related topics.)  If you don't have the CACM issue
212
handy, a PostScript file containing a revised version of Wallace's article
213
is available at ftp.uu.net, graphics/jpeg/wallace.ps.gz.  The file (actually
214
a preprint for an article that appeared in IEEE Trans. Consumer Electronics)
215
omits the sample images that appeared in CACM, but it includes corrections
216
and some added material.  Note: the Wallace article is copyright ACM and
217
IEEE, and it may not be used for commercial purposes.
218
 
219
A somewhat less technical, more leisurely introduction to JPEG can be found in
220
"The Data Compression Book" by Mark Nelson, published by M&T Books (Redwood
221
City, CA), 1991, ISBN 1-55851-216-0.  This book provides good explanations and
222
example C code for a multitude of compression methods including JPEG.  It is
223
an excellent source if you are comfortable reading C code but don't know much
224
about data compression in general.  The book's JPEG sample code is far from
225
industrial-strength, but when you are ready to look at a full implementation,
226
you've got one here...
227
 
228
The best full description of JPEG is the textbook "JPEG Still Image Data
229
Compression Standard" by William B. Pennebaker and Joan L. Mitchell, published
230
by Van Nostrand Reinhold, 1993, ISBN 0-442-01272-1.  Price US$59.95, 638 pp.
231
The book includes the complete text of the ISO JPEG standards (DIS 10918-1
232
and draft DIS 10918-2).  This is by far the most complete exposition of JPEG
233
in existence, and we highly recommend it.
234
 
235
The JPEG standard itself is not available electronically; you must order a
236
paper copy through ISO or ITU.  (Unless you feel a need to own a certified
237
official copy, we recommend buying the Pennebaker and Mitchell book instead;
238
it's much cheaper and includes a great deal of useful explanatory material.)
239
In the USA, copies of the standard may be ordered from ANSI Sales at (212)
240
642-4900, or from Global Engineering Documents at (800) 854-7179.  (ANSI
241
doesn't take credit card orders, but Global does.)  It's not cheap: as of
242
1992, ANSI was charging $95 for Part 1 and $47 for Part 2, plus 7%
243
shipping/handling.  The standard is divided into two parts, Part 1 being the
244
actual specification, while Part 2 covers compliance testing methods.  Part 1
245
is titled "Digital Compression and Coding of Continuous-tone Still Images,
246
Part 1: Requirements and guidelines" and has document numbers ISO/IEC IS
247
10918-1, ITU-T T.81.  Part 2 is titled "Digital Compression and Coding of
248
Continuous-tone Still Images, Part 2: Compliance testing" and has document
249
numbers ISO/IEC IS 10918-2, ITU-T T.83.
250
 
251
Extensions to the original JPEG standard are defined in JPEG Part 3, a new ISO
252
document.  Part 3 is undergoing ISO balloting and is expected to be approved
253
by the end of 1995; it will have document numbers ISO/IEC IS 10918-3, ITU-T
254
T.84.  IJG currently does not support any Part 3 extensions.
255
 
256
The JPEG standard does not specify all details of an interchangeable file
257
format.  For the omitted details we follow the "JFIF" conventions, revision
258
1.02.  A copy of the JFIF spec is available from:
259
	Literature Department
260
	C-Cube Microsystems, Inc.
261
	1778 McCarthy Blvd.
262
	Milpitas, CA 95035
263
	phone (408) 944-6300,  fax (408) 944-6314
264
A PostScript version of this document is available at ftp.uu.net, file
265
graphics/jpeg/jfif.ps.gz.  It can also be obtained by e-mail from the C-Cube
266
mail server, netlib@c3.pla.ca.us.  Send the message "send jfif_ps from jpeg"
267
to the server to obtain the JFIF document; send the message "help" if you have
268
trouble.
269
 
270
The TIFF 6.0 file format specification can be obtained by FTP from sgi.com
271
(192.48.153.1), file graphics/tiff/TIFF6.ps.Z; or you can order a printed
272
copy from Aldus Corp. at (206) 628-6593.  The JPEG incorporation scheme
273
found in the TIFF 6.0 spec of 3-June-92 has a number of serious problems.
274
IJG does not recommend use of the TIFF 6.0 design (TIFF Compression tag 6).
275
Instead, we recommend the JPEG design proposed by TIFF Technical Note #2
276
(Compression tag 7).  Copies of this Note can be obtained from sgi.com or
277
from ftp.uu.net:/graphics/jpeg/.  It is expected that the next revision of
278
the TIFF spec will replace the 6.0 JPEG design with the Note's design.
279
Although IJG's own code does not support TIFF/JPEG, the free libtiff library
280
uses our library to implement TIFF/JPEG per the Note.  libtiff is available
281
from sgi.com:/graphics/tiff/.
282
 
283
 
284
ARCHIVE LOCATIONS
285
=================
286
 
287
The "official" archive site for this software is ftp.uu.net (Internet
288
address 192.48.96.9).  The most recent released version can always be found
289
there in directory graphics/jpeg.  This particular version will be archived
290
as graphics/jpeg/jpegsrc.v6a.tar.gz.  If you are on the Internet, you
291
can retrieve files from ftp.uu.net by standard anonymous FTP.  If you don't
292
have FTP access, UUNET's archives are also available via UUCP; contact
293
help@uunet.uu.net for information on retrieving files that way.
294
 
295
Numerous Internet sites maintain copies of the UUNET files.  However, only
296
ftp.uu.net is guaranteed to have the latest official version.
297
 
298
You can also obtain this software in DOS-compatible "zip" archive format from
299
the SimTel archives (ftp.coast.net:/SimTel/msdos/graphics/), or on CompuServe
300
in the Graphics Support forum (GO CIS:GRAPHSUP), library 12 "JPEG Tools".
301
Again, these versions may sometimes lag behind the ftp.uu.net release.
302
 
303
The JPEG FAQ (Frequently Asked Questions) article is a useful source of
304
general information about JPEG.  It is updated constantly and therefore is
305
not included in this distribution.  The FAQ is posted every two weeks to
306
Usenet newsgroups comp.graphics.misc, news.answers, and other groups.
307
You can always obtain the latest version from the news.answers archive at
308
rtfm.mit.edu.  By FTP, fetch /pub/usenet/news.answers/jpeg-faq/part1 and
309
.../part2.  If you don't have FTP, send e-mail to mail-server@rtfm.mit.edu
310
with body
311
	send usenet/news.answers/jpeg-faq/part1
312
	send usenet/news.answers/jpeg-faq/part2
313
 
314
 
315
RELATED SOFTWARE
316
================
317
 
318
Numerous viewing and image manipulation programs now support JPEG.  (Quite a
319
few of them use this library to do so.)  The JPEG FAQ described above lists
320
some of the more popular free and shareware viewers, and tells where to
321
obtain them on Internet.
322
 
323
If you are on a Unix machine, we highly recommend Jef Poskanzer's free
324
PBMPLUS image software, which provides many useful operations on PPM-format
325
image files.  In particular, it can convert PPM images to and from a wide
326
range of other formats.  You can obtain this package by FTP from ftp.x.org
327
(contrib/pbmplus*.tar.Z) or ftp.ee.lbl.gov (pbmplus*.tar.Z).  There is also
328
a newer update of this package called NETPBM, available from
329
wuarchive.wustl.edu under directory /graphics/graphics/packages/NetPBM/.
330
Unfortunately PBMPLUS/NETPBM is not nearly as portable as the IJG software
331
is; you are likely to have difficulty making it work on any non-Unix machine.
332
 
333
A different free JPEG implementation, written by the PVRG group at Stanford,
334
is available from havefun.stanford.edu in directory pub/jpeg.  This program
335
is designed for research and experimentation rather than production use;
336
it is slower, harder to use, and less portable than the IJG code, but it
337
is easier to read and modify.  Also, the PVRG code supports lossless JPEG,
338
which we do not.
339
 
340
 
341
FILE FORMAT WARS
342
================
343
 
344
Some JPEG programs produce files that are not compatible with our library.
345
The root of the problem is that the ISO JPEG committee failed to specify a
346
concrete file format.  Some vendors "filled in the blanks" on their own,
347
creating proprietary formats that no one else could read.  (For example, none
348
of the early commercial JPEG implementations for the Macintosh were able to
349
exchange compressed files.)
350
 
351
The file format we have adopted is called JFIF (see REFERENCES).  This format
352
has been agreed to by a number of major commercial JPEG vendors, and it has
353
become the de facto standard.  JFIF is a minimal or "low end" representation.
354
We recommend the use of TIFF/JPEG (TIFF revision 6.0 as modified by TIFF
355
Technical Note #2) for "high end" applications that need to record a lot of
356
additional data about an image.  TIFF/JPEG is fairly new and not yet widely
357
supported, unfortunately.
358
 
359
The upcoming JPEG Part 3 standard defines a file format called SPIFF.
360
SPIFF is interoperable with JFIF, in the sense that most JFIF decoders should
361
be able to read the most common variant of SPIFF.  SPIFF has some technical
362
advantages over JFIF, but its major claim to fame is simply that it is an
363
official standard rather than an informal one.  At this point it is unclear
364
whether SPIFF will supersede JFIF or whether JFIF will remain the de-facto
365
standard.  IJG intends to support SPIFF once the standard is frozen, but we
366
have not decided whether it should become our default output format or not.
367
(In any case, our decoder will remain capable of reading JFIF indefinitely.)
368
 
369
Various proprietary file formats incorporating JPEG compression also exist.
370
We have little or no sympathy for the existence of these formats.  Indeed,
371
one of the original reasons for developing this free software was to help
372
force convergence on common, open format standards for JPEG files.  Don't
373
use a proprietary file format!
374
 
375
 
376
TO DO
377
=====
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
Tuning the software for better behavior at low quality/high compression
384
settings is also of interest.  The current method for scaling the
385
quantization tables is known not to be very good at low Q values.
386
 
387
As always, speeding things up is high on our priority list.
388
 
389
Please send bug reports, offers of help, etc. to jpeg-info@uunet.uu.net.