图像压缩及复原方法

文档序号:6639384阅读:514来源:国知局
专利名称:图像压缩及复原方法
技术领域
本发明涉及图像的处理方法,具体涉及图像的压缩和复原方法。
背景技术
在使用位图数据时,经常会发生由于储存空间等原因需要对图像进行压缩的情况。
在上述位图压缩当中,虽然要使用RLE(行程编码)、RLC(行程编码)、DCT(离散余弦变换)等多种方法,但是考虑到编码/解码的速度和原始资料管理的复杂性以及数据的损失等,有时非常需要有一个简单的压缩原理。
在这种情况下,虽然使用的压缩方式是上述RLE方式,但是该方法在使用高频振动的图像中存在着压缩(编码,以后“压缩”或“编码”混用)后的文件反而比压缩前更长的缺点。
下面参照附图对此进行说明。
图1是以原有技术为基础的RLE方式图像压缩方法示意图。
如图1中(a)所示,当存在排列好的行程时,无需对所有连续行程的个数进行记录,只需利用重复次数和行程两个位组来显示出最多255个连续模式。
即,在图1的(a)中,由于04的重复次数是3,所以如果按照RLE运算法则对它进行压缩的话,就如图1中(b)所显示那样表现为03 04两个位组。
依此类推,在图1的(a)中,由于06的重复次数是5,所以如图1的(b)中所显示那样表现为05 06。
此时,当重复次数为0时,即没有重复时,就使用换码顺序来表现。
即,在图1的(a)中,由于45、56、67没有重复,所以为了表现它就在图1的(b)中使用换码顺序用00来表现没有重复,并在下一个位组中使用数据的长度即03,而再下一个位组表现的是数据的内容即45、56、67。
如果利用上述运算法则RLE进行压缩,就如图1中(a)所显示的那样,将原来用22个位组表现的图像,压缩成如图1的(b)中所显示的那样用13个位组来表现的图像,实现了压缩的目的。
但是,正如前面所讲的那样,这种RLE运算法则在针对不出现连续行程并被均衡地进行高频振动的图像时,就会表现出它的弱点来。下面就参照图2对此进行说明。
如图2的(a)所示,如果用传统RLE压缩方法对行程不重复并被均衡地高频振动成04、05、04、05等的形态进行压缩的话,就如图2中(b)所显示的那样。
将上述RLE压缩之后的状态即图2的(b)与原来的图2中的(a)相比较,就可以知道根本没有达到压缩的目的。
这是由于对不重复的行程使用了换码顺序的原因,如果压缩后文件的大小加上2个位组超过256个位组,那么就会发生反而比原来文件更大的结果。

发明内容
因此,为了解决这种原有技术中存在的问题,本发明提供一种在RLE压缩运算法则中对高频振动图像进行有效压缩的方法。
本发明的另一个目的是提供一种针对依据以本发明为基础的压缩运算法则对被压缩处理的图像进行有效复原的方法。
为了实现上述目的,本发明提供的图像压缩方法采用RLE运算法则,包括以下几个步骤求出被输入模式的长度和重复次数,然后分别代入变量A和B中的步骤;判定上述变量A是否为0的步骤;如果上述变量A不是0,就判定其是否为1的步骤;如果上述变量A即不是0也不是1就将变量C一分为二,然后给变量C的上位比特输入(B-1)值,给下位比特输入(A-2)值的步骤;依次输出换码顺序、上述变量C值、被输入模式中上述A值的步骤。
当上述变量A为0时,表示所有的图像压缩步骤结束。
当上述变量A为1时,表示实现了普通RLE运算法则的压缩。
另一方面,还提供一种以本发明为基础的压缩图像的复原方法,包括读取压缩图像的一个位组,然后代入变量A的步骤;判断上述读取位组是否为0的步骤;当上述读取位组为0时,读取下一个位组然后代入变量B的步骤;将上述变量B的上位特定比特代入变量C的步骤;将上述变量C的下位特定比特代入变量D的步骤;在上述压缩图像中读出D+2位组,然后将其重复C+1次的步骤。
该方法还包括当上述A不是0时,读取下一个位组并代入变量B的步骤和使上述B像上述A那样重复并输出的步骤。
综上所述,以本发明为基础的图像压缩方法能够达到以下效果
首先,利用以被重复模式的长度及次数为基础的压缩运算法则对图像进行压缩处理,能够提高图像压缩尤其是高频振动图像的压缩效率。
其次,能够相对简单地进行高频振动图像的编码和解码。


