RLE 行程长度压缩算法的改进.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
RLE 行程长度压缩算法的改进

RLE 行程长度压缩算法的改进 分类: VR 2007-05-21 22:54 967人阅读 评论(1) 收藏 举报 计算机所能处理的各种信息都是数字信息。数字化了的各种信息数据量很大,如果直接使用,肯定会给计算机造成很大负担。例如,一张A4幅面的图片,若用中等分辨率的扫描仪按真彩扫描,其数据量大约为26MB,这是一个不小数目。这些大量的数据信息会对存储器的存储容量、通信干线信道的带宽以及计算机的处理速度产生极大的压力,因此必须对这些数据进行 压缩。本文仅就行程长度(RLE)无损压缩算法及其改进方法进行研究。 1 行程长度(RLE)压缩算法的基本原理[1] 对于图像文件中的各个像素数据,由于图像颜色的梯度变化,相邻像素的颜色值相同的可能性极大,RLE(Run Length Encoding)压缩算法的原理就是将一扫描行中颜色值相同的相邻像素,用一个计数值和那些像素的颜色值来代替。主要通过压缩除掉数据中的冗余字节或字节中的冗余位,从而达到减少文件所占空间的目的。例如,有一表示颜色像素值的字符串aaaaaabbccccddddddddeeeeeee,用RLE压缩方法压缩后,可用6a2b3c8d6e来代替,显然后者的串长度比前者的串长度小得多。但是,当图像像素的颜色值出现特殊情况时,如每个相邻像素的颜色值均不同,则经此方法压缩后,反而会使数据串的长度增加一倍,为了尽量避免前述特殊数据的出现,RLE方法在具体实施时对计数字节和图像像素字节进行了区分,对每个相邻像 素的颜色值均不同的单个像素数据,只有当高2位全1时才加1计数,否则直接输出该像素值,因此避免了压缩后长度增加一倍的情况。这样就使得计数字节本身的高2位也是全1,即计数字节为C0H+n(像素数据连续相同的字节数)。由于一个字节最大只能为FFH,因此n最大只能为FFH-C0H=3FH=(63)10,故当n63时,则需分多次压缩。当单个图像数据的值大于C0时,先输出C1,再输出该图像数据值,否则直接输出该数据。例如,有以下一系列数据:E2, 20, 30, 30, 30,C0,C1,C1,D3,D3,D3,…,D3(135个),E0,E0,E0,E0,D4,经压缩后数据为:C1,E2, 20,C3, 30,C1,C0,C2,C1,FF,D3,FF,D3,C9,D3,C4,E0,C1,D4,从这个压缩过程可以看到,单个的图像数据E2、C0、D4前面带有计数字节C1,而20前没有,135个数据D3用了6个字节来表示。 2 行程长度(RLE)压缩算法的改进 2。1 方法1 我们知道RLE压缩方法对于拥有大面积相同颜色区域的图像数据,其压缩效果是很高的。但有一些弊端,如遇到前述的特殊情况数据时,其压缩效果明显下降。为了回避此类数据而使其计数字节从C0开始,这又使得对于大批量重复出现的像素数据需要用更多字节来存储,如前述的135个D3需用6个字节来存储,同样降低了压缩效率。为此,我们可用特殊的控制字节,即用控制字节的最高位来指示是否进行压缩。当最高位为1时,则低7位表示字节的重复次数,这样可表示的最大重复次数是127;最高位为0时,则后面的X个数据是不压缩的,其中X是由控制字节的低七位来表示的。采取这种方法,一个字符只有重复两次以上,才能被压缩。即使一个数据只重复3次,也可以获得30%的压缩比。在此基础上,可以对RLE压缩方法进行进一步改进。当你要压缩的数据包括大量的空白时,可用更有效的方法来压缩重复较多的空白字符。具体的方法是只用控制字节来表示重复的空白字符,即用空白字节的第二高位(bit 6)来表示要压缩的是否是空白字符,如果bit 6为1 ,则后6位用来表示空白字符的重复次数,这样仅用一个字节就可表示63个字节的空白字符, 即使空白字符仅重复2次,也可获得50%的压缩比。此改进方法对于有大量空白的数据文件可获得较高的压缩比。如果某文件中重复较多的不是空白字符,而是另外一个字符,如图像的背景,我们也可以事先规定该默认压缩字符,同样用一个字节来表示63个字节的字符,从而获得较高的压缩比。 2。2 方法2[2] 在改进方法1的基础上,可进一步对上面重复字节数大于127而需分多次压缩的数据采用一次压缩,具体方法是调整计数方法,将计数字节FF后的字节作为计数字节。 例如, 上述图像数据: E2, 20, 30, 30, 30,C0,C1,C1,D3,D3,D3,…,D3(135个),E0,E0,E0,E0,D4 经压缩后数据为: C1,E2, 20,C3, 30,C1,C0,C2,C!,FF,D3,FF,D3,C9,D3,C4,E0,C1,D4 而用改进后的方法压缩则成为: 81,E2,20,83,30,81,C0,82,C1,FF,08,D3,84,E0,81,D4 通过对这组数据的比较,我

您可能关注的文档

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档