一种解压缩方法、系统和系统制作方法

文档序号:7647697阅读:200来源:国知局
专利名称:一种解压缩方法、系统和系统制作方法
技术领域
本发明涉及计算机数据压缩领域,尤其涉及一种解压缩方法、系统和系统制作方法。
背景技术
LZW压缩算法是一种通用的无损压缩方法,广泛应用于图像和文本处理过程中。该压缩算法是根据其三个主要的发明人Lempel、Zif、Welch名字的首字母命名的。LZW压缩算法的优点在于该压缩算法的自适应,即无论是压缩过程还是解压缩流程除了数据流以外不需要额外的数据;适应性广,即无论是图像数据还是正文数据均可采用;对输入数据流的快速适应性以及压缩的速度快。
目前,LZW压缩算法对应的解压缩流程如图1所示,包括以下步骤步骤S101,初始化解压缩环境,具体包括初始化us(unit size,数据单元的位数)、clear码(清空码)、eod码(end of data,结束码)和当前压缩码字的长度len;步骤S102,从数据流中读取len位数据,即读取一个码字code;步骤S103,判断该码字是否eod码,如果是,解压缩流程结束,否则,进行步骤S104;步骤S104,判断该码字是否clear码,如果是,进行步骤S105,否则进行步骤S106;步骤S105,初始化字典,具体包括初始化下一个将要生成的字典入口next、当前长度编码的最大码字max,在初始化字典完成后返回步骤S102;根据LZW压缩算法的规定,压缩数据流第一个出现的码字一定是clear码,从而在对压缩数据流进行解压缩之前可以对字典进行初始化。在具体实现时,在步骤S101中定义当前压缩码字的长度len的工作也可以在读取到clear码时进行。
步骤S106,判断该码字是否已经出现在字典中,如果是,进行步骤S107,否则进行步骤S108;在本步骤中,通过判断code和next的大小来确定该码字是否已经出现在字典中,如果code小于next,则该码字已经出现在字典中,否则该码字尚未出现在字典中。
步骤S107,以us位为单位在字典中查找该码字对应的数据,并按照查找的顺序将查找到的数据插入到栈中生成该码字的解压缩数据串,用参数finchar记录该数据串中最后查找到的数据,进行步骤S109;步骤S108,将参数finchar记录的数据复制到该栈的栈底,当前finchar记录的数据为在解压缩相邻上一个码字old时最后查找到的数据,然后在字典中重新查找上一个码字old对应的数据,并按照查找的顺序将将查找到的数据插入到该栈中生成该码字的解压缩数据串;步骤S109,将栈中的解压缩数据串转移到输出缓冲区中;步骤S110,在字典中增加入口next;步骤111,为下一次解压缩建立环境,返回步骤S102。
在上述流程的步骤S108中,在当前读取的码字code还未出现在字典中时,需要在字典中重新查找上一个码字old对应的解压缩数据串,并将此数据串按照查找的顺序插入到栈中,可见,虽然栈中当前的数据串就是old对应的解压缩数据串,但是,在对还未出现在字典中的code进行处理时,却没有利用栈中的当前数据串,而是重新在字典中查找了old对应的数据串,工作量较大。

