题 目 基于霍夫曼算法的数据压缩编码译码器的设计实现 难 度 中等 可选人数 1 内 容 数据压缩可以将数据以更紧密的形式存储。压缩算法首先探测数据的存储模式,然后使用更少冗余的编码方式,用更少的信息重组表示它们。Huffman编码的理论描述工具是Huffman树,是一种加权路径长度最短的二叉树。Huffman给出了构造具有最小加权路径长度的二叉树的算法。设计目标:实现Huffman压缩的编码器和译码器。 编码器的工作过程是:首先读入待压缩源文件,为保证与源文件信息完全一致,对文件的读写操作都用二进制文件的方式进行。然后建立并分析字母表,对读入内存的源文件以字节为单元进行分析,将其用C++内建的char类型表示。对每种字符的出现频度进行统计,以频度作为建立Huffman树的权值。频度表建好之后,建立Huffman树,对出现的每种字符进行Huffman编码。此时,再次读入源文件,逐字节编码,将得到的编码流写入到磁盘文件。 译码过程是:读入被压缩的文件,将其解释为比特流,根据Huffman树,对比特流逐位译码,将译码结果逐次写入到磁盘文件。 基本要求 (基础知识、开发环境) 1、数据结构、面向对象程序设计、软件工程的基础知识; 2、Huffman算法及编码理论; 3、软件重用(reuse)知识; 4、C++标准模板库(STL)的设计理念; 5、C++程序设计。开发环境为C++。 参考文献 1、Huffman算法设计与应用(李建学等编著,清华大学出版社);2、指导老师提供的文献资料;3、学生调研收集的文献资料。