数据和文件的压缩

Author: 张熙平 Date: 2000年 第29期

#1  一、电脑中的数据压缩
#1  1.什么是数据压缩
  计算机的早期阶段,存储介质容量非常有限,大家使用最多的是软磁盘,而几乎所有操作都是通过软盘完成,如果谁的机器中有一个20MB或40MB的硬盘,就被称为高配置了。由于软盘非常容易损坏,为加强数据的安全,许多人不得不繁琐地进行数据备份。为满足在有限的容量中存放下更多的数据,对数据进行压缩这项技术出现了,数据压缩就是采用特殊的编码方式来保存数据,使数据占用的存储空间比较少。数据压缩的方式非常多,不同的数据都有不同的数据压缩方式(也就是编码方式)。
#1  2.数据压缩的应用
  现在几乎每一个计算机用户都在使用数据压缩功能。拿最简单的讲,我们使用最广泛的文字处理软件如Word、WPS都提供了对保存文件的压缩功能,以使编辑生成的文件容量更小。目前最常用的图形(如JPEG)、音频(如MP3)、视频(如VCD/DVD)文件都使用了压缩技术,以使在有限的空间中存放更多的文件。不过这些压缩操作都是由相应的程序自动完成的,用户感觉不到。另外,我们通过软盘交换文件、通过因特网下载文件、通过邮件传送文件、使用备份程序等都可能要用到和接触到数据压缩,它已经融入到电脑的方方面面(^29020201a^表1)。
  在我们日常生活中,也经常遇到的数据压缩技术,比如很多卫星电视就是通过数据压缩技术来传输的(先将电视信号转化为数字编码,再进行数据压缩,然后通过卫星传送到各地的有线电视台,有线电视台再还原为电视信号传送到我们千家万户)。另外,VCD、SVCD、DVD、IP电话、长途电话、传送股市行情数据等都要用到数据压缩技术。
#1  3.即时压缩和非即时压缩
  比如我们打IP电话,就是将语音信号转化为数字信号,同时进行压缩,然后通过因特网传送出去,这个数据压缩的过程是即时进行的。我们看的一些电视,比如电影台的节目就是通过即时压缩的方式传送的;当我们通过Modem连接因特网传送数据的时候,Modem实际上也要将数据即时压缩传送。即时压缩一般应用在影像、音乐数据的传送中。即时压缩经常用到专门的硬件设备,如压缩卡等。
  非即时压缩是我们个人电脑用户最经常用到的,这种压缩是在需要的时候进行,没有即时性。例如压缩一张图片、一篇文章、一段音乐等。非即时压缩一般不需要专门的设备,直接在电脑中使用相应的压缩程序就可以了。
#1  4.数据压缩和文件压缩
  其实数据压缩包含了文件压缩,数据本来是泛指任何数字化的信息,包括电脑中用到的各种文件,但有时候,数据是专指对一些带时间性的数据如音乐、影像等(称为流媒体)以及一些及时采集的数据(如股市行情、温度等),这些数据常常是即时采集,即时处理的。像水一样,很多时候没有一个固态的形式保存在磁盘等物理介质中,而只是在传输介质中流动。而文件就是专指保存在磁盘等物理介质的数据集合了,如一篇文章数据、一段音乐数据、一段程序编码数据等。文件经过压缩后一般称为压缩文件。文件的压缩一般也称为打包,将压缩的文件还原成本来的样子称为解包、释放、扩展或解压缩等。一般我们个人在电脑中对文件数据的压缩都是非即时性压缩,我们这里主要介绍的就是关于文件的压缩。
  另外,有一种压缩文件称为自解压文件,这种压缩文件实际上是一个程序文件,这个程序文件运行后,能够自己将压缩的文件还原出来,而不需要另外的解压缩工具。很多程序的安装文件都是自解压文件。
#1  5.无损压缩与有损压缩
  比如一个图片文件当保存为不同的格式时,其数据量(文件大小)的差别非常大,使用BMP和JPEG格式生成的文件有时会相差十几倍。而所谓的JPEG格式图片就是在微小的损失图片质量的情况下对图片文件中的相同或相似数据进行大量压缩,以使之生成的文件更小。但损害了图片的质量,也就是丢掉了一些数据信息。
  此外,另一种常见的有损压缩表现在音频和视频方面,如我们看到的VCD、DVD视频格式影碟和MP3、VQF、RealMedia音频文件,都是采用压缩算法编码的,这种经过压缩处理的文件在还原成声音或影像时或多或少都会有一些质量损失,只不过有些编码算法已经非常先进,可以将压缩损失降到非常小,使一般用户用眼和耳感觉不出来罢了。
  当然对于一些程序数据和文档数据压缩而言,有损压缩就行不通了,否则还原的数据有误还怎么使用?为此几乎所有的无损压缩算法都具有严格的CRC校验功能,以使经过该算法压缩的数据可以完整的还原,这一点是非常重要的。
