轉自:http://www.cnblogs.com/wantfei/articles/14524.html
版權 (C) 1991-1996, Thomas G. Lane.
本文是Independent JPEG Group軟件中的一部分。
針對於如何分發與使用,請參照隨本庫一起發放的README 文件。
本文是對已經發布的IJG JPEG庫中文件的指南。該發佈版包括專門的JPEG庫,另加兩個應用程序("cjpeg" and "djpeg"),這兩個程序用JPEG庫實現了將其他格式的圖像壓縮成JPEG圖像格式與解壓JPEG圖像爲其他格式。第三方的應用程序"jpegtran"應用該庫在JPEG與其他不同格式之間進行無損轉換。還有兩個獨立的應用:"rdjpgcom" and "wrjpgcom"。
JPEG 函數庫
================
Include文件:
jpeglib.h JPEG 庫中輸出的數據與函數聲明。
jconfig.h 配置聲明。注:該文件並不存在於該發佈中,它將在安裝期間生成。
jmorecfg.h 額外的配置聲明;在標準的安裝中無需更改。
jerror.h 聲明JPEG 庫的錯誤並跟蹤消息代碼。
jinclude.h 所有IJG.c文件要用到的核心include文件,用來關聯繫統include文件。
jpegint.h JPEG庫的內部數據結構。
jchuff.h Huffman編碼模塊所需的私有聲明。
jdhuff.h Huffman解碼模塊所需的私有聲明
jdct.h 前向和反向DCT子系統所需的私有聲明。
jmemsys.h 內存管理子系統所需的私有聲明。
jversion.h 版本信息。
應用JPEG庫需要包含jpeglib.h (它又引用了jconfig.h和jmorecfg.h)。 jerror.h 是可選的。如果應用程序需要參考個別的JPEG錯誤代碼。其他的頭文件都供庫內部使用,通常不應被應用程序引用。(cjpeg/djpeg等應用了jinclude.h,這是爲了提高它們的函數在整個IJG發佈版中的可移植性。大多數其他的應用程序將直接引用它們所需要的系統include文件,且因些而不需包含jinclude.h。)
C 源代碼文件:
這些文件包含大多數可在應用程序中直接調用的函數:
jcapimin.c 應用編程接口:壓縮的核心子程序。
jcapistd.c 應用編程接口:標準壓縮。
jdapimin.c 應用編程接口:解壓的核心子程序。
jdapistd.c 應用編程接口:標準解壓縮。
jcomapi.c 應用編程接口:壓縮與解壓通用的子程序。
jcparam.c 壓縮參數設置助手子程序。
jctrans.c 用於轉換編碼(transcoding )的壓縮庫程序與API。
jdtrans.c 用於轉換編碼(transcoding )的解壓縮庫程序與API。
與壓縮相關的庫文件:
jcinit.c 初始化:確定要用哪些其他模塊。
jcmaster.c 主控制:建立和交互順序邏輯。
jcmainct.c 主緩衝區控制(Preprocessor => JPEG壓縮器)。
jcprepct.c Preprocessor緩衝區控制。
jccoefct.c DCT係數緩存的緩衝區控制。
jccolor.c 色彩空間轉換。
jcsample.c 下載樣本。
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 主控制:確定要用哪些其他模塊。
jdinput.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。
jdsample.c 下載樣本。
jdcolor.c 色彩空間轉換。
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 系統獨立(或多或少)內存管理代碼。
jutils.c 其他工具子程序。
jmemmgr.c 依賴於系統獨立性的內存管理模塊。
IJG發佈版本中包含如下系統獨立的模塊:
jmemnobs.c "No backing store(無後備存儲)":假設足夠的虛擬內存存在。
jmemansi.c 使用ANSI 標準函數tmpfile()生成臨時文件。
jmemname.c 用程序生成的文件名創建臨時文件。
jmemdos.c 爲MS-DOS (只對16位環境)的客戶實現:可用來擴展和擴充內存和臨時文件。
jmemmac.c 爲蘋果公司的Macintosh提供的客戶實現。
準確說,僅有一個系統相關的模塊應當在JPEG庫的安裝時被加入。(參見install.doc以獲取哪一個要用的提示)。
在通常的系統上,你或許會發現創建一個特別的與系統相關的內存管理是值得的。
非C的源代碼文件:
jmemdosa.asm 支持jmemdos.c 的80x86 彙編代碼;只用於MS-DOS-指定的 JPEG庫的配置。
CJPEG/DJPEG/JPEGTRAN
====================
Include 文件:
cdjpeg.h 由cjpeg/djpeg/jpegtran共享的模塊的聲明。
cderror.h 爲cjpeg等附加的錯誤和調試消息代碼。
transupp.h 在transupp.c中,爲支持jpegtran的聲明。
C 源代碼文件:
cjpeg.c cjpeg的主程序。
djpeg.c djpeg的主程序。
jpegtran.c jpegtran的主程序。
cdjpeg.c 這三個應用程序用到的工具函數。
rdcolmap.c 讀取djpeg的 "-map" 開關的colormap文件的代碼。
rdswitch.c 處理一些cjpeg的更爲複雜的開關的代碼,也用於jpegtran。
transupp.c jpegtran的支持代碼:無損圖像操作。
cjpeg
rdbmp.c BMP文件輸入。
rdgif.c GIF 文件輸入 (目前僅僅是個雛形)。
rdppm.c PPM/PGM文件輸入。
rdrle.c Utah RLE文件輸入。
rdtarga.c Targa 文件輸入
djpeg中寫圖像文件的模塊:
wrbmp.c BMP 文件輸出。
wrgif.c GIF文件輸出(僅僅是該文件前身的一個映射)。
wrppm.c PPM/PGM文件輸出。
wrrle.c Utah RLE文件輸出。
wrtarga.c Targa 文件輸出。
RDJPGCOM/WRJPGCOM
=================
C 源代碼文件:
rdjpgcom.c 獨立的rdjpgcom應用。
wrjpgcom.c 獨立的wrjpgcom應用。
這些程序不需要依賴於IJG庫。可它們真的用了jconfig.h和jinclude.h,卻只不過是爲了提高可移植性。
附加的文件
================
Documentation (see README for a guide to the documentation files):
README 主文檔文件。
*.doc 其他文檔文件。
*.1 Unix 手冊文件格式的文檔。
change.log 版本到版本之間更改的集錦。
example.c 調用JPEG庫的例子程序。
配置/安裝文件和程序 (參見install.do以獲取更多的信息):
configure 在UNIX下執行自動配置的Unix shell script。
ltconfig 配置用的scripts (使用GNU libtool).
ltmain.sh
config.guess
config.sub
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*.* 測試用的源圖像和壓縮文件,它們是二進制文件,而非文本文件。