文档详情

Delphi中三种压缩库的应用比较.pdf

发布:2017-09-26约字共4页下载文档
文本预览下载声明
第27卷第1期 贵州大学学报(自然科学版) V01.27No.1 ofGuizhou Feb.2010 2010年2月 Journal University(NaturalSciences) 文章编号1000—5269(2010)01—0095一04 Delphi中三种压缩库的应用比较 罗如为+,陈孝威 (贵州大学计算机科学与信息学院,贵阳550025) 自带的Zlib和最新的ZlibEx、ZlibExGZ这三种库的压缩能力及压缩、解压缩的时间消耗量。 关键词:Delphi;Zlib;压缩;压缩时间;解压缩 中图分类号:TP311.52文献标识码:A zlib压缩算法是一种基于字典的无损压缩算部分分离成新的库文件ZlibExGZ,发展到2009.1, 法,采用了统计模型和字典模型,有机地结合了霍 夫曼(Huffman)树编码法和LZ77编码法的优点, 使压缩效果更好。Zlib算法继承了字典压缩算法 的思想,将此思想与滑动窗口(在内存中开辟的一 个固定长度的缓冲区)相结合,把滑动窗口看成是 缩包,将解压后的文件夹拷贝到delphi安装目录的 字符的字典,找出超前察看缓冲区(与滑动窗口的 缓冲区相邻)中能与滑动窗口的字符串相匹配的 tions中的librarypath中。在需要使用的时候use 最长的字符串,并将此串按照LZ77编码法进行编Mibex.ZlibExGZ. 码。当两个缓冲区中没有相匹配的字符时,便采用 1压缩和解压缩 自适应的Huffman编码法进行编码,在编码的过程 中将已编好的压缩码实时地写入压缩文件中。也 就是说,Zlib算法将长度不同的符号串编码成一个 个新单词,形成一本短语词典的索引,然后用索引 来检索数据,并用字典的编码代替符号串以达到压 缩目的。解码过程是编码的逆过程,同样用到了 缩,实现了很高的数据压缩比率。 Huffman算法和LZ77算法的编码算法,解码过程 以下为调用压缩库函数实现三种压缩和解压 与编码过程相似。 ZLIB压缩算法是对GZIP的一种改进,去掉了 中的压缩级别。以Csbz区分四种压缩级别:①不 压缩文件时包含的一些冗余信息,来提高对缓冲区 压缩;②快速压缩,牺牲压缩效率;③标准压缩;④ 数据的压缩速度。ZLIB的核心算法和GZIP是相 同的,使用的是同一个压缩算法deflate。 最大化压缩,牺牲压缩速度。以CsType区别三种 从Delphi7光盘\Info、Extras\Zlib\Src可以找 后的文件流写入内存流mStream;解压后的文件流 到zlib(verl.0.4)是在1996.7发布的,在http:// w、^w.base2ti.eom/downloads/history/delphizlib. 缩级别,所以默认为标准压缩。实验中发现zlibEx 123.2009.shtm中可以看到,对旧的版本进行了优 1. 不能解压缩0字节的文件(夹);zlibExGZ既不能 化和修正后,在2000.6有了新的版本Zlib(ver 压缩也不能解压缩0字节的文件(夹);在解压缩 1.3),于2001.10更名为ZlibEx,经过不断地修正、 过程中,不能覆盖像Thumb.db这种隐藏系统文 修改和添加新的函数,并且在2007.3将gzip功能 收稿日期:2009—09—10
显示全部
相似文档