压缩技术 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的记录密度翻了一倍。
因为磁盘编码是由硬盘驱动器在硬件级自动处理的,这里没有必要进一步讨论。当你购买一个硬盘驱动器,它使用一种编码方案而获得一定的容量,但是只要驱动器的容量满足你的要求,购买后,就不必关心它的编码方案了。