一种图像无损压缩和图像解压缩方法

文档序号:7956159阅读:300来源:国知局
专利名称:一种图像无损压缩和图像解压缩方法
技术领域
本发明涉及图像压缩技术领域,特别是涉及一种图像无损压缩和解压缩方法。
背景技术
随着多媒体信息的传播在人们的生活中起着越来越重要的作用,在很多情况下,需要同时传输的数据量非常大,对传输速率的要求也越来越高。在许多领域,如在无线显示系统中,随着显示解析度的提高,在高清显示情况下需要传输的数据率非常大,一幅1280×1024×24bits×30帧的图像,每秒的数据率为922Mbps。如果不对图像进行压缩,对于如此高的速率,即便使用高速超宽带(Ultra Wide Band,UWB)无线技术也将难以实现。因此对图像进行适度的压缩对于多媒体信息的传输是必不可少的。
所谓压缩,就是对要处理的图像源数据用一定的规则进行变换和组合,保留不确定的信息,去掉可推知的确定信息,以达到用尽可能少的代码或符号来表示尽可能多的图像数据信息的目的。通常,压缩是通过编码来实现的,换句话说,压缩过程就是编码过程,解压缩过程就是解码过程。
图像的压缩基本基于以下两点1.图像信息存在着很大的冗余度,数据之间存在着相关性,如相邻象素之间色彩基本相同。
2.人的视觉对于边缘急剧变化不敏感,人眼具有对图像的亮度敏感高、对色度敏感低的特点。
根据这两点特征就可以压缩图像数据,由此发展出图像压缩的两种常用方法无损压缩和有损压缩。
无损压缩是将相同的或相似的数据或数据特征归类,使用较少的数据量描述原始数据,达到减少数据量的目的。无损压缩是对文件本身的压缩,和其它数据文件的压缩一样,无损压缩对文件的数据存储方式进行优化,采用某种算法表示重复的数据信息,文件可以完全还原,不会影响文件内容,对于数码图像而言,也就不会使图像细节有任何损失。
不同的无损压缩编码方法对于不同的信源其压缩效率是不同的。常用的无损压缩编码方法有游程编码(run-length encoding,RLE)。
游程编码(run-length encoding,RLE)是压缩一个图像文件最简单的方法之一。具体做法就是把一系列的重复值(例如图像像素的灰度值)用一个单独的值再加上一个计数值来取代。例如有这样一个字母序列aabbbccccccccdddddd,对它进行游程编码的结果是2a3b8c6d。前一位表示字母的个数,后一位表示具体的字母。如果是图像数据序列55555533330222222211,对它进行游程编码的结果是6543107221,其中,编码位中的第一位代码是“6”,它表示游程长度,即有连续6个像素点具有相同的像素值;“6”后面的“5”表示这6个像素的像素值均为5,依次类推。对比游程编码前后的代码数可以发现,原来用20位代码表示的20个图像数据,现在只用10位代码就表示了20个图像数据。数据量被压缩了一倍。
现有的多媒体静止图像数据压缩国际标准(Join Photographic experts,JPEG)中的游程编码是是对8×8子块离散余弦变换系数点阵进行游程编码。
现有的活动图像及其伴音的压缩编码标准(Moving Picture Expert Group,MPEG)及运动静止图像压缩技术(Motion-JPEG,M-JPEG)也采用游程编码技术,其是以余弦变换(DCT)为基础,对其变换的系数量化后,再进行游程编码。
但是,这些常用技术编码算法复杂,计算量大,实现起来非常复杂,而且由于需要采用专用的压缩和解压缩芯片,成本很高。对于仅包含很少几个灰度级的图像,特别是二值图像的压缩比较有效,而对于彩色图像处理的效果不是很佳。在某些情况下如相邻数据中相同数据的个数很少的时候甚至会造成数据膨胀。

发明内容
本发明的目的在于克服上述缺陷而提供一种图像无损压缩方法和图像解压缩方法,其既简单,不需要专用芯片,又适用于彩色图像的压缩。
本发明的图像无损压缩方法,包括以下步骤
步骤A,从原始图像数据的第一行列开始,本行列的原始像素值与相邻的下一行列原始像素值进行逻辑异或,得到下一行列的异或像素值;步骤B,在原始像素值和异或像素值中选择,并将选择的像素值进行游程编码,在包头中加上异或标志并输出。
本发明的图像解码方法,包括以下步骤步骤A,解行列的游程编码;步骤B,解异或,并输出。
本发明的有益效果是本发明提供了一种新的通用图像无损压缩和图像解压缩方法,该方法在尽可能提高其压缩比的同时,其实现复杂度也非常低,编码算法简单,计算量小,不需要采用专用的压缩和解压缩芯片,实现成本低。而且对于图像,包括二值图像和彩色图像都有较佳的处理效果,不会造成数据膨胀。


