读书笔记:6.1:在文件中存储数据的基本单位是1字节(8比特);zip表示压缩文件;zip是Windows标准支持的压缩文件扩展名。半角英文、数字和符号都是用1字节表示的,汉字等全角字符用2字节表示。.BMP格式的图片文件是没有经过压缩的,因此比PNG等压缩格式的图片文件要大。
文件是字节数据的集合体。1字节(=8比特)能够表示的字节数据共有256种,也就是二进制数00000000~11111111所表示的范围。
6.2:这样将文件内容用“数据x重复次数”来表示的压缩方法称为游程编码(runlength encoding)图6-2)。游程编码是一种很好用的压缩方法,常用在传真的图像压缩等领域。
6.4:哈夫曼算法是大卫·哈夫曼于1952年提出的,ZIP格式也是使用哈夫曼算法来进行压缩的。要理解哈夫曼算法,我们首先需要舍弃“1个半角英文、数字和符号占1字节(8比特)”的固有观念。一个文本文件中包含各种各样的字符,但每个字符的出现次数是不同的。在实际的莫尔斯码中,不同字符所使用的编码长度是不同的。莫尔斯码的编码对象是英文字母,在一般的文本中出现频率越高的字母,其编码长度越短。这里的出现频率不是对出版物中的文章进行统计得出的结果,而是根据印刷厂所使用的活字个数来确定的。如表6-2所示如果将短信号编码为1,长信号编码为11,那么字母E就只用一个“1”,即1比特表示,而字母C需要用“110101101",共9比特来表示。这里我们用0来表示信号的间隔。在实际的莫尔斯码中,如果短信号长度为1,则长信号长度为3,间隔的长度为1。
6.5:哈夫曼算法使用 哈夫曼树来构建编码系统从而实现了不用分隔符就能区分字符的编码系统。在使用哈夫曼树的情况下,即便每个字符的编码长度不同不同的字符也能正确分隔开来。理解了哈夫曼树的构建方法,就可以编写程序用哈夫曼算法实现文件压缩。
6.7:使用图片文件的目的是将图像数 据输出到显示器或打印机:Windows标准图像数据的格式是BMP团,这是一种完全未经压缩的格式。由于显示器或打印机输出的点(bit)可以直接 映 射,所以使用了BMP(bitmap)这个名称。除BMP格式之外,还有很多其他类型的图片文件格式,例如JPEG由格式、GIF显格式、PNG通格式等。BMP之外的大多数图像数据格式采用了一定的方法对数据进行压缩.