在我深入研究如何动态规划LZW压缩算法的词典时,为了有效提高压缩率,我在此提出以下公式:
压缩价值=(词条长度/词条索引)×词条使用率(仅适用于LZW压缩算法)
在词条加入词典后默认词条使用率为100%,然后从下一次调用字典中的词条开始计算词条使用率。对于压缩价值低的词条会分配一个长索引,压缩价值高的词条分配一个较短的索引。在每次词条使用结束后重新计算字典中所有词条的压缩价值并重新根据刚计算出来的新的压缩价值分配新的索引。对于压缩价值为零(使用率为零)的词条一旦超过30次没有被调用,将会被删除。
可以再建立两个表,一个表示每一个词条目前的压缩价值,一个用来记录所有压缩价值为零的词条多少次没有被调用。程序可以根据两个表来分配索引和删除词条。