发明内容
本发明提供一种解压缩方法、系统和制作方法,用以提高LZW解压缩的速度。
为了解决上述技术问题,本发明提供了一种解压缩方法,依次读取待处理码字并生成对应的解压缩数据串;当所述待处理码字是字典中尚未出现的码字时,根据所述待处理码字的相邻上一个码字的解压缩数据串,生成所述待处理码字的解压缩数据串。
进一步地,上述方法还可具有以下特点当所述待处理码字是字典中已经出现的且非清空码和结束码的码字时,在字典中查找所述待处理码字对应的数据,并按照查找的顺序将所述数据压入栈来生成所述待处理码字的解压缩数据串。
进一步地,上述方法还可具有以下特点当所述待处理码字是字典中尚未出现的码字时,生成所述待处理码字的解压缩数据串的具体方法为移动所述栈的栈底,将所述栈的栈顶元素复制到移动后的栈底。
进一步地,上述方法还可具有以下特点在生成所述待处理码字的解压缩数据串后,倒序转移所述数据串到输出缓冲区,并在字典中增加新入口。
进一步地,上述方法还可具有以下特点当所述待处理码字是字典中已经出现的且非清空码和结束码的码字时,在字典中查找所述待处理码字对应的数据,并按照查找顺序的倒序将所述数据放入队列来生成所述待处理码字的解压缩数据串。
进一步地,上述方法还可具有以下特点当所述待处理码字是字典中尚未出现的码字时,生成所述待处理码字的解压缩数据串的具体方法为移动所述队列的队列尾,将所述队列的首元素复制到移动后的队列尾。
进一步地,上述方法还可具有以下特点在生成所述待处理码字的解压缩数据串后,复制所述数据串到输出缓冲区,并在字典中增加新入口。
本发明还提供了一种解压缩系统,所述系统包括用于依次读取待处理码字的读取模块;用于当所述待处理码字是字典中尚未出现的码字时,根据所述待处理码字的相邻上一个码字的解压缩数据串,生成所述待处理码字的解压缩数据串的第一处理模块。
进一步地,上述系统还可具有以下特点所述系统包括用于当所述待处理码字是字典中已经出现的且非清空码和结束码的码字时,在字典中查找所述待处理码字对应的数据,并按照查找的顺序将所述数据压入栈来生成所述待处理码字的解压缩数据串的第二处理模块。
进一步地,上述系统还可具有以下特点所述系统包括用于在生成所述待处理码字的解压缩数据串后,倒序转移所述数据串到输出缓冲区,并在字典中增加新入口的第一控制模块。
进一步地,上述系统还可具有以下特点所述系统包括用于当所述待处理码字是字典中已经出现的且非清空码和结束码的码字时,在字典中查找所述待处理码字对应的数据,并按照查找顺序的倒序将所述数据放入队列来生成所述待处理码字的解压缩数据串的第三处理模块。
进一步地,上述系统还可具有以下特点所述系统包括用于在生成所述待处理码字的解压缩数据串后,复制所述数据串到输出缓冲区,并在字典中增加新入口的第二控制模块。
本发明还提供了一种解压缩系统制作方法,包括以下步骤设置读取模块,用于依次读取待处理码字;设置第一处理模块,用于当所述待处理码字是字典中尚未出现的码字时,根据所述待处理码字的相邻上一个码字的解压缩数据串,生成所述待处理码字的解压缩数据串。
进一步地,上述制作方法还可具有以下特点还设置第二处理模块,用于当所述待处理码字是字典中已经出现的且非清空码和结束码的码字时,在字典中查找所述待处理码字对应的数据,并按照查找的顺序将所述数据压入栈来生成所述待处理码字的解压缩数据串。
进一步地,上述制作方法还可具有以下特点还设置第一控制模块,用于在生成所述待处理码字的解压缩数据串后,倒序转移所述数据串到输出缓冲区,并在字典中增加新入口。
进一步地,上述制作方法还可具有以下特点还设置第三处理模块,用于当所述待处理码字是字典中已经出现的且非清空码和结束码的码字时,在字典中查找所述待处理码字对应的数据,并按照查找顺序的倒序将所述数据放入队列来生成所述待处理码字的解压缩数据串。
进一步地,上述制作方法还可具有以下特点还设置第二控制模块,用于在生成所述待处理码字的解压缩数据串后,复制所述数据串到输出缓冲区,并在字典中增加新入口的第二控制模块。
本发明有益效果如下在本发明中,依次读取待处理码字并生成对应的解压缩数据串;当该待处理码字是字典中尚未出现的码字时,根据该待处理码字的相邻上一个码字的解压缩数据串,生成该待处理码字的解压缩数据串,而不用重新在字典中查找了该上一个码字对应的解压缩数据串,减小了生成该待处理码字的解压缩数据串的工作量,提高了生成该待处理码字的解压缩数据串的速度。可见,采用本发明技术方案,可以提高解压缩字典中尚未出现的码字的速度,从而提高LZW解压缩的整体速度。


