码迷,mamicode.com
首页 > 其他好文 > 详细

Burrows-Wheeler 压缩

时间:2016-07-03 10:29:41      阅读:334      评论:0      收藏:0      [点我收藏+]

标签:

Burrows-Wheeler压缩,这个革命性的压缩算法性能优于 gzip 和 PKZIP,并且易于实现,也没有专利保护,它是Unix的bzip2压缩的基础。

Burrows-Wheeler 压缩算法包含三部分,依顺序分别是:
1. Burrows-Wheeler 变换。给定一个典型的英文文本,把它变换成另一个文本,其中相同的字母序列相邻出现;
2. 前移编码(Move-to-Front encoding)。给定一个文本,其中相同字母多次相邻出现,把它转换成另一文本,其中特定字母比其它字母出现的频次更高;
3. Huffman 压缩(Huffman Compression)。给定一个文本,其中特定字母比其它字母出现的频次更高,通过给出现频次高的字母以短编码而其它频次低的字母长编码来进行压缩。

第三步 Huffman 压缩才是真正进行了信息的压缩:这一步之所以有效是因为第一步和第二步能确保给出一个文本,其中某些字母出现的频次要比其它字母出现的频次更高。为了恢复一个消息,反序应用逆操作:首先应用 Huffman 展开,然后前移解码,最后是 Burrows-Wheeler 逆变换。

前移编码与解码:前移编码的主要思想是让字母表中的字母保持一个字母序列,不断地从输入消息中读入字母,打印出字母出现在字母序列中的位置,然后把该字母移动到字母表的前面。举一个例子,如果我们有一个6个字母的字母表,初始次序为 A B C D E F, 然后我们对输入 CAAABCCCACCF 进行编码,我们将如下更新字母序列:

Move-to-Front  in  out

---------------------    -----   ------

A B C D E F     C   2

C A B D E F     A   1

A C B D E F     A   0

A C B D E F     A   0

A C B D E F     B   2

B A C D E F     C   2

C B A D E F     C   0

C B A D E F     C   0

C B A D E F     A   2

A C B D E F     C   1

C A B D E F     C   0

C A B D E F     F   5

F C A B D E

 

Burrows-Wheeler 压缩

标签:

原文地址:http://www.cnblogs.com/abbeville/p/5636887.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!