- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
RLE⾏程长度编码压缩算法
在看emWIN的时候看到⼀个图⽚压缩的算法可以有效的对⼆值图(简单的2中颜⾊或者更多)进⾏压
缩,压缩的效果可以节省空间⽽且不丢失信息!
特点
⼀种压缩过的⽂件格式,RLE压缩⽅案是⼀种极其成熟的压缩⽅案,特点是⽆损失压缩,既节省了磁盘
空间⼜不损失任何图像数据。
游程编码是⼀种统计编码,该编码属于⽆损压缩编码。对于⼆值图有效。其在对图像数据进⾏编码时,
沿⼀定⽅向排列的具有相同灰度值的像素可看成是连续符号,⽤字串代替这些连续符号,可⼤幅度减少
数据量。
⾏程编码是连续精确的编码,在传输过程中,如果其中⼀位符号发⽣错误,即可影响整个编码序列,使
⾏程编码⽆法还原回原始数据。
游程编码所能获得的压缩⽐有多⼤,主要取决于图像本⾝的特点。如果图像中具有相同颜⾊的图像块越
⼤,图像块数⽬越少,获得的压缩⽐就越⾼。反之,压缩⽐就越⼩。
缺点
在打开这种时,要花费更多时间,此外,⼀些兼容性不太好的应⽤程序可能会打不开。
不过RLE还有⼀个缺点,那要是内容像ABCABCABC的话使⽤这种算法⽂件会增⼤,就是
1A1B1C1A1B1C1A1B1C了,更长,就达不到压缩的效果了。简单来说,游程编码就是⽤⼀个符号值或
串长代替具有相同值的连续符号(连续符号构成了⼀段连续的“⾏程”。⾏程编码因此⽽得名),使符号
长度少于原始数据的长度
RLE压缩⽅式
ABBBBBBBBA - 1A8B1A
下⾯都对byte流压缩。
如输⼊数据
LPBTEpByte={1,1,1,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=read;
write(n个m);
}
}
(3)优化
对(1)的优化。
观察得知,1,1,1这样的数据压缩率为0
下⾯的数组来⾃于emWIN压缩的图标数组:可以看到控制字符为0
/*********************************************************************
*
* bm0
*/
static GUI_CONST_STORAGE unsigned char _ac0[] = {
/* RLE: 011 Pixels @ 000,000 */ 11, 0xFF,
/* ABS: 010 Pixels @ 01 1,000 */ 0, 10, 0xF6, 0xA8, 0x48, 0x1D, 0x11, 0x0E, 0x1E, 0x47, 0x8E, 0xE7,
/* RLE: 021 Pixels @ 021,000 */ 21, 0xFF,
/* ABS: 002 Pixels @ 010,001 */ 0, 2, 0xBF, 0x30,
/* RLE: 008 Pixels @ 012,001 */ 8, 0x00,
/* ABS: 003 Pixels @ 020,
您可能关注的文档
最近下载
- 《土地管理学总论》(第2版).ppt
- 建房包工不包料合同书.docx VIP
- 五年级上册数学人教版可能性第一课时课件(共20张PPT).pptx VIP
- 数字心盛量表的信效度与测量等值性.docx VIP
- 2025一级建造师《市政实务》考试真题及答案.docx VIP
- 2025届新高考生物冲刺热点复习:表观遗传与基因表达的调控.pptx VIP
- 北师大文学院2016年文学类考研资料之中国古代文学复习指要.pdf VIP
- 人教版小学二年级上册体育教案(全册详案版).pdf VIP
- EZVIZ萤石智能锁 执手系列-DL20系列CS-DL20VS-BrB1NE说明书用户手册.pdf
- 民航安全检查实务高职全套教学课件.pptx
文档评论(0)