Dzwebs.Net

撰写电脑技术杂文十余年

信息为什么可以压缩(信息压缩的原理)

Admin | 2010-8-27 10:52:20 | 被阅次数 | 10370

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

  一般来说,信息是可以压缩的。之所以可以压缩,是因为他们通常有冗余。

  用高级语言编写的规范程序中,这种情况比较多。比如,空格比较多。如果一串全是空格,就可以用一个字节来表示,字节的第7位记录为“0”(表示空格),其余表示空格数,这就是可以压缩一定的数据量。

  又如,高级语言使用的关键字出现的频率比较高,如BEGIN、END、THEN、PROCEDURE等,如果用一个控制字符加一个编码表示他们,也能减少一定的存储量。如下的例子,有8个字节的数据。

  00000000 00000111 10000000 00000000
  00000000 00000000 00000000 11111111

  这一连串的0和1的数据,0和1的重复次数很多。当将这些数据自左向右,再自上向下地连续排列,就可以用连续0和连续1来表示它们。例如,将前面2个字节的二进制数据00000000、00000111连接起来,就得到0000000000000111,很明显,可以用13个0和3个1来表示这个数。那么,如何来压缩这8个数据呢?这里用一个字节表示一串0或1,字节最左的一位是0,则该字节代表一串0,否则,代表一串1。该字节余下的7位就用来表示0或1的个数,因为有7位,至多可表示127个0或1,若超过可再用一个字节。这样,上述数据拼连起来可用下列字节来表示:

  00001101 13个0
  10000100 4个1
  00100111 39个0
  10001000 8个1

  只用4个字节,就完整的表示了上面8个字节0和1构成的二进制数据。因此,压缩了50%。

  需要说明的是,压缩后的数据和原来的数据是两种不同的数据。所以,在使用时还得恢复成原来的数据,这就是通常所说的“解压缩”。

  上述压缩方法是无损压缩,也就是说,能够完全还原为原来的数据。

  另外一种方法是有损压缩,也就是说,不能精确地还原成原来的数据。这种方法主要用于音频和视频数据,它们除了使用类似上述方法外,还利用了人们的感官能力的限制。例如,普通人对于过低和过高频率的声音的感受能力很差,如果将这部分略去,则能够大大压缩数据量,又能够将它们保持在可接受的失真限度之内。

  同样,对于图像和视频,冗余表现在三个方面。

  一是空间冗余

  如在一幅照片上,许多相邻的像素具有同样的颜色和高度,例如蓝色天空和白色的衣服等。

  二是时序冗余

  像一部电影的武打场面,虽然动作让人眼花缭乱,但实际上,在不切换场景的情况下,后面一帧图像与前面一帧图像相比,画面上大部分像素都没有变,特别是背景。电影每秒钟播放24帧,即使正在打斗的人,在1/24秒中也不是身体的每个部位都在动。

  三是光谱冗余

  明亮的像素在所有的颜色中都明亮,不局限于个别颜色。而且,人眼对亮度比对颜色敏感。利用这些冗余特征,多媒体信息采用类似上述的方法可以大幅度地压缩。例如,MPEG-1是有损压缩,压缩比的理论值是200:1,一般实际实现的是50:1。

  现在,国际上有许多的压缩标准。例如,MP3是一种音乐信息压缩标准,JPG是一种静态图像信息压缩标准,MPEG是一种视频信息压缩标准,这些标准有很高的压缩比。

  正因为这样,综上所述,存储在计算机里面的各种信息或称为文件,是可以压缩的。


该杂文来自: 基础知识杂文

上一篇:PDT和PST是什么意思?

下一篇:比较文件和比较文件夹的方法

网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231 访问统计