标题：压缩技术
压缩技术
压缩技术 Compression Techniques
基本的压缩技术
基本的压缩技术有：
空格压缩(Null Compression) 将一串空格用一个压缩码代替，压缩码后面的数值代表空格的个数。
游长压缩(Run-Length Compression)它是空格压缩技术的扩充，压缩任何4个或更多的重复字符的串。该字符串被一个压缩码、一个重复字符和一个代表重复字符个数的值所取代。
关键字编码(Key-word encoding）创建一张由表示普通字符集的值所组成的表。频繁出现的单词如for、the或字符对如sh、th，被表示为一些标记（token），用来保存或传送这些字符。
哈夫曼统计方法(Huffman statistical method）这种压缩技术假定数据中的字符有一个变化分布，换句话说，有些字符的出现次数比其余的多。字符出现越频繁，用于编码的位数就越少。这种编码方案保存在一张表中，在数据传输时，它能被传送到接收方调制解调器使其知道如何译码字符。
因为压缩算法是基于软件的，所以实时环境中，存在着额外开销，会引起不少问题。而文件备份、归档过程中的压缩不会有什么问题。使用高性能的系统有助于消除大部分的额外开销和性能问题。另外，压缩消除了文件的可移植性，除非解压缩软件也与文件一起传送。
注意，有些文件已经被压缩，进一步的外部压缩不会有任何好处，一些图形文件格式，如标签映象文件格式（TIFF），就已经包含了压缩。
存储系统压缩
Storage System Compression存储系统压缩
在讨论文件存储的压缩算法之前，应该明确文件压缩不同于磁盘编码。磁盘编码通常由磁盘驱动器把更多的数字1和0写到磁盘的物理表面上。文件压缩把文件中的字符和位串挤压到更小的尺寸。它在文件信息传送到硬盘驱动器的写头之前由软件完成。现代的使用编码的硬盘驱动器只是从CPU接收1和o的位流，并且把它们压挤到比没有使用编码小得多的空间中。磁盘编码简单讨论到这儿，下面将着重讨论文件压缩。
磁盘记录系统如硬盘驱动器通过改变磁盘表面的磁场来记录信息。两种可能状态间的磁场变化称为磁通翻转（flux transition）。简单地说，磁通翻转代表数字1，磁通不翻转代表数字0。编码提供了一种方法使每个磁通翻转代表更多数字信息。改进调频制MFM(Modified frequency modulation）将一个磁通翻转表示多个1，将磁通不翻转表示多个0。编码技术包括下述几种。
游长受限码（Run Length limited(RLU））把位组合格式表示为代码，可以用较少的磁通翻转来存储。与MFM相比，存储容量提高了50%。
改进的游长受限码（Advanced run length limited(ARLL) 通过把位组合格式转换成能用四倍密度磁通翻转来存储的代码，从而把MFM的记录密度翻了一倍。
因为磁盘编码是由硬盘驱动器在硬件级自动处理的，这里没有必要进一步讨论。当你购买一个硬盘驱动器，它使用一种编码方案而获得一定的容量，但是只要驱动器的容量满足你的要求，购买后，就不必关心它的编码方案了。
文件压缩
文件压缩的实现有几种方式，提供的各种工具使你能每次压缩一个文件，或压缩一组文件。一组文件能压缩成单个文件，更易于传送到其它用户，解压缩工具把文件解开。一个流行的共享文件压缩工具称为PKZIP（威斯康辛州Glendale的PKWARE公司），用于CompuServe和其它公告牌软件上压缩文件，可以从大多数公告牌服务上卸下PKZIP。
大多数操作系统，包括DOS、NetWare、Windows NT等现在都包含压缩软件。在NetWare 4.x中，能自动压缩指定文件或整卷上的或指定目录中的所有文件。指定文件属性能被设置以标记你希望系统在它们不用时自动压缩的文件。启动自动压缩系统时要小心，一些应用程序由于文件处在压缩状态而不能正常工作。
文件压缩里两个重要概念是无失真（lossless）和有失真（lossy）：
无失真压缩(Lossless Compression）无失真压缩系统假定从已压缩文件中返回所有信息，文件中每一位都是重要的，所以压缩算法精确地压缩和解压文件。
有失真压缩(Lossy Compression）有失真系统假定在压缩和解压过程中允许一定的信息损失。许多高清晰度的图形文件包含的信息如果在压缩阶段丢失了也不会引起变化。例如，如果你以高分辨率扫描彩色图画，但是你的显示器不能显示这种清晰度，你就可以使用有失真压缩方案，因为不会遗漏细节。声音和图象文件也适于用有失真压缩，因为信息损失引起的变化很小，解压播放时可能觉察不出来。
虽然无失真压缩中没有信息损失，但压缩比通常只有2:1，有失真压缩根据被压缩信息的类型提供的压缩比从100:1至200:1，声音和图象信息能很好地压缩，因为它通常包含大量冗余信息。
图形、视频和声音压缩
Grraphics Video and Voice Compression图形、视频和声音压缩
随着多媒体和电视会议的出现，高效的压缩系统变得重要起来，根据视频图象分辨率，一幅典型的彩色图形图象需占用2MB或更多的磁盘空间，1秒钟未压缩的全运动视频图象所需磁盘空间约10MB。网络管理员关心多媒体文件的大小是因为将它们拷贝到服务器或其他用户时会占用网络带宽。
幸运的是，大多数多媒体图象能使用前面讨论过的有失真压缩技术。在视频图象压缩中，每帧必须是通过删除冗余信息进行精简的象素阵列，视频图象压缩通常使用特殊的集成电路来处理，而不是使用软件，因为软件操作太慢。标准视频图象一般约为30帧/秒，但有些研究发现对许多观众来说16帧/秒也可接受，所以帧删除方法提供了另一种压缩方式。
处理多媒体信息的几个压缩标准
处理多媒体信息的几个压缩标准描述如下：
联合图象专家组（JPEG）压缩(Joint Photographic Experts Group(JPEG)compression)JPEG使用普通算法压缩静态图象。三维彩色和坐标图象信息首先被转换成更适于压缩的格式。颜色信息也被编码，如果系统不能使用的话，则删掉一部分。压缩值是用户可选的，取决于能容忍的图象降级的程度。一旦这些初始设置被确定，就可使用无失真或有失真压缩技术来压缩文件。JPEG不是为处理视频图象而专门设计的，但通过压缩帧并减小帧的尺寸与频率，它在一定程度上做到了这一点。
片段压缩(Fractal Compression）在Iterated Systems公司开发的片段压缩技术中，随着压缩启动程序（一种专用板）使用一种以各种方式操作片段的数学变换来寻找图象中的匹配模式时，图象被分成越来越小的片段。重复的模式被保存起来以重建原始图，不匹配的数据被认为是不重要的并被删掉。用户可选择处理运行的时间量，它决定了对数据的压缩量。
音频-视频交替(AⅥ）（Audio-Video Interleave(AⅥ））AⅥ由Microsoft开发，作为一种在CD-ROM盘上存储活动视频图象的方法。读取信息时使用软件解压。这种技术结合了无失真技术和一种快速但并非有效的特殊压缩算法。AⅥ图象减少了每秒的帧数，从而产生令人不满意的图象。然而，对某些应用来说，这种技术是可以接受的。
数字视频交互(DⅥ）（Digital Video Interactive(DⅥ））DⅥ是由Intel开发的活动视频图象压缩方案，被认为是事实上的标准。与AⅥ相似，它最初用于CDROM应用，并成功地把视频图象以这种格式带到了台式系统。
Indeo视频图象(Indeo Video)Indeo视频是一种数字视频图象记录格式和压缩软件技术，它能够将视频图象文件压缩到未压缩前的1/5至1/10。例如，Indeo能将一个50MB的文件减小到9MB。Indeo类似的产品有Microsoft Video for Windows、OS/2操作系统和Apple Quicktime for Macintosh and Windows。播放根据提供的硬件类型而优化，所以较快系统上的帧播放率会有所提高。视频图象的记录使用Intel i750视频图象处理器来优化，因为视频图象在接收时就被压缩，而不是先存储再压缩。它使用了多种压缩技术，包括有失真和无失真技术。
运动图象专家组（MPEG) (Motion Picture Experts Group(MPEG))MPEG正在开发若干视频压缩标准，该标准定义国际通用格式、数据速率和压缩技术。MPEG-1规范定义了音频和视频以及如何以1.5Mbps至2Mbps的速率从盘上访问全运动视频图象。MPEG-2致力于提供质量超过NTSC、PAI和SECAM广播系统的全运动视频图象。
其它压缩方法正处于研究阶段，现有的方法也正被重新修订，CCITT委员会正在从事可视电话和综合业务数字网（ISDN)上的电视会议以及其它一些服务的标准的制订。
数据通信压缩
Compression for Datoo Communication数据通信压缩
压缩可以提高广域链路中的吞吐量。在你需要决定链路是使用由调制解调器连接的较便宜的电话线还是使用较昂贵的专用连接时，若你要选择较便宜的方案，一个拥有数据压缩功能的调制解调器会提供额外的吞吐量。
如果需要全时（full-time）连接，数据压缩也会帮助你充分利用这些连接。然而，也会有限制，如果传输速率超过了64Kbps，在广域网的连接点上就不能自动地完成数据压缩，因为压缩跟不上线路的速度。解决的办法是在发送之前使用PKZIP之类的压缩工具把文件手工压缩到较小的长度，文件压缩后被传送到接收方，由接收方将其解压缩。
调制解调器制造商使用了许多前面提及的数据压缩技术，但随着CCITT V.42bis数据压缩标准的采纳和在大多数调制解调器中的具体实现，Lempel-Ziv技术逐渐流行起来。Motorola Codex已经实现了数据速率超过100kbps的测试，虽然目前的限度是28.8Kbps。
在Lempel-Ziv数据压缩算法中，所有单字符串占据了整个表。当新字符串出现时，就建立一种类似于图C-25所示的树型结构，该图显示了树的“T”分支。注意沿着树的任何一个分支，可演绎出一个三字符的词。树的每个分支由一个码字来标识，在所有的传输中传送的都是码字。如果出现新字符串，就在树的适当分支上增加节点，并生成一个新的码字来代表它。
还有其它压缩方法如Microcom联网协议（MNP）类型5和类型7系列。但是近几年V．42标准是大多数调制解调器厂商使用的压缩方法。