文本压缩算法是怎么压缩的?

2022-03-17  本文已影响0人  东方诗空

1.目前主要的文本压缩算法
文本压缩是根据一定的方法对大量数据进行编码处理以达到信息压缩存储的过程,被压缩的数据应该能够通过解码恢复到以前的状态,而不会发生信息丢失的现象。

2.文本压缩的分类

这里写图片描述

3.算法描述

3.1.Huffman编码

1.原理简介

2.Huffman编码的优/缺点:
优点:

缺点:

3.2算术编码
原理:
算术编码是基于统计的、无损数据压缩效率最高的方法。它是从全序列出发,采用递推式的连续编码,他不是将单个信源符号映射成码子,而是将整段要压缩的整个数据序列映射到一段实数半封闭范围内的某一段区间,其长度等于该序列的概率。

优点:它避开用一个特定码字代替字符的思想,不需要传送huffman表,即_fileInfo,(自己实现的huffman文件压缩并没有传递该表,我是将信息全部放入压缩问件中,解压缩时从压缩文案中读取信息还原该表。)避免了huffman编码中比特位必须取整的问题。

缺点:

3.3基于字典的LZ系列编码
字典算法是将文本中出现频率较高的字符组合做成一个对应的字符字符列表,并用特殊的代码来表示字符。基于LZ序列的编码包括:LZ77算法、LZSS算法、LZ78算法、LZW等集中基本算法。LZ77和LZW算法实现起来很困难。
LZSS它是字典模式使用自适应模式,基本思路是搜索目前待压缩串是否在以前出现过,如果出现过则利用前次出现的的位置和长度来代替现在的待压缩串,输出该字符的出现位置及长度,否则输出新的字符串,从而起到压缩的目的。

优点:
压缩算法的细节处理不同只能影响压缩率和压缩时间,对解压程序不会有影响

缺点:熟读问题,每次都需要向前索引到文件开头

3.4游程编码
通过统计带压缩数据中的重复字符、去出除文本中的冗余字符或字节中的冗余位从而达到减少数据文件中所占用的存储空间的目的。

当信源概率比较接近时,建议使用算术编码,因为huffman编码的结果趋于定长码,效率不高。

上一篇下一篇

猜你喜欢

热点阅读