一:莫尔斯码是根据字母在一般文本中的出现频率来确定它们的编码长度的。但是,对于 AAAAAABBCDDEEEEEF 这样的特文本,这一编码系统就不是最优的了。
在莫尔斯码中,E的编码长度最短,但在AAAAAABBCDDEEEEEF 这段文本中,出现频率最高的字符是 A ,如果我们能为 A 分配长度最短的编码,就能进一步提升压缩效率。哈夫曼算法的要点是根据不同的压缩对象文件来构建最优的编码系统,并基于这一编码系统来进行压缩。因此,具体哪个数据分配哪个编码(哈夫曼编码),在不同的文件中是不同的。在由哈夫曼算法压缩的文件中,同时保存着哈夫曼编码的信息以及压缩后的数据
哈夫曼算法使用哈夫愛树(Huftman tree)来构建编码系统,从而实现了不用分隔符就能区分字符的编码系统。
在使用哈夫曼树的情况下,即便每个字符的编码长度不同,不同的字符也能正确分隔开来。
理解了哈夫曼树的构建方法,就可以编写程序用哈夫曼算法实现文件压缩。只不过和游程编码相比,其程序要复杂得多。
二:使用图片文件的目的是图像数据输出到显示器或打印机。Windows 标准图像数据的格式BMP”,这是一种完全未经压缩的格式。由于显示器或打印机输出的(bit)可以直接进行映射(mapping),所以使用了
(bitmap)这名称。
除BMP格式之外,还有很多其他类型的图片文件格式,例IPEC”格式、GIF”格式、PNG®格式等。BMP 之外的大多数图像数据式采用了一定的方法对数据进行压缩。
对于图片文件,我们可以使用与之前介绍的游程编码、哈夫曼法不同的压缩方法,这是因为在大多数情况下,在质量方面,压缩。
① BMP (Bitmap,位图)是 Windows 内置软件“画图”等工具所生成的医文件格式。
② JPEG (Joint Photographic Experts Group,联合图像专家组)是一种常用數码相机的图像格式。
③ GIF (Graphics Interchange Format,图形交换格式)是一种常用于网页的志和按钮等场景的图像格式。它最多能存储256种颜色。
④ PNG(Portable Network Graphics,便携式网络图形)是一种为了在网取代GIF 而开发的图像格式。它能够存储比 GIF 更多的颜色。