#1  6.专用压缩格式和通用压缩格式
  不同的数据类型(包括文件)都有自己特殊的数字编码方式,比如音乐数据的数字编码方式肯定和一张图片的编码方式不同,体现在文件上,就是具有不同的文件格式。同样,不同类型的数据和文件,大都有自己特殊的压缩算法,比如对电影图像的压缩算法可以将影像数据压缩到原来的1%,而这种压缩算法并不能应用于文章数据或程序编码数据的压缩。压缩算法是成千上万,很多数据都有自己专门的压缩算法,比如股票数据、雷达探测数据等都有自己特殊的压缩算法和压缩格式。专用压缩格式有些是有损压缩格式。^29020201b^表2列出的就是我们在个人电脑中常见到的专用压缩格式。
  非专用压缩格式(称为通用压缩格式)一般可以对任何数据文件进行压缩,而且一般都是无损压缩,大多数时候也不用在即时压缩场合。我们这一站的“玩转电脑之旅”也主要介绍针对电脑文件的通用压缩格式。
#1  二、常见的通用压缩格式
  由于数据和文件的压缩无处不在,压缩的类型也极为众多。对一般用户而言,选择一种适合自己使用的压缩格式对数据和文件进行压缩管理是非常重要的。我们普通电脑用户选择压缩格式的标准是:
  压缩格式被广泛使用、具有较高的压缩比、有相对应的操作方便的压缩工具
#1  1.ZIP压缩格式
  ZIP格式可以说是通用数据压缩的事实标准,该种格式具有开放的算法编码、具有最广泛的使用范围、也被几乎所有的著名压缩工具所支持,目前互联网上绝大多数共享软件均采用ZIP格式打包发布,这是它最值得炫耀的资本。ZIP压缩格式应该是你的首选压缩格式。ZIP压缩算法的另一个特点是压缩和解压的速度快,它唯一的缺点是对数据的压缩比不是最高。
  目前ZIP压缩算法最好的支撑软件是WinZip,这个工具目前最新的版本是8.0。该工具的突出优点是操作简单、提供的功能非常实用,也非常强大,除提供ZIP压缩算法支持外,还提供目前流行的其他多种压缩格式支持,可以说WinZip是Internet历史上最有名的共享软件之一,其地位无庸置疑,它应该是你机器中必备的压缩工具。WinZip的官方站点是http:∥www.winzip.com/。
  另一个备选的ZIP压缩工具是Zip Magic,就技术水平而言,该工具要比WinZip先进许多,而且操作也要简单的多。但是由于需要较高速的系统支持以及不同的发行方式,限制了程序的广泛应用。Zip Magic的官方站点是http:∥www.mijenix.com/。
#1  2.CAB压缩格式
  CAB格式是由软件业的老大微软支持的一种压缩算法,目前微软发布的大多数软件(如Windows操作系统)都采用了这种格式。CAB格式具有比ZIP格式更高的压缩比,对数据的压缩更加有效,而且由于Windows操作系统可以直接识别CAB压缩格式,并提供该种格式压缩包的释放功能,该种格式具有很强的竞争力。CAB算法的缺点是压缩速度比较慢,尤其是当使用高压缩比又在运算速度较慢的机器上执行压缩操作时速度更慢。
  对于CAB格式,解压缩工具已经被集成到了Windows中,包括在资源管理器窗口下的直接支持以及在DOS命令行方式下使用的程序EXTRACT.exe,一般不再需要其他辅助工具支持。此外,现在流行的压缩工具都提供对这种格式压缩包的支持,使用也相当简单。而对于压缩编码工具,目前还没有非常著名的工具出现,常见的工具有Cabinet Manager 2000等。
