摘要:游程编码(RLE)压缩方法原理简单且易于实现,对于相邻数据相似性很大的数据进行压缩,压缩效果特别明显。在众多的压缩算法中,RLE压缩属于无损压缩,能够对原始数据进行完整的还原。DCT是一种对数据进行变换的技术,通过DCT变换将数据中的信息进行集中,然后通过对那些含有很少信息的大量数据进行量化,将他们量化成可供RLE压缩的信息高度集中的数据。将DCT和RLE相结合能够实现彩色图像的有损压缩,并且能够在可以接受的损失范围内,获取比较好的压缩比。
关键字:彩色图像;RLE;DCT;有损压缩
1、引言
数字信号相对模拟信号有着很多优点,如可以有效地防止信号干扰、数据的复制不会造成损失等。但是数字信号也有缺陷,由于其无法很好的表示自然界的连续信号,而需要对模拟信号进行采样并量化才能保存,并且这个过程是由损失的。
用数字信号来存储图像数据需要庞大的存储空间,图像在计算机中是以位图的形式存储的,一副800乘600的24位真彩色图像,需要480,000个像素来表示,因而总共需要1.37M的存储空间,而动态影像对存储容量的要求更加巨大。因此,数据压缩技术对于数字图像的存储和传输有着重大的意义。
2、RLE压缩
RLE称为游程编码,顾名思义,游程编码对它需要编码的数据从头到尾进行读取,碰到前后相连的相等数据的时候,将该数据的值和出现的次数进行存储,连续相同的数据越多,则压缩的效果越明显。
对于图像文件中的各个像素数据,由于图像颜色的梯度变化,相邻像素的颜色值相同的可能性极大,RLE压缩方法的原理就是将一扫描行中颜色值相同的相邻像素,用一个计数值和那些像素的颜色值来代替。可以看出RLE是一种无失真压缩算法,如果给定形成这个字符串的字符、长度和串的位置,就能恢复出原始的数据。算法简单方便,具有较好的时间复杂度,已经广泛地使用在PCX、GEM、TIFF、MacPaint等图像文件格式中,另外,RLE压缩算法还是BMP、TGA等图像格式的可选数据处理方式。
最适合用RLE进行压缩的是黑白图片,即整个图片上除了黑色就是白色,没有任何的灰度,考虑如下的图像:
该图片有8行、8列,共64个像素,如果白色区域用“1”表示,黑色区域用“0”表示,则整个图像的数据表示为:1,1,1,1,1,1,1,1;0,0,0,0,0,0,0,1;1,1,1,0,1,1,1,1;1,1,1,0,1,1,1,1;1,0,0,0,0,0,1,1;1,1,1,0,1,1,1,1;1,1,1,0,1,1,0,1;0,0,0,0,0,0,0,0。
假如每一个像素用一个字节来表示的话,将连续的“1”或者“0”只保留一个,并在前面加上数量的话,则可以表示成:8,1,7,0,4,1,0,7,1,0,5,1,5,0,5,1,0,7,1,0,2,1,0,1,8,0。这样一来,原来需要64个数字才能表示的图形现在用26个数字就能表示出来,节约了60的存储空间。
[1][2][3][4][5][6][7][8]
来源:希赛网