程序是怎样跑起来的 第六章

讲文件的压缩机制。先了解一下保存在文件中的数据形式,文件是将数据存储在磁盘等存储媒介中的一种形式。说白了就是字节数据的集合。如果数据是文字,这个文件就是文本文件,是图形就是图像文件,但是文件的字节数据都是连续存储的。现在看一下压缩机制,第一种是 RLE算法。就是将文件的内容用“字符*重复次数”的形式压缩。比如“aaaaaabbcddeeeeef”这个数据,它就可以用“a6b2c1d2e5f1”来表示。但是,在文本文件中,同样字符多次 重复出现的情况不多见,它不适合文本文件的压缩,只适合相同数据经常连续出现的图像、文件。第二种是哈夫曼算法。它是“多次出现的数据用小于8位的字节数表示,不常用的数据用超过8位的字节数表示。”在这个算法中,只要掌握了哈夫曼树的制作方法,并用程序完成,就可以用这个算法实现文件压缩了。哈夫曼树是从叶生枝,然后再生根。步骤是:1 列出数据和它出现的次数 2 选择两个次数最少的数字。拉出两条线,在交叉的地方写出两个数字的和 (有多个选项时,任意选取)3 重复  2  4 最终这些数字汇集到一个点上,它就是根。从根到底部的枝子这个顺序,左边枝子写0,右边写1,按照顺序写下来。就是哈夫曼编码。这个算法能够大幅提升压缩比率。最后讲了可逆压缩(能还原到原状态的压缩)和非可逆压缩(不能--)。jpg格式的文件是非可逆,还原后的信息有一部分是模糊的,gif文件是可逆的,但有色数限制,所以还原后也会图像模糊。

posted on 2019-03-28 21:48  hzhhzguk  阅读(106)  评论(0编辑  收藏  举报