git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6000 dfc29bdd-3216-0410-991c-e03cc46cb475
		
			
				
	
	
		
			352 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			352 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| The Independent JPEG Group's JPEG software
 | |
| ==========================================
 | |
| 
 | |
| README for release 8d of 15-Jan-2012
 | |
| ====================================
 | |
| 
 | |
| This distribution contains the eighth 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.
 | |
| 
 | |
| This software is the work of Tom Lane, Guido Vollbeding, Philip Gladstone,
 | |
| Bill Allombert, Jim Boucher, Lee Crocker, Bob Friesenhahn, Ben Jackson,
 | |
| Julian Minguillon, Luis Ortiz, George Phillips, Davide Rossi, Ge' Weijers,
 | |
| and other members of the Independent JPEG Group.
 | |
| 
 | |
| IJG is not affiliated with the ISO/IEC JTC1/SC29/WG1 standards committee
 | |
| (also known as JPEG, together with ITU-T SG16).
 | |
| 
 | |
| 
 | |
| 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.
 | |
| ACKNOWLEDGMENTS     Special thanks.
 | |
| FILE FORMAT WARS    Software *not* to get.
 | |
| TO DO               Plans for future IJG releases.
 | |
| 
 | |
| Other documentation files in the distribution are:
 | |
| 
 | |
| User documentation:
 | |
|   install.txt       How to configure and install the IJG software.
 | |
|   usage.txt         Usage instructions for cjpeg, djpeg, jpegtran,
 | |
|                     rdjpgcom, and wrjpgcom.
 | |
|   *.1               Unix-style man pages for programs (same info as usage.txt).
 | |
|   wizard.txt        Advanced usage instructions for JPEG wizards only.
 | |
|   change.log        Version-to-version change highlights.
 | |
| Programmer and internal documentation:
 | |
|   libjpeg.txt       How to use the JPEG library in your own programs.
 | |
|   example.c         Sample code for calling the JPEG library.
 | |
|   structure.txt     Overview of the JPEG library's internal structure.
 | |
|   filelist.txt      Road map of IJG files.
 | |
|   coderules.txt     Coding style rules --- please read if you contribute code.
 | |
| 
 | |
| Please read at least the files install.txt and usage.txt.  Some 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 encoding, decoding,
 | |
| and transcoding.  JPEG (pronounced "jay-peg") is a standardized compression
 | |
| method for full-color and gray-scale images.
 | |
| 
 | |
| 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.
 | |
| 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 (C) 1991-2012, Thomas G. Lane, Guido Vollbeding.
 | |
| 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,
 | |
| ltmain.sh).  Another support script, install-sh, is copyright by X Consortium
 | |
| but is also freely distributable.
 | |
| 
 | |
| 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 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 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.
 | |
| IJG JPEG 8 introduces an implementation of the JPEG SmartScale extension
 | |
| which is specified in two documents:  A contributed document at ITU and ISO
 | |
| with title "ITU-T JPEG-Plus Proposal for Extending ITU-T T.81 for Advanced
 | |
| Image Coding", April 2006, Geneva, Switzerland.  The latest version of this
 | |
| document is Revision 3.  And a contributed document ISO/IEC JTC1/SC29/WG1 N
 | |
| 5799 with title "Evolution of JPEG", June/July 2011, Berlin, Germany.
 | |
| 
 | |
| 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.  JFIF 1.02 has been adopted as an Ecma International Technical Report
 | |
| and thus received a formal publication status.  It is available as a free
 | |
| download in PDF format from
 | |
| http://www.ecma-international.org/publications/techreports/E-TR-098.htm.
 | |
| A PostScript version of the JFIF 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.v8d.tar.gz, and in Windows-compatible
 | |
| "zip" archive format as http://www.ijg.org/files/jpegsr8d.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 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 Thomas Richter and Daniel Lee for inviting me to the
 | |
| ISO/IEC JTC1/SC29/WG1 (also known as JPEG, together with ITU-T SG16)
 | |
| meeting in Berlin, Germany.
 | |
| 
 | |
| 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, Simone Zuck, Guenther
 | |
| Maier-Gerber, Walter Stoeber, Fred Schmitz, and Norbert Braunagel
 | |
| 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.
 | |
| 
 | |
| Thank to Andrew Finkenstadt for hosting the ijg.org site.
 | |
| 
 | |
| Last but not least special thank to Thomas G. Lane for the original
 | |
| design and development of this singular software package.
 | |
| 
 | |
| 
 | |
| FILE FORMAT WARS
 | |
| ================
 | |
| 
 | |
| The ISO/IEC JTC1/SC29/WG1 standards committee (also known as JPEG, together
 | |
| with ITU-T SG16) currently promotes different formats containing the name
 | |
| "JPEG" which is misleading because these formats are incompatible with
 | |
| original DCT-based JPEG and are based on faulty technologies.
 | |
| IJG therefore does not and will not support such momentary mistakes
 | |
| (see REFERENCES).
 | |
| There exist also distributions under the name "OpenJPEG" promoting such
 | |
| kind of formats which is misleading because they don't support original
 | |
| JPEG images.
 | |
| We have no sympathy for the promotion of inferior 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.)
 | |
| 
 | |
| Furthermore, the ISO committee pretends to be "responsible for the popular
 | |
| JPEG" in their public reports which is not true because they don't respond to
 | |
| actual requirements for the maintenance of the original JPEG specification.
 | |
| 
 | |
| There are currently distributions in circulation containing the name
 | |
| "libjpeg" which claim to be a "derivative" or "fork" of the original
 | |
| libjpeg, but don't have the features and are incompatible with formats
 | |
| supported by actual IJG libjpeg distributions.  Furthermore, they
 | |
| violate the license conditions as described under LEGAL ISSUES above.
 | |
| We have no sympathy for the release of misleading and illegal
 | |
| distributions derived from obsolete code bases.
 | |
| Don't use an obsolete code base!
 | |
| 
 | |
| 
 | |
| TO DO
 | |
| =====
 | |
| 
 | |
| Version 8 is the first release of a new generation JPEG standard
 | |
| to overcome the limitations of the original JPEG specification.
 | |
| More features are being prepared for coming releases...
 | |
| 
 | |
| Please send bug reports, offers of help, etc. to jpeg-info@jpegclub.org.
 |