1 IJG JPEG LIBRARY: FILE LIST 2 3 Copyright (C) 1994-1998, Thomas G. Lane. 4 This file is part of the Independent JPEG Group's software. 5 For conditions of distribution and use, see the accompanying README file. 6 7 8 Here is a road map to the files in the IJG JPEG distribution. The 9 distribution includes the JPEG library proper, plus two application 10 programs ("cjpeg" and "djpeg") which use the library to convert JPEG 11 files to and from some other popular image formats. A third application 12 "jpegtran" uses the library to do lossless conversion between different 13 variants of JPEG. There are also two stand-alone applications, 14 "rdjpgcom" and "wrjpgcom". 15 16 17 THE JPEG LIBRARY 18 ================ 19 20 Include files: 21 22 jpeglib.h JPEG library's exported data and function declarations. 23 jconfig.h Configuration declarations. Note: this file is not present 24 in the distribution; it is generated during installation. 25 jmorecfg.h Additional configuration declarations; need not be changed 26 for a standard installation. 27 jerror.h Declares JPEG library's error and trace message codes. 28 jinclude.h Central include file used by all IJG .c files to reference 29 system include files. 30 jpegint.h JPEG library's internal data structures. 31 jchuff.h Private declarations for Huffman encoder modules. 32 jdhuff.h Private declarations for Huffman decoder modules. 33 jdct.h Private declarations for forward & reverse DCT subsystems. 34 jmemsys.h Private declarations for memory management subsystem. 35 jversion.h Version information. 36 37 Applications using the library should include jpeglib.h (which in turn 38 includes jconfig.h and jmorecfg.h). Optionally, jerror.h may be included 39 if the application needs to reference individual JPEG error codes. The 40 other include files are intended for internal use and would not normally 41 be included by an application program. (cjpeg/djpeg/etc do use jinclude.h, 42 since its function is to improve portability of the whole IJG distribution. 43 Most other applications will directly include the system include files they 44 want, and hence won't need jinclude.h.) 45 46 47 C source code files: 48 49 These files contain most of the functions intended to be called directly by 50 an application program: 51 52 jcapimin.c Application program interface: core routines for compression. 53 jcapistd.c Application program interface: standard compression. 54 jdapimin.c Application program interface: core routines for decompression. 55 jdapistd.c Application program interface: standard decompression. 56 jcomapi.c Application program interface routines common to compression 57 and decompression. 58 jcparam.c Compression parameter setting helper routines. 59 jctrans.c API and library routines for transcoding compression. 60 jdtrans.c API and library routines for transcoding decompression. 61 62 Compression side of the library: 63 64 jcinit.c Initialization: determines which other modules to use. 65 jcmaster.c Master control: setup and inter-pass sequencing logic. 66 jcmainct.c Main buffer controller (preprocessor => JPEG compressor). 67 jcprepct.c Preprocessor buffer controller. 68 jccoefct.c Buffer controller for DCT coefficient buffer. 69 jccolor.c Color space conversion. 70 jcsample.c Downsampling. 71 jcdctmgr.c DCT manager (DCT implementation selection & control). 72 jfdctint.c Forward DCT using slow-but-accurate integer method. 73 jfdctfst.c Forward DCT using faster, less accurate integer method. 74 jfdctflt.c Forward DCT using floating-point arithmetic. 75 jchuff.c Huffman entropy coding for sequential JPEG. 76 jcphuff.c Huffman entropy coding for progressive JPEG. 77 jcmarker.c JPEG marker writing. 78 jdatadst.c Data destination manager for stdio output. 79 80 Decompression side of the library: 81 82 jdmaster.c Master control: determines which other modules to use. 83 jdinput.c Input controller: controls input processing modules. 84 jdmainct.c Main buffer controller (JPEG decompressor => postprocessor). 85 jdcoefct.c Buffer controller for DCT coefficient buffer. 86 jdpostct.c Postprocessor buffer controller. 87 jdmarker.c JPEG marker reading. 88 jdhuff.c Huffman entropy decoding for sequential JPEG. 89 jdphuff.c Huffman entropy decoding for progressive JPEG. 90 jddctmgr.c IDCT manager (IDCT implementation selection & control). 91 jidctint.c Inverse DCT using slow-but-accurate integer method. 92 jidctfst.c Inverse DCT using faster, less accurate integer method. 93 jidctflt.c Inverse DCT using floating-point arithmetic. 94 jidctred.c Inverse DCTs with reduced-size outputs. 95 jdsample.c Upsampling. 96 jdcolor.c Color space conversion. 97 jdmerge.c Merged upsampling/color conversion (faster, lower quality). 98 jquant1.c One-pass color quantization using a fixed-spacing colormap. 99 jquant2.c Two-pass color quantization using a custom-generated colormap. 100 Also handles one-pass quantization to an externally given map. 101 jdatasrc.c Data source manager for stdio input. 102 103 Support files for both compression and decompression: 104 105 jerror.c Standard error handling routines (application replaceable). 106 jmemmgr.c System-independent (more or less) memory management code. 107 jutils.c Miscellaneous utility routines. 108 109 jmemmgr.c relies on a system-dependent memory management module. The IJG 110 distribution includes the following implementations of the system-dependent 111 module: 112 113 jmemnobs.c "No backing store": assumes adequate virtual memory exists. 114 jmemansi.c Makes temporary files with ANSI-standard routine tmpfile(). 115 jmemname.c Makes temporary files with program-generated file names. 116 jmemdos.c Custom implementation for MS-DOS (16-bit environment only): 117 can use extended and expanded memory as well as temp files. 118 jmemmac.c Custom implementation for Apple Macintosh. 119 120 Exactly one of the system-dependent modules should be configured into an 121 installed JPEG library (see install.doc for hints about which one to use). 122 On unusual systems you may find it worthwhile to make a special 123 system-dependent memory manager. 124 125 126 Non-C source code files: 127 128 jmemdosa.asm 80x86 assembly code support for jmemdos.c; used only in 129 MS-DOS-specific configurations of the JPEG library. 130 131 132 CJPEG/DJPEG/JPEGTRAN 133 ==================== 134 135 Include files: 136 137 cdjpeg.h Declarations shared by cjpeg/djpeg/jpegtran modules. 138 cderror.h Additional error and trace message codes for cjpeg et al. 139 transupp.h Declarations for jpegtran support routines in transupp.c. 140 141 C source code files: 142 143 cjpeg.c Main program for cjpeg. 144 djpeg.c Main program for djpeg. 145 jpegtran.c Main program for jpegtran. 146 cdjpeg.c Utility routines used by all three programs. 147 rdcolmap.c Code to read a colormap file for djpeg's "-map" switch. 148 rdswitch.c Code to process some of cjpeg's more complex switches. 149 Also used by jpegtran. 150 transupp.c Support code for jpegtran: lossless image manipulations. 151 152 Image file reader modules for cjpeg: 153 154 rdbmp.c BMP file input. 155 rdgif.c GIF file input (now just a stub). 156 rdppm.c PPM/PGM file input. 157 rdrle.c Utah RLE file input. 158 rdtarga.c Targa file input. 159 160 Image file writer modules for djpeg: 161 162 wrbmp.c BMP file output. 163 wrgif.c GIF file output (a mere shadow of its former self). 164 wrppm.c PPM/PGM file output. 165 wrrle.c Utah RLE file output. 166 wrtarga.c Targa file output. 167 168 169 RDJPGCOM/WRJPGCOM 170 ================= 171 172 C source code files: 173 174 rdjpgcom.c Stand-alone rdjpgcom application. 175 wrjpgcom.c Stand-alone wrjpgcom application. 176 177 These programs do not depend on the IJG library. They do use 178 jconfig.h and jinclude.h, only to improve portability. 179 180 181 ADDITIONAL FILES 182 ================ 183 184 Documentation (see README for a guide to the documentation files): 185 186 README Master documentation file. 187 *.doc Other documentation files. 188 *.1 Documentation in Unix man page format. 189 change.log Version-to-version change highlights. 190 example.c Sample code for calling JPEG library. 191 192 Configuration/installation files and programs (see install.doc for more info): 193 194 configure Unix shell script to perform automatic configuration. 195 ltconfig Support scripts for configure (from GNU libtool). 196 ltmain.sh 197 config.guess 198 config.sub 199 install-sh Install shell script for those Unix systems lacking one. 200 ckconfig.c Program to generate jconfig.h on non-Unix systems. 201 jconfig.doc Template for making jconfig.h by hand. 202 makefile.* Sample makefiles for particular systems. 203 jconfig.* Sample jconfig.h for particular systems. 204 ansi2knr.c De-ANSIfier for pre-ANSI C compilers (courtesy of 205 L. Peter Deutsch and Aladdin Enterprises). 206 207 Test files (see install.doc for test procedure): 208 209 test*.* Source and comparison files for confidence test. 210 These are binary image files, NOT text files. 211