lharc中的动态限长编码压缩算法

时间:2020-10-19 15:10:08 理工毕业论文 我要投稿

lharc中的动态限长编码压缩算法

摘 要 该文对dos下常用的数据压缩软件lharc的算法进行了分析。该算法中采用了一种动态限长变化的不等长编码方法,使最短码2位,而最长码不超过8位,达到了最佳压缩效果。
一、前言
lharc是dos下的数据压缩软件之一,与同类软件如arj、pkzip、pkarc等相比,具有如下几个特点。
1.压缩比高
lharc采用先进的字符串自适应压缩与单个字符的限长变化编码压缩相结合的方法,对文件进行双重压缩,尽可能地减少了冗余,对各类文件的压缩效果都很好。
2.保密性好
除应具有保存文件、节约存储空间的.功能外,进步数据的保密性也是压缩软件的一个重要功能。lharc由于采取了与众不同的动态限长编码压缩技术,使字符与其压缩代码之间无固定的对应关系,压缩后的数据更具保密性。
3.软件短小精悍
lharc整个软件集压缩、还原于一身,只有30余k,而其它同类软件均有100余k。
lharc的基本压缩原理是,将待压缩文件看作是字符流(字节流),将其中的冗余信息分成两类:
(1) 同一字符的离散出现
如 abcda……
这里,字符a出现了两次。
2.字符串的重复出现
如 abcdabcd……或abcd…abcd……
这里,字符串abcd出现了两次。值得说明的是,这里串的概念是lzw方法意义下的,即将字符流中每一字符均看作是一个串的起始字符。
压缩时,首先对字符流中的字符串进行识别,将其中的重复串用压缩格式记载,然后再将处理后的数据用不等长编码进行代码变换及压缩。下面仅就其中的动态限长变化编码方法进行先容。
二、动态限长编码方法
1.基本原理
经重复串压缩后的数据中,重复串已大大减少,而同一字符的分布式冗余题目则比较突出。由于256个字符的使用概率一般不同,往往相差悬殊,若采用不等长编码,将高频字符用较短代码表示,低频字符用较长码表示,则进步了整体的压缩比。
haffman编码是最佳不等长编码,它根据文件中各字符的统计概率来分配代码长度。如设文件中不同字符数为n,第i个字符的概率为pi,代码长度为li,则当概率满足p1≥p2≥…≥pn时,haffman编码的码长满足l1≤l2≤…≤ln,此时,代码均匀长度的数学期看=∑ni=1pi

【lharc中的动态限长编码压缩算法】相关文章:

1.动态哈夫曼编码的改进

2.Java中的动态代码编程

3.jquery中动态效果

4.php中的字符编码转换函数的用法

5.Java的压缩与解压缩ZIP

6.基于正交空时编码的多用户MIMO系统随机用户调度算法

7.PHP的压缩函数

8.如何在Excel中动态调取图片

9.CAD中字段和动态反应文字