版权 (C) 1991-1996, Thomas G. Lane.
本文是Independent JPEG Group软件中的一部分。
针对于如何分发与使用,请参照随本库一起发放的README 文件。
本文是对已经发布的IJG JPEG库中文件的指南。该发布版包括专门的JPEG库,另加两个应用程序("cjpeg" and "djpeg"),这两个程序用JPEG库实现了将其他格式的图像压缩成JPEG图像格式与解压JPEG图像为其他格式。第三方的应用程序"jpegtran"应用该库在JPEG与其他不同格式之间进行无损转换。还有两个独立的应用:"rdjpgcom" and "wrjpgcom"。
jpeglib.h
JPEG 库中输出的数据与函数声明。 jconfig.h
配置声明。注:该文件并不存在于该发布中,它将在安装期间生成。 jmorecfg.h
额外的配置声明;在标准的安装中无需更改。 jerror.h
声明JPEG 库的错误并跟踪消息代码。 jinclude.h
所有IJG.c文件要用到的核心include文件,用来关联系统include文件。 jchuff.h
Huffman编码模块所需的私有声明。 jdhuff.h
Huffman解码模块所需的私有声明 jdct.h
前向和反向DCT子系统所需的私有声明。 jmemsys.h
内存管理子系统所需的私有声明。 应用JPEG库需要包含jpeglib.h (它又引用了jconfig.h和jmorecfg.h)。 jerror.h 是可选的。如果应用程序需要参考个别的JPEG错误代码。其他的头文件都供库内部使用,通常不应被应用程序引用。(cjpeg/djpeg等应用了jinclude.h,这是为了提高它们的函数在整个IJG发布版中的可移植性。大多数其他的应用程序将直接引用它们所需要的系统include文件,且因些而不需包含jinclude.h。)
jcapimin.c
应用编程接口:压缩的核心子程序。 jdapimin.c
应用编程接口:解压的核心子程序。 jcomapi.c
应用编程接口:压缩与解压通用的子程序。 jctrans.c
用于转换编码(transcoding )的压缩库程序与API。 jdtrans.c
用于转换编码(transcoding )的解压缩库程序与API。 jcmaster.c
主控制:建立和交互顺序逻辑。 jcmainct.c
主缓冲区控制(Preprocessor => JPEG压缩器)。 jcprepct.c
Preprocessor缓冲区控制。 jccoefct.c
DCT系数缓存的缓冲区控制。 jcdctmgr.c
DCT 管理 (DCT 实现的选择和控制). jfdctint.c
使用慢-而高精度的整数方法的前向DCT。 jfdctfst.c
使用快-而-低精度的整数方法的前向DCT。 jfdctflt.c
使用浮点数算法的前向DCT。 jchuff.c
顺序(sequential)JPEG的Huffman熵编码。 jcphuff.c
逐步(progressive)JPEG的Huffman熵编码。 jcmarker.c
JPEG marker writing。 jdatadst.c
针对stdio 输出的数据目的端管理。 jdmaster.c
主控制:确定要用哪些其他模块。 jdmainct.c
主缓冲区控制(预处理器 => JPEG压缩器)。 jdcoefct.c
DCT系数缓存的缓冲区控制。 jdpostct.c
Postprocessor 缓冲区控制 jdmarker.c
JPEG marker reading. jdhuff.c
顺序(sequential)JPEG的Huffman熵解码。 jdphuff.c
逐步(progressive)JPEG的Huffman熵解码。 jddctmgr.c
IDCT 管理 (IDCT DCT 实现的选择和控制)。 jidctint.c
使用慢-而高精度的整数方法的反向DCT。 jidctfst.c
使用快-而-低精度的整数方法的前向DCT。. jidctflt.c
使用浮点数算法的反向DCT。 jidctred.c
带减小输出大小的反向DCT。 jdmerge.c
合并的下载样本/色彩空间转换(快速, 低质量)。 jquant1.c
One-pass color quantization using a fixed-spacing colormap. jquant2.c
Two-pass color quantization using a custom-generated colormap. Also handles one-pass quantization to an externally given map. jdatasrc.c
stdio 输入的数据源管理。 jerror.c
标准错误处理子程序 (可由应用程序替换)。 jmemmgr.c
系统独立(或多或少)内存管理代码。 jmemmgr.c
依赖于系统独立性的内存管理模块。 jmemnobs.c
"No backing store(无后备存储)":假设足够的虚拟内存存在。 jmemansi.c
使用ANSI 标准函数tmpfile()生成临时文件。 jmemname.c
用程序生成的文件名创建临时文件。 jmemdos.c
为MS-DOS (只对16位环境)的客户实现:可用来扩展和扩充内存和临时文件。 jmemmac.c
为苹果公司的Macintosh提供的客户实现。 准确说,仅有一个系统相关的模块应当在JPEG库的安装时被加入。(参见install.doc以获取哪一个要用的提示)。
在通常的系统上,你或许会发现创建一个特别的与系统相关的内存管理是值得的。
jmemdosa.asm
支持jmemdos.c 的80x86 汇编代码;只用于MS-DOS-指定的 JPEG库的配置。 cdjpeg.h
由cjpeg/djpeg/jpegtran共享的模块的声明。 cderror.h
为cjpeg等附加的错误和调试消息代码。 transupp.h
在transupp.c中,为支持jpegtran的声明。 rdcolmap.c
读取djpeg的 "-map" 开关的colormap文件的代码。 rdswitch.c
处理一些cjpeg的更为复杂的开关的代码,也用于jpegtran。 transupp.c
jpegtran的支持代码:无损图像操作。 rdgif.c
GIF 文件输入 (目前仅仅是个雏形)。 wrgif.c
GIF文件输出(仅仅是该文件前身的一个映射)。 rdjpgcom.c
独立的rdjpgcom应用。 wrjpgcom.c
独立的wrjpgcom应用。 这些程序不需要依赖于IJG库。可它们真的用了jconfig.h和jinclude.h,却只不过是为了提高可移植性。
Documentation (see README for a guide to the documentation files):
配置/安装文件和程序 (参见install.do以获取更多的信息):
configure
在UNIX下执行自动配置的Unix shell script。 ltconfig
配置用的scripts (使用GNU libtool). install-sh
对于那些缺少Shell的UNIX系统而准备的安装shell script。 ckconfig.c
在非UNIX系统上用于生成jconfig.h的程序。 jconfig.doc
用于手工生成jconfig.h的 模板。 makefile.*
针对于特定系统的makefiles样例。 jconfig.*
针对于特定系统的jconfig.h样例。 ansi2knr.c
De-ANSIfier for pre-ANSI C compilers (courtesy of L. Peter Deutsch and Aladdin Enterprises). 测试文件 (参见install.doc 寻找测试流程):
test*.*
测试用的源图像和压缩文件,它们是二进制文件,而非文本文件