#1  3.ARJ压缩格式
  ARJ压缩算法出现在ZIP算法之前,该种压缩算法的优点是提供了与ZIP算法相近的压缩速度,但是压缩比要比ZIP算法高。所以该种格式面世后曾一度抢占了压缩格式头把交椅位置,被广泛应用。ARJ算法曾经是DOS环境下最为成功的压缩算法之一,不过当操作系统已是Windows的天下时,它没有提供相应的软件支持,所以该种格式已经被大家渐渐淡忘了。
  对于专门的ARJ格式的压缩解压缩工具,目前只有基于DOS环境或者说DOS命令行方式操作的ARJ.exe。而对于该种格式的压缩包的解压缩,由于曾经被广泛使用,现在几乎所有常见的压缩管理工具都支持它。另外,曾经出现过一些在Windows环境下使用的Shell程序(也叫外壳程序,虽然使用窗口方式操作,但实际操作还是调用DOS的命令行)如WinArj 32等,这样可以提供比命令行方式简单的操作,但是Arj的诸多功能都不能发挥出来。Arj.exe提供了上百个命令与开关参数,是目前上面的所有工具都不曾提供的。该工具的官方站点是http:∥www.arjsoftware.com。
#1  4.RAR压缩格式
  RAR格式的兴起源于该种格式提供了比较快速的压缩算法,以及比ZIP、ARJ更高的压缩比。当然RAR得以流行的另一个重要原因是即使在DOS时代,它的支撑程序也采用简单的图形界面操作,而这个界面是仿照当时非常流行的文件管理器NC编写的,这给初级用户提供了极大的方便,因为你不再需要记住复杂的参数和命令,只需要简单的选择就可快速压缩文件。另外在Windows时代,该格式同样提供了一个强大的管理工具,这进一步巩固了它在压缩领域的地位。目前互连网上的一些比较大的文件就是用RAR格式压缩的。
  RAR格式的支撑程序是WinRAR,这个工具目前最新的版本是2.71。该工具同样具有很好的易用性,提供比同类工具更多的压缩包管理功能与安全控制功能。此外,可以支持多种格式的压缩格式,提供强大的系统文件管理功能,非常适合高级用户使用。此外,程序仍然提供在DOS命令行下操作的RAR.exe,这与ARJ.exe是一样的。WinRAR的官方站点是http:∥www.rarsoft.com/。
  以上四种压缩格式可以说是目前最为常见的几种格式,在以前的使用过程中,我们还接触过其他一些格式,如AIN、ACE、PAR、LHA、LZH、TAR、ARC、Gzip、JAR等,虽然其中一些压缩算法曾经辉煌过,但都是昙花一现,随着时间的推移已经没有多少市场了。
#1  5.推荐使用的压缩工具
  目前压缩文件的支撑程序非常多,尤其是专门针对ZIP格式的压缩管理工具。以上我们给出的可以说是其中极小一部分,不过它们都是非常著名的工具,也有最广泛的使用者支持。对于上面提及的几个工具,实际上都提供了对多种格式压缩包的支持,包括创建文件关联、直接解压相应格式文件等等。那么也许你会问到底应该选择哪个工具呢?
  对于初学者以及日常很少接触文档备份和压缩的朋友来讲,使用WinZip或者ZipMagic是非常合适的选择。它们都提供了极为方便的压缩包创建、扩展、打包文件的试运行、打包应用程序快速安装等功能,而且也提供了几乎所有常见压缩格式的直接支持,这样可以给你的操作提供很多方便。此外,ZipMagic针对上网用户特点提供了许多独特的功能,如直接管理电子邮件压缩格式的附件文件、接管浏览器的压缩格式文件下载等,使用效果很好。另一个推荐使用的原因是ZIP压缩算法的压缩速度都非常快,而且压缩比也相对较高。
  如果你需要经常备份文件或者使用软盘传送文件,WinRAR应该是你的首选(^29020201c^1),该工具的特点是压缩比高,支持创建分卷自扩展文件,可以给你的备份操作提供许多方便。而它的另一个重要特点是提供了良好的压缩包数据保护功能,包括给压缩包加口令以及锁定压缩包“Lock Archive”。当使用此项功能后,你就不能修改或者向压缩包中添加数据了,压缩包也就变为“只读”的了,这在某些文件备份场合是相当有用的。
  关于WinRAR的使用方法,大家可以参考《电脑报》26期10版的文章——《轻松使用WinRAR》。
  对于CAB格式,虽然有很好的解压工具支持,但是目前支持该种格式压缩的工具还不是很多,而且操作和界面也有待改进,所以使用的人并不多。