图1是以原有技术为依据的RLE方式的图像压缩方法示意图;图2是将以原有技术为基础的RLE压缩方法运用于高频振动图像的形态示意图;图3是以本发明为基础的RLE修正压缩方法示意图;图4是以本发明为基础的RLE修正压缩方法的流程图;图5是以本发明为基础的RLE修正压缩复原方法的流程图。
具体实施例方式
下面参照附图对本发明的理想实施例的构成及作用进行说明。
图3是通过本发明的具体实施例,对用来对高频振动图像进行有效压缩(编码)的RLE修正运算法则进行说明的示意图。
为此,图3的(a)中显示了经高频振动处理的原始图像模式;图3的(b)中显示了本发明的压缩方法;图3的(c)中显示了用本发明的方法进行压缩处理之后的模式。
本发明采用的是利用行程长度为0的换码顺序来与高频振动图像相对应的方式。
即,当长度为1以上时,与普通RLE相同;为0时,利用下一个位组来表现模式并利用其余部分来表现重复次数。
此时,在一个位组中放入两个信息的理由是支持过长的模式是没有意义的,并且大部分模式的连续次数不多。在本发明的具体实施例中,将一个位组的上位6比特作为重复次数,而用下位2比特来表现模式的长度。
同样,下面就参照图4对利用本发明的压缩(编码,在本发明中压缩与编码混用)运算法则针对图3(a)中所示高频振动图像进行压缩的方法进行说明。
图4是以本发明为基础的RLE修正压缩方法的流程示意图。
如图4所示,首先把握被输入原始图像模式的长度和重复次数(S10)。此时,上述模式能够成功地对5个模式进行检索并检测出模式的重复性。
如果没有检测出5个重复性,那么模式的长度就被设定为5、重复次数被设定为1;当不存在需检索的输入模式时,模式的长度就被设定为0。
为了便于说明,将上述模式的长度代入变量A;将重复次数代入变量B中。
据此,以图3的(a)模式为例,图中显示长度为2的04、05模式重复4次;长度为3的06、06、36模式重复2次;而长度为1的11模式重复8次。
然后进入判断上述模式长度是否为变量A的步骤(S20),当模式的长度为0时,由于它表示输入的模式已经不再存在,所以压缩步骤结束。
上述模式的长度不为0时,就进入对该模式的长度是否为1进行确认的步骤(S30)。
当上述模式的长度为1时,依据其当前位组和表现其重复次数的原有RLE运算法则进行处理。图4的步骤(S40~S70)对此进行了显示。
即,当模式的长度为1时,进入对表现其重复次数的变量B是否在255以下进行判断的步骤(S40)。由于能够用一个位组的8比特来表现的数字是255,所以在超过255时,就将255和当前位组一起输出(S50)。
当上述255和当前位组一起被输出后,在上述B中对255进行差减(S60),并且再对B是否为255进行判断(S40)。
当上述B在255以下时,要想表现当前位组的重复次数,只要按次序输出B值和当前位组就可以了(S70)。
在图3的(a)中,由于长度为1的模式11重复了8次,所以表现为08、11。(参照图3的(b)和(c))另一方面,当表现模式长度的A既不是0也不是1时,就使用本发明提供的压缩运算法则进行压缩。
即,当模式长度既不是0也不是1时,就进入判断该模式的重复次数B是不是在64以下的步骤(S80)。这是由于根据前面已经说明过的本发明的运算法则,将一个模式的上位6比特表现为重复次数的原因。
当上述B比64大时,表现为一个模式的变量C的上位6比特中被代入64减去1后所得的63,在下位2比特中代入(A-2)。(S90)正如前面所说明的那样,上述上位6比特是用来表现重复次数的部分,减去1的原因是不存在一次都不重复的情况,目的是减少比特的浪费。
而且,上述下位2比特是体现模式长度的部分,减去2的原因是这里不包括模式长度为1的情况。
然后输出换码顺序00、上述变量C值和从现在开始重复的长度(A值)(S100),然后从上述B中减去64之后再进入判断B是否在64以下的步骤(S80)。
如果重复次数B在64以下,就将(B-1)代入变量C的上位6比特;将(A-2)代入下位2比特。(S130)下面参照图3对本发明的具体实施例进行说明。
如前面所讲的那样,在图3的(a)中,长度为2的04、05模式重复了4次(连续)。
因此,要想对其进行压缩,如图3的(b)所示,需要显示换码顺序00。
然后,由于04、05模式重复了4次,在(B-1)即4-1的3上乘以4。乘以4的理由与前面所讲的一样,是由于重复次数表现在上位6比特中,具有2比特移位的含义。
这里下位2比特中体现的模式长度2被代入A-2后,即2-2,成为0。
然后,由于被输出的是重复模式04、05,所以最终被压缩并输出的模式,如图3的(c)所示,变成了00、12、04、05形态的4个位组。
据此,在图3的(a)中被表现为高频振动模式04、05的8位组,如图3的(c)所示,被压缩成4位组进行输出。
并且,在图3的(a)中,长度为3的06、06、36模式重复(连续)了2次。
所以,就输入换码顺序00,并且由于上述模式重复了2次,所以在(B-1)即(2-1)的1上,为了使其移位2比特而乘以4。
而且,由于模式的长度为3,那么(A-2)即成为1,这样被表现为1个位组的值就是5。
然后,如果输入被重复的模式06、06、36,那么最终就被压缩成00、05、06、06、36形态的5个位组。
而且,正如前面所讲的那样,由于连续8次的11按照原来的RLE运算法则被输出为10、11,所以图3中(a)所示的高频振动图像按照本发明的RLE修正运算法则可以像图3中(c)所示那样被压缩并输出。
同样,在本发明的实施例中,虽然模式的长度为4(2比特)时就可以得到充分的压缩效果,但是根据图像的性质,当长度为8时的效果更好一些。
下面参照附图详细说明一下针对被利用本发明中RLE修正运算法则压缩处理后的图像进行复原的方法。
图5是以本发明为基础的RLE修正解码运算法则的示意图。
如图5所示,为了针对被利用本发明的RLE修正编码运算法则压缩后的图像进行压缩复原(解码,在本发明中“压缩复原”与“解码”同义),首先要进入读取1位组压缩图像的步骤(S210)。
此时,为了便说明将上述读出的1位组代入A中,然后进入判断A是否为0的步骤。
即,如果上述读出的1位组为0,就把它作为换码顺序,再读出下一个1位组并将之代入变量B中(S230)。
然后,将上述变量B的上位6比特代入C中(S240)。将下位2比特代入变量D中(S250)。
然后,读出在上述变量D上加上2,即(D+2)位组的压缩图像,并且使其重复C+1次(S260)。这种解码过程是编码过程的逆过程。
另一方面,当读出的A不是0时(S220),由于是按照原有RLE运算法则进行编码,所以要将下一个1位组读出并代入变量B中(S270),使上述B象上述A一样重复(S280)。
然后,对读出的数据是否为最后的输入值进行确认(S290),如果不是最后的值,即还有需要进行解码的图像时,就从上述(S220)开始重复程序。
如果上述重复的结果是没有需要进行解码的图像了,那么解码步骤就结束了。
通过上述的说明内容,本领域技术人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。
因此,本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利范围来确定其技术性范围。
权利要求
1.一种图像压缩方法,采用图像压缩的RLE运算法则,其特征在于,包括求出被输入模式的长度和重复次数,然后分别代入变量A和B中的步骤;判定上述变量A是否为0的步骤;如果上述变量A不是0,就判定其是否为1的步骤;如果上述变量A既不是0也不是1就将变量C分为两个部分,然后将(B-1)代入上述变量C的上位比特;将(A-2)代入下位比特的步骤;依次输出换码顺序、上述变量C值、上述被输入模式中A值的步骤。
2.如权利要求1所述的图像压缩方法,其特征在于,当上述变量A为0时,全部图像压缩步骤结束。
3.如权利要求1所述的图像压缩方法,其特征在于,当上述变量A为1时,按照普通的RIE运算法则完成压缩。
4.一种图像复原方法,包括读取压缩图像的一个位组,然后代入变量A的步骤;判断上述读取位组是否为0的步骤;当上述读取位组为0时,读取下一个位组然后代入变量B的步骤;将上述变量B的上位特定比特代入变量C的步骤;将上述变量C的下位特定比特代入变量D的步骤;在上述压缩图像中读出D+2位组,然后将其重复C+1次的步骤。
5.如权利要求4所述的图像复原方法,其特征在于,还包括当上述A不是0时读取下一个位组并代入变量B的步骤和使上述B像上述A那样更新并输出的步骤。
全文摘要
本发明涉及图像压缩和复原的方法,在RLE方式的压缩当中对高频振动图像进行有效压缩和复原。采用图像压缩的RLE运算法则,包括步骤①求出被输入模式的长度和重复次数,然后分别代入变量A和B中;②判定上述变量A是否为0;③如果上述变量A不是0,就判定其是否为1;④如果上述变量A既不是0也不是1就将变量C一分为二;然后给变量C的上位比特输入(B-1)值,给下位比特输入(A-2)值;⑤依次输出换码顺序、上述变量C值、上述被输入模式中A值。本发明通过上述各步骤利用以被重复模式的长度和次数为基础的压缩运算法则对图像进行压缩,以此来提高图像压缩特别是高频振动图像的压缩效率。
文档编号G06T9/00GK1920883SQ20051009414
公开日2007年2月28日 申请日期2005年8月26日 优先权日2005年8月26日
发明者张泽洙 申请人:乐金电子(昆山)电脑有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1