[关键词] 压缩; 编码; 效率
1.3 设计方法
本程序基于VC开发平台,结合C和C++基础语言,利用MFC设计界面,基于算术编码、huffman编码、字典编码和游程编码的原理模拟几种经典的压缩程序。
具体问题如下:
(1)程序设计的界面美化
用外部的图片填充画刷,对窗体进行重绘,达到自己想要美化的效果。
(2)压缩方法的设计
基于几种经典的压缩原理,利用自己所学的数据结构、C语言等方面的知识,实现相应的压缩算法。
(3)系统结构的设计
每种方法都写成自有的类,类的成员方法分别实现自己的压缩和解压功能,通过VC的消息响应机制将界面和功能统一起来。
2.3 算法的原理及分析
从计算机的出现到现在已经半个多世纪,半个世纪以来数据压缩成为人们研究中的热点,各种压缩算法层出不穷,几种经典的算法也相应而生。每种算法都各有优点和缺点,一种算法根据文件内容的不同,其压缩的效率也会有所差别。下面就是我们分析算法的原理以及优缺点[2]。
目 录
1 背景意义 1
1.1 设计背景 1
1.2 设计意义 1
1.3 设计方法 1
2 系统分析 2
2.1 系统结构图 2
2.2 操作流程 3
2.3 算法的原理及分析 3
2.3.1 算术编码 3
2.3.2 游程编码 5
2.3.3 字典编码 6
2.3.4 Huffman编码 9
3 系统的设计 11
3.1 系统的界面设计 11
3.2 算术编码的设计 11
3.3 游程编码的设计 11
3.4 字典编码的设计 13
3.5 Huffman编码的设计 13
4 编码与实现 15
4.1 配置环境 15
4.2 在设计软件的问题的解决方法 15
4.2.1 Huffman树在文件中的存储 15
4.2.2 算术编码的概率表示 15
4.3 算术编码核心代码的实现 15
4.3.1 压缩代码的实现 15
4.3.2 解压代码的实现 18
4.4 游程编码核心代码的实现 19
4.4.1 压缩代码的实现 19
4.4.2 解压代码的实现 20
4.5 字典编码核心代码的实现 20
4.5.1 压缩代码的实现 20
4.5.2 解压代码的实现 21
4.6 Huffman编码核心代码的实现 22
4.6.1 压缩代码的实现 22
4.6.2 解压代码的实现 23
5 系统的测试与运行 23
5.1 测试概述 23
5.1.1 软件测试的目的 23
5.1.2 软件测试的任务 24
5.1.3 软件测试的环境 24
5.1.4 软件测试的结果 24
5.2 测试结果的分析 24
5.3 测试结果的结论 26
结束语 27
参考文献 28
致谢 29