#1  三、压缩和解压缩文件的操作
#1  1.Windows中的CAB管理功能
  Windows 95/98操作系统直接提供解压CAB格式的压缩包功能,它的使用方法也非常简单的,你可以直接在系统资源管理器(也就是文件夹窗口)中打开CAB格式的文件,其操作方式就像是打开普通的文件夹一样,此时,你可以在窗口中看到压缩包中的文件列表。在这个特殊的窗口中,提供了两种解压压缩包文件的方法:一种是直接使用鼠标单击窗口中的文件,此时会出现浏览文件夹对话框,在其中选择路径后即可完成该文件的解压。另一种方法是使用鼠标右键单击需要解压的CAB文件,并从关联的菜单中选择“复制”命令,之后打开需要解压到的文件夹,使用“粘贴”命令解压该文件。如果你使用的是Windows 2000,可以选择资源管理器窗口按钮条中的“复制到”命令,来快速解压打包的文件。
#1  2.WinZip 8.0
  WinZip的特点是使用简单,而且即使不注册也可以使用程序的全部功能,它可是目前大家最喜欢的压缩管理工具。WinZip的功能很多,现在我们只简单介绍如何使用WinZip解压一个文件和压缩一个文件。
  ●解压一个文件最简单的方法——使用鼠标右键菜单
  安装好WinZip程序后,WinZip就会在文件的右键菜单添加解压缩或压缩菜单项,并且凡是ZIP格式文件或其他支持的压缩格式文件的图标都显示成WinZip的关联图标。当我们要解压某个压缩文件,我们可以打开压缩文件所在的文件窗口,用鼠标右键点击压缩文件(^29020201d^2),在弹出的菜单中选择“Extract to”(解压到),然后在弹出的窗口中设置解压的文件夹,按“确定”即可。如果在文件的右键菜单选择“Extract to Folder...”项,则是自动解压到压缩文件所在的文件夹。另外,我们还可以使用鼠标右键菜单创建压缩文件的自解压文件。注意,WinZip如果没有注册的话,每次使用的时候都会提示你进行软件注册,点击“I Agree”按钮即可取消。
  ●压缩一个文件最简单的方法——使用鼠标右键菜单
  在文件窗口中使用鼠标右键菜单压缩一个文件的方法和上面介绍的解压一个文件的方法类似,操作上同样是比较简单方便。
  ●WinZip的向导运行方式和窗口运行方式
  对于一个WinZip关联的压缩文件,我们双击该压缩文件图标,即可启动WinZip。
  WinZip提供了两种操作界面,一种是向导方式,可以根据程序的提示来按照步骤解压一个文件,一种是标准的窗口方式,通过菜单、工具按钮等来操作。虽然向导方式比较简单,但提示语句都是英文,步骤也显得啰嗦了一些,所以,我们建议还是选择窗口方式,在操作上比较方便。设置WinZip以窗口方式运行,可以在程序安装的时候进行,也可以在向导窗口中点击“WinZip Classic”进入窗口方式时进行。
  ●在WinZip的程序窗口中解压文件
  使用WinZip的窗口运行方式打开需要解压的压缩文件,此时可以看到程序在界面窗口中给出的压缩包内的文件列表(^29020201e^3)。单击界面按钮条中的“Extract”按钮,弹出解压设置界面窗口。在界面右边的系统文件夹列表窗口中选择需要解压到的文件夹。选择“Files”项中的“All Files”复选框,表示扩展所有压缩包中的文件。单击“Extract”按钮开始解压压缩包文件。
  如果需要解压压缩包中的部分文件,可首先在程序界面窗口中选择需要解压的文件,之后单击“Extract”按钮,按照上面的步骤操作即可。
  另外,可以拖动程序窗口中列出的压缩包文件到文件窗口中实现文件的解压,或者拖动文件夹中的文件到WinZip打开的压缩包窗口中实现文件的压缩。
  ●在程序界面窗口中压缩文件
  在WinZip界面窗口中,单击按钮条中的“New”按钮,出现“New Archive”对话框,在其中设置新建压缩包的文件名和保存路径。单击“OK”按钮,出现“Add”设置界面,在其中的系统文件列表窗口中选择需要压缩的文件和文件夹。之后单击“Add”或“Add with Wildcards”按钮确定,压缩操作就完成了。