基于熵判决最优差分编码的lzw压缩方法

文档序号:7535634阅读:346来源:国知局
专利名称:基于熵判决最优差分编码的lzw压缩方法
技术领域
本发明属于数据处理技术领域,特别是一种LZW(Lempel-Ziv-Welch)压缩方法,适合于无线传感器网络中慢变数据压缩。
背景技术
无线传感器网络的重要工作之一是采集数据,并对采集的数据进行相应的处理,然后发送到接收端。多个传感器节点产生大量的数据,如果不进行相应的处理而直接进行传输,这样会消耗大量的节点能量。数据压缩可以减少数据的传输量,对于节省传感器节点能量和带宽具有重要的意义。1977年以色列教授Jcacob Ziv和Abraham Lempel提出了著名的LZ77算法,并于1978年对其进行改进,这就是LZ78,打开了基于字典压缩的大门。Terry A. Welch在1984年对该算法进行改进,就形成了现在的LZW(LempeI-Ziv-WeIch)压缩编码。LZW算法采用了一种先进串表的无损数据压缩算法,将每个第一次出现的串放在一个串表中,用一个数字来表示串,如果新的组合数据再次出现时,即可用表示它的数字来代替,并将这个数字存入文件中,压缩文件只存储压缩后数据和极少原始数据的特征数据。解压时先根据原始数据特征建立初始字典表,然后根据接收的数据逐渐建立字典,并把对应数据的串提取解压出来。它的特点是在压缩和解压缩的过程中都能正确的建立这个字典,压缩或解压缩完成后,这个字典又被丢弃。它是一种稳定有效和快速的压缩方法,在常用的PKZIP等压缩软件也用该算法,这种算法主要用在图像数据、文本程序压缩中。现有的LZW改进算法主要是改进字典的存储类型、输出码字长度优化和对数据压缩存储长度的改进,然而对于慢变的数据直接进行LZW压缩,虽然有一定程度的压缩比,压缩比提高并不明显。因此如何改进无线传感器网络中LZW压缩算法,提出快速有效的压缩算法和LZW改进的压缩算法就显得尤为必要。

