压缩器与解压器[精选].docVIP

  • 2
  • 0
  • 约 18页
  • 2017-01-21 发布于江苏
  • 举报
压缩器与解压器[精选]

《数据结构与算法分析》课程设计报告 课题名称:压缩器/解压器 课题负责人名(学号):王明星( 指导教师:王爱平 成绩: 意见: 目录 需求分析***************************************3 概要设计****************************************3~5 详细设计****************************************5~16 运行结果及其分析****************************************16~18 用户手册****************************************18 程序附录****************************************18 课程设计总结****************************************18 参考文献****************************************18 压缩器/解压器 学生:王明星 指导老师:王爱平 【摘要】:在现代信息社会发展到今天这种程度的时候,网络的出现带给人们生活中极大的方便,但随之而来的是信息量的增大,这就要对之进行处理,使之能够便于存储,这就要压缩器和解压器的帮忙了,用压缩器奖大的文件压缩为较小的文件后,存储起来,要用的时候,用解压器将之还原,就可以使用了。这就是压缩器和解压器的作用了。 【题目】 为了节省存储空间,常常需要把文本文件采用压缩编码方式存储。例如: 一个包含 1000个X的字符串和2000个Y的字符串的文本文件在不压缩时占用的空间为3002字节(每个X或每个Y占用一个字节,两个字节代表文件用来表示字符串的结尾).同样是这个文件,采用游程长度编码,可以存储为字符串1000X2000Y,仅为10个字符.占用12个字节,若采用2进制表示,则更加节省空间,上例中的字符串用8个字节来存储,当要读取编码文件时,需要对其解码,由压缩器对其编码,解压器对其解码. 要求:用游程-长度编码+LZW编码实现 需求分析 本演示程序中,文本集合元素限定为{a,b,c,……,z,0,1,2,…9}时,用实例检测压缩器和解压器的运作,输入的为本文文件(.txt),输出的为一种自定义的文件(.nz),测试压缩器解压器会不会出现抖动,如果出现,需选取合适的集合来适应一般的情况。 演示程序以用户和计算机对话得以实现,即在计算机终端显示“提示信息”后,新建个相应要压缩的.TXT文件,输入该文件的文件名,程序就会将改文件压缩为.nz的文件,后解压为.txt文件。 测试数据 测试数据为文本字符集合{a,b,c,……,z,0,1,2,…9},来测试压缩器和解压器。 概要设计 要实现上述功能,了解游程长度编码和LZW编码的基本原理及基本算法。 (1)、游程长度编码 游程长度编码是栅格数据压缩的重要编码方法,它的基本思路是:对于一幅栅格图像,常常有行(或列)方向上相邻的若干点具有相同的属性代码,因而可采取某种方法压缩那些重复的记录内容。其编码方案是,只在各行(或列)数据的代码发生变化时依次记录该代码以及相同代码重复的个数,从而实现数据的压缩。 例如对图1所示的栅格数据,可沿行方向进行如下游程长度编码: (9,4),(0,4),(9,3),(0,5),(0,1)(9,2),(0,1),(7,2),(0,2),(0,4),(7,2),(0,2),(0,4),(7,4),(0,4),(7,4) ,(0,4),(7,4) ,(0,4),(7,4)   游程长度编码对图3-6(a)只用了40个整数就可以表示,而如果用前述的直接编码却需要64个整数表示,可见游程长度编码压缩数据是十分有效又简便的。事实上,压缩比的大小是与图的复杂程度成反比的,在变化多的部分,游程数就多,变化少的部分游程数就少,图件越简单,压缩效率就越高。   游程长度编码在栅格加密时,数据量没有明显增加,压缩效率较高,且易于检索,叠加合并等操作,运算简单,适用于机器存贮容量小,数据需大量压缩,而又要避免复杂的编码解码运算增加处理和操作时间的情况。 [font id=zoom class=zoom]游程长度RL (Run—Length),简称游程或游长,指的是由字符(或信号取样值)构成的数据流中各个字符重复出现而形成的字符的长度.如果给出了形成申的字符,申的长度及申的位置,就能恢复出原来的数据流,游程长度编码(RLC)就是用二进制码字给出这些信息的一类方法。游程长度编码的主要

文档评论(0)

1亿VIP精品文档

相关文档