数据压缩的其他方法
在数据压缩领域,除了常见的游程编码(RLE)、统计方法和基于字典的方法外,还有一些难以归类的数据压缩方法。下面将为大家详细介绍几种这样的方法。
1. 伯勒斯 - 惠勒(Burrows - Wheeler)方法
大多数压缩方法以流式模式运行,而伯勒斯 - 惠勒(BW)方法以块模式工作,即将输入流逐块读取,并将每个块作为一个字符串单独编码,因此也被称为块排序。该方法用途广泛,适用于图像、声音和文本,能实现很高的压缩比(每字节 1 位甚至更好)。
其主要思想是将一个包含 n 个符号的字符串 S 打乱成另一个字符串 L,且 L 需满足两个条件:
1. 符号集中性 :L 的任何区域往往只集中少数几种符号。也就是说,如果在 L 的某个位置发现一个符号 s,那么 s 的其他出现位置很可能就在附近。这意味着可以使用移到前端(move - to - front)方法(可能结合 RLE)轻松高效地压缩 L。不过,只有当 n 足够大(每个字符串至少几千个符号)时,该方法才能发挥良好效果。
2. 可重构性 :能够从 L 重构出原始字符串 S(除了 L 之外,可能还需要一些额外的数据,但量不大)。
符号打乱的数学术语是排列,一个包含 n 个符号的字符串有 n! 种排列。即使 n 相对较小,这也是一个很大的数字,因此 BW 方法使用的特定排列需要仔细选择。BW 编解码器按以下步骤进行:
1. 创建字符串 L :编码器将 S 进行排列得到字符串 L,并创建一些额外信息 I,供解码器在步骤 3 使用。
2.
超级会员免费看
订阅专栏 解锁全文
740

被折叠的 条评论
为什么被折叠?