图1为现有技术中LZW压缩算法对应的解压缩流程图;图2为本发明实施例一中LZW压缩算法对应的解压缩流程图;图3为本发明实施例二中LZW压缩算法对应的解压缩流程图。
具体实施例方式
本发明的核心思想是,依次读取待处理码字并生成对应的解压缩数据串;当该待处理码字是字典中尚未出现的码字时,根据该待处理码字的相邻上一个码字的解压缩数据串,生成该待处理码字的解压缩数据串,而不用重新在字典中查找了该上一个码字对应的解压缩数据串,提高解压缩字典中尚未出现的码字的速度,从而提高整个解压缩流程的速度。
下面结合附图和实施例对本发明作进一步地描述。
实施例一本实施例中,在LZW压缩算法对应的解压缩流程中,当当前读取的码字code还未出现在字典中时,利用其相邻上一个码字的解压缩数据串,即栈中当前的数据串,来生成当前读取的码字code对应的解压缩数据串,在具体的实现中,需要移动栈底,因此,在本实施例中需要将栈空间扩大,例如,现有技术中需要的最小栈空间为N,则本实施例中需要的最小栈空间为2×N-1,并将初始栈底指向该栈空间的中央。
本实施例中,LZW压缩算法对应的解压缩流程如图2所示,包括以下步骤步骤S201,初始化解压缩环境,具体包括初始化us、clear码、eod码和len;本步骤的具体实现代码可以如下us=8;//在本实施例中以us为8位(即一个字节)为例来进行说明clear=1<<us;eod=clear+1;len=us+1;步骤S202,从数据流中读取len位数据,即读取一个码字code;本步骤的具体实现代码可以如下code=readbits(len);//从数据流中读取len位数据,即一个码字,并将其赋//值给code步骤S203,判断该码字是否eod码,如果是,解压缩流程结束,否则,进行步骤S204;
步骤S204,判断该码字是否clear码,如果是,进行步骤S205,否则进行步骤S206;步骤S205,初始化字典,具体包括初始化next、max以及栈的栈底,在初始化字典完成后返回步骤S202;本步骤的具体实现代码可以如下next=eod;max=1<<len;bottom=stack+size/2;//将栈底指向该栈空间的中央和现有技术相比,在本步骤中,增加了初始化栈底的内容,将初始栈底指向该栈空间的中央。
步骤S206,判断该码字是否已经出现在字典中,如果是,进行步骤S207,否则进行步骤S208;在本步骤中,通过判断code和next的大小来确定该码字是否已经出现在字典中,如果code小于next,则该码字已经出现在字典中,否则该码字尚未出现在字典中。
步骤S207,以us位为单位在字典中查找该码字对应的数据,并按照查找的顺序将查找到的数据插入到该栈中生成该码字的解压缩数据串,用参数finchar记录该数据串中最后查找到的数据,进行步骤S209;本步骤的具体实现代码可以如下top=lookup(bottom,code);其中lookup的定义为unit*lookup(p,code){finchar=code;while(finchar>clear){*p++=k[finchar]; //k[finchar]表示finchar的后缀码字,
//‘*p++=k[finchar]’表示将finchar的后//缀码字插入指针p指向的数据单元,然//后移动指针pfinchar=l[finchar]; //l[finchar]表示finchar码字的前缀码字}*p=finchar;return p;//返回数据串的栈顶元素的指针}步骤S208,在当前栈的基础上移动栈底,将该栈当前的栈顶元素复制到当前栈底;本步骤的具体实现代码可以如下bottom--;//移动栈底*bottom=finchar;//把栈顶元素复制到栈底由于该栈中当前的数据串即为上一个码字old的解压缩数据串,因此,只需要利用该栈当前的数据串,移动该栈的栈底并将该栈当前的栈顶元素复制到当前栈底,即可得到当前需要解压缩的码字code的解压缩数据串,而不需要重新在字典中查找了old对应的解压缩数据串,减少解压缩字典中未出现的码字时的工作量,提高解压缩字典中未出现的码字时的速度。
步骤S209,将栈中的数据串转移到输出缓冲区中;由于如果下一个要解压缩的码字是尚未在字典中出现的码字,则需要利用当前栈中的数据串来生成下一个要解压缩的码字的解压缩数据串,因此,在本步骤中,转移栈中的数据串时,不能直接利用指向栈顶的指针top来转移,要保持top的值不变,而可以利用一个临时变量p,将top的值赋予p来进行数据串的转移,因此本步骤的具体实现代码可以如下p=top;while(p>=bottom)//从栈顶到栈底循环putout(*p--,out);//将数据单元复制到输出缓冲区可见,由于在本实施例中可能需要移动栈底,因此,在该代码中,从栈顶到栈底的循环判断指针的数值是否大于等于bottom来实现,该bottom是一个变量,而不是像现有技术中一样判断指针的数值是否大于stack来实现,该stack是一个固定值。
步骤S210,在字典中增加入口next;本步骤的具体实现代码可以如下l[next]=old;//将上一个码字old赋予next作为前缀码字k[next]=finchar;//将参数finchar记录的数据赋予next作为后缀码字步骤S211,为下一次解压缩建立环境,返回步骤S202。
本步骤的具体实现代码可以如下if(++next==max){len++; //增加编码长度max=1<<len;}old=code; //将当前读取的码字code赋予old,在解压缩下一个码字//时作为其相邻的上一个被解压缩的码字在本实施例中,当当前读取的码字code还未出现在字典中时,不需要在字典中重新查找old对应的解压缩数据串来生成code对应的解压缩数据串,而仅仅是在old对应的解压缩数据串基础上增加一个数据得到code对应的解压缩数据串,减少了生成还未出现在字典中的code对应的解压缩数据串的工作量,在保持解压缩结果和解压缩处理流程的情况下,有效地提高基于LZW字典压缩的数据流的解压缩速度。
实施例二为了使基于LZW字典压缩的数据流的解压缩速度进一步提高,在本实施例中,在队列中生成被解压缩的码字对应的解压缩数据串,如此解压缩速度会在实施例一的基础上进一步提高,尤其是当数据单元位数为一个字节、或者2的幂时。采用本实施例的技术方案,将解压缩数据串输出时倒序的转移过程变成了内存的拷贝过程,因此,在16位、32位和64位平台上解压缩的速度能得到进一步提高。
本实施例中,LZW压缩算法对应的解压缩流程如图3所示,包括以下步骤步骤S301,初始化解压缩环境,具体包括初始化us、clear码、eod码和len;本步骤的具体实现代码可以如下us=8;//在本实施例中以us为8位(即一个字节)为例来进行说明clear=1<<us;eod=clear+1;len=us+1;步骤S302,从数据流中读取len位数据,即读取一个码字code;本步骤的具体实现代码可以如下code=readbits(len);//从数据流中读取len位数据,即一个码字,并将其赋//值给code步骤S303,判断该码字是否eod码,如果是,解压缩流程结束,否则,进行步骤S304;步骤S304,判断该码字是否clear码,如果是,进行步骤S305,否则进行步骤S306;步骤S305,初始化字典,具体包括初始化next、max以及队列尾,在初始化字典完成后返回步骤S302;本步骤的具体实现代码可以如下next=eod;max=1<<len;tail=queue+size/2;//将队列尾移至缓冲区中间和现有技术相比,在本步骤中,增加了初始化队列尾的内容,将队列尾移至缓冲区中间。
步骤S306,判断该码字是否已经出现在字典中,如果是,进行步骤S307,否则进行步骤S308;在本步骤中,通过判断code和next的大小来确定该码字是否已经出现在字典中,如果code小于next,则该码字已经出现在字典中,否则该码字尚未出现在字典中。
步骤S307,以us位为单位在字典中查找该码字对应的数据,并按照查找顺序的倒序将查找到的数据放入队列中生成该码字对应的解压缩数据串,用参数finchar记录该数据串中最后查找到的数据,进行步骤S309;本步骤的具体实现代码可以如下head=lookup2(tail,code);其中lookup2的定义为unit*lookup2(p,code){finchar=code;while(finchar>clear){*p--=k[finchar];finchar=l[finchar];}*p=finchar;return p;//返回数据串的队列头部元素的指针}步骤S308,在当前队列的基础上移动队列尾,将队列中当前的首元素复制到队列尾;本步骤的具体实现代码可以如下
tail++;//移动队列尾*tail=finchar;//把队列首元素复制到队列尾由于队列中当前的数据串即为上一个码字old对应的解压缩数据串,因此,只需要利用队列中当前的数据串,移动队列尾并将队列当前的首元素复制到当前队列尾,即可得到当前需要解压缩的码字code对应的解压缩数据串,而不需要重新在字典中查找了old对应的解压缩数据串,减少解压缩字典中未出现的码字时的工作量,提高解压缩字典中未出现的码字时的速度。
步骤S309,将队列中的数据串以正序的方式转移到输出缓冲区;由于如果下一个要解压缩的码字是尚未在字典中出现的码字,则需要利用当前队列中的数据串来生成下一个要解压缩的码字对应的解压缩数据串,因此,在本步骤中,转移队列中的数据串时,不能直接利用指向队列首的指针head来转移,要保持head的值不变,而可以利用一个临时变量p,将head的值赋予p来进行数据串的转移,因此本步骤的具体实现代码可以如下p=head;while(p<=tail)//从队列首到队列尾循环putout(*p++,out);//将数据单元复制到输出缓冲区步骤S310,在字典中增加入口next;本步骤的具体实现代码可以如下l[next]=old;//将上一个码字old赋予next作为前缀码字k[next]=finchar;//将参数finchar记录的数据赋予next作为后缀码字步骤S311,为下一次解压缩建立环境,返回步骤S302。
本步骤的具体实现代码可以如下if(++next==max){len++; //增加编码长度max=1<<len;
}old=code; //将当前读取的码字code赋予old,在解压缩下一个码字//时作为其相邻的上一个被解压缩的码字在本实施例中,当当前读取的码字code还未出现在字典中时,同样不需要在字典中重新查找old对应的解压缩数据串来生成code对应的解压缩数据串,而仅仅是在old对应的解压缩数据串基础上增加一个数据得到code对应的解压缩数据串,减少了生成还未出现在字典中的code对应的解压缩数据串的工作量,在保持解压缩结果和解压缩处理流程的情况下,有效地提高基于LZW字典压缩的数据流的解压缩速度。并且,采用本实施例技术方案,将数据串输出时倒序的转移过程变成了内存的拷贝过程,可以进行批量复制,因此,可以进一步地提高LZW的解压缩速度。
本发明的一个实施例中的解压缩系统包括用于依次读取待处理码字的读取模块;用于当该待处理码字是字典中尚未出现的码字时,根据该待处理码字的相邻上一个码字的解压缩数据串,生成该待处理码字的解压缩数据串的第一处理模块。
该解压缩系统可以包括用于当该待处理码字是字典中已经出现的且非清空码和结束码的码字时,在字典中查找该待处理码字对应的数据,并按照查找的顺序将数据压入栈来生成该待处理码字的解压缩数据串的第二处理模块。
该解压缩系统可以包括用于在生成该待处理码字的解压缩数据串后,倒序转移数据串到输出缓冲区,并在字典中增加新入口的第一控制模块。
该解压缩系统可以包括用于当该待处理码字是字典中已经出现的且非清空码和结束码的码字时,在字典中查找该待处理码字对应的数据,并按照查找顺序的倒序将数据放入队列来生成该待处理码字的解压缩数据串的第三处理模块。
该解压缩系统可以包括用于在生成该待处理码字的解压缩数据串后,复制数据串到输出缓冲区,并在字典中增加新入口的第二控制模块。
本发明的一个实施例中的解压缩系统制作方法,包括以下步骤设置读取模块,用于依次读取待处理码字;设置第一处理模块,用于当该待处理码字是字典中尚未出现的码字时,根据该待处理码字的相邻上一个码字的解压缩数据串,生成该待处理码字的解压缩数据串。
还可以设置第二处理模块,用于当该待处理码字是字典中已经出现的且非清空码和结束码的码字时,在字典中查找该待处理码字对应的数据,并按照查找的顺序将数据压入栈来生成该待处理码字的解压缩数据串。
还可以设置第一控制模块,用于在生成该待处理码字的解压缩数据串后,倒序转移数据串到输出缓冲区,并在字典中增加新入口。
还可以设置第三处理模块,用于当该待处理码字是字典中已经出现的且非清空码和结束码的码字时,在字典中查找该待处理码字对应的数据,并按照查找顺序的倒序将数据放入队列来生成该待处理码字的解压缩数据串。
还可以设置第二控制模块,用于在生成该待处理码字的解压缩数据串后,复制数据串到输出缓冲区,并在字典中增加新入口的第二控制模块。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种解压缩方法,依次读取待处理码字并生成对应的解压缩数据串;其特征在于,当所述待处理码字是字典中尚未出现的码字时,根据所述待处理码字的相邻上一个码字的解压缩数据串,生成所述待处理码字的解压缩数据串。
2.如权利要求1所述的方法,其特征在于,当所述待处理码字是字典中已经出现的且非清空码和结束码的码字时,在字典中查找所述待处理码字对应的数据,并按照查找的顺序将所述数据压入栈来生成所述待处理码字的解压缩数据串。
3.如权利要求2所述的方法,其特征在于,当所述待处理码字是字典中尚未出现的码字时,生成所述待处理码字的解压缩数据串的具体方法为移动所述栈的栈底,将所述栈的栈顶元素复制到移动后的栈底。
4.如权利要求2或3所述的方法,其特征在于,在生成所述待处理码字的解压缩数据串后,倒序转移所述数据串到输出缓冲区,并在字典中增加新入口。
5.如权利要求1所述的方法,其特征在于,当所述待处理码字是字典中已经出现的且非清空码和结束码的码字时,在字典中查找所述待处理码字对应的数据,并按照查找顺序的倒序将所述数据放入队列来生成所述待处理码字的解压缩数据串。
6.如权利要求5所述的方法,其特征在于,当所述待处理码字是字典中尚未出现的码字时,生成所述待处理码字的解压缩数据串的具体方法为移动所述队列的队列尾,将所述队列的首元素复制到移动后的队列尾。
7.如权利要求5或6所述的方法,其特征在于,在生成所述待处理码字的解压缩数据串后,复制所述数据串到输出缓冲区,并在字典中增加新入口。
8.一种解压缩系统,其特征在于,所述系统包括用于依次读取待处理码字的读取模块;用于当所述待处理码字是字典中尚未出现的码字时,根据所述待处理码字的相邻上一个码字的解压缩数据串,生成所述待处理码字的解压缩数据串的第一处理模块。
9.如权利要求8所述的系统,其特征在于,所述系统包括用于当所述待处理码字是字典中已经出现的且非清空码和结束码的码字时,在字典中查找所述待处理码字对应的数据,并按照查找的顺序将所述数据压入栈来生成所述待处理码字的解压缩数据串的第二处理模块。
10.如权利要求9所述的系统,其特征在于,所述系统包括用于在生成所述待处理码字的解压缩数据串后,倒序转移所述数据串到输出缓冲区,并在字典中增加新入口的第一控制模块。
11.如权利要求8所述的系统,其特征在于,所述系统包括用于当所述待处理码字是字典中已经出现的且非清空码和结束码的码字时,在字典中查找所述待处理码字对应的数据,并按照查找顺序的倒序将所述数据放入队列来生成所述待处理码字的解压缩数据串的第三处理模块。
12.如权利要求11所述的系统,其特征在于,所述系统包括用于在生成所述待处理码字的解压缩数据串后,复制所述数据串到输出缓冲区,并在字典中增加新入口的第二控制模块。
13.一种解压缩系统制作方法,其特征在于,包括以下步骤设置读取模块,用于依次读取待处理码字;设置第一处理模块,用于当所述待处理码字是字典中尚未出现的码字时,根据所述待处理码字的相邻上一个码字的解压缩数据串,生成所述待处理码字的解压缩数据串。
14.如权利要求13所述的制作方法,其特征在于,还设置第二处理模块,用于当所述待处理码字是字典中已经出现的且非清空码和结束码的码字时,在字典中查找所述待处理码字对应的数据,并按照查找的顺序将所述数据压入栈来生成所述待处理码字的解压缩数据串。
15.如权利要求14所述的制作方法,其特征在于,还设置第一控制模块,用于在生成所述待处理码字的解压缩数据串后,倒序转移所述数据串到输出缓冲区,并在字典中增加新入口。
16.如权利要求13所述的制作方法,其特征在于,还设置第三处理模块,用于当所述待处理码字是字典中已经出现的且非清空码和结束码的码字时,在字典中查找所述待处理码字对应的数据,并按照查找顺序的倒序将所述数据放入队列来生成所述待处理码字的解压缩数据串。
17.如权利要求16所述的制作方法,其特征在于,还设置第二控制模块,用于在生成所述待处理码字的解压缩数据串后,复制所述数据串到输出缓冲区,并在字典中增加新入口的第二控制模块。
全文摘要
本发明涉及计算机数据压缩领域,尤其涉及一种解压缩方法、系统和系统制作方法,用以提高LZW解压缩的速度。在本发明中,依次读取待处理码字并生成对应的解压缩数据串;当该待处理码字是字典中尚未出现的码字时,根据该待处理码字的相邻上一个码字的解压缩数据串,生成该待处理码字的解压缩数据串。采用本发明技术方案,可以提高解压缩字典中尚未出现的码字的速度,从而提高LZW解压缩的整体速度。
文档编号H04N7/26GK101031079SQ200710065439
公开日2007年9月5日 申请日期2007年4月13日 优先权日2007年4月13日
发明者王剑 申请人:北京大学, 北京北大方正电子有限公司, 北大方正集团有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1