行程编码run-length coding

RLE(run-length coding)是一种简单的无损数据压缩技术,它将重复数据值序列表示为单个值和计数。它对于具有许多重复值的数据特别有效,例如具有大面积均匀颜色的图像。

RLE并非储存图像中的每个值,而是储存两个值:连续重复的值,连续重复的次数。

Example:

考虑一个简单的一维像素强度数组:

[255, 255, 255, 128, 128, 64, 64, 64, 64]

使用RLE,这将表示为:

[(255, 3), (128, 2), (64, 4)]

RLE适合用于储存具有均匀色彩和明度信息的图像

对于灰度图Original: [0, 0, 0, 255, 255, 255, 255, 128, 128] RLE: [(0, 3), (255, 4), (128, 2)]

对于RGB三通道图像Original: [(255, 0, 0), (255, 0, 0), (255, 0, 0), (0, 255, 0)] RLE: [((255, 0, 0), 3), ((0, 255, 0), 1)]

对重复数据有效,对具有相同值的长序列的图像或数据有效。易于编码和解码。

但RLE同样具有限制性,既然适合于存储长序列重复值,显然不适合存储跳变多的值。对于随机数据无效:当没有相同值的长时间运行时,RLE可以增加数据的大小。
例如:[1,2,3,4]变成[(1,1),(2,1),(3,1),(4,1)],效率较低。
不适合高细节图像,带有噪点的照片或图像通常不会受益于RLE。

下面实战表示一个图像区域的行程编码

区域是图像中感兴趣的区域,那么自然,我们需要的是图中黑色的色块表示,也是从黑色色块开始编码,而不关系白色色块。第一个行程是第一行黑色块,将第一个黑色块作为第一行第一列(建立一个基准)则第一个行程是列1到列4,第二个行程只有一个黑色(被白色阻断,不连续,RLE只表示连续重复的值)则列2起始,列2结束。第三个行程还是在第二行,列4到列5.第四个行程类推。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值