零零散散学算法之详解数据压缩算法(下)

本文深入探讨数据压缩,重点讲解LZW和Rice压缩算法。LZW算法通过建立字符串表,用数字表示字符串实现压缩;Rice算法则利用除法原理,用较少位表示多个数字,区分当前位置。这两种算法在图像处理等领域有广泛应用。
摘要由CSDN通过智能技术生成

深入解析数据压缩算法

 

前序

      

       开始本文之前,先回顾一下上篇。上篇讲解了几种数据压缩算法中的两种:Huffman压缩算法和RLE压缩算法。

       详解数据压缩算法(上):http://blog.csdn.net/fengchaokobe/article/details/7934865

 

正文

 

       本文将详解数据压缩算法的后两种算法:Rice压缩算法、LZW压缩算法。

 

第一节 LZW压缩算法

 

       LZW压缩算法:Lempel-Ziv-Welch Encoding。算法的命名简单直接,故而LZW压缩算法也跟随了算法命名的特性:简单易懂!---有点扯皮了,开始干正事!

 

       LZW压缩算法的实现就是通过在编码的过程中建立一个字符串表,并用某个数字来表示这个串,压缩文件只存储那个数字。这些数字就是压缩后的数据。

 

       LZW算法的实现原理:由于源数据字符串中一定会出现重复的字符串,于是我们就利用这点,将第一次出现的串组合用某一数字表示,然后将这个数字保存起来。那么当再次遇见这个串时就可直接用这个数字来表示,以此来达到压缩的目的。所以说,能正确的得到这个数字表是压缩成功的关键。

       从原理中我们可得知:在源数据中,如果重复的字串越多,那么压缩的效果就越好。

 

       好了,理论说的再多也是空谈,既然了解了,那我们就上例子来说明。

       现有如下的源数据串,我们现用LZW压缩算法来操作实现压缩:

 

战前准备:

       1.原理中提到我们用某一数字来表示压缩的结果,那么这些数字的起始怎么选择呢?这时我们就要根据LZW压缩算法的应用来说了。LZW主要应用在图像的处理上,如果图像的色彩数为256,那我们就要从258开始(其中256表示清除码,257表示图像结束码)。

 

        2.编码过程中一些声明:

           源数据:压缩的目标数据;

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值