文件的压缩与解压LZW算法解析与实现毕业设计论文.doc

上传人:人*** 文档编号:562112937 上传时间:2024-02-25 格式:DOC 页数:41 大小:244.50KB
返回 下载 相关 举报
文件的压缩与解压LZW算法解析与实现毕业设计论文.doc_第1页
第1页 / 共41页
文件的压缩与解压LZW算法解析与实现毕业设计论文.doc_第2页
第2页 / 共41页
文件的压缩与解压LZW算法解析与实现毕业设计论文.doc_第3页
第3页 / 共41页
文件的压缩与解压LZW算法解析与实现毕业设计论文.doc_第4页
第4页 / 共41页
文件的压缩与解压LZW算法解析与实现毕业设计论文.doc_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《文件的压缩与解压LZW算法解析与实现毕业设计论文.doc》由会员分享,可在线阅读,更多相关《文件的压缩与解压LZW算法解析与实现毕业设计论文.doc(41页珍藏版)》请在金锄头文库上搜索。

1、文件的压缩与解压 LZW算法解析与实现 摘 要: 随着人们对数据的大量需求以及计算机使用时间的增加,计算机磁盘上的文 件越来越大,越来越多。如何让有限的磁盘空间容纳更多的数据成为需要解决的 问题。一方面,高速发展的存储技术以提高磁盘容量来解决这样的需求,但随着网络环境下数据传递的产生以及带宽的限制,大容量数据问题日益突出。在这两种需求的推动下,对数据压缩的需求产生了。人们可以将文件在不改变其本身的 条件下,将其以更小的占用空间存储,并且在需要的时候将文件恢复成原有的样 子,这就是压缩目的。本论文主要研究文件的无损压缩技术,并简要介绍了文件压缩的分类、几种常用的无损压缩格式和常用的压缩算法。运用

2、LZW字典算法,使用Java 语言在Eclipse 环境下设计了使用LZW 算法对文件压缩与解压缩的实现程序。用户可以根据自己的需求,使 用此程序方便地对文件进行压缩或者解压缩操作。这里压缩的实质是数字变换,在多媒体信息中包含大量冗余的信息,把这些余冗的信息去掉,就是实现了压缩;解压是由于计算机处理的信息是以二进制数的形式表示的,因此压缩软件就是把二进制信息中相同的字符串以特殊字符标记来达到压缩的目的。关键词:压缩;解压缩;LZWAbstract:with the increasingdemandofthe large amount of dataand the using time of c

3、omputer,computerdiskfileis more and more big,more and more.How to make thelimiteddisk spaceto accommodate moredata becomes aproblem need to be solved.On the one hand,the rapid development of storage technologytoimprove diskcapacityto addresssuch needs,but with thenetworkenvironment of datatransferge

4、neration andbandwidth constraints,the problem of large capacitydatahave become increasingly prominent.In the promotion ofthese two kinds ofdemand,the need for data compression and decompressionproduced.People canfilewithout changing theirown condition,beina smaller storage space,andthefile to itsori

5、ginalappearancein time of need,this isthe final compression.Lossless compressiontechniquesthe thesis focuses on the research ofdocuments,and the classification,file compressionof several commonly usedlossless compressionformats andcommonly used compression algorithmsare briefly introduced.The use of

6、 LZWdictionary algorithm,using Javalanguage in the Eclipse environmentdesignedforfile compressionanddecompressionalgorithm using LZWimplementation procedures.The user can according to their ownneeds,so thatthecompressionor decompressionoperation on thefileconveniently by using theprogram.Thiscompres

7、sionis the essence ofdigitaltransformation,containsa large number of redundant informationin the multimediainformation,put theseon redundancyinformationremoved,it is the realization ofcompression;decompression isbecause the computerinformation processingis based onbinary form representation,so the c

8、ompressionsoftware is thesame two hexadecimalstringinformationin a specialcharactermarkto achievethe purpose of compression. KeyWords:compression;decompression;LZW 1 需求分析文件的压缩与解压缩,要能方便地进行,要完成的功能包括压缩功能,解压 缩功能,选择文件路径,选择操作方案。此程序还要在压缩成功后显示被压缩文件的大小,并对非法操作给出提示。 用户可以选择文件进行压缩或解压缩操作,并选择生成保存路径,默认的保 存路径为原文件目录,

9、压缩的生成文件以原文件加.lzw 后缀命名,在解压缩操 作中,若输入文件不是gzip 格式的压缩文件,则提示gzip 文件格式不对。 程序的基本设计原则有:方便性原则、功能实用性原则和开放性原则等。程 序设计时采用较好的压缩技术,能保证文件压缩的压缩比和可恢复性,确保程序 有较长的生命周期。 本程序的总体目标是实现文件压缩与解压缩的便捷操作,因此需要有便捷的 操作界面。1.1 LZW算法简介字符串和编码的对应关系是在压缩过程中动态生成的,并且隐含在压缩数据中,解压的时候根据表来进行恢复,算是一种无损压缩.根据 Lempel-Ziv-Welch Encoding ,简称 LZW 的压缩算法,用任

