rle

资料百科

R况文LE全称(run-length encoding),翻译为游程编码,又译行程长度编码,又称变动长度编码法(run coding),在控制论中对于二值图像而言来自是一种编码方法,对连续的黑、白像素数(游程)以不同的码字进行编码。游程编码是一种简360百科单的非破坏性资料压缩法,其好处是加压缩和解压缩都非常快。其方法钢块话是计算连续出现的资料长度压缩之。

  • 中文名 游程编码
  • 外文名 run-length encoding
  • 分    类 计算机/压缩算法

特点

  来自​一种压缩过的位图文件格式,RLE压缩方案是一360百科种极其成熟的压缩方案,特点是无损失压缩,既节省了磁盘空间又不损失任何图像数据。

  游程编码是一种统计编码,该编码属于无损压缩编码。对于二值图有效。其在对图像数据进行编码时,沿一定方向排列的具有相同灰度值的像素可看成是连续符号,用字串代替这些连续符号,可大幅度减少数据量。

  行程编码是连续精确的编码,在传输过程中,如果其中一位符号发生错误,即可影响整个编码序列,使行程编码无法还原回原始数据。

  小案够报受秋游程编码所能获得的压缩比有多大,主要取决于图像本身的特点。如果图像中具有相同颜空领州宁结更它况色的图像块越大,图像块数目越少,获得的压缩比就越高。反之,压缩比就越小。

缺点

  在打开秋游践纪易仅径敌夫断这种压缩文件时,要花费更多时间,此外,一些兼容性不太好的应用程序可能会打不开。

四纪构销  不过RLE还有一个缺点,那要是内容像ABCABC妒胡粮顾ABC的话使用这种算法文件会增大,就是1A1B1C1A1B1C1A1B1C了,更长,就达不到压缩的效果了。简单来说,游程编码就是用一个符号值或串长一危翻洲云代替具有相同值的些友般黑争连续符号(连续符号构成了一段连续的"行程"。行程编码因此而得名),使符号长度少于原始数据的长度。

算法

  ABBBBBBBBA - 1A8B1A

  下面都对byte流压缩。

  如输入数据

  LPBTEpBy来自te={1,1,1360百科,1,1,1};

  张控务伤诉念盟放压缩的数据为6,1

  压缩了4个字符。

  但是在数施站便钢底设据流里面不能直接这么替换,而应该使用特殊的控制字,否则无法解压。

  比如pByte={6,1,0,1,1,1,1,1,1};

  这样有两个6,1无法判断是原有的6,1还是{1,1,1,1,1,1}压缩后的代码。

  所以应该有控制字符

  (1)

  为了达到最大压缩率,可以先扫描源数据流,使用最少出现的字符做控制字符。

  如pByte={6,1特包收亚,0,1,1,1,1,1,1,...};

  扫描后发现0为最少出现的字符。

  我们使用0作为压缩的控制,其他字符代表他本身。源数据里面的0,用0,0来表示。

  那么pByte压缩后为

  6,1,0,0,0,6,1......

  解压时BYTEa,b,c;

  a=依次扫描压缩数据,如果输入字符为非控制字符,则直接输出到解压流。

  如果为控制字符,b=其下一字符是否也为控制字符,如果是,在输出流输出控制说父你考来精在乱充缺字符的代码。

  如果不是c=读压缩流,然后输出b个c到输出流。

  注意:该处对于>Ctrlcode的编码需要自己计算偏移.

  如ctrl=2.那么n=3时应该修正倒头规歌尔深派为2.

  刚才介绍的方指场法是最大压缩率的,但是因为对每个输入字符需要检查,速度不算快。

  (2)

  为了增加解压速度,可以采用其他的编码方式。

  主要方法是不对究感众小标错亮每个输入字符进行检查,只检百江一兰理板晶便剧劳包查较少次就达到几乎相同的压缩率。

  来看看这个改进的方法。

  仔细观察,其实对不重复的字符也可以用控制n+数据的方式表示。这里的n带表n个未压缩数据。

  还是刚才的数据。

  pByte={6,1,0,1,1,1,1,1,1}

  不用乙环雨带垂做连元层速扫描选择0为控制

  压缩为别句3,{6,1,0,}0,6,1

  nctrlnm

  解压就非常方便了

  扫描缺也求距超机控示数据读一个字符,

  {

  n=read;

  if(n)

  {

  字符拷贝n个

  }

  else

  {

  n=read();

  m=rea问投环d;

  write(n个m);

  }

  }

  (3)优化

  对(1)的优化。

  县宗观察得知,1,1,1这样的数据压缩率为0

标签:
声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:yongganaa@126.com

评论留言

我要留言

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:yongganaa@126.com