几种无损数据压缩算法的探讨及在JAVAWeb程序中的应用.pdf
上传人:yy****24 上传时间:2024-09-09 格式:PDF 页数:5 大小:249KB 金币:12 举报 版权申诉
预览加载中,请您耐心等待几秒...

几种无损数据压缩算法的探讨及在JAVAWeb程序中的应用.pdf

几种无损数据压缩算法的探讨及在JAVAWeb程序中的应用.pdf

预览

在线预览结束,喜欢就下载吧,查找使用更方便

12 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第26卷第4期甘肃科技Vol.26No.42010年2月GansuScienceandTechnologyFeb.2010几种无损数据压缩算法的探讨及在JAVAWeb程序中的应用肖武德(甘肃广播电视大学定西市分校,甘肃定西743000)摘要:随着知识爆炸式的发展,数据压缩在计算机领域起到举足轻重的作用。Huffman编码是一种常用的压缩方法,其原理是将使用次数多的代码转换成长度较短的代码,而使用次数少的可以使用较长的编码,并且保持编码的唯一可解性。LZ77算法通过使用已经出现过的相应匹配数据信息替换当前数据从而实现压缩功能。LZW算法是基于LZ77思想的一个变种。由于专利权原因,LZW没有得到像LZ77一样的流行。DEFLATE方法是LZ77算法与Huffman编码的组合,具有LZ77与Huffman编码的优势。DEFLATE方法具有开源通用高压缩率的优势,因此,得到了广泛的应用。将采用DEFLATE方法的GZIP压缩应用到B/S架构的企业应用中可以减小网络传输的数据量,进而提高系统的整体性能。关键词:无损压缩;Huffman编码;LZ77;DEFLATE;LZW;GZIPJAVA中图分类号:TP751.1码代替,每个数据的代码各不相同。这些代码都是1引言二进制码,且码的长度是可变的。如:有一个原始自从有计算机以来,它的数据存储和传播能力数据序列,ABACCDAA则编码为A(0),B(10),C一直在不断的发展,到目前已经达到了非常强大的(110),(D111),压缩后为010011011011100。地步。然而,这一时期也是人类的知识爆炸式发展Huffman编码是无损压缩当中最好的方法。它的一个时期,很难衡量他们哪一个的速度更快。但使用预先二进制描述来替换每个符号,长度由特殊是我们总能听到电脑用户抱怨磁盘空间不足,花费符号出现的频率决定。常见的符号需要很少的位来太长的时间下载需要的文件,从人们在使用计算机表示,而不常见的符号需要很多为来表示。哈夫曼的过程中可以看到我们仍然期望计算机存储数据和算法在改变任何符号二进制编码引起少量密集表现传播数据的能力不断提高。当然我们可以升级计算方面是最佳的。然而,它并不处理符号的顺序和重机硬件,来提高电脑的性能,同时,计算机厂家不断复或序号的序列。而且产生霍夫曼编码需要对原始涌现的新型号也意味着这一策略的庞大成本。在同数据扫描两遍,第一遍扫描要精确地统计出原始数样的硬件条件下,采用数据压缩可以存储更多的数据中的每个值出现的频率,第二遍是建立霍夫曼树据、获得更高的传输性能。另外,便捷终端、微型设并进行编码,由于需要建立二叉树并遍历二叉树生备的出现更是需要很好的压缩算法来支持。比方成编码,因此数据压缩和还原速度都较慢。说,遍布于数码录音笔、数码相机、数码随身听、数码2.1Huffman编码的压缩原理摄像机等各种数字设备中的音频、图像、视频信息,Huffman编码是一种可变长编码方式,是由美就必须经过有效的压缩才能在硬盘上存储或是通过国数学家DavidHuffman创立的,是二叉树的一种特USB电缆传输。主要讨论几种常见的无损压缩算殊转化形式。编码的原理是:将使用次数多的代码法,分析其原理,并通过对比给出其优缺点。最后给转换成长度较短的代码,而使用次数少的可以使用出GZIP在JavaWeb程序中的一种应用。较长的编码,并且保持编码的唯一可解性。Huffman算法的最根本的原则是:累计的(字符的统计数字2Huffman编码*字符的编码长度)为最小,也就是权值(字符的统Huffman编码是一种常用的压缩方法。是1952计数字*字符的编码长度)的和最小。年为文本文件建立的,其基本原理是频繁使用的数2.2Huffman树据用较短的代码代替,很少使用的数据用较长的代首先统计各个符号在文件中出现的次数,然后46甘肃科技第26卷根据符号的出现次数,建立Huffman树,通过Huff编码为0001,c的编码为1,那么当遇到0001时,就man树得到每个符号的新的编码。对于文件中出现不知道0001代表ac,还是代表b。出现这种问题的次数较多的符号,它的Huffman编码的位数比较少。原因是a的编码是b的编码的前缀。由于Huffman对于文件中出现次数较少的符号,它的Huffman编编码为根结点到叶子结点路径上的0和1的序列,码的位数比较多。然后把文件中的每个字节替换成而一个叶子结点的路径不可能是另一个叶子结点路他们新的编码。径的前缀,所以一个Huffman编码不可能为另一个建立Huffman树:Huffman编码的前缀,这就保证了Hu