概述
前缀编码,有时也被称为前向编码,是另一个通过移除冗余数据来降低数据量的算法。思想非常简单,但算法实现比较困难。要了解原因,首先我们来看一看它的原理。
请看下面的字典。
use
used
useful
usefully
usefulness
useless
uselessly
uselessness
为了不使用纯文本保存这些单词或者在网络上传输,我们可以用前缀编码进行压缩(编码)。
很明显,每一个单词都以表中的第一个单词“use”为前缀。所以我们很容易将它们压缩成下面的数组。
$data = array(
0 => 'use',
1 => '0d',
2 => '0ful',
3 => '0fully',
4 => '0less',
5 => '0lessly',
6 => '0lessness',
);
显然这并不是最佳的压缩结果,在不仅仅使用第一个词作为前缀的情况下,我们可以更进一步压缩。