JFS 数据压缩算法

压缩算法是IBM版本的 LZ。 通常,LZ 算法通过使用标识第一次出现的给定字符串的位置的指针及其长度来代表第二次和以后出现该字符串的位置来压缩数据。

在压缩过程的开头,未标识任何字符串,所以至少必须将第一个字节的数据表示为需要 9 位的“原始”字符(0,字节)。 压缩给定数据量(比方说 N 字节)后,压缩器在该 N 字节中搜索与以下一个未处理的字节开头的字符串相匹配的最长的字符串。 如果最长的匹配长度为 0 或 1,那么将下一个字节编码为“原始”字符。 否则,该字符串表示为(指针,长度)对,处理的字节数按长度增加。 在体系结构上, IBM LZ 支持 N 值 512,1024 或 2048。 IBM LZ 指定 (指针,长度) 对和原始字符的编码。 指针是大小为 log2 N 的固定长度的字段,而长度被编码为变长字段。