blob: 3a115aae9fde445ce6801044ce84deb6eef04e79 [file] [log] [blame]
Thomas G. Lane36a4ccc1994-09-24 00:00:00 +00001IJG JPEG LIBRARY: FILE LIST
2
DRCa73e8702012-12-31 02:52:30 +00003This file was part of the Independent JPEG Group's software:
4Copyright (C) 1994-2009, Thomas G. Lane, Guido Vollbeding.
5Modifications:
6Copyright (C) 2010, D. R. Commander.
Thomas G. Lane36a4ccc1994-09-24 00:00:00 +00007For conditions of distribution and use, see the accompanying README file.
8
9
10Here is a road map to the files in the IJG JPEG distribution. The
11distribution includes the JPEG library proper, plus two application
12programs ("cjpeg" and "djpeg") which use the library to convert JPEG
Thomas G. Lanebc79e061995-08-02 00:00:00 +000013files to and from some other popular image formats. A third application
14"jpegtran" uses the library to do lossless conversion between different
15variants of JPEG. There are also two stand-alone applications,
16"rdjpgcom" and "wrjpgcom".
Thomas G. Lane36a4ccc1994-09-24 00:00:00 +000017
18
19THE JPEG LIBRARY
20================
21
22Include files:
23
24jpeglib.h JPEG library's exported data and function declarations.
25jconfig.h Configuration declarations. Note: this file is not present
26 in the distribution; it is generated during installation.
27jmorecfg.h Additional configuration declarations; need not be changed
28 for a standard installation.
29jerror.h Declares JPEG library's error and trace message codes.
Thomas G. Lanebc79e061995-08-02 00:00:00 +000030jinclude.h Central include file used by all IJG .c files to reference
31 system include files.
Thomas G. Lane36a4ccc1994-09-24 00:00:00 +000032jpegint.h JPEG library's internal data structures.
Thomas G. Lanebc79e061995-08-02 00:00:00 +000033jchuff.h Private declarations for Huffman encoder modules.
34jdhuff.h Private declarations for Huffman decoder modules.
Thomas G. Lane36a4ccc1994-09-24 00:00:00 +000035jdct.h Private declarations for forward & reverse DCT subsystems.
36jmemsys.h Private declarations for memory management subsystem.
37jversion.h Version information.
38
39Applications using the library should include jpeglib.h (which in turn
40includes jconfig.h and jmorecfg.h). Optionally, jerror.h may be included
41if the application needs to reference individual JPEG error codes. The
42other include files are intended for internal use and would not normally
Thomas G. Lanebc79e061995-08-02 00:00:00 +000043be included by an application program. (cjpeg/djpeg/etc do use jinclude.h,
Thomas G. Lane36a4ccc1994-09-24 00:00:00 +000044since its function is to improve portability of the whole IJG distribution.
45Most other applications will directly include the system include files they
46want, and hence won't need jinclude.h.)
47
48
49C source code files:
50
51These files contain most of the functions intended to be called directly by
52an application program:
53
Thomas G. Lanebc79e061995-08-02 00:00:00 +000054jcapimin.c Application program interface: core routines for compression.
55jcapistd.c Application program interface: standard compression.
56jdapimin.c Application program interface: core routines for decompression.
57jdapistd.c Application program interface: standard decompression.
Thomas G. Lane36a4ccc1994-09-24 00:00:00 +000058jcomapi.c Application program interface routines common to compression
59 and decompression.
60jcparam.c Compression parameter setting helper routines.
Thomas G. Lanebc79e061995-08-02 00:00:00 +000061jctrans.c API and library routines for transcoding compression.
62jdtrans.c API and library routines for transcoding decompression.
Thomas G. Lane36a4ccc1994-09-24 00:00:00 +000063
64Compression side of the library:
65
Thomas G. Lanebc79e061995-08-02 00:00:00 +000066jcinit.c Initialization: determines which other modules to use.
67jcmaster.c Master control: setup and inter-pass sequencing logic.
Thomas G. Lane36a4ccc1994-09-24 00:00:00 +000068jcmainct.c Main buffer controller (preprocessor => JPEG compressor).
69jcprepct.c Preprocessor buffer controller.
70jccoefct.c Buffer controller for DCT coefficient buffer.
71jccolor.c Color space conversion.
72jcsample.c Downsampling.
73jcdctmgr.c DCT manager (DCT implementation selection & control).
74jfdctint.c Forward DCT using slow-but-accurate integer method.
75jfdctfst.c Forward DCT using faster, less accurate integer method.
76jfdctflt.c Forward DCT using floating-point arithmetic.
Thomas G. Lanebc79e061995-08-02 00:00:00 +000077jchuff.c Huffman entropy coding for sequential JPEG.
78jcphuff.c Huffman entropy coding for progressive JPEG.
Guido Vollbeding5996a252009-06-27 00:00:00 +000079jcarith.c Arithmetic entropy coding.
Thomas G. Lane36a4ccc1994-09-24 00:00:00 +000080jcmarker.c JPEG marker writing.
Guido Vollbeding989630f2010-01-10 00:00:00 +000081jdatadst.c Data destination managers for memory and stdio output.
Thomas G. Lane36a4ccc1994-09-24 00:00:00 +000082
83Decompression side of the library:
84
85jdmaster.c Master control: determines which other modules to use.
Thomas G. Lanebc79e061995-08-02 00:00:00 +000086jdinput.c Input controller: controls input processing modules.
Thomas G. Lane36a4ccc1994-09-24 00:00:00 +000087jdmainct.c Main buffer controller (JPEG decompressor => postprocessor).
88jdcoefct.c Buffer controller for DCT coefficient buffer.
89jdpostct.c Postprocessor buffer controller.
90jdmarker.c JPEG marker reading.
Thomas G. Lanebc79e061995-08-02 00:00:00 +000091jdhuff.c Huffman entropy decoding for sequential JPEG.
92jdphuff.c Huffman entropy decoding for progressive JPEG.
Guido Vollbeding5996a252009-06-27 00:00:00 +000093jdarith.c Arithmetic entropy decoding.
Thomas G. Lane36a4ccc1994-09-24 00:00:00 +000094jddctmgr.c IDCT manager (IDCT implementation selection & control).
95jidctint.c Inverse DCT using slow-but-accurate integer method.
96jidctfst.c Inverse DCT using faster, less accurate integer method.
97jidctflt.c Inverse DCT using floating-point arithmetic.
98jidctred.c Inverse DCTs with reduced-size outputs.
99jdsample.c Upsampling.
100jdcolor.c Color space conversion.
101jdmerge.c Merged upsampling/color conversion (faster, lower quality).
102jquant1.c One-pass color quantization using a fixed-spacing colormap.
103jquant2.c Two-pass color quantization using a custom-generated colormap.
104 Also handles one-pass quantization to an externally given map.
Guido Vollbeding989630f2010-01-10 00:00:00 +0000105jdatasrc.c Data source managers for memory and stdio input.
Thomas G. Lane36a4ccc1994-09-24 00:00:00 +0000106
107Support files for both compression and decompression:
108
Guido Vollbeding5996a252009-06-27 00:00:00 +0000109jaricom.c Tables for common use in arithmetic entropy encoding and
110 decoding routines.
Thomas G. Lane36a4ccc1994-09-24 00:00:00 +0000111jerror.c Standard error handling routines (application replaceable).
112jmemmgr.c System-independent (more or less) memory management code.
113jutils.c Miscellaneous utility routines.
114
115jmemmgr.c relies on a system-dependent memory management module. The IJG
116distribution includes the following implementations of the system-dependent
117module:
118
119jmemnobs.c "No backing store": assumes adequate virtual memory exists.
120jmemansi.c Makes temporary files with ANSI-standard routine tmpfile().
121jmemname.c Makes temporary files with program-generated file names.
Thomas G. Lane5ead57a1998-03-27 00:00:00 +0000122jmemdos.c Custom implementation for MS-DOS (16-bit environment only):
123 can use extended and expanded memory as well as temp files.
Thomas G. Lane489583f1996-02-07 00:00:00 +0000124jmemmac.c Custom implementation for Apple Macintosh.
Thomas G. Lane36a4ccc1994-09-24 00:00:00 +0000125
126Exactly one of the system-dependent modules should be configured into an
Guido Vollbeding5996a252009-06-27 00:00:00 +0000127installed JPEG library (see install.txt for hints about which one to use).
Thomas G. Lane36a4ccc1994-09-24 00:00:00 +0000128On unusual systems you may find it worthwhile to make a special
129system-dependent memory manager.
130
131
132Non-C source code files:
133
134jmemdosa.asm 80x86 assembly code support for jmemdos.c; used only in
135 MS-DOS-specific configurations of the JPEG library.
136
137
Thomas G. Lanebc79e061995-08-02 00:00:00 +0000138CJPEG/DJPEG/JPEGTRAN
139====================
Thomas G. Lane36a4ccc1994-09-24 00:00:00 +0000140
141Include files:
142
Thomas G. Lane5ead57a1998-03-27 00:00:00 +0000143cdjpeg.h Declarations shared by cjpeg/djpeg/jpegtran modules.
144cderror.h Additional error and trace message codes for cjpeg et al.
145transupp.h Declarations for jpegtran support routines in transupp.c.
Thomas G. Lane36a4ccc1994-09-24 00:00:00 +0000146
147C source code files:
148
149cjpeg.c Main program for cjpeg.
150djpeg.c Main program for djpeg.
Thomas G. Lanebc79e061995-08-02 00:00:00 +0000151jpegtran.c Main program for jpegtran.
152cdjpeg.c Utility routines used by all three programs.
153rdcolmap.c Code to read a colormap file for djpeg's "-map" switch.
154rdswitch.c Code to process some of cjpeg's more complex switches.
155 Also used by jpegtran.
Thomas G. Lane5ead57a1998-03-27 00:00:00 +0000156transupp.c Support code for jpegtran: lossless image manipulations.
Thomas G. Lane36a4ccc1994-09-24 00:00:00 +0000157
158Image file reader modules for cjpeg:
159
160rdbmp.c BMP file input.
Thomas G. Lane5ead57a1998-03-27 00:00:00 +0000161rdgif.c GIF file input (now just a stub).
Thomas G. Lane36a4ccc1994-09-24 00:00:00 +0000162rdppm.c PPM/PGM file input.
163rdrle.c Utah RLE file input.
164rdtarga.c Targa file input.
165
166Image file writer modules for djpeg:
167
168wrbmp.c BMP file output.
Thomas G. Lane5ead57a1998-03-27 00:00:00 +0000169wrgif.c GIF file output (a mere shadow of its former self).
Thomas G. Lane36a4ccc1994-09-24 00:00:00 +0000170wrppm.c PPM/PGM file output.
171wrrle.c Utah RLE file output.
172wrtarga.c Targa file output.
173
174
175RDJPGCOM/WRJPGCOM
176=================
177
178C source code files:
179
180rdjpgcom.c Stand-alone rdjpgcom application.
181wrjpgcom.c Stand-alone wrjpgcom application.
182
183These programs do not depend on the IJG library. They do use
Thomas G. Lanebc79e061995-08-02 00:00:00 +0000184jconfig.h and jinclude.h, only to improve portability.
Thomas G. Lane36a4ccc1994-09-24 00:00:00 +0000185
186
187ADDITIONAL FILES
188================
189
190Documentation (see README for a guide to the documentation files):
191
192README Master documentation file.
Guido Vollbeding5996a252009-06-27 00:00:00 +0000193*.txt Other documentation files.
Thomas G. Lane36a4ccc1994-09-24 00:00:00 +0000194*.1 Documentation in Unix man page format.
195change.log Version-to-version change highlights.
196example.c Sample code for calling JPEG library.
197
Guido Vollbeding5996a252009-06-27 00:00:00 +0000198Configuration/installation files and programs (see install.txt for more info):
Thomas G. Lane36a4ccc1994-09-24 00:00:00 +0000199
200configure Unix shell script to perform automatic configuration.
Guido Vollbeding5996a252009-06-27 00:00:00 +0000201configure.ac Source file for use with Autoconf to generate configure.
202ltmain.sh Support scripts for configure (from GNU libtool).
Thomas G. Lane5ead57a1998-03-27 00:00:00 +0000203config.guess
204config.sub
Guido Vollbeding5996a252009-06-27 00:00:00 +0000205depcomp
206missing
Thomas G. Lane5ead57a1998-03-27 00:00:00 +0000207install-sh Install shell script for those Unix systems lacking one.
Guido Vollbeding5996a252009-06-27 00:00:00 +0000208Makefile.in Makefile input for configure.
209Makefile.am Source file for use with Automake to generate Makefile.in.
Guido Vollbeding5996a252009-06-27 00:00:00 +0000210jconfig.txt Template for making jconfig.h by hand.
Guido Vollbeding5996a252009-06-27 00:00:00 +0000211aclocal.m4 M4 macro definitions for use with Autoconf.
Thomas G. Lane36a4ccc1994-09-24 00:00:00 +0000212
Guido Vollbeding5996a252009-06-27 00:00:00 +0000213Test files (see install.txt for test procedure):
Thomas G. Lane36a4ccc1994-09-24 00:00:00 +0000214
215test*.* Source and comparison files for confidence test.
216 These are binary image files, NOT text files.