发明内容
本发明的目的在于针对上述已有技术的不足,提出一种基于熵判决最优差分编码的LZW压缩方法,以有效压缩无线传感器网络中的缓慢变化数据,实现最优压缩比。实现本发明的技术方案是利用无线传感器网络中慢变的数据,采用多次差分编码,通过计算熵值确定最优差分编码次数,最后进行LZW压缩、LZW解压缩和m次差分解码,得到原始数据。具体步骤如下(I)设原始数据为Xtl (i),i=l, 2,…,N,N为原始数据的长度,则第m次差分编码后数据xm(i)为
权利要求
1.一种基于熵判决最优差分编码的LZW压缩方法,包括如下步骤 (1)设原始数据为Xtl(i),i=l, 2,…,N,N为原始数据的长度,则第m次差分编码后数据XnlQ)为Xm ⑴=XnrlQ)-XnrlQ-I) 其中设定Xnrl(O)=O, i=l,2,…N,m=l,2,3,…,Xm^1 (i)为第m_l次差分编码后的数据; (2)计算第m次差分编码后数据Xm(i)的熵HmOO, 其中.C(也)为第m次差分编码后数据Xm(i)中所有不重复出现的数据,八<(4))为<;(4)在第m次差分编码后数据Xm⑴中出现的概率,Nffl为<(4)的个数,kffl=l, 2,…,Nm ; (3)设第m+1次差分编码后数据Xm+1(i)为Xm+1 ⑴=xm(i)-xm(i-l), 其中设定Xm(O)=O, i=l,2,…N,Xm(i)为第m次差分编码后的数据; (4)计算第m+1次差分编码后数据xm+1(i)的熵Hm+1(xm+1) n)=- Ixc+Hog2 Ad)) 其中.<=(4+1)为第m+l次差分编码后数据Xm+1 (i)中所有不重复出现的数据, /Xdl))为在第m次差分编码后数据Xm+1⑴中出现的概率,Nffl+1为的个数,km+1=l,2,…,Nm+1; (5)将步骤(2)中求得的第m次差分编码后数据Xm(i)的熵HmOO与步骤(4)中求得的第m+l次差分编码后数据Xlrt⑴的熵HlrtX0rt)进行比较,当满足Hni (Xni) <Hm+1 (Xlrt)时执行下一步,反之,继续对上次差分编码后的数据进行差分编码,直到满足本次差分编码后数据的熵大于上次差分编码后数据的熵,执行下一步; (6)采用LZW方法压缩第m次差分编码后的数据Xm(i),得到压缩文件; (7)采用LZW方法解压压缩文件,得到第m次差分编码后的数据Xm(i); (8)对第m次差分编码后的数据Xm(i)进行m次差分解码,从而得到原始数据Xtl (i)。
2.根据权利要求I所述的基于熵判决最优差分编码的LZW压缩方法,其中步骤(6)所述的采用LZW方法压缩第m次差分编码后的数据Xm(i),按如下步骤进行(6a)通过差分编码后的数据Xm(i)得到的Xm(i)中的最大值《^^和最小值mi、,由:初始化词典D,D包含从最小值最大值max;,的所有数据; (6b)初始化P为空,P为当前前缀; (6c)将Xm(i)中的下一个数据赋给C,C为当前值,判断[P C]是否在词典D中,若是,将[P C]赋给P ;若不是,查找当前前缀P在词典D中相对应的码字W,把码字W保存到压缩文件中,将[P C]添加到词典D中,将C赋给P ; (6d)检查数据Xm(i)的编码是否到末尾,若是,查找当前前缀P在词典D中相对应的码字W,把码字W保存到压缩文件中;若不是,返回步骤(6c); (6e)将xm⑴中的最大值max,.,, ,Xm(i)中的最小值、差分编码次数m保存到压缩文件中。
3.根据权利要求I所述的基于熵判决最优差分编码的LZW压缩方法,其中步骤(7)所述的采用LZW方法解压压缩文件,按如下步骤进行 (7a)由压缩文件中Xm (i)中的最大值max和最小值mm初始化词典D,D包 含从最小值,到最大值max&的所有数据; (7b)将压缩文件中的第一个码字赋给当前码字cW ; (7c)将当前码字cW对应的数据保存到解压文件中; (7d)将当前码字cW赋给码字pW,pff是编码数据流中先于当前码字的码字; (7e)将压缩文件中的下一个码字赋给当前码字cW ; (7f)判断码字pW对应的数据是否在词典D中,若是,把码字pW对应的数据保存到解压文件,把码字PW对应的数据赋给当前前缀P,把当前码字cW对应数据串的第一个数据赋给当前数据C,把[P C]添加到词典D中;若不是,则将码字pW对应的数据赋给当前前缀P,将当前码字cW对应数据串的第一个数据赋给当前数C,保存[P C]到解压文件中,并把[P C]添加到词典D中; (7g)判断压缩文件中是否还有码字要译,若是,返回到(7d);若不是,结束,从而得到第m次差分编码后的数据Xm (i)。
4.根据权利要求I所述的基于熵判决最优差分编码的LZW压缩方法,其中步骤(8)所述对第m次差分编码后的数据Xm(i)进行m次差分解码,按如下步骤进行 (8a)计算第m-1次差分编码的数据,Xnri (i) =Xnrl (i-1)+xm(i); (8b)计算第m-2次差分编码的数据,xm_2(i)=xm_2(i-l)+XnrlQ);(8c)以此类推,Xh (i)=xk_! (i-l)+xk(i), k=0, I, 2,…,m ; (8d)计算第I次差分编码的数据,X1Q) =X1Q-IhX2Q); (8e)计算原始的数据,X。⑴=XtlQ-I^X1⑴; 其中,i=l, 2,…,N, Xnri (O) =0,从而得到原始数据X。(i)。
全文摘要
本发明公开了一种基于熵判决最优差分编码的LZW压缩方法,主要解决现有方法对慢变数据压缩比低、达不到最优压缩比问题。其实现步骤是对原始数据进行多次差分编码,并计算每次差分编码后数据的熵;比较相邻两次差分编码后数据的熵,对最小熵的差分编码后的数据进行LZW压缩;将差分编码后数据的最大值、最小值、差分编码次数及编码的码字保存到压缩文件;解压缩时先对压缩文件进行LZW解压缩,然后进行与差分编码次数相同的差分解码,最终得到原始数据。本发明可有效压缩无线传感器网络中的慢变数据,并实现最优压缩比,可用于无线传感器网络中对慢变数据的压缩。
文档编号H03M7/30GK102710263SQ201210176439
公开日2012年10月3日 申请日期2012年5月31日 优先权日2012年5月31日
发明者任芸梅, 刘向丽, 司江勃, 李赞, 潘蕾, 王彬哲, 胡易俗, 郝本建, 陈俊杰, 韩维佳 申请人:西安电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1