图1为本发明的图像无损压缩方法的实施例二具体例子的流程图;图2为本发明的图像解压缩方法的具体例子的流程图。
具体实施例方式
下面结合附图1和附图2及具体实施例对本发明再作进一步详细的说明。
本发明基于的理论依据是利用视频图像相邻两行或者列的数据的相关性,相邻下两行或者列的数据通过异或操作后提高压缩率。
在本实施例中,本发明特别是以数据编码信息以行为序列而进行描述,但本发明同样适用以列为序列的情况。
实施例一基于上述思想,本发明实施例一的图像无损压缩的方法具体包括以下步骤步骤A从第一行开始,将原始图像数据中相邻两行第N行和第N+1行的原始像素值进行逻辑异或,得到第N+1行的异或像素值;步骤B将第N+1行的异或像素值进行游程编码,并在包头中增加异或标志后传输;所述异或标志是一个标志位表示,1代表该结果是原始像素值异或后的游程编码,0表示该结果是非异或的原始像素值的游程编码。
步骤C重复所述步骤A和步骤B,对原始图像数据的原始像素值重复执行逻辑异或,直到第M行结束;通过最多每隔M行就对该行的原始像素值而不是异或像素值进行一次游程编码,在包头中增加异或标志并传输,防止因前面某一行传输过程中异或像素值的数据包丢失而对下面一系列行的显示产生影响,进一步提高系统的鲁棒性。
较佳地,所述M的值为10,即每隔10就对该行的原始像素值进行一次游程编码,在包头中增加异或标志后传输。
步骤D从第M+1行开始,重复步骤A~C,直到最后一行。
较佳地,在上述步骤之前进一步包括,将原始图像中第一行的原始像素值进行游程编码,在包头中增加异或标志后传输。
下面通过一个简单的例子来进行说明例如原来三行数据分别为1 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 8此时,数据量为24。
但是通过相邻两行的异或操作后数据变为1 2 3 4 5 6 7 80 0 0 0 0 0 0 00 0 0 0 0 0 0 0再通过游程编码后变为1 (0) 2 (0) 3 (0) 4 (0) 5 (0) 6 (0) 7 (0) 8 (0)0 (7)0 (7)数据量变为20。
实施例二本发明实施例二的图像无损压缩方法具体包括以下步骤
步骤A′从第一行开始,将原始图像数据中相邻两行第N行和第N+1行的原始像素值进行逻辑异或,得到第N+1行的异或像素值;步骤B′将第N+1行的异或像素值和该行的原始像素值分别进行游程编码,并分别计算压缩比;所述压缩比是指压缩前的图像数据量与压缩后的图像数据量之比。
步骤C′将第N+1行的异或像素值的游程编码的压缩比与该行的原始像素值的游程编码的压缩比进行比较,对压缩比较大的像素值的游程编码,加上异或标志后传输。
所述异或标志可以用一个标志位表示,1代表该结果是原始像素值异或后的游程编码,0表示该结果是非异或的原始像素值的游程编码。
步骤C′还包括下列步骤步骤C1′如果该行的异或像素值的游程编码的压缩比大于该行的原始像素值的游程编码的压缩比,则对异或像素值的游程编码在包头中增加异或标志1,否则继续;步骤C2′对原始像素值的游程编码的包头中增加异或标志0。
比较压缩比后根据所传输的是原始像素值还是异或像素值而加上异或标志,使得在解码时能够识别所传输的是原始像素值还是异或像素值。
步骤D′重复所述步骤A′~C′,对原始图像数据的原始像素值重复执行逻辑异或,直到最后一行结束。
较佳地,在上述步骤A′之前进一步包括,将原始图像中第一行的原始像素值进行游程编码,在包头中增加异或标志,并直接传输。
下面举一个具体的例子来说明上述过程,该过程的流程图如图1所示,具体步骤如下例如一幅原始图像有M行,N表示该图像的某一行值。
步骤S1将原始图像中第一行的原始像素值进行游程编码,在包头中增加异或标志,并传输。
步骤S2将原始图像中N+1行的原始像素值RGB(N+1)和N行的原始像素值RGBN进行逻辑异或,得到该行的异或像素值RGBX(N+1);步骤S3将N+1行的异或像素值RGBX(N+1)和N+1行的原始像素值RGB(N+1)分别进行游程编码,并分别计算压缩比CX(N+1)和C(N+1);步骤S4对S3得到的压缩比CX(N+1)和C(N+1)进行比较,如果CX(N+1)大于C(N+1),则对N+1行的异或像素值RGBX(N+1)的游程编码在包头中增加异或标志1,并传输;否则对N+1行的原始像素值RGB(N+1)的游程编码在包头中增加异或标志0,并传输。
N值从2到M,每一行执行一次上述步骤S2到S4,直到最后一行。
本发明的无损压缩算法既可用于对黑白图像的压缩,也可用于对彩色图像的压缩。
彩色图像目前最常用的是RGB色彩空间表示方法。本发明的无损压缩方法在处理采用RGB色彩空间表示方法表示的图像时,对像素值进行游程编码可以采用以下两种方法1.RGB像素值在一起游程编码把一个像素的RGB值作为一个整体数据,与下一个像素的RGB整体值进行比较,如果数据相等,则游程加1。编码后只有一组数据。
原始像素值的表示方式为R1G1B1R2G2B2R3G3B3。
2.RGB像素值分开游程编码把每一个像素值的RGB差分成R、G、B三个数据,R数据利用游程编码编成一组R数据;G数据利用游程编码编成一组G数据;B数据利用游程编成一组数据。这样编码后就变成三组数据。
三组数据的形式分别为R1R2R3G1G2G3B1B2B3下面进一步详细描述本发明的图像解压缩方法,其包括以下步骤步骤100当接收到图像数据后,从第一行开始,将图像数据中的像素值中的行数据解游程编码;当解压缩端接收到图像数据后,从第一行开始,将行数据解游程编码,其过程是压缩方法的相反过程,在本实施例中不再详细描述。
步骤200根据异或标志判断是否需要解异或;如果需要,解异或,并输出数据;否则直接输出数据。
解异或方法是与本行与上一行再次进行异或运算。
步骤300重复执行上述步骤100和步骤200,直到最后一行结束。
下面举一个具体的例子来说明上述过程,该过程的流程图如图2所示,具体步骤如下例如一幅编码后的图像有M行,N表示该图像的某一行值。
步骤S1′输入该图像的N行数据;步骤S2′对该行数据解游程编码;步骤S3′根据异或标志判断是否需要解异或;如果需要,与上一行进行异或运算,并输出异或后的数据;否则直接输出该行数据。
N值从1到M,每一行执行一次上述步骤S1到S3。
为了验证本方法,我们对6组视频数据(每组500帧,随机抓取)进行压缩仿真。每帧视频大小为1024×768*2=1.5MB,所以每组数据大小为750MB,经过本方法压缩后每组大小分别为159MB,240MB,224MB,262MB,206MB,177MB,压缩率分别为21.2%,32.0%,29.9%,34.9%,27.5%,23.6%,平均压缩率为28.2%。
一般地,无线传输芯片的底层数据带宽为660Mbps,实际数据带宽约400Mbps,这样需要的压缩率为85%,实验证明本发明的压缩率最大不超过65%,平均值在50%以下,可以满足带宽要求。
虽然我们的发明是在无线视频传输的背景下实现的,但是这种方法不仅仅用于无线视频传输,也可以适用于对任何图像和视频的处理,是一种通用的无损压缩方法。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
权利要求
1.一种图像无损压缩方法,包括以下步骤步骤A,从原始图像数据的第一行列开始,本行列的原始像素值与相邻的下一行列原始像素值进行逻辑异或,得到下一行列的异或像素值;步骤B,在原始像素值和异或像素值中选择,并将选择的像素值进行游程编码,在包头中加上异或标志并输出。
2.如权利要求1所述的图像无损压缩方法,其特征在于,所述的行列为行或列。
3.如权利要求1或2所述的图像无损压缩方法,其特征在于,原始图像中第一行列的原始像素值进行游程编码,在包头中增加异或标志,并直接传输。
4.如权利要求1或2所述的图像无损压缩方法,所述步骤B包括步骤B1,对原始像素值进行游程编码,并计算压缩比;步骤B2,对异或后的像素值进行游程编码,并计算压缩比;步骤B3,对压缩比进行比较,传输压缩比高的像素值的游程编码。
5.如权利要求1或2所述的图像无损压缩方法,所述步骤B包括每隔N行列对原始像素值进行游程编码,并输出。
6.如权利要求5所述的图像无损压缩方法,其特征在于,所述N的值为10。
7.如权利要求1或2所述的图像无损压缩方法,其特征在于,对RGB像素值进行游程编码时将RGB像素值在一起游程编码或将RGB像素值分开游程编码。
8.一种图像解码方法,包括以下步骤步骤A,解行列的游程编码;步骤B,解异或,并输出。
9.如权利要求8所述的图像解码方法,其特征在于,所述的行列为行或列。
10.如权利要求8或9所述的图像解码方法,所述步骤B包括步骤B1,根据异或标志判断是否需要解异或;步骤B2,如果需要,解异或并输出;否则,直按输出。
11.如权利要求8或9所述的图像解码方法,其特征在于,所述解异或方法是与相邻行列进逻辑异或。
全文摘要
本发明公开了一种图像无损压缩方法,包括以下步骤从原始图像数据的第一行列开始,本行列的原始像素值与相邻的下一行列原始像素值进行逻辑异或,得到下一行列的异或像素值;在原始像素值和异或像素值中选择,并将选择的像素值进行游程编码,在包头中加上异或标志并输出。本发明还公开了一种图像解码方法,包括以下步骤解行列的游程编码;解异或,并输出。本发明在尽可能提高其压缩比的同时,其实现复杂度也非常低,编码算法简单,计算量小,不需要采用专用的压缩和解压缩芯片,实现成本低。
文档编号H04N7/26GK101039374SQ20061005739
公开日2007年9月19日 申请日期2006年3月14日 优先权日2006年3月14日
发明者郭子华, 王桐, 江臻 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1