10、何一种语言来实现它.LZW压缩算法1的基本概念:LZW压缩有三个重要的对象:数据流(CharStream)、编码流(CodeStream)和编译表(String Table)。在编码时,数据流是输入对象(文本文件的据序列),编码流就是输出对象(经过压缩运算的编码数据);在解码时,编码流则是输入对象,数据流是输出对象;而编译表是在编码和解码时都须要用借助的对象。字符(Character):最基础的数据元素,在文本文件中就是一个字节,在光栅数据中就是一个像素的颜色在指定的颜色列表中的索引值;字符串(String):由几个连续的字符组成; 前缀(Prefix):也是一个字符串,不过通常用在另一个字符

11、的前面,而且它的长度可以为0;根(Root):一个长度的字符串;编码(Code):一个数字,按照固定长度(编码长度)从编码流中取出,编译表的映射值;图案:一个字符串,按不定长度从数据流中读出,映射到编译表条目.LZW压缩算法2的基本原理:提取原始文本文件数据中的不同字符,基于这些字符创建一个编译表,然后用编译表中的字符的索引来替代原始文本文件数据中的相应字符,减少原始数据大小。看起来和调色板图象的实现原理差不多,但是应该注意到的是,我们这里的编译表不是事先创建好的,而是根据原始文件数据动态创建的,解码时还要从已编码的数据中还原出原来的编译表.1.2 项目要达到的目标本项目设定的目标如下:(1)

12、系统能够提供友好的用户界面,使操作人员的工作量最大限度的减少(2)系统具有良好的运行效率,能够得到提高生产率的目的(3)系统应有良好的可扩充性,可以容易的加入其它系统的应用。(4)平台的设计具有一定的超前性,灵活性(5)通过这个项目可以锻炼队伍,提高团队的开发能力和项目管理能力压 缩 程 序解 压 程 序 压缩与解压程序1.3 系统整体结构 1.4 环境1.4.1 系统开发环境 使用了Eclipse进行程序开发,Eclipse是一个可视化JAVA开发工具。是在JAVA2平台上开发商业引用程序、数据库、发布程序的优秀工具。它支持J2EE,所以程序员可以快速的转换企业版JAVA应用程序。使用此开发

13、工具可以实现程序的可视化。1.4.2 系统运行环境操作系统:Windows 7JAVA虚拟机版本:1.6.0_20硬件配置CPU:core i3内存:2G硬盘:500G分辨率:最佳效果 1024768用的是jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008。环境变量为:JAVA_HOME=C:Program FilesJavajdk1.6.0_26。Path=“;%JAVA_HOME%bin;%JAVA_HOME%jrebin”CLASSPATH=“.;%JAVA_HOME%lib;%JAVA_HOME%libtools.jar”1.5 功能 文件的

14、压缩与解压,要能方便的进行,要完成的功能有:(1).压缩功能(2).解压缩功能(3).选择文件路径(4).选择操作方案(5).压缩成功后显示被压缩文件的大小(6).错误操作,给出提示1.6 性能需求根据用户对本软件的要求,确定软件在响应时间、可靠性、安全等方面有较高的性能要求。1.6.1 界面需求软件的界面要求如下:主题突出,站点定义、术语和行文格式统一、规范、明确,栏目、菜单设置和布局合理,传递的信息准确、及时。内容丰富,文字准确,语句通顺;专用术语规范,行文格式统一规范。1.6.2 响应时间需求 用户单击后,软件响应速度低于0.5s。单个文件压缩解压速度不低于3mb/s1.6.3 开放性需

15、求系统应具有十分的灵活性,以适应将来功能扩展的需求。1.6.4 可扩展性需求系统设计要求能够体现扩展性要求,以适应将来功能扩展的需求。2 压缩与解压程序设计入口入口2.1 概要设计读取原文件的相关信息2.1.1 压缩模块读取文件中编码转换为字符写入压缩文件出口出口 入口2.读取原文件的相关信息读取文件中编码转换为字符写入解压缩文件出口1.2 解压模块2.1.3 总体流程图输出标号结束组成entery(p,s)认识?开始读取下一个字符Y将前缀变成entery标号输出前缀,后缀变前缀记录新entery到标号集最后一字符?N2.1.4 Lzw算法实现压缩与解压 读取原文件相关信息 已编码的数据还原出原来的编译 表. 将文件中的相关信息写入解压文 件 用

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号